Apache ServiceMix
# Apache ServiceMix

Apache ServiceMix ist ein flexibler Open-Source-Container, der einen Enterprise Service Bus (ESB) und die SOA-Suite enthält. Er unterstützt den Java-Business-Integration-Standard (JBI) sowie JSR 208 und beinhaltet Features und Funktionen von Apache ActiveMQ, Camel, CXF und Karaf.

Die neue Version ServiceMix 4 unterstützt vollständig OSGi. Als OSGi-Implementierung dient Apache Felix. Die Suite besteht aus zwei Hauptkomponenten, dem ServiceMix-Kernel 1.1.0 (einer OSGi Runtime) und dem ServiceMix NMR 1.0.0 (einem OSGi basierenden NMR-Bus und JBI-Container).

## JBI Komponenten

Apache ServiceMix stellt einen, auf JBI Standard basierenden Service-Container dar. Dieser Service-Container erlaubt es, JBI-Komponenten in Form von Plug-ins in den Container zu implementieren, welche dadurch über einen Normalized Message Router (NMR) Informationen austauschen können. Die unterschiedlichen JBI-Komponenten sind voneinander unabhängig und kommunizieren über den NMR.

Apache ServiceMix unterscheidet zwischen zwei unterschiedlichen Arten von JBI-Komponenten: Binding Components (BC) und Service Engines (SE).

### Binding Component

Die Binding Component (BC) erfüllt grundsätzlich zwei Aufgaben, eine Kommunikation über ein Remote Protokoll herzustellen und eingehende sowie ausgehende Nachrichten zu normalisieren und zu denormalisieren. Eine Binding Component dient somit als Verbindungsstelle eines ESB bzw. NMR mit der Außenwelt.

### Service Engine

Die Service-Engine (SE) stellt logische Abläufe im ESB bereit. Soll eine Nachricht außerhalb des ESB versandt werden, muss die SE-Komponente die Nachricht zuerst an eine BC-Komponente übermitteln, wodurch eine genaue Schnittstelle zwischen ESB und weiteren Systemen außerhalb des ESB definiert wird.

## OSGi Komponenten

Die Version 7.0.1 hat folgende Abhängigkeiten

* Apache Karaf in der Version 4.0.9
* ActiveMQ in der Version 5.14.5
* Camel in der Version 2.16.5
* CXF in der Version 3.1.9
