SOA Terminology
SOA Terminology
Grace Lewis This white paper presents basic terminology related to Service-
Oriented Architecture (SOA).1 The goal of the paper is to establish a
baseline of terms for service-oriented systems.
September 2010
Service-Oriented Architecture and Service-Oriented Systems
Service-Oriented Architecture (SOA) is a way of designing, developing, deploy-
ing, and managing systems, in which
• Services provide reusable business functionality via well-defined interfaces.
• There is a clear separation between service interface and service implemen-
tation.
• Service consumers are built using functionality from available services.
Service-Oriented • An SOA infrastructure enables discovery, composition, and invocation of
services.
Architecture (SOA) is
• Protocols are predominantly, but not exclusively, message-based document
a way of designing, exchanges.
developing, From a more technical point of view, SOA is an architectural style or design pa-
deploying, and radigm; it is neither a system architecture nor a complete system. Systems that
are built based on the SOA characteristics listed above are called service-
managing systems … oriented systems. A high-level view of a service-oriented system is presented in
it is neither a system Figure 1.
architecture nor a
Services
complete system. Services are reusable components that represent business or operational tasks,
such as customer lookup, credit card validation, weather lookup, or line-of-sight
calculation. Reusable is a key element of this definition because it is what
enables the creation of new business and operational processes based on these
services. Services expose their capabilities via well-defined, standard service
interfaces. In a service-oriented environment, service interface definitions are
Software Engineering Institute available in some form of service registry.
Carnegie Mellon University
4500 Fifth Avenue
____________________________________________________________________________
Pittsburgh, PA 15213-2612
1
The basic terminology has been extracted from the SEI course Service-Oriented Architec-
Phone: 412-268-5800 ture: Best Practices for Successful Adoption. For more information about the course, visit
Toll-free: 1-888-201-4479 http://www.sei.cmu.edu/training/p81.cfm.
www.sei.cmu.edu
Toll-free: 1-888-201-4479
End User Internal External
Portal
Application System Consumer
Service Consumers
Data
Security Discovery
Transformation
Infrastructure
Service Interfaces
SOA Infrastructure
The elements of a An SOA infrastructure is the set of technologies that bind service consumers to
service-oriented services through an agreed-upon communication model, such as one based on
Web Services, message-oriented middleware (MOM), publish/subscribe, or
system are services, Common Object Request Broker Architecture (CORBA). In addition, SOA in-
service consumers, frastructures typically host infrastructure services that can be used by service
and the SOA providers and service consumers to perform common tasks or satisfy quality
attribute requirements of the environment. Typical infrastructure services include
infrastructure that security, discovery, and data transformation.
binds service
Service Consumers
consumers to
Service consumers are the clients for the functionality provided by the services.
services. Examples of service consumers are end-user applications, internal systems, ex-
ternal systems, and composite services. Consumers programmatically bind to
services (i.e., there is a piece of code running on the consumer side that invokes
a piece of code running on the provider side that corresponds to the service inter-
face).
Service Discovery
Service discovery is the mechanism by which service consumers become aware
of available services and their capabilities. Service discovery starts with a one-
time operation in which the service provider publishes its service in some form
of service registry. The form of registry can range from a simple web page to a
robust implementation with advanced query capabilities. The service registry is
then queried at design time by the developers of service consumers for services
with desired capabilities.
Even though there is much discussion about runtime discovery of services, the
Even though there is
reality is that current technologies do not support runtime discovery. The word
much discussion dynamic is often used to describe the binding between service consumers and
about runtime services. There are various degrees of dynamism. At the lower end of the spec-
trum is late binding of a proxy service to a specific service instance that depends
discovery of services,
on user context or load-balancing policies. At the higher end of the spectrum is
the reality is that fully dynamic binding in which service consumers are capable of querying ser-
current technologies vice registries at runtime, selecting the “best” service from the list of returned
services, and invoking the selected service—all at runtime, and without human
do not support intervention. Late binding is a common, out-of-the-box feature of many com-
runtime discovery. mercial and open-source SOA infrastructures. Fully dynamic binding, on the
other hand, requires semantically described services that use an ontology that is
shared between service consumers and service providers. Semantic Web Servic-
es represent an active area of research, as well as an unsolved problem that is not
yet ready for large-scale deployment.
Service Composition
Service composition is the mechanism by which services are combined to fulfill
a business or operational process. Service composition can be done fully within
the service consumer, but there is also considerable support for service composi-
tion within SOA infrastructures, specifically in Business Process Modeling
(BPM) infrastructure components. Typical BPM components enable a service
consumer developer to graphically compose services available in a registry and
then generate the appropriate code for the orchestration.
Service Invocation
Service invocation is the mechanism by which services are invoked by service
consumers at runtime. There are two basic invocation patterns: point-to-point
and mediated.
Web Services
Web Services is one technology pattern for implementing service-oriented sys-
Because it is the tems, as shown in Figure 2. Because it is the most common technology pattern,
Web Services is often equated to SOA. Initially, Web Services were commonly
most common implemented using the WS* stack. More recently, an alternative called REpre-
technology pattern, sentational State Transfer (REST) has surfaced and is being widely adopted.
Web Services is often
Class of System Distributed Systems
equated to SOA.
Initially, Web Services
Architecture Service-Oriented Peer-to-Peer
were commonly Pattern Systems Systems ….
implemented using
the WS* stack. In the Technology
Pattern Web Services Broker Architecture ….
last several years, an
alternative called
REST has surfaced Implementation WS*Web Services RESTful Web Services CORBA
In addition to these base standards, there are many additional standards that deal
Even though the
with aspects such as service orchestration and choreography, as well as the sup-
number changes port for cross-cutting quality attributes, as shown in Figure 3. Even though the
frequently, there are number changes frequently, there are currently over 100 WS* standards. In Fig-
ure 3, standards names in green mean that the standard is fairly stable, yellow-
currently orange means that it is becoming the standard, and red means that work on the
approximately 100 standard has stopped but the standard is still used.
WS* standards.
Orchestration and
Choreography
WSCL, WSCI, BPEL,
WS-Coordination,
BPML, BPSS
Quality of Service
Discovery
Management
Transactions
UDDI
Security
Description
WSDL
Message Format
Base SOAP
Stack
Encoding
XML
Transport
HTTP
Ada pted from “XML and Web Servi ces Unleashed,” SAMS Publishing
A problem in WS* Services is that most of the standards related to the cross-
cutting quality attributes are still emerging and even competing. This means that
standards for implementing higher levels or cross-cutting aspects of the protocol
stack require careful evaluation and selection.
From an implementation perspective, what all this means is that systems that
implement the WS* base stack are highly interoperable at the syntactic level, but
this is not a guarantee for systems that implement higher levels or cross-cutting
aspects of the protocol stack. Also, higher levels of interoperability such as se-
mantic interoperability have to be built into the system through the use of data
models or ontologies that describe the data that is being exchanged.
The main strength of RESTful Web Services is their simplicity: the request is a
simple HTTP operation and the response is plain XML text embedded in an
HTTP response. However, in REST there are no standards to support quality
attributes, other than the basics (e.g., transport-level security using HTTPS). This
means that REST may not be appropriate in environments with demanding quali-
ty attribute requirements.
____________________________________________________________________________
2
Definition from Wikipedia: http://en.wikipedia.org/wiki/Enterprise_service_bus
The implementation of the VETRO pattern is the way that the ESB manages as-
pects such as interface compatibility, service versioning, service routing, and
data transformations. In essence, an ESB handles many of the potential incompa-
tibilities between service consumers and services and provides elements to guar-
antee quality attribute requirements such as routing based on load balancing to
promote performance and availability.
____________________________________________________________________________
3
Source: Dave Chappell, Enterprise Service Bus (O’Reilly, 2004, ISBN 0-596-00675-6)
Resources
• Learn about SOA through SEI courses. For more information, visit
http://www.sei.cmu.edu/go/soaofferings/index.cfm.
• Explore SEI SOA reports, webinars, podcasts, and presentations. For more
information, visit http://www.sei.cmu.edu/library/abstracts/soa/.
• For information on SEI products and services, write to info@sei.cmu.edu.
NO WARRANTY
Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark
holder.
Internal use. Permission to reproduce this document and to prepare derivative works from this document
for internal use is granted, provided the copyright and “No Warranty” statements are included with all
reproductions and derivative works.
External use. Requests for permission to reproduce this document or prepare derivative works of this
document for external and commercial use should be directed to permission@sei.cmu.edu.
This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003
with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally
funded research and development center. The Government of the United States has a royalty-free govern-
ment-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to
have or permit others to do so, for government purposes pursuant to the copyright license under the clause
at 252.227-7013.