integration mule esb -...

83
www.mwea.de Spoilt for Choice – Which Integration Framework to choose? Kai Wähner Integration Mule ESB vs. vs.

Upload: truongdiep

Post on 31-Mar-2018

230 views

Category:

Documents


1 download

TRANSCRIPT

www.mwea.de

Spoilt for Choice – Which Integration Framework to choose?

Kai Wähner

Integration Mule ESB vs. vs.

www.mwea.de

Kai Wähner

11.06.2012 Seite 2 Kai Wähner

Main Tasks Evaluation of Technologies and Products

Requirements Engineering Enterprise Architecture Management

Business Process Management Architecture and Development of Applications

Planning and Introduction of SOA Integration of Legacy Applications

Cloud Computing

Contact Email: [email protected] Blog: www.kai-waehner.de/blog

Twitter: @KaiWaehner Social Networks: Xing, LinkedIn

Consulting Developing Speaking Coaching Writing

www.mwea.de

What is the Key Message?

11.06.2012 Seite 3 Kai Wähner

www.mwea.de

Do not reinvent the „integration wheel“!

Key Messages

11.06.2012 Seite 4 Kai Wähner

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Key Messages

11.06.2012 Seite 5 Kai Wähner

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Often an ESB is the wrong Choice!

Key Messages

11.06.2012 Seite 6 Kai Wähner

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 7 Kai Wähner

www.mwea.de

1)   Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 8 Kai Wähner

www.mwea.de

What is the Problem?

11.06.2012 Seite 9 Kai Wähner

•  Applications

•  Interfaces

•  Technologies

•  Products

Growth

www.mwea.de

Heterogeneity

11.06.2012 Seite 10 Kai Wähner

www.mwea.de

Spaghetti Solutions

11.06.2012 Seite 11 Kai Wähner

Everybody communicates to everybody

www.mwea.de

Solution: Systems Integration

11.06.2012 Seite 12 Kai Wähner

All Roads lead to Rome ...

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 13 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 14 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Spring Integration vs. Mule ESB vs. Apache Camel

www.mwea.de

1)  Systems Integration

2)   Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 15 Kai Wähner

www.mwea.de

Wishes

11.06.2012 Seite 16 Kai Wähner

•  Standardized Modeling •  Efficient Realization •  Automatic Testing

www.mwea.de

Enterprise Integration Patterns (EIP)

11.06.2012 Seite 17 Kai Wähner

www.mwea.de

Enterprise Integration Patterns (EIP)

11.06.2012 Seite 18 Kai Wähner

www.mwea.de 19

Enterprise Integration Patterns (EIP)

www.mwea.de

Relation between EIPs and Integrations Frameworks

11.06.2012 Seite 20 Kai Wähner

Integration Mule ESB vs. vs.

implement

www.mwea.de

Comparison Criteria

11.06.2012 Seite 21 Kai Wähner

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

www.mwea.de

Similarities

11.06.2012 Seite 22 Kai Wähner

www.mwea.de

Connectivity

11.06.2012 Seite 23 Kai Wähner

Integration of different

Technologies

www.mwea.de

Domain Specific Languages (DSL)

11.06.2012 Seite 24 Kai Wähner

„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

www.mwea.de

Domain Specific Languages (DSL)

11.06.2012 Seite 25 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

www.mwea.de

Architecture

11.06.2012 Seite 26 Kai Wähner

http://java.dzone.com/articles/apache-camel-integration

(Exemplarily: Apache Camel => Concepts are all the same, only different names)

www.mwea.de

Deployment

11.06.2012 Seite 27 Kai Wähner

Spring Container

Standalone

OSGi

Application Server

Web Container

Cloud

www.mwea.de

Enterprise-Ready

11.06.2012 Seite 28 Kai Wähner

•  Maturity •  Transactions •  Concurrency •  Error handling •  Monitoring •  Testability

www.mwea.de

Licensing

11.06.2012 Seite 29 Kai Wähner

Integration Mule ESB vs. vs.

Common Public Atttribution License

(CPAL)

Apache License Apache License

www.mwea.de

Commercial Support

11.06.2012 Seite 30 Kai Wähner

Integration Mule ESB vs. vs.

www.mwea.de

Tool Support

11.06.2012 Seite 31 Kai Wähner

Integration Graph for Spring Integration Mule Studio for Mule ESB

