...
The two most common modes are SEDA and JMS flows. For messages that are non-persistent, ServiceMix uses an efficient in-memory system known as the SEDA flow to convey messages on the bus. For messages that are persistent, ServiceMix uses JMS messages with an underlying ActiveMQ broker. You may also choose to force the use of the JMS flow, for example to connect multiple ServiceMix instances.
Message Capabilities
Does ServiceMix support SOAP?
Messages on the bus do not use SOAP. But ServiceMix includes binding components that support SOAP-over-HTTP and SOAP-over-JMS, as well as the CXF binding component that supports SOAP over HTTP and JMS, all of which include SOAP 1.1 and SOAP 1.2 support, MIME attachments, etc.
What WS-* specifications does ServiceMix Support?
Most of the WS-* specification support can be found in the binding components included with ServiceMix – for HTTP, JMS, or CXF (which supports both HTTP and JMS). Of the three, CXF has the most extensive WS-* support.
Spec | Purpose | Support |
---|---|---|
WS-Security | Authentication, Encryption, Digital Signature | Yes, for HTTP and CXF binding components and subsequent authentication/authorization |
WS-RM | Reliable Messaging | Yes, for CXF binding component |
WS-Addressing | Addressing | |
WS-Policy | Policy Management | Yes, for CXF binding component |
WS-TX | Transactions | No, though WS-TX headers can be passed through as normalized message headers for services to handle |
WSDM | Management | No, JMX is used instead |
WS-Management | Management | No, JMX is used instead |
Does ServiceMix support plain XML messages?
Yes, the binding components can accept plain XML as well as SOAP – the Normalized Message is created directly from that XML. As with any other Normalized Message, routing and transformations can be applied (more on that in a moment).
Does ServiceMix support other (non-XML, binary, etc.) protocols?
ServiceMix can support any protocol so long as a binding component is available to convert protocol messages to or from Normalized Messages. For custom protocols, you may need to write a bit of code for the binding component, but that is not particularly complex (outside of whatever the protocol processing requires).
Mediation
Orchestration
Security
Performance
...
Complex Services
Publication / Discovery
...