
SOA establishes an architectural model that aims to enhance efficiency, agility, and productivity of an enterprise by distributed service components. Business logics or individual functions of applications are modularized and presented to consumers or clients as service. Key of these services is loosely coupled feature. Service interface is independent of implementation. Application developers can build applications by combining one or more services without knowing underlying implementations of services. For example, a service can be implemented in either .NET or J2EE. Applications consuming the service can be on different platforms and use different languages.
SOA has the following features
- SOA services have self-describing XML documents that are independent of platforms. Web Services Description Language (WSDL) is standard language used to describe service.
- SOA services communicate by messages that are defined in XML Schema (also called XSD). Communication between consumers and providers/services typically happens in heterogeneous environments, with little or no knowledge about providers. Communication among services can also be viewed as key business documents processed in enterprises.
- SOA services are maintained in format of registry in enterprises. Applications can look services up in registry and invoke them. UUDI is standard of service registry.
- Each SOA service is associated with a QoS. Some of key QoS elements are security requirements (For example authentication and authorization), reliable messaging and policies of who can invoke services.
Why SOA?
Reality of enterprises IT system is that different operating systems, applications, system software and application infrastructure interlace. Some existing applications are used to run current business process, so it’s impossible to start from scratch to build new infrastructure. Enterprises should quickly respond to business changes, leverage existing investments in applications and application infrastructure to address new business needs, provide new channels for interactions with customers, partners and suppliers and feature an architecture that supports original business. With loosely coupled feature, SOA allows enterprises to add new services or upgrade existing services in modules to address new business needs. SOA makes it possible for enterprises to provide service via different channels and use existing applications as services, protecting investments in current IT infrastructures.
Service Architecture
To implement SOA, enterprises need service architecture in the following figure.
Service consumers can invoke services by sending messages. These messages are explained and routed by service bus to corresponding services. The service architecture can integrate rules into one or multiple services by providing engine of business rules. The architecture also provides service management infrastructure to manage services such as auditing, finding, logging etc. In addition, the architecture offers enterprises flexible business process to better address control requests such as Sarbanes Oxley (SOX) and updates individual service without affecting other services.
Advantages of SOA
SOA concept is not new. SOA differs from existing distributed technologies in that most vendors accept it and have applications or platforms to implement SOA. SOA, with unified standards, brings better reusability for existing assets or investments in enterprises. SOA enables customers to create applications on top of new and existing applications. SOA enables customers or service consumers to avoid effects due to changes in service implementation. SOA enables customers to upgrade individual service or service consumers without re-writing entire applications or keeping current systems that can’t meet new needs. In summary, SOA makes use of existing applications and combines shortcuts of new services to provide better flexibility to build applications and business process.