Filen serviceconfig.xml

Indhold

Bemærk

Når der henvises til fil- og biblioteksplaceringer i dette dokument, er <installationsbibliotek> det bibliotek, hvor Agent Controller-pakken blev pakket ud. Dette bibliotek kaldes også %TPTP_AC_HOME% i konfigurationsfilerne.

Introduktion

Filen serviceconfig.xml læses af Agent Controller for at hente de indstillinger, der kan konfigureres af brugere. Den læses kun én gang ved opstart. Der er typisk begrænset adgang til ændring af filen, da ændringer påvirker alle brugere.

Filen serviceconfig.xml indeholder følgende segmenter:

Hvis miljøvariablen TPTP_AC_HOME er defineret, søger Agent Controller efter config/serviceconfig.xml i den sti, som er defineret af miljøvariablen, og ellers søger den i forhold til sin egen installationsplacering. Standardplaceringen for filen serviceconfig.xml er <installationsbibliotek>/config/serviceconfig.xml.

Alle Agent Controller-forekomster, der kører på det samme system, kræver en separat version af serviceconfig.xml med hver deres transportlagkonfiguration. 

Bemærk

Agenter læser også filen serviceconfig.xml for at hente oplysninger fra segmentet Connection, der sætter en agent i stand til at kommunikere med en bestemt Agent Controller.  

Agenter læser deres tilhørende kommandolinje for at fastslå den alternative placering, hvor filen serviceconfig.xml findes. Det foruddefinerede parameternavn til angivelse af placeringen er -serviceconfig efterfulgt af konfigurationsfilens stiplacering. Hvis ikke angivet i kommandolinjen, søger agenten efter serviceconfig.xml i de samme placeringer som beskrevet overfor for Agent Controller.

Agent Controller-konfiguration

Hierarkiet for de elementer, der er indeholdt i filen serviceconfig.xml, er vist nedenfor. Den viste rækkefølge for elementer på samme niveau er uden betydning. Der forventes kun én forekomst af hvert første niveau af elementer (f.eks. AgentControllerEnvironment, Logging, Agent, Plugin, ProcessController, Connection, ApplicationAliases, PeerConnectionTransport). Hyperlink i hierarkiet linker til den formelle elementbeskrivelse i afsnittet Elementer og attributter.

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

Elementer og attributter


Element:
AgentControllerConfiguration
Dette er rodelementet i Agent Controller-konfigurationen. Indstillingerne bruges af Agent Controller ved den indledende start. Der kan kun benyttes ét af hvert underelement.

Underelementer:     AgentControllerEnvironment
                            Logging
                            Agent
                            Plugin
                            ProcessController
                            Connection
                            ApplicationAliases
                            PeerConnectionTransport

Element: AgentControllerEnvironment
Definerer de globale miljøindstillinger for alle programmer og agenter, der startes via Agent Controller. Hvis dette element udelades, forbliver det overførte miljø identisk med miljøet for Agent Controller. De variabler, som defineres her, har ingen indflydelse på miljøindstillingerne for selve Agent Controller.

Bruges af: AgentControllerConfiguration

Underelementer: Variable

Element: Variable
Elementet Variable definerer en miljøvariabel og hvordan denne skal placeres i det eksisterende miljø for at danne standardmiljøet for alle de programmer og agenter, der startes. Der kan være flere (eller ingen) af disse elementer defineret for AgentControllerEnvironment.

Bruges af: AgentControllerEnvironment

Attributter:

name
Denne strengværdi angiver navnet på miljøvariablen.
value
Denne strengværdi angiver værdien for miljøvariablen.
position
Valgfrit. Denne strengværdi kan enten være "append", "prepend" eller "replace", og angiver, hvor miljøet skal placeres i forhold til standardmiljøet.

