Service-oriented architecture may be the IT buzzword du jour, but for all the attention afforded this tiny three-letter acronym, there's hardly a consensus definition for SOA.
Some IT managers will confess to their ignorance of what SOA is or what the business benefits are, while others seem to have a grasp on the basics, but struggle putting it into practice.
"More companies are understanding the big picture. Ask them if they know what an SOA is, they'll say 'yes.' Ask them if they understand the business value proposition, they'll say 'yes' and talk about reuse and other concepts," said Jason Bloomberg, analyst with ZapThink LLC. "If you ask them who is on the SOA team, or what's their schedule for SOA, that's a different question.
"They want to know how to build the right services, how to deal with semantics and data consistency, and how to assemble the right team," Bloomberg said.
Confusion aside, enterprises have budgeted for SOA in 2005. A recent survey of 473 enterprise buyers by the Yankee Group of Boston revealed that in the next 12 months, 75% plan on investing in the technology and staffing necessary to enable a service-oriented architecture.
A flexible IT architecture is the holy grail, Bloomberg said, and any kind of confusion hampers adoption.
"The root of the problem is that SOA is hard; architecture is hard," Bloomberg said. "There's no magic bullet."
Maybe not, but SearchWebServices.com tried to ease some of the prevailing confusion around SOA. We asked our readers and a few industry experts to send us a 50-word definition of SOA. Despite the confining parameters -- not too many believed it was possible in 50 words, so we were leniant -- close to a dozen submitted their SOA definitions below.
"SOA is a framework enabling application functionality to be provided, discovered and consumed as re-usable Web Services sets. While Web Services do not equal SOA, it's one of the enabling standards. SOA abstracts complexity and implementation details, making it an ideal architectural mindset to leverage functionality trapped within mainframe/midrange systems."
Scott Rosenbloom is chief strategist with WRQ Inc.
"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.
"The SOA models the business as a collection of self-contained services that are available across the enterprise that can be evoked through standard protocols both internally and externally."
Dave McComb, president, Semantic Arts
"Service Oriented Architecture is nothing but business oriented architecture, which allows the flexibility of business applications, to become independent but collaborative, while providing their services. The applications under this architecture are both 'client' and 'server' at the same time with freely available services."
Satheesan Kunnel, USWWI
"A service oriented architecture is an approach to design and integrate software in a modular method where each module is precisely a 'loosely coupled service' that is accessible over a network and has the capability of being dynamically integrated with other services at run time. A service must present a standard Interface (be it WSDL today) for its functionality and invocation methods while the real implementation of the service is not a concern of an SOA."
"Services provide something of value to those who know how to request and consume them, without having to know how to produce that value. SOA is an approach to building software applications as collections of autonomous services that interact without regard to each other's platform, data structures, or internal algorithms."
Michael Champion, R&D specialist, Software AG
"A pattern of design, development, deployment, and management of (a) applications and (b) software infrastructure and frameworks in which:
- Applications are organized into business units of work (services) that are (typically) network accessible
- Service interface definitions are first-class development artifacts
- Quality of service (QoS) characteristics (security, transactions, performance, etc.) are explicitly identified at design time
- Software infrastructure takes active responsibility for managing QoS and enforcing policy for service access and execution
- Services and their metadata are cataloged in a repository
- Protocols and structures within the architecture are, optionally, based on industry standards (e.g., the emerging SOAP stack of standards)
"SOA is a style of design that strives to enable easy integration and flexible applications. In SOA, application functionality is designed as shared reusable services. A service is a piece of application functionality that exposes its functionality through an abstract interface, which hides the inner workings of the service implementation."
Anne Thomas Manes, analyst, Burton Group
"An SOA is an enterprise-scale architecture (typically spanning multiple applications within an enterprise or across multiple enterprises) where the primary structuring element is a service (as opposed to modules, systems, applications or components).
A service is a set of related business functions that are interacted with locally or remotely using a message-passing/document-oriented communication style. A service is composed of (1) a (functional) service interface and (2) a service implementation that implements one or more service interfaces and adheres to a certain set of (non-functional) capabilities. Specific services are defined in terms of the transport/application/messaging protocol, not in terms of a specific programming model.
An SOA will typically include technical services to manage metadata about service interfaces and implementations, service providers and service consumers; and services for managing and enforcing policies, access control, security features, and transactions, although all of these are optional within any specific SOA instance."
Stefan Tilkov, CEO, innoQ
"Service-oriented architecture is an architectural discipline that centers on the notion that IT assets are described and exposed as Services. These Services can then be composed in a loosely-coupled fashion into higher-level business processes, which providing business agility in the face of IT heterogeneity."
Ronald Schmelzer, analyst, ZapThink LLC
"Service Oriented Architecture (SOA) is an approach to the development of loosely coupled, protocol-independent distributed applications composed from well-defined, self-contained software resources accessible as Services across the extended enterprise in a standardized way, enhancing re-usability and interoperability."
Ankur Gupta, marketing manager, Fiorano Software 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.