Service oriented architecture expresses a software architecture that defines the use of loosely coupled software services to support the requirements of the business processes. Resources on a network in an SOA environment are made available as independent services that can be accessed without knowledge of their underlying platform implementation.
A service-oriented architecture is not tied to a specific technology. It may be implemented using a wide range of technologies, or Web Services. SOA can be implemented, using a file system mechanism to communicate data conforming to a defined interface specification between processes conforming to the SOA concept. The key is independent services with defined interfaces that can be called to perform their tasks in a standard way, without the service having knowledge of the calling application, and without the application having knowledge of how the service actually performs its tasks.
SOA can also be regarded as a style of information systems architecture that enables the creation of applications that are built by combining loosely coupled and interoperable services. These services operate based on a formal definition that is independent of the underlying platform and programming language. The interface definition hides the implementation of the language-specific service. SOA-based systems can, therefore, be independent of development technologies and platforms. Services wrote in C# running on.Net platforms and services written in Java running on Java EE platforms, for example, can both be consumed by a common composite application. Applications running on either platform can also consume services running on the other as Web services
SOA Web Services
SOA may be built on Web services standards that have gained broad industry acceptance. These standards referred to as web service specifications, also provide greater operation and some protection from lock-in to proprietary vendor software. One can, however, implement SOA using any service-based technology.
Service oriented architecture is often defined as services exposed using the Web Services Protocol. The base level of web services standards relevant to SOA includes the following:
- XML – a markup language for describing data in message payloads in a document format
- HTTP (or HTTPS) – request/response protocol between clients and servers used to transfer or convey information
- SOAP – a protocol for exchanging XML-based messages over a computer network, normally using HTTP
- Web Services Description Language (WSDL) – XML-based service description that describes the public interface, protocol bindings and message formats required to interact with a web service
- Universal Description, Discovery, and Integration (UDDI) – An XML-based registry to publish service descriptions (WSDL) and allow their discovery
The web service does not necessarily need to use any or all of these standards to be service oriented. For example, some service oriented systems have been implemented using Corba, Jini and REST.
SOA can support integration and consolidation activities within complex enterprise systems, but SOA does not specify or provide a methodology or framework for documenting capabilities or services.