O Ficheiro agent.xml

Nota

Quando consultar as localizações de ficheiros e directórios neste documento, <install-home> é o directório onde o pacote Controlador de Agentes foi descompactado.

Introdução

O ficheiro de configuração de início de agente (agent.xml) contém informações estáticas das quais o Controlador de Agentes tem de ter conhecimento para iniciar e gerir um agente. Estas informações estáticas incluem o seguinte:

O ficheiro agent.xml tem de estar localizado sob um directório que tem o nome do próprio agente.  O directório que tem o nome do agente tem de estar localizado dentro do directório especificado pelo elemento Agente, dentro do ficheiro serviceconfig.xml.Por exemplo, um agente com o nome org.eclipse.tptp.TimeCollector teria este ficheiro de configuração localizado em <install-home>/agents/org.eclipse.tptp.TimeCollector/agent.xml. O Controlador de Agentes utiliza o nome do directório para identificar agentes que são solicitados pelo nome.  As informações no ficheiro de configuração agent.xml são os metadados para esse agente.

Repare que o Controlador de Agentes lê os ficheiros agent.xml para todos os agentes apenas uma vez, ao iniciar.  Assim, modificar os conteúdos destes ficheiros ou adicionar novos directórios de agentes, requer que o Controlador de Agentes seja reiniciado antes que as alterações entrem em vigor.

Elementos e Atributos

Elemento: Agent
Este é o elemento raiz do ficheiro de configuração de agente. Define os metadados para um agente. Um objecto pode pedir os metadados para um agente e posteriormente utilizar essas informações como pretender. Os subelementos enumerados abaixo são utilizados pelo Controlador de Agentes para lançar e gerir o agente.  Podem ser definidos subelementos adicionais por programadores de agentes que necessitem de obter informações adicionais como metadados.  Os metadados são úteis para um cliente que procure tomar decisões em tempo de execução, relativamente ao agente a utilizar para uma determinada tarefa.

Subelementos:     Interface
                            SingleInstance
                            Bound
                            MaxControllers
                            MaxObservers
                            ConfigFile
                            LaunchConfiguration

Atributos:

Nome
Este valor de cadeia é o nome exclusivo para o agente. Espera-se que este valor seja o mesmo que o nome utilizado pelo agente quando se regista com o Controlador de Agentes.  Se estes valores forem diferentes, os pedidos de um nome de agente terão resultados variáveis dependendo de o agente já estar, ou não, em execução.

Elemento:Interface
O valor de cadeia para este elemento é o nome de uma interface suportada por este agente. Podem haver zero ou mais elementos de Interface num elemento Agent.  Uma interface é um nome exclusivo para um conjunto de comandos suportados por um agente.

Utilizado por:       Agente

Elemento:SingleInstance
O valor inteiro para este elemento é 0 ou 1.  O 0 (falso) indica que este agente pode ter múltiplas instâncias em execução simultânea. O 1 (verdadeiro) indica que é permitida apenas uma única instância deste agente.  Se definido para 1, o Controlador de Agentes recusará pedidos para novas instâncias deste agente se já estiver a ser executada uma instância.

Utilizado por:       Agente

Elemento: Bound
O valor inteiro para este elemento é 0 ou 1.  O 0 (falso) indica que este agente não está associado a uma aplicação. O 1 (verdadeiro) indica que o agente está associado a uma aplicação.  Um agente que está associado a uma aplicação poderá apenas ser lançado por essa aplicação, assim, o Controlador de Agentes recusará lançar um agente se o respectivo valor Bound for 1.

Utilizado por:       Agente

Elemento: MaxControllers
O valor inteiro para este elemento é -1, 0 ou um valor positivo. O -1 indica "sem limite". O Controlador de Agentes rejeitará pedidos para direitos de controlador para este agente, se o número de pedidos exceder este valor.  Os direitos de um controlador são definidos pelo programador de agente. A utilização esperada é limitar o número de objectos que possam pedir acções em conflito, tais como iniciar e parar a recolha de dados.

Utilizado por:       Agente

Elemento: MaxObservers
O valor inteiro para este elemento é -1, 0 ou um valor positivo. O -1 indica "sem limite". O Controlador de Agentes rejeitará pedidos para direitos de observador para este agente, se o número de pedidos exceder este valor.  Os direitos de um observador são definidos pelo programador de agente. A utilização esperada é limitar o número de objectos que podem solicitar acções tipo pedido, tais como fornecer dados que sejam estáticos ou estejam a ser recolhidos (devido a um pedido de um controlador).

