SlideShare uma empresa Scribd logo
1 de 41
WebServices com JBossWS
                                           Alexandre A. L. Costa
                                                     24/09/2010

                                      d




Fábrica de Software
Sistemas e aplicações sob medida para as
necessidades do seu negócio.
Agenda

   Contextualização:
         O modelo SOA
         WebServices
         JBossWS - Conceitos
         JBossWS - Arquitetura
   Utilizando JBossWS:
         Publicando WebServices
         Criando Clientes
         Utilizando Handlers
         Acrescentando Segurança
O modelo SOA

   A SOA (Service Oriented Archtecture) é um modelo de
     arquitetura/design de aplicações.
   A SOA é voltada para as regras/processos de negócio.
   O design é definido de forma semântica/lógica
   Na SOA o sistema é dividido em processos/operações
     de objetivos bem definidos.
O modelo SOA

   Como um modelo semântico, a SOA é independente de
     plataforma tecnológica.
   Os processos são criados com objetivos e contratos bem
     definidos.
   Não é importante como as operações serão executadas
     desde que atendam ao contrato definido.
   Devido aos contratos, os serviços podem ser implementados
     em diferentes plataformas tecnológicas sem prejuízo à
     semantica do sistema.
O modelo SOA

   Devido ao seu foco semântico e independência de
     plataforma tecnológica a SOA é uma opção ideal para:
         Modelagem de sistemas orientados processo.
         Integração entre sistemas em diferentes plataformas.
         Projeto de sistemas heterogênios e de grande porte.
WebServices

   SOA é um conceito, com várias implementações possíveis.
   A tecnologia WebServices tem características que a
     qualificam como uma possível implementação de SOA.
   Características da SOA nos WebServices:
         Contrato semântico bem definido, em linguagem
           neutra (através do WSDL)
         Parâmetros definidos em uma linguagem neutra e
           multi-plataforma (arquivos texto estruturados –
           XML)
         Localização de serviços independente de plataforma.
WebServices

  Visão Conceitual



                     Catálogo


           Busca                 Publica
           Serviço               Serviço


                     Invocação
                       Serviço
           Cliente               Provedor
WebServices

  Visão Conceitual
                         Comunicação
                         Independente
                         de Plataforma


                                         E
                     P                   n
                     r                   d
                     o            Port   P
       Client        x                   o   Service
        Impl         y                   i     Impl
                                         n
                                         t




                          Comunicação
                            Nativa
JBossWS

   O JBossWS é um framework para definição, publicação e
 consumo de WebServices
  Implementa os conceitos básicos e necessidades de
 middleware para WebServices
   Abstraí a implementação das camadas de infra-estrutura
 necessárias a troca de informação entre cliente e servidor.
   Segue a especificação Java EE 5 para WebServcies e já vem
 instalado no JBoss Application Server
  Vem sendo desenvolvido pelo JBoss Group nos últimos anos
Conceitos – End Point x Serviço

    End Point:
             Representação (abstração) do serviço disponibilizado
               via WebService.
             Definido por interfaces (fachadas) de serviço, com
              anotações específicas do padrão JAX-WS
             Em tempo de deployment o JBossWS prove a
              implementação do End Point automaticamente.
  Serviço:
             Implementação da regra de negócio atendendo o
               contrato.
             É a materialização do End Point a quem o container
               irá delegar a execução após o tratamento da infra-
               estrutura.
Conceitos - Invocações

    São as chamadas de um cliente a um método (serviço) do
      End Point.
    As invocações podem trafegar informações (parametros /
      resultados) de duas maneiras distintas.
          Document : Focada na estrutura do contrato (WSDL)
          RPC (Remote Procedure Call): Focada na semântica
            de serviço
Conceitos - Invocações

    Características do Document
          Cada elemento na mensagem são definida por um
            tipo complexo no XML Schema (XSD)
          Document/Bare: Utiliza um único JavaBean (anotado
           com JAXB) para representar todo o payload da
           mensagem.
          Document/Wrapped: Utiliza payloads específicos para
           cada elemento mensagem.
Conceitos - Invocações

    Características do RPC
          Cara serviço definido no WSDL representa uma
            operação
          Os parâmetros são definidos como partes da
           mensagem
          Deve ser utilizado no modelo Literal
