• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Webinar Camel Grundlagen Teil 1
 

Webinar Camel Grundlagen Teil 1

on

  • 2,514 views

- First steps

- First steps
- Apache Camel Architecture
- Camel in OSGi

Statistics

Views

Total Views
2,514
Views on SlideShare
2,514
Embed Views
0

Actions

Likes
3
Downloads
41
Comments
2

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

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Talend Integration Factory and also Talend Service Factory sind nun in Talend ESB enthalten. http://www.talend.com/products/esb
    Die standard edition ist kostenlos und hat die apache license.
    Are you sure you want to
    Your message goes here
    Processing…
  • leider der link
    http://www.talend.com/products-application-integration/talend-integration-factory-community-edition.php

    funktioniert nicht !!!
    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 Camel Grundlagen Teil 1 Webinar Camel Grundlagen Teil 1 Presentation Transcript

  • Apache Camel Grundlagen (Teil 1) Erste Schritte mit Apache CamelTalend, Global Leader in Open Source Integration Solutions Bernhard Schuhmann Christian Schneider
  • 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
  • Webinarreihe Apache Camel Grundlagen Teil 1: Erste Schritte mit Apache Camel Teil 2: Enterprise Integration Patterns Teil 3: Apache Camel für Fortgeschrittene
  • 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
  • Das Apache Camel Projekt Leistungsfähiges Integrationsframework, basiert auf den Enterprise Integration Patterns  Open Source Apache License v2  Homepage des Projekts: http://camel.apache.org  Aktive und wachsende Community Highlights  Projekt wurde im Mai 2007 gestartet  Aktuelle stabile Version 2.8.1  Ausgereift, für den produktiven Einsatz geeignet  Unterstützt verschiedenste Technologien, über 100 Komponenten  Umfangreiche Dokumentation  Mehrere Hersteller unterstützen das Projekt© Talend 2011 5
  • Erste Schritte mit Apache Camel  Überblick  Download  Erste Applikation  Applikation ausführen  Applikation deployen  Beispiele© Talend 2011 6
  • Integration ist nicht einfach  Das Thema Integration ist riesig  Es gibt keinen goldenen Hammer, keine “one size fits all” Lösung  Es dauert lang, bis eine Architekturentscheidung als gut oder schlecht bewertet werden kann  Integrationsaufgaben lassen sich schwer dokumentieren  Anforderungen ändern sich  Änderungen verursachen hohe Kosten  Zu viel Middleware!© Talend 2011 7
  • Camel macht Integration einfacher  Ausrichtung auf Standards (mehr als 100 Technologien, Protokolle und Dataformate werden unterstützt)  Nutzen der Enterprise Integration Patterns, diese Patterns definieren eine Sprache mit einheitlicher Semantik, mit der sich Integrationsanforderungen ausdrücken lassen  Konvention vor Konfiguration, vereinfacht die Erstellung Integrationsabläufen (und macht Spaß)  Nachrichteninhalt ist egal  Wahl des Containers ist egal  Leichtgewichtig, modular und einfach erweiterbar  „Jede Jeck is anners“ – Camel ermöglicht immer mehrere Lösungswege  Kein ESB© Talend 2011 8
  • Wo lade ich Camel runter? Die Distribution von Apache  Aktuelles stabiles Release 2.8.1  Die Apache Distribution enthält alle Camel JARs http://camel.apache.org/download.html  … oder Maven benutzen <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>2.8.1</version> </dependency> Distributionen von Talend, TIF oder TESB SE  OSGi Container (Apache Karaf und Eclipse Equinox)  Ein Installationsarchiv (Auspacken, Einschalten, Geht nicht)  Für den produktiven Einsatz geeignet, Support von Talend http://www.talend.com/products-application-integration/talend- integration-factory-community-edition.php© Talend 2011 9
  • Hello World Wie implementiere ich meine erste Camel Anwendung?  Camel nutzt Apache Maven  Wir nehmen einen der vorhandenen Maven Archetypes http://camel.apache.org/camel-maven-archetypes.html  …generieren das Projekt mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-java -DarchetypeVersion=2.8.1 -DgroupId=org.talend.example -DartifactId=example-one -Dversion=1.0-SNAPSHOT  …und lassen es laufen mvn camel:run© Talend 2011 10
  • Genug der Theorie…
  • Deployen einer Camel Anwendung Camel ist leichtgewichtig und braucht keinen bestimmten Container, mögliche Deploymentoptionen sind:  Als standalone Java Applikation  Als Bestandteil (eingebettet in) einer anderen Java Applikation  In einem Servlet Container (Tomcat, Jetty)  In einem OSGi Container (Equinox + Karaf, Felix + Karaf)  In die Cloud (Amazon EC2, Google AppEngine) http://camel.apache.org/tutorial-for-camel-on-google-app-engine.html© Talend 2011 12
  • Die Architektur von Camel  Camels API  EIPs und die DSLs  Laufzeitumgebung  Komponenten© Talend 2011 13
  • Die API von Camel Einheitlicher Umgang mit  Protokollen (Standard oder nicht)  Datenformaten  Sprachen für Ausdrücke  Fehlerbehandlung Kernkonzepte  Message und Exchange  Processor  Endpoint  Producer und Consumer  Language, Expression und Predicate  TypeConverter  Route  CamelContext, Service und Registry© Talend 2011 14
  • Message und Exchange Message – repräsentiert die Daten, die public interface Message { String getMessageId(); in einer Route von einem Processor Exchange getExchange(); boolean isFault(); zum anderen weitergegeben werden Map<String, Object> getHeaders();  Body Object getBody(); <T> T getBody(Class<T> type);  Headers (Metadaten) Map<String, DataHandler> getAttachments(); }  Attachments public interface Exchange { Map<String, Object> getProperties(); Exchange – enthält die Messages eines boolean hasProperties(); Durchlaufs einer Route Message getIn(); Message getOut();  in Message boolean hasOut(); Exception getException();  out Message boolean isFailed();  exception (falls ausgelöst) boolean isTransacted(); boolean isRollbackOnly();  properties CamelContext getContext();  id Endpoint getFromEndpoint(); String getFromRouteId();  MEP (in-out, in-only) String getExchangeId(); ExchangePattern getPattern(); }© Talend 2011 15
  • Processor  Repräsentiert eine Node, die einen Exchange verarbeiten kann  Während der Verarbeitung wird ein Exchange von einem Processor zum nächsten weitergereicht  Eine Route ist ein Graph aus aneinandergehängten Processors  Camel enthält eine Vielzahl vordefinierter Processors  Der Nutzer kann eigene Processors implementieren public interface Processor { void process(Exchange exchange) throws Exception; } from(“direct:test”).process(new MyProcessor())© Talend 2011 16
  • Endpoint  Beschreibt ein Ende eines Kommunikationskanals  Wird eindeutig durch eine URI identifiziert  Die URI eines Endpoint dient auch zur Konfiguration  Endpoints können beide Seiten eines Kommunikationskanals darstellen (Consumer und Producer) public interface Endpoint extends IsSingleton, Service { String getEndpointUri(); String getEndpointKey(); CamelContext getCamelContext(); void configureProperties(Map<String, Object> options); Exchange createExchange(); Producer createProducer() throws Exception; Consumer createConsumer(Processor processor) throws Exception; PollingConsumer createPollingConsumer() throws Exception; }© Talend 2011 17
  • URIs in Endpoints URIs werden genutzt, um Endpunkte zu konfigurieren  Der Präfix (hier file) bestimmt die Komponente  Camel erkennt und instanziiert Komponenten in JARs automatisch anhand des Präfix  Komponenten wie z.B. JMS müssen explizit instanziiert werden, der Präfix des Endpunkts ist dann der Beanname (etwa amq und wmq)  Standardpräfix ist der Name einer Datei im Verzeichnis META- INF/services/org/apache/camel/component/. Diese enthält den FQN der Komponentenklasse  DataFormats und TypeConverters und Languages werden ähnlich instanziiert  Der Kontextteil der URI (hier data/messages) wird benutzt um den Endpunkt eindeutig zu identifizieren  Die Parameter der URL (hier recursive=true) dienen zur Konfiguration der Komponente from(“file://data/messages?recursive=true”)…© Talend 2011 18
  • Consumer  Erstes Glied in der Verarbeitungskette public interface Consumer  Empfängt eine protokollspezifische extends Service { Nachricht (Server), steckt sie in einen Endpoint getEndpoint(); Exchange und beginnt die Verarbeitung } in der Route  Optional wird das Ergebnis zurückgesendet public interface PollingConsumer extends Consumer {  Event-Driven Consumer (asynchroner Exchange receive(); Empfänger) wird durch Events von Exchange receiveNoWait(); außen angestoßen Exchange receive(long timeout); }  Polling Consumer (synchroner Empfänger) fragt eine Quelle regelmäßig ab© Talend 2011 19
  • Producer  Bindeglied zu den zu integrierenden Systemen (z.B. ftp)  Erzeugt aus Messages protokollspezifische Nachrichten und sendet diese (Client)  Empfängt optional eine Antwort public interface Producer extends Processor, Service, IsSingleton { Endpoint getEndpoint(); Exchange createExchange(); }© Talend 2011 20
  • Language, Expression und Predicate Language public interface Language {  Austauschbarer Ausführungs- Predicate createPredicate(String expr); Expression createExpression(String expr); mechanismus für Ausdrücke }  Erlaubt Entwicklern, Ausdrücke in public interface Expression { der von ihnen bevorzugten Sprache <T> T evaluate(Exchange exchange, Class<T> type); zu formulieren } public interface Predicate { Expression } boolean matches(Exchange exchange);  Ausdruck, anhand dessen ein Exchange ausgewertet wird, liefert einen beliebigen Rückgabewert …body(simple(“${in.header.myHeader}”))… …filter(xpath(“/order/@type”))… Predicate …choice()  Spezielle Ausprägung einer .when(header(“myHeader”).containts(“my Expression, die einen booleschen content”))… Wert zurückliefert© Talend 2011 21
  • TypeConverter  Für die implizite (automatische) Typkonvertierung  Ein TypeConverter stellt die Konvertierung von einer Klasse zu einer anderen bereit Class  Class from(“file://data/messages”).to(“log:myCategory”)© Talend 2011 22
  • Enterprise Integration Patterns in Camel Integration Patterns decken einen großen Teil der Integrationsaufgaben ab Kategorien von Integration Patterns  Messaging Endpoints  Message Construction  Messaging Channels  Message Routing  Message Transformation  System Management Funktionale Einordnung  Beschreibt ein Artefakt (was es ist, z.B. Message, Message Endpoint)  Beschreibt eine Aktivität (was es tut, z.B. Content Based Router)© Talend 2011 23
  • Laufzeitumgebung von Camel Ausführungsumgebung vorgegeben durch den CamelContext  Routen  Registries (für Endpunkte, Beans, Services, Komponenten)  Routing Engine (synchron und asynchron)  Monitoring (JMX)  Events und Notifications CamelContext wird konfiguriert  Programmatisch (Java API), Spring oder Blueprint  Automatische Erkennung von Komponenten in JARs und OSGi Bundles  RouteBuilders zur Konfiguration von Routen© Talend 2011 24
  • Komponenten von Camel Komponenten kapseln jeweils eine Technologie  Transportprotokolle (file, http, ftp, jms, pop/smtp, rss, …)  Datenformate (JAXB, JSON, CSV, EDI, HL7, …)  Expression Languages (Simple, XPath, JavaScript, Ruby, Scala)  Andere (SQL, Quartz, LDAP, JCR, …) Die wichtigsten Komponenten  bean (camel-core)  file (camel-core)  camel-spring  camel-jms  camel-cxf  camel-http  camel-jetty  …u.v.m.© Talend 2011 25
  • Fehlerbehandlung Manchmal entstehen während des Ablaufs einer Route Exceptions (oder Faults).  Faults sind dauerhafte Fehler (analog wie bei WSDL), die Wiederholung des Vorgangs würde den gleichen Fehler erzeugen (z.B. der Fehler HTTP 404)  Exceptions sind vorübergehende Fehler. Eine Wiederholung kann erfolgreich sein (z.B. kurzzeitig ausgefallene Services) Camel bietet eine mächtige und flexible Fehlerbehandlung:  DefaultErrorHandler – Keine Wiederholung, Exceptions an Aufrufer  DeadLetterChannel – Fehlerhafte Exchanges werden an einen Dead Letter Queue gesendet, Wiederholungen konfigurierbar  NoErrorHandler – Keine Fehlerbehandlung  LoggingErrorHandler – Nur Protokollierung des Fehlers© Talend 2011 26
  • Noch mehr Praxis…
  • Typische Anwendungsszenarien  Adapter für Protokoll- oder Datenformate (Mediation)  Bestandsapplikationen als Web Services verfügbar machen  Systeme als Proxy/Gateway entkoppeln  Services aggregieren (leichtgewichtige Orchestrierung, technische Geschäftsprozesse)  Zusätzliche Verarbeitungsschritte (z.B. Validierung von Nachrichten)  Testunterstützung (Services simulieren, Traffic erzeugen, usw.)  …u.v.m.!© Talend 2011 28
  • 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 29
  • 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 30
  • Vielen Dank!