O Arquivo serviceconfig.xml

Conteúdo

Nota

Ao fazer referência a locais de arquivo e diretório neste documento, <install-home> é o diretório em que o pacote do Agent Controller foi descompactado.  Esse diretório é referido como %TPTP_AC_HOME% nos arquivos de configuração.

Introdução

O serviço serviceconfig.xml é lido pelo Agent Controller para obter as definições configuráveis pelo usuário. Ele é lido apenas uma vez, na inicialização. Modificações nesse arquivo normalmente são restringidas, já que qualquer alteração impacta todos os usuários.

O arquivo serviceconfig.xml contém os seguintes segmentos:

Se a variável de ambiente TPTP_AC_HOME estiver definida, o Agent Controller procurará o config/serviceconfig.xml relativo ao caminho definido por ele; do contrário, a procura será relativa ao seu próprio local instalado. O local padrão do arquivo serviceconfig.xml é <install-home>/config/serviceconfig.xml.

Cada instância de um Agent Controller em execução no mesmo sistema exige sua própria versão do serviceconfig.xml com configurações de camada de transporte diferentes. 

Nota

Os agentes também lêem o arquivo serviceconfig.xml para obter as informações do segmento Conexão, permitindo assim que um Agente se comunique com um determinado Agent Controller.  

Os agentes lêem a linha de comando deles para obter um local alternativo no qual localizar o arquivo serviceconfig.xml.  O nome de opção predefinido para especificar o local é -serviceconfig, seguido do nome de caminho do arquivo de configuração.  Se não especificado na linha de comandos, o agente procurará serviceconfig.xml nos mesmos locais, conforme descrito acima para o Agent Controller.

Configuração do Agent Controller

A hierarquia dos elementos contidos no arquivo serviceconfig.xml é mostrada a seguir. A ordem dos elementos mostrados no mesmo nível não é importante. Apenas uma ocorrência de cada primeiro nível de elementos (isto é, AgentControllerEnvironment, Logging, Agent, Plugin, ProcessController, Connection, ApplicationAliases, PeerConnectionTransport) é esperada. Hyperlinks na hierarquia estão vinculados à descrição formal do elemento na seção Elementos e Atributos.

AgentControllerConfiguration
    AgentControllerEnvironment
        Variable
    Logging
    Agent
    Plugin
    ProcessController
    Connection
        TransportLayer
            Configuration
                Port
                PipeName
                MemName
               
SecuredPort
               
FilePort
               
IsDataMultiplexed
                ProcessPolling
               
Jvm
                Version
                SecurityEnabled
                UserDefinition
                Keystore
                KeystorePassword
                Hosts
                   
Allow
                    Deny
    CommandExtractor
    ApplicationAliases
        Application
            Variable
            Parameter
     PeerConnectionTransport

Elementos e Atributos


Elemento:
AgentControllerConfiguration
Esse é o elemento raiz da configuração do Agent Controller. As configurações são utilizadas pelo Agent Controller em sua primeira inicialização. Pode haver apenas um de cada subelemento.

Subelementos:     AgentControllerEnvironment
                            Logging
                            Agent
                            Plugin
                            ProcessController
                            Connection
                            ApplicationAliases
                            PeerConnectionTransport

Elemento: AgentControllerEnvironment
Define as configurações globais do ambiente para todos os aplicativos e agentes ativados pelo Agent Controller. Se esse elemento for omitido, o ambiente transmitido permanecerá idêntico ao do próprio Agent Controller. As variáveis definidas aqui não afetam as configurações de ambiente do próprio Agent Controller.

Utilizado por: AgentControllerConfiguration

Subelementos: Variable

Elemento: Variable
Esse elemento define uma variável de ambiente e como posicioná-la no ambiente existente para formar o ambiente padrão para todos os aplicativos e agentes ativados. Pode haver zero ou mais desses elementos definidos para o AgentControllerEnvironment.

Utilizado por: AgentControllerEnvironment

Atributos:

name
Esse valor de cadeia especifica o nome da variável de ambiente.
value
Esse valor de cadeia especifica o valor da variável de ambiente.
position
(opcional) Esse valor de cadeia é um de "append", "prepend" ou "replace", indicando onde colocar esse ambiente em relação ao ambiente padrão.

Elemento: Logging
Define o nível de gravidade das informações para registro, em qual formato e local. Se esse elemento for omitido, todos os avisos críticos e graves serão registrados, utilizando o formato CBE, no mesmo diretório no qual o Agent Controller está em execução. Observe que o nome do arquivo de registro (tptpAgentCtrl.log) não é configurável; apenas seu local.

Utilizado por: AgentControllerConfiguration

Atributos:

level
(opcional) Esse valor de cadeia indica o nível de gravidade de mensagens que devem ser registradas. Cada nível inclui ele próprio e todos os eventos mais graves. Especifique um dos seguintes (listados na ordem de aumento de gravidade):
  • DEPURAÇÃO - inclui mensagens que fornecem detalhes de baixo nível sobre o fluxo interno de execução de código do Agent Controller e dos agentes.
  • INFORMATIVA - inclui eventos normais, mas que talvez possam interessar ao usuário do programa.
  • AVISO - inclui eventos inesperados, mas que não devem interferir na operação do programa.
  • CRÍTICA - (padrão) inclui eventos que indicam que a operação normal do programa foi interrompida por um erro.
  • GRAVE - restrito a eventos que resultam no término do programa.
format
(opcional) Esse valor de cadeia especifica o formato a ser utilizado ao gravar as mensagens no arquivo de registro. Especifique um dos seguintes:
  • CBE - (padrão) as mensagens serão gravadas no formato Common Base Event (inclui informações detalhadas sobre o contexto e a origem da mensagem) adequado para consumo por um utilitário de leitura de registro do CBE.
  • Simples - as mensagens serão gravadas como texto simples.
directory

(opcional) Esse valor de cadeia especifica o local em que o arquivo de registro será criado. O padrão é o diretório a partir do qual o Agent Controller é executado.

Elemento: Agent
Esse elemento obrigatório especifica o diretório em que os agentes que serão identificados pelo Agent Controller terão colocado subdiretórios que identificam o agente pelo name e conterão um arquivo de configuração agent.xml com informações sobre como ativar e gerenciar o agente.

Utilizado por: AgentControllerConfiguration

Atributos:

path
Esse valor de cadeia especifica o nome de caminho completo do diretório no qual procurar configurações do agente.

Elemento: Plugin
Esse elemento especifica o diretório em que as extensões para a configuração do Agent Controller terão sido colocadas.  As extensões são definidas em arquivos de configuração pluginconfig.xml.  Os subdiretórios no diretório especificado também podem conter arquivos executáveis com extensões específicas.

Utilizado por: AgentControllerConfiguration

Atributos:

path
Esse valor de cadeia especifica o nome de caminho completo do diretório no qual procurar extensões.
Elemento: ProcessController
Esse elemento apenas contém um valor que especifica o nome de caminho do executável que o Agent Controller iniciará e, em seguida, chamará para ativar agentes e aplicativos. Por padrão, o Agent Controller ativará o agente tptpProcessController(.exe) localizado no mesmo diretório do próprio Agent Controller. O executável deve registrar-se no Agent Controller e estar apto a processar o conjunto de comandos para essa interface. Como suas informações de ativação estão restritas ao nome de caminho contido aqui, não será exigido que esse agente tenha um subdiretório especificado no diretório agents como outros agentes e não poderá utilizar argumentos de linha de comandos.

Utilizado por: AgentControllerConfiguration

Elemento: Connection
Esse elemento é obrigatório e deve conter, no mínimo, um elemento TransportLayer para definir cada um dos seguintes tipos de conexões utilizados pelo Agent Controller: soquete, canal nomeado e memória compartilhada.

Utilizado por: AgentControllerEnvironment

Subelementos: TransportLayer

Atributos:

name
Esse valor de cadeia fornece um nome para a configuração da conexão.

Elemento: TransportLayer
Esse elemento define uma Camada de Transporte que é um componente conectável dentro do Agent Controller responsável pelo envio e recebimento de dados entre os componentes do sistema por meio de um mecanismo de comunicação entre os processos.

Utilizado por: Connection

Subelementos:  Configuration
                         CommandExtractor

Atributos:

loadlib
Esse valor de cadeia especifica o nome da biblioteca a ser carregada para essa camada de transporte sem seu sufixo (isto é, não inclui .dll ou .so). A procura do caminho normal do sistema para localizar a biblioteca é utilizada.
type
Esse valor de cadeia fornece a identidade específica dessa camada de transporte.  Os valores possíveis são: TPTP_SOCKET, TPTP_NAMEDPIPE, TPTP_SHAREDMEM, TPTP_CCTL e TPTP_ACTL.  As camadas de transporte customizadas utilizarão outros identificadores.  Os valores TPTP_CCTL e TPTP_ACTL são transportes customizados que fornecem retrocompatibilidade para clientes e agentes que utilizam as interfaces originais do Agent Controller.

