> Manuales > Web Services con PHP

Explicamos qué son los servicios web y cuales son los elementos por los que están compuestos.

El presente artículo esta dirigido a las personas que ya poseen conocimientos sobre Internet y programación y quieren comenzar a conocer el mundo de los web services (servicios web).

¿Cómo esta estructurado el artículo?

Comenzaremos dando una introducción a lo que son los Web Services (Servicios Web), luego definiremos los elementos que lo componen, y al finalizar veremos un ejemplo de cómo utilizar un web service por medio de NuSOAP, para el cual utilizaremos dos archivos PHP.

En el apéndice pueden encontrar el código de los dos archivos que consumen el web service para poder verlos en línea, o bajarlos comprimidos (ZIP). El archivo comprimido también provee de otros archivos de soporte.

Introducción:

Antes de comenzar explicando NuSoap, creo que es conveniente realizar una introducción a lo que son los Servicios Web, y para esto debemos comenzar con la definición de Web Service.

Web Service:

Es un sistema software diseñado para soportar la interoperabilidad máquina - máquina a través de una red. Este tiene una interfaz descripta en un formato que puede ser procesado por una máquina (específicamente WSDL, que veremos más adelante). Otros sistemas interactúan con el Web service utilizando mensajes SOAP los cuales se encuentran establecidos previamente.

Entonces podríamos decir que un Web Service es una comunicación por medio de mensajes SOAP (son mensajes especiales que más adelante veremos detenidamente) entre diferentes equipos a través de una red.

Ahora pasaremos a definir los elementos que componen a los Web Services, para luego ver como ellos estan interrelacionados.

¿Qué es XML, SOAP, WSDL, UDDI?

Para conocer cómo se realiza el intercambio de mensajes en los Web Services debemos primero saber cuales son los elementos fundamentales que lo componen. Estos son el XML, SOAP, WSDL, y UDDI.

XML - eXtensible Markup Language:

Es un subconjunto simplificado del SGML el cual fue diseñado principalmente para documentos Web. Deja a los diseñadores crear sus propias “etiquetas” o "tags" (Ej: <libro>), habilitando la definición, transmisión, validación, y la interpretación de datos entre aplicaciones y entre organizaciones. Un punto que considero que es importante aclarar es que el HTML y el XML tienen funciones diferentes. El HTML tiene por objeto mostrar información, mientras que el XML se ocupa de la información propiamente dicha (el contenido). Este concepto es importante tenerlo en cuenta, ya que muchas personas al escuchar sobre XML piensan que es el sucesor de HTML.

Ejemplo de un documento XML sobre información de autos:

<?xml version="1.0" encoding="UTF-8"?> 
<vehiculos>
<coche>
<marca>Toyota</marca>
<modelo>Corolla</modelo>
<fechaCompra>2002</fechaCompra>
</coche>
<coche>
<marca>Honda</marca>
<modelo>Civic</modelo>
<fechaCompra>2003</fechaCompra>
</coche>
</vehiculos>
Seguramente este tipo de archivos no sea una novedad para la mayoría de los que lean este artículo, ya que muchos documentos en Internet están en formato XML. Igualmente explicaremos brevemente las secciones del mismo:

<?xml version="1.0" encoding="UTF-8"?>
Todo documento XML debe comenzar indicando que es un documento XML, la versión del mismo y su codificación. Es por eso que se utiliza el tag <?xml .... ?> . Todos los elementos a partir de aquí son definidos por el usuario.

<vehiculos>
Luego se indica un tag raiz (<vehiculos>) el cual contendrá a los demás elementos. Es como en HTML el tag <HTML> .. </HTML>, que dentro de el se encuentran los demás tags. Se lo conoce generalmente como root del documento.

<coche>
Luego definimos un tag <coche> el cual contendrá un coche en particular (en este caso solo incorpore 3 características de un coche: marca, modelo, y fecha de compra).

<marca>Toyota</marca>
<modelo>Corolla</modelo>
<fechaCompra>2002</fechaCompra>
Se definen 3 tags (marca, modelo, y fechaCompra), los cuales contienen los datos para un coche en particular.

<vehiculos>
   <coche>
      <marca>..</marca>
      <modelo>..</modelo>
      <fechaCompra>..</fechaCompra>
   </coche>
</vehiculos>
En el documento podemos apreciar que todos los tags que son abiertos <marca> deben ser cerrados </marca>. Esto es una exigencia del XML.

Se pueden anidar tags <coche><marca></marca>…..</coche>. Marca esta dentro del tag coche. El XML provee muchas otras posibilidades como puede ser que las etiquetas tengan atributos (<coche color="rojo">..</coche>), pero no nos detendremos en ellas ya que la idea es simplemente ofrecer los conceptos básicos para conocer de que se trata el mundo de los Web Services.

Orlando Fabián Brea

Manual