5 SOA Best Practices According to IBM
A recent white paper from IBM Global Services describes the lessons applied by IBM’s Academy of Technology to achieve success in their SOA implementations. They did that by focusing on five priorities:
- Develop architecture with a vision for the future - looking beyond simple connectivity and focusing more on architecture is the most common recurring need for SOA implementations.
- Foresee linkages from IT to your business processes - implementation of an architecture that transitions IT into the role of a service provider for business functionality.
- Create an organizational structure to support SOA including culture, skills, training, teaming, organization structure, decision making, reward systems, collaboration and governance.
- Build a scalable infrastructure - create a baseline for your services performance and scalability using appropriate instruments and measurements.
- Enable operational visibility - focus on governance and service management.
According to IBM:
To achieve a successful (SOA) deployment, a core architecture leadership team must first be established to ensure consistency of efforts and direct the vision of the architecture. Best practices specific to architecture ... can be grouped into ... distinct themes: reuse, data management,...
SOA reusability goes far beyond traditional code reuse. It has to be raised to achieve architecture reuse - the creation of a reusable architecture framework which facilitates SOA initiatives across the enterprise through careful planning, engineering and management.
You shouldn’t assume that existing Web services comply with standards or that they can be easily composed and integrated. Service composition is highly complex and often includes transactions, unit-of-work boundaries, error handling, security and propagation of credentials, and aggregation of business logic. As a best practice, you need to design services for reuse at the outset and increase reusability as the business case for the required effort progresses
says the white paper.
Many SOA implementations are focused on service implementation and do not pay adequate attention to the data management aspect of SOA. This lack of attention can result in data mismanagement, unreliable data and threats to data integrity. Many practitioners are still living in the realm of traditional point-to-point data requirements.
According to IBM:
As you move toward implementing data as a service, effective information metadata management and use of Common Information Model (CIM) is a key critical success factor. Using CIMs can help speed development by enabling you to establish standards and descriptive metadata for information that can be applied to all interfaces, messages, data structures and data transformations to support reuse. A model driven approach to standardize best practices will also accelerate development and provide for further consistency across interfaces and informational structures. Using this model-driven approach helps reduce the need for transformation, and makes it much easier to design transformations when they are required.
Creating a linkage between IT and a business:
...requires a purposeful effort to link IT to your business processes with a focus on future business process design - that is, you need to envision SOA solutions by examining how the business processes should run, not how they currently run ... Business process modeling provides an effective method for tracing life cycles of key business entities to yield simple, flexible business process models with consistent task granularity to more easily gain consensus among different stakeholders, both at the business and IT level.
Such modeling is only useful if it is based on solid methodology, ensuring that models are correct. If high level business process models are erroneous, it is difficult and expensive to refine them into executable business processes. According to IBM:
Component business modeling (CBM) as well as Service-Oriented Modeling and Architecture (SOMA) both support a best practices approach to modeling. CBM helps you analyze your enterprise by first partitioning it into relatively independent, non-overlapping business components to identify opportunities for innovation or improvement. Service oriented modeling is necessary for the creation of an SOA and for input uses the results of the business componentization analysis as well as business goals and key performance indicators. The output is an SOA which is independent of any specific technology as well as model for how it can best be realized using the appropriate technologies
The greatest number of lessons learned and best practices identified by IBM’s study relate to the impact of organizational factors including:
...moving away from a siloed organizational structure, which tends to limit thinking within the scope of individual projects. Integrating a large number of projects with their own agendas without some central control is nearly impossible and almost always inefficient. A best practice is to establish a design authority to engage technical stakeholders and promote early architecture decision making.
Another key factor to successfully obtain sustained benefits from SOA was identified by IBM as SOA governance which enables business and IT teams to better collaborate on identifying projects which contribute the most to achieve the business goals.
SOA governance should be introduced prior to your first major SOA project, during any initial SOA pilot projects. This positions your organization to successfully handle the complexity of a major project rather than treating it as a training mission. SOA governance should also align with your organization’s enterprise architecture program.
An enterprise wide and cross-project scope is needed to avoid overlapping and inconsistent governance models embedded within individual projects that may lead to confusion and slow downs.
A typical SOA implementation involves many services interacting with each other. Consequently scalability, reliability and high availability are among the most important requirements for SOA implementation. IBM recommends to:
As much as you can, use known solutions to meet reliability and performance requirements. Then design, test, and retest to confirm that your performance, scalability and interoperability requirements are met. Never deploy a solution without properly addressing and testing these nonfunctional requirements.
Another key factor for SOA success is ensuring operational visibility and control of the implementation:
Problem and incident management systems along with problem determination and troubleshooting utilities should provide a sufficient configurable level of information at all levels of your architecture. At the same time, selecting technological solutions that simplify SOA infrastructure management will help limit complexity.
The five factors described in IBM’s paper can help companies and individual SOA practitioners to focus on the most important faucets of SOA implementation ( compare to my previous post), and consequently more efficiently meet their investment objectives as they plan for and deploy a SOA. They will also help to deliver ongoing benefits as SOA is extended across enterprise solutions.