SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Comunicação Distribuída – Web Services
               Prof. Adriano Teixeira de Souza
   Estratégias diferentes que permitem a
    comunicação entre aplicações distribuídas.

   Tipos distintos de comunicação em um sistema
    distribuído:

    ◦   Sockets
    ◦   RMI - Remote Method Invocation
    ◦   CORBA – Commom Object Request Broker Architecture
    ◦   EJB – Enterprise Java Bean
    ◦   Web Services




                               Prof. Adriano Teixeira de Souza
Um Web Service é:

   Qualquer serviço que é disponibilizado através da
    web.

   Qualquer serviço que possibilita duas aplicações de
    computador trocarem dados.

   Principalmente, mas não exclusivamente baseado
    em:
    ◦   XML para codificação de dados
    ◦   HTTP para transporte de dados

• Um documento XML transmitido remotamente e mapeado para
  um programa executável.

                                    Prof. Adriano Teixeira de Souza
   Comunicação entre aplicações de WS usam 4 camadas que
    empacotam a requisição e a resposta entre o servidor e o cliente.

    ◦   XML – possibilita estabelecer objetos, métodos, parâmetros, dados e
        tipos de dados

    ◦   SOAP – protocolo que estabelece a comunicação entre os ambientes

    ◦   WSDL – descreve o serviço (XML)

    ◦   UDDI – representa service broker. Contém as descrições dos WS.

                                      Prof. Adriano Teixeira de Souza
Registro
               UDDI




Consumidor                        Provedor de
 do serviço                         serviços




                         Prof. Adriano Teixeira de Souza
   Web Service Description Language

   Esforço da W3C

Descreve interface para consumir
um Serviço Web
     - Interface: operações (entrada e saída)
     - Acesso (ligação de protocolo)
     - Ponto final (localização do Serviço)




                                         Prof. Adriano Teixeira de Souza
                                                                           16
   Marcação XML para descrever serviços disponíveis em uma
    rede

   Descreve a interface, protocolos de ligação e entrega de
    serviço

   Fornece uma maneira uniforme de descrever serviços
    abstratos UDDI

   Serviços Web são pontos finais de rede que operam em
    mensagens


                                Prof. Adriano Teixeira de Souza
                                                                  17
   Universal Description, Discovery, and Integration Protocol

   Diretório independente de plataforma de descrição para Serviços Web

   Método padrão para publicar e descobrir Serviços Web e fornecedores

   Suporta vários tipos de descrição de serviços, não limitados à WSDL

   Registros UDDI podem ser gerados a partir de descrições WSDL




                                      Prof. Adriano Teixeira de Souza
   Simple Object Access Protocol

   Recomendação W3C


Transporte de dados XML:
     - emissor / receptor
     - ligação de protocolo
     - aspectos de comunicação
     - conteúdo




                                    Prof. Adriano Teixeira de Souza
   Protocolo para troca de informações estruturadas em uma
    plataforma descentralizada e distribuída, utilizando tecnologias
    baseadas em XML

   Sua especificação define um framework que provê maneiras para
    se construir mensagens que podem trafegar através de diversos
    protocolos
    ◦    Foi especificado de forma a ser independente de qualquer modelo de
        programação ou outra implementação específica


   As mensagens SOAP são documentos XML que aderem a uma
    especificação fornecida pelo órgão W3C



                                        Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Dois fatores chave:
    ◦ ubiqüidade
    ◦ facilidade de uso
   Interoperável:
    ◦ Neutro em relação a SO e linguagem
    ◦ Integração Java & .NET : simples e barata
   Todo mundo dá suporte ou irá dar a Serviços Web:
    ◦ Necessário dar suporte a Serviços Web para facilitar
      Integração
   Não-invasivos(impactante):
    ◦ Baseados em protocolos ubiqüos: HTTP/SMTP
    ◦ Complementam tecnologias já existentes




                                 Prof. Adriano Teixeira de Souza
   Integrar sistemas heterogêneos dentro de
    empresas;
   Integrar sistemas remotos através da
    Internet;
   Integrar diferentes plataformas de hardware,
    software e S.O.;
   Fornecer serviços a terceiros.

     Obs.: Várias empresas e instituições vêm adotando esta
     tecnologia como infra-estrutura para expor suas
     aplicações, aumentando assim, a demanda pelo seu
     desempenho....
   INTEGRAÇÃO
    ◦ Interna:
      Dados como nome, endereço, telefone, matrícula, etc,
       todas as áreas da empresa utilizam. Assim, estes dados
       podem ser disponibilizados (em um formato comum)
       para que sistemas desenvolvidos por outras áreas
       possam utilizar em seus aplicativos específicos.
    ◦ Externa:
      Gestão da cadeia de suprimentos. Esta integração é
       baseada na interação que existe entre várias empresas
       durante os diversos processos de fabricação e a logística.




                                Prof. Adriano Teixeira de Souza
