More Related Content Similar to Enterprise Integration Patterns with ActiveMQ Similar to Enterprise Integration Patterns with ActiveMQ (20) Enterprise Integration Patterns with ActiveMQ1. Enterprise Integration:
Patterns and Deployments with Apache ActiveMQ
Patterns and Deployments with Apache ActiveMQ
Rob Davies
CTO
FuseSource
A Progress Software Company
July 2011Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
1 Copyright Ā© 2010
2. Your presenter is: Rob Davies
ļ§ CTO at FuseSource - āthe experts in open source integration and
messagingā http://fusesource.com
ļ§ Apache ActiveMQ, ServiceMix and Camel PMC member
ļ§ Co-creator of ActiveMQ, ServiceMix and Camel
ļ§ Co-author of ActiveMQ in Action:
ļ§ Chapter 5:ActiveMQ Message Store
ļ§ Chapter 10: Deploying ActiveMQ in the Enterprise
ļ§ Chapter 11: ActiveMQ Broker Features In Action
ļ§ Chapter 12: Advanced Client Options
ļ§ Chapter 13: Tuning ActiveMQ for Performance
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
2
3. FuseSource - the experts in open source integration and messaging
FuseSource Sponsors the Apache Software Foundation
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
3
4. FuseSource: the Team that Wrote the Code
Over 25 active committers on 11 Apache
projects
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
4
5. Enterprise Integration Patterns
ļ§ A Book by Gregor Hohpe and Bobby Woolf
ļ§ Patterns and Recipes for common integration problems
ļ§ Message Centric
ļ§ Used as the basis for all the major integration products
ļ§ Should be the the first thing to reference when starting
an integration project
ļ§ http://www.eaipatterns.com/
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
5
6. Why use Messaging ?
ļ§ Remote communication between applications
ā¢ different processes on the same machine
ā¢ different process on different machines in different locations
ļ§ Platform/language integration - heterogeneous support
ļ§ Asynchronous communication - de-coupling between
producer and consumer (loose coupling)
ļ§ location transparency
ļ§ Fault tolerant communication
ā¢ guaranteed delivery
ā¢ once and only once delivery
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
6
7. What is Apache ActiveMQ ?
ļ§ Top level Apache Software Foundation Project
ļ§ Wildly popular, high performance reliable message broker
ā¢ supports JMS 1.1, adding support for AMQP 1.0 and JMS 2.0
ā¢ Clustering and Fault Tolerance
ā¢ supports publish/subscribe, point to point, message groups, out of
band messaging and streaming, distributed transactions
ļ§ Myriad of Connectivity options
ā¢ Native Java, C++ and .Net
ā¢ STOMP protocol extends reach to Ruby, JS, Perl, Python,PHP,
ActionScript ...
ļ§ Embedded and standalone deployment options
ā¢ Pre-integrated with open source integration and application
frameworks
ā¢ Deep integration with Spring Framework and JEE
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
7
8. Enterprise Integration
Message Channels ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
8
9. Message Channels = JMS Destinations
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
9
10. Publish/Subscribe Channel (Topics)
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
10
11. Point-to-Point Channel (Queues)
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
11
12. Enterprise Integration:
Message Routing ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
12
13. Message Routing: Destinations - ActiveMQ supports
Wildcards
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
13
14. Message Routing - selectors
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
14
15. Message Routing: Selectors - usually headers only
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
15
16. ActiveMQ also supports content based routing:
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
16
17. Destinations or Selectors ?
ļ§ Overhead to both destinations and Selectors
ļ§ Queues use more resources than Topics
ļ§ Selectors are OK providing thereās always a consumer for a
filtered message (āStuck Messageā problem)
ļ§ In general use more destinations before using selectors
ļ§ If you need finer control, then use selectors
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
17
18. Enterprise Integration
Types of Messages ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
18
19. Types of Message: Command
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
19
20. Types of Message: Document
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
20
21. Types of Message: Event
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
21
22. Enterprise Integration
Message Integration -
Push, Pull or both ?
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
22
23. Push Model for Integration
ļ§ Typically uses a document message being sent as an event
ā¢ Information about a change (e.g. a price change) is an event
ā¢ Information about a change and the changed information - is an
event/document combination
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
23
24. Push Model Using ActiveMQ for Scalability - FanOut
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
24
25. Push Model Using ActiveMQ for Scalability - FanOut
configuration
ActiveMQ producer connection URI - will connect to all
brokers:
fanout:(static:(tcp://broker1:61616,tcp://broker2:61616))
ActiveMQ Consumers connection URI - will connect to
only one broker
failover:(tcp://broker1:61616,tcp://broker2:61616)
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
25
26. Pull Model for Integration
ļ§ Three message types used
ā¢ Event message - to notify observers of changes
ā¢ Command message: - to request updated information
ā¢ Document message: - details of the change
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
26
27. Which model to use - Push or Pull ? - it depends :)
ļ§ Push model is good when:
ā¢ when all consumers want details of change
ā¢ Information (Document part) isnāt too large
ļ§ Push model is bad when:
ā¢ lots of consumers - but only a few want updated require updated
information
ļ§ Pull model is good when:
ā¢ lots of consumers, only a few will be interested in the change
ā¢ flexibility in the implementation
ļ§ Pull model is bad when:
ā¢ need to reduce traffic - 3 messages vs 1 for push
ā¢ 2 Destinations vs 1 for push
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
27
28. A Bad use of Pull:
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
28
29. Enterprise Integration
Message Integration -
Request/Reply
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
29
30. Two way conversation: Request/Reply
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
30
31. Two way conversation: Request/Reply with JMS
ļ§ javax.jms has helper classes for Request/Reply pattern
ā¢ QueueRequestor
ā¢ TopicRequestor
ļ§ Limitations
ā¢ Requests have to be persistent
ā¢ Request canāt be transacted
ā¢ Requestor is synchronous
ā¢ Uses a temporary destination for response:
ā there maybe a network outage - loose response
ā you may want to load balance responses - so need a Queue
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
31
32. Two way conversation: With ActiveMQ
ļ§ Donāt use javax.jms has helper classes for Request/Reply
ļ§ Donāt use temporary Queues
ļ§ What Queues that should only live as long as a
connection ?
ā¢ use timeToLive on messages
ā¢ enable garbage collection on destinations
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
32
33. Enterprise Integration
Message Integration -
Job Processing
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
33
34. Messaging for scalable Job processing
ļ§ Distributes processing
ļ§ Scalable - multiple consumers of each queue
ļ§ Fault tolerant - processing can survive Processor outage
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
34
35. Enterprise Integration
Deployment Pattern - Hub and
Spoke
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
35
36. Geographically Dispersed Hub and Spoke
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
36
37. Geographically Dispersed Hub and Spoke - Challenges
ļ§ Need immediate time two way communication
between remote office and head office
ļ§ remote office applications still need to work if head
office is not contactable
ļ§ Network outage, or unreliable networks, need to be
catered for
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
37
38. Geographically Dispersed Hub and Spoke - Solution
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
38
39. Best practices for ActiveMQ networks
ļ§ For large number of remote brokers - or when
firewalls are an issue - use duplex networks - the
remote broker establish the connection to the āhead
officeā
ļ§ Use network filters - to cut down network chatter
ļ§ Consider using static includes on networks - if
networks donāt need to be dynamic
ļ§ Use compression - especially over slow links
ļ§ Networks are fault tolerant - so can failover to a slave
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
39
40. Enterprise Integration
Deployment Pattern - Failover
between data centres ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
40
41. ActiveMQ use case - geographically dispersed data
centres
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
41
42. ActiveMQ Networks - using failover
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
42
43. ActiveMQ use case - geographically dispersed data
centres - redundant links
ļ§ Fully redundant inter-connected brokers
ļ§ If a network link dies - messages need to automatically
routed another way
ļ§ Needs to work for both Queues and Topics
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
43
44. ActiveMQ use case - geographically dispersed data
centres - redundant links - continued
ļ§ Set networkTTL to 2
ļ§ Queues will automatically work
ļ§ Topics need extra configuration ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
44
45. ActiveMQ use case - geographically dispersed data centres -
redundant links - continued - support for topics
Enable duplicate subscriptions over the network:
<networkConnectors> <networkConnector uri="static:(tcp://brokerB:61617)" name="A-B"
networkTTL="2" suppressDuplicateTopicSubscriptions="false"> </networkConnector>
<networkConnector uri="static:(tcp://brokerC:61618)" name="A-C" networkTTL="2"
suppressDuplicateTopicSubscriptions="false">
</networkConnector> </networkConnectors>
Ensure every Topic message is only sent through one network
connection - the one with the highest priority:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" enableAudit="true">
<dispatchPolicy>
<priorityNetworkDispatchPolicy/>
</dispatchPolicy>
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
45
46. Enterprise Integration:
What about other Enterprise
Integration Patterns ?
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
46
47. Some Integration Patterns
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
47
48. What is Apache Camel ?
ļ§ A powerful open source Mediation Router/Integration
Framework
ļ§ Based on Enterprise Integration Patterns
ļ§ 100 + integration components
ļ§ Designed to:
ā¢ have no container dependency
ā¢ but ... work very well with Apache ActiveMQ, ServiceMix and CXF
ā¢ Can integrate seamlessly with Spring
ā¢ Easily extendable
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
48
49. What is Apache Camel
ļ§ Camel and EIP
Apache WebSphereMQ
ActiveMQ
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
49
50. What is Apache Camel
ļ§ Camel and EIP
16 Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
50
51. What is Apache Camel
ļ§ Camel and EIP
from filter send to
A message B
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
51
52. What is Apache Camel
ļ§ Camel and EIP
from(A) filter(predicate) to(B)
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
52
53. What is Apache Camel
ļ§ Camel and EIP
from(A) .filter(isWidget) .to(B)
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
53
54. What is Apache Camel
ļ§ Camel and EIP
from(A).filter(isWidget).to(B);
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
54
55. What is Apache Camel
ļ§ Camel and EIP
isWidget = xpath("/quote/product = āwidgetā");
from(A).filter(isWidget).to(B);
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
55
56. What is Apache Camel
ļ§ Camel and EIP
Endpoint A = endpoint("activemq:queue:quote");
Endpoint B = endpoint("mq:quote");
Predicate isWidget = xpath("/quote/product = āwidgetā");
from(A).filter(isWidget).to(B);
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
56
57. What is Apache Camel
ļ§ Filter Route
public void configure() throws Exception {
Endpoint A = endpoint("activemq:queue:quote");
Endpoint B = endpoint("mq:quote");
Predicate isWidget = xpath("/quote/product = āwidgetā");
from(A).filter(isWidget).to(B);
}
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
57
58. What is Apache Camel
ļ§ Filter Route - Java DSL
import org.apache.camel.builder.RouteBuilder;
public class FilterRoute extends RouteBuilder {
public void configure() throws Exception {
Endpoint A = endpoint("activemq:queue:quote");
Endpoint B = endpoint("mq:quote");
Predicate isWidget = xpath("/quote/product = āwidgetā");
from(A).filter(isWidget).to(B);
}
}
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
58
59. What is Apache Camel
ļ§ Filter Route - Java DSL
import org.apache.camel.builder.RouteBuilder;
public class FilterRoute extends RouteBuilder {
public void configure() throws Exception {
from("activemq:queue:quote")
.filter().xpath("/quote/product =āwidgetā")
.to("mq:quote");
}
}
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
59
60. Enterprise Integration:
Lets look at the Content based
filter ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
60
61. What is Apache Camel
ļ§ Content Based Router
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
61
62. What is Apache Camel
ļ§ Content Based Router - XML DSL
<camelContext>
<route>
<from uri="activemq:NewOrders"/>
<choice>
<when>
<xpath>/order/product = 'widget'</xpath>
<to uri="activemq:Orders.Widgets"/>
</when>
<otherwise>
<to uri="activemq:Orders.Gadgets"/>
</otherwise>
</choice>
</route>
</camelContext>
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
62
63. What is Apache Camel
ļ§ Content Based Router - Java DSL
from("activemq:NewOrders")
.choice()
.when().xpath("/order/product = 'widget'")
.to("activemq:Orders.Widget")
.otherwise()
.to("activemq:Orders.Gadget");
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
63
64. What is Apache Camel
ļ§ Endpoints as URIs
use file instead
from("file:inbox/orders")
.choice()
.when().xpath("/order/product = 'widget'")
.to("activemq:Orders.Widget")
.otherwise()
.to("activemq:Orders.Gadget");
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
64
65. What is Apache Camel
ļ§ Endpoints as URIs
parameters
from("file:inbox/orders?delete=true")
.choice()
.when().xpath("/order/product = 'widget'")
.to("activemq:Orders.Widget")
.otherwise()
.to("activemq:Orders.Gadget");
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
65
66. Enterprise Integration:
Apache Camel and ActiveMQ
work well together ...
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
66
67. ActiveMQ with embedded Camel: Flexible and Performant
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
67
68. ActiveMQ with embedded Camel: import camel into
ActiveMQ broker config:
<beans>
Ā Ā Ā <brokerĀ brokerName="testBroker"Ā Ā xmlns="http://activemq.apache.org/schema/core">
Ā Ā Ā Ā <transportConnectors>
Ā Ā Ā Ā Ā Ā <transportConnectorĀ uri="tcp://localhost:61616"/>
Ā Ā Ā Ā </transportConnectors>
Ā Ā </broker>
Ā Ā <importĀ resource="camel.xml"/>
</beans>
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
68
69. ActiveMQ with embedded Camel: Setup Camel Context in
usual way
<camelContext errorHandlerRef="errorHandler" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="activemq:queue:test.queue"/>
<choice>
<when>
<xpath>$foo = 'bar'</xpath>
<to uri="activemq:topic:topic.bar"/>
</when>
<when>
<xpath>$foo = 'cheese'</xpath>
<to uri="activemq:topic:topic.cheese"/>
</when>
<otherwise>
<to uri="activemq:topic:topic.all"/>
</otherwise>
</choice>
</route>
</camelContext>
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
69
70. Enterprise Integration:
Lets look at some challenges
for messaging
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
70
71. Messaging Challenges
ļ§ Scalability
ā¢ Vertical scaling - how do we support a 100,000 destinations?
ā¢ Horizontal Scaling - how can we linear scale greater than
100k destinations ?
ļ§ Performance - everything needs to be faster -
ActiveMQ - should be the fastest open source
messaging
ļ§ Continuous availability (active active clustering)
ļ§ Protocol support - thereās a range of choices -
ActiveMQ should support them.
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
71
72. CERN Large Hadron Collider
ļ§ Worlds largest and most powerful particle accelerator
ļ§ Currently 10 different Collider Experiments
ļ§ Budget of $9 billion
ļ§ 30G/s optical network
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
72
73. CERN Large Hadron Collider
ļ§ Produces 15 petabytes of data annually
ļ§ WLCG ā 34 different countries
ļ§ Lots of Data ā lots of destinations
ļ§ Requires next generation messaging to cope with information demand
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
73
74. Need new Messaging Architecture
ļ§ Extreme throughput
ļ§ Scalable to millions of
Dynamic Destinations
ļ§ Extensive protocol support
ļ§ Scale to x100k connections
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
74
75. Introducing ActiveMQ Apollo
ļ§ Scala based core for very fast, scalable dispatching
ļ§ modular design ā independent lifecycle support
ļ§ Enhanced Queues
ļ§ More Protocols
ļ§ Richer REST based Management
ļ§ Intelligent Clustering
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
75
76. Hawtdispatch
ļ§ Based on Grand Central Dispatch (from OS X)
ļ§ Event based ā supports both reactor and proactor
patterns
ļ§ Uses fixed size thread pool ā to match number of cores
available
ļ§ Reduces Thread contention - tries to use same thread
and scales to very large connections
ļ§ Handles millions of messages per second
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
76
77. More protocols than OpenWire and STOMP
ļ§ MQTT
ā¢ IBM developed open protocol- supported by WebsphereMQ, Mosquitto and
now Apollo
ā¢ Publish/Subscribe and Queues (version 5 spec)
ā¢ Designed to be used from embedded devices all the way up to application
stacks
ļ§ Beanstalk
ā¢ Short lived tasks
ā¢ sender needs to take action if a job is not consumed
ā¢ sender needs to know job is on the Queue
ā¢ very scalable
ļ§ AMQP 1.0
ā¢ First Enterprise Version
ā¢ supports distributed transactions
ā¢ supports reliable messaging
ā¢ Flow Control should now work
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
77
78. Automatic Destination Partioning (clustering)
ļ§ Uniform load across multiple brokers
ļ§ Clients automatically connect to the correct broker(s)
ļ§ Massive scalability
ļ§ Reduce network hops
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
78
79. What about performance ?
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
79
80. FuseSource Subscription = Long Term Success
SupportĀ
ā¢Enterprise-classĀ 24x7Ā coverage
ā¢GlobalĀ organization
ā¢Mission-critical
integrationĀ expertise InfluenceĀ
ā¢UpdatesĀ andĀ migration ā¢ProductĀ roadmaps
assistance
ā¢PlanningĀ processes
Tools ā¢ConduitĀ toĀ Apache
ā¢Development
ā¢Operations
ā¢Management
ā¢Performance
ā¢Documentation
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
80
81. FuseSource Knows How To Build Enterprise Apps
HelpĀ throughoutĀ theĀ softwareĀ developmentĀ lifecycleā¦
PilotĀ /Ā
Investigation Development Production
PoC
GetĀ started TryĀ itĀ out BuildĀ right DeployĀ safely
ā¢trainingĀ videos ā¢techĀ overviewsĀ ā¢dev.Ā subscription ā¢prof.Ā subscription
ā¢webinars ā¢training ā¢arch.Ā workshop ā¢healthĀ checkĀ
ā¢tutorials ā¢projectĀ planning ā¢bestĀ practices ā¢perf.Ā workshop
ā¢documentation ā¢pilotĀ workshop ā¢QoSĀ ā¢HAĀ workshop
ā¢whiteĀ papers ā¢pilotĀ subscriptionĀ development ā¢training
ā¢training
AvailableĀ forĀ Free FuseSourceĀ PaidĀ Engagement
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
81
82. FuseSource Track Record
100ās millions+ Transactions every day running on Fuse
200,000+ Downloads per month
200+ Customers and growing rapidly
100%+ Rapid growth of FuseSource for past 3 years
24 hr Enterprise Support every day
25+ Apache Committers and Contributors
15+ Years of Enterprise Integration experience
#1
Number one provider of
Open Source Integration and Messaging
products and services
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
82
83. Any Questions?
NoĀ vendorĀ lock-in
FreeĀ toĀ redistribute
EnterpriseĀ classā¦ā¦.. A Progress Software Company
Copyright Ā© 2010 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
83
84. Enterprise ActiveMQ - More Information:
ļ§ http://fusesource.com/
ļ§ http://activemq.apache.org/
ļ§ http://camel.apache.org/
ļ§ http://activemq.apache.org/apollo/
Copyright Ā© 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. A Progress Software Company
84
Editor's Notes Key message ā The FuseSource team is the force behind the projects ā we are not just a body shop that likes to code. We built the projects, we know the projects, we influence the projects The top four photos show the biggest names at Apache, and may be recognized and revered by the prospect. Key point: a support is about much more than just support and bug fixing. It bridges the gap between community-developed code and enterprise development. Key message: we support customers throughout the entire software development lifecycle, and know what teams need and when. We know how to build enterprise apps A pilot subscription includes 8x5 support, but MUST include consulting and training. FuseSource does not sell 3 months of support alone. QoS = qualities of service. As the experts in building mission-critical, enterprise apps we know how to build security, scalability, etc. into enterprise deployments. Key message ā the code is tried and true, and FuseSource is experienced.