Implementing Enterprise Integration Patterns with Apache Camel

3,756
-1

Published on

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.

Published in: Technology
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,756
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide
  • 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.

    ×