You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

The Apache Synapse proposal describes the project as "a set of components that work together with Axis2 and other Apache and open source projects to create a flexible transformation, management and routing system." Given this focus on mediation of web services exchanges, it is nevertheless common to hear Apache Synapse described as an ESB.

This naturally leads to two important questions:

  • Is Apache Synapse an ESB?
  • How is Apache Synapse different from Apache ServiceMix?

Firstly in the words of Dave Chappell one of the founders of Synapse and the author of the book Enterprise Service Bus

This project (Synapse) is related to ESB, but it is not in itself an ESB. What Synapse brings to the table is a mediation framework that allows users to get in the middle between service requesters and providers and perform various tasks including transformation and routing and that helps to promote loose coupling between services

The distinction David makes goes to the heart of both questions. First, Synapse is not a full ESB in the most common sense of the term. Secondly, because the design of Apache Synapse is different from that of Apache ServiceMix, the two solutions have different capabilities and limitations.

A number of solutions that broker or mediate Web services exchanges are described as ESBs, and Synapse can reasonably be included in that category. However, what most defines an ESB is not its architecture, but its function, which in general terms is to provide a manageable system of message-based connectivity spanning multiple transports and heterogeneous endpoints.

In providing management through WS-* to Apache Axis, Apache Synapse provides a very important and useful capability to that specific Web service broker. However, in its current implementation Apache Synapse would be overextended as an "architectural" solution. Building an SOA on Apache Synapse would presume

  • that all exchanges in the SOA would be Web Service exchanges based on SOAP,
  • that the management of the exchanges would be invoked exclusively by means of WS-*
  • that the underlying SOAP technology at each brokered endpoint would be Apache Axis2.

ServiceMix is a full ESB that can work with many different SOAP Stacks such as Axis, WSIF, XFire, ActiveSOAP and JAX-WS. ServiceMix also has full support for Routing, Transformation and Orchestration. Like Apache Synapse, Apache ServiceMix provides mediation for web services exchanges and is designed to support transformation, management and routing through WS-* standards. However, this capability is provided independently of the SOAP stack, and most importantly, is provided through the same services architecture used for all message formats and transports, including, but certainly not limited to, Web services.

Lastly, it is also worth noting that the ServiceMix Team are working with the Synapse community to add JBI support to Synapse, so ServiceMix and Synapse could work together and integrate nicely with each other using JBI.

  • No labels