Back in October, SearchWebServices.com solicited its readership to submit 50-word definitions of a service-oriented architecture. The responses came in from an array of readers, ranging from enterprise developers and IT managers to analysts and vendor representatives.
Our original intent was to produce a specific definition of SOA. Instead, we inspired a healthy debate and another slew of submissions -- as well as feedback on the original set of entries.
Some sharp readers also came to common ground on many of the ingredients that make up an SOA -– namely, the loose coupling of distributed, heterogeneous services that enable some type of business process. Depending on their perspective, readers submitted definitions that either took a technical slant, or a business strategy point of view.
Those on the technical side saw, for example, the parallels between SOA and object-oriented development. Now that's not necessarily a news bulletin, but one reader from a large insurance underwriter in Florida points out that SOA is an elevation of object-oriented development to a "cross enterprise scale based on text versus binary compatibility and discovery."
He also pointed out some areas of caution with SOA.
"[Do not] necessarily implement services as merely just an RPC [remote procedure call] mechanism; that can get chatty. Coarser-grained services are the [approach] for an SOA," he wrote. "That helps preserve encapsulation as well -- and is more secure.
"Coupling is also an issue, as it was with OO [object-oriented development]," he continued. "The common Web Service implementation of an SOA can be seen as exhibits 'exporting' coupling in OO (reliance on only the public interface of an object) via a domain's services. 'Nil' coupling (no dependence on calling another object) I think is another burgeoning area to make SOAs more scalable, robust, and more loosely coupled."
"SOA is a method of conceptualizing, designing, and building applications by assembling reusable building blocks, each of which is usually represented as a service. At the core, an SOA framework contains a set of services and other infrastructure resources whose interfaces evolve gradually and allow for applications to use them in a manner that is independent of the implementation protocol. To realize true IT and business agility, SOA-driven applications will need to employ an SOA implementation framework consisting of a formal methodology and a set of programmatic interfaces that are dynamic and scalable enough to meet changing and complex business requirements."
Arun Candadai, lead architect, GridScope, Inc.
"SOA is a form of technology architecture that adheres to the principles of service orientation. When realized through the Web services technology platform, SOA establishes the potential to support and promote these principles throughout the business process and automation domains of an enterprise."
Thomas Erl, chief architect, XMLTC Consulting Inc.
"[SOA] aims at aligning IT services with business processes. It promotes loose coupling between the service providers and service consumers, reuse and incremental integration practice."
"Interoperability of collection of distributed, loosely coupled heterogeneous services; to orchestrate a series of business tasks, to achieve a specific business process objective."
"SOA is a software architecture that enables business agility through the use of loosely coupled services. Services are implementation-independent reusable business functions that are discovered as self-describing interfaces, and invoked using open standard protocols across networks. Services can in turn be combined and orchestrated to produce composite services and business processes, in accordance with pre-defined policies, security and SLAs."
Ashok (Ash) Mansukhani
Reader comments on previously submitted definitions
Click here to refer to original definitions referenced throughout
"I think this [definition below] is better because the writer points out that SOA should be executed adapting to business requirements. Otherwise, the solution excluding consideration of management goal is a cost rather than added value."
"Secure, integrated delivery of IT solutions meeting business requirements. Solutions must implement, optimize and guide business process execution by combining the functionality of separate, discreet, reusable services. SOA moves away from complex application development, promoting a focus on standardizing interfaces between atomic service components with centralized management and distributed implementation." Dave Morris, I.T. Security Lead TransAlta Corp.
"In my opinion the definitions of Rajesh Dawar, Michael Champion and especially Ankur Gupta are the best ones, since they stress loose coupling, dynamic integration, well-defined interfaces, protocol independence , self-contained components, reusability and interoperability more than the typical SOA application, business processes."
"Many of the SOA definitions given in your article have at least one key notion quoted, such as:
- abstracts complexity
- business process execution
- business-oriented architecture
- standardizing interfaces
- self-contained services
- autonomous services
- standard protocols
- independent but collaborative
- dynamic integration
- reusable services
- service composition
"But none of them has them all. This clearly shows there are many aspects to the SOA concept! Only one of them quotes the notion of autonomy, which IMHO is the most important service attribute in an SOA. To me, this definition (Michael Champion's) is indeed the best amongst those presented in your article. "I definitely disagree with Randy Heffner on the necessity of having a repository cataloging services and their metadata, as well as on the option of using industry standards."
This list was compiled by senior news editor Michael S. Mimoso and assistant editor Kristen Cipolletti.