Your SlideShare is downloading. ×
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

4,439

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,439
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
226
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 UDDIConsumidor Provedor de do serviço serviços Prof. Adriano Teixeira de Souza
  • 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.  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 W3CTransporte 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
  • 11. Prof. Adriano Teixeira de Souza
  • 12. 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 ComprasData 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 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.  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")@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.  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;@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

×