SlideShare a Scribd company logo
1 of 31
A SMALL RIDE WITH
CAMEL
Sunitha Raghurajan
WHAT IS APACHE CAMEL

 Apache Camel is a powerful Open Source

 Integration Framework based on known

 Enterprise Integration Patterns

 http://camel.apache.org
INTEGRATION PATTERNS

    A design pattern is a general reusable solution
    to a commonly occurring problem within a given
    context in software design

   Patterns don’t desribe a problem, and don’t
    describe how to solve it-they tell you what to do
    to solve it (Ref:Enterprise Integration Pattern)
WHY THE NAME CAMEL
           Concise
           Application
           Messaging
           Exchange
           Language



   http://camel.apache.org/why-the-name-camel.html
WHO ARE CAMEL’S PARENTS
WHAT IS APACHE SERVICE MIX
   Lightweight Open Source ESB and SOA
    Container

   Built on JBI Specification

   Supports OSGi

   Can run as a standalone ESB provider or as a
    service within another ESB
ESB

   Platform

   Architecture Component

   Product
ESB

   Simplifies Integration and flexible reuse of
    business components using Service Oriented
    Architecture



    Glue that holds the compound application
    together
WHAT IS ESB




http://i.msdn.microsoft.com/Cc487894.bddfbe7f-6ee2-4072-91f1-402c87ee92ad(en-us,MSDN.10).png
ESB ARCHITECTURE
   ESB Delivers messages from one point to another

   Bus architecture uses a central messaging backbone (bus)
    for message propagation.

   Applications would publish messages to bus using
    adapters.

   These messages would flow to subscribing applications
    using message bus.

    Subscribing applications will have adapters
    which would take message from bus and transform the
    message into a format required for
    the application.
BUS ARCHITECTURE


     App A            App B            App C
    Adapter         Adapter B        Adapter C



                Messaging Backbone



    Adapter Z       Adapter G        Adapter K
    App Z            App G            App K
ESB ARCHITECTURE
WHAT IS SOA
 Service-Oriented Architecture (SOA) is an
  architectural style.
 Applications built using an SOA style deliver
  functionality as services that can be used or
  reused on a network.
 Each service would achieve a predefined
  business objective and perform discrete units of
  work.
 The services are independent and do not depend
  on the context or state of the other services. They
  work within distributed systems architecture
WHAT IS A SERVICE
   A service is a reusable component that can be
    used as a building block to form larger, more
    complex business-application functionality.



   A service may be as simple as “get me some
    person data,” or as complex as “process a
    disbursement.”
WHY MESSAGING

   Asynchronous operation
       − Send and Forget Approach
       − Sender doesn’t have to wait for the receiver   to
    receive and process the message

    Variable Timing

    Disconnected Operation

    Loose Coupling
    − Systems connected via messaging need not be
         aware of each other, or use the same technologies
    − Key messages can easily be routed to many systems
       Message broker is buffer in case of downtime
WHY MESSAGING

Remote Communication

Platform/Language Integration
  communicate different systems running
  different platforms, using different languages
WHY MESSAGING
   Parallelize Work
     − Messages in a single stream can be handled
        in parallel by many client threads or systems

   Throttle Work
    −   A large amount of work can be split across a
        small number of threads or systems to
        throttle effort
MESSAGING CONCEPTS
 Each message is sent to a particular named
      “destination” (a topic or queue)
 Each message to a queue is processed by

       exactly one consumer
   Typically, one of many connected consumers
 Each message to a topic is processed by all the

      consumers connected to that topic
   − May even be saved for consumers that happen
       to be disconnected at the moment
MESSAGE BROKER

 Decouple the destination message from the Sender
     And maintain central control over the flow
                   Of messages




               Message
               Broker
MESSAGING CONCEPTS


  Message
  Producer       Message Broker


               Topic         Queue




     Message       Message            Message
    Consumer      Consumer           Consumer
ACTIVE MQ
   Apache ActiveMQ is an open source (Apache
    2.0 licensed) message broker which fully
    implements the Java Message Service 1.1 (JMS)



   JMS The Java API for messaging
CHARACTERISTICS OF ESB

  Message              Message
                                            Service Mapping
