The Open Group SOA Source Book
Show/Hide Plato Messages   You are here:  > SOA Source Book > High-Level Perspective of the SOA RA
Register Here

Submit a Presentation

High-Level Perspective of the SOA Reference Architecture

This high-level perspective shows the conceptual building blocks of an SOA solution, and how they relate to each other. It can be used as a basis for specific solution models, and also for models of larger SOA systems, including those of enterprise SOA.

The perspective is derived from “The SOA Solution Stack: A Reference Architecture for Designing SOA Solutions” submitted by IBM as input to the Reference Architecture project of The Open Group's SOA Working Group. The original reference architecture is described in an IBM developerWorks article.

Overview

The reference architecture classifies the SOA-related building blocks into nine layers, as shown below.

High-Level SOA Model

The first five layers contain building blocks whose purposes relate to business functionality. They support each other in a hierarchy, although its layering is not strict. In order, from bottom to top, they contain building blocks that are:

  • Existing application assets and other programs (the Operational Systems layer);
  • Software components that help to perform services and may leverage existing assets (the Service Components layer);
  • The services that are in the service portfolio, and hence available for use in solutions, including through discovery and composition (the Services layer);
  • Business processes, and service compositions that they use, including orchestrations and choreographies (the Business Process layer); and
  • The people and external systems that participate in the business processes, and their interfaces to the services (the Consumers layer).

The remaining four layers support the layers related to business functionality, but do not support each other in a strictly layered hierarchy. They contain building blocks whose purposes relate to:

  • Integration of other building blocks (the Integration layer);
  • Quality aspects of system operation (the Quality of Service layer);
  • Information (the Information layer); and
  • Governance (the Governance layer).

Operational Systems Layer

The building blocks in this layer are programs and data of the operational systems of the enterprise. For example, a bank might have building blocks such as “customer relations management”, “customer database”, “internal accounting”, and “settlement” in this layer. They include:

  • Applications and data stores with functionality required to deliver the service functionality in the Service Layer; and
  • Infrastructure programs such as operating systems, database management systems, and runtime environments.

Service Component Layer

This layer contains programs, other than the programs in the operational systems layer, that help to perform services.

The asset wrapping and virtualization features of SOA are supported by building blocks in this layer.

The building blocks in this layer include:

  • Programs that “wrap” the programs in the operational systems layer to create services;
  • Programs that are written to perform services and deliver the service functionality themselves; and
  • Groups of such programs.

The Service Component Layer enables IT flexibility by strengthening decoupling in the system. Decoupling is achieved by hiding volatile implementation details from consumers.

As well as insulating consumers from the service implementation, a service component provides a point at which compliance with the service contract can be monitored or enforced.

Services Layer

This layer contains the portfolio services. Each service conforms to a specification that provides sufficient detail to enable a consumer to invoke the functions exposed by the service provider.

This is the central layer of the model. Its building blocks support the basic service feature of SOA.

Examples of portfolio services, in a banking context, might be “identify eligible customer account”, “validate transfer”, “submit transfer”, “move funds”, and “complete transfer”.

Portfolio services can be composed of other portfolio services. For example, “move funds” might be composed of other portfolio services including “move funds from source” and “move funds into destination”.

In an enterprise architecture development, as opposed to a solution design, you are likely to be dealing with groups of related services rather than individual services. An example of such a group might be “funds transfer services”.

The building blocks in this layer include:

  • The portfolio services themselves;
  • Compositions in which portfolio services are composed of other portfolio services;
  • Groups of services and compositions covering functional areas;
  • Data created or used by the portfolio services; and
  • Service descriptions, contracts, and policies.

Business Process Layer

This layer contains the business processes. An example might be “transfer funds”.

Business processes can be composed of other business processes and of portfolio services. For example, “transfer funds” might be composed of other business processes including “create transfer” and “process transfer”.

The lowest layer typically includes business processes that are composed of portfolio services. For example, “create transfer“ might be composed of portfolio services including “submit transfer“ and “move funds“.

The building blocks in this layer include:

  • The business processes themselves;
  • Compositions in which business processes are composed of other business processes and of portfolio services; and
  • Information created or used by the business processes.

Consumer Layer

This layer contains the users of the system and the programs by which they interface to the portfolio services. Examples might be “customer” and “on-line banking portal”.

Building blocks in this layer include:

  • People, organizations and programs that take part in the business processes (the consumers);
  • Interface programs that present information to and accept information from the consumers, such as channels, portals, other human-computer interface programs, format converters, and interface configuration programs;
  • Data used by the interface programs, such as user profiles and interface configurations.

Integration Layer

This layer contains building blocks whose function is to enable integration of and communication between other building blocks. It gives the ability to decouple service providers and consumers, which adds flexibility to the architecture.

The messaging, message transformation, complex event processing, service composition and service discovery features of SOA are supported by building blocks in this layer.

Quality of Service Layer

This layer contains building blocks whose functions are concerned with monitoring and management of the quality of service of the architected system, including its performance, security, and manageability.

The message monitoring, message control, and message security features of SOA are supported by building blocks in this layer.

The layer also includes building blocks such as performance managers, security managers, and configuration managers.

Information Layer

This layer contains building blocks whose functions are concerned with the transformation and management of data.

The message transformation feature of SOA is supported by building blocks in this layer.

The layer also includes building blocks such as:

  • Information models;
  • Vocabularies;
  • Data models;
  • Data representation models;
  • Programs that expose data as services;
  • Data search engines;
  • Data mining engines; and
  • Document management systems.

Governance Layer

This layer contains building blocks whose function is concerned with implementation and operational governance.

The layer includes building blocks such as:

  • Governance rules and procedures; and
  • Services and programs that support the application of the rules and the operation of the procedures.
If you experience any problems with broken links, or incorrect or unexpected functionality, click here to request help.
   |   Legal Notices & Terms of Use   |   Privacy Statement   |   Top of Page   Return to Top of Page
  PHPlato: 2.0 (550) [p]