Apache Open Source in Finance
Your Presenter is …

    Rob Davies
      Director of Open Source Development, Progress
       Fusesource – http://fuseso...
The Apache Software Foundation

       Background
         •  Non-profit organization incorporated in the U.S.
         •...
FUSE Open Source Stack


      Based on best of breed
       Apache and Eclipse
       Integration projects

        Apa...
Popular Apache Projects …




5   © 2009 Progress Software Corporation
Why FUSE? Stable,
                                                       Predictable Releases
                            ...
Why FUSE? Community Leadership

        ServiceMix                       ActiveMQ                     Camel               ...
Why FUSE?
                    Complete OSS Integration Portfolio

                  FUSE Services             Services Ena...
What is ActiveMQ ?




9     © 2009 Progress Software Corporation
Apache ActiveMQ

       Wildly popular, high performance, reliable message broker
         •  Supports JMS 1.1
         •...
Apache ActiveMQ – Enterpise Features


     Failover
     High Availability
     Clustering
     Wide area deployment
...
Apache ActiveMQ – High Availability


 Three types of Master/Slave.

   Fully replicated Master/Slave
   JDBC Master/Sla...
Apache ActiveMQ – Persistence

 Message References – don’t scale – but better than keeping the message in
 memory




13  ...
Apache ActiveMQ – Persistence


 ActiveMQ Uses cursors – no memory limit




14   © 2009 Progress Software Corporation
ActiveMQ – slow consumers




15   © 2009 Progress Software Corporation
Apache ActiveMQ – More than Messaging


 Seamless Apache Camel broker support

     XMPP Gateway
     FTP
     Sockets
...
Apache ActiveMQ – Use cases


 Two many to mention!

     Clustering and general purpose async messaging
     Transactio...
Apache ActiveMQ – Version 6.0


 Continue to innovate and integrate

     Continuous Availability (FUSE version only)
  ...
What is Apache Camel?


 
  http://camel.apache.org/




19   © 2009 Progress Software Corporation
Book by Gregor & Bobby!




20   © 2009 Progress Software Corporation
A selection of patterns




21   © 2009 Progress Software Corporation
Apache Camel

       Enterprise Integration Patterns “Engine”
         •  Implements all patterns in the Hohpe and Woolf ...
Message Filter




23   © 2009 Progress Software Corporation
Message Filter : XML version

     <camelContext xmlns="http://camel.apache.org/schema/spring">	
        <route>	
        ...
Expressions & Predicates




                                      BeanShell
     PHP
                                    ...
Message Filter : XML version

     <camelContext xmlns="http://camel.apache.org/schema/spring">	
        <route>	
        ...
URIs, endpoints, components


 
  http://camel.apache.org/components.html

               activemq
              ibatis
  ...
Message Filter : XML version

     <camelContext xmlns="http://camel.apache.org/schema/spring">	
          <route>	
      ...
