Логин:   Пароль:




Новости
Рассылки
Форум
Поиск


Java
- Апплеты
- Вопрос-ответ
- Классы
- Примеры
- Руководства
- Статьи
- IDE
- Словарь терминов
- Скачать

Мобильная Java
- Игры
- Примеры
- Статьи
- WAP, WML и пр.

JavaScript
- Вопрос-ответ
- Примеры
- Статьи

Веб-мастеринг
- HTML
- CSS
- SSI

Разминка для ума
Проекты
Книги
Ссылки
Программы
Юмор :)




Rambler's Top100

Статьи - разминка для умаВведение в Мобильные Агенты

Введение в Мобильные Агенты


Предыдущий | Следующий

Общие понятия технологии мобильных агентов

Обзор

В MAF вводятся базовые понятия технологии мобильных агентов и предлагается архитектура агентской системы.

Агент определяется как программа, выполняющаяся от имени некоторого владельца. Агент имеет собственный поток управления и в объектных агентских системах рассматривается как активный объект. Агент имеет код и состояние, причем в понятие состояния включается состояние выполнения, являющееся либо регистровым контекстом данного агента, либо набором значений атрибутов, определяющим деятельность агента при возобновлении его выполнения после миграции. Агенты однозначно идентифицируются следующим набором значений: владелец агента, имя агента и тип агентской системы (создавшей данного агента).

Агентская система -- это платформа, предоставляющая функциональность для создания/уничтожения, приема/передачи и выполнения агентов. Агентская система имеет владельца и обладает определенным типом. Тип агентской системы определяет профиль, или свойства агентов, создаваемых в данной системе. В понятие профиля входят тип агентской системы, язык реализации и метод сериализации агентов.

Агент всегда выполняется в некотором контексте агентской системы, называемом Место (Place).

Для обеспечения безопасности вводится понятие региона, или, другими словами, федерации агентских систем. Регион содержит агентские системы возможно разных типов, но имеющие одного владельца. Одна из функций региона -- именование агентов и мест. Таким образом, клиент, запрашивающий взаимодействие с агентом, должен знать только имя агента и имя соответствующей агентской системы.

Все взаимодействия агентских систем производятся коммуникационной инфраструктурой.

С точки зрения обеспечения интероперабельности агентских систем выделены следующие виды взаимодействия агентов: удаленное создание, передача, вызовы методов (когда агент вызывает метод агента или объекта, если имеет объектную ссылку на этот объект и соответствующие права доступа).

Общими функциями агентской системы являются прием/передача агентов и служебных классов, создание агентов. Последовательность действий при выполнении этих операций специфицирована. Приведены различные стратегии передачи служебных классов (автоматическая передача всех классов, связанных с агентом, или передача по требованию).

Агентская система должна обеспечивать безопасное окружение для функционирования агентов, в том числе поддерживать концепцию региона. Для того чтобы обеспечить безопасность системных ресурсов, агентская система должна уметь идентифицировать и проверять права сущности (клиента), создавшей агента. Агент, также как и агентская система, может определять собственную концепцию безопасности. Конкретная концепция безопасности выбирается в динамике. Концепция безопасности может ограничивать права доступа и используемые ресурсы. При миграции и вызове методов агент может специфицировать трубуемый уровень безопасности. Для безопасного взаимодействия агентов требуются: идентификация клиента, взаимная идентификация агентских систем, идентификация агентов и распространение их полномочий.

Также агентская система должна предоставлять сервис поиска мобильных агентов, именования агентов и мест.

Для мобильных агентов, являющихся объектами CORBA, приводятся сценарии использования стандартных сервисов CORBA для реализации агентской системы. Агент, являющийся объектом CORBA, может быть зарегистрирован в сервисе именования. Так как объектная ссылка CORBA содержит имя узла, в котором находится объект, и номер порта, то объектная ссылка на мобильный агент должна обновляться после каждой миграции. Это обновление может обеспечиваться самим ORB, сервисом именования, или в узле создания агента может существовать объект-представитель (proxy), перенаправляющий обращения к агенту. Для поддержки жизненного цикла агента могут использоваться LifeCycle и Externalization сервисы. Последний предоставляет средства для сохранения состояния объекта в потоке данных и восстановления из него. Хотя Security сервис CORBA не обеспечивает всех необходимых для агентских систем механизмов безопасности, он также может использоваться при реализации агентских систем.

