You are on page 1of 9

WEB SERVICES (ESTANDARES)

Realizar un trabajo sobre los distintos servicios Web, aportando opiniones sobre cada uno de ellos. Un servicio web (en ingls, Web service) es una pieza de software que utiliza un conjunto de protocolos y estndares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programacin diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopcin de estndares abiertos. Las organizaciones OASIS y W3C son los comits responsables de la arquitectura y reglamentacin de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera ms exhaustiva estos estndares. Estndares empleados Web Services Protocol Stack: As se denomina al conjunto de servicios y protocolos de los servicios Web. XML (Extensible Markup Language): Es el formato estndar para los datos que se vayan a intercambiar. SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): Protocolos sobre los que se establece el intercambio. Otros protocolos: los datos en XML tambin pueden enviarse de una aplicacin a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), o SMTP (Simple Mail Transfer Protocol). WSDL (Web Services Description Language): Es el lenguaje de la interfaz pblica para los servicios Web. Es una descripcin basada en XML de los requisitos funcionales necesarios para establecer una comunicacin con los servicios Web. UDDI (Universal Description, Discovery and Integration): Protocolo para publicar la informacin de los servicios Web. Permite comprobar qu servicios web estn disponibles. WS-Security (Web Service Security): Protocolo de seguridad aceptado como estndar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticacin de los actores y la confidencialidad de los mensajes enviados. Ventajas de los servicios web Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen. Los servicios Web fomentan los estndares y protocolos basados en texto, que hacen ms fcil acceder a su contenido y entender su funcionamiento. Permiten que servicios y software de diferentes compaas ubicadas en diferentes lugares geogrficos puedan ser combinados fcilmente para proveer servicios integrados.

Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

Inconvenientes de los servicios Web

Para realizar transacciones no pueden compararse en su grado de desarrollo con los estndares abiertos de computacin distribuida como CORBA (Common Object Request Broker Architecture). Su rendimiento es bajo si se compara con otros modelos de computacin distribuida, tales como RMI (Remote Method Invocation), CORBA o DCOM (Distributed Component Object Model). Es uno de los inconvenientes derivados de adoptar un formato basado en texto. Y es que entre los objetivos de XML no se encuentra la concisin ni la eficacia de procesamiento. Al apoyarse en HTTP, pueden esquivar medidas de seguridad basadas en firewall cuyas reglas tratan de bloquear o auditar la comunicacin entre programas a ambos lados de la barrera.

Razones para crear servicios Web La principal razn para usar servicios Web es que se pueden utilizar con HTTP sobre TCP (Transmission Control Protocol) en el puerto 80. Dado que las organizaciones protegen sus redes mediante firewalls -que filtran y bloquean gran parte del trfico de Internet-, cierran casi todos los puertos TCP salvo el 80, que es, precisamente, el que usan los navegadores. Los servicios Web utilizan este puerto, por la simple razn de que no resultan bloqueados. Es importante sealar que los servicios web se pueden utilizar sobre cualquier protocolo, sin embargo, TCP es el mas comn. Otra razn es que, antes de que existiera SOAP, no haba buenas interfaces para acceder a las funcionalidades de otros ordenadores en red. Las que haba eran ad hoc y poco conocidas, tales como EDI (Electronic Data Interchange), RPC (Remote Procedure Call), u otras APIs. Una tercera razn por la que los servicios Web son muy prcticos es que pueden aportar gran independencia entre la aplicacin 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 ms importante, dado que la tendencia a construir grandes aplicaciones a partir de componentes distribuidos ms pequeos es cada da ms utilizada. Se espera que para los prximos aos mejoren la calidad y cantidad de servicios ofrecidos basados en los nuevos estndares. XML XML es una tecnologa en realidad muy sencilla que tiene a su alrededor otras tecnologas que la complementan y la hacen mucho ms grande y con unas posibilidades enormes y bsicas para la sociedad de la informacin. Vamos a ver a lo largo de varios captulos una introduccin al mundo XML, es decir, al lenguaje as como a las tecnologas que trabajan con l, sus usos, ventajas y modos de llevar a cabo las tareas. XML, con todas las tecnologas relacionadas, representa una manera distinta de hacer las cosas, ms avanzada, cuya principal novedad consiste en permitir compartir los
Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

