SlideShare a Scribd company logo
Make easier Integration of your
services with Fuse Solutions


Charles Moulliard
Sr. Enterprise Architect / Apache member

23/01/2013
Speaker : Charles Moulliard
 • Engineer in Agronomy & Master in Zoology
   19 years of experience in IT world development (J2EE, .NET),
   specialized in new technologies web/Internet & integration,
   Project manager in bank, financial, telco, insurance - Team
   builder – Coach - Evangelist
 • Architect @RedHat
 • Apache Committer : ServiceMix, Karaf (PMC), Camel (PMC),
  DeltaSpike, Fabric

        Twitter : http://twitter.com/cmoulliard
        LinkedIn : http://www.linkedin.com/in/charlesmoulliard
        My blog : http://cmoulliard.blogspot.com
        Slideshare : http://www.slideshare.net/cmoulliard
Agenda

●
    Why Integration is so hard
●
    How Fuse technology makes that easier
●
    What we offer
●
    Fuse Enterprise (MB, ESB)
●
    Fuse IDE
●
    Fuse Management Console
Why integration is so hard
Why integration is so hard

  IT is like a jungle, completely crazy
Why integration is so hard

  Constellation of protocols & standards
                                                                                   RMI
DCOM
             HTTP(S)               (S)FTP(S)                         POP
                                                      UDP
                                                                                           RPC
                   (S)SMTP                                                 IMAP
   CORBA
                                           TCP/IP           SSL
                                                                                     SSH
                                                                       SNMP



       PKI
                                                                                         JavaEE
                       SOA                BPEL
                                                            BPMN             JPA

       WS-*
                         SCA                                                 JMS         AMQP
                                               REST           JDBC

           POJO
                             EJB
                                                      JBI
Why integration is so hard

  Support huge family of Formats


     EDI


                                          CSV

   XML
                                   SOAP
Why integration is so hard
  Microsoft (.NET, COM) ↔ Java (EJB, POJO)
  CORBA, DCOM fail to simplify inter-operability
                                    BRIDGE




CORBA



             DCOM
How Fuse makes that easier
How Fuse makes that easier

    What do we need to solve these issues

●
    Technology supporting existing protocols/standards
●
    Facilitate Transformation or Data Formating
●
    Integration language
●
    Runtime to deploy services
●
    Modularity/Granularity
●
    Async architecture & persistence
●
    Tools to develop/package & deploy projects
●
    Supervision strategy
●
    (Cloud) infrastructure
How Fuse make that easier

    Where do we find such a technology →
    OpenSource community (Apache, JBoss)

●
    Integration Technology (Camel)
●
    Multi-Technology Java OSGI Server (Karaf)
●
    WS/REST framework (CXF) – SOA Vision
●
    Middleware (ActiveMQ)
●
    Modular runtime (Felix)
●
    OSGI Tooling (OPS4J)
●
    EE Features – JPA, Web, JTA, JNDI (Aries)
●
    Cloud (jcloud, cloudstack, openshift)
Camel Integration Engine ...
Camel

●
    Birthdate - March 2007
●
    OpenSource Integration Framework implementing
    EIP patterns (Book : 2005 by Gregor Hohpe &
      Bobby Woolf)
●
    Why EIP ? To provide words, grammar & language
●
    Camel uses a Domain Specific Language
    transposing the EIP patterns into Java, XML, Scala
Camel

Some of features/characteristics
  ●
    In memory bus ← → alternative to JBI - NMR
  ●
      Route objects → can be XML, File, Stream, Bytes
  ●
      Predicate & Expression language (xslt, xpath,..)
  ●
      Support Sync/Async exchanges
  ●
      Threads Management, Tx Architecture
  ●
      Error and exception handling
  ●
      Policy driven
  ●
      Container agnostic
Camel (1)

More than 50 patterns are implemented




http://camel.apache.org/enterprise-integration-
   patterns.html
Camel (2)

More than 120 components




 http://camel.apache.org/components.html
Camel (3)
●   ConvertBody
●   Data formats to simplify
    exchange between layers,
    applications connected
    (JAXB, Bindy, SOAP, ...)
●   marshaler (obj-A  obj-B)
●   unmarshaler (obj-B  obj-A)

      http://camel.apache.org/data-format.html
Camel (4)

 The model  Content Based Router




  & its DSL representation
Camel (5)
Camel (6)
Camel (7)
Camel (8)


   URI corresponds to component name + properties
Camel (9)

• Transpose the DSL using Java
• First the configure() method must be created
Camel (10)

Next we create a java class
  extending RouteBuilder class
