Está en la página 1de 12

5 Servicios Web XML.

5.1 Visin general de servicios Web XML.


5.2 Tecnologas subyacentes.
5.2.1 SOAP
5.2.2 WSDL
5.2.3 UDDI
5.3 Publicacin de un servicio WEB.
5.4 Consumo de un servicio WEB.

5.1 Visin general de servicios Web XML.


Los servicios Web XML son bloques de cdigo ejecutable expuestos a travs de protocolos
estndar para su uso en la Web. El bloque de cdigo que compone un servicio Web XML
parece ms a un programa de consola sin interfaz; se trata de una clase pblica que define,
principalmente, mtodos. Estos son llamados mtodos de servicio Web XML, mismos que
podrn ser invocados por aquellos programas que consuman el servicio.
Los servicios Web XML permiten el manejo distribuido de componentes, estos permiten tomar
ventaja de la infraestructura de Internet para la distribucin de funcionalidad y paquetes de
datos.
Las principales caractersticas de los servicios Web XML son:
Estn basados en protocolos estndar para la Web. Los servicios Web XML realizan
las peticiones y proporcionan las respuestas utilizando protocolos estndar de la Web,
como los son HTTP (Hyper Text Transfer Protocol), XML (Extensible Markup
Language), y SOAP (Simple Object Access Protocol), toda plataforma que maneje
dichos protocolos, podr aprovechar la funcionalidad de los servicios Web XML.
Comunicacin de aplicacin a aplicacin basada en Internet. Al utilizar un servicio Web
XML no se tienen una interfaz de usuario visible; realmente se trata de un componente
que puede ser consumido de manera programtica de aplicacin a aplicacin. Los
servicios Web XML proporcionan una interfaz estndar para la recepcin de peticiones
y envo de respuesta, denominada contrato, dicho contrato pone a disposicin de los
usuarios la informacin requerida por el componente, describe los comportamientos del
mismo, y relaciona los datos de entrada con la salida del componete.
Independencia del lenguaje. Los servicios Web XML pueden ser consumidos desde
programas escritos en cualquier lenguaje .NET, por lo cual no es necesario aprender un
lenguaje determinado para poder tener acceso a su funcionalidad.
Independencia de la plataforma. Independientemente de la plataforma que dispongan
los clientes de una aplicacin, el contrato se encarga de hacer la peticin en un formato
estndar, y de recibir la respuesta correspondiente.
Arquitectura libre del manejo de estados (stateless architecture). Los servicios Web
XML no manejan estados de objetos; cada respuesta brindada por un servicio Web
XML es una nueva instancia de un objeto, con su estado particular. Lo que una peticin
realiza no impacta lo realizado por otras peticiones.
Comunicacin sncrona y asncrona. El requerimiento de ejecucin de un mtodo de
servicio Web XML, y el requerimiento de la respuesta, son independientes. La
aplicacin que consume el servicio Web XML, y el servicio Web XML mismo, pueden
operar con mayor disponibilidad, ya que liberan recursos mientras se est en tiempo de
espera.
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.

5.2 Tecnologas subyacentes.


Las especificaciones que se han desarrollado para implementar los servicios Web se presentan
como una pila de tecnologas donde las especificaciones superiores hacen uso de las
inferiores, como se muestra.

5.2.1 SOAP (Simple Object Access Protocol).


