ServiceMix e CXF
-
Upload
bruno-borges -
Category
Documents
-
view
2.416 -
download
1
description
Transcript of ServiceMix e CXF
Simplificando SOASimplificando SOAcom Apache CXF e ServiceMixcom Apache CXF e ServiceMix
Agenda
SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
SOA não é ESB
SOA
Metodologia para Integração
Negócio sobre (over) TI
ESB
Tecnologia para Integração
TI para Negócio
O que é um ESB?
Não há um padrão definido na indústria
Java Business Integration
OASIS Open CSA
... (mule)
Questões para considerar
Padrão?
Produto?
Componente de Arquitetura?
Compontente de Hardware?
O que é um ESB?
A resposta está em entender as capacidades e avaliar os requisitos
Enterprise Service Bus
Objetivo do seu negócio
Requisitos funcionais
Escolha de arquitetura
Critério para avaliação do ESB
Arquitetura com ESB
Aplicação Cliente
Serviço Serviço Serviço
ESB
Serviços● Java JMS● EJBs● CICS Mainframe● Spring Beans
Arquitetura com ESB
Facilidades que o ESB traz
Transparência na localização dos serviços
Compartilhamento dos serviços
Habilidade para separarBusiness Services
Implementation Services
Arquitetura com ESB
WSDL
Business Service DefinitionvenderTitulo
Aplicação Cliente
Business Services são expostos com um nome específico e definições de dados de entrada e saída
ESB
VenderTítulo
Serviço
SalvarOperacao(operacaoVenda);
Implementation Services são codificados através de Service Providers
Exemplos● WebServices● POJOs● EJBs
O que precisamos?
Enterprise Service Bus
Routing
Message Transformation
MessageEnhancement
ProtocolTransformation
ServiceMapping
MessageProcessing
Process Choreography
ServiceOrchestration
TransactionManagement
Security
Routing
Determinar um serviço para atender uma requisição baseado em critérios determinísticos
ou variáveis
Message Transformation
Converter mensagens de entrada de Business Services para formatos compreendidos pela
implementação
XML -> COBOL CopybookXML -> XMLObject -> XML
Message Transformation
Requisição<VenderTitulo>
<Papel>CDB</Papel><Quantidade>
100.00</Quantidade>
</VenderTitulo>
COBOL Copybook01 VENDA
05 VENDA-DADOS10 PAPEL PIC X(5)10 QUANTIDADE PIC 9(11)
Message Enhancement
Requisição<VenderTitulo>
<Papel>CDB</Papel><Quantidade>
100.00</Quantidade>
</VenderTitulo>
COBOL Copybook01 VENDA
05 VENDA-DADOS10 PAPEL PIC X(5)10 BANCO PIC 9(11)10 QUANTIDADE PIC 9(11)
Adicionar ou modificar dados nas mensagens
Conversão de formatos
Dados complementares
Protocol Transformation
Aceitar um protocolo e poder se comunicar com serviços em outros protocolos
SOAP -> JMSHTTP -> CICS/MQMQ -> RMI
Service Mapping
Capacidade de mapear Business Services a Implementation Services, com informações de
localização e configuração
XMLBanco de Dados
Message Processing
Capacidade de gerenciar estado e requisição aceitando uma entrada e garantindo entrega de
resposta ao cliente
Pode requerer uso de XA
Message Processing
InputXMLAplicação Cliente
ESB
Input Queue
Error Queue
Output Queue
Process Choreography
Capacidade de gerenciar serviços de negócio complexos, que requerem a coordenação de múltiplos Business Services, para atender a
uma única requisição
BPELEntende-se como:
Use CaseBusiness Process
Process Choreography
RegistrarTitulo
InserirTitulo DepositarTitulo HistóricoCustódia
Service Orchestration
Capacidade de gerenciar a coordenação de Implementation Services
Pode usar BPELGeralmente, implementado através de comunicação interna entre serviços
Transaction Management
Capacidade de gerenciar transações envolvendo múltiplos recursos através de múltiplos serviços
Security
Os 4 “A”s:● Autenticação● Autorização● Auditoria● Administração
Capacidade de proteger serviços de requisições não autorizadas
Agenda
SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
JBI
JSR 208Java Business Integration
JBI
Objetiva arquitetura baseada em padrões
Interação e integração entre componentes internos do ESB
Não dita regras sobre comunicações externas
Independe de JEE
JBI
Dois tipos de componentes
Service Engines (SEs)
Binding Components (Bcs)
Serviços se comunicam através da NMR
Normalized Message Router
jbi
SE SE SE
JBI
Normalized Message Router
BC BC BCBC
Especificação da Arquitetura
Serviços Externos
jbi
XSLT
SE
PXE Groovy
JBI
Normalized Message Router
MQ RMI HTTPCICS
JavaSwing
JavaEJB
COBOLCICS
WebService
Especificação da Arquitetura
BC
Message TransformationProcess ChoreographyScripting
JBI
Vantagens
BCs e SEs de terceiros podem ser adicionados ou removidos sem afetar aplicações ou outros serviços
Sem “vendor lock-in”Mix de produtos comerciais com Open Source
Habilitar ou desabilitar capacidades desnecessárias
Torna o ESB mais leve
Agenda
SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
SMX
Apache ServiceMix
SMX
Open Source
Integração com Containers
Geronimo, JBoss, JonAS
* WAR deployment, Standalone
Compatível com JBI 1.0
Configuração via Spring
SMX
Binding Components
File, HTTP, JMS, SMTP, SOAP, TCP
Service Engines
Apache Camel, Apache CXF, Apache Drools, POJOs, Quartz, Scripting, XSLT
Segurança
JAAS, WS-Security
SMX
ServiceMix 4.0
JBI Compliant (1.0 e 2.0)
ServiceMix KernelNMR é serviço OSGi
Message BrokerApache ActiveMQ
WebServicesApache CXF
Routing EngineApache Camel
Agenda
SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
CXF
Apache CXF
CXF
WebServices Framework
Merge entre Celtix e XFire
Padrões
Soap 1.1, 1.2
JAX-WS, JAX-WSA
JSR-181, SAAJ
WSDL 1.1, 2.0
WS-*BasicProfile, Security, Addressing, Reliable Messaging,
Policy
CXF
Transportes
HTTP, Servlet, JMS, Jabber
Bindings
SOAP, REST/HTTP
Data Binding
JAXB 2.0, Aegis, XMLBeans
Formatos
XML, JSON
Agenda
SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
CXF e SMX
Simplificando SOA ...
CXF e SMX
Componentes
servicemix-cxf-bc
servicemix-cxf-se
Compatíveis com padrão JBIPodem ser instalados em outros ESBs
CXF e SMX
CXF-BC
Transporte e comunicação para os WebServices
JMS/SOAP
HTTP/SOAP
CXF e SMX
CXF-SE
Expõe POJOs anotados (JSR181) como WebServices
Suporte a anexos
JAXB2 Data Binding
CXF e SMX
Obrigado!