Wüste der Integration

Auf Kamelen durch die Wüste der Integration

Wissensbeitrag

Betrachten wir das Open Source Integrationsframework Apache Camel einmal aus Entwicklungsperspektive näher bei seinem Wüstenritt. Es gibt viele Möglichkeiten eine einfache Punkt-zu-Punkt Anbindung zu gewährleisten und auch die Auswahl an Software ist überwältigend. Im Rahmen eines Kundenprojektes sollte die Anbindung eines RESTful Webservices an eine DB2 Datenbank realisiert werden. Hierfür wurde zum einen eben genanntes Camel verwendet und als Alternative dieselbe Anbindung im WebSphere Message Broker realisiert.

Die Kundensituation

Es sollten REST-Services aufgerufen werden, und die zurückgegebenen JSON-Objekte transformiert und in eine Datenbank geschrieben werden. Die Aufgabe gliederte sich hierbei grob in drei Teile:

  1. Aufrufen des Webservices, empfangen der JSON-Objekte
  2. Transformation der JSON-Objekte für die Weiterverarbeitung
  3. Speichern der Informationen in einem Datenbanksatz

Das Aufrufen der Webservices sollte dabei sowohl automatisch nach einer gewissen Zeit wiederholt als auch manuell angestoßen werden können.

Für die exemplarische Darstellung wurde in diesem Beispiel ein CXF-Webservice auf einem Tomcat Server platziert, welcher Länder anhand eines Ländercodes mit Name, Hauptstadt und Kontinent als JSON Objekt ausgibt.

Realisierung mit Apache Camel 2.10.4

1 Einführung

Apache Camel ist ein Integrationsframework. Es können Routen erstellt werden, welche Punkte miteinander verbinden. Diese Routen können in einer Vielzahl verschiedener Domain Specific Languages, wie Java- oder Spring-DSL realisiert werden.

Sie können dann beispielsweise von der Kommandozeile oder aus einem Java-Programm heraus gestartet werden oder als OSGi-Bundle oder Servlet in einem entsprechenden Container abgelegt und verwendet werden.

Für die Implementierung in diesem Falle wurde Spring-XML gewählt, die Route wurde mit Hilfe von Maven gestartet.

Für das Auflösen von Abhängigkeiten wurde Apache Maven verwendet. In der POM.xml wurden alle Abhängigkeiten von Camel Bibliotheken und Logging Bibliotheken aufgelöst. Ein zusätzliches Herunterladen von Camel war dadurch nicht mehr nötig.

Die einzige Abhängigkeit, die nicht direkt aus der Maven Repository aufgelöst werden konnte waren die JDBC-Konnektoren für die DB2 Datenbank. Diese mussten zusätzlich heruntergeladen und in den Build-Path eingebunden werden.

2 Programmstruktur

Es wurden insgesamt drei Spring-XML Files, zwei Java-Klassen und zwei Java-Objektspezifikationsdateien angelegt.

Die XML-Dateien wurden der Übersichtlichkeit halber aufgeteilt in die Spezifikationen der Route, der Datenbank und der JSON-Übersetzung.

Die Java Klassen dienten des Zusammenbaus der REST-URL und des Querys für die Datenbank.

3 Ablauf

Die Route selbst wurde in drei Teile aufgespalten:

– Ein Teil zum Einlesen der Daten

– Ein Teil für das Abholen und die Transformation der Daten vom Webservice

– Ein Teil für das schreiben in die Datenbank

Auf diese Weise lässt sich die Eingabe einfach anpassen, es können verschiedene Entry-Points gesetzt werden ohne die weitere Logik der Route zu beeinflussen.

Gleichermaßen kann der Endpunkt, der auf die Datenbank verweist auf diese Weise auch leichter angepasst werden, sollten die Daten beispielsweise noch an weitere Stellen versendet werden.

Zusätzlich wurde ein Endpunkt angebracht, der den Inhalt der Tabelle nach der Verarbeitung in ein Log ausgibt

Es wurden direkte Endpunkte zur Weiterleitung verwendet, im optimalen Falle würde man hier noch Persistenz, zum Beispiel in Form von ActiveMQ Queues hinzufügen.

Das Anstoßen der Route geschieht automatisch alle 5 Minuten. Alternativ kann allerdings auch eine CSV-Datei mit den gewünschten Ländercodes in ein vorgegebenes Verzeichnis kopiert werden und wird von dort konsumiert und Ausgeführt.

4 Erweiterbarkeit, Modifizierbarkeit und Verständlichkeit

Durch die Modulare Struktur der Camel Routen lässt sich das Programm leicht erweitern und Änderungen wie die Adresse der Datenbank oder des Webservices sind in den jeweiligen Dateien leicht vorgenommen.

Der Code im XML Format ist leicht verständlich und kann durch die XML Kommentar-Notation dokumentiert werden.

5 Logging und Monitoring

Camel ist komplett mit Log4j kompatibel und bietet damit die Möglichkeit, sowohl Logs in einer Konsole als auch in Dateien auszugeben.

Camel kann über eine JMX-Schnittstelle angesprochen werden und stellt auch einige APIs zur Verfügung, welche dann in Java angesprochen werden können um eine entsprechende Monitoring Schnittstelle zu ermöglichen.

Camel besitzt auch seit Version 2.5 eine Webkonsole, welche seit Version 2.8 ebenfalls als Servlet aufgesetzt werden kann. Hier können Endpunkte untersucht und Nachrichten an bestimmte Endpunkte geschickt werden. Die Webkonsole muss allerdings gesondert heruntergeladen werden.

Außerdem ist externes Monitoring über den gewählten Container möglich. Zum Beispiel können Websphere Application Server mit der Camel Route als OSGi Bundle oder Apache Tomcat mit der Camel-Route als Servlet verwendet werden und können dann ihre Monitoring Möglichkeiten zur Verfügung stellen.

6 Exception Handling

Exceptions können mit entsprechenden Knoten aus der Camel Route heraus abgefangen und entsprechend abgehandelt werden. Hierfür stehen bestimmte Knotenpunkte zur Verfügung, von denen Camelrouten für die Fehlerbewältigung abgehen können.

Die Fortsetzung, in der die Realisierung mittels des WebSphere Message Brokers gezeigt wird, folgt in Kürze.

Wüste der Integration
Wissen

Auf Kamelen durch die Wüste der Integration - Teil 2

Für Integrationsprojekte bietet Open Source Framework Apache Camel einige Lösungen. In diesem fortsetzenden Beitrag wird WebSphere Message Broker als alternatives Produkt beleuchtet.

Apache Lösungen
Technologie

Apache Lösungen

Lesen Sie alles zu ausgewählten Apache Messaging- und Connectivity- Produkten, die bei uns zum Einsatz kommen.

Wissen

Mediation mittels Transformation und Routing

Wie kann durch Mediation auf der Basis eines Messagingsystems lose Kopplung zwischen Anwendungen erzielt werden? Gibt es bei der Umsetzung der Mediation Unterschiede zwischen Open Source und kommerziellen Lösungen? Dieser Blogartikel beantwortet diese Fragen.

Verschiedene Werkzeuge wie Hammer, Schraubenzieher, etc. auf einem Boden
Wissen

Standards von Opensource ESB's

Können bestehende, ausführbare Mediationen auf eine SOA Platform portiert werden? Wann wäre dieser Übergang sinnvoll? Was tragen OSGi und JBI zu einer SOA bei?

Puzzleteil zur Visualisierung von Integration
Wissen

Einlesen großer Dateien mit Camel

Wenn eine relativ große Datei über eine simple Java Anwendung zerlegt und die so gewonnen Daten in eine Datenbank geschrieben werden sollen, gibt es verschiedene Ansätze, die sowohl Vor- als auch Nachteile aufweisen.

Services für Apache Camel
Technologie

Services für Apache Camel

Opensource Framework um Integrationslösungen nach den Enterprise Integration Patterns umzusetzen. Zur Umsetzung wird der FUSE Mediation Router eingesetzt – eine ausgeführlich getestete Version von Apache Camel.

Puzzleteile zur Visualisierung von Integration
Wissen

Einführungsworkshop in Apache Integrationslösungen

Eine Schulung zu dem Thema „Einführung in die Apache Integrationslösungen“ beschäftigt sich intensiv damit, wie Wissen zu den Produkten Apache ActiveMQ, Camel, CXF und ServiceMix möglichst gut aufbereitet und effizient vermittelt werden kann.

Arbeit am Laptop
Wissen

Qualität der Messagingsysteme