MAF определяет набор интерфейсов, обеспечивающих интероперабельность агентских систем. Эти интерфейсы определены на уровне агентских систем. Как агенты, так и сами агентские системы могут быть объектами CORBA. Поскольку агенты мигрируют между агентскими системами, поддерживающими один и тот же профиль агентов, нет необходимости в стандартизации интерфейса агента -- для обеспечения интероперабельности агентских систем одного типа стандартизируются операции управления мобильными агентами. В спецификации MAF определены интерфейсы объектов MAFAgentSystem и MAFFinder.

В интерфейсе MAFFinder определены операции регистрации/разрегистрации и разрешения имен агентов, мест и агентских систем, то есть объект этого типа является сервисом именования. Один такой объект может разделяться между несколькими регионами. Определена структура имен агентов и используемых им классов, формат преставления адреса агента (либо URI, содержащий составное имя, либо URL, содержащий адрес Internet).

В интерфейсе MAFAgentSystem определены операции приема/передачи, создания/уничтожения, прерывания/возобновления агентов. Следует отметить, что параметрами данных операций являются имена агентов, а не объектные ссылки. Для обеспечения механизмов взаимодействия агентов различных профилей (различных типов) определена операция получения адреса агентской системы, "ближайшей" к заданному профилю.

Объекты стандартизации

Как уже говорилось, важнейшей целью технологии мобильных агентов является достижение взаимодействия между системами агентов различных производителей. Возможность взаимодействия становится более реальной, если стандартизировать такие общие для всех агентских систем операции как перемещение агента, перемещение класса агента, и управление агентами.

Таким образом, в первую очередь стандартизуются следующие моменты:

  • управление агентами
  • перемещение агентов
  • имена агентов и агентских систем
  • типы агентских систем
  • синтаксис местоположения

Рассмотрим их более подробно.

Управление агентами

Вопрос стандартизации управления агентами вызывает большой интерес в среде разработчиков систем мобильных агентов. Необходимо предусмотреть возможность управления различными системами мобильных агентов посредством стандартных операций, чтобы облегчить работу администратора подобных систем. Должен быть определен стандартный путь создания агентов из данных для агента классов, операция приостановки потока управления агента, операция восстановления работы приостановленного потока управления и операция завершения работы агента. Определение общих управляющих функций позволит одному администратору управлять системами мобильных агентов разных типов.

Перемещение агентов

Существуют две причины, по которым локальное взаимодействие двух агентов предпочтительней сетевому: количество сетевых транзакций и мониторинг данных. Эффективность локального взаимодействия достигается посредством перемещения агента из локальной агентской системы в удаленную систему.

Если участок сети между двумя агентами обладает низкой пропускной способностью, поиск информации через сеть становится накладным занятием по сравнению с локальным перемещением данных. Например, в случае, если два агента используют технологию RPC для коммуникационных нужд, то передача информации между агентами требует многократных сетевых транзакций.

Мониторинг данных (например, наблюдение за состоянием определенной машины и группы машин) это задача, которая выполняется ежечасно. Предпочтительней послать агента на платформу, которая предоставляет необходимые данные, чем использовать локального агента, который будет периодически слать запросы к удаленной платформе. Для подобного типа приложений мобильность -- ключ к снижению затрат и более эффективному использованию ресурсов.

Имена агентов и агентских систем

Помимо стандартизации операций необходимых для достижения способности к взаимодействию между агентами, следует определить семантику различных параметров агента. Особо следует отметить такие параметры, как имя агента, имя агентской системы и местоположение.

Для применения управляющего воздействия к агентам, необходимо идентифицировать агента, к которому данное воздействие применяется. Поэтому нужно стандартизировать синтаксис имен агентов. Введение подобного синтаксиса позволит получить еще несколько положительных моментов, например, агентская система сможет сразу определить, поддерживает ли она тип входящего агента, а два агента смогут идентифицировать друг друга по именам.

Тип и местоположение агентской системы

Необходимо также стандартизировать синтаксис местоположения, так чтобы агент смог получить информацию о типе удаленной системы, а локальная и удаленная агентская система смогли идентифицировать друг друга. Если удаленная система поддерживает данный тип агента, то можно производить операцию перемещения агента в эту систему.

