Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterprise Service Bus (ESB)

  • 14,364 views
Uploaded on

I had a talk at Java User Group Frankfurt (JUGF): "Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterprise Service Bus (ESB)". The room was fully packed, interest in …

I had a talk at Java User Group Frankfurt (JUGF): "Showdown: Integration Framework (Spring Integration, Apache Camel) vs. Enterprise Service Bus (ESB)". The room was fully packed, interest in integration frameworks, ESBs, and corresponding tooling is increasing every year!

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • منتديات توب عرب للمبدعين احساس منتديات عامة
    افضل المنتديات العربية
    [url=http://www.top3rab.mrsaal.com]منتديات[/url]
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
14,364
On Slideshare
0
From Embeds
0
Number of Embeds
9

Actions

Shares
Downloads
0
Comments
1
Likes
29

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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 messagesDo not reinvent the „integration wheel“!There are some good frameworks forintegration!Often, an ESB is the better choice!© Talend 2011 3
  • 4. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 4
  • 5. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 5
  • 6. Growing IT infrastructure everywhere! • Applications • Interfaces • Technologies • Products© Talend 2011 6
  • 7. HeterogeneityHost  Client / Server  SOA  Cloud  Big Data © Talend 2011 7
  • 8. Spaghetti solutions „point-to-point hell“© Talend 2011 8
  • 9. The solution: application integration All Roads lead to Rome ...© Talend 2011 9
  • 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 HighSpring Integration vs. Mule vs. Apache Camel© Talend 2011 12
  • 13. Enterprise Integration Patterns (EIP)© Talend 2011 13
  • 14. Enterprise Integration Patterns (EIP)© Talend 2011 14
  • 15. Enterprise Integration Patterns (EIP)© Talend 2011 15
  • 16. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 16
  • 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
  • 19. Similarities© Talend 2011 19
  • 20. Connectivity Integration of differentTechnologies© Talend 2011 20
  • 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
  • 23. DeploymentStandalone Application Server Web Container Spring Container OSGi Cloud© Talend 2011 23
  • 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
  • 26. Commercial support vs. Mule ESB vs.Integration© Talend 2011 26
  • 27. ToolingSTS 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 • DeploymentFocus • Popularity • Tool support • Connectivity • Domain specific language (DSL)© Talend 2011 28
  • 29. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 29
  • 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
  • 31. Domain specific language (DSL) (Not production-ready yet) XML (Not production-ready yet)© Talend 2011 31
  • 32. Code example (XML DSL)© Talend 2011 32
  • 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
  • 35. Tooling: STS Integration Graph© Talend 2011 35
  • 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
  • 37. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 37
  • 38. Mule ESB© Talend 2011 38
  • 39. Deployment as web application or standalonehttp://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
  • 43. Domain specific language (DSL) XML© Talend 2011 43
  • 44. Code example (XML DSL – no alternative)© Talend 2011 44
  • 45. Live demo Mule in Action© Talend 2011 45
  • 46. Tooling: Mule Studio© Talend 2011 46
  • 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
  • 48. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 48
  • 49. Community  Camel rocks! Mailing Lists? Forums? Blogs? Articles? Conference talks? ESBs? Professionals? Jobs? Knowlegde? ...© Talend 2011 49
  • 50. Connectivity LDAP XSLT TCPSQL SMTP JMS Netty Jetty RMI FTP Lucene JDBC EJB Twitter Bean-Validation MQ IRC JMX Quartz CXF RSS AMQP jclouds Atom AWS Akka HTTPFile 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
  • 52. Domain specific language (DSL) XML (Not production-ready yet)© Talend 2011 52
  • 53. Code example (XML DSL)© Talend 2011 53
  • 54. Code example (Java DSL)© Talend 2011 54
  • 55. Live demo Apache Camel in Action© Talend 2011 55
  • 56. Tooling: Fuse IDE© Talend 2011 56
  • 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
  • 59. Tooling: Talend ESB© Talend 2011 59
  • 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
  • 61. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 61
  • 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 ESBCamel)© Talend 2011 65
  • 66. When to use which one? Integration Mule ESB• In all other cases (largest community, bestconcepts, 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 HighINTEGRATION Connectivity RoutingTransformation © 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 RoutingTransformation © 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 ENGINETransformation © 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
  • 75. Did you get the key messages?© Talend 2011 75
  • 76. Key messagesDo not reinvent the „integration wheel“!There are some good frameworks forintegration!Often, an ESB is the better choice!© Talend 2011 76
  • 77. Did you get the key messages?© Talend 2011 77
  • 78. Thank you for your attention. Questions? KAI WÄHNER kwaehner@talend.com www.kai-waehner.de LinkedIn / Xing @KaiWaehner