Alberto Guirao Rico Jesús Barahona Esteve

26
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Alberto Guirao Rico Jesús Barahona Esteve

description

Alberto Guirao Rico Jesús Barahona Esteve. Web Services con .NET. Agenda. Visión general Infraestructura Desarrollo de un servicio Web Invocación de un servicio Web Bibliografía. HTML, XML. HTML, XML. Visión general - ¿Qué es un web Service?. Definición: - PowerPoint PPT Presentation

Transcript of Alberto Guirao Rico Jesús Barahona Esteve

Page 1: Alberto Guirao Rico Jesús Barahona Esteve

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors

(Seminaris de CASO)

AutorsAlberto Guirao Rico

Jesús Barahona Esteve

Page 2: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

Agenda

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

Page 3: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

3

Visión general - ¿Qué es un web Service? Definición:

– Es una unidad de lógica de aplicación que ofrece datos y servicios a otras aplicaciones.

¿Cómo funciona?– Las aplicaciones acceden a los

servicios Web a través de estándares como HTTP, XML y SOAP.

• Independencia de cómo se haya implementado el servicio Web y acceso desde cualquier dispositivo.

HTML, XML

HTML, XML

Servicios Web

Servicios Web

Page 4: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

4

Visión general - Escenario

Otros servicios Web

Servicios Webde tus socios

Capa de acceso a datos y almacenamiento

Capa de lógica de negocio de la aplicación

TuCompañia.com

Internet + XML

Otras aplicaciones

Usuarios finales

Page 5: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

5

Visión general - ¿Para qué sirven? Permiten interconectar

– Aplicaciones– Diferentes clientes

• No sólo browsers

– Cualquier dispositivo• PC, móvil, PDA, ...

Distribución de la lógica de la aplicación Permiten una Web programable

– No sólo puramente interactiva

Page 6: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

6

Visión general - ¿Qué aporta? Nuevas oportunidades empresariales: facilitan la

comunicación con los socios. Ofrecen a los usuarios experiencias mucho más

personalizadas e integradas, por medio de la nueva gama de dispositivos inteligentes.

Reducen la duración del ciclo de creación. Ponen fácilmente sus propios servicios Web XML a

disponibilidad de otros.

Page 7: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

7

Visión general - Ejemplos E-commerce: venta de libros, música online y otros

productos Seguimiento de mercancías: UPS, FedEx Parte meteorológico Consulta de mapas online

– TerraServer: TerraServer.Microsoft.Net

Servicios web gratuitos en: www.XMethods.com

Page 8: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

8

Agenda

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

Page 9: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

9

Infraestructura - Tecnologías subyacentes

Communications: Internet

Universal Data Format: XML

Wire Format: Service Interactions: SOAP

Description: Formal Service Descriptions: WSDL

Simple, Open, Broad Industry Support

Direcory: Publish & Find Services: UDDI

Inspection: Find Services on server: DISCO

Page 10: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

10

Infraestructura - Tecnologías subyacentes XML (eXtensible Markup Language)

– Formato universal para documentos estructurados y datos en la Web administrado por W3C

UDDI (Universal Description, Discovery and Integration)– Servicio de directorio que permite publicar y/o describir servicios Web

DISCO– Permite encontrar servicios Web en un sitio dado

WSDL (Web Service Description Language)– Una gramática basada en XML que permite describir las capacidades de un

servicio Web SOAP (Simple Object Access Protocol)

– Protocolo ligero para el intercambio de información en entornos distribuidos y descentralizados administrado por W3C

Page 11: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

11

Infraestructura - ¿Cómo acceder?

Directoryhttp://www.uddi.org

UDDI

DISCO

WSDL

SOAP

Inspectionhttp://www.ibuyspy.com/ibuyspy.disco

Descriptionhttp://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl

Wire Format

Localiza un servicio

Enlace al Discovery Document (XML)

Pide un Discovery Document

Devuelve el Discovery Document (XML)

Devuelve la descripción del servicio (XML)

Devuelve la respuesta del servicio (XML)

Pide un servicio

Pide una descripción del servicio

Clie

nte

del

ser

vici

o W

eb

UD

DI

u o

troservicio

de

directo

rio

Servicio

Web

Page 12: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

12

Agenda

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

Page 13: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

13

Desarrollo de un servicio Web - Introducción Tiene extensión .asmx Contiene código pero no la interficie de usuario

Herramientas:– Notepad

