El archivo serviceconfig.xml

Contenido

Nota

Cuando en este documento se hace referencia a las ubicaciones de archivo y directorio, <inicio-instalación> es el directorio en el que se desempaquetó Agent Controller.  En los archivos de configuración también se hace referencia a este directorio como %TPTP_AC_HOME%.

Introducción

Agent Controller lee el archivo serviceconfig.xml para obtener valores configurables por el usuario. Solo se lee una vez, al arrancar. Las modificaciones de este archivo están normalmente restringidas ya que los cambios afectan a todos los usuarios.

El archivo serviceconfig.xml contiene los segmentos siguientes:

Si la variable de entorno TPTP_AC_HOME está definida, Agent Controller busca el archivo config/serviceconfig.xml relativo a la vía de acceso definida por él, de lo contrario lo busca en la vía de acceso relativa a su propia ubicación de instalación. La ubicación predeterminada para el archivo serviceconfig.xml es  <inicio-instalación>/config/serviceconfig.xml.

Cada instancia de un Agent Controller que esté ejecutándose en el mismo sistema necesita tener su propia versión de serviceconfig.xml con diferentes configuraciones de capa de transporte. 

Nota

Los agentes también leen el archivo serviceconfig.xml para obtener la información del segmento Connection, permitiendo así que un agente se comunique con un Agent Controller determinado.  

Los agentes leen su línea de mandatos para obtener una ubicación alternativa en la que buscar el archivo serviceconfig.xml.  El nombre de la opción predefinida para especificar la ubicación es -serviceconfig seguido del nombre de vía de acceso del archivo de configuración.  Si no se especifica en la línea de mandatos, el agente busca serviceconfig.xml en las mismas ubicaciones que se describen más arriba para Agent Controller.

Configuración de Agent Controller

La jerarquía de los elementos contenidos en el archivo serviceconfig.xml se muestra más abajo. El orden de los elementos que se muestran en el mismo nivel no es importante. Solo se espera una aparición de cada uno de los primeros niveles de los elementos (es decir, AgentControllerEnvironment, Logging, Agent, ProcessController, Connection, ApplicationAliases.) Los hiperenlaces del la jerarquía enlazan con la descripción de elemento formal en la sección Elementos y 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 y atributos


Elemento:
AgentControllerConfiguration
Este es el elemento raíz de la configuración de Agent Controller. Agent Controller utiliza los valores la primera vez que arranca. Solo puede haber un subelemento de cada.

Subelementos:     AgentControllerEnvironment
                            Logging
                            Agent
                            Plugin
                            ProcessController
                            Connection
                            ApplicationAliases
                            PeerConnectionTransport

Elemento: AgentControllerEnvironment
Define los valores de entorno globales para todas las aplicaciones y los agentes lanzados a través de Agent Controller. Si se omite este elemento, el entorno pasado permanece idéntico al de Agent Controller. Las variables definidas aquí no afectan a los valores de entorno de Agent Controller.

Utilizado por: AgentControllerConfiguration

Subelementos: Variable

Elemento: Variable
Este elemento Variable define una variable de entorno y cómo debe situarse dentro del entorno existente para formar el entorno predeterminado para todas las aplicaciones y los agentes lanzados. Puede haber cero o más de estos elementos definidos para AgentControllerEnvironment

Utilizado por: AgentControllerEnvironment

Atributos:

name
Este valor de serie especifica el nombre de la variable de entorno.
value
Este valor de serie especifica el valor de la variable de entorno.
position
(opcional) Este valor de serie puede ser "append", "prepend" o "replace", lo que indica dónde colocar este entorno relativo al entorno predeterminado.

Elemento: Logging
Define el nivel de gravedad de la información a anotar, en qué formato y en qué ubicación. Si este elemento se omite, se anotarán todos los avisos graves y muy graves, utilizando el formato CBE, en el mismo directorio en el que está ejecutándose Agent Controller. Tenga en cuenta que el nombre de archivo de anotaciones (tptpAgentCtrl.log) no es configurable; solo su ubicación.

Utilizado por: AgentControllerConfiguration

Atributos:

level
(opcional) Este valor de serie indica el nivel de gravedad de los mensajes que deben anotarse. Cada nivel se incluye a sí mismo y a todos los eventos que sean más graves. Especifique uno de los siguientes (listados por orden de gravedad creciente):
  • DEPURACIÓN: incluye mensajes que proporcionan detalles de bajo nivel acerca del flujo interno o de la ejecución de código de Agent Controller y de los agentes.
  • INFORMACIÓN: incluye eventos normales pero pueden ser interesantes para el usuario del programa.
  • AVISO: incluye eventos no inesperados pero que no deben interferir con el funcionamiento del programa.
  • MUY GRAVE: (predeterminado) incluye eventos que indican que el funcionamiento normal del programa se ha interrumpido debido a un error.
  • GRAVE: está restringido a los eventos que implican la finalización del programa.
