SlideShare a Scribd company logo
RED HAT
FUSE TRAINING
JBoss Fuse and Camel
3
Keywords
● Apache Camel
● Enterprise Integration Patterns
● Components, Routes, Endpoints, Messages,
Processors
4
Apache Camel
• Powerful Integration Framework
– Based on known Enterprise Integration Patterns
– Framework do the heavy lifting
– You can focus on business problem
– Not "reinventing the wheel"
• Use Case : a really simple way to do integration
– Started as a Sub-project of ActiveMQ in March 2007
– 36 committers (15 work for Red Hat)
– 80-100k artifact downloads a month
– 120k website views a month
– 1000 user mailing list posts per month
– 130 + Components and growing
– Most widely used integration framework on the planet

Recommended for you

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

The document discusses using the camel-cxf component to create and consume web services with Apache Camel. It describes three approaches for working with SOAP messages: POJO-based using generated Java objects, payload-based working directly with XML payloads, and provider-based. The agenda covers implementing a web service using these approaches with Apache ServiceMix, including code generation, configuration, packaging, and testing. Sample code is provided to demonstrate routing SOAP messages between HTTP, JMS, and generating responses using templates.

camelsoapxml
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint

OSGi and Blueprint provide modularity for Java applications. Apache Karaf is an OSGi container that allows dynamic installation and management of bundles. Blueprint is an implementation of the OSGi declarative services specification that allows configuring bundles through XML. Key concepts discussed include OSGi bundles and their lifecycle, the OSGi service registry for communication between bundles, and using Apache Karaf and Blueprint together for an OSGi application.

osgi
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance

This document discusses application profiling for memory and performance. It describes how to measure contention in CPU, memory, disk I/O, and network I/O as concurrency increases. It recommends performance tuning by identifying bottlenecks and shifting them through parameter tweaking and code profiling. Common issues like classcast exceptions, permgen errors, deadlocks, nullpointers, and outofmemoryexceptions can be addressed through profiling tools like JProfiler, Eclipse Memory Analyzer, and JConsole. The document provides examples of how WSO2 uses profiling to optimize products like the Identity Server for low-memory environments and Raspberry Pi clusters.

 
by WSO2
5
Enterprise Integration Patterns
http://www.enterpriseintegrationpatterns.com/
6
Camel implements most EIP Patterns
http://camel.apache.org/enterprise-integration-patterns.html
• Messaging systems
• Messaging Channels
• Message Routing
• Message transformation
• Message Endpoints
Message router Message translator
Dead Letter Channel Message Bus
Recipient List Splitter Aggregator
Content Enricher Content Filter
Event Driven Consumer Polling Consumer
7
Example : complex deployment
Source : JBoss Fuse success story – Major Retail Pharmacy Chain
8
JBoss Fuse Architecture :
routes, components, endpoints
From : “Camel in Action”, by Claus Ibsen

Recommended for you

ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features

This document provides an overview and agenda for a presentation on Apache ActiveMQ 5.9.x and Apache Apollo. The presentation will cover new features in ActiveMQ 5.9.x including AMQP 1.0 support, REST management, a new default file-based store using LevelDB, and high availability replication of the store. It will also introduce Apache Apollo and allow for a question and discussion period.

integrationred hatmessaging
What's New in WildFly 9?
What's New in WildFly 9?What's New in WildFly 9?
What's New in WildFly 9?

This session covers new improvements that will be introduced in WildFly 9: • Wildfly-core will be extracted from the codebase and the ability to assemble a server on top of it will be introduced. WildFly 9 will be provided in two versions: Wildfly Web and Wildfly Full but users will be able to create their custom packaging of WildFly. • Users will be able to shutdown the application server in a graceful manner - after the shutdown command is executed server will reject new requests and allow existing requests to finish before it shuts down. • Support for HTTP/2, a new version of HTTP protocol based on SPDY, will be introduced. • Users will be able to use WildFly as a load balancer. Consequently, it will be possible to manage the balancer with the same tools that are used to manage the rest of the domain. What is more, users will be able to use more efficient protocols, such as HTTP/2, for communication between the balancer and backend servers. • An OpenShift cartridge, which will enable users to use WildFly 9 in cloud environment, will be provided. • WildFly 9 will use OpenJDK ORB library instead of JacORB.

jboss eapred hatjava ee
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq

This document discusses achieving horizontal scaling for enterprise messaging using Fabric8. It provides an introduction to Fabric8 and enterprise messaging concepts. It then describes how Fabric8MQ, which is built on Vert.x, provides horizontal scaling and load balancing for ActiveMQ by implementing features like protocol conversion, Camel routing, API management, multiplexing, and destination sharding across Kubernetes pods and nodes. The document concludes with a demo of Fabric8MQ's capabilities.

mqttfabric8 mqactivemq
9
Camel Context
• CamelContext is the container of many Camel Services
• Instance of the Camel runtime
From : “Camel in Action”, by Claus Ibsen
10
What is a Camel Component?
• Components are the main extension point in Camel
• Components are used to manage everything in Camel :
◾ Data Transport
◾ Data Formatting
◾ ... customized behaviour
• From a programming point of view they :
◾ Have a name
◾ Act as a Factory of endpoints
11
What is a Camel Processor?
• Core Camel concept : node capable of using, creating, or
modifying an incoming exchange
• During routing exchanges flow from one processor to another
public interface Processor {
  /**
   * Processes the message exchange
   * 
   * @param exchange the message exchange
   * @throws Exception if an internal processing error has occurred.
   */
  void process(Exchange exchange) throws Exception;
}
12
EIP Patterns and Processors
• Implement the actions of the EIP between the endpoints
• Perform actions on the message in the Route (e.g modify, use,
create, enrich ...)
• Processors can be linked in a pipeline flow
• Processor examples :
Splitter Message Filter
Aggregator Message Router
Content Enricher

Recommended for you

Setting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteSetting up a free open source java e-commerce website
Setting up a free open source java e-commerce website

History and lessons learned from a startup weekend. How I picked a FOSS e-commerce Java software and set-up a webshop in a weekend from ground zero. Including pushing it into the cloud.

java javaee j2ee e-commerce website hibernate spri
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012

This document discusses new features in Oracle WebLogic Server 12c including Java EE 6 support, simplified deployment and management with virtualization, integrated traffic management, enhanced high availability and disaster recovery, improved performance, and optimizations for cloud environments. Key highlights include over 200 new features, support for Java SE 7, active GridLink capabilities for Oracle RAC, and integration with Oracle Exalogic engineered systems for extreme performance.

oracle weblogic serverotnoracle
How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon

This document discusses how to build custom products using the WSO2 Carbon platform. It covers key Carbon concepts like features and components, and how to develop a custom component, create a corresponding feature, and install it into a Carbon-based product. It provides steps for building the backend and frontend of a component using Maven, as well as configuring deployment, clustering, and more.

 
by WSO2
13
What is a Camel route?
• A Route is the step-by-step movement of a message:
◾ From a “listening” endpoint in the role of consumer
◾ Through a processing component - enterprise integration pattern,
processor, interceptor, etc. (optional)
◾ To a target endpoint in the role of producer
• May involve any number of processing components that
modify the original message and/or redirect it
◾ Use expressions and predicates
• An application developer specifies routes using:
◾ Spring configuration files
◾ Java Domain Specific Language (DSL)
14
Routes ....
• By decoupling clients from servers, and producers
from consumers, routes can
◾ Decide dynamically what server a client will invoke
◾ Provide a flexible way to add extra processing
◾ Allow for clients and servers to be developed independently
◾ Allow for clients of servers to be stubbed out (using mocks)
for testing purposes
◾ Foster better design practices by connecting disparate
systems that do one thing well
◾ Enhance features and functionality of some systems (such
as message brokers and ESBs)
• Each route in Camel has a unique identifier that’s used
for logging, debugging, monitoring, and starting and
stopping routes.
15
Expressions and Predicates
• Expressions return a selection of nodes for processing
◾ XPath is used for parsing XML payloads
• Predicates are conditional expressions
◾ Used to add logical branching to routes
• Camel supports other expression languages
◾
XQuery, Simple, Bean, OGNL, JavaScript, Groovy, Ruby ...
16
What is a Camel Endpoint?
• An endpoint is something that can create or receive messages,
for example, an FTP server, a Web Service, or a JMS broker
• Camel allows you to specifiy endpoints using simple URIs
◾ ftp://john@localhost/ftp?password=nhoj
◾ activemq:queue:MyQueue
◾ timer://myTimer?period=2000
• Consumer Endpoint, source at beginning of Route, 'from'
• Producer Endpoint, sink at end of Route, 'to'

Recommended for you

Maximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure FootprintMaximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure Footprint

This document discusses how to maximize messaging performance and minimize infrastructure footprint when deploying WSO2 products. It recommends selecting the appropriate message transport based on factors like performance, interoperability, and asynchronous capabilities. It also suggests minimizing footprint by using Carbon to build minimal products or multi-tenancy to maximize sharing. Recent performance improvements in WSO2 products include native JSON support, ESB pass-through, streaming XPath/XSLT, and CEP 2.0. Tuning at the OS, product, and application levels can further optimize performance. The goal is to build smaller, higher performing systems that save money and resources.

 
by WSO2
Jug Poitou Charentes - Apache, OSGi and Karaf
Jug Poitou Charentes -  Apache, OSGi and KarafJug Poitou Charentes -  Apache, OSGi and Karaf
Jug Poitou Charentes - Apache, OSGi and Karaf

The document discusses Apache Karaf, OSGi, Blueprint and related topics. It provides an overview of the Apache Software Foundation and its role in open source projects like OSGi. It then summarizes OSGi and how it addresses modularity challenges in Java. Finally, it introduces Blueprint for dependency injection in OSGi and Apache Karaf as an OSGi-based runtime.

karafjugapache
Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand

This document discusses best practices for delivering mission-critical production grade architectures and infrastructures. It covers deployment patterns, reference architectures, capacity planning, and scaling. The key points are: understanding business objectives, considering infrastructure policies and standards, drawing logical and physical architectures, gathering performance data, sizing instances based on capacity planning guidelines, and keeping a buffer for unexpected demand. The goal is to right-size deployments to meet enterprise needs.

 
by WSO2
17
Endpoint Syntax
• Endpoint URI format:
scheme:remainingURI[?options]
• Where:
• scheme identifies the component
– Scheme is the registered service name for activating a component in Camel
– Triggers dynamic loading of the component
– Maps to a specific instance of org.apache.camel.Component
• options is a list of name/value pairs
option1=value1&option2=value2&option3=value3
from("ftp://john@localhost/ftp?password=nhoj")
.to("xslt:MyTransform.xslt")
.to("activemq:queue:MyQueue")
Consumer endpoint
Producer
endpoint
Parameters
18
Endpoint Functionality
• Endpoints are either message source or message sink
• Two roles :
◾ Consumer
– Appears at the beginning of a routing rule (for example, in a from() command
or in a <from ...> element, depending on the DSL used)
– Receives messages from an external source and creates a message
exchange object, which the routing rule processes.
◾ Producer
– Appears at the end of a routing rule (for example, in a to() command or in a
<to ...> element, depending on the DSL used)
– Sends the current message wrapped in the message exchange object to an
external target destination.
19
Camel Components in practice
Use Case : Receive orders from ActiveMQ queue and
based on the type of message forward to appropriate
queue (ActiveMQ or Websphere MQ)
20
Example 1 of 3
from newOrder
choice
when isWidget to widget
otherwise to gadget

Recommended for you

Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)

With Oracle SOA Suite 11g the old Oracle ESB become the Mediator component. With that only one "real" service bus resides, the Oracle Serivce Bus (OSB), which has been taken over from BEA (used to be Aqualogic Service Bus). Mediator and OSB have some overlapping funcitonality, like transformation, routing and filtering. The question automatically raised is of course when to use which component. This presentation shows the difference between the components, the functionality they provide and some typical use cases for both.

oracle service busdoag 2009oracle soa suite 11g
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 Carbon

1. The document discusses strategies for scaling, availability, and managing the WSO2 Carbon platform, including clustering for scalability and availability, the WSO2 Elastic Load Balancer, separating management and worker nodes, deployment synchronization, and lazy loading. 2. It provides an overview of membership types and modes for Carbon clustering, configurations for clustering, and strategies for HTTP session replication. 3. The WSO2 Elastic Load Balancer 2.0 is introduced which provides tenant-aware load balancing, private jet mode to dedicate clusters for tenants, and an improved auto-scaler.

 
by WSO2
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...

Alfresco Summit 2014 (London) Though best practice is to leverage Alfresco through the well defined API's, it can be useful to understand the internals of the repository so that your development efforts are the most effective. A deep understanding of the repository will help you to evaluate performance bottlenecks, look for bugs, or make contributions. This session provides an overview of the repository internals, including the major components, the key services, subsystems, and database. We then provide an example where we leverage the repository in a micro-service architecture while building Alfresco's future cloud products and show how the different parts of the repository interact to fulfill requests. http://summit.alfresco.com/london/sessions/diving-deep-alfresco-repository https://www.youtube.com/watch?v=TAE9UjC0xxc

 
by J V
micro-servicesalfrescorepository
21
Example 2 of 3
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise.to(gadget)
22
Example 3 of 3
Endpoint newOrder = endpoint("activemq:queue:newOrder");
Predicate isWidget = xpath("/order/product = 'widget'");
Endpoint widget = endpoint("activemq:queue:widget");
Endpoint gadget = endpoint("wmq:queue:gadget");
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise.to(gadget)
23
Example : Java DSL
import org.apache.camel.Endpoint;
import org.apache.camel.Predicate;
import org.apache.camel.builder.RouteBuilder;
public class MyRoute extends RouteBuilder {
public void configure() throws Exception {
Endpoint newOrder = endpoint("activemq:queue:newOrder");
Predicate isWidget = xpath("/order/product = 'widget'");
Endpoint widget = endpoint("activemq:queue:widget");
Endpoint gadget = endpoint("activemq:queue:gadget");
from(newOrder)
.choice()
.when(isWidget).to(widget)
.otherwise().to(gadget)
.end();
}
}
24
Example : XML DSL
<route>
<from uri="activemq:queue:newOrder"/>
<choice>
<when>
<xpath>/order/product = 'widget'</xpath>
<to uri="activemq:queue:widget"/>
</when>
<otherwise>
<to uri="wmq:queue:gadget"/>
</otherwise>
</choice>
</route>

Recommended for you

Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes

The document discusses microservices architecture on Kubernetes. It describes microservices as minimal, independently deployable services that interact to provide broader functionality. It contrasts this with monolithic applications. It then covers key aspects of microservices like ownership, tradeoffs compared to traditional applications, common adoption cases, and differences from SOA. It provides a reference architecture diagram for microservices on Kubernetes including components like ingress, services, CI/CD pipelines, container registry, and data stores. It also discusses design considerations for Kubernetes microservices including using Kubernetes services for service discovery and load balancing, and using an API gateway for routing between clients and services.

reference architectures shows a microservices depl
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors

WSO2 ESB outperforms other open source ESBs through its use of specialized transports like the Pass Through Transport (PTT) and optimizations like streaming XPath and FAST XSLT. Benchmark tests showed WSO2 ESB 4.6 handling over 2,500 concurrent connections with minimal latency, outperforming competitors. While performance is important, WSO2 ESB is also enterprise-ready, part of a complete middleware platform, and offers PaaS deployment and 100% open source software.

 
by WSO2
Redhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQRedhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQ

Conozca como nuestro bus de servicios empresariales Red Hat JBoss Fuse proporciona una mejor gestión de la información maximizando el valor de sus aplicaciones, reduciendo los tiempos de respuesta operativos, agilizando la toma de decisiones inteligentes para su negocio en tiempo real.

