0% found this document useful (0 votes)
59 views80 pages

Which Integration Framework To Choose?

Mule vs Camel vs Spring Integration

Uploaded by

Nwwar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views80 pages

Which Integration Framework To Choose?

Mule vs Camel vs Spring Integration

Uploaded by

Nwwar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

Spoilt for Choice Which Integration Framework to choose?

Integration

www.mwea.de

Kai Whner

vs.

Mule ESB

vs.

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: [email protected]
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

Integration
Framework

No Tool

Low

www.mwea.de

Enterprise Service Bus


(ESB)

High

Kai Whner

15.05.2012

Complexity
of Integration

Seite 13

Alternatives for Systems Integration

Integration
Framework

No Tool

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

vs.

implement

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

Web Container
Spring Container
OSGi
Cloud

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

Apache License

www.mwea.de

Kai Whner

vs.

Mule ESB

Common Public
Atttribution License
(CPAL)

vs.

Apache License

15.05.2012

Seite 28

Commercial Support

Integration

www.mwea.de

Kai Whner

vs.

Mule ESB

vs.

15.05.2012

Seite 29

Tool Support
Integration Graph for Spring Integration

Fuse IDE for Apache Camel

www.mwea.de

Kai Whner

Mule Studio for Mule ESB

Talend Studio for Apache Camel

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

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

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

www.mwea.de

Kai Whner

How to create own custom adapter?

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

GZIP
Hex Strings
HTML/ XHTML
Java Objects

Amazon S3
Authorize.net
Apple Push
Bit.ly
CMIS

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

Netty

RMI
FTP

Twitter

CXF

Lucene

HTTP

MongoDB
Kai Whner

Jetty

JDBC
MQ

AMQP

RSS
Atom

AWS

www.mwea.de

SMTP

Bean-Validation

JMX

File

XSLT

LDAP

IRC

JMS
EJB

Quartz

jclouds

Akka
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

www.mwea.de

Kai Whner

Mule ESB

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

Integration
Framework

No Tool

Low

www.mwea.de

Enterprise Service Bus


(ESB)

High

Kai Whner

15.05.2012

Complexity
of Integration

Seite 69

Alternatives for Systems Integration

Integration
Framework

No Tool

Low

Enterprise Service Bus


(ESB)

High

Complexity
of Integration

Integration
Connectivity
Routing
Transformation
www.mwea.de

Kai Whner

15.05.2012

Seite 70

Alternatives for Systems Integration

Integration
Framework

No Tool

Low

High

Integration
Connectivity
Routing
Transformation
www.mwea.de

Enterprise Service Bus


(ESB)

Kai Whner

Complexity
of Integration

Spring Integration
vs.
Mule ESB
vs.
Apache Camel
15.05.2012

Seite 71

Alternatives for Systems Integration

Integration
Framework

No Tool

Low

www.mwea.de

Enterprise Service Bus


(ESB)

High

Kai Whner

15.05.2012

Complexity
of Integration

Seite 72

Alternatives for Systems Integration

Integration
Framework

No Tool

Low

Enterprise Service Bus


(ESB)

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

Integration
Framework

No Tool

Low

Enterprise Service Bus


(ESB)

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

Integration
Framework

No Tool

Low

High

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

Enterprise Service Bus


(ESB)

Kai Whner

Complexity
of Integration

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

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

www.mwea.de

Kai Whner

Smart EAI

You might also like