Ayer, con Visual Basic 6, construimos una clase muy sencilla con un método que se encargaba de devolver la hora del servidor. Nuestra intención es convertirla en un servicio Web para que pueda servir la hora a cualquier cliente SOAP. Y todo ello sin programar nada especial para conseguirlo.
Ahora es en donde entra en juego la magia de COM+ y de .NET Remoting. Recuerda que debes tener instalado IIS sobre Windows XP o Windows 2003 Server.
En las herramientas administrativas ejecuta la consola de administración de Servicios de componentes (o sea, COM+). Crea una nueva aplicación COM+ y agrégale la DLL que acabas de compilar. En las propiedades de la aplicación COM+ vete a la pestaña Activación y marca la opción Usa SOAP. En el campo de texto inferior escribe el nombre que quieras darle al directorio de IIS en el que se publicará tu servicio Web, por ejemplo, HoraWS, como en la figura.
Pulsa para ampliar
Ya está. A partir de ahora tienes disponible un servicio Web en ese directorio virtual de tu servidor y todo ello sin escribir una sola línea de código.
¿No me crees? Pruébalo. Escribe en tu navegador lo siguiente:
http://localhost/HoraWS/
Aparecerá una página que contiene un enlace al WSDL del servicio Web, es decir, a la definición de éste para que los clientes SOAP puedan utilizarlo sin problemas. Si pulsas este enlace verás el XML que forma parte de dicha descripción.
Lo que ha ocurrido es que, de forma automática, COM+ ha generado una DLL .NET que encapsula toda la funcionalidad de nuestro servidor COM y la expone a través de .NET Remoting encauzado a través de HTTP y SOAP, o sea: un servicio Web.
La página que acabas de consultar y la correspondiente DLL que he mencionado las puedes encontrar en “C:\WINDOWS\system32\Com\SOAPVRoots\HoraWS”. Por supuesto puedes tocar el archivo web.config para modificar el comportamiento del componente y adecuarlo a tus necesidades, o directamente llevártelo todo y reutilizarlo en otro lugar junto con la DLL ActiveX (si bien para esto es mejor utilizar la capacidad de exportación/importación de COM+).
Impresionante ¿verdad?
De todos modos no desconectes todavía de este hilo porque, en breve publicaré más cosas interesantes sobre este asunto.
Por ejemplo, ¿Quieres saber cómo utilizar nuestro flamante servicio Web (y cualquier otro) con sólo una línea de código y desde VBScript?
Pues sigue atento y pronto lo sabrás.