№ 6(24) 2009
В. В. Андреев, А. А. Солдатов
Виртуальная организация интернет-предприятий на основе многоагентного подхода
Работа посвящена разработке на основе многоагентного подхода виртуальных интернет-предприятий, способных предоставлять, например, услуги по загрузке файлового контента. При этом многоагентная система состоит из ряда «разумных» информационных веб-агентов, извлекающих информацию из различных источников и объединяющих ее в единое целое.
Важность организации сетевого бизнеса, связанного с услугами поиска и загрузки контента из сети Интернет и пересылки файлов по обычной или электронной почте очевидна.
Разработка искусственных сообществ и организаций, состоящих из виртуальных агентов, является естественным следствием развития проблематики многоагентных систем [1-5].
Их коммерческое использование могло бы найти применение в создании так называемых интернет-предприятий.
СУБОРДИНАТОР
аксиологический
праксеологический аспект знаний
Рис. 1. Двухуровневое представление базовой структуры (единицы) открытого сетевого предприятия
118
Сетевую деятельность подобной системы можно сравнить с технологическим процессом открытого предприятия [4].
Виртуальная организация интернет-предприятия представляет собой веб-архитектуру, состоящую из множества искусственных интеллектуальных агентов, способных к синер гетическим эффектам. Модель многоагентной системы виртуальной организации можно рассмотреть на основе открытого горизонтального посттейлоровского предприятия [4] (рис. 1). Здесь термин «открытое» указывает на интенсивное взаимодействие предприятия со своими клиентами и партнерами в интересах наиболее полного удовлетворения их потребностей. Единая сетевая организация подобных предприятий включает заказчиков, поставщиков и подрядчиков.
Агенты: их типы и функции
Прежде всего, необходимо выделить системную единицу (агент) сетевого предприятия как многоагентной системы. Затем требуется моделировать и исследовать различные конфигурации агентов и их взаимодействие в многоагентной системе в целом.
Типы агентов можно определить по ролевому признаку:
1) агент-заказчик;
2) агент-координатор;
3) агент-исполнитель;
№ 6(24) 2009
4) агент-субординатор;
5) агент-наблюдатель.
Таким образом, имеется множество агентов А = А■,,...,А5, а объекты отсутствуют.
Агент-заказчик формирует запрос и отправляет заказ на выполнение некоторого задания. Он определяет общую задачу и инициирует фронт работ, участвует в выработке решений и отслеживает процесс выполнения заказа. Окончание действия агента определяется удовлетворением всех требований к выполненной работе. Функция агента-заказчика носит гносеологический характер и рассматривается как своего рода служебная функция многоагентной системы. Ее суть можно выразить вопросами «Что делать (производить) системе?», «Для чего использовать производимый продукт?». С коммуникационной (семиотической) точки зрения функция агента-заказчика определяет семантику информационных обменов в многоагентной системе.
Агент-координатор создает и поддерживает сеть запросов и обязательств, необходимых для выполнения работы. Распределяя работу, агент-координатор взыскивает требуемые машинные ресурсы. Он занимается согласованием действий отдельных исполнителей и регулярно общается с заказчиком. Агент-координатор является посредником между агентом-заказчиком и агентом-исполнителем. Функция агента-координатора носит онтологический характер и может пониматься как операционная функция многоагентной системы. Ей соответствуют вопросы «Кто, когда и где будет выполнять данную работу?». Онтология проявляется в аспекте коммуникации потоков информации, циркулирующих в системе.
Агент-исполнитель — это агент (или группа агентов), непосредственно занимающийся выполнением задания. О ходе и завершении работ он сообщает агенту-координатору. Функция агента-исполнителя имеет праксео-логический характер и предполагает владение методами и приемами решения задачи. Она может пониматься как базовая техническая функция многоагентной системы, соответствует вопросу «Как сделать работу?» и определяет прагматику информационных обменов в системе.
Агент-субординатор, находясь на более высоком уровне, осуществляет общее управление процессами, протекающими на предприятии. В рамках данной модели это означает управление взаимодействием «агент-заказчик — агент-координатор — агент-исполнитель». Функции агента-субординатора состоят в наблюдении, контроле и оценке эффективности деятельности многоагентной системы, связаны с определением стратегий организационного развития, включая подбор агентов-заказчиков, определение должностных инструкций для агентов-исполнителей.
Метафункция агента-субординатора, связанная с прогнозированием будущих тенденций, анализом рынка, формированием мотивов и интересов, постановкой важнейших целей и выработкой стратегических решений, носит аксиологический характер. Прежде всего, он ставит вопросы типа «Почему выгодно производить и продавать продукт (услугу)?» и «Сколько надо произвести (продать)?».
Агент-наблюдатель (метакоординатор) находится на том же уровне, что и агент-субординатор. Он обладает полной информацией о деятельности предприятия и вырабатывает свои предложения об изменениях в мно-гоагентной системе, но может воздействовать на нее только косвенно через агента-субординатора.
В системе возможно добавление новых ролей, например, агент-исполнитель в результате перераспределения функций может стать посредником или клиентом.
Многоагентный подход в онлайн-бизнесе
Предполагается, что основная часть бизнес-процессов будет проводиться многоагентной системой. Цепочка технологического процесса определяется следующим образом. Сначала человек, желающий получить файлы из веб-сети, регистрируется на сайте интернет-предприятия. Первое, с чем он сталкивается, — это выполнение необходимого набора условий к выполнению заказа агента-заказчика. Агент-заказчик осуществляет прием заявки, регистрируя учетные данные пользователя ресурса (далее — пользователь), заносит
«о
0
1 £
«о ш
ш %
119
№ 6(24) 2009
перечень адресов ссылок, необходимых к закачке файлов в специальный список (количество списков напрямую зависит от числа заказов). Агент-координатор проводит анализ адресов файловых ссылок с их перераспределением агентам-исполнителям (в нашем случае агентам-загрузчикам) для последующей закачки. Анализ сводится к определению принадлежности файла к сетевому ресурсу, в связи с чем агенты-исполнители делятся на следующие категории:
1) агенты-загрузчики файлов из пиринговых (Р2Р) сетей (например, torrents.ru);
2) агенты-загрузчики файлов из ресурсов файлообменников (например, rapidshare.ru, depositfiles.com, letitbit.net);
3) агенты-загрузчики файлов, имеющих прямые ссылки.
Число агентов-загрузчиков прямо пропорционально числу имеющихся ссылок. По мере поступления заказа на загрузку веб-файлов происходит непрерывный процесс создания ,§ и уничтожения агентов-загрузчиков. Число рождающихся агентов-загрузчиков определяет-| ся количеством адресов ссылок специального
0 списка. Агенты-загрузчики представляют со-| бой однотипный класс объектов, имеющий Ц множество методов для работы с различными § типами сетевых ресурсов. Действия агента-за-| грузчика по мере выполнения им работы кор-| ректируются агентом-координатором и сооб-§ щаются владельцу многоагентной платформы зс посредством агента-наблюдателя. Отражение
текущего состояния выполненной работы по § загрузке доступно в режиме реального време-,§■ ни при любом обращении агента-наблюдателя к агенту-загрузчику с целью проверки хода £= деятельности. В состояние «смерти» агент-ис-^ полнитель может перейти лишь в случае ус-| пешного выполнения задания. До этих пор ^ агент считается активным либо находится в спящем режиме в связи с возможностью возникно-3 вения нештатных ситуаций: обрыв связи, отклю-5 чение питания, недействующий адрес ссылки. § В любом случае, агент-загрузчик должен опо-* вестить платформу об успешном выполнении задания или о неудаче. Отличительным свой-
1 ством агентов-загрузчиков является возможет
оа ность их портирования на различные хосты.
При этом могут быть задействованы дополнительные мощности сторонних компьютеров, если вычислительная машина с развернутой многоагентной платформой входит в корпоративную сеть.
Каждому адресному списку, созданному агентом-заказчиком, соответствует так называемый «агент-сборщик». Его задача состоит в том, чтобы осуществить сборку заказа. Сборка подразумевает выполнение следующих пунктов:
1) агент-координатор посылает сигнал успешного выполнения задания агентом-исполнителем агенту-сборщику, и с этого момента считается, что агент-сборщик «родился» и стал активным;
2) проверяются условия на предмет загрузки всех позиций, указанных в очереди: при успешном выполнении этого пункта агент-сборщик переходит к следующему, а при неудаче происходит оповещение администратора платформы через агентов координатора и наблюдателя, и формируется файл ошибок;
3) создание самораспаковывающегося архива и установка на него парольной защиты; в дальнейшем будем говорить о двух сгенерированных паролях: один из них будет соответствовать паролю на архив, а второй — сообщен заказчику во вспомогательном файле, причем оба пароля будут соответствовать одному заказу; собранный проект будет состоять из архива и указанного выше файла с паролем, готовых к прожигу на диск специальными средствами операционной системы;
4) печать почтового конверта с указанием почтового адреса заказчика и фирмы отправителя.
Агент-сборщик должен учитывать множественность заявок и ссылок с целью их правильного распределения.
Хэш-суммы скачанных файлов фиксируются в базе данных заказов. Агент-координатор передает ссылку агенту-исполнителю и ждет от него возврата полученной хэш-суммы файла. Если хэш-сумма необходимого к закачке файла соответствует загруженному ранее файлу, то агент-координатор выносит решение прекратить деятельность агента-исполнителя. После этого он отыскивает необходимую запись заказа и восстанавливает необходи-
№ 6(24) 2009
мый файл с дискового ресурса (в нашем случае с компакт-диска). Координатор сообщает агенту-наблюдателю, а следовательно, администратору платформы, в какую директорию заказа необходимо поместить загруженный файл, после чего действие передается агенту-сборщику. Совершенно понятно, что диск проекта записывается дважды: в первом случае — для отправки его по почте и во втором — для возможности восстановления файлов либо всего проекта. Необходимость восстановления проекта появляется в случае возникновения механических повреждений при почтовой пересылке. Создание резервных копий позволяет уменьшить нагрузку на сеть и обеспечить бесперебойную работу платформы при возникновении нештатных ситуаций по вине почтовых служб.
Наряду с перечисленными, можно рассмотреть еще несколько типов агентов платформы. Один из них — «агент продвижения» (или агент-субординатор). Отвечая на вопросы «Сколько?» и «Почему?», данный агент прогнозирует объемы продаж, определяет сбалансированную ценовую политику, отвечающую интересам как заказчика, так и интернет-предприятия. Раскрутка сайта, в структуру которого встроен агент-заказчик, также ложится на плечи агента-субординатора.
Агент-наблюдатель — еще один необходимый для нашей платформы агент. В его обязанности входит:
1) сообщение о возможном числе конкурентов и их ценах;
2) формирование сводки готовых к записи проектов;
3) информирование администратора платформы о доставленных и готовящихся к отгрузке проектах, о дебиторской и кредиторской задолженности по выполненным услугам.
Агент-наблюдатель способен определить стоимость выполненной услуги по объему загруженных файлов на один заказ.
Одним из наиболее интересных агентов нашей платформы является «агент-кассир». Этот агент создан для проведения всех расчетных операций по оплате выполненных услуг. Агент-кассир использует технологию «Электронной кассы», при которой существу-
ет возможность в режиме реального времени проводить и отслеживать движения по банковскому счету организации.
Технологический процесс интернет-предприятия
На рис. 2 представлена блок-схема структурных взаимосвязей рассматриваемой мно-гоагентной системы. Для полного понимания технологического процесса интернет-предприятия рассмотрим его суть. Человек, желающий получить веб-файлы, регистрируется на сайте веб-фирмы, заполняя необходимые поля учетных данных: фамилия, имя, отчество, телефон, мобильный телефон, электронная почта, адрес места жительства. Таким образом, в локальной базе данных платформы формируется запись о заказчике с уникальным номером. Далее создается список адресов ссылок на интернет-файлы, причем на один заказ формируется один список. Агент-координатор передает первый список из базы данных агентам-загрузчикам (агентам-исполнителям). Первый метод, который запускает загрузчик, — это проверка действительного существования ссылки. Если проверка существования всех ссылок списка прошла успешно, создается необходимое число агентов-загрузчиков. Второй метод, запускаемый агентом-загрузчиком, определяет возможное существование ранее скачанного файла по сохраненной хэш-сумме в записях таблицы заказов. Рожденные агенты-загрузчики живут до тех пор, пока файл не будет загружен в соответствующую директорию, созданную совместно с записью, сделанной агентом-заказчиком.
После выполнения всех загрузок и уничтожения агентов-загрузчиков, появляется агент-сборщик. Действуя в рамках своих обязанностей, агент-сборщик готовит необходимый файл архива и устанавливает на него пароль (пароль № 1), а также создает вспомогательный текстовый файл, в котором будет сообщен пользовательский пароль (пароль №2). Понятно, что агент-сборщик следит за размером создаваемого архива, чтобы он укладывался в диапазон возможного размера записи диска. Если размер превышает допустимый, то создается
«о
0
1 £
«о ш
ш %
121
№ 6(24) 2009
Хост № 1
Агент-исполнитель № 1
Агент-исполнитель № 2
Агент-исполнитель № N
Агент-субординатор № 1
Агент-заказчик
Агент-координатор
Агент-наблюдатель
Агент-сборщик
Агент-кассир
Хост № К
Агент-исполнитель № К
Агент-субординатор № К
Рис. 2. Блок-схема многоагентной платформы интернет-предприятия
дополнительное количество проектов для записи. Пароли № 1 и № 2 вписываются в соответствующую запись заказа базы платформы в дополнительные поля. Заказ считается от-,§ правленным после того, как произошел прожиг диска, создалась резервная копия и напе-| чатался почтовый конверт. После этого агентка заказчик обновляет информацию о проекте а
| и ожидает события от агента-кассира о под-Ц тверждении оплаты. В то же время создается § агент-наблюдатель, который должен предос-| тавить агенту-заказчику, и, соответственно, | администратору платформы сводку о достав-§ ке товара. Данная опция становится доступ-ас ной, когда заказчик получит диск с архивом и вспомогательным файлом. Прочитав вспо-§ могательный файл, заказчику придется сооб-,§■ щить пароль № 2 на ресурсе интернет-предприятия, а также номер платежного докумен-| та. Таким образом, произойдет обмен между ^ агентом-заказчиком и агентом-кассиром че-| рез агента-координатора, в результате кото-^ рого агент-кассир подтвердит либо опровергнет правильность проведения платежа и со-3 общит о своем решении агенту-наблюдате-5 лю. Обновляя свою регистрационную запись § и указывая файловый пароль № 2, заказчик * подтверждает доставку диска, а также его це-^ лостность. Пароль № 1 на архив становится 1 доступным на сайте лишь после подтвержде-оа ния перечисленных денег.
122 V
Одним из событий агента-наблюдателя служит метод оповещения заказчика о стадии выполнения проекта посредством отправки соответствующего сообщения на e-mail.
СПИСОК ЛИТЕРАТУРЫ
1. Шогулин Э. В., Андреев В. В. Использование мно-гоагентных платформ // Математические методы в технике и технологиях — ММТТ-20: сб. трудов XX Междунар. науч. конф. В 10 т. Т. 6. Секция 12 / под общ. ред. В. С. Балакирева. Ярославль: Изд-во Яросл. гос. техн. ун-та, 2007. С. 196-198.
2. Шогулин Э. В., Андреев В. В. Многоагентная платформа для создания распределенных приложений / Технологии Microsoft в теории и практике программирования: материалы конференции / под ред. проф. Р. Г. Стронгина. Нижний Новгород: Изд-во Нижегородского гос. ун-та, 2007. С. 347-352.
3. Шогулин Э. В., Андреев В. В. Разработка многоагентной платформы для распараллеливания ресурсоемких задач / Вестник Чувашского университета. 2007. № 2. С. 190-196.
4. Тарасов В. Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика. М.: Эдиториал УРСС, 2002.
5. MaesP. Agent that Reduce Work and Information Overload // Communication of the ACM. 1994. Vol. 37. № 7.