Carlos Arturo Vega Lebrún
Esta página muestra parte del texto pero sin formato.
Puede bajarse la tesis completa en PDF comprimido ZIP
(189 páginas, 1.20 Mb) pulsando aquí
En términos generales, la evolución del uso de Servicios Web en las organizaciones está fuertemente ligada al desarrollo de Internet como red prestadora de servicios. Entre los factores que han impulsado el uso de los servicios Web se encuentran:
El contenido se está volviendo más dinámico: Los sitios Web actuales proporcionan contenidos “instantáneos”. Un Servicio Web debe ser capaz de combinar contenido proveniente de fuentes muy diferentes.
El ancho de banda es menos costoso: Actualmente un Servicio Web puede entregar tipos variables de contenidos como video o audio. A medida que crezca el ancho de banda, los servicios Web deben adaptarse a nuevos tipos de contenidos.
El almacenamiento es más barato: Un Servicio Web debe ser capaz de manejar cantidades masivas de datos, y debe poder hacerlo de forma inteligente.
La computación extendida se está volviendo más importante: Con cientos de millones de dispositivos como teléfonos móviles, beepers, y agendas electrónicas existentes actualmente, estamos llegando a un momento en el cual las computadoras está dejado de ser el dispositivo más común en Internet. A medida que las plataformas se hacen más diversas, tecnologías como XML se volverán más importantes. Un servicio Web no puede exigir que los usuarios ejecuten, por ejemplo, un navegador Web tradicional en alguna versión de Windows; por el contrario, los servicios Web debe servir a todo tipo de dispositivos, plataformas y navegadores, entregando contendido sobre una amplia variedad de tipos de conexión.
Estos factores, unidos a los beneficios proporcionados por los servicios Web en la organización y los buenos productos disponibles para su desarrollo, han hecho que su utilización se extienda sin mayores obstáculos.
En términos generales, cuando se empiezan a utilizar servicios Web en una organización, estos se desarrollan e implementan como servicios simples, que poco a poco se van integrando hasta llegar a servicios Web mucho más complejos.
El papel de los servicios Web
Desde un nivel superior, un servicio Web se puede definir como una unidad de código que puede ser activada utilizando solicitudes HTTP. Históricamente hablando, el acceso remoto a unidades binarias requiere protocolos específicos de cada plataforma (ya alguna veces específicos de cada lenguaje). Ejemplos clásicos de esta situación, son arquitecturas como DCOM, CORBA o RMI: los clientes DCOM pueden acceder a tipos COM remotos utilizando llamadas RPC fuertemente acopladas, CORBA también requiere el uso de un protocolo fuertemente acoplado para activar los tipos remotos y RMI requiere de un protocolo y un lenguaje específicos (Java). El problema con cada una de estas arquitecturas distribuidas (re-motas), es que utilizan protocolos propietarios, que generalmente requieren una conexión estrecha a la fuente remota.
Utilizando servicios Web, un programador puede emplear cualquier lenguaje que desee, y un consumidor de servicios Web puede usar HTTP estándar para invocar métodos en los tipos definidos en el Servicio Web. Con lo anterior, podría afirmarse que finalmente se logra una integración real de lenguaje y plataforma. Ya no se trata de Java, COM o CORBA, sino de HTTP y el lenguaje de programación que se elija.
La única restricción real a la que debe ponerse atención es que debido a que los servicios Web son diseñados para facilitar las invocaciones remotas, debe evitarse la utilización de cualquier lógica basada en la interfaz gráfica de usuario (GUI). Los servicios Web generalmente definen objetos de negocio que ejecutan una unidad de trabajo (por ejemplo: realizar un cálculo, leer una fuente de datos, etc.) para el consumidor y esperan la siguiente solicitud.
Características y operaciones de los servicios Web.
El esquema de funcionamiento de los servicios Web, requiere de tres elementos fundamentales:
1. Un proveedor del servicio Web, que es quien lo diseña, desarrolla e implementa y lo pone disponible para su uso, ya sea dentro de la misma organización o en público.
2. Un consumidor del servicio, que es quien accede al componente para utilizar los servicios que éste presta.
3. Un agente de servicio, que sirve como enlace entre proveedor y consumidor para efectos de publicación, búsqueda y localización del servicio. Ver figura 2.9.
Figura 2.9 Elementos que interactúan en los servicios Web.
Al definir un Servicio Web, se requiere contar con lo siguiente:
a) Para colocar “disponible” el servicio:
El primer paso es definir el Servicio Web: como se dijo antes, el componente software puede desarrollarse utilizando diferentes lenguajes y tecnologías, pero para que este componente pueda interactuar con otros, es necesario utilizar un lenguaje común que permita estructurar los datos que componen el Servicio Web.
Una vez se ha definido la funcionalidad del servicio, es necesario publicarlo para que otros servicios y aplicaciones puedan acceder a él. Las operaciones de publicación involucran el anuncio del servicio como tal, lo cual corresponde a la ubicación del servicio en un servidor específico y el uso de un servicio de descripción.
El servicio de descripción se utiliza para que los clientes puedan saber qué funciones tiene disponibles el Servicio Web y qué información debe pasarse a esas funciones para poder utilizarlas.
Para que el consumidor pueda utilizar el Servicio Web, debe entender totalmente los miembros expuestos. Por ejemplo, el consumidor debe saber que el servicio ofrece un método llamado primer Método (string parámetro1, boolean parámetro2, int parámetro3) que toma tres parámetros de tipo string, boolean e int respectivamente, y que devuelve un tipo llamado Respuesta, antes de poder invocarlo. El lenguaje utilizado para elaborar esta descripción del servicio web se denomina WSDL (Web Service Description Language) y la publicación se hace mediante UDDI (Universal Description, Discovery and Integration) ya sea en un servidor UDDI público o en uno privado.
b) Para “localizar” el servicio:
Cuando un consumidor desea acceder a un Servicio Web, debe contar con un servicio de descubrimiento, que permita conocer la ubicación exacta del servicio, es decir, se debe contar con un directorio donde se tengan listas las referencias a los servicios disponibles. Esto se logra gracias a UDDI. Figura 2.10.
Figura 2.10 Distribución y Publicación de los servicios Web.