Enterprise Integration Patterns revisited

Kai Wähner
kwaehner@talend.com

@KaiWaehner
www.kai-waehner.de
11/19/2013

© Ta...
Kai Wähner
Main Tasks
Requirements Engineering
Enterprise Architecture Management
Business Process Management
Architecture...
Key Messages

Do not reinvent the „integration wheel“!
EIPs solve typical integration problems!

There is good tool suppor...
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
Growing IT infrastructure everywhere!

• Applications

• Interfaces
• Technologies

• Products

© Talend 2013

6
Heterogeneity

Host  Client / Server  SOA  Cloud  Big Data  ...
© Talend 2013

7
Spaghetti solutions

„point-to-point hell“
© Talend 2013

8
The solution: application integration

All roads
lead to Rome ...
© Talend 2013

9
Writing glue code?
AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(
S3Sample.class.getResourceAsStream("AwsCred...
Wishes for integrators

• Standardized Modeling

• Efficient Realization
• Automatic Testing
© Talend 2013

11
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
What is a (Design) Pattern?

“A software design pattern, in the sense of a template, is a
general solution to a problem in...
Enteprise Integration Patterns (EIP)

© Talend 2013

14
Enteprise Integration Patterns (EIP)

“The goal of EIPs is to document
technology-independent design guidance
that helps d...
History of EIPs
➜

Talk from Gregor Hohpe
•
•
•
•

➜

WSO2 Con 2011
„History, present, future of EIP“
A lot about past (id...
Status Quo?
Enterprise Integration Patterns do not change
➜ Just technologies change
➜ Implementations are already availab...
EIP Example: Splitter

http://www.eaipatterns.com

© Talend 2013

18
EIP Example: Aggregator

http://www.eaipatterns.com

© Talend 2013

19
A + B + C = ABC

Combining EIPs shows their true power!
© Talend 2013

20
EIP Example: Composed Message Processer

http://www.eaipatterns.com

© Talend 2013

21
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
Enterprise Integration Patterns

© Talend 2013

23
Use Case

© Talend 2013

24
Modeling Tools: Microsoft Visio

© Talend 2013

25
Modeling Tool: OmniGraffle

© Talend 2013

26
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
Alternatives for application integration

Integration
Framework

Low

© Talend 2013

Enterprise
Service Bus

Integration S...
When to use an integration framework?

Integration
Framework

Low

Enterprise
Service Bus

Integration Suite

High

Comple...
Connectivity

Integration
of different
Technologies

© Talend 2013

30
Connectivity
TCP

SQL

XSLT

LDAP
SMTP

Netty

JMS

Jetty

RMI
FTP

Lucene

EJB

JDBC

Twitter

Bean-Validation

JMX

MQ
A...
Integration Frameworks

Integration

implement

© Talend 2013

32
Code example – Apache Camel (Java DSL)

© Talend 2013

33
Code example – Apache Camel (XML DSL)

© Talend 2013

34
Tools Support and Commercial support

Integration

© Talend 2013

35
More details about integration frameworks...

http://www.kai-waehner.de/blog/2013/09/25/how-to-choose-the-right-open-sourc...
When to use an Enterprise Service Bus?

Enterprise
Service Bus

Integration
Framework

Low

Connectivity
Routing
Transform...
Enterprise Service Bus (ESB)

Business
Applications

ESB

Partners
(B2B)

Browsers
Rich Clients

Connectivity
Services

Mo...
Example: Talend ESB

© Talend 2013

39
Example: Talend ESB

© Talend 2013

40
When to use an integration suite?

Integration Suite

Enterprise
Service Bus

Integration
Framework

Low

Connectivity
Rou...
ESB vendor == integration suite vendor?

Proprietary

Open Source

© Talend 2013

42
Example: Talend Unified Platform

Big Data

Data
Quality

Data
Integration

MDM

ESB

BPM

 Commercial license
 Subscrip...
More details about ESBs and suites...

http://www.kai-waehner.de/blog/2013/01/23/spoilt-for-choicehow-to-choose-the-right-...
Agenda

•
•
•
•
•

Application Integration
Enterprise Integration Patterns
Modeling
Frameworks and Tools
Future

© Talend ...
Future Of EIPs: The BAD News
➜

New Patterns (since release of the book)?  NOT YET
• Conversations
• Complex Event Proces...
Future Of EIPs: The GOOD News
➜

New Patterns not necessary!  OFTEN
• Messaging is a good thing (usually)
• Conversations...
Complementary: SOA Design Patterns

Patterns for performance,
scalability, and availability
➜ Security and manageability
p...
Did you get the key messages?

© Talend 2013

49
Key Messages

Do not reinvent the „integration wheel“!
EIPs solve typical integration problems!

There is good tool suppor...
Did you get the key messages?

© Talend 2013

51
Thank you for your attention. Questions?
KAI WÄHNER
kwaehner@talend.com
www.kai-waehner.de
LinkedIn / Xing
@KaiWaehner

© ...
Upcoming SlideShare
Loading in...5
×

Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)

10,123

Published on

Applications have to be integrated – no matter which programming languages, databases or infrastructures are used. However, the realization of integration scenarios is a complex and time-consuming task. Over 10 years ago, Enteprise Integration Patterns (EIP) became the world wide defacto standard for splitting huge, complex integration scenarios into smaller recurring problems. These patterns appear in almost every integration project.
This session revisits EIPs and gives shows status quo. After giving a short introduction with several examples, the audience will learn which EIPs still have a „right to exist“, and which new EIPs emerged in the meantime. The end of the session shows different frameworks and tools which already implement EIPs and therefore help the architect to reduce efforts a lot.

Published in: Technology, Education

Transcript of "Enterprise Integration Patterns Revisited (EIP, Apache Camel, Talend ESB)"

  1. 1. Enterprise Integration Patterns revisited Kai Wähner kwaehner@talend.com @KaiWaehner www.kai-waehner.de 11/19/2013 © Talend 2013 1
  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 Contact Consulting Developing Coaching Speaking Writing © Talend 2013 Email: kwaehner@talend.com Blog: www.kai-waehner.de/blog Twitter: @KaiWaehner Social Networks: Xing, LinkedIn 2
  3. 3. Key Messages Do not reinvent the „integration wheel“! EIPs solve typical integration problems! There is good tool support for EIPs! © Talend 2013 3
  4. 4. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 4
  5. 5. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 5
  6. 6. Growing IT infrastructure everywhere! • Applications • Interfaces • Technologies • Products © Talend 2013 6
  7. 7. Heterogeneity Host  Client / Server  SOA  Cloud  Big Data  ... © Talend 2013 7
  8. 8. Spaghetti solutions „point-to-point hell“ © Talend 2013 8
  9. 9. The solution: application integration All roads lead to Rome ... © Talend 2013 9
  10. 10. Writing glue code? 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 2013 10
  11. 11. Wishes for integrators • Standardized Modeling • Efficient Realization • Automatic Testing © Talend 2013 11
  12. 12. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 12
  13. 13. What is a (Design) Pattern? “A software design pattern, in the sense of a template, is a general solution to a problem in programming. A design pattern provides a reusable architectural outline that may speed the development of many computer programs.” http://en.wikipedia.org/wiki/Design_pattern © Talend 2013 13
  14. 14. Enteprise Integration Patterns (EIP) © Talend 2013 14
  15. 15. Enteprise Integration Patterns (EIP) “The goal of EIPs is to document technology-independent design guidance that helps developers and architects describe and develop robust integration solutions.” http://www.eaipatterns.com © Talend 2013 15
  16. 16. History of EIPs ➜ Talk from Gregor Hohpe • • • • ➜ WSO2 Con 2011 „History, present, future of EIP“ A lot about past (ideas, creation of book, ...) http://www.youtube.com/watch?v=Xwi1DU6KoQ4 Today‘s Talk • Not too much about history • Just about present and future © Talend 2013 16
  17. 17. Status Quo? Enterprise Integration Patterns do not change ➜ Just technologies change ➜ Implementations are already available ➜ © Talend 2013 17
  18. 18. EIP Example: Splitter http://www.eaipatterns.com © Talend 2013 18
  19. 19. EIP Example: Aggregator http://www.eaipatterns.com © Talend 2013 19
  20. 20. A + B + C = ABC Combining EIPs shows their true power! © Talend 2013 20
  21. 21. EIP Example: Composed Message Processer http://www.eaipatterns.com © Talend 2013 21
  22. 22. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 22
  23. 23. Enterprise Integration Patterns © Talend 2013 23
  24. 24. Use Case © Talend 2013 24
  25. 25. Modeling Tools: Microsoft Visio © Talend 2013 25
  26. 26. Modeling Tool: OmniGraffle © Talend 2013 26
  27. 27. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 27
  28. 28. Alternatives for application integration Integration Framework Low © Talend 2013 Enterprise Service Bus Integration Suite High Complexity of Integration 28
  29. 29. When to use an integration framework? Integration Framework Low Enterprise Service Bus Integration Suite High Complexity of Integration INTEGRATION Connectivity Routing Transformation © Talend 2013 29
  30. 30. Connectivity Integration of different Technologies © Talend 2013 30
  31. 31. Connectivity TCP SQL XSLT LDAP SMTP Netty JMS Jetty RMI FTP Lucene EJB JDBC Twitter Bean-Validation JMX MQ AMQP CXF Akka HTTP MongoDB © Talend 2013 Quartz jclouds Atom AWS File RSS IRC Many further connectors, even B2B such as SAP or Salesforce Easy to create own components 31
  32. 32. Integration Frameworks Integration implement © Talend 2013 32
  33. 33. Code example – Apache Camel (Java DSL) © Talend 2013 33
  34. 34. Code example – Apache Camel (XML DSL) © Talend 2013 34
  35. 35. Tools Support and Commercial support Integration © Talend 2013 35
  36. 36. More details about integration frameworks... http://www.kai-waehner.de/blog/2013/09/25/how-to-choose-the-right-open-source-integration-framework-apache-camel-jbosstalend-spring-integration-pivotal-or-mule-esb-javaone-2013/
  37. 37. When to use an Enterprise Service Bus? Enterprise Service Bus Integration Framework Low Connectivity Routing Transformation © Talend 2013 Integration Suite High + Complexity of Integration INTEGRATION Tooling Monitoring Support 37
  38. 38. Enterprise Service Bus (ESB) Business Applications ESB Partners (B2B) Browsers Rich Clients Connectivity Services Mobile Devices SERVICE CONTAINER SERVICE REGISTRY TRANSPORTS TRANSFORMATION ROUTING ORCHESTRATION MESSAGING SECURITY Web Portal REST © Talend 2013 Data Sources Web Services .NET / HTTP BPEL J2EE Server MQ Series, JMS ESB FILE, FTP 38
  39. 39. Example: Talend ESB © Talend 2013 39
  40. 40. Example: Talend ESB © Talend 2013 40
  41. 41. When to use an integration suite? Integration Suite Enterprise Service Bus Integration Framework Low Connectivity Routing Transformation © Talend 2013 High + INTEGRATION Tooling Monitoring Support + BUSINESS PROCESS MGT. BIG DATA / MDM REGISTRY / REPOSITORY RULES ENGINE „YOU NAME IT“ Complexity of Integration 41
  42. 42. ESB vendor == integration suite vendor? Proprietary Open Source © Talend 2013 42
  43. 43. Example: Talend Unified Platform Big Data Data Quality Data Integration MDM ESB BPM  Commercial license  Subscription model  Support included  Open source license  Free of charge Big Data Data Quality Data Integration MDM ESB  Optional support  Based on open source projects such as Eclipse or Apache Camel, CXF, Hadoop © Talend 2013 43
  44. 44. More details about ESBs and suites... http://www.kai-waehner.de/blog/2013/01/23/spoilt-for-choicehow-to-choose-the-right-enterprise-service-bus-esb/
  45. 45. Agenda • • • • • Application Integration Enterprise Integration Patterns Modeling Frameworks and Tools Future © Talend 2013 45
  46. 46. Future Of EIPs: The BAD News ➜ New Patterns (since release of the book)?  NOT YET • Conversations • Complex Event Processing • Error Handling ➜ More Details: „EIP Visions“  TO BE DETERMINED • • • • EIP I: Messaging  done EIP II: Conversations  50 page paper EIP III: Process  tbd EIP IV: Event Processing  tbd http://www.eaipatterns.com/ramblings/72_eipvolumes.html © Talend 2013 46
  47. 47. Future Of EIPs: The GOOD News ➜ New Patterns not necessary!  OFTEN • Messaging is a good thing (usually) • Conversations == State == Anti Pattern (often) • Integration scenarios can be solved with existing patterns (usually) ➜ Better Tooling  YES • More frameworks and products? • More users? © Talend 2013 47
  48. 48. Complementary: SOA Design Patterns Patterns for performance, scalability, and availability ➜ Security and manageability patterns ➜ Message exchange patterns ➜ Service consumer patterns ➜ Service integration patterns ➜ © Talend 2013 48
  49. 49. Did you get the key messages? © Talend 2013 49
  50. 50. Key Messages Do not reinvent the „integration wheel“! EIPs solve typical integration problems! There is good tool support for EIPs! © Talend 2013 50
  51. 51. Did you get the key messages? © Talend 2013 51
  52. 52. Thank you for your attention. Questions? KAI WÄHNER kwaehner@talend.com www.kai-waehner.de LinkedIn / Xing @KaiWaehner © Talend 2013 52

×