80
www.mwea.de Spoilt for Choice – Which Integration Framework to choose? Kai Wähner Integration Mule ESB vs. vs.

CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

Embed Size (px)

DESCRIPTION

Spoilt for Choice - Which Integration Framework to use on the Java (JVM) Platform? Apache Camel, Spring Integration, Mule ESB? Or when to use an Enterprise Service Bus (ESB) instead?

Citation preview

Page 1: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Spoilt for Choice – Which Integration Framework to choose?

Kai Wähner

Integration Mule ESB vs. vs.

Page 2: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Kai Wähner

15.05.2012 Seite 2 Kai Wähner

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

Contact Email: [email protected] Blog: www.kai-waehner.de/blog

Twitter: @KaiWaehner Social Networks: Xing, LinkedIn

Consulting Developing Speaking Coaching Writing

Page 3: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

What is the Key Message?

15.05.2012 Seite 3 Kai Wähner

Page 4: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Do not reinvent the „integration wheel“!

Key Messages

15.05.2012 Seite 4 Kai Wähner

Page 5: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Key Messages

15.05.2012 Seite 5 Kai Wähner

Page 6: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Often an ESB is the wrong Choice!

Key Messages

15.05.2012 Seite 6 Kai Wähner

Page 7: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 7 Kai Wähner

Page 8: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)   Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 8 Kai Wähner

Page 9: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

What is the Problem?

15.05.2012 Seite 9 Kai Wähner

•  Applications

•  Interfaces

•  Technologies

•  Products

Growth

Page 10: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Heterogeneity

15.05.2012 Seite 10 Kai Wähner

Page 11: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Spaghetti Solutions

15.05.2012 Seite 11 Kai Wähner

Everybody communicates to everybody

Page 12: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Solution: Systems Integration

15.05.2012 Seite 12 Kai Wähner

All Roads lead to Rome ...

Page 13: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 13 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Page 14: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 14 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Spring Integration vs. Mule ESB vs. Apache Camel

Page 15: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)   Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 15 Kai Wähner

Page 16: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Wishes

15.05.2012 Seite 16 Kai Wähner

•  Standardized Modeling •  Efficient Realization •  Automatic Testing

Page 17: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Enterprise Integration Patterns (EIP)

15.05.2012 Seite 17 Kai Wähner

Page 18: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Enterprise Integration Patterns (EIP)

15.05.2012 Seite 18 Kai Wähner

Page 19: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de 19

Enterprise Integration Patterns (EIP)

Page 20: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Relation between EIPs and Integrations Frameworks

15.05.2012 Seite 20 Kai Wähner

Integration Mule ESB vs. vs.

implement

Page 21: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Comparison Criteria

15.05.2012 Seite 21 Kai Wähner

•  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)

Page 22: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Similarities

15.05.2012 Seite 22 Kai Wähner

Page 23: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Connectivity

15.05.2012 Seite 23 Kai Wähner

Integration of different

Technologies

Page 24: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Domain Specific Languages (DSL)

15.05.2012 Seite 24 Kai Wähner

„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

Page 25: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Architecture

15.05.2012 Seite 25 Kai Wähner

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

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

Page 26: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Deployment

15.05.2012 Seite 26 Kai Wähner

Spring Container

Standalone

OSGi

Application Server

Web Container

Cloud

Page 27: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Enterprise-Ready

15.05.2012 Seite 27 Kai Wähner

•  Maturity •  Transactions •  Concurrency •  Error handling •  Monitoring •  Testability

Page 28: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Licensing

15.05.2012 Seite 28 Kai Wähner

Integration Mule ESB vs. vs.

Common Public Atttribution License

(CPAL)

Apache License Apache License

Page 29: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Commercial Support

15.05.2012 Seite 29 Kai Wähner

Integration Mule ESB vs. vs.

Page 30: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Tool Support

15.05.2012 Seite 30 Kai Wähner

Integration Graph for Spring Integration Mule Studio for Mule ESB

Fuse IDE for Apache Camel Talend Studio for Apache Camel

Page 31: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

• Concepts of each Framework • Code Example • Live Demo

Upcoming Procedure

15.05.2012 Seite 31 Kai Wähner

Page 32: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Comparison Criteria

15.05.2012 Seite 32 Kai Wähner

•  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)

Focus

Page 33: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)   Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 33 Kai Wähner

Page 34: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Connectivity

15.05.2012 Seite 34 Kai Wähner

How to create own custom adapter?

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

Page 35: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

DSLs

15.05.2012 Seite 35 Kai Wähner

XML (Not production-ready yet)

Page 36: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Code Example

15.05.2012 Seite 36 Kai Wähner

Page 37: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Code Example

15.05.2012 Seite 37 Kai Wähner

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

Page 38: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Spring Integration in Action

Live Demo

15.05.2012 Seite 38 Kai Wähner

Page 39: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Integration Graph

15.05.2012 Seite 39 Kai Wähner

Page 40: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Integration Graph

15.05.2012 Seite 40 Kai Wähner

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)

Page 41: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)   Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 41 Kai Wähner

Page 42: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Mule ESB

