1 / 37

Java Web Services

Java Web Services. Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?. Web Services. Web Services O que é? Como surgiram? Quais suas vantagens? Como são implementados? XML SOAP UDDI WSDL. Java Web Services. Java Web Services Quais vantagens oferecem Pacotes para tratamento de XML

tyanne
Download Presentation

Java Web Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

  2. Web Services • Web Services • O que é? • Como surgiram? • Quais suas vantagens? • Como são implementados? • XML • SOAP • UDDI • WSDL

  3. Java Web Services • Java Web Services • Quais vantagens oferecem • Pacotes para tratamento de XML • Java Web Services Developer Pack

  4. Web Services • O que é? • Modo de acessar Serviços Remotos • Baseada em troca de mensagens XML • Modelo Cliente/Servidor • Evolução de RPC

  5. Web Services • São necessários três componentes: • Service Provider: Implementa o serviço e o publica • Service Repository: Publica o serviço • Service Requester: Busca o serviço no Repository e o utiliza

  6. Web Services • Fluxo: • 1) Service Provider cria o serviço e o publica no Service Repository; • 2) Service Requester procura o serviço no Service Repository; • 3) Service Repository devolve as informações sobre o serviço; • 4) Service Requester manda a operação para o Service Provider; • 5) Service Provider devolve o resultado da operação;

  7. Web Services • Como a informação é trocada • WSDL: Linguagem baseada em XML para descrever o serviço que está sendo oferecido; • SOAP: Linguagem baseada em XML, para troca de mensagem entre Requester e Provider • Ambas possuem mecanismos para efetuar validação (schemas); • Linguagens bem definidas.

  8. Web Services • WSDL (Web Service Description Language) • Descreve como se comunicar com Web Service; • Informações como: • Definição de tipos de dados • Operações suportadas • Endereços de rede • Formatos de dados para entrada e saída • ... • Pode ser gerada automaticamente por ferramentas como o java2wsdl;

  9. Web Services • SOAP (Simple Object Access Protocol) • Formato usado para troca de mensagens; • Possuem os dados que serão trocados pelos programas • Normalmente encapsulado em HTTP • Porém, outro protocolo poderia ser utilizado (ex: SMTP)

  10. Web Services • Exemplo SOAP • POST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "http://example.org/2001/06/quotes"<env:Envelope xmlns:env="http://www.w3.org/2001/06/soap-envelope" ><env:Body> <m:GetLastTradePrice    env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"    xmlns:m="http://example.org/2001/06/quotes">  <symbol>DIS</symbol> </m:GetLastTradePrice></env:Body></env:Envelope>

  11. Web Services • UDDI • Universal Description, Discovery, and Integration • Padrão da indústria para registro de Web Services • Variante: • ebXML: Padrão aberto para registro

  12. Web Services • Diferenças com RPC • Dados são transmitidos via XML • Facilidade para o programador • Dados são passados através de protocolos padrões, como HTTP • Serviços bem definidos (chamadas, parâmetros...) • Repositório de Serviços bem definido

  13. Web Services • Vantagens • Mecanismos projetados antes de começarem a ser usados • Interoperabilidade • Aplicações fracamente acopladas • Desvantagens • Segurança • Performance

  14. Java Web Services • Web Services são baseados em XML: • SOAP • WSDL • UDDI • Java procura prover soluções para lidar com XML • Ferramentas já desenvolvidas para desenvolver Java Web Services

  15. Java Web Services • Conjunto de pacotes para facilitar o tratamento de XML: • Java API for XML Processing (JAXP) • Java Architecture for XML Binding (JAXB) • Java API for Messaging (JAXM) • SOAP with Attachments API for Java (SAAJ) • Java API for XML-based RPC (JAX-RPC) • Java API for XML Registries (JAXR)

  16. Java Web Services

  17. Java Web Services • Java API for XML Processing (JAXP) • API utilizada para interpretar e transformar XMLs • Possui mecanismos de validação • Permite uso de DOM, SAX e XSLT • Algumas implementações: • Apache Xerces • Apache Crimson

  18. Java Web Services • Java Architecture for XML Binding (JAXB) • Procura associar um schema XML ao código Java • Binding Compiler cria classes a partir de Schemas • Através do método de Marshall, lê um documento XML e o converte em uma hierarquia de objetos. • Através do método unmarshall, cria um documento XML a partir de uma hierarquia de objetos.

  19. Java Web Services

  20. Java Web Services • Java API for XML Messaging (JAXM) • Propõe uma solução leve para sistemas com troca de mensagens baseadas em XML • Abstrai protocolos de comunicação (HTTP, SMTP,...)

  21. Java Web Services

  22. Java Web Services • JAXM • 5 Modos de operação • Assícrona • Assíncrona com ACK • Síncrona • Síncrona com ACK • Fire and Forget

  23. Java Web Services • SOAP with Attachments API for Java (SAAJ) • API para tratamento de mensagens SOAP • Antigamente fazia parte da JAXM • Troca de mensagens síncrona • JAXM normalmente usada para troca Assíncrona

  24. Java Web Services • Java API for XML-based RPC (JAX-RPC) • Especificação para realizar RPC via SOAP por HTTP • Similar a RMI, porém com o poder de acessar Web Services que não são Java.

  25. Java Web Services

  26. Java Web Services • JAX-RPC • Utiliza serviço a partir de 3 passos: • Obter uma instância do Stub • Configurar o serviço que devemos utilizar • Chamar o método

  27. Java Web Services • JAX-RPC 00 public class HelloClient { 01 public static void main(String[] args) { 02 try { 03 HelloIF_stub stub = 04 (HelloIF_stub)(new HelloWorld_Impl().getHelloIF() ); 05 stub.setProperty( javax.xml.rpc.Stub.ENDPOINT_ADDRESS_PROPERTY,args[0] ); 06 System.out.println(stub.sayHello("Duke!")); 07 } catch (Exception ex) { 08 ex.printStackTrace(); 09 } 10 } 11 }

  28. Java Web Services • JAX-RPC • Linhas 3 e 4 buscam o stub e o instanciam • Linha 5 configura o web service desejado: args[0] representa a URL do web service; • Linha 6 chama o método.

  29. Java Web Services • Java API for XML Registries (JAXR) • API que procura facilitar o acesso a repositórios de web services • Suporta ebXML (similar ao UDDI, porém um padrão aberto) e UDDI • Possui suporte tanto ao registro como a busca de web services

  30. Java Web Services

  31. Java Web Services • Java Web Services Developer Pack (JWSDP) • Distribuição da SUN para desenvolver Web Services • Provê pacotes que aumentam a segurança • Tomcat para Servidor de Servlets; • JSTL • Servidor de Registros

  32. Java Web Services • Vantagens • Pacotes proporcionam quase nenhum contato com o XML • Portabilidade de Java • J2EE proporciona escalabilidade

  33. Java Web Services • Ferramentas que auxiliam o desenvolvimento • Eclipse Web Tools Plataform • Stylos Studio • Altova XMLSpy

  34. Java Web Services • Eclipse Web Tools Plataform • Proporciona um pacote completo para J2EE: Editores HTML, JSP, CSS... • Browser próprio • Ferramentas de Teste • Desvantagem: Dependencia de outros pacotes (EMF, GMF) • Não está totalmente pronto para a versão final do Eclipse 3.1

  35. Java Web Services • Stylos Studio • Possui editores para todos estilos de XML • Possui suporte a WSDL e SOAP • Leve • Possui um pequeno suporte a Java • Porém sua interface não é muito boa

  36. Java Web Services • Altova XML Spy • Possui editores para todos estilos de XML • Possui suporte gráfico para montagem de XMLs SOAP e HTML • Possui suporte para depuração de mensagens SOAP

  37. Java Web Services • Conclusão: • Eclipse, por ser uma plataforma voltada para java, é a melhor opção. • XMLSpy provê um bom mecanismo de depuração baixo nível.

More Related