InfoQ

News

5 SOA Best Practices According to IBM

Posted by Boris Lublinsky on Sep 06, 2008 09:35 PM

Community
SOA
Topics
Enterprise Architecture
Tags
Service Design ,
IBM ,
SOA Adoption ,
Service Contracts

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.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.