You are on page 1of 80

Spoilt for Choice Which Integration Framework to choose?

Integration

vs.

Mule ESB

vs.

www.mwea.de

Kai Whner

Kai Whner Main Tasks


Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business Process Management Architecture and Development of Applications Planning and Introduction of SOA Integration of Legacy Applications Cloud Computing

Consulting Developing Speaking Coaching Writing


www.mwea.de Kai Whner

Contact
Email: kai.waehner@mwea.de Blog: www.kai-waehner.de/blog Twitter: @KaiWaehner Social Networks: Xing, LinkedIn

15.05.2012

Seite 2

What is the Key Message?

www.mwea.de

Kai Whner

15.05.2012

Seite 3

Key Messages

Do not reinvent the integration wheel!

www.mwea.de

Kai Whner

15.05.2012

Seite 4

Key Messages

Do not reinvent the integration wheel! There are some good alternatives for Integration!

www.mwea.de

Kai Whner

15.05.2012

Seite 5

Key Messages

Do not reinvent the integration wheel! There are some good alternatives for Integration! Often an ESB is the wrong Choice!
www.mwea.de Kai Whner 15.05.2012 Seite 6

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 7

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 8

What is the Problem?

Growth
! Applications ! Interfaces ! Technologies ! Products

www.mwea.de

Kai Whner

15.05.2012

Seite 9

Heterogeneity

www.mwea.de

Kai Whner

15.05.2012

Seite 10

Spaghetti Solutions

Everybody communicates to everybody


www.mwea.de Kai Whner 15.05.2012 Seite 11

Solution: Systems Integration

All Roads lead to Rome ...


www.mwea.de Kai Whner 15.05.2012 Seite 12

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

www.mwea.de

Kai Whner

15.05.2012

Seite 13

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Spring Integration vs. Mule ESB vs. Apache Camel

www.mwea.de

Kai Whner

15.05.2012

Seite 14

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 15

Wishes

! Standardized Modeling ! Efficient Realization ! Automatic Testing


www.mwea.de Kai Whner 15.05.2012 Seite 16

Enterprise Integration Patterns (EIP)

www.mwea.de

Kai Whner

15.05.2012

Seite 17

Enterprise Integration Patterns (EIP)

www.mwea.de

Kai Whner

15.05.2012

Seite 18

Enterprise Integration Patterns (EIP)

www.mwea.de

19

Relation between EIPs and Integrations Frameworks

Integration

vs.

Mule ESB implement

vs.

www.mwea.de

Kai Whner

15.05.2012

Seite 20

Comparison Criteria

! Open source ! Basic concepts / architecture ! Testability ! Commercial support ! Error handling ! Monitoring ! Enterprise readiness ! Developer-centric vs. designer-centric ! Expandability ! Deployment ! Popularity ! Tool support ! Connectivity ! Domain specific language (DSL)

www.mwea.de

Kai Whner

15.05.2012

Seite 21

Similarities

www.mwea.de

Kai Whner

15.05.2012

Seite 22

Connectivity

Integration of different Technologies

www.mwea.de

Kai Whner

15.05.2012

Seite 23

Domain Specific Languages (DSL)

A domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and / or a particular solution technique.
Wikipedia

www.mwea.de

Kai Whner

15.05.2012

Seite 24

Architecture

http://java.dzone.com/articles/apache-camel-integration

(Exemplarily: Apache Camel => Concepts are all the same, only different names)

www.mwea.de

Kai Whner

15.05.2012

Seite 25

Deployment

Standalone

Application Server Spring Container OSGi Cloud

Web Container

www.mwea.de

Kai Whner

15.05.2012

Seite 26

Enterprise-Ready

! Maturity ! Transactions ! Concurrency ! Error handling ! Monitoring ! Testability


www.mwea.de Kai Whner 15.05.2012 Seite 27

Licensing

Integration

vs.

Mule ESB

vs.

Apache License

Common Public Atttribution License (CPAL)

Apache License

www.mwea.de

Kai Whner

15.05.2012

Seite 28

Commercial Support

Integration

vs.

Mule ESB

vs.

www.mwea.de

Kai Whner

15.05.2012

Seite 29

Tool Support
Integration Graph for Spring Integration Mule Studio for Mule ESB

Fuse IDE for Apache Camel

Talend Studio for Apache Camel

www.mwea.de

Kai Whner

15.05.2012

Seite 30