Enhancement         Transformation




                                               Protocol
  Routing                                    Transmission




                                              Transaction
 Security        Service        Message       Management
              Orchestration    Processing
OSGI

   The Open Services Gateway Initiative (OSGi)
        Dynamic Module System for Java
    Architecture for modular application
    development.
JBI
   JBI is a java based standard to build integrations
    systems by using plug-in components which
    interoperates through mediated normalized
    message exchanges.

   The message exchange model is based on the web
    services description language (WSDL).
BACK TO CAMEL RIDE
   50 Enterprise Integration Patterns




              http://camel.apache.org/eip
APACHE CAMEL (INSIDE THE BOX)
80 COMPONENTS
  activemq          cxf       flatpack       jasypt
  activemq-
                   cxfrs    freemarker      javaspace
   journal
    amqp          Dataset   ftp/ftps/sftp      jbi

    atom           Db4o         gae            jcr

    bean          direct        hdfs          jdbc

bean validation     ejb      hibernate        jetty

   browse         esper         hl7           jms

    cache         event         http          jmx

   cometd          exec        ibatis          jpa

    crypto          file         irc         jt/400
CAMEL (WHAT IS INSIDE )
18 DATA FORMATS
        bindy       protobuf
       castor     serialization
          csv          soap
       crypto         syslog
        dozer     tidy markup
      flatpack     xml beans
         gzip     xml security
          hl7        xstream
         jaxb           zip
         json
CAMEL(INSIDE THE BOX)
15 EXPRESSION LANGUAGES
    BeanShell       Python

       EL           Ruby

     Groovy         Simple

    JavaScript      SpEL

    JSR 223          SQL

      OGNL          XPath

      MVEL          XQuery

      PHP
Domain Specific Language
 Domain-specific language
  ● Routing can be defined in DSL
  ● Java DSL
 Fluent API that allows code completion by

   your IDE
  ● Spring DSL
 Custom namespace with XML tags for routing

  ● Scala DSL
 Adding some Scala features on top of the

  Java DSL
Questions
REFERENCES
   http://ggatz.com/images/Enterprise_20Integratio
    n_20-_20SOA_20vs_20EAI_20vs_20ESB.pdf

   Camel in Action http://manning.com/ibsen

More Related Content

What's hot

Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Microsoft Décideurs IT
 
WSO2 ESB and SOA
WSO2 ESB and SOAWSO2 ESB and SOA
WSO2 ESB and SOAWSO2
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerAnt Phillips
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Jason Townsend, MBA
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Guido Schmutz
 
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009jarfield
 
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2
 
JMS Providers Overview
JMS Providers OverviewJMS Providers Overview
JMS Providers OverviewVadym Lotar
 
Reusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gReusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gGuido Schmutz
 
Introduction to web services and how to in php
Introduction to web services and how to in phpIntroduction to web services and how to in php
Introduction to web services and how to in phpAmit Kumar Singh
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-finalRohit Kelapure
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesIMC Institute
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011Tiempo Development
 

What's hot (20)

Exchange Server 2013 Architecture Deep Dive, Part 2
Exchange Server 2013 Architecture Deep Dive, Part 2 Exchange Server 2013 Architecture Deep Dive, Part 2
Exchange Server 2013 Architecture Deep Dive, Part 2
 
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
Plongée en eaux profondes dans l'architecture du nouvel Exchange 2013
 
Where to use OSB
Where to use OSBWhere to use OSB
Where to use OSB
 
WSO2 ESB and SOA
WSO2 ESB and SOAWSO2 ESB and SOA
WSO2 ESB and SOA
 
oracle-osb
oracle-osboracle-osb
oracle-osb
 
Osbsoa1
Osbsoa1Osbsoa1
Osbsoa1
 
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client AccessExchange 2013 ABC's: Architecture, Best Practices and Client Access
Exchange 2013 ABC's: Architecture, Best Practices and Client Access
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003
 
WebSphere Message Broker Training Agenda
WebSphere Message Broker Training AgendaWebSphere Message Broker Training Agenda
WebSphere Message Broker Training Agenda
 
Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)Where and when to use the Oracle Service Bus (OSB)
Where and when to use the Oracle Service Bus (OSB)
 
HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009HornetQ Presentation On JBoss World 2009
HornetQ Presentation On JBoss World 2009
 
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
WSO2Con2011: Using WSO2 ESB with SAP ERP (Retail)
 
