Mais conteúdo relacionado
Apache ActiveMQ, Camel, CXF e ServiceMix Overview - Portugues
- 1. Overview
sobre
Apache
Ac6veMQ,
Camel,
CXF
e
ServiceMix
Marcelo Jabali
Sr. Solutions Consultant
Dec., 2011
A
Progress
So3ware
Company
1
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 2. Quando
Você
Iniciou
Sua
Sessão
Webex…
2
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 3. Agenda
§ Apache
Ac6veMQ
§ Apache
Camel
§ Apache
CXF
§ Apache
ServiceMix
§ Overview
sobre
a
FuseSource
3
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 4. Sobre
mim…
Marcelo
Jabali
Sr.
Solu6ons
Consultant
marcelo@fusesource.com
marcelojabali.blogspot.com
mjabali
linkedin.com/in/jabali
4
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 5. Apache
Ac6veMQ
§ Servidor
de
mensagens
de
alta
performance
baseado
na
especificação
JMS
(Java
Message
Service)
Clientes conectam
Network
para os brokers
connectors
usando conectores
controlam como
com simples URLs
os brokers
interagem com
outros brokers
para replicação,
Topics e queues
failover, clustering,
criados
etc…
dinamicamente.
… configuração
Suporte para armazenamento de baseada em
mensagens em banco de dados Spring XML beans.
e sistema de arquivos.
5
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 6. Alta
Disponibilidade
§ Duas
abordagens
complementares:
• Master/Slave
–
Acesso
a
mensagens
persistentes
após
falha
do
broker
• Network
of
Brokers
–
Escalabilidade
Horizontal
(#
de
mensagens,
#
de
conexões
cliente,
geografia,
etc)
6
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 7. Alta
Disponibilidade:
Master/Slave
master slave
Store
7
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 8. Alta
Disponibilidade:
Master/Slave
Producer
master slave
Store
failover:(tcp://master:61616,tcp://slave:61616)?randomize=false
8
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 9. Alta
Disponibilidade:
Master/Slave
Producer Consumer
master slave
Store
failover:(tcp://master:61616,tcp://slave:61616)?randomize=false
9
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 10. Network
of
Brokers:
Geograficamente
Dispersos
Consumer Producer Consumer
Producer
10
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 11. Network
of
Brokers:
Geograficamente
Dispersos
master master
master
master slave
master
master
master slave
master
11
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 12. Network
of
Brokers
+
Master/Slave
Producer Consumer Producer Consumer
master A master B
master A master B
slave slave
12
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 13. Apache
Camel
§ Apache
Camel
é
um
poderoso
framework
de
integração
de
código
aberto
baseado
nos
padrões
de
integração
corpora6vos
(Enterprise
Integra6on
Panerns)
http://enterpriseintegrationpatterns.com/
13
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 14. Apache
Camel:
Panerns
§ Mais
de
50
Enterprise
Integra6on
Panerns
http://camel.apache.org/eip
14
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 15. Apache
Camel:
Arquitetura
15
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 16. Apache
Camel:
Exemplo
§ Cenário
Típico:
”ler
arquivo
XML
em
um
servidor
FTP,
processá-‐lo
usando
XSLT
e
então
enviar
uma
mesagem
JMS
com
o
resultado
da
transformação”
Camel Route
FTP JMS
Consumer Processor Producer
16
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 17. Apache
Camel:
Exemplo
§ Java
DSL
from("ftp://john@localhost/ftp?password=xxx")
.to("xslt:MyTransform.xslt")
.to("activemq:queue:MyQueue")
Camel Route
FTP JMS
Consumer Processor Producer
17
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 18. Apache
Camel:
Exemplo
§ Spring
XML
DSL
<camelContext id=“camel”
xmlns=“http://activemq.apache.org/camel/schema/spring”>
<route>
<from uri=“ftp://john@localhost/ftp?password=xxx”/>
<to uri=“xslt:MyTransform.xslt”/>
<to uri=“activemq:queue:MyQueue”/>
</route>
</camelContext>
Camel Route
FTP JMS
Consumer Processor Producer
18
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 19. Apache
Camel:
Opções
de
Deployment
§ Estratégia
de
Deployment
Containers
Mais
Usados
• Sem
dependência
de
Container
• Leve
Apache
ServiceMix
Apache
Ac.veMQ
• Pode
ser
embu6do
em
outras
Apache
Tomcat
tecnologias
Je5y
§ Opções
de
Deployment
JBoss
IBM
WebSphere
• Standalone
Oracle
WebLogic
• WAR
Oracle
OC4j
• Spring
Glassfish
Google
App
Engine
• JEE
Amazon
EC2
• OSGi
...
others
• Cloud
19
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 20. Apache
CXF
§ Apache CXF é um framework de serviços de código
aberto escrito em Java
§ CXF permite que você desenvolva serviços usando APIs
como JAX-WS e JAX-RS
§ Estes serviços podem ainda utilizar uma variedade de
protocolos como SOAP, XML/HTTP, RESTful HTTP e
transportes como HTTP, JMS ou JBI
20
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 21. Construindo
Aplicações
com
Apache
CXF
§ CXF abstrai os detalhes do processo de comunicação
entre serviços e consumidores
• … permitindo que desenvolvedores concentrem-se na lógica do
serviço ao invés de lógica de integração
§ CXF suporta dois modelos de desenvolvimento:
• Code-first
– Expõe “plain old Java objects” (POJOs) como serviços ou
– Explicitamente usa Java Annotations
• WSDL-first (Contract-first)
– Gera classes Java a partir do WSDL
§ CXF pode ser utilizado para desenvolvimento de ambos
componentes (client e servidor)
21
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 22. Apache
CXF:
Comunicação
Client-‐Server
<service name=“HelloWorld”/>
<soap:address
location=“http:/frankenstein:9090/”/>
</service>
Client Service
API: JAX-WS API: JAX-WS
Binding: SOAP hello.wsdl
Binding: SOAP
Interceptors Interceptors
Transport: HTTP Transport: HTTP
Network SOAP/HTTP
22
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 23. Apache
CXF:
Opções
de
Deployment
§ CXF pode ser deployed em vários containers
baseados em diferentes tecnologias:
• Servlet engine (ex. Tomcat)
• J2EE container (ex. JBoss)
• OSGi container (ex. ServiceMix)
• Standalone JVM (ex. java –jar myapp.jar)
23
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 24. Apache
ServiceMix
§ Completo Enterprise Service Bus (ESB) de código aberto
• Baseado em tecnologia OSGi (http://www.osgi.org)
§ Suporta múltiplos componentes
• OSGi bundles
• JBI artifacts
• Servlets
• Spring beans
• Camel routes (http://camel.apache.org)
• CXF web services e RESTful services (http://
cxf.apache.org)
24
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 25. Apache
ServiceMix:
Arquitetura
§ ServiceMix é composto por duas camadas principais baseadas
em OSGi
• Core : Também conhecida como “kernel”. Baseado em outro
projeto Apache chamado Karaf que extende o modelo OSGi para
gerenciamento e manutenção de bundles
• Technology: Camada de componentes utilizados para suportar
diferentes tecnologias
25
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 26. Apache
ServiceMix:
Core
§ Suporte para Hot deployment de bundles OSGi
§ Configuração Dinâmica de Bundles através do OSGi
ConfigurationAdmin
§ Serviços de Logging fornecidos por Log4J suportando
diferentes APIs como SLF4J, Java Utils, JCL, Avalon,
Tomcat, OSGi
§ Deployment através de file-drop, Maven repository e/ou
download remoto (http://)
§ Administração via console
§ Acesso Remoto via SSH
§ Framework de segurança baseado em JAAS (Java
Authentication and Authorization Service)
26
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 27. Apache
ServiceMix:
Technology
§ Spring Framework
§ JMS Message Broker
§ JAX-WS/JAX-RS Web Services support
§ Enterprise Integration Patterns (EIP) support
§ Java Business Integration (JBI) support
27
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 28. Apache
ServiceMix:
Opções
de
Deployment
§ Quando você deploy uma solução em ServiceMix,
tipicamente você precisa da camada Core e um ou mais
componentes da camada de Technology
§ Exemplos:
• Para suportar Enterprise Integration Patterns(EIPs)
– ServiceMix Core + Camel
• Para suportar soluções JAX-WS/JAX-RS
– ServiceMix Core + CXF
• Para suportar soluções JMS
– ServiceMix Core + ActiveMQ
• Para suportar EIPs + JAX-WS + JMS
– ServiceMix Core + Camel + CXF + ActiveMQ
28
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 29. FuseSource
Corpora6on
Líderes
em
Integração
e
Messaging
de
Código
Aberto
Distribuições
Testadas
Time
de
e
Homologadas
Desenvolvedores
nos
Projetos
Chave
Suporte
Corpora=vo
29
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 30. FuseSource
:
Integração
de
Código
Aberto
§ Custo-‐Benexcio
e
Uso
Comprovado
em
Soluções
Corpora6vas
§ Mesmo
código
fonte
da
Apache
§ Licença
para
u6lização,
manutenção
e
distribuição
(Apache
GPL)
§ Mais
de
25
commiters
nos
projetos
Apache
Projeto Apache Produto FuseSource
Apache ServiceMix Fuse ESB
Apache ActiveMQ Fuse Message Broker
Apache CXF Fuse Services Framework
Apache Camel Fuse Mediation Router
30
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 31. Forrester
Wave
Report
Q2
2011:
Fuse
ESB
é
um
dos
líderes
§ FuseSource
classificado
na
categoria
“Líder”
juntamente
com
outros
tradicionais
fornecedores
§ Uma
das
poucas
soluções
open
source
consideradas
neste
estudo
§ Mais
completa
e
robusta
solução
open
source
http://fusesource.com/forrester
31
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 32. FuseSource:
Serviços
de
Subscrição
Suporte
• Cobertura
24x7
• Organização
global
• Especialistas
em
integração
de
sistemas
de
missão
crí6ca
• Assistência
para
updates
e
Influência
migrações
• Roadmap
de
Produtos
• Planejamento
• Canal
para
Apache
Ferramentas
• Desenvolvimento
• Operações
• Gerenciamento
• Documentação
32
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 33. FuseSource:
Pacote
de
Serviços
Avaliação Desenvolvimento Produção
PoC Pontapé inicial de desenvolvimento;
Workshop Reduz riscos; Projeto piloto
Architecture Revisão e análise da arquitetura e infrastrutura
Assessment existentes; definição da arquitetura proposta
Developer Intensivo treinamento virtual e onsite para
Training habilitar sua equipe técnica
Best Desenvolvimento acelerado; garantia
Practices de qualidade; foco contínuo
Revisão e ajustes de performance, métricas Performance, Scaling
e configurações de alta disponibilidade and HA Review
Habilita seu time de operações para o
Go Live
planejemanto, configuração e gerenciamento
33
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 34. FuseSource:
Treinamento
§ Treinamento
Virtual
• Treinamento
Intera6vo
Online
• Exercícios,
demonstrações
e
discussões
técnicas
durante
todo
o
curso
• Sem
custos
adicionais
(viagem,
estadia,
deslocamento,
…)
§ Treinamento
Onsite
• 2
dias
por
projeto
– Ac6veMQ,
Camel,
CXF
ou
ServiceMix
• 5
dias
para
todos
os
projetos
• Customizável
34
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 35. Obrigado!
No
vendor
lock-‐in
Free
to
redistribute
Enterprise
class
A
Progress
So3ware
Company
35
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company
- 36. Mais
Informações
em
hnp://fusesource.com
36
Copyright
©
2011
Progress
So3ware
Corpora6on
and/or
its
subsidiaries
or
affiliates.
All
rights
reserved.
A
Progress
So3ware
Company