Implementing Enterprise Integration Patterns with Apache...

50
Nr. 1 3. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel Implementing Enterprise Integration Patterns with Apache Camel Herzlich Willkommen! Herzlich Willkommen! Herzlich Willkommen! Herzlich Willkommen!

Transcript of Implementing Enterprise Integration Patterns with Apache...

Nr. 13. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

ImplementingEnterprise Integration Patterns

with Apache Camel

Herzlich Willkommen!Herzlich Willkommen!Herzlich Willkommen!Herzlich Willkommen!

Nr. 23. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Über den Referenten

Architekt

Eduard Hildebrandt

+49 (0160) 8870983

+49 (0711) 72846627

[email protected]

IT Consultant

BeraterEAI CoachSOA MDA

Nr. 33. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 43. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 53. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

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.

Enterprise Integration Patterns sind bewährte Lösungsschablonen zur Integration von Geschäftsfunktionen und Anbindung von verschiedenen Anwendungen auf unterschiedlichen Plattformen.

=

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.

+

Nr. 63. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Buchempfehlung

Titel: Enterprise Integration PatternsAutor: Gregor Hohpe und Bobby WoolfVerlag: Addison-WesleyISBN: 0321200683

Nr. 73. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Messaging

Nachricht Nachricht

Channel

Sender Empfänger

data formatdependencies

locationdependencies

temporaldependencies

Nr. 83. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Was ist Apache Camel?

http://activemq.apache.org/camel

Open-Source Java Framework

Implementiert ca. 35 Enterprise Integration Patterns

Domain Specific Language (Fluent API)

Nr. 93. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Apache Camel Architecture

http://activemq.apache.org/camel

Nr. 103. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Es war einmal…

…vor nicht allzulanger Zeit…an einem wunderschönen Tag

…ein IT-Architekt, der seinen Einkauf plante.

Nr. 113. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 123. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 133. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 143. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einkaufsliste

• Kinderüberraschung• Teddybär

• Malstifte

• Käse

• Brot• Tomaten

Nr. 153. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einkaufsliste mit Messaging…

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch

?

Nr. 163. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einkaufsliste mit Apache Camel…

Nr. 173. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Pattern: Router

Sender 1 Output Channel 1

Router

Output Channel 1

Sender

Empfänger

Empfänger

• 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.

Input Channel

Nr. 183. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Router

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch

Channel

Wünsche der Ehefrau

Channel

Wünsche des Sohnes

Channel

Wünsche der Tochter

Router

Invalid Messages

Nr. 193. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Router mit Apache Camel

Nr. 203. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Pattern: Message Translator

Sender 1

Input Channel

Translator

Output ChannelSender Empfänger

• Transformiert von einem Datenformat in ein anderes Datenformat.

• Äquivalent zum Adapter Pattern für Nachrichten.

Nr. 213. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Message Translator

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch

Channel

Wünsche der Ehefrau

Channel

Wünsche des Sohnes

Channel

Wünsche der Tochter

Channel

Wünscheim einheitlichen

Format

Router

Invalid Messages

Translator

Translator

Translator

Nr. 223. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Transformation der Nachrichten (Ehefrau)

// CSV: Produkt,AnzahlMilch,2

<wish><productName>Milch</productName><quantity>2</quantity>

</wish>

Wunsch der Ehefrau: TranslatorAllgemeine Darstellung:

Nr. 233. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Transformation der Nachrichten (Sohn)

// Java Serialization

[binäre Daten]

Wunsch des Sohns:<wish>

<productName>Kinderei</productName><quantity>2</quantity>

</wish>

TranslatorAllgemeine Darstellung:

Nr. 243. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Transformation der Nachrichten (Tochter)

<wunsch><produkt>Teddybaer</produkt><anzahl>1</anzahl>

</wunsch>

Wunsch der Tochter:

<wish><productName>Teddybaer</productName><quantity>1</quantity>

</wish>

TranslatorAllgemeine Darstellung:

Nr. 253. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Channel

Sender A

Sender B

Sender C

Channel

Channel

Channel

ChannelRouter

Invalid Messages

Translator

Translator

Translator

Normalizer

Pattern: Normalizer

• Transformiert Nachrichten in unterschiedlichen Datenformaten in ein einheitliches Datenformat.

• Verwendet intern einen Message Router und mehrere Message Translators.