Camel (11)

Language is flexible and proposes
different ways to define the
    endpoints and predicates
Camel (12)

Integrate easily with IntelliJ, Eclipse,
   JBoss Developer Studio, Fuse Ide, NetBeans
Camel (13)
Instead of Java, you can use
   Spring / XML DSL
How Fuse makes that easier

    What do we need to solve these issues

●
    Technology supporting existing protocol/standards
●
    Facilitate Transformation or Data Formating
●
    Integration language                                Camel
●
    Runtime to deploy services
●
    Modularity/granularity
●
    Async architecture & persistence
●
    Tools to develop/package & deploy projects
●
    Supervision strategy
●
    (Cloud) infrastructure
Multi-technology container
ESB – ServiceMix (1)

Demystify the concept
Enterprise Service Bus
→ This is not
→ Or a

But an exchanging
platform of messages,
objects moving within
transport layers
ESB - ServiceMix (2)

• Provide connectors(=
   endpoints) to collect
   information and send it on
   the bus as messages

●
    Allow to separate the
     business layer from
     those that will transport
     the information and
     transform (marshal) it
ServiceMix (3)
                Message is
               ACK or ERR




 Routing is
defined into                 Normalized =
   the SU                       XML
                              exchanges
ServiceMix (4)

Based on an OSGI kernel
Offer modularity for
 services
Multi-Technology Platform
   ●
     Camel
  ●
      CXF
  ●
      ActiveMQ,
  ●
      Aries (JPA,
      Transaction, JNDI,
      Web)
Karaf – Heart of ServiceMix (5)
Karaf – Heart of ServiceMix (6)

Features :

●
  Administration console (local, remote, ssh, web,
   jmx)
●
  Provisioning system (features)
●
  Hot deployment and configuration management
●
  Instances management
●
  Security integration (JAAS → ldap, jdbc, file)
●
  Logging management (log4j, logger, commons
   logging, ….)
Karaf – Heart of ServiceMix (6)

The platform is « modular » because we can
select the libraries, containers.
                                      Jetty, Pax Web
 Camel, JBI
Architecture - Messaging

The BUS operates the exchanges between the endpoints using
  Camel (individual), NMR – JBI (transversal)




     from(«ftp://server/dir»)      from(«cxf:bean:myWS»)
     .beanRef(«myBean»);           .beanRef(«myBean») ;
Architecture - Java

The OSGI platform proposes a Service Registry (aka JNDI) t
  deploy Java Interfaces




     <bean id="incidentServiceTarget" class="org.apache.camel.service.impl.IncidentServiceImpl">
              <property name="incidentDAO">
                        <osgi:reference interface="org.apache.camel.dao.IncidentDAO"/>
               </property>
     </bean>
Architecture - Messaging + Java

Decoupling of the "services" from integration layer




                            from(« cxf:bean:myWS »)
                            .beanRef(« myBean », « validate »)
                            .beanRef(«aBean»,« saveDB »)
                            .beanaRef(« myBean », « generateResponse »);
Architecture - Messaging + Java + Web

Can be web platform, it uses  Jetty Web Application
  Server, Pax Web – a tooling for war and OSGI HTTP
  Service to register Servlet, …
How Fuse makes that easier

    What do we need to solve these issues

●
    Technology supporting existing protocols/standards
●
    Facilitate Transformation or DataFormating            Camel
●
    Integration language
●
    Runtime to deploy services
                                                  Karaf
●
    Modularity/Granularity
●
    Async architecture & persistence
●
    Tools to develop/package & deploy projects
●
    Supervision strategy
●
    (Cloud) infrastructure
Middleware to persist, propagate
asynchronous exchanges, scale your
           architecture
Architecture
When we need asymetric deployment (CPU, memory is not
  enough)  ActiveMQ interconnect the instances and
  persist messages
ActiveMQ
• A high performance, reliable messaging fabric, supporting JMS, C,
     C++,.Net, Stomp clients. Offers persistence for messages and
     bridge between ServiceMix instances
Clients connect to the                                 Network connectors
broker using connectors                                control how the
with simple URIs                                       broker interacts with
                                                       other brokers for
                                                       discovery,
                                                       replication, failover,
Topics and queues                                      clustering and store
created dynamically.                                   & forward.




                                                  … all based on a
                                                  flexible Spring-based
                          File & JDBC-based       core.
                          message stores
                          supported.
How Fuse makes that easier

    What do we need to solve these issues

●
    Technology supporting existing protocols/standards
●
    Facilitate Transformation or DataFormating              Camel
●
    Integration language
●
    Runtime to deploy services                  Karaf
●
    Modularity/Granularity
●
    Async architecture & persistence                  ActiveMQ
●
    Tools to develop/package & deploy project
●
    Supervision strategy
●
    (Cloud) infrastructure
And now move on
  to Fuse World
47
Fuse vs Fuse Enterprise
What is Fuse Fabric


 http://fabric.fusesource.org/
 Open Source Software for “configuring,
  provisioning & running Fuse and Apache software
  on any machines”
  •physical, virtual, private, public, private+public
    cloud or not etc
 Keeps you DRY from those rainy clouds :)
 Weave your containers into an easy to manage
  fabric

