Service Oriented Architecture
Service-oriented architecture (SOA) is an evolution of distributed computing based on the request or reply design paradigm for synchronous and asynchronous applications. An application’s business logic or individual functions are modularized and presented as services for consumer or client applications. The key to these services is their loosely coupled nature; i.e., the service interface is independent of the implementation. Application developers or system integrators can build applications by composing one or more services without knowing the services’ underlying implementations. For instance, a service can be implemented either in .Net or J2EE, and the application consuming the service can be on a different platform or language. Explore this article and get an in-depth idea about SOA.
Key characteristics of SOA
- SOA services have self-describing interfaces in platform-independent XML documents. Web Services Description Language (WSDL) is used to describe the services.
- SOA services connects with the messages formally which is defined through XML Schema. Communication among the consumers and providers or services typically happens in heterogeneous environments, with less or no knowledge about the provider. Messages between the services can be viewed as key business documents processed in an enterprise.
SOA services are maintained in the enterprise by a registry that acts as a directory listing. Applications can look up the services in the registry and can invoke the service.
Architecture
Several service consumers can invoke services by sending the messages. These messages are transformed and routed by a service bus to an appropriate service implementation. The service architecture also provides a service management infrastructure that manages the services and activities such as, auditing, billing, and logging. In addition, the architecture also offers enterprises the flexibility of having agile business processes, better addresses the regulatory requirements like Sarbanes Oxley (SOX), and changes individual services without affecting other services.
Why SOA?
The reality in IT enterprises is that infrastructure is heterogeneous across the operating systems, applications, and system software. Some existing applications are used to run current business processes, so starting from the scratch to build new infrastructure isn’t an option. Enterprises should quickly respond to the business alterations with agility and should leverage the existing investments in applications and application infrastructure to address the new business requirements. SOA with its loosely coupled nature allows the enterprises to plug in new services or upgrade existing services in a granular fashion to address the new business requirements, provides the option to make the services consumable across different channels, and exposes the existing enterprise and legacy applications as services, thereby protecting existing IT infrastructure investments.
The Benefits of SOA
While the SOA concept is fundamentally not new, SOA differs from existing distributed technologies. SOA, with a ubiquitous set of standards, brings better reusability of existing assets or investments in the enterprise and lets the user to create applications that can be built on top of new and existing applications. SOA enables the changes to applications while keeping clients or service consumers isolated from evolutionary changes that happen in the service implementation. SOA enables upgrading individual services or services consumers; it is not necessary to completely rewrite an application or keep an existing system that no longer addresses the new business requirements. Lastly, SOA also provides enterprises better flexibility in building applications and business processes in an agile manner by leveraging existing application infrastructure to compose new services.