datos con los que se trabaja a todos los niveles, por todas las aplicaciones y soportes. As pues, el XML juega un papel importantsimo en este mundo actual, que tiende a la globalizacin y la compatibilidad entre los sistemas, ya que es la tecnologa que permitir compartir la informacin de una manera segura, fiable, fcil. Adems, XML permite al programador y los soportes dedicar sus esfuerzos a las tareas importantes cuando trabaja con los datos, ya que algunas tareas tediosas como la validacin de estos o el recorrido de las estructuras corre a cargo del lenguaje y est especificado por el estndar, de modo que el programador no tiene que preocuparse por ello. Vemos que XML no est slo, sino que hay un mundo de tecnologas alrededor de l, de posibilidades, maneras ms fciles e interesantes de trabajar con los datos y, en definitiva, un avance a la hora de tratar la informacin, que es en realidad el objetivo de la informtica en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios lenguajes, no es una sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una manera ms refinada que permitir que todas las anteriores se puedan comunicar entre si sin problemas, ya que los datos cobran sentido. Todo esto lo veremos con calma en la Introduccin a XML. XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos sistemas distintos que tienen que comunicarse entre si, pero como se ha podido imaginar, interesa por igual a todas las ramas de la informtica y el tratamiento de datos, ya que permite muchos avances a la hora de trabajar con ellos. As pues, os recomendamos seguir esta lectura en la introduccin a XML. A lo largo de los siguientes captulos, vamos a ver algunas caractersticas importantes de la tecnologa que nos permitirn comprender mejor el mundo XML y cmo soluciona nuestros problemas a la hora de trabajar con los datos. UDDI UDDI son las siglas del catlogo de negocios de Internet denominado Universal Description, Discovery and Integration. El registro en el catlogo se hace en XML. UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto de los servicios Web. El registro de un negocio en UDDI tiene tres partes:

Pginas blancas direccin, contacto y otros identificadores conocidos. Pginas amarillas categorizacin industrial basada en taxonomas. Pginas verdes informacin tcnica sobre los servicios que aportan las propias empresas.

UDDI es uno de los estndares bsicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catlogo de registros.
3

UDDI Un registro global de servicios Web UDDI es un registro pblico diseado para almacenar de forma estructurada informacin sobre empresas y los servicios que stas ofrecen. A travs de UDDI, se puede publicar y descubrir informacin de una empresa y de sus servicios. Se puede
Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

