Progress Sonic® Enterprise Service Bus (ESB) |
![]() |
As Web services support becomes ubiquitous among applications and application development platforms, attention is turning to the issue of bringing them together into a coherent whole. How should I think about the relationships between services? How will I connect them across my business? How will I orchestrate interactions across them? How will I manage and monitor them? How will I secure them? These questions point to the need for SOA infrastructure beyond the application platforms which provide the services themselves.
To bridge any set of applications at any time to solve business challenges, an SOA infrastructure must make it possible to dynamically add and re-configure services on the fly, as well as to alter the logical flow between services as business processes change. At a high level, SOA infrastructure must support:
An ESB is software infrastructure that simplifies the integration and flexible reuse of business components using a service-oriented architecture. An ESB supports the goals of service orientation by making it easy to dynamically connect, mediate and control services and their interactions.
Connect:
An enterprise service bus simplifies connection of new applications, Web services and hundreds of legacy technologies. Whether a J2EE or .NET application, Web service, database, or legacy message broker, any resource connected to the ESB is made broadly available for communication with any other connected resource.
Mediate:
Mediation is an essential capability of an enterprise service bus and provides three principal benefits. First, mediation allows the ESB to reconcile incompatible protocols, data formats and interaction patterns of connected services. By bridging these differences with the built-in mediation functionality of the ESB, it is much easier to rapidly set up communications among diverse services. The ESB mediates not just message format and protocol but also interaction patterns, allowing synchronous services to communicate with asynchronous services - and vice-versa - with no changes to the services' coding.
The ability to mediate services without requiring changes to them provides another key benefit: meditation eliminates inflexible, hard-coded service interdependencies. Service interdependencies, especially hidden ones, are the enemy of flexibility because they make it difficult to understand the impact of a service change in an SOA. By isolating and making explicit the mediation among services, an enterprise service bus makes it dramatically easier to manage change in a complex environment.
The flexibility of mediation can be seen more broadly in the third benefit, namely that the ESB makes it easy to combine and extend existing services to meet new requirements. Mediated services become general-purpose building blocks which may be orchestrated in order to automate end-to-end business processes.
When mediating services that are not co-located, an ESB provides communications capabilities which link them together. These communication capabilities facilitate communication within and across departments and corporate boundaries. Sophisticated publish-and-subscribe semantics allow the simultaneous broadcast of information to a potentially large number of service consumers, and also make it easy for service consumers to be added to an existing ESB deployment without making changes to the service provider.
An ESB which provides robust, secure and scalable communications can guarantee that data is delivered to specified destinations according to the quality of service required; producer services themselves need not manage data re-transmission if consumer services are temporarily unavailable. It is critical that an ESB not create bottlenecks or chokepoints in the infrastructure that would restrict the breadth of its deployment or limit the throughput of data it can carry to and from connected resources.
Control:
As a service-oriented architecture grows, so does the complexity of its control and management. As an infrastructure for SOA, an enterprise service bus provides a built-in framework for managing itself and the services it hosts.
The first task of management is the deployment of services, which may be hosted anywhere an ESB runs. This hosting environment may be initially a development lab, and subsequently a user-acceptance test environment and finally a production environment. It is essential that an ESB provide tools to simplify deployment by managing it as a promotion of artifacts from one environment to the next in a controlled manner. Since a deployment may be highly distributed, such as a retail deployment comprising hundreds or thousands of stores), an ESB makes it easy to deploy services remotely from a central location. An ESB also allows for deployments and upgrades of services (or collections of services) to remote sites en-masse, simplifying management of very large environments.
To make this work dynamically, an ESB is configuration-driven: services and their mediated relationships are declared, so they may be dynamically changed without re-compilation and re-deployment. This makes it easy to modify data and process flow without shutting down running services. Configuration changes are also deployed remotely, allowing you to change the behavior of any part of the distributed environment from a central console.
In addition to managing services it hosts and connects (e.g. central logging and auditing of services, faults, process status), the ESB provides detailed performance statistics on the infrastructure itself which help you monitor, detect faults and diagnose problems in complex distributed systems.
IT Benefits:
Business Benefits:
More information is available here: http://www.sonicsoftware.com