Использование технологии мобильных агентов в системах обработки текстовой информации.
Введение
На этапе проектирования традиционных клиент-серверных приложений должны быть жестко распределены роли между клиентскими и серверными компонентами. На этом этапе разработчик должен отчетливо представлять режимы эксплуатации системы: сетевой трафик, количество транзакций, количество клиентов и серверов, ожидаемое быстродействие. Если эти величины были неправильно оценены или в процессе эксплуатации изменилась ситуация, система может прийти в неработоспособное состояние и потребовать основательной перестройки. При построении систем на базе мобильных агентов можно избежать этой опасности: меньше серьезных решений должно быть принято на этапе проектирования и значительно облегчается дальнейшая модификация системы, вплоть до ее автоматической перестройки в зависимости от ситуации.
В середине 90-х годов появились первые публикации о технологии мобильных агентов, которая позволяет объединить преимущества таких многообещающих областей информатики как распределенная архитектура, системы адаптивного распознавания, искусственный интеллект, экспертные системы, генетические алгоритмы, распределенная обработка данных, коллаборативная фильтрация и др.
Мобильный агент начинает свое существование на компьютере клиента в сети и его целью является выполнение возложенной на него задачи. После отправки он действует автономно и независимо от пославшего его клиента. Когда агент достигает сервера, он попадает в агентскую среду и, если получает необходимые полномочия, начинает выполняться. Для выполнения возложенных на него задач мобильный агент может перемещать себя на другой сервер, порождать новых агентов или взаимодействовать с другими агентами. После выполнения возложенных на него задач он пересылает результаты своей работы пославшему его клиенту или другому процессу.
В настоящее время на рынке присутствует несколько платформ для предоставления агентской среды и проектирования мобильных агентов. Наиболее известные из них Aglets Workbench японского отделения фирмы IBM, Voyager фирмы ObjectSpace , Concordia фирмы Mitsubishi, Grasshopper фирмы IKV++ и Odyssey фирмы General Magic. Все платформы построены на базе Java, но в каждой есть уникальные функциональные возможности, которых нет в других. К сожалению, все платформы отличаются невысокой производительностью.
Можно выделить несколько основных областей применения технологии мобильных агентов:
1. Сбор информации с компьютеров в сети. Преимущество мобильных агентов по сравнению с существующими системами, решающими эту задачу заключается в том, что мобильный агент перемещается по сети автономно, меняя маршрут в зависимости от сложившейся ситуации и высылая отчеты о проделанной работе.
2. Поиск и фильтрация информации. Постоянное увеличение количества информации в интернет и других сетях вынуждает ради нахождения одной нужной страницы просматривать колоссальное количество ненужных. Такой способ фильтрации занимает много времени или не приводит к цели. В отличие от пользователя, мобильный агент может посетить множество сайтов, оценить документы каждого из них и переслать пользователю только те, которые соответствуют заданным критериям.
3. Мониторинг. Бывают случаи, когда необходимая информация может появиться в случайном месте и в случайное время. Мобильные агенты могут быть распространены по таким местам, и ожидать ее появления. Например, такие агенты могут работать на биржевых серверах, ожидая появления подходящей цены и передавать информацию другим агентам, покупающим или продающим. Другой пример - агент может выполнять мониторинг новостных сайтов на предмет появления на них интересующей клиента информации.
4. Распространение информации по сети. Другое возможное применение мобильных агентов заключается в распространении информации заинтересованным лицам. К сожалению, могут быть созданы агенты, которые осуществляют беспорядочную рассылку рекламы (spam), но в тоже время возможно создание других агентов, которые фильтруют такие рассылки.
5. Ведение переговоров. Помимо сбора информации из баз данных, мобильные агенты могут получать ее от других агентов. Например, если необходимо подобрать время и место для встречи с несколькими людьми, каждому из них может быть послан мобильный агент для получения сведений о его планах, затем агенты могут определить подходящее для всех временя и место и разослать встречающимся соответствующие сообщения.
6. Обмен информацией. Электронная коммерция является подходящей областью использования технологии мобильных агентов. Мобильные агенты могут быть использованы для автоматизации процессов поиска, подбора, заказа товаров и, возможно, оплаты покупок. Кроме того, электронная коммерция может стать местом взаимодействия мобильных агентов, например продающих и покупающих.
7. Параллельная обработка информации. При построении систем для параллельной обработки информации технология мобильных агентов может оказаться удобной для администрирования параллельной обработки. В случае, когда вычисления требуют столько ресурсов процессора, что необходимо прервать соседние процессы, инфраструктура мобильных агентов может оказаться простым выходом из такого положения.
8. Развлечения. Например, мобильный агент может играть роль соперника человека в компьютерной игре, либо агенты состязаться с другими агентами на специализированных игровых серверах. Если игры азартные, в случае удачи, такие агенты могут приносить своим создателям некоторый доход.
Попробуем провести анализ возможностей и перспектив использования технологии мобильных агентов в системах обработки текстовой информации с учетом нынешних требований к таким системам и естественных ограничений и недостатков, которыми пока эта технология обладает.
Современные системы обработки текстовой информации обладают в той или иной мере следующими возможностями: поиск информации, ее фильтрация, транспортировка, обработка и хранение, предоставление пользователям средств качественного отбора из накопленной информации необходимых документов, аналитическая обработка накопленной информации.
Применение мобильных агентов в системах обработки текстовой информации.
Наиболее перспективным представляется применение технологии мобильных агентов на этапе поиска и доставки информации в клиентскую систему. В настоящее время существует достаточно большое число программ, выполняющих эту функцию, которые называются web-роботы. В процессе работы они перемещается по гипертекстовой структуре Сети, запрашивают документы и рекурсивно возвращают все документы, на которые они ссылаются. Эти программы также иногда называют "пауками", "странниками", или "червями". Такие названия, несмотря на их привлекательность, могут ввести в заблуждение, поскольку термин "паук" и "странник" создает ложное представление, будто робот сам перемещается, а термин "червь" мог бы подразумевать, что робот еще и размножается подобно вирусу-червю. В действительности, роботы реализованы как простая программная система, которая запрашивает информацию из удаленных участков интернет, используя стандартные сетевые протоколы.
Придумано много способов обмана поисковых агентов и роботов, благодаря которым они привлекаются на web-сервер для придания ему высокого имиджа. Например, в неотображаемых стандартными браузерами участках страниц записываются привлекающие агентов ключевые слова, чаще всего в нескольких экземплярах. Для обхода таких ловушек требуется оснащать поисковые агенты специальными средствами анализа обрабатываемых страниц.
Отбор информации
Главный недостаток современных web-роботов заключается в том, что анализ документа, хранящегося на удаленном сервере, производится на сервере, на котором поисковая система работает. Несмотря на применение прогрессивных методов пересылки файлов, такой механизм работы существенно повышает трафик сети и нагрузку на узлы, на которых хранится информация. Большинство таких программ осуществляют обход строго определенного набора узлов интернет с ограниченным уходом в глубину ссылок. Ситуация осложняется тем, что размеры html-файлов, в которых хранятся тексты, становятся все больше и больше а объем содержащейся в них полезной информации остается прежним.
Наиболее естественным выходом из сложившейся ситуации является перенос процедуры принятия решения "документ должен быть перенесен в клиентскую систему на обработку или нет" на сервер, на котором документ хранится или на ближайший к нему (с точки зрения сетевого расстояния). Серьезное преимущество мобильных агентов заключается в возможности осуществлять отбор искомой информации непосредственно на сервере, на котором она находится, избегая загрузки сети пересылкой не представляющих интереса документов для их оценки.
Очевидно, большинство клиентских систем не будет поддерживать таких дорогостоящих операций как морфологический и синтаксический анализ документов, особенно русскоязычных. По этой причине представляется сомнительной возможность проведения качественного семантического анализа русскоязычных документов непосредственно самим мобильным агентом, следовательно, и точность отбора не может быть высокой. Наиболее рациональным представляется "черновой", избыточный отбор информации мобильными агентами по ключевым словам и ее последующий полноценный анализ в системе обработки текстов.
Извлечение информации из специализированных хранилищ
При организации большого хранилища документов наступает момент, когда хранение документов в виде html-файлов становится невыгодным или даже невозможным. В этих случаях документы начинают хранить в полях СУБД и извлекать те из них, которые потребовал пользователь в открытые каталоги web-сервера на некоторое время, обычно не больше часа. Естественно, обычные поисковые роботы не могут получить все документы из таких хранилищ, а те которые случайно захватываются, сразу становятся "мертвыми" ссылками. С помощью технологии мобильных агентов может быть решена проблема извлечения таких документов. Например, мобильный агент может отслеживать появление временных файлов и пересылать их в "зеркало" обрабатываемого хранилища. Естественно, такому агенту не помешает способность исключения повторной пересылки одного и того же документа. Подобный агент может работать в паре с другим агентом, который имитирует работу пользователя провоцируя создание временных файлов.
Поиск и доставка информации с узлов, имеющих периодическую связь с сетью.
Благодаря применению мобильных агентов может быть решена проблема поиска информации, находящейся на серверах, которые не имеют постоянного соединения с сетью или связаны с ней низкоскоростными каналами. Во время временного подключения к сети на такой сервер перемещается мобильный агент, который в автономном режиме осуществляет поиск и отбор необходимой информации и при появлении связи с внешним миром передает результаты своей работы клиенту.
Мониторинг данных
Не секрет, что значительное число серверов публикует очень немного новых материалов (в среднем, не более 10 статей в сутки). Ситуация осложняется тем, что такие сервера достаточно интенсивно изменяют свои оглавления, добавляя в них ссылки на документы из других серверов, рекламные баннеры и т.д. Это приводит к тому, что стандартные поисковые машины, отслеживая только изменения атрибутов файлов а не их содержание, считают такие файлы полноценными документами и доставляют их потребителям. Благодаря применению мобильных агентов, на удаленном сервере можно отслеживать появление новых документов, путем оценки их содержания принимать решение об их новизне, а потом о целесообразности доставки.
Оптимизация процедуры переноса информации
После того как мобильный агент принял решение передать определенный документ по назначению, возникает вопрос его доставки. Для снижения сетевого трафика в ходе этой процедуры может быть предложено два пути: использование прогрессивных методов передачи данных и передача только той части документа, которая отвечает поисковому запросу. В настоящее время, особенно на бесплатных новостных серверах, сложилась тенденция, при которой объем полезного сообщения не превышает 5-10% от объема страницы. Большую часть страницы занимают заголовки других сообщений, различные стили, ссылки на рекламные баннеры и т.п. Все это не только является мусором, но и будет серьезным препятствием для работы с таким документом в будущем.
Появляется необходимость разработки методов выделения из всего документа участка текста, в котором находится искомая информация для последующей его доставки. Выделение может осуществляться путем простого синтаксического разбора html-страницы, поиска "версии для печати" или с привлечением других технологий, в том числе искусственного интеллекта. Выполнение этой задачи может оказаться по силам мобильному агенту.
Мониторинг активности пользователей
Заслуживает внимания технология, при использовании которой мобильный агент собирает информацию о работе пользователей с документами web-серверов. Нечто подобное используется в системах электронной коммерции, когда фиксируется, какие именно документы пользователь просмотрел, и какое время затратил на просмотр каждого из них. На основании этих сведений можно получить оценку "значимости" документа и, имея сведения о круге интересов пользователя, даже сделать предположение о тематической направленности документа.
Система безопасности
Как и другие типы распределенных информационных систем, системы обработки текстовой информации нуждаются в средствах защиты, которые также могут быть построены на базе технологии мобильных агентов. В свое время были опубликованы достаточно многообещающие характеристики агента компании Sandia National Labs, назначение которого было направлено на самостоятельное распознавание и уничтожение вирусов до их попадания на защищаемые компьютеры и предугадывание враждебных действий. Был заявлен даже обмен информацией между несколькими копиями агента.
Примеры использования технологии мобильных агентов в системах обработки текстов
PaCMan
Распределенную добычу данных и вычисления на базе Web способны выполнять агенты, объединенные в систему PaCMAn (Parallel Computing with Java Mobile Agents), разработанную кипрскими учеными.
Web-технология все чаще применяется при построении распределенных систем в качестве среды, обеспечивающей взаимодействие процессов, работающих на удаленных компьютерах. Разработчиками была выдвинута концепция применения технологии мобильных агентов для обеспечения доступа клиентов к различным серверам баз данных путем объединения технологий Java и Web. При работе над данным проектом были достигнуты определенные результаты в обеспечении доступа через Web с использованием технологии мобильных агентов к удаленным базам данных. Были разработаны небольшие по объему, простые и автономные клиентские подсистемы, способные работать на низкоскоростных или дорогих в эксплуатации, например беспроводных, сетях. Концепция показала себя: -
гибкой - способной динамически и эффективно действовать; -
масштабируемой - в рамках данной концепции поддержка одновременной работы с несколькими базами данных не только была реализована, но и оказалась более эффективной по сравнению с другими; -
устойчивой - статистика показала, что системы, построенные на базе данной концепции, работают более стабильно по сравнению с системами, работающими напрямую через JDBC.
В дополнение к этому реализация данной концепции показала ее преимущества по сравнению с существующими методами работы с базами данных через интернет. Опыты показали почти десятикратное увеличение производительности при работе через беспроводные или коммутируемые каналы связи, а так же при выполнении длительных транзакций.
При использовании выделенных каналов связи выигрыш оказался от 30 до 40%. Эти результаты оказались особенно ценными в связи с тем, что от применения концепции "клиент-агент-сервер" рассчитывали в основном только увеличения функциональных возможностей. Разработчики сделали вывод, что концепция может использоваться не только в Web, но и в других системах, где применяется JDBC. Вследствие этого был разработан мобильный агент, который обеспечивает поддержку транзакций в распределенных базах данных. Его применение может позволить серверам, которые поддерживают транзакции участвовать в распределенных транзакциях, которые захватывают другие базы данных интернет.
Другая часть работ в рамках проекта PaCMAn заключается в применении технологии мобильных агентов в качестве средства для автоматического сбора, организации, обработки и анализа данных, работающего всегда, везде и с любого устройства. В области распределенной доставки информации уже разработан прототип системы для распределенного доступа к хранилищам информации и для создания персонализированных подборок и хранилищ данных для мобильных клиентов. Запускаемые в интернет мобильные агенты-поисковики отслеживают доступные ресурсы и обеспечивают мобильным клиентам доступ к ним. Мобильные клиенты отбирают сервера, которые содержат интересующую их информацию. Иерархия агентов-проводников обеспечивается определение местонахождения и состояние мобильных агентов и дает возможность агентам находить друг друга.
Построенная на базе мобильных агентов инфраструктура способна обеспечить эффективный путь для обеспечения доступа к информации из распределенных хранилищ.
Проект HAWK - Harvesting the Widely Distributed Knowledge
Поддерживается Deutsche Forschungsgemeinschaft (DFG) postgraduate fellowship (Graduiertenkolleg). В проекте исследуются возможности по распределенному решению задачи поиска информации, в частности проверяется, насколько технология мобильных агентов может быть при этом полезна.
Был разработан первый макет, в котором, так называемые эксперты рубрик автономно исследовали интернет на наличие интересующих их документов и сохраняли их в локальной базе данных. Использовались фильтрующие мобильные агенты, которые направлялись на определенные сервера и проверяли содержащиеся в них документы на релевантность рубрикам. В настоящее время проводятся работы по эффективному распространению таких агентов, для этих целей разрабатываются карты сети интернет, которые позволят определять сетевое расстояние между узлами сети. На основе таких карт будет разрабатываться масштабируемый механизм вычисления расписаний для распространения агентов.
WebMind
Компания Intelligenesis разработала самоорганизующуюся систему WebMind. Она пытается "осознать" смысл информации в сети (пока локальной) и ответить на вопросы пользователей. WebMind - нечто среднее между хранилищем данных и средством поиска и анализа. Первоначально происходит процесс самообучения на реальных данных с применением нейронных сетей, затем формируется набор семантических сетей, а автономные агенты создают или уничтожают связи между их узлами (строками в базах данных, документами и т. п.). Анализируются последовательности обращений пользователей к данным и выполненные переходы между ними для выявления скрытых связей. На основе WebMind и технологии объединения мобильных устройств Sun Jini планируется создавать самоорганизующиеся сети Java-процессоров.
Knowledge Query and Manipulation Language
Немалую активность в создании агентов для интернет проявляет DARPA. Ими разработан протокол обмена знаниями и основанный на нем язык общения агентов Knowledge Query and Manipulation Language (KQML), также пригодный для применения в интеллектуальных "решателях". KQML является частью более крупного проекта ARPA Knowledge Sharing Effort, имеющего целью разработку средств и методологии для построения крупных распределенных баз знаний.
KQML может использоваться как язык для взаимодействия прикладных программ и интеллектуальных систем в области обмена знаниями и для совместного решения какой-либо проблемы. Он рассчитан на заполнение пробелов, которые пока существуют в наборе допустимых операций, выполняемых агентами с помощью различных баз знаний, с помощью которых могут быть построены модели взаимодействия агентов более высокого уровня, такие как заключение сделок или ведение переговоров. В дополнение к этому, KQML обеспечивает архитектуру для обмена знаниями через специальный класс, упрощающий взаимодействие агентов. Идеи, которые послужили причиной разработки KQML, в настоящее время изучаются на экспериментальных прототипах систем, использующихся для исследований в области параллельного проектирования и интеллектуального планирования.
XML-агенты
Интересное направление в области мобильных агентов родилось с развитием языка XML. На его основе сегодня создаются XML-агенты, способные по запросу предоставлять информацию из произвольных источников данных. Немаловажно, что в отличие от Java-технологии, когда для выполнения байт-кода требуется JVM-машина, XML-агенты описываются единственным тегом , используют всего три типа объектов - "ввод", "вывод" и "ошибка" и содержат набор рецепторов для общения со своими "коллегами". Агенты могут применять любой доступный язык сценариев (или специально разработанный XMLScript), а также CGI-программы - в зависимости от возможностей сервера, на котором они выполняются. Главное, чтобы локальные программы стандартно обрабатывали три типа объектов.
Если мобильные агенты путешествуют по Сети сами, то XML-агенты лишь обмениваются сообщениями и данными с другими агентами с помощью HTTP-запросов, что позволяет создавать сколь угодно сложные структуры автоматического хранения и управления данными.
Существующие трудности применения технологии мобильных агентов, пути и перспективы их преодоления
Недостатка в возможных областях применения технологии мобильных агентов не наблюдается, однако эта технология пока обладает некоторыми недостатками, которые препятствуют ее продвижению.
Недостаточное количество серверов, предоставляющих агентскую среду
В настоящее время сервера предоставляющие агентскую среду не очень широко распространены в интернет. Современные распределенные системы пока еще ориентированы на коммуникационные потребности стационарных агентов и не отвечают потребностям мобильных агентов. Мобильные агенты обладают большими возможностями и потребностями чем какая-либо из существующих распределенных систем.
Безопасность
Распространение инфраструктуры мобильных агентов может принести много радости создателям компьютерных вирусов и прочим злоумышленникам. Приемлемый уровень безопасности для серверов, предоставляющих агентскую среду и локальные ресурсы, пока удается поддерживать с использованием существующих систем безопасности, например таких, какие содержатся в Java. Значительно хуже обстоит дело с безопасностью самих мобильных агентов, которые очень трудно защитить от попадания на сервера злоумышленников или от перехвата при их перемещении по сети. Особенно это актуально для мобильных агентов, которые "знают" номера кредитных карт или обладают другими средствами оплаты в интернет. Поскольку агентская среда предоставляет классы для агентов, она теоретически может получить или даже изменить конфиденциальную информацию, которая в них содержится.
Отсутствие единых протоколов и стандартов
Системы программирования мобильных агентов существенно различаются по архитектуре и реализации. Это серьезно препятствует обеспечению взаимодействия агентов с различными агентскими системами и между собой. Ситуация может исправиться: группа OMG разработала Mobile Agent System Interoperability Facility - требования к протоколу общения агентов, появился документ COBRA Facilities: Mobile Agents System Interoperability Facilities Submission (MAF). Ожидается стандартизация таких аспектов как передача агентов и служебных классов между агентскими системами и управление агентами (их создание, уничтожение, прерывание и возобновление деятельности) путем стандартизации синтаксиса и семантики имен и типов агентов и агентских систем, их деятельности при пересечении доменов безопасности и т.п.
Низкие темпы решения задач в области искусственного интеллекта
В значительной мере успех технологии мобильных агентов связан с успехами в области искусственного интеллекта. К сожалению, пока серьезных продвижений в этой области не наблюдается, но есть надежда на то, что рост производительности средств вычислительной техники позволит решить некоторые задачи, входящие в эту область.
Низкая производительность
Поскольку мобильные агенты предполагают переносимость кода, их реализация возможна либо интерпретаторами (Perl, Telescript, Tcl) или языками, поддерживающими раздельную компиляцию (Java). Естественно это предполагает наличие на web-узлах соответствующих интерпретаторов или виртуальных машин, а также механизмов посылки, передачи, получения и выполнения мобильного кода. Изначально виртуальные машины, на которых выполнялся байт-код Java, разрабатывались как некая универсальная среда для различных устройств, где скорость работы программ была некритична, а объемы данных незначительны. Разница в скорости выполнения одинаковых задач между обычным компилируемым кодом и интерпретируемым кодом Java могла достигать сотен раз.
В настоящее время удалось увеличить скорость работы на современных виртуальных машинах за счет того, что Java байт-код не интерпретируется виртуальной машиной, а компилируется и оптимизируется, причем динамически, на основе собираемых виртуальными машинами данных о ходе выполнения программы.
По тестам на быстродействие Java стала уступать компиляторам всего на несколько десятков процентов, но с пользовательскими приложениями пока дела обстоят не так хорошо.
Увеличение нагрузки на сервера в интернет
Главной причиной применения технологии мобильных агентов является снижение сетевого трафика. Ничего не бывает бесплатно, и данное снижение достигается за счет увеличения нагрузки на вычислительные ресурсы серверов. Можно ожидать, что владельцы серверов интернет, на которых трудятся чужие мобильные агенты и используют их вычислительные ресурсы будут считать это своего рода паразитированием и будут принимать к мобильным агентам меры, которые обычно применяются к паразитам. Особенно это актуально, если в сети будут распространяться агенты, работающие не самым оптимальным образом или содержащие ошибки. Подобная проблема возникла при появлении первых web-роботов, когда некорректно написанные программы приводили к отключению от сети серверов, с которыми они работали. В результате этого появился стандарт исключения роботов (SRE), благодаря которому удается избежать некоторых осложнений. Вероятно, подобный стандарт появится и для мобильных агентов, остается только надеется на то, что их создатели будут его придерживаться.
Выводы
С точки зрения применения технологии мобильных наиболее в системах обработки текстовой информации наиболее перспективным представляется использование интеллектуальных мобильных агентов для выполнения всевозможных операций поиска и сбора информации в интернет - они способны самообучаться, эффективно взаимодействовать друг с другом и проявлять определенную самостоятельность при общении с клиентом.
Во время появления первых публикаций о мобильных агентах предполагалось, что в течение нескольких лет будут созданы агенты, способные делать за пользователя в интернет практически все операции - надо просто послать его за нужной информацией или файлом, и он принесет его "на блюдечке". В более глобальной перспективе предполагалось перенести на агентов и работу по электронной коммерции, когда продавцами и ассистентами будут выступать программы, а людям остается только подсчитывать прибыль.
К сожалению, до сих пор такие агенты работают только в исследовательских центрах и не предназначены для практического использования. К счастью, начинается процесс перемещения некоторых решений за пределы опытных образцов, но это в основном приложения для электронной коммерции. Вероятно, пока только в данной области можно найти инвесторов для реализации таких проектов, кроме того, функциональные возможности этих агентов и, следовательно, потребляемые ими вычислительные ресурсы значительно уступают аналогичным характеристикам мобильных агентов для систем поиска и обработки текстовой информации.
Характерным симптомом является уменьшение числа публикаций о технологии мобильных агентов в последние 2 года, а так же тот факт, что исследования в этой области в основном проводятся европейскими и японскими исследовательскими центрами, университетами и IT-компаниями.
Американских публикаций на эту тему очень мало. До сих пор крупные американские поисковые машины и каталоги интернет (AltaVista, HotBot, Lycos и т.д.) работают с помощью обычных web-роботов. Может быть это связано со значительным сокращением инвестиций, которые вкладываются в такие проекты по сравнению с 90-ми годами, но, скорее всего главными причинами являются низкий уровень безопасности мобильных агентов, отсутствие единой агентской среды, низкая производительность JavaVM и отсутствие в ней эффективных низкоуровневых технологий поиска, небольшое число серверов в интернет, поддерживающих выполнение мобильного кода.
Литература и ресурсы интернет
1. William T. Cockayne, Michael Zydd, Mobile Agents, Manning Publication Co., 1998
2. Wooldridge, M., and Jennings, N.R. Intelligent Agents: Theory and Practice, 1995 (http://www.elec.qmw.ac.uk/dai/pubs/KER95/)
3. How Intranet Search Tools and Spiders Work (http://linux.manas.kg/books/how_intranets_work/ch32.htm)
4. Martijn Koster "Robots in the Web: threat or treat?" (http://info.webcrawler.com/mak/projects/robots/threat-or-treat.html)
5. Андрей Аликберов "Несколько слов о том, как работают роботы поисковых машин" (http://java-2.narod.ru/MyDocs/Search%20Engines/art_1.shtml)
6. The UMBC Agent Web (http://www.cs.umbc.edu/agents/)
7. The National Research Council of Canada Agent resource list (http://ai.iit.nrc.ca/subjects/Agents.hml)
8. The European Community Agentlink Project (http://www.agentlink.org)
9. The French "@gency" Frontpage (http://hoegaarden.iutc3.unicaen.fr/cgi-bin/pywiki)
10. The Distributed Systems Group (Technical University of Vienna) (www.infosys.tuwien.ac.at/Research/Agents)
11. Harrison, Chess, and Kershenbaum "Mobile Agents: Are they a good idea?" (http://www.research.ibm.com/massdist/mobag.ps)


