The Open Group SOA Source Book
Show/Hide Plato Messages   You are here:  > SOA Source Book > The Building Blocks of SOA
Register Here

Submit a Presentation

The Conceptual Building Blocks of SOA

Architects develop models to show different aspects of the systems that are to be created or modified in accordance with their architectures. These models are constructed of building blocks, which are abstractions of the system components.

There are many different kinds of architecture and solution building block. You can abstract as a building block any part of a system that you want to think about. This section describes the building blocks that are commonly used for SOA. Some of them are also used for other styles of IT architecture.

They are described at a high level of abstraction, for example service and program. An architectural model would typically show less abstract building blocks, for example payment service or messaging program, that fall into categories defined by the building blocks described here.

Services

Service is of course the most important SOA concept.

  • A service is a repeatable activity that has a specified outcome.

A service has a provider, can have one or more consumers, and produces effects that are of value to its consumers.

Providers and consumers see services from different points of view. To a consumer, a service is a black box. Two services are the same to a consumer if, given the same inputs, they produce the same effects. To a provider, a service is a means of exposing capabilities. Two services are different to a provider if they have different mechanisms for doing this, even though they produce the same effects. Architects talk to providers and to consumers, and must be able to see services from both points of view.

Consumers use services in their business processes. These business processes are mechanisms by which the consumers may themselves provide larger services. Such services, whether provided to consumers outside the enterprise or within it, are called business services.

From a provider's perspective, a service can be performed by people, by technology, or a combination of people using technology. Services that are performed by software programs are the key components of a service-oriented architecture. They are called software services. In any particular service-oriented architecture, there is often a set of software services that are identified for processes such as discovery and composition. They make up the architecture’s service portfolio, and they are called portfolio services.

Business Processes

  • A business process of an enterprise is an activity that is related to the enterprise's business mission and that is conducted in a defined, repeatable way.

People often take part in business processes. It is sometimes tempting to think of a business process as “a process in which people take part”, but it is the relation to the business mission, rather than who or what takes part in it, that characterizes a business process.

Modeling business processes is an important element of enterprise architecture development. The Business Process Modeling Notation (BPMN) defined by The Object Management Group (OMG) is a formal notation for describing business processes that is becoming increasingly accepted.

When business processes are modeled, the people that take part in them are referred to as human actors.

Software programs can take part in business processes also. The software services of an SOA exist to support the enterprise's business processes. This relation can and should be symbiotic. Analysis of the business processes is the main way of identifying software services. On the other hand, the existence of the right software services enables new business processes to be developed, to meet new business opportunities.

Human Actors

An actor is someone or something that does something. Actors of various kinds can be abstracted as building blocks.

  • A human actor is a person that does something in relation to an architected system.

Human actors appear when business processes are modeled, and also in models showing other aspects of the system, such as management and security.

A model generally shows an abstraction of a person, rather than a real person: “president”, rather than “George Washington”. The word “role” is sometimes used, rather than “actor”, because of this.

Other kinds of actor may be encountered in IT architecture. A technology actor is an actor that is a machine or other piece of technology. It could be hardware, software, or both. A program is one particular kind of technology actor; a data store is another. An organization actor is a system whose components can be people, technology items, and other things, and that is regarded as a single actor.

Events

Events to which business processes or services respond can be building blocks too.

  • An event is something that happens.

An event is not necessarily associated with any particular business process or service.

Like human actors, events appear when business processes are modeled, and also in models showing other aspects of the system, such as management and security.

Service Descriptions, Contracts, and Policies

An important feature of services in SOA is that they have descriptions that state clearly what they do and how to interact with them.

A description is an information item that is represented in words, possibly accompanied by supporting material such as graphics.

  • A service description is a description of a service.

A service description can be represented in informal text but, for many purposes, it is better to use a structured description language. The Web Services Description Language (WSDL) defined by The World-Wide Web Consortium (W3C) is widely used for this purpose.

A contract is an agreement between two or more actors - the parties to the contract. The term is most commonly used for a written agreement, or one that is enforceable at law, but it can be applied more widely.

  • A service contract is a contract between the provider of a service and one or more of its consumers.

A service contract may be an implicit agreement that the service will conform to its description, or it may be a more formal agreement, which could be recorded in a signed internal enterprise document, or be a legal contract executed between enterprises.

A service contract covers functionality (what effects the service produces), and often also covers service quality. Service quality typically includes the service's performance and security characteristics.

A policy is a course of action that a person or organization intends to follow, or intends that another actor should follow.

  • A service policy is a course of action that a service provider intends to follow in providing a service, or intends that the service consumers should follow.

For example, an enterprise might have a policy that certain services are provided only to internal consumers, or a web service provider might have an “acceptable use policy” that states what consumers of its service may and may not do.

Service description, contract and policy building blocks appear in models that show how services are consumed. In SOA, this is a very important aspect of system implementation and operation.

Service Compositions

A composition is a collection of things that are put together to form a single thing.

Services can be composed of other services. Business processes can be composed of services and other business processes.

  • A service composition is a collection of services that are put together to form a single service.

Service composition is a provider's concept. It relates, not to what a service does, but to how it is performed.

Service compositions appear in models that show how business processes are supported by services. They may also appear where functionality that is not related to the business mission is implemented using a service-oriented approach, in a model of a service-oriented infrastructure, for example.

Programs

  • A software program is a set of instructions for a computer to perform a specific task.

Software programs relevant to SOA include programs that contain instructions to perform services. When such a program is executing, we generally say that it (rather than the computer that carries out its instructions) performs the service.

A software service is different from the program that performs it, just as services performed by people are different from those people.

A program that performs a software service should also be distinguished from the service provider. The service provider is the person or organization that takes responsibility for the service, and enters into contracts with its consumers.

Other programs relevant to SOA include programs that provide infrastructure for the services, and application programs.

Program building blocks appear in models that show how services are performed, models that show how services are integrated with each other and with other system components, models that show how the architected system processes data, and in models showing other system aspects, such as performance, management, security, and governance.

Information Items, Data Items, and Data Stores

IT architecture is of course very much concerned with information, and building blocks related to information are used for SOA, as for other architectural styles.

The concept of information is a very general one.

  • An information item is a thing that is known about some other thing.

An information item may be simple or may be complex, composed of simpler information items.

Information items appear in models of business processes.

Data can be defined as “a re-interpretable representation of information in a formalised manner suitable for communication, interpretation or processing” (see ISO/IEC 2382-1:1993 Information Technology - Vocabulary - Part 1: Fundamental Terms.)

  • A data item is a representation of an information item.
  • A data store is a technology actor that stores data items.

Data items and data stores are important architectural building blocks. Like programs, they appear in models that show how services are performed, models that show how services are integrated with each other and with other system components, models that show how the architected system processes data, and in models showing other system aspects, such as performance, management, security, and governance.

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]