format
(opcional) Este valor de serie especifica el formato a utilizar cuando se escriben mensajes en el archivo de anotaciones. Especifique uno de los siguientes:
  • CBE: (predeterminado) los mensajes se escribirán en formato Evento Base Común (incluye información detallada acerca del contexto y el origen del mensaje) adecuado para un programa de utilidad de lectura de anotaciones CBE.
  • Simple: los mensajes se escribirán como texto simple.
directory

(opcional) Este valor de serie especifica la ubicación en la que se creará el archivo de anotaciones. El valor predeterminado es el directorio desde el que se ejecuta Agent Controller.

Elemento: Agent
Este elemento necesario especifica el directorio en el que los agentes conocidos para Agent Controller ubican subdirectorios que identifican al agente por nombre y que contienen un archivo de configuración agent.xml con información acerca de cómo lanzar y gestionar el agente.

Utilizado por: AgentControllerConfiguration

Atributos:

path
Este valor de serie especifica el nombre de vía de acceso completo del directorio en el que buscar configuraciones de agente.

Elemento: Plugin
Este elemento especifica el directorio en el que se habrán situado extensiones a la configuración de Agent Controller.  Las extensiones se definen en los archivos de configuración de pluginconfig.xml. Los subdirectorios bajo el directorio especificado también pueden contener archivos ejecutables específicos de extensión.

Utilizado por: AgentControllerConfiguration

Atributos:

path
Este valor de serie especifica el nombre de vía de acceso completo del directorio en el que buscar extensiones.
Elemento: ProcessController
El elemento ProcessController contiene simplemente un valor que especifica el nombre de vía de acceso del ejecutable que Agent Controller iniciará y después llamará para lanzar agentes y aplicaciones. El valor predeterminado es que Agent Controller lanzar el agente tptpProcessController(.exe) ubicado en el mismo directorio que Agent Controller. El ejecutable debe registrarse con Agent Controller y ser capaz de procesar el conjunto de mandatos para esa interfaz. Puesto que la información de lanzamiento está restringida al nombre de la vía de acceso contenido aquí, no es necesario que este agente tenga un subdirectorio especificado en el directorio de agentes, igual que otros agentes y no puede tomar argumentos de línea de mandatos.

Utilizado por: AgentControllerConfiguration

Elemento: Connection
Este elemento es obligatorio y, como mínimo, debe contener un elemento TransportLayer para definir cada uno de los tipos de conexiones siguientes que utiliza Agent Controller: socket, tubo con nombre y memoria compartida.

Utilizado por: AgentControllerEnvironment

Subelementos: TransportLayer

Atributos:

name
Este valor de serie proporciona un nombre para la configuración de la conexión.

Elemento: TransportLayer
Este elemento define una capa de transporte que es un componente conectable dentro del Agent Controller responsable de enviar y recibir datos entre componentes del sistema a través de un mecanismo de comunicación interproceso.

Utilizado por: Connection

Subelementos:  Configuration
                         CommandExtractor

Atributos:

loadlib
Este valor de serie especifica el nombre de la biblioteca a cargar para esta capa de transporte sin el sufijo correspondiente (es decir, sin incluir .dll ni .so). Se utiliza la búsqueda de vía de acceso del sistema normal para localizar la biblioteca.
type
Este valor de serie proporciona la identidad específica de esta capa de transporte. Los valores posibles son: TPTP_SOCKET, TPTP_NAMEDPIPE, TPTP_SHAREDMEM, TPTP_CCTL y TPTP_ACTL. Las capas de transporte personalizadas utilizarán otros identificadores. Los valores TPTP_CCTL y TPTP_ACTL son transportes personalizados que proporcionan compatibilidad retroactiva para clientes y agentes que utilizan las interfaces de Agent Controller originales.

Elemento: Configuration
El elemento de Configuration contiene un subelemento que especifica el mecanismo de comunicación interproceso para cada TransportLayer. Los mecanismos de comunicación proporcionados son socket, tubo con nombre, memoria compartida y CCTL. La capa de transporte ACTL no tiene elementos de configuración. Las TransportLayers personalizados pueden tener otros elementos de configuración específicos de esas capas de transporte.

Utilizado por: TransportLayer

Subelementos:     Port (sólo con socketTL y CCTL)
                            PipeName (sólo con namedPipeTL)
                            MemName (sólo con sharedMemTL)
                            SecuredPort (sólo con CCTL)
                            FilePort (sólo con CCTL)
                            IsDataMultiplexed (sólo con CCTL)
                            ProcessPolling (sólo con CCTL)
                            Jvm (sólo con CCTL)
                            Version (sólo con CCTL)
                            SecurityEnabled (sólo con CCTL)
                            UserDefinition (sólo con CCTL y sólo si la seguridad está habilitada)
                            Keystore (sólo con CCTL y sólo si la seguridad está habilitada)
                            KeystorePassword (sólo con CCTL y sólo si la seguridad está habilitada)
                            Hosts (sólo con CCTL)

