ПОСТРОЕНИЕ РАСПРЕДЕЛЁННОЙ
СИСТЕМЫ ДОСТУПА К ИНФОРМАЦИОННЫМ
РЕСУРСАМ НА
ОСНОВЕ МНОГОАГЕНТНОЙ
АРХИТЕКТУРЫ
Идея о делегировании сложных задач программным системам (агентам) позволяет представлять и решать трудно формализуемые проблемы более естественным образом. Выбор многоагентной технологии в качестве базовой при проектировании распределённых систем доступа позволяет легко сочетать в единой системе как универсальные протоколы, такие как Z39.50, так и любые другие частные средства работы с конкретными типами баз данных. Ещё на этапе проектирования в такую систему закладывается гибкость, горизонтальная и вертикальная расширяемость, существенно упрощается решение задач распределения нагрузки между серверами.
Опираясь на четырехлетний опыт эксплуатации WEB-ориентированной информационно-поисковой системы для доступа к базам данных CDS/ISIS [1,2,3], можно сказать, что постоянная модификация системы и внедрение в нее новых возможностей отрицательно сказались на её структуре, и постепенно привели систему к состоянию, когда дальнейшая модификация и расширение функциональности стали не реальными. Очевидный вывод, сделанный из этой ситуации, заключался в том, что система нуждается в кардинальном совершенствовании.
Начатую в конце 2001 года модернизацию можно разделить на две части:
В модернизации системной части были выделены две основные задачи:
Касательно оптимизации административной и интерфейсной частей системы было достаточно подробно рассказано в совместном докладе на международной конференции "Крым 2002"[4]. Способ же интеграции системы с протоколом Z39.50[5] был представлен в докладе на международной конференции "LIBCOM 2002". В рамках этого доклада был также представлен проект будущей архитектуры поисковой системы. Сама же новая поисковая система на том этапе находились в активной разработке, а реально работоспособным был лишь первый её прототип, обладавший ограниченной функциональностью.
За прошедшее время в плане реализации новой системы, получившей название WSDS ("Web Search Distributed System"), был достигнут значительный прогресс и, в конце концов, система была предоставлена в web-доступ. На данном этапе система обладает уже полным набором функций, так как это планировалось при её проектировании. Однако, положенная в основу системная архитектура обладает серьёзным потенциалом дальнейшей модернизации, поэтому процесс расширения функциональных возможностей системы идёт непрерывно.
В этом докладе я остановлюсь более подробно на системной архитектуре, на тех причинах, которые привели к выбору именно такой концепции построения, а также на том, чего уже удалось достичь и в каком направление планируется работать в дальнейшем.
Многоагентная архитектура
Думаю, утверждение о том, что информационные технологии на данный момент - одна из самых быстро развивающихся областей, ни у кого не вызовет ни удивления, ни возражений. Однако наша страна, к сожалению, пока ещё далека в этой области от передовых рубежей. Это касается не только и не столько технического оснащения, модернизация и наращивание которого сейчас в России проходит довольно высокими темпами. Но скорее технологической стороны, где мы пока отстаём очень серьёзно. В России много квалифицированных специалистов, которые делают программное обеспечение мирового уровня, но объёмы исследований в области информационных технологий очень малы. Новые веянья в области программных архитектур, стандартов, протоколов и пр. доходят до нашей страны с серьёзной задержкой. Всё вышесказанное в полной мере относится и к многоагентным технологиям. Технологии эти относительно новы и быстро развиваются, однако в нашей стране их применение пока исключительно эпизодично.
Агентная технология содержит в себе преимущества нескольких различных дисциплин. Она включает достоинства объектно-ориентированных и распределённых программных сред, компонентной концепции разработки программного обеспечения и даже искусственного интеллекта и экспертных систем. Агентные технологии могут стать успешным архитектурным решением именно потому, что они способны интегрировать эти различные аспекты и выявлять их внутренний потенциал.[6]
Подход, который родился довольно давно в рамках исследований в области ИИ (Искусственного Интеллекта), уже в конце 90-х на Западе начал активно переходить в русло практического применения в областях программирования, несвязанных напрямую с ИИ. Разработка агентных систем в Европе приобрела такие масштабы, что встал вопрос о стандартизации, для решения которого ещё в 90-х годах были основаны две организации MASIF (Mobile Agent System Interoperability Facility) и FIPA (Foundation of Physical Intelligent Agents), занявшиеся разработкой стандартов. Их работа вылилась в появление стандарта MASIF и стандарта FIPA, дающих рекомендации к созданию систем мобильных агентов и систем интеллектуальных агентов соответственно. Наиболее актуальной сферой применения агентов считается сфера коммуникационных технологий, и именно в этой сфере, в рамках европейской программы ACTS (Современные Коммуникационные Технологии и Службы), в 1997 году была основана программа "Агентные Технологии в Европе", фокусирующаяся на исследовательских разработках и практическом внедрении агентных технологий. Перспективы применения агентной архитектуры в таких специфических областях как сервисный контроль в статичных и мобильных сетях, телекоммуникации, электронной коммерции, мультимедийных приложениях и т.д. были широко оценены в Европе, что ещё весной того же 1997 года в рамках программы ACTS вылилось в запуск 14 новых проектов по исследованию применения агентных технологий в этих областях.[7]
Тем не менее, даже на Западе агентные технологии относительно мало применяются в библиотечном деле и непосредственно в доступе к информационным ресурсам. Достаточно известны проекты - поисковый сервер Yahoo, сервер Amazoon и электронная библиотека журнала "BT Library"[8]; гораздо шире агентные технологии применяются в сфере коммуникации, особенно в сфере мобильных устройств. В тоже время агентная концепция удобна для создания распределённых систем, в том числе и доступа к информационным ресурсам.
Написание агентно-ориентированной программы выливается в создание набора агентов, которые вместе обеспечивают всю требуемую функциональность. Мобильные агенты отвечают за активные части программы, в то время как системные агенты обеспечивают доступ к локальным службам. И те, и другие, общаются через встроенные механизмы коммуникации. Поскольку агентно-ориентированные программы основываются на сотрудничестве различных независимых объектов, то они структурно не монолитны. Поэтому при создании агентно-ориентированных программ совершенно нормальной практикой становится повторное использование существующих агентов.[9]
Способ коммуникации между агентами
Под эгидой программы ACTS в рамках проекта Grasshopper[10], главной задачей которого провозглашалась унификация коммуникационных стандартов на системы мобильных и интеллектуальных агентов, были выделены следующие возможные способы коммуникации между агентами:
При организации систем доступа конечного пользователя к информационным ресурсам, особенно систем, ориентированных на использование в онлайн-режиме в сети Internet, одним из ключевых технических характеристик системы определяющих удобство её использования, является время отклика на запрос пользователя. Именно эта характеристика и является наиболее узким местом всех распределённых систем. И хотя в последнее время пропускные способности каналов связи стремительно растут, нагрузки на них так же повышаются и, поэтому, коммуникация через Сокеты является вполне логичным выбором, для организации распределённой агентной системы, ориентированной на работу конечного библиотечного пользователя в онлайн-режиме (минимально возможное время отклика системы).
Коммуникационные модели распределённой программы
Другим фактором, активно влияющим на время отклика распределённой системы, является коммуникационная модель, определяющая то, каким образом удалённые части программы совместно работают над запросом пользователя. Наиболее распространённым подходом здесь считается пересылка сообщений, позволяющая достичь более высокой степени автономности между частями программы, чем если бы они вызывались директивно посредством RPC (Удалённого Запуска Процессов).[11] Пересылка сообщений является концепцией, естественно подходящей агентным системам, поскольку в рамках неё агент становится чем-то достаточно независимым, как бы делающим своё и только своё дело, и лишь иногда отвечающим на запросы других агентов или самостоятельно делающим запросы, если это потребуется для его работы. В рамках этой концепции в Европейском проекте Grasshopper были выделены следующие модели коммуникации между агентами:
Современная система доступа к распределённым информационным ресурсам, работающая в онлайн-режиме в Internet, должна быть готова к приёму и обработке нескольких различных запросов одновременно, поэтому нельзя допустить, чтобы прохождение запросов задерживалось, пока такая система обрабатывает другой запрос. Поэтому коммуникацию между системными агентами в такой распределённой системе целесообразно организовывать по асинхронному принципу, с ориентацией на создание многопоточных программ. Однако, при создании агентов, отвечающих за работу с конечным пользователем системы, могут быть применены разные подходы.
Так, в реализованной архитектуре WSDS системное ядро состоит из полностью асинхронных многопоточных агентов, в то время как клиентский агент, отвечающий за принятие запросов от Web-интерфейса, передачу их в системное ядро и возврат пользователю Web полученных результатов поиска, работает в синхронном односвязном режиме. Понятно, что, работая в односвязном режиме, пользователь не может отправлять запросы сразу к нескольким разным удалённым группам Баз Данных без использования протокола Z39.50, что существенно ограничивало бы функциональность системы. Однако, в WSDS эффект многосвязной коммуникации эмулируется за счёт того, что сложный вопрос разделяется на запросы к разным группам Баз Данных, каждый из которых передаётся отдельному односвязному агенту, результаты работы которых потом собираются вместе и передаются пользователю. Синхронность же клиентского агента обусловлена тем, что ему, до тех пор пока он выполнен по односвязной концепции, просто нет необходимости что-то делать, пока он не получит результат своего запроса.
В рамках вышесказанного можно выделить один из путей будущего совершенствования системы - отказ от использования простых односвязных синхронных клиентских агентов в пользу более сложных многосвязных асинхронных многопоточных клиентских агентов.
Концепция Архитектуры многоагентной системы "WSDS"
В качестве агентов в данном случае выступают независимые исполняемые модули ('exe') - сервисы и приложения. Никакой специальной программной среды для WSDS не требуется, программной средой, необходимой для удалённой коммуникации между отдельными частями программы, служит сеть Internet; агента идентифицирует агентный тип и уникальный идентификатор; в такой среде каждый агент имеет IP-адрес и порт (может быть несколько портов); общение между агентами осуществляется через Сокеты по протоколу TCP/IP. Внутренняя модель коммуникации между агентами асинхронно-многосвязная.
Итоги проделанной работы:
Направления дальнейшей работы:
Литература