O elefante e a mula
Taffarel de Lima Oliveira
Agenda
●

O que é ESB?

●

Características de um ESB

●

Por que usar um ESB?

●

Mule ESB

●

Utilizando a mula para fazer o trabalho pesado

●

Considerações finais
Era uma vez...
O que é um ESB?
ESB = Enterprise Service Bus

Origem do termo surgiu em 2002 pela Gartner.

Roy Schulte, descreveu como uma categoria de software na
época.
O que é um ESB?
"A style of integration architecture that allows communication via a common communication bus that
consists of a variety of point-to-point connections between providers and users of services."

"An infrastructure that a company uses for integrating services in the application landscape."

"An architecture pattern that enables interoperability between heterogeneous environments, using service
orientation."
O que é um ESB?

“ESB is just one architecture”
Ross Mason
O que é um ESB?

Enterprise Service Bus
Características de um ESB
●

Message Transformation;

●

Message Enhancement;

●

Protocol Tranformation;

●

Service Mapping

●

Message Processing

●

Process Choreography

●

Service Orchestration

●

Transaction

●

Security

●

Routing
Por que usar um ESB?
●

Arquitetura bem definida;

●

Escalável;

●

Facilidade de integrar novas aplicações;

●

Confiabilidade;

●

Facilidade em migrar os sistemas legados;
Mule ESB
Mule ESB
Mule ESB
●

Utilizando XML;

●

Usando Mule Studio, arrastando os componentes;
Mule ESB
Mule ESB
Mule ESB
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns:http="http://www.mulesoft.org/schema/mule/http"
xmlns="http://www.mulesoft.org/schema/mule/core"
xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
xmlns:spring="http://www.springframework.org/schema/beans" version="CE-3.4.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mulehttp.xsd">
<flow name="SimpleExampleFlow1" doc:name="SimpleExampleFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081"
path="php/conference" doc:name="HTTP"/>
<set-payload value="PHP Conference 2013" doc:name="Set Payload"/>
<echo-component doc:name="Echo"/>
</flow>
</mule>
Mule ESB
●

Header da mensagem, que contem os metadados da mensagem;

●

Payload da mensagem, que contem a mensagem em si;
Mule ESB
Components
General Components

●

●

Web Service Components

Echo

REST

Flow Reference

SOAP

Logger
●

Script Components
Groovy
Java
JavaScript
Python
Ruby
Script
Mule ESB
Inbound and Outbound Endpoints
●

Inbound and Outbound Endpoints

●

AJAX

Inbound Only Endpoints
IMAP

Enterprise Edition Database (JDBC)

Jetty

Enterprise Edition FTP

Pop3

File
Generic

Salesforce (Streaming)

HTTP

Servlet

JMS, VM

Twitter (Streaming)

Quartz
SFTP
SSL (TLS), TCP, UDP

●

Outbound Only Endpoints
SMTP
Mule ESB
Filters
And/Not/Or
Custom
Exception
Expression
Filter Ref
Idempotent Message
Message
Message Property
Payload
Regex
Schema Validation
Wildcard Filter
Mule ESB
Routers
●

Flow Controls That Do Not Change the Payload
All
Choice
First Successful
Round Robin

●

Flow Controls That Modify the Payload
Collection Aggregator
Collection Splitter
Custom Aggregator
Message Chunk Aggregator
Message Chunk Splitter
Resequencer
Splitter
Mule ESB
Scops
Async
Cache
Composite Source
Foreach
Message Enricher
Poll
Sub Flow
Until Successful
Mule ESB
Error Handling
Catch exception strategy
Rollback exception strategy
Reference exception strategy
Choice exception strategy
Utilizando a mula para fazer o trabalho
pesado!
Utilizando a mula para fazer o trabalho
pesado!

ESB
Utilizando a mula para fazer o trabalho
pesado!
Utilizando a mula para fazer o trabalho
pesado!
Utilizando a mula para fazer o trabalho
pesado!
Considerações finais!
Arquitetura ESB é uma boa pedida para integrar projetos que:
●

Inclua mais do que duas aplicações;

●

Permitindo a inclusão de novas aplicações no futuro;

●

Baixo custo de manutenção;

●

Menos dor de cabeça, na hora em que uma integração para;

