Servicios Web

Servicios Web
Información sobre la plantilla
Parte de la familia Internet
Serviceweb.jpeg
CreadorMicrosoft & IBM
DesarrolladorMicrosoft
Fecha de Creación1945

Servicios Web. Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas intercambian datos entre sí con el objetivo de ofrecer servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios los solicitan llamando a estos procedimientos a través de la Web. A su ves proporcionan mecanismos de comunicación estándares entre diferentes aplicaciones, que interactúan entre sí para presentar información dinámica al usuario. Para proporcionar interoperabilidad y extensibilidad entre estas aplicaciones, y que al mismo tiempo sea posible su combinación para realizar operaciones complejas, es necesaria una arquitectura de referencia estándar.

Introducción

La programación para internet cambia continuamente debido a que los usuarios necesitan el navegador Web para acceder a una serie de servicios que se encuentran disponible en la red de redes. Estos cambios han provocado un giro hacia la construcción de aplicaciones orientadas a servicios, en lugar de continuar construyendo aplicaciones de escritorio.

Un servicio es una aplicación que desempeña una actividad de negocio, la cual proporciona una interfaz que puede llamarse desde otro programa, se registra y se localiza por medio de un servicio de registro. Los sistemas orientados a servicios constituyen la infraestructura de éstos, tales como CORBA (Common Object Broker Architecture), RMI (Remote Method Invocantion), DCOM (Drisbuted Component Object Model), RPC (Remote Procedure Call). No son un nuevo concepto, pero están encerrados en sí ya que sólo pueden interoperar entre sistemas del mismo tipo.

Los Servicios Web pueden definirse como entidades programables que actúan como cajas negras para proporcionar una determinada funcionalidad, tal y como la de una aplicación o una funcionalidad de sistema. Emplean estándares de internet comoHTTP o XML.

Características

Las características principales de los servicios Web, son las siguientes:

  • Utilización de estándares de internet. La única forma para que los servicios Web sean utilizados por la cantidad de sistemas heterogéneos existentes en Internet es el empleo del protocolo de transferencia de datos HTTP utilizado por todos los navegadores Web y XML.
  • Basados en tecnologías de paso de mensajes. La interacción entre el cliente y el proveedor del servicio es empaquetada en unidades autodesciptivas denominadas mensajes. Dicha interacción se describe en función de los mensajes intercambiados.
  • Combinan lo mejor de la tecnología de componentes y de la tecnología Web. Los servicios Web presentan una funcionalidad de caja negra que puede ser reutilizada sin preocuparse de cómo es implementada y ello proporciona interfaces bien definidas.

Aplicaciones

A continuación se lista una serie de escenarios en los que los servicios Web pueden desempeñar un papel destacado:

  • Servicio simple. El escenario típico es el de un servicio Web que proporciona algún tipo de funcionalidad a los clientes que lo utilizan.
  • Integración de aplicaciones. Los servicios Web pueden ser empleados para integrar aplicaciones existente, lo que puede ser de gran utilidad en aquellos casos en los que se tiene una serie de aplicaciones a medida que se usan, pero que permanecen aisladas, de forma que es posible exponer la funcionalidad de dichas aplicaciones como un servicio Web, y ello permitiría la creación de aplicaciones compuestas que hicieran uso de dicha funcionalidad.

Ventajas e inconvenientes de los servicios Web

Quizás cueste entender las ventajas de usar Servicios Web frente a rutinas de librerías de programación. Un programador de PERL (Practical Extraction and Reporting Language) que quiera incorporar ciertos algoritmos sofisticados en su aplicación, sabe que debe recurrir al CPAN (Comprehensive Perl Archive ) para trabajar con alguna librería y sus correspondientes rutinas y objetos. Con lo bien que funciona el CPAN en Perl o el Pear (PHP Extension and Aplication Respository) en PHP. ¿Para qué se desea trabajar con Servicios Web? No sólo eso cabe preguntarse. Además, un programa que utilice Servicios Web no puede funcionar si no dispone de acceso a Internet en la computadora donde se ejecuta.

La explicación que da sentido a los Servicios Web es sencilla. Las rutinas de los Servicios Web se actualizan de forma transparente para el programador y para el encargado de mantenimiento de la aplicación. Además, mediante un Servicio Web se puede implementar un programa que tenga funciones imposibles de contemplar bajo el uso de rutinas de librerías, como por ejemplo, incorporar un buscador de páginas Web. Por otro lado, la carga de CPU que supone la ejecución de una rutina desaparece al usar Servicios Web y se reparte por Internet sobre el servicio del Servicio Web. Esto es un comienzo de "Computación Distribuida".