jbossfuseamq
25
Example : change the endpoint
<route>
<from uri="file:inbox/orders?delete=true"/>
<choice>
<when>
<xpath>/order/product = 'widget'</xpath>
<to uri="activemq:queue:widget"/>
</when>
<otherwise>
<to uri="wmq:queue:gadget"/>
</otherwise>
</choice>
</route>
parameters
use file instead
26
DSL : Java or XML ?
● Java
+ More options for custom development, embedded solutions
in legacy applications/frameworks
– Developer needs to take control of instantiation and route
lifecycles
● XML
+ Configuration over coding, which is simple, and means you
can see your route and its resources / configuration, all in
one place
– More coarse-grained and verbose
27
Consumers and Producers
• Message consumers and producers are created from
endpoints
◾ Some endpoint technologies can create producers and
consumers, others support the creation of either a producer
or a consumer
◾ Examples :
from("timer://myTimer?period=2000")
.setBody().simple("Current time is ${header.firedTime}")
.to("stream:out");
from("ftp://john@localhost/ftp?password=nhoj")
.to("xslt:MyTransform.xslt")
.to("activemq:queue:MyQueue")
28
ESB and routes
• ESB creates a pipeline of processors
◾ Passes incoming message to processor
◾ Sends output from one processor to the next in the chain

Recommended for you

JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5

It's time to take a look at the running container for the camel route we have been creating for this stock trading company, after all, our system cannot always run on developer's laptop. This part takes you look at the OSGi container in JBoss Fuse

apache karafjboss fuse
JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6

This is the last part of the workshop. This workshop is about fabric8. It provision, automate, configure, and manage containers from a central location. Also provide HA, failover and service registry too.

jboss fusefabric8
JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4

The best thing about Camel is that you can actually concentrating what is important, your enterprise specific customize logic. And guess what, there are no framework to learn, just use POJO. This workshop tells you how to register your java bean in Camel, and how to make use of it!

jboss fuse
29
ESB and messages
• ESB sends a Message Exchange along the pipeline
◾ Passes incoming message to processor
◾ Must be explicitly transformed, if needed
30
Camel Message Exchange
• Message Container during routing
• Two Properties:
• InOnly (fire & forget - e.g. JMS message)
• InOut (request-response - e.g. HTTP requests)
Exchange
InMessage
Headers
Attachments
Body
Exchange ID MEP
Exception Properties
OutMessage
Headers
Attachments
Body
31
Camel Message
• Basic structure for moving data over a Route
Sender ReceiverMessage
Message
Headers
Attachments
Body
(payload)
32
Camel Message Lifecycle
Sender ReceiverMessage

Recommended for you

JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3

This part go on to explain what EIP, Enterprise Integration Pattern is. We take you through some of the common EIP we use while trying to solve integration problems. But it's not just boring old textbook EIP, we go through an ordering system that actually discuss what EIP we can use in it!

jboss fuseapache camelintegration
JBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error HandlingJBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error Handling

This small independent workshop talks about error handling in Camel. It covers the basic error handler, catches exceptions and also using try and catch in Camel route.

jboss fuseapache camel
JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2

This document discusses message transformation techniques in JBoss Fuse, including transforming message formats like XML, JSON, CSV, and POJO; using components like marshal, unmarshal, and transform to change formats; updating message metadata and content; and using processors and beans to customize transformations.

jboss fuseworkshop
33
Camel Message Lifecycle
• In messages are modified by each processor in the
route
◾ If a processor sets the Out message, Camel automatically
copies the Out message into the In message and resets the
Out message to be null
34
End of Pipeline
• When processing is finished Camel returns the ME to
the consumer
• The consumer can :
◾ Send a response message
◾ Commit a transaction
◾ Handle and error
◾ Free any resource in use
35
Camel Components
120+ Components (supported)
36
Camel Components
120+ Components (supported)

Recommended for you

DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO

