Esta receta es la primera parte de la Guía Rápida. En esta primera parte mostraremos los conceptos básicos para conocer y comprender la estructura de IceGrid.
Conceptos básicos
IceGrid es el servicio de Ice que puede proporcionar
transparencia de localización en un sistema distribuido dinámico. Es decir, la transparencia de localización permite a un cliente contactar con un objeto remoto sin conocer realmente en qué máquina y en qué puerto está.
Ice proporciona métodos para especificar un
Endpoint determinado. Recordemos:
- Explícitamente en el código.
- Pasado como párametro en la línea de órdenes.
- En un fichero de configuración.
Los dos primeros métodos requieren utilizar la función
createObjectAdapterWithEndpoints, que necesita el endpoint como parámetro; mientras que el tercero requiere un fichero de configuración y el uso de
createObjectAdapater.
Sin embargo, si nos encontramos en un sistema dinámico en el que no se conocen la situación exacta de los servidores (o ésta cambia con el tiempo), el cambio en los Endpoints supondría, por este orden según el método utilizado:
- Modificar el código y recompilar la aplicación.
- Modificar scripts de inicialización de la aplicación.
- Modificar el fichero de configuración
IceGrid permite a un cliente encontrar adaptadores de objetos remotos de los cuales sólo conoce el nombre (
Objeto1@Adaptador). Este tipo de objetos son los "well-known objects" (objetos bien conocidos).
Estructura de un sistema que use IceGrid
Para IceGrid, el sistema distribuído tiene la siguiente jerarquía:
- Registry: nodo del sistema que se encarga de la transparencia de localización y funciona como "DNS" de todo el sistema. Por ello, debe conocer la estructura completa del sistema y de todos los recursos. Debe de ser único (puede haber otro registry en el sistema, pero con funciones de respaldo).
- Nodos: normalmente se identifica a un computador físico del sistema. Esto no es del todo cierto, ya que un mismo computador puede tener varios nodos. Sin embargo, para el objetivo de esta guía es suficiente pensar que un nodo es un computador del grid.
- Servidor: un nodo puede tener varios servidores, es decir, un punto del sistema puede ofrecer distintos servicios al resto de nodos. Un servidor, de una forma muy somera, puede verse como una aplicación corriendo en un puerto determinado.
- Adaptadores de objetos: cada servidor puede tiener uno o varios adaptadores de objetos. Es en este punto donde podemos especificar cuáles van a ser los objetos bien conocidos y otros parámetros.
En la siguiente parte...
Se propondrá un ejemplo de uso de IceGrid mediante la herramienta IceGrid-gui con un ejemplo básico.
Referencias