Article

Realization of EAI Patterns with Apache Camel

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

69 pages Integrating enterprise applications is a challenging topic. The book "Enterprise Integration Patterns" by Gregor Hohpe and Bobby Woolf describes a collection of patterns residing in the domain of enterprise application integration using messaging. The book describes frequently recurring problems in this domain and their solution in the form of patterns. The main objective of this work is to analyze the implementation of these Enterprise Integration Patterns in Apache Camel. Apache Camel is a routing and mediation engine which implements the Enterprise Integration Patterns. It provides a framework where these patterns can be used to integrate different applications. In this work the Apache Camel platform is evaluated regarding the correct implementation of the Enterprise Integration Patterns. The result of this evaluation is then used to develop a framework, which extends the Apache Camel framework, enabling the execution of parameterized patterns. Additionally an existing graphical editor for the modeling of integration scenarios using patterns is extended. In the existing editor these modeled integration scenarios can be used to generate corresponding WS-BPEL processes. The extension implemented in this work additionally allows to generate Apache Camel based Java applications executing the modeled integration scenarios.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

... Programs in Highway are mostly consisting of definitions of Routes and each route represents one transformation rule that connects two or more endpoints in a business process. Route abstraction is very similar to the GuaranaDSL's IntegrationLink [4] abstraction and RouteDefinition concept in Apache Camel [8,7]. ...
Conference Paper
Full-text available
Highway is a domain-specific language for implementing enterprise application integration solutions in a technology independent and functional manner. As an internal DSL developed on top of Clojure programming language, Highway uses functional programming techniques in order to simplify enterprise application integration development. In this paper we focus on abstractions and language constructs that define Highway's approach to integration. We also cover implementation of enterprise integration patterns using Highway since they represent various common situations in enterprise application integration development.
... Camel provides the split() expression for conducting those operations . One of the requirements to implement the split expression successfully is to have either a Collection, an Array or a NodeList (cf. [21], 23-24). ...
Conference Paper
Full-text available
"Interesting applications rarely live in isolation." ([1], xxix) With this sentence G. Hohpe and B. Woolf start the introduction to their book Enterprise Integration Pattern: Designing, Building, and Deploying Messaging Solutions. While the statement is valid now for more than ten years, Gartner estimates today the cost increase targeting integration aspects for midsize to large companies at about 33% within the next three years (cf. [2]). The expected increase will be mainly driven by the integration of cloud services and mobile devices. Since event processing addresses clearly problems arising with the growth of computational distribution, particularly with the increasing number of mobile devices or cloud services, integration is a topic that needs to be addressed by event processing functionalities. One of the frameworks within the integration domain is Apache Camel. Since it's initial release in 2007, the framework has gained quite some attention - not only within the open-source arena. Apache Camel has a strong focus on enterprise application integration since it implements well known Enterprise Integration Patterns (EIP's) (cf. [1]). This work reveals the event processing capabilities of Apache Camel alongside a logistics parcel delivery process. The delivery process facilitates the scenario descriptions to exemplify the event processing functionalities within a real-world context. All coding examples, supporting the functionality demonstration, are setup around the shipment of parcels.
Thesis
Die Integration von großen IT Anwendungen ist für viele Firmen eine der bedeutendsten IT Herausforderungen, um die Geschäftsprozesse innerhalb eines Unternehmens effizient durchführen zu können. Zum einen gab es kein standardisiertes Vorgehen, wie man Integrationslandschaften konzipieren und spezifizieren konnte. Zum anderen bestand keine durchgängige Methode, die resultierenden zumeist abstrakten Architekturen in ausführbare Systeme zu überführen. Mit der Einführung von Integrationsmustern wurde ein großer Beitrag geleistet, um Integrationslandschaften einheitlich und technologieunabhängig darstellen zu können. Jedoch klaffte immer noch eine große Lücke zwischen der Modellierung und der Implementierung dieser Landschaften. Die tatsächliche Realisierung wurde durch Entwickler geleistet, indem die Landschaften interpretiert und entsprechend ausführbare Integrationslogik erstellt wurde. Diese Kluft muss geschlossen werden, damit Architekten und Entwickler besser miteinander kommunizieren und ausführbare Integrationslösungen effizienter realisiert werden können. Diese Dissertation leistet einen Beitrag, um diese Lücke zu schließen. Im Rahmen dieser Arbeit wird eine Methode entwickelt, mit der ausgehend von Integrationsmustern automatisiert ausführbare Integrationslösungen erzeugt werden können. Es wird eigens ein Lebenszyklus konzipiert, der die unterschiedlichen Phasen der Erstellung von ausführbaren Integrationslösungen beschreibt. Die Methode basiert auf der Modell-getriebenen Entwicklung. Die vormals visuellen und textuellen Repräsentationen der Integrationsmuster werden dazu in ein formales Modell überführt. Parametrisierbare Integrationsmuster dienen fortan als Grundlage der Methode. Durch die Parameter jedes einzelnen Musters kann das erwartete Verhalten eines Muster technologieunabhängig spezifiziert werden. Außerdem beschreibt das Modell die Zusammenhänge der einzelnen Muster und wie sie miteinander kommunizieren. Das Modell der parametrisierbaren Integrationsmuster wird von einem Generierungsalgorithmus verwendet, um automatisiert ausführbare Integrationslösungen zu erstellen. Der Algorithmus fügt dazu plattformspezifische Informationen hinzu, so dass eine Integrationslösung auf einer bestimmten Zielinfrastruktur ausgeführt werden kann. Ein Modell kann dabei von verschiedenen Algorithmen verwendet werden und daher in verschiedene Ausführungsumgebungen übersetzt werden. Diese Methode ist daher nicht auf bestimmte Zielinfrastrukturen beschränkt. Im Verlauf der Arbeit werden parametrisierbare Integrationsmuster auf drei sehr unterschiedlichen Infrastrukturen abgebildet und ausgeführt. Dies verdeutlicht die Allgemeinheit der Methode und die leichte Erweiterbarkeit auf neue Technologien und veränderte Anforderungen. Zur Unterstützung der Methode wird außerdem eine Werkzeugkette erstellt, die es Systemarchitekten erlaubt, eine Integrationslösung grafisch zu konzipieren. Das Werkzeug GENIUS umfasst eine graphische Modellierungsoberfläche, mit der parametrisierbare Integrationsmuster zu einer Integrationslösung zusammengefasst werden können. Außerdem werden zwei Algorithmen integriert, die ausführbare Integrationslösungen für zwei unterschiedliche Zielinfrastrukturen erzeugen. Diese Dissertation schließt somit die Lücke zwischen Architektur und Entwicklung, indem eine auf der Modell-getriebenen Entwicklung basierenden Methode entwickelt wird, mit deren Hilfe parametrisierbare Integrationsmuster als direkte Spezifikation für ausführbare Systeme dienen und automatisiert in diese Systeme überführt werden.
Article
As enterprises merge, split up, or grow, existing legacy systems from different vendors implemented in different programming languages and running in different environments as well as roll-your-own applications have to be integrated. This fact is denoted as the Enterprise Application Integration (EAI) problem and is one of the major challenges IT departments are facing today.As a result of the need for operational flexibility and reuse, Service-Oriented Architectures (SOA) gain more and more importance as they allow for a flexible and standardised way to describe, reuse and integrate services in heterogeneous application landscapes. Enterprise Application Integration Patterns (EAI Patterns) are a means to describe integration problems using a set of patterns. The patterns therefore present nuggets of advice on how to solve complex recurring integration problems.In this paper we introduce a platform independent approach (EMod) to model, describe and enact EAI patterns in service-oriented architectures. We describe how EMod can be used to build stand-alone EAI solutions that integrate different applications in a Software as a Service (SaaS) environment. Furthermore we show how EMod can be used as a part of an application to integrate services into composite service-oriented applications. This is done by integrating EMod into the Service Component Architecture (SCA).
Conference Paper
Enterprise Application Integration (EAI) problems are one of the major challenges IT departments are facing today. As enterprises merge, split up, or grow, existing legacy systems from different vendors implemented in different programming languages and running in different environments as well as roll-your-own applications have to be integrated. Furthermore, companies are starting to shift more and more on-premise software to software run in aSoftware as a Service (SaaS) business model. Outsourcing software to external and internal SaaS providers introduces new integration challenges, namely those of the integration of standard SaaS software with on-premise systems or other systems run at different SaaS providers which is a problem not addressed by SaaS platforms today. Recurring integration problems can be described by means of Enterprise Application Integration patterns. Those are used as nuggets of advice to solve complex integration problems. In this paper, we introduce executable EAI patterns offered in a SaaS business model to allow companies to focus on the integration without the need for the setup of complex integration infrastructures. Users will be guided by workflows customizing configurable EAI patterns to easily create integration solutions. We therefore propose EAI as a Service as a flexible, customizable, inexpensive way to tackle EAI problems both of on-premise systems but also of systems run in a SaaS business model.
Enterprise Integration Patterns Version: 3.2.2. Available electronically at
  • Gregor Hohpe
  • Bobby Woolf