boa arquitectura
              DNA




                 Aplicação Central Compras




Data Layer              Business             Presentation
                         Layer                   Layer

                                                                Interface da aplicação
                                                                dá acesso aos dados
                                                                aplicacionais



                                      Prof. Adriano Teixeira de Souza
Interface desacoplado
                                                                    da lógica de
                                                             processamento dos
                                                                          dados
                                troca de mensagens
 boa arquitectura
    3-tier service

          Serviço Central Compras                                                         UI




Data Layer           Business     Service                                          Presentation
                      Layer       Façade                                               Layer

 Dados e Lógica Negócio
  encapsulados por uma                                                             Web Service Standards
    Web Service Façade                                                             permitem ligações
                                                                                   cross-platform


                                                     Prof. Adriano Teixeira de Souza
   Facilitar o uso da API JAX-RPC e do modelo de
    implantação
   Anotações baseados em JSR-181
   Exemplo Básico:
    ◦ Anotações:
        @WebService
        @WebMethod
        @WebParam
        @WebResult




                         Prof. Adriano Teixeira de Souza
@WebService(name = "TravelAgent", serviceName="TravelAgentService")
@Stateless
public class TravelAgentBean implements TravelAgentRemote
{
    @PersistenceContext(unitName="titan")
    private EntityManager manager;


    @WebMethod
    public void createCabin( @WebParam(name = "Cabin") Cabin cabin )
    {
         manager.persist(cabin);
    }


    @WebMethod
    @WebResult(name = "Cabin")
    public Cabin findCabin(@WebParam(name = "ID") int pKey )
    {
         return manager.find(Cabin.class, pKey);
    }
}




                                            Prof. Adriano Teixeira de Souza
   Deve ser colocada na classe de implementação
    de bean de sessão sem informação de estado
   @WebService(name,wsdlLocation,endpointInterface,
    portName)
    ◦ name: nome do serviço Web quando mapeado para
      WSDL. Assume como padrão o nome da classe Java
      ou interface.
    ◦ wsdlLocation: define a url do documento wsdl.
    ◦ endpointInterface: externaliza o contrato do serviço
      Web na forma de uma interface Web.
    ◦ portName: porta WSDL utilizada.


                            Prof. Adriano Teixeira de Souza
   Métodos anotados com @WebMethod estarão disponíveis
    para o serviço Web.

   Se a classe for anotada com @WebService e nenhum
    método com @WebMethod, todos os métodos estarão
    disponíveis no Web Service.

   Boa prática de projeto para reduzir dependências entre
    módulos.

   Atributo operationName é utilizado para definir a operação
    WSDL que o método anotado implementa. Se não
    especificado, o nome do método é utilizado.


                              Prof. Adriano Teixeira de Souza
   Permite controlar o WSLD gerado para um método
    Java sinalizado com @WebMethod
   Se o estilo for RPC/LITERAL(wsdl:part), o atributo
    name() configurará o nome wsdl:part
   Exemplo (produz um wsdl):
    ◦   @WebMethod(OperationName = “CheckStatus”)
    ◦   Public int checkStatus(
    ◦   @WebParam(name = “ReservationID”) String reservationID
    ◦   @WebParam(name = “CustomerID”, mode =
        WebParam.Mode.OUT) javax.ws.Holder<Integer> customerID){
         customerID.value = getCustomerID(reservationID);
         Return status;
        }


                                    Prof. Adriano Teixeira de Souza
   Fornece a mesma funcionalidade pra valores de
    retorno que @WebParam oferece para parâmetros
    de métodos




                        Prof. Adriano Teixeira de Souza
   Utilizar o atributo endpointInterface() da anotação
    @javax.jws.WebService.

   O contrato dos serviços Web podem ser mantidos em
    uma interface Java externa.

   Com essa metodologia, somente a anotação
    @WebService é requerida, as outras são opcionais.

   Ao invés de manter tudo dentro da implementação EJB,
    todos os métodos na interface são expostos no serviço
    Web.


                               Prof. Adriano Teixeira de Souza
package com.titan.webservice;
import javax.jws.WebService;
@WebService
public interface TravelAgentEndpoint{
  public String makeReservation(…)
}
Bean de implementação que referencia a interface endpoint
Import javax.jws.WebService;
@WebService(endpointInterface =
  “com.titan.webservice.TravelAgentEndpoint”)