SOAP define un protocolo que da soporte a la interaccin (datos + funcionalidad) entre
aplicaciones en entornos distribuidos y heterogneos, es interoperable es decir neutral a
plataforma y lenguajes de programacin, independiente del hardware y protocolos. Funciona
sobre la infraestructura existente en Internet. SOAP define cmo organizar informacin usando
XML de forma estructurada para intercambiarla entre distintos sistemas.
SOAP especifica lo siguiente:
Un formato de mensaje para una comunicacin unidireccional, describiendo cmo se
empaqueta la informacin en documentos XML.
Un conjunto de convenciones para usar mensajes SOAP para implementar el patrn de
interaccin RPC (Remote Procedure Call), definiendo cmo los clientes pueden invocar
un Procedimiento Remoto enviando un mensaje SOAP y cmo los servicios pueden
responder enviando otro mensaje al llamador.
Un conjunto de reglas que una entidad que procesa mensajes SOAP debe seguir,
definiendo en particular los elementos XML que una entidad debe leer y entender, as
como las acciones que deben toma si no entienden el contenido, estas reglas son
llamadas: Reglas de Codificacin de los Datos.
Una descripcin de cmo se debe transportar un mensaje SOAP sobre HTTP y SMTP.
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.
La cabecera y el cuerpo pueden tener mltiples subpartes en forma de bloques de la cabecera
y bloques del cuerpo.

Cuando una aplicacin cliente hace una solicitud a un mtodo Web, un paquete SOAP es
creado. Este paquete contiene el nombre del mtodo Web que es invocado, y los parmetros
que son pasados al mtodo Web en un formato XML. Cuando el paquete SOAP llega al
servidor Web en el cual reside el servicio Web, el mtodo Web y sus parmetros son extrados
del paquete SOAP y el mtodo es invocado.
Este son unos ejemplos de una solicitud SOAP.
Solicitud a un servicio de clima:
<?xml version='1.0' encoding='UTF8'?>
<SOAPENV:Envelope
xmlns:SOAPENV="http://www.w3.org/2001/09/soapenvelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAPENV:Body>
<ns1:getWeather
xmlns:ns1="urn:examples:weatherservice"
SOAP-ENV:encodingStyle=
"http://www.w3.org/2001/09/soapencoding">
<zipcode xsi:type="xsd:string">10016</zipcode>
</ns1:getWeather>
</SOAPENV:Body>
</SOAPENV:Envelope>
Respuesta de un servicio de clima:
<?xml version='1.0' encoding='UTF8'?>
<SOAPENV:Envelope
xmlns:SOAPENV="http://www.w3.org/2001/09/soapenvelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAPENV:Body>
<ns1:getWeatherResponse
xmlns:ns1="urn:examples:weatherservice"
SOAPENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding">
<return xsi:type="xsd:int">65</return>
</ns1:getWeatherResponse>
</SOAPENV:Body>
</SOAPENV:Envelope>

5.2.2 WSDL (Web Services Description Language). El Lenguaje de


Descripcin.
Un WSDL es la especificacin estndar de funcionamiento y datos de un servicio Web XML.
WSDL se maneja a travs de un contrato, conocido tambin como Service Description, que es
un documento XML que contiene informacin relacionada al servicio Web XML y los paquetes
de datos que el servicio Web XML maneja, tanto de entrada como de salida.
De cierta forma WSDL especfica los datos requeridos por el servicio, su comportamiento, y sus
datos de retorno; acta como un contrato de intercambio de paquetes de datos entre el
consumidor de servicios Web XML y el servicio Web XML.
WSDL tambin contiene las referencias a las direcciones asociadas con el servicio Web XML,
mismas que dependern del protocolo utilizado para consumir el servicio.
El documento WSDL es un documento XML; el elemento raz es llamado definitions, y contiene
cinco nodos hijos que muestran la forma en que est definido el servicio Web XML. Dichos
elementos hijo son los siguientes:
Types. Define los tipos de datos utilizados para el intercambio de mensajes entre el
consumidor y el servicio.
Message. Describe los mensajes que sern comunicados entre el consumidor y el
servicio.
portType. Identifica el conjunto de operaciones que realiza el servicio, y los mensajes
involucrados en dichas operaciones.

Binding. Especfica los detalles de protocolo para el intercambio de mensajes entre las
operaciones, describiendo cmo traducir contenido abstracto a un formato estndar.
Service. Agrupa aquellos puertos que estn relacionados, y que implementan un Web
service.

