SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Qual Integration Framework você deve usar - Integração
Spring, Mule ESB ou Apache Camel? – Parte 2
Mule ESB
Mule ESB é - como o nome sugere - uma ESB completo, incluindo
vários recursos adicionais, em vez de apenas uma estrutura de
integração (você pode compará-lo com Apache ServiceMix que é
um ESB baseado no Apache Camel). No entanto, Mule pode ser
usar estrutura de integração como leve, também - por simplesmente
não adicionar e utilizando todos os recursos adicionais além do
material integração EIP. Como Spring Integration, mula só oferece
uma DSL XML. Pelo menos, é muito mais fácil de ler do que Spring
Integration, na minha opinião. Mule Studio oferece um muito bom e
intuitiva designer visual. Compare o seguinte trecho de código ao
código de integração Primavera de cima. É mais como uma DSL de
Integração da Primavera. Isto é importante se a lógica de integração
é mais complexa.
<flow name=”muleFlow”>
<file:inbound-endpoint path=”incomingOrders”/>
<choice>
<when expression=”payload instanceof com.kw.DvdOrder”
evaluator=”groovy”>
<file:outbound-endpoint
path=”incoming/dvdOrders”/>
</when>
<when expression=”payload instanceof com.kw.DvdOrder”
evaluator=”groovy”>
<jms:outbound-endpoint
queue=”videogameOrdersQueue”/>
</when>
<otherwise>
<logger level=”INFO”/>
</otherwise>
</choice>
</flow>
A principal vantagem da mula é alguns conectores muito
interessante para interfaces proprietárias importantes, tais como
SAP, Tibco Rendevous, o Oracle Siebel CRM, Paypal ou CICS
Transaction Gateway da IBM. Se o seu projeto de integração requer
algum desses conectores, então eu provavelmente escolheria mula!
Uma desvantagem para alguns projetos pode ser que Mule diz não
a OSGi: http://blogs.mulesoft.org/osgi-no-thanks/
Apache Camel
Apache Camel é quase idêntico ao Mule. Ele oferece muitos, muitos
componentes (ainda mais do que Mule) por quase toda a tecnologia
que você poderia pensar. Se não houver nenhum componente
disponível, você pode criar seu próprio componente muito
facilmente começar com um arquétipo Maven! Se você é um cara
Spring: Camel tem integração impressionante Spring, também.
Como os outros dois, que oferece uma DSL XML:
<route>
<from uri=”file:incomingOrders”/>
<choice>
<when>
<simple>${in.header.type} is ‘com.kw.DvdOrder’</simple>
<to uri=”file:incoming/dvdOrders”/>
</when>
<when>
<simple>${in.header.type} is ‘com.kw.VideogameOrder’
</simple>
<to uri=”jms:videogameOrdersQueue”/>
</when>
<otherwise>
<to uri=”log:OtherOrders”/>
</otherwise>
</choice>
</route>
Legibilidade é melhor do que Spring Integration e quase idêntica à
mula. Além disso, um muito bom (mas comercial) designer visual
chamado Fuse IDE está disponível por FuseSource - gerando o
código DSL XML. No entanto, é um monte de XML, não importa se
você usar um designer visual ou apenas o seu editor de XML.
Pessoalmente, eu não gosto disso.
Portanto, vamos mostrar-lhe outra característica impressionante:
Apache Camel também oferece DSLs para Java, Groovy e Scala.
Você não tem que escrever tanto XML feio. Pessoalmente, eu
prefiro utilizar um destes DSLs fluentes em vez de XML para a
lógica de integração. Eu só faço coisas de configuração, tais como
fábricas de conexão JMS ou propriedades JDBC usando XML. Aqui
você pode ver o mesmo exemplo usando um trecho de código DSL
Java:
from(“file:incomingOrders “)
.choice()
.when(body().isInstanceOf(com.kw.DvdOrder.class))
.to(“file:incoming/dvdOrders”)
.when(body().isInstanceOf(com.kw.VideogameOrder.class
))
.to(“jms:videogameOrdersQueue “)
.otherwise()
.to(“mock:OtherOrders “);
As DSLs programação fluentes são muito fácil de ler (mesmo em
exemplos mais complexos). Além disso, esses DSLs de
programação têm um melhor suporte IDE do que XML (conclusão
de código, refatoração, etc.). Devido a esses DSLs fluentes
impressionante, eu sempre usar o Apache Camel, se eu não
preciso de alguns dos excelentes conectores de mula para produtos
proprietários. Devido à sua muito boa integração com Spring, eu até
prefiro Apache Camel para Integração da Primavera, na maioria dos
casos de uso.
Pela maneira: Talend oferece um designer visual gerar o código
Java DSL, mas ele gera um monte de código clichê e não permitir a
edição vice-versa (ou seja, você não pode editar o código gerado).
Este é um critério de no-go e tem de ser corrigido em breve
(espero)!
E o vencedor é…
... Todos os três quadros de integração, porque todos eles são
leves e fáceis de usar - mesmo para projetos de integração
complexos. É impressionante a integrar várias tecnologias
diferentes, usando sempre a mesma sintaxe e conceitos - incluindo
suporte muito bom teste.
O meu favorito é Apache Camel devido às suas impressionantes
DSLs Java, Groovy e Scala, combinados com muitas tecnologias
suportadas. Eu só iria usar Mule se eu precisar de alguns de seus
conectores originais para produtos proprietários. Eu só iria usar
Spring Integration em um projeto de Primavera existente e se eu só
precisa integrar "tecnologias básicas", como FTP ou JMS. No
entanto: Não importa qual desses quadros de integração leves que
você escolher, você vai se divertir muito na realização de projectos
de integração complexos facilmente com esforços baixos. Lembre-
se: Muitas vezes, um ESB gordura tem muita funcionalidade e,
portanto, muito, complexidade desnecessária e esforços. Use a
ferramenta certa para o trabalho certo!