Conceitos - Handlers

   Filtros utilizados para manipular as mensagens antes que
 sejam enviadas ou recebidas pelos EndPoints.
  Funcionam, conceitualmente, de maneira similar aos filtros
 HTTP ou interceptadores EJB
   Sua principal função é o tratamento de middleware
 necessários aos WebServices.
   Também pode ser utilizados para agregar funcionalidade
 cross-cut aos WebServices sem alterar o serviço em si.
Conceitos - WS-Extensions

    As WS-Extensions, são padrões (ou políticas) definidos para
      o tratamento infra-estrutura declarativa para
      WebServices.
          O padrão WebServices é declarativo e voltado para
            integração entre plataformas.
          As necessidades de middleware são definidas
            declarativamente para que cada plataforma proveja
            sua implementação.


    No JBossWS essas políticas são tratadas como parte da
      infra-estrutura do servidor de aplicação.
Conceitos - WS-Extensions

   WS-Addressing: Padrão para utilização de serviços stateful
   WS-Eventing: Padrão para comportamento assíncrono nos serviços
   WS-Security: Descrição de segurança da lógica mensagem
  WS-Reliable Message: Definições para a garantia de entrega das
 mensagens.
   WS-Transaction: Descrição de serviços transacionais
   WS-Policy: Descrição de políticas (reaproveitáveis) para uso de
 serviços. Essas políticas podem definir um ou mais dos
 comportamento acima.
  XML Registry: Descrição de publicação do WebService através de
 UDDI
Arquitetura
Arquitetura - Stacks

  JbossWS-Native:
         Implementação do JbossWS da especificação JAX-WS
  Glassfish-Metro:
           Implementação de referência para WebServices na
             plataforma Java EE 5.
  Apache-CXF:
         Framework para o criação/publicação/consumo de
           WebServices.
         Muito maduro, vem sendo desenvolvido desde antes
          da especificação Java EE 5 para WebServices.
Publicando Serviços EJB

    EJBs do tipo Stateless Session Bean podem ser publicados,
      também, como WebServices.
    O WebService publicado é uma interface de invocação
      adicional para o componente.
          Substitui a invocação RMI pela chamada WebService
          A interface EndPoint faz as vezes da interface remota
          A implementação do EndPoint provida pelo container
            faz as vezes do EJBObject.
Publicando Serviços EJB

    Para transformar um EJB num WebService basta marcá-lo
      com annotations da API JAX-WS.
    A interface (EndPoint) e a implementação do EJB devem ser
      anotadas como @WebService
    O métodos que serão acessíveis através do WebService
      devem estar marcados com @WebMethod
Publicando Serviços EJB

    Em tempo de deployment:
          O JBossWS identifica as anotações e gera o WSDL, os
            EndPoints e publica o WebService.
          O JBossWS utiliza um conjunto de valores padrão
            (conforme a API JAX-WS) para gerar o WSDL.


    Os valores, nomes e parâmetros do WSDL podem ser
      customizados através de parametrização das annotations
      como no exemplo:
Publicando Serviços EJB

    Definição do EndPoint (Interface Remota)

  @Remote
  @WebService
  @SOAPBinding
  public interface AccountServiceEndpoint {
  ...
      @WebMethod
      @WebResult
      public MovimentBean[] findMoviments(
          @WebParam String accountNumber,
          @WebParam Date beginDate,
          @WebParam Date endDate) {
          ...
      }
  ...
  }
