CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
May. 15, 2012•0 likes
23 likes
Be the first to like this
Show More
•26,485 views
views
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download to read offline
Report
Technology
Business
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?
CamelOne 2012 - Spoilt for Choice: Which Integration Framework to use?
Spoilt for Choice – Which Integration Framework to choose?
Integration vs. Mule ESB vs.
www.mwea.de Kai Wähner
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
Consulting
Contact
Developing Email: kai.waehner@mwea.de
Speaking Blog: www.kai-waehner.de/blog
Coaching Twitter: @KaiWaehner
Writing Social Networks: Xing, LinkedIn
www.mwea.de Kai Wähner 15.05.2012 Seite 2
What is the Key Message?
www.mwea.de Kai Wähner 15.05.2012 Seite 3
Key Messages
Do not reinvent the „integration wheel“!
www.mwea.de Kai Wähner 15.05.2012 Seite 4
Key Messages
Do not reinvent the „integration wheel“!
There are some good alternatives for Integration!
www.mwea.de Kai Wähner 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 Wähner 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 Wähner 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 Wähner 15.05.2012 Seite 8
What is the Problem?
Growth
• Applications
• Interfaces
• Technologies
• Products
www.mwea.de Kai Wähner 15.05.2012 Seite 9
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
www.mwea.de Kai Wähner 15.05.2012 Seite 13
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Spring Integration vs. Mule ESB vs. Apache Camel
www.mwea.de Kai Wähner 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 Wähner 15.05.2012 Seite 15
Wishes
• Standardized Modeling
• Efficient Realization
• Automatic Testing
www.mwea.de Kai Wähner 15.05.2012 Seite 16
Connectivity
Integration
of different
Technologies
www.mwea.de Kai Wähner 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 Wähner 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 Wähner 15.05.2012 Seite 25
Deployment
Standalone Application Server
Web Container
Spring Container
OSGi
Cloud
www.mwea.de Kai Wähner 15.05.2012 Seite 26
Enterprise-Ready
• Maturity
• Transactions
• Concurrency
• Error handling
• Monitoring
• Testability
www.mwea.de Kai Wähner 15.05.2012 Seite 27
Licensing
Integration vs. Mule ESB vs.
Apache License Common Public Apache License
Atttribution License
(CPAL)
www.mwea.de Kai Wähner 15.05.2012 Seite 28
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 Wähner 15.05.2012 Seite 30
Upcoming Procedure
• Concepts of each Framework
• Code Example
• Live Demo
www.mwea.de Kai Wähner 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
Focus • Popularity
• Tool support
• Connectivity
• Domain specific language (DSL)
www.mwea.de Kai Wähner 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 Wähner 15.05.2012 Seite 33
Connectivity
AMQP
Feed
File
FTP(S)
GemFire
HTTP
TCP How to create own custom adapter?
UDP
JDBC
JMS
Mail
MongoDB
Redis
RMI
SFTP
Stream
Twitter
Web Service
XML
XMPP
www.mwea.de Kai Wähner 15.05.2012 Seite 34
DSLs
XML
(Not production-ready yet)
www.mwea.de Kai Wähner 15.05.2012 Seite 35
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 Wähner 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 Wähner 15.05.2012 Seite 41
Standalone / Web Application Deployment
http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp
www.mwea.de Kai Wähner 15.05.2012 Seite 43
Connectivity
AS400 Data Queue Amazon S3
Abdera Authorize.net
Amazon SQS Atom Apple Push JCR
jBPM Base64 encoded Bit.ly JDBC
CICS CTG Byte arrays CMIS Jersey
CXF CSV Jetty
Email Encrypted JMS
FTP LDAP
Hibernate CyberSource Multicast
HTTP/S Facebook POP3/S
Legs4Mule GZIP Flickr Quartz
IMAP/S Hex Strings HBase Restlet
HTML/ XHTML Magento RMI
Java Objects SAP
Servlet
SFTP
SMTP/S
SOAP
JSON
STDIO
EDI
TCP
COBOL Copybook
UDP
XML
VM
XMPP Many more Connectors +
WebSphere MQ
WSDL easy to create own Connectors
www.mwea.de Kai Wähner 15.05.2012 Seite 44
Connectivity
Several Proprietary Connectors available, for instance:
www.mwea.de Kai Wähner 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 Wähner 15.05.2012 Seite 46
DSLs
XML
www.mwea.de Kai Wähner 15.05.2012 Seite 47
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 Wähner 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 Wähner 15.05.2012 Seite 52
DSLs
XML
www.mwea.de Kai Wähner 15.05.2012 Seite 53
Connectivity
LDAP XSLT
TCP
SQL SMTP JMS
Netty Jetty
RMI
FTP Lucene JDBC EJB
Twitter
Bean-Validation MQ IRC
JMX Quartz
CXF RSS AMQP
jclouds
Atom
AWS
Akka
HTTP
File
Many more Components +
MongoDB easy to create own Components
www.mwea.de Kai Wähner 15.05.2012 Seite 54
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 Wähner 15.05.2012 Seite 60
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 Wähner 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 Wähner 15.05.2012 Seite 63
And the Winner is ...
Integration
Mule ESB
www.mwea.de Kai Wähner 15.05.2012 Seite 64
When to use?
Integration
Mule ESB
www.mwea.de Kai Wähner 15.05.2012 Seite 65
When to use?
• Spring Project
• „Typical“ JVM Technologies
• No additional Framework
Integration
Mule ESB
www.mwea.de Kai Wähner 15.05.2012 Seite 66
When to use?
Integration
• One of the available
proprietary Connectors
is required
Mule ESB
www.mwea.de Kai Wähner 15.05.2012 Seite 67
When to use?
Integration
Mule ESB
• In all other Cases
www.mwea.de Kai Wähner 15.05.2012 Seite 68
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
www.mwea.de Kai Wähner 15.05.2012 Seite 69
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Integration
Connectivity
Routing
Transformation
www.mwea.de Kai Wähner 15.05.2012 Seite 70
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Spring Integration
Integration vs.
Connectivity Mule ESB
Routing vs.
Transformation Apache Camel
www.mwea.de Kai Wähner 15.05.2012 Seite 71
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
www.mwea.de Kai Wähner 15.05.2012 Seite 72
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Middleware Product
Integration Integration
Connectivity Business Process Management
Routing Business Activity Monitoring
Transformation Registry / Repository
Rules Engine
www.mwea.de Kai Wähner 15.05.2012 Seite 73
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Middleware Product
Integration Integration
Connectivity Business Process Management
Routing Business Activity Monitoring
Transformation Registry / Repository
Rules Engine
www.mwea.de Kai Wähner 15.05.2012 Seite 74
Alternatives for Systems Integration
Enterprise Service Bus
Integration (ESB)
No Tool
Framework
Complexity
of Integration
Low High
Apache ServiceMix,
Mule ESB, WSO2 ESB Middleware Product
vs. Integration
IBM Message Broker, Business Process Management
IBM ESB, Oracle ESB, Business Activity Monitoring
webMethods ESB Registry / Repository
Rules Engine
www.mwea.de Kai Wähner 15.05.2012 Seite 75
Did you get the Key Messages?
www.mwea.de Kai Wähner 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 Wähner 15.05.2012 Seite 77
Did you get the Key Messages?
www.mwea.de Kai Wähner 15.05.2012 Seite 78
Become a Part of the Open Source Community
www.mwea.de Kai Wähner 15.05.2012 Seite 79
Thank you for your Attention. Any Questions?
Integration
or Mule ESB or = Smart EAI
Kai Wähner
MaibornWolff et al: www.mwea.de
Email: kai.waehner@mwea.de
Twitter: @KaiWaehner
Blog: www.kai-waehner.de/blog
www.mwea.de Kai Wähner