Servicios web. Jorge Iván Meza Martínez jimezam@gmail.com

Documentos relacionados
TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

5.1 Introducción a Servicios Web

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Desarrollo y servicios web

Service Oriented Architecture

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PROTOCOLOS DE APLICACIÓN PRÁCTICA EN INFOMED INTEROPERABILIDAD

Universidad Nacional Autónoma de México Dirección de Sistemas Dirección General de Personal

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Qué son los Web Services?

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

2524 Developing XML Web Services Using Microsoft ASP.NET

Sesión 17. Servicios web RESTful

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

MWEB 2007 Acceso Dinámico a Servicios de una Infraestructura Web desde Teléfonos Móviles

Servicio Web. Estándares empleados. Ventajas de los servicios web. Inconvenientes de los servicios Web

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Aplicaciones y Servicios Web (Web Services)

SISTEMAS DE INFORMACIÓN III TEORÍA

GALA. Servicios WEB. Curso ASP.NET Desarrollo de Sitios y Servicios Web con Visual Basic 2010, 24 h. L25. Servicios Web en Integración

Sistemas Operativos Distribuidos. Introducción a los Servicios Web (Web Services)

DESARROLLO WEB EN ENTORNO SERVIDOR

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Tema 6: Comparativa CORBA/Servicios Web

Documentación Técnica Conector

Web Services. Richard Rossel 23 de noviembre de Web Services

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Sistemas Distribuidos Servicios web. Rodrigo Santamaría

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Para el desarrollo de aplicaciones Web se han generado múltiples tecnologías entre ellas se encuentran:

Servicios Web con Java EE

Servicios Web con Java EE

Servicios Web Estándares, Extensiones y Perspectivas de Futuro

Service Oriented Architecture: Con Biztalk?

Servicios Web Ubicuos Activados por Voz

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Capítulo 7: Introducción a la dinámica de servicios Web

Portal Inteligente Medellín Documentación de la Arquitectura de Software

Capacitación Efectiva SOA y Web Services con Java

Glosario Acoplamiento. API. Archivos de recursos. ASCII. Balanceo de carga. Bases de datos federadas. BBDD. Clientes. Constructores.

Desarrollo y servicios web

Introducción a XML (III) - Web Services Huibert Aalbers Senior Certified Software IT Architect

MARCANDO LA DIFERENCIA

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

Servicios web. Contenido. Programación en Internet Curso Introducción Los pilares (SOAP, WSDL, UDDI) Desarrollo de un servicio web

PRUEBAS FUNCIONALES Y DE ACEPTACIÓN

MANUAL TÉCNICO WEB SERVICE PROTOCOLO SOAP

WEB SERVICE FACTORUMCFDISERVICE

WbS Web Services. Roberto Gómez Cárdenas Web Services

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Sistema de gestión de tareas y proyectos

E-Government con Web Services

WebServices bajo SOA. SOAagenda team Chile

Curso SOA and Java Web Services with JAX-WS

ANEXO 1. ANEXO TÉCNICO

Tema 4: Tecnologías Web Java

La aplicación práctica en el mundo empresarial de los estándares Web

Si usted quiere desarrollar con Bluevia y Java, esto es lo primero que debe saber

Visión general Infraestructura Desarrollo de un servicio Web Invocación de un servicio Web Bibliografía

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

CONCLUISIONES Y RECOMENDACIONES

Arquitectura Cliente/Servidor

Taller de Sistemas de Información 2. Web Services en Java y Java EE

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

DESARROLLO WEB EN ENTORNO SERVIDOR

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Escuela de Ingeniería en Informática Empresarial SYLLABUS

7.1 Java vs.net, la lucha se acrecienta

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

Tema 1 HTTP y aplicaciones web

Cursos de Extensión Universitaria UNIVERSIDAD DE OVIEDO. Servicios Web (II)

Especificación WebService para:

Centro de Interoperabilidad Semántica y Sistema de Gestión de Mensajes de Intercambio

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

8. Internet y su impacto en las Organizaciones. 8.1 Conceptos y terminología 8.2 Etapas de interacción con la Web 8.3 Impacto de Internet en las

Manual de Desarrollador Externo

Web Services - ReadingReportService Fecha: 29/04/2015. WEB Services ReadingReportService VERSIÓN 0.1. Autor: German Alfonso Briceño

Desarrollo de una arquitectura orientada a servicios para un prototipo de una línea de productos de software

ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS

Arquitectura de Proyectos de IT. Integración. Ing. Gastón Coco Ing. Nicolás Passerini Ing. Juan Arias Ing. Gustavo A. Brey Ing.

Manual Integración Clientes Servicios WCF. Versión 2.5

Capas de la arquitectura de referencia

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Oracle Service Bus: Entorno de Desarrollo

DESARROLLO WEB EN ENTORNO CLIENTE

Tema 3.1: Introducción a Servicios Web

Desarrollo de portales web con Drupal. Por Juan M. Rivero.

