注意
在本文档中,当引用文件和目录位置时,<install-home> 是指代理控制器软件包的解压缩目录。
代理程序启动配置文件(agent.xml)包含代理控制器在启动和管理代理程序时需要了解的静态信息。此静态信息包括下列内容:
agent.xml 文件必须在与代理程序同名的目录中。这个与代理程序同名的目录必须在 serviceconfig.xml 文件中 Agent 元素指定的目录中。例如,对于名为 org.eclipse.tptp.TimeCollector 的代理程序来说,此配置文件是 <安装根目录>/agents/org.eclipse.tptp.TimeCollector/agent.xml。代理控制器使用目录名来标识按名称请求的代理程序。agent.xml 配置文件中的信息是该代理程序的元数据。
注意,代理控制器仅读取一次所有代理程序的 agent.xml 文件,即在它启动时读取一次。因此,如果修改了这些文件的内容或添加了新的代理程序目录,就需要重新启动代理控制器才能使更改生效。
元素:Agent
这是代理程序配置文件的根元素。它定义代理程序的元数据。对象可以请求代理程序的元数据,然后根据需要使用该信息。代理控制器使用下面列示的子元素来启动和管理代理程序。如果需要返回其他信息作为元数据,则代理程序开发者可以定义其他子元素。当客户机尝试进行运行时决策以确定使用哪个代理程序来完成特定任务时,元数据非常有用。
子元素: Interface
SingleInstance
Bound
MaxControllers
MaxObservers
ConfigFile
LaunchConfiguration属性:
- Name
- 此字符串值是代理程序的唯一名称。此值最好是代理程序在向代理控制器注册它自己时使用的名称。如果这些值不同,则根据该代理程序是否正在运行,按名称发出的代理程序请求的结果也将有所变化。
元素:Interface
此元素的字符串值是此代理程序所支持的接口的名称。在 Agent 元素中可以有零个或多个
Interface 元素。接口是代理程序所支持的一组名称的唯一名称。
- 使用者: Agent
元素:SingleInstance
此元素的整数值是 0 或 1。0(false)表示可以同时运行此代理程序的多个实例。1(true)表示只允许运行此代理程序的单个实例。如果设置为 1,并且已经有一个实例正在执行,则代理控制器将拒绝对新代理程序实例的请求。
使用者: Agent
元素:Bound
此元素的整数值是 0 或 1。0(false)表示此代理程序未与任何应用程序绑定。1(true)表示此代理程序与某个应用程序绑定。与某个应用程序绑定的代理程序只能由该应用程序启动,因此,代理控制器将拒绝启动 Bound 值为 1 的代理程序。
使用者: Agent
元素:MaxControllers
此元素的整数值是 -1、0 或正数值。-1 表示“没有限制”。如果请求数超出此值,代理控制器就会拒绝对此代理程序的控制者权限的请求。控制者的权限由代理程序开发者定义。此元素的预期用途是对能够请求冲突操作(例如开始和停止收集数据)的对象数进行限制。
使用者: Agent
元素:MaxObservers
此元素的整数值是 -1、0 或正数值。-1 表示“没有限制”。如果请求数超出此值,代理控制器就会拒绝对此代理程序的观察者权限的请求。观察者的权限由代理程序开发者定义。此元素的预期用途是对能够请求查询类型操作(例如提供静态数据或者按照控制者的请求提供所收集的数据)的对象数进行限制。
使用者: Agent
元素:ConfigFile
此元素的字符串值指定附加配置文件的完整路径和文件名。附加配置文件包含代理程序能够访问的动态配置信息。附加配置文件是可选的,其用途和内容由代理程序开发者定义。此元素的预期用途是让代理程序在启动时以及在任何其他时间从此文件中读取自己的配置信息。
使用者: Agent
元素:LaunchConfiguration
标识此代理程序的启动配置参数。
使用者: Agent
子元素: launchInfo
元素:launchInfo
封装启动可执行文件时使用的信息。
使用者: LaunchConfiguration
子元素: Application
元素:Application
这个 Application 元素定义启动应用程序时使用的信息。它的
executable 属性值可以按别名(请参阅 serviceconfig.xml 中的
ApplicationAliases 元素)或要启动的实际可执行文件路径名来指定应用程序。当代理控制器启动时,将首先把此值与
serviceconfig.xml 中的别名列表进行匹配。如果找不到匹配项,就会按原样使用
Application 元素中包含的启动信息。如果找到匹配项,则将把为该别名定义的启动信息与此处定义的信息配合使用,如下所示。
使用者: LaunchConfiguration
子元素: Variable
Parameter
属性:
- executable
此字符串值指定要启动的应用程序的名称。此值可以是别名,也可以是要启动的实际可执行文件的路径名。如果此值是别名,则可执行文件名将被该别名中指定的路径值替换。
- location
(可选)此字符串值指定从中启动可执行文件的目录。当该可执行文件运行时,有时将此目录称为工作目录。如果省略此属性,并且可执行文件未与任何别名匹配,就会从代理控制器所在目录中执行该应用程序。如果省略此属性,并且该可执行文件与某个别名匹配,则将使用对该别名指定的位置。
元素:Variable
这个 Variable 元素定义了一个环境变量以及该环境变量在现有环境应该所处的位置。如果在
Application 元素中,则它将修改该应用程序启动时使用的环境。可以为 Application 定义这些元素中的零个或多个。如果
Application 的 executable 属性指定了别名,则将把该别名的环境变量设置应用于缺省环境,然后再应用此处定义的环境变量。
使用者: Application
属性:
- name
此字符串值指定环境变量的名称。
- value
此字符串值指定环境变量的值。
- position
(可选)此字符串值是“append”、“prepend”或“replace”,它指示此环境相对于当前环境的位置。如果省略此属性,则会将该变量追加到环境后面。
元素:Parameter
Parameter 元素定义启动应用程序时要指定的命令行参数。可以为 Application 定义这些元素中的零个或多个。如果
Application 的 executable
属性指定了别名,则将使用该别名的命令行参数,然后再应用此处定义的命令行参数。
使用者: Application
属性:
- value
此字符串值指定命令行参数。
- position
(可选)此字符串值是“append”、“prepend”或“replace”,它指示此参数相对于现有命令行参数的位置。如果省略此属性,则会将该参数追加到命令行末尾。
<Agent Name="org.eclipse.tptp.TimeCollector">
<Interface>org.eclipse.tptp.agent</Interface>
<Interface>org.eclipse.tptp.collector</Interface>
<SingleInstance>0</SingleInstance>
<Bound>0</Bound>
<MaxControllers>-1</MaxControllers>
<MaxObservers>-1</MaxObservers>
<ConfigFile>c:\tptp\agents\org.eclipse.tptp.TimeCollector\config\agentconfig.xml</ConfigFile>
<LaunchConfiguration>
<launchInfo>
<Application executable=".\TimeCollector.exe">
<Parameter value="-serviceconfig ..\config\serviceconfig.xml" />
</Application>
</launchInfo>
</LaunchConfiguration>
</Agent>
相关参考
Copyright (C) 2005, 2006 Intel Corporation.