SlideShare ist ein Scribd-Unternehmen logo
1 von 29
JBOSS-ESB
                                                   Robison G. Tesini
                                                         21/09/2010
                                           d




Fábrica de Software
Sistemas e aplicações sob medida para as
necessidades do seu negócio.                   www.dextra.com.br
Overview
 O que é ESB?
      ●   Componentes Core de um ESB
      ●   O JBoss ESB
      ●   ESB & SOA
      ●   Por que utilizá-los?

 JBoss ESB
      ●   Serviços e Mensagens
      ●   Estrutura de um arquivo ESB
      ●   Pipeline de Actions
      ●   Transformação de Mensagem
      ●   Registry
O que é ESB?
  Enterprise Service Bus
       ●   Evolução de softwares chamados de EAI
       ●   Enterprise Application Integrator


      ESBs possuem as mesmas características dos EAIs sem
        ser “vendor locked”.
O que é ESB?
  Enterprise Service Bus
       ●   Software que atua como Barramento
       ●   Padrões abertos de comunicação
            •   Mensagem
            •   Web Services
            •   Até mesmo File System e FTP/SFTP


                     A                  B

                         Web Service        JMS
                                ESB
Componentes Core de um
ESB
 Invocação: Prover suporte à protocolos de transporte
 Roteamento: Rotear mensagens entre serviços (inclusive
    baseado no conteúdo da mensagem – JBoss Rules)
 Transformação:     Transformação entre protocolos       e
    formatos de dados e mensagens (Smooks)
 Registro:    Ponto   central    onde   são   armazenadas
    informações sobre serviços
 Orquestração: Relacionado à descrição de processos
    complexos com BPEL      (Business   Process   Execution
    Language – JBPM)
ESB & SOA


 SOA
  ●   Definição:


      É uma abordagem arquitetural que permite a criação de
      serviços de negócio interoperáveis que podem facilmente
      ser reutilizados e compartilhados entre aplicações e
      empresas.
ESB & SOA


 O que SOA não é :
  ●   Uma Tecnologia
  ●   Um produto ou plataforma
  ●   WebService
  ●   Uma revolução
Por que utilizá-los?


  Mundo das conexões “Ponto-a-Ponto”
Por que utilizá-los?


  Difícil entendimento, manutenção e evolução
Cenários de utilização




          Arquivo                     Arquivo
            MQ                          MQ
         WebService   JBoss ESB      WebService
            etc.                        etc.

                           Transformação

   Sistema A                                 Sistema B
O JBoss ESB
  Iniciando o uso
  Pré-requisitos
  ●   JDK 5 (v1.5.0_06 recommended)
  ●   Ant (v1.6.5 recommended)


  Instalação
  Para instalar no JBoss AS :
  ●   No arquivo deployment.properties, colocar
      org.jboss.esb.server.home=/PATH/jboss-5.1.0.GA
      ant deploy
Serviços e Mensagens
  Tudo no JBoss ESB é considerado Serviço ou
     Mensagem.
  Serviço:

      Encapsula lógica de negócio ou um ponto de integração
        entre sistemas.

  Mensagem:

      Representa como clientes e serviços se comunicam, ou
        seja, em um ESB toda integração é feita por troca de
        Mensagens.
Estrutura de um Arquivo ESB
  Durante a instalação do JBoss ESB, será colocado no
     deploy do JBoss AS softwares que farão a
     interpretação de arquivos com extensão “.esb”.
  Estrutura de um arquivo “.esb”:
         META-INF/
             jboss-esb.xml
             deployment.xml
             <java classes>
             <jars>
             <queue-service.xml>
Estrutura de um Arquivo ESB
  Explicando os arquivos e pacotes:
     jboss-esb.xml
     Contém as configuração de serviços, “Listeners” e “Actions” do
       ESB.
     deployment.xml
     É opcional. Declarar as dependências do ESB.
     <java classes>
     Classes isoladas necessárias no seu ESB.
     <jars>
     Pacotes de classes que seu ESB depende
     <queue-service.xml>
     Se seu ESB depende de filas ou tópicos, elas devem estar
       declaradas neste arquivo.
