Программно реализованные агенты, в том числе и интеллек­туальные, относятся к классу программного обеспечения, кото­рое способно действовать самостоятельно от лица пользователя. Созданию программных агентов предшествовал опыт разработки так называемых открытых систем, результатом внедрения которых в практику явилось создание архитектуры «клиент-сер­вер».

В настоящее время наибольшее распространение получили две модели такого взаимодействия: «толстый клиент — тонкий сервер» и «тонкий клиент — толстый сервер». В первой модели серверная часть реализует доступ к ресурсам, а приложения нахо­дятся на компьютерах клиентов. Во второй модели клиентское приложение обеспечивает только реализацию интерфейса, а сер­вер объединяет все остальные части программного обеспечения. При создании MAC используются обе модели. При этом может применяться либо статический подход, при котором осуществля­ется передача только данных, либо динамический подход, обес­печивающий также передачу программного кода.

Динамический подход опирается на парадигму мобильных агентов, которые в отличие от статических могут перемещаться по сети. Они могут покидать клиентский компьютер и переме­щаться на удаленный сервер для выполнения своих действий, по­сле чего могут возвращаться обратно. Использование мобильных агентов имеет положительные и отрицательные последствия, по­этому их применение оправдано в тех случаях, когда они обеспе­чивают следующие возможности:

  • уменьшение времени и стоимости передачи данных;
  • расширение ограниченных локальных ресурсов;
  • облегчение координации;
  • выполнение асинхронных вычислений.

При использовании мобильных агентов возникает ряд серьез­ных проблем, в том числе:

  • легальность способов перемещения агентов по сети;
  • верификация агентов (например, защита от ви­русов);
  • соблюдение прав частной собственности;
  • сохранение конфиденциальности информации;
  • перенаселение сети агента­ми;
  • совместимость кода агента и программно-аппаратных средств сетевой машины.

Для реализации мультиагентных систем, основанных как на статических, так и на динамических распределенных приложени­ях, наиболее перспективными на сегодняшний день являются следующие технологии: DCOM (Microsoft Distributed Component Object Model), Jawa RMI (Jawa Remote Method Invocation) и CORBA (Common Object Request Broker Architecture).

Главной особенностью объектно-ориентированной техноло­гии DCOM является возможность интеграции приложений, реа­лизованных в разных системах программирования.

В приложениях Jawa RMI на сервере создаются объекты и ме­тоды их обработки, доступные для вызова удаленными приложе­ниями, которые размещаются на компьютерах-клиентах.

Технология CORBA — одно из наиболее гибких средств реали­зации распределенных приложений. Ее преимуществом по срав­нению с Jawa RMI является наличие специального языка описа­ния интерфейсов IDL, унифицирующего средства коммуника­ции между приложениями и способы взаимодействия с другими приложениями.