blob: ec887a67102bf6849df6e7ad34a35519b2af0496 [file] [log] [blame]
h2. What is ServiceMix 4?
Apache ServiceMix is an open source ESB (Enterprise Service Bus) that combines the functionality of a Service Oriented Architecture (SOA) and the modularity. The adoption of a Service Bus allows to decouple the applicatons together and reduce dependencies. Messages are used to wired the applications (=services) and/or connectors to exchange information using different protocols or communications mode like FTP, HTTP, WebServices, ...
This new version of Apache ServiceMix is more than an evolution of the previous as the kernel of the platform has been completety rewritten and is designed top of the OSGI specification. Using OSGI framework brings a new important feature for SOA development : modularity. That means that we can handle classloading and application lifecycle differently between the components.
ServiceMix is lightweight and easily embeddable, has integrated Spring support and can be run at the edge of the network (inside a client or server), as a standalone ESB provider or as a service within another ESB. You can use ServiceMix in Java SE or Java EE application server.
h3. Platform presentation
Apache ServiceMix is an distributed ESB built from the ground up on the Java Business Integration (JBI) specification JSR 208 and released under the Apache license. The goal of JBI is to allow components and services to be integrated in a vendor independent way, allowing users and vendors to plug and play.
ServiceMix uses ActiveMQ to provide remoting, clustering, reliability and distributed failover.
ServiceMix is completely integrated into Apache Geronimo, which allows you to deploy JBI components and services directly into Geronimo. ServiceMix is being JBI certified as part of the Geronimo project.
ServiceMix can be embedded into a JEE application server such as JBoss, Oracle Weblogic or IBM Websphere.
ServiceMix includes a complete JBI container supporting all parts of the JBI specification including:
* NMR (Normalized Message Router)</para>
* JBI Management MBeans
* full support for the JBI deployment units with hot-deployment of JBI components
ServiceMix also provides a simple to use client API for working with JBI components and services.
ServiceMix includes many JBI components including HTTP, JMX, CXF, BPEL, etc.
h3. OSGi for Dummies
// TODO: write this bit
h3. Kernel of ServiceMix
// TODO: write this bit
h3. JBI Container &amp; Integration with OSGI
// TODO: write this bit
h3. Normalized Message Router</title>
// TODO: write this bit
h3. Camel
// TODO: write this bit
h3. Services proposed
// TODO: write this bit
h4. Queuing engine : Apache ActiveMq
// TODO: write this bit
h4. Transaction : Geronimo Transaction Manager
// TODO: write this bit
h4. Routing and Mediation : Apache Camel
An Apache ServiceMix default installation out of the box embeds an Apache ActiveMQ instance.
It is a fully functional activeMQ instance listening for
* TCP on port 61616
* STOMP on port 61613
The default configuration resides in the etc directory under your servicemix installation,
the file in question is called activemq-broker.xml. It sets up reasonable defaults for
* Persistence - KahaDB
* Producer flow control - essentially to make sure the broker does not run out of memory
The file also configures a reusable connection pool available to all OSGi bundles exposing a
javax.jms.ConnectionFactory as a service for consumption.
You can re-use this connection pool via tools such as spring-dm or blueprint.
The ActiveMQ broker allows several components such as servicemix-cluster, camel-jms, camel-activemq,
cxf jms transport to be utilized without any additional effort.
h4. Web Services : Apache CXF
// TODO: write this bit
h4. Web Container
// TODO: write this bit
h4. SOA platform
// TODO: write this bit
h5. Spring DM container
// TODO: write this bit
h5. Blueprint OSGI container
// TODO: write this bit
h5. EJB Container
// TODO: write this bit