Mais conteúdo relacionado

Mais procurados

Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Saldit Software
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web APIVinicius Mussak
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkEmerson Thompson
 
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...Leo Baiano
 

Mais procurados (8)

Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java
 
Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7Apresentação Camtasia Studio 7
Apresentação Camtasia Studio 7
 
Introdução ao ASP .NET Web API
Introdução ao ASP .NET Web APIIntrodução ao ASP .NET Web API
Introdução ao ASP .NET Web API
 
Cakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudouCakephp 2.0 - O que mudou
Cakephp 2.0 - O que mudou
 
Usando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic FrameworkUsando PushWoosh com Ionic Framework
Usando PushWoosh com Ionic Framework
 
Como Instalar o Joomla no micro
Como Instalar o Joomla no microComo Instalar o Joomla no micro
Como Instalar o Joomla no micro
 
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
Coisas que eu gostaria de saber antes de começar a desenvolver temas e plugin...
 

Destaque

Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Jeison Barros
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosJeison Barros
 
Trabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleTrabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleJeison Barros
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e mavenJeison Barros
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1Jeison Barros
 
Estudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumEstudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumJeison Barros
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdlJeison Barros
 
Mule pe salesforce mule security
Mule pe   salesforce mule securityMule pe   salesforce mule security
Mule pe salesforce mule securityJeison Barros
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1Jeison Barros
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2Jeison Barros
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soapJeison Barros
 
Como criar um http proxy dinamico com mule parte 3
Como criar um http proxy dinamico com mule   parte 3Como criar um http proxy dinamico com mule   parte 3
Como criar um http proxy dinamico com mule parte 3Jeison Barros
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e designJeison Barros
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonJeison Barros
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcJeison Barros
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1Jeison Barros
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Jeison Barros
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no muleJeison Barros
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Jeison Barros
 

Destaque (20)

Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1Qual integration framework você deve usar parte 1
Qual integration framework você deve usar parte 1
 
Habilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dadosHabilidades necessárias para integrar aplicativos e dados
Habilidades necessárias para integrar aplicativos e dados
 
Trabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do muleTrabalhando com anexos soap usando módulo cxf do mule
Trabalhando com anexos soap usando módulo cxf do mule
 
Começando com mulesoft e maven
Começando com mulesoft e mavenComeçando com mulesoft e maven
Começando com mulesoft e maven
 
Como criar um http proxy dinamico com mule parte 1
Como criar um http proxy dinamico com mule   parte 1Como criar um http proxy dinamico com mule   parte 1
Como criar um http proxy dinamico com mule parte 1
 
Estudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS ComumEstudo de caso: Mule como um transporte JMS Comum
Estudo de caso: Mule como um transporte JMS Comum
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdl
 
Mule pe salesforce mule security
Mule pe   salesforce mule securityMule pe   salesforce mule security
Mule pe salesforce mule security
 
Restful considerada prejudicial - parte 1
Restful considerada prejudicial -  parte 1Restful considerada prejudicial -  parte 1
Restful considerada prejudicial - parte 1
 
Restful considerada prejudicial parte 2
Restful considerada prejudicial   parte 2Restful considerada prejudicial   parte 2
Restful considerada prejudicial parte 2
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
 
Como criar um http proxy dinamico com mule parte 3
Como criar um http proxy dinamico com mule   parte 3Como criar um http proxy dinamico com mule   parte 3
Como criar um http proxy dinamico com mule parte 3
 
Estratégia api e design
Estratégia api e designEstratégia api e design
Estratégia api e design
 
Transformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para jsonTransformando eficientemente resultados de uma consulta jdbc para json
Transformando eficientemente resultados de uma consulta jdbc para json
 
Conectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbcConectando seu banco de dados usando jdbc
Conectando seu banco de dados usando jdbc
 
Rest api vs SOAP
Rest api vs SOAPRest api vs SOAP
Rest api vs SOAP
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1
 
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1Mulesoft - Salesforce Analytics Cloud Connector - Part 1
Mulesoft - Salesforce Analytics Cloud Connector - Part 1
 
Substituindo o request message no mule
Substituindo o request message no muleSubstituindo o request message no mule
Substituindo o request message no mule
 
Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1Usando seu codigo java no mule part 1
Usando seu codigo java no mule part 1
 

Semelhante a Apache Camel DSL Java preferido para integração

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Jeison Barros
 
Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Jeison Barros
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...Dextra Sistemas / Etec Itu
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLIVanessa Me Tonini
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoRegis Machado
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)Aryel Tupinambá
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.jsAlberto Souza
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasCaio Lima
 
SpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerSpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerDr. Spock
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelAlessandro Kieras
 

Semelhante a Apache Camel DSL Java preferido para integração (20)

Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
Web Services
Web ServicesWeb Services
Web Services
 
Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2 Principais perguntas sobre mule esb parte 2
Principais perguntas sobre mule esb parte 2
 
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
VSSUMMIT 2023 - Como partir do zero e entregar uma API Profissional com .NET ...
 
Como desenvolver um tema wordpress de A a Z
Como desenvolver um tema wordpress de A a ZComo desenvolver um tema wordpress de A a Z
Como desenvolver um tema wordpress de A a Z
 
Conectores mule
Conectores muleConectores mule
Conectores mule
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
 
Apostila asp
Apostila aspApostila asp
Apostila asp
 
Aprendendo Angular com a CLI
Aprendendo Angular com a CLIAprendendo Angular com a CLI
Aprendendo Angular com a CLI
 
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse VirgoModularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
Modularidade na Web com Java: Desenvolvimento OSGI Web com Eclipse Virgo
 
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
FrontInVale 2016: Webpack - A evolução do asset pipeline (Lightning Talk)
 