JMS Providers Overview
JMS Providers OverviewJMS Providers Overview
JMS Providers Overview
 
Reusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11gReusing Existing Java EE Applications from SOA Suite 11g
Reusing Existing Java EE Applications from SOA Suite 11g
 
Introduction to web services and how to in php
Introduction to web services and how to in phpIntroduction to web services and how to in php
Introduction to web services and how to in php
 
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
2012 04-06-v2-tdp-1163-java e-evsspringshootout-final
 
Web service introduction 2
Web service introduction 2Web service introduction 2
Web service introduction 2
 
Java Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web ServicesJava Web Services [4/5]: Java API for XML Web Services
Java Web Services [4/5]: Java API for XML Web Services
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011
 

Similar to Riding with camel

Building Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsBuilding Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsSrdjan Strbanovic
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Charles Moulliard
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioKim Clark
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...IndicThreads
 
The Carbon Story
The Carbon StoryThe Carbon Story
The Carbon StoryWSO2
 
High Volume Web API Management with the WSO2 ESB
High Volume Web API Management with the WSO2 ESBHigh Volume Web API Management with the WSO2 ESB
High Volume Web API Management with the WSO2 ESBPaul Fremantle
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsGordon Dickens
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Shameer Thaha Koya
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies SkillsS LMS
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies SkillsDeepak Raj
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.suranisaunak
 
Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Charles Moulliard
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonAdnan Masood
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stackJohan Edstrom
 
Summer training java
Summer training javaSummer training java
Summer training javaArshit Rai
 

Similar to Riding with camel (20)

Building Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsBuilding Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJs
 
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 
Building enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolioBuilding enterprise depth APIs with the IBM hybrid integration portfolio
Building enterprise depth APIs with the IBM hybrid integration portfolio
 
