Obiektowy model konfiguracji
Obiektowy model konfiguracji definiuje komponenty oraz zależności pomiędzy nimi. Opis ten wykorzystywany jest w lokalnym środowisku obliczeniowym do instancjonowania i inicjalizacji komponentów przez kontener IoC. Model może opisywać komponenty, których instancje są obiektami lub kolekcjami obiektów .
Każda definicja komponentu zawiera:
- typ komponentu, będący klasą opisującą dany komponent,
- nazwę komponentu, stanowiącą identyfikator służący do wyszukiwania komponentu w kontenerze,
- flagę określającą czy dany komponent będzie reprezentowany jako obiekt o zasięgu prototype albo singleton,
oraz opcjonalnie może posiadać:
- opis zależności od innych komponentów,
- parametry konstruktora, wykorzystywane podczas inicjalizacji komponentu,
- wartości parametrów prostych, ustawiane podczas inicjalizacji komponentu.
Zależności w obiektowym modelu konfiguracji definiowane są zawsze za pomocą identyfikatorów komponentów podanych podczas rejestracji w kontenerze IoC. Ponadto, definicje mogą zawierać wewnętrzne definicje, tworząc tym samym drzewiastą strukturę. Zaleca się, aby struktura ta odpowiadała strukturze agentów potrzebnych do wykonania danego obliczenia. Rozwiązanie to wykorzystywane jest przez kontener do przesłaniania implementacji oraz zwiększa przejrzystość konfiguracji.
Obiektowy model konfiguracji posiada wbudowane wsparcie dla reprezentowania kolekcji obiektów. Zawierają one dedykowane metody, które nie tylko instancjonują kolekcje, ale również automatycznie wypełniają je zdefiniowanymi obiektami.Obecnie wspierane są następujące rodzaje kolekcji: listy, zbiory oraz mapy.
Sposób reprezentacji konfiguracji (niezależny od formatu zewnętrznego) pozwala na dodawanie nowych definicji komponentów już po wczytaniu pierwotnej konfiguracji podczas uruchamiania systemu. Możliwe jest zatem ładowanie konfiguracji na żądanie lub przesyłanie jej przez sieć do innych węzłów.