Servicios Web
Alcalde Iturri, Johanna Carruitero Alvinco, Eduardo Cueva Chamorro, Diego Pacherres Torrejón, César Sánchez Yañes, Leonardo
La manera de hacer negocios y la comunicación entre las personas y las empresas cambió de una manera rotunda. Bajo este contexto se hacía cada vez mayor la necesidad de integrar y compartir información entre distintas plataformas de software y hardware. Las empresas se percataron que era imposible crear una plataforma integradora de forma individual Era mejor buscar un leguaje común de intercambio de información aprovechando los estándares existentes en el mercado
Las aplicaciones web actuales ya no son suficientes…
Si las compañías quieren extraer el máximo beneficio de Internet, los sitios web deben evolucionar
En este contexto…
Un web service es: "Los web services 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. "Los servicios web son la revolución informática de la nueva generación de aplicaciones que trabajan colaborativamente en las cuales el software esta distribuido en diferentes servidores."
… “Son los bloques de construcción de la computación distribuida en el Internet” Un Web Service es similar a un sitio web que no cuenta con un interfaz de usuario y que da servicio a las aplicaciones en vez de a las personas. Un Web Service, en vez de obtener solicitudes desde el navegador y retornar paginas web como respuesta, lo que hace es recibir solicitudes a través de un mensaje formateado en XML
Simplificando… Los servicios web son un conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web.
Requisitos de un Web Service Interoperabilidad: Un servicio remoto debe permitir su utilización por clientes de otras plataformas. Amigabilidad con Internet: Clientes que accedan a los servicios remotos desde Internet. Interfaces fuertemente tipadas: No ambigüedad acerca del tipo de dato enviado y recibido
… Posibilidad de aprovechar los estándares de Internet existentes Soporte para cualquier lenguaje: No debería ligarse a un lenguaje de programación particular. Soporte para cualquier infraestructura de componente distribuida: No debe estar fuertemente ligada a una infraestructura de componentes en particular.
Seguridad Existen técnicas que pueden ser empleadas para garantizar la seguridad de datos: Encriptación XML Firma Digital XML XKMS y los Certificados SAML y la Autorización Validación de Datos
SOAP y UDDI, son otras de las técnicas usadas; la ultima, mantiene la seguridad en niveles.
Calidad Un web service debe ser ejecutado correctamente y satisfacer las necesidades del consumidor, por lo que se tiene en cuenta los parámetros siguientes: Los resultados obtenidos deben ser los esperados. Entorno de uso amigable Integridad. La escalabilidad, comprobara el grado de modularidad y flexibilidad del servicio.
Estandarización A diferencia del estándar XML, existen algunos protocolos que no se encuentran universalmente aceptados. SOAP, WSDAL y UDDI SOAP, es el único que se encuentra en consideración. A comparación de SOAP y WSDAL, que son los más usados, el caso de UDDI es distinto ya que las técnicas de seguridad de este son inmaduras.
INTRODUCCIÓN Los servicios en Internet están tomando cada vez más importancia. Se diseñan como "cajas negras" que oculten la complejidad de los sistemas finales y permitan una fácil comunicación. Sin embargo es fundamental tener un medio de localizar esos servicios, tarea más difícil conforme crece el número de servicios disponibles.
INTRODUCCIÓN(2) La especificación UDDI simplifica esa tarea, permitiendo a una organización publicar información sobre los servicios que ofrece y localizar información sobre servicios web que necesita utilizar. UDDI es simplemente un repositorio de documentos XML que define un mensaje SOAP para el registro y petición de información.
CARACTERÍSTICAS UDDI es un sistema ideado para describir servicios (junto con WSDL) y localizar empresas que ofrezcan estos servicios. Es un directorio para almacenar información sobre servicios web; entre otra, guarda las interfaces de esos servicios descritas en WSDL. UDDI utiliza SOAP para llevar a cabo las comunicaciones. Está desarrollado e integrado en la plataforma .NET de Microsoft. UDDI ha sido propuesto por Dell, Fujitsu, HP, Hitachi, IBM, Intel, Microsoft, Oracle, SAP y Sun (entre otros).
CARACTERÍSTICAS(2) UDDI puede ayudarnos a resolver los siguientes problemas: Descubrir la empresa más adecuada de entre las muchas presentes en Internet Obtener información sobre cómo contactar con esa empresa Conseguir nuevos clientes y facilitar el acceso a los actuales incrementando los servicios ofertados y extendiendo el mercado al que se puede acceder Describir servicios y procesos empresariales en un entorno seguro y fácil de usar
EJEMPLO Supongamos que se creara un estándar UDDI para reserva y venta de billetes de avión. Las aerolíneas podrían registrar sus servicios en un directorio UDDI siguiendo ese estándar (e interface UDDI). Así, las agencias de viaje, accediendo al repositorio UDDI a través de la interfaz, podrían comunicarse con el servicio ofrecido por cualquier aerolínea para hacer las reservas y ventas.
UDDI Registrar Servicios
Buscar Servicio
Usar Servicio Agencia de viaje
Aerolínea
INTRODUCCIÓN Cuando una aplicación expone alguna funcionalidad, podremos acceder a ella a través de ciertas operaciones que requieren que le pasemos alguna información. Una vez que las operaciones se completan, la aplicación devuelve los resultados al cliente. Esos intercambios de información necesitan un protocolo, lo cual implica que el desarrollador debe haber descrito las interfaces de acceso al servicio. WSDL nos permite describir y localizar servicios web. Una descripción WSDL es un documento XML con una estructura determinada
VENTAJAS Facilita escribir y mantener servicios mediante una aproximación estructurada para definir interfaces web. Facilita el acceso a esos servicios web reduciendo el código que hay que escribir para hacer un cliente. Facilita hacer cambios para ampliar los servicios, reduciendo la posibilidad de que los clientes dejen de funcionar al llamar a esos servicios.
ESTRUCTURA DE LOS DOCUMENTOS WSDL tipos de dato: definen los tipos de datos usados en los mensajes. Se utilizan los tipos definidos en la especificación de esquemas XML. mensajes: definen los elementos de mensaje que forman las comunicaciones. tipos de puerto: definen las operaciones permitidas y los mensajes intercambiados. bindings: definen los protocolos de comunicación usados puertos: definen la dirección de un binding servicios: conjunto de puertos
ESTRUCTURA DE LOS DOCUMENTOS WSDL(2) <wsdl:definitions> <wsdl:types> ... <wsdl:message> <part name="parametro" type="xsd:string"/> <wsdl:portType> <wsdl:operation name="funcion"> ... <wsdl:binding> ... <wsdl:service name="HelloWorldService"> ..
INTRODUCCIÓN XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en: Bases de datos, Editores de texto, Hojas de cálculo y casi cualquier cosa imaginable.
INTRODUCCIÓN(2) XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.
VENTAJAS Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna. El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones. Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones.
ESTRUCTURA DE UN DOCUMENTO XML La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de pedazos de información.
EJEMPLO
]> <Edit_Mensaje> <Mensaje>
Nombre del remitente <Mail> Correo del remitente Nombre del destinatario <Mail>Correo del destinatario Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades.... <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades....
HyperText Transfer Protocol
Es el protocolo usado en cada transacción de la Web (WWW). HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.
Está formada por un encabezado seguido, opcionalmente, por una línea en blanco y algún dato. El encabezado especificará cosas como la acción requerida del servidor, o el tipo de dato retornado, o el código de estado El Encabezado de las transacciones HTTP usan campos dándole flexibilidad al protocolo y a su ves permiten que se envíen información descriptiva Un encabezado es un bloque de datos que precede a la información propiamente dicha, por lo que muchas veces se hace referencia a él como metadato - porque tiene datos sobre los datos.
El servidor puede excluir cualquier encabezado que ya esté procesado, como Authorization, Content-type y Contentlength. El servidor puede elegir excluir alguno o todos los encabezados si incluirlos exceden algún límite del ambiente de sistema. Ejemplos de esto son las variables HTTP_ACCEPT y HTTP_USER_AGENT.
HTTP_ACCEPT. Los tipos MIME que el cliente aceptará, dado los encabezados HTTP. Otros protocolos quizás necesiten obtener esta información de otro lugar. HTTP_USER_AGENT. El navegador que utiliza el cliente para realizar la petición.
Para obtener un recurso con el URL http://www.universitario.com/index.html Se abre una conexión al host www.universitario.com, puerto 80 que
es el puerto por defecto para HTTP. Se envía un mensaje en el estilo siguiente:
La respuesta del servidor está formada por encabezados seguidos del recurso solicitado, en el caso de una página web:
SIMPLE OBJECT ACCESS PROTOCOL
SOAP es la evolución del protocolo XML-RPC que permite hacer
llamadas a procedimientos remotos usando XML como lenguaje común y HTTP como protocolo de transporte. También pueden usarse otros protocolos de envío, como por ejemplo SMTP (e-mail). Un desarrollo con estos estándares no es fácil de lograr: si hay un firewall
entre las máquinas a comunicar, es posible que dificulte las comunicaciones. Como SOAP trabaja sobre HTTP, y éste se maneja muy bien con los cortafuegos, el problema queda resuelto.
Es un protocolo ligero Es simple y extensible Se usa para comunicación entre aplicaciones Está diseñado para comunicarse vía HTTP No está ligado a ninguna tecnología de componentes No está ligado a ningún lenguaje de programación Está basado en XML Está coordinado por W3C (estándar)
El cliente envía ciertos datos que hay que convertir a una representación neutra antes de enviarlos por la red al servidor. La llamada se transforma en un documento XML . XML se envía usando el protocolo HTTP hacia el receptor.
Una vez que llega el mensaje XML al receptor. se convierten los datos a la representación utilizada por el lenguaje en que está programado el servidor. El método en el servidor realiza las operaciones y devuelve el resultado realizando las conversiones anteriores en sentido inverso.
ESTRUCTURA DE UN MENSAJE EJEMPLO DE COMUNICACIÓN (SIN CABECERAS HTTP):
Un mensaje SOAP es un documento XML que consta de los siguientes elementos:
Envoltorio (envelope) que define el contenido del mensaje Cabecera (header) que es opcional y que contiene información referente a la cabecera del mensaje Cuerpo (body) que contiene la información de la llamada y de la respuesta
Supongamos que tenemos una sencilla aplicación en la que hay una clase HelloServer que tiene un método llamado sayHello() que recibe como parámetro una cadena de caracteres que será el nombre de la persona a quien saludaremos: el mensaje generado por el cliente sería:
El mensaje devuelto por el servidor sería:
Referencias http://www.slideshare.net/dwebslide/servicios-web http://www.slideshare.net/Jmaquino/implemantacin-de-servicios-web http://www.slideshare.net/ricardoucpr/introduccion-servicios-web-1920923 http://www.genbeta.com/web/de-la-aplicacion-al-servicio-web http://www.w3c.es/Divulgacion/GuiasBreves/ServiciosWeb http://geneura.ugr.es/~jmerelo/ws/ http://www.pdfcoke.com/doc/14464276/Manual-Completo-Servicios-Web http://www.pdfcoke.com/doc/502746/Sesion-08-Servicios-Web