Escolar Documentos
Profissional Documentos
Cultura Documentos
Como estudo de caso, uma empresa que possui um sistema de vendas de grande porte,
que funciona todo em modo texto com auxílio de terminais para vendas e necessita
disponibilizar um serviço que possibilite a consulta de seus produtos. Esta possui uma
equipe de desenvolvimento que presta manutenção e conhece todo o funcionamento
interno.
Para que o WebService realize as ações esperadas no sistema precisamos abordar alguns
quesitos:
Os sistemas operacionais que trabalham com modo texto (por exemplo: Windows,
Linux), possibilitam o direcionamento da entrada e saída de informações de uma
determinada aplicação. Esse direcionamento é realizado por meio dos caracteres:
#include <stdio.h>
#include <string.h>
int main()
{
char nome[10];
/* printf(³Informe seu nome: ´); */
gets(nome);
printf("Ola %s!", nome);
return 0;
}
Mundo
s
Uma vez que o código estará sendo executado de maneira contínua, é preciso saber se
tudo ocorreu bem ou não. Isto pode ser validado retornando na primeira linha se a
operação foi realizada com sucesso (e retornar possíveis resultados a mais ± Listagem 3)
ou se ocorreu alguma falha (Listagem 4).
3
Produto A
10
1.99
Produto B
50
0.50
Produto C
5
0.50
ERRO
c
Neste exemplo, foi utilizada a linguagem PHP como intercâmbio para o sistema, porém
nada impede que outra linguagem seja utilizada. O que será disponibilizado na verdade
é uma função que armazena os parâmetros em um arquivo temporário, execute o código
com um direcionamento de entrada recuperando as saídas e eliminando o arquivo
temporário.
<?
require_once('nusoap.php');
$s = new soap_server;
$s->register('OlaMundo');
$s->service($HTTP_RAW_POST_DATA);
exit();
function OlaMundo($Nome)
{
$arquivo = tempnam(".","tmp");
return $retorno[0];
}
?>
<message name="OlaMundoSoapIn">
<part name="Nome" type="xsd:string" />
</message>
<message name="OlaMundoSoapOut">
<part name="return" type="tns:string" />
</message>
<portType name="SistemaWSPort">
<operation name="OlaMundo">
<input message="tns:OlaMundoSoapIn" />
<output message="tns:OlaMundoSoapOut" />
</operation>
</portType>
<message name="OlaMundoSoapIn">
<part name="Nome" type="xsd:string" />
</message>
<message name="OlaMundoSoapOut">
<part name="return" type="tns:string" />
</message>
<portType name="SistemaWSPort">
<operation name="OlaMundo">
<input message="tns:OlaMundoSoapIn" />
<output message="tns:OlaMundoSoapOut" />
</operation>
</portType>
<service name="SistemaWS">
<documentation>Ola Mundo utilizando PHP e aplicacao Modo
Texto.</documentation>
<port name="SistemaWSPort" binding="tns:SistemaWSBinding">
<soap:address location="http://10.0.0.2:8080/~jeh/SistemaWS.php" />
</port>
</service>
</definitions>
<?
require_once('nusoap.php');
$soapclient = new soapclient('http://10.0.0.2:8080/~jeh/SistemaWS.WSDL', 'wsdl');
?>
<html>
<?
echo $soapclient->call('OlaMundo', array( 'Nome' => 'Jeferson'));
?>
</html>
( !
php.net: http://www.php.net/
NuSOAP: http://dietrich.ganx4.com/nusoap/