© Excellent backgrounds/Shutterstock.com
Java Magazin
Systemintegration mit Apache Camel: Weitere Funktionalitäten

Mit großen Kamelschritten voran

In der Ausgabe 8.2012 widmeten wir uns bereits der Fragestellung, wie Apache Camel im täglichen Einsatz unsere Arbeit vereinfachen kann. In diesem Artikel gehen wir auf weitere Konzepte und Funktionalitäten ein, die uns Camel zur Verfügung stellt. Dazu werden wir unsere Beispielanwendung, die unter [1] frei verfügbar ist, fertigstellen. Auch dieses Mal bin ich an der einen oder anderen Stelle einen Kompromiss zu Lasten der Systemarchitektur eingegangen, um Ihnen einen möglichst breiten Überblick über die Möglichkeiten zu geben, die uns Camel bietet.

Christian Müller


Ziel dieses zweiten Teils unserer Serie ist es, Sie mit weiteren Konzepten und Funktionalitäten von Camel vertraut zu machen. Ganz konkret werden dies die Enterprise Integration Patterns „Message Filter“, „Recipient List“, „Content Based Router“ und „Aggregator“ sein. Weiterhin lernen Sie die Komponenten kennen, mit denen herkömmliche HTTP-Aufrufe durchgeführt, per SQL auf Datenbanken zugegriffen und Dateien erzeugt werden können.

ArtikelserieTeil 1: Camel-Komponenten, JAX-WS-Services, JAX-RS-Services Teil 2: Systemintegration mit Camel: Weitere Funktionalitäten

Was bereits geschah

Im ersten Teil dieser Serie haben wir für unseren Adressänderungsservice eine auf SOAP basierende Web-Service- und eine Batch-Schnittstelle – basierend auf einer CSV-Datei – entwickelt. Beide Verarbeitungsabläufe münden frühzeitig in einen gemeinsamen Prozessablauf, um so eine möglichst einheitliche Verarbeitung sicherzustellen. Dazu haben wir ein einheitliches Datenmodell für diesen Service definiert, in das die schnittstellenspezifischen Objekte zuvor konvertiert wurden. In diesem Prozessablauf werden die Nachrichten als erstes mit der aktuellen Adresse des Kunden angereichert. Zu diesem Zweck wird das unternehmensweite Enter­prise Information System per JAX-RS-Aufruf angefragt. Als letzten Schritt marshallten wir unser einheitliches Datenmodell mittels JAXB in einen XML String, den wir anschließend in eine von ActiveMQ bereitgestellte Queue geschrieben haben.

Was geschehen wird

Dieser Artikel beschreibt die Umsetzung des zweiten Teils der Anforderung, der in Abbildung 1 dargestellt ist. Die Nachrichten werden aus der bekannten Queue gelesen und gleichzeitig an zwei unterschiedliche Verarbeitungsabläufe übergeben. Der untere Ablauf dient dazu, die einzelnen Adressänderungsaufrufe, wenn notwendig, im dafür vorgesehenen Rechnungssystem zu speichern. Der obere Ablauf führt die eigentliche Adressänderung im unternehmensweiten CRM-System durch. Anschließend wird das Ergebnis an die aufrufende Verarbeitungskette zurückgegeben. Im Falle eines Web-Service-Aufrufs wird die Antwort in das definierte Format konvertiert und zurückgegeben. Im Falle der Batch-Verarbeitung wird das Ergebnis an einen „Aggregator“ geleitet, der alle Antworten zusammenfasst und sie in das definierte Antwortformat umwandelt. Wenn alle Adressänderungen einer Eingangsdatei verarbeitet sind, wird die korrespondierende Ausgangsdatei geschrieben.

Abb. 1: Architekturdiagramm der Gesamtanforderung mittels EAI-Pattern doku...

Java Magazin
Systemintegration mit Apache Camel: Weitere Funktionalitäten

Mit großen Kamelschritten voran

In der Ausgabe 8.2012 widmeten wir uns bereits der Fragestellung, wie Apache Camel im täglichen Einsatz unsere Arbeit vereinfachen kann. In diesem Artikel gehen wir auf weitere Konzepte und Funktionalitäten ein, die uns Camel zur Verfügung stellt. Dazu werden wir unsere Beispielanwendung, die unter [1] frei verfügbar ist, fertigstellen. Auch dieses Mal bin ich an der einen oder anderen Stelle einen Kompromiss zu Lasten der Systemarchitektur eingegangen, um Ihnen einen möglichst breiten Überblick über die Möglichkeiten zu geben, die uns Camel bietet.

Christian Müller


Ziel dieses zweiten Teils unserer Serie ist es, Sie mit weiteren Konzepten und Funktionalitäten von Camel vertraut zu machen. Ganz konkret werden dies die Enterprise Integration Patterns „Message Filter“, „Recipient List“, „Content Based Router“ und „Aggregator“ sein. Weiterhin lernen Sie die Komponenten kennen, mit denen herkömmliche HTTP-Aufrufe durchgeführt, per SQL auf Datenbanken zugegriffen und Dateien erzeugt werden können.

ArtikelserieTeil 1: Camel-Komponenten, JAX-WS-Services, JAX-RS-Services Teil 2: Systemintegration mit Camel: Weitere Funktionalitäten

Was bereits geschah

Im ersten Teil dieser Serie haben wir für unseren Adressänderungsservice eine auf SOAP basierende Web-Service- und eine Batch-Schnittstelle – basierend auf einer CSV-Datei – entwickelt. Beide Verarbeitungsabläufe münden frühzeitig in einen gemeinsamen Prozessablauf, um so eine möglichst einheitliche Verarbeitung sicherzustellen. Dazu haben wir ein einheitliches Datenmodell für diesen Service definiert, in das die schnittstellenspezifischen Objekte zuvor konvertiert wurden. In diesem Prozessablauf werden die Nachrichten als erstes mit der aktuellen Adresse des Kunden angereichert. Zu diesem Zweck wird das unternehmensweite Enter­prise Information System per JAX-RS-Aufruf angefragt. Als letzten Schritt marshallten wir unser einheitliches Datenmodell mittels JAXB in einen XML String, den wir anschließend in eine von ActiveMQ bereitgestellte Queue geschrieben haben.

Was geschehen wird

Dieser Artikel beschreibt die Umsetzung des zweiten Teils der Anforderung, der in Abbildung 1 dargestellt ist. Die Nachrichten werden aus der bekannten Queue gelesen und gleichzeitig an zwei unterschiedliche Verarbeitungsabläufe übergeben. Der untere Ablauf dient dazu, die einzelnen Adressänderungsaufrufe, wenn notwendig, im dafür vorgesehenen Rechnungssystem zu speichern. Der obere Ablauf führt die eigentliche Adressänderung im unternehmensweiten CRM-System durch. Anschließend wird das Ergebnis an die aufrufende Verarbeitungskette zurückgegeben. Im Falle eines Web-Service-Aufrufs wird die Antwort in das definierte Format konvertiert und zurückgegeben. Im Falle der Batch-Verarbeitung wird das Ergebnis an einen „Aggregator“ geleitet, der alle Antworten zusammenfasst und sie in das definierte Antwortformat umwandelt. Wenn alle Adressänderungen einer Eingangsdatei verarbeitet sind, wird die korrespondierende Ausgangsdatei geschrieben.

Abb. 1: Architekturdiagramm der Gesamtanforderung mittels EAI-Pattern doku...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang