Например, ваша программа электронной почты может использовать робота, или статический агент, для извлечения и обработки сообщений в соответствии с расписанием. В свою очередь, мобильные агенты способны перемещаться из одного места (например с сервера) в другое - или по команде пользователя, или когда агент сам "понимает" необходимость этого. Так, агент решает, что поиск будет эффективнее выполняться на машине, где расположена база данных, нежели по сети. Перемещаясь на сервер базы данных, запуская поиск и возвращаясь с результатами, он сможет действовать быстрее и использовать меньше ресурсов.
Разработчики, некоторое время предававшиеся теоретическим рассуждениям, наконец перешли к демонстрации прототипов.
Использование мобильных агентов
Мобильные агенты могут оказаться полезными, если вы хотите подготовить анимационный ролик для демонстрации нового продукта, провести сложные вычисления в электронных таблицах или выполнить операцию сортировки в базе данных большого объема. Не составит особой сложности заставить мобильный агент перенести требуемый код на уполномоченный сервер агентов с необходимыми вычислительными возможностями.
Мобильные агенты также способны усовершенствовать метод сбора информации из базы данных или других источников. Даже если задача извлечения данных сама по себе достаточно проста, накладные расходы при выполнении работы по интрасети иногда оказываются выше, чем при передаче агентов на все базы данных для выполнения той же работы.
Aglets Workbench, выпущенная компанией IBM год назад, - альфа-версия единой оболочки мобильных агентов (see.www.trl.ibm.co.jp/aglets). Она еще содержит ряд ошибок, но вполне подходит для демонстрации основных принципов технологии. Компания IBM называет свои мобильные агенты "аглетами" (aglet) - от слов "агент" (agent) и "аплет" (applet). Они написаны на языке Java, который предоставляет защитную оболочку, позволяющую защитить от потенциально враждебных аглетов систему, где работают серверы аглетов.
Java Aglet API (J-AAPI) компании IBM предлагает все функции аглетов и службы, которые они используют. J-AAPI реализован в виде набора классов Java, которые компилируются в аглет и обеспечивают все службы поддержки для перемещения аглетов от сервера к серверу и для коммуникаций между аглетами, серверами и пользователями. Aglets Workbench включает в себя аглеты-компоненты и автономный сервер аглетов.
Центральным в архитектуре аглетов является контекст, или серверная среда, в которой запускаются аглеты. Один сервер может содержать несколько контекстов; каждый из них имеет свои собственные ограничения по защите. Любой аглет получает собственный идентификатор, действующий в течение всего времени его существования. Аглеты взаимодействуют и обмениваются информацией, посылая и передавая сообщения.
Агент-посредник
Передача сообщений между аглетами или между аглетом и пользователем выполняется через специальные посредники (proxy). Посредник скрывает положение аглета, не допуская прямого доступа к его коду и доступа со стороны других аглетов.
Аглеты пересылаются из одного контекста в другой по протоколу Agent Transfer Protocol, разработанному IBM. Этот протокол уровня приложения не зависит от платформы и использует URL для определения местоположения агентов и серверов.
Когда аглет заканчивает работу в контексте, он может переместиться в другой контекст или в контекст, в котором он был создан. Аглеты также можно принудительно возвращать в контекст: переслав аглет, вы оставляете его накапливать данные до тех пор, пока вам не понадобится, чтобы он вернул результаты.
Безусловно, мобильные агенты, такие как аглеты, вряд ли появятся в вашей интрасети уже завтра. Однако они могут стать реальностью раньше, чем вы думаете.