You are on page 1of 20

Definicin:

Visin general - Qu es un web Service?


Servicios Web
HTML, XML

Es una unidad de lgica de aplicacin que ofrece datos y servicios a otras aplicaciones.

Cmo funciona?
Las aplicaciones acceden a los servicios Web a travs de estndares como HTTP, XML y SOAP.
Independencia de cmo se haya implementado el servicio Web y acceso desde cualquier dispositivo.

HTML, XML

Servicios Web

Visin general - Escenario


Otros servicios Web Servicios Web de tus socios

Internet + XML

Usuarios finales

TuCompaia.com
Capa de lgica de negocio de la aplicacin Capa de acceso a datos y almacenamiento

Otras aplicaciones

Visin general - Para qu sirven?


Permiten interconectar
Aplicaciones Diferentes clientes
No slo browsers

Cualquier dispositivo
PC, mvil, PDA, ...

Distribucin de la lgica de la aplicacin Permiten una Web programable


No slo puramente interactiva

Visin general - Qu aporta?


Nuevas oportunidades empresariales: facilitan la comunicacin con los socios. Ofrecen a los usuarios experiencias mucho ms personalizadas e integradas, por medio de la nueva gama de dispositivos inteligentes. Reducen la duracin del ciclo de creacin. Ponen fcilmente sus propios servicios Web XML a disponibilidad de otros.

Visin general - Ejemplos


E-commerce: venta de libros, msica online y otros productos Seguimiento de mercancas: UPS, FedEx Parte meteorolgico Consulta de mapas online
TerraServer: TerraServer.Microsoft.Net

Servicios web gratuitos en: www.XMethods.com

Infraestructura - Tecnologas subyacentes


Direcory: Publish & Find Services:
Inspection: Find Services on server: Description: Formal Service Descriptions: Wire Format: Service Interactions: Universal Data Format: Communications: Internet

UDDI
DISCO WSDL SOAP XML

Simple, Open, Broad Industry Support

Infraestructura - Tecnologas 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 gramtica basada en XML que permite describir las capacidades de un servicio Web

SOAP (Simple Object Access Protocol)


Protocolo ligero para el intercambio de informacin en entornos distribuidos y descentralizados administrado por W3C

Infraestructura - Cmo acceder?


Directory
http://www.uddi.org Localiza un servicio

UDDI

UDDI u otro servicio de directorio

Cliente del servicio Web

Enlace al Discovery Document (XML)

Inspection
http://www.ibuyspy.com/ibuyspy.disco Pide un Discovery Document
Devuelve el Discovery Document (XML)

DISCO

Description
Pide una descripcin del servicio Devuelve la descripcin del servicio (XML)

WSDL

Servicio Web

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

Wire Format
Pide un servicio Devuelve la respuesta del servicio (XML)

SOAP

Desarrollo de un servicio Web Introduccin


Tiene extensin .asmx Contiene cdigo 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

Desarrollo de un servicio Web - Cdigo


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; } }

Desarrollo de un servicio Web Publicacin


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 peticin a nuestro servicio Web, .NET generar todo lo necesario y dar una respuesta.

Invocacin de un servicio Web


Desde cualquier browser
http://servidor/ServicioMates.asmx

Resultado:

Invocacin de un servicio Web


Desde cualquier browser
http://servidor/ServicioMates.asmx?op=suma

Invocacin de un servicio Web


Desde cualquier browser
http://servidor/ServicioMates.asmx/suma?num1=4&num2=2

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

Devuelve un mensaje en XML con el resultado:


<?xml version="1.0" encoding="utf-8" ?> <int xmlns="http://servidor/">6</int>

Invocacin 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> ...

Invocacin de un servicio Web


Desde una aplicacin
Crear el proxy de acceso al servicio Web remoto
Aadir 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 ); } }

Invocacin de un servicio Web


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

Servicio Web Internet XML


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

Invocacin de un servicio Web


Desde una pgina web ASP.NET ClienteMates.aspx
ASP.NET UI
Operandos: Text Box Metodos: Botones Resultado: Label

Manipulador de eventos
OnServerClick

Bibliografia
Microsoft XML Web Services XML
http://msdn.microsoft.com/library/default.asp?url=/n hp/Default.asp?contentid=28000442
http://www.w3.org/TR/REC-xml http://www.w3.org/TR/SOAP http://www.w3.org/TR/wsdl www.uddi.org

Especificacin de SOAP

Especificacin de WSDL

UDDI

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 topogrficos de Estados Unidos
http://TerraServer.Microsoft.net

You might also like