Fuse IDE for Apache Camel Talend Studio for Apache Camel

www.mwea.de

• Concepts of each Framework • Code Example • Live Demo

Upcoming Procedure

11.06.2012 Seite 32 Kai Wähner

www.mwea.de

Comparison Criteria

11.06.2012 Seite 33 Kai Wähner

•  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

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)   Spring Integration

4)  Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 34 Kai Wähner

www.mwea.de

Connectivity

11.06.2012 Seite 35 Kai Wähner

How to create own custom adapter?

AMQP Feed File FTP(S) GemFire HTTP TCP UDP JDBC JMS Mail MongoDB Redis RMI SFTP Stream Twitter Web Service XML XMPP

www.mwea.de

DSLs

11.06.2012 Seite 36 Kai Wähner

XML (Not production-ready yet)

(Not production-ready yet)

www.mwea.de

Code Example

11.06.2012 Seite 37 Kai Wähner

www.mwea.de

Code Example

11.06.2012 Seite 38 Kai Wähner

http://blog.springsource.org/2012/03/05/introducing-spring-integration-scala-dsl/

www.mwea.de

Spring Integration in Action

Live Demo

11.06.2012 Seite 39 Kai Wähner

www.mwea.de

Integration Graph

11.06.2012 Seite 40 Kai Wähner

www.mwea.de

Integration Graph

11.06.2012 Seite 41 Kai Wähner

Pro •  Visual Designer for Spring Integration flows •  Vice versa Editing (code generation vs. coding by hand) •  Open Source (part of Spring IDE at github) •  Simple Eclipse plugin – „Just Spring Integration“ •  Export of flow diagrams

Contra •  Non-intuitive usability •  Unclear diagrams •  Immature (e.g. missing documentation, problems with code examples)

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)   Mule ESB

5)  Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 42 Kai Wähner

www.mwea.de

Mule ESB

11.06.2012 Seite 43 Kai Wähner

www.mwea.de

Standalone / Web Application Deployment

11.06.2012 Seite 44 Kai Wähner

http://www.mulesoft.org/documentation/display/MULE3USER/Embedding+Mule+in+a+Java+Application+or+Webapp

www.mwea.de

Connectivity

11.06.2012 Seite 45 Kai Wähner

Many more Connectors + easy to create own Connectors

AS400 Data Queue Abdera Amazon SQS jBPM CICS CTG CXF Email FTP Hibernate HTTP/S Legs4Mule IMAP/S

JCR JDBC Jersey Jetty JMS LDAP Multicast POP3/S Quartz Restlet RMI SAP 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

www.mwea.de

Several Proprietary Connectors available, for instance:

Connectivity

11.06.2012 Seite 46 Kai Wähner

www.mwea.de

OSGi Support?

11.06.2012 Seite 47 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

www.mwea.de

DSLs

11.06.2012 Seite 48 Kai Wähner

XML

www.mwea.de

Code Example

11.06.2012 Seite 49 Kai Wähner

www.mwea.de

Mule in Action

Live Demo

11.06.2012 Seite 50 Kai Wähner

www.mwea.de

Mule Studio

11.06.2012 Seite 51 Kai Wähner

www.mwea.de

Mule Studio

11.06.2012 Seite 52 Kai Wähner

Pro •  Visual Designer for Mule Flows •  Visual „Live Monitoring“ •  Vice versa Editing (Code generation vs. coding by hand) •  Simple Eclipse plugin – „Just Mule“ •  Intuitive GUI

Contra •  Proprietary •  Subscription required for many enterprise features (such as monitoring)

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)   Apache Camel

6)  And the Winner is ...

Agenda

11.06.2012 Seite 53 Kai Wähner

www.mwea.de

DSLs

11.06.2012 Seite 54 Kai Wähner

XML

(Not production-ready yet)

www.mwea.de

Connectivity

11.06.2012 Seite 55 Kai Wähner

Many more Components + easy to create own Components

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

www.mwea.de

Mailing Lists? Blogs? Articles? Conference talks? ESBs? Jobs? ...

Community

11.06.2012 Seite 56 Kai Wähner

www.mwea.de

Mailing Lists? Blogs? Articles? Conference talks? ESBs? Jobs? ...

Community

11.06.2012 Seite 57 Kai Wähner

Even JBoss‘ new ESB „SwitchYard“ uses Camel inside!

www.mwea.de

Code Example

