Open Source ESB Mule Prototyp

{ 2008-04-01 } von Markus Demolsky

Category image: Opensource

In der aktuellen Ausgabe des Java Magazin befindet sich der zweite Teil meiner ESB-Artikel Serie, welche die Grundkonzepte eines ESB anhand des Open Source ESB Mule erläutert. Wie im Artikel erwähnt, stellen wir den vollständigen Source Code des Prototypen als Download zur Verfügung und wünschen euch viel Spass!! Die Implementierung basiert auf der Version 1.4.4-SNAPSHOT Version von Mule. Wir sind gerade dabei diesen auf die neue Version 2.0 von Mule anzupassen, da sich in der neuen Version doch einiges an der Konfiguration geändert hat :) In der ZIP-Datei befinden sich neben dem Sourceocde auch alle benötigten Libs.

Demoprozess

Im Beispiel geht es um die Abwicklung von Störungsmeldungen. Wenn beispielsweise ein Kunde Probleme mit einem Kopiergerät hat, kann er über ein System eine Störungsmeldung erfassen. Die Störungsmeldung gelangt an das zuständige Unternehmen, das die Störung entgegennimmt und sich darum kümmert. Je nach Komplexität der Störung können dabei unterschiedliche Dienstleistungen, Material und Kosten anfallen. Bei Abschluss erhält der Kunde eine Störungsabrechnung.

Nun zur Technik, die bei unserem Beispiel zum Einsatz kommt: Störungen werden in Form von XML an ein Topic eines Messaging System (Active MQ) gesendet. Störungsmeldungen bestimmten Typs starten einen neuen Prozess in einer BPM Engine (JBPM). In diesem Prozess wird der Service Request verarbeitet und mit Daten angereichert. Zum Schluss wird dem Kunden eine Abrechnung in Form einer XML-Datei gesendet. Folgende Konzepte werden anhand dieses Beispiels verdeutlicht:

  • Anbindung eiens Messaging Systems

  • Anbindung einer BPM Engine

  • XML Serialisierung

  • Filter, Router, Transformierung

Voraussetzungen

  1. Java 1.5+
  2. Active MQ 4.1.1
  3. Mule Prototyp Source (Beispiel)

Einrichtung und Inbetriebnahme

  1. Active MQ Server starten (Active MQ/bin Verzeichnis die activemq.bat Datei starten)
  2. ZIP-Datei entpacken und in Eclipse importieren. Alle benötigten Lib-Dateien befinden sich (im lib-Verzeichnis des Prototypen. Diese müssen entsprechend in den Build-Path aufgenommen werden. Weiters müssen auch die Verzeichnise src/main/resources und src/test/resources in den Build-Path aufgenommen werden.
    ! Das Projekt basiert zwar auf Maven 2, es gibt aber noch Probleme mit dem Extended XML-Modul. Wir haben das Extended-XML-Modul in Untermodule aufgegliedert, welche jedoch noch nicht deployed wurden! Falls jemand mvn eclipse:eclipse durchführt, muss die Datei mule-module-castor.jar explizit in den Build-Path aufgenommen werden, oder diese zuerst in das lokale Repository installiert werden!
  3. Mule Server starten (src/main/java/com/indoqa/mule/LaunchEsbServer) Der Active MQ Server muss gestartet, sein, andernfalls erscheint eine Connection Refused Exception, da die Verbindung mit dem MQ Server nicht hergestellt werden kann.
  4. Den Testfall TestServiceRequestProcess (src/test/java/com/indoqa/mule/client) starten. Dieser Testfall sendet eine Nachricht an den Active MQ Server und startet somit das Szenario. In der Console des ESB-Server werden alle Schritte protokolliert.

Zurück