¿ Sabes como funcionan los Smart Stubs en J2EE ?

Los Smart Stubs son un sistema de acceso distribuido que se está poniendo muy de moda en el mundo de los servidores de aplicaciones.

Uno de los requisitos más importantes de un sistema empresarial es la disponibilidad. Un servidor de aplicaciciones, por ejemplo, ha de estar disponible en todo momento para responder a peticiones de clientes. Tradicionalmente, en los sistemas distribuidos basados en RPC siempre ha existido el problema del punto único de acceso.

La raiz de este problema radica en que para acceder a un servidor de aplicaciones, a pesar de que este pueda estar en un cluster, siempre es necesario acceder a un servidor de control que se encarga de las operaciones de balanceo de carga y de redireccionar la petición del cliente al nodo del cluster más apropiado. Este sistema intermedio es un punto crítico y cualquier fallo en la máquina que lo aloje puede significar la caida del sistema.

Por esta razón poco a poco se han ido poniendo más de moda los stubs inteligentes. La idea de este sistema yace en eliminar ese sistema intermedio de modo que los clientes accedan de manera automática en cada momento al servidor más adecuado dentro del cluster. Para implementar dicho sistema existen numerosas alternativas.

La mayor parte de estas alternativas se basan en el concepto de multicasting. Antes de realizar una petición a un sistema se busca algún servidor disponible. A partir de ahí los algoritmos pueden ser muy diferentes. Por ejemplo, se puede realizar la petición al primer servidor que responda y que éste se encargue de redireccionarla según algún otro algoritmo de balanceo de carga. Otra alternativa sería que fuesen los propios stubs los encargados de elegir entre los diferentes nodos del cluster que hubiesen respondido a nuestra petición, es decir, que la lógica de balanceo de carga se encontráse en los stubs, etc.

Como veis es una tecnología bastante avanzada y que intenta maximizar la disponibilidad del sistema. Servidores de aplicaciones como BEA WebLogic o IBM WebSphere implementan sistemas de este tipo.

No hay comentarios: