Monday, October 23, 2006

Synapse versus JBI

I was presenting on Synapse at the Colorado Software Summit today, and I realized the key difference between Synapse and JBI. You can actually build the same architecture with both, but fundamentally, in JBI the "bus" is right inside a JVM. Its a logical bus that only exists between JBI binding components and service engines.

In Synapse our idea is that the bus is the whole enterprise network. At the edges XML stacks such as Axis/Axis2, JAX-WS, and other systems push XML into the "bus" - i.e. the network. Synapse grabs these and does the useful stuff - routing, management, transforms, and then sends it on.

I've been skirting around this definition for a while, but I think this actually captures it clearly.


Blogger James Strachan said...

Am afraid its back to the drawing board Paul :). JBI works perfectly well with local or remote services (the JBI spec refers to them as 'external endpoints') which the NMR can route just as well as local services.

Its maybe simpler to think of JBI as a WSDL message bus where components can be in JVM or remote over some protocol or other.

1:18 AM  
Blogger Paul said...


I'm not saying that you can do X with Synapse and not with JBI or vice versa. I understand exactly what you can do with JBI. I'm merely commenting on the mental model. And I think its clear that the "bus" in JBI is the NMR, which is a Java construct running in the JVM.


8:09 AM  

Post a Comment

<< Home