16
SERVICIOS WEB REDES DE COMPUTADORAS Ing. John antony ruiz cueva

Semana 15 -servicios_web

Embed Size (px)

Citation preview

Page 1: Semana 15 -servicios_web

SERVICIOS WEB

REDES DE COMPUTADORASIng. John antony ruiz cueva

Page 2: Semana 15 -servicios_web

1)¿Qué son los servicios web?2) ¿Entendemos para qué sirven?3) ¿Quién los usa?4) Estándares y protocolos

Page 3: Semana 15 -servicios_web

1) ¿Qué son los Servicios Web?• Según el W3C la definición es

"A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards." http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/

• Que significa………Un servicio Web es un sistema de software diseñado para soportar la

interacción interoperable de máquina a máquina a través de una red. Cuenta con una interfaz descrita en un formato procesable por máquina (específicamente WSDL). Otros sistemas interactúan con el servicio Web de una manera prescrita por su descripción usando mensajes, por lo general transmiten por medio de HTTP con una serializarían XML en conjunción con otros estándares relacionados con la Web

Page 4: Semana 15 -servicios_web

¿Qué son los servicios web?• Un servicio web consiste en una función

disponible en un servidor conectado al web. Esta función puede consistir en cualquier cosa: – Realizar un simple cálculo con unos datos que se le

envían como parámetro, – Acceder a una base de datos para recuperar un

conjunto de registros.– Validar la corrección de una información o

contrastarla frente a otros datos, etc.

• El servicio web podrá ser solicitado desde otro programa informático que se ejecute en un ordenador conectado al web. Junto a la solicitud de la ejecución, se pueden enviar al ordenador que ofrece el servicio unos parámetros que el servicio web remoto tomará como base para el cálculo o la función.

Page 5: Semana 15 -servicios_web

¿Qué son los servicios web?• La aplicación que actúa como cliente debe

conocer:– La URL del servidor remoto que ofrece el servicio, – El nombre del servicio que se solicita, y – Los parámetros que se deben enviar junto con la

llamada al servicio.

• Estos datos se enviarán mediante HTTP • El servidor que ofrece el servicio web leerá los

parámetros que se le han enviado, llamará a un componente o programa encargado de implementar el servicio, y los resultados que se obtengan de su ejecución serán devueltos al servidor que solicitó la ejecución del servicio.

Page 6: Semana 15 -servicios_web

2) ¿Entendemos para qué sirven?

• En teoría, los Servicios Web proporcionan una tecnología para “soportar las interacciones entre máquinas en una red” (definición de W3C)

• Otros opinan que sirven fundamentalmente para implementar SOAP

• Otros opinan que sirven para desarrollar aplicaciones distribuidas en general, mejorando y reemplazando a las tecnologías anteriores.

Page 7: Semana 15 -servicios_web

3) ¿Quién los usa?

• Las compañias de desarrollo software – IBM, Sun, Microsoft, Oracle, ...todas hacen ahora

Servicios Web– Es muy curioso ver ahora sus paginas web sobre estos

temas• Las organizaciones de estandarización (W3C,...)• Los grupos de investigación

– Revistas especializadas, Listas de Distribución, Charlas, Congresos ;-), …

• Las compañías de negocio– Financial (VISA, AMEX), – Travel agencies (TerminalA), – E-shops (Amazon), – Document handling (Adobe)

Page 8: Semana 15 -servicios_web

Integración de Servicios Web

HTTP/HTML

HTTP/SOAP/XML

Servicio Web de Viajes

Servicio Web de Alquiler de

Coches

GUI de la Compañía de

Viajes

Servicio Web de Reserva de

Hotel

Servicio Web de Reserva de

Vuelos

Page 9: Semana 15 -servicios_web

4) Estándares y protocolos• Protocolo de transporte: HTTP (hypertext

transfer protocol)• Formato de representación: XML • Protocolo de comunicación: SOAP

– Simple Object Access Protocol• Especifica cómo mandar mensajes XML sobre HTTP• Define el contenedor del mensaje

• Definición del interface de servicio: WSDL– Web Service Description Language

• IDL (Interface Definition Language) para servicios Web basado en XML

• Describe el tipo de datos (Esquema XML), funciones exportadas y sus mensajes de petición y respuesta

• Localización del servicio: UDDI– Universal Descrption, Discovery and Integration

Page 10: Semana 15 -servicios_web

HTTP (HyperText Transfer Protocol)Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortion que el 1999 publicó la  RFC 2616 que especifica la versión 1.1. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de recursos (URL). El resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.

Page 11: Semana 15 -servicios_web

XML (eXtensible Markup Language)XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible. Permite definir la gramática de lenguajes específicos para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones deben comunicarse entre sí o integrar información.

XML no ha nacido sólo para su aplicación para 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, etc.

Page 12: Semana 15 -servicios_web

SOAP (Simple Object Access Protocol)• La especificación SOAP indica cómo se deben

codificar los mensajes que circularán entre las dos aplicaciones.

• Fue definido inicialmente por Microsoft, Userland Software y DevelopMentor, a día de hoy se trata de una especificación mantenida por el W3C que cuenta con el apoyo de otros fabricantes como IBM, HP, Oracle, etc.

• La especificación SOAP define dos modelos de mensajes: – Un mensaje que se enviará desde la aplicación cliente

a la aplicación servidor, solicitando la ejecución de un método al que se pasan una serie de parámetros.

– Un mensaje que se enviará desde la aplicación servidor a la cliente, y que contendrá datos XML con los resultados de la ejecución del método solicitado.

Page 13: Semana 15 -servicios_web

WSDL (Web Services Description Language) • Permite describir los distintos métodos o

funciones que están disponibles en un servicio web, así como su signatura, es decir, el número de argumentos o parámetros que se les debe pasar, y el tipo de dato que devolverá la función como resultado.

• Se establece una equivalencia entre el documento WSDL y un “contrato” que especifica los servicios que el servidor se compromete a ofrecer al cliente, siempre que éste los solicite de la forma adecuada

Page 14: Semana 15 -servicios_web

WSDL (Web Services Description Language) • Los documentos WSDL deben estar

disponibles en el servidor web que ofrece los servicios.

• Como su creación resulta compleja, las distintas implementaciones de SOAP permiten generar estos archivos de forma sencilla, sin necesidad de conocer los elementos y la estructura del esquema XML en el que se basan.

Page 15: Semana 15 -servicios_web

Algunos “inconvenientes” de servicios web• Mensajería fiable• Seguridad• Acuerdos en cuanto a estándares para transacciones y

coreografía• A sincronía, latencia, fragmentación, transparencia frente

a fallos en nodos y comunicaciones, degradación de prestaciones, poca escalabilidad (cuellos de botella)... Vamos, los problemas propios de los sistemas distribuidos

• ¿Interoperabilidad? • ¿Contratos?• ¿Calidad de servicio? (definición, monitorización,...)• ¿Métricas de calidad ?• ¿Negociación automática? • ¿Tarificación? (licencias, acuerdos de uso, re-venta, etc.)• ¿Legislación?• Marketing: ¿Es el software un producto, o un servicio?

Page 16: Semana 15 -servicios_web

Cifras uso de Internet (Agosto 2014)

% Empresas...Latinonamerica

Europa

...que compran a través de Internet 19% 32%

...que venden a través de Internet 28% 57%