49
Fuse Fabric : What does it do ?

 A. Development (Fuse IDE -WYSIWYG editor, Debug,
    Runtime, Profiling)




50
Fuse Fabric : What does it do ?



 B. Simplify Packaging - FAB
     FAB = any jar file containing a pom.xml file under

     META-INF/maven/groupId/artifactId/pom.xml (and
     pom.properties file)

     which contain the transitive dependency information for the
     jar.




51
Fuse Fabric : What does it do ?


 Fuse ESB allows to create
  new instances and
  administrate them locally or
  remotely (ssh/jmx)
BUT
 Instances are not “cloned”
 Configurations must be
  updated (manually)
 Process is error prone
 No Deployment Platform

52
Fuse Fabric : What does it do ?


 C. Instance
  Management
 Fabric (through
  profiles + maven
  proxy + registry)
  will create
  instances and
  manage them
   •Locally
   •Remotely (ssh)
   •In the cloud
53
What is Fabric


 Registry = Configurations Repository →
  replicated, manageable
 Agents = Java Fabric runtime
 Profiles = Artifacts to be deployed




54
Registry

 Based on Apache ZooKeeper
  • Is a Centralized Coordination Service, distributed and highly
    reliable
  • Uses a directory & file based structure
Registry

 2 kinds of registry : Configurations & Runtime
 Recommended to have >= 1 registry
Agent

 Fabric-agent deployed per Fuse ESB container
 Zookeeper client
 Agent listens to the registry  configurations 
  provisions features & services
Agent registers
   important
   information
   into the registry
   (jmx)

57
Fuse Fabric : What does it do ?

 Fabric → fabric commands to manage
  containers, profiles, ensemble, users




58
Instance Management - FMC

 Could be managed from Fuse Management Console
  = WAR + Rest API + Fabric




59
Instance Management - FMC


 Create Local, Remote or in the cloud instances




60
Instance Management - FMC




61
Fuse Fabric : What does it do ?

 D. Profiling
     •Simplify deployment in Fuse ESB instances
     •Provisioning of features across machines


 Profile
     •Envelope for features, bundles, OSGI
      configurations & config files
     •Profiles can be inherited, combined, versioned
     •Can be defined using commands



62
Profiling - FMC


 Management (create/delete/version,…)




63
Profiling - FMC

 Example of profile (Camel – Version 1)




64
Profiling - FMC


 Configuration files, parameters, jvm




65
Deploying - FMC


 Associate profiles to a container (deployment)




66
Fabric : What does it do ?

 E. “Services” factory - Virtualisation
     • Create “indirection” points
     • Load balancing and failover
     • Easy elastic scaling of services




67
Virtualisation – Camel Fabric

 Exposing Camel endpoint into the fabric
 Invoking remote Camel endpoint
 Loadbalance requests




68
Virtualisation – ActiveMQ Fabric

 Message brokers automatically discovery each other
 Clients use connection URI “fabric:default” to connect
  to a message broker
 If you have multiple logical ActiveMQ clusters just name
  them in the URI e.g.
   • fabric:us-west, fabric:us-east, fabric:europe




69
Virtualisation – ActiveMQ Fabric




70
Other Fabric

      CXF Fabric
       Adds a feature to the CXF bus for discovery & load
       balancing
      D-OSGI
       Distribute OSGI services between Fabric instances
      ServiceMix Fabric
       Allow local NMR to use remote endpoints when no
       local NMR endpoint available
      Process Fabric
       Start & monitor processes
       Keep processes running across machines
71
Fabric : What does it do ?

 F. Monitoring containers (bundles, OSGI services)




72
Real Time Monitoring - FMC


 Containers
  – info (cpu,
  memory,
  profiles
  deployed)




73
Real Time Monitoring - FMC


 Statistics - Routes




74
Real Time Monitoring - FMC

  Statistics – Brokers




75
Real Time Monitoring - FMC


 Statistics –
  JMS
  Messages




