En este tema se describen los componentes que conforman un entorno típico de Compute Grid.
El planificador de trabajos es el componente de Compute Grid que proporciona todas las funciones de gestión de trabajos como, por ejemplo, someter, cancelar, reiniciar, etc. Mantiene un historial de todos los trabajos, incluidos aquellos que están a la espera de ejecutarse, los que se están ejecutando y los que ya se han ejecutado. También mantiene los datos de uso de los trabajos que se han ejecutado. El planificador de trabajos se aloja en un servidor (o un clúster) de WebSphere Application Server en un entorno de WebSphere Network Deployment. Una célula de WebSphere no puede tener más de un planificador de trabajos.
El contenedor de proceso por lotes es el componente de Compute Grid que proporciona el entorno de ejecución para los trabajos por lotes. Las aplicaciones de proceso por lotes basadas en J2EE (Java 2 Platform Enterprise Edition) se ejecutan dentro del contenedor de proceso por lotes de WebSphere. Las aplicaciones de ejecución nativa se ejecutan dentro de un contenedor aparte, que se describe en la siguiente sección. El contenedor de proceso por lotes se aloja en un servidor (o un clúster) de WebSphere Application Server en un entorno de WebSphere Network Deployment. Una célula de WebSphere puede tener un número cualquiera de contenedores de proceso por lotes.
Las aplicaciones J2EE de proceso por lotes son aplicaciones J2EE normales de WebSphere desplegadas como un archivo EAR (archivador empresarial) que contienen implementaciones de una o varias aplicaciones Java de proceso por lotes. Estas aplicaciones Java de proceso por lotes siguen los modelos de programación de las aplicaciones transaccionales de proceso por lotes o con una actividad de proceso intensa.
Los trabajos se describen utilizando un lenguaje de control de trabajos. Los trabajos de Compute Grid utilizan un lenguaje de control de trabajos basado en XML. La descripción de trabajo identifica qué aplicación se ejecute, las entradas y las salidas.
El planificador de trabajos expone tres tipos de API para acceder a las funciones de gestión: una interfaz Web denominada la consola de gestión de trabajos, una línea de mandatos de shell denominada lrcmd, y las API disponibles como servicios Web y EJB.
El planificador de trabajos utiliza una base de datos relacional para almacenar información de trabajos. Puede ser cualquier base de datos relacional soportada por WebSphere Application Server. Si el planificador de trabajos está en clúster, la base de datos debe ser una base de datos de red como, por ejemplo, DB2.
El contenedor de proceso por lotes utiliza una base de datos relacional para almacenar información de puntos de control para las aplicaciones transaccionales de proceso por lotes. Puede ser cualquier base de datos relacional soportada por WebSphere Application Server. Si el contenedor de proceso por lotes está en clúster, la base de datos debe ser una base de datos de red como, por ejemplo, DB2.
Esta es la conectividad JDBC estándar con las tablas de planificador y contenedor, tal como está soportada por el gestor de conexiones de WebSphere Application Server.
El planificador de trabajos de Compute Grid también puede gestionar trabajos de ejecución nativa. Un trabajo de ejecución nativa es un trabajo que describe la invocación de una aplicación nativa, que es cualquier aplicación que puede ejecutarse como un mandato de programa de fondo no interactivo. Esto incluye los programas principales de Java, las aplicaciones compiladas escritas en lenguajes como COBOL o C++, y virtualmente cualquier tipo de script.
En el siguiente diagrama se describen los elementos adicionales que componen el entorno para ejecutar los trabajos de ejecución nativa:
Un punto final de ejecución nativa es un nodo en la célula de WebSphere en el que se pueden ejecutar los trabajos de ejecución nativa. Pueden utilizarse nodos de WebSphere Application Server y nodos que no sean de WebSphere Application Server para ejecutar los trabajos de ejecución nativa. En los nodos de WebSphere Application Server, el planificador de trabajos utiliza el agente de nodo para controlar los trabajos de ejecución nativa. En los nodos que no son de WebSphere Application Server, el agente de middleware controla los trabajos de ejecución nativa.
Un nodo de WebSphere Application Server puede ser un punto final de ejecución de trabajos de ejecución nativa. El planificador de trabajos envía un trabajo de ejecución nativa al agente de nodo. Después, el agente de nodo crea un proceso de sistema operativo nativo en el que se invoca la aplicación nativa especificada.
A la aplicación nativa, que se ejecuta en su propio proceso, se le pasan los parámetros especificados en la descripción de trabajo (xJCL). El proceso se configura con las variables de entorno especificadas en xJCL.
Los trabajos de ejecución nativa también pueden ejecutarse en nodos que no son de WebSphere. Un nodo que no es de WebSphere Application Server también se conoce como un nodo de middleware. Un nodo de middleware requiere un pequeño agente de control, denominado agente de middleware, para poder ejecutar los trabajos de ejecución nativa. El agente de middleware proporciona un punto de control para el planificador de trabajos. Mediante el agente de middleware, el planificador de trabajos envía un trabajo de ejecución nativa para que se ejecute en un nodo de middleware. El agente de middleware, como el agente de nodo, ejecuta cada aplicación de ejecución nativa en su propio proceso.