Gregor Hohpe, Bobby Woolf: Enterprise Integration Patterns, Addison‐Wesley Professional, 2003, ISBN 0‐321‐20068‐3 [Jdt] Eclipse: Java Development Tools (JDT), Version: 3.2.2. Available electronically at: http://www.eclipse.org/jdt/ Accessed on: 13.04.2008
Available electronically at: http://mina.apache.org/ Accessed on: 02.04 Available electronically at: http://www
  • Mina Apache
Apache MINA. Available electronically at: http://mina.apache.org/ Accessed on: 02.04.2008 [ML07] Nilo Mitra and Yves Lafon. SOAP, Version: 1.2. W3C Recommendation, April 2007. Available electronically at: http://www.w3.org/TR/soap12‐part0/ Accessed on: 13.04.2008 [Ode]
Receiving messagegetId(
  • System
System.out.println("Receiving message [" + Thread.currentThread().getId() + "]: \n" + inboundMessage .getBody(String.class));
Available elec‐ tronically at
  • Alexandre Alves
  • Assaf Arkin
  • Sid Askary
  • Charlton Barreto
  • Ben Bloch
  • Francisco Curbera
  • Mark Ford
  • Yaron Goland
  • Alejandro Guízar
  • Neelakantan Kartha
  • Canyang Kevin Liu
  • Rania Khalaf
  • Dieter König
  • Mike Marin
  • Vinkesh Mehta
  • Satish Thatte
  • Danny Van Der Rijn
  • Prasad Yendluri
  • Alex Yiu
Alexandre Alves, Assaf Arkin, Sid Askary, Charlton Barreto, Ben Bloch, Francisco Curbera, Mark Ford, Yaron Goland, Alejandro Guízar, Neelakantan Kartha, Canyang Kevin Liu, Rania Khalaf, Dieter König, Mike Marin, Vinkesh Mehta, Satish Thatte, Danny van der Rijn, Prasad Yendluri and Alex Yiu. Web Services Business Process Execution Language, Version 2.0. Comitee Specification, April 2007. Available elec‐ tronically at: http://docs.oasis‐open.org/wsbpel/2.0/wsbpel‐v2.0.pdf Accessed on: 07.04.2008 [Act]
Available electronically at: http://incubator.apache.org/cxf/ Accessed on: 02.04 Enterprise JavaBeans,Version: 3.0. Specifica‐ tion Available electronically at
  • Cxf Apache
Apache CXF, Version 2.0.3. Available electronically at: http://incubator.apache.org/cxf/ Accessed on: 02.04.2008 [DK06] Linda DeMichiel and Michael Keith. Enterprise JavaBeans,Version: 3.0. Specifica‐ tion, May 2006. Available electronically at: http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html Accessed on: 07.04.2008 [Dru07] Bettina Druckenmüller. Parametrisierung von EAI Patterns. Diplomarbeit Nr. 2583, Universität Stuttgart, 2007.
Available electronically at: http://ode.apache.org/ Accessed on: 18.04
  • Ode Apache
Apache ODE. Available electronically at: http://ode.apache.org/ Accessed on: 18.04.2008
W3C Rec‐ ommendation Available electronically at: http://www
  • C David
  • Priscilla Fallside
  • Walmsley
  • Schema
David C. Fallside and Priscilla Walmsley. XML Schema, Second Edition. W3C Rec‐ ommendation, October 2004. Available electronically at: http://www.w3.org/TR/xmlschema‐0/ Accessed on: 13.04.2008
Available electronically at: http://servicemix.apache.org/ Accessed on: 02.04
  • Apache Servicemix
Apache ServiceMix. Available electronically at: http://servicemix.apache.org/ Accessed on: 02.04.2008
Version: 1.0. W3C Recommendation Available electronically at: http://www.w3.org/TR/xpath/ Accessed on: 07.04 The Java API for XML‐Based Web Services (JAX‐WS) 2.0. Specification Available electronically at
  • James Clark
  • Steve Derose
  • Xml Path
  • Language
James Clark and Steve DeRose. XML Path Language (XPath), Version: 1.0. W3C Recommendation, November 1999. Available electronically at: http://www.w3.org/TR/xpath/ Accessed on: 07.04.2008 [CHM06] Roberto Chinnici, Marc Hadley and Rajiv Mordani. The Java API for XML‐Based Web Services (JAX‐WS) 2.0. Specification, April 2006. Available electronically at: http://jcp.org/aboutJava/communityprocess/final/jsr224/index.html Accessed on: 13.04.2008 [Cla99]
Version: 1.0. W3C Recommendation Available electronically at: http://www
  • James Clark
James Clark. XSL Transformations (XSLT), Version: 1.0. W3C Recommendation, November 1999. Available electronically at: http://www.w3.org/TR/xslt/ Accessed on: 13.04.2008