Estrutura de um Arquivo ESB
  Primeiro exemplo: “helloworld”
  (exemplos em jbossesb-<versão>/samples/quickstart)
     Providers
         <providers>
          <jms-provider name="JBossMQ" connection-factory="ConnectionFac
           tory">
           <jms-bus busid="quickstartGwChannel">
            <jms-message-filter dest-type="QUEUE"
                 dest-name="queue/quickstart_helloworld_Request_gw"
            />
           </jms-bus>
           <jms-bus busid="quickstartEsbChannel">
            <jms-message-filter dest-type="QUEUE"
                 dest-name="queue/quickstart_helloworld_Request_esb"
            />
           </jms-bus>
          </jms-provider>
         </providers>
Estrutura de um Arquivo ESB
     Services
        <service

          category="FirstServiceESB"

          name="SimpleListener"

          description="Hello World">

         [ Listeners ]

         [ Actions ]

        </service>


     category e name são utilizados para registrar o ESB (a
       combinação dos dois é como o nome JNDI do seu ESB).
Estrutura de um Arquivo ESB
     Listeners
        <listeners>
           <jms-listener name="JMS-Gateway"
              busidref="quickstartGwChannel"
              is-gateway="true"
           />
           <jms-listener name="helloWorld"
              busidref="quickstartEsbChannel"
           />
        </listeners>


     busidref corresponde ao “busid” do provider
     is-gateway faz com que o listener seja um “gateway”, ponto
     de entrada para seu ESB.
Estrutura de um Arquivo ESB
    Gateway Listener: Este tipo de listener configura um “Gateway” para
    seu ESB. É capaz de receber uma mensagem qualquer, empacotá-la
    como uma mensagem ESB e colocá-la em seu barramento para ser
    processada.
    Funcionalidades:
         ●   Pode obter arquivos do disco
         ●   Conectar com JMS
         ●   Fazer FTP
         ●   Ser webservice

    ESB Aware Listener: Este listener é chamado de “ESB Aware”. É
    capaz de receber mensagens do tipo ESB e devem ser utilizados para
    troca de mensagem no barramento.
Estrutura de um Arquivo ESB
     Actions
        <actions mep="OneWay">
         <action name="action1" class="MyJMSListenerAction"
          process="displayMessage" />
         [Quantas actions forem necessárias para sua troca de
          mensagens]
        </actions>
     class: nome da classe Java que processará a mensagem
     process: nome do método da classe
     public class MyJMSListenerAction {
      public Message displayMessage(Message message)
        throws Exception {
       System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
       System.out.println("Body: "+message.getBody().get());
       System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
       return message;}
     }
Pipeline de Actions
Em um ESB você pode colocar quantas actions forem
  necessáriaspara que uma mensagem saia de um sistema A e
  chegue no formato correto em um sistema B. O pipeline é feito
  declarando-se as actions de maneira sequencial no jboss-
  esb.xml




                       Transformação
                         Checagem
 Sistema A              Roteamento                 Sistema B
Pipeline de Actions

Um exemplo simples:
<actions mep="OneWay">

 <action name="action1"
    class="org.jboss.soa.esb.actions.SystemPrintln">
  <property name="printfull" value="false"/>
 </action>
 <action name="action2"
    class="org.jboss.soa.esb.samples.quickstart.helloworl
d.MyJMSListenerAction"
    process="transform" />
 <action name="action3"
    class="org.jboss.soa.esb.actions.SystemPrintln">
  <property name="printfull" value="false"/>
 </action>
</actions>
No exemplo acima, o pipeline possui 3 actions, a primeira
   imprime a mensagem na tela, a segunda transforma e a
   terceira volta a imprimir a mensagem no formato novo.
Mensagem

Uma mensagem ESB tem um formato
 semelhante à mensagens do tipo SOAP
   <xs:complexType name="Envelope">
    <xs:attribute ref="Header" use="required"/>
    <xs:attribute ref="Context" use="required"/>
    <xs:attribute ref="Body" use="required"/>
    <xs:attribute ref="Attachment" use="optional"/>
    <xs:attribute ref="Properties" use="optional"/>
    <xs:attribute ref="Fault" use="optional"/>
   </xs:complexType>

   public interface Message{
    public Header getHeader ();
    public Context getContext ();
    public Body getBody ();
    public Fault getFault ();
    public Attachment getAttachment ();
    public URI getType ();
    public Properties getProperties ();}
