El descriptor component contiene una entidad de componente, que define un componente de singleton o una clase de componentes de la que se puede crear una instancia. No hay ninguna diferencia entre la definición de un singleton y una clase, excepto que es necesario que las clases de las que se pueden crear instancias residan en una biblioteca de componentes, que también se denomina "catálogo". Además, cualquiera de los dos tipos de componente se puede utilizar en un ensamblaje, pero un singleton puede aparecer solamente una vez en la estructura de una aplicación, mientras que un componente del que se puede crear una instancia puede utilizarse varias veces.
A continuación se muestran dos ejemplos de la estructura del descriptor component. El primer ejemplo se corresponde con el formato estándar actual; el segundo ejemplo muestra el formato antiguo de la especificación de información de arranque. El formato antiguo es completamente compatible con los dispositivos del catálogo existente.
component name
{
volume sname : dev= pathname [, mount= pathname][, ro] [, high_bw]
resource cpu : min= val , max= val
resource mem : min= val , max= val , abs= val
resource bw : min= val , max= val
(input|output) sname : protocol= name [, mandatory ][, alias = dnsname ]
interface sname
property sname : type=(string|integer|ip_addr) [, filter= regexp ] \
[,min= val ,max= val ] [, (mandatory| dflt= val) ]
property sname : type=(string|integer) [, values= v1|v2|v3... ] \
[, (mandatory| dflt= val ) ]
.config_mode=(dhcp|volfix)
virtualization: modes="[xen_pv][,xen_hvm][,vmware][,...]"
{
path = filename
initrd = filename
options = " string "
console = " string "
device_schema = " string "
}
visual
{
...
}
}
component name
{
volume sname : dev= pathname, [, ro] [, high_bw]
resource cpu : min= val , max= val
resource mem : min= val , max= val , abs= val
resource bw : min= val , max= val
(input|output) sname : protocol= name = [, mandatory][, alias = dnsname =]
interface sname
property sname : type=(string|integer|ip_addr) [, filter= regexp ] \
[,min= val ,max= val ] [, (mandatory| dflt= val) ]
property sname : type=(string|integer) [, values= v1|v2|v3... ] \
[, (mandatory| dflt= val ) ]
cfgfiles
[
vol= sname , path= filename
vol= sname , path= filename
...
]
kernel: path= filename [, initrd = filename ] [, options = " string" ]
visual
{
...
}
}
La entidad component tiene los siguientes atributos definidos:
|
.migrateable |
Si se establece, permite que el componente se pueda mover de una CPU a otra (siempre que el componente se esté ejecutando en una máquina virtual y la migración de máquina virtual sea compatible). No es necesario especificar este atributo en un componente; el valor predeterminado, si no se especifica, es 1 (VERDADERO). Se trata de un atributo booleano (valores válidos: 0, no, false, 1, yes, true; también se puede especificar en la línea sin ningún valor, lo que significa '1'). |
|
.server |
Si .migrateable se establece como 0, define el nombre del servidor en el que se ejecutará este componente. Este atributo, junto con el atributo .migrateable, se establecen normalmente a partir de un ensamblaje exterior, y no en el proprio descriptor component. El compilador mostrará una advertencia si este atributo se establece en el componente. |
|
.standby |
Si se establece, esto significa que el componente no se inicia automáticamente cuando la aplicación se arranca. Se supone que el atributo .standby no debe establecerse en un descriptor component directamente. Normalmente, se establece a partir de un ensamblaje que contiene el componente o se redirecciona al ensamblaje de nivel superior de una aplicación para permitir la activación/desactivación de partes de la aplicación mediante la modificación de las propiedades de esta (almacenadas en el ensamblaje superior; consulte Descriptor package). Es un atributo booleano. |
|
.boot_tout |
Tiempo de espera de arranque, en segundos. Si se especifica y se pone un valor distinto de cero, indica la cantidad de tiempo que el controlador de la aplicación esperará a que el componente se active antes de suponer que no se pudo iniciar. Si este atributo se omite o se establece como cero, se utiliza un valor predeterminado configurado para el controlador de CA 3Tera AppLogic. |
|
.os_type |
obsoleto. Este atributo no se debería utilizar en descriptores creados recientemente. Véase en su lugar la descripción de la entidad virtualization. .os_type especifica el SO que utiliza este componente. Esta información es necesaria para que se puedan ejecutar varios tipos de sistemas operativos en máquinas virtuales. El sistema de generación de ADL no interpreta el valor proporcionado. Debe pasar al cargador de arranque de máquina virtual junto con los datos de la entidad 'kernel' descrita más adelante. Si no se especifica, se asume 'linux'. |
|
.config_mode |
Especifica cómo se debería configurar el componente. Los valores permitidos son: dhcp y volfix. El valor predeterminado es dhcp. Este atributo se debería utilizar explícitamente sólo para la compatibilidad con versiones anteriores, en caso de que la funcionalidad de volfix se deba conservar para un componente dado. Este atributo se ignora y el modo se establece como volfix si el descriptor no tiene la entidad virtualization. Esto es así para permitir que los descriptores antiguos (que pertenecen a componentes que confían en volfix y no son compatibles con la configuración de dhcp) funcionen sin modificación. |
|
.field_opt |
Máscara de bits de opciones para habilitar la compatibilidad con varias alternativas de solución de problemas y de depuración. Este atributo no sigue las reglas normales de reemplazo de valores de propiedad de un ensamblaje, lo cual se aplica a todos los demás atributos predefinidos. El valor de .field_opt especificado para un componente se mantiene como opciones de campo de clase, mientras que cualquier otra configuración del mismo atributo para una instancia del componente en un ensamblaje se queda como las opciones de campo de instancia. |
|
.category |
Cadena arbitraria que define la categoría general a la cual pertenece el componente. La sintaxis de ADL lo permite, pero no se interpreta de ninguna manera. Está destinada para que la usen las herramientas visuales de CA 3Tera AppLogic con el fin de organizar los componentes en bibliotecas de componentes (catálogos). |
|
.description |
Descripción corta del componente. Del mismo modo que .category, el valor de este atributo es arbitrario y únicamente tiene fines de documentación. |
|
.console |
Parámetros de configuración de la consola del sistema operativo. El formato de esta cadena no es parte de ADL; los parámetros de consola que son actualmente compatibles se definen en la guía del usuario del grid. Si .console no se especifica para un componente, CA 3Tera AppLogic utiliza unos valores de configuración predeterminados por el sistema. A menos que un usuario con privilegios de administrador lo anule manualmente, la configuración del valor inicial del sistema define la consola del componente como ssh en el puerto 22. |
Todos los atributos del componente son opcionales y no tienen que estar presentes en el descriptor.
Todos los atributos son también propiedades válidas del componente, que se pueden anular en un ensamblaje que contenga el componente.
Nota: Los nombre del atributo se prefijan con un punto para evitar conflictos de nombre con propiedades regulares (véase la entidad property a continuación).
En la siguiente tabla se resumen las subentidades válidas de un componente y, a continuación, aparecen secciones en las que se explica en detalle cada subentidad.
|
volume |
Define un volumen que contiene un sistema de archivos usado por el componente. Debe aparecer al menos una entidad volume en cada componente. |
|
resource |
Define los requisitos del componente, con respecto a los recursos de hardware, que se necesitan para que este se pueda ejecutar. |
|
input, output |
Estas entidades definen terminales del componente, que son interfaces de red destinadas a la conexión con otros componentes en la misma aplicación. |
|
interface |
Se utiliza para permitir y configurar interfaces de red que no están destinadas a conectarse a otros componentes (como son las terminales de entrada y de salida) |
|
property |
Define una propiedad configurable del componente. |
|
cfgfiles |
Define una lista de archivos de configuración que tienen que verificarse para la actualización y el marcado de propiedad correspondiente. |
|
kernel |
obsoleto. Utilice en su lugar virtualization. Esta entidad contiene información de arranque específica del SO, y su contenido depende del valor del atributo .os_type del componente. |
|
virtualization |
Esta entidad define el entorno virtual para el cual el componente está diseñado y contiene opciones de arranque específicas que deben proporcionarse al cargador de arranque del componente. El campo 'mode' todavía se admite para la compatibilidad con versiones anteriores de archivos del descriptor más antiguos. |
|
visual |
Datos de presentación visuales. ADL no define el contenido de esta entidad. Se pretende que un editor de GUI almacene información relacionada con la forma en la que el componente se mostrará en la ventana del editor (color, figura de icono, diseño de terminales, etc.). |
| Copyright © 2011 CA. Todos los derechos reservados. | Enviar correo electrónico a CA Technologies acerca de este tema |