Section 4.2. What Is a Service-Oriented Architecture?


4.2. What Is a Service-Oriented Architecture?

Now we introduce the basic concepts of SOAs as we use them in the remainder of this book. As we previously emphasized, this book focuses on enterprise architectures and their specific characteristics. Consequently, we will also discuss the specific characteristics of SOAs.

As we mentioned earlier, an SOA is based on four key abstractions: application frontend, service, service repository, and service bus (see Figure 4-1). Although the application frontend is the owner of the business process, services provide business functionality that the application frontends and other services can use. A service consists of an implementation that provides business logic and data, a service contract that specifies the functionality, usage, and constraints for a client[1] of the service, and a service interface that physically exposes the functionality. The service repository stores the service contracts of the individual services of an SOA, and the service bus interconnects the application frontends and services.

[1] A client can either be an application frontend or another service.

Figure 4-1. Services and application frontends are the major artifacts of an SOA. In addition, we also have a service repository and service bus.


Definition of Service-Oriented Architecture

A Service-Oriented Architecture (SOA) is a software architecture that is based on the key concepts of an application frontend, service, service repository, and service bus. A service consists of a contract, one or more interfaces, and an implementation.


The whole concept of an SOA focuses on the definition of a business infrastructure. When we use the term "service," we have in mind a business service such as making airline reservations or getting access to a company's customer database. These services provide business operations such as get reservation, cancel booking, or get customer profile. Unlike business services, technical infrastructure services, such as a persistency service or a transaction service, provide operations such as begin transaction, update data, or open cursor. Although this kind of technical functionality is very useful when it comes to implementing a business operation, it has little strategic relevance from the SOA point of view. More generally, technology must not have any impact on the high-level structure of the application landscape or cause dependencies between components. Actually, the SOA must decouple business applications from technical services and make the enterprise independent of a specific technical implementation or infrastructure.

The application frontends are the active elements of the SOA, delivering the value of the SOA to the end users. Nevertheless, you must always take into account that the services provide structure to the SOA. Although the services can often remain unaltered, the application frontends are subject to change, as are the business processes of the enterprises. Consequently, the lifecycle of application frontends is much shorter than the lifecycle of the underlying services. This is why we regard services as the primary entities of strategic importance in an SOA (see Figure 4-2).

Figure 4-2. The estimated lifecycles of data, services, application frontends, and technologies are different.




    Enterprise SOA. Service-Oriented Architecture Best Practices
    Enterprise SOA: Service-Oriented Architecture Best Practices
    ISBN: 0131465759
    EAN: 2147483647
    Year: 2003
    Pages: 142

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net