«Применение ит в системах Мобильных агетов»

Вид материалаРеферат
Глава 3.Использование мобильных агентов
Классификация и свойства агентов
Области применения мобильных агентов
Объекты стандартизации
Перемещение агентов
Тип и местоположение агентской системы
Требования к реализации АС
Обеспечение переносимости кода на различные платформы
Доступность на множестве платформ
Поддержка сетевого взаимодействия
Многопоточная обработка
Подобный материал:
1   2   3   4

Глава 3.Использование мобильных агентов


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

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

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

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

Если понятие места не поддерживается, его функции берет на себя сама агентская система.

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

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


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

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

WHEN event IF condition THEN action;
  • проактивность - способность решать задачи и достигать цели; в отличие от реактивных агентов, они не просто реагируют на изменения среды, но и сами ее опрашивают;
  • способность существовать как постоянно выполняющийся процесс, точнее, иметь собственный поток управления;
  • способность выполняться от имени некоторого владельца;
  • гибкость - действия агентов не фиксированы жестко;
  • интеллектуальность или обучаемость - способность находить новые решения; такие агенты могут изменять свое поведение, используя как свой опыт, так и опыт других агентов.

Что же касается классификации систем мобильного кода, выделяют несколько направлений:

1) по источнику инициализации запроса на перемещение кода:
  • источником кода;
  • получателем кода;
  • самим кодом.

Примером, первого случая служат системы управления информационными системами, которые посылают мобильный код для выполнения в другом узле информационной системы с целью выполнения управляющего воздействия. Примером, второго случая служит уже приведенный пример загрузки " onclick="return false">
Стоит упомянуть, что согласно теории агентных технологии, под программным агентом понимается объект, который обладает собственным потоком управления, соответственно самостоятельно принимает решения о собственном перемещении. В первом случае, мобильный код также может называться агентом управления.

2) по уровеню мобильности:
  • Слабо мобильные;
  • Сильно мобильные.

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

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

Будем придерживаться определения, согласно которому первые три свойства являются обязательными для агента, а остальные - необязательными. Классификация же агентов - от "слабых" к "сильным", то есть по степени, в которой проявляются эти свойства. Как минимум агент - это сущность, которая взаимодействует со своим окружением. Пример работы агентов разных типов: один "большой", интеллектуальный агент посылает множество "маленьких", мобильных агентов, которые осуществляют поиск данных, а он сам - ее обработку.
    1. Области применения мобильных агентов


Рассмотрим в каких задачах могут применяться мобильные агенты:

1) Мобильные вычисления. Миграция агентов может поддерживаться не только между постоянно подсоединенными к сети узлами, но и между мобильными платформами, подключаемыми к постоянной сети на некоторые промежутки времени и возможно по низкоскоростным каналам. Клиент подсоединяется к постоянной сети на короткий промежуток времени с мобильной платформы, отправляет агента для выполнения задачи и отсоединяется; затем клиент подсоединяется к другой точке сети и забирает результаты работы агента. Второй вариант - сервер, на который должен переместиться агент, подсоединяется к сети, а затем отсоединяется. В этом случае агент должен уметь переместиться на такой временно подсоединяемый сервер и вернуться в постоянную сеть.

2) Задачи управления информацией:
  • Поиск информации. Большие объемы информации на сегодняшний день сильно затрудняют поиск и обработку данных. Человек порой не в состоянии найти необходимую ему информацию и проанализировать ее. Использование же агента на основе мобильных технологий, который странствует по сети в поисках информации, лучше всего удовлетворяющей потребности человека. Поисковые агенты содержат сведения о различных информационных источниках, включая тип информации, способ доступа к ней, а также такие характеристики информационного источника, как надежность и точность данных;
  • Отбор или как еще называют в нотации МТ обработка информации. Под отбором информации понимается процесс обработки из всех данных, приходящих к клиенту, только те данные, которые могут быть интересны клиенту. Более распространено использование обработки информации на основе мобильных агентов в комбинации с поисковыми агентами, когда сначала осуществляется поиск информации, а затем ее отбор согласно требованиям запроса;
  • Мониторинг данных. Извещение пользователя об изменениях в различных источниках данных в реальном времени. Например, мобильный агент перемещается на вычислительный узел, на котором расположен источник данных. Этот подход эффективнее, чем использование статического агента, посылающего запросы источнику данных;
  • Универсальный доступ к данным. Агенты - посредники для работы с различными источниками данных, имеющие механизмы для взаимодействия друг с другом. Например, агент создает несколько агентов, каждый из которых работает со своим источником данных.

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


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

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

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

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

Управление агентами или стандартизация операций

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

Должен быть определен следующие аспекты:
  • стандартный путь создания агентов из данных для агента классов;
  • операция приостановки потока управления агента;
  • операция восстановления работы приостановленного потока управления;
  • операция завершения работы агента.

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

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

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

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

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

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

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

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

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

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

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

Итак, были рассмотрены основополагающие аспекты МТ, такие как свойства МА, области применения и использования мобильных агентов, основные требования для реализации и стандартизации агентной системы в нотации МТ.
    1. Требования к реализации АС


При разработке и реализации мобильных систем приходится решать несколько сложных проблем:
  • Обеспечение переносимости кода на различные платформы;
  • Доступность на множестве платформ;
  • Обеспечение атомарности выполнения и перемещения агентов;
  • Поддержка сетевого взаимодействия;
  • Обеспечение безопасности;
  • Многопоточная обработка;
  • Сериализации и десериализация объектов, загрузка классов.

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

Обеспечение переносимости кода на различные платформы

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

Доступность на множестве платформ

Это требование является продолжением предыдущего. Мобильные агенты должны осуществлять свою работу в гетерогенной компьютерной среде. Любой компьютер должен уметь принять и обеспечить работу мобильного агента.

Обеспечение атомарности выполнения и перемещения агентов.

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

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

Поддержка сетевого взаимодействия

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

Многопоточная обработка

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

Безопасность

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

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