Servicio web

En tecnología de la información, un servicio web , según la definición dada por el World Wide Web Consortium (W3C), es un sistema de software diseñado para soportar la interoperabilidad entre diferentes computadoras en la misma red o en un contexto distribuido .

Historia

El consorcio OASIS ( Organización para el Avance de los Estándares de Información Estructurada ) y el W3C son los principales responsables de la arquitectura y estandarización de los servicios Web; Para mejorar la interoperabilidad entre las diversas implementaciones de los servicios web, la organización WS-I también está desarrollando una serie de "perfiles" para definir mejor los estándares involucrados.

Descripción

Esta característica se obtiene asociando la aplicación con una interfaz de software (descrita en un formato elaborable automáticamente como, por ejemplo, el lenguaje de descripción de servicios web ) que expone el (los) servicio (s) asociado (s) y mediante el cual otros sistemas pueden interactuar con la aplicación. mismo activando las operaciones descritas en la interfaz ( servicios o solicitudes de procedimientos remotos ) a través de "mensajes" específicos de solicitud: estos mensajes de solicitud se incluyen en un "sobre" (el más famoso es SOAP ), formateado según los estándares XML , encapsulado y transportado a través de los protocolos de la Web (generalmente HTTP ), de ahí el nombre de servicio Web . De hecho, por lo tanto, el servicio web consiste en una llamada a un servicio muy similar a una función , subrutina o método escrito de forma inusual con respecto al estándar y con los métodos de llamada antes mencionados, útil en términos de interoperabilidad en un complejo típico. arquitectura de tipo modular .

Gracias al uso de estándares basados ​​en XML, a través de una arquitectura basada en Servicios Web (denominada, en terminología inglesa , Arquitectura Orientada a Servicios - SOA ), se pueden utilizar aplicaciones de software escritas en diferentes lenguajes de programación e implementadas en diferentes plataformas de hardware . , a través de las interfaces que estos "exponen" públicamente y mediante el uso de las funciones que son capaces de realizar (los "servicios" que ponen a disposición) para intercambiar información y realizar operaciones complejas (como, por ejemplo, la realización de negocios procesos que involucran a varias áreas de una misma empresa) tanto en redes corporativas como en Internet : la posibilidad de interoperabilidad entre diferentes lenguajes de programación (por ejemplo, entre Java y Python ) y diferentes sistemas operativos (como Windows y Linux ) es posible gracias al uso de estándares "abiertos" .

Características

Algunas de las ventajas que se pueden obtener con el uso de los servicios Web son las siguientes:

Por el contrario, hay que tener en cuenta los siguientes aspectos:

Razones de uso

La razón principal de la creación y uso de los servicios web es el "desacoplamiento" que la interfaz estándar expuesta por el servicio web hace posible entre el sistema del usuario y el propio servicio web: las modificaciones a una u otra de las aplicaciones se pueden implementar en una forma "transparente" en la interfaz entre los dos sistemas; esta flexibilidad permite la creación de sistemas de software complejos compuestos por componentes que son independientes entre sí y permite una fuerte reutilización de código y aplicaciones ya desarrolladas.

Los servicios web también han ganado soporte ya que, como protocolo de transporte, pueden usar HTTP "sobre" TCP en el puerto 80; este puerto es normalmente uno de los pocos (si no el único) que los sistemas de firewall dejan "abierto" al tráfico entrante y saliente del exterior a los sistemas de la empresa y esto se debe a que el tráfico HTTP de los navegadores web transita por este puerto : este permite el uso de los servicios web sin cambios en las configuraciones de seguridad de la empresa (un aspecto que, si bien es positivo, plantea problemas de seguridad).

Una última razón que ha favorecido la adopción y proliferación de servicios Web es la falta, antes del desarrollo de SOAP, de interfaces verdaderamente funcionales para el uso de funciones distribuidas en la red: EDI , RPC y otros tipos de API ( Application Programming Interface). ) eran y siguen siendo menos conocidos y fáciles de usar que la arquitectura de servicios Web.

La pila de protocolos de los servicios web es el conjunto de protocolos de red utilizados para definir, localizar, crear y hacer que los servicios web interactúen entre sí; se compone principalmente de cuatro áreas:

  • Servicio de transporte : encargado del transporte de mensajes entre aplicaciones en la red, incluye protocolos como HTTP , SMTP , FTP , XMPP y el reciente Blocks Extensible Exchange Protocol ( BEEP ).
  • Mensajería XML : todos los datos intercambiados se formatean utilizando "etiquetas" XML para que puedan utilizarse en ambos extremos de las conexiones; el mensaje se puede codificar según el estándar SOAP , así como utilizando JAX-RPC , XML-RPC o REST .
  • Descripción del servicio : la interfaz pública de un servicio web se describe a través de WSDL ( lenguaje de descripción de servicios web ), un lenguaje basado en XML utilizado para la creación de "documentos" que describen las formas de interactuar y utilizar el servicio web.
  • Lista de servicios : la centralización de la descripción y ubicación de los servicios web en un " registro " común permite la búsqueda y recuperación rápida de los servicios web disponibles en la red; para este fin se utiliza actualmente el protocolo UDDI .

Los protocolos estándar adicionales utilizados son:

  • WS-Security : el protocolo de seguridad de servicios web se ha adoptado como estándar OASIS; este estándar permite la autenticación de los usuarios y la confidencialidad de los mensajes intercambiados con la interfaz del servicio Web
  • WS-Reliability : son especificaciones basadas en SOAP y aceptadas como estándares OASIS que satisfacen la solicitud de mensajes "confiables" , una solicitud crítica para algunas de las aplicaciones que utilizan servicios Web (como, por ejemplo, transacciones monetarias o aplicaciones de E -comercio ).

Artículos relacionados

Enlaces externos