Webinar Apache Camel Grundlagen Teil 3
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Webinar Apache Camel Grundlagen Teil 3

on

  • 1,853 views

- Eigene Komponenten

- Eigene Komponenten
- Beispiel: IRC Bot zur Abfrage von Jira Issues

Statistics

Views

Total Views
1,853
Views on SlideShare
1,853
Embed Views
0

Actions

Likes
1
Downloads
32
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Let’s start with a brief company overview.Talend was created in 2005 and is clearly recognized today as the leading provider of open source integrationsoftware, and one of the largest pure play open source vendors.The company is venture-backed by four of the leading VC firms in high tech. Our most recent financial partner is Silver Lake Sumeru, the largest IT-related fund in the US, who led a record $34 million round in late 2010.As you can see on this slide our operations span three continents and we continue to expand at a very fast pace. Talend is an established company, providing open source integration solutions and support for them now and in the long term.Leading provider of open source data management softwareEuropean Roots in France and GermanyMore than 12 Million downloads total, 550.000 users, 2.000 customers320 employees in 2010, growing to 550 employees in 2011#1 in Europe – #5 WorldwideHigh recognitionby Gartner andotheranalysts

Webinar Apache Camel Grundlagen Teil 3 Presentation Transcript

  • 1. Apache Camel Grundlagen (Teil 3) Apache Camel für FortgeschritteneTalend, Global Leader in Open Source Integration Solutions Bernhard Schuhmann Christian Schneider
  • 2. Herzlich Willkommen! Einige logistische Hinweise…  Alle Teilnehmer sind stumm geschalten  Sie können trotzdem Fragen stellen  Benutzen Sie dazu bitte das Q&A Fenster auf der rechten Seite Ihres Bildschirms, unten im Fenster von GoToWebinar  Wir beantworten Ihre Fragen am Ende des Webinars  Wenn nicht genügend Zeit bleibt, alle Fragen zu beantworten, reichen wir die Antworten per E-Mail nach  Sie können Fragen auch per E-Mail an an webinar@talend.com stellen  Sollten Sie Schwierigkeiten haben (z.B. mit dem Ton), schreiben Sie bitte eine kurze Nachricht ins Q&A Fenster  Dieses Webinar wird aufgezeichnet und in Kürze auf unserer Website unter On Demand Webinars zur Verfügung gestellt© Talend 2011 2
  • 3. Webinarreihe Apache Camel Grundlagen Teil 1: Erste Schritte mit Apache Camel Teil 2: Enterprise Integration Patterns Teil 3: Apache Camel für Fortgeschrittene
  • 4. Global leader in open source integration Investoren Standorte Firmensitz Talend weltweit… San Francisco (Los Altos) Paris (Suresnes) Niederlassungen Orange County (Irvine) Boston (Burlington) New York (Tarrytown) London (Maidenhead) Utrecht Nuremberg Bonn Munich Milan (Bergame) Tokyo Beijing© Talend 2011 4
  • 5. Rückblende  Erste Schritte  Unsere erste Camel Applikation  Die Konzepte von Camel  Typische Use Cases© Talend 2011 5
  • 6. Grundlegende Konzepte von Camel Camel basiert auf EIPs!  Messages und Exchanges  Processors  Endpoints  Producers und Consumers  Languages, Expressions und Predicates  TypeConverters  Routes  CamelContext, Services und Registries© Talend 2011 6
  • 7. Routing in Camel Konvention vor Konfiguration!  (Fast) alles ist ein Processor  Ein Processor repräsentiert ein EIP  Ein Processor verarbeitet einen Exchange, indem er die eingehende Message nutzt und optional eine ausgehende Message erzeugt (oder eine Exception)  Camel nutzt URIs, um Endpoints zu konfigurieren  Konventionen beim Routing ① Vorige out Message wird die nächste in Message ② Existiert keine vorige out Message, wird die vorige in Message als nöchste in Message verwendet ③ Die letzte out (oder in) Message wird zurückgegeben© Talend 2011 7
  • 8. Enterprise Integration Patterns© Talend 2011 8
  • 9. Fehlerbehandlung Die Verarbeitung von Messages in einer Route kann zu Exceptions (oder Faults) führen.  Faults sind dauerhafte Fehler (analog wie bei WSDL), die Wiederholung des Vorgangs würde den gleichen Fehler erzeugen (z.B. der Fehler HTTP 404). Aus der Sicht von Camel sind Faults reguläre Messages, bei denen das Attribut fault gesetzt ist.  Exceptions sind vorübergehende Fehler. Eine Wiederholung kann erfolgreich sein (z.B. kurzzeitig ausgefallene Services). Während der Abarbeitung der Route auftretende Exceptions werden im Exchange abgelegt.© Talend 2011 9
  • 10. Fehlerbehandlung Camel enthält einen umfangreichen und erweiterbaren Fehlerbehandlungsmechanismus. Auf Exceptions kann reagiert werden:  …indem man sie behandelt  …die verursachende Message nochmals zustellt (redeliver)  …die Nachricht in einen Dead Letter Channel stellt (auch ein EIP) Camel enthält einige Error Handler Implementierungen:  DefaultErrorHandler – Messages werden nicht erneut zugestellt, Exceptions gehen zurück an den Aufrufer  DeadLetterChannel – Fehlerhafte Messages werden an einen Dead Letter Queue gesendet, erneutes Zustellen ist konfigurierbar  NoErrorHandler – Keine Fehlerbehandlung  LoggingErrorHandler – Nur Protokollierung des Fehlers© Talend 2011 10
  • 11. Fehlerbehandlung Fehler können auf drei Ebenen behandelt werden:  CamelContext – global mittels onException  Route – mit onException für eine bestimmte Route onException(ValidationException.class).to("direct:validationFailed");  Innerhalb einer Route mit doTry/doCatch/doFinally (analog zu benutzen wie try/catch/finally in Java) from("direct:start") .doTry() .process(new ProcessorFail()) .to("mock:result") .doCatch(IOException.class) // mark this as NOT handled, caller will also get the exception .handled(false) .to("mock:io") .doCatch(Exception.class) // by default, handle = true, caller doesn‘t get the exception .to("mock:error") .end();© Talend 2011 11
  • 12. Eigene Komponenten entwickeln Eine Komponente…  …ist ein JAR/Bundle, in dem eine bestimmte Technologie gekapselt ist  …ist eine Klasse, die das Component Interface implementiert  …ist eine Factory und Manager für Endpoints  …wird anhand der URI Konvention automatisch gefunden: in einer Datei mit dem Namen des Defaultschemas (hier “helloworld:”) im Verzeichnis META-INF/services/org/apache/camel/component/ wird die Factory Klasse definiert class=org.apache.camel.component.event.HelloWorldComponent  …kann auch mittels Alias explizit instanziiert werden (wie etwa amq oder wmq bei JMS)  …enthält optional Implementierungen für DataFormats, Languages, TypeConverters, usw.© Talend 2011 12
  • 13. Unsere HelloWorldComponent Wir erstellen unsere erste Camel Komponente  Camel benutzt Apache Maven  Wir benutzen den Maven Archetype camel-archetype-component http://camel.apache.org/camel-maven-archetypes.html  Zuerst das Projekt generieren mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-component -DarchetypeVersion=2.8.2 -DgroupId=org.talend.example -DartifactId=example-helloworld -Dversion=1.0-SNAPSHOT  … und dann bauen mvn install© Talend 2011 13
  • 14. Genug der Theorie…
  • 15. Monitoring Regeln(JMX)© Talend 2011 15
  • 16. Best Practices  Mit Camel und den EIP die Zusammenhänge (Semantik) und die Lösungsidee des Integrationsszenarios kommunizieren  Klein beginnen, schrittweise erweitern  Routen anhand der Funktionalität in mehrere Teilrouten unterteilen (möglicherweise sogar mit mehreren RouteBuildern)  Lose Kopplung und asynchrones Messaging  Mocks und Unit-/Integrationstests nutzen  Deployment in stabile Containers wie Talend ESB (OSGi/Equinox+Apache Karaf/Camel/CXF/ActiveMQ)  …und Spaß mit Camel haben!© Talend 2011 16
  • 17. Typische Anwendungsszenarien  Adapter für Protokoll- oder Datenformate (Mediation)  Bestandsapplikationen als Web Services verfügbar machen  Services aggregieren (leichtgewichtige Orchestrierung, technische Geschäftsprozesse)  Zusätzliche Verarbeitungsschritte (z.B. Validierung von Nachrichten)  …u.v.m.!© Talend 2011 17
  • 18. Und wie funktioniert das alles zusammen…
  • 19. Vielen Dank für Ihre Aufmerksamkeit! Benutzen Sie bitte das Q&A Fenster, Sie können Fragen auch per E-Mail an webinar@talend.com stellen.© Talend 2011 19
  • 20. Weitere Informationen  Camel Website camel.apache.org  Talends Website talend.com/products-application-integration/  Talendforge Forum talendforge.org/forum  Christian Schneiders Blog liquid-reality.de  Christian Schneider auf Twitter @schneider_chris  Bernhard Schuhmann auf Twitter @schuhmab© Talend 2011 20
  • 21. Vielen Dank!