Post on 20-Jan-2016
description
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors
(Seminaris de CASO)
AutorsAlberto 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
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
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
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
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.
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
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
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
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
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
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
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
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;}
}
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.
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
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:
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
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
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>...
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 );
}}
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
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
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
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
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