76
To be complete

 Production Monitoring Solution → JON




77
To be complete








78
To be complete








79
How Fuse makes that easier

    What do we need to solve these issues

●
    Technology supporting existing protocols/standards
●
    Facilitate Transformation or DataFormating           Camel
●
    Integration language
●
    Runtime to deploy services
                                               Karaf
●
    Modularity/Granularity
●
    Async architecture & persistence                 ActiveMQ
●
    Tools to develop/package & deploy
●
    Supervision strategy                        Fuse
●
    (Cloud) infrastructure
How Fuse makes that easier



  Time                                CXF

     to make
                              Camel
         a DEMO

                      Karaf
                              ActiveMQ

                       Fuse
Questions?
                         @cmoulliard


                         cmoulliard@redhat.com


                         cmoulliard.blogspot.com


                         linkedin.com/in/charlesmoulliard


                         slideshare.net/cmoulliard



                   More info
     www.fusesource.com & www.redhat.com

More Related Content

PDF
JBoss Fuse - Fuse workshop EAP container
PPTX
Jboss Fuse Workshop 101 part 1
ODP
Red Hat Open Day JBoss Fuse
PDF
Fuse technology-2015
PDF
Messaging on the cloud with xPAAS
PPT
WebServices in ServiceMix with CXF
PDF
CamelOne 2013 Karaf A-MQ Camel CXF Security
PDF
RESTful web service with JBoss Fuse
JBoss Fuse - Fuse workshop EAP container
Jboss Fuse Workshop 101 part 1
Red Hat Open Day JBoss Fuse
Fuse technology-2015
Messaging on the cloud with xPAAS
WebServices in ServiceMix with CXF
CamelOne 2013 Karaf A-MQ Camel CXF Security
RESTful web service with JBoss Fuse

What's hot (20)

PPT
OSGi & Blueprint
PPT
Implementing WebServices with Camel and CXF in ServiceMix
PDF
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
PDF
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
PPTX
Introduction to-osgi
KEY
Jug Poitou Charentes - Apache, OSGi and Karaf
PPTX
Apache Camel: The Swiss Army Knife of Open Source Integration
PPTX
Alfresco: What every developer should know
ODP
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
PPTX
Survey of restful web services frameworks
PDF
Oracle API Gateway Installation
PDF
Provisioning with Oracle Cloud Stack Manager
PDF
Best Practices - PHP and the Oracle Database
PPTX
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
PPTX
Apache servicemix1
PPTX
10 Reasons ColdFusion PDFs should rule the world
PPTX
Scale your Alfresco Solutions
PDF
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
PDF
Running SOA in the Cloud: SOA CS for SOA Suite Customers
PDF
SOA & WebLogic - Lift & Shift to the Cloud
OSGi & Blueprint
Implementing WebServices with Camel and CXF in ServiceMix
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Introduction to-osgi
Jug Poitou Charentes - Apache, OSGi and Karaf
Apache Camel: The Swiss Army Knife of Open Source Integration
Alfresco: What every developer should know
Jazoon2010 - Edgar Silva - Open source SOA on Steroids
Survey of restful web services frameworks
Oracle API Gateway Installation
Provisioning with Oracle Cloud Stack Manager
Best Practices - PHP and the Oracle Database
201511 - Alfresco Day - Platform Update and Roadmap - Gabriele Columbro - Bo...
Apache servicemix1
10 Reasons ColdFusion PDFs should rule the world
Scale your Alfresco Solutions
Scale ColdFusion with Terracotta Distributed Caching for Ehchache
Running SOA in the Cloud: SOA CS for SOA Suite Customers
SOA & WebLogic - Lift & Shift to the Cloud
Ad

Viewers also liked (20)

PDF
iPaas with Fuse Fabric Technology
PDF
Fusesource camel-persistence-part1-webinar-charles-moulliard
PPT
Apache ServiceMix4 : Dream platform for Java Integration
PDF
Develop a Mobile Application coonected to a REST backend
PDF
Integrating BPM with Fuse
PDF
Microservices with WildFly Swarm - JavaSI 2016
PDF
Apache ActiveMQ, Camel, CXF and ServiceMix Overview
PDF
Security enforcement of Java Microservices with Apiman & Keycloak
PPTX
JBoss Fuse Workshop 101 part 2
PPTX
How to Survive the API Copyright Apocalypse
PPT
Fuse overview
PDF
Devoxx 2011 integration-camel-cxf-servicemix-activemq
PDF
APIs and the Bot Revolution (APIDays Nordic, May 18)
PPTX
Take Control of your APIs in a Microservice Architecture
PDF
API workshop by AWS and 3scale
PPTX
Entering the Platform Age: How to create genuine value for internal and exter...
PDF
Inside mind of a successful platform architect / Gartner APPS 2016
PPTX
The Swagger Format becomes the Open API Specification: Standardizing descript...
PDF
Build and Manage Serverless APIs (APIDays Nordic, May 19th 2016)
PPTX
The Fundamentals of Platform Strategy: Creating Genuine Value with APIs
iPaas with Fuse Fabric Technology
Fusesource camel-persistence-part1-webinar-charles-moulliard
Apache ServiceMix4 : Dream platform for Java Integration
Develop a Mobile Application coonected to a REST backend
Integrating BPM with Fuse
Microservices with WildFly Swarm - JavaSI 2016
Apache ActiveMQ, Camel, CXF and ServiceMix Overview
Security enforcement of Java Microservices with Apiman & Keycloak
JBoss Fuse Workshop 101 part 2
How to Survive the API Copyright Apocalypse
Fuse overview
Devoxx 2011 integration-camel-cxf-servicemix-activemq
APIs and the Bot Revolution (APIDays Nordic, May 18)
Take Control of your APIs in a Microservice Architecture
API workshop by AWS and 3scale
Entering the Platform Age: How to create genuine value for internal and exter...
Inside mind of a successful platform architect / Gartner APPS 2016
The Swagger Format becomes the Open API Specification: Standardizing descript...
Build and Manage Serverless APIs (APIDays Nordic, May 19th 2016)
The Fundamentals of Platform Strategy: Creating Genuine Value with APIs
Ad

Similar to Make easier Integration of your services with Fuse Solutions - RedHat 2013 (20)

PDF
20100907 fuse-community-evening-adrian-trenaman-no-logo
PDF
Introduction to Apache Camel
PPTX
Apache camel overview dec 2011
PDF
Jazoon 2011 - Smart EAI with Apache Camel
PPT
Riding with camel
PDF
Systems Integration in the Cloud Era, Kai Wähner MaibornWolff
PDF
Introducing Scalate, the Scala Template Engine
PDF
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
PDF
Summer training java
PPT
Summer training java
KEY
S2GX 2012 - Introduction to Spring Integration and Spring Batch
PDF
Rob Davies talks about Apache Open Source Software for Financial Services at ...
ODP
Intro in JavaEE world (TU Olomouc)
ODP
Java Web Programming [1/9] : Introduction to Web Application
PDF
TS 4839 - Enterprise Integration Patterns in Practice
PDF
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
PDF
OSGi Cloud Ecosystems (EclipseCon 2013)
PDF
Be jug 090611_apacheservicemix
PDF
OSGi Cloud Ecosystems
PDF
Enterprise Service Bus and JBI
20100907 fuse-community-evening-adrian-trenaman-no-logo
Introduction to Apache Camel
Apache camel overview dec 2011
Jazoon 2011 - Smart EAI with Apache Camel
Riding with camel
Systems Integration in the Cloud Era, Kai Wähner MaibornWolff
Introducing Scalate, the Scala Template Engine
Jazoon 2012 - Systems Integration in the Cloud Era with Apache Camel
Summer training java
Summer training java
S2GX 2012 - Introduction to Spring Integration and Spring Batch
Rob Davies talks about Apache Open Source Software for Financial Services at ...
Intro in JavaEE world (TU Olomouc)
Java Web Programming [1/9] : Introduction to Web Application
TS 4839 - Enterprise Integration Patterns in Practice
ApacheCon EU 2009 Tales from the front line - ActiveMQ ServiceMix and CXF
OSGi Cloud Ecosystems (EclipseCon 2013)
Be jug 090611_apacheservicemix
OSGi Cloud Ecosystems
Enterprise Service Bus and JBI

More from Charles Moulliard (10)

PDF
Security enforcement of Microservices with API Management
PDF
MicroService and MicroContainer with Apache Camel
PDF
Design a Mobil Hybrid Application connected to a REST Backend
PDF
Continuous Delivery & Integration with JBoss Fuse on Openshift
PDF
Development of social media projects with Apache Camel, Fabric8 & Hawtio
PDF
Karaf ee-apachecon eu-2012
PDF
Cloud fuse-apachecon eu-2012
PPT
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
PDF
Fusesource camel-persistence-part2-webinar-charles-moulliard
PDF
Fuse source parisjug-10052011
Security enforcement of Microservices with API Management
MicroService and MicroContainer with Apache Camel
Design a Mobil Hybrid Application connected to a REST Backend
Continuous Delivery & Integration with JBoss Fuse on Openshift
Development of social media projects with Apache Camel, Fabric8 & Hawtio
Karaf ee-apachecon eu-2012
Cloud fuse-apachecon eu-2012
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Fusesource camel-persistence-part2-webinar-charles-moulliard
Fuse source parisjug-10052011

