La globalización ha hecho que, cada vez más, exista necesidades de comunicación entre organizaciones. El surgimiento de la Web ha constituido un empuje importante en esta línea, proporcionando una infraestructura de apoyo fundamental para las comunicaciones. En este entorno, los servicios Web surgen para proveer un marco de trabajo sistemático y extensible, basado en XML y construido en base a protocolos Web existentes, que permite la interacción de aplicaciones a través de la Web.
En la actualidad, existen un gran
número de foros para la estandarización
y desarrollo de los servicios Web y de
las tecnologías relacionadas. El
organismo por excelencia para la
estandarización de los servicios Web es
el Word Wide Web Consortium (W3C,
http://www.w3c.org). Este consorcio, se
encarga de producir recomendaciones y
estándares relacionados con la Web.
Está dirigido por Tim Bcraers-Lee quien ha sido identificado como el creador de la World Wide Web en el año 1989. El W3C nace en 1994 y desde entonces ha producido más de 80 estándares, dentro de los cuales destacan XML, SOAP, WSDL Xquery y las nuevas versiones de HTML.
Existen, en el área de los servicios Web, otras organizaciones (OASIS, http://www.oasis-open.org). (WS-I, http://www.ws-i.org).
a) facilita la integración de
aplicaciones empresariales a bajo
coste, dando soporte al desarrollo de
plataformas que permiten compartir
funciones y datos;
b) facilita la automatización de
procesos de negocios, proporcionando
así un marco para dar soporte al
desarrollo de redes de negocios en las
que organizaciones colaboran.
Ventajas
La aparición de los servicios Web ha
contribuido al surgimiento de un
nuevo paradigma de computación,
conocido como Computación
Orientado a Servicios (SOC, Service
Oriented Computing), que utiliza
servicios como elementos básicos
para desarrollar aplicaciones de una
manera rápida, fácil y de bajo coste
La computación orientada a servicios
tiene, como elemento básico de
construcción el servicio, la
arquitectura software de este tipo de
aplicaciones se denomina arquitectura
orientada a servicios (SOA, Service
Oriented Architecturé). Aunque el
paradigma SOC y las arquitectura SOA
no exigen que los servicios tengan
que implementarse necesariamente
como servicios Web.
El paradigma SOC proporciona así, un
nuevo enfoque para el desarrollo de
aplicaciones que, de la misma manera
que sucedió en su momento con otros
paradigmas de computación como el
orientado a objetos y el posterior
surgimiento de las metodologías
orientadas a objetos, promueve la
necesidad de definir metodologías
específicas que soporten el proceso de
desarrollo de software.
Habitualmente, siempre que hablamos tanto de la computación orientada a servicios como de las arquitecturas orientadas a servicios, tendemos a entender que hablamos de servicios Web. Sin embargo, es importante destacar que esto no necesariamente es así: los servicios Web proveen un marco tecnológico para la implantación de soluciones orientadas a servicios, aunque no son la única opción para ello.
Servicios Web y la Orientación a Servicios
La SOC, ha surgido como un nuevo
paradigma de desarrollo que permite
obtener aplicaciones o, más
generalmente, una logica de
automatización, a partir de un conjunto
de servicios. Sin embargo, cuando
hablamos de servicio, en el ámbito de la
computación orientada a servicios, nos
referimos a una funcionalidad y no a la
forma en que dicha funcionalidad es
implementada en el sistema.
El Word Wide Web Consortium (W3C)
define un servicio como un recurso
abstracto que representa una capacidad
de realización de tareas que forman una
funcionalidad coherente desde el punto
de vista de las entidades proveedoras y
de las entidades solicitantes. Por tanto
se puede decir que un servicio es una
entidad autónoma independiente de
cualquier plataforma.
El paradigma de la orientación a servicios establece un conjunto de principios de diseño para desarrollar servicios específicos, los cuales colaboran para dar soporte a los objetivos de una determinada Arquitectura Orientada Servicios.
Una SOA, es una arquitectura de software que, basándose en el paradigma de la SOA utiliza un conjunto de servicios para dar soporte a los requisitos de determinados procesos de negocio de una determinada organización. Una SOA no está ligada a una plataforma o tecnología de implementación concreta. Por tanto se puede implementar utilizando un rango muy amplio de tecnologías, tales como DCOM, CORBA o Servicios Web.
Desde un punto de vista de
implementación, la importancia de los
servicios Web radica, principalmente, en
que proporcionan un marco de trabajo
sistemático y extensible, basado en XML
y construido en base a protocolos Web
existentes, que permite la interacción de
aplicaciones a través de la Web y que
define mecanismos estandarizados para
describir, publicar/localizar e interactuar
con aplicaciones en línea
Recurso abstracto que representa una capacidad de realización de tareas
que forman una funcionalidad coherente desde el punto de vista de las entidades proveedoras y de las
entidades solicitantes
Sistema software diseñado para soportar una interacción directa entre ordenadores a través de Internet. Los
servicios Web poseen una interfaz descrita en un formato que puede ser
interpretado por ordenadores.
Evolución de los Servicios Web
La Word Wide Web, más comúnmente
llamada "la Web", ha sido uno de los
primeros servicios que se han ofrecido
a través de Internet y, sin duda, el
más extendido.
En sus inicios, la Web podía verse
como un simple repositorio de páginas
estáticas e hipervínculos entre ellas,
construidas con HTML (Hypertext
Markup Laguage).
Estas páginas eran accesibles a través de un protocolo llamado HyperText Transfer Protocol. El HTTP es un protocolo de transporte basado en un modelo Cliente-Servidor de peticiones y respuestas (gets y posts).
El primer salto evolutivo de la Web se produjo cuando Internet dejó de ser una red académica y fue adoptada de manera masiva por el público en general. .
Las empresas y sus clientes requerían el acceso a datos corporativos y la navegación por páginas estéticamente más agradables. La respuesta tecnológica a las demandas del nuevo público fue el DHTML (HTML Dinámico) naciendo así el concepto de "Aplicación Web". Como ejemplo tecnologías de las tecnologías que surgieron en esta etapa, podemos citar PHP, ASP y CGI (para el HTML dinámico de Servidor) y JScript, VBScript (para el HTML dinámico del lado del cliente).
A finales de los años noventa, los portales Web se constituyeron en verdaderos SI en línea. En este escenario, gran parte de las organizaciones comenzaron a difundir no solo su información a través de este medio, sino a extender sus capacidades de negocio ofreciendo nuevos servicios, posibilitando el surgimiento de lo que se llamó Business-to-Consumers (B2C).
No obstante, a pesar de todo el potencial que podía ofrecer la Web, ésta seguía siendo un repositorio de información pensado y utilizado exclusivamente por y para usuarios humanos. Fue entonces cuando se comenzó a concebir la idea de construir sistemas distribuidos utilizando los estándares existentes en la Web. A esta nueva tendencia se le dio el nombre de B2B (Business-to-Business).
Más recientemente, surge la Web
Semántica que propone superar las
limitaciones de la Web actual mediante la
introducción de descripciones explícitas
del significado, la estructura interna y la
estructura global de los contenidos y
servicios disponibles. La Web semántica
aboga por clasificar, dotar de estructura y
anotar los recursos con semántica
explícita procesable por máquinas.
Así, dado que los servicios Web han surgido en el seno de la Web, en el marco de la Web semántica se está acuñando una nueva tecnología, los Servicios Web Semánticos (SWS). Los SWS aprovechan toda la tecnología actual de los Servicios Web y la extienden con el objetivo de automatizar, en la medida de los posible, la búsqueda, descubrimiento, selección, composición e integración de servicios Web.
Los servicios Web no han sido la
única iniciativa concebida para la
integración de aplicaciones. En la
historia de la informática existen
otras muchas iniciativas en este
sentido, de las cuales cabe
destacar, CORBA (Corba, 2006) y
Microsoft DCOM (Evans, R., 1998).
Tecnologías de Servicios Web
Surgió una idea simple pero eficaz: comunicar aplicaciones a través de un protocolo que ya existía, HTTP.
Ahora bien, para poder materializar la idea de comunicar aplicaciones, además del protocolo de comunicaciones, HTTP, era necesario disponer también de tecnología que hiciera la comunicación realmente posible: la tecnología de servicios Web.
En concreto, se necesita tecnología de soporte:
1. Realizar el intercambio efectivo de información a través del protocolo de comunicaciones. Esto incluye: la necesidad de un lenguaje para transmitir la información de manera estructurada (XML), así como un protocolo para el intercambio de mensajes (SOAP).
2. Implementar los módulos de software, servicios Web, que permitan la comunicación. Para ello se requiere: un lenguaje de descripción de servicios Web (WSDL), así como un mecanismo de localización y recuperación de servicios Web ya disponibles (UDDI).
XML (eXtensible Markup Language) es un lenguaje de etiquetas o marcas de texto (similar al HTML) que permite la organización jerárquica de información. Al igual que su predecesor HTML, está basado en SGML (Standard Generalized Markup Language), lenguaje utilizado para estructurar grandes documentos. A diferencia de HTML, XML es un metalenguaje y que es extensible. Esto permite construir estructuras de datos de acuerdo al dominio de la aplicación particular en el cual estemos trabajando.
XML
XML no es un lenguaje de programación y, por tanto, no contiene estructuras de control (iterativas, de decisión, etc.). XML es un lenguaje de descripción de información cuya principal utilización, aunque no única, es el intercambio de información estructurada a través de Internet.
La información en XML se encuentra organizada en etiquetas:
<TITULO>Clave Red Rabbit</TITULO>
SOAP (Simple Object Access Protocol) es un protocolo de comunicación basado en XML, que se utiliza para el intercambio de información estructurada entre aplicaciones y que define mecanismos para el envío y recepción de mensajes a través de Internet. SOAP no presenta restricciones respecto del paradigma de programación a utilizar ni al patrón de comunicación de las aplicaciones, simplemente proporciona el mecanismo para que dos aplicaciones puedan enviarse mensajes a través de la Web usando como base XML.
SOAP
Un mensaje SOAP es básicamente una transmisión en un sentido entre dos nodos: un emisor SOAP y un receptor SOAP. Además, los mensajes SOAP carecen de estado, es decir, un emisor no puede asegurar la recepción de un mensaje enviado.
Como puede apreciarse, el protocolo SOAP delega en las aplicaciones la construcción de interacciones más complejas, como las utilizadas en aplicaciones empresariales.
WSDL (Web Services Description Language) es el lenguaje propuesto por el W3C para la descripción de servicios Web y permite definir la interfaz del servicio en formato XML. WSDL permite describir la ubicación e interfaz de un servicio Web facilitando, de ese modo, el acceso al servicio por parte de los consumidores.
Un documento WSDL puede verse como un contrato
WSDL
En esencia, un documento WSDL especifica:
a) qué funciones se pueden invocar,
b) qué tipo de datos utilizan esas funciones,
c) qué protocolo de transporte se utilizará para el envío y recepción de los mensajes
d) cómo acceder a los servicios (fundamentalmente, mediante un URL).
El servicio de registro UDDI (Universal Description Discovery, and Integration), proporciona un medio para poder encontrar los servicios Web como si de un directorio de servicios Web se tratara.
Así, UDDI ofrece a los clientes, o consumidores de servicios Web, un repositorio centralizado con información sobre servicios Web disponibles.
UDDI
Actualmente, los servicios Web, pueden ser accedidos y ejecutados a través de la Web utilizando un conjunto de tecnologías y protocolos estándares. Estas tecnologías operan en un nivel sintáctico y se centran en la descripción técnica de los servicios Web. Por ello, la búsqueda y enlazado de los servicios Web se realiza, en la mayor parte de los casos, en tiempo de codificación.
Servicios Web Semánticos
Los Servicios Web Semánticos (SWS) intentan solucionar las limitaciones actuales de los servicios Web. Para ello, los SWS añaden descripciones semánticas a los servicios Web tradicionales, utilizando lenguajes formales. Las descripciones semánticas de los servicios Web se utilizan para documentar de manera explícita y formal la funcionalidad del servicio Web y de este modo automatizar su descubrimiento, composición e invocación.
Los SWS también dan soporte a la mediación, ejecución y monitorización de los servicios Web. El proceso de mediación a que nos referimos se encarga de mediar entre un conjunto se servicios, cuando todos ellos pueden satisfacer las necesidades concretas de un usuario.
los desarrolladores de software, al escribir el código, tan sólo tienen que especificar cuál es la funcionalidad requerida sin necesidad de indicar qué servicio Web concreto la llevará a cabo.
Existen actualmente varias aproximaciones procedentes tanto del ambiente industrial como del académico para la especificación y explotación de SWS. Cada una de estas iniciativas propone un enfoque diferente para la construcción de esas descripciones semánticas. De entre las iniciativas más relevantes: OWL-S (OWL-S Service Coalition), WSMO (Web Services Modeling Ontology) y de WSDL-S. Todas ellas están siendo analizadas por el W3C para su posible estandarización.
Top Related