Service-oriented architecture

The educational technology and digital learning wiki
Jump to navigation Jump to search



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.


Elements of a service-oriented architecture

Elements of a Service Oriented Architecture according to Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA. Prentice Hall, 2005

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)


Introductions / Tutorials
  • 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