SlideShare ist ein Scribd-Unternehmen logo
1 von 49
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 Berater EAI Coach SOA MDA
 
 
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.   +
Buchempfehlung Titel:  Enterprise Integration Patterns Autor:  Gregor Hohpe und Bobby Woolf Verlag:  Addison-Wesley ISBN:  0321200683
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 Integration Patterns Domain Specific Language (Fluent API)
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Einkaufsliste mit Messaging… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch ?
Einkaufsliste mit Apache Camel…
Pattern: Router ,[object Object],[object Object],Sender 1 Output Channel 1 Router Output Channel 1 Sender Empfänger Empfänger Input Channel
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
Router mit Apache Camel
Pattern: Message Translator ,[object Object],[object Object],Sender 1 Input Channel Translator Output Channel Sender Empfänger
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
Transformation der Nachrichten (Ehefrau) // CSV: Produkt,Anzahl Milch,2 <wish>   <productName>Milch</productName>   <quantity>2</quantity> </wish> Wunsch der Ehefrau: Translator Allgemeine Darstellung:
Transformation der Nachrichten (Sohn) // Java Serialization [binäre Daten] Wunsch des Sohns: <wish>   <productName>Kinderei</productName>   <quantity>2</quantity> </wish> Translator Allgemeine Darstellung:
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:
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
Pattern: Normalizer ,[object Object],[object Object],Channel Sender A Sender B Sender C Channel Channel Channel Channel Router Invalid Messages Translator Translator Translator Normalizer
Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer
Normalizer mit Apache Camel
Pattern: Filter ,[object Object],[object Object],[object Object],Sender Channel Filter Channel Empfänger
Einsatz von Filter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer 1 2 3 1 3
Filter mit Apache Camel
Pattern: Aggregator ,[object Object],[object Object],[object Object],Empfänger Sender B Sender A Channel Channel Aggregator
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>   <productName>Brot</productName>   <quantity>1</quantity> </wish> <wish>   <productName>Tomaten</productName>   <quantity>3</quantity> </wish> … </wishes>
Einkaufsliste (sortiert) Lebensmittel- discounter Schreibwaren Spielzeug ,[object Object],[object Object],Bäckerei ,[object Object],[object Object],[object Object],[object Object],[object Object],Einkaufsliste ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pattern: Splitter ,[object Object],[object Object],Request Channel Sender Empfänger B Empfänger A Router Splitter Channel Channel
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:
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)
Testen mit Apache Camel ,[object Object],[object Object],[object Object],[object Object]
Dokumentation mit Apache Camel ,[object Object],[object Object],[object Object]
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 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!
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ösungs-Schablonen. Nutzen Sie diese! 3. Apache Camel ist ein hervorragendes   Integration Framework. Testen Sie es! 4. Lassen Sie sich beraten!
 
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,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.

Weitere ähnliche Inhalte

Ähnlich wie Implementing Enterprise Integration Patterns with Apache Camel

Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeNico Steiner
 
SEOKomm 2010: Long Tail PPC
SEOKomm 2010: Long Tail PPC SEOKomm 2010: Long Tail PPC
SEOKomm 2010: Long Tail PPC Ulf Weihbold
 
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im ContactcenterEin Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter3cdialog
 
Xybermotive vorstellung (de) 112014
Xybermotive vorstellung (de) 112014Xybermotive vorstellung (de) 112014
Xybermotive vorstellung (de) 112014Hans-Chr. Brockmann
 
REST Problems
REST ProblemsREST Problems
REST Problemspredic8
 
Roboteranbindung in SAP
Roboteranbindung in SAPRoboteranbindung in SAP
Roboteranbindung in SAPSERKEM GmbH
 
Die 10 groeßten Fehler im eMarketing
Die 10 groeßten Fehler im eMarketingDie 10 groeßten Fehler im eMarketing
Die 10 groeßten Fehler im eMarketingAngelika Röck
 
Bachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup TemplatesystemBachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup TemplatesystemTobi NenTi
 
Software as a Service E-Commerce Technologien
Software as a Service E-Commerce TechnologienSoftware as a Service E-Commerce Technologien
Software as a Service E-Commerce TechnologienMartina Goehring
 
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...Carpathia AG
 
Webinar SAP/ABAP und Microsoft
Webinar  SAP/ABAP und MicrosoftWebinar  SAP/ABAP und Microsoft
Webinar SAP/ABAP und MicrosoftCadaxo GmbH
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
 