Elemento: Configuration
Esse elemento contém um subelemento que especifica o mecanismo de comunicação entre processo para cada TransportLayer. Os mecanismos de comunicação fornecidos aqui são soquete, canal nomeado, memória compartilhada e CCTL.  A camada de transporte ACTL não possui elementos de configuração. Os TransportLayers customizados podem ter outros elementos de configuração específicos dessas camadas.

Utilizado por: TransportLayer

Subelementos:     Port (apenas com socketTL e CCTL)
                            PipeName (apenas com namedPipeTL)
                            MemName (apenas com sharedMemTL)
                            SecuredPort (apenas com CCTL)
                            FilePort (apenas com CCTL)
                            IsDataMultiplexed (apenas com CCTL)
                            ProcessPolling (apenas com CCTL)
                            Jvm (apenas com CCTL)
                            Version (apenas com CCTL)
                            SecurityEnabled (apenas com CCTL)
                            UserDefinition (apenas com CCTL e apenas se a segurança estiver ativada)
                            Keystore (apenas com CCTL e apenas se a segurança estiver ativada)
                            KeystorePassword (apenas com CCTL e apenas se a segurança estiver ativada)
                            Hosts (apenas com CCTL)

Elemento: Port
Esse elemento especifica a porta a ser utilizada para a comunicação por soquete. O elemento Port só é válido quando utilizado com ascamadas de transporte TPTP_SOCKET e TPTP_CCTL. Seu valor inteiro especifica o número de porta real a ser utilizado ao estabelecer a conexão por soquete.

Utilizado por: Configuration

Elemento: PipeName
Esse elemento indica que a camada de transporte destina-se à comunicação por canal nomeado. O elemento PipeName só é válido quando utilizado com o namedPipeTL loadlib. Seu valor de cadeia especifica o nome do canal a ser utilizado ao estabelecer a conexão.

Utilizado por: Configuration

Elemento: MemName
Esse elemento indica que a camada de transporte destina-se à comunicação por memória compartilhada. O elemento MemName só é válido quando utilizado com o sharedMemTL loadlib. Seu valor de cadeia especifica o nome do recurso de memória compartilhada a ser utilizado ao estabelecer essa conexão.

Utilizado por: Configuration
 

Elemento: SecuredPort
Esse elemento especifica a porta a ser utilizada para a comunicação segura por soquete. O elemento SecuredPort só é válido quando utilizado com acamada de transporte TPTP_CCTL. Seu valor inteiro especifica o número de porta real a ser utilizado ao estabelecer conexão segura por soquete.

Utilizado por: Configuration

Elemento: FilePort
Esse elemento especifica a camada de transporte utilizada para a comunicação por soquete pelo serviço de Transferência de Arquivos. O elemento FilePort só é válido quando utilizado com acamada de transporte TPTP_CCTL. Seu valor inteiro especifica o número de porta real a ser utilizado ao estabelecer a conexão por soquete.

Utilizado por: Configuration

Elemento: IsDataMultiplexed
Esse elemento especifica se os dados de traçado de perfil e de registro devem ser transmitidos pelo canal de controle do Agent Controller. Por padrão, o canal de dados utiliza uma porta arbitrária para transmissão de dados e pode ser bloqueado pela existência de um firewall. A transferência dos dados pelo canal de controle permitirá que um conjunto de portas predefinidas seja aberto para pedidos de conexão de entrada por meio de um firewall. Essas portas incluem a porta padrão 10002, a porta protegida 10003 e a porta do servidor de arquivos 10005. Esse elemento utiliza um valor booleano que assume o padrão de "FALSE".  O elemento IsDataMultiplexed só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: ProcessPolling
Esse elemento especifica se a verificação ativa do status do processo está ativada ou não. Esse atributo é utilizado para garantir que o Agent Controller detecte o término de um processo. Esse elemento utiliza um valor booleano que assume o padrão de "TRUE".  O elemento ProcessPolling só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Jvm
Esse elemento especifica o caminho completo da biblioteca dinâmica de tempo de execução Java Virtual Machine (jvm.dll ou libjvm.so) a ser utilizada pelos componentes de Transferência de Arquivos e de conexão segura. O elemento Jvm só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Version
Esse elemento descreve o número da versão do Agent Controller que será relatado a outros componentes. O elemento Version só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: SecurityEnabled
Esse elemento indica se os clientes que se conectam a essa camada de transporte devem ou não conectar-se à porta segura.  Se a segurança estiver ativada e um cliente tentar conectar-se à porta não-segura, o cliente receberá o endereço da porta segura e a conexão será recusada.  Esse elemento utiliza um valor booleano que assume o padrão de "FALSE".  O elemento SecurityEnabled só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: UserDefinition
Esse elemento descreve quais usuários podem conectar-se a essa camada de transporte.  Se esse elemento for definido como "ANY", todos os usuários que podem ser autenticados com o S.O. terão permissão para conexão.  Se a segurança estiver ativada, esse elemento será obrigatório. Esse elemento utiliza um valor de cadeia que consiste em uma lista separada por vírgula de nomes de usuários.  O elemento UserDefinition só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Keystore
Esse elemento especifica o local do armazenamento de chaves para as conexões seguras.  Se a segurança estiver ativada, esse elemento será obrigatório. O elemento Keystore só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: KeystorePassword
Esse elemento define a senha a ser utilizada com o armazenamento de chaves para as conexões seguras.  Se a segurança estiver ativada, esse elemento será obrigatório. O elemento KeystorePassword só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Hosts
Esse elemento é utilizado para controlar quais hosts têm permissão para conectar-se por essa camada de transporte. Esse elemento consiste em um ou em mais elementos Allow ou Deny.  O elemento Hosts só é válido quando utilizado com acamada de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Allow
Esse elemento especifica um Host que tem permissão para conectar-se ao Agent Controller por essa camada de transporte.

