Você está na página 1de 4

Por Nicols Tedeschi

Contenido
Introduccin
Caractersticas de los Web Services
Qu es SOAP?
Un ejemplo prctico
Hacia dnde vamos
Referencias
Introduccin
Alguna vez pensaste de qu forma poder integrar aplicaciones creadas en lenguajes y
plataformas diferentes, a travs de Internet o bien en tu propia Intranet basndote
en estndares? Bien, si lo pensaste o si no lo has hecho, la respuesta ms apropiad
a a este paradigma son los llamados Web Services.
Principio de la pgina
Caractersticas de los Web Services
Un desarrollador puede incluir en sus sitios soluciones sentencias, es decir, in
strucciones que consuman Web Services de terceros o propios como por ejemplo aqu
ellos que proporcionan los datos meteorolgicos para una localidad determinada, la
s cotizaciones de determinadas monedas, la cartelera de pelculas, el calendario o
agenda de un especialista mdico, etc.
Pensando un poco ms en forma comercial, Qu pasara si por ejemplo estuvieras trabajan
do en tu procesador de texto en un idioma para el cual no tienes un corrector or
togrfico ni sintctico instalado (quizs no exista para instalar), pero deseas realiz
ar la revisin del documento a toda costa? Bien, perfectamente podra haber una opcin
en el men de este procesador que de alguna forma localice un Web Service en Inte
rnet que brinde esta funcionalidad, y lo ms interesante an para quien lo haya desa
rrollado es que puede solicitar al usuario que se subscriba para su uso. Como ve
s, todos ganan en esta transaccin.
El ejemplo anterior muestra una realidad a la que no podemos estar ajenos. Es un
replanteo de la estrategia utilizada por los desarrolladores quienes ahora, al
realizar una aplicacin, no deben pensar nicamente en el lugar fsico donde la misma
va a ejecutarse sino en que esa aplicacin deber estar interconectada con otras com
putadoras, corriendo otras aplicaciones quizs en otras plataformas y lenguajes, p
ero usando protocolos y estndares universales. El intercambio se intensificar muchs
imo ms y quizs existan por ejemplo proveedores de dominios de datos como ser los pase
s, de forma tal que la aplicacin que yo realice en lugar de crear toda la lgica pa
ra manejar las tablas y el cargado de los datos para el concepto PAIS, se limite
a consumir un Web Service que me tome esta informacin de algn lugar en Internet.
Imagino una reutilizacin an mayor de funcionalidades y una colaboracin e intercambi
o de lgica a nivel mundial. Quizs sea muy ambicioso en este planteo.
Pasando al terreno ms tcnico y prctico de este artculo, existen algunas consideracio
nes y conceptos que es necesario mencionar para comenzar a entender el tema:
Un Web Service puede ser registrado para poder dejarlo a disposicin de otros usua
rios y para que los mismos puedan localizarlo. Un mecanismo para registrar estos
servicios es por medio de UDDI, sigla que corresponde a Universal Description ,
Discovery and Integration, un repositorio de Web Services . Para registrar un serv
icio tendrs que tener en cuenta que debes suministrar la informacin de tu empresa,
en qu categoras ubicaras tu servicio y la interfaz a utilizar para consumir este s
ervicio.
El mecanismo utilizado por un Web Service para especificar de qu forma hay que pr
oporcionarle los datos, de manera tal que cualquiera pueda interaccionar con el
mismo, es por medio de lenguaje XML. Esta informacin se almacena en un archivo ll
amado WSDL (Web Services Description Language), el cual contiene un documento XM
L junto con la descripcin de ciertos mensajes SOAP y cmo deben intercambiarse, as c
omo tambin dnde est el recurso del servicio y con qu protocolo debe dialogar quien l
o consume.
El protocolo de comunicacin utilizado es el SOAP generalmente, el cual es relativ
amente sencillo de utilizar.
Los Web Services utilizan protocolos comnmente conocidos y difundidos tales como
el formato XML, TCP/IP como protocolo de transporte y HTTP como protocolo de tra