X Innovation Dpdhl
X Innovation DpdhlX Innovation Dpdhl
X Innovation Dpdhlhauprich
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungEduard Hildebrandt
 
Die Rolle der Terminologie in der maschinellen Übersetzung
Die Rolle der Terminologie in der maschinellen ÜbersetzungDie Rolle der Terminologie in der maschinellen Übersetzung
Die Rolle der Terminologie in der maschinellen ÜbersetzungKerstin Berns
 
1. Technologie-Tag - Webstandards
1. Technologie-Tag - Webstandards1. Technologie-Tag - Webstandards
1. Technologie-Tag - WebstandardsNico Steiner
 

Ähnlich wie Implementing Enterprise Integration Patterns with Apache Camel (20)

Frontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 BestellsystemeFrontend-Architektur der 1&1 Bestellsysteme
Frontend-Architektur der 1&1 Bestellsysteme
 
SEOKomm 2010: Long Tail PPC
SEOKomm 2010: Long Tail PPC SEOKomm 2010: Long Tail PPC
SEOKomm 2010: Long Tail PPC
 
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im ContactcenterEin Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter
Ein Ohr – alle Infos: So kommunizieren Ihre Systeme im Contactcenter
 
Xybermotive vorstellung (de) 112014
Xybermotive vorstellung (de) 112014Xybermotive vorstellung (de) 112014
Xybermotive vorstellung (de) 112014
 
REST Problems
REST ProblemsREST Problems
REST Problems
 
Roboteranbindung in SAP
Roboteranbindung in SAPRoboteranbindung in SAP
Roboteranbindung in SAP
 
Die 10 groeßten Fehler im eMarketing
Die 10 groeßten Fehler im eMarketingDie 10 groeßten Fehler im eMarketing
Die 10 groeßten Fehler im eMarketing
 
Bachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup TemplatesystemBachelorarbeit - Scrup Templatesystem
Bachelorarbeit - Scrup Templatesystem
 
Software as a Service E-Commerce Technologien
Software as a Service E-Commerce TechnologienSoftware as a Service E-Commerce Technologien
Software as a Service E-Commerce Technologien
 
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...
Lukas Stuber, Angelink: E-Shop-Performance steigern mit Suchmaschinen und Web...
 
Lebenslauf
LebenslaufLebenslauf
Lebenslauf
 
Webinar SAP/ABAP und Microsoft
Webinar  SAP/ABAP und MicrosoftWebinar  SAP/ABAP und Microsoft
Webinar SAP/ABAP und Microsoft
 
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreHands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET Core
 
X Innovation Dpdhl
X Innovation DpdhlX Innovation Dpdhl
X Innovation Dpdhl
 
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture LösungAndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
AndroMDA - Einführung in eine Open Source Model Driven Architecture Lösung
 
Die Rolle der Terminologie in der maschinellen Übersetzung
Die Rolle der Terminologie in der maschinellen ÜbersetzungDie Rolle der Terminologie in der maschinellen Übersetzung
Die Rolle der Terminologie in der maschinellen Übersetzung
 
SDL BeGlobal im Unternehmensumfeld
SDL BeGlobal im UnternehmensumfeldSDL BeGlobal im Unternehmensumfeld
SDL BeGlobal im Unternehmensumfeld
 
1. Technologie-Tag - Webstandards
1. Technologie-Tag - Webstandards1. Technologie-Tag - Webstandards
1. Technologie-Tag - Webstandards
 
Google Search Console für SEO einsetzen!
Google Search Console für SEO einsetzen!Google Search Console für SEO einsetzen!
Google Search Console für SEO einsetzen!
 
Cloud-ERP-System mit TCPOS-Schnittstelle
Cloud-ERP-System mit TCPOS-SchnittstelleCloud-ERP-System mit TCPOS-Schnittstelle
Cloud-ERP-System mit TCPOS-Schnittstelle
 

Implementing Enterprise Integration Patterns with Apache Camel

  • 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.
  • 15. Einkaufsliste mit Messaging… Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch ?
  • 17.
  • 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
  • 20.
  • 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.
  • 27. Einsatz von Normalizer Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer
  • 29.
  • 30. Einsatz von Filter Channel Wünsche Ehefrau Sohn Tochter Wunsch Wunsch Wunsch Normalizer 1 2 3 1 3
  • 32.
  • 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.
  • 36.
  • 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.
  • 40.
  • 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.