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.
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Spring Integration and EIP Introduction
1. Spring Integration
Connecting Enterprise Applications
Copyright 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
2
Copyright 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?
3
Copyright 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.
4
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
5. Characteristics of
Messaging
Transport
The waiter takes an order and moves it to the barista
Asynchronous
Different actors do different things in parallel
Translation
menu item => number => recipe
Routing
Orders arrive back at the proper table
5
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
6. Why messaging (1/4)
Loose coupling
6
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
7. Why Messaging? (2/4)
Performance
7
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
8. Why Messaging? (3/4)
Flexibility
8
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
9. Why Messaging? (4/4)
Interception and filtering
9
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
10. Spring Integration
10
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
11. Hello world
<service-activator input-channel=quot;inputChannelquot;
default-output-channel=quot;outputChannelquot;
ref=quot;helloServicequot;
method=quot;sayHelloquot;/>
<beans:bean id=quot;helloServicequot; class=quot;...HelloServicequot;/>
public class HelloService {
public String sayHello(String name) {
return quot;Hello quot; + name;
}
}
11
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
12. Hello world
inputChannel =
context.getBean(quot;inputChannelquot;);
outputChannel =
context.getBean(quot;outputChannelquot;);
inputChannel.send(new StringMessage(quot;Worldquot;));
System.out.println(
outputChannel.receive().getPayload());
$ java HelloWorldDemo
Hello World
12
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
13. Channels
<channel id=quot;incomingquot;/>
<channel id=quot;orderedNotificationsquot;>
<queue capacity=quot;10quot;/>
</channel>
13
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
14. Channels
14
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
15. MessageEndpoints
MessageEndpoints are the knots that tie applications
to the integration solution.
MessageEndpoint
Channel
Sender Receiver
Application Application
15
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
16. Missing link
Invoked by Sender Who is responsible?
Channel
Sender Receiver
Application Application
16
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
17. The Poller
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.
<poller default=quot;truequot;/>
In Spring Integration:
you don't need to worry about it
17
Copyright 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
18
Copyright 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
19
Copyright 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.
20
Copyright 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)
21
Copyright 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
22
Copyright 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
23
Copyright 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
24
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
25. Basic Integration
25
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
26. With a bus
26
Copyright 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
27
Copyright 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
28
Copyright 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
29
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
30. Competing Consumers
30
Copyright 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
31
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
32. Selective Consumer
32
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
33. Splitter
33
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
34. Detour
34
Copyright 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
35
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
36. Demo Time
36
Copyright 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
37
Copyright 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.
38
Copyright 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’
39
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.