nsferencia de hipertexto.
Principio de la pgina
Qu es SOAP?
SOAP es un protocolo que define el formato XML para los mensajes de intercambio
en el uso de un Web Service. Para aquellos programadores que solan utilizar llama
das del tipo RPC, SOAP tambin las soporta. Adicionalmente, es posible mediante SO
AP definir un mensaje HTTP y este punto es de especial inters puesto que el proto
colo imprescindible para Internet es HTTP.
Recomendacin: Para comenzar a entender este tema es recomendable el uso del Micr
osoft SOAP Toolkit Version 3.0 (pasaje de COM a SOAP).
Principio de la pgina
Un ejemplo prctico
A partir de ahora describir en unos pocos pasos un ejemplo prctico y sencillo de c
reacin de un Web Service y una muestra de cmo consumirlo desde una aplicacin client
e, en este caso una simple planilla de Microsoft Excel:
Paso 1: Lo primero ser crear un proyecto Visual Basic del tipo ASP .NET Web Servi
ce, al que llamaremos DameCotizacion (Ver Figura 1):
Bb972248.art243-img01-439x307(es-es,MSDN.10).jpg
Figura 1. Volver al texto.
Paso 2: Al archivo Service1.asmx, que se crea una vez generado el proyecto, lo r
enombramos DameCotizacion.asmx y lo establecemos como Pagina de Inicio del proye
cto (Ver Figura 2):
Bb972248.art243-img02-310x330(es-es,MSDN.10).jpg
Figura 2. Volver al texto.
Paso 3: Ingresando a la ventana de cdigo del archivo DameCotizacion.asmx, en la z
ona del <webMethod()>, agregamos el siguiente cdigo:
<WebMethod()>
Public Function GetCotizacion(ByVal strmoneda As String) As String
'Objetivo: Devolver cotizacin para una moneda en pesos uruguayos
'
Obviamente esto es un ejemplo por lo que esta info que
'
se presenta esttica se tomara de una base de datos
'Acepta: strmoneda - un id para la moneda de dos caracteres.
'Devuelve: cotizacion de dicha moneda en pesos uruguayos
Select Case UCase(Trim(strmoneda))
Case "DO"
'dolar
Return "30"
Case "RE"
'real
Return "9.9"
Case "EU"
'Euro
Return "33"
End Select
End Function
Para verificar el correcto funcionamiento de esta aplicacin, vamos a ejecutarla.
Para ello apretamos F5 y el resultado esperado se ver en Internet Explorer. Como
puedes ver, se ofrece el mtodo GetCotizacion() definido en el cdigo anterior (Ver
Figura 3):
Bb972248.art243-img03-566x221(es-es,MSDN.10).jpg
Figura 3. Volver al texto.
Si cliqueamos sobre este mtodo, podremos ver la especificacin del mismo y la defin
icin del tipo de intercambio de mensajes (Ver Figura 4):
Bb972248.art243-img04-566x396(es-es,MSDN.10).jpg
Figura 4. Volver al texto.

Paso 4: Podemos comprobar su funcionamiento colocando el valor EU (cdigo que esta


blecimos para el Euro) y cliqueando en Invoke. El valor esperado por el mtodo es
del tipo string y deber ser uno de los tipo de monedas (DO, RE EU) definido en nu
estro mtodo.
El resultado debera ser un mensaje en XML como se muestra en la Figura 5, mostran
do el valor definido para la moneda de cdigo EU:
Bb972248.art243-img05-566x148(es-es,MSDN.10).jpg
Figura 5. Volver al texto.
Pongamos a trabajar nuestro Web Service en una aplicacin prctica. Supongamos que t
enemos una planilla de Microsoft Excel donde tenemos artculos cuyos precios estn e
n su moneda original y queremos que aparezca su valor en Pesos Uruguayos. Para e
sto consumiremos el Web Service creado en los pasos anteriores (DameCotizacion)
que proporcionando el cdigo de la moneda me devuelve la cotizacin correspondiente.
Nota: Para este ejemplo debemos tener instalado el paquete Microsoft Web Service
s Toolkit.
Paso 5: Crearemos una planilla de Microsoft Excel como se muestra en la Figura 6
, donde agregaremos un botn cuyo nombre y Caption ser Cotizar:
Bb972248.art243-img06-384x180(es-es,MSDN.10).jpg
Figura 6. Volver al texto.
Paso 6: En la celda E2 , la frmula para calcular el valor del artculo en Pesos Uru
guayos es =D2*C2. La columna Cotizacin ser alimentada una vez que se oprima el botn
Cotizar, el cual disparar un evento que consumir el Web Service DameCotizacion y
retornar en cada celda Cotizacin el valor correspondiente.
Paso 7: Haciendo doble clic sobre el botn Cotizar ingresaremos a la ventana de cdi
go Visual Basic posicionados en el evento Click de dicho botn.
Previo a esto ltimo, relacionaremos nuestro Web Service a nuestra planilla median
te el uso de la herramienta Microsoft Web Services Toolkit (Paso 8). Para esto,
desde el men Herramientas de la ventana de cdigo Visual Basic, seleccionamos la op
cin Web Service References ... (Ver Figura 7):
Bb972248.art243-img07-456x371(es-es,MSDN.10).jpg
Figura 7. Volver al texto.
En esta ventana seleccionamos Web Service URL y colocamos "http://localhost/Dame
Cotizacion/DameCotizacion.asmx" en el cuadro de texto URL, y apretamos el botn Se
arch. Esta accin deber traer como resultado nuestro Web Service DameCotizacion en
la seccin Search Results, el cual seleccionaremos, donde podr verse que est disponi
ble nuestro mtodo GetCotizacion(). Cliquearemos entonces Add.
Paso 9: El cdigo del evento Cotizar_Click() es el siguiente:
Private Sub Cotizar_Click()
Dim clsCotizacion As clsws_DameCotizacion
Dim monedas As Range
Dim moneda As Range
Dim cotizacion As String
clsCotizacion = New clsws_DameCotizacion
monedas = Range(Range("b2"), Range("b65536").End(xlUp))
Application.ActiveSheet.Range("b2").Activate()
For Each moneda In monedas
cotizacion = clsCotizacion.wsm_GetCotizacion(moneda)
moneda.Offset(0, 1).Value = Val(cotizacion)
Next moneda
End Sub
Si todo sale como es de esperar, el resultado de oprimir el botn Cotizar deber ser
el que se muestra en la Figura 8:
Bb972248.art243-img08-409x182(es-es,MSDN.10).jpg
Figura 8. Volver al texto.

