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 ...
Um Web Service é:   Qualquer serviço que é disponibilizado através da    web.   Qualquer serviço que possibilita duas ap...
   Comunicação entre aplicações de WS usam 4 camadas que    empacotam a requisição e a resposta entre o servidor e o clie...
Registro               UDDIConsumidor                        Provedor de do serviço                         serviços      ...
   Web Service Description Language   Esforço da W3CDescreve interface para consumirum Serviço Web     - Interface: oper...
   Marcação XML para descrever serviços disponíveis em uma    rede   Descreve a interface, protocolos de ligação e entre...
   Universal Description, Discovery, and Integration Protocol   Diretório independente de plataforma de descrição para S...
   Simple Object Access Protocol   Recomendação W3CTransporte de dados XML:     - emissor / receptor     - ligação de pr...
   Protocolo para troca de informações estruturadas em uma    plataforma descentralizada e distribuída, utilizando tecnol...
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  ...
   Integrar sistemas heterogêneos dentro de    empresas;   Integrar sistemas remotos através da    Internet;   Integrar...
   INTEGRAÇÃO    ◦ Interna:      Dados como nome, endereço, telefone, matrícula, etc,       todas as áreas da empresa ut...
boa arquitectura              DNA                 Aplicação Central ComprasData Layer              Business             Pr...
Interface desacoplado                                                                    da lógica de                     ...
   Facilitar o uso da API JAX-RPC e do modelo de    implantação   Anotações baseados em JSR-181   Exemplo Básico:    ◦ ...
@WebService(name = "TravelAgent", serviceName="TravelAgentService")@Statelesspublic class TravelAgentBean implements Trave...
   Deve ser colocada na classe de implementação    de bean de sessão sem informação de estado   @WebService(name,wsdlLoc...
   Métodos anotados com @WebMethod estarão disponíveis    para o serviço Web.   Se a classe for anotada com @WebService ...
   Permite controlar o WSLD gerado para um método    Java sinalizado com @WebMethod   Se o estilo for RPC/LITERAL(wsdl:p...
   Fornece a mesma funcionalidade pra valores de    retorno que @WebParam oferece para parâmetros    de métodos          ...
   Utilizar o atributo endpointInterface() da anotação    @javax.jws.WebService.   O contrato dos serviços Web podem ser...
package com.titan.webservice;import javax.jws.WebService;@WebServicepublic interface TravelAgentEndpoint{  public String m...
Upcoming SlideShare
Loading in...5
×

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

4,563

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
4,563
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
234
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. Comunicação Distribuída – Web Services Prof. Adriano Teixeira de Souza
  2. 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. 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. 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. 5. Registro UDDIConsumidor Provedor de do serviço serviços Prof. Adriano Teixeira de Souza
  6. 6.  Web Service Description Language Esforço da W3CDescreve interface para consumirum 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. 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. 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. 9.  Simple Object Access Protocol Recomendação W3CTransporte de dados XML: - emissor / receptor - ligação de protocolo - aspectos de comunicação - conteúdo Prof. Adriano Teixeira de Souza
  10. 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
  11. 11. Prof. Adriano Teixeira de Souza
  12. 12. Prof. Adriano Teixeira de Souza
  13. 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. 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. 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. 16. boa arquitectura DNA Aplicação Central ComprasData Layer Business Presentation Layer Layer Interface da aplicação dá acesso aos dados aplicacionais Prof. Adriano Teixeira de Souza
  17. 17. Interface desacoplado da lógica de processamento dos dados troca de mensagens boa arquitectura 3-tier service Serviço Central Compras UIData 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. 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. 19. @WebService(name = "TravelAgent", serviceName="TravelAgentService")@Statelesspublic 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. 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. 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. 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. 23.  Fornece a mesma funcionalidade pra valores de retorno que @WebParam oferece para parâmetros de métodos Prof. Adriano Teixeira de Souza
  24. 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. 25. package com.titan.webservice;import javax.jws.WebService;@WebServicepublic interface TravelAgentEndpoint{ public String makeReservation(…)}Bean de implementação que referencia a interface endpointImport javax.jws.WebService;@WebService(endpointInterface = “com.titan.webservice.TravelAgentEndpoint”)public class TravelAgentBean implements TravelAgentEndpoint {// (implementação da interface opcional) Prof. Adriano Teixeira de Souza
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×