spring integration - basics

87
Spring Integration - basics Martin Toshev, Diyan Yordanov Cisco Systems

Upload: marli

Post on 04-Feb-2016

136 views

Category:

Documents


6 download

DESCRIPTION

Spring Integration - basics. Martin Toshev, Diyan Yordanov Cisco Systems. Agenda. Overview of Software Integration What are the Enterprise Integration Patterns ? What is Spring Integration ? Enterprise Integration Patterns implementation in Spring Integration. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Spring Integration - basics

Spring Integration - basicsMartin Toshev, Diyan YordanovCisco Systems

Page 2: Spring Integration - basics

Agenda

• Overview of Software Integration

• What are the Enterprise Integration Patterns ?

• What is Spring Integration ?

• Enterprise Integration Patterns implementation in Spring Integration

Page 3: Spring Integration - basics

Overview of Software Integration

•Enterprise companies have many software applications developed in different languages and run on different platforms. These applications need to communicate. Even the big ERP systems can not live alone and should be integrated with other systems.

•Application integration needs to provide efficient, reliable and secure data exchange between multiple enterprise applications in order to support common business processes and data sharing.

•EAI Suite – suites that encompass messaging, business process automation, workflow, portals, and other functions. Key players in this marketplace are IBM WebSphere MQ, Microsoft BizTalk,TIBCO, WebMethods, SeeBeyond, Vitria, CrossWorlds, and others. Many of these products include JMS as one of the many client API’s they support.

Page 4: Spring Integration - basics

What are Enterprise Integration Patterns ?

•A collection of design patterns for use in enterprise application integration and message-oriented middleware

•Understanding the patterns allows you to:

o build effective messaging systems

o develop applications that provide the ability to integrate with another systems in a cleaner manner using messaging

o gain insight on how to integrate completely different applications using messaging

•Several frameworks already implement these patterns (Spring Integration, Apache Camel, Guarana DSL etc.)

Page 5: Spring Integration - basics

•There are seven categories of enterprise integration patterns (organized in a catalogue):

o Messaging Systemso Messaging Channelso Message Constructiono Message Routingo Message Transformationo Messaging Endpointso System Management

Page 6: Spring Integration - basics

•An open-source framework for Enterprise Application Integration

•Builds on top of the Spring framework

•Supports message-driven architectures where IoC (inversion of control) applies to runtime concerns (the messaging and integration concerns are handled by the framework, so business components are further isolated from the infrastructure and developers are relieved of complex integration responsibilities)

Page 7: Spring Integration - basics

• 4 different applications should be integrated:

- 3 clothing manufactures – Adidas, Reebok and Nike

- 1 reseller that buys from them

Page 8: Spring Integration - basics

• direct communication using application-layer sockets

enforces high coupling between applications

Page 9: Spring Integration - basics

• communication using shared files

can lack timeliness

may not enforce data format sufficiently

Page 10: Spring Integration - basics

• communication using a shared database

can lack timeliness

the database can turn into a performance bottleneck

Page 11: Spring Integration - basics

• communication using RPC

although reduced - coupling is still an issue

Page 12: Spring Integration - basics

• messaging – delegates communication details to the messaging system

Page 13: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike (they are aware of the messaging system)

Page 14: Spring Integration - basics

EIP in Spring Integration

• Messaging Systems

o Message

o Message Channel

Page 15: Spring Integration - basics

EIP in Spring Integration

• Messaging Channels

o Point-to-Point Channel

Page 16: Spring Integration - basics

EIP in Spring Integration

• Message Construction

o Command Message

Page 17: Spring Integration - basics

EIP in Spring Integration

DEMO – Simple Channel

Page 18: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike (reseller is aware of the messaging system and Nike is not)

Page 19: Spring Integration - basics

EIP in Spring Integration

• Messaging Systems

o Message Endpoint

Page 20: Spring Integration - basics

EIP in Spring Integration

• Messaging Endpoints

o Service Activator

Page 21: Spring Integration - basics

EIP in Spring Integration

DEMO – Service Activator

Page 22: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike (both Nike and the reseller and not aware of the messaging system)

Page 23: Spring Integration - basics

EIP in Spring Integration

• Messaging Endpoints

o Messaging Gateway

Page 24: Spring Integration - basics

