desarrolloyconsumodewebservices2-111003143002-phpapp01

40
Expositor : Cruzado Expositor : Cruzado Paredes Naim Jhon Paredes Naim Jhon

description

desarrollo de un web server con visual 2008

Transcript of desarrolloyconsumodewebservices2-111003143002-phpapp01

Page 1: desarrolloyconsumodewebservices2-111003143002-phpapp01

Expositor : Cruzado Paredes Expositor : Cruzado Paredes Naim JhonNaim Jhon

Page 2: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumoDesarrollo y consumo

de Servicios Websde Servicios Webs

Page 3: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios WebServicios WebContenido:Contenido:

¿Qué son los servicios Web?¿Qué son los servicios Web?

Page 4: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios WebServicios WebContenido:Contenido:

¿Qué son los servicios Web?¿Qué son los servicios Web? Creación de un servicio WebCreación de un servicio Web

Page 5: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios WebServicios WebContenido:Contenido:

¿Qué son los servicios Web?¿Qué son los servicios Web? Creación de un servicio WebCreación de un servicio Web Localizar un servicio WebLocalizar un servicio Web

Page 6: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios WebServicios WebContenido:Contenido:

¿Qué son los servicios Web?¿Qué son los servicios Web? Creación de un servicio WebCreación de un servicio Web Localizar un servicio WebLocalizar un servicio Web Cómo usar un servicio Web desde…Cómo usar un servicio Web desde…

Una aplicación WebUna aplicación Web Una aplicación Windows (de escritorio)Una aplicación Windows (de escritorio)

Page 7: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web ¿Qué son los servicios Web?:¿Qué son los servicios Web?:

Definición:Definición: Son componentes que nos permiten crear Son componentes que nos permiten crear

aplicaciones independientes de la plataforma.aplicaciones independientes de la plataforma. Se pueden usar servicios Web para integrar Se pueden usar servicios Web para integrar

aplicaciones escritas en lenguajes diferentes.aplicaciones escritas en lenguajes diferentes.

Page 8: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web ¿Qué son los servicios Web?:¿Qué son los servicios Web?:

Definición:Definición: Son componentes que nos permiten crear Son componentes que nos permiten crear

aplicaciones independientes de la plataforma.aplicaciones independientes de la plataforma. Se pueden usar servicios Web para integrar Se pueden usar servicios Web para integrar

aplicaciones escritas en lenguajes diferentes.aplicaciones escritas en lenguajes diferentes.

¿Debo saber XML para crear servicios Web?¿Debo saber XML para crear servicios Web?

Page 9: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Definiciones “técnicas”:Definiciones “técnicas”:

XML: (eXtensible Markup Language)XML: (eXtensible Markup Language) Estándar para describir la información que se intercambia Estándar para describir la información que se intercambia

entre sistemas diferentes.entre sistemas diferentes.

SOAP: (Simple Object Access Protocol)SOAP: (Simple Object Access Protocol) Es una especificación que define el formato XML para Es una especificación que define el formato XML para

mensajes.mensajes.

WSDL: (Web Services Description Language)WSDL: (Web Services Description Language) Un archivo WSDL es un documento XML que describe Un archivo WSDL es un documento XML que describe

mensajes SOAP y la forma en que se intercambian esos mensajes SOAP y la forma en que se intercambian esos mensajes.mensajes.

Page 10: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Creación de servicios Web:Creación de servicios Web:

¿Cómo crear servicios Web?¿Cómo crear servicios Web? Usando un editor de textos o WebMatrixUsando un editor de textos o WebMatrix Usando Visual Studio .NETUsando Visual Studio .NET

Page 11: desarrolloyconsumodewebservices2-111003143002-phpapp01

““Hola, Mundo” al Hola, Mundo” al estilo Web Serviceestilo Web Service

EjemploEjemplo

paso a pasopaso a paso

Page 12: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Usar directivas ASP.NET para Usar directivas ASP.NET para indicar que es un servicio Web:indicar que es un servicio Web:

<%@ WebService<%@ WebService

Page 13: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Indicar el lenguaje usado para el Indicar el lenguaje usado para el código:código:

Language=“C#”Language=“C#”

Page 14: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

El nombre de la clase:El nombre de la clase:

Class=“HolaMundoWebS”Class=“HolaMundoWebS”

Page 15: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Cerrar la directiva ASP.NET:Cerrar la directiva ASP.NET:

%>%>

Page 16: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Indicar el espacio de nombres:Indicar el espacio de nombres:using System.Web.Services;using System.Web.Services;

Page 17: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Declarar la clase:Declarar la clase:public class HolaMundoWebS {public class HolaMundoWebS {

Page 18: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Opcional, pero recomendado, usar el Opcional, pero recomendado, usar el atributo WebService:atributo WebService:[WebService([WebService(

Namespace="http://elGuille/")]Namespace="http://elGuille/")]

Page 19: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Indicar la descripción de la clase:Indicar la descripción de la clase:[WebService([WebService(

Namespace="http://elGuille/",Namespace="http://elGuille/",

Description="Hola, Mundo al Description="Hola, Mundo al estilo Web Service")]estilo Web Service")]

Page 20: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

El atributo hay que indicarlo antes El atributo hay que indicarlo antes de la declaración de la clase:de la declaración de la clase:[WebService([WebService(Namespace="http://elGuille/", Namespace="http://elGuille/", Description="Hola, Mundo al Description="Hola, Mundo al estilo Web Service")]estilo Web Service")]

public class HolaMundoWebS {public class HolaMundoWebS {

Page 21: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Declarar los métodos, usando el Declarar los métodos, usando el atributo WebMethod:atributo WebMethod:[WebMethod][WebMethod]

public string Saludar() {public string Saludar() {

return "Hola, Mundo";return "Hola, Mundo";

}}

Page 22: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

En los métodos también podemos En los métodos también podemos añadir una descripción:añadir una descripción:[WebMethod(Description="Saluda [WebMethod(Description="Saluda al Mundo")]al Mundo")]

Page 23: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Por supuesto, podemos añadir Por supuesto, podemos añadir cuantos métodos queramos a la cuantos métodos queramos a la clase; pero, si no llevan el atributo clase; pero, si no llevan el atributo WebMethod, no serán expuestos por WebMethod, no serán expuestos por el servicio Web.el servicio Web.

Page 24: desarrolloyconsumodewebservices2-111003143002-phpapp01

Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx

Veamos todo lo dicho en acción.Veamos todo lo dicho en acción.

Page 25: desarrolloyconsumodewebservices2-111003143002-phpapp01

Crear servicio Web con Crear servicio Web con Visual Studio .NETVisual Studio .NET

EjemploEjemplo

Page 26: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Hacer públicos los servicios Web:Hacer públicos los servicios Web:

UDDI:UDDI: Universal Description, Discovery and IntegrationUniversal Description, Discovery and Integration

(Descripción, descubrimiento e integración (Descripción, descubrimiento e integración universales)universales)

UDDI permite dar a conocer los servicios WebUDDI permite dar a conocer los servicios Web Usar http://uddi.microsoft.com/ para publicar Usar http://uddi.microsoft.com/ para publicar

nuestros servicios Webnuestros servicios Web

Page 27: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Consumo de servicios Web:Consumo de servicios Web:

¿Cómo usar los servicios Web?¿Cómo usar los servicios Web? Desde un cliente Web con ASP.NET (Web Form)Desde un cliente Web con ASP.NET (Web Form) Desde un cliente WindowsDesde un cliente Windows Desde un cliente que “entienda” XMLDesde un cliente que “entienda” XML

Page 28: desarrolloyconsumodewebservices2-111003143002-phpapp01

Cliente Web (Formulario Web)Cliente Web (Formulario Web)

ExploradorExplorador ServidorServidor Web Web

FormularioFormularioWebWeb

ServicioServicioWebWeb

InternetInternet InternetInternetServidorServidor

Web Web

Page 29: desarrolloyconsumodewebservices2-111003143002-phpapp01

Cliente WindowsCliente Windows

Aplicación de WindowsAplicación de Windows

ServidorServidor Web Web

ServicioServicioWebWeb

InternetInternet

Page 30: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Ejemplo de cliente Web:Ejemplo de cliente Web:

Creamos una aplicación Web (Web Form)Creamos una aplicación Web (Web Form) Localizamos el servicio Web (UDDI o ‘a mano’)Localizamos el servicio Web (UDDI o ‘a mano’) Creamos una referencia WebCreamos una referencia Web Usamos la clase del servicio Web como Usamos la clase del servicio Web como

cualquier otra clasecualquier otra clase Publicamos la aplicación WebPublicamos la aplicación Web La ‘consumimos’ desde el exploradorLa ‘consumimos’ desde el explorador

Page 31: desarrolloyconsumodewebservices2-111003143002-phpapp01

Crear un cliente WebCrear un cliente Web

EjemploEjemplo

Page 32: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Ejemplo de cliente Windows:Ejemplo de cliente Windows:

Creamos una aplicación WindowsCreamos una aplicación Windows Localizamos el servicio Web (UDDI o ‘a mano’)Localizamos el servicio Web (UDDI o ‘a mano’) Creamos una referencia WebCreamos una referencia Web Usamos la clase del servicio Web como Usamos la clase del servicio Web como

cualquier otra clasecualquier otra clase La ‘consumimos’ como cualquier otra La ‘consumimos’ como cualquier otra

aplicación de escritorioaplicación de escritorio

Page 33: desarrolloyconsumodewebservices2-111003143002-phpapp01

Crear un cliente Crear un cliente WindowsWindows

EjemploEjemplo

Page 34: desarrolloyconsumodewebservices2-111003143002-phpapp01

Desarrollo y consumo de Desarrollo y consumo de Servicios Web Servicios Web Ejemplo de cliente XML Ejemplo de cliente XML

Creamos la aplicaciónCreamos la aplicación En esta ocasión no existe una “clase”En esta ocasión no existe una “clase” Usamos el código SOAP para enviar el valor y Usamos el código SOAP para enviar el valor y

recuperar el resultadorecuperar el resultado La comunicación se hace mediante la clase La comunicación se hace mediante la clase

XMLHTTPRequestXMLHTTPRequest

Page 35: desarrolloyconsumodewebservices2-111003143002-phpapp01

El comando a enviar:El comando a enviar:<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body><soap:Body>

<CaF xmlns="elGuille"><CaF xmlns="elGuille">

<valor><valor>doubledouble</valor> </valor>

</CaF></CaF>

</soap:Body></soap:Body></soap:Envelope></soap:Envelope>

oHttReq.open "POST", txtURL.Text, FalseoHttReq.open "POST", txtURL.Text, False

oHttReq.setRequestHeader "Content-Type", _oHttReq.setRequestHeader "Content-Type", _

"text/xml; charset=utf-8""text/xml; charset=utf-8"

oHttReq.setRequestHeader "SOAPAction", _oHttReq.setRequestHeader "SOAPAction", _"elGuille/CaF""elGuille/CaF"

Page 36: desarrolloyconsumodewebservices2-111003143002-phpapp01

El código XML recibido:El código XML recibido:<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body><soap:Body>

<CaFResponse xmlns="elGuille"><CaFResponse xmlns="elGuille">

<CaFResult><CaFResult>doubledouble</CaFResult></CaFResult>

</CaFResponse></CaFResponse>

</soap:Body></soap:Body></soap:Envelope></soap:Envelope>

Interpretar el resultado:Interpretar el resultado:txtF.Text = _txtF.Text = _

XMLparser.selectSingleNode( _XMLparser.selectSingleNode( _"/soap:Envelope/soap:Body/CaFResponse/CaFResult""/soap:Envelope/soap:Body/CaFResponse/CaFResult").Text).Text

Page 37: desarrolloyconsumodewebservices2-111003143002-phpapp01

EjemplosEjemplos

Page 38: desarrolloyconsumodewebservices2-111003143002-phpapp01
Page 39: desarrolloyconsumodewebservices2-111003143002-phpapp01

MSDN: El recurso para el desarrolladorMSDN: El recurso para el desarrolladorwww.microsoft.com/spanish/msdnwww.microsoft.com/spanish/msdn

MSDN!Estudiantes:Recursos para los MSDN!Estudiantes:Recursos para los estudiantesestudianteswww.microsoft.com/spanish/MSDN/estudianteswww.microsoft.com/spanish/MSDN/estudiantes

Microsoft University Tour: Prácticas de las Microsoft University Tour: Prácticas de las charlas de hoycharlas de hoywww.microsoft.com/spanish/MSDN/estudiantes/ewww.microsoft.com/spanish/MSDN/estudiantes/eventos/universitytour.aspventos/universitytour.asp

http://guille.costasol.net/http://guille.costasol.net/

http://vblibros.com/http://vblibros.com/

Page 40: desarrolloyconsumodewebservices2-111003143002-phpapp01

© 2001 Microsoft Corporation. All rights reserved.© 2001 Microsoft Corporation. All rights reserved.