programação distribuída e paralela java web services 1 java web services daniel barden –...
TRANSCRIPT
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-?
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
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
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
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
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;
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.
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;
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)
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>
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
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
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
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
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)
InformáticaUFRGS
Programação Distribuída e Paralela Java Web Services 16
Java Web Java Web ServicesServices
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
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.
InformáticaUFRGS
Programação Distribuída e Paralela Java Web Services 19
Java Web Java Web ServicesServices
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,...)
InformáticaUFRGS
Programação Distribuída e Paralela Java Web Services 21
Java Web Java Web ServicesServices
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
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
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.
InformáticaUFRGS
Programação Distribuída e Paralela Java Web Services 25
Java Web Java Web ServicesServices
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
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 }
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.
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
InformáticaUFRGS
Programação Distribuída e Paralela Java Web Services 30
Java Web Java Web ServicesServices
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
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
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
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
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
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
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.