EIP in Spring Integration

• Message Construction

o Request-Reply

Page 25: Spring Integration - basics

EIP in Spring Integration

DEMO – Messaging Gateway

Page 26: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike using JMS (both reseller and Nike are not aware of the messaging system)

Page 27: Spring Integration - basics

EIP in Spring Integration

• Messaging Channel

o Channel Adapter

Page 28: Spring Integration - basics

EIP in Spring Integration

DEMO – Channel Adapter

Page 29: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike and Nike requires authentication from the reseller

Page 30: Spring Integration - basics

EIP in Spring Integration

• Messaging Systems

o Pipes and Filters

Page 31: Spring Integration - basics

EIP in Spring Integration

• Messaging Routing

o Filter

o Content Filter

Page 32: Spring Integration - basics

EIP in Spring Integration

DEMO – Pipes and Filters

Page 33: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from Nike and Nike wants to send a notification on order receipt

Page 34: Spring Integration - basics

Demo – Email Notification With Retry

EIP in Spring Integration

Page 35: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (using publish-subscribe channel)

Page 36: Spring Integration - basics

EIP in Spring Integration

• Messaging Channel

o Publish-Subscribe Channel

Page 37: Spring Integration - basics

EIP in Spring Integration

DEMO – Publish-Subscribe

Page 38: Spring Integration - basics

EIP in Spring Integration

10 minute BREAK

Page 39: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (using recipient list)

Page 40: Spring Integration - basics

• Messaging Systems

o Message Router

Page 41: Spring Integration - basics

• Message Routing

o Recipient List

Page 42: Spring Integration - basics

EIP in Spring Integration

DEMO – Recipient List

Page 43: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (Reebok and Adidas require authentication with monitoring)

Page 44: Spring Integration - basics

• Messaging Channels

o Dead Letter Channel

o Invalid Message Channel

EIP in Spring Integration

Page 45: Spring Integration - basics

• Messaging Channels

o Guaranteed Delivery

EIP in Spring Integration

Page 46: Spring Integration - basics

• System management

o Message Store

EIP in Spring Integration

Page 47: Spring Integration - basics

EIP in Spring Integration

DEMO – Invalid/Dead Letter Channel

Page 48: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (they accept different types of messages)

Page 49: Spring Integration - basics

EIP in Spring Integration

DEMO – Transformer

Page 50: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (the reseller wants to explicitly specify the manufacturer)

Page 51: Spring Integration - basics

• Message Routing

o Content-based Router

Page 52: Spring Integration - basics

EIP in Spring Integration

DEMO – Content-based Router

Page 53: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (reseller wants to send a batch request and receive a response)

Page 54: Spring Integration - basics

• Message Routing

o Splitter

o Aggregator

Page 55: Spring Integration - basics

• Message Construction

o Correlation Identifier

EIP in Spring Integration

Page 56: Spring Integration - basics

EIP in Spring Integration

DEMO – Splitter/Aggregator

Page 57: Spring Integration - basics

EIP in Spring Integration

• Use case: reseller wants to buy from multiple manufacturers – Nike, Adidas and Reebok (ordering should be monitored and managed externally)

Page 58: Spring Integration - basics

• Message Routing

o Wire Tap

o Control Bus

EIP in Spring Integration

Page 59: Spring Integration - basics

EIP in Spring Integration

DEMO – Management/Monitoring

Page 60: Spring Integration - basics

• Messaging Channels

o Messaging Bridge

o Message Bus

EIP in Spring Integration

Page 61: Spring Integration - basics

• Messaging Channels

o Datatype Channel

EIP in Spring Integration

Page 62: Spring Integration - basics

• Message Construction

o Document Message

o Event Message

EIP in Spring Integration

Page 63: Spring Integration - basics

• Message Construction

o Return Address

EIP in Spring Integration

Page 64: Spring Integration - basics

• Message Construction

o Message Expiration

o Format Indicator – enables the sender to tell the receiver the format of the message

EIP in Spring Integration

Page 65: Spring Integration - basics

• Message Construction

o Message Sequence

EIP in Spring Integration

Page 66: Spring Integration - basics

• Message Routing

o Dynamic Router

EIP in Spring Integration

Page 67: Spring Integration - basics

• Message Routing

