SlideShare a Scribd company logo
1 of 41
Download to read offline
Service Oriented Integration
 With Apache ServiceMix




      William G Henry william_henry@mac.com
 Presentation By Bruce Snyder bsnyder@apache.org
Agenda




            Enterprise Service Bus
            Java Business Integration
            Apache ServiceMix ESB
            Apache Camel (intro)



                                    2
What is
an

ESB?
           3
What is an ESB?



quot;An Enterprise Service Bus (ESB) is a new architecture that exploits Web
services, messaging Service Bus (ESB) is a and transformation. ESBs
 quot;An Enterprise middleware, intelligent routing, new architecture that
act as a lightweight, ubiquitous integration backbone through which software
 exploits Web services, messaging middleware, intelligent
services and application components flow.” (Gartner)
routing, and transformation. ESBs act as a lightweight,
ubiquitous integration backbone through which software
services and application components flow.” (Gartner)




                                                                         4
What is an ESB?


An ESB acts as a shared messaging layer for connecting applications and other
services throughout ana sharedcomputing infrastructure. It supplements its
 An ESB acts as enterprise messaging layer for connecting
core asynchronous messaging backbone with intelligent transformation and
 applications and other services throughout an enterprise
routing to ensure messages are passed reliably. Services participate in the ESB
using either web services messaging supplements its core
 computing infrastructure. It standards or JMS (LooselyCoupled.com)
asynchronous messaging backbone with intelligent
transformation and routing to ensure messages are passed
reliably. Services participate in the ESB using either web
services messaging standards or JMS (LooselyCoupled.com)




                                                                             5
What is an ESB?



An ESB is an open standards, message-based, distributed, integration solution
 An ESB is an open standards, message-based, distributed,
that provides routing, invocation, and mediation services to facilitate the
interactions of disparate distributed information technology resources
 integration solution that provides routing, invocation, and
(applications, services, information, platforms) in a reliable manner. (Brenda
Michelson, Elemental Links) facilitate the interactions of disparate
 mediation services to
distributed information technology resources (applications,
services, information, platforms) in a reliable manner. (Brenda
Michelson, Elemental Links)




                                                                            6
Do I need an ESB?

   ESB Planning Process




                           7
What
is

JBI?
        8
What is JBI?




   JBI defines an architecture that allows the
    construction of integration systems from
    plug-in components, that interoperate
    through the method of mediated message
    exchange.
   (JBI 1.0 Spec)
                                              9
Java Business Integration




                            10
Java Business Integration




                            11
JBI Normalized Message




                         12
JBI Packaging




                13
Apache ServiceMix




http://servicemix.apache.org/

                                14
Apache ServiceMix Architecture




                                 15
ServiceMix Features

   Supports many protocols
        File, FTP, HTTP/S, JMS, SMTP, SOAP, TCP, XMPP
   Support many engines
        Apache Camel, Apache CXF, Apache ODE, Drools,
         OS Workflow, POJOs, Quartz, Scripting, Saxon
         XQuery and XSLT, WS-Notification
   Support for Security
        JAAS, WS-Security
   Web Container/App Server Integration
        Geronimo, JBoss, Jetty, Tomcat, Weblogic,
         Websphere
                                                     16
Apache Software Foundation




Apache
Software
Foundation                   17
Message Routing




                  18
Message Routing




                  19
Example




          20
Configuration




                21
file-poller-su



   <beans xmlns:file='http://servicemix.apache.org/file/1.0'
          xmlns:myApp=quot;http://com.mycompany/myappquot;>

     <file:poller service=quot;myapp:filequot;
                endpoint=quot;pollerquot;
                file=quot;file:///Users/bsnyder/poller/inboxquot;
                targetService=quot;myapp:wiretapquot;
                targetEndpoint=quot;loggerquot; />
   </beans>




                                                             22