Element: Logging
Definerer problemniveauet for de oplysninger der skal logges, det format de skal logges i, og den placering de skal logges til. Hvis elementet udelades, bliver alle kritiske (critical) og alvorlige (servere) advarsler logget i CBE-format i det samme bibliotek, som Agent Controller kører i. Bemærk, at navnet på logfilen (tptpAgentCtrl.log) ikke kan konfigureres. Kun placeringen kan konfigureres.

Bruges af: AgentControllerConfiguration

Attributter:

level
Valgfrit. Denne strengværdi angiver problemniveau for de meddelelser, der skal logges. Hvert niveau omfatter niveauet selv og alle aktiviteter, der anses for mere alvorlige. Angiv et af følgende (niveau angivet fra lavt til højt problemniveau):
  • DEBUG - omfatter meddelelser, der giver detaljer på lavt niveau om det interne forløb af kodeafvikling for Agent Controller og agenter.
  • INFORMATION - omfatter aktiviteter, der er normale, men som kan være af interesse for brugeren af programmet.
  • WARNING - omfatter aktiviteter, der er uventede, men som ikke burde have indvirkning på programdriften.
  • CRITICAL - (standard) omfatter aktiviteter, der angiver, at den normale programdrift blev afbrudt af en fejl.
  • SEVERE - er begrænset til aktiviteter, der resulterer i afbrydelse af programmet.
format
Valgfrit. Denne strengværdi angiver det format, der skal bruges ved skrivning af meddelelser til logfilen. Angiv et af følgende:
  • CBE - (standard) meddelelserne skrives i formatet Common Base Event (omfatter detaljerede oplysninger om meddelelsens kontekst og oprindelse), der er egnet til behandling med en CBE-loglæser.
  • Simple - meddelelserne skrives med almindelig tekst.
directory

Valgfrit. Strengværdien angiver den placering, som logfilen skal oprettes i. Standarden er det bibliotek, som Agent Controller køres fra.

Element: Agent
Dette obligatoriske element angiver det bibliotek, hvor der for de agenter, der skal være kendt af Agent Controller, skal være placeret underbiblioteker, som identificerer agenten ved navn og indeholde en agent.xml-konfigurationsfil med oplysninger om, hvordan agenten skal startes og styres.

Bruges af: AgentControllerConfiguration

Attributter:

path
Denne strengværdi angiver den fuldstændige stiplacering af det bibliotek, hvor der skal søges efter agentkonfigurationer.

Element: Plugin
Dette element angiver biblioteket, hvor der evt. er placeret udvidelser til Agent Controller-konfigurationen. Udvidelserne er defineret i konfigurationsfilerne pluginconfig.xml. Underbibliotekerne under det angivne bibliotek kan også indeholde udvidelsesspecifikke eksekvérbare filer.

Bruges af: AgentControllerConfiguration

Attributter:

path
Denne strengværdi angiver den fuldstændige stiplacering af det bibliotek, hvor der skal søges efter udvidelser.
Element: ProcessController
Elementet ProcessController indeholder blot en værdi, der angiver stiplaceringen af en eksekvérbare fil, som skal startes af Agent Controller og derefter skal kaldes for at starte agenter og programmer. Agent Controller starter som standard agenten tptpProcessController(.exe), der er placeret i det samme bibliotek som selve Agent Controller. Den eksekvérbare fil skal registrere sig selv over for Agent Controller og være i stand til at behandle kommandosættet for den pågældende grænseflade. Da startoplysningerne begrænser sig til det stinavn, der er indeholdt her, er det ikke påkrævet for denne agent, at der som for andre agenter er angivet et underbibliotek i agentens bibliotek, og agenten kan heller ikke behandle kommandolinjeargumenter.

Bruges af: AgentControllerConfiguration

Element: Connection
Dette element er obligatorisk og skal som minimum indeholde et TransportLayer-element for at definere hver af følgende typer forbindelser, der bruges af Agent Controller: socket, named-pipe og fælles hukommelse (shared memory).

Bruges af: AgentControllerEnvironment

Underelementer: TransportLayer

Attributter:

