Techsearchable

Thursday, August 23, 2007

SOA Summer

Last time I ended with a real cliffhanger – Service Oriented Architectures (SOA) and the Semantic Web. We’re around the 60,000-feet level, so before I delve into the aether, let’s backtrack a bit.

What’s behind Web 2.0, widgets, gadgets, IM, wikis, blogs, collaboration, information sharing, etc? Last time, I briefly mentioned XML, Java, and SOAP. There are actually two current market-leading platforms for building service oriented environments – the Java Enterprise Edition (EE) platform running Java code, and the Microsoft-centric .Net platform running C# (pronounced “C-sharp”) code.

Java was first introduced by Sun Microsystems (www.sun.com/java) as an easier alternative to C/C++ programming that would retain an object oriented view (manipulating objects rather than events) and could run on multiple hardware platforms without modifying any code. The Java programming language has evolved in a number of ways, from the desktop to the enterprise. At the desktop level, Java and its latest implementation AJAX (Asynchronous JavaScript Technology and XML) can run on any popular browser-operating system combination (e.g. Internet Explorer and Windows, Firefox and Solaris, or Safari and Mac OS X). AJAX allows web services/browser application to act like thick client applications. I know what you’re thinking, “Hmm… what does that mean?” It means that sections of your browser window can change or update without having to refresh the entire window. Thick clients are characterized by applications that run on your PC, using relatively larger amounts of storage, processor, and memory on your desktop or laptop. A thin client uses the resources of the network and server computers to run applications that mostly display at your desktop or laptop. At the enterprise level, Java can scale to serve applications to many thousands of users.

