Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Общие вопросы проектирования агентов и MAC




Проектирование и реализация агентов и мультиагентных систем

 

Идеи программных агентов вообще и интеллектуальных агентов, в частности, привлекательны, так как позволяют людям делегировать им свои полномочия по решению сложных задач. Однако разработка MAC и действительно интеллекту­альных агентов требует специальных знаний и является сложной ресурсоемкой задачей. Ведь программные агенты - новый класс систем программного обеспе­чения (ПО), которое действует от лица пользователя. Они являются мощной аб­стракцией для «визуализации» и структурирования сложного. Но если процеду­ры, функции, методы и классы - известные абстракции, которые разработчики ПО используют ежедневно, то программные агенты - это принципиально новая парадигма, неизвестная большинству из них даже сегодня.

Вместе с тем развитие и внедрение программных агентов было бы, по-видимому, невозможно без предыдущего опыта разработки и практического освоения кон­цепции открытых систем [Орлик, 1997], которые характеризуются свойствами:

 

• расширяемости/масштабируемости (возможность изменения набора состав­ляющих системы);

• мобильности/переносимости (простота переноса программной системы на разные аппаратно-программные платформы);

• интероперабельности (способность к взаимодействию с другими системами);

• дружелюбности к пользователю/легкой управляемости.

Одним из результатов внедрения концепции открытых систем в практику стало распространение архитектуры «клиент-сервер» [Орлик, 1997]. В настоящее вре­мя выделяются следующие модели клиент-серверного взаимодействия:

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

• «Тонкий клиент - толстый сервер». Модель, активно используемая в связи с распространением Интернет-технологий и, в первую очередь, Web-броузеров. В этом случае клиентское приложение обеспечивает реализацию интерфейса, а сервер объединяет остальные части приложений.

 

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

При динамическом подходе МАС-приложения используют парадигму мобиль­ных агентов.

 

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

 

Часть исследователей считают, что мобильные агенты обеспечивают более про­грессивный метод работы в сетевых приложениях. Другие авторы отмечают, что мобильные агенты привносят опасность с точки зрения обеспечения секретности информации и загруженности сети [Chess et. al. 1995].

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

 

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

• позволяют преодолеть ограничение локальных ресурсов (например, если воз­можности процессора и объем памяти клиентского компьютера малы, то, мо­жет быть, целесообразнее использование мобильных агентов, выполняющих вычисления на сервере);

• облегчают координацию (например, запросы к удаленным серверам выпол­няются мобильными агентами как отдельные задачи, а потому не нуждаются в координации);

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

 

Мобильные агенты являются перспективными для MAC, но в настоящее время нет единых стандартов их разработки и все еще остается нерешенным ряд про­блем, таких как легальные способы перемещения агентов по сети, верификация агентов (в частности, защита от передаваемых по сети вирусов), соблюдение агентами прав частной собственности и сохранение конфиденциальности ин­формации, которой они обладают, перенаселение сети агентами, а также совмес­тимость кода агента и программно-аппаратных средств сетевой машины, где он исполняется [Wayner, 1995].

В настоящее время наиболее известными технологиями реализации статических и динамических распределенных приложений являются программирование сокетов, вызов удаленных процедур - RPC (Remote Procedure Call), DCOM (Mic­rosoft Distributed Component Object Model), Java RMI (Java Remote Method In­vocation) и CORBA (Common Object Request Broker Architecture) [Maurer et al, 1998]. Вместе с тем с точки зрения разработки и реализации MAC наиболее важными, по-видимому, являются последние три - DCOM, Java RMI и CORBA [Gopalan, 1999].

Модель Microsoft DCOM является объектной моделью, которая поддерживается Windows 95, Windows NT, Sun Solaris, Digital UNIX, IBM MVS и др. Основная ее ценность - в предоставлении возможностей интеграции приложений, реализо­ванных в разных системах программирования.

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

CORBA является частью ОМА (Object Management Architecture), разработанной для стандартизации архитектуры и интерфейсов взаимодействия объектно-ори­ентированных приложений. Интерфейсы между CORBA-объектами определя­ются через специальный язык IDL (Interface Definition Language), который явля­ется языком описания интерфейсов. Сами интерфейсы могут при этом быть реализованы на любых других языках программирования и присоединены к CORBA-приложениям. В рамках стандартов предполагается, что CORBA-объекты могут коммуницировать с DCOM-объектами через специальные CORBA-DCOM мосты (Bridges).

Технологии Java RMI и CORBA являются, по-видимому, на сегодняшний день самыми гибкими и эффективными средствами реализации распределенных при­ложений [Gopalan, 1999]. Эти технологии очень близки по своим характеристи­кам. Основным преимуществом CORBA является интерфейс IDL, унифицирую­щий средства коммуникации между приложениями и интероперабельность с другими приложениями. С другой стороны, Java RMI является более гибким и мощным средством создания распределенных приложений на платформе Java, включая возможность реализации мобильных приложений. В настоящее время еще не вполне ясно, какая из этих концепций «победит» в борьбе за мультиагентные системы. Вмешаться в этот процесс может и модель DCOM, активно «продвигаемая» компанией Microsoft. Но анализ существую­щих реализаций MAC показывает, что пока более распространенным здесь явля­ется подход Java RMI.

Выше кратко обсуждались вопросы стратегии программного обеспечения распре­деленных приложений. Если же вернуться к проблематике MAC, то все про­граммные средства для их разработки и реализации на современном этапе можно разделить на два больших класса: МАС-библиотеки и МАС-среды. Впечатляю­щий список сайтов, где представлена информация о том и другом программном обеспечении, как из коммерческих, так и из исследовательских организаций, представлен в Интернет по адресу http://www.reticular.com/. Оставляя в стороне вопросы проектирования и реализации МАС-библиотек, ко­торые, конечно, являются базисом для создания мультиагентных приложений, но выходят за рамки данного издания, в оставшейся части настоящего параграфа мы сосредоточимся на обсуждении инструментария для построения MAC. При этом нас будут интересовать, в первую очередь, модели, методы и средства под­держки процессов проектирования агентов и мультиагентных систем. Одним из удачных примеров систем данного класса является, на наш взгляд, ин­струментарий AgentBuilder компании Reticular Systems, Inc. [AgentBuilder, 1999] -одного из лидеров в этой области, к обсуждению, которого мы и переходим.

 




Поделиться с друзьями:


Дата добавления: 2015-07-02; Просмотров: 329; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.