#LyX 1.6.5 created this file. For more info see http://www.lyx.org/ \lyxformat 345 \begin_document \begin_header \textclass beamer \begin_preamble \usetheme{Warsaw} % oder ... \setbeamercovered{transparent} % oder auch nicht \end_preamble \use_default_options false \language ngerman \inputencoding auto \font_roman times \font_sans default \font_typewriter default \font_default_family default \font_sc false \font_osf false \font_sf_scale 100 \font_tt_scale 100 \graphics default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry false \use_amsmath 2 \use_esint 0 \cite_engine basic \use_bibtopic false \paperorientation portrait \secnumdepth 2 \tocdepth 2 \paragraph_separation indent \defskip medskip \quotes_language danish \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \author "" \author "" \end_header \begin_body \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Diese Datei enthält eine Lösungsvorlage für: \end_layout \begin_layout Itemize Vorträge bei einer (deutschsprachigen) Konferenz/einem Kolloquium. \end_layout \begin_layout Itemize Vortragslänge von etwa 20 Minuten. \end_layout \begin_layout Itemize Aussehen des Vortrags ist verschnörkelt/dekorativ. \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset Note Note status collapsed \begin_layout Plain Layout Copyright 2004 by Till Tantau . \end_layout \begin_layout Plain Layout In principle, this file can be redistributed and/or modified under the terms of the GNU Public License, version 2. However, this file is supposed to be a template to be modified for your own needs. For this reason, if you use this file as a template and not specifically distribute it as part of a another package/program, the author grants the extra permission to freely copy and modify this file as you see fit and even to delete this copyright notice. \end_layout \end_inset \end_layout \begin_layout Title Konzeption und Realisierung von Daten- und Funktionsintegrationsszenarien mit Hilfe des EIP-Frameworks Apache Camel \end_layout \begin_layout Author Sven \begin_inset space ~ \end_inset Eisenhauer \end_layout \begin_layout Institute Fachbereich Informatik \begin_inset Newline newline \end_inset Hochschule Darmstadt \end_layout \begin_layout Date Daten- und Systemintegration WS 2009/2010 \end_layout \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Folgendes sollten Sie löschen, wenn nicht am Anfang jedes Unterabschnitts die Gliederung gezeigt werdem soll. \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash AtBeginSubsection[]{ \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash frame{ \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash frametitle{Gliederung} \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash tableofcontents[currentsection,currentsubsection] \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout } \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Falls Sie Aufzählungen immer schrittweise zeigen wollen, können Sie folgenden Befehl auskommentieren: \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout % \backslash beamerdefaultoverlayspecification{<+->} \end_layout \end_inset \end_layout \begin_layout BeginFrame Gliederung \end_layout \begin_layout Standard \begin_inset CommandInset toc LatexCommand tableofcontents \end_inset \end_layout \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Einen Vortrag zu strukturieren, ist nicht immer einfach. Die nachfolgende Struktur kann unangemessen sein. Hier ein paar Regeln, die für diese Lösungsvorlage gelten: \end_layout \begin_layout Itemize Verwenden Sie zwei oder drei Abschnitte (neben der Zusammenfassung). \end_layout \begin_layout Itemize \series bold Maximal \series default drei Unterabschnitte pro Abschnitt. \end_layout \begin_layout Itemize Pro Rahmen sollten Sie zwischen 30 Sekunden und zwei Minuten reden. Die Präsentation sollte also 15 bis 30 Rahmen haben. \end_layout \begin_layout Itemize Konferenzteilnehmer wissen oft wenig von der Materie des Vortrags. Also: Vereinfachen Sie! \end_layout \begin_layout Itemize In 20 Minuten ist es schon schwer genug, die Hauptbotschaft zu vermitteln. Deshalb sollten Sie Details auslassen, selbst wenn die Darstellung dann weniger genau ist, als Sie das gerne möchten. \end_layout \begin_layout Itemize Falls Sie Details weglassen, die eigentlich wichtig für einen Beweis/Umsetzung sind, sagen Sie dies den Leuten einmal klar und deutlich. Alle werden damit leben können. \end_layout \end_inset \end_layout \begin_layout Section Motivation \end_layout \begin_layout Subsection Unternehmensintegration \end_layout \begin_layout BeginFrame Was macht Integration schwierig? \end_layout \begin_layout FrameSubtitle \begin_inset Note Note status open \begin_layout Plain Layout Eine Überschrift fasst einen Rahmen verständlich zusammen. Man muss sie verstehen können, selbst wenn man nicht den Rest des Rahmens versteht. \end_layout \end_inset \end_layout \begin_layout Itemize Integration findet in heterogenen Umgebungen statt. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Keine zwei Szenarien sind identisch. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Jede Integration bildet eigenständige Lösung. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Vielzahl unterschiedlicher Integrationslösungen \end_layout \begin_layout Subsection Enterprise Integration Patterns \end_layout \begin_layout BeginFrame Enterprise Integration Patterns helfen \end_layout \begin_layout Itemize Integrationszenarien haben Gemeinsamkeiten. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize EIPs bilden diese Gemeinsamkeiten ab. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Stellen intuitive Beschreibung und Kommunikationsform bereit. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize EIPs unterstützen Entwurf auf logischer Ebene. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Hersteller- und technologieneutral. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Lose Kopplung mittels Nachrichtenorientierung \end_layout \begin_layout BeginFrame Übersicht EIPs \end_layout \begin_layout Standard \begin_inset Graphics filename ../DSI-Assignment/gfx/overview_eip.png width 90pheight% \end_inset \end_layout \begin_layout Standard \end_layout \begin_layout Section Prototyp \end_layout \begin_layout Subsection Szenario \end_layout \begin_layout BeginFrame Anforderungen \end_layout \begin_layout Itemize Bestellungen sollen als CSV-Dateien und über WS an Legacysystem geschickt werden. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Benachrichtigung per E-Mail über neue Bestellung. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Jede E-Mail speichern. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Rückgabe der Bestellnummer über WS. \end_layout \begin_layout BeginFrame Beschreibung mittels EIPs \end_layout \begin_layout Standard \begin_inset Graphics filename ../DSI-Assignment/gfx/eip_diag_detail.png width 100text% \end_inset \end_layout \begin_layout Subsection Apache Camel \end_layout \begin_layout BeginFrame Allgemeines \end_layout \begin_layout Itemize Opensource Framwork für EIPs \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Maven basiert. \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Programmierung in Java DSL oder Konfiguration in XML-Datei \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Plugin-basiert \end_layout \begin_layout Subsection Implementierung \end_layout \begin_layout BeginFrame Routen \end_layout \begin_layout Itemize Route als zentrales Element (abstrakte Klasse RouteBuilder) \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Übermittlung von Nachrichten von einem Endpunkt zum nächsten \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize Form: from(URI) to (URI) \end_layout \begin_deeper \begin_layout Pause \end_layout \end_deeper \begin_layout Itemize CBR mittels choice-Anweisung \end_layout \begin_layout BeginFrame Datenintegration \end_layout \begin_layout Columns \end_layout \begin_deeper \begin_layout Column 5cm \end_layout \begin_layout Itemize CSV-Consumer \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Transformer Pattern zur Konvertierung von Nutzdaten \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Zusammengefasst als Normalizer \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Einheitliches Datenformat \end_layout \begin_layout Column 5cm \end_layout \begin_layout Standard \begin_inset Graphics filename ../DSI-Assignment/gfx/ordernormalizer.png width 100col% \end_inset \end_layout \end_deeper \begin_layout EndFrame \end_layout \begin_layout BeginFrame Funktionsintegration \end_layout \begin_layout Columns \end_layout \begin_deeper \begin_layout Column 5cm \end_layout \begin_layout Itemize Ereignisgesteuerter Konsument \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Interface Processor als Integrationspunkt auf Funktionsebene \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Adapter für Legacy-System \end_layout \begin_layout Column 5cm \end_layout \end_deeper \begin_layout Columns \begin_inset Graphics filename ../DSI-Assignment/gfx/ordersystemadaptor.png width 100col% \end_inset \end_layout \begin_layout Columns \end_layout \begin_layout EndFrame \end_layout \begin_layout Subsection Live Demo \end_layout \begin_layout BeginFrame Live Demo \end_layout \begin_layout Itemize JUnit Test \end_layout \begin_layout Itemize Bestellungen via Webservice und CSV-Datei \end_layout \begin_layout Itemize Ansicht gespeicherte E-Mails \end_layout \begin_layout Itemize Ansicht Bestelldatenbank \end_layout \begin_layout EndFrame \end_layout \begin_layout Section* Zusammenfassung \end_layout \begin_layout BeginFrame Zusammenfassung \end_layout \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Die Zusammenfassung sollte sehr kurz sein. \end_layout \end_inset \end_layout \begin_layout Itemize Apache eignet sich zur Daten- und Funktionsintegration \end_layout \begin_layout Itemize Stellt einen leichtgewichtigen ESB dar. \end_layout \begin_layout Itemize EIPs unterstützen Design von Integrationslösungen \end_layout \begin_layout Itemize Apache Camel unterstützt Implementierung von EIPs \end_layout \begin_layout Standard \begin_inset Note Note status open \begin_layout Plain Layout Der folgende Ausblick ist optional. \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout \backslash vskip0pt plus.5fill \end_layout \end_inset \end_layout \begin_layout Itemize Ausblick \end_layout \begin_deeper \begin_layout Itemize Prozessintegration / -management \end_layout \begin_layout Itemize BAM \end_layout \end_deeper \begin_layout EndFrame \end_layout \end_body \end_document