The Apache Synapse describes the project as " designed to be a simple, lightweight and high performance Enterprise Service Bus (ESB) from Apache. Based on a small asynchronous core, Apache Synapse has excellent support for XML and Web services - as well as binary and text formats."

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
  • with a high degree of performance, scalability and reliability
  • spanning multiple transports and heterogeneous endpoints.

In providing management through WS-* to Apache Axis, the Apache Synapse project provides a very important and useful capability to Web services. 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 made through SOAP-based Web Services, that the management of the exchanges would be invoked exclusively by means of WS-*, and that the underlying SOAP stack(s) implement the relevant protocols.

ServiceMix is a full ESB that can work with many different SOAP Stacks such as CXF, CXF, Axis, WSIF, XFire, ActiveSOAP and JAX-WS. ServiceMix also has full support for Routing, Transformation and Orchestration. It provides advanced routing and EIP via Apache Camel. It provides advanced routing and EIP via Apache Camel. 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 without dependency on 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; deploying Synase as a JBI component within ServiceMix's JBI container allowing it to integrate with other JBI components such as smart routers or BPEL engines etc.

  • No labels

1 Comment

  1. Folks, i fixed one factual error. Please review.