DHL setzt auf Fiorano-Software

DHL ist ein 1969 gegründeter Paket- und Brief-Express-Dienst, der seit 2002 zum Konzern der Deutschen Post AG gehört. Das Unternehmen beschäftigt über 275.000 Mitarbeiter in mehr als 220 Ländern, ist Weltmarktführer bei Luft- und Seefracht und weltweit das umsatzstärkste Logistikunternehmen.

Kundenprofil

  • Globaler Marktführer in der Versand- und Logistikindustrie mit über 500.000 Mitarbeitern.
  • Tochtergesellschaft der Deutsche Post World Net (jährlicher Gewinn 63,5 Mrd €), Geschäftssitz in Bonn
  • Nummer 1 weltweit in Seefracht und Vertragslogistik
  • Bedient über 120.000 Orte in 220 Ländern
  • Verwaltet eine Flotte von 76.200 Fahr- und 420 Flugzeugen
  • Kundenstamm umfasst über 75% der weltweit größten börsennotierten Unternehmen außerhalb des Finanzsektors

Geschäftsproblem

  • Dateien mit Flugdaten müssen in ihre Anwendung zum Flugdaten Management upgeloaded werden; für jedes Flugzeug das landed oder von dem DHL Terminal abfliegt.
  • Diese Dateien werden in einem Dateisystem des Flugcomputers gespeichert, sobald das Flugzeug die Landebahn(loading gate) berührt, zudem werden sie auch als Email und IBM MQSeries verschickt.
  • Jede Datei muss in ein gängiges Format transformiert werden, sie muss validiert (Datenbank Look-Up und andere benutzerdefinierte Regeln) und vervollständigt werden bevor sie an die Zielanwendug weitergegeben wird.
tl_files/upload/images/poc.gif

Lösung

Schritt 1: CAM Nachrichten erhalten

  • Verwendete Komponente(n): File Reader, MQSeries In
  • CAM Nachrichten kommen in 2 Formaten an. Ungesplittete Flatfile-Format Nachrichten in einem bestimmten Ordner im Dateisystem und gesplittete XML CAM Nachrichten, gesendet an eine Warteschlange in MQseries
  • File Reader Komponente nimmt CAM Nachricht von dem Dateisystem auf und MQSeries Komponente liest die CAM Nachricht von der MQseries Warteschlange

Schritt 2: CAM Nachricht splitten

  • Verwendete Komponente(n): CAMSplitter
  • CAMSplitter identifiziert Flatfile CAM Nachrichten in Gruppen basierend auf vorbestimmten Kriterien und splittet sie in mehrere solcher gruppierter Nachrichten
Schritt 3: GateKeeper Verarbeitung
  • Verwendete Komponente(n): Javascript Sequencer, XSLT
  • Die XSLT Komponente generiert den UTC Zeitstempel, bestimmt die Schlüsseninformationen und erstellt einen Nachrichten Envelope für die XML CAM Nachrichten
  • Dies macht die Javascirpt Komponente für die Flatfile CAM Nachrichten.  Sequencing der CAM Nachrichten wird nun von der Sequencer Komponent für beide Typen der CAM Nachrichten durchgeführt
Schritt 4: Analyse und Erstellen einer kanonischen XML
  • Verwendete Komponente(n): CAMParser, CAMValidator, CAMTransformer, XSLT
  • Die Flatfile CAM Nachrichten werden unter Verwendung von CAMParser analysiert, unter Verwendung von CAMValidator validiert und mittels CAMTransformer transformiert
  • Ähnlich läuft das Analysieren, Validieren und Transformieren für XML CAM Nachrichten ab, indem  die XSLT Komponente verwendet wird
Schritt 5: Zielort Look-Up
  • Verwendete Komponente(n): DBCache, DynamicCBR
  • Eine gegebene CAM Nachricht könnte an verschiedene Ziele geleitet werden müssen, abhängig von dynamisch bestimmten Geschäftsregeln
  • Die Regeln werden an die Dynamic CBR Komponente übergeben, die die Regel auf die ankommenten CAM Nachrichten anwenden wird. Basierend auf den Regeln, leitet die DynamicCBR die CAM Nachrichten an ein oder mehrere Ziele
Schritt 6: Output Transformation
  • Verwendete Komponente(n): XSLT
  • Die CAM Nachrichten die an den Zielort weitergeleitet werden müssen, werden in das Zielformat transformiert indem die XSLT Komponente verwendet wird
Schritt 7: Dispatch zum Zielsystem
  • Verwendete Komponente(n): File Writer, MQSeries Out, Sequencer
  • Flatfile CAM Nachrichten werden mit der FileWriter Komponente in einen Zielordner geschrieben und XML CAM wird auf MQseries an die Zielwarteschlange geschrieben, indem die MQseries Komponente verwendet wird
  • Der Sequencer muss über die Vollendung des Prozesses benachrichtigt werden, sodass die nächste Nachricht in der korrespondierenden Gruppe für die Verarbeitung fertig gemacht werden kann

Vorteil / Nutzen

  • Verlässlicher Datentransfer – 100% garantierte Zustellung
  • Größere transaktionale Sichtbarkeit
  • Laufzeitveränderungen und Debugging auf einen Blick
  • Hohe Daten- und Prozessverfügbarkeit ohne, dass eine zentrale Datenbank notwendig ist
  • Trennung von Flow-Log und System-Log
  • Weniger Zeit um die Flows zu entwickeln
    • Intuitive Tools und umfassendes Set an vorgefertigten Komponenten
    • Flows von verteilten Events über mehrere Servicekomponenten lassen sich einfach debuggen
    • Dynamische Anpassung an Veränderungen
  • Verschiedene Programmiersprachen werden gleichermaßen unterstützt