DevOps and Continuous Delivery slides with Fabric8 (http://fabric8.io), HawtIO (http://hawt.io), Camel, ActiveMQ, Docker Jenkins, etc.

devops continuous delivery fabric8 docker hawtio
Costos y honorarios del consultor
Costos y honorarios del consultorCostos y honorarios del consultor
Costos y honorarios del consultor

aqui se muestran los diferentes tipos de honorarios de un consultor asi como los métodos que hay para determinarlos e ingormacion de la factura hacia el cliente.

education
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐

대용량 분산 시스템 디자인 패턴

아키텍쳐architecture디자인 분산 시스템
37
Data Formats
Serialization String JSon Castor JAXB
XStream XmlBeans SOAP XmlJson CSV
EDI Flatpack
DataFormat
HL7
DataFormat
Gzip Zip
PGP Crypto XMLSecurity RSS Syslog
TidyMarkup Custom
• Transform format (e.g. CSV to XML)
• Transform data type (e.g. Java.lang.String to javax.jms.TextMessage)
• Use built-in components (e.g. XSLT), use components (e.g. Enricher),
built-in Data formats, templates, custom
38
Extending Camel
● Using Components
From : “Camel in Action”, by Claus Ibsen
39
Extending Camel : create custom components
• Use Maven to create a skeleton component
• Define endpoint name
• Implement endpoint class to create
Consumer or Producer or both
• Implement Consumer and Producer classes
JBoss Fuse Camel :
advanced topics

Recommended for you

Proceso de la consultoria
Proceso de la consultoriaProceso de la consultoria
Proceso de la consultoria

El documento describe las etapas del proceso de consultoría, incluyendo la iniciación, diagnóstico, planificación de acción, aplicación y terminación. También presenta un caso empresarial sobre una pizzería llamada "Don Pochocho" que busca diferenciarse ofreciendo comida rápida saludable y una experiencia única para los clientes.

EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice

This document provides an overview of enterprise integration patterns (EIPs) and how they are implemented using Apache Camel and Project Fuji frameworks. It discusses core EIP principles like asynchronous messaging for integration. It also describes various EIP implementations like content-based routing, dead letter channels, and message transformation patterns. Code examples are shown using the Java and Spring DSLs for Apache Camel and the DSL and web UI for Project Fuji.

eip integration java apache camel
An introduction to Apache Camel
An introduction to Apache CamelAn introduction to Apache Camel
An introduction to Apache Camel

Apache Camel is an open-source integration framework that allows applications to integrate various systems together. It uses Enterprise Integration Patterns to provide routing and mediation between endpoints. Camel supports various languages and has a large number of components for integration with different systems like files, databases, messaging systems etc. It allows configuration of routes using a simple domain specific language to perform operations like transforming messages, splitting/aggregating data between endpoints.

apache camel
41
Data transformation overview
● Data Format & Data Type
◾ Data format example : message body from .csv to .xml
◾ Data type example : message body from
java.lang.String to javax.jms.TextMessage
◾ Data transformations can be combined
From : “Camel in Action”, by Claus Ibsen
42
Data Transformation
Data transformation in routes
Explicitly enforce transformation in the route using the Message
Translator or the Content Enricher EIPs. This gives you the power
to do data mapping using regular Java code.
Data transformation using
components
Camel provides a range of components for transformation, such
as the XSLT component for XML transformation.
Data transformation
using data formats
Data formats are Camel transformers that come in pairs to
transform data back and forth between well-known formats
Data transformation
using templates
Camel provides a range of components for transforming using
templates, such as Apache Velocity.
Data type transformation using
Camel’s type-converter
mechanism
Camel has an elaborate type-converter mechanism that activates
on demand. This is convenient when you need to convert from
common types such as java.lang.Integer to java.lang.String or
even from java.io.File to java.lang.String.
Message transformation in
component adapters
Extend Data transformation capability via custom transformers
43
Message Translator & Content Enricher
From : “Camel in Action”, by Claus Ibsen
44
Message Translator
● 3 methods supported
◾ Using Processor
◾ Using beans
◾ Using <transform>
Route
from("quartz://report?cron=0+0+6+*+*+?")
.to("http://riders.com/orders/cmd=received&date=yesterday")
.bean(new OrderToCsvBean())
.to("file://riders/orders?fileName=report­${header.Date}.csv");
From : “Camel in Action”, by Claus Ibsen

Recommended for you

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule

This document provides an introduction and overview of Mule, an open-source enterprise service bus (ESB). It discusses what Mule is, how it uses advanced technologies like staged event-driven architecture (SEDA) and Java NIO. The core concepts of Mule like the universal message object, endpoints, transports, connectors, routers, filters and transformers are explained. Examples are given of using Mule for file processing and XML pipelines. Exception handling in Mule is also covered.

Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus

Mule is an open-source enterprise service bus (ESB) that allows for flexible movement of data between different endpoints and systems. It uses a staged event-driven architecture and non-blocking Java I/O to provide scalability. Core Mule concepts include universal message objects, endpoints, transports, connectors, routers, filters and transformers that allow data to be routed and transformed declaratively between systems and applications. Mule provides capabilities for XML validation, transformation and routing through its built-in components.

mule enterprise service bus
Mule Overview
Mule OverviewMule Overview
Mule Overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

45
Message Translator
public class OrderToCsvBean {
public static String map(String custom) {
String id = custom.substring(0, 9);
String customerId = custom.substring(10, 19);
String date = custom.substring(20, 29);
String items = custom.substring(30);
String[] itemIds = items.split("@");
StringBuilder csv = new StringBuilder();
csv.append(id.trim());
csv.append(",").append(date.trim());
csv.append(",").append(customerId.trim());
for (String item : itemIds) {
csv.append(",").append(item.trim());
}
return csv.toString();
}
}
No Camel dependency!
Message Body mapped
automatically to
method signature
Message Body transformed
Into java.lang.String
From : “Camel in Action”, by Claus Ibsen
46
Content Enricher
from("file://repo/orders?fileName=theFile.csv")
.process(new Processor() {
    public void process(Exchange exchange) {
        Message in = exchange.getIn();
        in.setBody(in.getBody(String.class) +
"World!");
    }
}).to("mock:result");
Access Message Header
Modify Message Header
Use Mock component From : “Camel in Action”, by Claus Ibsen
47
Using Beans
● Camel does not mandate to learn a specific component
model
● Camel uses the Service
Activator EIP to invoke POJOs
inside a route, implemented
by the Bean Component
● A sample route would look like:
from("quartz://report?cron=0+0+6+*+*+?")
.to("http://riders.com/orders/cmd=received&date=yesterday")
.bean(new OrderToCsvBean())
.to("file://riders/orders?fileName=report­${header.Date}.csv");
Bean component
POJO
From : “Camel in Action”, by Claus Ibsen
48
Bean invocation
● Camel works as a Service Activator, Camel resolves the
bean to call at runtime
From : “Camel in Action”, by Claus Ibsen

Recommended for you

Mule overview
Mule overviewMule overview
Mule overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

Mule overview
Mule overviewMule overview
Mule overview

The document discusses the open-source enterprise service bus Mule, including what Mule is, its core concepts like the universal message object and endpoints, and how Mule uses technologies like staged event-driven architecture and non-blocking I/O to move data between different systems and formats in a flexible way. It also provides examples of using Mule to move XML files between directories and handling exceptions.

ESB introduction using Mule
ESB introduction using MuleESB introduction using Mule
ESB introduction using Mule

The document provides an introduction to Mule, an open-source enterprise service backbone. It describes key Mule concepts like staged event-driven architecture (SEDA) and Java NIO, and how Mule uses these concepts to provide a scalable and modular integration platform. It also summarizes core Mule components like endpoints, routers, transformers and how they facilitate message flow and integration. XML examples are provided to demonstrate basic Mule configuration and exception handling.

49
Error handlers
● Camel support two concepts of error :
◾ Irrecoverable error (e.g. SQLException)
◾ Recoverable error
● In Camel a Recoverable error is represented by a
Java Throwable or Exception, accessible from
org.apache.camel.Exchange
● An Irrecoverable error is represented by a message
with a fault flag that can be set or accessed from
org.apache.camel.Exchange
● These definitions allow Camel to decide what to do
with an error
50
Testing
● Developers can perform full unit testing of integration
flows without having to deploy and listen on physical
transports:
◾ Configure the route to listen on in-memory endpoints
such as direct or seda and write to mock, test, or
dataset endpoints
◾ Write unit tests using JUnit or TestNG, which...
– Set expectations on each producer endpoint
– Send messages to the consumer endpoint using
ProducerTemplate
– Assert expectations
51
Components
● Camel's strength lies in the concept of Component
● All components are accessible via the URI syntax : e.g.
<scheme name> : <hierarchical part> [ ? <query> ] 
[ # <fragment> ]
● Components are listed here :
http://camel.apache.org/components.html
● Some components are defined as External, since they do
not belong to the standard Apache Camel distribution and
are available under different licenses
52
Asynchronous messaging
● JMS is a powerful integration technology
● Camel does not ship with a JMS provider, you need to
configure it with a specific ConnectionFactory instance
Message channel
Publish Subscribe channel
From : “Camel in Action”, by Claus Ibsen

Recommended for you

Mule overview
Mule overviewMule overview
Mule overview

Mule is an open-source ESB that uses a staged event-driven architecture and non-blocking I/O. It allows components to be connected through queues and employs dynamic control to manage load. Mule configurations are defined through XML files and involve endpoints, routers, transformers and other components to route events through the ESB. Exceptions can be handled through defined exception strategies that redirect invalid messages.

Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQRuby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ

Microservices with Zoran Majstorović discusses moving from monolithic applications to microservices architectures using RabbitMQ/AMQP for messaging. It covers refactoring Ruby code using callbacks to use a consumer microservice. It also demonstrates a simple way to deploy a microservice in a Docker container to AWS ECS. Key topics include decoupling services, different integration options like messaging, AMQP concepts, and using RabbitMQ with Ruby.

rubymessage queuerabbitmq
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

JavaOne 2009 presentation on Enterprise Integration Patterns In Practice by Andreas Egloff and Bruce Snyder

cameleipopenesb
53
Web Services
● Camel uses Apache CXF to access and publish Web
Services (http://cxf.apache.org)
● Camel supports both WSDL first and Code First approach
● CXF can be configured via URI
cxf://anAddress[?options]
● CXF can be configured via endpoint bean
cxf:bean:beanName
54
Databases
● Camel provides multiple ways to integrate with Databases
◾ JDBC Component
◾ SQL component
◾ JPA Component
◾ Hibernate Component (Extra component, must be downloaded
from http://code.google.com/p/camel-extra)
◾ iBatis component
55
Virtual endpoints
● In-memory messaging is a synchronous or asynchronous
messaging model which happens inside or across a
CamelContext
● 3 components
◾ Direct
– Synchronous model
◾ Seda/VM
– Asynchronous
– Same parameters
– No persistence
– No JMS
– VM can be used to send messages across CamelContexts
56
Automating tasks
● Timer and Quartz components
◾ Support only consuming components
● Timer is Camel Core component
◾ Very simple
● Quartz is based on the http://www.quartz-scheduler.org
project
◾ Allows much finer grained control

Recommended for you

Spring integration
Spring integrationSpring integration
Spring integration

Introduction to Spring Integration - #BiteIt presentation (http://www.jcommerce.pl/biteit/) Code samples: github.com/krzyzol/spring-integration-presentation

javaspringspring integration
Spring RabbitMQ
Spring RabbitMQSpring RabbitMQ
Spring RabbitMQ

This document provides an overview of Spring RabbitMQ, which is a framework for integrating Java applications with the RabbitMQ message broker. It discusses messaging basics and RabbitMQ concepts like exchanges, queues, bindings and message routing. It then summarizes how Spring RabbitMQ can be used to configure RabbitMQ infrastructure like connections, templates, listeners and administrators either directly in Java code or using Spring configuration. It also briefly mentions how Spring Integration and Spring Boot can be used to build messaging applications on RabbitMQ.

rabbitmqspringjava
Mulesoftppt
Mulesoftppt Mulesoftppt
Mulesoftppt

The document discusses the Enterprise Service Bus (ESB) Mule and its core concepts. Mule is an open-source ESB that uses advanced technologies like Staged Event-Driven Architecture (SEDA) and Java New Input/Output (NIO) to route messages between applications. It decomposes applications into stages connected by queues to improve performance. Mule's universal message object (UMO) allows messages to be received and sent from anywhere. Core concepts include endpoints, transports, connectors, routers, filters and transformers that define how messages flow through the system.

57
Aggregator
● Aggregator combines messages incoming to a single
outbound message
● Aggregator identifies messages that are related
● Messages are sent to the outbound channel when
completion conditions occur
● Aggregator requires the developer to define
◾ Correlation identifier: an Expression
◾ Completion condition: a Predicate
◾ Aggregation strategy: an AggregationStrategy
58
Splitter
● Splitter allows to read a message and split it into separate
messages so that they can be processed separately
● To use Splitter, the developer will need to configure an
Expression, which will be evaluated when a message
arrives
● Splitter will decorate the message with information that is
passed to the Exchange (e.g. Number of pieces the
original message has been split into, current message
index ....)
59
Load Balancer
● The Camel Load Balancer component is a Processor that
implements
org.apache.camel.processor.loadbalancer.LoadBalancer
interface
● Load Balancer allows to balance anything is defined in Camel routes
● Load Balancer offers multiple load balancing strategies
from("direct:start")
.loadBalance().roundRobin()
.to("seda:a").to("seda:b")
.end();
from("seda:a")
.log("A received: ${body}")
.to("mock:a");
from("seda:b")
.log("B received: ${body}")
.to("mock:b");
From : “Camel in Action”, by Claus Ibsen
60
Transactions
● Camel routes can create and enlist in transactional
contexts
● Use JMS transactions for reliable retry of message
delivery
● Use JDBC transactions to make processors
transactional
● Use the transactional error handler provided with
Camel
● Use an idempotent consumer to avoid unwanted
retries

Recommended for you

Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule

Mule is an open-source ESB that uses a staged event-driven architecture. It decomposes applications into stages connected by queues to improve performance. Mule also leverages Java NIO for efficient I/O operations using buffers, character encoding, regular expressions, and non-blocking channels. A Mule flow contains various components like endpoints, routers, transformers to receive, process and dispatch messages. Exception strategies define how errors are handled.

Mule esb and_relevant_components
Mule esb and_relevant_componentsMule esb and_relevant_components
Mule esb and_relevant_components

Mule ESB is a lightweight Java-based integration platform that allows developers to connect applications together through integration patterns like flow-based programming. It provides functionality for service creation and hosting, message routing, data transformation, and mediation between different technologies. Mule ESB uses a visual drag-and-drop interface called Mule Studio for low-code development of integration flows and assets. Key components include endpoints to connect to external systems, transformations to modify message formats, filters to route messages conditionally, and routers to control message flow. Mule applications are deployed to a Mule runtime server for execution.

Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers

Apache Camel is an open source framework for integrating applications and systems. It uses an declarative domain-specific language to configure routing and mediation rules. Components in Camel act as endpoint factories to interact with external systems using different protocols. Routes define the application logic and flow using the Java DSL or XML definitions. Camel provides numerous components out of the box and also allows custom components to be created.

messagingnotificationexchange
61
Concurrency
● Camel supports the
Competing Consumers
EIP pattern
● Some EIPs support concurrency
◾ Aggregate, Multicast, Recipient
list, Splitter, Thread, Wire Tap
● Consumers can be for example
jms or seda components
◾ Concurrent consumers normally expose
the concurrentConsumers option
62
Security
● The broad categories offered are
◾ Route Security - Authentication and Authorization services to
proceed on a route or route segment
– Based on Apache Shiro : handles authentication, authorization, enterprise
session management and cryptography
◾ Payload Security - Data Formats that offer encryption/decryption
services at the payload level
– Based on XMLDataFormat and Crypto component
◾ Endpoint Security - Security offered by components that can be
utilized by endpointUri associated with the component
– Some componets offer the ability to secure their endopoints (e.g. Http, jetty,
CXF, netty, mina, JMS, ....)
◾ Configuration Security - Security offered by encrypting sensitive
information from configuration files
– Camel allows to crypt/decrypt configuration files containing sensitive
information
63
Management & Monitoring
● The Health of Camel applications can be checked at 3
levels
◾ Network
◾ JVM
◾ Application
● At JVM level Camel exposes its managed beans through
JMX
● Applications can be monitored by use of log files
● Logging is defined by EIP Log
◾ Camel supports custom logging, notification and Tracer
64
Management & Monitoring : example
From : “Camel in Action”, by Claus Ibsen

Recommended for you

Spring integration
Spring integrationSpring integration
Spring integration

This document discusses EAI (Enterprise Application Integration) patterns using Spring Integration. It provides an overview of messaging, pipes and filters, and common EAI patterns. It then demonstrates how Spring Integration implements these patterns through its API, with an emphasis on messaging channels. Examples are given for sending and receiving JMS, AMQP, HTTP, and email messages. Common patterns like filtering, routing, splitting, and aggregating messages are also explained.

integrationeaispring
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final

This document provides an overview of a presentation given at CamelOne 2013 in Boston on June 10-11, 2013 about the internals of Apache ActiveMQ. The presentation covered the major subcomponents of ActiveMQ including transports, the broker core, persistence adapters, and networking brokers. It provided details on architecture, configuration, and implementation of these different aspects of ActiveMQ.

Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models

Join O’Reilly author and Lightbend Principal Architect, Boris Lublinsky, as he discusses one of the hottest topics in software engineering today: serving machine learning models. Typically with machine learning, different groups are responsible for model training and model serving. Data scientists often introduce their own machine-learning tools, causing software engineers to create complementary model-serving frameworks to keep pace. It’s not a very efficient system. In this webinar, Boris demonstrates a more standardized approach to model serving and model scoring: * How to develop an architecture for serving models in real time as part of input stream processing * How this approach enables data science teams to update models without restarting existing applications * Different ways to build this model-scoring solution, using several popular stream processing engines and frameworks

machine learningmlscala

More Related Content

What's hot

Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
Christian Posta
 
Camel Based Development Application
Camel Based Development ApplicationCamel Based Development Application
Camel Based Development Application
Return on Intelligence
 
CamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityCamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF Security
Kenneth Peeples
 
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
Adrian Trenaman
 
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint
Kara Satish Kumar
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
WSO2
 
ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features
Christian Posta
 
What's New in WildFly 9?
What's New in WildFly 9?What's New in WildFly 9?
What's New in WildFly 9?
Virtual JBoss User Group
 
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq
Rob Davies
 
Setting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteSetting up a free open source java e-commerce website
Setting up a free open source java e-commerce website
Csaba Toth
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012
Bruno Borges
 
How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon
WSO2
 
Maximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure FootprintMaximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure Footprint
WSO2
 
Jug Poitou Charentes - Apache, OSGi and Karaf
Jug Poitou Charentes -  Apache, OSGi and KarafJug Poitou Charentes -  Apache, OSGi and Karaf
Jug Poitou Charentes - Apache, OSGi and Karaf
Guillaume Nodet
 
Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand
WSO2
 
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Guido Schmutz
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 Carbon
WSO2
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
J V
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
Rakesh Gujjarlapudi
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
WSO2
 

What's hot (20)

Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
Camel Based Development Application
Camel Based Development ApplicationCamel Based Development Application
Camel Based Development Application
 
CamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF SecurityCamelOne 2013 Karaf A-MQ Camel CXF Security
CamelOne 2013 Karaf A-MQ Camel CXF Security
 
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
 
OSGi & Blueprint
OSGi & BlueprintOSGi & Blueprint
OSGi & Blueprint
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features
 
What's New in WildFly 9?
What's New in WildFly 9?What's New in WildFly 9?
What's New in WildFly 9?
 
Fabric8 mq
Fabric8 mqFabric8 mq
Fabric8 mq
 
Setting up a free open source java e-commerce website
Setting up a free open source java e-commerce websiteSetting up a free open source java e-commerce website
Setting up a free open source java e-commerce website
 
Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012Introducing WebLogic 12c OTN Tour 2012
Introducing WebLogic 12c OTN Tour 2012
 
How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon How to build a custom stack with WSO2 carbon
How to build a custom stack with WSO2 carbon
 
Maximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure FootprintMaximize Messaging and Performance and Lowering Infrastructure Footprint
Maximize Messaging and Performance and Lowering Infrastructure Footprint
 
Jug Poitou Charentes - Apache, OSGi and Karaf
Jug Poitou Charentes -  Apache, OSGi and KarafJug Poitou Charentes -  Apache, OSGi and Karaf
Jug Poitou Charentes - Apache, OSGi and Karaf
 
Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand Right-size Deployment Instances to Meet Enterprise Demand
Right-size Deployment Instances to Meet Enterprise Demand
 
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
Oracle SOA Suite 11g Mediator vs. Oracle Service Bus (OSB)
 
Scalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 CarbonScalability Availabilty and Management of WSO2 Carbon
Scalability Availabilty and Management of WSO2 Carbon
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Reference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to KubernetesReference architectures shows a microservices deployed to Kubernetes
Reference architectures shows a microservices deployed to Kubernetes
 
How the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendorsHow the WSO2 ESB outperforms other major open source esb vendors
How the WSO2 ESB outperforms other major open source esb vendors
 

Viewers also liked

Redhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQRedhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQ
Adrian Gigante
 
JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5
Christina Lin
 
JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6
Christina Lin
 
JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4
Christina Lin
 
JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3
Christina Lin
 
JBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error HandlingJBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error Handling
Christina Lin
 
JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2
Christina Lin
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
Christian Posta
 
Costos y honorarios del consultor
Costos y honorarios del consultorCostos y honorarios del consultor
Costos y honorarios del consultor
argeanatali
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
Terry Cho
 
Proceso de la consultoria
Proceso de la consultoriaProceso de la consultoria
Proceso de la consultoria
Cris Muñoz
 

Viewers also liked (11)

Redhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQRedhat Open Day - Integracion JBoss Fuse A-MQ
Redhat Open Day - Integracion JBoss Fuse A-MQ
 
JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5JBoss Fuse Workshop 101 part 5
JBoss Fuse Workshop 101 part 5
 
JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6JBoss Fuse Workshop 101 part 6
JBoss Fuse Workshop 101 part 6
 
JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4JBoss Fuse Workshop 101 part 4
JBoss Fuse Workshop 101 part 4
 
JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3JBoss Fuse Workshop 101 part 3
JBoss Fuse Workshop 101 part 3
 
JBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error HandlingJBoss Fuse - Fuse workshop Error Handling
JBoss Fuse - Fuse workshop Error Handling
 
JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2JBoss Fuse Workshop 101 part 2
JBoss Fuse Workshop 101 part 2
 
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
DevOps with ActiveMQ, Camel, Fabric8, and HawtIO
 
Costos y honorarios del consultor
Costos y honorarios del consultorCostos y honorarios del consultor
Costos y honorarios del consultor
 
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
Proceso de la consultoria
Proceso de la consultoriaProceso de la consultoria
Proceso de la consultoria
 

Similar to Red Hat Open Day JBoss Fuse

EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
Bruce Snyder
 
An introduction to Apache Camel
An introduction to Apache CamelAn introduction to Apache Camel
An introduction to Apache Camel
Kapil Kumar
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
mdfkhan625
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
Thang Loi
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
AbdulImrankhan7
 
Mule overview
Mule overviewMule overview
Mule overview
Praneethchampion
 
Mule overview
Mule overviewMule overview
Mule overview
Mohammed625
 
ESB introduction using Mule
ESB introduction using MuleESB introduction using Mule
ESB introduction using Mule
Khasim Cise
 
Mule overview
Mule overviewMule overview
Mule overview
Rajkattamuri
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQRuby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ
Zoran Majstorovic
 
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
aegloff
 
Spring integration
Spring integrationSpring integration
Spring integration
Dominik Strzyżewski
 
Spring RabbitMQ
Spring RabbitMQSpring RabbitMQ
Spring RabbitMQ
Martin Toshev
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
AbdulImrankhan7
 
Mule esb and_relevant_components
Mule esb and_relevant_componentsMule esb and_relevant_components
Mule esb and_relevant_components
Paaras Baru
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
jeetendra mandal
 
Spring integration
Spring integrationSpring integration
Spring integration
Oliver Gierke
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
Christian Posta
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
Lightbend
 

Similar to Red Hat Open Day JBoss Fuse (20)

EIP In Practice
EIP In PracticeEIP In Practice
EIP In Practice
 
An introduction to Apache Camel
An introduction to Apache CamelAn introduction to Apache Camel
An introduction to Apache Camel
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Mule enterprise service bus
Mule enterprise service busMule enterprise service bus
Mule enterprise service bus
 
Mule Overview
Mule OverviewMule Overview
Mule Overview
 
Mule overview
Mule overviewMule overview
Mule overview
 
Mule overview
Mule overviewMule overview
Mule overview
 
ESB introduction using Mule
ESB introduction using MuleESB introduction using Mule
ESB introduction using Mule
 
Mule overview
Mule overviewMule overview
Mule overview
 
Ruby Microservices with RabbitMQ
Ruby Microservices with RabbitMQRuby Microservices with RabbitMQ
Ruby Microservices with RabbitMQ
 
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
 
Spring integration
Spring integrationSpring integration
Spring integration
 
Spring RabbitMQ
Spring RabbitMQSpring RabbitMQ
Spring RabbitMQ
 
Mulesoftppt
Mulesoftppt Mulesoftppt
Mulesoftppt
 
Overview of Mule
Overview of MuleOverview of Mule
Overview of Mule
 
Mule esb and_relevant_components
Mule esb and_relevant_componentsMule esb and_relevant_components
Mule esb and_relevant_components
 
Apache Camel interview Questions and Answers
Apache Camel interview Questions and AnswersApache Camel interview Questions and Answers
Apache Camel interview Questions and Answers
 
Spring integration
Spring integrationSpring integration
Spring integration
 
Camel oneactivemq posta-final
Camel oneactivemq posta-finalCamel oneactivemq posta-final
Camel oneactivemq posta-final
 
Operationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML ModelsOperationalizing Machine Learning: Serving ML Models
Operationalizing Machine Learning: Serving ML Models
 

Recently uploaded

20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 

Recently uploaded (20)

20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 

Red Hat Open Day JBoss Fuse

  • 3. 3 Keywords ● Apache Camel ● Enterprise Integration Patterns ● Components, Routes, Endpoints, Messages, Processors
  • 4. 4 Apache Camel • Powerful Integration Framework – Based on known Enterprise Integration Patterns – Framework do the heavy lifting – You can focus on business problem – Not "reinventing the wheel" • Use Case : a really simple way to do integration – Started as a Sub-project of ActiveMQ in March 2007 – 36 committers (15 work for Red Hat) – 80-100k artifact downloads a month – 120k website views a month – 1000 user mailing list posts per month – 130 + Components and growing – Most widely used integration framework on the planet
  • 6. 6 Camel implements most EIP Patterns http://camel.apache.org/enterprise-integration-patterns.html • Messaging systems • Messaging Channels • Message Routing • Message transformation • Message Endpoints Message router Message translator Dead Letter Channel Message Bus Recipient List Splitter Aggregator Content Enricher Content Filter Event Driven Consumer Polling Consumer
  • 7. 7 Example : complex deployment Source : JBoss Fuse success story – Major Retail Pharmacy Chain
  • 8. 8 JBoss Fuse Architecture : routes, components, endpoints From : “Camel in Action”, by Claus Ibsen
  • 9. 9 Camel Context • CamelContext is the container of many Camel Services • Instance of the Camel runtime From : “Camel in Action”, by Claus Ibsen
  • 10. 10 What is a Camel Component? • Components are the main extension point in Camel • Components are used to manage everything in Camel : ◾ Data Transport ◾ Data Formatting ◾ ... customized behaviour • From a programming point of view they : ◾ Have a name ◾ Act as a Factory of endpoints
  • 11. 11 What is a Camel Processor? • Core Camel concept : node capable of using, creating, or modifying an incoming exchange • During routing exchanges flow from one processor to another public interface Processor {   /**    * Processes the message exchange    *     * @param exchange the message exchange    * @throws Exception if an internal processing error has occurred.    */   void process(Exchange exchange) throws Exception; }
  • 12. 12 EIP Patterns and Processors • Implement the actions of the EIP between the endpoints • Perform actions on the message in the Route (e.g modify, use, create, enrich ...) • Processors can be linked in a pipeline flow • Processor examples : Splitter Message Filter Aggregator Message Router Content Enricher
  • 13. 13 What is a Camel route? • A Route is the step-by-step movement of a message: ◾ From a “listening” endpoint in the role of consumer ◾ Through a processing component - enterprise integration pattern, processor, interceptor, etc. (optional) ◾ To a target endpoint in the role of producer • May involve any number of processing components that modify the original message and/or redirect it ◾ Use expressions and predicates • An application developer specifies routes using: ◾ Spring configuration files ◾ Java Domain Specific Language (DSL)
  • 14. 14 Routes .... • By decoupling clients from servers, and producers from consumers, routes can ◾ Decide dynamically what server a client will invoke ◾ Provide a flexible way to add extra processing ◾ Allow for clients and servers to be developed independently ◾ Allow for clients of servers to be stubbed out (using mocks) for testing purposes ◾ Foster better design practices by connecting disparate systems that do one thing well ◾ Enhance features and functionality of some systems (such as message brokers and ESBs) • Each route in Camel has a unique identifier that’s used for logging, debugging, monitoring, and starting and stopping routes.
  • 15. 15 Expressions and Predicates • Expressions return a selection of nodes for processing ◾ XPath is used for parsing XML payloads • Predicates are conditional expressions ◾ Used to add logical branching to routes • Camel supports other expression languages ◾ XQuery, Simple, Bean, OGNL, JavaScript, Groovy, Ruby ...
  • 16. 16 What is a Camel Endpoint? • An endpoint is something that can create or receive messages, for example, an FTP server, a Web Service, or a JMS broker • Camel allows you to specifiy endpoints using simple URIs ◾ ftp://john@localhost/ftp?password=nhoj ◾ activemq:queue:MyQueue ◾ timer://myTimer?period=2000 • Consumer Endpoint, source at beginning of Route, 'from' • Producer Endpoint, sink at end of Route, 'to'
  • 17. 17 Endpoint Syntax • Endpoint URI format: scheme:remainingURI[?options] • Where: • scheme identifies the component – Scheme is the registered service name for activating a component in Camel – Triggers dynamic loading of the component – Maps to a specific instance of org.apache.camel.Component • options is a list of name/value pairs option1=value1&option2=value2&option3=value3 from("ftp://john@localhost/ftp?password=nhoj") .to("xslt:MyTransform.xslt") .to("activemq:queue:MyQueue") Consumer endpoint Producer endpoint Parameters
  • 18. 18 Endpoint Functionality • Endpoints are either message source or message sink • Two roles : ◾ Consumer – Appears at the beginning of a routing rule (for example, in a from() command or in a <from ...> element, depending on the DSL used) – Receives messages from an external source and creates a message exchange object, which the routing rule processes. ◾ Producer – Appears at the end of a routing rule (for example, in a to() command or in a <to ...> element, depending on the DSL used) – Sends the current message wrapped in the message exchange object to an external target destination.
  • 19. 19 Camel Components in practice Use Case : Receive orders from ActiveMQ queue and based on the type of message forward to appropriate queue (ActiveMQ or Websphere MQ)
  • 20. 20 Example 1 of 3 from newOrder choice when isWidget to widget otherwise to gadget
  • 21. 21 Example 2 of 3 from(newOrder) .choice() .when(isWidget).to(widget) .otherwise.to(gadget)
  • 22. 22 Example 3 of 3 Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("wmq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise.to(gadget)
  • 23. 23 Example : Java DSL import org.apache.camel.Endpoint; import org.apache.camel.Predicate; import org.apache.camel.builder.RouteBuilder; public class MyRoute extends RouteBuilder { public void configure() throws Exception { Endpoint newOrder = endpoint("activemq:queue:newOrder"); Predicate isWidget = xpath("/order/product = 'widget'"); Endpoint widget = endpoint("activemq:queue:widget"); Endpoint gadget = endpoint("activemq:queue:gadget"); from(newOrder) .choice() .when(isWidget).to(widget) .otherwise().to(gadget) .end(); } }
  • 24. 24 Example : XML DSL <route> <from uri="activemq:queue:newOrder"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="wmq:queue:gadget"/> </otherwise> </choice> </route>
  • 25. 25 Example : change the endpoint <route> <from uri="file:inbox/orders?delete=true"/> <choice> <when> <xpath>/order/product = 'widget'</xpath> <to uri="activemq:queue:widget"/> </when> <otherwise> <to uri="wmq:queue:gadget"/> </otherwise> </choice> </route> parameters use file instead
  • 26. 26 DSL : Java or XML ? ● Java + More options for custom development, embedded solutions in legacy applications/frameworks – Developer needs to take control of instantiation and route lifecycles ● XML + Configuration over coding, which is simple, and means you can see your route and its resources / configuration, all in one place – More coarse-grained and verbose
  • 27. 27 Consumers and Producers • Message consumers and producers are created from endpoints ◾ Some endpoint technologies can create producers and consumers, others support the creation of either a producer or a consumer ◾ Examples : from("timer://myTimer?period=2000") .setBody().simple("Current time is ${header.firedTime}") .to("stream:out"); from("ftp://john@localhost/ftp?password=nhoj") .to("xslt:MyTransform.xslt") .to("activemq:queue:MyQueue")
  • 28. 28 ESB and routes • ESB creates a pipeline of processors ◾ Passes incoming message to processor ◾ Sends output from one processor to the next in the chain
  • 29. 29 ESB and messages • ESB sends a Message Exchange along the pipeline ◾ Passes incoming message to processor ◾ Must be explicitly transformed, if needed
  • 30. 30 Camel Message Exchange • Message Container during routing • Two Properties: • InOnly (fire & forget - e.g. JMS message) • InOut (request-response - e.g. HTTP requests) Exchange InMessage Headers Attachments Body Exchange ID MEP Exception Properties OutMessage Headers Attachments Body
  • 31. 31 Camel Message • Basic structure for moving data over a Route Sender ReceiverMessage Message Headers Attachments Body (payload)
  • 33. 33 Camel Message Lifecycle • In messages are modified by each processor in the route ◾ If a processor sets the Out message, Camel automatically copies the Out message into the In message and resets the Out message to be null
  • 34. 34 End of Pipeline • When processing is finished Camel returns the ME to the consumer • The consumer can : ◾ Send a response message ◾ Commit a transaction ◾ Handle and error ◾ Free any resource in use
  • 37. 37 Data Formats Serialization String JSon Castor JAXB XStream XmlBeans SOAP XmlJson CSV EDI Flatpack DataFormat HL7 DataFormat Gzip Zip PGP Crypto XMLSecurity RSS Syslog TidyMarkup Custom • Transform format (e.g. CSV to XML) • Transform data type (e.g. Java.lang.String to javax.jms.TextMessage) • Use built-in components (e.g. XSLT), use components (e.g. Enricher), built-in Data formats, templates, custom
  • 38. 38 Extending Camel ● Using Components From : “Camel in Action”, by Claus Ibsen
  • 39. 39 Extending Camel : create custom components • Use Maven to create a skeleton component • Define endpoint name • Implement endpoint class to create Consumer or Producer or both • Implement Consumer and Producer classes
  • 40. JBoss Fuse Camel : advanced topics
  • 41. 41 Data transformation overview ● Data Format & Data Type ◾ Data format example : message body from .csv to .xml ◾ Data type example : message body from java.lang.String to javax.jms.TextMessage ◾ Data transformations can be combined From : “Camel in Action”, by Claus Ibsen
  • 42. 42 Data Transformation Data transformation in routes Explicitly enforce transformation in the route using the Message Translator or the Content Enricher EIPs. This gives you the power to do data mapping using regular Java code. Data transformation using components Camel provides a range of components for transformation, such as the XSLT component for XML transformation. Data transformation using data formats Data formats are Camel transformers that come in pairs to transform data back and forth between well-known formats Data transformation using templates Camel provides a range of components for transforming using templates, such as Apache Velocity. Data type transformation using Camel’s type-converter mechanism Camel has an elaborate type-converter mechanism that activates on demand. This is convenient when you need to convert from common types such as java.lang.Integer to java.lang.String or even from java.io.File to java.lang.String. Message transformation in component adapters Extend Data transformation capability via custom transformers
  • 43. 43 Message Translator & Content Enricher From : “Camel in Action”, by Claus Ibsen
  • 44. 44 Message Translator ● 3 methods supported ◾ Using Processor ◾ Using beans ◾ Using <transform> Route from("quartz://report?cron=0+0+6+*+*+?") .to("http://riders.com/orders/cmd=received&date=yesterday") .bean(new OrderToCsvBean()) .to("file://riders/orders?fileName=report­${header.Date}.csv"); From : “Camel in Action”, by Claus Ibsen
  • 47. 47 Using Beans ● Camel does not mandate to learn a specific component model ● Camel uses the Service Activator EIP to invoke POJOs inside a route, implemented by the Bean Component ● A sample route would look like: from("quartz://report?cron=0+0+6+*+*+?") .to("http://riders.com/orders/cmd=received&date=yesterday") .bean(new OrderToCsvBean()) .to("file://riders/orders?fileName=report­${header.Date}.csv"); Bean component POJO From : “Camel in Action”, by Claus Ibsen
  • 48. 48 Bean invocation ● Camel works as a Service Activator, Camel resolves the bean to call at runtime From : “Camel in Action”, by Claus Ibsen
  • 49. 49 Error handlers ● Camel support two concepts of error : ◾ Irrecoverable error (e.g. SQLException) ◾ Recoverable error ● In Camel a Recoverable error is represented by a Java Throwable or Exception, accessible from org.apache.camel.Exchange ● An Irrecoverable error is represented by a message with a fault flag that can be set or accessed from org.apache.camel.Exchange ● These definitions allow Camel to decide what to do with an error
  • 50. 50 Testing ● Developers can perform full unit testing of integration flows without having to deploy and listen on physical transports: ◾ Configure the route to listen on in-memory endpoints such as direct or seda and write to mock, test, or dataset endpoints ◾ Write unit tests using JUnit or TestNG, which... – Set expectations on each producer endpoint – Send messages to the consumer endpoint using ProducerTemplate – Assert expectations
  • 51. 51 Components ● Camel's strength lies in the concept of Component ● All components are accessible via the URI syntax : e.g. <scheme name> : <hierarchical part> [ ? <query> ]  [ # <fragment> ] ● Components are listed here : http://camel.apache.org/components.html ● Some components are defined as External, since they do not belong to the standard Apache Camel distribution and are available under different licenses
  • 52. 52 Asynchronous messaging ● JMS is a powerful integration technology ● Camel does not ship with a JMS provider, you need to configure it with a specific ConnectionFactory instance Message channel Publish Subscribe channel From : “Camel in Action”, by Claus Ibsen
  • 53. 53 Web Services ● Camel uses Apache CXF to access and publish Web Services (http://cxf.apache.org) ● Camel supports both WSDL first and Code First approach ● CXF can be configured via URI cxf://anAddress[?options] ● CXF can be configured via endpoint bean cxf:bean:beanName
  • 54. 54 Databases ● Camel provides multiple ways to integrate with Databases ◾ JDBC Component ◾ SQL component ◾ JPA Component ◾ Hibernate Component (Extra component, must be downloaded from http://code.google.com/p/camel-extra) ◾ iBatis component
  • 55. 55 Virtual endpoints ● In-memory messaging is a synchronous or asynchronous messaging model which happens inside or across a CamelContext ● 3 components ◾ Direct – Synchronous model ◾ Seda/VM – Asynchronous – Same parameters – No persistence – No JMS – VM can be used to send messages across CamelContexts
  • 56. 56 Automating tasks ● Timer and Quartz components ◾ Support only consuming components ● Timer is Camel Core component ◾ Very simple ● Quartz is based on the http://www.quartz-scheduler.org project ◾ Allows much finer grained control
  • 57. 57 Aggregator ● Aggregator combines messages incoming to a single outbound message ● Aggregator identifies messages that are related ● Messages are sent to the outbound channel when completion conditions occur ● Aggregator requires the developer to define ◾ Correlation identifier: an Expression ◾ Completion condition: a Predicate ◾ Aggregation strategy: an AggregationStrategy
  • 58. 58 Splitter ● Splitter allows to read a message and split it into separate messages so that they can be processed separately ● To use Splitter, the developer will need to configure an Expression, which will be evaluated when a message arrives ● Splitter will decorate the message with information that is passed to the Exchange (e.g. Number of pieces the original message has been split into, current message index ....)
  • 59. 59 Load Balancer ● The Camel Load Balancer component is a Processor that implements org.apache.camel.processor.loadbalancer.LoadBalancer interface ● Load Balancer allows to balance anything is defined in Camel routes ● Load Balancer offers multiple load balancing strategies from("direct:start") .loadBalance().roundRobin() .to("seda:a").to("seda:b") .end(); from("seda:a") .log("A received: ${body}") .to("mock:a"); from("seda:b") .log("B received: ${body}") .to("mock:b"); From : “Camel in Action”, by Claus Ibsen
  • 60. 60 Transactions ● Camel routes can create and enlist in transactional contexts ● Use JMS transactions for reliable retry of message delivery ● Use JDBC transactions to make processors transactional ● Use the transactional error handler provided with Camel ● Use an idempotent consumer to avoid unwanted retries
  • 61. 61 Concurrency ● Camel supports the Competing Consumers EIP pattern ● Some EIPs support concurrency ◾ Aggregate, Multicast, Recipient list, Splitter, Thread, Wire Tap ● Consumers can be for example jms or seda components ◾ Concurrent consumers normally expose the concurrentConsumers option
  • 62. 62 Security ● The broad categories offered are ◾ Route Security - Authentication and Authorization services to proceed on a route or route segment – Based on Apache Shiro : handles authentication, authorization, enterprise session management and cryptography ◾ Payload Security - Data Formats that offer encryption/decryption services at the payload level – Based on XMLDataFormat and Crypto component ◾ Endpoint Security - Security offered by components that can be utilized by endpointUri associated with the component – Some componets offer the ability to secure their endopoints (e.g. Http, jetty, CXF, netty, mina, JMS, ....) ◾ Configuration Security - Security offered by encrypting sensitive information from configuration files – Camel allows to crypt/decrypt configuration files containing sensitive information
  • 63. 63 Management & Monitoring ● The Health of Camel applications can be checked at 3 levels ◾ Network ◾ JVM ◾ Application ● At JVM level Camel exposes its managed beans through JMX ● Applications can be monitored by use of log files ● Logging is defined by EIP Log ◾ Camel supports custom logging, notification and Tracer
  • 64. 64 Management & Monitoring : example From : “Camel in Action”, by Claus Ibsen

Editor's Notes

  1. &amp;lt;number&amp;gt;
  2. &amp;lt;number&amp;gt;
  3. &amp;lt;number&amp;gt;
  4. &amp;lt;number&amp;gt;
  5. &amp;lt;number&amp;gt;
  6. &amp;lt;number&amp;gt;
  7. &amp;lt;number&amp;gt;
  8. Encapsulates the entire communication: • Placeholders for two messages: IN and OUT • Message exchange pattern (MEP) is set to InOnly or InOut • Properties describe the communication – Apply to both messages • IN messages get modified repeatedly as they travel the route • OUT messages are set only when the exchange is type InOut • Booleans – isFailed indicates whether an error has occurred – isTransacted and isRollbackOnly plus a UnitOfWork object are used to describe the current transaction (if any)
  9. Encapsulates the entire communication: • Placeholders for two messages: IN and OUT • Message exchange pattern (MEP) is set to InOnly or InOut • Properties describe the communication – Apply to both messages • IN messages get modified repeatedly as they travel the route • OUT messages are set only when the exchange is type InOut • Booleans – isFailed indicates whether an error has occurred – isTransacted and isRollbackOnly plus a UnitOfWork object are used to describe the current transaction (if any)
  10. Encapsulates the entire communication: • Placeholders for two messages: IN and OUT • Message exchange pattern (MEP) is set to InOnly or InOut • Properties describe the communication – Apply to both messages • IN messages get modified repeatedly as they travel the route • OUT messages are set only when the exchange is type InOut • Booleans – isFailed indicates whether an error has occurred – isTransacted and isRollbackOnly plus a UnitOfWork object are used to describe the current transaction (if any)
  11. Encapsulates the entire communication: • Placeholders for two messages: IN and OUT • Message exchange pattern (MEP) is set to InOnly or InOut • Properties describe the communication – Apply to both messages • IN messages get modified repeatedly as they travel the route • OUT messages are set only when the exchange is type InOut • Booleans – isFailed indicates whether an error has occurred – isTransacted and isRollbackOnly plus a UnitOfWork object are used to describe the current transaction (if any)