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

10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migrationCoforge (Erstwhile WHISHWORKS)
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleRoyston Lobo
 
Capacity Planning with Free Tools
Capacity Planning with Free ToolsCapacity Planning with Free Tools
Capacity Planning with Free ToolsAdrian Cockcroft
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesAnirudh Pandit
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration PatternsSergey Podolsky
 
Event driven microservices
Event driven microservicesEvent driven microservices
Event driven microservicesAnthony Martin
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
Mulesoft corporate template final
Mulesoft corporate template  final Mulesoft corporate template  final
Mulesoft corporate template final Bui Kiet
 
Microservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesMicroservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesThe Software House
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaAraf Karsh Hamid
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQdejanb
 
A comprehensive guide to mule soft mule 4
A comprehensive guide to mule soft mule 4A comprehensive guide to mule soft mule 4
A comprehensive guide to mule soft mule 4pruthviraj krishnam
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API PlatformJohannes Ridderstedt
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailogjuljo
 
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOpsWashington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOpsBig Compass
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDKNavin Kare
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0MuleSoft
 
Virtual meetup - Exploring the Runtime Fabric deployment model
Virtual meetup - Exploring the Runtime Fabric deployment modelVirtual meetup - Exploring the Runtime Fabric deployment model
Virtual meetup - Exploring the Runtime Fabric deployment modelJimmy Attia
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsShanky Gupta
 

What's hot (20)

10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
 
Custom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker exampleCustom policies in mule 4 and a circuit breaker example
Custom policies in mule 4 and a circuit breaker example
 
Capacity Planning with Free Tools
Capacity Planning with Free ToolsCapacity Planning with Free Tools
Capacity Planning with Free Tools
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for Microservices
 
Enterprise Integration Patterns
Enterprise Integration PatternsEnterprise Integration Patterns
Enterprise Integration Patterns
 
Event driven microservices
Event driven microservicesEvent driven microservices
Event driven microservices
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Mulesoft corporate template final
Mulesoft corporate template  final Mulesoft corporate template  final
Mulesoft corporate template final
 
Microservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesMicroservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniques
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Advanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQAdvanced messaging with Apache ActiveMQ
Advanced messaging with Apache ActiveMQ
 
A comprehensive guide to mule soft mule 4
A comprehensive guide to mule soft mule 4A comprehensive guide to mule soft mule 4
A comprehensive guide to mule soft mule 4
 
The Architecture of an API Platform
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API Platform
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and HailoMicroservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
Microservices Architectures: Become a Unicorn like Netflix, Twitter and Hailo
 
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOpsWashington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
Washington DC MuleSoft Meetup: CI/CD Pipeline with MuleSoft and Azure DevOps
 
Custom Connector development using Mule SDK
Custom Connector development using Mule SDKCustom Connector development using Mule SDK
Custom Connector development using Mule SDK
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0
 
Virtual meetup - Exploring the Runtime Fabric deployment model
Virtual meetup - Exploring the Runtime Fabric deployment modelVirtual meetup - Exploring the Runtime Fabric deployment model
Virtual meetup - Exploring the Runtime Fabric deployment model
 
Mule access management - Managing Environments and Permissions
Mule access management - Managing Environments and PermissionsMule access management - Managing Environments and Permissions
Mule access management - Managing Environments and Permissions
 

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
 
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
 
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
 
Microservices
MicroservicesMicroservices
Microservices
 

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

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"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
 
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
 
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
 
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
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 

Recently uploaded (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"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
 
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
 
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
 
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
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 

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.