Transformação de Mensagens

Smooks
   ●   Transformação de mensagens utilizando-se do projeto
         Smooks (www.smooks.org)
   ●   Transformação é feita de forma declarativa com auxílio
         de um arquivo de configuração
   ●   Basta declarar uma “action” do tipo
         org.jboss.soa.esb.smooks.SmooksAction


       <action name="simple-transform"
         class="org.jboss.soa.esb.smooks.SmooksAction">
       <property name="smooksConfig" value="/smooks-res.xml" />
       </action>
Transformação de Mensagens

      Action: Pode-se também fazer uma “action” específica para
        transformação de mensagem em casos em que o smooks não atende
        a transformação. Isso deve ser feito de maneira programática na
        action.
         public Message transform(Message message) throws Exception
           {
             String m = message.getBody().get().toString();
             String arr[] = m.split(";");
             Document doc =
               DocumentFactory.getInstance().createDocument();
             Element root = doc.addElement("teste-xml");
             Element elem = root.addElement("elem0");
CSV          elem.addText(arr[0]);
XML          elem = root.addElement("elem1");
             elem.addText(arr[1]);
             m = doc.asXML();
             Message esbMessage =
               MessageFactory.getInstance().getMessage();
             esbMessage.getBody().add(m);
             return esbMessage;
         }
Registry

O que é?
 ●   É um das principais funções de um ESB
 ●   É análogo ao serviço de JNDI para os SessionBeans



                            Registry


           Publish                              Find




             Provider                        Requester
                                Bind
Registry

UDDI (originado do acrônimo inglês Universal Description,
  Discovery and Integration) é um protocolo aprovado
  como padrão pela OASIS(Organization for the
  Advancement of Structured Information Standards) e
  especifica um método para publicar e descobrir
  diretórios de serviços em uma arquitetura orientada a
  serviços (SOA).
(http://pt.wikipedia.org/wiki/UDDI)
Registry

Configurando
No arquivo deployers/esb.deployer/jbossesb-
  properties.xml
Registry

Invocação por um client (exemplo)
Message esbMessage =
  MessageFactory.getInstance().getMessage();
esbMessage.getBody().add(“Hello World !!”);
new ServiceInvoker("FirstServiceESB", "SimpleListener"
  ).deliverAsync(esbMessage);


Note que toda complexidade de localização do
  serviço  e   transporte    da   mensagem está
  encapsulada na classe do JBoss ESB.
Dúvidas ?




            www.dextra.com.br
             contato@dextra-sw.com
                (11) 2824-6722
                (19) 3256-6722

Weitere ähnliche Inhalte

Was ist angesagt?

Lync Server 2010 instalação configuração upgrade e coexistência
Lync Server 2010 instalação configuração upgrade e coexistênciaLync Server 2010 instalação configuração upgrade e coexistência
Lync Server 2010 instalação configuração upgrade e coexistênciabrunoestrozi
 
Lync Server 2010 - Instalação e Implementação
Lync Server 2010 - Instalação e ImplementaçãoLync Server 2010 - Instalação e Implementação
Lync Server 2010 - Instalação e Implementaçãobrunoestrozi
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
Lync Server 2010 administrando o Lync Server 2010
Lync Server 2010 administrando o Lync Server 2010Lync Server 2010 administrando o Lync Server 2010
Lync Server 2010 administrando o Lync Server 2010brunoestrozi
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - AvançadoAdriano Schmidt
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - BackupCaio Lima
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Eduardo Mendes
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre muleJeison Barros
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Helder da Rocha
 

Was ist angesagt? (20)

Rest introdução
Rest introduçãoRest introdução
Rest introdução
 
Curso de JSP
Curso de JSPCurso de JSP
Curso de JSP
 
JBoss5 @ FISL
JBoss5 @ FISLJBoss5 @ FISL
JBoss5 @ FISL
 
Servlets e JSP
Servlets e JSPServlets e JSP
Servlets e JSP
 
Lync Server 2010 instalação configuração upgrade e coexistência
Lync Server 2010 instalação configuração upgrade e coexistênciaLync Server 2010 instalação configuração upgrade e coexistência
Lync Server 2010 instalação configuração upgrade e coexistência
 
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
 
Lync Server 2010 - Instalação e Implementação
Lync Server 2010 - Instalação e ImplementaçãoLync Server 2010 - Instalação e Implementação
Lync Server 2010 - Instalação e Implementação
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
Flisolgo2010
Flisolgo2010Flisolgo2010
Flisolgo2010
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
Lync Server 2010 administrando o Lync Server 2010
Lync Server 2010 administrando o Lync Server 2010Lync Server 2010 administrando o Lync Server 2010
Lync Server 2010 administrando o Lync Server 2010
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - Backup
 
Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1Java Web 3 - Servlets e JSP 1
Java Web 3 - Servlets e JSP 1
 
Principais duvidas sobre mule
Principais duvidas sobre mulePrincipais duvidas sobre mule
Principais duvidas sobre mule
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7Minicurso de Segurança em Java EE 7
Minicurso de Segurança em Java EE 7
 
Palestra
PalestraPalestra
Palestra
 

Andere mochten auch

4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)Edgar Silva
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFRafael T. C. Soares (tuelho)
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open SourceEdgar Silva
 
