More Related Content Similar to Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterprise Service Bus (ESB) (20) More from Kai Wähner (20) Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterprise Service Bus (ESB)1. Spoilt for Choice –
Which Integration Framework to choose?
Kai Wähner, Principal Consultant
2. Kai Wähner
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
Consulting
Contact
Developing
Coaching Email: kwaehner@talend.com
Speaking Blog: www.kai-waehner.de/blog
Writing Twitter: @KaiWaehner
Social Networks: Xing, LinkedIn
© Talend 2011 2
3. Key messages
Do not reinvent the „integration wheel“!
There are some good frameworks for
integration!
Often, an ESB is the better choice!
© Talend 2011 3
10. Writing glue code? (example: AWS S3 with Java)
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...
}
© Talend 2011 10
11. Wishes for integrators
• Standardized Modeling
• Efficient Realization
• Automatic Testing
© Talend 2011 11
12. Alternatives for application integration
Enterprise Service Bus
Integration (ESB)
API
Framework
Complexity
of Integration
Low High
Spring Integration vs. Mule vs. Apache Camel
© Talend 2011 12
17. Relation between EIPs and Integrations Frameworks
vs. Mule ESB vs.
Integration
implement
© Talend 2011 17
18. 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)
© Talend 2011 18
21. Domain specific language (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
Internal DSL
© Talend 2011 21
22. Architecture
http://java.dzone.com/articles/apache-camel-integration
(Exemplarily: Apache Camel => Concepts are all the same, only different names)
© Talend 2011 22
24. Enterprise readiness
• Maturity
• Transactions
• Concurrency
• Error handling
• Monitoring
• Testability
© Talend 2011 24
25. Licensing
vs. Mule ESB vs.
Integration
Apache License Common Public Apache License
Attribution License
(CPAL)
attention:
more restrictive!
© Talend 2011 25
27. Tooling
STS Integration Graph (for Spring Integration) Mule Studio (for Mule ESB)
Fuse IDE (for Apache Camel) Talend ESB (for Apache Camel)
© Talend 2011 27
28. 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)
© Talend 2011 28
30. Connectivity
AMQP
Feed
File
FTP(S)
GemFire
HTTP
TCP
UDP
JDBC
JMS
Mail
MongoDB
Redis
RMI
SFTP
Stream
Twitter
Web Service
XML
XMPP
„Some more“ ... easy to create own connectors using a template!
© Talend 2011 30
33. Code example (Scala DSL)
http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/
http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/
© Talend 2011 33
34. Live demo
Spring Integration in
Action
© Talend 2011 34
36. Tooling: STS 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)
• Perfect for usage in Spring projects (which use Spring Tool Suite)
• Simple Eclipse plugin – „just Spring Integration“
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 unified platform (integration, bpm, etc.)
© Talend 2011 36
39. Deployment as web application or standalone
http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp
© Talend 2011 39
40. Connectivity
AS400 Data Queue Amazon S3
Abdera Authorize.net
Amazon SQS Atom Apple Push
jBPM Base64 encoded Bit.ly
CICS CTG Byte arrays CMIS
CXF CSV
Email Encrypted
FTP
Hibernate CyberSource
HTTP/S Facebook
Legs4Mule GZIP Flickr
IMAP/S Hex Strings HBase
HTML/ XHTML Magento
Java Objects
Servlet
SFTP
SMTP/S
SOAP
JSON
STDIO
EDI
TCP
COBOL Copybook
UDP
XML
VM Many further connectors +
XMPP easy to create own connectors
WebSphere MQ
WSDL
via Maven archetypes
© Talend 2011 40
41. Connectivity
Several B2B connectors available, especially for:
© Talend 2011 41
42. Missing 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
© Talend 2011 42
45. Live demo
Mule in Action
© Talend 2011 45
47. Tooling: Mule Studio
Pro
• Visual Designer for Mule Flows
• Visual „live monitoring“
• Vice versa editing (code generation vs. coding by hand)
• Intuitive GUI
Contra
• Proprietary
• Subscription required for enterprise features (such as monitoring)
• No unified platform (integration, bpm, etc.)
Reminder: „Open source“ does NOT mean „for free“!
© Talend 2011 47
49. Community Camel rocks!
Mailing Lists?
Forums?
Blogs?
Articles?
Conference talks?
ESBs?
Professionals?
Jobs?
Knowlegde?
...
© Talend 2011 49
50. 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 further components +
easy to create own components
MongoDB via Maven archetypes
© Talend 2011 50
51. Connectivity
Many B2B connectors available (Talend ESB only), for
example:
© Talend 2011 51
55. Live demo
Apache Camel in Action
© Talend 2011 55
57. Tooling: RedHat / JBoss + FuseSource
JBoss ESB, Switchyard, Fuse ESB
Roadmap: http://www.redhat.com/promo/jboss_integration_week/
© Talend 2011 57
58. Tooling: Fuse IDE
Pro
• Visual designer for Camel routes
• Visual „live monitoring“ (for debugging, browsing, tracing)
• Vice versa editing (code generation vs. coding by-hand)
• Intuitive GUI
• Now open sourced (after acquisition of Red Hat)
Contra
• Unsure future ?
• Subscription required for enterprise features (such as monitoring)
• No unified platform (integration, bpm, etc.)
Reminder: „Open source“ does NOT mean „for free“
© Talend 2011 58
60. Tooling: Talend ESB
Pro
• Visual Designer for Camel routes
• Visual „live monitoring“ (for debugging, browsing, tracing)
• Open source
• Zero Coding (you can also write custom code, of course)
• Unified platform (for ESB, DI, BPM, Big Data, Data Quality, MDM)
• GUI palette for Camel components (instead of writing endpoint URIs)
Contra
• No vice versa code editing (only code generation)
• Full ESB, not just Camel tooling (may be bad in a few use cases)
• Subscription required for enterprise features (such as monitoring)
Reminder: „Open source“ does NOT mean „for free“!
© Talend 2011 60
62. … all three integration frameworks!
Integration
Mule ESB
© Talend 2011 62
63. When to use which one?
Integration
Mule ESB
© Talend 2011 63
64. When to use which one?
• Spring Project
• „Typical“ JVM Technologies
(File, JMS, REST, SOAP, ...)
• No additional Framework wanted
Integration
Mule ESB
© Talend 2011 64
65. When to use which one?
Integration
• One of its
B2B connectors is required
(and it is not available in
Mule ESB
Camel)
© Talend 2011 65
66. When to use which one?
Integration
Mule ESB
• In all other cases
(largest community, best
concepts,
most connectors)
© Talend 2011 66
67. … after you learned the differences
Hmm...
Actually, when should
I use an
integration framework?
© Talend 2011 67
68. When to use an integration framework?
Enterprise Integration Suite
Integration Service Bus
Framework
Complexity
of Integration
Low High
INTEGRATION
Connectivity
Routing
Transformation
© Talend 2011 68
69. When to use an Enterprise Service Bus (ESB)?
Enterprise Integration Suite
Integration Service Bus
Framework
Complexity
of Integration
Low High
INTEGRATION
Connectivity Tooling
Routing
Transformation
© Talend 2011
+ Monitoring
Support 69
70. When to use an integration suite?
Enterprise Integration Suite
Integration Service Bus
Framework
Complexity
of Integration
Low High
BUSINESS PROCESS MGT.
INTEGRATION BIG DATA / MDM
Connectivity Tooling
+ +
REGISTRY / REPOSITORY
Routing Monitoring RULES ENGINE
Transformation
© Talend 2011
Support „YOU NAME IT“ 70
71. Talend Unified Platform
Data Data
Big Data Quality Integration MDM ESB BPM
Commercial license
Subscription model
Support included
Open source license
Free of charge
Optional support
Big Data Data
Data Quality Integration
MDM ESB
Based on open source
projects such as
Eclipse or Apache
Camel, CXF, Hadoop
© Talend 2011 71
72. ESB Vendor == Integration Suite Vendor ???
Proprietary
Open Source
© Talend 2011 72
73. ESB Vendor == Integration Suite Vendor ???
ESB BPM Big Data
© Talend 2011 73
74. Custom combination of ESB, BPM, Big Data, etc.?
• A lot of glue code
• Testing
• Bugfixing
• No support
Some other people already had
the problems you would have!
© Talend 2011 74
76. Key messages
Do not reinvent the „integration wheel“!
There are some good frameworks for
integration!
Often, an ESB is the better choice!
© Talend 2011 76
78. Thank you for your attention. Questions?
KAI WÄHNER
kwaehner@talend.com
www.kai-waehner.de
LinkedIn / Xing
@KaiWaehner