usabilidadweb.com.ar

Diseño natural, usable, seguro, accesible

Curso Introducción a los Servicios Web

© Carlos D. González - Update: Oct - 2008
Contacto: usabilidadweb @ usabilidadweb.com.ar

Existen múltiples definiciones sobre lo que son los Servicios Web, lo que muestra su complejidad a la hora de dar una adecuada definición que englobe todo lo que son e implican. Una posible sería hablar de ellos como un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamando a estos procedimientos a través de la Web.

Los servicios Web no son realmente nada nuevo, y actualmente, si ha utilizado RSS o Atom para leer noticias desde un sitio web, tiene una idea de como funciona un servicio Web.

Los servicios Web intercambian datos desde un servidor al cliente, utilizando el formato XML para enviar las peticiones, de modo que tanto el servidor como el cliente puede entenderse.

El Curso Web Services

El curso de web service propone, a un alumno ya avanzado, la comprensión de la esencia de los mismos, a partir de ello, se desarrollarán aplicaciones de servicios web. Los proyectos que se programarán son completos y se observarán operativos. Exigen el conocimiento previo de XML / XSL / XPath / DOM / PHP 5 / MySQL / SQL.

Durante el curso de Servicios web se desarrollarán las siguientes aplicaciones:

  • Un proyecto de Web Service, donde trabajaremos con XML, XSLT, PHP 5, PEAR y MySQL; en este ejemplo desarrollaremos paso a paso todas las instancias que participan en el desarrollo de un Servicio Web
  • Un proyecto de web service, en el desarrollo se utilizarán: XML, XSLT, PHP 5 y MySQL
  • Un proyecto completo de Web Service XML-RPC
  • Web Service cliente con XSLT y XML dinámico
  • Creación de APIs en PHP 5

El curso de Servicios web requiere haber completado los cursos MySQL - PHP 5 y XML - XSLT - XPath / Mysql / PHP 5

Razones para crear servicios Web

La principal razón para usar servicios Web es que se basan en HTTP sobre TCP (Transmission Control Protocol) en el puerto 80. Dado que las organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran parte del tráfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web utilizan este puerto, por la simple razón de que no resultan bloqueados.

Otra razón es que, antes de que existiera SOAP, no había buenas interfaces para acceder a las funcionalidades de otros ordenadores en red. Las que había eran ad hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC, u otras APIs (Application Programming Interface).

Una tercera razón por la que los servicios Web son muy prácticos es que pueden aportar gran independencia entre la aplicación que usa el servicio Web y el propio servicio. De esta forma, los cambios a lo largo del tiempo en uno no deben afectar al otro. Esta flexibilidad será cada vez más importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos más pequeños es cada día más utilizada.

XML (Extensible Markup Language): Es el formato estándar para los datos que se vayan a intercambiar.


Info sobre Web Services

Representational State Transfer - REST

La Transferencia de Estado Representacional (Representational State Transfer) o (REST) es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web. El término se originó en el año 2000, en una tesis doctoral sobre la web escrita por Roy Fielding, uno de los principales autores de la especificación del protocolo HTTP, y ha pasado a ser ampliamente utilizado por la comunidad de desarrollo.

Si bien, el término REST, se refería originalmente a un conjunto de principios de arquitectura (descritos más abajo), en la actualidad se usa en el sentido más amplio para describir cualquier interfaz web simple que utiliza XML y HTTP, sin las abstracciones adicionales de los protocolos basados en patrones de intercambio de mensajes como el protolo de servicios web SOAP. Es posible diseñar sistemas de servicios web de acuerdo con el estilo arquitectural REST de Fielding, y también es posible diseñar interfaces XMLHTTP de acuerdo con el estilo de llamada a procedimiento remoto pero sin usar SOAP. Estos dos usos diferentes del término REST causan cierta confusión en las discusiones técncias, aunque RPC no es un ejemplo de REST.


Principios

REST afirma que la web ha disfrutado de escalabilidad como resultado de una serie de diseños fundamentales clave:

  • Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la información necesaria para comprender la petición. Como resultado, ni el cliente ni el servidor necesitan recordar ningún estado de las comunicaciones entre mensajes. Sin embargo, en la práctica, muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el estado de la sesión (algunas de estas prácticas, como la reescritura de URLs, no son permitidas por REST)
  • Un conjunto de operaciones bien definidas que se aplican a todos los recursos de información: HTTP en sí define un conjunto pequeño de operaciones, las más importantes son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a las operaciones CRUD que se requieren para la persistencia de datos, aunque POST no encaja exactamente en este esquema
  • Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es direccionable únicamente a través de su URI
  • El uso de hipermedios, tanto para la información de la alicación como para las transiciones de estado de la aplicación: la representación de este estado en un sistema REST son típicamente HTML o XML. Como resultado de esto, es posible navegar de un recurso REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra infraestructura adicional

Ventajas de REST

  • Mejores tiempos de respuesta y disminución de carga en servidor
  • Mayor escalabilidad al no requerir mantenimiento de estado
  • Facilita desarrollo de clientes
  • Mayor estabilidad frente a futuros cambios
  • Permite evolución independiente de los tipos de documentos
  • La creación de nuevos tipos de documentos no afecta a los anteriores

Servicios Web XML-RPC

Es un protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes. Es un protocolo simple ya que sólo define unos cuantos tipos de datos y comandos útiles, además de una descripción completa de corta extensión. La simplicidad del XML-RPC está en contraste con la mayoría de protocolos RPC que tiene una documentación extensa y requiere considerable soporte de software para su uso.


SOAP

SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar creado por Microsoft, IBM y otros, está actualmente bajo el auspicio de la W3C que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los servicios Web.


Referencias

  • Developer Mozilla, Web Services
  • W3C - Guias breves de tecnologías
  • Wiki



Página del Autor de Usabilidad web |

Stds W3C, PHP, MySQL, PostgreSQL, SQLite ...
Desarrollo de software basado en web
Desarrollo de software en C++, JAVA y PYTHON
Consultor independiente: Usabilidad, AI, y Estándares web W3C |
Cursos en Buenos Aires, Argentina
http://www.usabilidadweb.com.ar/