Web Service

Propaganda
Universidade Federal de Juiz de Fora
Ciência da Computação
Sistemas Distribuídos
Professor Ciro Barbosa
Web Service
Plínio Antunes Garcia
Sam Ould Mohamed el Hacen
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 WebService?
O protocolo SOAP (Simple Object Access Protocol)em WebServices 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
Download