11.06.2012 Seite 58 Kai Wähner

www.mwea.de

Code Example

11.06.2012 Seite 59 Kai Wähner

www.mwea.de

Apache Camel in Action

Live Demo

11.06.2012 Seite 60 Kai Wähner

www.mwea.de

Tool Support

11.06.2012 Seite 61 Kai Wähner

Fuse IDE vs.

Talend Open Studio for ESB

www.mwea.de

Fuse IDE

11.06.2012 Seite 62 Kai Wähner

www.mwea.de

Fuse IDE

11.06.2012 Seite 63 Kai Wähner

Pro •  Visual Designer for Camel routes •  Visual „Live Monitoring“ (for debugging, browsing, tracing) •  Vice versa Editing (code generation vs. coding by-hand) •  Just a simple Eclipse-Plugin – „Just Camel“ •  Intuitive GUI •  Export of route diagrams •  JUnit Test Wizard (generates scaffolding for tests)

Contra •  Proprietary •  Subscription required •  Only XML DSL (this is not really a contra, because only Camel offers other DSLs)

www.mwea.de

Talend Open Studio for ESB

11.06.2012 Seite 64 Kai Wähner

www.mwea.de

Talend Open Studio for ESB

11.06.2012 Seite 65 Kai Wähner

Pro •  Visual Designer for Camel routes •  Visual „Live Monitoring“

•  Open Source (at github) •  Community Edition (not all features) •  Zero Coding

Contra •  Zero Coding •  Only Java DSL (plus a lot of boilerplate code) •  No vice versa code editing (only code generation) •  No intuitive user interface

=> no simple Eclipse plugin

=> based on Eclipse, but it is more an own product (1GB) => full ESB only

www.mwea.de

1)  Systems Integration

2)  Integration Frameworks

3)  Spring Integration

4)  Mule ESB

5)  Apache Camel

6)   And the Winner is ...

Agenda

11.06.2012 Seite 66 Kai Wähner

www.mwea.de

And the Winner is ...

11.06.2012 Seite 67 Kai Wähner

Integration

Mule ESB

www.mwea.de

When to use?

11.06.2012 Seite 68 Kai Wähner

Integration

Mule ESB

www.mwea.de

When to use?

11.06.2012 Seite 69 Kai Wähner

Integration

Mule ESB

•  Spring Project •  „Typical“ JVM Technologies •  No additional Framework

www.mwea.de

When to use?

11.06.2012 Seite 70 Kai Wähner

Integration

Mule ESB •  One of the available proprietary Connectors is required

www.mwea.de

When to use?

11.06.2012 Seite 71 Kai Wähner

Integration

Mule ESB

•  In all other Cases

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 72 Kai Wähner

Complexity of Integration

Low High

Integration Framework

Enterprise Service Bus (ESB)

No Tool

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 73 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Low High

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 74 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Spring Integration vs.

Mule ESB vs.

Apache Camel

Low High

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 75 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Low High

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 76 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

Integration Connectivity

Routing Transformation

Low High

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 77 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Integration Connectivity

Routing Transformation

Low High

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

www.mwea.de

Alternatives for Systems Integration

11.06.2012 Seite 78 Kai Wähner

Complexity of Integration

Integration Framework

Enterprise Service Bus (ESB)

No Tool

Apache ServiceMix, Mule ESB, WSO2 ESB

vs. IBM Message Broker, IBM ESB, Oracle ESB,

webMethods ESB

Low High

Middleware Product Integration

Business Process Management Business Activity Monitoring

Registry / Repository Rules Engine

www.mwea.de

Did you get the Key Messages?

11.06.2012 Seite 79 Kai Wähner

www.mwea.de

Do not reinvent the „integration wheel“!

There are some good alternatives for Integration!

Often an ESB is the wrong Choice!

Key Messages

11.06.2012 Seite 80 Kai Wähner

www.mwea.de

Did you get the Key Messages?

11.06.2012 Seite 81 Kai Wähner

www.mwea.de

Become a Part of the Open Source Community

11.06.2012 Seite 82 Kai Wähner

www.mwea.de

Thank you for your Attention. Any Questions?

Kai Wähner

=

Kai Wähner

MaibornWolff et al: www.mwea.de

Email: [email protected] Twitter: @KaiWaehner Blog: www.kai-waehner.de/blog

Integration Mule ESB or or Smart EAI