Publicando Serviços EJB

    Implementação do EJB

  @Stateless
  @WebService(name = "ManterContas", serviceName = "ManterContas",
              portName = "ManterContasPort",
              targetNamespace = "tns:cursows")
  @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL,
               parameterStyle = ParameterStyle.WRAPPED)
  public class AccountServiceBean
          implements AccountServiceEndpoint {

        @WebMethod(operationName="ListarMovimentos")
        @WebResult(name = "resultado")
        public MovimentBean[] findMoviments(
            @WebParam(name = "conta") String accountNumber,
            @WebParam(name = "dataInicial") Date beginDate,
            @WebParam(name = "dataFinal") Date endDate) {
            ...
        }
  ...
Publicando Serviços POJO

    O JBossWS permite também publicação de WebServices
      POJO (não EJB).
    Para que uma classe POJO seja um WebService ela deve
      estar:
         Marcada com as mesmas annotations JAX-WS
         Configurada no arquivo web.xml como se fosse uma
           Servlet neste caso o EndPoint será implementado como
           uma Servlet
Publicando Serviços POJO

    Configurando um serviço POJO

  <web-app>
      ...

      <servlet>
        <servlet-name>ExampleWSPojo</servlet-name>
        <servlet-class>dextra.curso.ExampleWSPojo</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>ExampleWSPojo</servlet-name>
        <url-pattern>/*</url-pattern>
      </servlet-mapping>

      ...
  </web-app>
Consumindo WebServices

   O JbossWS disponibiliza um utilitário utilizado para consumir
     WebServices.
   O WSConsumer é utilizado para:
         A criação de consumidores (clientes) de WebServices
           publicados a partir de seu WSDL.
         Cria classes para abstração do serviço e comunicação
         Cria classes auxiliares para e representações dos objetos
           passados como parâmetro (já com mapeamento JAXB).
         Cria exceções e classes representando as exceções
           necessárias.
Consumindo WebServices

   O JBossWS trás o WSConsumer em duas versões, uma para
     execução em “linha de comando” e outra como uma “task ant”.
   Ambas são encontradas em $JBOSS_HOME/client/jbossws-
     spi.jar
   O código gerado é relativamente “limpo” e pode ser utilizado
     diretamente, salvo por alguns casos.
Consumindo WebServices

   EJBs também podem ser clientes (consumidores) de
     WebServices.
   Isso é feito através da anotação @WebServiceRef, que
     funciona de maneira similar a anotação @EJB
   Isso torna o container EJB responsável por prover (injetar)
     um proxy para o consumo de determinado WebService.
Utilizando Handlers

    Handlers funcionam de maneira parecida aos filtros HTTP,
      são executados antes do WebService propriamente dito
    Podem atuar como observadores ou “agentes” no fluxo
      da invocação, alterando dados ou mesmo impedindo a
      conclusão da invocação
    Handlers podem ser configurados tanto no lado servidor
      como cliente.
Serverside Handlers

    São executados antes que a requisição chegue efetivamente
      ao WebService
    São adicionados, pelo container, às invocações feitas ao
      WebService
    São definidos declarativamente em um arquivo XML
    Na classes de implementação do WebService o arquivo XML
      é associado através da annotation @HandlerChain
Serverside Handlers


  <handler-chains xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
      <handler-chain>
          <handler>
              <handler-name>DecompressHandler</handler-name>
              <handler-class>
                  dextra.curso.ws.DecompressHandler
              </handler-class>
          </handler>
          <handler>
              <handler-name>AuditHandler</handler-name>
              <handler-class>
                  dextra.curso.ws.AuditHandler
              </handler-class>
          </handler>
          ...
      </handler-chain>
  </handler-chains>
Clientside Handlers

    São executados antes a mensagem SOAP seja enviada ao
      servidor.
    Também é possível adicionar um HandlerChain no lado
      cliente.
    Diferente dos handlers serverside, que são definidos via
      annotation, os handlers clientside são definidos de forma
      programática.
    Os handlers são adicionados diretamente ao WebServicePort
      do proxy.
Clientside Handlers

  Configurando clientside Handlers

   @WebEndPoint(name = "ExampleWSPort")
   public ExampleWS getExampleWSPort() {
       ExampleWS port = Service.getPort(
               new QName("tns:curso", "ExampleWSPort"), ExampleWS.class);

       BindingProvider bindingProvider = (BindingProvider) port;
       List<Handler> handlerChain = new ArrayList<Handler>();
       handlerChain.add(new ClientHandler());
       handlerChain.add(new CompressHandler());
       bindingProvider.getBinding().setHandlerChain(handlerChain);

       return port;
   }
Acrescentando Segurança

   O JBossWS utiliza o padrão JAAS para prover o controle de
     acesso aos WebServices publicados.
   O JBossWS se integra ao JBoss utilizando os serviços de
     segurança providos pelo container.
   Podem ser utilizados quaisquer LoginModules (e seus
     contextos) configurados no servidor
   Para definir a que contexto de segurança estará associado
     associados os WebServices basta utilizar a anotação
     @org.jboss.ejb3.annotation.SecurityDomainSecurityDoma
     in
Autorização com JAAS

      Após definir o contexto de segurança utilizado pelo WebService é
        possível determinar os perfis (roles) com acesso aos métodos
      Os serviços e/ou métodos podem ser marcados com annotations
        padrão do pacote javax.annotation.security da mesma maneira
        que um EJB

  @Stateless
  @WebService
  @SecurityDomain("curso-ws")
  public class ExampleWSBean implements ExampleWSEndpoint {

       @WebMethod
       @OneWay
       @RolesAllowed("admin")
       public void sayHello(@WebParam String name) {
           System.out.println(“Hello ” + name);
       }

  }
Autenticação com JAAS

   A cada invocação a credencial do cliente é enviada ao
     servidor.
   A forma de autenticação a ser utilizada é definida na
     annotation org.jboss.wsf.spi.annotation.WebContext pelo
     atributo authMethod
   O JBossWS aceita dois tipos de credencias:
         BASIC: Autenticação via Username/Password (token)
         CLIENT-CERT: Autenticação via certificado digital
   O JBossWS se integra ao contexto de segurança não
     necessitando de outras no serverside.
Autenticação BASIC (Clientside)

       Os atributos USERNAME e PASSWORD são passados diretamente
         ao proxy que representa o WebService (BindingProvider) .
       O token é acrescentado diretamente aos parâmetros da requisição
         HTTP e enviado na mensagem.


   @WebEndpoint(name = "ExampleWSPort")
   public ExampleWS getExampleWSPort() {
       ExampleWS port = super.getPort(
               new QName("tns:curso", "ExampleWSPort"), ExampleWS.class);

        BindingProvider bindingProvider = (BindingProvider) port;
        bindingProvider.getRequestContext().put(
                BindingProvider.USERNAME_PROPERTY, "user");
        bindingProvider.getRequestContext().put(
                BindingProvider.PASSWORD_PROPERTY, "pswd");

        return port;
   }
Autenticação CLIENT-CERT

   Funciona de maneira similar à autenticação por token,
     entretanto ao invés de usuário e senha o cliente passa
     seu certificado digital.
   Deve estar configurado no ambiente de execução do cliente
     as seguintes variáveis:
         org.jboss.ws.wsse.keyStore
         org.jboss.ws.wsse.keyStorePassword
         org.jboss.ws.wsse.keyStoreType
         org.jboss.ws.wsse.trustStore
         org.jboss.ws.wsse.trustStorePassword
         org.jboss.ws.wsse.trustStoreType
Acrescentando Segurança

   Autenticação CLIENT-CERT (Clientside)
        Funciona de maneira similar à autenticação por
          token, entretanto ao invés de usuário e senha o
          cliente passa seu certificado digital.
        Deve estar configurado no ambiente de execução do
         cliente as seguintes variáveis:
              org.jboss.ws.wsse.keyStore
              org.jboss.ws.wsse.keyStorePassword
              org.jboss.ws.wsse.keyStoreType
              org.jboss.ws.wsse.trustStore
              org.jboss.ws.wsse.trustStorePassword
              org.jboss.ws.wsse.trustStoreType
Conclusão

   O JBossWS apresenta hoje as características de um
     framework maduro e estável:
         Compatibilidade com a arquitetura Java EE 5
         Integração “nativa” à infraestrutura do servidor JBoss
         Simplicidade de desenvolvimento através de annotaitions
         Ferramentas de desenvolvimento, como o WSConsumer
         Versatilidade pela integração com outras stacks através de
           contrato único
         Segurança e estabilidade dos serviços
         Boa documentação
Dúvidas ?




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

Mais conteúdo relacionado

Mais procurados

Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Renato Groff
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APINuno Pereira
 
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
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIgor Takenami
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web ServicesFabio Leal
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambMicrosoft Brasil
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesAdriano Teixeira de Souza
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambMicrosoft Brasil
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambguest34ed8ec
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura WebBreno Vitorino
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoAndré Borgonovo
 

Mais procurados (19)

Web Services
Web ServicesWeb Services
Web Services
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
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
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a Serviços
 
Introdução a Web Services
Introdução a Web ServicesIntrodução a Web Services
Introdução a Web Services
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcamb
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcamb
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
Serviços Web Semânticos
Serviços Web SemânticosServiços Web Semânticos
Serviços Web Semânticos
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Web services
Web servicesWeb services
Web services
 
Introdução à Arquitetura Web
Introdução à Arquitetura WebIntrodução à Arquitetura Web
Introdução à Arquitetura Web
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
SOA - Uma Breve Introdução
SOA - Uma Breve IntroduçãoSOA - Uma Breve Introdução
SOA - Uma Breve Introdução
 
Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)Tutorial esb (aulas praticas)
Tutorial esb (aulas praticas)
 

Semelhante a Maratona JBoss 2010 - JBossWS

WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFFabian Gehrke
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application ServerFabricio Carvalho
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End ArchitectureCristiano Gomes
 
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
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soaLeonardo Eloy
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...tdc-globalcode
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...Marcelo Palladino
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicosLeonardo Eloy
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5Helder da Rocha
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
 

Semelhante a Maratona JBoss 2010 - JBossWS (20)

WCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCFWCF Brasil - Introdução ao WCF
WCF Brasil - Introdução ao WCF
 
Web Sphere Application Server
Web Sphere Application ServerWeb Sphere Application Server
Web Sphere Application Server
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End Architecture
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
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
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Arquitetura orientada a servicos soa
Arquitetura orientada a servicos   soaArquitetura orientada a servicos   soa
Arquitetura orientada a servicos soa
 
Mac5700
Mac5700Mac5700
Mac5700
 
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...TDC2016POA | Trilha Arquetetura -  Revitalizando aplicações desktop usando Ce...
TDC2016POA | Trilha Arquetetura - Revitalizando aplicações desktop usando Ce...
 
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...TDC2016SP  Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
TDC2016SP Trilha Arquitetura.NET - Revitalizando aplicações desktop usando C...
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5JustJava 2005: Web Services em Java com o JWSDP 1.5
JustJava 2005: Web Services em Java com o JWSDP 1.5
 
Rest
RestRest
Rest
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Web Services
Web ServicesWeb Services
Web Services
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 

Mais de 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
 

Mais de 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 - JBossWS

  • 1. WebServices com JBossWS Alexandre A. L. Costa 24/09/2010 d Fábrica de Software Sistemas e aplicações sob medida para as necessidades do seu negócio.
  • 2. Agenda Contextualização: O modelo SOA WebServices JBossWS - Conceitos JBossWS - Arquitetura Utilizando JBossWS: Publicando WebServices Criando Clientes Utilizando Handlers Acrescentando Segurança
  • 3. O modelo SOA A SOA (Service Oriented Archtecture) é um modelo de arquitetura/design de aplicações. A SOA é voltada para as regras/processos de negócio. O design é definido de forma semântica/lógica Na SOA o sistema é dividido em processos/operações de objetivos bem definidos.
  • 4. O modelo SOA Como um modelo semântico, a SOA é independente de plataforma tecnológica. Os processos são criados com objetivos e contratos bem definidos. Não é importante como as operações serão executadas desde que atendam ao contrato definido. Devido aos contratos, os serviços podem ser implementados em diferentes plataformas tecnológicas sem prejuízo à semantica do sistema.
  • 5. O modelo SOA Devido ao seu foco semântico e independência de plataforma tecnológica a SOA é uma opção ideal para: Modelagem de sistemas orientados processo. Integração entre sistemas em diferentes plataformas. Projeto de sistemas heterogênios e de grande porte.
  • 6. WebServices SOA é um conceito, com várias implementações possíveis. A tecnologia WebServices tem características que a qualificam como uma possível implementação de SOA. Características da SOA nos WebServices: Contrato semântico bem definido, em linguagem neutra (através do WSDL) Parâmetros definidos em uma linguagem neutra e multi-plataforma (arquivos texto estruturados – XML) Localização de serviços independente de plataforma.
  • 7. WebServices Visão Conceitual Catálogo Busca Publica Serviço Serviço Invocação Serviço Cliente Provedor
  • 8. WebServices Visão Conceitual Comunicação Independente de Plataforma E P n r d o Port P Client x o Service Impl y i Impl n t Comunicação Nativa
  • 9. JBossWS O JBossWS é um framework para definição, publicação e consumo de WebServices Implementa os conceitos básicos e necessidades de middleware para WebServices Abstraí a implementação das camadas de infra-estrutura necessárias a troca de informação entre cliente e servidor. Segue a especificação Java EE 5 para WebServcies e já vem instalado no JBoss Application Server Vem sendo desenvolvido pelo JBoss Group nos últimos anos
  • 10. Conceitos – End Point x Serviço End Point: Representação (abstração) do serviço disponibilizado via WebService. Definido por interfaces (fachadas) de serviço, com anotações específicas do padrão JAX-WS Em tempo de deployment o JBossWS prove a implementação do End Point automaticamente. Serviço: Implementação da regra de negócio atendendo o contrato. É a materialização do End Point a quem o container irá delegar a execução após o tratamento da infra- estrutura.
  • 11. Conceitos - Invocações São as chamadas de um cliente a um método (serviço) do End Point. As invocações podem trafegar informações (parametros / resultados) de duas maneiras distintas. Document : Focada na estrutura do contrato (WSDL) RPC (Remote Procedure Call): Focada na semântica de serviço
  • 12. Conceitos - Invocações Características do Document Cada elemento na mensagem são definida por um tipo complexo no XML Schema (XSD) Document/Bare: Utiliza um único JavaBean (anotado com JAXB) para representar todo o payload da mensagem. Document/Wrapped: Utiliza payloads específicos para cada elemento mensagem.
  • 13. Conceitos - Invocações Características do RPC Cara serviço definido no WSDL representa uma operação Os parâmetros são definidos como partes da mensagem Deve ser utilizado no modelo Literal
  • 14. Conceitos - Handlers Filtros utilizados para manipular as mensagens antes que sejam enviadas ou recebidas pelos EndPoints. Funcionam, conceitualmente, de maneira similar aos filtros HTTP ou interceptadores EJB Sua principal função é o tratamento de middleware necessários aos WebServices. Também pode ser utilizados para agregar funcionalidade cross-cut aos WebServices sem alterar o serviço em si.
  • 15. Conceitos - WS-Extensions As WS-Extensions, são padrões (ou políticas) definidos para o tratamento infra-estrutura declarativa para WebServices. O padrão WebServices é declarativo e voltado para integração entre plataformas. As necessidades de middleware são definidas declarativamente para que cada plataforma proveja sua implementação. No JBossWS essas políticas são tratadas como parte da infra-estrutura do servidor de aplicação.
  • 16. Conceitos - WS-Extensions WS-Addressing: Padrão para utilização de serviços stateful WS-Eventing: Padrão para comportamento assíncrono nos serviços WS-Security: Descrição de segurança da lógica mensagem WS-Reliable Message: Definições para a garantia de entrega das mensagens. WS-Transaction: Descrição de serviços transacionais WS-Policy: Descrição de políticas (reaproveitáveis) para uso de serviços. Essas políticas podem definir um ou mais dos comportamento acima. XML Registry: Descrição de publicação do WebService através de UDDI
  • 18. Arquitetura - Stacks JbossWS-Native: Implementação do JbossWS da especificação JAX-WS Glassfish-Metro: Implementação de referência para WebServices na plataforma Java EE 5. Apache-CXF: Framework para o criação/publicação/consumo de WebServices. Muito maduro, vem sendo desenvolvido desde antes da especificação Java EE 5 para WebServices.
  • 19. Publicando Serviços EJB EJBs do tipo Stateless Session Bean podem ser publicados, também, como WebServices. O WebService publicado é uma interface de invocação adicional para o componente. Substitui a invocação RMI pela chamada WebService A interface EndPoint faz as vezes da interface remota A implementação do EndPoint provida pelo container faz as vezes do EJBObject.
  • 20. Publicando Serviços EJB Para transformar um EJB num WebService basta marcá-lo com annotations da API JAX-WS. A interface (EndPoint) e a implementação do EJB devem ser anotadas como @WebService O métodos que serão acessíveis através do WebService devem estar marcados com @WebMethod
  • 21. Publicando Serviços EJB Em tempo de deployment: O JBossWS identifica as anotações e gera o WSDL, os EndPoints e publica o WebService. O JBossWS utiliza um conjunto de valores padrão (conforme a API JAX-WS) para gerar o WSDL. Os valores, nomes e parâmetros do WSDL podem ser customizados através de parametrização das annotations como no exemplo:
  • 22. Publicando Serviços EJB Definição do EndPoint (Interface Remota) @Remote @WebService @SOAPBinding public interface AccountServiceEndpoint { ... @WebMethod @WebResult public MovimentBean[] findMoviments( @WebParam String accountNumber, @WebParam Date beginDate, @WebParam Date endDate) { ... } ... }
  • 23. Publicando Serviços EJB Implementação do EJB @Stateless @WebService(name = "ManterContas", serviceName = "ManterContas", portName = "ManterContasPort", targetNamespace = "tns:cursows") @SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED) public class AccountServiceBean implements AccountServiceEndpoint { @WebMethod(operationName="ListarMovimentos") @WebResult(name = "resultado") public MovimentBean[] findMoviments( @WebParam(name = "conta") String accountNumber, @WebParam(name = "dataInicial") Date beginDate, @WebParam(name = "dataFinal") Date endDate) { ... } ...
  • 24. Publicando Serviços POJO O JBossWS permite também publicação de WebServices POJO (não EJB). Para que uma classe POJO seja um WebService ela deve estar: Marcada com as mesmas annotations JAX-WS Configurada no arquivo web.xml como se fosse uma Servlet neste caso o EndPoint será implementado como uma Servlet
  • 25. Publicando Serviços POJO Configurando um serviço POJO <web-app> ... <servlet>       <servlet-name>ExampleWSPojo</servlet-name>       <servlet-class>dextra.curso.ExampleWSPojo</servlet-class>     </servlet>     <servlet-mapping>       <servlet-name>ExampleWSPojo</servlet-name>       <url-pattern>/*</url-pattern>     </servlet-mapping> ... </web-app>
  • 26. Consumindo WebServices O JbossWS disponibiliza um utilitário utilizado para consumir WebServices. O WSConsumer é utilizado para: A criação de consumidores (clientes) de WebServices publicados a partir de seu WSDL. Cria classes para abstração do serviço e comunicação Cria classes auxiliares para e representações dos objetos passados como parâmetro (já com mapeamento JAXB). Cria exceções e classes representando as exceções necessárias.
  • 27. Consumindo WebServices O JBossWS trás o WSConsumer em duas versões, uma para execução em “linha de comando” e outra como uma “task ant”. Ambas são encontradas em $JBOSS_HOME/client/jbossws- spi.jar O código gerado é relativamente “limpo” e pode ser utilizado diretamente, salvo por alguns casos.
  • 28. Consumindo WebServices EJBs também podem ser clientes (consumidores) de WebServices. Isso é feito através da anotação @WebServiceRef, que funciona de maneira similar a anotação @EJB Isso torna o container EJB responsável por prover (injetar) um proxy para o consumo de determinado WebService.
  • 29. Utilizando Handlers Handlers funcionam de maneira parecida aos filtros HTTP, são executados antes do WebService propriamente dito Podem atuar como observadores ou “agentes” no fluxo da invocação, alterando dados ou mesmo impedindo a conclusão da invocação Handlers podem ser configurados tanto no lado servidor como cliente.
  • 30. Serverside Handlers São executados antes que a requisição chegue efetivamente ao WebService São adicionados, pelo container, às invocações feitas ao WebService São definidos declarativamente em um arquivo XML Na classes de implementação do WebService o arquivo XML é associado através da annotation @HandlerChain
  • 31. Serverside Handlers <handler-chains xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee"> <handler-chain> <handler> <handler-name>DecompressHandler</handler-name> <handler-class> dextra.curso.ws.DecompressHandler </handler-class> </handler> <handler> <handler-name>AuditHandler</handler-name> <handler-class> dextra.curso.ws.AuditHandler </handler-class> </handler> ... </handler-chain> </handler-chains>
  • 32. Clientside Handlers São executados antes a mensagem SOAP seja enviada ao servidor. Também é possível adicionar um HandlerChain no lado cliente. Diferente dos handlers serverside, que são definidos via annotation, os handlers clientside são definidos de forma programática. Os handlers são adicionados diretamente ao WebServicePort do proxy.
  • 33. Clientside Handlers Configurando clientside Handlers @WebEndPoint(name = "ExampleWSPort") public ExampleWS getExampleWSPort() { ExampleWS port = Service.getPort( new QName("tns:curso", "ExampleWSPort"), ExampleWS.class); BindingProvider bindingProvider = (BindingProvider) port; List<Handler> handlerChain = new ArrayList<Handler>(); handlerChain.add(new ClientHandler()); handlerChain.add(new CompressHandler()); bindingProvider.getBinding().setHandlerChain(handlerChain); return port; }
  • 34. Acrescentando Segurança O JBossWS utiliza o padrão JAAS para prover o controle de acesso aos WebServices publicados. O JBossWS se integra ao JBoss utilizando os serviços de segurança providos pelo container. Podem ser utilizados quaisquer LoginModules (e seus contextos) configurados no servidor Para definir a que contexto de segurança estará associado associados os WebServices basta utilizar a anotação @org.jboss.ejb3.annotation.SecurityDomainSecurityDoma in
  • 35. Autorização com JAAS Após definir o contexto de segurança utilizado pelo WebService é possível determinar os perfis (roles) com acesso aos métodos Os serviços e/ou métodos podem ser marcados com annotations padrão do pacote javax.annotation.security da mesma maneira que um EJB @Stateless @WebService @SecurityDomain("curso-ws") public class ExampleWSBean implements ExampleWSEndpoint { @WebMethod @OneWay @RolesAllowed("admin") public void sayHello(@WebParam String name) { System.out.println(“Hello ” + name); } }
  • 36. Autenticação com JAAS A cada invocação a credencial do cliente é enviada ao servidor. A forma de autenticação a ser utilizada é definida na annotation org.jboss.wsf.spi.annotation.WebContext pelo atributo authMethod O JBossWS aceita dois tipos de credencias: BASIC: Autenticação via Username/Password (token) CLIENT-CERT: Autenticação via certificado digital O JBossWS se integra ao contexto de segurança não necessitando de outras no serverside.
  • 37. Autenticação BASIC (Clientside) Os atributos USERNAME e PASSWORD são passados diretamente ao proxy que representa o WebService (BindingProvider) . O token é acrescentado diretamente aos parâmetros da requisição HTTP e enviado na mensagem. @WebEndpoint(name = "ExampleWSPort") public ExampleWS getExampleWSPort() { ExampleWS port = super.getPort( new QName("tns:curso", "ExampleWSPort"), ExampleWS.class); BindingProvider bindingProvider = (BindingProvider) port; bindingProvider.getRequestContext().put( BindingProvider.USERNAME_PROPERTY, "user"); bindingProvider.getRequestContext().put( BindingProvider.PASSWORD_PROPERTY, "pswd"); return port; }
  • 38. Autenticação CLIENT-CERT Funciona de maneira similar à autenticação por token, entretanto ao invés de usuário e senha o cliente passa seu certificado digital. Deve estar configurado no ambiente de execução do cliente as seguintes variáveis: org.jboss.ws.wsse.keyStore org.jboss.ws.wsse.keyStorePassword org.jboss.ws.wsse.keyStoreType org.jboss.ws.wsse.trustStore org.jboss.ws.wsse.trustStorePassword org.jboss.ws.wsse.trustStoreType
  • 39. Acrescentando Segurança Autenticação CLIENT-CERT (Clientside) Funciona de maneira similar à autenticação por token, entretanto ao invés de usuário e senha o cliente passa seu certificado digital. Deve estar configurado no ambiente de execução do cliente as seguintes variáveis: org.jboss.ws.wsse.keyStore org.jboss.ws.wsse.keyStorePassword org.jboss.ws.wsse.keyStoreType org.jboss.ws.wsse.trustStore org.jboss.ws.wsse.trustStorePassword org.jboss.ws.wsse.trustStoreType
  • 40. Conclusão O JBossWS apresenta hoje as características de um framework maduro e estável: Compatibilidade com a arquitetura Java EE 5 Integração “nativa” à infraestrutura do servidor JBoss Simplicidade de desenvolvimento através de annotaitions Ferramentas de desenvolvimento, como o WSConsumer Versatilidade pela integração com outras stacks através de contrato único Segurança e estabilidade dos serviços Boa documentação
  • 41. Dúvidas ? www.dextra.com.br contato@dextra-sw.com (11) 2824-6722 (19) 3256-6722