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

23,883 views
22,057 views

Published 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 integration frameworks, ESBs, and corresponding tooling is increasing every year!

Published in: Technology
1 Comment
38 Likes
Statistics
Notes
  • منتديات توب عرب للمبدعين احساس منتديات عامة
    افضل المنتديات العربية
    [url=http://www.top3rab.mrsaal.com]منتديات[/url]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
23,883
On SlideShare
0
From Embeds
0
Number of Embeds
6,962
Actions
Shares
0
Downloads
0
Comments
1
Likes
38
Embeds 0
No embeds

No notes for slide

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 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

×