compendio de ingeniería del softwarecotana.informatica.edu.bo/downloads/servicios web.pdf ·...

37
1.6 SERVICIOS WEB MODULO I Ingeniería de Software INF - 163 Resumen preparado por Miguel Cotaña

Upload: duongnhi

Post on 20-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1.6 SERVICIOS WEB

MODULO I

Ingeniería de Software INF - 163

Resumen preparado por Miguel Cotaña

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.