SlideShare a Scribd company logo
1 of 84
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
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
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
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
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
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
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
Enterprise Integration




    Message Channels ...




    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
8
Message Channels = JMS Destinations




    Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
9
Publish/Subscribe Channel (Topics)




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
10
Point-to-Point Channel (Queues)




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
11
Enterprise Integration:



 Message Routing ...




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
12
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
Message Routing - selectors




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
14
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
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
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
Enterprise Integration




     Types of Messages ...




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
18
Types of Message: Command




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
19
Types of Message: Document




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
20
Types of Message: Event




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
21
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
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
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
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
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
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
A Bad use of Pull:




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
28
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
Two way conversation: Request/Reply




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
30
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
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
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
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
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
Geographically Dispersed Hub and Spoke




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
36
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
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
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
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
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
ActiveMQ Networks - using failover




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
42
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
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
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
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
Some Integration Patterns




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
47
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
What about performance ?




     Copyright © 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved.   A Progress Software Company
79
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
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
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
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
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

More Related Content

What's hot

What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC ExplainedWhat is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explainedjeetendra mandal
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Edureka!
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftMuleSoft
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextDaniel Bryant
 
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowFrank Munz
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices Amazon Web Services
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzieTerminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzieFHIR Developer Days
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architectureNikhilBarthwal4
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for MicroservicesChris Richardson
 
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012Nick Galbreath
 
What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...Edureka!
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1SmartBear
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentalsabhi1112
 
Repository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsRepository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsHatim Hakeel
 

What's hot (20)

Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC ExplainedWhat is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
 
Why Microservices
Why MicroservicesWhy Microservices
Why Microservices
 
The Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoftThe Emerging Integration Reference Architecture | MuleSoft
The Emerging Integration Reference Architecture | MuleSoft
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to KnowOracle Service Bus 12c (12.2.1) What You Always Wanted to Know
Oracle Service Bus 12c (12.2.1) What You Always Wanted to Know
 
From Monolithic to Microservices
From Monolithic to Microservices From Monolithic to Microservices
From Monolithic to Microservices
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzieTerminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architecture
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
DevOpsSec: Appling DevOps Principles to Security, DevOpsDays Austin 2012
 
What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...What are Microservices | Microservices Architecture Training | Microservices ...
What are Microservices | Microservices Architecture Training | Microservices ...
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
SOA Fundamentals
SOA  FundamentalsSOA  Fundamentals
SOA Fundamentals
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
 
Repository and Unit Of Work Design Patterns
Repository and Unit Of Work Design PatternsRepository and Unit Of Work Design Patterns
Repository and Unit Of Work Design Patterns
 

Similar to Enterprise Integration Patterns with ActiveMQ

MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...Jitendra Bafna
 
Vasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfVasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfssuser57cef8
 
Firewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data accessFirewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data accessSumit Sarkar
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQdejanb
 
Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Cloudera, Inc.
 
Application Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersApplication Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersRocket Software
 
Integrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelIntegrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelJustin Reock
 
Securely Scaling Agile Software Delivery: Traceability, Visibility and Colla...
Securely Scaling Agile Software Delivery:  Traceability, Visibility and Colla...Securely Scaling Agile Software Delivery:  Traceability, Visibility and Colla...
Securely Scaling Agile Software Delivery: Traceability, Visibility and Colla...Kevin Hancock
 
The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youRogue Wave Software
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionCollabNet
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackBob Sokol
 
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceCloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceRuma Sanyal
 
Oracle Access Management - Customer presentation
Oracle Access Management - Customer presentation   Oracle Access Management - Customer presentation
Oracle Access Management - Customer presentation Delivery Centric
 
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery AutomationIl paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery AutomationHP Enterprise Italia
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 

Similar to Enterprise Integration Patterns with ActiveMQ (20)

MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
MuleSoft Surat Virtual Meetup#16 - Anypoint Deployment Option, API and Operat...
 
Vasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdfVasudevan_Bhaskar.pdf
Vasudevan_Bhaskar.pdf
 
Firewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data accessFirewall friendly pipeline for secure data access
Firewall friendly pipeline for secure data access
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
 
Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014
 
Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18Big Data Fundamentals 6.6.18
Big Data Fundamentals 6.6.18
 
Big Data Fundamentals
Big Data FundamentalsBig Data Fundamentals
Big Data Fundamentals
 
Application Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue CustomersApplication Lifecycle Management for Multivalue Customers
Application Lifecycle Management for Multivalue Customers
 
02 basics
02 basics02 basics
02 basics
 
Integrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and CamelIntegrating Postgres with ActiveMQ and Camel
Integrating Postgres with ActiveMQ and Camel
 
Securely Scaling Agile Software Delivery: Traceability, Visibility and Colla...
Securely Scaling Agile Software Delivery:  Traceability, Visibility and Colla...Securely Scaling Agile Software Delivery:  Traceability, Visibility and Colla...
Securely Scaling Agile Software Delivery: Traceability, Visibility and Colla...
 
The forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for youThe forgotten route: Making Apache Camel work for you
The forgotten route: Making Apache Camel work for you
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
A proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversionA proven path for migrating from clearcase to git and or subversion
A proven path for migrating from clearcase to git and or subversion
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
 
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS AudienceCloud 2014: Top Five Best Practices for Your Application PaaS Audience
Cloud 2014: Top Five Best Practices for Your Application PaaS Audience
 
Oracle Access Management - Customer presentation
Oracle Access Management - Customer presentation   Oracle Access Management - Customer presentation
Oracle Access Management - Customer presentation
 
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery AutomationIl paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation
 
Em13c features- HotSos 2016
Em13c features- HotSos 2016Em13c features- HotSos 2016
Em13c features- HotSos 2016
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 

More from Rob Davies

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the CloudRob Davies
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesRob Davies
 
Connecting applicationswitha mq
Connecting applicationswitha mqConnecting applicationswitha mq
Connecting applicationswitha mqRob Davies
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesRob Davies
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworksRob Davies
 

More from Rob Davies (7)

Integration in the Cloud
Integration in the CloudIntegration in the Cloud
Integration in the Cloud
 
Messaging For the Cloud and Microservices
Messaging For the Cloud and MicroservicesMessaging For the Cloud and Microservices
Messaging For the Cloud and Microservices
 
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq
 
Connecting applicationswitha mq
Connecting applicationswitha mqConnecting applicationswitha mq
Connecting applicationswitha mq
 
Fuse overview
Fuse overviewFuse overview
Fuse overview
 
OSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application BundlesOSGi made simple - Fuse Application Bundles
OSGi made simple - Fuse Application Bundles
 
How opensourceworks
How opensourceworksHow opensourceworks
How opensourceworks
 

Recently uploaded

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 

Recently uploaded (20)

Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 

Enterprise Integration Patterns with ActiveMQ

  • 1. 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

  1. 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.
  2. 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.
  3. 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.
  4. Key message – the code is tried and true, and FuseSource is experienced.