Message Filter : Java




     from("activemq:topic:Quotes).	
       filter().xpath("/quote/product = ‘widget’").	
       ...
Message Filter : Java Complete


     package com.acme.quotes;	
     import org.apache.camel.builder.RouteBuilder;	
     p...
More Patterns!




31   © 2009 Progress Software Corporation
Content Based Router




32   © 2009 Progress Software Corporation
Splitter




33   © 2009 Progress Software Corporation
Splitter




             from("file://orders").	
                   splitter(body().tokenize("n")).	
                    ...
Splitter




           from("file://orders").	
                 splitter().xquery("/order/items").	
                     ...
Message Translator




     from("file://incoming”).	
        to("xslt:com/acme/mytransform.xsl").	
              to("http...
Quick recap



  http://camel.apache.org/enterprise-integration-
  patterns.html




37   © 2009 Progress Software Corpora...
What is Apache ServiceMix


 
  http://servicemix.apache.org/home.html




38   © 2009 Progress Software Corporation
FUSE Architecture
Apache ServiceMix

   Standards-based ESB
     •  OSGi kernel for modularity, dynamism
     •  Support ...
Apache ServiceMix – Karaf core


   Apache Felix Karaf is a small OSGi based runtime
    which provides a lightweight con...
Karaf Deployer



         OSGi bundles
         JBI artifacts
         WARs
         Spring XML configs
         Exp...
Karaf Provisioning and Administration


       List, install and uninstall applications
       Reuse of Maven repositori...
Apache CXF

       Embeddable Services “Stack”
         •  Create RESTful and Web Services
         •  Fully compliant wi...
FUSE Architecture




44   © 2009 Progress Software Corporation
Learning More: http://fusesource.com

                                                      Documentation,
               ...
Who is Using FUSE in Travel?


   Sabre Holdings standardized on FUSE for integration
    across all properties
      •  ...
Who is Using?
 Sabre Holdings
   The Situation
      •  Myriad of server-based integration platforms processing 32k
     ...
Who is Using FUSE?
 Federal Aviation Administration
   The Situation
      •  40 year old air traffic control systems sho...
Questions ?




49   © 2009 Progress Software Corporation
Upcoming SlideShare
Loading in...5
×

Rob Davies talks about Apache Open Source Software for Financial Services at the Skills Matter Open Source in Finance eXchange

4,200

Published on

In this talk Rob explains how open source from the Apache Software Foundation can achieve high performance and availability and reliable delivery of information across many diverse systems.

Find a podcast of Rob's talk here:
http://skillsmatter.com/podcast/cloud-grid/on-fuse-servicemix-activemq-cxf-and-camel/wd-506

Published in: Technology, Education
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,200
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
2
Likes
5
Embeds 0
No embeds

No notes for slide

Rob Davies talks about Apache Open Source Software for Financial Services at the Skills Matter Open Source in Finance eXchange

  1. 1. Apache Open Source in Finance
  2. 2. Your Presenter is … Rob Davies   Director of Open Source Development, Progress Fusesource – http://fusesource.com   Apache ActiveMQ, ServiceMix, Camel PMC Member   Co-founder of ActiveMQ,ServiceMix and Camel   Co-author of ActiveMQ in Action 2 © 2009 Progress Software Corporation
  3. 3. The Apache Software Foundation   Background •  Non-profit organization incorporated in the U.S. •  Founded in 1999   Meritocracy •  Person has to earn the right to contribute •  Each project run by community elected PMC   Diversity •  No project can be initiated or controlled by a single person or company •  No strict rules, but usually more than 2 distinct companies are involved in each project   Apache Licence •  Free software licence, no copyleft 3 © 2009 Progress Software Corporation
  4. 4. FUSE Open Source Stack   Based on best of breed Apache and Eclipse Integration projects   Apache ActiveMQ   Apache Camel   Apache Service   Apache CXF 4 © 2009 Progress Software Corporation
  5. 5. Popular Apache Projects … 5 © 2009 Progress Software Corporation
  6. 6. Why FUSE? Stable, Predictable Releases Frequent (often daily) snapshot releases Highly collaborative development Apache ServiceMix Developer-driven process in Apache community Test, documentation follow release, are driven by community Code, Basic docs Core development occurs within the Apache community Patches for customers are returned to community Community releases are more “cutting edge” Additional documentation and extras also contributed Progress Software adds testing, QA, docs, extras Regular, stable, tested & supported releases “Product-oriented” development End-user focused process, thru feedback in FUSE community Code FUSE ESB Test, documentation etc. are part of release Docs Demos Test Interop Support Licensing Assurance 6 © 2009 Progress Software Corporation
  7. 7. Why FUSE? Community Leadership ServiceMix ActiveMQ Camel CXF Hiram Chirino (PMC) Jon Anstey Jon Anstey (PMC) Sergey Beryozkin Rob Davies (CF, PMC) Tim Bish Hiram Chirino (CF, PMC) Ulhas Bhole Freeman Fang Dejan Bosanac Rob Davies (CF, PMC) Freeman Fang Guillaume Nodet (PMC) Hiram Chirino (CF, PMC) Claus Ibsen (PMC) Eoghan Glynn James Strachan (CF) Chris Custine Willem Jiang (PMC) Willem Jiang (PMC) Gert Vanthienen (PMC) Rob Davies (CF, PMC) Guillaume Nodet (PMC) Peter Jones Hadrian Zbarcea Willem Jiang James Strachan (CF) Eric Johnson Guillaume Nodet (PMC) Gary Tully Dan Kulp (PMC) James Strachan (CF, PMC) Gert Vanthienen Guillaume Nodet (PMC) Gary Tully (PMC) Hadrian Zbarcea (PMC) Sean O’Callaghan Gert Canthienen (PMC) Ajay Paibir Hadrian Zbarcea (PMC) James Strachan (PMC) CF = Project Co-Founder; PMC = Project Management Committee 7 © 2009 Progress Software Corporation
  8. 8. Why FUSE? Complete OSS Integration Portfolio FUSE Services Services Enablement: Lightweight, pluggable, extensible Framework services framework and service enable FUSE Message Reliable Messaging: High performance, reliable Broker messaging for tying together Services across a SOA. FUSE Mediation Integration Components: Easily defined process routing Router based on Enterprise Integration Patterns definitions Deployment Container for integration components using FUSE ESB OSGi, JBI and the Spring Framework FUSE Integration Development UI: Easily define FUSE Mediation Routes, Designer Web Services, RESTful services and messaging interfaces Management & monitoring: based on Hyperic HQ FUSE HQ Enterprise. Provides real-time administration and control. 8 © 2009 Progress Software Corporation
  9. 9. What is ActiveMQ ? 9 © 2009 Progress Software Corporation
  10. 10. Apache ActiveMQ   Wildly popular, high performance, reliable message broker •  Supports JMS 1.1 •  Clustering and Fault Tolerance •  Beyond JMS – Streaming, Message Groups, Advisory Messages, Wildcards   Myriad of connectivity options •  Native Java, C++, .Net clients available •  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 10 © 2009 Progress Software Corporation
  11. 11. Apache ActiveMQ – Enterpise Features   Failover   High Availability   Clustering   Wide area deployment   Management   Security 11 © 2009 Progress Software Corporation
  12. 12. Apache ActiveMQ – High Availability Three types of Master/Slave.   Fully replicated Master/Slave   JDBC Master/Slave   Shared File System Master/Slave 12 © 2009 Progress Software Corporation
  13. 13. Apache ActiveMQ – Persistence Message References – don’t scale – but better than keeping the message in memory 13 © 2009 Progress Software Corporation
  14. 14. Apache ActiveMQ – Persistence ActiveMQ Uses cursors – no memory limit 14 © 2009 Progress Software Corporation
  15. 15. ActiveMQ – slow consumers 15 © 2009 Progress Software Corporation
  16. 16. Apache ActiveMQ – More than Messaging Seamless Apache Camel broker support   XMPP Gateway   FTP   Sockets   Mail   Esper   Atom   Cometd   Many, many more 16 © 2009 Progress Software Corporation
  17. 17. Apache ActiveMQ – Use cases Two many to mention!   Clustering and general purpose async messaging   Transactional Messaging   High performance Market Distribution   Web Streaming of Data   Many, many more 17 © 2009 Progress Software Corporation
  18. 18. Apache ActiveMQ – Version 6.0 Continue to innovate and integrate   Continuous Availability (FUSE version only)   Improved persistence performance   Scala core   AMQP 1.0 protocol support (when finalized)   Beanstalkd protocol support   RestMQ integration   STOMP 1.1   Priority Messages   Priority Queues 18 © 2009 Progress Software Corporation
  19. 19. What is Apache Camel?  http://camel.apache.org/ 19 © 2009 Progress Software Corporation
  20. 20. Book by Gregor & Bobby! 20 © 2009 Progress Software Corporation
  21. 21. A selection of patterns 21 © 2009 Progress Software Corporation
  22. 22. Apache Camel   Enterprise Integration Patterns “Engine” •  Implements all patterns in the Hohpe and Woolf “bible” •  Simple language oriented approach – quickly create routes in Java, Scala, and Spring Configuration •  Integrate POJO, XML processing, and Scripting languages with ease •  Built-in testing framework   60+ connectivity and mediation components •  Transports: Fix, File, FTP, JMS, OpenSplice DDS, Email, TCP, UDP, REST, Web Services… •  Data Access: JDBC, JPA, Hibernate… •  B2B: HL7, EDI, Flatpack… 22 © 2009 Progress Software Corporation
  23. 23. Message Filter 23 © 2009 Progress Software Corporation
  24. 24. Message Filter : XML version <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 24 © 2009 Progress Software Corporation
  25. 25. Expressions & Predicates BeanShell PHP EL Python Groovy Ruby JavaScript SQL JSR 223 XPath OGNL XQuery 25 © 2009 Progress Software Corporation
  26. 26. Message Filter : XML version <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 26 © 2009 Progress Software Corporation
  27. 27. URIs, endpoints, components  http://camel.apache.org/components.html activemq ibatis mail rmi udp activemq.journal imap mina rnc validation bean irc mock rng velocity cxf jdbc msv seda vm direct jetty multicast sftp xmpp event jbi pojo smtp xquery file jms pop string-template xslt ftp jpa quartz timer webdav http log queue tcp 27 © 2009 Progress Software Corporation
  28. 28. Message Filter : XML version <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="activemq:topic:Quotes"/> <filter> <xpath>/quote/product = ‘widget’</xpath> <to uri="mqseries:WidgetQuotes"/> </filter> </route> </camelContext> 28 © 2009 Progress Software Corporation
  29. 29. Message Filter : Java from("activemq:topic:Quotes). filter().xpath("/quote/product = ‘widget’"). to("mqseries:WidgetQuotes"); 29 © 2009 Progress Software Corporation
  30. 30. Message Filter : Java Complete package com.acme.quotes; import org.apache.camel.builder.RouteBuilder; public class MyRouteBuilder extends RouteBuilder { public void configure() { // forward widget quotes to MQSeries from("activemq:topic:Quotes). filter().xpath("/quote/product = ‘widget’"). to("mqseries:WidgetQuotes"); } } 30 © 2009 Progress Software Corporation
  31. 31. More Patterns! 31 © 2009 Progress Software Corporation
  32. 32. Content Based Router 32 © 2009 Progress Software Corporation
  33. 33. Splitter 33 © 2009 Progress Software Corporation
  34. 34. Splitter from("file://orders"). splitter(body().tokenize("n")). to("activemq:Order.Items"); 34 © 2009 Progress Software Corporation
  35. 35. Splitter from("file://orders"). splitter().xquery("/order/items"). to("activemq:Order.Items"); 35 © 2009 Progress Software Corporation
  36. 36. Message Translator from("file://incoming”). to("xslt:com/acme/mytransform.xsl"). to("http://outgoing.com/foo"); 36 © 2009 Progress Software Corporation
  37. 37. Quick recap  http://camel.apache.org/enterprise-integration- patterns.html 37 © 2009 Progress Software Corporation
  38. 38. What is Apache ServiceMix  http://servicemix.apache.org/home.html 38 © 2009 Progress Software Corporation
  39. 39. FUSE Architecture Apache ServiceMix   Standards-based ESB •  OSGi kernel for modularity, dynamism •  Support for many communications styles including JMS, REST, WS-* •  Full JBI 1.0 implementation with component library •  POJO programming with Spring supported throughout   Rich Orchestration and Process Capabilities •  Camel for Enterprise Integration Patterns and 75+ connectors •  Support for BPEL 2.0 for long-running transactions and business process orchestration   Flexible Deployment Topology •  Lean Server Architecture – “Run what you need, where you need it” •  Runs in leading web application containers and Java EE 39 © 2009 Progress Software Corporation
  40. 40. Apache ServiceMix – Karaf core   Apache Felix Karaf is a small OSGi based runtime which provides a lightweight container onto which various components and applications can be deployed. 40 © 2009 Progress Software Corporation
  41. 41. Karaf Deployer   OSGi bundles   JBI artifacts   WARs   Spring XML configs   Exploded archives   Monitor configuration files 41 © 2009 Progress Software Corporation
  42. 42. Karaf Provisioning and Administration   List, install and uninstall applications   Reuse of Maven repositories •  Easy installation / uninstallation of features from Maven remote repositories   Easy integration with operating system •  For basic lifecycle operations   Instances management   Cloumix (from Fuseforge) to easily provision multiple agents 42 © 2009 Progress Software Corporation
  43. 43. Apache CXF   Embeddable Services “Stack” •  Create RESTful and Web Services •  Fully compliant with JAX-WS and JAX-RS •  Handles XML, binary, JSON data formats •  Extreme extensibility for new data bindings, interceptors, transports   Interoperability with major platforms •  Extensive testing with .NET WCF •  SOAP 1.1, 1.2, MTOM, WSDL, WS-Addressing •  WS-Security, WS-SecureConversation, WS-Trust, WS- ReliableMessaging   Distributed OSGi Reference Implementation •  Automatically generates web service for communication between OSGi services •  Deploys in Apache Felix and Equinox 43 © 2009 Progress Software Corporation
  44. 44. FUSE Architecture 44 © 2009 Progress Software Corporation
  45. 45. Learning More: http://fusesource.com Documentation, Interactive Forums samples, demos Blogs from our Free, “no strings” Community Leaders FUSE Downloads FAQs White Papers, Case (and answers!) Studies, Best Practices Multimedia “Get to know us” Forge: Create, Participate in OSS podcasts, videos projects 45 © 2009 Progress Software Corporation
  46. 46. Who is Using FUSE in Travel?   Sabre Holdings standardized on FUSE for integration across all properties •  “Have Code, Will Travel - Sabre Chooses Open Source to Power its Business” – New York Times   FAA selected FUSE for a major initiative to deliver a standardized SOA platform that will include FUSE and additional products from the Progress portfolio AUG 18 2008, the Federal Aviation Administration (FAA) awarded contract number, DTFAWA-08-C-00111 for Service Container Software to be used in the System Wide Information Management (SWIM) program. This contract was awarded to IONA Technologies for a ceiling award value of $37,454,764. Source: FedSources 46 © 2009 Progress Software Corporation 46
  47. 47. Who is Using? Sabre Holdings   The Situation •  Myriad of server-based integration platforms processing 32k transactions per second •  CTO group chartered with selecting integration solution for multi- year transition to SOA   The Challenge •  Reliability and stability are paramount •  Flexibility to adapt to changing requirements from airlines, FAA, etc. •  Zero transition cost to partners – exchange data in any format and connect to any system •  Transparency to internals   The Solution •  CTO group recommended FUSE after barrage of internal testing and development of core application on new platform •  Supplier Side Gateway went live – nearly 2 years of deployment without issue •  Sabre rolling out FUSE across organization – 7 additional active projects across various Sabre companies – Airline Solutions, Travelocity, etc. 47 © 2009 Progress Software Corporation 47
  48. 48. Who is Using FUSE? Federal Aviation Administration   The Situation •  40 year old air traffic control systems showing signs of age •  Predicted 1.5-2.5x increase in traffic will tax limits of infrastructure •  System Wide Information Management program established to revamp   The Challenge •  Legacy enablement to manage transition of systems from oldnew •  Reliability and stability are paramount •  Expansion plans are prohibitively expensive   The Solution •  FUSE selected over commercial and open source competition as Service Container due to lightweight footprint and exceptional POC results •  FUSE lack of upfront license fees led to $700M in savings over alternative vendors •  Early testing with 3 major air carriers – multiple implementation partners enabled •  Close relationship between FAA, partners, and FUSE services team – 7 months of consulting, 300 seats in training 48 © 2009 Progress Software Corporation 48
  49. 49. Questions ? 49 © 2009 Progress Software Corporation

×