More Related Content Similar to How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 2013 (20) More from Kai Wähner (20) How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 20131. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Spoilt for Choice –
Which Integration Framework to choose?
Kai Wähner
kwaehner@talend.com
@KaiWaehner
www.kai-waehner.de
9/25/2013
2. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Consulting
Developing
Coaching
Speaking
Writing
Main Tasks
Requirements Engineering
Enterprise Architecture Management
Business Process Management
Architecture and Development of Applications
Service-oriented Architecture
Integration of Legacy Applications
Cloud Computing
Big Data
Contact
Email: kwaehner@talend.com
Blog: www.kai-waehner.de/blog
Twitter: @KaiWaehner
Social Networks: Xing, LinkedIn
Kai Wähner
3. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Do not reinvent the „integration wheel“!
There are some good frameworks for integration!
Often, an ESB is the better choice!
Key Messages
4. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
5. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
6. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Applications
• Interfaces
• Technologies
• Products
Growing IT infrastructure everywhere!
7. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Host Client / Server SOA Cloud Big Data ...
Heterogeneity
8. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
„point-to-point hell“
Spaghetti solutions
9. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
All roads
lead to Rome ...
The solution: application integration
10. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(
S3Sample.class.getResourceAsStream("AwsCredentials.properties")));
String bucketName = "my-first-s3-bucket-" + UUID.randomUUID();
String key = "MyObjectKey";
try {
s3.createBucket(bucketName);
s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile()));
S3Object object = s3.getObject(new GetObjectRequest(bucketName, key));
ObjectListing objectListing = s3.listObjects(new ListObjectsRequest()
.withBucketName(bucketName)
.withPrefix("My"));
s3.deleteObject(bucketName, key);
s3.deleteBucket(bucketName);
} catch (AmazonServiceException ase) {
// error handling...
} catch (AmazonClientException ace) {
// error handling...
}
Writing glue code?
11. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Standardized Modeling
• Efficient Realization
• Automatic Testing
Wishes for integrators
12. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Enteprise Integration Patterns
13. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Enterprise Integration Patterns
14. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Enterprise Integration Patterns
15. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
Alternatives for application integration
16. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
17. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
Alternatives for application integration
Spring Integration vs. Mule vs. Apache Camel
18. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Ease of use
• 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)
Comparison Criteria
19. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Similarities
20. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
of different
Technologies
Connectivity
21. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration vs. vs.
implement
Integration Frameworks
22. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Ease of Use
• One-click-installer
• One product
• One tool
• One runtime
Makes it easy for development and operations
23. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Internal 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
Domain specific language
24. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
http://java.dzone.com/articles/apache-camel-integration
(Exemplarily: Apache Camel => Concepts are all the same, only different names)
Architecture
25. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Standalone
OSGi
Application Server
Web Container
Cloud
Spring Container
Deployment
26. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Maturity
• Transactions
• Concurrency
• Error handling
• Monitoring
• Testability
• Tooling
• Commercial Support
Enterprise readiness
27. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration vs. vs.
Common Public
Attribution License (CPAL)
attention:
more restrictive!
Apache License Apache License
Open Source Licensing
28. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
vs. vs.
Commercial support
Integration
29. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
STS Integration Graph (for Spring Integration) Mule Studio (for Mule ESB)
JBoss Fuse / Switchyard (for Apache Camel) Talend ESB (for Apache Camel)
Tooling
30. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Differences
31. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Ease of use
• 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
Comparison Criteria
32. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
33. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
AMQP
Feed
File
FTP(S)
GemFire
HTTP
TCP
UDP
JDBC
JMS
Mail
MongoDB
Redis
RMI
SFTP
Stream
Twitter
Web Service
XML
XMPP
„Some more“
„most important ones“ available!
easy to create own connectors using a template!
Connectivity
34. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
XML
(Not production-ready yet)
(Not production-ready yet)
Domain specific language
35. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Code example (XML DSL)
36. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/
http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/
Code example (Scala DSL)
37. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Spring Integration in Action
Live demo
38. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: STS Integration Graph
39. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Pro
• Visual designer for Spring Integration flows
• Open source (part of Spring IDE at github)
• Perfect for usage in Spring projects (which use Spring Tool Suite)
• Simple Eclipse plugin – „just Spring Integration“
• Vice versa editing (code generation vs. coding by hand) ??? Or Contra?
Contra
• Simple Eclipse plugin – there are no „ESB add-ons“
• Non-intuitive usability
• Unclear diagrams
• Immature (e.g. missing documentation, problems with code examples)
• No graphical mapper
• No unified platform (data quality, bpm, etc.)
Tooling: STS Integration Graph
40. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
41. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Mule ESB
42. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp
Deployment as web app or standalone
43. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Many further connectors!
Easy to create own connectors
via Maven archetypes!
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
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
Connectivity
44. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Some B2B connectors available, especially for:
Connectivity
45. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by 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
Missing OSGi support
46. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
XML
Domain specific language
47. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Code example (XML DSL – no alternative)
48. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Mule in Action
Live demo
49. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: Mule Studio
50. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: Mule Studio
51. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Pro
• Visual Designer for Mule Flows
• Visual „live monitoring“
• Intuitive GUI
• Lightweight Tooling
• Graphical mapper (OEM of CloverETL)
• Vice versa editing (code generation vs. coding by hand) ??? Or Contra?
Contra
• Proprietary
• Subscription required for enterprise features (such as monitoring)
• Graphical mapper not really powerful
• No unified platform (integration, bpm, etc.)
Reminder: „Open source“ does NOT mean „for free“!
Tooling: Mule Studio
52. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
53. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Many further components!
Easy to create own components
via Maven archetypes
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
Connectivity (by far most connectors!)
54. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Many B2B connectors available (Talend ESB only), for example:
Connectivity
55. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
XML
(Not production-ready yet)
Domain specific language
56. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Code example (XML DSL)
57. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Code example (Java DSL)
58. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Mailing Lists
Forums
Blogs
Articles
Conference talks
ESBs
Professionals
Jobs
Knowledge
Community Camel rocks!
59. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Apache Camel in Action
Live demo
60. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Spoilt for Choice:
JBoss ESB, Switchyard, JBoss Fuse
Roadmap: http://www.redhat.com/promo/jboss_integration_week/
Tooling: JBoss
61. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: JBoss Fuse
62. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Pro
• Visual designer for Camel routes
• Visual „live monitoring“ (for debugging, browsing, tracing)
• Intuitive GUI
• Lightweight Tooling
• Now open sourced (after acquisition of Red Hat)
• Vice versa editing (code generation vs. coding by-hand) ??? Or Contra?
Contra
• Unsure future? What happens after Switchyard is production-ready?
• Subscription required for enterprise features (such as monitoring)
• No unified platform (integration, bpm, etc.)
• No graphical mapper
Reminder: „Open source“ does NOT mean „for free“!
Tooling: JBoss Fuse
63. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: JBoss Switchyard
Facts
• Will replace JBoss ESB (say it‘s developers)
• Wrapper around Camel + SCA Support
• Not production-ready yet (tooling, support)
64. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: Talend ESB
65. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Tooling: Talend ESB
66. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Pro
• Visual Designer for Camel routes
• Visual „live monitoring“ (for debugging, browsing, tracing)
• Open source
• GUI palette for Camel components (instead of writing endpoint URIs)
• Zero Coding (you can also write custom code, of course)
• Unified platform (for ESB, DI, BPM, Big Data, Data Quality, MDM)
• Graphical mapping (very powerful including XML, EDI, Cobol, Java, etc.)
Contra
• No vice versa code editing (only code generation) ??? Really a Contra?
• Full ESB, not just Camel tooling (may be bad in a few use cases), therefore not as lightweight
• Subscription required for enterprise features (e.g. monitoring or combination with DQ, BPM, etc.)
Reminder: „Open source“ does NOT mean „for free“!
Tooling: Talend ESB
67. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• Application Integration
• Integration Frameworks
• Spring Integration
• Mule
• Apache Camel
• And the Winner is ...
Agenda
68. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
... all three integration frameworks
69. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
When to use which integration framework?
70. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
• Spring Projects
• „Typical“ JVM Technologies
(File, JMS, REST, SOAP, ...)
• No additional Framework wanted
When to use which integration framework?
71. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
• One of its B2B connectors is
required (and it is not available
in Camel / Talend)
• If you definitely just need an ESB
in your project, no ETL, DQ,
BPM, etc.
When to use which integration framework?
72. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Integration
• Without question, Camel is the best
of these alternatives!
• In all other cases
(largest community, great DSLs,
most connectors, different vendors)
When to use which integration framework?
73. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Hmm...
Actually, when should
I use an
integration framework?
... after you have learned the differences
74. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
Alternatives for application integration
75. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
INTEGRATION
Connectivity
Routing
Transformation
When to use an integration framework?
76. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Connectivity
Routing
Transformation
INTEGRATION
Tooling
Monitoring
Support
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
+
When to use an Enterprise Service Bus?
77. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Connectivity
Routing
Transformation
Complexity
of Integration
Enterprise
Service Bus
Integration Suite
Low High
Integration
Framework
INTEGRATION
Tooling
Monitoring
Support
+
BUSINESS PROCESS MGT.
BIG DATA / MDM
REGISTRY / REPOSITORY
RULES ENGINE
„YOU NAME IT“
+
When to use an integration suite?
78. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Data
Quality
Data
Integration
MDM ESB
Big
Data
Big Data
Open source license
Free of charge
Optional support
Based on open source
projects such as
Eclipse or Apache
Camel, CXF, Hadoop
Commercial license
Subscription model
Support included
Data
Quality
Data
Integration MDM ESB BPM
Example: Talend Unified Platform
79. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Open Source
Proprietary
ESB vendor == integration suite vendor?
80. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
ESB BPM Data Quality
ESB vendor == integration suite vendor?
81. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
• A lot of glue code
• Testing
• Bugfixing
• No support
Some other people already had
the problems you would have!
Custom combination of ESB, BPM, etc.?
82. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Did you get the key messages?
83. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Do not reinvent the „integration wheel“!
There are some good frameworks for integration!
Often, an ESB is the better choice!
Key messages
84. © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner
Did you get the key messages?
85. Thank you for your attention. Questions?
KAI WÄHNER
kwaehner@talend.com
www.kai-waehner.de
LinkedIn / Xing
@KaiWaehner