En este blog podréis ir viendo el desarrollo día a día de un proyecto software bajo la Métrica v3 del grupo 3 de Ingeniería del Software III (Ingeniería Informática) de la Universidad Carlos III de Madrid.

domingo, 18 de noviembre de 2007

Web Services

Buenas a todos nuestros seguidores. En la entrada de hoy, vamos a exponer nuestra opinión sobre los Web-Services (WS) por ser una tecnología de comunicación distribuida que está en auge e implantándose cada vez en más sistemas de información, y que además, hemos decidido utilizarla para diseñar una API de acceso remoto al sistema de marcadores sociales que se está desarrollando. Nos centraremos única y exclusivamente en la opinión que tenemos: analizar las ventajas qué nos proporcionan y las limitaciones qué nos imponen, dejando en un segundo plano la colección de protocolos que conforman este mecanismo de comunicación: SOAP, WSDL, HTTP, etc. En cuanto a las fuentes y referencias de información de web-services, son muchas y variadas, destacando principalmente las siguientes:

  1. Conocimientos obtenidos de la asignatura de Servidores de Información.
  2. Experiencia en el ámbito laboral.
  3. Artículos técnicos y blogs sobre los WS: http://sistemas3.wordpress.com/2007/06/14/web-services/, http://www.w3.org/2002/ws/,http://en.wikipedia.org/wiki/Web_service...

En cuanto a las ventajas que hemos observado, hay que destacar por encima de todo la increíble transportabilidad e interoperabilidad que existe en su comunicación: permiten compartir, obtener y generar información independientemente del lenguaje de las aplicaciones, la plataforma o entorno de ejecución y las arquitecturas de los dispositivos implicados. Pero además de esta gran ventaja, tras haber trabajado en otros paradigmas de comunicación distribuida: RMI, CORBA, RPC, etc., los WS permiten unas ayudas que no hay que olvidar como son:
  • Proceso de transporte realizado por HTTP, provocando que las políticas de proxys y firewall de una empresa tras la implantación de los WS no se vea modificada.
  • Permiten procesos de autenticación y seguridad, de forma que se puedan restringir el uso a máquinas que cumplan ciertas características: tengan un determinado certificado, estar en un dominio concreto, etc.
  • Facilidad de uso desde la perspectiva del programador. Al final, los WS se reducen exclusivamente en una definición de funciones desde el lado del servidor, sin importar los procesos de binding, autenticación y otros de más bajo nivel; y en el lado del cliente, al uso de una "libreria de funciones" importada desde el servidor, una vez más sin importar procesos de bajo nivel.

Todo esto aplicado en una situación real, se puede ver con el siguiente ejemplo. Se tenían dos sistemas de información: un gestor de alumnos, y una plataforma de e-learning. Ambos sistemas eran desarrollados por dos empresas diferentes, en diferentes lenguajes: el primero en Java y el segundo en PHP e implantados en el mismo organismos oficial. Lo que se pretendía era que el gestor de cursos ofreciese unos servicios de matriculación al gestor de alumnos. Se procedió al estudio de las alternativas a la solución, y la que mejor se acoplaba a las necesidades solicitadas eran los Web Services. Al final, la implementación de los Web Services para PHP mediante la librería Nu-SOAP resultó todo un éxito, tanto en el tiempo que se realizó como en el funcionamiento final.


Por último, como todo en esta vida siempre hay ventajas pero también desventajas, y los WS no iban a ser una excepción. Lo primero hay que señalar que todavía se trata de una tecnología que está en plena fase de crecimiento y por tanto, la poca documentación existente y las modificaciones en el estándar no serían extrañas con el consiguiente riesgo que conllevaría. Otra desventaja que hemos observado es la sobrecarga que puede sufrir el canal por el uso de XML en el transporte de mensajes, a diferencia de RMI y CORBA que usan estrategias de marshall y unmarshall en los datos para enviar, produciendo un notable mejora en la velocidad de la comunicación. Finalmente, y aunque lo hemos citado como una ventaja, que la comunicación se realice mediante HTTP puede ser un "arma de doble filo", es decir, estará expuesto a todos los riesgos que se dan en este protocolo: captura de la información por terceros al no ir cifrada (a menos que se utilice HTTPs), WS desarrollados para producir un efecto negativo en el cliente y que esquivarían a los firewall fácilmente, etc.

Pues esto ha sido todo, esperamos vernos en la siguiente entrada ya que esta semana hay la primera eliminación de blogs. ¡Un saludo!

3 comentarios:

Grupo 3 IS III - 2007 - dijo...

Hemos añadido un enlace relacionado con este tema en la sección de "Lista de Vínculos" donde se explica la comparación del rendimiento ofrecido por los Web-Services, Java-RMI y CORBA.

Hay que señalar que este enlace ha sido proporcionado por la asignatura de "Desarrollo de aplicaciones distribuidas"

Un saludo.

Unknown dijo...

Hola, ¿alguien sabría decirme de unservidor o algún módulo específico para Apache que permita la ejecución de Web Services para G-SOAP en lenguaje C?

Un saludo y gracias.

Javier Delicado dijo...

Muy buena explicación. Se nota que alguno has hecho ;-)

J. Delicado