agent.xml

附註

這份文件在表示檔案和目錄位置時,<install-home> 是指 Agent Controller 套件的解壓縮目錄。

簡介

代理程式啟動配置檔 (agent.xml) 包含 Agent Controller 必須知道才能啟動和管理代理程式的靜態資訊。這項靜態資訊包括:

agent.xml 檔必須在指名給代理程式本身的目錄之下。 agent-named 目錄必須在 serviceconfig.xml 檔內的 Agent 元素所指定的目錄內。 例如,名稱為 org.eclipse.tptp.TimeCollector 的代理程式會有這個配置檔,在 <install-home>/agents/org.eclipse.tptp.TimeCollector/agent.xml 中。 Agent Controller 利用這個目錄名稱來識別依名稱要求的代理程式。 agent.xml 配置檔內的資訊是這個代理程式的中繼資料。

請注意,Agent Controller 只會讀取所有代理程式的 agent.xml 檔一次,在代理程式啟動之時。 因此,修改這些檔案的內容或新增新的代理程式目錄,必須重新啟動 Agent Controller,它們才會生效。

元素和屬性

元素:Agent
這是代理程式配置檔的根元素。 它定義了代理程式的中繼資料。 物件可以先要求代理程式的中繼資料,再依照所想來使用這項資訊。 以下列出的子元素,供 Agent Controller 用來啟動和管理代理程式。 需要傳回其他資訊作為中繼資料的代理程式開發人員可以定義其他子元素。 對於嘗試進行關於特定作業使用哪個代理程式之執行時期決策的用戶端而言,中繼資料很有用。

子元素:     Interface
                            SingleInstance
                            Bound
                            MaxControllers
                            MaxObservers
                            ConfigFile
                            LaunchConfiguration

屬性:

Name
這個字串值是代理程式的唯一名稱。 這個值預期與代理程式向 Agent Controller 登錄自己時所用的名稱相同, 如果這些值不同,依名稱要求代理程式會有很不同的結果,這會隨著代理程式是否已在執行中而不同。

元素:Interface
這個元素的字串值是這個代理程式所支援的介面名稱。 在 Agent 元素中,可以有零或多個 Interface 元素。 介面是代理程式支援的一組指令的唯一名稱。

使用者:      Agent

元素:SingleInstance
這個元素的整數值是 0 或 1。 0 (false) 表示這個代理程式可以同時有多個實例在執行中。 1 (true) 表示只允許這個代理程式的單一實例。 如果設為 1,當已有執行中的實例,Agent Controller 會拒絕這個代理程式新實例的要求。

使用者:      Agent

元素: Bound
這個元素的整數值是 0 或 1。 0 (false) 表示這個代理程式並未連結至應用程式。 1 (true) 表示代理程式已連結至應用程式。 連結至應用程式的代理程式只能由這個應用程式來啟動,因此,如果 Bound 值是 1,Agent Controller 會拒絕啟動代理程式。

使用者:      Agent

元素: MaxControllers
這個元素的整數值是 -1、0 或正整數。 -1 表示「無限制」。 如果要求數目超出這個值,Agent Controller 會拒絕對於這個代理程式的控制器權利要求。 控制器的權利是代理程式開發人員所定義的。 預期的用法是限制能夠要求衝突動作(如開始和停止收集資料)的物件數目。

使用者:       Agent

元素: MaxObservers
這個元素的整數值是 -1、0 或正整數。 -1 表示「無限制」。 如果要求數目超出這個值,Agent Controller 會拒絕對於這個代理程式的觀察程式權利要求。 觀察程式的權利是代理程式開發人員所定義的。 預期的用法是限制能夠要求查詢類型動作(如提供靜態資料或所收集之資料(也許是因為控制器所發出之要求))的物件數目。

使用者:       Agent

元素: ConfigFile
這個元素的字串值指定含有代理程式所能存取的動態配置資訊之其他配置檔的完整路徑和檔案名稱。 這是一個選用性檔案,它的目的和內容由代理程式開發人員來定義。 預期用法是在啟動之時或任何其他時間,代理程式從這個檔案讀取它自己的配置資訊。

使用者:       Agent

元素: LaunchConfiguration
識別這個 Agent 的啟動配置參數。

使用者:       Agent
                   
子元素     launchInfo
 

元素: launchInfo
封裝用來啟動執行檔的資訊。

使用者:       LaunchConfiguration

子元素:     Application

元素:Application
這個 Application 元素定義用來啟動應用程式的資訊。 它的 executable 屬性值可以依別名(請參閱 serviceconfig.xml 中的 ApplicationAliases 元素)或實際啟動之執行檔的路徑名稱來指定應用程式。 這個值會先比對 Agent Controller 在啟動時,從 serviceconfig.xml 中取得的別名清單。 如果找不到相符項,Application 元素所包含的啟動資訊會依現狀來使用。 如果找到相符項,定義給這個別名的啟動資訊會依照以下所說明,用來結合這裡定義的資訊。

使用者:       LaunchConfiguration
                   
子元素:    Variable
                            Parameter                          

屬性:

executable

這個字串值指定要啟動的應用程式名稱。 它可以是要啟動的實際執行檔的別名或路徑名稱。 如果它是一個別名,執行檔名稱便會取代為這個別名所指定的路徑值。

location

(選用)這個字串值指定從中啟動執行檔的目錄,有時當執行檔在執行中,稱為執行檔的工作目錄。 如果省略,且這個執行檔不符合別名,就會從 Agent Controller 所在的目錄執行應用程式。 如果省略,且執行不符合別名,就會使用指定給別名的位置。

元素: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.xml

<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>


參考資訊

代理程式和 Agent Controller 配置概觀


Copyright (C) 2005, 2006 Intel Corporation.