Visión General de GXportal. Última actualización: 2009

Servicios Web: Orquestación y coreografías

OLIMPO Servidor Universal

JavaEE.

Ingeniería de Software. Pruebas

Web Services. Introducción

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Sistema de Información Integrada del Área Social

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

NOTAS TÉCNICAS SOBRE EL SIT: Emisión Electrónica de Documentos (EDI)

Transcripción:

Servicios web Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/71

Contenidos Que es un servicio web. Tecnologías apoyan su implementación. Arquitectura de sus componentes. Tipos principales. REST SOAP Utilidad de los servicios web. Ejemplo de implementación servicio web SOAP en Java utilizando Netbeans JEE. Ejemplo consumir servicio web SOAP desde PHP.2/71

Evaluación pre-contenido 1.Qué es un servicio web? 2.Cuál es la utilidad de los servicios web? 3.Para qué sirven XML y JSON? 4.Qué son RDF, CSV, RSS, ATOM, KML? 5.Puedo desde una tecnología específica (Java por ejemplo) consumir servicios web desarrollados en otra distinta (.NET por ejemplo)? 6.Qué ventajas/desventajas encuentra entre los servicios web y la invocación remota de métodos? 3/71

Qué es un servicio web? a software system designed to support interoperable machine-to-machine interaction over a network. -W3C defintion 4/71

Introducción Proveen una interfaz de servicio conocida para la interacción entre cliente y servidor como lo hace el navegador. Los clientes acceden a servicios remotos (request) y obtienen respuestas (response) codificadas usualmente con XML (o JSON) a través del protocolo HTTP (request-reply). Apoyan la interoperabilidad en un mundo heterogéneo: mashups, grid y cloud computing (middleware). 5/71

Introducción Apoya el desacoplamiento en un sistema distribuido al minimizar las dependencias entre servicios. Se consideran una especialización o extensión de la web. Sin embargo sus servidores no necesariamente deben ser servidores web, ya que estos últimos sólo proveen el servicio HTTP básico. Requiere de un método para la representación de datos y el marshalling de los mensajes XML. 6/71

Introducción El protocolo SOAP determina las para que se empaqueten los mensajes utilizando XML. Generalmente también proveen una descripción de la interfaz del servicio Web Service Description Language (WSDL). También es posible incluír un servicio de directorio para servicios web Universal Description Discovery and Integration (UDDI). 7/71

Introducción XML Security implementa la seguridad en los mensajes: cifrar y firmar. Su implementación puede utilizar middlewares como los siguientes..net Web services (Microsoft) JAX-RPC (Oracle) Apache Axis (Apache) 8/71

Arquitectura general Request SOAP Protocolo HTTP Ops WSDL Red Cliente SOAP Servidor Recursos Response 9/71

Infraestructura y componentes 10/71

Combinación de servicios 11/71

Tipos de servicios web SOAP Simple Object Access Protocol. REST REpresentational State Transfer. (RESTful). 12/71

REST El cliente accede al estado de los recursos remotos mediante URLs y las operaciones o verbos del protocolo HTTP. GET obtener información del estado (idempotente). PUT modificar el estado. DELETE remover el recurso. POST crear el recurso. La identificación de los recursos se realiza a través del URI Nice URLs. 13/71

14/71

15/71

REST No existe un estándar oficial ya que es un estilo de arquitectura y no un protocolo. La representación de los mensajes se puede realizar en diferentes formatos: XML, JSON, RDF, CSV, TXT, RSS, ATOM, KML,... 16/71

17/71

Ejemplo: Twitter POST https://api.twitter.com/1.1/statuses/update.json status=maybe%20he%27ll%20finally%20find %20his%20keys.%20%23peterfalk GET https://api.twitter.com/1.1/statuses/show.json? id=210462857140252672 18/71

Ejemplo: Twitter 200 OK: Success! 304 Not Modified 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 406 Not Acceptable 420 Enhance Your Calm 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 19/71

Ejemplo Geonames - XML http://api.geonames.porg/countryinfo? lang=es&country=co&username=demo&style=full 20/71

Ejemplo Geonames - XML 21/71

Ejemplo Geonames - JSON http://api.geonames.org/countryinfojson? formatted=true&lang=es&country=co&username =demo&style=full 22/71

Ejemplo Geonames - JSON 23/71

Ventajas de REST Independiente de lenguaje y plataforma. Es mas simple de desarrollar que con SOAP. Baja curva de aprendizaje. Menor dependencia a las herramientas. No necesita una capa de mensajería adicional. Cercano a la filosofía de la web. 24/71

Desventajas de REST Sólo es útil en un modelo de comunciación punto a punto. No en sistemas distribuidos en los cuales se pase por varios intermediarios. Falta de estándares: seguridad, políticas, fiabilidad de los mensajes, etc. Depende del modelo de transporte de HTTP. 25/71

SOAP Es el sucesor de XML-RPC. Depende de XML para empaquetar sus mensajes. Originalmente se basó en HTTP pero puede ser utilizado con otros protocolos como SMTP o JMS. Es extensible módulos. Neutral diferentes protocolos de transporte. Independiente modelo de programación. 26/71

Protocolo XML Sobre (envelope) que hace parte del mensaje y como procesarlo. Reglas de codificación (encoding rules) tipos de datos. Convención para representar las invocaciones remotas y sus respuestas. 27/71

Sobre SOAP 28/71

Request (POST) 29/71

Request (Sobre) 30/71

Response (Sobre) 31/71

32/71

Web Service Definition Language (WSDL) 33/71

WSDL Service funciones publicadas. Endpoint punto de conexión (HTTP URL). Binding formatos de mensaje y representación de datos. Interface operaciones que pueden ser solicitadas y los mensajes requeridos. Operation acciones SOAP y codificación del mensaje. Types descripción de los datos. 34/71

Experimentar Tabla periódica http://www.webservicex.net/periodictable.asmx? wsdl Conversor de moneda http://www.webservicex.net/currencyconvertor. asmx?wsdl Geo IP Service http://www.webservicex.net/geoipservice.asmx? wsdl 35/71

Ventajas de SOAP Independiente de lenguaje, plataforma y transporte. Diseñado para ser utilizado en ambientes distribuidos. Es el estándar de hecho para los servicios web. Tiene buen soporte para otros estándares (WSDL, WS-*), herramientas y proveedores. Provee internamente manejo de errores. Es extensible. 36/71

Desventajas de SOAP Conceptualmente es mas complejo que REST. Su comunicación requiere de mas mensajes (verbose). La curva de aprendizaje es mas empinada. Se tiende a depender mas de herramientas para su desarrollo. 37/71

38/71

Ejemplo implementación servicio web SOAP desde Java Crear el proyecto web Crear el servicio web Agregar operaciones al servicio web Probar su funcionamiento Obtener su WSDL Invocar el servicio web desde un cliente JSP 39/71

Crear el proyecto 40/71

Tipo del proyecto 41/71

Nombre y ubicación 42/71

Servidor de aplicaciones 43/71

Proyecto creado 44/71

Crear un nuevo servicio web 45/71

Nombre para el nuevo servicio web 46/71

Nuevos elementos del proyecto 47/71

Implementación de las operaciones del servicio web 48/71

Operaciones del servicio web en vista de diseño 49/71

Agregar una nueva operación 50/71

Servicio web en vista de diseño 51/71

Implementación de la operación gritar 52/71

Agregar operación directamente 53/71

Probar el servicio web 54/71

JSP de demostración 55/71

Información del servicio web http://localhost:8080/holamundo/miservicio 56/71

WSDL del servicio web http://localhost:8080/holamundo/miservicio?wsdl 57/71

Probador del servicio web http://localhost:8080/holamundo/miservicio?tester 58/71

Invocación de la operación gritar 59/71

Creación del cliente Java 60/71

Información del servicio web para el cliente 61/71

Invocar el servicio web desde el cliente 62/71

Elegir la operación deseada 63/71

Personalizar la invocación de la operación 64/71

El resultado final de la invocación 65/71

66/71

<!doctype html> <html lang="es"> <head> <meta charset="utf 8"> <title>demostración del cliente SOAP de PHP</title> <meta name="author" content="jorge I. Meza"> </head> <body> <?php $client = new SoapClient("http://localhost:8080/HolaMundo/MiServicio?wsdl"); try { $quote = "Be less curious about people and more curious about ideas"; $response1 = $client > gritar(array("mensaje" => $quote)); $response2 = $client > longitud(array("mensaje" => $quote)); $response3 = $client > hello(array("name" => "Marie Curie")); } catch (Exception $e) { echo 'Caught exception: ', $e > getmessage(), "\n"; } echo "It's true: ". $response1 > return. "<br>"; echo "Length: ". $response2 > return. "<br>"; echo "Greeting: ". $response3 > return. "<br>";?> </body> </html> 67/71

El resultado final de la invocación 68/71

69/71

Evaluación post-contenido 1. Qué es un servicio web? 2. Cuál es la utilidad de los servicios web? 3. Para qué sirven XML y JSON? 4. Qué son RDF, CSV, RSS, ATOM, KML? 5. Puedo desde una tecnología específica (Java por ejemplo) consumir servicios web desarrollados en otra distinta (.NET por ejemplo)? 6. Qué ventajas/desventajas encuentra entre los servicios web y la invocación remota de métodos? 70/71

Actividad Se desea desarrollar una calculadora distribuida que permita realizar las siguientes operaciones: suma, resta, multiplicación, división y módulo. Estas operaciones deberán ser realizadas en un servidor remoto y el cliente sólo se deberá encargar de las tareas de presentación de la información. Para esto se deberá implementar un servicio web en Java que provea las operaciones mencionadas y un cliente JSP para verificar su funcionamiento. 71/71