Service Oriented Architecture
Key distinction between object-oriented architectures and service oriented architectures.
What is Service-Oriented Architecture? is an extremely helpful piece in webservices.xml.com by
Hao He:
-
"Artificial dependencies should be reduced to the minimum but real dependencies should not be altered."
-
[....]
-
A small set of simple and ubiquitous interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The interfaces should be universally available for all providers and consumers.
-
Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system behavior is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services to be introduced without breaking existing services.
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.
[....]
The idea of SOA departs significantly from that of object oriented programming, which strongly suggests that you should bind data and its processing together. So, in object oriented programming style, every CD would come with its own player and they are not supposed to be separated. This sounds odd, but it's the way we have built many software systems.
[....]
How does SOA achieve loose coupling among interacting software agents? It does so by employing two architectural constraints:
A SOAP RPC web service breaks the second constraint required by an SOA. A SOAP RPC Web service encodes RPC (remote procedure calls) in SOAP messages. In other words, SOAP RPC "tunnels" new application-specific RPC interfaces though an underlying generic interface. Effectively, it prescribes both system behaviors and application semantics. Because system behaviors are very difficult to prescribe in a distributed environment, applications created with SOAP RPC are not interoperable by nature. Many real life implementations have confirmed this.
Service-Oriented Architecture (Chapter 2: Service-Oriented Architecture from the book
Java Web Services Architecture (ISBN: 1-55860-900-8), written by James McGovern, Sameer Tyagi, Michael Stevens, and Sunil Mathew, published by Morgan Kaufmann Publishers.
Revisited: Web Services are not Distributed Objects
FTPOnline Special Report: How to Explain SOA to Your CIO -- Will I need a tutorial on SOA for me or for others?
SOA myths article in
Fall 2004 - Page Cover