Elemento: Port
El elemento Port especifica el puerto a utilizar para la comunicación por socket. El elemento Port sólo es válido cuando se utiliza con las capas de transporte TPTP_SOCKET y TPTP_CCTL. El valor entero especifica el número de puerto real a utilizar al establecer la conexión por socket.

Utilizado por: Configuration

Elemento: PipeName
El elemento PipeName indica que la capa de transporte es para la comunicación por tubo con nombre. El elemento PipeName sólo es válido cuando se utiliza con namedPipeTL loadlib. El valor de serie correspondiente especifica el nombre del tubo que se utilizará al establecer la conexión.

Utilizado por: Configuration

Elemento: MemName
El elemento MemName indica que la capa de transporte es para la comunicación por memoria compartida. El elemento MemName sólo es válido cuando se utiliza con sharedMemTL loadlib. El valor de serie correspondiente especifica el nombre del recurso de memoria compartida que se utilizará al establecer esta conexión.

Utilizado por: Configuration
 

Elemento: SecuredPort
El elemento SecuredPort especifica el puerto a utilizar para la comunicación de socket segura. El elemento SecuredPort sólo es válido cuando se utiliza con la capa capa de transporte TPTP_CCTL. El valor entero especifica el número de puerto real a utilizar al establecer la conexión por socket segura.

Utilizado por: Configuration

Elemento: FilePort
El elemento FilePort especifica la capa de transporte utilizada para la comunicación por socket por el servicio de transferencia de archivos. El elemento FilePort sólo es válido cuando se utiliza con la capa capa de transporte TPTP_CCTL. El valor entero especifica el número de puerto real a utilizar al establecer la conexión por socket.

Utilizado por: Configuration

Elemento: IsDataMultiplexed
El elemento IsDataMultiplexed especifica si los datos de perfilado y registro cronológico deben transmitirse a través del canal de control de Agent Controller. De forma predeterminada, el canal de datos utiliza un puerto arbitrario para la transmisión de datos y puede quedar bloqueado por la existencia de un cortafuegos. La transferencia de los datos a través del canal de control permitirá abrir un conjunto de puertos predefinidos para las peticiones entrantes a través de un cortafuegos. Entre estos puertos están el puerto predeterminado 10002, el puerto seguro 10003 y el puerto de servidor de archivos 10005. Este elemento toma un valor booleano cuyo valor predeterminado es "FALSE". El elemento IsDataMultiplexed sólo es válido cuando se utiliza con la capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: ProcessPolling
El elemento ProcessPolling especifica si la comprobación activa del estado del proceso está habilitada. Este atributo se utiliza para asegurarse de que Agent Controller detecta cuándo finaliza un proceso. Este elemento toma un valor booleano cuyo valor predeterminado es "TRUE". El elemento ProcessPolling sólo es válido cuando se utiliza con la capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Jvm
El elemento Jvm especifica la vía de acceso totalmente calificada de la biblioteca de tiempo de ejecución dinámica de la máquina virtual Java (jvm.dll o libjvm.so) que deben utilizar los componentes de la conexión segura y la transferencia de archivos. El elemento Jvm sólo es válido cuando se utiliza con la capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Version
El elemento Version describe el número de versión de Agent Controller del que se informará a otros componentes. El elemento Version sólo es válido cuando se utiliza con la capa capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: SecurityEnabled
El elemento SecurityEnabled indica si los clientes que se conectan a esta capa de transporte deben conectarse o no al puerto seguro. Si la seguridad está habilitada y un cliente intenta conectarse al puerto no seguro, al cliente se le dará la dirección del puerto seguro y la conexión se rechazará. Este elemento toma un valor booleano cuyo valor predeterminado es "FALSE". El elemento SecurityEnabled sólo es válido cuando se utiliza con la capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: UserDefinition
El elemento UserDefinition describe qué usuarios pueden conectarse con esta capa de transporte. Si este elemento se establece en "ANY", podrán conectarse todos los usuarios que puedan autenticarse con el OS. Si la seguridad está habilitada, este elemento es obligatorio. Este elemento toma un valor de serie que consta de una lista de nombres de usuario separados por comas. El elemento UserDefinition solo es válido cuando se utiliza con la capa de transporte de TPTP_CCTL.

Utilizado por: Configuration