utilizar sistemas taxonmicos estndar para clasificar estos datos y poder encontrarlos posteriormente en funcin de la categorizacin. Lo ms importante es que UDDI contiene informacin sobre las interfaces tcnicas de los servicios de una empresa. A travs de un conjunto de llamadas a API XML basadas en SOAP, se puede interactuar con UDDI tanto en tiempo de diseo como de ejecucin para descubrir datos tcnicos de los servicios que permitan invocarlos y utilizarlos La iniciativa UDDI surgi como respuesta a estas preguntas. Varias empresas, incluidas Microsoft, IBM, Sun, Oracle, Compaq, Hewlett Packard, Intel, SAP y unas trescientas ms (para obtener un listado completo, consulte UDDI: Community [en ingls]), unieron sus esfuerzos para desarrollar una especificacin basada en estndares abiertos y tecnologas no propietarias que permitiera resolver los retos anteriores. El resultado, cuya versin beta se lanz en diciembre de 2000 y estaba en produccin en mayo de 2001, fue un registro empresarial global alojado por varios nodos de operadores en el que los usuarios podan realizar bsquedas y publicaciones sin coste alguno. A partir de la creacin de esta infraestructura para servicios Web, los datos sobre estos servicios se pueden encontrar de forma sistemtica y confiable en una capacidad universal totalmente independiente de proveedores. Se pueden llevar a cabo bsquedas categricas precisas utilizando sistemas de identificacin y taxonmicos extensibles. La integracin de UDDI en tiempo de ejecucin se puede incorporar a las aplicaciones. Como resultado, se fomenta el desarrollo de un entorno de software de servicios Web. Cmo funciona UDDI? La informacin de UDDI se aloja en nodos de operador, empresas que se han comprometido a ejecutar un nodo pblico conforme a la especificacin que rige el consorcio UDDI.org. En la actualidad existen dos nodos pblicos que se ajustan a la versin 1 de la especificacin UDDI: Microsoft aloja uno e IBM el otro. Hewlett Packard se ha comprometido a alojar un nodo bajo la versin 2 de la especificacin. Los operadores del host deben replicar datos entre ellos a travs de un canal seguro, para conseguir la redundancia de la informacin en el registro UDDI. Se pueden publicar los datos en un nodo y descubrirlos en otro tras la rplica. Actualmente, la rplica se produce cada 24 horas. En el futuro, este intervalo entre rplicas se reducir, ya que habr ms aplicaciones que dependan de los datos de UDDI. Resulta importante observar que no existen requisitos de propietario respecto al modo en que el operador del host implementa su nodo. El nodo slo se debe ajustar a la especificacin UDDI. El nodo de Microsoft (http://uddi.microsoft.com/default.aspx [en ingls]), por ejemplo, se ha escrito por completo en C# y se ejecuta en produccin en tiempo de ejecucin en lenguaje comn .NET Beta 2. El cdigo de base se beneficia claramente de la compatibilidad nativa con SOAP y de la serializacin que ofrecen las clases de sistema .NET. En el lado del servidor, el nodo del operador Microsoft utiliza Microsoft SQL Server 2000 como almacn de datos. Creo que basta con mencionar que IBM utiliza tecnologas diferentes para ejecutar su nodo, verdad?. No obstante, los dos nodos se comportan exactamente igual, ya que se ajustan al mismo conjunto de llamadas a API XML basadas en SOAP. Las herramientas de los clientes pueden interoperar con ambos nodos sin problemas. Por eso, el nodo pblico UDDI constituye un claro ejemplo de que el modelo de servicios Web XML funciona en entornos heterogneos.
Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

El prximo paso para comprender la iniciativa UDDI consiste en ver qu datos se almacenan en UDDI y cmo se estructuran. UDDI es relativamente ligero; se ha diseado como registro, no como depsito. La diferencia, aunque sutil, resulta esencial. Un registro redirige al usuario a recursos, mientras que un depsito slo almacena informacin. El registro Microsoft Windows puede servir de ejemplo: contiene las configuraciones y parmetros bsicos pero, en ltima instancia, su funcin es la de dirigir la aplicacin a un recurso o binario. Buscar un componente COM basndonos en su Id. de programa nos conducir a un Id. de clase, que a su vez nos dirigir a la ubicacin del binario. UDDI se comporta de forma similar: como el registro de Windows, se basa en identificadores nicos globales (GUID) para garantizar la capacidad de bsquedas y determinar la ubicacin de recursos. En ltima instancia, las consultas a UDDI conducen a una interfaz (un archivo .WSDL, .XSD, .DTD, etc.) o a una implementacin (como un archivo .ASMX o .ASP) ubicadas en otro servidor. Por tanto, UDDI puede responder a este tipo de preguntas:

Qu interfaces de servicios Web basadas en WSDL se han publicado y establecido para un sector determinado? Qu empresas han escrito una implementacin basada en una de estas interfaces? Qu servicios Web, categorizados de algn modo, se ofrecen actualmente? Qu servicios Web ofrece una empresa determinada? Con quin se debe poner en contacto el usuario para utilizar los servicios Web de una empresa? Cules son los detalles de implementacin de un servicio Web concreto?

WSDL y UDDI WSDL se ha convertido en una pieza clave de la pila de protocolos de los servicios Web. Por eso, es importante saber cmo colaboran UDDI y WSDL y por qu la idea de interfaces frente implementaciones forma parte de cada protocolo. WSDL y UDDI se disearon para diferenciar claramente los metadatos abstractos y las implementaciones concretas. Para entender cmo funcionan WSDL y UDDI resulta esencial comprender las consecuencias de esta divisin. Por ejemplo, WSDL distingue claramente los mensajes de los puertos: los mensajes (la sintaxis y semntica que necesita un servicio Web) son siempre abstractos, mientras que los puertos (las direcciones de red en las que se invoca al servicio Web) son siempre concretos. No es necesario que un archivo WSDL incluya informacin sobre el puerto. Un archivo WSDL puede contener simplemente informacin abstracta de interfaz, sin facilitar datos de implementacin concretos, y ser vlido. De este modo, los archivos WSDL se separan de las implementaciones. Una de las consecuencias ms interesantes de esto es que pueden existir varias implementaciones de una nica interfaz WSDL. Este diseo permite que sistemas dispares escriban implementaciones de la misma interfaz, para garantizar as la comunicacin entre ellos. Si tres empresas diferentes implementan el mismo archivo WSDL y una parte del software de cliente crea el cdigo auxiliar/proxy a partir de esa

Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

interfaz, dicho software se podr comunicar con las tres implementaciones con el mismo cdigo de base, cambiando simplemente el punto de acceso. UDDI establece una distincin similar entre la abstraccin y la implementacin con el concepto de tModels. La estructura tModel, abreviatura de Technology Model (modelo de tecnologa), representa huellas digitales tcnicas, interfaces y tipos abstractos de metadatos. El resultado de los tModels son las plantillas de enlace, que son la implementacin concreta de uno o ms tModels. Dentro de una plantilla de enlace se registra el punto de acceso de una implementacin particular de un tModel. Del mismo modo que el esquema de WSDL permite separar la interfaz y la implementacin, UDDI ofrece un mecanismo que permite publicar por separado los tModels de las plantillas de enlace que hacen referencia a ellos. Por ejemplo, un grupo industrial o de estndares publica la interfaz cannica para un sector particular y, a continuacin, varias empresas escriben implementaciones de esta interfaz. Obviamente, cada una de estas implementaciones hara referencia al mismo tModel. Los archivos WSDL constituyen un ejemplo perfecto de tModel de UDDI. WSDL son las siglas de Web Services Description Language, un formato XML que se utiliza para describir servicios Web (algunas personas lo leen como wisdel). La versin 1.0 fue la primera recomendacin por parte del W3C y la versin 1.1 no alcanz nunca tal estatus. La versin 2.0 se convirti en la recomendacin actual por parte de dicha entidad. WSDL describe la interfaz pblica a los servicios Web. Est basado en XML y describe la forma de comunicacin, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios para interactuar con los servicios listados en su catlogo. Las operaciones y mensajes que soporta se describen en abstracto y se ligan despus al protocolo concreto de red y al formato del mensaje. As, WSDL se usa a menudo en combinacin con SOAP y XML Schema. Un programa cliente que se conecta a un servicio web puede leer el WSDL para determinar qu funciones estn disponibles en el servidor. Los tipos de datos especiales se incluyen en el archivo WSDL en forma de XML Schema. El cliente puede usar SOAP para hacer la llamada a una de las funciones listadas en el WSDL. WSDL son las siglas en ingls de Lenguaje de Descripcin de Servicios Web (o Web Services Description Language), un lenguaje que est basado en XML y que permite la descripcin de los servicios web desplegados. WSDL se utiliza tambin para la localizacin y ubicacin de estos servicios en Internet. Un documento WSDL no es ms que un documento XML que describe ciertas caractersticas propias de un servicio web, as como su localizacin y aquellos parmetros y mtodos que soporta. SOAP (siglas de Simple Object Access Protocol) es un protocolo estndar que define cmo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. Este protocolo deriva de un protocolo creado por David Winer en 1998, llamado XML-RPC. SOAP fue creado por Microsoft, IBM y otros y est actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.

Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

VENTAJAS USO SOAP

Protocolo abierto
SOAP es una especificacin abierta, construdo sobre tecnologas tambin abiertas como XML y HTTP. Por estas razones ha sido aceptado uniformemente por la industria, lo cual incrementa sus posibilidades de transformarse en estndard

Simplicidad
La especificacin de SOAP est bien definida y es sumamente simple.

Independiente de plataformas y lenguajes


SOAP propone el uso de XML y HTTP para acceder objetos, servicios y servidores. Hoy da HTTP es un protoclo de transporte aceptado por la industria y es usado en forma general sobre todas las plataformas. XML est siguiendo un camino parecido, dado que actualmente existen versiones de XML para casi cualquier plataforma o lenguaje de uso comn. El uso de XML y HTTP hace a SOAP completamente independiente de plataformas, sistemas operativos o lenguajes de programacin.

Interoperabilidad
El mundo de la computacin distribuida se encuentra dividido en grandes grupos dependiendo de la tecnologa usada, cada uno de los cuales adhiere a su propio protocolo: Microsoft con DCOM, CORBA o Java RMI/IIOP. Es un hecho que la interaccin entre sistemas basados en diferentes tecnologas no es algo simple por ms que existan bridges entre DCOM y CORBA por ejemplo.

Firewalls
El mundo de la computacin distribuida se encuentra dividido en grandes grupos dependiendo de la tecnologa usada, cada uno de los cuales adhiere a su propio protocolo: Microsoft con DCOM, CORBA o Java RMI/IIOP. Es un hecho que la interaccin entre sistemas basados en diferentes tecnologas no es algo simple por ms que existan bridges entre DCOM y CORBA por ejemplo.

Transporte
La versin 1.0 la especificacin de SOAP mandataba el uso de HTTP como transporte, en la versin 1.1 de la especificacin se flexibiliz esta posicin permitiendo el uso de protocolos de transporte como FTP, SMTP, adems de HTTP y sus variantes (HTTPS). Puede pensarse que en algn momento se usen otros protocolos como ser IIOP, RMI, etc. y de esta manera aumentar su usabilidad e interoperabilidad

Bajo acoplamiento
Los sistemas distribuidos basados en SOAP tienen un bajo acoplamiento, por lo cual pueden ser fcilmente mantenidos dado que pueden ser modificados independientemente de otros sistemas. En particular SOAP presenta un bajo acoplamiento con los sistemas y las aplicaciones internas de una organizacin, situacin que no se da con otras tecnologas distribuidas (CORBA, DCOM, etc.) donde existe un alto acoplamiento con la arquitectura subyacente de las aplicaciones lo que implica que tanto el emisor como el receptor deben usar el mismo sistema o por lo menos sistemas compatibles.

ESCALABILIDAD
Al usar el protocolo HTTP como transporte, los sistemas distribuidos construidos sobre SOAP son sumamente escalables.

Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

DESVENTAJAS USO SOAP

Performance

No es una forma de comunicacin entre aplicaciones compacta, dado que los mensajes estn codificados en XML, o sea en un formato ASCII. Esto hace que el transporte sea ineficiente a travs de la red, en particular en los casos de grandes conjuntos de datos. Lo contrario sucede con los formatos binarios de datos como mecanismo de comunicacin entre aplicaciones, que son usado por ejemplo por CORBA (CDR), DCOM (NDR), etc.
Parsing Como est basado en XML (formato ASCII) el parsing requiere ms recursos de CPU, que otros protocolos basados en formato binario. Marhalling/Unmarshalling Como est basado en XML (formato ASCII) el marshalling/unmarshalling requiere ms recursos de CPU, que otros protocolos basados en formatos binarios. Serializacin Todos los datos son serializados y pasados por valor y no por referencia, esto puede provocar problemas de sincronizacin si mltiples copias de un objeto fuesen pasadas en el mismo momento Semntica
8

SOAP no define la semntica de los mensajes, lo cual significa que la aplicacin cliente y la aplicacin servidor deben acordar al semntica de los mensajes
Sergio Fernndez Caldern | WEB SERVICES

WEB SERVICES (ESTANDARES)

CONCLUSION USO WEB SERVICES

Sergio Fernndez Caldern | WEB SERVICES