SPA's com Blazor e .NET Core
SPA's com Blazor e .NET CoreSPA's com Blazor e .NET Core
SPA's com Blazor e .NET Core
 
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Produtividade infinito e além com We.js
Produtividade infinito e além com We.jsProdutividade infinito e além com We.js
Produtividade infinito e além com We.js
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
SpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm ServerSpringSource Tool Suite, tc Server e dm Server
SpringSource Tool Suite, tc Server e dm Server
 
Produtividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache CamelProdutividade em Integração de Aplicações com Apache Camel
Produtividade em Integração de Aplicações com Apache Camel
 

Mais de Jeison Barros

Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Jeison Barros
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapterJeison Barros
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationJeison Barros
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Jeison Barros
 
Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkJeison Barros
 
Mule esb teste parte 2
Mule esb teste   parte 2Mule esb teste   parte 2
Mule esb teste parte 2Jeison Barros
 
Mule esb teste parte 1
Mule esb teste   parte 1Mule esb teste   parte 1
Mule esb teste parte 1Jeison Barros
 
Introdução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesIntrodução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesJeison Barros
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre muleJeison Barros
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Jeison Barros
 

Mais de Jeison Barros (11)

Pdfteste
PdftestePdfteste
Pdfteste
 
Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2Mule esb com framework cucumber part 2
Mule esb com framework cucumber part 2
 
Explorando mule esb sftp adapter
Explorando mule esb sftp adapterExplorando mule esb sftp adapter
Explorando mule esb sftp adapter
 
Fluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplicationFluxo dinâmicos usando spring aplication
Fluxo dinâmicos usando spring aplication
 
Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Relatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunkRelatório analytics de mula tempo de execução usando splunk
Relatório analytics de mula tempo de execução usando splunk
 
Mule esb teste parte 2
Mule esb teste   parte 2Mule esb teste   parte 2
Mule esb teste parte 2
 
Mule esb teste parte 1
Mule esb teste   parte 1Mule esb teste   parte 1
Mule esb teste parte 1
 
Introdução ao mule esb para iniciantes
Introdução ao mule esb para iniciantesIntrodução ao mule esb para iniciantes
Introdução ao mule esb para iniciantes
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre mule
 
Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2Usando seu codigo java no mule part 2
Usando seu codigo java no mule part 2
 