●

Baixa curva de aprendizado;

●

Comunidade ativa e fácil acesso aos core-developers;
Contatos
taffarelo3@gmail.com
Github.com.br/taffarel
https://coderwall.com/taffarel

OBRIGADO!!

O Elefante e a Mula

  • 1.
    O elefante ea mula Taffarel de Lima Oliveira
  • 2.
    Agenda ● O que éESB? ● Características de um ESB ● Por que usar um ESB? ● Mule ESB ● Utilizando a mula para fazer o trabalho pesado ● Considerações finais
  • 3.
  • 4.
    O que éum ESB? ESB = Enterprise Service Bus Origem do termo surgiu em 2002 pela Gartner. Roy Schulte, descreveu como uma categoria de software na época.
  • 5.
    O que éum ESB? "A style of integration architecture that allows communication via a common communication bus that consists of a variety of point-to-point connections between providers and users of services." "An infrastructure that a company uses for integrating services in the application landscape." "An architecture pattern that enables interoperability between heterogeneous environments, using service orientation."
  • 6.
    O que éum ESB? “ESB is just one architecture” Ross Mason
  • 7.
    O que éum ESB? Enterprise Service Bus
  • 8.
    Características de umESB ● Message Transformation; ● Message Enhancement; ● Protocol Tranformation; ● Service Mapping ● Message Processing ● Process Choreography ● Service Orchestration ● Transaction ● Security ● Routing
  • 9.
    Por que usarum ESB? ● Arquitetura bem definida; ● Escalável; ● Facilidade de integrar novas aplicações; ● Confiabilidade; ● Facilidade em migrar os sistemas legados;
  • 10.
  • 11.
  • 12.
    Mule ESB ● Utilizando XML; ● UsandoMule Studio, arrastando os componentes;
  • 13.
  • 14.
  • 15.
    Mule ESB <?xml version="1.0"encoding="UTF-8"?> <mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" version="CE-3.4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mulehttp.xsd"> <flow name="SimpleExampleFlow1" doc:name="SimpleExampleFlow1"> <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="php/conference" doc:name="HTTP"/> <set-payload value="PHP Conference 2013" doc:name="Set Payload"/> <echo-component doc:name="Echo"/> </flow> </mule>
  • 16.
    Mule ESB ● Header damensagem, que contem os metadados da mensagem; ● Payload da mensagem, que contem a mensagem em si;
  • 17.
    Mule ESB Components General Components ● ● WebService Components Echo REST Flow Reference SOAP Logger ● Script Components Groovy Java JavaScript Python Ruby Script
  • 18.
    Mule ESB Inbound andOutbound Endpoints ● Inbound and Outbound Endpoints ● AJAX Inbound Only Endpoints IMAP Enterprise Edition Database (JDBC) Jetty Enterprise Edition FTP Pop3 File Generic Salesforce (Streaming) HTTP Servlet JMS, VM Twitter (Streaming) Quartz SFTP SSL (TLS), TCP, UDP ● Outbound Only Endpoints SMTP
  • 19.
    Mule ESB Filters And/Not/Or Custom Exception Expression Filter Ref IdempotentMessage Message Message Property Payload Regex Schema Validation Wildcard Filter
  • 20.
    Mule ESB Routers ● Flow ControlsThat Do Not Change the Payload All Choice First Successful Round Robin ● Flow Controls That Modify the Payload Collection Aggregator Collection Splitter Custom Aggregator Message Chunk Aggregator Message Chunk Splitter Resequencer Splitter
  • 21.
    Mule ESB Scops Async Cache Composite Source Foreach MessageEnricher Poll Sub Flow Until Successful
  • 22.
    Mule ESB Error Handling Catchexception strategy Rollback exception strategy Reference exception strategy Choice exception strategy
  • 23.
    Utilizando a mulapara fazer o trabalho pesado!
  • 24.
    Utilizando a mulapara fazer o trabalho pesado! ESB
  • 25.
    Utilizando a mulapara fazer o trabalho pesado!
  • 26.
    Utilizando a mulapara fazer o trabalho pesado!
  • 27.
    Utilizando a mulapara fazer o trabalho pesado!
  • 28.
    Considerações finais! Arquitetura ESBé uma boa pedida para integrar projetos que: ● Inclua mais do que duas aplicações; ● Permitindo a inclusão de novas aplicações no futuro; ● Baixo custo de manutenção; ● Menos dor de cabeça, na hora em que uma integração para; ● Baixa curva de aprendizado; ● Comunidade ativa e fácil acesso aos core-developers;
  • 29.

