Service-oriented architecture
|
In computing, the term Service-oriented architecture (SOA) expresses a software architectural concept that defines the use of services to support the requirements of software users. In an SOA environment, nodes on a network make resources available to other participants in the network as independent services that the participants access in a standardized way. Most definitions of SOA identify the use of web services (using SOAP and WSDL) in its implementation, however one can implement SOA using any service-based technology.
Unlike traditional object-oriented architectures, SOAs comprise loosely joined, highly interoperable application services. Because these services interoperate over different development technologies (such as Java and .NET), the software components become very reusable.
SOA provides a methodology and framework for documenting enterprise capabilities and can support integration and consolidation activities.
Examples of commercially-sold SOA platforms include:
- Java Enterprise System from Sun Microsystems
- Indigo Application Server from Microsoft
- Business Collaboration Platform from Cordys
High-level languages such as BPEL or WS-coordination take the service concept one step further by providing a method of defining and supporting workflows and business processes.
SOA definitions
Term | Definition / Comment |
---|---|
service | A self-contained, stateless function which accepts one or more requests and returns one or more responses through a well-defined interface. Services can also perform discrete units of work such as editing and processing a transaction. Services do not depend on the state of other functions or processes. The technology used to provide the service does not form part of this definition. |
orchestration | Sequencing services and providing additional logic to process data. Does not include data presentation. |
stateless | Not depending on any pre-existing condition. In an SOA, services do not depend on the condition of any other service. They receive all information needed to provide a response from the request. Given the statelessness of services, consumers can sequence (orchestrate) them into numerous sequences (sometimes referred to as pipelines) to perform application logic. |
provider | The function which performs a service in response to a request from a consumer. |
consumer | The function which consumes the result of a service supplied by a provider. |
SOA Design and Development
The modeling and design methodology for SOA applications has become known as service-oriented analysis and design. The SOA functions as much a software development framework as it does as a delivery framework. In order for an SOA environment to operate successfully, software developers need to orient themselves to its mindset of creating common services which clients or middleware then orchestrate to implement processes. Development of systems using the SOA requires a commitment to this model in terms of planning, tools, and infrastructure.
When most people speak of a service oriented architecture, they speak of a set of services residing on the Internet or an intranet using "web services". A set of standards exists which generally feature in all discussions of web services. These standards include the following:
Note, however, that an SOA does not necessarily need to use these standards to become "service oriented".
External links
- John Reynold's definition of SOA in two sentences (http://weblogs.java.net/blog/johnreynolds/archive/2005/01/the_soa_elevato.html)
- Sun Javapedia wiki article on SOA (http://wiki.java.net/bin/view/Javapedia/ServiceOrientedArchitecture)
- IBM Article defining SOA and lessons learned from initial implementations (http://www-106.ibm.com/developerworks/webservices/library/ws-soad1/)
- http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html
- http://bobbreedlove.com/tech/soa.html
- What is Service-Oriented Architecture? (http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html)
- SOA Blueprints Specification (http://www.middlewareresearch.com/soa-blueprints/#download)
Template:Compu-stubda:Serviceorienteret arkitektur
de:Service Oriented Architecture