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

Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesDrew Hansen
 
Cloud Native Applications Maturity Model
Cloud Native Applications Maturity ModelCloud Native Applications Maturity Model
Cloud Native Applications Maturity ModelJim Bugwadia
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Brian Brazil
 
App Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptxApp Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptxMONISH407209
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?Codit
 
SRE and GitOps for Building Robust Kubernetes Platforms.pdf
SRE and GitOps for Building Robust Kubernetes Platforms.pdfSRE and GitOps for Building Robust Kubernetes Platforms.pdf
SRE and GitOps for Building Robust Kubernetes Platforms.pdfWeaveworks
 
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys MeetupsMuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys MeetupsAngel Alberici
 
Dataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreDataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreVikalp Bhalia
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and dockerAlex Ivy
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introductionJason Vance
 
Best Practices for API Security
Best Practices for API SecurityBest Practices for API Security
Best Practices for API SecurityMuleSoft
 
Dell Boomi AtomSphere - A presentation by RapidValue Solutions
Dell Boomi AtomSphere  - A presentation by RapidValue SolutionsDell Boomi AtomSphere  - A presentation by RapidValue Solutions
Dell Boomi AtomSphere - A presentation by RapidValue SolutionsRapidValue
 
Introduction to CloudHub 2.0
Introduction to CloudHub 2.0Introduction to CloudHub 2.0
Introduction to CloudHub 2.0NeerajKumar1965
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...satyasekhar123
 
Benefits of integration with the Mulesoft Anypoint Platform
Benefits of integration with the Mulesoft Anypoint PlatformBenefits of integration with the Mulesoft Anypoint Platform
Benefits of integration with the Mulesoft Anypoint PlatformCloud Analogy
 
SOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven ArchitectureSOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven ArchitectureJeppe Cramon
 

What's hot (20)

Snowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD PipelinesSnowflake Automated Deployments / CI/CD Pipelines
Snowflake Automated Deployments / CI/CD Pipelines
 
Cloud Native Applications Maturity Model
Cloud Native Applications Maturity ModelCloud Native Applications Maturity Model
Cloud Native Applications Maturity Model
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)
 
App Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptxApp Modernization Pitch Deck.pptx
App Modernization Pitch Deck.pptx
 
The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?The Ideal Approach to Application Modernization; Which Way to the Cloud?
The Ideal Approach to Application Modernization; Which Way to the Cloud?
 
SRE and GitOps for Building Robust Kubernetes Platforms.pdf
SRE and GitOps for Building Robust Kubernetes Platforms.pdfSRE and GitOps for Building Robust Kubernetes Platforms.pdf
SRE and GitOps for Building Robust Kubernetes Platforms.pdf
 
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys MeetupsMuleSoft Runtime Fabric (RTF): Foundations  : MuleSoft Virtual Muleys Meetups
MuleSoft Runtime Fabric (RTF): Foundations : MuleSoft Virtual Muleys Meetups
 
Dataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStoreDataweave Libraries and ObjectStore
Dataweave Libraries and ObjectStore
 
DevOps introduction
DevOps introductionDevOps introduction
DevOps introduction
 
Microservices and docker
Microservices and dockerMicroservices and docker
Microservices and docker
 
Terraform introduction
Terraform introductionTerraform introduction
Terraform introduction
 
Mulesoft ppt
Mulesoft pptMulesoft ppt
Mulesoft ppt
 
Best Practices for API Security
Best Practices for API SecurityBest Practices for API Security
Best Practices for API Security
 
Dell Boomi AtomSphere - A presentation by RapidValue Solutions
Dell Boomi AtomSphere  - A presentation by RapidValue SolutionsDell Boomi AtomSphere  - A presentation by RapidValue Solutions
Dell Boomi AtomSphere - A presentation by RapidValue Solutions
 
Introduction to CloudHub 2.0
Introduction to CloudHub 2.0Introduction to CloudHub 2.0
Introduction to CloudHub 2.0
 
[Final] best practices for access management (mule soft meetups riyadh) - j...
[Final] best practices for access management (mule soft meetups   riyadh) - j...[Final] best practices for access management (mule soft meetups   riyadh) - j...
[Final] best practices for access management (mule soft meetups riyadh) - j...
 
Benefits of integration with the Mulesoft Anypoint Platform
Benefits of integration with the Mulesoft Anypoint PlatformBenefits of integration with the Mulesoft Anypoint Platform
Benefits of integration with the Mulesoft Anypoint Platform
 
SOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven ArchitectureSOA, Microservices and Event Driven Architecture
SOA, Microservices and Event Driven Architecture
 
Devops ppt
Devops pptDevops ppt
Devops ppt
 

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
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQRob 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 (8)

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
 
Connecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQConnecting Applications Everywhere with ActiveMQ
Connecting Applications Everywhere with ActiveMQ
 
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

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
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
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

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.