The first installment in this series described both usage patterns and technologies that contributed to the current rise of community-driven SA development in the enterprise and compared and contrasted it with the more traditional, corporate-focused SOA initiatives. It examined life cycles, technologies, and social aspects of each and then described how you can use SAs in an enterprise to improve the state of corporate computing.
The second article described the IBM Situational Applications Environment (SAE) that was built to enable individuals and small teams to create ad hoc composite applications that address their immediate business needs. Part 2 also described the changes in the enterprise required to build such an environment and challenges you must address while building it. In particular, it examined access to enterprise data, privacy and security concerns, and some lightweight development tools.
In this final article, you examine three SAs. We selected these applications to represent a wide variety of business challenges that SAs can be leveraged to solve. Some of these commonly occur across lines of business (LOBs) and are of general interest. Others are LOB-specific, yet with typical challenges that can be successfully addressed by an SA. In addition to a business context, along with each examined application this article describes the business challenge and an architectural overview of the resulting solution with the enabling technologies and tangible business results achieved by each. You also read about the lessons learned from our experience developing each SA.
Patent Family Tree situational application
IBM's Intellectual Property (IP) division comprises a small team with a limited IT budget. Lots of their processes are manual, including often combing through various data sources to assemble and analyze patent data. One of the important analysis steps that the team performs is creation of a Patent Family Tree, which visualizes all filings that a given company has done around a patent. The family-tree analysis helps users understand how development has evolved from and around a particular patent. Prior to the development of this SA, an IP analyst had to do a manual search of the European Patent Office (Espace) and Delphion Research intellectual property network (Delphion) sites to find all patents that directly or indirectly share a dependency. An analyst then manually assembled these patents into a dependency diagram. This process normally consumed hours of their time.
The developed SA provides an analytical tool to obtain a navigable graphical portrayal of a patent family through automated analysis of patents. In addition, the tool allows an analyst to view details of the patents in the patent family and provides functionality to print/export the resulting diagram in various formats.
Figure 1. Patent Family Tree architecture
As depicted in Figure 1, the application consists of four main components:
- Patent Services creates Representational State Transfer (REST)-based services for ESPACE and Delphion to extract patent information by screen scraping.
- Patent Family Tree Consolidator creates a consolidated view of ESPACE and Delphion services. The consolidated view is exposed as an ATOM document.
- Patent Family Tree Logic applies the business logic to generate an XML dependency graph for the patent.
- Family Tree Visualizer transforms the XML file into the requested format (either SVG or PNG) by applying defined XSL Transformation (XSLT). This SA was written as a PHP application.
Automation of this process improved analysts' ability to create accurate Patent Family Trees through:
- Reducing the time required to generate tree diagrams.
- Eliminating manual errors by fully automating the gathering and creation of a tree structure.
The Patent Family Tree SA reduced processing time from 2.5 hours to 4 minutes.
Virtual Team situational application
In today's organizations, client teams are distributed across various geographies and various departments. Traditional on-site employees often work from home or from remote locations. This creates a new problem within an enterprise: The employees are becoming more isolated, and on-site social interactions are less frequent. These interactions are crucial when it comes to client engagements. There needs to be a system that can locate two employees who are on the same client team and in the same physical location.
A developer of this application selected a SnipSnap HTML-enabled wiki as an assembly tool (see the Resources section for more information about SnipSnap). SnipSnap, through its templates, allowed mashing various services together without requiring much infrastructure. (Figure 2 shows the Virtual Client Team Locator architecture.)
IBM Lotus® Sametime® is widely deployed in the IBM intranet. Every IBM employee has the application and ability to, among other things, broadcast their location to the Sametime location server. This server exposes the location information and instant-messaging status (for example, available, away, and do not disturb) of an employee as a SOAP service. We developed a proxy REST composite service returning an employee default work location extracted from the IBM BluePages internal directory when the location was private or was not found from the Sametime location server.
The IBM sales organization maintains an internal database of client-to-employee mapping, called Client Transformation Project (CTP). Using an internally developed simple Java™ 2 Platform, Enterprise Edition (J2EE)-based framework called NOVA that exposes JavaBeans as REST services, client-to-employee mapping was extracted and presented as a REST service. Three SnipSnap wiki pages acted as widgets (Location widget, ClientInfo widget, and Map widget), with an additional wiki page acting as a widget aggregator. The Location widget extracted the location through the Locator Service. The ClientInfo widget extracted the teams an employee belongs to. The data from these two widgets were passed to the third widget, which analyzed and extracted other employees in the same client team, using the data from the Location widget and the data from the ClientInfo widget as the filter. The returned information is then displayed using a Map service, such as Google Maps or Yahoo Maps.
Figure 2. Virtual Team architecture
The Virtual Team application was created to assist the sales team's communication by visually locating an account team for a specific client and instantly determining who was available. On a navigable map, the application combines current employee location and instant-messaging status with internal directory information and the sales organization list of client executives and representatives. The user can choose to send an instant message to logged-in colleagues or an e-mail to those who are disconnected.
The application created a way to visualize on the map where the members of the team are physically located. The visualization was created as one of the ways to increase collaboration between employees within the same account team. With so many projects going on within IBM, it's hard to keep track of peers and where exactly they are located. This SA shows how you can mix enterprise data and user-defined data to increase employee collaboration. As an outcome of the project, the sales and distribution team and enterprise business information team have partnered to create a much richer application.
The application was built in less than 40 hours over four weeks.
Software License Library situational application
There's a compelling case to be made for reusing third-party software licenses that IBM employees have purchased. When employees leave IBM or move into different organizations, they no longer need those licenses. The idea was that a software license repository, created through IBM employee participation, would make efficient use of software reuse within IBM. At the same time it would provide a way for the employees to manage their own licenses. The idea of creating a Software License Library was submitted in ThinkPlace, IBM's internal innovation marketplace. The idea conceptualized a tool for community-driven software license management. To quickly take this idea from concept to a prototype to show its business value, we implemented this idea as an SA.
The Software License Library SA provides a mechanism for employees to manage their licenses and release licenses they no longer need to the IBM community for reuse.
Figure 3. Software License Library architecture
Figure 3 depicts the Software License Library architecture. This was the first business application to showcase an emerging IBM Software Group Web 2.0 offering, Project Zero (see Resources to learn more about Project Zero). We leveraged the Development Engagement Service (DES), which was provided by IBM alphaWorks. It provides the capability to store and manage form data in a structured format through REST services. The application uses Asynchronous JavaScript + XML (Ajax) and JavaScript Object Notation (JSON) to dynamically display the license information. The SA was built as a Rich Internet Application (RIA), using Dojo and Project Zero client programming models. All user interface (UI) components were built as Dojo widgets. To render content, each widget contacts the License Management Services using Ajax. This service returns a response in either XML or JSON format. The License Management Services component leverages the DES to extract and return the requested content from the database.
IBM employees purchase software licenses to complement standard platforms. Individual employees don't own these licenses; rather IBM owns them. When these licenses are no longer needed or when an employee leaves IBM, these licenses can be transferred to another IBM employee (if the license agreement allows). This provides significant financial savings.
Providing employees an easy way to retrieve their own licenses also saves a significant amount of time for the employees if they need the license again in case of a computer system crash or transfer to a new machine.
The SAE project, as of the writing of this article, is over a year old. The lessons learned were collected from both the individual developers and from within our team.
SAs within an enterprise context need to manipulate or access enterprise data. Here are a few of the lessons learned while working with the enterprise data:
- While working on the Virtual Team SA, we discovered that some of the fields within the CTP database were never updated. After technical discussion with the CTP team, we discovered that there were fields that were created but not populated or kept up to date. When it comes to SAs, data quality is a key issue. Enterprise data sources are created over stretches of time and may contain fields that are obscure and not used. After you open your data source through services, the obscure and unused fields can be exposed and used without much clarity on definition and usage of these fields. This can lead to misinterpretation and misrepresentation of the data contained in the enterprise data source.
- A few days after we deployed the Patent Family Tree Visualization SA, we started getting questions from employees outside the IP organization about the data source and the process we were using to generate the visualization. We updated the entry in the SAE catalog and added the data sources and a brief description of the process to generate the visualization. It's hard to trace the provenance of the loosely coupled applications, such as SAs. These types of applications need to take additional steps to document the data sources and the processes used to generate the result.
In the traditional work environment, employees have certain levels of expectations from the applications they use, such as performance and reliability. SAs might not be able to live up to these expectations.
Initially, the Software License Library application was created for use within one department. The development team had already started developing the application with the expected audience in mind. After the application was put in front of some of the developers, it became clear that this application would attract a much bigger audience then expected. So the developers had to create a caching mechanism to scale the application. SAs are usually developed as good-enough solutions; by definition they're created to solve a specific problem for a small team or group. If this solution develops an audience wider than the initial audience, this can raise performance issues. SAs are dependant on other applications to provide the services to them. The performance of these services can impact the overall SA. Providing an interim cache that can cache the most-used data can improve performance.
The three applications mentioned in this article highlighted a common lesson: When working with enterprise data and SAs, the application builders need the same level of access as the business analysts. Not having the same access to the data causes a longer test cycle. The developers can't test the application sufficiently. Due to the nature of SAs and the agile development methodology, long test cycles break the model of SAs.
This series of articles describes the SAE created within IBM, provides an understanding of various SAs, and shows how they can be used to deliver business value within an enterprise. The case studies show that the SA paradigm can provide business value through quick introduction of applications to employees and how agile development can be achieved to get buy-in from traditionally conservative groups within an enterprise.
Corporate IT will gradually move from being the exclusive provider of enterprise systems to an enabler and facilitator of solutions built by self-reliant employees. We argue that this change is a necessity. The health, competitive power, and even survival of an enterprise largely depends on its ability to understand and harness the power of knowledge workers who are enabled to take responsibility for providing automatic solutions to meet many of their business needs.
We thank Robi Brunner for developing the NOVA services framework, which we leveraged in the Virtual Team SA. Thanks to Rob Dordick for collaborating with us on the Patent Family Tree visualization; without his knowledge of patent workflow and processes, we would not have been able to create this application. The Software License Library would not be in existence without the hard work and direction provided by James Hughes, Jeffery Cassens, and David Hoffman, as well as Rich Rogers and Michael Burch who approached the SAE team to develop the Software License Library.
Learn
- Read the IBM Systems Journal,
"Impact of service
orientation at the business level"
by L. Cherbakov, G. Galambos, R. Harishankar, S. Kalyana, and G. Rackham.
- Read the IBM Systems Journal,
"Changing the corporate IT development model: Tapping the power of grassroots computing"
by L. Cherbakov, A. Bravery, B. D. Goodman, A. Pandya, and J. Baggett.
- Read
"SOA antipatterns,"
(developerWorks, Nov 2005).
- Check out Dion Hinchcliffe's blog
Mashups: The next major new
software development model?.
- Read
"Two views
of Web 2.0 in business"
by Nickolas Carr.
- Learn more about
REST.
- Learn more about
Scalable Vector Graphics (SVG).
- Learn more about
Portable Network
Graphics.
- Find out more about
SnipSnap and blikis.
- Get more information about
Lotus Sametime
-
Project Zero is the development
community for WebSphere sMash.
- Learn more about the
IBM alphaWorks
Development Engagement Service (DES).
- The
SOA and Web services zone
on IBM developerWorks hosts hundreds of informative articles and introductory,
intermediate, and advanced tutorials on how to develop Web services applications.
- Play in the
IBM SOA Sandbox!
Increase your SOA skills through practical, hands-on experience with the IBM SOA
entry points.
- The
IBM SOA Web site
offers an overview of SOA and how IBM can help you get there.
- Stay current with
developerWorks technical events and webcasts.
- Browse for books on these and other technical
topics at the
Safari bookstore.
- Check out a quick
Web services on demand demo.
- Get an
RSS feed for this series.
(Find out more about
RSS.)
Get products and technologies
- Download a trial version
of
Lotus Sametime.
- Innovate your next
development project with
IBM trial software,
available for download or on DVD.
Discuss
- Participate in the discussion forum.
- Get involved in the developerWorks community
by participating in
developerWorks blogs.

