Table of Contents

Plik konfiguracyjny programu ibmanager

Program ibmanager działa na podstawie pliku konfiguracyjnego. Plik jest typu xml.

Przykładowy plik konfiguracyjny

ibmanager.xml
<?xml version="1.0" encoding="UTF-8"?>
<Config xmlns="http://www.insbud.net/ibmanager" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.13" xsi:schemaLocation="http://www.insbud.net/ibmanager ibmanager.xsd">
 
   <!-- location coordinates -->
   <Location Latitude="52.069167" Longitude="19.480556" />
 
   <!-- installation identifications - optional elements -->
   <Application Name="Installation Name" Version="Version Number" Instance="Instance Name" />
 
   <License Path="/ibsystem/license/license.dat" SignaturePublicKeyPath="" />
 
    <IbGUI>
      <Projects>
        <Project Url="http://update.ibsystem.org/projects/installation-name-installation-version.xml"/>
      </Projects>
    </IbGUI>
 
   <IbProtocol TcpPort="3001" SecureConnection="false" WanHostName="s1a.ibsystem.org" WanTcpPort="520" />
 
   <Discovery QueryPort="2005" ResponsePort="2005" TimeoutSec="3" MaxSilenceSec="20" />
 
   <RemoteServers>
      <RemoteServer HostName="127.0.0.1" TcpPort="2001" TimeoutSec="20" SleepMS="100" Prefix="" SecureConnection="false" />
   </RemoteServers>
 
   <LogicLibDir Path="/ibsystem/ibmanager/logic" />
 
   <Storage DirPath="/ibsystem/ibmanager/storage" DumpPeriodHours="24" MaxDumps="10" />
 
   <Alerts Path="/ibsystem/ibmanager/alerts.xml" />
 
   <TrackedVariable Name="rs.0.id.255.input.t.0.value" />
 
   <!-- Levels: TraceLo, Trace, TraceHi, DebugLo, Debug, DebugHi, Info, Notice, Warning, Error, Critical -->
   <!-- Types: Console, File, None -->
   <Log Type="File" Level="Info" Params="/ibsystem/ibmanager/ibmanager.log" MaxLogFileSize="40000000" MaxLogArchives="20" />
 
   <Credentials Path="/ibsystem/ibmanager/credentials.xml" />
</Config>

Głównym elementem pliku konfiguracyjnego jest Config, posiadający między innymi atrybut Version, będący wersją pliku konfiguracyjnego. Właściwą wersją pliku konfiguracyjnego jest wersja 1.13 (dla programu ibmanager w wersji 3.7.4).

Jeżeli wersja ta nie będzie się zgadzała z numerem wersji aktualnie obsługiwanym przez program, wówczas zostanie zgłoszony błąd i program zakończy działanie. Błąd zostanie zgłoszony w terminalu, ponieważ parametry logów programu są zawarte w pliku konfiguracyjnym, który nie jest wspierany.

Pozostałe elementy pliku konfiguracyjnego zostały opisane w osobnych rozdziałach dokumentacji.

<Location>

<Location Latitude="52.069167" Longitude="19.480556" />

Element obowiązkowy definiująca szerokość oraz długość geograficzną miejsca, gdzie system pracuje. Zarówno długość jak i szerokość geograficzna są wartościami typu double.

Lokacja systemu umożliwia obliczanie np. wschodów i zachodów słońca przez logiki ibmanagera.

Element zawiera atrybuty:

<Application>

<Application Name="Installation Name" Version="Version Number" Instance="Instance Name" />

Element opcjonalny. Stanowi dane identyfikacyjne aplikacji. Pod pojęciem aplikacji rozumiane jest odpowiednio skonfigurowany i wyposażony w logiki program ibmanager np. dla oprogramowania instalacji zarządzanej. Może to być np.

Element zawiera atrybuty:

Teksty alertów zostały sformatowane w ten sposób, aby zawierały w sobie nazwę aplikacji (atrybut Name) oraz nazwę instancji aplikacji (atrybut Instance) w postaci: Name-Instance: tekst alertu. Jeżeli jeden z nich nie został podany, wówczas nagłówek alertu zostanie odpowiednio zredukowany oraz myślnik zostanie usunięty. W przypadku gdy żadna z tych wartości nie została podana, wtedy przedrostek wraz z dwukropkiem i spacją nie zostanie użyta w tekście alertu.

<License>

<License Path="/ibsystem/license/license.dat" SignaturePublicKeyPath="" />

Element obowiązkowy wskazuje na dostarczony plik licencji. Bez ważnego pliku licencji aplikacja nie uruchomi się.

Element zawiera atrybuty:

<IbGUI>

<IbGUI>
  <Projects>
    <Project Url="http://update.ibsystem.org/projects/installation-name-installation-version.xml"/>
  </Projects>
</IbGUI>

Element zawiera pogrupowane w elemencie Projects ścieżki URL do plików deskryptorów projektów ibgui.

Ścieżki te zostaną w wpisane do zmiennej ibmanager.ibgui.project.url i rozdzielone znakiem „|”.

Projekty te mogą zostać wyświetlone i pobrane ze strony wskazanej wewnątrz plików deskryptorów przez program ibgui.