Los Servicios Web no pretender eliminar del mapa a las librerías o módulos de programación. No pueden hacerlo, ya que no son una versión mejorada de éstas, sino una herramienta con distintas aplicaciones en determinados casos. Así, por ejemplo, si necesitamos una rutina que descodifique un fichero de vídeo no es aconsejable utilizar un Servicio Web. ¿Por qué? Porque ello supondría enviar el fichero de vídeo al servidor del Servicio Web, éste lo descodifica y nos envía el vídeo en formato plano, sin compresión de ningún tipo y supondría un consumo de ancho de banda. Por supuesto, el procesamiento en local del codec de vídeo es mucho más eficiente que el procesamiento remoto.

Sin embargo, en otras ocasiones, sí interesa utilizar un Servicio Web, en lugar de la rutina de una librería. Por ejemplo, si se desea que una aplicación, como por asrte de magia, sepa el precio de un determinado libro dado su ISBN (es un Servicio Web que ofrece Barnes and Noble) o si se desea que un programa sepa a quién pertenece un determinado dominio de internet (es un Servicio Web prestado por NetworkSolutions), o si un sistema de gestión de empresa requiere en todo momento disponer de una cotización en un tiempo real de divisas, o si queremos que una aplicación sea multiidioma sin necesidad de incorporar cada mensaje traducido en varios idiomas, sino mediante una traducción automática. En la actualidad, existen muchos Servicios web interesantes, algunos de ellos están bien ordenados y explicados (en Inglés) en services

Hay que reconocer que los Servicios Web van a ser utilizados principalmente por programadores Web (PHP, Perl, ASP, JSP, etc.) ya que su máxima funcionalidad se da casi siempre ligada a internet. Así por ejemplo, un programador Web puede incorporar a su aplicación una búsqueda de documentos utilizando el servicio denominado "Google Web API" (www.google.com/apis/) que permite a los desarrolladores poder interrogar y tomar información de casi tres mil millones de documentos Web directamente desde Google. Para lograrlo, Google usa SOAP (Simple Object Access Protocol) y WSDL (Web Services Definition Language) de forma que los desarrolladores puedan programar en diferentes entornos.

Las principales compañías del mundo han empezado a desarrollar soluciones mediante la tecnología de los Servicios Web. Ahora se relacionan algunos ejemplos:

  • Microsoft: uno de lso servicios que brinda es el MapPoint.Net. Mediante este servicio, el usuario podrá conocer su localización geográfica exacta y otros datos adicoonales relacionados con su posición actual, como información de tráfico, rutas y posibles o puntos comerciales cercanos.
  • IBM: ha implementado una solución basada en los Servicios Web llamada e-Business on Demand. Esta solución permite la construcción de Extranets que ayude a las empresas a ver catálogos de productos , realizar y localizar pedidos o chequear el estado de su inventario en tiempo real.

Posibles riesgos

Las exprectativas alrededor de esta tecnología son grandes porque el mercado de aplicación es muy amplio. Pero también tiene sus puntos oscuros:

  • Los Servicios Web usan las mismas tecnologías que han sido atacadas en tantas ocasiones. Con el empleo de Servicios Web, la seguridad de una empresa puede verse comprometida. La ausencia de técnicas de seguridad estándar es un obstáculo para la adopción de la tecnología.
  • La calidad de un Servicio web es un parámetro que no queda demasiado claro, pero su medida es fundamental para desarrollar un servicio maduro.

Seguridad

Actualmente, los Servicios Web son ampliamente aceptados por las empresas para el desarrollo de software interno. De este modo, los servicios pueden implementar toda su funcionalidad y permanecer seguros tras el cortafuegos de la compañia. Los desarrollos actuales no ayudan a la cooperación entre las empresas, pues no hay ningún estándar establecido sobre técnicas de seguridad.

Debido a la tecnología que es usada por los Servicios Web, y en concreto al uso de SOPA, las técnicas de seguridad convencionales que se han venido usando en Internet ya no son suficiente. Con SOPA, cada mensaje simple que se intercambia realiza múltiples saltos y es enrutado por medio de numerosos puntos antes de que alcance su destino final. Es por ello que los Servicios Web necesitan tecnologías que protejan los mensajes desde el principio hasta el final.

Ventajas

Los Servicios Web pueden ser muy útiles en ciertos casos concretos de programación. Los expertos de marketing de empresas de software como Microsoft anuncian a bombo y platillo una revolución debido a la aparición de esta tecnología. Sin embargo, hay que tener en cuenta que les interesa que sus clientes actualicen las herramientas de desarrollo a la versión .NET.

La única revolución que se puede ver en relación con los Servicios Web es la de cómo los servidores de internet hablan entre ellos y cada día son más independientes del programador. Y eso es algo que va a pasar completamente sin cuidado para el resto de los usuarios de Internet. Si se logra que existan Servicios Web de utilidad, gratuitos y sencillos, este nuevo esquema de comunicación y programación tendrá futuro.

Bibliografía