public class TravelAgentBean implements TravelAgentEndpoint {
// (implementação da interface opcional)



                             Prof. Adriano Teixeira de Souza

Contenu connexe

Tendances

Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSILuis Ferreira
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosDaniel Arndt Alves
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008teacherpereira
 
Aula 04 coneitos de auditoria de sistemas
Aula 04   coneitos de auditoria de sistemasAula 04   coneitos de auditoria de sistemas
Aula 04 coneitos de auditoria de sistemassorayaNadja
 
Modelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de softwareModelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de softwareFrancilvio Roberto Alff
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
Aula de Sistemas Distribuídos - Invocação Remota
Aula de Sistemas Distribuídos - Invocação RemotaAula de Sistemas Distribuídos - Invocação Remota
Aula de Sistemas Distribuídos - Invocação RemotaVictor Hazin da Rocha
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Leinylson Fontinele
 
Módulo 5 - Redes de Computadores e Internet, Apostila
Módulo 5 - Redes de Computadores e Internet, ApostilaMódulo 5 - Redes de Computadores e Internet, Apostila
Módulo 5 - Redes de Computadores e Internet, ApostilaPaulo Guimarães
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógicoFaculdade Mater Christi
 

Tendances (20)

Middleware
MiddlewareMiddleware
Middleware
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Prazer, computação em nuvem
Prazer, computação em nuvemPrazer, computação em nuvem
Prazer, computação em nuvem
 
Conceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos DistribuidosConceitos Básicos de Objetos Distribuidos
Conceitos Básicos de Objetos Distribuidos
 
Cours routage inter-vlan
Cours routage inter-vlanCours routage inter-vlan
Cours routage inter-vlan
 
S.o. windows server2008
S.o. windows server2008S.o. windows server2008
S.o. windows server2008
 
Aula 04 coneitos de auditoria de sistemas
Aula 04   coneitos de auditoria de sistemasAula 04   coneitos de auditoria de sistemas
Aula 04 coneitos de auditoria de sistemas
 
Modelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de softwareModelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de software
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Aula de Sistemas Distribuídos - Invocação Remota
Aula de Sistemas Distribuídos - Invocação RemotaAula de Sistemas Distribuídos - Invocação Remota
Aula de Sistemas Distribuídos - Invocação Remota
 
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
Sistemas Operacionais - Aula 08 (Sincronização e Comunicação entre Processos)
 
Módulo 5 - Redes de Computadores e Internet, Apostila
Módulo 5 - Redes de Computadores e Internet, ApostilaMódulo 5 - Redes de Computadores e Internet, Apostila
Módulo 5 - Redes de Computadores e Internet, Apostila
 
Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Vantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidoresVantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidores
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 

En vedette

Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebRafael Chagas
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Javalimadavi
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMIAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Modelos de síntese
Modelos de sínteseModelos de síntese
Modelos de síntesedenisecgomes
 

En vedette (10)

Sistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na WebSistemas Distribuídos baseados na Web
Sistemas Distribuídos baseados na Web
 
Sistemas Distribuidos Java
Sistemas Distribuidos JavaSistemas Distribuidos Java
Sistemas Distribuidos Java
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
 
Redes Distribuidas 20set08
Redes Distribuidas 20set08Redes Distribuidas 20set08
Redes Distribuidas 20set08
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Modelos de síntese
Modelos de sínteseModelos de síntese
Modelos de síntese
 

Similaire à Sistemas Distribuídos - Comunicação Distribuída – Web Services

Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWSDextra
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)DNAD
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
Apresentação web services
Apresentação web servicesApresentação web services
Apresentação web servicesVitor Fonseca
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoLuiz Matos
 

Similaire à Sistemas Distribuídos - Comunicação Distribuída – Web Services (20)

Web services
Web servicesWeb services
Web services
 
Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Maratona JBoss 2010 - JBossWS
Maratona JBoss 2010 -  JBossWSMaratona JBoss 2010 -  JBossWS
Maratona JBoss 2010 - JBossWS
 
DotNet vs. Java
DotNet vs. JavaDotNet vs. Java
DotNet vs. Java
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Web services
Web  servicesWeb  services
Web services
 
Web service
Web serviceWeb service
Web service
 
04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)04 - Felipe Oliveira - Think Decoupled! (SOA)
04 - Felipe Oliveira - Think Decoupled! (SOA)
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
Apresentação web services
Apresentação web servicesApresentação web services
Apresentação web services
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
JME Web Services API: um estudo de caso
JME Web Services API: um estudo de casoJME Web Services API: um estudo de caso
JME Web Services API: um estudo de caso
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Monica vasconcelos (1)
Monica vasconcelos (1)Monica vasconcelos (1)
Monica vasconcelos (1)
 
