Simplificando SOA
com 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...
O que é um ESB?
Não há um padrão definido na indústria
  Java Business Integration
  OASIS Open CSA
  ... (mule)


Questõe...
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 arqui...
Arquitetura com ESB

         Aplicação Cliente




                ESB


                                       Serviços
...
Arquitetura com ESB
Facilidades que o ESB traz
  Transparência na localização dos serviços
  Compartilhamento dos serviços...
Arquitetura com ESB
  Business
  Service
                     WSDL   Aplicação Cliente
  Definition
  venderTitulo

      ...
O que precisamos?

      Message                   Message               Protocol
      Transformation            Enhancem...
Routing




   Determinar um serviço para atender uma
requisição baseado em critérios determinísticos
                 ou ...
Message Transformation




Converter mensagens de entrada de Business
 Services para formatos compreendidos pela
         ...
Message Transformation

Requisição
<VenderTitulo>
   <Papel>CDB</Papel>
   <Quantidade>
       100.00
   </Quantidade>
</V...
Message Enhancement

                            Requisição
                            <VenderTitulo>
                   ...
Protocol Transformation




Aceitar um protocolo e poder se comunicar com
         serviços em outros protocolos


       ...
Service Mapping




 Capacidade de mapear Business Services a
Implementation Services, com informações de
        localiza...
Message Processing




 Capacidade de gerenciar estado e requisição
aceitando uma entrada e garantindo entrega de
        ...
Message Processing
                           Input
 Aplicação Cliente         XML




                                   ...
Process Choreography



Capacidade de gerenciar serviços de negócio
complexos, que requerem a coordenação de
múltiplos Bus...
Process Choreography


RegistrarTitulo




                  InserirTitulo   DepositarTitulo   HistóricoCustódia
Service Orchestration




Capacidade de gerenciar a coordenação de
       Implementation Services


            Pode usar ...
Transaction Management




Capacidade de gerenciar transações envolvendo
múltiplos recursos através de múltiplos serviços
Security




Capacidade de proteger serviços
 de requisições não autorizadas


        Os 4 “A”s:
        ● Autenticação

...
Agenda


SOA não é ESB
JSR 208: Especificação JBI
Apache ServiceMix (SMX)
Apache CXF
Integração entre SMX e CXF
JBI




       JSR 208
Java Business Integration
JBI


Objetiva arquitetura baseada em padrões
  Interação e integração entre componentes
    internos do ESB
  Não dita re...
JBI


Dois tipos de componentes
  Service Engines (SEs)
  Binding Components (Bcs)


Serviços se comunicam através da NMR
...
JBI
Especificação da Arquitetura




 jbi
         BC          BC          BC            BC

                   Normalized...
JBI
Especificação da Arquitetura

                     Serviços Externos
         Java          Java         COBOL        ...
JBI
Vantagens
 BCs e SEs de terceiros podem ser adicionados
  ou removidos sem afetar aplicações ou
  outros serviços


 S...
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...
SMX
Binding Components
  File, HTTP, JMS, SMTP, SOAP, TCP
Service Engines
  Apache Camel, Apache CXF, Apache Drools,
   PO...
SMX
ServiceMix 4.0
  JBI Compliant (1.0 e 2.0)
  ServiceMix Kernel
    NMR é serviço OSGi
  Message Broker
    Apache Acti...
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,...
CXF
Transportes
  HTTP, Servlet, JMS, Jabber
Bindings
  SOAP, REST/HTTP
Data Binding
  JAXB 2.0, Aegis, XMLBeans
Formatos
...
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 JBI
    Podem ser instalados em o...
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!
ServiceMix e CXF
Upcoming SlideShare
Loading in …5
×

ServiceMix e CXF

