desarrolloyconsumodewebservices2-111003143002-phpapp01
Post on 26-Oct-2014
124 Views
Preview:
DESCRIPTION
TRANSCRIPT
Expositor : Cruzado Paredes Expositor : Cruzado Paredes Naim JhonNaim Jhon
Desarrollo y consumoDesarrollo y consumo
de Servicios Websde Servicios Webs
Desarrollo y consumo de Desarrollo y consumo de Servicios WebServicios WebContenido:Contenido:
¿Qué son los servicios Web?¿Qué son los servicios Web?
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
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
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)
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.
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?
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.
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
““Hola, Mundo” al Hola, Mundo” al estilo Web Serviceestilo Web Service
EjemploEjemplo
paso a pasopaso a paso
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
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#”
Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx
El nombre de la clase:El nombre de la clase:
Class=“HolaMundoWebS”Class=“HolaMundoWebS”
Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx
Cerrar la directiva ASP.NET:Cerrar la directiva ASP.NET:
%>%>
Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx
Indicar el espacio de nombres:Indicar el espacio de nombres:using System.Web.Services;using System.Web.Services;
Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx
Declarar la clase:Declarar la clase:public class HolaMundoWebS {public class HolaMundoWebS {
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/")]
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")]
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 {
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";
}}
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")]
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.
Ejemplo:Ejemplo:HolaMundoWebS.asmxHolaMundoWebS.asmx
Veamos todo lo dicho en acción.Veamos todo lo dicho en acción.
Crear servicio Web con Crear servicio Web con Visual Studio .NETVisual Studio .NET
EjemploEjemplo
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
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
Cliente Web (Formulario Web)Cliente Web (Formulario Web)
ExploradorExplorador ServidorServidor Web Web
FormularioFormularioWebWeb
ServicioServicioWebWeb
InternetInternet InternetInternetServidorServidor
Web Web
Cliente WindowsCliente Windows
Aplicación de WindowsAplicación de Windows
ServidorServidor Web Web
ServicioServicioWebWeb
InternetInternet
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
Crear un cliente WebCrear un cliente Web
EjemploEjemplo
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
Crear un cliente Crear un cliente WindowsWindows
EjemploEjemplo
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
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"
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
EjemplosEjemplos
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/
© 2001 Microsoft Corporation. All rights reserved.© 2001 Microsoft Corporation. All rights reserved.
top related