PDF de programación - Web Services con PHP

<<>>
Imágen de pdf Web Services con PHP

Web Services con PHPgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 31 de Enero del 2018)
3.277 visualizaciones desde el 31 de Enero del 2018
329,1 KB
14 paginas
Web Services con PHP

Introducción a los Web Services en PHP

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.

SOAP. Simple Object Access Protocol

Es un protocolo que permite la comunicación entre aplicaciones a través de mensajes por medio de
Internet. Es independiente de la plataforma, y del lenguaje. Esta basado en XML y es la base principal
de los Web Services. Los mensajes SOAP son documento XML propiamente dicho, pero esto lo
veremos más adelante cuando veamos un ejemplo de un mensaje SOAP.

Veamos como es la estructura básica del protocolo y la correspondiente explicación:

<?xml version="1.0"?>

<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
</soap:Header>
<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>
</soap:Envelope>

Explicación del código anterior:

<?xml version="1.0"?>
Como podemos ver en esta linea SOAP es un documento XML, y como tal, debe comenzar con el tag <?xml​.?> y la
versión correspondiente.

<soap:Envelope
Aquí se indica que comienza el envelope (sobre) del mensaje

xmlns:soap = "http://www.w3.org/2001/12/soap-envelope"
Un mensaje SOAP debe contener siempre un elemento envelope asociado con el namespace (espacio de nombres)
http://www.w3.org/2001/12/soap-envelope

Soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
En esta línea lo que se hace es indicar donde se encuentran definidos los tipos de datos utilizados en el documento.

<soap:Header>
Esta línea indica el comienzo del Header (encabezado). En esta sección se incluye información específica del mensaje,
como puede ser la autenticación.

</soap:Header>
Como todo documento XML los tags que son abiertos deben ser cerrados, esta línea indica la finalización del Header
(encabezado).

<soap:Body>
Aquí comienza el cuerpo del mensaje, en esta sección se incorpora toda la información necesaria para el nodo final. Por
ejemplo, los parámetros para la ejecución, o la respuesta a una petición.

<soap:Fault>
Cualquier tipo de fallo que se produzca será notificado en esta sección. La cual esta contenida dentro del cuerpo del
mensaje.

</soap:Fault>
Cierre de la sección Fault.

</soap:Body>
Indica el final del cuerpo del mensaje.

</soap:Envelope>
Fin del mensaje SOAP.

WSDL y UDDI

WSDL - Web Services Description Language

Es un protocolo basado en XML que describe los accesos al Web Service. Podriamos decir que es el
manual de operación del web service, porque nos indica cuales son las interfaces que provee el
Servicio web y los tipos de datos necesarios para la utilización del mismo.

Veamos un ejemplo de un documento WSDL:

<?xml version="1.0">
<definitions>
<types>
...
</types>
<message>
...
</message>
<portType>
...
</portType>
<binding>
...
</binding>
</definitions>
Explicación del código anterior:

<?xml version="1.0">

Este es otro documento XML, es por esto que debe comenzar con el tag <?xml .. ?>

<definitions>

Comienzo del documento, este tag agrupa a todos los demás.

<types>

Se definen los tipos de datos utilizados en el Web Service.

</types>

Fin de la definición de tipos.

<message>

Se definen los métodos y parámetros para realizar la operación. Cada message puede
consistir en una o más partes (parámetros).

</message>

Fin de la definición de los parámetros.

<portType>

Esta sección es la más importante, ya que se definen las operaciones que pueden ser
realizadas, y los mensajes que involucran (por ejemplo el mensaje de petición y el de
respuesta).

</portType>

Fin de la definición de las operaciones y mensajes.

<binding>

Se definen el formato del mensaje y detalles del protocolo para cada portType.

</binding>

Fin de la definición del formato del mensaje y detalles del protocolo para cada PortType.

</definitions>

Fin del documento WSDL

UDDI - Universal Discovery Description and Integration

Es un modelo de directorios para Web Services. Es una especificación para mantener directorios

estandarizados de información acerca de los Web Services, sus capacidades, ubicación, y
requerimientos en un formato reconocido universalmente. UDDI utiliza WSDL para describir las
interfaces de los Web Services.
Es un lugar en el cual podemos buscar cuales son los Servicios web disponibles, una especie de
directorio en el cual podemos encontrar los Web Services publicados y publicar los Web Services que
desarrollemos.

http://soapclient.com/uddisearch.html
http://uddi.org/find.html

Historia de los Web Services

Los Servicios Web surgieron ante una necesidad de estandarizar la comunicación entre distintas
plataformas (PC, Mainframe, Mac, etc.) y lenguajes de programación (PHP, C#, Java, etc.).

Anteriormente se habían realizado intentos de crear estándares pero fracasaron o no tuvieron el
suficiente éxito, algunos de ellos son DCOM y CORBA, por ser dependientes de la implementación del
vendedor DCOM - Microsoft, y CORBA - ORB (a pesar que CORBA de múltiples vendedores pueden
operar entre si, hay ciertas limitaciones para aplicaciones de niveles más altos en los cuales se
necesite seguridad o administración de transacciones).

Otro gran problema es que se hacía uso de RPC (Remote Procedure Call) para realizar la
comunicación entre diferentes nodos. Esto, ademá
  • Links de descarga
http://lwp-l.com/pdf8556

Comentarios de: Web Services con PHP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad