Implementing Enterprise Integration Patterns with Apache Camel

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

1 comments

Comments 1 - 1 of 1 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

5 Favorites

Implementing Enterprise Integration Patterns with Apache Camel - Presentation Transcript

  1. Implementing Enterprise Integration Patterns with Apache Camel Herzlich Willkommen!
  2. Über den Referenten Eduard Hildebrandt +49 (0 160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant Architekt Berater EAI Coach SOA MDA
  3.  
  4.  
  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. +
  6. Buchempfehlung Titel: Enterprise Integration Patterns Autor: Gregor Hohpe und Bobby Woolf Verlag: Addison-Wesley ISBN: 0321200683
  7. Messaging Nachricht Nachricht Channel Sender Empfänger data format dependencies location dependencies temporal dependencies
  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)
  9. Apache Camel Architecture http://activemq.apache.org/camel
  10. Es war einmal… … vor nicht allzulanger Zeit … an einem wunderschönen Tag … ein IT-Architekt, der seinen Einkauf plante.
  11.  
  12.  
  13.  
  14. Einkaufsliste
    • Kinderüberraschung
    • Teddybär
    • Malstifte
    • Käse
    • Brot
    • Tomaten
  15. Einkaufsliste mit Messaging… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch ?
  16. Einkaufsliste mit Apache Camel…
  17. Pattern: 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 .
    Sender 1 Output Channel 1 Router Output Channel 1 Sender Empfänger Empfänger Input Channel
  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
  19. Router mit Apache Camel
  20. Pattern: Message Translator
    • Transformiert von einem Datenformat in ein anderes Datenformat.
    • Äquivalent zum Adapter Pattern für Nachrichten.
    Sender 1 Input Channel Translator Output Channel Sender Empfänger
  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
  22. Transformation der Nachrichten (Ehefrau) // CSV: Produkt,Anzahl Milch,2 <wish> <productName>Milch</productName> <quantity>2</quantity> </wish> Wunsch der Ehefrau: Translator Allgemeine Darstellung:
  23. Transformation der Nachrichten (Sohn) // Java Serialization [binäre Daten] Wunsch des Sohns: <wish> <productName>Kinderei</productName> <quantity>2</quantity> </wish> Translator Allgemeine Darstellung:
  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:
  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
  26. Pattern: Normalizer
    • Transformiert Nachrichten in unterschiedlichen Datenformaten in ein einheitliches Datenformat .
    • Verwendet intern einen Message Router und mehrere Message Translators .
    Channel Sender A Sender B Sender C Channel Channel Channel Channel Router Invalid Messages Translator Translator Translator Normalizer
  27. Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer
  28. Normalizer mit Apache Camel
  29. Pattern: Filter
    • spezielle Art von einem Router
    • leitet nur Nachrichten weiter, die bestimmten Kriterien entsprechen
    • hat im Gegensatz zu einem Router nur einen Output-Channel
    Sender Channel Filter Channel Empfänger
  30. Einsatz von Filter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer 1 2 3 1 3
  31. Filter mit Apache Camel
  32. Pattern: Aggregator
    • spezieller, zustandsbehafteter Filter
    • identifiziert Nachrichten, die zueinander gehören
    • sendet die aggregierten Informationen in einer eigenständigen Nachricht weiter
    Empfänger Sender B Sender A Channel Channel Aggregator
  33. Einsatz von Aggregator Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer Filter Aggregator
  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>
  35. 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
  36. Pattern: Splitter
    • Teilt eine zusammengesetzte Nachricht in eine Reihe einzelner Nachrichten auf.
    • Wird in der Regel mit einem Router eingesetzt.
    Request Channel Sender Empfänger B Empfänger A Router Splitter Channel Channel
  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:
  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)
  39. 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
  40. Dokumentation mit Apache Camel
    • Generierung von Dokumentation mit einem Maven Plugin
    • Visualisierung des Nachrichtenflusses mit GraphViz
    • unterstützt HTML, PNG, SVG
  41. Warum EIP und Apache Camel? Damit das nicht mit Ihrer Architektur passiert!
  42. Denn dies führt in der Regel dazu:
  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!
  44. Das spart Ihnen… Zeit Geld
  45. Denken Sie lieber über die wirklich wichtigen Dinge nach!
  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!
  47.  
  48. Eduard Hildebrandt +49 (0160) 8870983 +49 (0711) 72846627 [email_address] IT Consultant
  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.

+ Eduard HildebrandtEduard Hildebrandt, 2 years ago

custom

1755 views, 5 favs, 4 embeds more stats

In einer zunehmend vernetzten und automatisierten W more

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 1755
    • 1541 on SlideShare
    • 214 from embeds
  • Comments 1
  • Favorites 5
  • Downloads 0
Most viewed embeds
  • 198 views on http://family-hildebrandt.com
  • 14 views on http://www.family-hildebrandt.com
  • 1 views on http://209.85.229.132
  • 1 views on http://translate.googleusercontent.com

more

All embeds
  • 198 views on http://family-hildebrandt.com
  • 14 views on http://www.family-hildebrandt.com
  • 1 views on http://209.85.229.132
  • 1 views on http://translate.googleusercontent.com

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories