Professional Documents
Culture Documents
Apresentaes
Nome Conhecimentos sobre Web Services Conhecimentos sobre PHP Expectativas referentes ao curso
Programa
Introduo Web Services O que so? Arquitetura Tecnologias XML WSDL SOAP UDDI Web Services com PHP
Introduo
Por que surgiram os Web Services ?
Reutilizao Disponibilidade Interoperabilidade 3.300 projetos em 2002 15,2 milhes de dlares at 2007
Vincius Costa de Souza - Julho de 2005 / 4
Web Services
O que so?
Web Services so componentes de software que independem de implementao ou de plataforma e podem ser descritos, publicados e invocados sobre uma rede atravs de mensagens padro XML.
Web Services
Arquitetura
Descri o do servio publicar
cliente
Solicitante de Servios
Descrio do servio
Web Services
Tecnologias
Tecnologias
XML
Tecnologias
XML
Atravs de XML esquemas possvel validar as informaes separadamente e descrever os atributos e caractersticas dos dados Duas partes s podem trocar informaes em XML e entender os elementos da mesma forma se compartilharem uma mesma definio sobre quais e como os elementos podem ser utilizados
Tecnologias
WSDL
A WSDL a linguagem padro XML utilizada para descrever interfaces de Web Services A WSDL dividida em trs elementos principais: definies de tipo de dados - determinam a estrutura e o contedo das mensagens. operaes abstratas - determinam as operaes possveis protocolos de ligao - determinam as formas de transmisso das mensagens pela rede at os destinatrios
Vincius Costa de Souza - Julho de 2005 / 10
Tecnologias
WSDL
Tecnologias
SOAP
O SOAP um protocolo para troca de informaes em ambiente descentralizado e distribudo que permite comunicao entre aplicaes de forma simples e completamente independente de sistema operacional, linguagem de programao ou plataforma A comunicao realizada atravs de trocas de mensagens, transmitidas em formato XML, incluindo os parmetros usados na chamada, bem como os dados de resultados. Tambm pode ser utilizado para invocar, publicar e localizar Web Services no registro UDDI
Vincius Costa de Souza - Julho de 2005 / 12
Tecnologias
SOAP
O SOAP pode ser utilizado em combinao com uma variedade de outros protocolos, como HTTP, SMTP, FTP, dentre outros. Tambm suporta Remote Procedure Call O modelo de dados SOAP oferece definies para tipos de dados como string, integer, float, double e date
Tecnologias
SOAP Um pacote SOAP possui as seguintes partes: Envelope: define o incio e o fim das mensagens, quem poder trat-las e se o tratamento obrigatrio ou opcional Cabealho: contm atributos opcionais das mensagens Corpo: contm os dados em XML Anexo: consiste de um ou mais documentos anexados a mensagem principal RPC: define como o modelo RPC (Remote Procedure call) interage com o SOAP, com o objetivo de invocar procedimentos em um sistema remoto. Codificao: define como representar dados simples e complexos a serem transmitidos nas mensagens
Vincius Costa de Souza - Julho de 2005 / 14
Tecnologias
SOAP
Tecnologias
SOAP
Tecnologias
UDDI
cliente consiga localiz-lo, e esta localizao pode ser feita atravs do UDDI, que uma especificao tcnica para descrever, descobrir e integrar Web Services Para isso, existe um registro global pblico, chamado UDDI business registry, no qual toda a informao est disponvel para consultas em geral. Entretanto, um registro privado pode adicionar controle de segurana para proteger os dados e prevenir acessos no autorizados
Vincius Costa de Souza - Julho de 2005 / 17
Tecnologias
UDDI
Remote Procedure Calls RPC so utilizadas para estabelecer e facilitar transaes entre dois sistemas remotos XML-RPC uma implementao de RPC que possibilita o transporte de dados em XML entre dois servidores utilizando o protocolo HTTP XML-RPC tollkit disponvel em: http://sourceforge.net/projects/phpxmlrpc Verso 1.1.1 de 30/06/2005
Vincius Costa de Souza - Julho de 2005 / 20
Classes
xmlrpc_client clientes xmlrpc_server - servidores xmlrpcmsg requisies ao servidor xmlrpcresp respostas do servidor xmlrpcval encapsula valores para XML-RPC
PHP Extension and Application Repository http://pear.php.net Repositrio de classes em PHP Licena livre Grande comunidade PEAR SOAP Client/Server for PHP implementao do protocolo SOAP e servios verso 0.9.1 Beta de 31/05/2005.
Vincius Costa de Souza - Julho de 2005 / 25
API desenvolvida em PHP Permite a criao de clientes e servidores Possui suporte embutido a WSDL. Instalao simplificada servidor Web com suporte a PHP biblioteca de classes nusoap.php http://sourceforge.ner/projects/nusoap A ltima verso estvel a 0.7.0 de 3/6/2005
Vincius Costa de Souza - Julho de 2005 / 28
<?php // incluso do arquivo de classes NuSOAP require_once('nusoap.php'); // criao de uma instncia do servidor $server = new soap_server; // registro do mtodo $server->register('hello'); // definio do mtodo como uma funo do PHP function hello($name) { return 'Hello '.$name; } // requisio para uso do servio $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA);
Vincius Costa de Souza - Julho de 2005 / 29
?>
<?php // incluso do arquivo de classes NuSOAP require_once('nusoap.php'); // criao de uma instncia do cliente $client = new soapclient('http://localhost/server1.php'); // chamada do mtodo SOAP $result = $client->call('hello',array('V SDSL')); // exibe o resultado print_r($result); ?>
Vincius Costa de Souza - Julho de 2005 / 30
<?php require_once('nusoap.php'); $client = new soapclient('http://localhost/server1.php'); // verifica se ocorreu erro na criao do objeto $err = $client->getError(); if ($err){ echo "<h2>Erro no construtor</h2><pre>".$err."</pre>"; } // chamada do mtodo SOAP $result = $client->call('hello',array('V SDSL')); // verifica se ocorreu falha na chamada do mtodo if ($client->fault){ echo "<h2>Falha</h2><pre>"; print_r($result); Vincius Costa de Souza - Julho de 2005 / 31 echo "</pre>";
}else{ // verifica se ocorreu erro na execuo do mtodo $err = $client->getError(); if ($err){ echo "<h2>Erro</h2><pre>".$err."</pre>"; }else{ // exibe o resultado echo "<h2>Result</h2><pre>".print_r($result)."</pre>"; } } // exibe a requisio e a resposta echo '<h2>Requisio</h2>'; echo '<pre>'.htmlspecialchars($client->request).'</pre>'; echo '<h2>Resposta</h2>'; echo '<pre>'.htmlspecialchars($client->response).'</pre>';
?>
...
5. Array Details
'Url 'ImageUrlSmall' 'ProductName 'Authors 'OurPrice'
4. Retorno
$result['Details']; $result['TotalResults'];
Vincius Costa de Souza - Julho de 2005 / 38
?>
A extenso SOAP do PHP 5 a primeira implementao do protocolo SOAP para PHP em C Possui algumas vantagens em relao a outras implementaes escritas em PHP, sendo a principal delas a velocidade. Essa extenso, ainda definida como experimental, pode ser utilizada para implementar servidores e clientes SOAP com suporte a SOAP 1.1, SOAP 1.2 e WSDL 1.1. Possui uma srie de funes pr-definidas
Vincius Costa de Souza - Julho de 2005 / 42
?>
// verifica erros na execuo do servio e exibe o resultado if (is_soap_fault($result)){ trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR); }else{ print_r($result); }
Vincius Costa de Souza - Julho de 2005 / 44
Referncias
http://www.w3.org/2002/ws/ W3C - Web Services Activity http://sourceforge.net/projects/nusoap/ NuSOAP project page http://www.xmlrpc.com Site oficial do XML-RPC http://pear.php.net/package/SOAP SOAP Package http://br.php.net/manual/pt_BR/ref.soap.php Site oficial do PHP http://www.w3.org/TR/soap/ SOAP http://www.w3.org/TR/wsdl WSDL http://www.w3.org/XML/ XML http://www.uddi.org/
OBRIGADO!