Your SlideShare is downloading. ×
Spoilt for Choice –Which Integration Framework to choose?                      Kai Wähner, Principal Consultant
Kai Wähner                                         Main Tasks                                  Requirements Engineering   ...
Key messagesDo not reinvent the „integration wheel“!There are some good frameworks forintegration!Often, an ESB is the bet...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Growing IT infrastructure everywhere!                                        • Applications                               ...
HeterogeneityHost  Client / Server  SOA  Cloud  Big Data © Talend 2011                                  7
Spaghetti solutions           „point-to-point hell“© Talend 2011                      8
The solution: application integration                                   All Roads                                lead to R...
Writing glue code? (example: AWS S3 with Java)                AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials( ...
Wishes for integrators                         • Standardized Modeling                         • Efficient Realization    ...
Alternatives for application integration                                   Enterprise Service Bus                Integrati...
Enterprise Integration Patterns (EIP)© Talend 2011                           13
Enterprise Integration Patterns (EIP)© Talend 2011                           14
Enterprise Integration Patterns (EIP)© Talend 2011                           15
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Relation between EIPs and Integrations Frameworks                vs. Mule      ESB vs.Integration                     impl...
Comparison Criteria                • Open source                • Basic concepts / architecture                • Testabili...
Similarities© Talend 2011   19
Connectivity Integration of differentTechnologies© Talend 2011   20
Domain specific language (DSL)     „A domain-specific language (DSL) is a programming language or     specification langua...
Architecture                                                          http://java.dzone.com/articles/apache-camel-integrat...
DeploymentStandalone           Application                     Server                Web Container                        ...
Enterprise readiness                       • Maturity                       • Transactions                       • Concurr...
Licensing                  vs. Mule     ESB vs.Integration Apache License        Common Public       Apache License       ...
Commercial support                vs. Mule   ESB vs.Integration© Talend 2011                        26
ToolingSTS Integration Graph (for Spring Integration)     Mule Studio (for Mule ESB)           Fuse IDE (for Apache Camel)...
Comparison Criteria                • Open source                • Basic concepts / architecture                • Testabili...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Connectivity         AMQP         Feed         File         FTP(S)         GemFire         HTTP         TCP         UDP   ...
Domain specific language (DSL)                                 (Not production-ready yet)           XML                   ...
Code example (XML DSL)© Talend 2011            32
Code example (Scala DSL)                http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/ ...
Live demo                Spring Integration in                Action© Talend 2011                           34
Tooling: STS Integration Graph© Talend 2011                    35
Tooling: STS Integration Graph          Pro          • Visual designer for Spring Integration flows          • Vice versa ...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Mule ESB© Talend 2011   38
Deployment as web application or standalonehttp://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Jav...
Connectivity      AS400 Data Queue                    Amazon S3      Abdera                              Authorize.net    ...
Connectivity                Several B2B connectors available, especially for:© Talend 2011                                ...
Missing OSGi support    „OSGi adds another complexity to building    applications. [...] OSGi is a great    specification ...
Domain specific language (DSL)                    XML© Talend 2011                    43
Code example (XML DSL – no alternative)© Talend 2011                             44
Live demo                Mule in Action© Talend 2011                    45
Tooling: Mule Studio© Talend 2011          46
Tooling: Mule Studio                Pro                • Visual Designer for Mule Flows                • Visual „live moni...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
Community  Camel rocks!                           Mailing Lists?                           Forums?                       ...
Connectivity                                        LDAP                   XSLT                      TCPSQL               ...
Connectivity     Many B2B connectors available (Talend ESB only), for     example:© Talend 2011                           ...
Domain specific language (DSL)                XML                                 (Not production-ready yet)© Talend 2011 ...
Code example (XML DSL)© Talend 2011            53
Code example (Java DSL)© Talend 2011             54
Live demo                Apache Camel in Action© Talend 2011                            55
Tooling: Fuse IDE© Talend 2011       56
Tooling: RedHat / JBoss + FuseSource                JBoss ESB, Switchyard, Fuse ESB                  Roadmap: http://www.r...
Tooling: Fuse IDE                Pro                • Visual designer for Camel routes                • Visual „live monit...
Tooling: Talend ESB© Talend 2011         59
Tooling: Talend ESB                Pro                • Visual Designer for Camel routes                • Visual „live mon...
Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Ta...
… all three integration frameworks!                                              Integration                              ...
When to use which one?                         Integration                         Mule ESB© Talend 2011                  ...
When to use which one?• Spring Project• „Typical“ JVM Technologies  (File, JMS, REST, SOAP, ...)• No additional Framework ...
When to use which one?                                Integration• One of its  B2B connectors is required  (and it is not ...
When to use which one?                             Integration                             Mule ESB• In all other cases  (...
… after you learned the differences                         Hmm...                 Actually, when should                 ...
When to use an integration framework?                   Enterprise      Integration Suite  Integration     Service Bus  Fr...
When to use an Enterprise Service Bus (ESB)?                      Enterprise    Integration Suite Integration         Serv...
When to use an integration suite?                      Enterprise          Integration Suite Integration         Service B...
Talend Unified Platform                                   Data            Data                  Big Data        Quality   ...
ESB Vendor == Integration Suite Vendor ???                                                     Proprietary                ...
ESB Vendor == Integration Suite Vendor ???                ESB           BPM            Big Data© Talend 2011              ...
Custom combination of ESB, BPM, Big Data, etc.?                                 •   A lot of glue code                    ...
Did you get the key messages?© Talend 2011                   75
Key messagesDo not reinvent the „integration wheel“!There are some good frameworks forintegration!Often, an ESB is the bet...
Did you get the key messages?© Talend 2011                   77
Thank you for your attention. Questions?                            KAI WÄHNER                      kwaehner@talend.com   ...
Upcoming SlideShare
Loading in...5
×

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

16,212

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
35 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
16,212
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
0
Comments
1
Likes
35
Embeds 0
No embeds

No notes for slide

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

  1. 1. Spoilt for Choice –Which Integration Framework to choose? Kai Wähner, Principal Consultant
  2. 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. 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. 4. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 4
  5. 5. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 5
  6. 6. Growing IT infrastructure everywhere! • Applications • Interfaces • Technologies • Products© Talend 2011 6
  7. 7. HeterogeneityHost  Client / Server  SOA  Cloud  Big Data © Talend 2011 7
  8. 8. Spaghetti solutions „point-to-point hell“© Talend 2011 8
  9. 9. The solution: application integration All Roads lead to Rome ...© Talend 2011 9
  10. 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. 11. Wishes for integrators • Standardized Modeling • Efficient Realization • Automatic Testing© Talend 2011 11
  12. 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. 13. Enterprise Integration Patterns (EIP)© Talend 2011 13
  14. 14. Enterprise Integration Patterns (EIP)© Talend 2011 14
  15. 15. Enterprise Integration Patterns (EIP)© Talend 2011 15
  16. 16. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 16
  17. 17. Relation between EIPs and Integrations Frameworks vs. Mule ESB vs.Integration implement© Talend 2011 17
  18. 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. 19. Similarities© Talend 2011 19
  20. 20. Connectivity Integration of differentTechnologies© Talend 2011 20
  21. 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. 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. 23. DeploymentStandalone Application Server Web Container Spring Container OSGi Cloud© Talend 2011 23
  24. 24. Enterprise readiness • Maturity • Transactions • Concurrency • Error handling • Monitoring • Testability© Talend 2011 24
  25. 25. Licensing vs. Mule ESB vs.Integration Apache License Common Public Apache License Attribution License (CPAL) attention: more restrictive!© Talend 2011 25
  26. 26. Commercial support vs. Mule ESB vs.Integration© Talend 2011 26
  27. 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. 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. 29. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 29
  30. 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. 31. Domain specific language (DSL) (Not production-ready yet) XML (Not production-ready yet)© Talend 2011 31
  32. 32. Code example (XML DSL)© Talend 2011 32
  33. 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. 34. Live demo Spring Integration in Action© Talend 2011 34
  35. 35. Tooling: STS Integration Graph© Talend 2011 35
  36. 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. 37. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 37
  38. 38. Mule ESB© Talend 2011 38
  39. 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. 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. 41. Connectivity Several B2B connectors available, especially for:© Talend 2011 41
  42. 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. 43. Domain specific language (DSL) XML© Talend 2011 43
  44. 44. Code example (XML DSL – no alternative)© Talend 2011 44
  45. 45. Live demo Mule in Action© Talend 2011 45
  46. 46. Tooling: Mule Studio© Talend 2011 46
  47. 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. 48. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 48
  49. 49. Community  Camel rocks! Mailing Lists? Forums? Blogs? Articles? Conference talks? ESBs? Professionals? Jobs? Knowlegde? ...© Talend 2011 49
  50. 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. 51. Connectivity Many B2B connectors available (Talend ESB only), for example:© Talend 2011 51
  52. 52. Domain specific language (DSL) XML (Not production-ready yet)© Talend 2011 52
  53. 53. Code example (XML DSL)© Talend 2011 53
  54. 54. Code example (Java DSL)© Talend 2011 54
  55. 55. Live demo Apache Camel in Action© Talend 2011 55
  56. 56. Tooling: Fuse IDE© Talend 2011 56
  57. 57. Tooling: RedHat / JBoss + FuseSource JBoss ESB, Switchyard, Fuse ESB Roadmap: http://www.redhat.com/promo/jboss_integration_week/© Talend 2011 57
  58. 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. 59. Tooling: Talend ESB© Talend 2011 59
  60. 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. 61. Agenda Application Integration Integration Frameworks Spring Integration Mule Apache Camel And the Winner is ...© Talend 2011 61
  62. 62. … all three integration frameworks! Integration Mule ESB© Talend 2011 62
  63. 63. When to use which one? Integration Mule ESB© Talend 2011 63
  64. 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. 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. 66. When to use which one? Integration Mule ESB• In all other cases (largest community, bestconcepts, most connectors)© Talend 2011 66
  67. 67. … after you learned the differences  Hmm... Actually, when should I use an integration framework?© Talend 2011 67
  68. 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. 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. 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. 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. 72. ESB Vendor == Integration Suite Vendor ??? Proprietary Open Source© Talend 2011 72
  73. 73. ESB Vendor == Integration Suite Vendor ??? ESB BPM Big Data© Talend 2011 73
  74. 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. 75. Did you get the key messages?© Talend 2011 75
  76. 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. 77. Did you get the key messages?© Talend 2011 77
  78. 78. Thank you for your attention. Questions? KAI WÄHNER kwaehner@talend.com www.kai-waehner.de LinkedIn / Xing @KaiWaehner

×