Microsoft took another direction by developing their .Net (pronounced “dot-net”) Framework (http://www.microsoft.com/net). With their various application servers and programming environments, Microsoft decided to integrate them more closely. The .Net platform allows various programming languages and their associated resources to work together (i.e. shared libraries, components, and communications protocols). The latest version of the .Net Framework 3.0 is built into four technology categories, called Foundations: Presentation (user interface), Workflow (business processes), Communication (service orientation), and CardSpace (security). Where Java simplifies deployment, operations and maintenance of applications on multiple platforms, .Net does so for the Microsoft platform.

How does this fit into the SOA approach? The main principles behind service oriented architectures are the reuse of interoperable components, compliance to standards, and the ability to dynamically publish/subscribe to available services (identify, categorize, provision, deliver, monitor, and track). The two platforms discussed above adhere to these general guidelines. They are not automatically defined as service oriented architectures because satisfying these requirements depends on how these platforms are implemented (e.g. deploying a Java infrastructure does not necessarily mean that you have employed all the security and auditing capabilities available – see more detailed information at the SOA Blueprint site: http://www.soablueprint.com/).

The common implementations of these technologies – that most Internet users would recognize – are mashups. The term is literal; a user and/or developer gather a set of resources (programs, applications, functions, data) and mashes them together to create a new application or function. There are a number of good examples. You can import various types of data into Google Maps, or embed YouTube videos in your web page. At a higher level of complexity are things like shopping cart services. Many vendors publish open interfaces to promote the creation of mashups: Amazon Web Services, a variety of Google services (imagery, maps, digital photography, etc.), del.icio.us. There are also mashup generators now that simplify their creation by novice users. Google Mashup Editor, Microsoft Popfly, and Yahoo! Pipes are all freely available, although they are in either alpha or beta versions (still under development). As an example, here’s a recent Yahoo! Pipes posting:

GeoAnnotated Reuters News
Uses the geonames.org RSS-to-geoRSS web service to add location information to the Reuters newsfeed. The result is displayed using the Yahoo!Maps AJAX API (thanks to Pipes Location Extractor). It can be viewed here:
http://www.80n.dreamhosters.com/

Under a more formal environment, the mashup attributes described above become a well-defined set of components, interfaces, and functions that allow interoperability. Think of your computer screen as a portal into various pools of resources needed to run applications – communications bandwidth, memory, processing power, storage and data. Depending on individual privileges and priorities, you are authorized access to certain resources, both types and amounts, which allow you to accomplish the mission. On the front end, how the mission is accomplished is guided by business processes. On the back end, how well the mission is accomplished is guided by service level agreements.

So, do CACI International Inc. and/or National Solutions Group (NSG) provide any of these capabilities? The answer is yes, in both cases. I’ll give you some examples. In NSG, the Knowledge and Information Management Division (http://www.caci.com/business/systems/doc_mgt/doc_manage.shtml) has developed the HighView platform over a number of years (they are currently on version 5). HighView is built on the .Net environment and its service orientation allows easier integration of a variety of components and third party products. Throughout CACI, there are a number of Java development efforts underway, built on enterprise level environments (Java EE, IBM WebSphere, BEA WebLogic, and others). We have also designed enterprise architectures based on service oriented concepts for several customers. Depending on the customer base, we couch our designs using the appropriate standards and guidelines. For example, the Department of Defense Architectural Framework (DoDAF) has certain graphics and documents that are required to formally and fully describe an enterprise architecture. DoDAF categorizes these deliverables into System Views (SVs), Operational Views (OVs), and Technical Views (TVs). Another framework, which is gaining popularity, is the Federal Enterprise Architecture (FEA). This standard categorizes portions of the architecture into Technical, Data, Service Component, Business, and Performance Reference Models (TRM, DRM, SRM, BRM, and PRM).

Unfortunately, that’s all I have room for this time. I’ve yet to discuss the Semantic Web. Please feel free to post comments on my blog, and suggest future subjects.

Ever curious... George

Contact:
Email: gromas@caci.com
Blog: http://george-romas.blogspot.com
IM: george_romas@yahoo.com, george_romas@hotmail.com, georgeromas@aol.com, romasge@gmail.com

Resources:
http://www.sun.com/java
http://www.microsoft.com/net
http://www.soablueprint.com/
http://www.80n.dreamhosters.com/
http://www.caci.com/business/systems/doc_mgt/doc_manage.shtml

Tuesday, March 27, 2007

Tech Corner Apr07 - So What?

Welcome back!

I hope you have returned to this space eager for more insightful information. Since last we “spoke”, I’ve grown my LinkedIn network to 114 first level connections, which translates to 9300 at the next level and 799,100 at the third level. Quite impressive, right?!

Also, I decided to see if I could link myself to Kevin Bacon – let’s follow the chain. I met Dizzy Gillespie (famous jazz trumpeter, for the youngsters out there) after his gig at Blues Alley in Georgetown around 1985. Dizzy was in “The Cool World” (1964) with Clarence Williams III. Clarence was in “Hoodlum” (1997) with Beau Starr. Beau was in “Where the Truth Lies” (2005) with Kevin Bacon. I have a Bacon number of 4!

I have four work-related and four personal IM accounts. I have this blog and have started a personal blog. I’ve explored the Google Earth Community. I’ve installed Google Desktop to help find stuff in my growing data stores (and have been meaning to try Copernic again). I use Wikipedia almost daily, and can’t keep up with the few RSS feeds I’m subscribed to. I have Internet Explorer favorites, del.icio.us tags, Opera bookmarks, and a Google Notebook. I’ve also played with the Google Docs & Spreadsheets and ThinkFree online collaborative office suites. I have Opera and Yahoo Widgets, and Microsoft Gadgets strewn all over my desktop.

So what?!?

My previous article touted the benefits and coolness of Web 2.0 technologies. What’s so great about it? From what I’ve discovered thus far, Web 2.0 technology will really demonstrate its value when it transforms into Web 3.0 (yes, I’ve heard/read that term being used already!)
The immediate benefit is inherent in the nature of the technology and its implementation. Web 2.0 applications are small, lightweight, collaborative, open, and network-centric. I can quickly load these widgets and applications. Data is updated in real or near-real time. I can infinitely customize my desktop, interface, and information sources. The ultimate promise of this environment is that it will lower costs and improve productivity.

First, let’s look at lower costs. Each widget has a single, or at least simple, dedicated function. Coding and configuration, therefore, should be smaller, faster, and easier to maintain. Each widget shares a common, integrated platform (right now they’re vendor specific – Google, Yahoo, Mac, Vista, and Opera widgets only operate on those platforms. You cannot, for instance, run a Mac widget on a Windows Vista computer. As mentioned above, these programs/functions/applications are network-centric in that many of them simply display information from the Internet, other programs, various data sources, or other widgets (remember this last point – it’s important!)

In terms of productivity, there are several characteristics to consider: collaboration, information sharing, ease-of-use, and open standards and interfaces. Many of these programs have collaboration built-in to their function – Google Docs allows multiple users to edit a document simultaneously. Similarly, a wiki allows individuals to automatically come to a consensus by giving everyone the ability to refine content. Information sharing is also ingrained in many of these applications, either through intentionally exposing data to the public (as in bookmark sharing sites) or through combining available data sources (referred to as mash-ups). The site zillow.com is a powerful example of a mash-up; enter your home address and you see an overhead photograph and map of your home and surrounding neighborhood. Each home is overlaid with an estimated dollar value, including square footage, number of bedrooms, and number of bathrooms. Furthermore, you can zoom in and see detailed, high resolution photographs of your home. In this single example, you see the combination of overhead imagery, map data, home data, pricing, and geotagged photography – all accessed from a simple search box interface. The ease-of-use comes from these simple interfaces in conjunction with the rapid data integration occurring “behind the screen”. This all works because the components agree to utilize standard interfaces and platforms – Extensible Markup Language (XML), Java, Simple Object Access Protocol (SOAP), etc.

Why haven’t we all standardized on Web 2.0 technologies? I believe there has to be wider use and acceptance of the technologies involved. The more people you have participating in these collaborative communities, the more powerful and effective they become. You have deeper resources and expertise for checks and balances (quality assurance), wider sources of information, and more agile solutions. As this acceptance grows, the environment will evolve into this Web 3.0 concept, where the agreed upon standards and interfaces will negate the need for the thick, expensive client. The important and resource intensive operations will occur on the network, with the user interface represented by small, light applications on the desktop. If you take an extreme example, do I need an expensive office suite on everyone’s desk, or can I perform the same functions with several inexpensive, interoperable programs – e.g. a text editor, a text formatter, a graphics producer, a math engine, etc.? Widgets dynamically integrating with other widgets and disparate data sources (I told you to remember this point up above!)

The next step beyond Web 3.0 is to formalize this type of architecture, embracing open technologies and interfaces with an infrastructure that leverages this thin client, network computing model. For this to work in a repeatable, consistent manner, we need to assure that operations and resources are protected, reliable and resilient. Standard platforms and interfaces will get us part of the way there, but we also need a more intimate level of security, information assurance, and accountability.

That will lead us from widgets to web services, network centric infrastructure to Service Oriented Architectures, and common XML interfaces to the Semantic Web (ontologies and context). I think I’ll save that discussion until next time …

As you can see, my current intent is to have these entries build upon each other, introducing more complex ideas as we go. As always, please feel free to contact me, ask questions, suggest topics, and use the resources listed in this column.

Ever curious,
George

Contact:
Email: gromas@caci.com
Blog: http://george-romas.blogspot.com
IM:
george_romas@yahoo.com
george_romas@hotmail.com
georgeromas@aol.com,
romasge@gmail.com

Resources:
http://www.thinkfree.com
http://www.opera.com
http://www.google.com/intl/en/options/
http://widgets.yahoo.com
http://microsoftgadgets.com
http://widgets.opera.com
http://www.programmableweb.com/
http://www.zillow.com

Monday, January 01, 2007

Tech Corner Jan07 - Web 2.0

I know you’re afraid!

Indestructible killer robots from the future! Population-decimating, bioengineered plagues! Crafty hackers control the Internet with a few keystrokes! Intelligent clouds of nano particles attack with malice! These, and similar depictions of technology in popular media, have engendered a significant fear of all things technical in the general populace. This fear has its basis in the unknown – if you do not understand the how or why, it’s easier to accept farfetched, inaccurate or exaggerated claims.

Welcome to the first Tech Corner column (written for my corporate quarterly newsletter) – a venue I will use to dispel some of the mystery associated with technology, as well as discussing solutions that are important to both the industry and to our customers. Within this small, confined space, I will endeavor to keep explanations simple and ensure that all acronyms (manna for both technologists and government organizations alike) are expanded and all terms are defined.

For this first column, I’ll discuss Web 2.0 technologies. The name infers that these technologies represent the second version of the World Wide Web (yes, the www in front of web site names does mean something!), and typically include chat, social networking, blogs, RSS, bookmark-sharing, and wikis. Each of the identified technologies includes aspects of collaboration and community, and almost all create searchable information stores.

Chat: everyone is probably at least aware of chat, also known as Instant Messaging (IM), if not a daily user. The typical IM clients are AIM (AOL Instant Messenger – bonus points for an acronym within an acronym! AOL is, of course, America On-Line), MSN (Microsoft Network) Messenger, Yahoo Messenger, and ICQ (“I Seek You” – not really an acronym). CACI has a corporate IM product integrated with Lotus Notes called SameTime. The idea behind chat is to provide a desktop utility that shows which of your associates (friends, relatives, business contacts, etc.) is online (on the Internet, your corporate network, campus network, etc.), so that you can exchange short text messages with each other. In the case of Google Talk, the client is not a separate, standalone application; it is embedded within your browser. The networks are separate, however, so that an AIM user can’t send a message to a Yahoo Messenger user. However, there are new applications that can bridge all the IM networks (products like Trillian and Jabber), allowing you to send IM’s to any of your associates, no matter what network they’re on. Also, chat clients have recently evolved into more than just text messaging; some of the newer products allow you to make voice calls and video teleconferences all from the same interface.

Social Networking: The basis of this capability can be described by the game “Six Degrees of Kevin Bacon”, which is a representation of the concept that there are six connections, at most, that separate any two individuals in the world. The following is a simple example linking Elvis Presley to Kevin Bacon:
- Elvis Presley was in Change of Habit (1969) with Edward Asner
- Edward Asner was in JFK (1991) with Kevin Bacon

Therefore Elvis Presley has a Bacon number of 2. This idea can be applied to any large, online network, where the social network allows introductions to individuals via common acquaintances. The most familiar social networks on the Internet are MySpace, FaceBook and Friendster. There is another example called LinkedIn, which is focused on professional business networks and associations. Take my LinkedIn space as a real example. I have 37 first level connections (people I personally know and trust. At the second level (those 37 individuals, plus all their first level connections), I currently have 8200+ connections. At the third level, the number jumps to an astronomical 765,800+ connections. This particular network can be used for business development, research, recruiting, and job searches. The value provided is trust – I’m more likely and/or comfortable doing business with someone I know or with someone that is trusted by someone I know.

Blogs: Short for Weblogs, they are an easy way for an individual to publish information and capture discussion threads on specific topics. Sites like blogger.com make it simple to create a blog and post information, using templates to personalize the look-and-feel. They integrate with other tools, like Picasa, to post images, and even have a toolbar that plugs in to Microsoft Word that allows you, with a click of a single button, to post your current document on your blog. You can also post content via e-mail or wirelessly via your phone. There is also an element of self-organization to blogs. Bloggers link to each other, creating an automatic rating system of content. The blogger with the most links to his or her site is deemed to have the most valuable or interesting content. In conjunction with this column, I have started a blog to simplify and encourage our collaboration: http://george-romas.blogspot.com.

RSS: This acronym is usually expanded to Really Simple Syndication. The technology allows you to subscribe to all manner of content - newsfeeds, blogs, etc. - that is delivered (pushed) to you in a variety of ways. You can view content within your browser, from within a dedicated client application, or from within your e-mail client. There are now several vendors offering Enterprise RSS solutions (the first was NewsGator). This server-based solution collects all RSS feeds at a single point, from which it can disseminate to subscribers across the enterprise. Dissemination can be to individuals, groups, or roles. In addition, the individual (based on permissions) can forward or republish content (from individual articles to entire feeds) back out to the populace - again, to individuals, groups, or roles.

Bookmark-sharing: The most well-known site providing a URL (Uniform Resource Locator)-sharing service is http://del.icio.us. Even worse than acronyms, technologists like to generate strange, incomprehensible names. Other bookmark-sharing sites include: digg, Fark, furl, Spurl, and blinkbits! To begin, you create a personal login/space on the site where you can post interesting bookmarks and share them with the public or specific individuals. The process works as follows: upon creating your space (e.g. http://del.icio.us/gromas), you install a plug-in to your browser. As you surf the Internet, you can post a bookmark by clicking a button on the menu bar. For each posting, you can provide a description and define your own keywords related to the content. At that point, you can also publish to the public or to certain individuals. The site keeps track of the most searched/visited bookmarks, and the "most popular" individuals (people that consistently bookmark the most interesting - visited - information). This provides a self-organizing capability similar to the one described above in blogs.

Wikis: The word “wiki” comes from Hawaiian and means “fast”. A wiki provides the next step of functionality beyond blogs. In addition to posting information, you can modify any content on the site. The most famous wiki is the Wikipedia, an Internet encyclopedia that is open to any individual to provide content, edit information, and post comments. Here, we encounter that phrase “self-organizing” again. There is no central authority to a wiki, no organization that decides which content stays and what goes. The participants all come to tacit agreement as to what content remains in the repository. Both blogs and wikis have made inroads into our customer spaces, with initiatives like the Intellipedia generating some buzz. The main difference is that content on the Wikipedia can be posted anonymously; the Intellipedia requires more stringent authentication processes and procedures.

Search: All the technologies discussed above, except for chat, contain a component of search. There are a number of companies in this space; the most recent Gartner conference placed the following companies in their Magic Quadrant for Enterprise Search: Convera RetrievalWare, Verity/Autonomy, and Endeca. Many of the companies in this market have adjunct desktop search products. Some (e.g. Google, AltaVista, Ask, AlltheWeb, etc.) license their core engines and/or appliances to other companies and web sites, for use “behind” the search box.

I hope that this introduction to Web 2.0 technologies has been helpful and that with this column, and its associated resources, we can discover, understand and discuss the leading edge. Please feel free to contact me, ask questions, suggest topics, and use the resources listed in this column.


Ever curious,
George

Contact: Email: gromas@caci.com
Blog: http://george-romas.blogspot.com
IM: george_romas@yahoo.com, george_romas@hotmail.com, georgeromas@aol.com

Resources: http://www.ceruleanstudios.com (Trillian)
http://www.linkedin.com
http://www.newsgator.com
http://del.icio.us/gromas
http://www.digg.com
http://www.blinkbits.com
http://www.wikipedia.com
http://www.autonomy.com
http://www.convera.com
http://www.endeca.com