Upcoming Procedure

!Concepts of each Framework !Code Example !Live Demo

www.mwea.de

Kai Whner

15.05.2012

Seite 31

Comparison Criteria

Focus

! Open source ! Basic concepts / architecture ! Testability ! Commercial support ! Error handling ! Monitoring ! Enterprise readiness ! Developer-centric vs. designer-centric ! Expandability ! Deployment ! Popularity ! Tool support ! Connectivity ! Domain specific language (DSL)

www.mwea.de

Kai Whner

15.05.2012

Seite 32

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 33

Connectivity
AMQP Feed File FTP(S) GemFire HTTP TCP UDP JDBC JMS Mail MongoDB Redis RMI SFTP Stream Twitter Web Service XML XMPP

How to create own custom adapter?

www.mwea.de

Kai Whner

15.05.2012

Seite 34

DSLs

XML
(Not production-ready yet)

www.mwea.de

Kai Whner

15.05.2012

Seite 35

Code Example

www.mwea.de

Kai Whner

15.05.2012

Seite 36

Code Example

http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/

www.mwea.de

Kai Whner

15.05.2012

Seite 37

Live Demo

Spring Integration in Action


www.mwea.de Kai Whner 15.05.2012 Seite 38

Integration Graph

www.mwea.de

Kai Whner

15.05.2012

Seite 39

Integration Graph

Pro
! Visual Designer for Spring Integration flows ! Vice versa Editing (code generation vs. coding by hand) ! Open Source (part of Spring IDE at github) ! Simple Eclipse plugin Just Spring Integration ! Export of flow diagrams

Contra
! Non-intuitive usability ! Unclear diagrams ! Immature (e.g. missing documentation, problems with code examples)

www.mwea.de

Kai Whner

15.05.2012

Seite 40

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 41

Mule ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 42

Standalone / Web Application Deployment

http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp
www.mwea.de Kai Whner 15.05.2012 Seite 43

Connectivity
AS400 Data Queue Abdera Amazon SQS jBPM CICS CTG CXF Email FTP Hibernate HTTP/S Legs4Mule IMAP/S Servlet SFTP SMTP/S SOAP STDIO TCP UDP VM XMPP WebSphere MQ WSDL
www.mwea.de Kai Whner

Atom Base64 encoded Byte arrays CSV Encrypted

Amazon S3 Authorize.net Apple Push Bit.ly CMIS

GZIP Hex Strings HTML/ XHTML Java Objects

CyberSource Facebook Flickr HBase Magento

JCR JDBC Jersey Jetty JMS LDAP Multicast POP3/S Quartz Restlet RMI SAP

JSON EDI COBOL Copybook XML

Many more Connectors + easy to create own Connectors


15.05.2012 Seite 44

Connectivity

Several Proprietary Connectors available, for instance:

www.mwea.de

Kai Whner

15.05.2012

Seite 45

OSGi Support?

OSGi adds another complexity to building applications. [...] OSGi is a great specification for middleware vendors, but a terrible specification for the end user.
Ross Mason, MuleSoft, November 2010

www.mwea.de

Kai Whner

15.05.2012

Seite 46

DSLs

XML

www.mwea.de

Kai Whner

15.05.2012

Seite 47

Code Example

www.mwea.de

Kai Whner

15.05.2012

Seite 48

Live Demo

Mule in Action
www.mwea.de Kai Whner 15.05.2012 Seite 49

Mule Studio

www.mwea.de

Kai Whner

15.05.2012

Seite 50

Mule Studio

Pro
! Visual Designer for Mule Flows ! Visual Live Monitoring ! Vice versa Editing (Code generation vs. coding by hand) ! Simple Eclipse plugin Just Mule ! Intuitive GUI

Contra
! Proprietary ! Subscription required for many enterprise features (such as monitoring)

www.mwea.de

Kai Whner

15.05.2012

Seite 51

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 52

DSLs

XML

www.mwea.de

Kai Whner

15.05.2012

Seite 53

Connectivity

SQL

TCP RMI

LDAP Netty FTP SMTP Lucene

XSLT Jetty JMS EJB Quartz

Twitter JMX CXF AWS File HTTP

JDBC MQ IRC jclouds

Bean-Validation RSS Atom Akka AMQP

MongoDB
www.mwea.de Kai Whner

Many more Components + easy to create own Components


15.05.2012 Seite 54

Code Example