Utilizado por: Hosts

Atributos:

host
Essa cadeia é o nome ou o endereço IP do host. Um valor de "ALL" indica que essa camada de transporte pode aceitar conexões de qualquer host.  Um valor de "LOCAL" indica que as conexões devem ser aceitas de processos locais.
net
Esse atributo indica uma sub-rede a partir da qual permitir conexões.
mask
Esse atributo indica uma máscara de sub-rede a partir da qual permitir conexões.

Elemento: Deny
Esse elemento especifica um Host que não tem permissão para conectar-se ao Agent Controller por essa camada de transporte.

Utilizado por: Hosts

Atributos:

host
Essa cadeia é o nome ou o endereço IP do host que será negado.
net
Esse atributo indica uma sub-rede a partir da qual negar conexões.
mask
Esse atributo indica uma máscara de sub-rede a partir da qual negar conexões.

Elemento: CommandExtractor
Esse elemento define um Extrator de Comando que representa um componente conectável em uma Camada de Transporte que extrai comandos do fluxo de comunicação entre processos. Seu valor de cadeia especifica o nome da biblioteca a ser carregada sem seu sufixo (isto é, não inclui .dll ou .so) ou prefixo (isto é, "lib" no Linux). A procura do caminho normal do sistema para localizar a biblioteca é utilizada.

Utilizado por: TransportLayer
 

Elemento: ApplicationAliases
Esse elemento é uma lista opcional de definições de alias de aplicativo.

Utilizado por: AgentControllerConfiguration

Subelementos: Application

Atributos:

launchAliasesOnly
(opcional) Esse atributo de cadeia é "verdadeiro" ou "falso" (padrão). Se definido como "verdadeiro", somente os aplicativos que tiverem sido definidos nesse elemento serão ativados. Se o atributo estiver definido como "falso" ou omitido, qualquer aplicativo poderá ser ativado.

Elemento: Application
Esse elemento define um nome alias e as informações de ativação de um aplicativo.

Utilizado por: ApplicationAliases

Subelementos: Variable
Parâmetro

Atributos:

executável
Esse valor de cadeia especifica o nome alias do executável do aplicativo especificado no atributo de caminho.
location
(opcional) Esse valor de cadeia especifica o diretório a partir do qual o executável deve ser ativado; é referido, às vezes, como o diretório de trabalho do executável enquanto ele está em execução.
path
Esse valor de cadeia especifica o nome de caminho completo do aplicativo a ser ativado. Ele é utilizado no lugar do nome alias ao ativar o executável do aplicativo.

Elemento: Variable
Esse elemento define uma variável de ambiente e como posicioná-la no ambiente existente quando o aplicativo é ativado. Pode haver zero ou mais desses elementos definidos para um Aplicativo.

Utilizado por: Application

Atributos:

nome
Esse valor de cadeia especifica o nome da variável de ambiente.
value
Esse valor de cadeia especifica o valor da variável de ambiente.
position
(opcional) Esse valor de cadeia é um de >"append", "prepend" ou "replace", indicando onde colocar esse ambiente em relação ao ambiente padrão.

Elemento: Parameter
Esse elemento define um argumento de linha de comando a ser fornecido ao aplicativo quando ativado. Pode haver zero ou mais desses elementos definidos para um Aplicativo.