Apache Camel DSL Java preferido para integração

  • 1. Qual Integration Framework você deve usar - Integração Spring, Mule ESB ou Apache Camel? – Parte 2 Mule ESB Mule ESB é - como o nome sugere - uma ESB completo, incluindo vários recursos adicionais, em vez de apenas uma estrutura de integração (você pode compará-lo com Apache ServiceMix que é um ESB baseado no Apache Camel). No entanto, Mule pode ser usar estrutura de integração como leve, também - por simplesmente não adicionar e utilizando todos os recursos adicionais além do material integração EIP. Como Spring Integration, mula só oferece uma DSL XML. Pelo menos, é muito mais fácil de ler do que Spring Integration, na minha opinião. Mule Studio oferece um muito bom e intuitiva designer visual. Compare o seguinte trecho de código ao código de integração Primavera de cima. É mais como uma DSL de Integração da Primavera. Isto é importante se a lógica de integração é mais complexa. <flow name=”muleFlow”> <file:inbound-endpoint path=”incomingOrders”/> <choice> <when expression=”payload instanceof com.kw.DvdOrder” evaluator=”groovy”> <file:outbound-endpoint path=”incoming/dvdOrders”/> </when> <when expression=”payload instanceof com.kw.DvdOrder” evaluator=”groovy”> <jms:outbound-endpoint queue=”videogameOrdersQueue”/> </when> <otherwise> <logger level=”INFO”/>
  • 2. </otherwise> </choice> </flow> A principal vantagem da mula é alguns conectores muito interessante para interfaces proprietárias importantes, tais como SAP, Tibco Rendevous, o Oracle Siebel CRM, Paypal ou CICS Transaction Gateway da IBM. Se o seu projeto de integração requer algum desses conectores, então eu provavelmente escolheria mula! Uma desvantagem para alguns projetos pode ser que Mule diz não a OSGi: http://blogs.mulesoft.org/osgi-no-thanks/ Apache Camel Apache Camel é quase idêntico ao Mule. Ele oferece muitos, muitos componentes (ainda mais do que Mule) por quase toda a tecnologia que você poderia pensar. Se não houver nenhum componente disponível, você pode criar seu próprio componente muito facilmente começar com um arquétipo Maven! Se você é um cara Spring: Camel tem integração impressionante Spring, também. Como os outros dois, que oferece uma DSL XML: <route> <from uri=”file:incomingOrders”/> <choice> <when> <simple>${in.header.type} is ‘com.kw.DvdOrder’</simple> <to uri=”file:incoming/dvdOrders”/> </when> <when> <simple>${in.header.type} is ‘com.kw.VideogameOrder’ </simple> <to uri=”jms:videogameOrdersQueue”/>
  • 3. </when> <otherwise> <to uri=”log:OtherOrders”/> </otherwise> </choice> </route> Legibilidade é melhor do que Spring Integration e quase idêntica à mula. Além disso, um muito bom (mas comercial) designer visual chamado Fuse IDE está disponível por FuseSource - gerando o código DSL XML. No entanto, é um monte de XML, não importa se você usar um designer visual ou apenas o seu editor de XML. Pessoalmente, eu não gosto disso. Portanto, vamos mostrar-lhe outra característica impressionante: Apache Camel também oferece DSLs para Java, Groovy e Scala. Você não tem que escrever tanto XML feio. Pessoalmente, eu prefiro utilizar um destes DSLs fluentes em vez de XML para a lógica de integração. Eu só faço coisas de configuração, tais como fábricas de conexão JMS ou propriedades JDBC usando XML. Aqui você pode ver o mesmo exemplo usando um trecho de código DSL Java: from(“file:incomingOrders “) .choice() .when(body().isInstanceOf(com.kw.DvdOrder.class)) .to(“file:incoming/dvdOrders”) .when(body().isInstanceOf(com.kw.VideogameOrder.class )) .to(“jms:videogameOrdersQueue “) .otherwise() .to(“mock:OtherOrders “);
  • 4. As DSLs programação fluentes são muito fácil de ler (mesmo em exemplos mais complexos). Além disso, esses DSLs de programação têm um melhor suporte IDE do que XML (conclusão de código, refatoração, etc.). Devido a esses DSLs fluentes impressionante, eu sempre usar o Apache Camel, se eu não preciso de alguns dos excelentes conectores de mula para produtos proprietários. Devido à sua muito boa integração com Spring, eu até prefiro Apache Camel para Integração da Primavera, na maioria dos casos de uso. Pela maneira: Talend oferece um designer visual gerar o código Java DSL, mas ele gera um monte de código clichê e não permitir a edição vice-versa (ou seja, você não pode editar o código gerado). Este é um critério de no-go e tem de ser corrigido em breve (espero)! E o vencedor é… ... Todos os três quadros de integração, porque todos eles são leves e fáceis de usar - mesmo para projetos de integração complexos. É impressionante a integrar várias tecnologias diferentes, usando sempre a mesma sintaxe e conceitos - incluindo suporte muito bom teste. O meu favorito é Apache Camel devido às suas impressionantes DSLs Java, Groovy e Scala, combinados com muitas tecnologias suportadas. Eu só iria usar Mule se eu precisar de alguns de seus conectores originais para produtos proprietários. Eu só iria usar Spring Integration em um projeto de Primavera existente e se eu só precisa integrar "tecnologias básicas", como FTP ou JMS. No entanto: Não importa qual desses quadros de integração leves que você escolher, você vai se divertir muito na realização de projectos de integração complexos facilmente com esforços baixos. Lembre- se: Muitas vezes, um ESB gordura tem muita funcionalidade e, portanto, muito, complexidade desnecessária e esforços. Use a ferramenta certa para o trabalho certo!