WSO2Con 2011: ESB: The Swiss Army Knife of SOA - Hiranya Jayathilaka
By WSO2Con 2011
- 2 Dec, 2011
Unifying Enterprise Integration
Many enterprises face a phenomenon known as called "islands of automation" in which there are multiple applications without much communication between them, Hiranya said. Earlier enterprise application integration (EAI) efforts to address this problem focused on creating custom connectors that allow applications to talk with other programs in the environment. This approach could work with a small number of applications, he noted. However, the more applications are involved, the more custom connectors there are to maintain, quickly escalating complexity.
Seeking to minimize complexity, more enterprises are turning to the enterprise service bus as a means for connecting disparate systems. Resembling the data bus in a computer, the ESB reduces point-to-point connections and offers a uniform interface for integrating multiple systems, Hiranya said. He added that a good ESB will support a range of transport protocols, multiple message formats and integration patterns; reduce the need for writing code; and will be easy to monitor and maintain.
ESB: Swiss Army Knife of SOA
With its broad functionality, the ESB is often regarded as a Swiss army knife for SOA deployment, said Hiranya, observing that, “It is a handy instrument that can be used to solve many integration problems.” At the same time, he warned, the ESB is not a solution for everything; “You cannot cut down a tree with a Swiss army knife!"
Therefore it is important to recognize what an ESB can and cannot do, Hiranya noted. The ESB is great for integration; it can serve as a lightweight orchestration engine, and it provides connectivity to databases. At the same time he said, the ESB is not a heavyweight orchestration engine, full-blown data access tool, or full-fledged Web service or Web application engine.
Hiryana encouraged architects to think of the ESB within an SOA as the wiring in a building: “Even though it can enable system connections, it is not useful on its own. Other materials must be brought in to construct the actual building.”
ESB Use Cases
Hiranya then illustrated several use cases for an ESB with an SOA using the WSO2 Enterprise Service Bus.
Routing is the key capability of an ESB. It is supported using mediators (such as filter, switch) to build or program various routing rules into the ESB.
Traffic filtering is a key requirement that is supported by the filter mediator. The ESB looks for a particular string in the message payload. If there is a match, it's dropped at ESB.
Transformation Standards such as XSLT, XQuery, Smooks can be used to convert one message payload to another.
Protocol switching is the feature that allows the ESB to receive messages from one protocol and send them to another.
Load balancing in WSO2 ESB includes support for multiple load balance algorithms, including the ability for developers to plug in their own custom algorithms.
QoS-level Security is the ability to support an existing unsecured service as a secured service. Among the ways to accomplish this include the use of WS-Reliable Messaging, caching and throttling.
To learn more about best practices for enterprise integration using an ESB, view Hiranya's full presentation here.