• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 2013
 

How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 2013

on

  • 7,476 views

Data exchanges between companies increase a lot. The number of applications which must be integrated increases, too. The interfaces use different technologies, protocols and data formats. ...

Data exchanges between companies increase a lot. The number of applications which must be integrated increases, too. The interfaces use different technologies, protocols and data formats. Nevertheless, the integration of these applications shall be modeled in a standardized way, realized efficiently and supported by automatic tests.

Three integration frameworks are available in the JVM environment, which fulfil these requirements: Apache Camel, Spring Integration and Mule. They implement the well-known Enteprise Integration Patterns (EIP) and therefore offers a standardized, domain-specific language to integrate applications.

These Integration Frameworks can be used in almost every integration project within the JVM environment - no matter which technologies, transport protocols or data formats are used. All integration projects can be realized in a consistent way without redundant boilerplate code.

This session shows and compares the three alternatives and discusses their pros and cons. Besides, a recommendation will be given when to use a more powerful Enterprise Service Bus (ESB) instead of one of these frameworks.

Statistics

Views

Total Views
7,476
Views on SlideShare
6,985
Embed Views
491

Actions

Likes
19
Downloads
0
Comments
0

3 Embeds 491

http://www.kai-waehner.de 482
https://twitter.com 8
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 2013 How to choose the right Integration Framework - Apache Camel (JBoss, Talend), Spring Integration (Pivotal) or Mule ESB? - JavaOne 2013 Presentation Transcript

  • © 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
  • © 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
  • © 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
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner • Applications • Interfaces • Technologies • Products Growing IT infrastructure everywhere!
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Host  Client / Server  SOA  Cloud  Big Data  ... Heterogeneity
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner „point-to-point hell“ Spaghetti solutions
  • © 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
  • © 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?
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Enteprise Integration Patterns
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Enterprise Integration Patterns
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Enterprise Integration Patterns
  • © 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
  • © 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
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Similarities
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Integration of different Technologies Connectivity
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Integration vs. vs. implement Integration Frameworks
  • © 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
  • © 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
  • © 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
  • © 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
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner vs. vs. Commercial support Integration
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Differences
  • © 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
  • © 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
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Code example (XML DSL)
  • © 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)
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Spring Integration in Action Live demo
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: STS Integration Graph
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Mule ESB
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Some B2B connectors available, especially for: Connectivity
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner XML Domain specific language
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Code example (XML DSL – no alternative)
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Mule in Action Live demo
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: Mule Studio
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: Mule Studio
  • © 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
  • © 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
  • © 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!)
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner XML (Not production-ready yet) Domain specific language
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Code example (XML DSL)
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Code example (Java DSL)
  • © 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!
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Apache Camel in Action Live demo
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: JBoss Fuse
  • © 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
  • © 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)
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: Talend ESB
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Tooling: Talend ESB
  • © 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
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Integration ... all three integration frameworks
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Integration When to use which integration framework?
  • © 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?
  • © 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?
  • © 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?
  • © 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
  • © 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
  • © 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?
  • © 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?
  • © 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?
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Open Source Proprietary ESB vendor == integration suite vendor?
  • © 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?
  • © 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.?
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Did you get the key messages?
  • © 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
  • © Talend 2013 “Spoilt for Choice – How to choose the right Integration Framework” by Kai Wähner Did you get the key messages?
  • Thank you for your attention. Questions? KAI WÄHNER kwaehner@talend.com www.kai-waehner.de LinkedIn / Xing @KaiWaehner