Nr. 263. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Normalizer

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch

Channel

Wünsche der Ehefrau

Channel

Wünsche des Sohnes

Channel

Wünsche der Tochter

Channel

NormalisiertWünsche

Router

Invalid Messages

Translator

Translator

Translator

Entspricht Normalizer Pattern

Nr. 273. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Normalizer

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch Normalizer

Nr. 283. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Normalizer mit Apache Camel

Nr. 293. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Sender

Pattern: Filter

ChannelFilter

Channel

Empfänger

• spezielle Art von einem Router

• leitet nur Nachrichten weiter, die bestimmtenKriterien entsprechen

• hat im Gegensatz zu einem Router nur einenOutput-Channel

Nr. 303. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Filter

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch Normalizer

1 2 3 1 3

Nr. 313. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Filter mit Apache Camel

Nr. 323. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Pattern: Aggregator

EmpfängerSender B

Sender AChannel Channel

Aggregator

• spezieller, zustandsbehafteter Filter

• identifiziert Nachrichten, die zueinander gehören

• sendet die aggregierten Informationen in einereigenständigen Nachricht weiter

Nr. 333. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Aggregator

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch Normalizer Filter Aggregator

Nr. 343. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Aggregator in Apache Camel

Nr. 353. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einkaufsliste (sortiert)

Lebensmittel-discounter

Schreibwaren Spielzeug

• Teddybär• Malstifte

Bäckerei

• Kinderüberraschung• Teddybär

• Malstifte

• Käse• Tomaten

Einkaufsliste

• Brot

• Käse• Tomaten

• Brot

• Kinderüber-raschung

Nr. 363. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Pattern: Splitter

Request

Channel

Sender Empfänger B

Empfänger A

RouterSplitter

Channel

Channel

• Teilt eine zusammengesetzte Nachricht in eine Reihe einzelner Nachrichten auf.

• Wird in der Regel mit einem Router eingesetzt.

Nr. 373. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Einsatz von Splitter

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch Normalizer Filter Aggregator Translator Splitter

Nr. 383. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Wo kann Apache Camel eingesetzt werden?

Enterprise Service Bus(z.B. ServiceMix)

Messaging System(z.B. Active MQ)

Service Runtime(z.B. Apache CXF)

Ihre eigenen Java Anwendung(mit oder ohne Spring Framework)

Nr. 393. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

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

Nr. 403. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Dokumentation mit Apache Camel

• Generierung von Dokumentation mit einem Maven Plugin

• Visualisierung des Nachrichtenflusses mit GraphViz

• unterstützt HTML, PNG, SVG

Nr. 413. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Warum EIP und Apache Camel?

Damit das nicht mit Ihrer Architektur passiert!

Nr. 423. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Denn dies führt in der Regel dazu:

Nr. 433. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Setzen Sie statt dessen Enterprise Integration Pattern s ein…

Channel

Wünsche

Ehefrau

Sohn

Tochter

Wunsch

Wunsch

Wunsch

Channel

Wünsche der Ehefrau

Channel

Wünsche des Sohnes

Channel

Wünsche der Tochter

Channel

Wünscheim einheitlichen

Format

Router

Invalid Messages

Translator

Translator

Translator

…und dokumentieren Sie Ihre Architektur!

Nr. 443. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Das spart Ihnen…

Zeit

Geld

Nr. 453. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Denken Sie lieber über die wirklich wichtigen Dinge n ach!

Nr. 463. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Kostenlos!

Kostenlos!

Kostenlos!

Kostenlos!

Besuchen Sie uns an unserem Stand…

und sichern Sie sich ein EIP-Poster!

Nr. 473. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Fazit

1. Enterprise Integration ist komplex!

2. Enterprise Integration Patterns sind bewährteLösungs-Schablonen. Nutzen Sie diese!

3. Apache Camel ist ein hervorragendesIntegration Framework. Testen Sie es!

4. Lassen Sie sich von Logica beraten!

Enjoy your day!

Nr. 483. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Nr. 493. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel

Eduard Hildebrandt

+49 (0160) 8870983

+49 (0711) 72846627

[email protected]

IT Consultant

Nr. 503. Juli 2008 Implementing Enterprise Integration Patterns with Apache Camel No. 5017 February 2008 Guidelines & Samples

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.