Como vers, este es un simple ejemplo que muestra cmo consumir un Web Service desde
una aplicacin cliente, en este caso Microsoft Excel, que ilustra dos puntos inte
resantes: la facilidad de implementacin del mismo y la potencia que nos brinda. B
asta conocer un proveedor de un servicio de cotizaciones de moneda para mantener
nuestra planilla al da con las ltimas cotizaciones del mercado burstil.
Para aquellos desarrolladores que ya hacan uso de incluir referencias a objetos C
OM en sus herramientas quizs esto no sea muy novedoso, pero en el caso de los obj
etos COM, los mismos deban estar fsicamente en la computadora cliente. En el caso
de los Web Services, estamos hablando de compartir recursos que habiten en la In
tranet corporativa o ms an, en Internet y en sitios bien dispersos en el mundo.
Para los que quieran hacer nmeros y le quieran sacar un beneficio econmico, Qu ocurr
ira si t fueras un proveedor de Web Services y solicitaras la suscripcin para el us
o de los mismos a tus clientes a lo largo y ancho del planeta? Interesante, No es
as?
Ms an, no necesariamente el escenario se limita a una aplicacin cliente consumiendo
un Web Service sino que a su vez un Web Service podra consumir otro Web Service
para poder armar la informacin de respuesta a retornar al cliente. No hace falta
imaginar un escenario de este tipo pues esto ya es posible.
Principio de la pgina
Hacia dnde vamos
Si bien se ha avanzado mucho al respecto y hay infinidad de desarrolladores trab
ajando en este tema, existen aspectos a mejorar para catapultar an ms esta funcion
alidad. Algunas caractersticas a mejorar pasan por temas relacionados con la segu
ridad (autorizacin, autenticacin y cifrado) en el intercambio de mensajes, manejar
el modelo transaccional y poder confirmar la entrega efectiva de los mensajes q
ue se intercambian a travs de los Web Services.
Adicionalmente, se contina trabajando en la estandarizacin de los principales acto
res, como ser el WDSL y SOAP. Muchos fabricantes seguirn contribuyendo, elaborand
o herramientas para facilitar el manejo y elaboracin de Web Services como es el c
aso de Microsoft y su Web Services Toolkit para Office 2003, que actualmente est
a en su versin 2.01.
Otros elementos claves que no entran en anlisis de este articulo pero igual los m
enciono por si es de inters del lector ahondar en los mismos, son los relacionado
s a las especificaciones de WS-Security, WS-Routing y DIME, para lo cual puedes
encontrar mas informacin en la herramienta Microsoft WSDK Technology Preview o en
Internet.
Principio de la pgina
Referencias
Desarrollo y consumo de un Web Services con Microsoft Visual Studio .Net
http://www.desarrolloweb.com/articulos/1718.php?manual=54

Você também pode gostar