<IbProtocol>

<IbProtocol TcpPort="3001" SecureConnection="false" WanHostName="s1a.ibsystem.org" WanTcpPort="520" />

Element IbProtocol opisuje parametry protokołu, przy pomocy którego, zewnętrzne programy mogą się komunikować z programem ibmanager.

Element zawiera atrybuty:

<Discovery>

<Discovery QueryPort="2005" ResponsePort="2005" TimeoutSec="3" MaxSilenceSec="20" />

Element Discovery jest opcjonalny. Jego definicja załącza mechanizm wykrywania programów IB-System w lokalnej sieci za pomocą mechanizmu boradcast warstwy transportowej UDP.

Mechanizm wykrywania discovery został użyty w programie ibmanager w charakterze serwera, w celu wykrywania przez inne programy IB-System (np. program ibgui).

Program ibmanager posiada zaimplementowanego klienta mechanizmu discovery – jest w stanie wykryć inne programy IB-System – funkcjonalność ta na chwilę obecną jest wyłączona.

Element zawiera atrybuty:

<RemoteServers>

<RemoteServers>
   <RemoteServer HostName="127.0.0.1" TcpPort="2001" TimeoutSec="20" SleepMS="100" Prefix="" SecureConnection="false" />
</RemoteServers>

Element RemoteServers jest odpowiedzialny za zdefiniowanie wszystkich zdalnych serwerów obsługujących ibprotocol, które są źródłem zmiennych sterujących. Mogą nimi być:

Zmienne tych programów są podstawowymi elementami dla bibliotek logik – które pobierają oraz uaktualniają ich wartości.

Element RemoteServer opisuje pojedynczą instancję zdalnego serwera i zawiera następujące obowiązkowe atrybuty:

Obsługa każdego zdalnego serwera rozpoczyna się od wydania komendy describe_all. Ma to na celu utworzenie zmiennych o odpowiednich typach, następnie wysyłane są komendy get_all przeplatane z komendami set – o ile nastąpiła modyfikacja wartości zmiennej należącej do danego serwera (np. przez logikę sterującą, program nadrzędny lub bezpośrednio przez użytkownika przez interfejs komunikacyjny).

<LogicLibDir>

<LogicLibDir Path="/ibsystem/ibmanager/logic" />

Element LogicLibDir jest opcjonalny. Jeżeli sekcja ta nie została zdefiniowana, wówczas program ibmanager nie będzie obsługiwał logik sterujących a jedynie będzie pełniła funkcję repeatera serwerów zmiennych (praca w trybie proxy).

Element zawiera atrybuty:

Jeżeli element LogicLibDir został zdefiniowany, wówczas program ibmanager podczas startu rozpocznie wczytywanie plików konfiguracyjnych logik typu xml umieszczonych w katalogu zdefiniowanym w atrybucie Path, po czym rozpocznie ładowanie logik z bibliotek dynamicznych (.dll/.so).

<Storage>

<Storage DirPath="/ibsystem/ibmanager/storage" DumpPeriodHours="24" MaxDumps="10" />

Element Storage jest obowiązkowy i jest odpowiedzialny za konfigurację mechanizmu lokalnego magazynu danych.

Element zawiera atrybuty:

<Alerts>

<Alerts Path="/ibsystem/ibmanager/alerts.xml" />

Element Alerts jest opcjonalny. Jeżeli został zdefiniowany wówczas program ibmanager wczytuje plik konfiguracyjny alertów z lokalizacji zdefiniowanej w atrybucie Path tego elementu. Jakiekolwiek niepowodzenie przy jego wczytywaniu zakończy pracę programu wraz z odpowiednim wpisem w logach. Jeżeli ten element nie została zdefiniowany, wówczas mechanizm alertów zostanie wyłączony a zgłaszanie żądania wysłania alertu przez działające logiki będą ignorowane.

<TrackedVariable>

<TrackedVariable Name="rs.0.id.255.input.t.0.value" />

Element TrackedVariable jest nie istotny dla użytkownika, jedynie dla programisty w celu wykrycia błędów w oprogramowaniu. Został on wprowadzony ze względu na złożoność obsługi zdalnych zmiennych. Jest to element opcjonalny i jego definicja powoduje odpowiednie wpisy w logach, które nie niosą żadnych informacji dla użytkownika.

<Log>

<Log Type="File" Level="Info" Params="/ibsystem/ibmanager/ibmanager.log" MaxLogFileSize="40000000" MaxLogArchives="20" />

Element odpowiedzialny za konfigurację systemu logowania programu ibmanager.

Element zawiera atrybuty:

W przykładowej definicji elementu <Log>, mechanizm rotacji logów zakłada istnienie do 20 plików archiwalnych. Zarówno archiwalne jak i bieżące będą mogły mieć rozmiar do ok. 40MB.

<Credentials>

<Credentials Path="/ibsystem/ibmanager/credentials.xml" />

Element opcjonalny. Jeżeli został zdefiniowany wówczas aplikacja załączy mechanizm autoryzacji po stronie interfejsu ibprotokołu.

Element zawiera atrybuty: