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.

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.

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.

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.

Referenz

Trost: Integration von IBM System i mit Webservices

ARS integrierte die System i von Trost basierend auf standardisierter Webservice-Technologie und IBM Middleware: sicher, performant und preiswert.

Technologie

Open Source

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

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.

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.

Headerbild Talend Application Integration
Technologie

Talend Application Integration / ESB

Mit Talend Application Integration erschaffen Sie eine serviceorientierte Architektur und verbinden, vermitteln & verwalten Ihre Services und APIs in Echtzeit.

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.

ESB Lösungen
Technologie

Sonstige ESB Lösungen

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

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.

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.

Referenz

tvtv Services setzt auf JEE-Standards und Webservices

ARS übernahm die Entwicklung der Verwaltungszentrale “Control Center” auf Basis von JEE-Standards und Webservices für den Electronic Program Guide von tvtv Services.

Blog 11.08.23

AWS Lambda: Erste Schritte mit Java

In diesem Artikel lernen wir, was die Vorteile bei der Verwendung von AWS Lambda sind u. wie wir Java-Code in AWS-Lambda installieren und ausführen können.

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.

Headerbild zu Webserver mit Open Source
Technologie 12.11.20

Webserver mit Open Source

Webserver bieten ihrer Anwendung das Tor zur Welt: Hier gehen Anfragen für Daten für eine komplexe Webapp und Ressourcen einer Website ein und aus.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!