A SMALL RIDE WITHCAMELSunitha Raghurajan
WHAT IS APACHE CAMEL Apache Camel is a powerful Open Source Integration Framework based on known Enterprise Integration Pa...
INTEGRATION PATTERNS    A design pattern is a general reusable solution    to a commonly occurring problem within a given...
WHY THE NAME CAMEL           Concise           Application           Messaging           Exchange           Language   ht...
WHO ARE CAMEL’S PARENTS
WHAT IS APACHE SERVICE MIX   Lightweight Open Source ESB and SOA    Container   Built on JBI Specification   Supports O...
ESB   Platform   Architecture Component   Product
ESB   Simplifies Integration and flexible reuse of    business components using Service Oriented    Architecture    Glue...
WHAT IS ESBhttp://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 ARCHITECTURE     App A            App B            App C    Adapter         Adapter B        Adapter C                ...
ESB ARCHITECTURE
WHAT IS SOA Service-Oriented Architecture (SOA) is an  architectural style. Applications built using an SOA style delive...
WHAT IS A SERVICE   A service is a reusable component that can be    used as a building block to form larger, more    com...
WHY MESSAGING   Asynchronous operation       − Send and Forget Approach       − Sender doesn’t have to wait for the recei...
WHY MESSAGINGRemote CommunicationPlatform/Language Integration  communicate different systems running  different platforms...
WHY MESSAGING   Parallelize Work     − Messages in a single stream can be handled        in parallel by many client threa...
MESSAGING CONCEPTS Each message is sent to a particular named      “destination” (a topic or queue) Each message to a qu...
MESSAGE BROKER Decouple the destination message from the Sender     And maintain central control over the flow            ...
MESSAGING CONCEPTS  Message  Producer       Message Broker               Topic         Queue     Message       Message    ...
ACTIVE MQ   Apache ActiveMQ is an open source (Apache    2.0 licensed) message broker which fully    implements the Java ...
CHARACTERISTICS OF ESB  Message              Message                                            Service MappingEnhancement...
OSGI   The Open Services Gateway Initiative (OSGi)        Dynamic Module System for Java    Architecture for modular appl...
JBI   JBI is a java based standard to build integrations    systems by using plug-in components which    interoperates th...
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-                  ...
CAMEL (WHAT IS INSIDE )18 DATA FORMATS        bindy       protobuf       castor     serialization          csv          so...
CAMEL(INSIDE THE BOX)15 EXPRESSION LANGUAGES    BeanShell       Python       EL           Ruby     Groovy         Simple  ...
Domain Specific Language Domain-specific language  ● Routing can be defined in DSL  ● Java DSL Fluent API that allows co...
Questions
REFERENCES   http://ggatz.com/images/Enterprise_20Integratio    n_20-_20SOA_20vs_20EAI_20vs_20ESB.pdf   Camel in Action ...
Upcoming SlideShare
Loading in …5
×

Riding with camel

1,276 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,276
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Riding with camel

  1. 1. A SMALL RIDE WITHCAMELSunitha Raghurajan
  2. 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. 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. 4. WHY THE NAME CAMEL Concise Application Messaging Exchange Language http://camel.apache.org/why-the-name-camel.html
  5. 5. WHO ARE CAMEL’S PARENTS
  6. 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. 7. ESB Platform Architecture Component Product
  8. 8. ESB Simplifies Integration and flexible reuse of business components using Service Oriented Architecture Glue that holds the compound application together
  9. 9. WHAT IS ESBhttp://i.msdn.microsoft.com/Cc487894.bddfbe7f-6ee2-4072-91f1-402c87ee92ad(en-us,MSDN.10).png
  10. 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. 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
  12. 12. ESB ARCHITECTURE
  13. 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. 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. 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. 16. WHY MESSAGINGRemote CommunicationPlatform/Language Integration communicate different systems running different platforms, using different languages
  17. 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. 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. 19. MESSAGE BROKER Decouple the destination message from the Sender And maintain central control over the flow Of messages Message Broker
  20. 20. MESSAGING CONCEPTS Message Producer Message Broker Topic Queue Message Message Message Consumer Consumer Consumer
  21. 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. 22. CHARACTERISTICS OF ESB Message Message Service MappingEnhancement Transformation Protocol Routing Transmission Transaction Security Service Message Management Orchestration Processing
  23. 23. OSGI The Open Services Gateway Initiative (OSGi) Dynamic Module System for Java Architecture for modular application development.
  24. 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. 25. BACK TO CAMEL RIDE 50 Enterprise Integration Patterns http://camel.apache.org/eip
  26. 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 jdbcbean validation ejb hibernate jetty browse esper hl7 jms cache event http jmx cometd exec ibatis jpa crypto file irc jt/400
  27. 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. 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. 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
  30. 30. Questions
  31. 31. REFERENCES http://ggatz.com/images/Enterprise_20Integratio n_20-_20SOA_20vs_20EAI_20vs_20ESB.pdf Camel in Action http://manning.com/ibsen

×