Deprecation warning
This is documentation for version 2.4 of the platform. It does not reflect the real behavior of the system in new jAgE 2.5 snapshots.
Adresacja
Każdy z agentów biorący udział w obliczeniach, zarówno agenci złożeni jak Workplace'y i agregaty, jak i agenci prości posiadają unikalny adres typu AgentAddress
. Adres składa się z następujących pól:
|
unikalny identyfikator |
|
adres węzła na którym został utworzony |
|
tekstowy identyfikator adresu dla użytkownia (user friendly), który nie musi być unikalny (np. myDearAgent) |
Przy porównywaniu adresów (przez metodę equals
) pod uwagę brana jest para id
oraz nodeAddress
. Tekstowy identyfikator jest używany w metodzie toString
i może posłużyć do identyfikacji agenta np w logach.
Użycie
Adres może być zdefinionwany wkonfiguracji na dwa możliwe sposoby. Pierwszym z nich jest podanie tekstowego formatu (user-friendly) wprost, np:
<property name="address"> <value value="myDearAgent" class="AgentAddress" /> </property>
Drugim sposobem jest zdefiniowanie prefiksu tekstowego adresu i dodanie na jego końcu znaku gwiazdki "*". Właściwy adres zostanie nadany podczas rejestracji adresu:
<property name="address"> <value value="myDearAgent*" class="AgentAddress" /> </property>
Drugi sposób jest szczególnie przydatny w przypadku definiowania wielu agentów. Podczas rejestracji agentowi zostanie nadany adres rozpoczynający się podanym prefiksem (w powyższym przykładzie 'myDearAgent') połączony z wygenerowanym ciągiem znaków w taki sposób, aby tekstowy identyfikator adresu był unikalny w skali pojedynczego węzła.
Należy zwrócić uwagę, że adres nie jest identyfikowany przez tekstowy identifikator. Przyklad TODO:
Model logiczny adresów
Serwis nazw
Podczas dodawania agentów do agregatu, ich adresy są rejestrowane w serwisie nazw, który zdefiniowany przez interfejs IAddressProvider
.
Agregat rejestruje nowego agenta w swoim środowisku za pomocą metody registerAgent
- metoda ta jest wywoływana w górę drzewa agentów, zapisując ścieżkę rodziców dodawanego agenta. Korzeń drzewa (workplace) za pomocą swojego środowiska rejestruje agenta w serwisie nazw.
Konfiguracja
Do poprawnego działania platformy, w pliku konfiguracyjnym (na tym samym poziomie co WorkplaceManager
) musi zostać zdefiniowany komponent serwisu nazw:
<?xml version="1.0" encoding="ISO-8859-1" ?> <configuration xmlns="http://age.iisg.agh.edu.pl/AgE" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://age.iisg.agh.edu.pl/AgE http://age.iisg.agh.edu.pl/xsd/age.xsd"> ... <component isSingleton="true" name="addressRegister" class="org.jage.address.provider.DefaultAddressRegister" /> ... </configuration>