La evolución del Web
El World Wide Web ha pasado de ser un medio para la publicación de información y contenidos, a convertirse en una plataforma para el diseño y desarrollo de aplicaciones informáticas distribuidas
El navegador se ha convertido en un “cliente universal” que facilita el desarrollo de aplicaciones y la adopción de nuevas soluciones tecnológicas, al reducir costes de mantenimiento.
A lo largo del pasado año se ha popularizado un nuevo paradigma en el diseño de aplicaciones informáticas para la web: los llamados web services (servicios web).
La evolución del Web
En el modelo de aplicación web “tradicional” encontramos una importante limitación: la interacción comienza y termina en dos puntos claramente definidos: la petición del usuario y la respuesta de la aplicación informática.
Únicamente son dos los “interlocutores” que participan en este proceso
En cada intercambio de información que se produce, la aplicación informática debe “construir” una página resultado en formato HTML para presentar la información al usuario.
¿Qué sucedecería si la aplicación informática tuviese que recurrir a un tercer sistema informático para satisfacer la petición cursada por el usuario?
La evolución del Web
Un servicio web se suele definir como una unidad de aplicación capaz de ofrecer datos o servicios de procesamiento a otras aplicaciones informáticas.
Así, una aplicación podría ofrecer distintos servicios a otras aplicaciones. Las características de estos servicios son:
Que se solicitan a través del web
Que los resultados de su ejecución también se devuelven a la aplicación peticionaria a través del web
Que se tramitan según un modelo “estandarizado”.
La evolución del Web
El concepto de servicio web está arropado por una serie de estándares publicados por el W3C y apoyados por los principales fabricantes de tecnología (IBM, Microsoft, etc.),
Estos estándares señalan cómo se deben cursar las peticiones de servicio a servidores remotos, la forma en la cual éstos deben enviar los resultados, y cómo se deben publicar o dar a conocer los servicios que están accesibles a través de un servidor web.
Ninguno de estos estándares trata la forma en la que debe implementarse o programarse el servicio en sí mismo. En este punto, se deja libertad absoluta a los fabricantes y proveedores para elegir el lenguaje de programación que deseen utilizar.
Qué es un servicio web
Un servicio web consiste en una función disponible en un servidor conectado al web. Esta función puede consistir en cualquier cosa:
Realizar un simple cálculo con unos datos que se le envían como parámetro,
Acceder a una base de datos para recuperar un conjunto de registros,
Validar la corrección de una información o contrastarla frente a otros datos, etc.
El servicio web podrá ser solicitado desde otro programa informático que se ejecute en un ordenador conectado al web. Junto a la solicitud de la ejecución, se pueden enviar al ordenador que ofrece el servicio unos parámetros que el servicio web remoto tomará como base para el cálculo o la función.
Qué es un servicio web
La aplicación que actúa como cliente debe conocer:
La URL del servidor remoto que ofrece el servicio,
El nombre del servicio que se solicita, y
Los parámetros que se deben enviar junto con la llamada al servicio.
Estos datos se enviarán mediante HTTP
El servidor que ofrece el servicio web leerá los parámetros que se le han enviado, llamará a un componente o programa encargado de implementar el servicio, y los resultados que se obtengan de su ejecución serán devueltos al servidor que solicitó la ejecución del servicio.
Estándares para servicios web
Los servicios web se definen a partir de las siguientes especificaciones:
SOAP (Simple Object Access Protocol)
WSDL (Web Services Description Language)
UDDI (Universal Description, Discovery and Integration)
Del mantenimiento de las dos primeras, SOAP y WSDL se encarga el W3C. En el caso de UDDI, se trata de un proyecto en el que participan distintas empresas
El lenguage XML constituye la base de todos ellos.
SOAP (Simple Object Access Protocol)
La especificación SOAP indica cómo se deben codificar los mensajes que circularán entre las dos aplicaciones.
Fue definido inicialmente por Microsoft, Userland Software y DevelopMentor, a día de hoy se trata de una especificación mantenida por el W3C que cuenta con el apoyo de otros fabricantes como IBM, HP, Oracle, etc.
La especificación SOAP define dos modelos de mensajes:
Un mensaje que se enviará desde la aplicación cliente a la aplicación servidor, solicitando la ejecución de un método al que se pasan una serie de parámetros.
Un mensaje que se enviará desde la aplicación servidor a la cliente, y que contendrá datos XML con los resultados de la ejecución del método solicitado.
Ejemplo mensaje SOAP petición
< ?xml version="1.0" encoding="UTF-8" ?>
< SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/encoding/">
< SOAP-ENV:Header>
< /SOAP-ENV:Header>
< SOAP-ENV:Body>
< catalogo:buscaIsbn xmlns:catalogo="http://catalogo.org/cat">
< catalogo:isbn>
84-4553-3334-2X
< /catalogo:isbn>
< /catalogo:buscaIsbn>
< /SOAP-ENV:Body>
< /SOAP-ENV:Envelope>
Ejemplo mensaje SOAP respuesta
< ?xml version="1.0" encoding="UTF-8" ?>
< SOAP-ENV:Envelope xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/encoding/">
< SOAP-ENV:Header>
< /SOAP-ENV:Header>
< SOAP-ENV:Body>
< catalogo:buscaIsbnResponse xmlns:catalogo="http://catalogo.org/cat">
< catalogo:titulo>
Catalogar materiales especiales
< /catalogo:titulo>
< catalogo:autor>Marta de Juanes< /catalogo:autor>
< /catalogo:buscaIsbnResponse>
< /SOAP-ENV:Body>
< /SOAP-ENV:Envelope>
Implementar SOAP
Para facilitar la creación y el formateo de los mensajes SOAP que deben intercambiar las aplicaciones web, los programadores disponen de distintas utilidades y aplicaciones
Estas implementaciones incluyen utilidades para generar los mensajes a partir de componentes
Actualmente existen ciertas “diferencias” en las implementaciones de los distintos fabricantes
WSDL (Web Services Description Language)
Permite describir los distintos métodos o funciones que están disponibles en un servicio web, así como su signatura, es decir, el número de argumentos o parámetros que se les debe pasar, y el tipo de dato que devolverá la función como resultado.
Se establece una equivalencia entre el documento WSDL y un “contrato” que especifica los servicios que el servidor se compromete a ofrecer al cliente, siempre que éste los solicite de la forma adecuada
Página siguiente |