eip-wiretap-su



   <beans xmlns:eip=quot;http://servicemix.apache.org/eip/1.0quot;
          xmlns:myapp=quot;http://mycompany.com/myappquot;>

    <eip:wire-tap service=quot;myapp:wiretapquot; endpoint=quot;endpointquot;>
      <eip:target>
        <eip:exchange-target service=quot;myapp:cbrquot; />
      </eip:target>
      <eip:inListener>
        <eip:exchange-target service=quot;myapp:persistquot; />
      </eip:inListener>
    </eip:wire-tap>

   </beans>




                                                              23
camel-persist-su


   public class PersistOrderRoute extends RouteBuilder {
       public void configure() {
      from(quot;jbi:endpoint:http://mycompany.com/persist/orderquot;)
         .convertBodyTo(Order.class)
         .to(quot;jpa:com.mycompany.Order?persistenceUnit=order-
    procquot;)
         .convertBodyTo(Order.class);
       }}


   -------------------------------------------------

   <beans xmlns:camel=”http://activemq.apache.org/camelquot;>
     <camel:camelContext id=quot;camelquot;>
       <package>com.mycompany.persistence</package>
     </camel:camelContext>
   </beans>

                                                             24
eip-cbr-su


   <beans xmlns:eip=quot;http://servicemix.apache.org/eip/1.0quot;
          xmlns:myapp=quot;http://mycompany.com/myappquot;>

     <eip:content-based-router service=quot;myapp:cbrquot;
       endpoint=quot;endpointquot;>
       <eip:rules>
         <eip:routing-rule>
           <eip:predicate>
             <eip:xpath-predicate
               xpath=quot;/message/cheese/text() = 'gouda'quot; />
           </eip:predicate>
           <eip:target>
             <eip:exchange-target service=quot;myapp:queue1quot; />
           </eip:target>
         </eip:routing-rule>
   ...



                                                               25
eip-cbr-su

   ...
         <eip:routing-rule>
           <eip:predicate>
             <eip:xpath-predicate
               xpath=quot;/message/cheese/text() = 'swiss'quot; />
           </eip:predicate>
           <eip:target>
             <eip:exchange-target service=quot;myapp:queue2quot; />
           </eip:target>
         </eip:routing-rule>
         <eip:routing-rule>
           <eip:target>
             <eip:exchange-target service=quot;myapp:queue3quot; />
           </eip:target>
         </eip:routing-rule>
       </eip:rules>
     </eip:content-based-router>


                                                               26
jms-producer-su


   <beans xmlns:jms=quot;http://servicemix.apache.org/jms/1.0quot;
          xmlns:myapp=quot;http://mycompany.com/myapp
          xmlns:amq=quot;http://activemq.org/config/1.0quot;>

      <jms:endpoint service=quot;myapp:queue1quot;
                    endpoint=quot;myProviderquot;
                    role=quot;providerquot;
                    destinationStyle=quot;queuequot;
                    jmsProviderDestinationName=quot;queue1quot;
                    connectionFactory=quot;#connectionFactoryquot; />

      <jms:endpoint service=quot;myapp:queue2quot;
                    endpoint=quot;myProviderquot;
                    role=quot;providerquot;
                    destinationStyle=quot;queuequot;
                    jmsProviderDestinationName=quot;queue2quot;
                    connectionFactory=quot;#connectionFactoryquot;/>


                                                              27
jms-producer-su



   ...
         <jms:endpoint service=quot;myapp:queue3quot;
                       endpoint=quot;myProviderquot;
                       role=quot;providerquot;
                       destinationStyle=quot;queuequot;
                       jmsProviderDestinationName=quot;queue3quot;
                       connectionFactory=quot;#connectionFactoryquot;/>

         <amq:connectionFactory id=quot;connectionFactoryquot;
           brokerURL=quot;tcp://localhost:61616quot; />

   </beans>




                                                              28
JBI Packaging




                29
Distribution of ServiceMix Containers




                                        30
Eclipse IDE Tooling For ServiceMix

   Eclipse SOA Tooling Platform (STP)
    Project
        http://eclipse.org/stp

   IONA FUSE Eclipse Tooling
        http://open.iona.com/wiki/display/ProdInfo/FUSE+Eclipse+Tools

   Spagic
        http://spagic.com/

   Sopera
        http://sopera.de/en/products/sopera-servicemixtools/

                    Eclipse SOA Tools Platform (STP) Project


                                                                         31
Eclipse Tooling




        Eclipse SOA Tools Platform (STP) Project

                                               32
What is Apache Camel?




http://activemq.apache.org/camel/

                                    33
What is EIP?




               34
Example Pattern: Content Based Router




RouteBuilder builder = new RouteBuilder() {
   public void configure() {
     from(quot;seda:aquot;).choice()
      .when(header(quot;fooquot;).isEqualTo(quot;barquot;)).to(quot;seda:bquot;)
      .when(header(quot;fooquot;).isEqualTo(quot;cheesequot;)).to(quot;seda:cquot;)
      .otherwise().to(quot;seda:dquot;);
   }
};

                                                         35
Example Pattern: Content Based Router

<camelContext id=quot;buildSimpleRouteWithChoicequot;
    xmlns=quot;http://activemq.apache.org/camel/schema/springquot;>
  <route>
    <from uri=quot;seda:aquot;/>
    <choice>
      <when>
        <predicate>
          <header name=quot;fooquot;/>
          <isEqualTo value=quot;barquot;/>
        </predicate>
        <to uri=quot;seda:bquot;/>
      </when>
      <when>
        <predicate>
          <header name=quot;fooquot;/>
          <isEqualTo value=quot;cheesequot;/>
        </predicate>
        <to uri=quot;seda:cquot;/>
      </when>
      <otherwise><to uri=quot;seda:dquot;/></otherwise>
    </choice>
  </route>
</camelContext>
                                                              36
What’s Coming in ServiceMix 4.0



Apache
ServiceMix
4.0

                                  37
ServiceMix 4.0 Building Blocks

   Runtime: OSGi (Apache Felix)
        JBI support still intact!
        NMR is a OSGi service
   Message Broker: Apache ActiveMQ
   Web Services: Apache CXF
   Routing Engine: Apache Camel




                                      38
Thank You for Attending!




   Questions?

                           39
Visualization




                40
Camel Makes Routing Much Easier!

                   from(“http://localhost:8080/requests/”).
                       tryBlock().
                           to(“activemq:queue:requests”).
                           setOutBody(constant(“<ack/>”)).
                       handle(Throwable.class).
                           setFaultBody(constant(“<nack/>”));

                   from((“activemq:queue:requests?transacted=true”).
                       process(requestTransformer).
                       to(“http://host:8080/Request”).
                       filter(xpath(“//nack”)).
                       process(nackTransformer).
                       to(“jdbc:store”);

                   from(“http://localhost:8080/responses/”).
                       tryBlock().
                           to(“activemq:queue:responses”).
                           setOutBody(constant(“<ack/>”)).
                       handle(Throwable.class).
                           setFaultBody(constant(“<nack/>”));

                   from(“activemq:queue:responses?transacted=true”).
                       process(responseTransformer).
                       to(“jdbc:store”);

                   from(“http://localhost:8080/pull/”).
                       to(“jdbc:load”);

                                                            41

More Related Content

What's hot

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An IntroductionThorsten Kamann
 
Syer Monitoring Integration And Batch
Syer Monitoring Integration And BatchSyer Monitoring Integration And Batch
Syer Monitoring Integration And BatchDave Syer
 
JBoss Fuse - Fuse workshop EAP container
JBoss Fuse - Fuse workshop EAP containerJBoss Fuse - Fuse workshop EAP container
JBoss Fuse - Fuse workshop EAP containerChristina Lin
 
RESTful Web services using JAX-RS
RESTful Web services using JAX-RSRESTful Web services using JAX-RS
RESTful Web services using JAX-RSArun Gupta
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzJBug Italy
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Michael Girouard
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixAdrian Trenaman
 
HTML5 Server Sent Events/JSF JAX 2011 Conference
HTML5 Server Sent Events/JSF  JAX 2011 ConferenceHTML5 Server Sent Events/JSF  JAX 2011 Conference
HTML5 Server Sent Events/JSF JAX 2011 ConferenceRoger Kitain
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postvamsi krishna
 
Message properties component in Mule
Message properties component in MuleMessage properties component in Mule
Message properties component in MuleKhan625
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaJames Falkner
 
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesikmfrancis
 
Writing & Using Web Services
Writing & Using Web ServicesWriting & Using Web Services
Writing & Using Web ServicesRajarshi Guha
 
Web services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryWeb services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryFulvio Corno
 
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and MavenWebtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and MavenThorsten Kamann
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafJerry Preissler
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010Adrian Trenaman
 
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLUlf Wendel
 

What's hot (20)

Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Syer Monitoring Integration And Batch
Syer Monitoring Integration And BatchSyer Monitoring Integration And Batch
Syer Monitoring Integration And Batch
 
JBoss Fuse - Fuse workshop EAP container
JBoss Fuse - Fuse workshop EAP containerJBoss Fuse - Fuse workshop EAP container
JBoss Fuse - Fuse workshop EAP container
 
RESTful Web services using JAX-RS
RESTful Web services using JAX-RSRESTful Web services using JAX-RS
RESTful Web services using JAX-RS
 
Faster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzzFaster & Greater Messaging System HornetQ zzz
Faster & Greater Messaging System HornetQ zzz
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5
 
JBoss AS 7
JBoss AS 7JBoss AS 7
JBoss AS 7
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMix
 
HTML5 Server Sent Events/JSF JAX 2011 Conference
HTML5 Server Sent Events/JSF  JAX 2011 ConferenceHTML5 Server Sent Events/JSF  JAX 2011 Conference
HTML5 Server Sent Events/JSF JAX 2011 Conference
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,post
 
Message properties component in Mule
Message properties component in MuleMessage properties component in Mule
Message properties component in Mule
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and Java
 
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A GrzesikApache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
Apache Karaf - Building OSGi applications on Apache Karaf - T Frank & A Grzesik
 
Writing & Using Web Services
Writing & Using Web ServicesWriting & Using Web Services
Writing & Using Web Services
 
Web services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP libraryWeb services in PHP using the NuSOAP library
Web services in PHP using the NuSOAP library
 
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and MavenWebtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
Webtests Reloaded - Webtest with Selenium, TestNG, Groovy and Maven
 
W-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache KarafW-JAX 2011: OSGi with Apache Karaf
W-JAX 2011: OSGi with Apache Karaf
 
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
OSGi for real in the enterprise: Apache Karaf - NLJUG J-FALL 2010
 
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQLHTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
HTTP, JSON, JavaScript, Map&Reduce built-in to MySQL
 

Similar to Service Oriented Integration with ServiceMix

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesLindsay Holmwood
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정Arawn Park
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Ontico
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Arun Gupta
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesChris Bailey
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practiceaegloff
 
ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyJean-Sebastien Delfino
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSO2
 
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Arun Gupta
 
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the CloudJavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the CloudArun Gupta
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudArun Gupta
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudArun Gupta
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...Amazon Web Services
 
Running your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudRunning your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudArun Gupta
 
Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01MindTree Ltd
 

Similar to Service Oriented Integration with ServiceMix (20)

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정점진적인 레거시 웹 애플리케이션 개선 과정
점진적인 레거시 웹 애플리케이션 개선 과정
 
EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)Mасштабирование микросервисов на Go, Matt Heath (Hailo)
Mасштабирование микросервисов на Go, Matt Heath (Hailo)
 
Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)Running your Java EE 6 applications in the Cloud (FISL 12)
Running your Java EE 6 applications in the Cloud (FISL 12)
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
TS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in PracticeTS 4839 - Enterprise Integration Patterns in Practice
TS 4839 - Enterprise Integration Patterns in Practice
 
ApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache TuscanyApacheCon NA 2010 - Building Apps with Apache Tuscany
ApacheCon NA 2010 - Building Apps with Apache Tuscany
 
Nuxeo JavaOne 2007
Nuxeo JavaOne 2007Nuxeo JavaOne 2007
Nuxeo JavaOne 2007
 
WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008WSF PHP 2 Webinar Sep 2008
WSF PHP 2 Webinar Sep 2008
 
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
Running your Java EE 6 Apps in the Cloud - JavaOne India 2011
 
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the CloudJavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
 
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the CloudRunning your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
 
StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
JFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the CloudJFokus 2011 - Running your Java EE 6 apps in the Cloud
JFokus 2011 - Running your Java EE 6 apps in the Cloud
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
(ARC402) Deployment Automation: From Developers' Keyboards to End Users' Scre...
 
Running your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloudRunning your Java EE 6 applications in the cloud
Running your Java EE 6 applications in the cloud
 
Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01Javaee6 Jazoon 2010 100603081147 Phpapp01
Javaee6 Jazoon 2010 100603081147 Phpapp01
 

More from ghessler

Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odpghessler
 
Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odpghessler
 
Joomla! Installation
Joomla! InstallationJoomla! Installation
Joomla! Installationghessler
 
Joomla Presentation
Joomla PresentationJoomla Presentation
Joomla Presentationghessler
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overviewghessler
 
Overview Of Xaware
Overview Of XawareOverview Of Xaware
Overview Of Xawareghessler
 
Gimp In Hollywood
Gimp In HollywoodGimp In Hollywood
Gimp In Hollywoodghessler
 

More from ghessler (8)

Embedded Linux Odp
Embedded Linux OdpEmbedded Linux Odp
Embedded Linux Odp
 
Ajax On S2 Odp
Ajax On S2 OdpAjax On S2 Odp
Ajax On S2 Odp
 
Joomla! Installation
Joomla! InstallationJoomla! Installation
Joomla! Installation
 
Joomla Presentation
Joomla PresentationJoomla Presentation
Joomla Presentation
 
Apache Commons Overview
Apache Commons OverviewApache Commons Overview
Apache Commons Overview
 
Overview Of Xaware
Overview Of XawareOverview Of Xaware
Overview Of Xaware
 
Gimp In Hollywood
Gimp In HollywoodGimp In Hollywood
Gimp In Hollywood
 
JCatapult
JCatapultJCatapult
JCatapult
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
"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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
"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
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Service Oriented Integration with ServiceMix

  • 1. Service Oriented Integration With Apache ServiceMix William G Henry william_henry@mac.com Presentation By Bruce Snyder bsnyder@apache.org
  • 2. Agenda  Enterprise Service Bus  Java Business Integration  Apache ServiceMix ESB  Apache Camel (intro) 2
  • 4. What is an ESB? quot;An Enterprise Service Bus (ESB) is a new architecture that exploits Web services, messaging Service Bus (ESB) is a and transformation. ESBs quot;An Enterprise middleware, intelligent routing, new architecture that act as a lightweight, ubiquitous integration backbone through which software exploits Web services, messaging middleware, intelligent services and application components flow.” (Gartner) routing, and transformation. ESBs act as a lightweight, ubiquitous integration backbone through which software services and application components flow.” (Gartner) 4
  • 5. What is an ESB? An ESB acts as a shared messaging layer for connecting applications and other services throughout ana sharedcomputing infrastructure. It supplements its An ESB acts as enterprise messaging layer for connecting core asynchronous messaging backbone with intelligent transformation and applications and other services throughout an enterprise routing to ensure messages are passed reliably. Services participate in the ESB using either web services messaging supplements its core computing infrastructure. It standards or JMS (LooselyCoupled.com) asynchronous messaging backbone with intelligent transformation and routing to ensure messages are passed reliably. Services participate in the ESB using either web services messaging standards or JMS (LooselyCoupled.com) 5
  • 6. What is an ESB? An ESB is an open standards, message-based, distributed, integration solution An ESB is an open standards, message-based, distributed, that provides routing, invocation, and mediation services to facilitate the interactions of disparate distributed information technology resources integration solution that provides routing, invocation, and (applications, services, information, platforms) in a reliable manner. (Brenda Michelson, Elemental Links) facilitate the interactions of disparate mediation services to distributed information technology resources (applications, services, information, platforms) in a reliable manner. (Brenda Michelson, Elemental Links) 6
  • 7. Do I need an ESB?  ESB Planning Process 7
  • 9. What is JBI?  JBI defines an architecture that allows the construction of integration systems from plug-in components, that interoperate through the method of mediated message exchange.  (JBI 1.0 Spec) 9
  • 16. ServiceMix Features  Supports many protocols  File, FTP, HTTP/S, JMS, SMTP, SOAP, TCP, XMPP  Support many engines  Apache Camel, Apache CXF, Apache ODE, Drools, OS Workflow, POJOs, Quartz, Scripting, Saxon XQuery and XSLT, WS-Notification  Support for Security  JAAS, WS-Security  Web Container/App Server Integration  Geronimo, JBoss, Jetty, Tomcat, Weblogic, Websphere 16
  • 20. Example 20
  • 22. file-poller-su  <beans xmlns:file='http://servicemix.apache.org/file/1.0'  xmlns:myApp=quot;http://com.mycompany/myappquot;>  <file:poller service=quot;myapp:filequot;  endpoint=quot;pollerquot;  file=quot;file:///Users/bsnyder/poller/inboxquot;  targetService=quot;myapp:wiretapquot;  targetEndpoint=quot;loggerquot; />  </beans> 22
  • 23. eip-wiretap-su  <beans xmlns:eip=quot;http://servicemix.apache.org/eip/1.0quot;  xmlns:myapp=quot;http://mycompany.com/myappquot;>  <eip:wire-tap service=quot;myapp:wiretapquot; endpoint=quot;endpointquot;>  <eip:target>  <eip:exchange-target service=quot;myapp:cbrquot; />  </eip:target>  <eip:inListener>  <eip:exchange-target service=quot;myapp:persistquot; />  </eip:inListener>  </eip:wire-tap>  </beans> 23
  • 24. camel-persist-su  public class PersistOrderRoute extends RouteBuilder {  public void configure() {  from(quot;jbi:endpoint:http://mycompany.com/persist/orderquot;)  .convertBodyTo(Order.class)  .to(quot;jpa:com.mycompany.Order?persistenceUnit=order- procquot;)  .convertBodyTo(Order.class);  }}  -------------------------------------------------  <beans xmlns:camel=”http://activemq.apache.org/camelquot;>  <camel:camelContext id=quot;camelquot;>  <package>com.mycompany.persistence</package>  </camel:camelContext>  </beans> 24
  • 25. eip-cbr-su  <beans xmlns:eip=quot;http://servicemix.apache.org/eip/1.0quot;  xmlns:myapp=quot;http://mycompany.com/myappquot;>  <eip:content-based-router service=quot;myapp:cbrquot;  endpoint=quot;endpointquot;>  <eip:rules>  <eip:routing-rule>  <eip:predicate>  <eip:xpath-predicate  xpath=quot;/message/cheese/text() = 'gouda'quot; />  </eip:predicate>  <eip:target>  <eip:exchange-target service=quot;myapp:queue1quot; />  </eip:target>  </eip:routing-rule>  ... 25
  • 26. eip-cbr-su  ...  <eip:routing-rule>  <eip:predicate>  <eip:xpath-predicate  xpath=quot;/message/cheese/text() = 'swiss'quot; />  </eip:predicate>  <eip:target>  <eip:exchange-target service=quot;myapp:queue2quot; />  </eip:target>  </eip:routing-rule>  <eip:routing-rule>  <eip:target>  <eip:exchange-target service=quot;myapp:queue3quot; />  </eip:target>  </eip:routing-rule>  </eip:rules>  </eip:content-based-router> 26
  • 27. jms-producer-su  <beans xmlns:jms=quot;http://servicemix.apache.org/jms/1.0quot;  xmlns:myapp=quot;http://mycompany.com/myapp  xmlns:amq=quot;http://activemq.org/config/1.0quot;>  <jms:endpoint service=quot;myapp:queue1quot;  endpoint=quot;myProviderquot;  role=quot;providerquot;  destinationStyle=quot;queuequot;  jmsProviderDestinationName=quot;queue1quot;  connectionFactory=quot;#connectionFactoryquot; />  <jms:endpoint service=quot;myapp:queue2quot;  endpoint=quot;myProviderquot;  role=quot;providerquot;  destinationStyle=quot;queuequot;  jmsProviderDestinationName=quot;queue2quot;  connectionFactory=quot;#connectionFactoryquot;/> 27
  • 28. jms-producer-su  ...  <jms:endpoint service=quot;myapp:queue3quot;  endpoint=quot;myProviderquot;  role=quot;providerquot;  destinationStyle=quot;queuequot;  jmsProviderDestinationName=quot;queue3quot;  connectionFactory=quot;#connectionFactoryquot;/>  <amq:connectionFactory id=quot;connectionFactoryquot;  brokerURL=quot;tcp://localhost:61616quot; />  </beans> 28
  • 31. Eclipse IDE Tooling For ServiceMix  Eclipse SOA Tooling Platform (STP) Project  http://eclipse.org/stp  IONA FUSE Eclipse Tooling  http://open.iona.com/wiki/display/ProdInfo/FUSE+Eclipse+Tools  Spagic  http://spagic.com/  Sopera  http://sopera.de/en/products/sopera-servicemixtools/ Eclipse SOA Tools Platform (STP) Project 31
  • 32. Eclipse Tooling Eclipse SOA Tools Platform (STP) Project 32
  • 33. What is Apache Camel? http://activemq.apache.org/camel/  33
  • 35. Example Pattern: Content Based Router RouteBuilder builder = new RouteBuilder() { public void configure() { from(quot;seda:aquot;).choice() .when(header(quot;fooquot;).isEqualTo(quot;barquot;)).to(quot;seda:bquot;) .when(header(quot;fooquot;).isEqualTo(quot;cheesequot;)).to(quot;seda:cquot;) .otherwise().to(quot;seda:dquot;); } }; 35
  • 36. Example Pattern: Content Based Router <camelContext id=quot;buildSimpleRouteWithChoicequot; xmlns=quot;http://activemq.apache.org/camel/schema/springquot;> <route> <from uri=quot;seda:aquot;/> <choice> <when> <predicate> <header name=quot;fooquot;/> <isEqualTo value=quot;barquot;/> </predicate> <to uri=quot;seda:bquot;/> </when> <when> <predicate> <header name=quot;fooquot;/> <isEqualTo value=quot;cheesequot;/> </predicate> <to uri=quot;seda:cquot;/> </when> <otherwise><to uri=quot;seda:dquot;/></otherwise> </choice> </route> </camelContext> 36
  • 37. What’s Coming in ServiceMix 4.0 Apache ServiceMix 4.0 37
  • 38. ServiceMix 4.0 Building Blocks  Runtime: OSGi (Apache Felix)  JBI support still intact!  NMR is a OSGi service  Message Broker: Apache ActiveMQ  Web Services: Apache CXF  Routing Engine: Apache Camel 38
  • 39. Thank You for Attending! Questions? 39
  • 41. Camel Makes Routing Much Easier! from(“http://localhost:8080/requests/”). tryBlock(). to(“activemq:queue:requests”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”)); from((“activemq:queue:requests?transacted=true”). process(requestTransformer). to(“http://host:8080/Request”). filter(xpath(“//nack”)). process(nackTransformer). to(“jdbc:store”); from(“http://localhost:8080/responses/”). tryBlock(). to(“activemq:queue:responses”). setOutBody(constant(“<ack/>”)). handle(Throwable.class). setFaultBody(constant(“<nack/>”)); from(“activemq:queue:responses?transacted=true”). process(responseTransformer). to(“jdbc:store”); from(“http://localhost:8080/pull/”). to(“jdbc:load”); 41