Which Integration Framework To Choose?
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
www.mwea.de
Kai Whner
15.05.2012
Seite 3
Key Messages
www.mwea.de
Kai Whner
15.05.2012
Seite 4
Key Messages
www.mwea.de
Kai Whner
15.05.2012
Seite 5
Key Messages
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
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
Kai Whner
15.05.2012
Seite 11
All Roads
lead to Rome ...
www.mwea.de
Kai Whner
15.05.2012
Seite 12
Integration
Framework
No Tool
Low
www.mwea.de
High
Kai Whner
15.05.2012
Complexity
of Integration
Seite 13
Integration
Framework
No Tool
Low
High
Complexity
of Integration
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
www.mwea.de
Kai Whner
15.05.2012
Seite 17
www.mwea.de
Kai Whner
15.05.2012
Seite 18
www.mwea.de
19
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
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
www.mwea.de
Kai Whner
15.05.2012
Seite 30
Upcoming Procedure
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
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
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
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
Seite 44
Connectivity
www.mwea.de
Kai Whner
15.05.2012
Seite 45
OSGi Support?
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
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
Kai Whner
15.05.2012
Seite 57
Tool Support
Fuse IDE
vs.
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
www.mwea.de
Kai Whner
15.05.2012
Seite 61
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
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
Integration
Framework
No Tool
Low
www.mwea.de
High
Kai Whner
15.05.2012
Complexity
of Integration
Seite 69
Integration
Framework
No Tool
Low
High
Complexity
of Integration
Integration
Connectivity
Routing
Transformation
www.mwea.de
Kai Whner
15.05.2012
Seite 70
Integration
Framework
No Tool
Low
High
Integration
Connectivity
Routing
Transformation
www.mwea.de
Kai Whner
Complexity
of Integration
Spring Integration
vs.
Mule ESB
vs.
Apache Camel
15.05.2012
Seite 71
Integration
Framework
No Tool
Low
www.mwea.de
High
Kai Whner
15.05.2012
Complexity
of Integration
Seite 72
Integration
Framework
No Tool
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
Integration
Framework
No Tool
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
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
Kai Whner
Complexity
of Integration
Middleware Product
Integration
Business Process Management
Business Activity Monitoring
Registry / Repository
Rules Engine
15.05.2012
Seite 75
www.mwea.de
Kai Whner
15.05.2012
Seite 76
Key Messages
Kai Whner
15.05.2012
Seite 77
www.mwea.de
Kai Whner
15.05.2012
Seite 78
www.mwea.de
Kai Whner
15.05.2012
Seite 79
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