Spring Integration and EIP Introduction

Post on 14-Jan-2015

4.740 views 3 download

Tags:

description

Positions Spring Integration in a messaging architecture and compares with a few others. Also glances over some enterprise integration patterns.With the presentation are a lot of live demo's, so it might not make sense in isolation.

Transcript of Spring Integration and EIP Introduction

Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.

Spring Integration

Connecting Enterprise Applications

2Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 2

Topics in this session

• Introduction to Spring Integration• Spring Integration Compared• Enterprise Integration Patterns• Examples and demos• Summary and questions

3Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 3

The synchronous breakdown

• A customer orders a coffee– and waits

• The waiter walks to the barista and passes the order– and waits

• The barista walks to the coffee machine– and waits

• How about the next customer?

4Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 4

What is Messaging?

How can multiple agents work together?...

...without being in each others way.

Waiter helps customer and cook to collaborate.

5Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 5

Characteristics of Messaging

TransportThe waiter takes an order and moves it to the barista

AsynchronousDifferent actors do different things in parallel

Translationmenu item => number => recipe

RoutingOrders arrive back at the proper table

6Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6

Why messaging (1/4)

Loose coupling

7Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 7

Why Messaging? (2/4)

Performance

8Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 8

Why Messaging? (3/4)

Flexibility

9Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9

Why Messaging? (4/4)

Interception and filtering

10Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 10

Spring Integration

11Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 11

Hello world

<service-activator input-channel="inputChannel" default-output-channel="outputChannel" ref="helloService" method="sayHello"/>

<beans:bean id="helloService" class="...HelloService"/>

public class HelloService { public String sayHello(String name) { return "Hello " + name; }}

12Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 12

Hello world

inputChannel = context.getBean("inputChannel");

outputChannel = context.getBean("outputChannel");

inputChannel.send(new StringMessage("World"));System.out.println(

outputChannel.receive().getPayload());

$ java HelloWorldDemoHello World

13Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13

Channels

<channel id="incoming"/>

<channel id="orderedNotifications"> <queue capacity="10"/></channel>

14Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14

Channels

15Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15

MessageEndpoints

SenderApplication

ReceiverApplication

Channel

MessageEndpoint

MessageEndpoints are the knots that tie applications to the integration solution.

16Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16

Missing link

SenderApplication

ReceiverApplication

Channel

Invoked by Sender Who is responsible?

17Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17

The Poller

<poller default="true"/>In Spring Integration:

you don't need to worry about it

A Message Bus enables separate applications to work together, but in a decoupled fashion such that applications can be easily added or removed without affecting the others.

18Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18

Topics in this session

• Introduction to Spring Integration• Comparing Spring Integration to others• Enterprise Integration Patterns• Examples and demos• Summary and questions

19Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19

What’s different about Spring Integration?

• Can be used from within an existing application.

• Lightweight (like any Spring application):– run from JUnit test– run within webapp

• Focussed on messaging and integration• Not an ESB

20Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 20

Others in general

• Full blown ESB• It’s an application, not a framework

– You need to install it – You need to run it

• Typically a lot heavier• Focus on the deployment architecture

not the actual integration.

21Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21

Mule

• Integrates with Spring• Lots of integration options:

– REST, SOAP– JMS

• Embeddable• Distribution

– 32Mb– 2Mb jar only (for embedding)

22Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 22

ServiceMix

• Based on JBI – (Mediated Message Exchange Model)

• Distribution:– 100mb

• http://servicemix.apache.org/how-to-evaluate-an-esb.html

23Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23

Camel

• Most direct competition for Spring Integration

• Less consistent with Spring• Focus on routing• Fluent interface as an alternative to xml

24Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24

Considerations

• Routing complexity– a bus can be useful for more complex

routing problems

• Comfort zone– what will the developers feel at home with

• Keep it clean– don’t scatter the routing rules

25Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.

25

Basic Integration

26Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.

26

With a bus

27Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 27

Topics in this session

• Introduction to Spring Integration• Comparing Spring Integration to others• Enterprise Integration Patterns• Examples and demos• Summary and questions

28Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 28

Message Router

• Takes messages from a channel and forwards them to different channels

29Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 29

Competing Consumers

• Multiple consumers take messages from the channel

• First come first serve

30Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 30

Competing Consumers

31Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 31

Selective Consumer

• Select only relevant messages• Reduces the need for dedicated

channels

32Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 32

Selective Consumer

33Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 33

Splitter

34Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 34

Detour

35Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35

Topics in this session

• Introduction to Spring Integration• Comparing Spring Integration to others• Enterprise Integration Patterns• Examples and demos• Summary and questions

36Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 36

Demo Time

37Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 37

Topics in this session

• Introduction to Spring Integration• Comparing Spring Integration to others• Enterprise Integration Patterns• Examples and demos• Summary and questions

38Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38

Summary

• Spring Integration– works from existing Spring applications– lightweight– decentralized (if you want)

• Enterprise Integration Patterns– describe ways of plumbing the enterprise

application landscape.

39Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 39

Questions and Plugs

• You can ask questions now while you ignore these shameless plugs

• Thanks to Babiche Israel (cartoons)– http://babicheisrael.blogspot.com/

• Come to Java meetup May 23– http://tinyurl.com/66hfnt or– Google for ‘java meetup q2 2008’