Service-oriented architecture
Definitions
SOA is an architectural style whose goal is to achieve loose coupling among interacting software agents. A service is a unit of work done by a service provider to achieve desired end results for a service consumer. Both provider and consumer are roles played by software agents on behalf of their owners. ([Hao He, retrieved 10:14, 24 April 2007 (MEST)).
Service orientation is a means for integrating across diverse systems. Each IT resource, whether an application, system, or trading partner, can be accessed as a service. These capabilities are available through interfaces; Service orientation uses standard protocols and conventional interfaces - usually Web services - to facilitate access to business logic and information among diverse services. Specifically, SOA allows the underlying service capabilities and interfaces to be composed into processes. Each process is itself a service, one that now offers up a new, aggregated capability. Because each new process is exposed through a standardized interface, the underlying implementation of the individual service providers is free to change without impacting how the service is consumed. (Microsoft, retrieved 10:14, 24 April 2007 (MEST))
Service-oriented architecture (SOA) is an evolution of distributed computing based on the request/reply design paradigm for synchronous and asynchronous applications [...] What's key to these services is their loosely coupled nature; i.e., the service interface is independent of the implementation. ([1], retrieved 10:14, 24 April 2007 (MEST))
SOA looks like object-oriented programming principles applied to services. However it's more than encapsulation and interfaces...
SOA is a design component of business process modeling, enterprise-oriented web 2.0 (e.g. rich internet applications, mashups) and maybe 2nd generation e-learning architectures, e.g. see the e-framework model.
Architecture
Elements of a service-oriented architecture
SOA is a way to design software that provide services to either end-user applications or to other services distributed in a network via published and discoverable interfaces. Service descriptions are used to advertise the service capabilities, interface, behaviour, and quality. Services are described in service registry and provide the means for the discovery, selection, binding, and composition of services. The Service interface description publishes a service signature. The service capability description defines the purpose and expected results of the service. The service behavior description describes its behavior during execution (e.g. a workflow). Finally, the Quality of Service description publishes various service quality attributes. Summarized, SOA provides the basic operations necessary to describe, publish, find and invoke services. (summarized from Papazoglou and Dubray, 2004:67)
Links
- Introductions / Tutorials
- Service-oriented architecture (Wikipedia)
- What Is Service-Oriented Architecture by Hao He, Webservices.xml, retrieved 10:14, 24 April 2007 (MEST).
- What is service-oriented architecture? An introduction to SOA by Raghu R. Kodali, JavaWorld.com, 06/13/05.
- SOA programming model for implementing Web services, Part 1: Introduction to the IBM SOA programming model. By Donald Ferguson and Marcia Stopckton, IBM.
- Service-Oriented Architecture Explained by Sayed Hashimi.
- Papazoglou, Michael P. and Dubray, Jean-jacques (2004) A Survey of Web service technologies. Technical Report DIT-04-058, Ingegneria e Scienza dell'Informazione, University of Trento. Abstract/PDF