Jboss
JbossJboss
Jboss
 
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
OSGi For Java Infrastructures [5th IndicThreads Conference On Java 2010, Pune...
 
Jbw chicago
Jbw chicagoJbw chicago
Jbw chicago
 
The Carbon Story
The Carbon StoryThe Carbon Story
The Carbon Story
 
High Volume Web API Management with the WSO2 ESB
High Volume Web API Management with the WSO2 ESBHigh Volume Web API Management with the WSO2 ESB
High Volume Web API Management with the WSO2 ESB
 
Enterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable ApplicationsEnterprise Spring Building Scalable Applications
Enterprise Spring Building Scalable Applications
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies Skills
 
Technologies Skills
Technologies SkillsTechnologies Skills
Technologies Skills
 
Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.Introduction Java Web Framework and Web Server.
Introduction Java Web Framework and Web Server.
 
Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration Apache ServiceMix4 : Dream platform for Java Integration
Apache ServiceMix4 : Dream platform for Java Integration
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
Summer training java
Summer training javaSummer training java
Summer training java
 
Analysis
AnalysisAnalysis
Analysis
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
"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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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!
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
"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
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Riding with camel

  • 1. A SMALL RIDE WITH CAMEL Sunitha Raghurajan
  • 2. WHAT IS APACHE CAMEL Apache Camel is a powerful Open Source Integration Framework based on known Enterprise Integration Patterns http://camel.apache.org
  • 3. INTEGRATION PATTERNS   A design pattern is a general reusable solution to a commonly occurring problem within a given context in software design  Patterns don’t desribe a problem, and don’t describe how to solve it-they tell you what to do to solve it (Ref:Enterprise Integration Pattern)
  • 4. WHY THE NAME CAMEL Concise Application Messaging Exchange Language  http://camel.apache.org/why-the-name-camel.html
  • 6. WHAT IS APACHE SERVICE MIX  Lightweight Open Source ESB and SOA Container  Built on JBI Specification  Supports OSGi  Can run as a standalone ESB provider or as a service within another ESB
  • 7. ESB  Platform  Architecture Component  Product
  • 8. ESB  Simplifies Integration and flexible reuse of business components using Service Oriented Architecture  Glue that holds the compound application together
  • 10. ESB ARCHITECTURE  ESB Delivers messages from one point to another  Bus architecture uses a central messaging backbone (bus) for message propagation.  Applications would publish messages to bus using adapters.  These messages would flow to subscribing applications using message bus.  Subscribing applications will have adapters which would take message from bus and transform the message into a format required for the application.
  • 11. BUS ARCHITECTURE App A App B App C Adapter Adapter B Adapter C Messaging Backbone Adapter Z Adapter G Adapter K App Z App G App K
  • 13. WHAT IS SOA  Service-Oriented Architecture (SOA) is an architectural style.  Applications built using an SOA style deliver functionality as services that can be used or reused on a network.  Each service would achieve a predefined business objective and perform discrete units of work.  The services are independent and do not depend on the context or state of the other services. They work within distributed systems architecture
  • 14. WHAT IS A SERVICE  A service is a reusable component that can be used as a building block to form larger, more complex business-application functionality.  A service may be as simple as “get me some person data,” or as complex as “process a disbursement.”
  • 15. WHY MESSAGING  Asynchronous operation − Send and Forget Approach − Sender doesn’t have to wait for the receiver to receive and process the message Variable Timing Disconnected Operation Loose Coupling − Systems connected via messaging need not be aware of each other, or use the same technologies − Key messages can easily be routed to many systems Message broker is buffer in case of downtime
  • 16. WHY MESSAGING Remote Communication Platform/Language Integration communicate different systems running different platforms, using different languages
  • 17. WHY MESSAGING  Parallelize Work − Messages in a single stream can be handled in parallel by many client threads or systems  Throttle Work − A large amount of work can be split across a small number of threads or systems to throttle effort
  • 18. MESSAGING CONCEPTS  Each message is sent to a particular named “destination” (a topic or queue)  Each message to a queue is processed by exactly one consumer Typically, one of many connected consumers  Each message to a topic is processed by all the consumers connected to that topic − May even be saved for consumers that happen to be disconnected at the moment
  • 19. MESSAGE BROKER Decouple the destination message from the Sender And maintain central control over the flow Of messages Message Broker
  • 20. MESSAGING CONCEPTS Message Producer Message Broker Topic Queue Message Message Message Consumer Consumer Consumer
  • 21. ACTIVE MQ  Apache ActiveMQ is an open source (Apache 2.0 licensed) message broker which fully implements the Java Message Service 1.1 (JMS)  JMS The Java API for messaging
  • 22. CHARACTERISTICS OF ESB Message Message Service Mapping Enhancement Transformation Protocol Routing Transmission Transaction Security Service Message Management Orchestration Processing
  • 23. OSGI  The Open Services Gateway Initiative (OSGi) Dynamic Module System for Java Architecture for modular application development.
  • 24. JBI  JBI is a java based standard to build integrations systems by using plug-in components which interoperates through mediated normalized message exchanges.  The message exchange model is based on the web services description language (WSDL).
  • 25. BACK TO CAMEL RIDE  50 Enterprise Integration Patterns http://camel.apache.org/eip
  • 26. APACHE CAMEL (INSIDE THE BOX) 80 COMPONENTS activemq cxf flatpack jasypt activemq- cxfrs freemarker javaspace journal amqp Dataset ftp/ftps/sftp jbi atom Db4o gae jcr bean direct hdfs jdbc bean validation ejb hibernate jetty browse esper hl7 jms cache event http jmx cometd exec ibatis jpa crypto file irc jt/400
  • 27. CAMEL (WHAT IS INSIDE ) 18 DATA FORMATS bindy protobuf castor serialization csv soap crypto syslog dozer tidy markup flatpack xml beans gzip xml security hl7 xstream jaxb zip json
  • 28. CAMEL(INSIDE THE BOX) 15 EXPRESSION LANGUAGES BeanShell Python EL Ruby Groovy Simple JavaScript SpEL JSR 223 SQL OGNL XPath MVEL XQuery PHP
  • 29. Domain Specific Language  Domain-specific language ● Routing can be defined in DSL ● Java DSL  Fluent API that allows code completion by your IDE ● Spring DSL  Custom namespace with XML tags for routing ● Scala DSL  Adding some Scala features on top of the Java DSL
  • 31. REFERENCES  http://ggatz.com/images/Enterprise_20Integratio n_20-_20SOA_20vs_20EAI_20vs_20ESB.pdf  Camel in Action http://manning.com/ibsen