Programowanie agentowe
Programowanie agentowe – kolejny poziom abstrakcji programowania, wyższy od abstrakcji programowania obiektowego. Polega on na tworzeniu agentów (ang. Software Agent).
- Programowanie agentowe różni się od obiektowego tym, że każdy agent musi być przygotowany na otrzymanie błędnych danych od innego agenta, lub nieotrzymanie ich w ogóle. W programowaniu obiektowym zakłada się, że każdy obiekt zwróci poprawne dane.
- W programowaniu agentowym normalną i pożądaną sytuacją jest, żeby kilka agentów wykonywało to samo obliczenie, na wypadek, gdyby niektóre z nich zwróciły błąd. W programowaniu obiektowym tylko jeden obiekt wykonuje dane obliczenie, a dublowanie obliczeń to marnowanie mocy procesora.
- System agentowy często zwraca wynik przybliżony lub obarczony prawdopodobieństwem błędu. Rozmaite techniki mają na celu eliminację tego stanu rzeczy. W programowaniu obiektowym czyni się założenie, że wszystkie wyniki są poprawne, a za ich dokładność odpowiadają inne elementy systemu komputerowego (np. sprzęt).
Systemy agentowe są naturalnie przystosowane do uruchamiania w dużych lub niepewnych środowiskach, np. w sieciach komputerowych, gdzie może zajść awaria łącza, awaria komputera lub ktoś może sabotować obliczenia wysyłając błędne dane. Systemy agentowe nie wymagają zsynchronizowanego zegara, umożliwiają płynne zwiększanie lub zmniejszanie ilości pamięci i procesorów, na których są uruchamiane (bez przerywania obliczeń), tolerują opóźnienia komunikacji i wykorzystują możliwości środowisk heterogenicznych.
Właściwości agentów można w pełni wykorzystać jeśli zostaną połączone w zespoły nazywane Systemami wieloagentowymi (ang. Multi Agents System).
Uwaga: Nie należy mylić programowania agentowego z modelowaniem agentowym, czyli ABM (Agent Base Modeling), które zwykle wykonywane jest w paradygmacie obiektowym.