![](/user_photo/2706_HbeT2.jpg)
- •Вопросы по дисциплине «Распределённые системы обработки информации»
- •Определение распределённой системы
- •Прозрачность, открытость и масштабируемость в распределённой системе
- •Концепции аппаратных решений
- •Концепции программных решений
- •Модель клиент-сервер
- •Уровни протоколов
- •Удалённый вызов процедур
- •Обращение к удалённым объектам
- •Связь посредством сообщений
- •Связь на основе потоков данных
- •Процессы. Потоки выполнения
- •Процессы. Клиенты
- •Процессы. Серверы
- •Процессы. Перенос кода
- •Процессы. Программные агенты
- •Модели непротиворечивости, ориентированные на данные
- •Понятия отказоустойчивость и надёжная связь
- •Распределённые системы объектов. Corba
- •Распределённые системы объектов. Dcom
-
Процессы. Программные агенты
Агенты играют в распределенных системах все более важную роль. Программный агент (software agent) автономный процесс, способный реагировать на среду исполнения и вызывать изменения в среде исполнения, возможно, в кооперации с пользователями или с другими агентами. Свойство, которое делает агента чем-то большим, чем процесс, это способность функционировать автономно и, в частности, проявлять при необходимости инициативу. Помимо автономности важнейшее качество агентов — возможность кооперироваться с другими агентами. Сочетание автономности и кооперации приводит нас к классу кооперативных агентов. Кооперативный агент (collaborativeagent) — это агент, составляющий часть мультиагентной системы, то есть системы, в которой агенты, кооперируясь, выполняют некие общие задачи. Типичное приложение, использующее кооперативные агенты, —
это электронная конференция.
Многие исследователи также выделяют из других типов агентов мобильные агенты. Мобильный агент (mobile agent) это просто агент, у которого имеется способность перемещаться с машины на машину.
Способность к кооперации с другими агентами или перемещению между машинами это системные свойства агентов. Они не говорят нам ничего о назначении агента. Для изучения функциональности агента требуется другая классификация. Традиционно выделяемый класс—это класс интерфейсных агентов. Интерфейсный агент (interface agent) это агент, помогающий конечному пользователю работать с одним или несколькими приложениями. Среди традиционно имеющихся у интерфейсного агента свойств можно считать способность к обучению. Чаще всего они взаимодействуют с пользователями, обеспечивая им поддержку. Очень близок к интерфейсному агенту информационный агент (information agent). Основная функция подобных агентов — управление информацией из множества различных источников. Управление информацией включает в себя упорядочение, фильтрацию, сравнение и т. п.
Технология агентов
В качестве исходной точки организация FIPA (Foundation for Intelligent Physical Agents) разработала обобщенную модель программных агентов. Согласно этой модели агенты регистрируются и работают под управлением платформы агентов. Платформа агентов предоставляет основные службы, необходимые любой мультиагентной системе. Сюда входят механизмы создания и уничтожения агентов, механизмы распознавания агентов и механизмы взаимодействия между агентами. Важный компонент платформы агента
канал связи между агентами (Agent Communication Channel, АСС).
В большинстве моделей мультиагентных систем агенты связываются друг с другом, пересылая сообщения.
Языки взаимодействия агентов
Связь между агентами происходит посредством коммуникационного протокола прикладного уровня, известного под названием языка взаимодействия агентов (Agent Communication Language, ACL). В ACL присутствует жесткое разделение между целью сообщения и его содержанием. Сообщение может иметь только ограниченный набор целей. Например, целью сообщения может быть запрос на предоставление получателем определенной службы. Идея ACL состоит в том, что агент-отправитель и агент-получатель как минимум одинаково понимают цель сообщения. Более того, цель сообщения обычно определяет и реакцию получателя.