Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 5
Unidad 5
Los principales usos que tienen los servicios Web XML son los siguientes:
Cuando se requiere compartir funcionalidad libre de interfaz de usuario. Los servicios
Web son tiles en cuando se desea consumir la funcionalidad de un componente, sin la
intermediacin de una interfaz de usuario. Ejemplos de esto es el consumo de servicios
que proporcionan informacin, como tipos de cambio, estado del clima, precios de
productos, disponibilidad de lugares en eventos, sin tener que responder a alguna
interfaz de usuario.
Cuando se quiere comercializar un servicio de uso de software, y no un producto de
software. En el futuro, no se vender software, sino la funcionalidad que el software
brinda estar disponible como servicio en la Web, si requerimos de un procesador de
palabras, nos enlazaremos a un procesador de palabras en lnea, y pagaremos slo
por el tiempo que utilizamos dicho procesador.
Cuando el equipo cliente y servidor requieren compartir funcionalidad en Internet, pero
difieren en su plataforma operativa.
SOAP intercambia informacin mediante mensajes. Los mensajes se utilizan como envoltorios
que la aplicacin utiliza para guardar la informacin que quiere enviar.
Cada mensaje contiene dos partes:
Una cabecera (opcional). Que contiene informacin del mensaje, por ejemplo la
cabecera puede contener la fecha en que el mensaje es enviado, o informacin de
autenticacin, cuando esta presente la cabecera siempre debe estar en la parte de
arriba.
Un cuerpo (obligatorio). Contiene los datos del mensaje.
Para generar un WSDL, se utiliza la utilera wsdl.exe con las siguiente sintaxis:
Wsdl /l:Lenguaje /n:NombreNamespace URL_Servicio
<message name="getWeatherRequest">
<part name="zipcode" type="xsd:string"/>
</message>
<message name="getWeatherResponse">
<part name="temperature" type="xsd:int"/>
</message>
<portType name="Weather_PortType">
<operation name="getWeather">
<input message="tns:getWeatherRequest"/>
<output message="tns:getWeatherResponse"/>
</operation>
</portType>
Este diagrama muestra la relacin entre las tecnologas usadas para implementar un servicio
Web
Comunicacin mediante
Mensajes SOAP
Documento
Registro WSDL
UDDI
Localiza un
servicio Web
4. Declarar como <WebMethod()> las funciones del servicio Web XML. Las funciones
incluidas en la clase constituyenel comportamiento del servicio Web XML, en su
definicin, las funciones se asemejan mucho a las funciones que conocemos en
programacin. Su diferencia radica en que deben ser de acceso pblico, y que deben
estar habilitadas para ser acreditadas por clientes remotos a travs de la Web,
agregndoles el atributo WebMethod(). El siguiente cdigo es un ejemplo de una
funcin pblica dentro de una clase, que actuar como mtodo de servicio Web XML:
<WebMethod()>Public Function Sumar(N1 As Integer, N2 As Integer) As Integer
Return (N1 + N2)
End Function
Si se desea utilizar un servicio Web XML de manera programtica, se debe garantizar que el
servicio quede expuesto a travs de una interfaz que permita su uso por los programas
consumidores.
Un servicio Web debe ser publicado en un servidor Web por medio de IIS(Internet Information
Server). Estos son los pasos a seguir para configurar un servicio Web:
Abrir Start->Settings->Control Panel->Administrative tools->Internet Services Manager.
Expandir y con el botn derecho sobre [Default Web Site]; seleccionar New
Virtual Directory.
En la ventana de Virtual Directory Creation seleccionar Next.
En la ventana de Virtual Directory Alias, escribir el nombre del directorio y
seleccionar Next
En la ventana de "Web Site Content Directory", escribir la ruta del directorio
donde esta contenido el Web Service y seleccionar Next.
En la ventana de "Access Permission", cambiar la configuracin segn las
necesidades, seleccionar Next y para terminar seleccionar Finish.
Para probar el Servicio Web publicado se utiliza un explorador Web, con la direccin del
Servicio Web, la pgina debe mostrar los mtodos expuestos como servicios Web por la
aplicacin.
Para consumir un servicio Web XML desde el navegador se siguen tres pasos:
a) Publicar. El servicio debe estar disponible
b) Encontrar. Se debe tener forma de localizar el servicio
c) Enlazar. Se debe tener forma de establecer enlace entre el servicio Web XML y la
aplicacin que lo consume. A este modelo se le llama Publish/Find/Bind model.
Cuando se realiza el consumo desde el navegador, todo el proceso ocurre desde el navegador.
1. Se debe hacer una solicitud del servicio Web XML utilizando HTTP.
2. Aparecer la pgina de descripcin, que expone todos los mtodos del servicio.
3. Se selecciona un mtodo del servicio.
4. Se proporcionan los datos que el mtodo requiere.
5. Se reciben los resultados del mtodo en formato XML.
El protocolo HTTP es textual, y es incapaz de manejar objetos complejos. Como este tipo de
consumo del servicio Web XML se realiza utilizando el protocolo HTTP, la respuesta slo puede
ofrecerse mediante XML. Si se desea que el servicio Web XML retorne objetos complejos,
como lo es un Dataset, por ejemplo, se requerir el manejo del protocolo SOAP.
Un servicio Web XML puede ser consumido desde aplicaciones de consola, Windows Forms,
Web Forms, e incluso desde otros servicios Web XML.
El consumo de servicios Web XML casi no presenta variantes que dependan del tipo de
aplicacin que lo consume.
Para disponer de manera programtica de la funcionalidad de un mtodo de servicio Web XML,
el procedimiento general es el siguiente:
1. Se debe tener desarrollado un servicio Web XML(.asmx).
2. Se debe crear una clase para el servicio Web XML.
3. Se debe compilar la clase como librera, depositndola en el directorio \bin del sitio, o
en el directorio \bin de raz de Web.
4. En el cdigo del programa que consume el servicio Web XML deber crearse una
instancia de la clase.
5. Se deber invocar el mtodo del servicio Web XMl a travs de la instancia de la clase
que se ha instanciado.
6. Se deber hacer un llamado al mtodo de servicio Web XML que desea utilizar.
7. Se utiliza el resultado retornado por el servicio.
La clase trabaja con el protocolo SOAP, que permite una estructura XML, ms estructurada que
HTTP, por lo que es posible recibir del servicio Web XML un objeto complejo, como lo es
DataSet.
Imports System
Imports System.Web.Services
<System.Web.Services.WebService(Namespace :=
"http://tempuri.org/Ejemplo/Aritmetica")> _
Public Class Aritmetica
Inherits System.Web.Services.WebService
Para poder probar este servicio Web programatica se crea un proyecto ASP.NET llamado
ProbarWS y se agrega una pgina llamada ConsumeWS, a esta pgina se le agrega tres
controles de tipo Label llamados ResultadoSuma, ResultadoMultiplicacion,
ResultadoDivision, el cdigo html quedara de la siguiente manera:
<HTML>
<HEAD>
<script runat="Server">
</script>
</HEAD>
<body>
<asp:Label ID="ResultadoSuma" runat="server" />
<asp:Label ID="ResultadoMultiplicacion" runat="server" />
<asp:Label ID="ResultadoDivision" runat="server" />
</body>
</HTML>
Al Proyecto se le agrega una referencia web, que es el servicio Web creado anteriormente, al
cual se le denomina Aritmetica, esta referencia se importa dentro de la pgina y en el evento
Load de la pgina se crea una instancia de la clase Aritmetica y se ejecuta el mtodo Suma del
servicio Web, el resultado se muestra en la etiqueta llamada ResultadoSuma, el mtodo
Multiplicacin se muestra en la etiqueta ResultadoMultiplicacion y el mtodo Division se
muestra en la etiqueta ResultadoDivision.
Imports ProbarWS.Aritmetica
Public Class ConsumeWS
Inherits System.Web.UI.Page