Utilizado por: Application

Atributos:

value
Esse valor de cadeia especifica um argumento de linha de comandos.
position
(opcional) Esse valor de cadeia é um de "append", "prepend" ou "replace", indicando onde colocar esse argumento em relação aos argumentos de linha de comandos existentes.

Elemento: PeerConnectionTransport
Esse elemento obrigatório especifica a camada de transporte que será utilizada para estabelecer conexões entre o Agent Controller que lê esta configuração e as instâncias do Agent Controller no mesmo nível.  O nome do valor desse elemento deve corresponder a um nome do tipo da Camada de Transporte para uma camada de transporte específica declarada na seção Conexão do arquivo de configuração (por ex., TPTP_CCTL).

Utilizado por: AgentControllerConfiguration


Exemplo de Arquivo serviceconfig.xml

Este exemplo mostra um arquivo de configuração de amostra do Agent Controller:

<?xml version="1.0" encoding="UTF-8"?>
<AgentControllerConfiguration>
    <AgentControllerEnvironment configuration="default">
        <Variable name="JAVA_PATH" value="C:\Program Files\Java\j2re1.4.2_08\bin\java.exe" position="replace"/>
        <Variable name="RASERVER_HOME" value="C:\Eclipse\Projects\AgentController" position="replace"/>
        <Variable name="TPTP_AC_HOME" value="%RASERVER_HOME%" position="replace"/>
        <Variable name="PLUGINS_HOME" value="%RASERVER_HOME%\plugins" position="replace"/>
        <Variable name="PATH" value="%RASERVER_HOME%\bin" position="prepend"/>
    </AgentControllerEnvironment>
    <ApplicationAliases>
        <Application configuration="default" executable="java.exe" path="%JAVA_PATH%" location="%SYS_TEMP_DIR%">
            <Variable name="CLASSPATH" value="%CLASSPATH_ORG_ECLIPSE_EQUINOX_COMMON%" position="append"/>
            <Variable name="PATH" value="%RASERVER_HOME%\bin" position="prepend"/>
        </Application>
    </ApplicationAliases>
    <Plugin path="%PLUGINS_HOME%"/>
    <Agent path="%TPTP_AC_HOME%\agents"/>
    <Logging level="INFORMATION" format="CBE" directory="%TPTP_AC_HOME%\config"/>
    <ProcessController>%TPTP_AC_HOME%\bin\tptpProcessController.exe</ProcessController>
    <Connection name="Dev">
        <TransportLayer loadlib="socketTL" type="TPTP_SOCKET">
            <Configuration>
                <Port>10006</Port>
            </Configuration>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
        <TransportLayer loadlib="namedPipeTL" type="TPTP_LOG">
            <Configuration>
                <PipeName>acmasterlog</PipeName>
            </Configuration>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
        <TransportLayer loadlib="namedPipeTL" type="TPTP_NAMEDPIPE">
            <Configuration>
                <PipeName>acmaster</PipeName>
            </Configuration>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
        <TransportLayer loadlib="sharedMemTL" type="TPTP_SHAREDMEM">
            <Configuration>
                <MemName>acbuffer</MemName>
            </Configuration>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
        <TransportLayer loadlib="tptpCCTL" type="TPTP_CCTL">
            <Configuration>
                <Port>10002</Port>
                <SecuredPort>10003</SecuredPort>
                <FilePort>10005</FilePort>
                <IsDataMultiplexed>false</IsDataMultiplexed>
                <ProcessPolling>true</ProcessPolling>
                <Jvm>C:\Program Files\Java\j2re1.4.2_08\bin\client\jvm.dll</Jvm>
                <Version>4.2.0</Version>
                <SecurityEnabled>true</SecurityEnabled>
                <UserDefinition>ANY</UserDefinition>
                <Keystore>C:\Eclipse\Projects\AgentController\security\tptpSampleKeystore</Keystore>
                <KeystorePassword>password</KeystorePassword>
                <Hosts configuration="default">
                    <Allow host="LOCAL"/>
                </Hosts>
            </Configuration>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
        <TransportLayer loadlib="tptpACTL" type="TPTP_ACTL">
            <Configuration/>
            <CommandExtractor>tptpCmdExtr</CommandExtractor>
        </TransportLayer>
    </Connection>
    <PeerConnectionTransport>TPTP_CCTL</PeerConnectionTransport>
</AgentControllerConfiguration>


Direitos Autorais (C) 2005, 2006 Intel Corporation.