Apache ActiveMQ
Apache ActiveMQ ist ein JMS Provider. Dieser ermöglicht eine asynchrone Kommunikation zwischen Endanwendungen via JMS Queues. Messages können mittels P2P-Verbindungen zwischen einzelnen Queues oder an mehrere Nachrichteninteressenten über das Publish-Subscribe Verfahren transportiert werden.
Auch komplexere Anforderungen, wie Load Balancing, High Availability oder SSL-Verschlüsselung der Nachrichten können erfüllt werden. Der Zugriff auf die Queues kann unter anderem in den Programmiersprachen Java, C++, Ajax und .NET erfolgen. Auch mit dem plattformunabhängigen REST-Interface können Messages in die Queues geschrieben beziehungsweise aus diesen ausgelesen werden.
Apache Camel
Apache Camel sieht sich selbst als Integrationsframework zur Umsetzung von Routing- und Mediationsregeln. Ausgangspunkt sind hierbei die in dem Buch Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf formulierten Patterns. Um die darin formulierte Pipes- and Filter Architektur umzusetzen, existieren zwei Objekte. Das CamelContext-Objekt ist ein ausführbares Java-Programm, welches als Container für beliebig viele Route-Objekte dient.
Jedes Route-Objekt definiert eine Verbindung zwischen einem Anfangs- und einem Endpunkt mit beliebig vielen Zwischenstationen. Anfangs- und Endpunkt definieren die Fremdanwendungen, welche mittels Apache Camel miteinander kommunizieren sollen. Zur Anbindung dieser Fremdanwendungen stehen unter anderem Adapter für JMS (unter anderem Apache ActiveMQ), SCA und HTTP bereit. In den Zwischenschritten kann dann auf vordefinierte Klassen des Frameworks zurückgegriffen werden um unter anderem physische und logische Transformationen sowie Content Based Routing zu implementieren.
Apache ServiceMix
Diese ESB Entwicklung wird durch eine mittlerweile sehr große Opensource Community getragen. Apache ServiceMix ist vollständig auf Basis des Java Business Integration (JBI) Standards implementiert. Kernstück der JBI Spezifikation ist der Normalized Message Router (NMR), welcher die asynchrone Mediation von Messages realisiert. Dieser setzt sich aus mehreren OSGi Bundles zusammen, die in einer belibigen OSGi Runtime deployt werden können. Mittels der servicemix-camel-component können Apache Camel Routen als Service Units innerhalb von Apache Servicemix deployed werden.
Apache Axis2
Apache Axis2 ist der Nachfolger des erfolgreichen Apache Axis WebService Frameworks. Um aktuelle Anforderungen erfüllen zu können wurde Apache Axis2 vollständig neu entwickelt. Die einzelnen WebServices werden nun in einer .aar Datei zusammengefasst um Hot deployment und Hot update zu ermöglichen. Verbessert wurde auch das Data-Binding, welches ermöglicht XML-Inhalte in einer Programmiersprache als Objekte zu verwenden. Weiterhin erlaubt die modulare Struktur von ApacheAxis2 nun auch, WebServices um Features wie Zuverlässigkeit und Sicherheit zu erweitern. Dazu existieren verschiedene Module wie zum Beispiel Apache Sandesha2 (WS-Reliable Messaging) oder Apache Rampart (WS-Security).
Apache CXF
Apache CXF ist ein weiteres Opensource WebService Framework, das aus der Fusion der Projekte XFire und Ionas Celtix hervorgegangen ist. Es erlaubt javabasierte WebServices sowie WebService Clients auf Basis von JAX-WS zu erstellen. JAX-WS ist der Nachfolger von JAX-RPC. Im Gegensatz zur Vorgängerversion ist JAX-WS nachrichtenbasiert und erlaubt asynchronen Nachrichtenaustausch. Apache CXF unterstützt unter anderem die Transportprotokolle HTTP und JMS. Beim Data-Binding kann unter anderem auf JAXB oder Aegis zurückgegriffen werden.
Verschiedene Open Source ESB Komponenten
ESB-Teilkomponenten (zum Teil selten verwendet, bzw. nicht mehr aktuell von den zum Teil sehr kleinen Communities weiterentwickelt) sind folgende Projekte: Apache Camel, Apache CXF, Apache Tuscany, Xbus ESB – die Ausnahme war Apache Synapse – Apache Synapse wird durch den WSO2 ESB abgelöst, welcher bestehende Funktionalitäten dieses ESBs nutzt.