Программно реализованные агенты, в том числе и интеллектуальные, относятся к классу программного обеспечения, которое способно действовать самостоятельно от лица пользователя. Созданию программных агентов предшествовал опыт разработки так называемых открытых систем, результатом внедрения которых в практику явилось создание архитектуры «клиент-сервер».
В настоящее время наибольшее распространение получили две модели такого взаимодействия: «толстый клиент — тонкий сервер» и «тонкий клиент — толстый сервер». В первой модели серверная часть реализует доступ к ресурсам, а приложения находятся на компьютерах клиентов. Во второй модели клиентское приложение обеспечивает только реализацию интерфейса, а сервер объединяет все остальные части программного обеспечения. При создании 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, унифицирующего средства коммуникации между приложениями и способы взаимодействия с другими приложениями.