15.05.2012 Seite 42 Kai Wähner

Page 43: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Standalone / Web Application Deployment

15.05.2012 Seite 43 Kai Wähner

http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp

Page 44: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Connectivity

15.05.2012 Seite 44 Kai Wähner

Many more Connectors + easy to create own Connectors

AS400 Data Queue Abdera Amazon SQS jBPM CICS CTG CXF Email FTP Hibernate HTTP/S Legs4Mule IMAP/S

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

SFTP SMTP/S SOAP STDIO TCP UDP VM XMPP WebSphere MQ WSDL

Amazon S3 Authorize.net Apple Push Bit.ly CMIS

CyberSource Facebook Flickr HBase Magento

Atom Base64 encoded Byte arrays CSV Encrypted

GZIP Hex Strings HTML/ XHTML Java Objects

JSON EDI COBOL Copybook XML

Page 45: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Several Proprietary Connectors available, for instance:

Connectivity

15.05.2012 Seite 45 Kai Wähner

Page 46: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

OSGi Support?

15.05.2012 Seite 46 Kai Wähner

„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

Page 47: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

DSLs

15.05.2012 Seite 47 Kai Wähner

XML

Page 48: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Code Example

15.05.2012 Seite 48 Kai Wähner

Page 49: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Mule in Action

Live Demo

15.05.2012 Seite 49 Kai Wähner

Page 50: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Mule Studio

15.05.2012 Seite 50 Kai Wähner

Page 51: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Mule Studio

15.05.2012 Seite 51 Kai Wähner

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)

Page 52: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)   Apache Camel

6)  And the Winner is ...

Agenda

15.05.2012 Seite 52 Kai Wähner

Page 53: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

DSLs

15.05.2012 Seite 53 Kai Wähner

XML

Page 54: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Connectivity

15.05.2012 Seite 54 Kai Wähner

Many more Components + easy to create own Components

HTTP

FTP

File

XSLT

MQ

JDBC

Akka

TCP SMTP

RSS Quartz

jclouds

LDAP JMS

EJB

AMQP

Atom AWS

Bean-Validation

CXF

IRC

Jetty

JMX

Lucene

Netty RMI

SQL

Twitter

MongoDB

Page 55: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Code Example

15.05.2012 Seite 55 Kai Wähner

Page 56: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Code Example

15.05.2012 Seite 56 Kai Wähner

Page 57: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Apache Camel in Action

Live Demo

15.05.2012 Seite 57 Kai Wähner

Page 58: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Tool Support

15.05.2012 Seite 58 Kai Wähner

Fuse IDE vs.

Talend Open Studio for ESB

Page 59: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Fuse IDE

15.05.2012 Seite 59 Kai Wähner

Page 60: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Fuse IDE

15.05.2012 Seite 60 Kai Wähner

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)

Page 61: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Talend Open Studio for ESB

15.05.2012 Seite 61 Kai Wähner

Page 62: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Talend Open Studio for ESB

15.05.2012 Seite 62 Kai Wähner

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

Page 63: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)   And the Winner is ...

Agenda

15.05.2012 Seite 63 Kai Wähner

Page 64: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

And the Winner is ...

15.05.2012 Seite 64 Kai Wähner

Integration

Mule ESB

Page 65: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

When to use?

15.05.2012 Seite 65 Kai Wähner

Integration

Mule ESB

Page 66: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

When to use?

15.05.2012 Seite 66 Kai Wähner

Integration

Mule ESB

•  Spring Project •  „Typical“ JVM Technologies •  No additional Framework

Page 67: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

When to use?

15.05.2012 Seite 67 Kai Wähner

Integration

Mule ESB •  One of the available proprietary Connectors is required

Page 68: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

When to use?

15.05.2012 Seite 68 Kai Wähner

Integration

Mule ESB

•  In all other Cases

Page 69: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 69 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Page 70: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 70 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Low High

Page 71: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 71 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Spring Integration vs.

Mule ESB vs.

Apache Camel

Low High

Page 72: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 72 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Low High

Page 73: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 73 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

Integration Connectivity

Routing Transformation

Low High

Page 74: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 74 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Low High

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

Page 75: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Alternatives for Systems Integration

15.05.2012 Seite 75 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Apache ServiceMix, Mule ESB, WSO2 ESB

vs. IBM Message Broker, IBM ESB, Oracle ESB,

webMethods ESB

Low High

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

Page 76: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Did you get the Key Messages?

15.05.2012 Seite 76 Kai Wähner

Page 77: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Often an ESB is the wrong Choice!

Key Messages

15.05.2012 Seite 77 Kai Wähner

Page 78: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Did you get the Key Messages?

15.05.2012 Seite 78 Kai Wähner

Page 79: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Become a Part of the Open Source Community

15.05.2012 Seite 79 Kai Wähner

Page 80: CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?

www.mwea.de

Thank you for your Attention. Any Questions?

Kai Wähner

=

Kai Wähner

MaibornWolff et al: www.mwea.de

Email: [email protected] Twitter: @KaiWaehner Blog: www.kai-waehner.de/blog

Integration Mule ESB or or Smart EAI