上一主题: 组件描述符语法下一主题: 卷实体


概述

组件描述符包含一个组件实体,用于定义单例组件或组件的可实例化类。 除了可实例化类需要位于称为目录的组件库中之外,在单例和类的定义之间无其他差别。 此外,任何类型的组件都可用于组件集中,但是单例在应用结构中只可以出现一次,而实例化组件可以使用多次。

下面是组件描述符结构的两个示例;第一个示例是当前标准格式,第二个示例显示旧格式的启动信息规范。 为兼容现有的目录组件,旧格式完全受支持。

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 
      { 
      ... 
      } 
   } 

组件实体具有下列定义的属性:

.migrateable

如果已设置,它允许组件从一个 CPU 移到另一个(假设该组件在虚拟机中运行并且有 VM 迁移支持)。 没有必要在组件中指定此属性-如果未指定,默认值为 1 (TRUE)。 该属性是布尔属性(有效值:0、no、false、1、yes、true;还可以使用内联方式指定,不包含任何值,表示为“1”)。
在无此属性时,默认情况下假设 .migrateable=1。 这不同于在 ADL 中定义的大多数其他布尔属性-这些属性通常默认为 0。

.server

如果 .migrateable 设置为 0,则该属性定义此组件要在其上运行的服务器的名称。 此属性以及 .migrateable 属性通常从外部组件集设置,而不在组件描述符本身中设置。 如果此属性在组件中进行设置,编译器将显示警告。

.standby

如果已设置,表示组件不会在启动应用时自动启动。 .standby 属性不一定要在组件描述符中直接设置。 通常,它从包含组件的组件集中进行设置,或重定向到应用的顶级组件集,以通过修改应用属性(存储在顶级组件集中-请参阅程序包描述符)来允许启用/禁用应用的各个部分。 该属性是布尔属性。

.boot_tout

启动超时时间(秒)。 如果指定为非零值,则表示确认应用控制器无法启动之前等待组件变为活动状态所用的时间。 如果此属性被省略或设为零,则使用为 CA AppLogic® 控制器配置的默认值。

.os_type

已过时 不应在新创建的描述符中使用此属性。 请参阅虚拟化实体描述。 os_type 指定此组件使用的操作系统。 对于支持在虚拟机中运行的多个 OS 类型来说,此信息是必不可少的。 提供值不由 ADL 构建系统进行解释;该值与下面描述的‘内核’实体中的数据一起,被传递到 VM 引导加载程序中。 如果未指定,则假定为“linux”。

.config_mode

指定应如何配置组件。 允许值包括:dhcp 和 volfix。 默认值是 dhcp。 如果应为指定组件保留 volfix 功能,则仅应明确使用此属性以实现向后兼容。 如果描述符没有虚拟化实体,则会忽略此属性并将模式设置为 volfix。 这将使得旧描述符(属于依赖于 volfix 且不支持 dhcp 配置的组件)无需修改便可以运行。

.field_opt

启用各种调试和故障排除支持的选项的位掩码。 此属性不遵循覆盖组件集中属性值的普通规则(适用于所有其他预定义属性),为组件指定的 .field_opt 值被保留为类字段选项,而组件集中组件实例的同一属性的任何设置均被保留为实例字段选项。

.category

定义组件所属常规类别的任意字符串。 ADL 语法允许使用该属性,但不以任何方式解释它。 它适用于 CA AppLogic® 可视化工具,用于组织组件库(目录)中的组件。

.description

组件的简短描述。 类似于 .category,此属性的值是任意的且仅用于文档目的。

.console

OS 系统控制台配置参数。 此字符串的格式不是 ADL 的一部分,当前支持的控制台参数已在 Grid User Guide(《网格用户指南》)中定义。 如果未指定组件的“.console”,则 CA AppLogic® 将使用系统默认的配置设置。 除非由具有管理员权限的用户手工覆盖,否则系统默认设置将组件的控制台定义为端口 22 上的 ssh。

所有组件属性都是可选的,无需均出现在描述符中。

所有属性也都是组件的有效属性,可以在包含组件的组件集中覆盖这些属性。

注意:属性名称包含一个点作为前缀,以避免名称与常规属性冲突。 请参阅以下属性实体。

下表汇总了组件中的有效子实体,后面各个部分将详细说明每一个子实体。

定义包含组件使用的文件系统的卷。 每个组件中必须至少存在一个卷实体。

资源

定义组件对硬件资源的要求,这些资源必须使组件可以运行。

输入、输出

定义组件的终端,这些终端是用于连接同一应用中其他组件的网络接口。

接口

用来启用和配置非用于连接其他组件的网络接口(与输入和输出终端一样)

属性

定义组件的可配置属性。

cfgfiles

定义需要验证属性标记并执行相应更新的配置文件的列表。

内核

已过时-使用虚拟化来代替。 此实体包含操作系统特定的启动信息,其内容取决于组件的 .os_type 属性的值。

虚拟化

定义为其设计组件的虚拟环境,并包含要提供给组件引导加载程序的启动特定选项。 为向后兼容旧的描述符文件,“模式”字段仍然受支持。

可视化

可视化显示数据。 ADL 不定义此实体的内容。 它用于 GUI 编辑器以存储与组件在编辑器窗口中显示方式相关的信息。 例如,终端的颜色、图标外形和布局。

此实体的内容必须符合 UDL 的一般语法规则,这些规则在“适用于所有描述符类型的语法规则”部分中提供。 此外,对于附加信息,请参阅 UDL 规范。