OpenShift : TaSafoConf 2012
OpenShift : TaSafoConf 2012OpenShift : TaSafoConf 2012
OpenShift : TaSafoConf 2012Edgar Silva
 
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva Edgar Silva
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1Edgar Silva
 
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOS
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOSA PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOS
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOSRaul Leite
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Leandro Gomes
 
Aeolus - Solução para Cloud Red Hat
Aeolus - Solução para Cloud Red HatAeolus - Solução para Cloud Red Hat
Aeolus - Solução para Cloud Red HatEdgar Silva
 
WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview Edgar Silva
 
Enterprise service bus(esb)
Enterprise service bus(esb)Enterprise service bus(esb)
Enterprise service bus(esb)prksh89
 

Andere mochten auch (14)

4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)4 Forum SOA - Edgar Silva (Red Hat)
4 Forum SOA - Edgar Silva (Red Hat)
 
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXFIntrodução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
Introdução ao JBoss Fuse 6.x: criação e implantação de um serviço CXF
 
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
OpenShift: NoSQL  "a la carte"  num PaaS 100% Open SourceOpenShift: NoSQL  "a la carte"  num PaaS 100% Open Source
OpenShift: NoSQL "a la carte" num PaaS 100% Open Source
 
OpenShift : TaSafoConf 2012
OpenShift : TaSafoConf 2012OpenShift : TaSafoConf 2012
OpenShift : TaSafoConf 2012
 
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
KVM, Aeolus, DeltaCloud, Openshift e JBoss - Edgar Silva
 
SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1SOA Workshop - JBoss ESB v1.1
SOA Workshop - JBoss ESB v1.1
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOS
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOSA PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOS
A PRINCIPAL PLATAFORMA ABERTA, FAÇA MAIS COM MENOS
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!Integrações e o ecossistema Java - Fabric8 ao Resgate!
Integrações e o ecossistema Java - Fabric8 ao Resgate!
 
Aeolus - Solução para Cloud Red Hat
Aeolus - Solução para Cloud Red HatAeolus - Solução para Cloud Red Hat
Aeolus - Solução para Cloud Red Hat
 
WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview WSO2 API Manager 2.0 - Overview
WSO2 API Manager 2.0 - Overview
 
Enterprise service bus(esb)
Enterprise service bus(esb)Enterprise service bus(esb)
Enterprise service bus(esb)
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
 

Ähnlich wie Maratona JBoss 2010 - JBoss-ESB

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
 
Integração de Sistema com ESB
Integração de Sistema com ESBIntegração de Sistema com ESB
Integração de Sistema com ESBIgo Coelho
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Jeison Barros
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev IntroduçãoMarcio Marinho
 
Gerenciando e implantando suas aplicações na Nuvem da AWS
Gerenciando e implantando suas aplicações na Nuvem da AWSGerenciando e implantando suas aplicações na Nuvem da AWS
Gerenciando e implantando suas aplicações na Nuvem da AWSAmazon Web Services LATAM
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBAdriano Teixeira de Souza
 
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
 

