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.

Puzzle zur Visualisierung von Enterprise Application Integration (EAI)
Kompetenz 31.08.20

Enterprise Integration

Enterprise Integration unterstützt die Geschäftsprozessabwicklung und verschafft Unternehmen Kostenvorteile. Zum Aufbau von Integrationsszenarien verwendet X-INTEGRATE die Methode Baseline.

Puzzle zur Visualisierung von Enterprise Application Integration (EAI)
Kompetenz 06.03.25

Enterprise Integration

Enterprise Integration supports the execution of business processes and provides companies with cost advantages. To build integration scenarios, X-INTEGRATE uses the Baseline method.

Wolke zur Visualisierung der Cloud
Wissen

Lösungen für Cloud Services Integration / SaaS Integration

Denken Sie über die Nutzung von SaaS und Cloud Computing nach? Stellen Sie sich heute schon die Frage, wie Sie einfach und schnell diese neuen Lösungen (off-premise) mit den bestehenden Inhaussystemen (on-premise) verbinden?

Services für IBM Integration Designer
Technologie

IBM Integration Designer

Erstellung wertschöpfender Geschäftsprozesse aus standardisierten Servicekomponenten. Verbessern Sie die Agilität Ihres Unternehmens mit Lösungsaufbau, Geschäftsregeln, Business-State Machines und Selektoren, sowie Funktionen für Ereignisse und Eskalierungen.

Technologien der Enterprise Integration
Kompetenz 03.09.20

Technologien der Enterprise Integration

Um die digitale Revolution zu meistern, ist nicht nur die Wahl der richtigen Technologie wichtig: Auch eine methodische Vorgehensweise trägt maßgeblich dazu bei, dass ein qualitativ hochwertiges Design entstehen kann.

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.

Headerbild zur Third Party Integration
Technologie

Third Party Integration

Das Konzept, die wichtigsten Informationen in einer zentralen Digital Workplace Plattform zusammen zu bringen (HCL and beyond), führen wir jetzt konsequent mit der ICEC Atlassian Confluence & Jira Integration fort.

Headerbild zu Tempo Customizing und Integration
Technologie

Tempo Customizing und Integration

Passen Sie Tempo für Jira Ihren Bedürfnissen an und binden Sie ihre Atlassian Zeiterfassung nahtlos in die ERP Landschaft, wie SAP oder HCL Domino, ein.

Headerbild Talend Data Integration
Technologie

Talend Data Integration

Talend Data Integration bietet eine hochskalierbare Architektur für nahezu jede Anwendung und jede Datenquelle – mit gut 900 Konnektoren von der Cloud Lösung wie Salesforce über klassische On-Premises Systeme.

Kompetenz

Technology Adoption & Integration

IT ist die treibende Kraft hinter der digitalen Transformation.

Process Integration & Automation
Service

Process Integration & Automation

Unternehmensprozesse digitalisieren und verbessern sowie auf Veränderungen agil reagieren – diesen Herausforderungen sehen sich immer mehr Unternehmen gegenübergestellt.

Referenz

Freshservice-Airwatch-Integration für Effizienz!

CLOUDPILOTS optimiert Geräteverwaltung mit Freshservice-Airwatch-Integration. Maßgeschneiderte App für nahtlose Synchronisation.

IIoI & Open Integration Hub
Referenz

IIoT & Open Integration Hub

Das Vorhaben Open Integration Hub Plus zielt darauf ab, eine offene Digitalisierungsplattform für kleine und mittelständische Unternehmen (KMU) zu entwickeln. X-INTEGRATE unterstützt dabei.

Puzzleteil zur Visualisierung von Integration
Wissen

Integration auf Basis von Open Source

Was versteht man unter Anwendungsintegration? Was bedeutet lose Kopplung? Welche wesentlichen Komponenten sind Teil einer Open Source basierten Integrationslösung? Dieser Blogartikel beantwortet Ihnen diese Fragen.

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)?

Literaturtipp: Enterprise Integration Patterns
Trendthemen 03.09.20

Literaturtipp: Enterprise Integration Patterns

Dieses Buch ist besonders herauszuheben, denn “Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions” von Gregor Hohpe und Bobby Woolf ist die Referenz zu Mustern im Bereich Integration und Enterprise Service Bus.

Event 26.10.20

Webcast Talend Application Integration

Mit Talend Application Integration erschaffen Sie eine serviceorientierte Architektur und verbinden, vermitteln und verwalten Ihre Services in Echtzeit. Erfahren Sie alles in unserem Webcast!

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.

Service

Process Transformation, Integration & Automation

Mit Process Transformation, Integration & Automation schnell auf Marktveränderungen zu reagieren und die Wettbewerbsfähigkeit nachhaltig zu verbessern.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!