TEMA 12 5. ARQUITECTURA DE SERVICIOS WEB (WS) 5.1

Anuncio
TEMA 12
5. ARQUITECTURA DE SERVICIOS WEB
(WS)
5.1. Introducción
Desde mediado de la década de los 90, con la aparición y extensión de Internet a
niveles jamás pensados, ha existido siempre la necesidad de integración entre
sistemas muy heterogéneos, tanto software como hardware. Muchas empresas
comenzaron grandes proyectos para lograr la mejor tecnología integradora de
sistemas, pero a medida que la competencia se hacia cada vez más fuerte, la
integración se hacia cada vez más difícil.
Estas empresas pronto se percataron que la imposibilidad de crear una plataforma
integrada de forma individual; se haría necesario atacar el problema de raíz,
buscando un lenguaje común de intercambio de información aprovechando
los estándares existentes en el mercado. Bajo este contexto nacen los
Servicios Web basados en XML
5.2. Definición
Un servicio Web (Web service) es una colección de protocolos y estándares que
sirven para intercambiar datos entre aplicaciones. La interoperabilidad se consigue
mediante la adopción de estándares abiertos.
Estos servicios 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.
Distintas aplicaciones de software desarrolladas en lenguajes de programación
diferentes y ejecutadas sobre cualquier plataforma pueden utilizar los servicios web
para intercambiar datos en redes como Internet.
Existen muchas otras definiciones alternativas, lo que muestra la complejidad a la
hora de concretar una adecuada descripción que englobe todo lo que son e implican
los servicios web. A continuación ofrecemos algunas:
•
Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en
la Web. Estas aplicaciones o tecnologías intercambian datos entre sí con el
objetivo de ofrecer unos servicios. Los proveedores ofrecen sus servicios
como procedimientos remotos y los usuarios solicitan un servicio llamando a
estos procedimientos a través de la Web.
•
Componentes software que permiten a los usuarios usar aplicaciones que
comparten datos con otros programas modulares, vía Internet.
•
Aplicaciones independientes de la plataforma que pueden ser fácilmente
publicadas, localizadas e invocadas mediante protocolos web estándar, como
XML, SOAP, UDDI o WSDL. El objetivo final es la creación de un directorio
online de servicios web que pueda ser localizado de un modo sencillo y que
tenga una alta fiabilidad.
•
Nueva generación de aplicaciones que trabajan colaborativamente en las
cuáles el software esta distribuido en diferentes servidores.
Como podemos apreciar, probablemente existan tantas definiciones de los Servicios
Web como compañías que los desarrollan, pero casi todas las definiciones se
desarrollan sobre estos aspectos técnicos comunes:
•
Los Servicios Web exponen funcionalidad útil a los usuarios Web mediante
un protocolo Web estándar. En la mayoría de casos, el protocolo utilizado es
Simple Object Access Protocol (SOAP).
•
Los Servicios Web proporcionan un modo de describir sus interfaces con
suficiente detalle para permitir a un usuario construir una aplicación cliente
para comunicarse con ellos. Esta descripción se proporciona generalmente
en un documento XML que responde al nombre de documento Servicios
web Description Language (WSDL).
•
Los Servicios Web se registran de modo que los potenciales usuarios puedan
encontrarlos. Esto se realiza mediante Universal Discovery Description
and Integration (UDDI).
Aunque la idea de la programación modular no es nueva, el éxito de esta tecnología
reside en que se basa en estándares conocidos en los que ya se tiene una gran
confianza, como el XML. Además, el uso de los servicios web aporta ventajas
significativas
a
las
empresas.
El
principal
objetivo
que
se
logra,
es
la
interoperabilidad y la integración. Mediante los servicios web, las empresas pueden
compartir servicios software con sus clientes, socios, proveedores, etc.
Esto ayudará a las compañías a escalar sus negocios, reduciendo el coste en
desarrollo y mantenimiento de software, y lanzando productos al mercado con
mayor rapidez. La integración de aplicaciones hará posible obtener la información
demandada en tiempo real, acelerando el proceso de toma de decisiones. La
evolución de Internet hacia los servicios web, mejorará los resultados globales de
las empresas, reduciendo sus gastos y guiándolas hacia una mejora progresiva de
la calidad. La adopción de la tecnología de servicios web por la industria puede
suponer el primer paso hacia una economía global.
5.3. Ventajas e Inconvenientes
Ventajas:
•
Aportan
interoperabilidad
entre
aplicaciones
de
software
independientemente de sus propiedades o de las plataformas sobre las que
se instalen, permitiendo la interoperabilidad entre plataformas de distintos
fabricantes mediante protocolos estándar.
•
Los servicios web fomentan los estándares y protocolos basados en texto,
que hacen más fácil acceder a su contenido y entender su funcionamiento.
•
Al apoyarse en HTTP, los servicios web pueden aprovechar los sistemas
cortafuegos sin necesidad de cambiar sus reglas de filtrado. La principal
razón para usar servicios Web es que se basan en HTTP sobre TCP en el
puerto 80. Dado que las organizaciones protegen sus redes mediante
cortafuegos (firewalls) que filtran y bloquean gran parte del tráfico de
Internet, cierran casi todos los puertos TCP salvo el 80, que es,
precisamente, el que usan los navegadores. Los servicios Web se canalizan
por este puerto, por la simple razón de que no resultan bloqueados.
•
Permiten que servicios y software de diferentes compañías ubicadas en
diferentes lugares geográficos puedan ser combinados fácilmente para
proveer servicios integrados.
•
Los servicios web son muy prácticos al aportar gran independencia entre la
aplicación que usa el servicio web y el propio servicio. De esta forma, los
cambios a lo largo del tiempo en uno no deben afectar al otro. Esta
flexibilidad será cada vez más importante, dado que la tendencia a construir
grandes aplicaciones a partir de componentes distribuidos más pequeños es
cada día más acusada.
•
Previamente a la existencia de SOAP, no existían buenas interfaces para
acceder a las funcionalidades de otros ordenadores en red. Las que había
eran poco conocidas, tales como EDI, RPC, u otras APIs.
Inconvenientes:
•
En relación a las transacciones, no pueden compararse su grado de
desarrollo con los estándares abiertos de computación distribuida como
CORBA.
•
Su rendimiento es bajo si se compara con otros modelos de computación
distribuida, tales como RMI, CORBA, o DCOM. Es uno de los inconvenientes
derivados de adoptar un formato basado en texto. Además, entre los
objetivos
de
XML
no
se
encuentra
la
concisión
ni
la
eficacia
de
procesamiento.
•
Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en
cortafuegos cuyas reglas tratan de bloquear o auditar la comunicación entre
aplicaciones a ambos lados de la barrera.
•
Existe poca información de servicios web para algunos lenguajes de
programación.
5.4. Arquitectura Técnica: Protocolos
Las aplicaciones web actuales ya no son suficientes. El modelo actual de negocio
electrónico no facilita la integración de las aplicaciones de Internet con el resto de
software de las empresas. Si las compañías quieren extraer el máximo beneficio de
Internet, los sitios web deben evolucionar. Este es el contexto en el que surgen los
servicios web.
Como hemos visto, los servicios web son componentes software que permiten a los
usuarios usar aplicaciones de negocio que comparten datos con otros programas
modulares, vía Internet.
Son aplicaciones independientes de la plataforma que pueden ser fácilmente
publicadas, localizadas e invocadas mediante protocolos web estándar, como XML,
SOAP, UDDI o WSDL. El objetivo final es la creación de un directorio online de
servicios web, que pueda ser localizado de un modo sencillo y que tenga una alta
fiabilidad.
La funcionalidad de los protocolos empleados es la siguiente:
•
XML
(eXtensible
Markup
Language
–
Lenguaje
de
marcado
extensible): Un servicio web es una aplicación web creada en XML.
•
WSDL (Web Services Definition Language – Lenguaje de Descripción
de Servicios Web): Describe el servicio web cuando éste es publicado. Es
el lenguaje XML que los proveedores emplean para describir sus servicios
web.
Permite que un servicio y un cliente establezcan un acuerdo en lo que se
refiere a los detalles de transporte de mensajes y su contenido, a través de
un documento procesable por dispositivos.
WSDL representa una especie de contrato entre el proveedor y el que
solicita. WSDL especifica la sintaxis y los mecanismos de intercambio de
mensajes.
•
SOAP (Simple Object Access Protocol – Protocolo Sencillo de Acceso
a Objetos): Permite que programas que corren en diferentes sistemas
operativos se comuniquen. La comunicación entre las diferentes entidades
se realiza mediante mensajes que son rutados en un “sobre SOAP”.
•
UDDI
(Universal
Description
Discovery
and
Integration
–
Descripción, Descubrimiento e Integración Universal): Permite la
publicación y localización de los servicios. Los directorios UDDI actúan como
una guía telefónica de servicios web.
En los apartados siguientes los estudiamos con más detalle.
5.4.1. SOAP
SOAP es el protocolo de comunicaciones para los servicios Web XML. Al estar
descrito como protocolo de comunicaciones, SOAP incluye aspectos como la
invocación de objetos o un servicio de nombres, pero no los especifica. SOAP es un
protocolo que define el formato XML para los mensajes, y ésa es la única parte a la
que hace referencia la especificación. Si tenemos un fragmento XML correctamente
definido e incluido en un par de elementos SOAP, tenemos un mensaje SOAP.
Existen otras partes de la especificación SOAP que describen cómo representar
datos de programas utilizando XML y cómo utilizar SOAP para realizar llamadas a
procedimientos remotos. Estas partes opcionales de la especificación se utilizan
para implementar aplicaciones de tipo RPC donde un mensaje SOAP que contiene
una función invocable, y los parámetros que se pasan a la función, se envían desde
el cliente, y el servidor devuelve un mensaje con los resultados de la ejecución de
la función.
La mayoría de las implementaciones actuales de SOAP soportan aplicaciones RPC
porque los programadores que están acostumbrados a crear aplicaciones COM o
CORBA ya conocen el estilo RPC. SOAP también soporta aplicaciones de tipo
documental en las que el mensaje SOAP es simplemente un envoltorio sobre un
documento XML. Las aplicaciones SOAP de tipo documental son muy flexibles y
muchos servicios Web XML nuevos aprovechan esta flexibilidad para construir
servicios que serían difíciles de implementar utilizando RPC.
Estructura de un mensaje SOAP.
Los datos pueden ser transmitidos a través de HTTP , SMTP , etc. SOAP especifica el
formato de los mensajes. El mensaje SOAP está compuesto por un envelope (sobre),
cuya estructura está formada por los siguientes elementos: header (cabecera) y
body (cuerpo).
La última parte opcional de la especificación SOAP define el aspecto de un mensaje
HTTP que contiene un mensaje SOAP. Este enlace con HTTP es importante porque
HTTP está soportado por casi todos los sistemas operativos actuales (y muchos
otros no tan actuales).
El enlace HTTP es opcional, pero casi todas las implementaciones SOAP lo soportan,
porque es el único protocolo estandarizado para SOAP. Por esta razón, existe la
idea
generalizada
y
equivocada
de
que
SOAP
requiere
HTTP.
Algunas
implementaciones soportan transportes MSMQ, MQ Series, SMTP o TCP/IP, pero
casi todos los servicios Web XML actuales utilizan HTTP porque es ubicuo. Como
HTTP es un protocolo fundamental en la Web, la mayoría de las organizaciones ya
tienen una infraestructura de red que soporta HTTP y personal que ya sabe cómo
gestionarlo. La infraestructura de seguridad, monitorización y balance de carga
para HTTP ya está ampliamente disponible en la actualidad.
Una fuente importante de confusión respecto a SOAP es la diferencia entre la
especificación SOAP y las múltiples implementaciones de dicha especificación. La
mayor parte de personas que utilizan SOAP no escriben mensajes SOAP
directamente, pero utilizan un kit de herramientas SOAP para crearlos. Estas
herramientas generalmente traducen llamadas a funciones con un cierto lenguaje a
un mensaje SOAP. Por ejemplo, el kit de herramientas Microsoft SOAP Toolkit
2.0 traduce llamadas de funciones COM a SOAP y Apache Toolkit traduce
llamadas de funciones Java a SOAP. Los tipos de llamadas a funciones y los tipos de
datos de los parámetros soportados varían en cada implementación SOAP, de modo
que una función que funciona con un kit de herramientas puede no trabajar con
otro. Ésta no es una limitación de SOAP, sino de una implementación concreta.
La característica más convincente de SOAP es que ha sido implementado en
muchas plataformas hardware y software distintas. Esto significa que SOAP puede
utilizarse para enlazar sistemas dispares dentro y fuera de una organización. Se
han realizado muchos intentos en el pasado para que surgiese un protocolo de
comunicaciones común que pudiese utilizarse para la integración de sistemas, pero
ninguno ha tenido la amplia adopción de SOAP, principalmente porque SOAP es
mucho menor y simple de implementar que muchos de los protocolos anteriores.
Por ejemplo, las implementaciones de DCE y CORBA tardaron años, y sólo se
liberaron unas pocas implementaciones. SOAP, sin embargo, puede utilizar los
parseadores XML y las librerías HTTP para realizar la mayor parte del trabajo duro,
de modo que es posible completar una implementación SOAP en cuestión de
meses. Ésta es la razón de que haya más de 70 implementaciones SOAP
disponibles. Obviamente SOAP no realiza todo lo que hace DCE o CORBA, pero la
falta de complejidad es lo que hace que SOAP esté fácilmente disponible.
La ubicuidad de HTTP y la simplicidad de SOAP los convierten en una base ideal
para implementar servicios Web XML que pueden consumirse desde prácticamente
cualquier entorno.
5.4.2. WSDL
Un archivo WSDL es un documento XML que describe un conjunto de mensajes
SOAP y cómo se realiza el intercambio de mensajes. Como WSDL es XML, es legible
y editable pero, en la mayoría de casos, se genera y se consume por parte de
software.
Utilizando una analogía con otras tecnologías, podemos afirmar que WSDL es a
SOAP lo que IDL es a CORBA o COM.
WSDL especifica el contenido de un mensaje de petición y el aspecto del mensaje
de respuesta en una notación inequívoca.
La notación que utiliza un archivo WSDL para describir formatos de mensajes está
basada en el estándar XML Schema, siendo neutral respecto del lenguaje de
programación ya que está basado en estándares; esto lo hace apropiado para
describir interfaces de servicios Web XML accesibles desde una amplia variedad de
plataformas y lenguajes de programación.
Además de describir el contenido de los mensajes, WSDL define dónde está
disponible el servicio y qué protocolo de comunicaciones utilizar para hablar con el
servicio. Esto significa que el archivo WSDL define todo lo necesario para escribir un
programa que interactúe con un servicio Web XML.
Existen varias herramientas disponibles para leer un archivo WSDL y generar el
código necesario para comunicarse con un servicio Web XML. Alguna de las mejores
se pueden encontrar en Microsoft Visual Studio .NET.
5.4.3. UDDI
Escoger la estructura adecuada para una aplicación, especialmente una distribuida
a través de varios sistemas, es de gran importancia. Generalmente, una mala
elección de arquitectura no puede arreglarse durante la implementación, con
independencia de lo buenos que sean los desarrolladores. Tomar las decisiones
incorrectas lleva a un menor rendimiento, menor seguridad y una menor cantidad
de opciones cuando una aplicación deba ser actualizada.
Universal Discovery Description and Integration (UDDI) son las páginas
amarillas de los servicios web. Al igual que con las páginas amarillas tradicionales,
podemos buscar una empresa que ofrezca los servicios que necesitamos, obtener
información
sobre
el
servicio
ofrecido
y
contactar
con
alguien
para
más
información.
Se puede ofrecer un servicio Web sin registrarlo en UDDI, acción análoga a abrir un
negocio en un sótano y confiar en la publicidad boca a boca de nuestros clientes. Si
se desea alcanzar un mercado significativo, UDDI es fundamental para que los
clientes puedan encontrarnos.
Una entrada de directorio UDDI es un archivo XML que describe un negocio
y los servicios que ofrece.
Una entrada en el directorio UDDI está formada por tres partes:
•
Páginas blancas: Describen la compañía que ofrece el servicio: nombre,
dirección, contactos, etc.
•
Páginas amarillas: Incluyen categorías industriales basadas en taxonomías
estándares como el North American Industry Classification System y el
Standard Industrial Classification.
•
Páginas verdes: Describen el interfaz al servicio con suficiente detalle para
alguien que desarrolle una aplicación que consuma el servicio Web.
El modo en que se definen los servicios es mediante un documento UDDI llamado
Type Model o tModel. En muchos casos, tModel contiene un archivo WSDL que
describe un interfaz SOAP a un servicio web XML, pero tModel es suficientemente
flexible para describir prácticamente cualquier tipo de servicio.
El directorio UDDI también incluye varias formas de buscar los servicios que se
necesitan
para
construir
aplicaciones.
Por
ejemplo,
podemos
buscar
los
proveedores de un servicio en una ubicación geográfica específica o un negocio de
un tipo específico. El directorio UDDI proporciona información, contactos, enlaces e
información técnica que permiten evaluar qué servicios satisfacen nuestros
requerimientos.
UDDI permite encontrar negocios que ofrecen servicios web. La especificación WSInspection permite navegar por una serie de servicios web ofrecidos en un
determinado servidor para encontrar los que satisfacen las necesidades específicas
que se puedan tener.
En resumen: Hemos definido un servicio Web XML como un servicio
software expuesto en la Web mediante SOAP, descrito con un archivo
WSDL y registrado en UDDI.
El siguiente gráfico muestra cómo interactúa un conjunto de Servicios Web:
Arquitectura de un sistema basado en servicios web.
Según el ejemplo del gráfico, un usuario (que juega el papel de cliente dentro de
los Servicios Web), a través de una aplicación, solicita información sobre un viaje
que desea realizar haciendo una petición a una agencia de viajes que ofrece sus
servicios a través de Internet.
La agencia de viajes ofrecerá a su cliente (usuario) la información requerida. Para
proporcionar al cliente la información que necesita, esta agencia de viajes solicita a
su vez información a otros recursos (otros Servicios Web) en relación con el hotel y
la línea aérea.
La agencia de viajes obtendrá información de estos recursos, lo que la convierte a
su vez en cliente de esos otros Servicios Web que le van a proporcionar la
información solicitada sobre el hotel y la línea aérea.
Por último, el usuario realizará el pago del viaje a través de la agencia de viajes
que servirá de intermediario entre el usuario y el servicio Web que gestionará el
pago.
5.5. Organismos Normalizadores
Los servicios web están basados en el estándar XML, que ha sido universalmente
aceptado. Pero la situación para el resto de protocolos es bien distinta. La mayor
parte de ellos se encuentran todavía en desarrollo y pueden ser objeto de cambios.
Esa es la razón por la que la mayoría de las empresas están esperando a que estos
protocolos sean más universales antes de profundizar en esta tecnología.
Actualmente, ni SOAP, ni WSDL, ni UDDI han sido oficialmente reconocidos por
ningún organismo de estandarización. SOAP es el único que en este momento está
en consideración por el World Wide Web Consortium (W3C) y se encuentra
cercano a la estandarización.
SOAP y WSDL están siendo ampliamente usados, pero de momento UDDI no ha
tenido el mismo éxito. El principal motivo es que las técnicas de seguridad son
todavía muy inmaduras y las compañías prefieren hacer uso de registros privados
para dar soporte a intercambios privados de servicios web.
En febrero de 2007, algunas de las empresas muy importantes en el ámbito
informático multinacional como IBM, Intel, Microsoft o Oracle, han creado el WS-I:
organización para la Interoperabilidad de los Servicios web. El objetivo de
dicha organización es la promoción de la estandarización de los servicios web de
modo que se fomente la cooperación e interoperabilidad entre las compañías y
mercados.
Página web oficial de WS-I.
Por otra parte, OASIS (acrónimo de Organization for the Advancement of
Structured Information Standards) es un consorcio internacional sin fines de
lucro que orienta el desarrollo, la convergencia y la adopción de los estándares ebusiness (comercio electrónico).
OASIS ha aprobado la versión 2.0 de UDDI.
5.6. Estándares Establecidos
•
Servicios web Protocol Stack: Conjunto de servicios y protocolos de los
servicios Web.
•
XML: Formato estándar para los datos a intercambiar.
•
WSDL: Lenguaje de la interfaz pública para los servicios Web. Descripción
basada en XML de los requisitos funcionales necesarios para establecer una
comunicación con los servicios Web.
•
•
SOAP o XML-RPC: Protocolos sobre los que se establece el intercambio.
UDDI: Protocolo para publicar la información de los servicios Web. Permite
a las aplicaciones comprobar qué servicios web están disponibles.
•
WS-Security: Protocolo de seguridad aceptado como estándar por OASIS.
Garantiza la autenticación de los actores y la confidencialidad de los
mensajes enviados.
•
Otros protocolos: Los datos en XML también pueden enviarse de una
aplicación a otra mediante protocolos estandarizados como HTTP, FTP, o
SMTP.
5.7. Plataformas Actuales
La siguiente lista contiene los principales servidores de aplicaciones para servicios
Web:
•
Microsoft.NET
•
WebLogic
•
WebSphere
•
Axis y el servidor Jakarta Tomcat (de Apache)
•
Java Servicios web Development Pack (JWSDP) de Sun Microsystems
(basado en Jakarta Tomcat)
•
ColdFusion MX de Macromedia
•
JOnAS (parte de ObjectWeb una iniciativa de código abierto)
•
Novell exteNd (basado en la plataforma J2EE)
•
Zope es un servidor de aplicaciones Web orientado a objetos desarrollado en
el lenguaje de programación Python
•
VERASTREAM de AttachmateWRQ para modernizar o integrar aplicaciones
host IBM y VT
5.8. Seguridad
Actualmente, los servicios web están siendo ampliamente aceptados por las
empresas para el desarrollo de software de uso interno. Así los servicios pueden
implementar toda su funcionalidad y permanecer seguros tras el cortafuegos de la
compañía.
En contraposición, los desarrollos actuales no ayudan a la cooperación entre las
empresas ya que no existe ningún estándar establecido sobre las técnicas de
seguridad. Debido a la tecnología usada por los servicios web (en concreto SOAP),
las técnicas de seguridad convencionales utilizadas en Internet no resultan
suficientes.
Con SOAP cada mensaje intercambiado realiza múltiples saltos, siendo dirigido a
través de numerosos puntos intermedios antes de alcanzar su destino final. Por ello
los servicios web necesitan tecnologías que protejan los mensajes a lo largo de su
ruta completa.
Existen un conjunto de técnicas que garantizan la seguridad a nivel de mensaje:
•
Encriptación XML: Evita que los datos se vean expuestos a lo largo de su
recorrido.
•
Firma Digital XML: Asocia los datos del mensaje al usuario que emite la
firma, de modo que este usuario es el único que puede modificar dichos
datos.
•
XKMS (XML Key Management Specification) y los Certificados: Define
servicios web que se pueden usar para chequear la confianza de un
certificado de usuario.
•
SAML (Security Assertion Mark-up Language) y la Autorización:
Posibilita que los servicios web intercambien información de autentificación y
autorización entre ellos, por ejemplo que un servicio web confíe en un
usuario autentificado por otro servicio.
•
Validación de datos: Garantiza a los servicios web que recibirán datos
cuyos valores se encuentren dentro de los rangos esperados.
Además de lo expuesto existen otras técnicas que permiten mantener la seguridad
en niveles adicionales, por ejemplo la seguridad en UDDI permite autentificar todas
las entidades que toman parte en la publicación de un servicio web: proveedor,
agente y consumidor del servicio. De este modo, nadie podrá registrar servicios en
el papel de un proveedor o hacer uso de ellos sin contar con los permisos
adecuados.
En relación con SOAP, en las primeras etapas de su desarrollo, se percibía como un
protocolo basado en HTTP, y por ello se supuso que la seguridad HTTP sería
adecuada para SOAP. Después de todo, existen miles de aplicaciones Web
ejecutándose en la actualidad que utilizan seguridad HTTP, de modo que
seguramente también será adecuada para SOAP. Por esta razón, el estándar SOAP
actual asume que la seguridad es una cuestión de transporte y no indica nada sobre
los aspectos de seguridad.
Cuando SOAP se expandió hasta convertirse en un protocolo de propósito general
ejecutándose sobre diversos transportes, la seguridad se convirtió en un aspecto
más importante. Por ejemplo, HTTP proporciona varios modos de autenticar qué
usuario está realizando una llamada SOAP, pero ¿cómo se propaga esa identidad
cuando el mensaje se rutea desde un transporte HTTP a SMTP? SOAP se diseñó
como un protocolo de bloque de construcción de modo que, afortunadamente, ya
existen
especificaciones
en
trabajos
basados
en
SOAP
para
proporcionar
funcionalidades de seguridad adicionales para los servicios Web. La especificación
WS-Security define un sistema de encriptación completo.
5.9. Calidad
La calidad de un servicio web es un parámetro que no queda demasiado claro, pero
cuya medida es fundamental a la hora de desarrollar un servicio maduro.
Actualmente
existen
en
el
mercado
algunas
herramientas
específicamente
diseñadas para medir la calidad de los servicios web, pero sigue siendo necesaria
una estandarización sobre este tema.
Los resultados sobre la calidad de diferentes servicios web servirán como
parámetro de comparación y ayudarán al usuario a decantarse por un servicio u
otro.
Para que un web service se ejecute con corrección y satisfaga las expectativas
creadas, a parte del precio, habrá que tener en cuenta una serie de parámetros
como por ejemplo, que los resultados obtenidos del mismo sean los esperados o
que el entorno de uso sea amigable.
Otro elemento a tener en cuenta es la integración. Aunque teóricamente los
servicios web proporcionan conectividad con cualquier software de un modo
transparente, cada proveedor de servicios puede adoptar soluciones diferentes que
resultan más o menos adecuadas para el consumidor.
Analizando
la
escalabilidad
se
comprobará
el
grado
de
modularidad
y
flexibilidad del servicio.
Por último, también sería interesante analizar las características que ofrece el
proveedor de servicios web. Actualmente no existen estándares al respecto, pero la
mayoría de las empresas ya está demandando algún tipo de acuerdo o contrato con
los proveedores, de modo que se pueda garantizar la calidad y la fiabilidad de los
servicios contratados.
5.10. Algunos Ejemplos
Empresas multinacionales muy conocidas y muchas otras más discretas han
empezado
a
desarrollar
soluciones
mediante
tecnología
servicios
web.
A
continuación se incluyen algunos ejemplos significativos:
•
Microsoft: Lanzó la versión 2006 de su primer web service, denominado
MapPoint.Net. Mediante este servicio, el usuario podrá conocer su
localización exacta y otros datos adicionales relacionados con su posición
actual, como información de tráfico, rutas posibles o puntos comerciales
cercanos.
•
IBM: Ha implementado una solución basada en los servicios web llamada eBusiness on Demand. Esta solución permite la construcción de extranets
que ayuden a las empresas a ver los catálogos de productos, realizar y
localizar pedidos o chequear el estado del inventario en tiempo real.
•
Líneas Aéreas Escandinavas: Estas líneas aéreas han desarrollado un
servicio web que permite a los usuarios comprar billetes y chequear el
estado de los vuelos, mediante el uso del teléfono móvil.
5.11. Comparativa con otras Tecnologías
Una de las ventajas principales de la arquitectura de servicios web es que permite a
los programas escritos en diferentes lenguajes sobre diferentes plataformas
comunicarse entre sí de un modo basado en estándares.
Este mercado ofrecía estas posibilidades desde hace tiempo: CORBA (Common
Object Request Broker Architecture) y antes incluso DCE (Distributed Computing
Environment). ¿Cuál es la diferencia con estas tecnologías?. La primera disparidad
es que SOAP es bastante menos complejo que las anteriores aproximaciones, de
modo que la barrera de entrada para una implementación SOAP compatible con los
estándares es significativamente menor.
Encontraremos implementaciones SOAP de las mayores compañías de software,
como sería de esperar, pero también encontraremos muchas implementaciones
desarrolladas y mantenidas por un único desarrollador.
La otra ventaja significativa que tienen los servicios Web XML sobre anteriores
iniciativas es que trabajan con protocolos web estándares: XML, HTTP y TCP/IP. Un
significativo número de compañías ya tienen una infraestructura Web y personal
con conocimiento y experiencia en su mantenimiento, de modo que, nuevamente,
la barrera de entrada de los servicios web XML es considerablemente menor que las
tecnologías anteriores.
5.12. El Futuro Próximo
En apartados anteriores hemos hablado sobre cómo hablar con los servicios Web
XML (SOAP), cómo se describen los servicios Web XML (WSDL) y cómo encontrar
los servicios Web XML (UDDI). Estos protocolos constituyen un conjunto de
especificaciones que proporcionan la base para la integración y agregación de
aplicaciones.
Desde estas especificaciones base, las empresas están generando soluciones reales
y obteniendo valor real de las mismas. Aunque se ha trabajado mucho para que los
servicios Web XML sean una realidad, es necesario hacer mucho más.
Los primeros servicios web XML solían ser fuentes de información que podíamos
fácilmente incorporar en las aplicaciones (cotizaciones de valores, previsiones del
tiempo, resultados deportivos, etc.).
Actualmente los servicios web XML tienen un gran éxito entre el público, pero
todavía hay temas sobre los que los desarrolladores deben seguir trabajando; por
ejemplo, la seguridad, gestión operacional, transacciones, mensajería fiable, etc.
La arquitectura Global XML Web Services Architecture (GXA) permitirá que los
servicios Web XML evolucionen ofreciendo un modelo consistente y de propósito
general para añadir nuevas capacidades avanzadas a los servicios Web XML de
modo modular y extensible. WS-Security es una de las especificaciones de GXA.
Las necesidades de la gestión operacional como el routing de mensajes entre
múltiples servidores y la configuración dinámica de estos servidores también
forman parte de la arquitectura GXA, y se satisfacen por la especificación WSRouting y la especificación WS-Referral. A medida que la arquitectura GXA
crezca, se presentarán especificaciones para estas y otras necesidades.
En el futuro, algunos de los servicios Web XML más interesantes soportarán
aplicaciones que utilizarán la Web para hacer cosas que no pueden hacer hoy. Por
ejemplo, uno de los servicios que el proyecto Microsoft .NET My Services soportará
es un servicio de calendario. Si un dentista o mecánico expusiesen sus calendarios
mediante este servicio Web XML, se podrían planificar citas en línea.
Es
fácil
imaginar
un
conjunto
completo
de
aplicaciones
que
podrían
ser
desarrolladas para analizar y agregar información importante y que la presentase
de varias formas; por ejemplo, podríamos tener una hoja de cálculo Excel que
integrase una imagen financiera completa (cotizaciones, cuentas bancarias,
préstamos, etc.). Si esta información está disponible mediante servicios web XML,
Excel puede actualizarla continuamente. Parte de esta información será gratuita y
parte podría requerir de una suscripción al servicio.
La mayoría de esta información está ya disponible en la Web, pero los servicios
Web XML harán que su acceso programático sea más fácil y fiable.
Exponer las aplicaciones existentes como servicios web XML permitirá a los usuarios
construir nuevas y más potentes aplicaciones que utilicen estos servicios como
bloques de construcción. Por ejemplo, un usuario podría desarrollar una aplicación
de compras para obtener automáticamente la información de precios de varios
fabricantes, que permitiera seleccionar un fabricante, enviar el pedido y a
continuación realizar seguimiento del envío hasta que sea recibido. La aplicación del
fabricante, además de exponer sus servicios en la Web, podría a su vez utilizar
servicios web XML para verificar el crédito del cliente, realizar un cargo en su
cuenta y realizar el envío con una empresa de transporte.
Descargar