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:

id : UUID

unikalny identyfikator

nodeAddress : INodeAddress

adres węzła na którym został utworzony

userFriendly : String

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>

Attachments: