Plik agent.xml

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.

Wprowadzenie

Plik konfiguracyjny uruchamiania agenta (agent.xml) zawiera statyczne informacje wymagane przez komponent Agent Controller do uruchamiania agenta i zarządzania nim. Informacje zawarte w pliku to między innymi:

Plik agent.xml musi się znajdować w obrębie katalogu o nazwie odpowiadającej samemu agentowi.  Katalog o nazwie agenta musi się znajdować w katalogu wskazanym przez element Agent w pliku serviceconfig.xml. Na przykład w przypadku agenta o nazwie org.eclipse.tptp.TimeCollector, plik konfiguracyjny znajdowałby się w katalogu <install-home>/agents/org.eclipse.tptp.TimeCollector/agent.xml. Komponent Agent Controller wykorzystuje nazwę katalogu do identyfikacji agentów żądanych z nazwy. Informacje zawarte w pliku konfiguracyjnym agent.xml stanowią metadane agenta.

Komponent Agent Controller wczytuje pliki agent.xml wszystkich agentów tylko raz, w chwili uruchomienia.  Stąd też w przypadku modyfikacji zawartości tych plików lub dodania nowych katalogów agentów wymagane jest zrestartowanie komponentu Agent Controller w celu zastosowania zmian.

Elementy i atrybuty

Element: Agent
Jest to element główny pliku konfiguracyjnego agenta. Zawiera on definicje metadanych agenta. Obiekty mogą zgłaszać żądania metadanych agenta, a następnie korzystać z nich stosownie do potrzeb. Niżej wymienione podelementy są wykorzystywane przez komponent Agent Controller do uruchamiania agenta i zarządzania nim.  Programiści agentów mogą definiować nowe podelementy, jeśli zaistnieje potrzeba zwracania dodatkowych informacji jako metadanych.  Metadane pomagają klientom podejmować w czasie wykonywania decyzje dotyczące wyboru agenta do konkretnego zadania.

Podelementy:     Interface
                            SingleInstance
                            Bound
                            MaxControllers
                            MaxObservers
                            ConfigFile
                            LaunchConfiguration

Atrybuty:

Name
Łańcuch określający unikalną nazwę agenta. Zaleca się, aby była to ta sama nazwa, co nazwa podawana przez agenta na etapie rejestracji w komponencie Agent Controller. Jeśli nazwy te są różne, to żądania uruchomienia agenta przekazywane przez nazwę będą dawać różne wyniki w zależności od tego, czy agent jest już uruchomiony, czy nie.

Element:Interface
Łańcuch stanowiący wartość tego elementu określa nazwę interfejsu obsługiwanego przez agenta. Element Agent może zawierać zero lub więcej elementów Interface.  Interfejs stanowi unikalną nazwę zestawu komend obsługiwanych przez danego agenta.

Używany przez:       Agent

Element:SingleInstance
Wartością tego elementu jest liczba całkowita 0 lub 1.  Wartość 0 (fałsz) oznacza, że możliwe jest współbieżne wykonywanie wielu instancji danego agenta. Wartość 1 (prawda) oznacza, że w dowolnej chwili może być wykonywana tylko jedna instancja danego agenta.  Jeśli ustawiona jest wartość 1 i jedna instancja agenta już jest uruchomiona, komponent Agent Controller będzie odrzucał żądania tworzenia nowych instancji.

Używany przez:       Agent

Element: Bound
Wartością tego elementu jest liczba całkowita 0 lub 1.  Wartość 0 (fałsz) oznacza, że dany agent nie jest przypisany do aplikacji. Wartość 1 (prawda) oznacza, że agent jest przypisany do aplikacji.  Agent przypisany do aplikacji może być uruchamiany wyłącznie przez tę konkretną aplikację, co oznacza, że komponent Agent Controller odmówi uruchomienia agenta, którego element Bound ma wartość 1.

Używany przez:       Agent

Element: MaxControllers
Możliwe wartości elementu to liczby całkowite -1, 0 lub liczba dodatnia. Wartość -1 oznacza "brak ograniczeń". Jeśli wartość jest dodatnia, to komponent Agent Controller będzie odrzucać żądania nadania praw kontrolera danego agenta, gdy liczba żądań przekroczy tę wartość.  Uprawnienia kontrolera są definiowane przez programistę agenta. Zakładanym przeznaczeniem tego elementu jest ograniczanie liczby obiektów, które mogą żądać działań potencjalnie prowadzących do konfliktu, na przykład rozpoczynania i zatrzymywania gromadzenia danych.

Używany przez:       Agent

Element: MaxObservers
Możliwe wartości elementu to liczby całkowite -1, 0 lub liczba dodatnia. Wartość -1 oznacza "brak ograniczeń". Jeśli wartość jest dodatnia, komponent Agent Controller będzie odrzucać żądania nadania praw obserwatora danego agenta, gdy liczba żądań przekroczy tę wartość.  Uprawnienia obserwatora są definiowane przez programistę agenta. Zakładanym przeznaczeniem tego elementu jest ograniczanie liczby elementów, które mogą żądać działań związanych z pobieraniem informacji, jak chociażby dostarczanie danych statycznych lub aktualnie gromadzonych (na przykład na żądanie kontrolera).

Używany przez:       Agent

Element: ConfigFile
Łańcuch stanowiący wartość tego elementu określa pełną ścieżkę i nazwę dodatkowego pliku konfiguracyjnego, zawierającego dostępne dla agenta dynamiczne dane konfiguracyjne.  Jest to plik opcjonalny, a jego przeznaczenie i zawartość definiuje programista agenta. Zakładanym przeznaczeniem pliku jest umożliwienie agentowi pobierania własnych informacji konfiguracyjnych, czy to podczas uruchamiania, czy na innych etapach działania.

Używany przez:       Agent

Element: LaunchConfiguration
Określa parametry konfiguracyjne uruchamiania danego agenta.

Używany przez:       Agent
                   
Podelementy:     launchInfo
 

Element: launchInfo
Hermetyzuje informacje używane podczas uruchamiania pliku wykonywalnego.

Używany przez:       LaunchConfiguration

Podelementy:     Application

Element: Application
Element Application określa informacje używane podczas uruchamiania aplikacji.  Wartością atrybutu executable może być alias określający aplikację (patrz element ApplicationAliases w pliku serviceconfig.xml) lub ścieżka do pliku wykonywalnego aplikacji.  Wartość atrybutu jest w pierwszej kolejności dopasowywana do listy aliasów pobranej przez komponent Agent Controller z pliku serviceconfig.xml w chwili uruchomienia.  Jeśli żadna z pozycji nie zostanie dopasowana, używane są informacje dotyczące uruchamiania już zawarte w elemencie Application.  W przypadku znalezienia pasującej pozycji łączone są informacje dotyczące uruchomienia pobrane z dopasowanego aliasu i zdefiniowane w elemencie aplikacji, zgodnie z poniższym opisem.

Używany przez:       LaunchConfiguration
                   
Podelementy:     Variable
                            Parametr                          

Atrybuty:

executable

Łańcuch określający nazwę aplikacji, która ma być uruchomiona. Może to być alias lub ścieżka do pliku wykonywalnego. Jeśli wartość jest aliasem, to jako nazwa pliku wykonywalnego zostanie użyta ścieżka określona przez dany alias.

location

(opcjonalny) Łańcuch określający katalog, z którego ma być uruchomiony plik wykonywalny, zwany też katalogiem roboczym wykonywanego programu. Jeśli atrybut zostanie pominięty, a wartość atrybutu executable nie odpowiada żadnemu aliasowi, to aplikacja zostanie wykonana z katalogu macierzystego komponentu Agent Controller. Jeśli atrybut zostanie pominięty, a wartość atrybutu executable odpowiada istniejącemu aliasowi, to zostanie wykorzystane położenie określone dla aliasu.

Element: Variable
Element Variable określa zmienną środowiskową i jej miejsce w istniejącym środowisku.  Jeśli zostanie on umieszczony w obrębie elementu Application, to modyfikuje środowisko używane do uruchomienia danej aplikacji.  W każdym elemencie Application może występować zero lub więcej elementów Variable.Jeśli wartością atrybutu executable bieżącej aplikacji jest alias, to ustawienia zmiennych środowiskowych aliasu są stosowane do środowiska domyślnego, po czym są na nie nakładane wartości zmiennych środowiskowych zdefiniowane w elemencie Variable.

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 istniejącego środowiska. W przypadku pominięcia atrybutu, działaniem domyślnym jest dopisanie zmiennej na końcu.

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. Jeśli wartością atrybutu executable bieżącej aplikacji jest alias, to używane są argumenty wiersza komend aliasu, po czym są na nie nakładane argumenty wiersza komend zdefiniowane w elemencie Parameter.

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ę argumentu względem istniejących argumentów wiersza komend. Jeśli atrybut zostanie pominięty, argument jest dopisywany na końcu wiersza komend.

Przykładowy plik agent.xml

<Agent Name="org.eclipse.tptp.TimeCollector">
    <Interface>org.eclipse.tptp.agent</Interface>
    <Interface>org.eclipse.tptp.collector</Interface>
    <SingleInstance>0</SingleInstance>
    <Bound>0</Bound>
    <MaxControllers>-1</MaxControllers>
    <MaxObservers>-1</MaxObservers>
    <ConfigFile>c:\tptp\agents\org.eclipse.tptp.TimeCollector\config\agentconfig.xml</ConfigFile>
        <LaunchConfiguration>

            <launchInfo>
                <Application executable=".\TimeCollector.exe">

                    <Parameter value="-serviceconfig ..\config\serviceconfig.xml" />

                </Application>

            </launchInfo>
        </LaunchConfiguration>
</Agent>


Informacje pokrewne

Przegląd konfigurowania agentów i komponentu Agent Controller


Copyright (C) 2005, 2006 Intel Corporation.