1 ...8 9 10 12 13 14 ...24 Центром агента является буфер данных. Он является аналогом быстрой памяти и используется для оперативной обработки выбранных данных из внутреннего хранилища данных, для последующего обновления хранилища данных и для целей коммуникации.
В качестве еще одной аналогии рассмотрим классическую трехзвенную архитектуру приложений: сервер баз данных – сервер приложений – клиент. Сервер баз данных хранит операционные данные, сервер приложений обрабатывает эти данные, клиент отображает данные. В сопоставлении с агентом, сервер баз данных – это хранилище данных, сервер приложений является блоком обработки, а вот клиент – это блок, связанный с коммуникацией, получением данных и формированием данных. Буфер данных агента существует на уровне сервера приложений.
Поскольку буфер данных является центром агента, рассмотрим его подробнее. А именно, почему он является центром, и зачем он нужен как таковой. Начнем с обработки данных. Данными невозможно оперировать непосредственно внутри хранилища данных (имеется ввиду интерактивные, коммуникативные операции), поскольку давно прошли те времена, когда данные запись за записью анализировались программой в базе данных, а затем они извлекались для последующих операций. Сейчас рутинная работа по выборке данных перенесена на уровень сервера баз данных. Мы даем задание системе управления базами данных выбрать, обновить, удалить, добавить данные, а система выбирает их для нас в наш промежуточный буфер либо обновляет данные в хранилище данных. Другими словами, все фактические операции производятся в буфере данных – туда выбирается ограниченная часть данных, которые нужны для обработки. Там формируются изменения в данных, которые затем транслируются (переносятся) в хранилище данных.
Для каналов коммуникации буфер данных играет другую роль. Дело в том, что каналы коммуникации не должны напрямую обращаться к данным во внутреннем хранилище данных, так же как коммуникационные каналы не должны иметь прямого влияния на хранилище данных. Это так, поскольку одним из основных принципов построения агента является его автономность, а, следовательно, и независимость от внешних факторов. В дополнение к этому мы обсуждали гетерогенность структур агента (см. главу «Агенты как черный ящик»), где мы предполагаем, что реализация агента может быть различной. При этом язык коммуникации с другими агентами остается единым в среде взаимодействия агентов. Таким образом, при формировании данных для внешней среды и для коммуникации с другими агентами, мы должны транслировать данные из внутренней структуры агента в структуру языка для взаимодействия с другими агентами. Такая трансляция является результатом обработки. И поэтому только результаты обработки (а не данные из хранилища данных) должны отправляться в выходные каналы агента.
Аналогичная ситуация с поступающей извне информацией. С одной стороны, агент должен транслировать входящую информацию во внутреннюю структуру данных, а с другой стороны агент также должен сделать определенные предварительные обработки, такие как оценка входящей информации на непротиворечивость (валидация информации). Первый вид обработки входящей информации соответствует гармонизации с внутренней структурой данных по форме, а второй вид обработки – это гармонизация по содержанию.
Воспроизведение агентов, априорная информация
Если мы рассматриваем мультиагентную систему как среду или сообщество, то агенты в этой среде должны быть подобны организмам – возникать и исчезать из среды и присоединяться и уходить из сообществ. А потому агенты должны иметь возможность совершать действия, характеризующие живые организмы, в том числе развитие и размножение.
Интеллектуальное (не физическое) развитие агента целиком связано с процессом обучения через коммуникацию, то есть через наблюдение и обучение. Развитие агента связано с внутренними механизмами и возможностями агента.
Размножение, то есть воспроизведение себе подобных агентов, используется как основная идея программ-вирусов, центральная задача которых максимально быстро распространиться и прикрепиться к другим программам на различных компьютерах.
В мультиагентных системах могут существовать различные подходы к воспроизведению. Некоторые мультиагентные системы (например, web-среда) определяют формат протокола взаимодействия агентов, например, протокол HTTP. Создание новых видов агентов не контролируется, основное требование – соответствие требованиям протоколам обмена данными. То есть реализация агента может быть создана с нуля или может быть создана через модификацию существующей реализации агента, например, агента с открытым исходным кодом. И, разумеется, воспроизводство нового агента – это использование некоторой реализации агента.
Читать дальше