SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
Qual Integration Framework você deve usar - Integração
Spring, Mule ESB ou Apache Camel? – Parte 1
Trocas de dados entre empresas estão aumentando muito. O
número de aplicações que devem ser integrados está aumentando
também. As interfaces usam diferentes tecnologias, protocolos e
formatos de dados. No entanto, a integração destas aplicações
devem ser modeladas de forma padronizada, realizado de forma
eficiente e apoiada por testes automáticos.
Três quadros de integração estão disponíveis no ambiente de JVM,
que preenchem estes requisitos: Integração Spring, Mule ESB e
Apache Camel. Eles implementar as Integration Patterns Enteprise
bem conhecidas (EIP, http://www.eaipatterns.com) e, portanto,
oferecem uma linguagem padronizada, de domínio específico para
integrar aplicações.
Estes quadros de integração pode ser usado em quase todos os
projetos de integração dentro do ambiente de JVM - não importa
quais tecnologias, protocolos de transporte ou formatos de dados
são usados. Todos os projetos de integração pode ser realizado de
uma forma consistente, sem código clichê redundante.
Este artigo compara as três alternativas e discute os seus prós e
contras. Se você quer saber, quando usar um mais poderoso
Enterprise Service Bus (ESB) em vez de um desses quadros de
integração leves, então você deve ler este post: http://www.kai-
waehner.de/blog/2011 / 06/02 / quando de usar-apache-camelo /
(ele explica quando usar o Apache Camel, mas o título também
poderia ser "quando usar um framework de integração leve").
Critérios de comparação
Vários critérios podem ser usadas para comparar estas três
quadros de integração:
• Código aberto
• Conceitos básicos / Arquitectura
• Testability
• implantação
• popularidade
• Suporte comercial
• IDE-Support
• ErrorHandling
• Monitoramento
• prontidão Empresa
• linguagem específica de domínio (DSL)
• Número de componentes para interfaces, tecnologias e protocolos
• Expansibilidade
Semelhanças
Todos os três quadros têm muitas semelhanças. Portanto, muitos
dos critérios de comparação acima são mesmo! Todos implementar
as PEI e oferecer um modelo e mensagens de arquitetura
consistente para integrar várias tecnologias. Não importa quais
tecnologias você tem que usar, você sempre fazê-lo da mesma
forma, ou seja, mesma sintaxe, mesmo API, mesmos testes
automáticos. A única diferença é a configuração de cada ponto final
(por exemplo JMS precisa de um nome de fila, enquanto JDBC
precisa de uma URL de conexão com banco de dados). IMO, esta é
a característica mais importante. Cada estrutura usa nomes
diferentes, mas a idéia é a mesma. Por exemplo, "Camel rotas" são
equivalentes a "mula flui", "componentes Camel" são chamados de
"adaptadores" em Spring Integration.
Além disso, várias outras semelhanças existe, que diferem de ESB
pesados. Você apenas tem que adicionar algumas bibliotecas ao
seu classpath. Portanto, você pode usar cada quadro em todo o
ambiente JVM. Não importa se o seu projeto é um aplicativo
independente Java SE, ou se você quer implantá-lo em um
recipiente web (por exemplo, Tomcat), servidor de aplicação JEE
(por exemplo Glassfish), container OSGi ou mesmo para a nuvem.
Basta adicionar as bibliotecas, fazer algumas configurações
simples, e está feito. Então você pode começar a implementar o seu
material de integração (roteamento, transformação, e assim por
diante).
Todos os três quadros são de código aberto e oferecem
características familiares, públicos, como código-fonte, fóruns, listas
de discussão, acompanhamento de problemas e votação para
novos recursos. Boas comunidades escrever documentação, blogs
e tutoriais (IMO Apache Camel tem a comunidade mais perceptível).
Apenas o número de livros lançados poderia ser melhor para todos
os três. suporte comercial está disponível através de diferentes
fornecedores:
• Integração Spring: SpringSource (http://www.springsource.com)
• Mule ESB: MuleSoft (http://www.mulesoft.org)
• Apache Camel: FuseSource (http://fusesource.com) e Talend
(http://www.talend.com)
Suporte IDE é muito bom, mesmo designers visuais estão
disponíveis para todas as três alternativas para modelar problemas
de integração (e deixá-los gerar o código). Cada um dos quadros é
uma empresa pronta, porque todos oferecem recursos necessários,
tais como manipulação de erro, o teste automático, transações,
multithreading, escalabilidade e monitoramento.
Diferenças
Se você conhece um destes quadros, você pode aprender os outros
muito facilmente devido aos seus mesmos conceitos e muitas
outras semelhanças. Em seguida, vamos discutir suas diferenças
para ser capaz de decidir quando usar cada um. As duas diferenças
mais importantes são o número de tecnologias suportadas e a DSL
(s) utilizado. Assim, vou concentrar-me especialmente sobre estes
dois critérios a seguir. Vou usar trechos de código de execução da
bem conhecida EIP "Router com base em conteúdo" em todos os
exemplos. Julgue por si mesmo, qual você prefere.
Spring Integration
Primavera Integração é baseado no projeto Spring bem conhecido e
estende o modelo de programação com suporte de integração.
Você pode usar recursos de Primavera, como injeção de
dependência, as transações ou a segurança como você faz em
outros projetos da Primavera.
Primavera A integração é impressionante, se você já tem um projeto
de Primavera e precisa adicionar algumas coisas integração. É
quase nenhum esforço para aprender Spring Integration se você
sabe-se da Primavera. No entanto, Primavera Integration só oferece
apoio muito rudimenary para as tecnologias - apenas "coisas
básicas" como Arquivo, FTP, JMS, TCP, HTTP ou Web Services.
Mula e Apache Camel oferecer muitos, muitos outros componentes!
Integrações são implementadas por escrever um monte de código
XML (sem DSL real), como você pode ver no seguinte trecho de
código:
<file:inbound-channel-adapter
id=”incomingOrders”
directory=”file:incomingOrders”/>
<payload-type-router input-channel=”incomingOrders”>
<mapping type=”com.kw.DvdOrder” channel=”dvdOrders” />
<mapping type=”com.kw.VideogameOrder”
channel=”videogameOrders” />
<mapping type=”com.kw.OtherOrder” channel=”otherOrders”
/>
</payload-type-router>
<file:outbound-channel-adapter
id=”dvdOrders”
directory=”dvdOrders”/>
<jms:outbound-channel-adapter
id=”videogamesOrders”
destination=”videogameOrdersQueue”
channel=”videogamesOrders”/>
<logging-channel-adapter id=”otherOrders” level=”INFO”/>
Você também pode usar o código Java e anotações para algumas
coisas, mas no final, você precisa de um monte de XML.
Honestamente, eu não gosto muito de declaração XML. É bom para
configuração (como fábricas de conexão JMS), mas não para a
lógica de integração complexa. Pelo menos, ele deve ser um DSL
com melhor legibilidade, mas mais complexos exemplos Primavera
de integração são realmente difíceis de ler.
Além disso, o designer visual para o Eclipse (chamado gráfico de
integração) é ok, mas não tão bom e intuitivo que os seus
concorrentes. Portanto, eu só iria usar Spring Integration se eu já
tenho um projeto Spring existente e deve apenas adicionar um
pouco de lógica de integração exigindo apenas "tecnologias
básicas", como Arquivo, FTP, JMS ou JDBC.

Mais conteúdo relacionado

Mais procurados (17)

Sessao2
Sessao2Sessao2
Sessao2
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
Aula 1
Aula 1Aula 1
Aula 1
 
Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)Maven Versioning Strategy (VR)
Maven Versioning Strategy (VR)
 
ASP.NET - Conceitos Básicos
ASP.NET - Conceitos BásicosASP.NET - Conceitos Básicos
ASP.NET - Conceitos Básicos
 
Estudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e SilverlightEstudo de caso ASP.NET MVC e Silverlight
Estudo de caso ASP.NET MVC e Silverlight
 
UMLet
UMLetUMLet
UMLet
 
Introdução - Java WEB
Introdução - Java WEBIntrodução - Java WEB
Introdução - Java WEB
 
WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)WebSphere 8 Intro (pt-BR)
WebSphere 8 Intro (pt-BR)
 
Treinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 AdministrationTreinamento WebSphere 6.1 Administration
Treinamento WebSphere 6.1 Administration
 
Faq visual class
Faq visual classFaq visual class
Faq visual class
 
Apostila asp
Apostila aspApostila asp
Apostila asp
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Java Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãOJava Fx Guia De IntroduçãO
Java Fx Guia De IntroduçãO
 
Tipos de automação de teste
Tipos de automação de testeTipos de automação de teste
Tipos de automação de teste
 
Adobe Flex
Adobe FlexAdobe Flex
Adobe Flex
 

Destaque

Für die Kinder von heute ist der Füller der Touchscreen
Für die Kinder von heute ist der Füller der TouchscreenFür die Kinder von heute ist der Füller der Touchscreen
Für die Kinder von heute ist der Füller der TouchscreenMartin Ebner
 
The Optical Society - Benefits for Student Chapters
The Optical Society - Benefits for Student ChaptersThe Optical Society - Benefits for Student Chapters
The Optical Society - Benefits for Student ChaptersYSF-2015
 
Mule architecture
Mule architectureMule architecture
Mule architectureAnand kalla
 
New features of mule 3.4
New features of mule 3.4New features of mule 3.4
New features of mule 3.4D.Rajesh Kumar
 
C3D ELP - Education Program
C3D ELP - Education ProgramC3D ELP - Education Program
C3D ELP - Education ProgramArkadiy Kamnev
 
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...jdomen44
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gatewayD.Rajesh Kumar
 
The Riot Club Trailer Analysis
The Riot Club Trailer AnalysisThe Riot Club Trailer Analysis
The Riot Club Trailer AnalysisLMessider
 
Mule data weave with flowref lookup
Mule data weave with flowref lookupMule data weave with flowref lookup
Mule data weave with flowref lookupD.Rajesh Kumar
 
Treball per projectes #Novadors14 @jdomenechca
Treball per projectes #Novadors14 @jdomenechcaTreball per projectes #Novadors14 @jdomenechca
Treball per projectes #Novadors14 @jdomenechcajdomen44
 
τουαρέγκ
τουαρέγκτουαρέγκ
τουαρέγκ5odimkat
 
C3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitC3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitArkadiy Kamnev
 
OER Vortrag mit Schwerpunkt IDeRBLog
OER Vortrag mit Schwerpunkt IDeRBLogOER Vortrag mit Schwerpunkt IDeRBLog
OER Vortrag mit Schwerpunkt IDeRBLogMichael Gros
 
La lectura crítica a classe de ciències
La lectura crítica a classe de ciènciesLa lectura crítica a classe de ciències
La lectura crítica a classe de ciènciescienciaicontroversia
 
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlar
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel KavramlarAçık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlar
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlarekaypak
 

Destaque (20)

Für die Kinder von heute ist der Füller der Touchscreen
Für die Kinder von heute ist der Füller der TouchscreenFür die Kinder von heute ist der Füller der Touchscreen
Für die Kinder von heute ist der Füller der Touchscreen
 
CV DIMANIDIS EUROPASS
CV DIMANIDIS EUROPASSCV DIMANIDIS EUROPASS
CV DIMANIDIS EUROPASS
 
The Optical Society - Benefits for Student Chapters
The Optical Society - Benefits for Student ChaptersThe Optical Society - Benefits for Student Chapters
The Optical Society - Benefits for Student Chapters
 
Mule architecture
Mule architectureMule architecture
Mule architecture
 
osmose
osmoseosmose
osmose
 
New features of mule 3.4
New features of mule 3.4New features of mule 3.4
New features of mule 3.4
 
C3D ELP - Education Program
C3D ELP - Education ProgramC3D ELP - Education Program
C3D ELP - Education Program
 
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...
Com dissenyar activitats breus d'indagació per a ensenyar a pensar científica...
 
Sadaka na matokeo yake
Sadaka na matokeo yakeSadaka na matokeo yake
Sadaka na matokeo yake
 
Mule anypoint data gateway
Mule  anypoint data gatewayMule  anypoint data gateway
Mule anypoint data gateway
 
The Riot Club Trailer Analysis
The Riot Club Trailer AnalysisThe Riot Club Trailer Analysis
The Riot Club Trailer Analysis
 
Mule data weave with flowref lookup
Mule data weave with flowref lookupMule data weave with flowref lookup
Mule data weave with flowref lookup
 
Treball per projectes #Novadors14 @jdomenechca
Treball per projectes #Novadors14 @jdomenechcaTreball per projectes #Novadors14 @jdomenechca
Treball per projectes #Novadors14 @jdomenechca
 
τουαρέγκ
τουαρέγκτουαρέγκ
τουαρέγκ
 
C3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling ToolkitC3D Labs. Geometric Modeling Toolkit
C3D Labs. Geometric Modeling Toolkit
 
OER Vortrag mit Schwerpunkt IDeRBLog
OER Vortrag mit Schwerpunkt IDeRBLogOER Vortrag mit Schwerpunkt IDeRBLog
OER Vortrag mit Schwerpunkt IDeRBLog
 
La lectura crítica a classe de ciències
La lectura crítica a classe de ciènciesLa lectura crítica a classe de ciències
La lectura crítica a classe de ciències
 
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlar
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel KavramlarAçık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlar
Açık ve Uzaktan Öğrenmede Başarının Ölçme-Değerledirmesi Temel Kavramlar
 
Epidemiología introducción 2016
Epidemiología introducción 2016Epidemiología introducción 2016
Epidemiología introducción 2016
 
βραζιλια
βραζιλιαβραζιλια
βραζιλια
 

Semelhante a Qual integration framework você deve usar parte 1

Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Jeison Barros
 
Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelPedro Oliveira
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasCaio Lima
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
 
Testes webservice tdc
Testes webservice tdcTestes webservice tdc
Testes webservice tdcRicardo Moura
 
SoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testingSoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testingRicardo Moura
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.netleojr_0
 
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
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de InternetVanessa Oliveira
 
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
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Adriano Tavares
 
Apache Camel
Apache CamelApache Camel
Apache CamelPT.JUG
 

Semelhante a Qual integration framework você deve usar parte 1 (20)

Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2Qual integration framework você deve usar parte 2
Qual integration framework você deve usar parte 2
 
Integração e APIs com Mulesoft
Integração e APIs com MulesoftIntegração e APIs com Mulesoft
Integração e APIs com Mulesoft
 
Integração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache CamelIntegração de Sistemas utilizando Apache Camel
Integração de Sistemas utilizando Apache Camel
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões web
 
Testes webservice tdc
Testes webservice tdcTestes webservice tdc
Testes webservice tdc
 
SoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testingSoapUI & Jmeter Basics Web service testing
SoapUI & Jmeter Basics Web service testing
 
Fundamentos do asp.net
Fundamentos do asp.netFundamentos do asp.net
Fundamentos do asp.net
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
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
 
Tendências do Mercado de Internet
Tendências do Mercado de InternetTendências do Mercado de Internet
Tendências do Mercado de Internet
 
Cursos
CursosCursos
Cursos
 
Intro aspnet webapi
Intro aspnet webapiIntro aspnet webapi
Intro aspnet webapi
 
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
 
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
Produtividade em integração de aplicações com apache camel tdc2012-são paulo-...
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 

Mais de Jeison 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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdlJeison 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
 
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
 
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
 
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
 

Mais de Jeison Barros (20)

Pdfteste
PdftestePdfteste
Pdfteste
 
Introdução a RAML - parte 1
Introdução a RAML -  parte 1Introdução a RAML -  parte 1
Introdução a RAML - parte 1
 
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
 
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
 
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
 
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
 
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
 
Rest api vs SOAP
Rest api vs SOAPRest api vs SOAP
Rest api vs SOAP
 
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
 
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
 
Consumindo soap wsdl
Consumindo soap wsdlConsumindo soap wsdl
Consumindo soap wsdl
 
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
 
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
 
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
 
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
 

Qual integration framework você deve usar parte 1

  • 1. Qual Integration Framework você deve usar - Integração Spring, Mule ESB ou Apache Camel? – Parte 1 Trocas de dados entre empresas estão aumentando muito. O número de aplicações que devem ser integrados está aumentando também. As interfaces usam diferentes tecnologias, protocolos e formatos de dados. No entanto, a integração destas aplicações devem ser modeladas de forma padronizada, realizado de forma eficiente e apoiada por testes automáticos. Três quadros de integração estão disponíveis no ambiente de JVM, que preenchem estes requisitos: Integração Spring, Mule ESB e Apache Camel. Eles implementar as Integration Patterns Enteprise bem conhecidas (EIP, http://www.eaipatterns.com) e, portanto, oferecem uma linguagem padronizada, de domínio específico para integrar aplicações. Estes quadros de integração pode ser usado em quase todos os projetos de integração dentro do ambiente de JVM - não importa quais tecnologias, protocolos de transporte ou formatos de dados são usados. Todos os projetos de integração pode ser realizado de uma forma consistente, sem código clichê redundante. Este artigo compara as três alternativas e discute os seus prós e contras. Se você quer saber, quando usar um mais poderoso Enterprise Service Bus (ESB) em vez de um desses quadros de integração leves, então você deve ler este post: http://www.kai- waehner.de/blog/2011 / 06/02 / quando de usar-apache-camelo / (ele explica quando usar o Apache Camel, mas o título também poderia ser "quando usar um framework de integração leve"). Critérios de comparação Vários critérios podem ser usadas para comparar estas três quadros de integração: • Código aberto • Conceitos básicos / Arquitectura • Testability • implantação • popularidade
  • 2. • Suporte comercial • IDE-Support • ErrorHandling • Monitoramento • prontidão Empresa • linguagem específica de domínio (DSL) • Número de componentes para interfaces, tecnologias e protocolos • Expansibilidade Semelhanças Todos os três quadros têm muitas semelhanças. Portanto, muitos dos critérios de comparação acima são mesmo! Todos implementar as PEI e oferecer um modelo e mensagens de arquitetura consistente para integrar várias tecnologias. Não importa quais tecnologias você tem que usar, você sempre fazê-lo da mesma forma, ou seja, mesma sintaxe, mesmo API, mesmos testes automáticos. A única diferença é a configuração de cada ponto final (por exemplo JMS precisa de um nome de fila, enquanto JDBC precisa de uma URL de conexão com banco de dados). IMO, esta é a característica mais importante. Cada estrutura usa nomes diferentes, mas a idéia é a mesma. Por exemplo, "Camel rotas" são equivalentes a "mula flui", "componentes Camel" são chamados de "adaptadores" em Spring Integration. Além disso, várias outras semelhanças existe, que diferem de ESB pesados. Você apenas tem que adicionar algumas bibliotecas ao seu classpath. Portanto, você pode usar cada quadro em todo o ambiente JVM. Não importa se o seu projeto é um aplicativo independente Java SE, ou se você quer implantá-lo em um recipiente web (por exemplo, Tomcat), servidor de aplicação JEE (por exemplo Glassfish), container OSGi ou mesmo para a nuvem. Basta adicionar as bibliotecas, fazer algumas configurações simples, e está feito. Então você pode começar a implementar o seu material de integração (roteamento, transformação, e assim por diante).
  • 3. Todos os três quadros são de código aberto e oferecem características familiares, públicos, como código-fonte, fóruns, listas de discussão, acompanhamento de problemas e votação para novos recursos. Boas comunidades escrever documentação, blogs e tutoriais (IMO Apache Camel tem a comunidade mais perceptível). Apenas o número de livros lançados poderia ser melhor para todos os três. suporte comercial está disponível através de diferentes fornecedores: • Integração Spring: SpringSource (http://www.springsource.com) • Mule ESB: MuleSoft (http://www.mulesoft.org) • Apache Camel: FuseSource (http://fusesource.com) e Talend (http://www.talend.com) Suporte IDE é muito bom, mesmo designers visuais estão disponíveis para todas as três alternativas para modelar problemas de integração (e deixá-los gerar o código). Cada um dos quadros é uma empresa pronta, porque todos oferecem recursos necessários, tais como manipulação de erro, o teste automático, transações, multithreading, escalabilidade e monitoramento. Diferenças Se você conhece um destes quadros, você pode aprender os outros muito facilmente devido aos seus mesmos conceitos e muitas outras semelhanças. Em seguida, vamos discutir suas diferenças para ser capaz de decidir quando usar cada um. As duas diferenças mais importantes são o número de tecnologias suportadas e a DSL (s) utilizado. Assim, vou concentrar-me especialmente sobre estes dois critérios a seguir. Vou usar trechos de código de execução da bem conhecida EIP "Router com base em conteúdo" em todos os exemplos. Julgue por si mesmo, qual você prefere. Spring Integration Primavera Integração é baseado no projeto Spring bem conhecido e estende o modelo de programação com suporte de integração. Você pode usar recursos de Primavera, como injeção de dependência, as transações ou a segurança como você faz em outros projetos da Primavera. Primavera A integração é impressionante, se você já tem um projeto de Primavera e precisa adicionar algumas coisas integração. É quase nenhum esforço para aprender Spring Integration se você
  • 4. sabe-se da Primavera. No entanto, Primavera Integration só oferece apoio muito rudimenary para as tecnologias - apenas "coisas básicas" como Arquivo, FTP, JMS, TCP, HTTP ou Web Services. Mula e Apache Camel oferecer muitos, muitos outros componentes! Integrações são implementadas por escrever um monte de código XML (sem DSL real), como você pode ver no seguinte trecho de código: <file:inbound-channel-adapter id=”incomingOrders” directory=”file:incomingOrders”/> <payload-type-router input-channel=”incomingOrders”> <mapping type=”com.kw.DvdOrder” channel=”dvdOrders” /> <mapping type=”com.kw.VideogameOrder” channel=”videogameOrders” /> <mapping type=”com.kw.OtherOrder” channel=”otherOrders” /> </payload-type-router> <file:outbound-channel-adapter id=”dvdOrders” directory=”dvdOrders”/> <jms:outbound-channel-adapter id=”videogamesOrders” destination=”videogameOrdersQueue” channel=”videogamesOrders”/>
  • 5. <logging-channel-adapter id=”otherOrders” level=”INFO”/> Você também pode usar o código Java e anotações para algumas coisas, mas no final, você precisa de um monte de XML. Honestamente, eu não gosto muito de declaração XML. É bom para configuração (como fábricas de conexão JMS), mas não para a lógica de integração complexa. Pelo menos, ele deve ser um DSL com melhor legibilidade, mas mais complexos exemplos Primavera de integração são realmente difíceis de ler. Além disso, o designer visual para o Eclipse (chamado gráfico de integração) é ok, mas não tão bom e intuitivo que os seus concorrentes. Portanto, eu só iria usar Spring Integration se eu já tenho um projeto Spring existente e deve apenas adicionar um pouco de lógica de integração exigindo apenas "tecnologias básicas", como Arquivo, FTP, JMS ou JDBC.