Jul 3, 2008 ... Enterprise Integration Patterns sind bewährte Lösungsschablonen zur.
Integration von Geschäftsfunktionen und Anbindung von verschiedenen.
Herzlich Willkommen!
Implementing Enterprise Integration Patterns with Apache Camel 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 1
Über den Referenten Eduard Hildebrandt IT Consultant
Berater EAI
Architekt SOA
Coach MDA +49 (0711) 72846627 +49 (0160) 8870983
[email protected]
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 2
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 3
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 4
Definitionen
Enterprise Application Integration (EAI) ist ein Konzept zur unternehmensweiten Integration der Geschäftsfunktionen entlang der Wertschöpfungskette, die über verschiedene Applikationen auf unterschiedliche Plattformen verteilt sind, und im Sinne der Daten- und Geschäftsprozessintegration verbunden werden können.
+
Design Patterns beschreiben bewährte Lösungs-Schablonen für ein Entwurfsproblem. Sie stellen damit wiederverwendbare Vorlagen zur Problemlösung dar, die in einem spezifischen Kontext einsetzbar sind.
= Enterprise Integration Patterns sind bewährte Lösungsschablonen zur Integration von Geschäftsfunktionen und Anbindung von verschiedenen Anwendungen auf unterschiedlichen Plattformen.
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 5
Buchempfehlung
Titel: Enterprise Integration Patterns Autor: Gregor Hohpe und Bobby Woolf Verlag: Addison-Wesley ISBN: 0321200683
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 6
Messaging Nachricht
Nachricht Channel
Sender
Empfänger
location dependencies 3. Juli 2008
data format dependencies
temporal dependencies
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 7
Was ist Apache Camel? Open-Source Java Framework Implementiert ca. 35 Enterprise Integration Patterns Domain Specific Language (Fluent API)
http://activemq.apache.org/camel 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 8
Apache Camel Architecture
http://activemq.apache.org/camel 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 9
Es war einmal…
…vor nicht allzulanger Zeit …an einem wunderschönen Tag …ein IT-Architekt, der seinen Einkauf plante.
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 10
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 11
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 12
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 13
Einkaufsliste • • • • • •
3. Juli 2008
Käse Tomaten Brot Malstifte Kinderüberraschung Teddybär
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 14
Einkaufsliste mit Messaging…
Wunsch
Ehefrau Wunsch
Channel
? Wünsche
Sohn Wunsch
Tochter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 15
Einkaufsliste mit Apache Camel…
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 16
Pattern: Router Output Channel 1
Sender
Empfänger
Input Channel
Sender 1
Output Channel 1
Empfänger
Router
• Emfängt eine Nachricht von einem Channel und leitet diese abhängig von bestimmten Kriterien an einen anderen Channel weiter. • Verändert nur das Ziel der Nachricht und nicht den Inhalt der Nachricht.
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 17
Einsatz von Router
Channel
Wünsche der Ehefrau Wunsch
Ehefrau Wunsch
Channel
Router
Wünsche
Channel
Wünsche des Sohnes
Sohn Wunsch Channel
Tochter
3. Juli 2008
Invalid Messages
Wünsche der Tochter
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 18
Router mit Apache Camel
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 19
Pattern: Message Translator
Sender Input Channel
Output Channel
Empfänger
Sender 1 Translator
• Transformiert von einem Datenformat in ein anderes Datenformat. • Äquivalent zum Adapter Pattern für Nachrichten.
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 20
Einsatz von Message Translator
Channel
Translator
Wünsche der Ehefrau Wunsch
Ehefrau Wunsch
Channel
Router
Wünsche
Channel
Translator
Wünsche des Sohnes
Wünsche im einheitlichen Format
Sohn Wunsch Channel
Tochter
3. Juli 2008
Invalid Messages
Channel
Translator
Wünsche der Tochter
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 21
Transformation der Nachrichten (Ehefrau)
Allgemeine Darstellung: Wunsch der Ehefrau: // CSV: Produkt,Anzahl Milch,2
3. Juli 2008
Translator
Milch 2
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 22
Transformation der Nachrichten (Sohn)
Wunsch des Sohns: // Java Serialization [binäre Daten]
3. Juli 2008
Allgemeine Darstellung: Translator
Kinderei 2
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 23
Transformation der Nachrichten (Tochter)
Wunsch der Tochter:
Allgemeine Darstellung:
Teddybaer 1
3. Juli 2008
Translator
Teddybaer 1
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 24
Pattern: Normalizer Normalizer Channel
Translator
Sender A Channel
Router
Channel
Translator
Channel
Sender B Channel
Sender C
Translator
Invalid Messages
• Transformiert Nachrichten in unterschiedlichen Datenformaten in ein einheitliches Datenformat. • Verwendet intern einen Message Router und mehrere Message Translators. 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 25
Einsatz von Normalizer Entspricht Normalizer Pattern Channel
Translator
Wünsche der Ehefrau Wunsch
Ehefrau Wunsch
Channel
Router
Wünsche
Channel
Translator
Wünsche des Sohnes
Channel
Normalisiert Wünsche
Sohn Wunsch Channel
Tochter
3. Juli 2008
Invalid Messages
Translator
Wünsche der Tochter
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 26
Einsatz von Normalizer
Wunsch
Ehefrau Wunsch
Channel
Normalizer
Wünsche
Sohn Wunsch
Tochter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 27
Normalizer mit Apache Camel
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 28
Pattern: Filter
Filter
Channel
Channel
Sender
Empfänger
• spezielle Art von einem Router • leitet nur Nachrichten weiter, die bestimmten Kriterien entsprechen • hat im Gegensatz zu einem Router nur einen Output-Channel
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 29
Einsatz von Filter
Wunsch
Ehefrau Wunsch
Channel
Normalizer 1
2
3
1
3
Wünsche
Sohn Wunsch
Tochter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 30
Filter mit Apache Camel
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 31
Pattern: Aggregator
Channel
Channel
Sender A Aggregator
Sender B
Empfänger
• spezieller, zustandsbehafteter Filter • identifiziert Nachrichten, die zueinander gehören • sendet die aggregierten Informationen in einer eigenständigen Nachricht weiter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 32
Einsatz von Aggregator
Wunsch
Ehefrau Wunsch
Channel
Normalizer
Filter
Aggregator
Wünsche
Sohn Wunsch
Tochter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 33
Aggregator in Apache Camel
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 34
Einkaufsliste (sortiert) Einkaufsliste • • • • • •
Käse Tomaten Brot Malstifte Kinderüberraschung Teddybär
Lebensmitteldiscounter • Käse • Tomaten • Kinderüberraschung
3. Juli 2008
Bäckerei
Schreibwaren • Malstifte
Implementing Enterprise Integration Patterns with Apache Camel
• Brot
Spielzeug • Teddybär
Nr. 35
Pattern: Splitter Request
Channel
Channel
Empfänger A Channel Splitter
Router
Sender
Empfänger B
• Teilt eine zusammengesetzte Nachricht in eine Reihe einzelner Nachrichten auf. • Wird in der Regel mit einem Router eingesetzt.
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 36
Einsatz von Splitter
Wunsch
Ehefrau Wunsch
Channel
Normalizer
Filter
Aggregator
Translator
Splitter
Wünsche
Sohn Wunsch
Tochter
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 37
Wo kann Apache Camel eingesetzt werden?
Messaging System (z.B. Active MQ) Service Runtime (z.B. Apache CXF) Enterprise Service Bus (z.B. ServiceMix) Ihre eigenen Java Anwendung (mit oder ohne Spring Framework)
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 38
Testen mit Apache Camel
Mock Endpoint ermöglichen das Testen ob: – korrekter Anzahl von Nachrichten emfangen wurde – korrekter Payload, in richtiger Reihenfolge emfangen wurde – die Nachrichten bestimmten Bedinungen (XPath) entsprechen
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 39
Dokumentation mit Apache Camel • Generierung von Dokumentation mit einem Maven Plugin • Visualisierung des Nachrichtenflusses mit GraphViz • unterstützt HTML, PNG, SVG
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 40
Warum EIP und Apache Camel?
Damit das nicht mit Ihrer Architektur passiert! 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 41
Denn dies führt in der Regel dazu:
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 42
Setzen Sie statt dessen Enterprise Integration Patterns ein…
Channel
Translator
Wünsche der Ehefrau Wunsch
Ehefrau Wunsch
Channel
Router
Wünsche
Channel
Translator
Wünsche des Sohnes
Wünsche im einheitlichen Format
Sohn Wunsch Channel
Tochter
Invalid Messages
Channel
Translator
Wünsche der Tochter
…und dokumentieren Sie Ihre Architektur! 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 43
Das spart Ihnen…
Zeit
Geld 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 44
Denken Sie lieber über die wirklich wichtigen Dinge nach!
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 45
Besuchen Sie uns an unserem Stand…
s! o l n e t s Ko
3. Juli 2008
und sichern Sie sich ein EIP-Poster!
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 46
Fazit
1. Enterprise Integration ist komplex! 2. Enterprise Integration Patterns sind bewährte Lösungs-Schablonen. Nutzen Sie diese! 3. Apache Camel ist ein hervorragendes Integration Framework. Testen Sie es! 4. Lassen Sie sich von Logica beraten! Enjoy your day!
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 47
3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 48
Eduard Hildebrandt IT Consultant
+49 (0711) 72846627 +49 (0160) 8870983
[email protected] 3. Juli 2008
Implementing Enterprise Integration Patterns with Apache Camel
Nr. 49
www.logica.com/de
Logica is a leading IT and business services company, employing 39,000 people across 36 countries. It provides business consulting, systems integration, and IT and business process outsourcing services. Logica works closely with its customers to release their potential – enabling change that increases their efficiency, accelerates growth and manages risk. It applies its deep industry knowledge, technical excellence and global delivery expertise to help its customers build leadership positions in their markets. Logica is listed on both the London Stock Exchange and Euronext (Amsterdam) (LSE: LOG; Euronext: LOG). More information is available at www.logica.com.
3. 17Juli February 2008 2008
Implementing Enterprise Guidelines Integration & Samples Patterns with Apache Camel
No. Nr. 50