Ähnlich wie Maratona JBoss 2010 - JBoss-ESB (20)

ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)ApresentaçãO Ejb (Enterprise Java Beans)
ApresentaçãO Ejb (Enterprise Java Beans)
 
Integração de Sistema com ESB
Integração de Sistema com ESBIntegração de Sistema com ESB
Integração de Sistema com ESB
 
O Elefante e a Mula
O Elefante e a MulaO Elefante e a Mula
O Elefante e a Mula
 
Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1Mule esb com framework cucumber part 1
Mule esb com framework cucumber part 1
 
EJB
EJBEJB
EJB
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
Apache e Java
Apache e JavaApache e Java
Apache e Java
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
Java Web Dev Introdução
Java Web Dev IntroduçãoJava Web Dev Introdução
Java Web Dev Introdução
 
Gerenciando e implantando suas aplicações na Nuvem da AWS
Gerenciando e implantando suas aplicações na Nuvem da AWSGerenciando e implantando suas aplicações na Nuvem da AWS
Gerenciando e implantando suas aplicações na Nuvem da AWS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
ESB - detalhes
ESB - detalhesESB - detalhes
ESB - detalhes
 
Apache Struts
Apache StrutsApache Struts
Apache Struts
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Sistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJBSistemas Distribuídos - Comunicação Distribuída - EJB
Sistemas Distribuídos - Comunicação Distribuída - EJB
 
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
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
GUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EEGUJavaSC - Mini-curso Java EE
GUJavaSC - Mini-curso Java EE
 

Mehr von Dextra

Digital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDigital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDextra
 
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra
 
Digital Acceleration
Digital AccelerationDigital Acceleration
Digital AccelerationDextra
 
Innovator's dilemma
Innovator's dilemma Innovator's dilemma
Innovator's dilemma Dextra
 
Design Thinking | Course Material
Design Thinking | Course MaterialDesign Thinking | Course Material
Design Thinking | Course MaterialDextra
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra
 
Classificação de documentos
Classificação de documentosClassificação de documentos
Classificação de documentosDextra
 
Recomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutRecomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutDextra
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedzDextra
 
IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.Dextra
 
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonIT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonDextra
 
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaIT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaDextra
 
Desenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDesenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDextra
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...Dextra
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...Dextra
 
IT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresIT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresDextra
 
It for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIIt for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIDextra
 
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoMobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoDextra
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinDextra
 

Mehr von Dextra (20)

Digital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDigital Acceleration por Bill Coutinho
Digital Acceleration por Bill Coutinho
 
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
 
Digital Acceleration
Digital AccelerationDigital Acceleration
Digital Acceleration
 
Innovator's dilemma
Innovator's dilemma Innovator's dilemma
Innovator's dilemma
 
Design Thinking | Course Material
Design Thinking | Course MaterialDesign Thinking | Course Material
Design Thinking | Course Material
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoring
 
Classificação de documentos
Classificação de documentosClassificação de documentos
Classificação de documentos
 
Recomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutRecomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahout
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 
IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.
 
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonIT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
 
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaIT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
 
Desenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDesenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do Google
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
IT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresIT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em Valores
 
It for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIIt for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TI
 
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoMobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto Marin
 