1,856 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,856
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ServiceMix e CXF

  1. 1. Simplificando SOA com Apache CXF e ServiceMix
  2. 2. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  3. 3. SOA não é ESB SOA Metodologia para Integração Negócio sobre (over) TI ESB Tecnologia para Integração TI para Negócio
  4. 4. 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?
  5. 5. O que é um ESB? A resposta está em entender as capacidades e avaliar os requisitos
  6. 6. Enterprise Service Bus Objetivo do seu negócio Requisitos funcionais Escolha de arquitetura Critério para avaliação do ESB
  7. 7. Arquitetura com ESB Aplicação Cliente ESB Serviços ● Java JMS ● EJBs ● CICS Mainframe ● Spring Beans Serviço Serviço Serviço
  8. 8. Arquitetura com ESB Facilidades que o ESB traz Transparência na localização dos serviços Compartilhamento dos serviços Habilidade para separar Business Services Implementation Services
  9. 9. Arquitetura com ESB Business Service WSDL Aplicação Cliente Definition venderTitulo VenderTítulo Business Services Implementation são expostos com ESB Services são um nome específico codificados e definições de através de dados de entrada e Service Providers saída Exemplos ● WebServices ● POJOs Serviço ● EJBs SalvarOperacao (operacaoVenda);
  10. 10. O que precisamos? Message Message Protocol Transformation Enhancement Transformation Routing Service Mapping Enterprise Service Bus Security Message Processing Process Transaction Choreography Management Service Orchestration
  11. 11. Routing Determinar um serviço para atender uma requisição baseado em critérios determinísticos ou variáveis
  12. 12. Message Transformation Converter mensagens de entrada de Business Services para formatos compreendidos pela implementação XML -> COBOL Copybook XML -> XML Object -> XML
  13. 13. Message Transformation Requisição <VenderTitulo> <Papel>CDB</Papel> <Quantidade> 100.00 </Quantidade> </VenderTitulo> COBOL Copybook 01 VENDA 05 VENDA-DADOS 10 PAPEL PIC X(5) 10 QUANTIDADE PIC 9(11)
  14. 14. Message Enhancement Requisição <VenderTitulo> <Papel>CDB</Papel> Adicionar ou modificar <Quantidade> 100.00 dados nas mensagens </Quantidade> </VenderTitulo> Conversão de formatos COBOL Copybook 01 VENDA Dados complementares 05 VENDA-DADOS 10 PAPEL PIC X(5) 10 BANCO PIC 9(11) 10 QUANTIDADE PIC 9(11)
  15. 15. Protocol Transformation Aceitar um protocolo e poder se comunicar com serviços em outros protocolos SOAP -> JMS HTTP -> CICS/MQ MQ -> RMI
  16. 16. Service Mapping Capacidade de mapear Business Services a Implementation Services, com informações de localização e configuração XML Banco de Dados
  17. 17. Message Processing Capacidade de gerenciar estado e requisição aceitando uma entrada e garantindo entrega de resposta ao cliente Pode requerer uso de XA
  18. 18. Message Processing Input Aplicação Cliente XML Input Queue Output Queue ESB Error Queue
  19. 19. 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 BPEL Entende-se como: Use Case Business Process
  20. 20. Process Choreography RegistrarTitulo InserirTitulo DepositarTitulo HistóricoCustódia
  21. 21. Service Orchestration Capacidade de gerenciar a coordenação de Implementation Services Pode usar BPEL Geralmente, implementado através de comunicação interna entre serviços
  22. 22. Transaction Management Capacidade de gerenciar transações envolvendo múltiplos recursos através de múltiplos serviços
  23. 23. Security Capacidade de proteger serviços de requisições não autorizadas Os 4 “A”s: ● Autenticação ● Autorização ● Auditoria ● Administração
  24. 24. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  25. 25. JBI JSR 208 Java Business Integration
  26. 26. 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
  27. 27. JBI Dois tipos de componentes Service Engines (SEs) Binding Components (Bcs) Serviços se comunicam através da NMR Normalized Message Router
  28. 28. JBI Especificação da Arquitetura jbi BC BC BC BC Normalized Message Router SE SE SE
  29. 29. JBI Especificação da Arquitetura Serviços Externos Java Java COBOL Web Swing EJB CICS Service jbi MQ RMI CICS HTTP Normalized Message Router BC XSLT PXE Groovy SE Message Transformation Process Choreography Scripting
  30. 30. 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
  31. 31. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  32. 32. SMX Apache ServiceMix
  33. 33. SMX Open Source Integração com Containers Geronimo, JBoss, JonAS * WAR deployment, Standalone Compatível com JBI 1.0 Configuração via Spring
  34. 34. 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
  35. 35. SMX ServiceMix 4.0 JBI Compliant (1.0 e 2.0) ServiceMix Kernel NMR é serviço OSGi Message Broker Apache ActiveMQ WebServices Apache CXF Routing Engine Apache Camel
  36. 36. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  37. 37. CXF Apache CXF
  38. 38. 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
  39. 39. CXF Transportes HTTP, Servlet, JMS, Jabber Bindings SOAP, REST/HTTP Data Binding JAXB 2.0, Aegis, XMLBeans Formatos XML, JSON
  40. 40. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  41. 41. CXF e SMX Simplificando SOA ...
  42. 42. CXF e SMX Componentes servicemix-cxf-bc servicemix-cxf-se Compatíveis com padrão JBI Podem ser instalados em outros ESBs
  43. 43. CXF e SMX CXF-BC Transporte e comunicação para os WebServices JMS/SOAP HTTP/SOAP
  44. 44. CXF e SMX CXF-SE Expõe POJOs anotados (JSR181) como WebServices Suporte a anexos JAXB2 Data Binding
  45. 45. CXF e SMX Obrigado!

×