• Simplemente crear el archivo .asmx

– Visual Studio .NET• Crear un proyecto “ASP.NET Web Service”

– Sun ONE y otras plataformas

Page 14: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

14

Desarrollo de un servicio Web - Código ServicioMates.asmx

<%@ WebService Language=“c#” Class=“ServicioMates” %>

Using System.Web.Services;Public class ServicioMates : WebService {

[WebMethod]public int suma( int num1, int num2 ) {

return num1 + num2;}

[WebMethod]public int resta( int num1, int num2 ) {

return num1 - num2;}

}

Page 15: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

15

Desarrollo de un servicio Web - Publicación Visual Studio .NET hace todo lo necesario

– Genera un proxy del servicio Web• Permitirá a los desarrolladores programar contra el servicio Web

– Publica el contrato WSDL– Genera el fichero .vsdisco

• Enlace al recurso que proporcionará el WSDL

Si tenemos instalado .NET Framework– Colocamos el fichero .asmx en el root de nuestro servidor Web.– Cuando alguien haga una petición a nuestro servicio Web, .NET

generará todo lo necesario y dará una respuesta.

Page 16: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

16

Agenda

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

Page 17: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

17

Invocación de un servicio Web Desde cualquier browser

– http://servidor/ServicioMates.asmx Resultado:

Page 18: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

18

Invocación de un servicio Web Desde cualquier browser

– http://servidor/ServicioMates.asmx?op=suma

Page 19: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

19

Invocación de un servicio Web Desde cualquier browser

– http://servidor/ServicioMates.asmx/suma?num1=4&num2=2 Equivale a un HTTP-GET

Devuelve un mensaje en XML con el resultado:<?xml version="1.0" encoding="utf-8" ?> <int xmlns="http://servidor/">6</int>

GET /ServicioMates.asmx/suma?num1=string&num2=string HTTP/1.1Host: servidor

Page 20: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

20

Invocación de un servicio Web Desde cualquier browser

– http://servidor/ServicioMates.asmx?WSDL Devuelve un mensaje en XML con el resultado:<?xml version="1.0" encoding="utf-8" ?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"...xmlns="http://schemas.xmlsoap.org/wsdl/"><types><s:schema elementFormDefault="qualified" targetNamespace="http://servidor/"> <s:element name="suma"> <s:complexType> <s:sequence>  <s:element minOccurs="1" maxOccurs="1" name="num1" type="s:int" />   <s:element minOccurs="1" maxOccurs="1" name="num2" type="s:int" />  </s:sequence> </s:complexType> </s:element>...

Page 21: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

21

Invocación de un servicio Web Desde una aplicación

– Crear el proxy de acceso al servicio Web remoto• Añadir una referencia Web al sitio donde se encuentra el servicio o

• Crear el proxy manualmente– wsdl http://servidor/ServicioMates.asmx?WSDL

– Acceder de forma normal ClienteMates.cs

Using System;

class App {public static void Main() {

ServicioMates sm = new ServicioMates();int suma = sm.suma( 3, 5 );Console.WriteLine( suma );

}}

Page 22: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

22

Invocación de un servicio Web

...

[WebMethod]public int suma(int num1,int num2){ return num1 + num2;}

...

...

int suma = sm.suma( 3, 5 );

...

Cliente

Servicio Web

Internet

XML

Page 23: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

23

Invocación de un servicio Web Desde una página web ASP.NET ClienteMates.aspx

– ASP.NET UI• Operandos: Text Box

• Metodos: Botones

• Resultado: Label

– Manipulador de eventos• OnServerClick

Page 24: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

24

Agenda

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

Page 25: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

25

Bibliografia Microsoft XML Web Services

– http://msdn.microsoft.com/library/default.asp?url=/nhp/Default.asp?contentid=28000442

XML– http://www.w3.org/TR/REC-xml

Especificación de SOAP– http://www.w3.org/TR/SOAP

Especificación de WSDL– http://www.w3.org/TR/wsdl

UDDI– www.uddi.org

Page 26: Alberto Guirao Rico Jesús Barahona Esteve

Seminaris de CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

26

Bibliografia - Servicios Web gratuitos XMethods

– Servicios Web implementados desde diversas plataformas• http://www.XMethods.com

TerraServer– Conjunto de servicios, como por ejemplo un visor de mapas

topográficos de Estados Unidos• http://TerraServer.Microsoft.net