o Resequencer

o Composed Message Processor

EIP in Spring Integration

Page 68: Spring Integration - basics

• Message Routing

o Scather-Gather

o Routing Slip

EIP in Spring Integration

Page 69: Spring Integration - basics

• Message Routing

o Process Manager

o Message Broker

EIP in Spring Integration

Page 70: Spring Integration - basics

• Message Transformation

o Envelope Wrapper

o Content Enricher

EIP in Spring Integration

Page 71: Spring Integration - basics

• Message Transformation

oClaim Check

EIP in Spring Integration

Page 72: Spring Integration - basics

• Message Transformation

o Normalizer

o Canonical Data Model

EIP in Spring Integration

Page 73: Spring Integration - basics

• Messaging Endpoints

o Messaging Mapper

o Transactional Client

EIP in Spring Integration

Page 74: Spring Integration - basics

• Messaging Endpoints

o Polling Consumer

o Event-Driven Consumer

EIP in Spring Integration

Page 75: Spring Integration - basics

• Messaging Endpoints

o Competing Consumers

o Message Dispatcher

EIP in Spring Integration

Page 76: Spring Integration - basics

• Messaging Endpoints

o Selective Consumer

o Durable Subscriber

EIP in Spring Integration

Page 77: Spring Integration - basics

• Messaging Endpoints

o Idempotent Receiver – an endpoint that is able to receive and distinguish between duplicate messages

EIP in Spring Integration

Page 78: Spring Integration - basics

• System Management

oDetour

EIP in Spring Integration

Page 79: Spring Integration - basics

• System Management

oMessage History

EIP in Spring Integration

Page 80: Spring Integration - basics

• System Management

o Smart Proxy

EIP in Spring Integration

Page 81: Spring Integration - basics

• System Management

o Test Message

o Channel Purger

EIP in Spring Integration

Page 82: Spring Integration - basics

Summary

•Design carefully your integration solutions – think of maintainability, performance, scalability and other critical factors that are of higher priority

•Hopefully – you have a better insight on how to integrate different applications/components (and in particular - using Spring Framework)

•You can find this presentation and the associated source code in GitHub (https://github.com/dgyordanov/springintegration)

Page 83: Spring Integration - basics

Q&A

Thank you !

Page 84: Spring Integration - basics

References

Page 85: Spring Integration - basics

References

Enterprise Integration Patterns – Designing, Building and Deploying Messaging Solutions, Gregor Hohpe, Bobby Woolf

http://www.eaipatterns.com/

Spring integration (springsource.com)http://www.springsource.org/spring-integration

Implementing enterprise integration patterns (springsource.com)http://blog.springsource.org/2008/05/19/implementing-enterprise-integration-

patterns-part-0/

Getting started with Spring Integration v2 and Enterprise Integration Patterns – A Simple Example using File and Mail Adapters

http://java.dzone.com/articles/getting-started-spring-0

Page 86: Spring Integration - basics

References

Getting started with Spring Integration v2 and Enterprise Integration Patterns – A Simple Example using File and Mail Adapters

http://java.dzone.com/articles/getting-started-spring-0

Solving the Enterprise Integration Puzzle with Spring Integrationhttp://wordpress.transentia.com.au/wordpress/2010/01/25/solving-the-enterprise-

integration-puzzle-with-spring-integration/

Spring Integration – Enterprise Integration Patterns (Vikas Kumar’s blog)http://vikaskumar9.blogspot.com/2011/01/spring-integration-enterprise.html

Enterprise Application Integration (wikipedia category of articles)http://en.wikipedia.org/wiki/Category:Enterprise_application_integration

Understanding Enterprise Integration Patternshttp://architects.dzone.com/articles/enterprise-integration

Page 87: Spring Integration - basics

References

Spring Integration in 10 minuteshttp://blog.springsource.org/2009/02/13/982/

Spring Integration Sampleshttp://blog.springsource.org/2007/12/21/spring-integration-samples/

Spring Integration 1.0.3 Sample – Just Add Mavenhttp://blog.springsource.org/2009/07/21/spring-integration-103-samples-just-add-

maven/

Spring Integration: A new addition to the Spring portfoliohttp://blog.springsource.org/2009/07/21/spring-integration-103-samples-just-add-

maven/