Para generar un WSDL, se utiliza la utilera wsdl.exe con las siguiente sintaxis:
Wsdl /l:Lenguaje /n:NombreNamespace URL_Servicio
Donde Lenguaje es el lenguaje que se desea utilizar, NombreNamespace es el nombre del
espacio de nombres a generarse en el WSDL, y URL_Servicio es el URL del servicio Web XML
a partir del cual se generar WSDL.
La ejecucin de wsdl.exe sobre el servicio Web XML producir un programa generado en el
lenguaje especificado, que deber ser compilado como librera para su uso programtico. Dicho
programa contendr la misma funcionalidad del servicio Web XML, con todas las
especificaciones descriptivas.
Este es un ejemplo de un documento WSDL donde <message> especfica el mensaje
individual XML que son transformados entre computadoras, en este caso getWeatherRequest
and getWeatherResponse, y <service> especfica que el servicio esta disponible va SOAP.
<?xml version="1.0" encoding="UTF8"?>
<definitions name="WeatherService"
targetNamespace="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<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>
<binding name="Weather_Binding" type="tns:Weather_PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getWeather">
<soap:operation soapAction=""/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:weatherservice" use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:weatherservice" use="encoded"/>
</output>
</operation>
</binding>
<service name="Weather_Service">
<documentation>WSDL File for Weather Service</documentation>

<port binding="tns:Weather_Binding" name="Weather_Port">


<soap:address
location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
</service>
</definitions>

5.2.3 UDDI (Universal Description, Discovery, and Integration). El


Repositorio de Servicios.
Uno de los puntos ms importantes de un servicio es su publicidad, pensando en ello, se ha
definido un mecanismo para darles publicidad a los servicios Web XML que las empresas
desarrollan, denominado UDDI.
Cuando un proveedor de servicios Web quiere poner un servicio Web disponible para clientes
de aplicacin, el proveedor describe el servicio Web usando un documento WSDL. Entonces el
proveedor registra el servicio Web en el directorio UDDI. El directorio UDDI contiene
apuntadores a el servicio Web y el documento WSDL de el servicio Web. De esta manera las
aplicaciones Cliente pueden descubrir el servicio Web usando el directorio UDDI.
La especificacin UDDI tiene dos objetivos esenciales: (1) ser un soporte a los desarrolladores
para encontrar informacin sobre servicios web y poder construir clientes, (2) facilitar el Enlace
Dinmico de Servicios Web, permitiendo consultar referencias y acceder a servicios de inters.
La informacin en un registro UDDI se almacena en archivos XML con una estructura
jerrquica, Los elementos de esta estructura son:
businessEntity: es el elemento top-level, describe un negocio o una entidad que ha
registrado un servicio en UDDI. Ejemplos: Departamento de Contabilidad, Servidor de
Aplicaciones Corporativo. Este elemento soporta informacin estndar tal como
nombre, descripcin, e informacin de contacto, as como informacin de metadatos
(por ejemplo: identificadores y categoras).
businessService: describe un Servicio Web que ha sido expuesto por una entidad de
negocio, soporta el nombrado de un Servicio Web y lo asocia con una entidad de
negocio y con la informacin de binding. Soporta la asignacin de categoras al
Servicio Web (industria, productos, cdigos geogrficos, etc.).
bindingTemplate: describe la informacin tcnica necesaria para enlazar con un
Servicio Web en particular. Este elemento soporta el nombrado de un Servicio Web y
su asociacin con una entidad de negocio e informacin de binding. La informacin de
binding se describe como un punto de acceso que posee un atributo llamado UrlType
utilizado para especificar los siete tipos de puntos de entrada: mailto, http, Https, Ftp,
Fax, Phone, Other.
tModel: (Technology Model). Estructura de Metadatos Genrica para representar
cualquier concepto o construccin (definiciones de protocolos, ficheros WSDL, XML
schemas, Espacios de Nombres, esquemas de categoras, etc.).

Este diagrama muestra la relacin entre las tecnologas usadas para implementar un servicio
Web

Comunicacin mediante
Mensajes SOAP