Welche Funktionalitäten bieten Messagesysteme? Wo liegen die Unterschiede zwischen frei verfügbaren und kommerziellen Messagingsystemen? Lesen Sie in diesem Artikel mehr.

Puzzleteil zur Visualisierung von Integration
Wissen

IBM Integration Bus 9 – Der neue Message Broker

Auf der Impact 2013 in Las Vegas wurde Version 9 des bewährten WebSphere Message Brokers (WMB) unter dem Namen IBM Integration Bus (IIB) vorgestellt. Der Grund für die Umbenennung ist sicher die neue ESB-Strategie der IBM. Der Blogartikel liefert Einzelheiten.

Services für Apache ServiceMix
Technologie

Services für Apache ServiceMix

Ermöglicht es, Anwendungen durch Einsatz eines Opensource ESBs lose zu koppeln. Zur Umsetzung wird der FUSE ESB eingesetzt – eine ausgeführlich getestete Version von Apache ServiceMix.

Integration von Geschäftsprozessen mittels Open Source
Wissen

Integration von Geschäftsprozessen mit Open Source

Welche Potentiale haben Open Source Ansätze in einer SOA Implementierung – speziell die der Open Source ESBs (Enterprise Service Bus)?

ESB Lösungen
Technologie

Sonstige ESB Lösungen

Lernen Sie zu den ESB-Lösungen, die bei uns zum Einsatz kommen!

Was braucht man zur Cloud-Integration?
Wissen

Was braucht man zur Cloud-Integration?

Ist eine Speziallösung für die Applikationsintegration in Cloud-Situationen immer sinnvoll? Auf der heute zu Ende gegangenen IBM Konferenz “WebSphere Technical Convention 2012” in Berlin wurden diese und noch mehr Fragen gestellt. Dieser Blogeintrag berichtet Genaueres.

Wissen

E-Mobilität-Business lebt von der Datenqualität

Das E-Auto laden und weiterfahren? X-INTEGRATE hat dafür eine Technologieplattform entwickelt, über die sie zugleich ei-ne hohe Datenqualität sicherstellt.

Tippen auf Tastatur
Wissen

Entwicklung bei SaaS & Cloud Service Integration

Kann die Integration von SaaS und interner IT-Landschaft mit vorkonfigurierten und template-gestützten Lösungen vereinfacht werden? Nach diversen Gesprächen und Vorträgen zu diesem Themenbereich und ersten praktischen Erfahrungen bietet dieser Artikel eine Einschätzung zum Reifegrad solcher on-/off-premise Integrationslösungen.

Verbunde Pins zur Visualisierung eines Netzwerks
Wissen

Routenplanung mit IBM ILOG Transportation Analyst

Das Problem der Transportoptimierung beschäftigt den Einzelhandel ständig. Für die strategische Routenplanung bietet IBM ILOG Transportation Analyst einen ganzen Katalog aus Funktionen an. Dieser Blogartikel klärt auf welche das sind.

Security, Identity & Access Management als Grundlage für die Digitale Transformation
Wissen

Die DataPower als B2B Security Gateway

“Wie kann mir die DataPower dabei helfen, meine existierenden Serviceschnittstellen so abzusichern, dass ich sie bedenkenlos meinen Geschäftspartnern oder Kunden über das Internet zur Verfügung stellen kann?” - Diese Frage beantwortet Ihnen unser Artikel rund um die DataPower als B2B Security Gateway.

Wolke zur Visualisierung der Cloud
Wissen

Impact Nachlese - Mobile, Cloud und Integration

Wie kann Technologie helfen bessere Geschäftsergebnisse zu erzielen? Das war das Motto der diesjährigen Impact Konferenz der IBM in Las Vegas mit ca. 8500 internationalen Teilnehmern. Dieser Blogartikel fasst unsere Eindrücke zusammen.

Technologie

Open Source

Open Source steht für „quelloffen” – entsprechend kann Open Source Software von Dritten eingesehen, bearbeitet und verwendet werden.

Wolke zur Visualisierung der Cloud
Wissen

Cloud Integration mit IBM's Cast Iron OmniConnect

Mit der Übernahme von Cast Iron hat IBM die Spekulationen über die Weiterentwicklung von IBM im Bereich Cloud Integration Appliance beendet. Erfahren Sie in diesem Blog mehr über Cast Iron, das Hauptprodukt OmniConnect.