www.mwea.de

Kai Whner

15.05.2012

Seite 55

Code Example

www.mwea.de

Kai Whner

15.05.2012

Seite 56

Live Demo

Apache Camel in Action


www.mwea.de Kai Whner 15.05.2012 Seite 57

Tool Support

Fuse IDE
vs.

Talend Open Studio for ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 58

Fuse IDE

www.mwea.de

Kai Whner

15.05.2012

Seite 59

Fuse IDE

Pro
! Visual Designer for Camel routes ! Visual Live Monitoring (for debugging, browsing, tracing) ! Vice versa Editing (code generation vs. coding by-hand) ! Just a simple Eclipse-Plugin Just Camel ! Intuitive GUI ! Export of route diagrams ! JUnit Test Wizard (generates scaffolding for tests)

Contra
! Proprietary ! Subscription required ! Only XML DSL (this is not really a contra, because only Camel offers other DSLs)

www.mwea.de

Kai Whner

15.05.2012

Seite 60

Talend Open Studio for ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 61

Talend Open Studio for ESB

Pro
! Visual Designer for Camel routes ! Visual Live Monitoring ! Open Source (at github) ! Community Edition (not all features) ! Zero Coding

Contra
! Zero Coding ! Only Java DSL (plus a lot of boilerplate code) ! No vice versa code editing (only code generation) ! No intuitive user interface => no simple Eclipse plugin => based on Eclipse, but it is more an own product (1GB) => full ESB only

www.mwea.de

Kai Whner

15.05.2012

Seite 62

Agenda

1)! Systems Integration 2)! Integration Frameworks 3)! Spring Integration 4)! Mule ESB 5)! Apache Camel 6)! And the Winner is ...

www.mwea.de

Kai Whner

15.05.2012

Seite 63

And the Winner is ...

Integration Mule ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 64

When to use?

Integration Mule ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 65

When to use?

! Spring Project ! Typical JVM Technologies ! No additional Framework

Integration Mule ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 66

When to use?

Integration
! One of the available proprietary Connectors is required

Mule ESB

www.mwea.de

Kai Whner

15.05.2012

Seite 67

When to use?

Integration Mule ESB


! In all other Cases

www.mwea.de

Kai Whner

15.05.2012

Seite 68

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

www.mwea.de

Kai Whner

15.05.2012

Seite 69

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Integration
Connectivity Routing Transformation
www.mwea.de Kai Whner 15.05.2012 Seite 70

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Integration
Connectivity Routing Transformation
www.mwea.de Kai Whner

Spring Integration vs. Mule ESB vs. Apache Camel


15.05.2012 Seite 71

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

www.mwea.de

Kai Whner

15.05.2012

Seite 72

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Middleware Product Integration


Connectivity Routing Transformation
www.mwea.de Kai Whner

Integration Business Process Management Business Activity Monitoring Registry / Repository Rules Engine
15.05.2012 Seite 73

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Middleware Product Integration


Connectivity Routing Transformation
www.mwea.de Kai Whner

Integration Business Process Management Business Activity Monitoring Registry / Repository Rules Engine
15.05.2012 Seite 74

Alternatives for Systems Integration

No Tool

Integration Framework

Enterprise Service Bus (ESB)

Low

High

Complexity of Integration

Apache ServiceMix, Mule ESB, WSO2 ESB vs. IBM Message Broker, IBM ESB, Oracle ESB, webMethods ESB
www.mwea.de Kai Whner

Middleware Product
Integration Business Process Management Business Activity Monitoring Registry / Repository Rules Engine
15.05.2012 Seite 75

Did you get the Key Messages?

www.mwea.de

Kai Whner

15.05.2012

Seite 76

Key Messages

Do not reinvent the integration wheel! There are some good alternatives for Integration! Often an ESB is the wrong Choice!
www.mwea.de Kai Whner 15.05.2012 Seite 77

Did you get the Key Messages?

www.mwea.de

Kai Whner

15.05.2012

Seite 78

Become a Part of the Open Source Community

www.mwea.de

Kai Whner

15.05.2012

Seite 79

Thank you for your Attention. Any Questions?

Integration

or Mule ESB or

Smart EAI

Kai Whner MaibornWolff et al: www.mwea.de Email: kai.waehner@mwea.de Twitter: @KaiWaehner Blog: www.kai-waehner.de/blog

www.mwea.de

Kai Whner

You might also like