Aroop Pandya is a senior software architect in the office of the IBM CIO. He has extensive experience in software development with IBM WebSphere® Application Server, IBM DB2®, NNTP, and HTTPServer.

Ms. Cherbakov, an IBM Distinguished Engineer and a member of the IBM Academy of Technology, is a key technical leader in the IBM CIO Office. Currently she drives the Situational Applications Environment Initiative that brings together Web 2.0 technologies, growing availability of services, and enterprise data. Ms. Cherbakov is a recognized expert in enterprise architecture design and development of complex distributed applications using service-oriented and component-based methods. She's an author and contributor to the IBM Service-Oriented Modeling and Architecture (SOMA) method, reference architectures, the Architectural Description Standard, and grid computing assets. Ms. Cherbakov is a two-time recipient of the IBM Outstanding Technical Achievement Award and a recipient of the IBM Corporate Award, the highest technical award for unique technical contributions of superior business value. She's a member of the IEEE Computer Society, the Society of Women Engineers, and the Association for Computing Machinery, and holds a master's degree in computer science from George Washington University.

Mr. Bravery is a senior IT architect in IBM Software Group Architecture Board Incubator Projects team. He's on a rotational assignment with the IBM CIO Office as the chief architect of the Situational Applications Environment, for which he recently received an IBM Outstanding Technical Achievement award. Mr Bravery has a rich background of experience working in the emerging technology field in areas such as object-oriented programming, content management and portals, and multichannel architectures. His recent work has been around simplified programming models and Web 2.0 technologies, and how they can be applied to development in the enterprise. Mr. Bravery is a member of the British Computer Society and holds an honours degree in physics from the University of Birmingham, UK.




