Implementing Enterprise Integration Patterns with Apache Camel ...

27 downloads 95588 Views 4MB Size Report
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