Также важно присвоить каждому типу агентской системы уникальное имя (присваивается фирмой разработчиком). Гарантия уникальности подобных имен позволит избежать путаницы между различными типами агентских систем.

Основные понятия

В [1] вводятся понятия следующих сущностей:

Агент

Агент -- компьютерная программа, которая выполняется асинхронно соответственно поведению, заложенному в нее конкретным лицом или организацией.

Стационарный агент

Стационарный агент выполняется только на той системе, на которой был запущен. Если агенту требуется получить информацию, находящуюся вне данной системы или необходимо установить контакт с удаленным агентом, то для взаимодействия обычно используется один из механизмов передачи данных, например метод удаленного вызова процедур (RPC).

Мобильный агент

Мобильный агент не привязан к системе, на которой он был запущен. Он обладает способностью перемещаться посредством сети из одной системы в другую. Это представление является основополагающим для мобильных агентов.

Способность к перемещению позволяет мобильному агенту попасть в систему адресат, содержащую объект, с которым агент должен осуществить взаимодействие. Кроме того, агент может воспользоваться сервисами, предоставляемыми системой адресатом.

Тем не менее, современные распределенные системы ориентированы на коммуникационные потребности стационарных агентов и не отвечают потребностям мобильных агентов. Мобильные агенты обладают большими возможностями и потребностями, чем какая-либо из существующих распределенных систем.

Состояние агента

Во время перемещения агента, его состояние и код транспортируются вместе с ним. В данном контексте, состоянием агента может быть или его рабочее состояние (состояние выполнения) или значения атрибутов агента, определяющие последовательность действий, которые должны быть выполнены после возобновления работы агента в системе адресате. Значения атрибутов агента включают системное состояние, ассоциированное с агентом (т.е. время жизни агента).

Рабочее состояние агента

Рабочее состояние агента, это состояние его выполнения, включая счетчик команд и стековый фрейм.

Полномочия Агента

Полномочия агента представляют персону или организацию, от имени которых выполняется агент. Технологией предоставляется возможность проверки полномочий агента системой адресатом.

Имена агентов

Агентам назначаются имена, которые можно использовать при выполнении управляющих операций и при поиске агента через систему имен. Агенты именуются исходя из их полномочий, уникального идентификатора и типа агентской системы. Идентификатор агента -- уникальное значение в рамках полномочий, определяющее конкретную копию агента. Комбинация полномочий, идентификатора и типа агентской системы является глобально уникальным значением. Поскольку имя агента является глобально уникальным и не может быть изменено, его можно использовать в качестве ключа в операциях, ссылающихся на конкретную копию агента.

Местоположение агента

Местоположением агента является адрес места (см. "Место"). Место находится внутри агентской системы. Следовательно, местоположение агента должно содержать имя агентской системы, внутри которой находится агент и имя места. Надо заметить, что если местоположение не содержит имени места, то адресуемая агентская система выбирает место по умолчанию.

Агентская система

Агентская система -- это платформа, которая может создавать, интерпретировать, запускать, перемещать и уничтожать агенты. Также как и агент, агентская система ассоциируется с полномочиями, которые определяют организацию или персону, от имени которых работает система. Агентская система с полномочиями конкретного пользователя, реализует политику безопасности этого пользователя в плане защиты его ресурсов.

Агентская система однозначно идентифицируется именем и адресом. На одной машине могут располагаться несколько агентских систем. Схема агентской системы отображена на рисунке 1.


Рисунок 1. Агентская система

Тип агентской системы

Тип агентской системы описывает совокупность параметров агента. Например, если типом агентской системы являются "аглеты", то это означает, что агентская система создана компанией IBM, поддерживает язык Java в качестве языка реализации агентов, и использует Java Object Serialization для преобразования агентов в последовательную форму.

Связь между агентскими системами

Все общение между агентскими системами происходит через коммуникационную инфрастуктуру (КИ). Администратор сетевого региона определяет службы коммуникации для внутрирегионных и межрегионных взаимодействий. Рисунок 2 показывает связи между агентскими системами.


Рисунок 2. Связь между агентскими системами

Место

