quarta-feira, junho 15, 2005

Mas o que raio é SOAP (I) ?


Para quem anda a iniciar-se no fantástico mundo dos Web Services, começa a levar com uma "palete" de siglas e acrónimos, dos quais os que sobressaem mais são dois: WSDL e SOAP. Sobre WSDL vou-me debruçar num artigo seguinte, por enquanto vou ocupar-me do SOAP. Ao contrário do que se possa pensar, SOAP não tem nada a ver com "sabão", mas provavelmente foi escolhido com o propósito de ficar com um signficado sugestivo. SOAP quer dizer Simple Object Access Protocol e é um protocolo baseado em XML, tal como todos os protocolos que se usam nos Web Services. Este protocolo foi criado para definir as mensagens que os Web Services usam . Apesar de usar XML, e por via disso vir num formato de texto que é legível por seres humanos, tal permite a sua flexibilidade e extensibilidade a toda uma variedade de necessidades diferentes. A mensagem SOAP é constituída por duias partes: um "envelope" que define toda a mensagem e que se separa em duas partes: Cabeçalho (Headers) e Corpo (Body).

Um pequeno exemplo do que pode ser o aspecto duma mensagem SOAP aparece de seguida:



<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope

SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">


<SOAP-ENV:Body>
<doCheck>
<arg0 xsi:type="xsd:string">947-TI</arg0>
<arg1 xsi:type="xsd:int">1</arg1>
</doCheck>
</SOAP-ENV:Body>

</SOAP-ENV:Envelope>


O cabeçalho contém normalmente informação sobre os XML Schemas
que definem os namespaces em utilização na mensagem e o corpo
contém a informação propriamente dita.