Monica vasconcelos
Monica vasconcelosMonica vasconcelos
Monica vasconcelos
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)
 

Plus de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
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
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Adriano Teixeira de Souza
 

Plus de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
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)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
Paradigmas de Linguagens de Programação - Biblioteca de Classes e Frameworks
 

Sistemas Distribuídos - Comunicação Distribuída – Web Services

  • 1. Comunicação Distribuída – Web Services Prof. Adriano Teixeira de Souza
  • 2. Estratégias diferentes que permitem a comunicação entre aplicações distribuídas.  Tipos distintos de comunicação em um sistema distribuído: ◦ Sockets ◦ RMI - Remote Method Invocation ◦ CORBA – Commom Object Request Broker Architecture ◦ EJB – Enterprise Java Bean ◦ Web Services Prof. Adriano Teixeira de Souza
  • 3. Um Web Service é:  Qualquer serviço que é disponibilizado através da web.  Qualquer serviço que possibilita duas aplicações de computador trocarem dados.  Principalmente, mas não exclusivamente baseado em: ◦ XML para codificação de dados ◦ HTTP para transporte de dados • Um documento XML transmitido remotamente e mapeado para um programa executável. Prof. Adriano Teixeira de Souza
  • 4. Comunicação entre aplicações de WS usam 4 camadas que empacotam a requisição e a resposta entre o servidor e o cliente. ◦ XML – possibilita estabelecer objetos, métodos, parâmetros, dados e tipos de dados ◦ SOAP – protocolo que estabelece a comunicação entre os ambientes ◦ WSDL – descreve o serviço (XML) ◦ UDDI – representa service broker. Contém as descrições dos WS. Prof. Adriano Teixeira de Souza
  • 5. Registro UDDI Consumidor Provedor de do serviço serviços Prof. Adriano Teixeira de Souza
  • 6. Web Service Description Language  Esforço da W3C Descreve interface para consumir um Serviço Web - Interface: operações (entrada e saída) - Acesso (ligação de protocolo) - Ponto final (localização do Serviço) Prof. Adriano Teixeira de Souza 16
  • 7. Marcação XML para descrever serviços disponíveis em uma rede  Descreve a interface, protocolos de ligação e entrega de serviço  Fornece uma maneira uniforme de descrever serviços abstratos UDDI  Serviços Web são pontos finais de rede que operam em mensagens Prof. Adriano Teixeira de Souza 17
  • 8. Universal Description, Discovery, and Integration Protocol  Diretório independente de plataforma de descrição para Serviços Web  Método padrão para publicar e descobrir Serviços Web e fornecedores  Suporta vários tipos de descrição de serviços, não limitados à WSDL  Registros UDDI podem ser gerados a partir de descrições WSDL Prof. Adriano Teixeira de Souza
  • 9. Simple Object Access Protocol  Recomendação W3C Transporte de dados XML: - emissor / receptor - ligação de protocolo - aspectos de comunicação - conteúdo Prof. Adriano Teixeira de Souza
  • 10. Protocolo para troca de informações estruturadas em uma plataforma descentralizada e distribuída, utilizando tecnologias baseadas em XML  Sua especificação define um framework que provê maneiras para se construir mensagens que podem trafegar através de diversos protocolos ◦ Foi especificado de forma a ser independente de qualquer modelo de programação ou outra implementação específica  As mensagens SOAP são documentos XML que aderem a uma especificação fornecida pelo órgão W3C Prof. Adriano Teixeira de Souza
  • 13. Dois fatores chave: ◦ ubiqüidade ◦ facilidade de uso  Interoperável: ◦ Neutro em relação a SO e linguagem ◦ Integração Java & .NET : simples e barata  Todo mundo dá suporte ou irá dar a Serviços Web: ◦ Necessário dar suporte a Serviços Web para facilitar Integração  Não-invasivos(impactante): ◦ Baseados em protocolos ubiqüos: HTTP/SMTP ◦ Complementam tecnologias já existentes Prof. Adriano Teixeira de Souza
  • 14. Integrar sistemas heterogêneos dentro de empresas;  Integrar sistemas remotos através da Internet;  Integrar diferentes plataformas de hardware, software e S.O.;  Fornecer serviços a terceiros. Obs.: Várias empresas e instituições vêm adotando esta tecnologia como infra-estrutura para expor suas aplicações, aumentando assim, a demanda pelo seu desempenho....
  • 15. INTEGRAÇÃO ◦ Interna:  Dados como nome, endereço, telefone, matrícula, etc, todas as áreas da empresa utilizam. Assim, estes dados podem ser disponibilizados (em um formato comum) para que sistemas desenvolvidos por outras áreas possam utilizar em seus aplicativos específicos. ◦ Externa:  Gestão da cadeia de suprimentos. Esta integração é baseada na interação que existe entre várias empresas durante os diversos processos de fabricação e a logística. Prof. Adriano Teixeira de Souza
  • 16. boa arquitectura DNA Aplicação Central Compras Data Layer Business Presentation Layer Layer Interface da aplicação dá acesso aos dados aplicacionais Prof. Adriano Teixeira de Souza
  • 17. Interface desacoplado da lógica de processamento dos dados troca de mensagens boa arquitectura 3-tier service Serviço Central Compras UI Data Layer Business Service Presentation Layer Façade Layer Dados e Lógica Negócio encapsulados por uma Web Service Standards Web Service Façade permitem ligações cross-platform Prof. Adriano Teixeira de Souza
  • 18. Facilitar o uso da API JAX-RPC e do modelo de implantação  Anotações baseados em JSR-181  Exemplo Básico: ◦ Anotações:  @WebService  @WebMethod  @WebParam  @WebResult Prof. Adriano Teixeira de Souza
  • 19. @WebService(name = "TravelAgent", serviceName="TravelAgentService") @Stateless public class TravelAgentBean implements TravelAgentRemote { @PersistenceContext(unitName="titan") private EntityManager manager; @WebMethod public void createCabin( @WebParam(name = "Cabin") Cabin cabin ) { manager.persist(cabin); } @WebMethod @WebResult(name = "Cabin") public Cabin findCabin(@WebParam(name = "ID") int pKey ) { return manager.find(Cabin.class, pKey); } } Prof. Adriano Teixeira de Souza
  • 20. Deve ser colocada na classe de implementação de bean de sessão sem informação de estado  @WebService(name,wsdlLocation,endpointInterface, portName) ◦ name: nome do serviço Web quando mapeado para WSDL. Assume como padrão o nome da classe Java ou interface. ◦ wsdlLocation: define a url do documento wsdl. ◦ endpointInterface: externaliza o contrato do serviço Web na forma de uma interface Web. ◦ portName: porta WSDL utilizada. Prof. Adriano Teixeira de Souza
  • 21. Métodos anotados com @WebMethod estarão disponíveis para o serviço Web.  Se a classe for anotada com @WebService e nenhum método com @WebMethod, todos os métodos estarão disponíveis no Web Service.  Boa prática de projeto para reduzir dependências entre módulos.  Atributo operationName é utilizado para definir a operação WSDL que o método anotado implementa. Se não especificado, o nome do método é utilizado. Prof. Adriano Teixeira de Souza
  • 22. Permite controlar o WSLD gerado para um método Java sinalizado com @WebMethod  Se o estilo for RPC/LITERAL(wsdl:part), o atributo name() configurará o nome wsdl:part  Exemplo (produz um wsdl): ◦ @WebMethod(OperationName = “CheckStatus”) ◦ Public int checkStatus( ◦ @WebParam(name = “ReservationID”) String reservationID ◦ @WebParam(name = “CustomerID”, mode = WebParam.Mode.OUT) javax.ws.Holder<Integer> customerID){  customerID.value = getCustomerID(reservationID);  Return status; } Prof. Adriano Teixeira de Souza
  • 23. Fornece a mesma funcionalidade pra valores de retorno que @WebParam oferece para parâmetros de métodos Prof. Adriano Teixeira de Souza
  • 24. Utilizar o atributo endpointInterface() da anotação @javax.jws.WebService.  O contrato dos serviços Web podem ser mantidos em uma interface Java externa.  Com essa metodologia, somente a anotação @WebService é requerida, as outras são opcionais.  Ao invés de manter tudo dentro da implementação EJB, todos os métodos na interface são expostos no serviço Web. Prof. Adriano Teixeira de Souza
  • 25. package com.titan.webservice; import javax.jws.WebService; @WebService public interface TravelAgentEndpoint{ public String makeReservation(…) } Bean de implementação que referencia a interface endpoint Import javax.jws.WebService; @WebService(endpointInterface = “com.titan.webservice.TravelAgentEndpoint”) public class TravelAgentBean implements TravelAgentEndpoint { // (implementação da interface opcional) Prof. Adriano Teixeira de Souza