AgE 2.4 : CharakterystykaMechanizmuKonfiguracji

Charakterystyka mechanizmu konfiguracji

Ze względu na różnorodność struktur agentów i ich konfiguracji wykorzystywanych w platformie jAgE, konieczne było stworzenie elastycznego mechanizmu, który pozwalałby w prosty sposób tworzyć konfiguracje obliczeń na podstawie dostępnych elementów.

 Komponenty w platformie jAgE

Elementy z których można składać obliczenie muszą posiadać własny interfejs, który definiuje ich zachowanie - operacje jakie można na nim wykonać - oraz zależności od innych elementów, które są potrzebne do ich poprawnego działania (np. element bazujący na losowych zdarzeniach potrzebuje generator liczb losowych). Elementy są reużytkowlnymi jednostkami, które mogą być wykorzystywane w wielu różnych konfiguracjach obliczeń. Zgodnie z definicją C. Szyperskiego 1, można je nazwać komponentami. Więcej o postaci komponentów w platformie jAgE na stronie Postać klas opisujących komponenty.

 Proces konfiguracji

Poniższy rysunek przedstawia schemat procesu konfiguracji. Do poprawnej konfiguracji obliczenia wymagane są dwa elementy:

  1. Konfiguracja opisująca  zależności pomiędzy konkretnymi instancjami komponentów (np. komponent A posiada referencję do komponentu B w polu A.a) oraz zawierająca informacje o parametrach pojedynczych komponentów (np. adres). Domyślnie konfiguracja przechowywana jest w pliku XMLowym, możliwe jest też stworzenie jej poprzez interfejs graficzny.
  2. Klasy komponentów, które wykorzystane są w konfiguracji.

Proces konfiguracji składa się z następujących kroków:

  1. Wczytanie konfiguracji z zewnętrznego źródła i konwersja do Obiektowego Modelu Konfiguracji (Object Configuration Model - OCM), który zawiera informacje o zależnościach pomiędzy komponentami oraz parametry pojedynczych komponentów. Wiecej na stronie OCM.
  2. Dostarczenie na żądanie systemu gotowych obiektów, które są w pełni zainicjalizowane. Za dostarczenie obiektów odpowiedzialny jest tzw. Kontener IoC, który na podstawie OCM oraz dostępnych klas komponentów inicjalizuje żądane obiekty. W platformie jAgE został wykorzystany PicoContainer (http://www.picocontainer.org) - open-source'owa implementacja kontenera IoC. Więcej na temat działania konterara IoC oraz na stronie Wstrzykiwanie zależności.

1 "Komponentem nazywamy: niezależną jednostkę kompozycji, podjegającą składaniu przez osoby trzecie (niekoniecznie przez autorów komponentów), nie posiadającą trwałego stanu", Szyperski C.: Component Software. Beyond Object-Oriented Programming. Adison-Wesley Professional, 2007,

Attachments: