•  
  •  

Los Servicios Web, una nueva forma de entender la Informática

 

¿Qué son los Servicios Web?

Si bien pueden existir múltiples definiciones del término “servicios web”, una definición de sencillo entendimiento puede ser que los Servicios Web son un conjunto de aplicaciones o de tecnologías que interoperan, (intercambian información y utilizan la información intercambiada), con el objetivo de ofrecer unos servicios mediante una interoperabilidad basada en la Web.

Esta interoperabilidad permite que las aplicaciones se comuniquen de forma independiente de la plataforma o de lenguajes de programación usados en cada una de las aplicaciones o tecnologías que interoperan.

La arquitectura de un servicio web lo convierte en una interfaz de software que describe un conjunto de operaciones a las cuales se puede acceder por la red a través de protocolos XML estandarizados con el objetivo de describir una operación para ejecutar o datos para intercambiar con otro servicio web. Un grupo de servicios web que interactúa de esa forma definen aplicaciones web que gracias al intercambio y uso de información o datos, simplifican al usuario hacer uso de distintos tipos de servicios, pudiendo estar estos creados y basados en plataformas totalmente distintas y geográficamente dispersa, con una misma apariencia o interface y para un mismo fin. A esta arquitectura orientada a servicios se la define como SOA, ( Service Oriented Architecture).

La industria de software poco a poco ha sido consciente de que siendo necesario, no era posible integrar aplicaciones de software en varios sistemas operativos, lenguajes de programación y plataformas de hardware, ya que no puede ser resuelto por un entorno específico, de forma que anteriormente a los servicios web, muchas aplicaciones o sistemas que debían realizar intercambios de datos o información lo hacían de una forma muy precaria, con interfaces muy poco adaptables y flexibles a entornos y necesidades cambiantes, obligando a migrar y unificar sistemas o plataformas, procesos que suelen ser muy costosos y en algunos casos frustrantes.

Los servicios web usan XML, que puede describir cualquier tipo de datos de forma independiente de la plataforma para el intercambio entre sistemas, además pueden funcionar a un nivel más abstracto que puede reevaluar, modificar o manejar tipos de datos dinámicamente on demand (mediante solicitud). Por tanto, en términos técnicos, los servicios web pueden manejar datos con mucho más facilidad y permiten una comunicación más flexible y  libre entre software, aplicaciones y plataformas.

En términos conceptuales más elevados, es posible ver los servicios web como unidades de trabajo, donde cada una maneja una tarea funcional específica. Un escalón por encima, las tareas se pueden combinar en tareas orientadas a negocios para manejar tareas operacionales empresariales específicas, permitiendo que el personal “no técnico” piense en aplicaciones con apariencia o interfaces sencillos, haciendo uso del conjunto del flujo de trabajo de aplicaciones de servicios web.

En un ejemplo comparativo con un vehículo, un servicio web puede representar una parte de un motor como el cigüeñal, otro servicio pueden ser los pistones, etc… formando un conjunto de servicios web el motor, otro sería el chasis, la transmisión y otros sistemas, la unión formaría la aplicación web o el vehículo completo y cuya interface sería doble, por un lado el aspecto o diseño exterior y por otro el interior. Además, la arquitectura basada en servicios web permitiría poder hacer uso de componentes de otros fabricantes, y no solamente del mismo fabricante para esa gama de vehículo concreto.

Una de las grandes ventajas añadidas, por el concepto de la arquitectura de trabajo es que los servicios web ayudan a trabajar conjuntamente a los usuarios no técnicos de cada departamento, (usuario final), con el personal técnico, (desarrollo, mantenimiento y soporte), de una organización. Los servicios web facilitan la comprensión de las operaciones técnicas por parte del usuario final, éste último puede describir eventos, tareas y actividades que el personal técnico puede asociar a los servicios adecuados. Sólo esta ventaja permite por un lado un sencillo aprendizaje y facilidad en el uso del software o aplicaciones y por otro lado un importante ahorro en el tiempo destinado de cada usuario, (técnico y no técnico), asi como el el gasto destinado a infraestructuras.

¿Qué se puede hacer con los Servicios Web?

A medida que las aplicaciones y software necesitan interoperar, el concepto de Interface Universal se hace indispensable para permitir que objetos de otras plataformas se intercambien información y datos aunque hayan sido escritos en lenguajes de programación distintos y estén basados en otros sistemas operativos.

