SlideShare ist ein Scribd-Unternehmen logo
1 von 46
Downloaden Sie, um offline zu lesen
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ó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




                ESB


                                       Serviços
                                        ● Java JMS

                                        ● EJBs

                                        ● CICS Mainframe

                                        ● Spring Beans
    Serviço   Serviço        Serviço
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
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);
O que precisamos?

      Message                   Message               Protocol
      Transformation            Enhancement           Transformation




Routing                                                      Service
                                                             Mapping
                        Enterprise Service Bus



   Security                                                   Message
                                                              Processing

                                                     Process
          Transaction                                Choreography
          Management                 Service
                                     Orchestration
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 Copybook
            XML    -> XML
            Object -> XML
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)
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)
Protocol Transformation




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


                 SOAP -> JMS
                 HTTP -> CICS/MQ
                 MQ   -> RMI
Service Mapping




 Capacidade de mapear Business Services a
Implementation Services, com informações de
        localização e configuração

                XML
                Banco 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
                           Input
 Aplicação Cliente         XML




                                    Input Queue

Output Queue



                     ESB




                             Error 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

             BPEL
             Entende-se como:
                Use Case
                Business Process
Process Choreography


RegistrarTitulo




                  InserirTitulo   DepositarTitulo   HistóricoCustódia
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
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

        ● Autorização

        ● Auditoria

        ● Administraçã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 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
Especificação da Arquitetura




 jbi
         BC          BC          BC            BC

                   Normalized Message Router

              SE           SE            SE
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
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 Kernel
    NMR é serviço OSGi
  Message Broker
    Apache ActiveMQ
  WebServices
    Apache CXF
  Routing Engine
    Apache 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 JBI
    Podem 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!

Weitere ähnliche Inhalte

Was ist angesagt?

Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMRoger Ritter
 
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluções
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluçõesTDC2012 - Da arquitetura de software à arquitetura funcional e de soluções
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluçõesEric Lemes
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EERodrigo Cândido da Silva
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)mauriciopel
 
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...Sandro Pereira
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Servicessergiocrespo
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaGlobalcode
 
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadas
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadasPós Ruy - 2 e 3 Camadas - Arquitetura em camadas
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadasCleverson Sacramento
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoAndré Borgonovo
 
Lync Server 2010 - Arquitetura
Lync Server 2010 - ArquiteturaLync Server 2010 - Arquitetura
Lync Server 2010 - Arquiteturabrunoestrozi
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0Bruno Borges
 
Integrando Pessoas Ao Negocio Atraves De Um Portal Colaborativo
Integrando Pessoas Ao Negocio Atraves De Um Portal ColaborativoIntegrando Pessoas Ao Negocio Atraves De Um Portal Colaborativo
Integrando Pessoas Ao Negocio Atraves De Um Portal ColaborativoJuliana Soares
 
ESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasBRAVA Tecnologia
 
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010Sandro Pereira
 

Was ist angesagt? (20)

Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPM
 
Introducao EJB 3
Introducao EJB 3Introducao EJB 3
Introducao EJB 3
 
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluções
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluçõesTDC2012 - Da arquitetura de software à arquitetura funcional e de soluções
TDC2012 - Da arquitetura de software à arquitetura funcional e de soluções
 
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EEGUJavaSC - Desenvolvendo uma Aplicação com Java EE
GUJavaSC - Desenvolvendo uma Aplicação com Java EE
 
Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)
 
ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...
Business activity monitoring (bam) nas trocas electrónicas de documentos (edi...
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
SOA e Web Services
SOA e Web ServicesSOA e Web Services
SOA e Web Services
 
Enterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na práticaEnterprise JavaBeans simples e descomplicado, na prática
Enterprise JavaBeans simples e descomplicado, na prática
 
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadas
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadasPós Ruy - 2 e 3 Camadas - Arquitetura em camadas
Pós Ruy - 2 e 3 Camadas - Arquitetura em camadas
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve Introdução
 
Lync Server 2010 - Arquitetura
Lync Server 2010 - ArquiteturaLync Server 2010 - Arquitetura
Lync Server 2010 - Arquitetura
 
As Novidades do JMS 2.0
As Novidades do JMS 2.0As Novidades do JMS 2.0
As Novidades do JMS 2.0
 
Integrando Pessoas Ao Negocio Atraves De Um Portal Colaborativo
Integrando Pessoas Ao Negocio Atraves De Um Portal ColaborativoIntegrando Pessoas Ao Negocio Atraves De Um Portal Colaborativo
Integrando Pessoas Ao Negocio Atraves De Um Portal Colaborativo
 
ESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de Sistemas
 
Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)
 
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010
BizTalk Mapper: Como funcionam os mapas em BizTalk Server 2010
 