Elemento: Keystore
El elemento Keystore especifica la ubicación del almacén de claves para las conexiones seguras. Si la seguridad está habilitada, este elemento es obligatorio. El elemento Keystore sólo es válido cuando se utiliza con la capa capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: KeystorePassword
El elemento KeystorePassword establece la contraseña para utilizarla con el almacén de claves para las conexiones seguras. Si la seguridad está habilitada, este elemento es obligatorio. El elemento KeystorePassword sólo es válido cuando se utiliza con la capa capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Hosts
El elemento Hosts se utiliza para controlar qué hosts pueden conectarse a través de esta capa de transporte. Este elemento consta de uno o varios elementos Allow o Deny. El elemento Hosts sólo es válido cuando se utiliza con la capa de transporte TPTP_CCTL.

Utilizado por: Configuration

Elemento: Allow
El elemento Allow especifica un Host que puede conectarse a Agent Controller a través de esta capa de transporte.

Utilizado por: Hosts

Atributos:

host
Esta serie es el nombre o la dirección IP del host. Un valor de "ALL" indica que esta capa de transporte puede aceptar conexiones de cualquier host. Un valor de "LOCAL" indica que se deben aceptar conexiones de procesos locales.
net
Este atributo indica una subred de la que permitir conexiones.
mask
Este atributo indica una máscara de subred a utilizar para permitir conexiones.

Elemento: Deny
El elemento Deny especifica un Host que no puede conectarse a Agent Controller a través de esta capa de transporte.

Utilizado por: Hosts

Atributos:

host
Esta serie es el nombre o la dirección IP del host a denegar.
net
Este atributo indica una subred de la que denegar conexiones.
mask
Este atributo indica una máscara de subred a utilizar para denegar conexiones.

Elemento: CommandExtractor
Este elemento define un extractor de mandatos que es un componente conectable en una capa de transporte que extrae mandatos de la corriente de comunicación interproceso. El valor de serie especifica el nombre de la biblioteca a cargar sin el sufijo correspondiente (es decir, no incluir .dll o .so) ni el prefijo (es decir, "lib" para Linux.) Se utiliza la búsqueda de vía de acceso del sistema normal para localizar la biblioteca.

Utilizado por: TransportLayer
 

Elemento: ApplicationAliases
El elemento ApplicationAliases es una lista opcional de definiciones de alias de aplicación.

Utilizado por: AgentControllerConfiguration

Subelementos: Application

Atributos:

launchAliasesOnly
(opcional) Este atributo de serie es "true" o "false" (valor predeterminado.) Si se establece en "true", solo se lanzarán las aplicaciones que se hayan definido en este elemento. Si el atributo se establece en "false" o se omite, podrá lanzarse cualquier aplicación.

Elemento: Application
El elemento Application define un nombre de alias y una información de lanzamiento para una aplicación.

Utilizado por: ApplicationAliases

Subelementos: Variable
Parámetro

Atributos:

executable
Este valor de serie especifica el nombre de alias para el ejecutable de la aplicación especificado en el atributo path.
location
(opcional) Este valor de serie especifica el directo desde el que se lanzará el ejecutable, denominado algunas veces como directorio de trabajo del ejecutable mientras se está ejecutando.
path
Este valor de serie especifica el nombre de vía de acceso completo de la aplicación a lanzar. Esto se utiliza en lugar del nombre de alias al lanzar el ejecutable de la aplicación.

Elemento: Variable
Este elemento Variable define una variable de entorno y cómo debe situarse dentro del entorno existente cuando se lanza la aplicación. Puede haber cero o más de estos elementos definidos para una Application.

Utilizado por: Application

Atributos:

name
Este valor de serie especifica el nombre de la variable de entorno.
value
Este valor de serie especifica el valor de la variable de entorno.
position
(opcional) Este valor de serie puede ser >"append", "prepend" o "replace", lo que indica dónde colocar este entorno relativo al entorno predeterminado.

Elemento: Parameter
El elemento Parameter define un argumento de línea de mandatos para pasarlo a la aplicación en el lanzamiento. Puede haber cero o más de estos elementos definidos para una Application.

Utilizado por: Application

Atributos:

value
Este valor de serie especifica un argumento de línea de mandatos.
position
(opcional) Este valor de serie puede ser "append", "prepend" o "replace", lo que indica dónde poner este argumento en relación a los argumentos de línea de mandatos existentes.

Elemento: PeerConnectionTransport
Este elemento necesario especifica la capa de transporte que se utilizará para establecer conexiones entre el Agent Controller que lea esta configuración y las instancias similares de Agent Controller. El nombre del valor de este elemento debe coincidir con un tipo de Capa de transporte para una capa de transporte especifíca declarada en la sección Conexión del archivo de configuración (por ejemplo, TPTP_CCTL).

Utilizado por: AgentControllerConfiguration


Archivo serviceconfig.xml de ejemplo

Este ejemplo muestra un archivo de configuración de 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>


Copyright (C) 2005, 2006 Intel Corporation.