h3. Workplace – środowisko obliczeniowe
Workplace stanowi jednostkę rozproszenia agentów. Środowisko obliczeniowe jest specjalnym rodzajem agregatu (patrz wyżej), który odpowiada za uruchomienie i działanie agentów potomnych. Każde środowisko obliczeniowe posiada unikalny w systemie identy?kator. Unikalność ta musi zostać zapewniona przez projektanta obliczenia (zakłada się, że nie musi istnieć centralna usługa rejestrująca istniejące środowiska). Środowiskami obliczeniowymi zarządza WorkplaceManager.
Worplace jest uruchamiany poprzez wywołanie na nim przez WorkplaceManagera metody start(). Urochomienie workplace'a nie jest możliwe w przypadku gdy już jest uruchomiony. Workplace działa tak długo aż nie zakończy obliczenia lub nie zostanie wywołana na nim metoda stop(). O zakończeniu obliczeń informowany jest WorkplaceManager.
Poniżej przedstawiono diagram stanów workplace'a.
Przy wywołaniu metody start() tworzony i startowany jest nowy wątek. W metodzie run() tego wątku implementuje się działania odpowiadające za dokonanie obliczeń. Przykładem może być klasa IsolatedSimpleWorkplace, która w metodzie run() wywołuje w pętli wykonywanie kolejnych kroków obliczeń, których liczba nie jest większa niż określona w konfiguracji maksymalna liczba kroków. Po wykonaniu wszystkich kroków workplace zmienia stan z 'running' na 'stopped'. Informacja o zmianie stanu na 'stopped' jest następnie przekazywana do WorkplaceManagera. Zmiana stanu może zostać wywołana również poprzez metodę stop().