Andere mochten auch

Periodico Encontrando Caminos Enero 2010
Periodico Encontrando Caminos Enero 2010Periodico Encontrando Caminos Enero 2010
Periodico Encontrando Caminos Enero 2010EncontrandoCaminos
 
Establecimiento de avisos de enfermedades; nuevas tecnologias
Establecimiento de avisos de enfermedades; nuevas tecnologiasEstablecimiento de avisos de enfermedades; nuevas tecnologias
Establecimiento de avisos de enfermedades; nuevas tecnologiasNEIKER-TECNALIA
 
Apresentação EDI Maria de Lourdes Ferreira
Apresentação EDI Maria de Lourdes FerreiraApresentação EDI Maria de Lourdes Ferreira
Apresentação EDI Maria de Lourdes FerreiraAnaAccioly
 
ley y reglamento seia
ley y reglamento seialey y reglamento seia
ley y reglamento seiaJabiel Her Sa
 
Crecimiento y desarrollo psicomotor preescolar
Crecimiento y desarrollo psicomotor preescolarCrecimiento y desarrollo psicomotor preescolar
Crecimiento y desarrollo psicomotor preescolarMAHINOJOSA45
 
MODELOS COBIT Y ITIL (generalidades)
MODELOS COBIT Y ITIL (generalidades)MODELOS COBIT Y ITIL (generalidades)
MODELOS COBIT Y ITIL (generalidades)Jairo Márquez
 
Systemlösungen für die Bauerneuerung
Systemlösungen für die BauerneuerungSystemlösungen für die Bauerneuerung
Systemlösungen für die BauerneuerungVorname Nachname
 

Andere mochten auch (10)

Virtual Private Networks.Ru
Virtual Private Networks.RuVirtual Private Networks.Ru
Virtual Private Networks.Ru
 
88888888
8888888888888888
88888888
 
Periodico Encontrando Caminos Enero 2010
Periodico Encontrando Caminos Enero 2010Periodico Encontrando Caminos Enero 2010
Periodico Encontrando Caminos Enero 2010
 
Establecimiento de avisos de enfermedades; nuevas tecnologias
Establecimiento de avisos de enfermedades; nuevas tecnologiasEstablecimiento de avisos de enfermedades; nuevas tecnologias
Establecimiento de avisos de enfermedades; nuevas tecnologias
 
Apresentação EDI Maria de Lourdes Ferreira
Apresentação EDI Maria de Lourdes FerreiraApresentação EDI Maria de Lourdes Ferreira
Apresentação EDI Maria de Lourdes Ferreira
 
Conclusiones grupos de trabajo
Conclusiones grupos de trabajoConclusiones grupos de trabajo
Conclusiones grupos de trabajo
 
ley y reglamento seia
ley y reglamento seialey y reglamento seia
ley y reglamento seia
 
Crecimiento y desarrollo psicomotor preescolar
Crecimiento y desarrollo psicomotor preescolarCrecimiento y desarrollo psicomotor preescolar
Crecimiento y desarrollo psicomotor preescolar
 