Documento
WSDL

Registro
UDDI

Localiza un
servicio Web
Aplicacin
Cliente

Servicio Web

5.3 Publicacin de un servicio WEB.


Los servicios Web XML desde el punto de vista de programacin, son muy parecidos a un
programa, mientras que en su consumo son ms orientados al ambiente Web. Estos servicios
estn constituidos por un archivo de extensin .asmx, y este archivo debe contener lo
siguiente:
1. La directiva @WebService. Esta directiva especfica los atributos de servicio Web
XML utilizados por el analizador sinttico (parser) y el compilador ASP.NET. Esta
directiva es el equivalente a @Page de las pginas Web. Los atributos que utiliza esta
directiva son:
Class. Especfica la clase implementada por el servicio Web XML, esta se
compila automticamente la primera vez que se tiene acceso al servicio Web
XML, o despus de que se operan cambios en l.
CodeBehind. Especfica el archivo de cdigo fuente que contiene la clase
utilizada por el servicio Web XML, cuando la clase que implementa dicho
servicio no reside en el mismo archivo, y no se ha compilado en un
ensamblado ni se ha colocado en el directorio \bin.
Debug. Indica si el servicio Web XML se debe compilar proporcionando
informacin de depuracin extendida. Se recomienda el valor de True al
momento de desarrollar y False al momento de poner los servicios en
produccin.
Language. Especfica el lenguaje .NET utilizado para codificar la clase que
implementa el servicio Web XML.
El siguiente cdigo es un ejemplo de cmo utilizar la directiva @WebService y sus
atributos.
<%@ WebService Language=vb Class=Operaciones %>
La directive @WebService se deber colocar al principio del cdigo del servicio
Web XML.
2. Importar el espacio de nombres System.Web.Services. El espacio de nombres
System.Web.Services es el espacio de nombres que contiene las clases que permiten

crear servicios Web XML, tales como WebService y WebMethodAttribute. El siguiente


cdigo es un ejemplo de cmo importar el espacio de nombres.
Imports System.Web.Services
Despus de importar el espacio de nombres, se puede escribir el cdigo de la clase
que constituir el servicio Web; esta clase deber heredar la funcionalidad de
System.Web.Services.WebService.
3. Crear una clase, ya sea dentro de la pgina o en modo Code Behind. Despus de
establecer las directivas y haber importado los espacios de nombres, se deber
codificar una clase, que contendr el bloque de cdigo que constituye el servicio Web
XML. Debe ser una clase porque al consumir un servicio Web XML
programticamente, es necesario manejar la funcionalidad en modo objeto y stos no
son otra cosa que instancias de una clase. La clase debe tener suficientes permisos,
de preferencia ser pblica, sobre todo si el servicio Web XML podr ser consumido
desde Internet. Un ejemplo de cmo crear una clase es el siguiente:
<%@ WebService Language=vb Class=Operaciones %>
Imports System
Imports System.Web.Services
Public Class NombreClase
<WebMethod()>Public Function Metodo(Argumento As Tipo) As Tipo
Procedimiento que realize el mtodo
End Function
End Class
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
El atributo WebMethod es una instancia de la clase WebMethodAttribute, dicha
instancia se genera al escribir <WebMethod()> antes de las funciones pblicas que se
quieran compartir. Es posible asignar propiedades a dicha instancia de
WebMethdoAttribute, escribiendo pares de valores entre los parntesis que siguen a
WebMethod. La siguiente tabla muestra algunos de los atributos disponibles. La
igualacin de valores se realiza a travs de :=, y no slo con un =. Si se integra
ms de un atributo, los pares de valores debern ir separados por comas.
Propiedad
BufferResponse
CacheDuration
Description
EnableSession
MessageName

TransactionOption