Когда агент перемещается, он движется между стационарными процессами, называемыми местами. Место -- контекст внутри агентской системы, в котором может быть запущен агент. Этот контекст может предоставлять набор функций, таких как контроль доступа, например. Исходное место и адресуемое место могут находиться как в пределах одной агентской системы, так и в различных агентских системах, поддерживающих одинаковую совокупность параметров агента. Место сопоставляется с местоположением, агентская система может содержать одно или несколько мест и место может содержать одного или более одного агентов. Хотя место определяется как окружение, в котором запускается агент, если агентская система не реализует понятие места, то место определяется по умолчанию.

Когда клиент запрашивает местоположение агента, то в качестве ответа он получает адрес места, где выпоняется агент.

Регион

Регион -- совокупность агентских систем обладающих общими полномочиями, но не обязательно принадлежащих к одному типу агентских систем. Концепция региона позволяет несколько агентских систем представлять одной персоной или организацией. Регионы позволяют реализовать возможность масштабирования, поскольку можно распределить нагрузку между несколькими агентскими системами.

Регион реализует уровень абстракции для клиентов, связывающихся из других регионов. Клиент, пожелавший установить контакт с агентом или агентской системой, может не знать местоположения агента. Вместо этого, у клиента есть адрес региона (по существу, адрес агентской системы назначенной в качестве точки доступа региона), и имя агента или места. Этой информации достаточно для организации коммуникации с агентом или агентской системой.

Агент может обладать теми же полномочиями, что и регион, в котором он находится и выполняется. Это означает, что агент представляет туже организацию или персону, что и регион. Обычно, настройка региона позволяет наделить подобные агенты большими правами, по сравнению с другими резидентными агентами, обладающими отличными полномочиями. Например, агенту с теми же полномочиями, что и у системы, могут быть назначены административные привилегии.

Регион полностью связывает агентские системы, находящиеся внутри его границ и позволяет осуществлять обмен информации между ними посредством модели сетевого соединения point-to-point. Каждый регион содержит одну или несколько точек доступа, посредством которых регионы соединяются в некоторую форму сети. Архитектура регионов отображена на рисунке 3.


Рисунок 3. Регионы

Связь между регионами

Регионы соединяются посредством одной или более сетей и могут совместно использовать службу имен, организованную на основе соглашений между администраторами регионов и особенностях реализации регионов. Неагентские системы могут также связываться с агентскими системами в переделах региона, если обладают соответствующими разрешениями.

Регион содержит одну или несколько агентских систем. Агентские системы и клиенты вне региона получают доступ к ресурсам внутри региона посредством агентских систем открытых для внешнего мира, подобно варианту с работой брандмауэра. Эти агентские системы определяются как точки доступа к региону.

Агенты наделяются правами доступа соответствующими полномочиям региона, в котором они запущены. Используя это определение, можно рассматривать регион как домен безопасности в нотации CORBA. Рисунок показывает связь между регионами.


Рисунок 4. Связь между регионами

Сериализация / десериализация

Сериализация -- процесс сохранения агента в последовательной двоичной форме. Де сериализация -- процесс восстановления агента из последовательной формы.

Ключ к перемещению агента лежит в сохранении его состояния в последовательной форме, достаточной для его последующего воссоздания. Надо заметить, что последовательная форма должна обладать возможностью определения и проверки классов, поля из которых в ней содержатся.

Источник кода

Источник кода определяет местоположение классов используемых агентом. Это может быть как агентская система, так и не распределенный объект, такой как Web-сервер. Если агентская система ответственна за предоставление необходимых классов, источник кода должен содержать достаточный объем информации для нахождения агентской системы. Такая агентская система называется провайдером классов.

Коммуникационная инфраструктура

Коммуникационная инфраструктура обеспечивает транспортные службы связи (например RPC), службу имен и службу безопасности для агентских систем.

Локальность

В случае мобильных агентов, локальность определяется как близость к адресату информации в пределах отдельной машины или сети.

Итак, были рассмотрены базовые понятия, относящиеся ко всем реализациям агентских систем.


Предыдущий | Следующий


Питер Дж. ДеПаскуале
"Java: Карманный справочник"
Подробнее>>
Заказать>>


Сергей Дунаев
"Java для Internet в Windows и Linux"
Подробнее>>
Заказать>>

Узнай о чем ты на самом деле сейчас думаешь тут.


[an error occurred while processing this directive]



Apache Struts 2.0.11
Apache MyFaces Trinidad Core 1.2.3.
Sun переводит мобильные устройства с Java ME на Java SE
Хакерская атака!