Date post: | 25-May-2015 |
Category: |
Technology |
Upload: | kai-waehner |
View: | 15,095 times |
Download: | 5 times |
www.mwea.de
Spoilt for Choice – Which Integration Framework to choose?
Kai Wähner
Integration Mule ESB vs. vs.
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
www.mwea.de
What is the Key Message?
15.05.2012 Seite 3 Kai Wähner
www.mwea.de
Do not reinvent the „integration wheel“!
Key Messages
15.05.2012 Seite 4 Kai Wähner
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
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
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
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
www.mwea.de
What is the Problem?
15.05.2012 Seite 9 Kai Wähner
• Applications
• Interfaces
• Technologies
• Products
Growth
www.mwea.de
Heterogeneity
15.05.2012 Seite 10 Kai Wähner
www.mwea.de
Spaghetti Solutions
15.05.2012 Seite 11 Kai Wähner
Everybody communicates to everybody
www.mwea.de
Solution: Systems Integration
15.05.2012 Seite 12 Kai Wähner
All Roads lead to Rome ...
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
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
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
www.mwea.de
Wishes
15.05.2012 Seite 16 Kai Wähner
• Standardized Modeling • Efficient Realization • Automatic Testing
www.mwea.de
Enterprise Integration Patterns (EIP)
15.05.2012 Seite 17 Kai Wähner
www.mwea.de
Enterprise Integration Patterns (EIP)
15.05.2012 Seite 18 Kai Wähner
www.mwea.de 19
Enterprise Integration Patterns (EIP)
www.mwea.de
Relation between EIPs and Integrations Frameworks
15.05.2012 Seite 20 Kai Wähner
Integration Mule ESB vs. vs.
implement
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)
www.mwea.de
Similarities
15.05.2012 Seite 22 Kai Wähner
www.mwea.de
Connectivity
15.05.2012 Seite 23 Kai Wähner
Integration of different
Technologies
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
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)
www.mwea.de
Deployment
15.05.2012 Seite 26 Kai Wähner
Spring Container
Standalone
OSGi
Application Server
Web Container
Cloud
www.mwea.de
Enterprise-Ready
15.05.2012 Seite 27 Kai Wähner
• Maturity • Transactions • Concurrency • Error handling • Monitoring • Testability
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
www.mwea.de
Commercial Support
15.05.2012 Seite 29 Kai Wähner
Integration Mule ESB vs. vs.
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
www.mwea.de
• Concepts of each Framework • Code Example • Live Demo
Upcoming Procedure
15.05.2012 Seite 31 Kai Wähner
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
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
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
www.mwea.de
DSLs
15.05.2012 Seite 35 Kai Wähner
XML (Not production-ready yet)
www.mwea.de
Code Example
15.05.2012 Seite 36 Kai Wähner
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/
www.mwea.de
Spring Integration in Action
Live Demo
15.05.2012 Seite 38 Kai Wähner
www.mwea.de
Integration Graph
15.05.2012 Seite 39 Kai Wähner
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)
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
www.mwea.de
Mule ESB
15.05.2012 Seite 42 Kai Wähner
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
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
www.mwea.de
Several Proprietary Connectors available, for instance:
Connectivity
15.05.2012 Seite 45 Kai Wähner
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
www.mwea.de
DSLs
15.05.2012 Seite 47 Kai Wähner
XML
www.mwea.de
Code Example
15.05.2012 Seite 48 Kai Wähner
www.mwea.de
Mule in Action
Live Demo
15.05.2012 Seite 49 Kai Wähner
www.mwea.de
Mule Studio
15.05.2012 Seite 50 Kai Wähner
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)
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
www.mwea.de
DSLs
15.05.2012 Seite 53 Kai Wähner
XML
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
MongoDB
www.mwea.de
Code Example
15.05.2012 Seite 55 Kai Wähner
www.mwea.de
Code Example
15.05.2012 Seite 56 Kai Wähner
www.mwea.de
Apache Camel in Action
Live Demo
15.05.2012 Seite 57 Kai Wähner
www.mwea.de
Tool Support
15.05.2012 Seite 58 Kai Wähner
Fuse IDE vs.
Talend Open Studio for ESB
www.mwea.de
Fuse IDE
15.05.2012 Seite 59 Kai Wähner
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)
www.mwea.de
Talend Open Studio for ESB
15.05.2012 Seite 61 Kai Wähner
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
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
www.mwea.de
And the Winner is ...
15.05.2012 Seite 64 Kai Wähner
Integration
Mule ESB
www.mwea.de
When to use?
15.05.2012 Seite 65 Kai Wähner
Integration
Mule ESB
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
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
www.mwea.de
When to use?
15.05.2012 Seite 68 Kai Wähner
Integration
Mule ESB
• In all other Cases
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
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
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
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
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
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
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
www.mwea.de
Did you get the Key Messages?
15.05.2012 Seite 76 Kai Wähner
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
www.mwea.de
Did you get the Key Messages?
15.05.2012 Seite 78 Kai Wähner
www.mwea.de
Become a Part of the Open Source Community
15.05.2012 Seite 79 Kai Wähner
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