Make easier Integration of your services with Fuse Solutions - RedHat 2013

  • 1. Make easier Integration of your services with Fuse Solutions Charles Moulliard Sr. Enterprise Architect / Apache member 23/01/2013
  • 2. Speaker : Charles Moulliard • Engineer in Agronomy & Master in Zoology 19 years of experience in IT world development (J2EE, .NET), specialized in new technologies web/Internet & integration, Project manager in bank, financial, telco, insurance - Team builder – Coach - Evangelist • Architect @RedHat • Apache Committer : ServiceMix, Karaf (PMC), Camel (PMC), DeltaSpike, Fabric Twitter : http://twitter.com/cmoulliard LinkedIn : http://www.linkedin.com/in/charlesmoulliard My blog : http://cmoulliard.blogspot.com Slideshare : http://www.slideshare.net/cmoulliard
  • 3. Agenda ● Why Integration is so hard ● How Fuse technology makes that easier ● What we offer ● Fuse Enterprise (MB, ESB) ● Fuse IDE ● Fuse Management Console
  • 5. Why integration is so hard IT is like a jungle, completely crazy
  • 6. Why integration is so hard Constellation of protocols & standards RMI DCOM HTTP(S) (S)FTP(S) POP UDP RPC (S)SMTP IMAP CORBA TCP/IP SSL SSH SNMP PKI JavaEE SOA BPEL BPMN JPA WS-* SCA JMS AMQP REST JDBC POJO EJB JBI
  • 7. Why integration is so hard Support huge family of Formats EDI CSV XML SOAP
  • 8. Why integration is so hard Microsoft (.NET, COM) ↔ Java (EJB, POJO) CORBA, DCOM fail to simplify inter-operability BRIDGE CORBA DCOM
  • 9. How Fuse makes that easier
  • 10. How Fuse makes that easier What do we need to solve these issues ● Technology supporting existing protocols/standards ● Facilitate Transformation or Data Formating ● Integration language ● Runtime to deploy services ● Modularity/Granularity ● Async architecture & persistence ● Tools to develop/package & deploy projects ● Supervision strategy ● (Cloud) infrastructure
  • 11. How Fuse make that easier Where do we find such a technology → OpenSource community (Apache, JBoss) ● Integration Technology (Camel) ● Multi-Technology Java OSGI Server (Karaf) ● WS/REST framework (CXF) – SOA Vision ● Middleware (ActiveMQ) ● Modular runtime (Felix) ● OSGI Tooling (OPS4J) ● EE Features – JPA, Web, JTA, JNDI (Aries) ● Cloud (jcloud, cloudstack, openshift)
  • 13. Camel ● Birthdate - March 2007 ● OpenSource Integration Framework implementing EIP patterns (Book : 2005 by Gregor Hohpe & Bobby Woolf) ● Why EIP ? To provide words, grammar & language ● Camel uses a Domain Specific Language transposing the EIP patterns into Java, XML, Scala
  • 14. Camel Some of features/characteristics ● In memory bus ← → alternative to JBI - NMR ● Route objects → can be XML, File, Stream, Bytes ● Predicate & Expression language (xslt, xpath,..) ● Support Sync/Async exchanges ● Threads Management, Tx Architecture ● Error and exception handling ● Policy driven ● Container agnostic
  • 15. Camel (1) More than 50 patterns are implemented http://camel.apache.org/enterprise-integration- patterns.html
  • 16. Camel (2) More than 120 components http://camel.apache.org/components.html
  • 17. Camel (3) ● ConvertBody ● Data formats to simplify exchange between layers, applications connected (JAXB, Bindy, SOAP, ...) ● marshaler (obj-A  obj-B) ● unmarshaler (obj-B  obj-A) http://camel.apache.org/data-format.html
  • 18. Camel (4) The model  Content Based Router & its DSL representation
  • 22. Camel (8) URI corresponds to component name + properties
  • 23. Camel (9) • Transpose the DSL using Java • First the configure() method must be created
  • 24. Camel (10) Next we create a java class extending RouteBuilder class
  • 25. Camel (11) Language is flexible and proposes different ways to define the endpoints and predicates
  • 26. Camel (12) Integrate easily with IntelliJ, Eclipse, JBoss Developer Studio, Fuse Ide, NetBeans
  • 27. Camel (13) Instead of Java, you can use Spring / XML DSL
  • 28. How Fuse makes that easier What do we need to solve these issues ● Technology supporting existing protocol/standards ● Facilitate Transformation or Data Formating ● Integration language Camel ● Runtime to deploy services ● Modularity/granularity ● Async architecture & persistence ● Tools to develop/package & deploy projects ● Supervision strategy ● (Cloud) infrastructure
  • 30. ESB – ServiceMix (1) Demystify the concept Enterprise Service Bus → This is not → Or a But an exchanging platform of messages, objects moving within transport layers
  • 31. ESB - ServiceMix (2) • Provide connectors(= endpoints) to collect information and send it on the bus as messages ● Allow to separate the business layer from those that will transport the information and transform (marshal) it
  • 32. ServiceMix (3) Message is ACK or ERR Routing is defined into Normalized = the SU XML exchanges
  • 33. ServiceMix (4) Based on an OSGI kernel Offer modularity for services Multi-Technology Platform ● Camel ● CXF ● ActiveMQ, ● Aries (JPA, Transaction, JNDI, Web)
  • 34. Karaf – Heart of ServiceMix (5)
  • 35. Karaf – Heart of ServiceMix (6) Features : ● Administration console (local, remote, ssh, web, jmx) ● Provisioning system (features) ● Hot deployment and configuration management ● Instances management ● Security integration (JAAS → ldap, jdbc, file) ● Logging management (log4j, logger, commons logging, ….)
  • 36. Karaf – Heart of ServiceMix (6) The platform is « modular » because we can select the libraries, containers. Jetty, Pax Web Camel, JBI
  • 37. Architecture - Messaging The BUS operates the exchanges between the endpoints using Camel (individual), NMR – JBI (transversal) from(«ftp://server/dir») from(«cxf:bean:myWS») .beanRef(«myBean»); .beanRef(«myBean») ;
  • 38. Architecture - Java The OSGI platform proposes a Service Registry (aka JNDI) t deploy Java Interfaces <bean id="incidentServiceTarget" class="org.apache.camel.service.impl.IncidentServiceImpl"> <property name="incidentDAO"> <osgi:reference interface="org.apache.camel.dao.IncidentDAO"/> </property> </bean>
  • 39. Architecture - Messaging + Java Decoupling of the "services" from integration layer from(« cxf:bean:myWS ») .beanRef(« myBean », « validate ») .beanRef(«aBean»,« saveDB ») .beanaRef(« myBean », « generateResponse »);
  • 40. Architecture - Messaging + Java + Web Can be web platform, it uses  Jetty Web Application Server, Pax Web – a tooling for war and OSGI HTTP Service to register Servlet, …
  • 41. How Fuse makes that easier What do we need to solve these issues ● Technology supporting existing protocols/standards ● Facilitate Transformation or DataFormating Camel ● Integration language ● Runtime to deploy services Karaf ● Modularity/Granularity ● Async architecture & persistence ● Tools to develop/package & deploy projects ● Supervision strategy ● (Cloud) infrastructure
  • 42. Middleware to persist, propagate asynchronous exchanges, scale your architecture
  • 43. Architecture When we need asymetric deployment (CPU, memory is not enough)  ActiveMQ interconnect the instances and persist messages
  • 44. ActiveMQ • A high performance, reliable messaging fabric, supporting JMS, C, C++,.Net, Stomp clients. Offers persistence for messages and bridge between ServiceMix instances Clients connect to the Network connectors broker using connectors control how the with simple URIs broker interacts with other brokers for discovery, replication, failover, Topics and queues clustering and store created dynamically. & forward. … all based on a flexible Spring-based File & JDBC-based core. message stores supported.
  • 45. How Fuse makes that easier What do we need to solve these issues ● Technology supporting existing protocols/standards ● Facilitate Transformation or DataFormating Camel ● Integration language ● Runtime to deploy services Karaf ● Modularity/Granularity ● Async architecture & persistence ActiveMQ ● Tools to develop/package & deploy project ● Supervision strategy ● (Cloud) infrastructure
  • 46. And now move on to Fuse World
  • 47. 47
  • 48. Fuse vs Fuse Enterprise
  • 49. What is Fuse Fabric  http://fabric.fusesource.org/  Open Source Software for “configuring, provisioning & running Fuse and Apache software on any machines” •physical, virtual, private, public, private+public cloud or not etc  Keeps you DRY from those rainy clouds :)  Weave your containers into an easy to manage fabric 49
  • 50. Fuse Fabric : What does it do ?  A. Development (Fuse IDE -WYSIWYG editor, Debug, Runtime, Profiling) 50
  • 51. Fuse Fabric : What does it do ?  B. Simplify Packaging - FAB FAB = any jar file containing a pom.xml file under META-INF/maven/groupId/artifactId/pom.xml (and pom.properties file) which contain the transitive dependency information for the jar. 51
  • 52. Fuse Fabric : What does it do ?  Fuse ESB allows to create new instances and administrate them locally or remotely (ssh/jmx) BUT  Instances are not “cloned”  Configurations must be updated (manually)  Process is error prone  No Deployment Platform 52
  • 53. Fuse Fabric : What does it do ?  C. Instance Management  Fabric (through profiles + maven proxy + registry) will create instances and manage them •Locally •Remotely (ssh) •In the cloud 53
  • 54. What is Fabric  Registry = Configurations Repository → replicated, manageable  Agents = Java Fabric runtime  Profiles = Artifacts to be deployed 54
  • 55. Registry  Based on Apache ZooKeeper • Is a Centralized Coordination Service, distributed and highly reliable • Uses a directory & file based structure
  • 56. Registry  2 kinds of registry : Configurations & Runtime  Recommended to have >= 1 registry
  • 57. Agent  Fabric-agent deployed per Fuse ESB container  Zookeeper client  Agent listens to the registry  configurations  provisions features & services Agent registers important information into the registry (jmx) 57
  • 58. Fuse Fabric : What does it do ?  Fabric → fabric commands to manage containers, profiles, ensemble, users 58
  • 59. Instance Management - FMC  Could be managed from Fuse Management Console = WAR + Rest API + Fabric 59
  • 60. Instance Management - FMC  Create Local, Remote or in the cloud instances 60
  • 62. Fuse Fabric : What does it do ?  D. Profiling •Simplify deployment in Fuse ESB instances •Provisioning of features across machines  Profile •Envelope for features, bundles, OSGI configurations & config files •Profiles can be inherited, combined, versioned •Can be defined using commands 62
  • 63. Profiling - FMC  Management (create/delete/version,…) 63
  • 64. Profiling - FMC  Example of profile (Camel – Version 1) 64
  • 65. Profiling - FMC  Configuration files, parameters, jvm 65
  • 66. Deploying - FMC  Associate profiles to a container (deployment) 66
  • 67. Fabric : What does it do ?  E. “Services” factory - Virtualisation • Create “indirection” points • Load balancing and failover • Easy elastic scaling of services 67
  • 68. Virtualisation – Camel Fabric  Exposing Camel endpoint into the fabric  Invoking remote Camel endpoint  Loadbalance requests 68
  • 69. Virtualisation – ActiveMQ Fabric  Message brokers automatically discovery each other  Clients use connection URI “fabric:default” to connect to a message broker  If you have multiple logical ActiveMQ clusters just name them in the URI e.g. • fabric:us-west, fabric:us-east, fabric:europe 69
  • 71. Other Fabric  CXF Fabric Adds a feature to the CXF bus for discovery & load balancing  D-OSGI Distribute OSGI services between Fabric instances  ServiceMix Fabric Allow local NMR to use remote endpoints when no local NMR endpoint available  Process Fabric Start & monitor processes Keep processes running across machines 71
  • 72. Fabric : What does it do ?  F. Monitoring containers (bundles, OSGI services) 72
  • 73. Real Time Monitoring - FMC  Containers – info (cpu, memory, profiles deployed) 73
  • 74. Real Time Monitoring - FMC  Statistics - Routes 74
  • 75. Real Time Monitoring - FMC  Statistics – Brokers 75
  • 76. Real Time Monitoring - FMC  Statistics – JMS Messages 76
  • 77. To be complete  Production Monitoring Solution → JON 77
  • 80. How Fuse makes that easier What do we need to solve these issues ● Technology supporting existing protocols/standards ● Facilitate Transformation or DataFormating Camel ● Integration language ● Runtime to deploy services Karaf ● Modularity/Granularity ● Async architecture & persistence ActiveMQ ● Tools to develop/package & deploy ● Supervision strategy Fuse ● (Cloud) infrastructure
  • 81. How Fuse makes that easier Time CXF to make Camel a DEMO Karaf ActiveMQ Fuse
  • 82. Questions? @cmoulliard [email protected] cmoulliard.blogspot.com linkedin.com/in/charlesmoulliard slideshare.net/cmoulliard More info www.fusesource.com & www.redhat.com