Utilidad
Obtiene o establece si la respuesta para
esta solicitud se almacena en el bfer.
Obtiene o establece el nmero de
segundos durante los cuales la respuesta
se almacena en cach
Mensaje descriptivo del mtodo de
servicios Web XML
Indica si se habilit el estado de la sesin
para un mtodo de servicios Web XML
Nombre que se utiliza para el mtodo de
servicios Web XML en los datos que se
pasan a un mtodo de servicios Web
XML y que se devuelven desde ste
Indica
la
compatibilidad
con
transacciones de un mtodo de servicios
Web XML

Valor que almacena


Boolean
Integer
String
Boolean
String

Disable
NotSupported
Supported

Required
RequiresNew

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.

5.4 Consumo de un servicio WEB.


Los servicios Web XML pueden ser consumidos de dos maneras, directamente desde un
navegador o desde una aplicacin de forma programtica.
Las diferencias entre estas dos formas son las siguientes:
Directamente desde el navegador. La peticin se realiza va HTTP al servidor, este
mostrar la pgina de hipertexto de descripcin, que lista los mtodos disponibles en
el servicio Web XML. En dicha pgina puede seleccionar algn mtodo disponible,
interactuar con la interfaz proporcionando datos y recibir la respuesta del servicio Web
XML. La respuesta que se recibe est en XML
Desde una aplicacin, programticamente. Se debe establecer una referencia hacia el
servicio Web XML, dicha referencia es un objeto que es utilizado para comunicarse con
el servicio Web utilizando SOAP. La clase que se genera es una equivalencia de la
clase original del servicio Web XML, con la diferencia de que no contiene la lgica de la
aplicacin, en lugar de eso, la clase contiene la lgica de clasificacin y transporte de
datos. La clase permite a la aplicacin que consume el servicio Web XML disponer de
una respuesta manejada a travs de SOAP, que permite manejar objetos ms
complejos que HTTP. Se deber en el programa generar una instancia de la clase,
utilizar los mtodos del servicio Web XML y recibir los datos de 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.
Un ejemplo de un servicio Web sera el siguiente:
Se crea un proyecto de tipo ASP.NET Web Service y le asigna el nombre Ejemplo.

Dentro del proyecto se agrega un Web Service y se le asigna el nombre Aritmetica.asmx, a


continuacin se genera un archivo con una clase llamada Aritmetica y a esta se le agregan los
mtodos Suma, Multiplicacin y Division.

.
El cdigo quedara de la siguiente manera:
Imports System
Imports System.Web.Services
<System.Web.Services.WebService(Namespace :=
"http://tempuri.org/Ejemplo/Aritmetica")> _
Public Class Aritmetica
Inherits System.Web.Services.WebService
<WebMethod(Description:="Suma dos nmeros enteros")> _
Public Function Suma(ByVal N1 As Integer, ByVal N2 As Integer) As
Integer
Return (N1 + N2)
End Function
<WebMethod(Description:="Multiplicacion dos nmeros enteros")> _
Public Function Multiplicacion(ByVal N1 As Integer, ByVal N2 As
Integer) As Integer
Return (N1 * N2)
End Function
<WebMethod(Description:="Division entre dos nmeros enteros")> _
Public Function Division(ByVal N1 As Integer, ByVal N2 As Integer)
As Integer
Return (N1 / N2)
End Function
End Class
Si queremos probar el servicio Web llamamos el servicio Web de la siguiente manera
http://localhost/Ejemplo/Aritmetica.asmx y nos muestra la siguiente pgina

Seleccionamos una de los mtodos y le proporcionamos los datos que nos solicita antes de
invocar al mtodo

Y el resultado nos lo muestra de la siguiente manera:


<?xml version="1.0" encoding="utf-8" ?>
<int xmlns="http://tempuri.org/Ejemplo/Aritmetica">1</int>
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
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim Consumidor As New Aritmetica
ResultadoSuma.Text = Consumidor.Suma(20, 30)
ResultadoMultiplicacion.Text = Consumidor.Multiplicacion(2,3)
ResultadoDivision.Text = Consumidor.Division(20, 2)
End Sub
End Class

También podría gustarte