Upload
lequynh
View
214
Download
0
Embed Size (px)
Citation preview
Web Service Plínio Antunes Garcia
Sam Ould Mohamed el Hacen
Universidade Federal de Juiz de Fora
Ciência da Computação
Sistemas Distribuídos
Professor Ciro Barbosa
Sumário
• Introdução conceitual • O Web Service • Protocolo SOAP • Arquitetura
• Tutorial • Instalando um servidor (Apache Tomcat) • Implementando um Web Service • Criando um cliente (Java) • Criando um cliente (PHP)
O Web Service
• Solução para comunicação entre aplicações via Internet
• Permite a utilização de serviços independente da
plataforma ou do sistema
• Instituições responsáveis pela padronização:
W3C e OASIS
• Ex.: Comércio eletrônico
Arquitetura
• Protocolo SOAP (Simple Object Access Protocol)
▫ Controla a transmissão (via HTTP) dos dados entre as aplicações
▫ Detalha como a informação deve ser organizada
▫ Monta e transmite o WSDL
• WSDL (Web Service Description Language)
▫ Documento em XML que descreve o serviço, como acessá-lo e quais métodos disponíveis
Arquitetura (modelo cliente/servidor)
•
Tutorial
• Objetivos:
▫ Instalar um servidor de web service
▫ Criar um Web Service simples em Java utilizando o protocolo SOAP (Simple Object Access Protocol)
▫ Implementar um cliente em Java e um cliente em PHP
(Fonte: JavaFree.com.br)
Instalando o servidor
• Será utilizado o servidor Tomcat para executar um framework de Web Service chamado Axis
• Axis: Framework da Apache que implementa o
protocolo SOAP
• 1) Baixe e instale o Tomcat (executável)
http://tomcat.apache.org/
• 2) Baixe o Axis (.zip ou .tar) http://axis.apache.org/axis/
Instalando o servidor
• 3) Descompacte a pasta do Axis e navegue até /webapps/axis
• 4) Mova a pasta axis para a pasta webapps do tomcat ▫ Ex.: (C:\Program Files\Apache Software
Foundation\Tomcat 6.0\webapps\axis)
• 5) Reinicie o Tomcat
• 6) Faça o teste: http://localhost:8080/axis/
Instalando o servidor
Criando um Web Service simples
• 1) Crie uma classe Java com os métodos de seu serviço e salve com a extensão .jws na pasta axis
Criando um Web Service simples
• 2) Teste http://localhost:8080/axis/Servico.jws
• O Axis cria de forma transparente os arquivos de definição WSDL (XML)
• Teste de um serviço via URL http://localhost:8080/axis/Servico.jws?method=fatorial&n=4
Criando um cliente em JAVA
• 1) A pasta lib do .zip Axis deve estar no classpath da
aplicação pois
utilizaremos as classes Service e Call do Axis
Criando um cliente em JAVA
• 2) Cliente.java
import org.apache.axis.client.Service; import org.apache.axis.client.Call; public class Cliente { public static void main(String[] args) throws Exception { // Endereço, local onde encontra-se o Web Service String local = "http://localhost:8080/axis/Servico.jws"; // Criando e configurando o serviço Call call = (Call) new Service().createCall(); // Configurando o endereço. call.setTargetEndpointAddress(local); // Marcando o método a ser chamado. call.setOperationName("soma"); // Parâmetros da função soma. Object[] param = new Object[]{new Integer(25),new Integer(4)}; // Retorno da Função Integer ret = (Integer)call.invoke(param); // Imprime o resultado: System.out.println("Resultado da soma : " + ret); } }
Criando um cliente em PHP 1) Antes de tudo, é preciso um servidor PHP para
rodar o .php (exemplo: XAMPP e Vertrigo)
• Classe soapclient.php http://php.net/manual/en/class.soapclient.php
• No PHP 5 a classe já vem instalada
Criando um cliente em PHP
• 2) cliente.php _
<?php // Endereço, local onde encontra-se o Web Service $wsdl = "http://localhost:8080/axis/Servico.jws?wsdl"; $valor1 = 5; $valor2 = 234; // Instanciando um objeto soapclient $cliente = new soapclient($wsdl); print "<p>Resultado da soma $valor1 + $valor2: "; $ret = $cliente->__call('soma',array($valor1, $valor2)); print $ret; print "</p>"; ?>
Conclusão
• Mostramos a finalidade essencial de um Web Service: promover o acesso à serviços via web
independente da plataforma dos clientes.
Referências
• COLPANI, C. F., VALDAMERI, A. F., Web Services: estudo de caso envolvendo uma aplicação B2B,
FURB, 2003. < http://www.inf.furb.br/seminco/2003/artigos/94-vf.pdf>
• W3C WORLD WIDE WEB CONSORTIUM. Simple object access protocol (SOAP). Estados Unidos, maio 2000b. Disponível em <http://www.w3.org/XML>.
Questões sobre WS
Para que serve o WSDL no uso de Web-Services? WSDL é uma linguagem, baseada em XML, que descreve um Web-Service especificando como acessá-lo e quais métodos compõe o serviço. Qual o papel do SOAP no contexto de aplicações Web-Service? O protocolo SOAP (Simple Object Access Protocol)em Web-Services tem o papel de controlar a transmissão (via HTTP) dos dados entre as aplicações envolvidas. SOAP também é responsável por detalhar como a informação deve ser organizada além de montar e transmitir o WSDL do serviço.
Qual o ciclo de vida de um Web-Service? O ciclo de vida de um Web-Service compreende quatro estados distintos: Publicação, Descoberta, Descrição e Invocação. Publicação: Processo, opcional, através do qual o fornecedor do Web Service possa conhecer a existência do seu serviço, efetuando o registro do mesmo no repositório de Web Services (UDDI); Descoberta: Processo, opcional, através do qual uma aplicação cliente toma conhecimento da existência do Web Service pretendido pesquisando num repositório UDDI; Descrição: Processo pelo qual o Web Service expõem a sua API (documento WSDL); desta maneira a aplicação cliente tem acesso a toda a interface do Web Service, onde se encontram descritas todas as funcionalidades por ele disponibilizadas, assim como os tipos de mensagens que permitem processar as rotinas; Invocação: Processo pelo qual cliente e servidor interagem, através do envio de mensagens de entrada e de eventual recepção de mensagem de saída do Web Service.
Referência:
CAMPOS, M. C., Interoperabilidade Entre Sistemas Distribuídos Utilizando Web Services, UNIRONDON