Notas do Editor

  • #4 Era uma vez um elefante, que tinha muita coisa pra fazer no seu dia a dia. Um belo dia, colocaram ele pra transportar grandes cargas para vários locais. O elefante começando a cansar, conhece uma mula. O elefante sagaz e inteligente, percebe que poderia deixar a maioria do trabalho pesado pra mula. Usando os seus melhores meios de comunicação, convence a mula a trabalhar pra ele. O elefante, então podê se concentrar no que sabia fazer de melhor, sem precisar se preocupar em transportar grandes cargas. Virou grande amigo da mula, se tornando parceiros, para quando precisar transportar grandes cargas.
  • #8 The concept of the ESB architecture is that you integrate different applications by putting a communication bus between them and then enable each application to talk to the bus. This decouples systems from each other, allowing them to communicate without having a dependency or knowledge of other systems on the bus. The concept of ESB was born out of the need to move away from point-to-point integration, which becomes brittle and hard to manage over time. - See more at: http://blogs.mulesoft.org/esb-or-not-to-esb-revisited-part-1/#sthash.nxLzrsSn.dpuf
  • #9 The concept of the ESB architecture is that you integrate different applications by putting a communication bus between them and then enable each application to talk to the bus. This decouples systems from each other, allowing them to communicate without having a dependency or knowledge of other systems on the bus. The concept of ESB was born out of the need to move away from point-to-point integration, which becomes brittle and hard to manage over time. - See more at: http://blogs.mulesoft.org/esb-or-not-to-esb-revisited-part-1/#sthash.nxLzrsSn.dpuf
  • #10 The concept of the ESB architecture is that you integrate different applications by putting a communication bus between them and then enable each application to talk to the bus. This decouples systems from each other, allowing them to communicate without having a dependency or knowledge of other systems on the bus. The concept of ESB was born out of the need to move away from point-to-point integration, which becomes brittle and hard to manage over time. - See more at: http://blogs.mulesoft.org/esb-or-not-to-esb-revisited-part-1/#sthash.nxLzrsSn.dpuf
  • #11 Mule is a Java-based enterprise service bus (ESB) and integration platform that allows developers to quickly and easily connect applications to exchange data following the service-oriented architecture (SOA) methodology. Mule enables easy integration of existing systems, regardless of the different technologies
  • #12 At the simplest level, Mule applications accept and process messages through several Lego-block-like message processors plugged together in what we call a flow. Understanding the basic message structure and flow architecture is key to understanding Mule. Essentially every Mule flow contains a series of building blocks that accept, then transform and process messages.
  • #13 At the simplest level, Mule applications accept and process messages through several Lego-block-like message processors plugged together in what we call a flow. Understanding the basic message structure and flow architecture is key to understanding Mule. Essentially every Mule flow contains a series of building blocks that accept, then transform and process messages.
  • #14 At the simplest level, Mule applications accept and process messages through several Lego-block-like message processors plugged together in what we call a flow. Understanding the basic message structure and flow architecture is key to understanding Mule. Essentially every Mule flow contains a series of building blocks that accept, then transform and process messages.
  • #15 At the simplest level, Mule applications accept and process messages through several Lego-block-like message processors plugged together in what we call a flow. Understanding the basic message structure and flow architecture is key to understanding Mule. Essentially every Mule flow contains a series of building blocks that accept, then transform and process messages.
  • #16 At the simplest level, Mule applications accept and process messages through several Lego-block-like message processors plugged together in what we call a flow. Understanding the basic message structure and flow architecture is key to understanding Mule. Essentially every Mule flow contains a series of building blocks that accept, then transform and process messages.
  • #17 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #18 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #19 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #20 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #21 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #22 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #23 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #24 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #25 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #26 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #27 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #28 The Mule message is the data that passes through your application via one or more flows. It has two important parts:
  • #29 The Mule message is the data that passes through your application via one or more flows. It has two important parts: