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

Compare with Current View Page History

« Previous Version 10 Next »

Conceptually, ServiceMix and Mule are quite similar in that they allow services to be integrated across a number of different APIs and transport technologies. They provide similar features and allow a simple POJO based model with Spring for integrating services together. The major difference is ServiceMix is based on the standard JBI APIs defined by the JCP - whereas Mule has its ownAPIs, but looks to add JBI as an after thought.

This is contradictory for our requirement for an Agile ESB

JBI supports a standard deployment unit format; so you can hot deploy any JBI-compliant BPEL engine (or set of BPEL files into a BPEL engine), rule engine, transformation engine, scripting engine or other integration component (such as specific JBI binding components) directly into ServiceMix.

e.g. any JBI component developed in the Celtix project will automatically deploy and integrate seamlessly into ServiceMix. Similary you can just drop PXE the open source BPEL engine right in.

At the API level JBI and Mule differ quite a bit; though conceptually they are trying to do similar things. JBI is based on the idea of both component and container based routing - a JBI component can perform smart routing to endpoints. A JBI component can just communicate with its default service, letting the container do the routing for it. Or a JBI component can give the JBI container a hint of which endpoint to use (such as providing a service QName to use or specifying an operation QName) and then the JBI container can, if there are many available services to choose from, use some kind of policy negotiation or load balancing algorithm to choose which physical endpoint to choose. i.e. JBI is a cleaner abstraction for working with both logical and physical web service endpoints, WSDL and the standard WSDL defined message exchange patterns (MEPs).

ServiceMix is also fully integrated into Apache Geronimo to integrate JBI functionlity into Apache's J2EE container. This allows Apache Geronimo to hot-deploy any JBI component or service using its standard deployment tooling (JSR 77/88 compliant).

Also ServiceMix contains a number of WS-* implementations built on JBI, such as WS Notification.

Having said all that though; ServiceMix has full support for Mule; so if you already have an investment in some Mule configuration or code, you can reuse it inside ServiceMix along with any other JBI components.

  • No labels