вторник, 10 марта 2009 г.

Агенты, объекты, реализация

На уровне реализации агент - это обычно объект или функция, или программа, которая:

  • работает в независимом потоке управления;
  • принимает сообщения извне (из некой окружающей среды);
  • отправляет их другим агентам;
  • может следить за событиями в среде
  • и совершать в этой среде действия.

Чаще всего, разработчиков агентов не волнует, как именно это реализовано.

Как происходит передача сообщений между агентами? Можно использовать push или pull... можно устроить p2p обмен пакетами или через центральный узел...

Как реализовано выделение агенту процессорного времени? Можно жестко выделить на каждого агента поток, можно завести в менеджере пул потоков и выделять процессорное время агентам по очереди.

Как агент получает информацию о событиях среды и передает в среду действия? А Бог его знает


Сложность построения агентной системы НЕ В ЭТОМ! Спецы по агентам считают, что весь этот функционал у них уже есть.

Агенты - это более высокий уровень абстракции. Нельзя однозначно приравнять агента и объект. Агентами можно считать взаимодействующие daemon'ы в unix, написанные на чисто процедурном языке. И веб-сервисы с прикрученным интеллектом. И отдельные "умные" потоки в программе. И семейку роботов-терминаторов, продающих людей на органы.

Агенты могут быть реализованы с помощью объектов. Но точно также, они могут быть реализованы и с помощью чисто процедурного подхода. Или даже на чисто агентном языке вроде AgentSpeak, который вообще ничего не знает об объектах и исполняется в интерпретаторе.

Безусловно, интерпретатор написан на объектном языке и сам он знает только объекты. С другой стороны, процессор знает только операции над байтами и ничего не знает ни о каких объектах. С этой точки зрения вполне можно говорить: "агенты - это все равно объекты". Или: "агенты - это все равно машинный код".

Однако, теоретические модели, методы, средства агентного подхода никак не связаны с объектно-ориентированным программированием.

Комментариев нет:

Отправить комментарий