Sin entrar en la historia de los servicios web, el uso de XML ha permitido finalmente unir aplicaciones de cualquier tipo, su gran versatilidad permite separar la estructura gramatical (sintaxis) del significado gramatical (semántica) y posibilita que una aplicación conectada en red pueda estar compuesta por varias entidades con varias construcciones y diseños diferentes, a condición de que cumplan con las reglas definidas por su arquitectura orientada a servicios.

Básicamente los objetivos principales son:

  • Intercambio y uso de información y datos entre aplicaciones y software, independientemente de la plataforma o sistema operativo en el que se base.
  • Interacción entre servicios, independientemente del lenguaje de programación usado.
  • Conceptualizar funciones de aplicaciones en tareas, lo que lleva al desarrollo y a flujos de trabajo orientados a tareas. Abstracción del software que puede ser empleado por usuarios menos técnicos que trabajan con análisis en el ámbito de negocios.
  • Operatibilidad sencilla, las interacciones entre aplicaciones de servicio no se rompen siempre que haya un cambio en la forma de diseño o implementación de un servicio o más.
  • Adaptar las aplicaciones ya existentes a las cambiantes condiciones empresariales y necesidades de clientes.
  • Proporcionar aplicaciones de software ya existentes o legadas con interfaces de servicio sin cambiar las aplicaciones originales, lo que permite operar totalmente en el entorno de servicios sin necesidad de actualizar toda la plataforma.
  • Introducir otras funciones administrativas o de gestión de operaciones como confiabilidad, análisis, seguridad, etc., independientemente de la función original, lo que aumenta su versatilidad y utilidad en el entorno de computación empresarial.

¿Qué relación hay entre servicios web y otras tecnologías?

Los servicios web son, principalmente, una tecnología de integración, y al mismo tiempo, son independientes de la forma propiamente dicha. Las tecnologías de componentes para servicios web son definidas en forma común e interactúan en XML. Sin embargo, ya que el propio XML es independiente de lenguaje, los servicios web también lo son. Por tanto, los servicios web se pueden desarrollar en varios lenguajes de programación, como .NET, Java, Python, Perl, C#, PHP y otros.

Los orígenes de los servicios web están en la tentativa de encontrar una forma mejor de interacción entre sistemas, puesto que los sistemas propiamente locales quedaron obsoletos hace bastantes años, la arquitectura de Internet y las aplicaciones Web son la mejor vía para la comunicaión e interacción. Así, actualmente la mayoría de los servicios web se basan en aplicaciones y software que operan en entornos de Servidores Web y Servidores de Aplicaciones, y aunque no sin ser obligatorios, la gran mayoría de las mejores herramientas para servicios web están diseñadas para estos entornos.

Al proporcionar interfaces universales y más simples, los servicios web también están ayudando a mejorar el funcionamiento del modelo de informática ubicua para entornos portables y móviles. Los softwares para informática móvil están adoptando rápidamente el modelo de comunicación de los servicios web, basados mayoritariamente en aplicaciones de servidor.

La Programación en GridGrid Computing ha adoptado los servicios web como parte de la arquitectura abierta de servicios de grid, un modelo para ese tipo de informática distribuida que usa los servicios web para comunicar cómo la grid opera, permitiendo beneficiarse de plataformas más potentes y económicas que permiten re-usar o potenciar la anterior infraestructura a una nueva y más moderna, con mayores recursos y más optimizados.

Los servicios basados en La Nube, Cloud o Cloud Computing, no podrían existir sin una arquitectura de servicios web, un modelo híbrido de informática distribuida según necesidad en períodos temporales concretos, en este caso. Al igual que en Grid Computing, los servicios web son los que permiten poder beneficiarse de potentes plataformas, pudiendo ampliar o reducir los recursos necesarios en casa caso y en cada momento dada la gran flexibilidad de su arquitectura.

En definitiva, basar sus aplicaciones y software en Servicios Web es el mejor modo para:

  • Poder tener siempre disponibilidad  de información y datos.
  • Escalabilidad y flexibilidad en sus recursos.
  • Obtener un flujo de información siempre optimizado
  • Ofrecer un sencillo uso por parte de cualquier usuario
  • Comunicar sus servidores de datos con dispositivos basados en PC, con dispositivos portátiles o móviles independientemente de los sistemas operativos que usen.
  • Ahorrar importantes gastos en costes de infraestructuras, personal y mantenimiento de los sistemas

Para obtener más información, puede visitar los siguientes enlaces, pertenecientes a la Oficina Española del Consorcio World Wide Web:

Felicidades - OnDemand