name
Denne strengværdi giver navnet på forbindelseskonfigurationen.

Element: TransportLayer
Dette element definerer et transportlag, der er en plugin-baseret komponent i selve Agent Controller, som sørger for afsendelse og modtagelse af data mellem komponenterne i systemet via en mekanisme til kommunikation mellem interne processer.

Bruges af: Connection

Underelementer:  Configuration
                         CommandExtractor

Attributter:

loadlib
Denne strengværdi angiver navnet på det bibliotek, der skal indlæses i forbindelse med det pågældende transportlag, uden angivelse af suffiks. Dvs. du skal f.eks. ikke angive filtype .dll eller .so. Den normale systemstisøgning anvendes til fremfinding af biblioteket.
type
Denne strengværdi angiver transportlagets specifikke identitet. De mulige værdier er: TPTP_SOCKET, TPTP_NAMEDPIPE, TPTP_SHAREDMEM, TPTP_CCTL og TPTP_ACTL.  Særligt tilpassede transportlag skal bruge andre id'er end de angivne. Værdierne TPTP_CCTL og TPTP_ACTL er tilpassede transportlag, der vha. de oprindelige Agent Controller-grænseflader giver kompatibilitet bagud for klienter og agenter.

Element: Configuration
Elementet Configuration indeholder et underelement, der angiver mekanismen til kommunikation mellem interne processer for hvert TransportLayer. De tilgængelige kommunikationsmekanismer er i denne forbindelse socket, named-pipe, shared memory og CCTL. Der findes ingen konfigurationselementer til transportlaget ACTL. Der kan være andre konfigurationselementer til eventuelt tilpassede transportlag, som er specifikke for disse.

Bruges af: TransportLayer

Underelementer:     Port (kun sammen med socketTL og CCTL)
                            PipeName (kun sammen med namedPipeTL)
                            MemName (kun sammen med sharedMemTL)
                            SecuredPort (kun sammen med CCTL)
                            FilePort (kun sammen med CCTL)
                            IsDataMultiplexed (kun sammen med CCTL)
                            ProcessPolling (kun sammen med CCTL)
                            Jvm (kun sammen med CCTL)
                            Version (kun sammen med CCTL)
                            SecurityEnabled (kun sammen med CCTL)
                            UserDefinition (kun sammen med CCTL, og kun hvis der er aktiveret sikkerhed)
                            Keystore (kun sammen med CCTL, og kun hvis der er aktiveret sikkerhed)
                            KeystorePassword (kun sammen med CCTL, og kun hvis der er aktiveret sikkerhed)
                            Hosts (kun sammen med CCTL)

Element: Port
Elementet Port angiver den port, der skal bruges til socket-kommunikation. Elementet Port er kun gyldigt, hvis det bruges sammen med transportlagene TPTP_SOCKET og TPTP_CCTL. Heltalsværdierne i elementet angiver det faktiske portnummer, der skal anvendes for at oprette socket-forbindelsen.

Bruges af: Configuration

Element: PipeName
Elementet PipeName angiver, at transportlaget gælder kommunikation med named-pipe. Elementet PipeName er kun gyldigt, hvis det bruges sammen med namedPipeTL loadlib. Strengværdien i elementet angiver navnet på den "pipe", der skal benyttes til at oprette forbindelsen.

Bruges af: Configuration

Element: MemName
Elementet MemName angiver, at transportlaget gælder kommunikation med fælles hukommelse (shared memory). Elementet MemName er kun gyldigt, hvis det bruges sammen med sharedMemTL loadlib. Strengværdien i elementet angiver navnet på den ressource for fælles hukommelse, der skal benyttes til at oprette forbindelsen.

Bruges af: Configuration
 

Element: SecuredPort
Elementet SecuredPort angiver den port, der skal bruges til Secure Socket-kommunikation. Elementet SecuredPort er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL. Heltalsværdierne i elementet angiver det faktiske portnummer, der skal anvendes for at oprette Secure Socket-forbindelsen.

Bruges af: Configuration

Element: FilePort
Elementet FilePort angiver det transportslag, der skal bruges til Socket-kommunikation ved filoverførsel. Elementet FilePort er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL. Heltalsværdierne i elementet angiver det faktiske portnummer, der skal anvendes for at oprette Socket-forbindelsen.

Bruges af: Configuration

Element: IsDataMultiplexed
Elementet IsDataMultiplexed angiver, om profilering og logning af data skal overføres over kontrolkanalen i Agent Controller. Som standard bruger datakanalen en vilkårlig port til dataoverførsel, og den kan blive blokeret, hvis der findes en firewall. Hvis data overføres over kontrolkanalen, bliver det muligt for et sæt foruddefinerede porte at blive åbnet for indgående forbindelsesanmodninger gennem en firewall. Disse porte inkluderer standardport 10002, sikkerhedsport 10003 og filserverport 10005. Elementet antager som standard den booleske værdi "FALSE". Elementet IsDataMultiplexed er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: ProcessPolling
Elementet ProcessPolling angiver, om aktiv kontrol af processtatus aktiveres eller ej. Denne attribut bruges til at sikre, at Agent Controller registrerer, når en proces er afsluttet. Elementet antager som standard den booleske værdi "TRUE". Elementet ProcessPolling er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: Jvm
Elementet Jvm angiver den fuldstændig sti til det dynamiske Java Virtual Machine-runtimebibliotek (jvm.dll eller libjvm.so), som skal bruges af filoverførselsfunktionen og af komponenter for sikker forbindelse. Elementet Jvm er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: Version
Elementet Version beskriver det versionsnummer for Agent Controller, der skal videregives til andre komponenter. Elementet Version er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: SecurityEnabled
Elementet SecurityEnabled angiver, om klienter skal benytte en sikker port, når de opretter forbindelse til det pågældende transportlag. Hvis der er aktiveret sikkerhed og en klient forsøger at oprette forbindelse til en ikke-sikret port, vil klienten få opgivet adressen på den sikre port, og ellers vil forbindelsesforsøget blive afvist. Elementet antager som standard den booleske værdi "FALSE". Elementet SecurityEnabled er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: UserDefinition
Elementet UserDefinition beskriver, hvilke brugere der kan få lov til at oprette forbindelse til det pågældende transportlag. Hvis elementet sættes til "ANY", kan alle brugere oprette forbindelse, sålænge de er blevet valideret af styresystemet. Elementet er påkrævet, hvis der er aktiveret sikkerhed. Til elementet bruges en strengværdi bestående af en kommasepareret liste med brugernavne. Elementet UserDefinition er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: Keystore
Elementet Keystore angiver placeringen af den kodeordsbeskyttede database (keystore) til sikre forbindelser. Elementet er påkrævet, hvis der er aktiveret sikkerhed. Elementet Keystore er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: KeystorePassword
Elementet KeystorePassword fastsætter det kodeord, det skal bruges sammen med den kodeordsbeskyttede database (keystore) til sikre forbindelser. Elementet er påkrævet, hvis der er aktiveret sikkerhed. Elementet KeystorePassword er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: Hosts
Elementet Hosts bruges til at bestemme, hvilke værter der har lov til at oprette forbindelse gennem transportlaget. Elementet består af et eller flere Allow- eller Deny-elementer. Elementet Hosts er kun gyldigt, hvis det bruges sammen med transportlaget TPTP_CCTL.

Bruges af: Configuration

Element: Allow
Elementet Allow angiver en vært, der har lov til at oprette forbindelse til Agent Controller gennem det pågældende transportlag.

Bruges af: Hosts

Attributter:

host
Strengen angiver værtens navn eller IP-adresse. Værdien "ALL" angiver, at transportlaget tillader forbindelser fra alle værter. Værdien "LOCAL" angiver, at forbindelser skal tillades fra lokale processer.
net
Denne attribut angiver et undernet, hvorfra der tillades forbindelser.
mask
Denne attribut angiver en undernetmaske, som skal benyttes til at tillade forbindelser.