Maratona JBoss 2010 - JBoss-ESB

  • 1. JBOSS-ESB Robison G. Tesini 21/09/2010 d Fábrica de Software Sistemas e aplicações sob medida para as necessidades do seu negócio. www.dextra.com.br
  • 2. Overview O que é ESB? ● Componentes Core de um ESB ● O JBoss ESB ● ESB & SOA ● Por que utilizá-los? JBoss ESB ● Serviços e Mensagens ● Estrutura de um arquivo ESB ● Pipeline de Actions ● Transformação de Mensagem ● Registry
  • 3. O que é ESB? Enterprise Service Bus ● Evolução de softwares chamados de EAI ● Enterprise Application Integrator ESBs possuem as mesmas características dos EAIs sem ser “vendor locked”.
  • 4. O que é ESB? Enterprise Service Bus ● Software que atua como Barramento ● Padrões abertos de comunicação • Mensagem • Web Services • Até mesmo File System e FTP/SFTP A B Web Service JMS ESB
  • 5. Componentes Core de um ESB Invocação: Prover suporte à protocolos de transporte Roteamento: Rotear mensagens entre serviços (inclusive baseado no conteúdo da mensagem – JBoss Rules) Transformação: Transformação entre protocolos e formatos de dados e mensagens (Smooks) Registro: Ponto central onde são armazenadas informações sobre serviços Orquestração: Relacionado à descrição de processos complexos com BPEL (Business Process Execution Language – JBPM)
  • 6. ESB & SOA SOA ● Definição: É uma abordagem arquitetural que permite a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.
  • 7. ESB & SOA O que SOA não é : ● Uma Tecnologia ● Um produto ou plataforma ● WebService ● Uma revolução
  • 8. Por que utilizá-los? Mundo das conexões “Ponto-a-Ponto”
  • 9. Por que utilizá-los? Difícil entendimento, manutenção e evolução
  • 10. Cenários de utilização Arquivo Arquivo MQ MQ WebService JBoss ESB WebService etc. etc. Transformação Sistema A Sistema B
  • 11. O JBoss ESB Iniciando o uso Pré-requisitos ● JDK 5 (v1.5.0_06 recommended) ● Ant (v1.6.5 recommended) Instalação Para instalar no JBoss AS : ● No arquivo deployment.properties, colocar org.jboss.esb.server.home=/PATH/jboss-5.1.0.GA ant deploy
  • 12. Serviços e Mensagens Tudo no JBoss ESB é considerado Serviço ou Mensagem. Serviço: Encapsula lógica de negócio ou um ponto de integração entre sistemas. Mensagem: Representa como clientes e serviços se comunicam, ou seja, em um ESB toda integração é feita por troca de Mensagens.
  • 13. Estrutura de um Arquivo ESB Durante a instalação do JBoss ESB, será colocado no deploy do JBoss AS softwares que farão a interpretação de arquivos com extensão “.esb”. Estrutura de um arquivo “.esb”: META-INF/ jboss-esb.xml deployment.xml <java classes> <jars> <queue-service.xml>
  • 14. Estrutura de um Arquivo ESB Explicando os arquivos e pacotes: jboss-esb.xml Contém as configuração de serviços, “Listeners” e “Actions” do ESB. deployment.xml É opcional. Declarar as dependências do ESB. <java classes> Classes isoladas necessárias no seu ESB. <jars> Pacotes de classes que seu ESB depende <queue-service.xml> Se seu ESB depende de filas ou tópicos, elas devem estar declaradas neste arquivo.
  • 15. Estrutura de um Arquivo ESB Primeiro exemplo: “helloworld” (exemplos em jbossesb-<versão>/samples/quickstart) Providers <providers> <jms-provider name="JBossMQ" connection-factory="ConnectionFac tory"> <jms-bus busid="quickstartGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_helloworld_Request_gw" /> </jms-bus> <jms-bus busid="quickstartEsbChannel"> <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_helloworld_Request_esb" /> </jms-bus> </jms-provider> </providers>
  • 16. Estrutura de um Arquivo ESB Services <service category="FirstServiceESB" name="SimpleListener" description="Hello World"> [ Listeners ] [ Actions ] </service> category e name são utilizados para registrar o ESB (a combinação dos dois é como o nome JNDI do seu ESB).
  • 17. Estrutura de um Arquivo ESB Listeners <listeners> <jms-listener name="JMS-Gateway" busidref="quickstartGwChannel" is-gateway="true" /> <jms-listener name="helloWorld" busidref="quickstartEsbChannel" /> </listeners> busidref corresponde ao “busid” do provider is-gateway faz com que o listener seja um “gateway”, ponto de entrada para seu ESB.
  • 18. Estrutura de um Arquivo ESB Gateway Listener: Este tipo de listener configura um “Gateway” para seu ESB. É capaz de receber uma mensagem qualquer, empacotá-la como uma mensagem ESB e colocá-la em seu barramento para ser processada. Funcionalidades: ● Pode obter arquivos do disco ● Conectar com JMS ● Fazer FTP ● Ser webservice ESB Aware Listener: Este listener é chamado de “ESB Aware”. É capaz de receber mensagens do tipo ESB e devem ser utilizados para troca de mensagem no barramento.
  • 19. Estrutura de um Arquivo ESB Actions <actions mep="OneWay"> <action name="action1" class="MyJMSListenerAction" process="displayMessage" /> [Quantas actions forem necessárias para sua troca de mensagens] </actions> class: nome da classe Java que processará a mensagem process: nome do método da classe public class MyJMSListenerAction { public Message displayMessage(Message message) throws Exception { System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&"); System.out.println("Body: "+message.getBody().get()); System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&"); return message;} }
  • 20. Pipeline de Actions Em um ESB você pode colocar quantas actions forem necessáriaspara que uma mensagem saia de um sistema A e chegue no formato correto em um sistema B. O pipeline é feito declarando-se as actions de maneira sequencial no jboss- esb.xml Transformação Checagem Sistema A Roteamento Sistema B
  • 21. Pipeline de Actions Um exemplo simples: <actions mep="OneWay"> <action name="action1" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="false"/> </action> <action name="action2" class="org.jboss.soa.esb.samples.quickstart.helloworl d.MyJMSListenerAction" process="transform" /> <action name="action3" class="org.jboss.soa.esb.actions.SystemPrintln"> <property name="printfull" value="false"/> </action> </actions> No exemplo acima, o pipeline possui 3 actions, a primeira imprime a mensagem na tela, a segunda transforma e a terceira volta a imprimir a mensagem no formato novo.
  • 22. Mensagem Uma mensagem ESB tem um formato semelhante à mensagens do tipo SOAP <xs:complexType name="Envelope"> <xs:attribute ref="Header" use="required"/> <xs:attribute ref="Context" use="required"/> <xs:attribute ref="Body" use="required"/> <xs:attribute ref="Attachment" use="optional"/> <xs:attribute ref="Properties" use="optional"/> <xs:attribute ref="Fault" use="optional"/> </xs:complexType> public interface Message{ public Header getHeader (); public Context getContext (); public Body getBody (); public Fault getFault (); public Attachment getAttachment (); public URI getType (); public Properties getProperties ();}
  • 23. Transformação de Mensagens Smooks ● Transformação de mensagens utilizando-se do projeto Smooks (www.smooks.org) ● Transformação é feita de forma declarativa com auxílio de um arquivo de configuração ● Basta declarar uma “action” do tipo org.jboss.soa.esb.smooks.SmooksAction <action name="simple-transform" class="org.jboss.soa.esb.smooks.SmooksAction"> <property name="smooksConfig" value="/smooks-res.xml" /> </action>
  • 24. Transformação de Mensagens Action: Pode-se também fazer uma “action” específica para transformação de mensagem em casos em que o smooks não atende a transformação. Isso deve ser feito de maneira programática na action. public Message transform(Message message) throws Exception { String m = message.getBody().get().toString(); String arr[] = m.split(";"); Document doc = DocumentFactory.getInstance().createDocument(); Element root = doc.addElement("teste-xml"); Element elem = root.addElement("elem0"); CSV elem.addText(arr[0]); XML elem = root.addElement("elem1"); elem.addText(arr[1]); m = doc.asXML(); Message esbMessage = MessageFactory.getInstance().getMessage(); esbMessage.getBody().add(m); return esbMessage; }
  • 25. Registry O que é? ● É um das principais funções de um ESB ● É análogo ao serviço de JNDI para os SessionBeans Registry Publish Find Provider Requester Bind
  • 26. Registry UDDI (originado do acrônimo inglês Universal Description, Discovery and Integration) é um protocolo aprovado como padrão pela OASIS(Organization for the Advancement of Structured Information Standards) e especifica um método para publicar e descobrir diretórios de serviços em uma arquitetura orientada a serviços (SOA). (http://pt.wikipedia.org/wiki/UDDI)
  • 28. Registry Invocação por um client (exemplo) Message esbMessage = MessageFactory.getInstance().getMessage(); esbMessage.getBody().add(“Hello World !!”); new ServiceInvoker("FirstServiceESB", "SimpleListener" ).deliverAsync(esbMessage); Note que toda complexidade de localização do serviço e transporte da mensagem está encapsulada na classe do JBoss ESB.
  • 29. Dúvidas ? www.dextra.com.br contato@dextra-sw.com (11) 2824-6722 (19) 3256-6722