| Artículos | 01 FEB 2000

Windows 2000: COM+, componentes asíncronos

Tags: Histórico
Una de las novedades del nuevo sistema operativo son los componentes con funcionamiento asíncrono
Hasta ahora, cuando un cliente solicitaba la creación de un componente y llamaba a sus métodos, el componente debía ejecutarse de manera síncrona. Con la llegada de Windows 2000 y COM+ existe una alternativa: el funcionamiento asíncrono.

En la actualidad, ciertas configuraciones informáticas pueden requerir el uso de servicios que, en ocasiones, pueden no estar disponibles en ese mismo instante. A pesar de la omnipresente Internet y las intranets corporativas, no siempre es posible mantener, por parte de un sistema cliente, la conexión con los servidores de servicios, generalmente ejecutando componentes y gestores de bases de datos. Hasta ahora, el cliente tenía que resignarse a no funcionar hasta poder establecer dicha conexión, o bien a utilizar aplicaciones específicas que, posteriormente, envíen los datos al mencionado servidor.
Con la llegada de COM+, en el próximo Windows 2000, existe una alternativa mucho más flexible y cómoda. Ésta consiste en preparar los componentes, que se ejecutarán en el servidor de aplicaciones, para funcionar de manera asíncrona. Esto significa que los clientes podrán realizar peticiones a esos componentes, a pesar de que éstos no se encuentren disponibles por cualquier causa: caída del servidor de aplicaciones, imposibilidad de conexión en ese momento, etc.
La finalidad de este artículo es introducirle en el funcionamiento de los componentes asíncronos, así como facilitarle un ejemplo de funcionamiento. Siguiendo dicho ejemplo, dispondrá de un componente COM+ asíncrono. Éste será instalado en un sistema Windows 2000 y utilizado posteriormente por cualquier cliente, independientemente de su estado actual de acceso a la red y de que el propio componente esté o no ejecutándose.

Servicios MSMQ
Para que sea posible el funcionamiento asíncrono de los componentes COM+, nuestro controlador de dominio, o alguno de los servidores de la red, debe estar ejecutando los servicios MSMQ. Éstos pueden utilizarse tanto en Windows 2000 como en Windows NT y Windows 98/95. Sirviéndonos de la utilidad de administración de equipos de Windows 2000 (véase la Figura 1), podemos determinar si MSMQ está o no en ejecución en nuestro sistema.
Los servicios MSMQ (Message Queuing) no son algo nuevo, existían en versiones previas a Windows 2000. Su finalidad es permitir el envío y recepción de mensajes entre sistemas de una red, utilizando para ello colas de mensajes, públicas o privadas, según los casos. Para aprovechar las posibilidades de MSMQ, no obstante, el programador debía conocer una API específica, así como un conjunto de objetos que forman parte de MSMQ.
Para comunicarse entre sí, los componentes COM remotos utilizan DCOM, un sistema basado en RPC (Remote Procedure Call. Llamadas a procedimientos remotos). Las posibilidades de los mecanismos RPC son muchas, facilitando el uso de objetos distribuidos con una relativa sencillez. Existen, no obstante, algunas limitaciones, como la necesidad de que los objetos que se comunican estén vivos durante el tiempo que dura la conversación. Dicho de otra forma, los componentes COM deben ser coetáneos en el tiempo con sus clientes, de lo contrario no tienen utilidad.
La novedad en COM+, es la posibilidad de sustituir el mecanismo RPC de comunicación entre objetos, usando en su lugar mensajes que serían gestionados mediante MSMQ. Así, las llamadas de los clientes se convierten en mensajes que van a una cola. Ésta será leída por el componente, ya sea en ese mismo momento o en cualquier otro, procediendo a la ejecución de los métodos que correspondan. El resultado es muy interesante: la ejecución de las peticiones se realiza de forma asíncrona, es decir, el cliente no tiene por qué esperar a que el servidor (componente) ejecute el proceso y devuelva el control. Este esquema de funcionamiento es interesante en diversos supuestos, desde el funcionamiento desconectado de agentes móviles, hasta el procesamiento en línea de grandes cantidades de transacciones.

Aplicaciones del funcionamiento asíncrono
Las posibles aplicaciones del esquema de funcionamiento asíncrono pueden ser muchas. Existen, no obstante, dos casos especialmente adecuados, que son precisamente los dos ya mencionados: informática móvil y procesamiento en línea de transacciones.
Imagine una configuración informática, en una supuesta empresa de venta directa, en la que existiría un equipo actuando como servidor de datos y otro trabajando como servidor de aplicaciones, dando lugar a la típica configuración de tres capas (véase la Figura 2). En el servidor de aplicaciones se ejecutan varios componentes COM+, que se encargan de recibir las solicitudes de los clientes y efectuar las operaciones apropiadas en la base de datos. Para simplificar el escenario, supondremos que estas operaciones serán siempre anotaciones de pedidos de nuestros clientes.
Cada empleado cuenta con un cliente: un ordenador con una aplicación, que se comunica directamente con el servidor de aplicaciones. Con este fin existe una infraestructura de red, como en cualquier empresa. Suponga, no obstante, que también cuenta con agentes o representantes móviles, que se dedican a ir por grandes superficies, ferias, etc., promocionando sus productos. ¿Cómo trabajarían estos agentes? Existen dos posibilidades: conectarlos a la red corporativa, mediante un acceso telefónico, o bien permitirles que trabajen de forma desconectada. En este segundo caso, no obstante, la aplicación que se usa en el interior de la empresa no serviría, puesto que al no contar con conexión al servidor de aplicaciones no podrían realizarse las llamadas.
La solución a este problema sería que los componentes del servidor de aplicaciones se ejecutasen de forma asíncrona respecto a sus clientes. Así, nuestros agentes móviles podrían usar exactamente la misma aplicación que el resto de la empresa. Sus anotaciones, sin embargo, no serían recibidas directamente por el servidor de aplicaciones, sino que quedarían registradas internamente y se procesarían en el momento en que tuviesen conexión, ya sea directa, en un desplazamiento hasta la empresa, o a través de un acceso telefónico.
Otro problema que podría plantearse en esta hipotética empresa, es que el número de solicitudes simultáneas fuese tal que el servidor de aplicaciones no pudiese responder a todas con la suficiente agilidad. Todos los clientes notarían la lentitud a la hora de realizar sus transacciones, pero quizá lo más grave es que dicha carga podría provocar la caída del mencionado servidor.
Utilizando la opción asíncrona, todas las transacciones de los clientes se convertirían automáticamente en mensajes, que irían a parar a la cola del sistema que corresponda. Los clientes, consecuentemente, no esperarían al procesado de la transacción por parte del servidor. El resultado sería una mayor agilidad en el funcionamiento de los clientes, que podrían introducir más transacciones para procesar. El servidor, por su parte, estaría constantemente leyendo la cola de mensajes y ejecutando transacciones. Si el nivel de solicitudes es muy alto, lo único que ocurriría es que la cola crecería algo más. En los momentos de menos carga, el servidor procesaría las transacciones pendientes hasta dejar la cola vacía. Resumiendo: un esquema de funcionamiento mucho más ágil y seguro.
MSMQ y COM+<

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información