programação distribuída e paralela java web services 1 java web services daniel barden –...

37
Informática UFRGS Programação Distribuída e Paralela Java Web Services 1 Java Web Java Web Services Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

Upload: internet

Post on 22-Apr-2015

108 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 1

Java Web ServicesJava Web Services

Daniel Barden – 0789/01-1

Leonardo Golob – 2029/01-?

Page 2: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 2

Web Web ServicesServices

Web ServicesO que é?Como surgiram?Quais suas vantagens?Como são implementados?

XML SOAP UDDI WSDL

Page 3: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 3

Java Web Java Web ServicesServices

Java Web ServicesQuais vantagens oferecemPacotes para tratamento de XMLJava Web Services Developer Pack

Page 4: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 4

Web Web ServicesServices

O que é?Modo de acessar Serviços RemotosBaseada em troca de mensagens XMLModelo Cliente/ServidorEvolução de RPC

Page 5: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 5

Web Web ServicesServicesSão necessários três componentes:

Service Provider: Implementa o serviço e o publicaService Repository: Publica o serviçoService Requester: Busca o serviço no Repository e o utiliza

Page 6: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 6

Web Web ServicesServices

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;

Page 7: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 7

Web Web ServicesServices

Como a informação é trocadaWSDL: 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 ProviderAmbas possuem mecanismos para efetuar validação

(schemas);Linguagens bem definidas.

Page 8: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 8

Web Web ServicesServices

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;

Page 9: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 9

Web Web ServicesServices

SOAP (Simple Object Access Protocol)Formato usado para troca de mensagens;Possuem os dados que serão trocados pelos programasNormalmente encapsulado em HTTPPorém, outro protocolo poderia ser utilizado (ex: SMTP)

Page 10: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 10

Web Web ServicesServices

Exemplo SOAP POST /StockQuote HTTP/1.1

Host: 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>

Page 11: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 11

Web Web ServicesServices

UDDIUniversal Description, Discovery, and Integration Padrão da indústria para registro de Web ServicesVariante:

ebXML: Padrão aberto para registro

Page 12: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 12

Web Web ServicesServices

Diferenças com RPCDados são transmitidos via XML

Facilidade para o programadorDados são passados através de protocolos padrões, como

HTTPServiços bem definidos (chamadas, parâmetros...)Repositório de Serviços bem definido

Page 13: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 13

Web Web ServicesServices

VantagensMecanismos projetados antes de começarem a ser usadosInteroperabilidadeAplicações fracamente acopladas

DesvantagensSegurançaPerformance

Page 14: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 14

Java Web Java Web ServicesServices

Web Services são baseados em XML:SOAPWSDLUDDI

Java procura prover soluções para lidar com XML

Ferramentas já desenvolvidas para desenvolver Java Web Services

Page 15: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 15

Java Web Java Web ServicesServices

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)

Page 16: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 16

Java Web Java Web ServicesServices

Page 17: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 17

Java Web Java Web ServicesServices

Java API for XML Processing (JAXP)API utilizada para interpretar e transformar XMLsPossui mecanismos de validaçãoPermite uso de DOM, SAX e XSLTAlgumas implementações:

Apache Xerces Apache Crimson

Page 18: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 18

Java Web Java Web ServicesServices

Java Architecture for XML Binding (JAXB)Procura associar um schema XML ao código JavaBinding Compiler cria classes a partir de SchemasAtravé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.

Page 19: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 19

Java Web Java Web ServicesServices

Page 20: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 20

Java Web Java Web ServicesServices

Java API for XML Messaging (JAXM)Propõe uma solução leve para sistemas com troca de

mensagens baseadas em XMLAbstrai protocolos de comunicação (HTTP, SMTP,...)

Page 21: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 21

Java Web Java Web ServicesServices

Page 22: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 22

Java Web Java Web ServicesServices

JAXM5 Modos de operação

Assícrona Assíncrona com ACK Síncrona Síncrona com ACK Fire and Forget

Page 23: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 23

Java Web Java Web ServicesServices

SOAP with Attachments API for Java (SAAJ)API para tratamento de mensagens SOAPAntigamente fazia parte da JAXMTroca de mensagens síncrona

JAXM normalmente usada para troca Assíncrona

Page 24: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 24

Java Web Java Web ServicesServices

Java API for XML-based RPC (JAX-RPC)Especificação para realizar RPC via SOAP por HTTPSimilar a RMI, porém com o poder de acessar Web

Services que não são Java.

Page 25: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 25

Java Web Java Web ServicesServices

Page 26: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 26

Java Web Java Web ServicesServices

JAX-RPCUtiliza serviço a partir de 3 passos:

Obter uma instância do Stub Configurar o serviço que devemos utilizar Chamar o método

Page 27: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 27

Java Web Java Web ServicesServices

JAX-RPC00 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 }

Page 28: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 28

Java Web Java Web ServicesServices

JAX-RPCLinhas 3 e 4 buscam o stub e o instanciamLinha 5 configura o web service desejado: args[0]

representa a URL do web service;Linha 6 chama o método.

Page 29: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 29

Java Web Java Web ServicesServices

Java API for XML Registries (JAXR)API que procura facilitar o acesso a repositórios de web

servicesSuporta ebXML (similar ao UDDI, porém um padrão

aberto) e UDDIPossui suporte tanto ao registro como a busca de web

services

Page 30: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 30

Java Web Java Web ServicesServices

Page 31: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 31

Java Web Java Web ServicesServices

Java Web Services Developer Pack (JWSDP)Distribuição da SUN para desenvolver Web ServicesProvê pacotes que aumentam a segurançaTomcat para Servidor de Servlets;JSTLServidor de Registros

Page 32: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 32

Java Web Java Web ServicesServices

VantagensPacotes proporcionam quase nenhum contato com o

XMLPortabilidade de JavaJ2EE proporciona escalabilidade

Page 33: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 33

Java Web Java Web ServicesServices

Ferramentas que auxiliam o desenvolvimentoEclipse Web Tools PlataformStylos StudioAltova XMLSpy

Page 34: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 34

Java Web Java Web ServicesServices

Eclipse Web Tools PlataformProporciona um pacote completo para J2EE: Editores

HTML, JSP, CSS...Browser próprioFerramentas de TesteDesvantagem: Dependencia de outros pacotes (EMF,

GMF)Não está totalmente pronto para a versão final do Eclipse

3.1

Page 35: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 35

Java Web Java Web ServicesServices

Stylos StudioPossui editores para todos estilos de XMLPossui suporte a WSDL e SOAPLevePossui um pequeno suporte a JavaPorém sua interface não é muito boa

Page 36: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 36

Java Web Java Web ServicesServices

Altova XML SpyPossui editores para todos estilos de XML Possui suporte gráfico para montagem de XMLs SOAP e

HTMLPossui suporte para depuração de mensagens SOAP

Page 37: Programação Distribuída e Paralela Java Web Services 1 Java Web Services Daniel Barden – 0789/01-1 Leonardo Golob – 2029/01-?

InformáticaUFRGS

Programação Distribuída e Paralela Java Web Services 37

Java Web Java Web ServicesServices

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.