Of all Capability Maturity Models (CMMs), the IBM SIMM is considered the most flexible, including flexibility in its representation of the level of service integration in each stage. Because of this, as well as organizational changes and its ability to adapt to changes in service integration process activities as a result of new technologies, developers should build Web services as a supplement to the SIMM.
You should first start with a hierarchy or workflow of the process activities you want to put in the repositories. Then put together or reuse desired process activities from these repositories to build Web services. Next, you should test the resulting Web services SIMM applications. When the tests show a success, put Web services in a repository (known as Repository Web services) for reuse later on as process activities change.
The SIMM is grouped into seven maturity stages or levels. Each maturity stage indicates the level of flexibility and decoupling of service integration with a brief explanation. As each stage goes to the next level up, it indicates the higher level of service integration. The process continues until the model reaches ecosystem integration as its top level.
Level 1: Silo
In this data integration level, the organization starts from propriety and ad hoc integration, rendering the architecture brittle in the face of change.
Level 2: Integrate
In this application integration level, the organization moves toward some form of Enterprise Application Integration (EAI). The approaches it uses are tailored to use legacy systems.
Level 3: Componentized
This functional integration level allows the organization to componentize and modularize major or critical parts of its application portfolio. It refactors legacy Java™ 2 Platform, Enterprise Edition (J2EE)- or Microsoft® .NET-based systems with clear component boundaries and scope, exposing functionality in a more modular fashion.
Level 4: Simple services
At this process integration level, the organization embarks on the early phases of SOA by defining and exposing services for consumption internally or externally for business partners. It acts as a service provider.
Level 5: Composite services
This supply-chain integration level allows the organization to extend its influence into the value chain and into the service ecosystem. Services form a contract among suppliers, consumers, and brokers who can build their own ecosystem for on demand interaction.
Level 6: Virtualized services
In this virtual infrastructure level, the organization creates a virtualized infrastructure to run applications. It achieves this level after decoupling the application, its services, components, and flows. It externalizes its monitoring, management, and events (common event infrastructure).
Level 7: Dynamically reconfigurable services
The organization, in the ecosystem integration level, now creates a virtualized infrastructure to run applications. It achieves this level after decoupling the application, its services, components, and flows. It externalizes its monitoring, management, and events (common event infrastructure).
The SIMM can't skip any stage as it moves from the lower maturity level to the higher maturity level. The model can't go backward from a higher level to the lower level, say, on process integration due to the changes in the process activities of an organization's original role as the service provider, as a result of an unlikely merger. It's also not possible for the model to send a message from a later stage (for example, composite services) to a prior stage (for example, simple services) to request an update on the role of the organization (for example, service provider) due to changes in the process activities.
To handle these changes, I propose the development of Web services as repositories of hierarchical process activities and reusable Web services. You can retrieve process activities from the repositories and combine them into custom Web service functionality while eliminating redundancy of the activities. You can use the combined functionality in a Web service SIMM to communicate with and supplement simple, composite, virtualized, and dynamically reconfigurable services of the model.
Hierarchy of process activities
At the bottom of the hierarchy is a task, the basic element of process activity. At the next level up is a group of sequenced tasks to perform single process functionality. At one level up, you group functionalities together in loose or tight coupling manner -- all within a process activity. Single process activities can then be combined to form a more complex process activity. The process continues until the top-level process activity is reached.
In a top-down fashion, you start with the top-level process activity that is grouped into three or more levels of process activities. Each of these activities is further broken down into lower-level activities, functionalities, and tasks.
In both versions, you can see how each process activity flows to another at different levels. A process activity can skip a level to get to another activity at a higher or lower level in the hierarchy.
One advantage of using hierarchy is that you can see how the workflow changes, and where tasks and functionalities, are redundant -- as well as how redundancy can be removed. Another advantage is that the process activities evolve and change, and then you can adapt the workflow in the hierarchy to incorporate the changes.
Furthermore, you can see how and where a higher-level process activity sends a feedback message to a lower-level activity, or vice versa. The flexibility of incorporating changes in process activities leads itself to process control. In other words, if performance of a process activity slides from an acceptable threshold, the flexibility allows you to find out what process activities impact performance and need improvement to bring the performance up to the threshold.
To check the performance of a Web service SIMM, you need to develop in the following order:
- Repository Web services
- Web service workflow analyzer
- Web service redundancy analyzer
- Web service performance analyzer
To save development time, you can automate testing of Web service applications using Rational Functional Tester Plus and Rational Performance Tester for Microsoft Windows® and Linux®. Automation is important, as a decision maker may not afford the time to wait to learn the results of how the process workflow works and performs. The decision maker may make instant decisions on critical issues.
The first tester tool allows testing teams to test applications in Java and .NET, and includes IBM Rational Robot, which aims to test applications built with Oracle Forms, Microsoft Visual Basic, C/C++, Sybase PowerBuilder, and Borland Delphi. The second tester tool analyzes tests to validate the reliability of complex e-business applications and has optional extensions to Siebel and SAP applications.
You need to develop a Repository Web service to store and retrieve code on process activities in repositories. You should organize the repositories around important elements in higher maturity levels. They include organization, on demand interaction (between service providers, consumers, and brokers), applications, and events.
The primary aim of the Web service workflow analyzer is to advise the users or developers what tasks, functionalities, or process activities from the repositories can work together in a workflow. You can choose from alternative workflows that you can use to create a Web service performing a single function of supplementing the SIMM.
Web service redundancy analyzer
When combining process activities into a single Web service function, you need to develop a Web service redundancy analyzer. If the analyzer shows that the Web service SIMM to be created will result in redundant or duplicate services, it sends you a message about the preferred way of combining the tasks, functionalities, and process activities or reducing the redundancy. This means downsizing the code is necessary.
Web service performance analyzer
There should be a mechanism, such as a Web service performance analyzer, to suggest what combination of process activities can perform the best in consuming scarce resources. The analyzer should determine that the Web service SIMM consisting of the combined activities won't result in system overloads.
Supplementing with process activities
Consider two scenarios on supplementing the SIMM with Web services built with process activities from repositories:
Suppose an organization in the simple services stage eventually merges with another organization. The merged organization offers a different set of services to be exposed for consumption internally and externally with business partners.
You need to call scripts from a Web service repository to perform a process activity, such as automatically updating the services the merged organizations provide for exposure to consumers and brokers. Then you and a testing team test the results from the analyzers with Rational tester tools to check for workflow, redundancy, and performance.
Scenario 2: Composite services
The composite services level doesn't say anything about the impact of the merger or other forms of reorganization on the consumers, producers, and brokers in a contract. One impact example is not only the merged organization's changes in its consumption needs, but also the merged supplying organization's changes in its supply resources due to new technologies and new regulations.
What about the brokers (also known as the mediators) who broker services (travel) for many service consumers to specific providers (hotel chains)? When brokering organizations merge, how does this impact the changes in the resulting brokering services? You need to call scripts from a Web service repository to update the process activities in the contract between the producers, consumers, and brokers. Then you and a testing team test the results from the analyzers with Rational tester tools to check for workflow, redundancy, and performance.
Developing Web services to supplement the SIMM requires collaborative efforts from a team of developers, testers, system administrators, and potential users. It requires planning ahead to create, test, and deploy Web services when building a workflow of process activities from the repositories to eliminate redundancy and ensure the deployment won't result in system overloads.
You'll find that resolving the issues makes your job of developing Web services to supplement the model much easier. You can use IBM Rational Functional Tester Plus and IBM Rational Performance Tester to increase productivity by reducing testing time in the build/release cycle.
Learn
- This entire series on working with Web services in enterprise-wide SOAs by Judith M. Myerson offers information on how to work with Web services in enterprise-wide SOAs.
- Judith M. Myerson's series, Use SLAs in a Web services context, has details on service-level agreements.
- Get details on IBM Rational Performance Tester and Rational Functional Tester Plus.
- Read Judith M. Myerson's book The Complete Book of Middleware, which focuses on the essential principles and priorities of system design and emphasizes the new requirements brought forward by the rise of e-commerce and distributed integrated systems.
- Get the business insight and the technical know-how to ensure successful systems integration by reading Enterprise Systems Integration, Second Edition.
- IBM Redbooks: Tivoli® Manager for Domino® V2.1 Fulfilling Service Level Agreements Using Tivoli Technology gets to the nuts and bolts of developing a service-level agreement.
- Want more? The developerWorks SOA and Web services zone hosts hundreds of informative articles and introductory, intermediate, and advanced tutorials on how to develop Web services applications.
- The IBM SOA Web site offers an overview of SOA and how IBM can help you to get there.
- Stay current with developerWorks technical events and webcasts.
- Get an RSS feed for this series. (Find out more about RSS.)
Get products and technologies
- Get installation details on IBM WebSphere® Application Server.
- IBM trial products for download: Build your next development project with IBM trial software, available for download directly from developerWorks.
Discuss
- developerWorks blogs: Get involved in the developerWorks community.
Comments (Undergoing maintenance)