Utilizado por:       Agente

Elemento: ConfigFile
O valor de cadeia para este elemento especifica o caminho e nome de ficheiro completos de um ficheiro de configuração adicional, que contém informações de configuração dinâmicas acessíveis ao agente.  É um ficheiro opcional, cujo objectivo e conteúdo são definidos pelo programador de agente. A utilização esperada é a leitura, por parte do agente, das suas próprias informações de configuração a partir deste ficheiro, quer no arranque, quer em qualquer outro momento.

Utilizado por:       Agente

Elemento: LaunchConfiguration
Identifica parâmetros de configuração de início para este Agente.

Utilizado por:       Agente
                   
Subelementos:     launchInfo
 

Elemento: launchInfo
Engloba informações utilizadas para lançar um executável.

Utilizado por:       LaunchConfiguration

Subelementos:     Application

Elemento: Application
Este elemento Application define as informações utilizadas para iniciar uma aplicação.  O valor de atributo executable pode especificar uma aplicação pelo respectivo nome alternativo (consulte o elemento ApplicationAliases em serviceconfig.xml) ou pelo nome do caminho do executável a lançar.  Em primeiro lugar, o valor é comparado com a lista de nomes alternativos obtida no arranque pelo Controlador de Agentes em serviceconfig.xml.  Se não for encontrada correspondência, as informações de lançamento contidas no elemento Application são utilizadas tal como estão.  Se for encontrada uma correspondência, as informações de lançamento definidas para esse nome alternativo são utilizadas em conjunto com as informações definidas aqui, como descrito abaixo.

Utilizado por:       LaunchConfiguration
                   
Subelementos:     Variable
                            Parameter                          

Atributos:

executable

Este valor de cadeia especifica o nome da aplicação a ser iniciada. Pode ser um nome alternativo ou o nome do caminho do executável a lançar.  Se for um nome alternativo, o nome do executável é substituído pelo valor do caminho especificado nesse nome alternativo.

location

(opcional) Este valor de cadeia especifica o directório a partir do qual o executável vai ser iniciado, por vezes denominado como o directório de trabalho para o executável, enquanto este está em execução. Se for omitido e o executável não tiver correspondido a um nome alternativo, a aplicação é executada a partir do directório em que o Controlador de Agentes reside.  Se for omitido e o executável corresponder a um nome alternativo, é utilizada a localização especificada para o nome alternativo.

Elemento: Variable
Este elemento Variable define uma variável do ambiente e a forma como deverá posicionar-se no ambiente existente. Quando localizado num elemento Application, modifica o ambiente utilizado quando a aplicação é lançada.  Podem ser definidos zero ou mais destes elementos para uma Application.Se o atributo executable da Application especificar um nome alternativo, as definições da variável do ambiente do nome alternativo são aplicadas ao ambiente predefinido e posteriormente as variáveis do ambiente aqui definidas são aplicadas sobre ele.

Utilizado por:     Application

Atributos:

name

Este valor de cadeia especifica o nome da variável do ambiente.

value

Este valor de cadeia especifica o valor da variável do ambiente.

position

(opcional) Este valor de cadeia é um de "append", "prepend" ou "replace", indicando onde colocar este ambiente relativo ao ambiente actual. Se for omitido, a variável será apensa ao ambiente.

Elemento: Parameter
O elemento Parameter define um argumento de linha de comandos a ser dado à aplicação quando lançada. Podem ser definidos zero ou mais destes elementos para uma Application. Se o atributo executable da Application especificar um nome alternativo, são utilizados os argumentos da linha de comandos e posteriormente os argumentos da linha de comandos aqui definidos são aplicados sobre eles.

Utilizado por:     Application

Atributos:

value

Este valor de cadeia especifica um argumento de linha de comandos.

position

(opcional) Este valor de cadeia é um de  "append", "prepend" ou "replace" indicando onde colocar este argumento relativo aos argumentos de linha de comandos existentes. Se for omitido, este argumento será apenso à linha de comandos.-

Exemplo do Ficheiroagent.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>


Referência relacionada

Descrição Geral da Configuração do Agente e Controlador de Agentes


Copyright (C) 2005, 2006 Intel Corporation.