Implementing Enterprise Integration Patterns with Apache Camel Herzlich Willkommen!
Über den Referenten Eduard Hildebrandt +49 (0 160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant Architekt Ber...
 
 
Definitionen Enterprise Application Integration (EAI)  ist ein Konzept zur unternehmensweiten  Integration  der  Geschäfts...
Buchempfehlung Titel:  Enterprise Integration Patterns Autor:  Gregor Hohpe und Bobby Woolf Verlag:  Addison-Wesley ISBN: ...
Messaging Nachricht Nachricht Channel Sender Empfänger data format dependencies location dependencies temporal dependencies
Was ist Apache Camel? http://activemq.apache.org/camel Open-Source Java Framework Implementiert ca. 35 Enterprise Integrat...
Apache Camel Architecture http://activemq.apache.org/camel
Es war einmal… … vor nicht allzulanger Zeit … an einem wunderschönen Tag … ein IT-Architekt, der seinen  Einkauf  plante.
 
 
 
Einkaufsliste <ul><li>Kinderüberraschung </li></ul><ul><li>Teddybär </li></ul><ul><li>Malstifte </li></ul><ul><li>Käse </l...
Einkaufsliste mit Messaging… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch ?
Einkaufsliste mit Apache Camel…
Pattern: Router <ul><li>Emfängt eine Nachricht von einem Channel und leitet diese  abhängig von bestimmten Kriterien  an e...
Einsatz von Router Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Channel Wünsche der Ehefrau Channel Wünsche d...
Router mit Apache Camel
Pattern: Message Translator <ul><li>Transformiert  von einem  Datenformat  in ein anderes Datenformat. </li></ul><ul><li>Ä...
Einsatz von Message Translator Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Channel Wünsche der Ehefrau Chann...
Transformation der Nachrichten (Ehefrau) // CSV: Produkt,Anzahl Milch,2 <wish>   <productName>Milch</productName>   <quant...
Transformation der Nachrichten (Sohn) // Java Serialization [binäre Daten] Wunsch des Sohns: <wish>   <productName>Kindere...
Transformation der Nachrichten (Tochter) <wunsch>   <produkt>Teddybaer</produkt>   <anzahl>1</anzahl> </wunsch> Wunsch der...
Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Channel Wünsche der Ehefrau Channel Wünsc...
Pattern: Normalizer <ul><li>Transformiert Nachrichten  in unterschiedlichen Datenformaten in ein  einheitliches Datenforma...
Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer
Normalizer mit Apache Camel
Pattern: Filter <ul><li>spezielle Art von einem  Router </li></ul><ul><li>leitet nur Nachrichten weiter, die  bestimmten K...
Einsatz von Filter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer 1 2 3 1 3
Filter mit Apache Camel
Pattern: Aggregator <ul><li>spezieller,  zustandsbehafteter Filter </li></ul><ul><li>identifiziert Nachrichten, die zueina...
Einsatz von Aggregator Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer Filter Aggregator
Aggregator in Apache Camel <wishes> <wish>   <productName>Milch</productName>   <quantity>2</quantity> </wish>  <wish>   <...
Einkaufsliste (sortiert) Lebensmittel- discounter Schreibwaren Spielzeug <ul><li>Teddybär </li></ul><ul><li>Malstifte </li...
Pattern: Splitter <ul><li>Teilt eine zusammengesetzte Nachricht  in eine Reihe einzelner Nachrichten  auf. </li></ul><ul><...
Einsatz von Splitter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer Filter Aggregator Splitter http:...
Wo kann Apache Camel eingesetzt werden? Enterprise Service Bus (z.B. ServiceMix) Messaging System (z.B. Active MQ) Service...
Testen mit Apache Camel <ul><li>Mock Endpoint  ermöglichen das Testen ob: </li></ul><ul><ul><li>korrekter  Anzahl von Nach...
Dokumentation mit Apache Camel <ul><li>Generierung von Dokumentation mit einem  Maven Plugin </li></ul><ul><li>Visualisier...
Warum EIP und Apache Camel? Damit das nicht mit Ihrer Architektur passiert!
Denn dies führt in der Regel dazu:
Setzen Sie statt dessen Enterprise Integration Patterns ein… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Cha...
Das spart Ihnen… Zeit Geld
Denken Sie lieber über die wirklich wichtigen Dinge nach!
Fazit 1. In der Realität ist Enterprise Integration  anspruchsvoll! 2. Enterprise Integration Patterns sind bewährte   Lös...
 
Eduard Hildebrandt +49 (0160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant
www.logica.com/de No.  6 June 2009 Guidelines & Samples Logica is a leading IT and business services company, employing 39...
Nächste SlideShare
Wird geladen in …5
×

Implementing Enterprise Integration Patterns with Apache Camel

4.147 Aufrufe

Veröffentlicht am

In einer zunehmend vernetzten und automatisierten Welt wird die Integration von IT-Systemen immer bedeutender und stellt oft eine große Herausforderung für Software- Architekten und Entwickler dar. Mit dem Einsatz von Enterprise Integration Patterns, die bewährte Integrationslösungen beschreiben, kann diese Aufgabe wesentlich vereinfacht werden.
Nach einer kurzen Erläuterung einiger wichtiger Enterprise Integration Patterns, wird in diesem Vortrag das Open-Source Framework Apache Camel vorgestellt und gezeigt wie es unter Verwendung von minimalen Java oder XML Code dazu eingesetzt werden kann leistungsfähige Enterprise Integration Patterns zu implementieren um Systeme und Services über unterschiedliche Transport-Protokolle und Datenformate zu integrieren. Weiterhin wird auf die Einsatzmöglichkeiten von Apache Camel zur Dokumentation, Überwachung und Test von Webservices eingegangen.

Veröffentlicht in: Technologie
0 Kommentare
10 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.147
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
497
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
10
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Implementing Enterprise Integration Patterns with Apache Camel

    1. 1. Implementing Enterprise Integration Patterns with Apache Camel Herzlich Willkommen!
    2. 2. Über den Referenten Eduard Hildebrandt +49 (0 160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant Architekt Berater EAI Coach SOA MDA
    3. 5. 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. +
    4. 6. Buchempfehlung Titel: Enterprise Integration Patterns Autor: Gregor Hohpe und Bobby Woolf Verlag: Addison-Wesley ISBN: 0321200683
    5. 7. Messaging Nachricht Nachricht Channel Sender Empfänger data format dependencies location dependencies temporal dependencies
    6. 8. Was ist Apache Camel? http://activemq.apache.org/camel Open-Source Java Framework Implementiert ca. 35 Enterprise Integration Patterns Domain Specific Language (Fluent API)
    7. 9. Apache Camel Architecture http://activemq.apache.org/camel
    8. 10. Es war einmal… … vor nicht allzulanger Zeit … an einem wunderschönen Tag … ein IT-Architekt, der seinen Einkauf plante.
    9. 14. Einkaufsliste <ul><li>Kinderüberraschung </li></ul><ul><li>Teddybär </li></ul><ul><li>Malstifte </li></ul><ul><li>Käse </li></ul><ul><li>Brot </li></ul><ul><li>Tomaten </li></ul>
    10. 15. Einkaufsliste mit Messaging… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch ?
    11. 16. Einkaufsliste mit Apache Camel…
    12. 17. Pattern: Router <ul><li>Emfängt eine Nachricht von einem Channel und leitet diese abhängig von bestimmten Kriterien an einen anderen Channel weiter. </li></ul><ul><li>Verändert nur das Ziel der Nachricht und nicht den Inhalt der Nachricht . </li></ul>Sender 1 Output Channel 1 Router Output Channel 1 Sender Empfänger Empfänger Input Channel
    13. 18. 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
    14. 19. Router mit Apache Camel
    15. 20. Pattern: Message Translator <ul><li>Transformiert von einem Datenformat in ein anderes Datenformat. </li></ul><ul><li>Äquivalent zum Adapter Pattern für Nachrichten. </li></ul>Sender 1 Input Channel Translator Output Channel Sender Empfänger
    16. 21. 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ünsche im einheitlichen Format Router Invalid Messages Translator Translator Translator
    17. 22. Transformation der Nachrichten (Ehefrau) // CSV: Produkt,Anzahl Milch,2 <wish> <productName>Milch</productName> <quantity>2</quantity> </wish> Wunsch der Ehefrau: Translator Allgemeine Darstellung:
    18. 23. Transformation der Nachrichten (Sohn) // Java Serialization [binäre Daten] Wunsch des Sohns: <wish> <productName>Kinderei</productName> <quantity>2</quantity> </wish> Translator Allgemeine Darstellung:
    19. 24. Transformation der Nachrichten (Tochter) <wunsch> <produkt>Teddybaer</produkt> <anzahl>1</anzahl> </wunsch> Wunsch der Tochter: <wish> <productName>Teddybaer</productName> <quantity>1</quantity> </wish> Translator Allgemeine Darstellung:
    20. 25. 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 Normalisiert Wünsche Router Invalid Messages Translator Translator Translator Entspricht Normalizer Pattern
    21. 26. Pattern: Normalizer <ul><li>Transformiert Nachrichten in unterschiedlichen Datenformaten in ein einheitliches Datenformat . </li></ul><ul><li>Verwendet intern einen Message Router und mehrere Message Translators . </li></ul>Channel Sender A Sender B Sender C Channel Channel Channel Channel Router Invalid Messages Translator Translator Translator Normalizer
    22. 27. Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer
    23. 28. Normalizer mit Apache Camel
    24. 29. Pattern: Filter <ul><li>spezielle Art von einem Router </li></ul><ul><li>leitet nur Nachrichten weiter, die bestimmten Kriterien entsprechen </li></ul><ul><li>hat im Gegensatz zu einem Router nur einen Output-Channel </li></ul>Sender Channel Filter Channel Empfänger
    25. 30. Einsatz von Filter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer 1 2 3 1 3
    26. 31. Filter mit Apache Camel
    27. 32. Pattern: Aggregator <ul><li>spezieller, zustandsbehafteter Filter </li></ul><ul><li>identifiziert Nachrichten, die zueinander gehören </li></ul><ul><li>sendet die aggregierten Informationen in einer eigenständigen Nachricht weiter </li></ul>Empfänger Sender B Sender A Channel Channel Aggregator
    28. 33. Einsatz von Aggregator Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer Filter Aggregator
    29. 34. Aggregator in Apache Camel <wishes> <wish> <productName>Milch</productName> <quantity>2</quantity> </wish> <wish> <productName>Brot</productName> <quantity>1</quantity> </wish> <wish> <productName>Tomaten</productName> <quantity>3</quantity> </wish> … </wishes>
    30. 35. Einkaufsliste (sortiert) Lebensmittel- discounter Schreibwaren Spielzeug <ul><li>Teddybär </li></ul><ul><li>Malstifte </li></ul>Bäckerei <ul><li>Kinderüberraschung </li></ul><ul><li>Teddybär </li></ul><ul><li>Malstifte </li></ul><ul><li>Käse </li></ul><ul><li>Tomaten </li></ul>Einkaufsliste <ul><li>Brot </li></ul><ul><li>Käse </li></ul><ul><li>Tomaten </li></ul><ul><li>Brot </li></ul><ul><li>Kinderüber- raschung </li></ul>
    31. 36. Pattern: Splitter <ul><li>Teilt eine zusammengesetzte Nachricht in eine Reihe einzelner Nachrichten auf. </li></ul><ul><li>Wird in der Regel mit einem Router eingesetzt. </li></ul>Request Channel Sender Empfänger B Empfänger A Router Splitter Channel Channel
    32. 37. Einsatz von Splitter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer Filter Aggregator Splitter http://family-hildebrandt.com/eduard/eip_with_apache_camel/ Example Source Code:
    33. 38. 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)
    34. 39. Testen mit Apache Camel <ul><li>Mock Endpoint ermöglichen das Testen ob: </li></ul><ul><ul><li>korrekter Anzahl von Nachrichten emfangen wurde </li></ul></ul><ul><ul><li>korrekter Payload , in richtiger Reihenfolge emfangen wurde </li></ul></ul><ul><ul><li>die Nachrichten bestimmten Bedinungen (XPath) entsprechen </li></ul></ul>
    35. 40. Dokumentation mit Apache Camel <ul><li>Generierung von Dokumentation mit einem Maven Plugin </li></ul><ul><li>Visualisierung des Nachrichtenflusses mit GraphViz </li></ul><ul><li>unterstützt HTML, PNG, SVG </li></ul>
    36. 41. Warum EIP und Apache Camel? Damit das nicht mit Ihrer Architektur passiert!
    37. 42. Denn dies führt in der Regel dazu:
    38. 43. Setzen Sie statt dessen Enterprise Integration Patterns 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ünsche im einheitlichen Format Router Invalid Messages Translator Translator Translator … und dokumentieren Sie Ihre Architektur!
    39. 44. Das spart Ihnen… Zeit Geld
    40. 45. Denken Sie lieber über die wirklich wichtigen Dinge nach!
    41. 46. Fazit 1. In der Realität ist Enterprise Integration anspruchsvoll! 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 beraten!
    42. 48. Eduard Hildebrandt +49 (0160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant
    43. 49. www.logica.com/de No. 6 June 2009 Guidelines & Samples 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.

    ×