MODELOS COBIT Y ITIL (generalidades)
MODELOS COBIT Y ITIL (generalidades)MODELOS COBIT Y ITIL (generalidades)
MODELOS COBIT Y ITIL (generalidades)
 
Systemlösungen für die Bauerneuerung
Systemlösungen für die BauerneuerungSystemlösungen für die Bauerneuerung
Systemlösungen für die Bauerneuerung
 

Ähnlich wie Simplificando SOA com Apache CXF e ServiceMix

AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoFernando Botafogo
 
Integração de Sistema com ESB
Integração de Sistema com ESBIntegração de Sistema com ESB
Integração de Sistema com ESBIgo Coelho
 
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitArquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitMarkus Christen
 
Ibolt e Procnet
Ibolt e ProcnetIbolt e Procnet
Ibolt e ProcnetProcnet
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soaLeonardo Eloy
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfMicrosoft Brasil
 
Microservices, soa e o melhor das filas
Microservices, soa e o melhor das filasMicroservices, soa e o melhor das filas
Microservices, soa e o melhor das filasDiego Pacheco
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicosLeonardo Eloy
 
Soa Bpm Eup
Soa Bpm EupSoa Bpm Eup
Soa Bpm Euplcbj
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesMarkus Christen
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoLuiz Matos
 

Ähnlich wie Simplificando SOA com Apache CXF e ServiceMix (20)

AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo Azevedo
 
Mac5700
Mac5700Mac5700
Mac5700
 
Integração de Sistema com ESB
Integração de Sistema com ESBIntegração de Sistema com ESB
Integração de Sistema com ESB
 
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB ToolkitArquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
Arquitetura de um barramento de Serviços com BizTalk Server – ESB Toolkit
 
Ibolt e Procnet
Ibolt e ProcnetIbolt e Procnet
Ibolt e Procnet
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
WCF
WCFWCF
WCF
 
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdfAAB308 - Cloud Computing Windows Azure - wcamb.pdf
AAB308 - Cloud Computing Windows Azure - wcamb.pdf
 
Resumo SCEA
Resumo SCEAResumo SCEA
Resumo SCEA
 
SOA - Fatos e Mitos
SOA - Fatos e MitosSOA - Fatos e Mitos
SOA - Fatos e Mitos
 
Microservices, soa e o melhor das filas
Microservices, soa e o melhor das filasMicroservices, soa e o melhor das filas
Microservices, soa e o melhor das filas
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
Soa Bpm Eup
Soa Bpm EupSoa Bpm Eup
Soa Bpm Eup
 
ASP.NET - Web Services
ASP.NET - Web ServicesASP.NET - Web Services
ASP.NET - Web Services
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicações
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de caso
 
Conceitos de SOA
Conceitos de SOAConceitos de SOA
Conceitos de SOA
 

Mehr von Bruno Borges

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesBruno Borges
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on KubernetesBruno Borges
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsBruno Borges
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless ComputingBruno Borges
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersBruno Borges
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudBruno Borges
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...Bruno Borges
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Bruno Borges
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Bruno Borges
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Bruno Borges
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Bruno Borges
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Bruno Borges
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Bruno Borges
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudBruno Borges
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXBruno Borges
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsBruno Borges
 

Mehr von Bruno Borges (20)

Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on KubernetesSecrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
 