Element: Deny
Elementet Deny angiver en vært, der ikke har lov til at oprette forbindelse til Agent Controller gennem det pågældende transportlag.

Bruges af: Hosts

Attributter:

host
Strengen angiver navn eller IP-adresse på den vært, der skal nægtes adgang.
net
Denne attribut angiver et undernet, hvorfra der ikke tillades forbindelser.
mask
Denne attribut angiver en undernetmaske, som skal benyttes til at nægte forbindelser.

Element: CommandExtractor
Dette element definerer et Extractor-program, der er en plugin-komponent i et transportlag, som udtrækker kommandoer fra kommunikationsstrømmen mellem interne processer. Elementets strengværdi angiver navnet på det bibliotek, der skal indlæses, uden angivelse af suffiks (dvs. undlad at bruge .dll eller .so) eller præfiks (f.eks. "lib" for Linux). Den normale systemstisøgning anvendes til fremfinding af biblioteket.

Bruges af: TransportLayer
 

Element: ApplicationAliases
Elementet ApplicationAliases er en valgfri liste over definitioner på programaliaser.

Bruges af: AgentControllerConfiguration

Underelementer: Application

Attributter:

launchAliasesOnly
Valgfrit. Denne strengattribut er enten "true" eller "false" (standard). Hvis den sættes til "true", er det kun de programmer, som er defineret i elementet, der vil blive startet. Hvis attributten sættes til "false", eller den udelades, kan alle programmer startes.

Element: Application
Elementet Application definerer aliasnavn og startoplysninger for et program.

Bruges af: ApplicationAliases

Underelementer: Variable
Parameter

Attributter:

executable
Denne strengværdi angiver aliasnavnet for programmets eksekvérbare fil, der er angivet i stiattributten.
location
Valgfrit. Denne strengværdi angiver biblioteket, hvorfra den eksekvérbare fil skal startes. Ved kørslen kaldes biblioteket sommetider for den eksekvérbare fils arbejdsbibliotek.
path
Denne strengværdi angiver den fuldstændige stiplacering for det program, der skal startes. Denne bruges i stedet for aliaset, når programmets eksekvérbare program skal startes.

Element: Variable
Elementet Variable definerer en miljøvariabel og hvordan denne skal placeres i det eksisterende miljø, når programmet skal startes. Der kan være flere (eller ingen) af disse elementer defineret for et Application-element.

Bruges af: Application

Attributter:

name
Denne strengværdi angiver navnet på miljøvariablen.
value
Denne strengværdi angiver værdien for miljøvariablen.
position
Valgfrit. Denne strengværdi kan enten være >"append", "prepend" eller "replace", og angiver, hvor miljøet skal placeres i forhold til standardmiljøet.

Element: Parameter
Elementet Parameter definerer et kommandolinjeargument, der skal overføres til programmet, når dette startes. Der kan være flere (eller ingen) af disse elementer defineret for et Application-element.

Bruges af: Application

Attributter:

value
Denne strengværdi angiver et kommandolinjeargument.
position
Valgfrit. Denne strengværdi kan enten være "append", "prepend" eller "replace" og angiver, hvor argumentet skal placeres i forhold til de eksisterende kommandolinjeargumenter.

Element: PeerConnectionTransport
Dette påkrævede element angiver, hvilket transportlag der skal bruges til oprette forbindelser mellem den Agent Controller, der læser denne konfiguration, og sidestillede Agent Controller-forekomster. Værdien i elementet skal matche typenavnet på en et bestemt transportlag, som er erklæret i konfigurationsfilens Connection-afsnit, f.eks. TPTP_CCTL.

Bruges af: AgentControllerConfiguration


Eksempel - Filen serviceconfig.xml

Her vises et eksempel på en Agent Controller-konfigurationsfil:

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