Spis treści
Uwaga
W występujących w tym dokumencie odwołaniach do położeń plików i katalogów, <install-home> jest katalogiem, do którego został wyodrębniony pakiet komponentu Agent Controller. W plikach konfiguracyjnych występują też odwołania do tego katalogu jako %TPTP_AC_HOME%.
Plik serviceconfig.xml jest odczytywany przez komponent Agent Controller w celu pobrania ustawień definiowanych przez użytkownika. Jest on wczytywany tylko raz, w chwili uruchomienia komponentu. Modyfikacje tego pliku są na ogół ograniczane do minimum, gdyż mają one wpływ na wszystkich użytkowników.
Plik serviceconfig.xml zawiera następujące segmenty:
Jeśli zdefiniowana jest zmienna środowiskowa TPTP_AC_HOME, komponent Agent Controller szuka pliku config/serviceconfig.xml w katalogu wskazanym przez wartość tej zmiennej, natomiast w przeciwnym razie szuka go we własnym katalogu instalacyjnym. Położeniem domyślnym pliku serviceconfig.xml jest katalog <install-home>/config/serviceconfig.xml.
Każda instancja komponentu Agent Controller uruchomiona w tym samym systemie wymaga własnej wersji pliku serviceconfig.xml, zawierającej różne konfiguracje warstwy transportowej.
Uwaga
Plik serviceconfig.xml jest też odczytywany przez agenty w celu pobierania z segmentu Connection informacji pozwalających agentowi komunikować się z konkretnym komponentem Agent Controller.
Agenty pobierają z wiersza komend informację o alternatywnym położeniu pliku serviceconfig.xml. Predefiniowaną nazwą opcji określającej położenie jest -serviceconfig; po opcji należy podać ścieżkę do pliku konfiguracyjnego. Jeśli ścieżka nie zostanie wskazana w wierszu komend, agent szuka pliku serviceconfig.xml w położeniach opisanych powyżej dla komponentu Agent Controller.
Poniżej przedstawiono hierarchię elementów pliku serviceconfig.xml. Kolejność elementów znajdujących się na tym samym poziomie hierarchii jest nieistotna. Każdy z elementów pierwszego poziomu (czyli AgentControllerEnvironment, Logging, Agent, Plugin, ProcessController, Connection, ApplicationAliases i PeerConnectionTransport) powinien występować tylko raz. Hiperłącza w obrębie hierarchii odsyłają do formalnych opisów poszczególnych elementów w sekcji Elementy i atrybuty.
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
Podelementy: AgentControllerEnvironment
Logging
Agent
Plugin
ProcessController
Connection
ApplicationAliases
PeerConnectionTransport
Element: AgentControllerEnvironment
Definiuje globalne ustawienia środowiska wszystkich aplikacji i agentów uruchamianych za pośrednictwem komponentu Agent Controller. Jeśli element zostanie pominięty, to przekazywane dalej środowisko będzie identyczne ze środowiskiem samego komponentu Agent Controller. Zmienne definiowane w obrębie tego elementu nie mają wpływu na ustawienia środowiska samego komponentu Agent Controller.
Używany przez: AgentControllerConfiguration
Podelementy: Variable
Element: Variable
Element Variable definiuje zmienną środowiskową i sposób jej połączenia z istniejącym środowiskiem w celu utworzenia środowiska dla wszystkich uruchamianych aplikacji i agentów. W elemencie AgentControllerEnvironment może występować zero lub więcej takich elementów.
Używany przez: AgentControllerEnvironment
Atrybuty:
- name
- Łańcuch określający nazwę zmiennej środowiskowej.
- value
- Łańcuch określający wartość zmiennej środowiskowej.
- position
- (opcjonalny) Łańcuch "append" (dopisz na końcu), "prepend" (dopisz na początku) lub "replace" (zastąp), określający pozycję zmiennej względem środowiska domyślnego.
Element: Logging
Określa poziom istotności, format i położenie docelowe informacji podlegających rejestrowaniu. Jeśli element ten zostanie pominięty, wszystkie ostrzeżenia o poziomie CRITICAL i SEVERE będą rejestrowane w formacie CBE w tym samym katalogu, w którym uruchomiony jest komponent Agent Controller. Co istotne, konfigurować można jedynie położenie pliku dziennika, nie zaś jego nazwę (tptpAgentCtrl.log).
Używany przez: AgentControllerConfiguration
Atrybuty:
- level
- (opcjonalny) Łańcuch określający poziom istotności komunikatów podlegających rejestrowaniu. Każdy kolejny poziom obejmuje zdarzenia na tym i wszystkich bardziej istotnych poziomach. Możliwe wartości poziomów to (w porządku rosnącej istotności):
DEBUG - obejmuje komunikaty dostarczające niskopoziomowe informacje dotyczące wewnętrznego przepływu wykonywania kodu komponentu Agent Controller i agentów.- INFORMATION - obejmuje zdarzenia związane z prawidłową pracą, ale potencjalnie interesujące dla użytkowników programu.
- WARNING - obejmuje zdarzenia nieoczekiwane, ale na ogół niewpływające na funkcjonowanie programu.
- CRITICAL - (wartość domyślna) obejmuje zdarzenia świadczące o zakłóceniu poprawnej pracy programu z powodu błędu.
- SEVERE - obejmuje jedynie zdarzenia powodujące zakończenie pracy programu.
- format
- (opcjonalny) Łańcuch określający format zapisu komunikatów do pliku dziennika. Określ jedno z następujących ustawień:
- CBE - (wartość domyślna) komunikaty będą zapisywane w formacie Common Base Event, obejmującym szczegółowe informacje dotyczące kontekstu i pochodzenia komunikatu i nadającym się do przetwarzania przez program narzędziowy do odczytywania dzienników CBE.
- Simple - komunikaty będą zapisywane w postaci zwykłego tekstu.
directory (opcjonalny) Łańcuch określający położenie, w którym zostanie utworzony plik dziennika. Domyślnie jest to katalog, z którego uruchamiany jest komponent Agent Controller.
Element: Agent
Element obowiązkowy określający katalog, w którym każdy z agentów znanych komponentowi Agent Controller umieści podkatalog o nazwie odpowiadającej temu agentowi i zawierający plik konfiguracyjny agent.xml opisujący ustawienia uruchamiania agenta i zarządzania nim.
Używany przez: AgentControllerConfiguration
Atrybuty:
- path
- Łańcuch określający pełną ścieżkę katalogu, w którym należy szukać danych konfiguracyjnych agentów.
Element: Plugin
Element określający katalog, w którym umieszczono rozszerzenia konfiguracji komponentu Agent Controller. Rozszerzenia są definiowane w plikach konfiguracyjnych pluginconfig.xml. Podkatalogi wskazanego katalogu mogą dodatkowo zawierać specyficzne dla rozszerzenia pliki wykonywalne.
Element: ProcessControllerUżywany przez: AgentControllerConfiguration
Atrybuty:
- path
- Łańcuch określający pełną ścieżkę katalogu, w którym należy szukać rozszerzeń.
Element: ConnectionUżywany przez: AgentControllerConfiguration
Używany przez: AgentControllerEnvironment
Podelementy: TransportLayer
Atrybuty:
- name
- Łańcuch określający nazwę konfiguracji połączenia.
Używany przez: Connection
Podelementy: Configuration
CommandExtractor
Atrybuty:
- loadlib
- Łańcuch określający nazwę biblioteki ładowanej w celu obsłużenia bieżącej warstwy transportowej, podaną bez rozszerzenia (czyli .dll lub .so). Podczas lokalizacji biblioteki używana jest standardowa ścieżka systemowa.
- type
- Łańcuch określający konkretny typ bieżącej warstwy transportowej. Możliwe wartości to: TPTP_SOCKET, TPTP_NAMEDPIPE, TPTP_SHAREDMEM, TPTP_CCTL i TPTP_ACTL. Niestandardowe warstwy transportowe będą korzystać z innych identyfikatorów. Wartości TPTP_CCTL i TPTP_ACTL odpowiadają niestandardowym warstwom transportowym zapewniającym kompatybilność wstecz w przypadku klientów i agentów korzystających z oryginalnych interfejsów komponentu Agent Controller.
Element: Configuration
Element Configuration zawiera podelement określający mechanizm komunikacji międzyprocesowej dla bieżącego elementu TransportLayer. Obsługiwane mechanizmy komunikacji to: gniazdo, potok nazwany, pamięć współużytkowana i CCTL. Warstwa transportowa ACTL nie ma żadnych elementów konfiguracyjnych. Niestandardowe elementy TransportLayer mogą zawierać własne, specyficzne elementy Configuration.
Używany przez: TransportLayer
Podelementy: Port (tylko socketTL i CCTL)
PipeName (tylko namedPipeTL)
MemName (tylko sharedMemTL)
SecuredPort (tylko CCTL)
FilePort (tylko CCTL)
IsDataMultiplexed (tylko CCTL)
ProcessPolling (tylko CCTL)
Jvm (tylko CCTL)
Version (tylko CCTL)
SecurityEnabled (tylko CCTL)
UserDefinition (tylko CCTL z włączonymi zabezpieczeniami)
Keystore (tylko CCTL z włączonymi zabezpieczeniami)
KeystorePassword (tylko CCTL z włączonymi zabezpieczeniami)
Hosts (tylko CCTL)
Element: Port
Element Port określa port używany do komunikacji z wykorzystaniem gniazd. Element Port może występować wyłącznie z warstwami transportowymi TPTP_SOCKET i TPTP_CCTL. Wartością elementu jest liczba całkowita określająca numer portu używanego do nawiązania połączenia wykorzystującego gniazda.
Używany przez: Configuration
Element: PipeName
Element PipeName sygnalizuje, że warstwa transportowa wykorzystuje komunikację za pośrednictwem potoków nazwanych. Element ten może występować wyłącznie wtedy, gdy wartością atrybutu loadlib jest namedPipeTL. Jego wartością jest łańcuch określający nazwę potoku używanego do nawiązywania połączenia.
Używany przez: Configuration
Element: MemName
Element MemName sygnalizuje, że warstwa transportowa wykorzystuje komunikację za pośrednictwem pamięci współużytkowanej. Element ten może występować wyłącznie wtedy, gdy wartością atrybutu loadlib jest sharedMemTL. Wartością elementu jest łańcuch określający nazwę zasobu pamięci współużytkowanej używanego do nawiązywania połączenia.
Używany przez: Configuration
Element: SecuredPort
Element SecuredPort określa port używany do bezpiecznej komunikacji z wykorzystaniem gniazd. Element SecuredPort może występować wyłącznie z warstwą transportową TPTP_CCTL. Wartością elementu jest liczba całkowita określająca numer portu używanego do nawiązania bezpiecznego połączenia wykorzystującego gniazda.
Używany przez: Configuration
Element: FilePort
Element FilePort określa warstwę transportową używaną przez usługę przesyłania plików do komunikacji z wykorzystaniem gniazd. Element FilePort może występować wyłącznie z warstwą transportową TPTP_CCTL. Wartością elementu jest liczba całkowita określająca numer portu używanego do nawiązania połączenia wykorzystującego gniazda.
Używany przez: Configuration
Element: IsDataMultiplexed
Element IsDataMultiplexed określa, czy dane profilowania i rejestrowania mają być przesyłane kanałem sterującym komponentu Agent Controller. Kanał sterowania może domyślnie używać dowolnego portu do transmisji danych, co wiąże się z możliwością zablokowania go przez firewall. Przesyłanie danych przez kanał sterowania pozwala przepuszczać przez firewall żądania połączeń przychodzące na porty z predefiniowanego zestawu. Zestaw ten obejmuje domyślny port 10002, zabezpieczony port 10003 i port serwera plików 10005. Element przyjmuje wartość boolowską, domyślnie równą "FALSE". Element IsDataMultiplexed może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: ProcessPolling
Element ProcessPolling określa, czy aktywne sprawdzanie statusu procesu jest włączone. Atrybut ten jest używany do zapewnienia wykrywania zakończenia procesu przez komponent Agent Controller. Element przyjmuje wartość boolowską, domyślnie równą "TRUE". Element ProcessPolling może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: Jvm
Element Jvm określa pełną ścieżkę do dynamicznej biblioteki wykonawczej wirtualnej maszyny języka Java (jvm.dll lub libjvm.so) używanej przez komponenty przesyłania plików i bezpiecznych połączeń. Element Jvm może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: Version
Element Version opisuje numer wersji komponentu Agent Controller zgłaszany innym komponentom. Element Version może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: SecurityEnabled
Element SecurityEnabled określa, czy klienty łączące się z bieżącą warstwą transportową muszą korzystać z bezpiecznego portu. Jeśli zabezpieczenia są włączone, a klient podejmie próbę nawiązania połączenia na porcie niezabezpieczonym, klientowi zostanie przekazany adres portu bezpiecznego i połączenie zostanie odrzucone. Element przyjmuje wartość boolowską, domyślnie równą "FALSE". Element SecurityEnabled może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: UserDefinition
Element UserDefinition określa użytkowników uprawnionych do łączenia się z bieżącą warstwą transportową. Jeśli wartością elementu jest "ANY", do połączenia są uprawnieni wszyscy użytkownicy uwierzytelnieni w systemie operacyjnym. Element jest wymagany w przypadku włączonych zabezpieczeń. Wartością elementu jest łańcuch zawierający nazwy użytkowników oddzielane przecinkami. Element UserDefinition może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: Keystore
Element Keystore określa położenie pliku kluczy używanego przy bezpiecznych połączeniach. Element jest wymagany w przypadku włączonych zabezpieczeń. Element Keystore może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: KeystorePassword
Element KeystorePassword określa hasło do pliku kluczy używanego do bezpiecznych połączeń. Element jest wymagany w przypadku włączonych zabezpieczeń. Element KeystorePassword może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: Hosts
Element Hosts określa hosty, które mogą się łączyć z wykorzystaniem danej warstwy transportowej. Element zawiera jeden lub więcej elementów Allow lub Deny. Element Hosts może występować wyłącznie z warstwą transportową TPTP_CCTL.
Używany przez: Configuration
Element: Allow
Element Allow opisuje hosta dopuszczonego do łączenia się z komponentem Agent Controller za pośrednictwem danej warstwy transportowej.
Używany przez: Hosts
Atrybuty:
- host
- Łańcuch zawierający nazwę lub adres IP hosta. Wartość "ALL" oznacza, że warstwa transportowa może przyjmować połączenia od dowolnych hostów. Wartość "LOCAL" oznacza, że powinny być akceptowane wyłącznie połączenia od procesów lokalnych.
- net
- Atrybut wskazujący podsieć, z które połączenia mają być akceptowane.
- mask
- Atrybut definiujący maskę podsieci używaną podczas akceptowania połączeń.
Element: Deny
Element Deny opisuje hosta niedopuszczonego do łączenia się z komponentem Agent Controller za pośrednictwem danej warstwy transportowej.
Używany przez: Hosts
Atrybuty:
- host
- Łańcuch zawierający nazwę lub adres IP odrzucanego hosta.
- net
- Atrybut wskazujący podsieć, z które połączenia mają być odrzucane.
- mask
- Atrybut definiujący maskę podsieci używaną podczas odrzucania połączeń.
Element: CommandExtractor
Element ten definiuje ekstraktor komend — dołączany na zasadzie wtyczki komponent warstwy transportowej odpowiedzialny za wyodrębnianie komend ze strumienia komunikacji międzyprocesowej. Wartością elementu jest łańcuch określający nazwę ładowanej biblioteki, podaną bez rozszerzenia (.dll lub .so) i ewentualnego przedrostka ("lib" w przypadku systemu Linux). Podczas lokalizacji biblioteki używana jest standardowa ścieżka systemowa.
Używany przez: TransportLayer
Element: ApplicationAliases
Element ApplicationAliases stanowi opcjonalną listę definicji aliasów aplikacji.
Używany przez: AgentControllerConfiguration
Podelementy: Application
Atrybuty:
- launchAliasesOnly
- (opcjonalny) Łańcuch "true" (prawda) lub "false" (fałsz — wartość domyślna). Wartość "true" oznacza, że będą uruchamiane wyłącznie aplikacje zdefiniowane w obrębie tego elementu. Wartość "false" lub brak tego atrybutu oznacza, że możliwe jest uruchomienie dowolnej aplikacji.
Element: Application
Element Application określa alias i informacje uruchomieniowe aplikacji.
Używany przez: ApplicationAliases
Podelementy: Variable
Parameter
Atrybuty:
- executable
- Łańcuch określający alias pliku wykonywalnego aplikacji wskazanego przez atrybut path.
- location
- (opcjonalny) Łańcuch określający katalog, z którego ma być uruchomiony plik wykonywalny, zwany też katalogiem roboczym wykonywanego programu.
- path
- Łańcuch określający pełną ścieżkę do uruchamianej aplikacji. Podczas wykonywania aplikacji ścieżka ta jest używana zamiast aliasu.
Element: Variable
Element Variable definiuje zmienną środowiskową i sposób jej połączenia z istniejącym środowiskiem podczas uruchamiania aplikacji. W każdym elemencie Application może występować zero lub więcej takich elementów.
Używany przez: Application
Atrybuty:
- name
- Łańcuch określający nazwę zmiennej środowiskowej.
- value
- Łańcuch określający wartość zmiennej środowiskowej.
- position
- (opcjonalny) Łańcuch >"append" (dopisz na końcu), "prepend" (dopisz na początku) lub "replace" (zastąp), określający pozycję zmiennej względem środowiska domyślnego.
Element: Parameter
Element Parameter określa argument wiersza komend przekazywany aplikacji w momencie jej uruchomienia. W każdym elemencie Application może występować zero lub więcej takich elementów.
Używany przez: Application
Atrybuty:
- value
- Łańcuch określający argument wiersza komend.
- position
- (opcjonalny) Łańcuch "append" (dopisz na końcu), "prepend" (dopisz na początku) lub "replace" (zastąp), określający pozycję zmiennej względem środowiska domyślnego.
Element: PeerConnectionTransport
Element wymagany wskazujący warstwę transportową używaną do nawiązywania połączeń między komponentem Agent Controller odczytującym bieżącą konfigurację i innymi instancjami komponentu Agent Controller. Wartość tego elementu musi odpowiadać konkretnemu typowi warstwy transportowej zdefiniowanemu w elemencie TransportLayer w sekcji Connection pliku konfiguracyjnego (np. TPTP_CCTL).
Używany przez: AgentControllerConfiguration
Oto zawartość przykładowego pliku konfiguracyjnego komponentu 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.