ServiceMix e CXF

Post on 22-Apr-2015

2.416 views 1 download

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!