Objeto fragmentado


En informática, los objetos fragmentados son objetos verdaderamente distribuidos . Es un principio de diseño novedoso que amplía el concepto tradicional de distribución basada en stub.

A diferencia de los objetos distribuidos , se distribuyen físicamente y encapsulan la distribución en el propio objeto. Partes del objeto (fragmentos denominados) pueden existir en diferentes nodos y proporcionar la interfaz del objeto. Cada cliente que accede a un objeto fragmentado por su identidad de objeto única supone un fragmento local. Los objetos fragmentados pueden actuar como una infraestructura basada en RPC o también como un proxy inteligente (de almacenamiento en caché). Por lo tanto, los clientes no pueden distinguir entre el acceso de un objeto local, un stub local o un fragmento local. La transparencia total se obtiene mediante las siguientes características de los objetos fragmentados.

Pueden elegirse protocolos arbitrarios para la comunicación interna entre los fragmentos. Por ejemplo, esto permite ocultar protocolos en tiempo real (p. ej., RTP para transmisión de medios) detrás de una interfaz CORBA estándar.

El desarrollador/implementador del objeto organiza la estructura interna de un objeto fragmentado. Puede ser cliente-servidor, jerárquico, peer-to-peer y otros. Por lo tanto, se garantiza una compatibilidad descendente con la distribución basada en stub.

Como tanto la distribución del estado como la funcionalidad están ocultas detrás de la interfaz del objeto, su distribución respectiva sobre los fragmentos también es arbitraria. Además, una aplicación que utiliza un objeto fragmentado también puede tolerar un cambio en las distribuciones que se logra intercambiando el fragmento en uno o varios hosts. Este procedimiento puede ser activado por un usuario que cambia las propiedades del objeto o por el propio objeto fragmentado (es decir, la colectividad de sus fragmentos), por ejemplo, cuando se considera que algún fragmento ha fallado. Por supuesto, una solicitud de intercambio puede desencadenar uno o más cambios internos. El desarrollador de objetos puede migrar el estado y la funcionalidad de los fragmentos proporcionando diferentes implementaciones de fragmentos. Esos cambian dinámicamente el interior de los objetos fragmentados.


Objeto fragmentado