[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes[Outdated] Secrets of Performance Tuning Java on Kubernetes
[Outdated] Secrets of Performance Tuning Java on Kubernetes
 
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX AppsFrom GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
From GitHub Source to GitHub Release: Free CICD Pipelines For JavaFX Apps
 
Making Sense of Serverless Computing
Making Sense of Serverless ComputingMaking Sense of Serverless Computing
Making Sense of Serverless Computing
 
Visual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring DevelopersVisual Studio Code for Java and Spring Developers
Visual Studio Code for Java and Spring Developers
 
Taking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure CloudTaking Spring Apps for a Spin on Microsoft Azure Cloud
Taking Spring Apps for a Spin on Microsoft Azure Cloud
 
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
A Look Back at Enterprise Integration Patterns and Their Use into Today's Ser...
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?Servidores de Aplicação: Por quê ainda precisamos deles?
Servidores de Aplicação: Por quê ainda precisamos deles?
 
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
Build and Monitor Cloud PaaS with JVM’s Nashorn JavaScripts [CON1859]
 
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
Cloud Services for Developers: What’s Inside Oracle Cloud for You? [CON1861]
 
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
Booting Up Spring Apps on Lightweight Cloud Services [CON10258]
 
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
Java EE Application Servers: Containerized or Multitenant? Both! [CON7506]
 
Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]Running Oracle WebLogic on Docker Containers [BOF7537]
Running Oracle WebLogic on Docker Containers [BOF7537]
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFXTweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
Tweet for Beer - Beertap Powered by Java Goes IoT, Cloud, and JavaFX
 
Integrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSocketsIntegrando Oracle BPM com Java EE e WebSockets
Integrando Oracle BPM com Java EE e WebSockets
 

Simplificando SOA com Apache CXF e ServiceMix

  • 1. Simplificando SOA com Apache CXF e ServiceMix
  • 2. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  • 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. 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. O que é um ESB? A resposta está em entender as capacidades e avaliar os requisitos
  • 6. Enterprise Service Bus Objetivo do seu negócio Requisitos funcionais Escolha de arquitetura Critério para avaliação do ESB
  • 7. Arquitetura com ESB Aplicação Cliente ESB Serviços ● Java JMS ● EJBs ● CICS Mainframe ● Spring Beans Serviço Serviço Serviço
  • 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. 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. 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. Routing Determinar um serviço para atender uma requisição baseado em critérios determinísticos ou variáveis
  • 12. Message Transformation Converter mensagens de entrada de Business Services para formatos compreendidos pela implementação XML -> COBOL Copybook XML -> XML Object -> XML
  • 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. 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. Protocol Transformation Aceitar um protocolo e poder se comunicar com serviços em outros protocolos SOAP -> JMS HTTP -> CICS/MQ MQ -> RMI
  • 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. 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. Message Processing Input Aplicação Cliente XML Input Queue Output Queue ESB Error Queue
  • 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. Process Choreography RegistrarTitulo InserirTitulo DepositarTitulo HistóricoCustódia
  • 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. Transaction Management Capacidade de gerenciar transações envolvendo múltiplos recursos através de múltiplos serviços
  • 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. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  • 25. JBI JSR 208 Java Business Integration
  • 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. JBI Dois tipos de componentes Service Engines (SEs) Binding Components (Bcs) Serviços se comunicam através da NMR Normalized Message Router
  • 28. JBI Especificação da Arquitetura jbi BC BC BC BC Normalized Message Router SE SE SE
  • 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. 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. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  • 33.
  • 34. SMX Open Source Integração com Containers Geronimo, JBoss, JonAS * WAR deployment, Standalone Compatível com JBI 1.0 Configuração via Spring
  • 35. 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
  • 36. 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
  • 37. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  • 39. 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
  • 40. CXF Transportes HTTP, Servlet, JMS, Jabber Bindings SOAP, REST/HTTP Data Binding JAXB 2.0, Aegis, XMLBeans Formatos XML, JSON
  • 41. Agenda SOA não é ESB JSR 208: Especificação JBI Apache ServiceMix (SMX) Apache CXF Integração entre SMX e CXF
  • 43. CXF e SMX Componentes servicemix-cxf-bc servicemix-cxf-se Compatíveis com padrão JBI Podem ser instalados em outros ESBs
  • 44. CXF e SMX CXF-BC Transporte e comunicação para os WebServices JMS/SOAP HTTP/SOAP
  • 45. CXF e SMX CXF-SE Expõe POJOs anotados (JSR181) como WebServices Suporte a anexos JAXB2 Data Binding
  • 46. CXF e SMX Obrigado!