SOA (Service Oriented Architecture) approaches enable businesses to align their IT investments with business objectives. After building the basic SOA infrastructure, such as an Enterprise Service Bus, enterprises often ponder what the next sensible step is on their SOA investment. IBM offers a set of registries and repositories to improve an organization's effectiveness during the Build, Model, Run and Manage phases of the SOA lifecycle. Some key benefits of such a portfolio are to improve SOA governance, increase service asset reuse, increase flexibility of business solutions and proactively manage change.
If one of the following questions is often being asked in your enterprise, you should consider incorporating a SOA registry or repository within your infrastructure:
- Everything was running fine until Monday, and now the application is failing… what changed?
- What will the business impact be if I take down a server/application/service for maintenance or upgrade?
- How do I get the maximum ROI for my development resources?
IBM has an end-to-end SOA registries and repositories portfolio to help customers reduce cost and time-to-market. The portfolio consists of WebSphere® Service Registry & Repository (WSRR), Rational® Asset Manager (RAM), and Tivoli® Change and Configuration Database (CCMDB). Each participates in the different phases of the SOA lifecycle and targets a focused end-user community. Each is designed to address the particular functional and non-functional requirements of a phase of the lifecycle, and deliver good integration capabilities right out-of-the-box. You can also perform additional customizable integration with their flexible and open APIs. In the following sections, we will first describe the basic functions of each product, then offer some selection criteria if you need to prioritize and implement them incrementally.
Rational Asset Manager
IBM® Rational Asset Manager (RAM) provides an implementation of the Reusable Asset Specification (RAS) from Object (OMG) to package and manage metadata of assets. RAS facilitates reuse through consistent, standard packaging of the asset together with interesting metadata that enables the asset to be found and reused.
As a collaborative software development asset management repository, RAM enables organizations to discover, manage and govern software assets. Assets could be any type of artifacts, e.g. documents, models, applications, components, or requirements etc. You can create a large complex asset that contains several smaller finer-grained assets; as well as create remote assets that link to a URL of actual assets. For instance, you can package industry standard models as remote assets and point users to download assets from organizations who own them to avoid potential IP issues. Likewise, you can create a remote asset in RAM from a CCMDB Configuration Items (CI), which will contain a link to the CI in CCMDB. Figure 1 shows the screen shot in RAM to create links for remote assets.
Figure 1. Create remote assets in RAM
Having RAM deployed, organizations can deliver innovative IT solutions faster, control development costs, reduce application backlogs and improve business flexibility and responsiveness to change through effective software asset reuse.
As an example of the value that RAM can provide, IBM has deployed a RAM instance internally to manage re-usable assets for its services teams. Those assets might be sales collateral, use cases, reference architecture diagrams, process flows, service definitions, or code components etc. Prior to the RAM instance, assets were held in a number of different repositories, team rooms (i.e. a type of collaboration application) and databases, with no standard metadata to enable effective searches. Each repository or team room had different access control lists that were maintained by different internal groups. With RAM however, assets that are useful to multiple engagements are stored in the repository together with their metadata, which enables them to be easily searched by worldwide communities. The following screen shot shows a sample categorization (a.k.a. taxonomy) of the assets. Some of the categorization comes preinstalled, but you can also customize the stored metadata to fit your individual enterprises needs.
Figure 2. Customizable categorization of the assets in RAM
Some of main features in RAM are:
- Describe, upload, download, categorize and package assets. You can even associate different, yet related assets together, e.g. business use cases and web service implementation.
- The intuitive Web-GUI client has a low learning curve and is primarily used by the administrators, managers and reviewers. With the Eclipse client, you can search, browse, download, package and update assets without leaving the Eclipse workspace.
- A powerful search function, that enables you to search contents using file extensions, categories, facets and keywords.
- Fine-grained permissions based on groups, roles, users or asset types.
- Integration with numerous upstream and downstream software products. You can perform version control for asset artifacts via integration with ClearCase and CVS. The artifacts in the assets that can be published from RAM to WSRR include XSD, WSDL, module, policy, and XML. Furthermore, assets in RAM can be published to CCMDB. Last, RAM also integrates with Rational Team Concert and ClearQuest.
- Facilitates collaboration by enabling rating, feedback, forum discussions, email subscriptions and RSS feeds for notification of asset changes and availability of new or updated assets.
- Leveraging out-of-the-box asset review and approval processes, or create customized processes.
- Track repository usage (e.g. repository contents, asset activity, and user activity reports) and quality metrics for reporting purposes.
WebSphere Service Registry and Repository
After marching down the SOA path for a while, IT organizations are often baffled with the following questions:
- What services do I have? How do we prevent duplication and promote reuse?
- Who is using the services? Once services are inventoried, we want to know who is using them in order to meet appropriate Service Level Agreements (SLAs). When the systems need to be scheduled for a maintenance job, we will know exactly who will be impacted.
- We want to create flexible and optimized interactions among services. How do services interact together?
WebSphere Service Registry and Repository (WSRR) helps you not only meet these challenges, but also maximize ROI from your SOA. It empowers you to easily and quickly publish, find, enrich, manage and govern services and policies. The ‘registry’ component supports publication of metadata about services, which allows service consumers to find services easily or to analyze their relationships. The ‘repository’ component implies it acts as a library to store and manage service metadata. One should not confuse WSRR with source control system, such as Rational ClearCase. WSRR is the master metadata repository for service descriptions (or metadata). ClearCase is a generic source control and version management system. The following screen shot provides a welcome Web-GUI of WSRR:
Figure 3. WSRR Web-GUI
For example, a large manufacturer has numerous IT issues: Applications reflect vertical business structure; a large portion of IT budget was spent on point-to-point integration and maintenance; duplicating efforts to provide similar business functionalities are common themes across projects. As a result, they realized they could not respond to business needs efficiently and timely.
Working with IBM, this organization selected and implemented a strategic SOA initiative. Furthermore, they set up an effective SOA governance body to ensure technologies are adopted in the optimal way. They used WSRR to manage and govern services. Multiple distributed topologies, from development to production, have been set up to follow rigorous governance in every stage of service life cycle. WSRR allows them to create composite business services easily, staying ahead of the change curve and reduce the cost of point-to-point integration.
Some of the main features in WSRR are:
- Encourage Reuse: Find and reuse services for building blocks for new composite applications, to avoid duplication and reduce cost.
- Enhance Connectivity: Enable dynamic and efficient interactions between services at runtime. It enriches connectivity with dynamic service selection and binding at runtime. WSRR ensures the high availability of services by leveraging dynamic service endpoint selection. If disruptions occur over some of endpoints, impacts to services are minimized.
- Help optimize service performance: Enable enforcement of policies. Perform impact analysis. It provides clear visibility into service associations and relationships.
- Enable Governance: Govern services throughout the service life-cycle supported by true end-to-end repository federation.
Tivoli Change and Configuration Management Database
The IBM Tivoli Change and Configuration Management Database (CCMDB) provides a platform for storing standardized configuration data and change histories to help integrate people, processes, information and technology.
The metadata in CCMDB primarily consists of Configuration Items (CIs), their attributes and relationships. CIs can include computer systems, databases, software images, Lightweight Directory Access Protocol (LDAP) services, network elements, application servers etc. Obviously, lifecycle states of CIs are important to manage CIs in CCMDB. The following screen shot demonstrates the CIs in CCMDB from RAM and CCMDB integration demo.
Figure 4. Configuration Items in CCMDB
For example, a leading global insurer experienced a high increase in IT resources and needed to control their budget due to business acquisitions and expansion. One of their main challenges was managing IT change and release management. Problems often occur when unforeseen resource conflict occur during implementation. The insurer wanted to automate manual processes, reduce the risks and labor by adopting best practices from Information Technology Infrastructure Library (ITIL), and have a better handle on impact analysis.
The insurer standardized and automated processes for change and release management by deploying IBM CCMDB, IBM Tivoli Provisioning Manager and IBM Maximo Asset Manager for IT software. The insurer has been able to deploy new services and apply service changes quickly and with fewer errors. In fact, some changes that previously took days to deploy have been reduced to just ten minutes.
Tivoli CCMDB includes the following key features:
- A non-intrusive, agent-free discovery mechanism provides fast, automated application discovery and mapping, which includes configuration detail.
- Easy integration with IT service management data sources and processes. You can leverage existing investments in operational management products to provide a consolidated view of the infrastructure.
- A portal interface to enable users to create, assign, monitor, notify, act upon and report on change requests and configuration items according to best practice ITIL process. This lowers the risks of change management.
- RAM and CCMDB are fully integrated out-of-box. This integration allows you manage software asset life cycle seamlessly from development to deployment and operations.
- Creation of custom discovery library adapters and integration modules.
There are two products related to CCMDB:
- IBM Tivoli Composite Application Manager for SOA (ITCAM for SOA), which monitors, manages and controls the Web services layer of IT architectures. It naturally fits together with CCMDB -- when the monitoring tool (i.e. ITCAM for SOA) tells you that component X is down, CCMDB will tell you what X is and how it connects to other components. ITCAM for SOA allows you to add fine-grained service relationship information to CCMDB to help manage service dependencies.
- IBM Tivoli Application Dependency Discovery Manager (TADDM) discovers the applications and the inter-relationships between them in an operational environment. CCMDB may hold information on applications and infrastructure, but TADDM helps discover such information.
Integration of RAM, WSRR and CCMDB
The relationships among RAM, WSRR and CCMDB are dynamic and interactive. Figure 5 below shows the interactions among them. The SOA lifecycle in the middle consists of four phases or contexts: Model, Assemble, Deploy and Manage. RAM is the repository of choice for the “Model” and “Assemble” phases. WSRR is in the “Deploy” phase and CCMDB is the repository for the “Manage” phase. Note the arrows in figure 5 demonstrate data flow directions – not suggesting a push/pull relationship.
Figure 5. The relationships among RAM, WSRR and CCMDB
The two-way arrow with label 1 shows the integration between RAM and WSRR. One can publish metadata artifacts related to services, e.g. XSD, WSDL, module, policy, and XML directly from RAM to WSRR. Changes in WSRR can also be synchronized and harvested back to RAM.
The two-way arrow with label 2 shows the integration between RAM and CCMDB. Assets in RAM can be published to CCMDB. As highlighted earlier, you can create or harvest a remote asset in RAM based on a Configuration Items (CI) in CCMDB, which can be then synchronized with CCMDB changes. Likewise, the CCMDB users can create a software image CI in CCMDB based on an existing asset in RAM. In both cases, cross links will be created between CCMDB and RAM to ease the navigation and change of context.
The two-way arrow with label 3 shows the integration between CCMDB and WSRR. ITCAM for SOA discovers services in WSRR and places these mission-critical services into CCMDB. WSRR will be notified if services go down in the operational environment.
As mentioned before, there are a few common questions on how to perform the end-to-end impact analysis of IT on business. With the right portfolio of SOA registries and repositories, you will be able to handle this complicated task with ease. For instance, if you want to determine the business impact of taking a server (or any types of hardware) down for a period of time, you could perform the end-to-end impact analysis by adopting the following steps:
- First, you pick which servers (or hardware) will be down in CCMDB. Let’s assume Application Servers will be taken down in this case. You will see which specific application servers will be taken down.
- Review the details of impacted services for a selected application server in WSRR.
- Drill down for a selected service:
- Show service details in WSRR.
- Display service consumers (business processes, other services) in WSRR.
- Related assets stored in RAM can be traced through CCDMB/RAM integration.
Support for scenarios like this are increasingly being requested by the business side of the house of our customers. Many are in simpler forms, such as to determine the impact on the business if another use of a service is granted, or to determine the business impact of changing a service in a functional or non-functional manner.
We have provided an overview of IBM’s SOA metadata registries and repositories portfolio: RAM, WSRR and CCMDB.
In summary, RAM is all about reusing software assets, from presentations, collateral, and architecture artifacts to software components and services. Once services are developed and deployed to WSRR, WSRR can dynamically select the service based on a given criteria (e.g. availability, performance, etc) from ESB (as implemented by WESB or WMB) at runtime. Furthermore, CCMDB then monitors and manages deployed services.
When the capabilities that the integrated set of repositories provide is considered, we hope you agree that the value of the whole exceeds the sum of the parts.
We’d like to extend our sincere appreciation to many the people who kindly offer their help in one way or another: Barbara McKee, Joshua Fox, Peter Coldicott, Ed Kahan and many more.
- More about WebSphere Service Registry and Repository.
- Find technical developer content and resources for IBM Rational Asset Manager and Reusable Asset Specification (RAS).
- Further details on Tivoli Change and Configuration Management Database.
- More about the integration of RAM and CCMDB, read "Rational Asset Manager and Tivoli Change and Configuration Management Database: Integration".