Коммуникация и миграция встраиваемой платформы мобильных агентов, поддерживающей мобильность кода во время выполнения
Авторы: Мохамед Бахай, Каола Аддакири, Норэддин Гераби
Источник:Communication and migration of an embeddable
mobile agent platform supporting runtime code
mobility
Аннотация
В этой статье мы представляем дизайн и реализацию Mobile-C, платформы IEEE для интеллектуальных физических агентов (FIPA), совместимой с агентами для мобильных агентов C / C ++. Такое соответствие обеспечивает совместимость между агентом Mobile-C и другими агентами от гетерогенных платформ для мобильных агентов, совместимых с FIPA. Кроме того, библиотека Mobile-C была разработана для поддержки синхронизации с целью защиты общих ресурсов и обеспечения способа детерминированного определения времени выполнения мобильных агентов и потоков. Новый вклад этой работы заключается в объединении механизмов миграции агентов и их синхронизации.
Ключевые слова:
Мобильный агент; Платформа мобильного агента; Связь с агентом.
1 Введение
Мобильный агент – это проектная программа с постоянной идентификацией, которая переносится в сети и взаимодействует со своей средой и другим агентом [1]. Он применяется к множеству распределенных приложений, таких как производство [2-4], электронная коммерция [5-7], управление сетью [8, 9], здравоохранение [10] и развлечения [11]. Во время выполнения, мобильные агенты могут быть динамически созданы и отправлены в системы назначения для выполнения задач с обновленным кодом. Мобильность позволяет мобильному агенту переноситься с одного хоста на другой в сети и предоставляет несколько приложений с гибкостью и адаптируемостью, которые способны удовлетворить требования и условия в распределенной среде.
Важность технологии мобильных агентов при разработке распределенных приложений в Интернете привела к тому, что OMG (Группа управления объектами) определила спецификации MASIF (Механизм совместимости системы мобильных агентов) для взаимодействия различных систем с мобильными агентами. Еще одно усилие сделано FIPA (Фонд интеллектуальных физических агентов), чтобы указать архитектуру, а также семантику связи между мобильными агентами.
Большинство используемых мобильных платформ-агентов ориентированы на Java. Несколько мобильных агентских платформ, поддерживающих Java-код агента, включают Mole [12], Aglets [13], Concordia [14], JADE [15] и Agents [16]. Использование стандартного языка, такого как язык кода мобильного агента, который обеспечивает как высокоуровневые, так и низкоуровневые функции, является хорошим выбором для обработки большим количеством распределенных приложений. Выбор C / C ++ является подходящим для языка кода мобильного агента, поскольку он предоставляет мощные функции с точки зрения доступа к памяти. Кроме того, C - это язык, который может легко взаимодействовать с различными аппаратными устройствами низкого уровня. Ara [17, 18] и TACOMA [19] – это две платформы мобильных агентов, поддерживающие код мобильного агента C, а Ara также поддерживает C ++. Код мобильного агента скомпилирован как байтовый код [20] и машинный код [21] для исполнения как в Ara, так и в TACOMA соответственно.
Mobile-C [22-25] был первоначально разработан как автономная платформа для мобильных агентов, совместимая с IEEE FIPA, для размещения приложений, в которых задействованы аппаратные средства низкого уровня и встроенные системы [26]. Большинство систем написаны на C / C ++; Mobile-C выбрал C / C ++ в качестве языка мобильного агента, поскольку C имеет преимущество для простого взаимодействия с программами управления и базовым оборудованием. Кроме того, Mobile-C интегрировал встроенный интерпретатор C / C ++, Ch [27-29], в качестве механизма выполнения агентов (AEE) для запуска кода мобильного агента. Перенос мобильного агента в Mobile-C осуществляется посредством сообщений языка связи FIPA-агента (ACL). Использование сообщений ACL FIPA для миграции агентов в системах агентов, совместимых с FIPA, упрощает платформу агентов, уменьшает усилия разработчиков и легко обеспечивает межплатформенную миграцию благодаря хорошо продуманным коммуникационным механизмам, предоставляемым на платформе агента. Сообщения для связи и миграции агентов представлены в FIPA ACL и закодирован в XML. Кроме того, библиотека Mobile-C была разработана для поддержки синхронизации [26] для защиты общих ресурсов и обеспечения способа детерминированного определения времени выполнения мобильных агентов и потоков.
В этой статье мы представляем библиотеку Mobile-C, которая может вставлять Mobile-C в любые программы на C / C ++, чтобы облегчить разработку приложений на основе мобильных агентов, а также возможность комбинировать миграцию мобильного агента по сети и синхронизацию механизм, существующий в Mobile-C. Мобильные агенты – это приложение, которое может управлять платформой агента, его модулями и другими мобильными агентами, а также плавно взаимодействовать с различными низкоуровневыми аппаратными устройствами. Использование сообщений ACL FIPA для миграции агентов в системах-агентах, совместимых с FIPA, упрощает платформу агентов, так как связь и миграция агентов могут быть достигнуты благодаря тому же механизму связи, который предоставляется на платформе агента. Для выполнения и взаимодействия нескольких мобильных агентов были добавлены гибкие механизмы синхронизации. В этом документе предлагается новый подход путем объединения двух концепций миграции миграции и синхронизации в Mobile-C.
Остальная часть статьи структурирована следующим образом. В разделе 2 мы представляем концепцию и свойства мобильного агента. В разделе 3 представлена архитектура Mobile-C. В разделе 3 представлен перенос мобильного агента по сети с нескольких хостов. Раздел 4 описывает структуру программы и реализацию компонента агентства. В разделе 5 приведен пример мобильного агента, который переносится с хостов через сообщения мобильного агента и иллюстрирует поддержку синхронизации в Mobile-C.
2 Мобильные агенты
Агент определяется как «лицо, действующее от имени других людей» [30]. В контексте информатики мобильный агент рассматривается как объект, который перемещается с одной машины на другую в сети для выполнения определенных задач от имени пользователя [31].
Мобильные агенты обладают следующими свойствами, которые отличают их от других программ [32]:
- Адаптивность – мобильность агента, необходимая для изучения поведения пользователя и адаптации его к пользователю. Действительно, чтобы адекватно развиваться различия между гетерогенными системами, агент должен иметь возможность принимать изменения во время исполнения.
- Автономия – мобильный агент должен иметь возможность принимать собственное решение для выполнения задач пользователя, также он должен иметь возможность переходить с одного компьютера на другой в сети и выполнять задачи пользователя.
- Связь – мобильный агент должен иметь возможность общаться с другими агентами системы, чтобы обмениваться информацией и получать выгоду от знаний и опыта других агентов.
- Мобильность – мобильный агент имеет возможность перемещаться с одного узла на другой, перемещая код агента или путем сериализации кода и состояния, чтобы позволить агенту продолжить выполнение в новом контексте.
- Стойкость – постоянный агент, который сможет сохранить знания и состояние в течение длительного периода времени, чтобы получить доступ позднее. Как только мобильный агент настроен, он не зависит от системы, которая была инициирована, и она автоматически восстанавливается, когда агент завершается или когда он покраснет из памяти в базу данных.
3 Архитектура Mobile-C
Система Mobile-C представлена на рисунке 1. Агентства являются основными строительными блоками системы и размещаются в каждом узле сетевой системы для поддержки стационарных агентов (SA) и мобильных агентов (MA) во время выполнения. Они служат для размещения агентов и агентов обмена сообщениями, перемещения мобильных агентов, сбора знаний о других агентах и предоставления нескольких мест, в которых может быть запущен агент. Ядро агентства предоставляет местную услугу агентам и доверенным лицам удаленных агентств. Принцип агентства и их функциональные возможности можно резюмировать следующим образом [33]:
- Система управления агентом (AMS): AMS управляет жизненным циклом агентов в системе. Он связывает создание, аутентификацию, регистрацию, удаление, выполнение, миграцию и постоянство агентов. AMS также отвечает за прием и отправку агента мобильного агента. Каждый агент должен зарегистрироваться в AMS для получения действительной AID.
- Канал связи агента (ACC): ACC передает сообщения между локальными и удаленными объектами. Взаимодействие и координация мобильных агентов и хост-систем может выполняться через язык связи агента (ACL).
- Агент Security Manager (ASM): ASM отвечает за защиту доступа для платформы и инфраструктуры.
- Справочник посредника: DF обслуживает желтые страницы. Агенты в системе могут регистрировать свои услуги с DF для предоставления сообществу. Они также могут искать необходимые услуги с DF.
- Агент Execution Engine (AEE): AEE служит рабочей лошадкой для мобильных агентов. Мобильные агенты должны находиться внутри движка для выполнения. AEE должен быть независимым от платформы для поддержки мобильного агента, выполняющего гетерогенную сеть.

Рисунок 1 – Системная архитектура агентств в Mobile-C.
4 Миграция мобильных агентов
Мобильный агент – это программный агент, который может перемещаться с одного хоста на другой по сети и возобновлять выполнение в новом хосте. Миграция и выполнение мобильных агентов поддерживаются системой мобильных агентов. В предыдущих исследованиях, Чен и другие разработали систему мобильных агентов под названием Mobile-C. Mobile-C поддерживает слабую миграцию. Задача мобильного агента можно разделить на несколько подзадач, которые могут выполняться на разных хостах и перечислены в списке задач, как показано на рисунке 2. Список задач можно изменить, добавив новые подзадачи и новые условия. Динамическое изменение списка задач повышает гибкость мобильного агента. Таким образом, как только мы запускаем выполнение подзадачи в хосте, мобильный агент не может двигаться до конца выполнения.

Рисунок 2 – Миграция агента на основе списка задач и указателя прогресса задачи.
Перемещение мобильных агентов осуществляется посредством сообщений мобильного агента ACL, закодированных в XML, которые передают мобильные агенты в качестве содержимого сообщения. Сообщение мобильного агента содержит состояние данных и код агента. Состояние данных мобильного агента включает общую информацию о мобильном агенте как имя агента, владельца агента и дома агента, а также задачи, которые мобильный агент будет выполнять на хостах назначения. Состояние и код данных будут обертываться в сообщение ACL и передаваться на удаленный хост через Канал связи агента. Перемещение мобильного агента на основе сообщений ACL прост и эффективен для миграции агентов в системах, совместимых с FIPA, поскольку эти системы имеют обязательные механизмы для обмена сообщениями, передачи и обработки.
5 Структура программы и осуществление компонента агентства
Агентство является основной программой, работающей в каждом узле сети [23]. Когда запускается агентство, система инициализируется, и потоки создаются для всех компонентов платформы агента.
После инициализации системы агентство ожидает определенных событий. Когда агент получает запрос на запуск мобильного агента, он создает новый поток и встраивает Embeddable C / C ++ Interpreter-Ch в поток для выполнения кода мобильного агента. После переноса мобильного агента на другие хосты этот поток автоматически завершается (рисунок 3). Если агент получит запрос на завершение системы, выполнение платформы агента и самой системы будет завершено. В текущей реализации каждый мобильный агент запускается в встраиваемом Ch внутри собственного потока.

Рисунок 3 – Структура программы агентства.
Согласно спецификациям FIPA, каждое агентство должно предоставлять механизмы для приема и отправки сообщений. Это требование удовлетворяется тремя компонентами: нить прослушивания, соединительная нить и поток обработки ACC, как показано на рисунке 4. Поток прослушивания служит для прослушивания клиентских подключений. Когда новый клиент подключения будет принят, он будет добавлен в список соединений. Кроме того, соединительная нить отвечает за соединение с другими хостами. Поток обработки ACC обрабатывает списки клиентских подключений и запросы на подключение удаленных хостов. ACC облегчает удаленный агент для связи агента и платформы удаленного агента с коммуникацией платформы агента через сообщения ACL. Удаленная горизонтальная связь в Mobile-C реализована поверх TCP / IP, а в транспортном протоколе используется протокол HTTP (протокол передачи гипертекста).

Рисунок 4 – Многопоточная реализация платформы агента.
6 Поддержка синхронизации в Mobile-C
Среди свойств мобильных агентов – способность иммигрировать для выполнения задач, существующих на удаленном хосте. Цель этого примера – использовать встроенную систему мобильных агентов для защиты общих ресурсов, используя синхронизацию и объединяющую ее с переносом мобильных агентов с хостов.
Библиотека Mobile-C позволяет синхронизировать через мьютекс. Мьютекс – это программа, которая позволяет нескольким потокам совместно использовать один и тот же ресурс, но не одновременно.
В приведенном ниже примере демонстрируется возможность мьютекса MobileC для защиты ресурса, который может быть разделен между двумя или более агентами на нескольких хостах. Как показано в программе 1, мобильный агент передается агентством в хосте fsts1, посещает удаленный хост fsts2, а затем host fsts3. Сообщение мобильного агента представлено в Extensible Markup Language (XML), оно содержит информацию о мобильном агенте и задачи, которые будет выполняться на хостах назначения. Общая информация мобильного агента содержит: имя агента, владельца агента и дом агента. Информация о задаче, например, оператор <TASK task = "2" num = "0"> показывает, что этот мобильный агент выполняет две задачи для выполнения, и еще не выполнена задача. Элемент DATA содержит общую информацию о количестве элементов, имя возвращаемой переменной задачи, полноту задачи и хост для выполнения задачи. Подэлемент DATA ELEMENT содержит данные возврата из задачи выполнения, а подэлемент AGENT_CODE содержит программу C, которая будет выполнена в удаленном режиме хоста.

Программа 1 – Содержимое сообщения мобильного агента от хоста fsts1 до fsts2 и для размещения fsts3.
Как показано в программе 2, мобильный агент 1 «MA1» инициализирует мьютекс с идентификатором 55 через функцию mc_SyncInit () и определяет две функции: SetN1 () и GetN1 () в хосте fsts2. После посещения этого хоста мобильный агент 1 «MA1» посещает хост fsts3 и определяет также две функции SetN2 () и GetN2 (). Результат, полученный от хоста fsts2, отправляется на хост fsts3, и данные возврата будут включены в подэлементе DATA_ELEMENT.

Программа 2 – Мобильный агент, который содержит глобальную переменную и определяет функцию для доступа к глобальным переменным.
Как показано в программе 3, задача мобильного агента 2 «MA2» заключается в выполнении операции, задающей переменную. Операция включает блокировку мьютекса через функцию mc_MutexLock (), установку глобальной переменной путем вызова SetN1 () из хоста fsts2 и SetN2 () из хоста fsts3via в функцию mc_CallAgentFunc () и разблокирование мьютекса с помощью функции mc_MutexUnlock ().

Программа 3 – Мобильный агент, который устанавливает переменную.
Аналогично, как показано в программе 4, задача мобильного агента 3 «MA3» блокирует мьютекс, получает глобальную переменную и разблокирует мьютекс как с хоста fsts2, так и с fsts3.

Программа 4 – Мобильный агент, который получает переменную от другого агента.
Результаты мобильного агента 1 "MA1", мобильного агента 2 "MA2" и мобильного агента3 "Ma3", полученные как из хоста fsts2, так и fts3, отправляются обратно в агентство fsts.
7 Выводы
В этой работе мы представляем дизайн и реализацию платформы IEEE FIPA-совместимого агента Mobile-C. Mobile-C интегрирует встраиваемый интерпретатор C / C ++-Ch-в платформу в качестве механизма выполнения мобильного агента для поддержки мобильного агента. Перенос мобильного агента осуществляется посредством сообщений ACL. Мобильные агенты, включая как состояние данных, так и код, переносятся на платформу удаленного агента через сообщения ACL, которые кодируются в XML, а выполнение мобильных агентов возобновляется указателем прогресса задачи. Библиотека Mobile-C поддерживает синхронизацию между мобильными агентами и потоками, поскольку функции синхронизации защищают общие ресурсы и обеспечивают способ детерминированного определения времени выполнения мобильных агентов и перехода на удаленный хост.
В нашей будущей работе эта структура будет протестирована и расширена в различных типах промышленных приложений, таких как электронная торговля и управление сетью.
Литература
- D.Chess,C.Harrison, A.Kershenbaum,“Mobile Agentes: Are They a Good Idea?”, IBM ResearchReport, 1998 [Online] Available : http://www.research.ibm.com/iagentes/paps/mobile -idea.ps.
- W. Shen, D. Xue, D.H. Norrie, An agent-based manufacturing enterprise infrastructure for distributed integrated intelligent manufacturing systems, in: Proceedings of the 3rd International Conference on the Practical Applications of Agents and Multi-Agent Systems (PAAM-98), London, UK, 1998, pp. 533–548.
- H. Wada, S. Okada, An autonomous agent approach for manufacturing execution control systems, Integrated Computer-Aided Engineering 9 (3) (2002) 251–262.
- H.V.D. Parunak, A.D. Baker, S.J. Clark, The AARIA agent architecture: from manufacturing requirements to agent-based system design, Integrated Computer-Aided Engineering 8 (1) (2001) 45–58.
- M. Yokoo, S. Fujita, Trends of internet auctions and agent-mediated web commerce, New Generation Computing 19 (4) (2001) 369–388.
- T. Sandholm, eMediator: a next generation electronic commerce server, Computational Intelligence 18 (4) (2002) 656–676.
- S.P.M. Choi, J. Liu, S. Chan, A genetic agent-based negotiation system, Computer Networks: The International Journal of Computer and Telecommunications Networking 37 (2) (2001) 195–204.
- W.E. Chen, C. Hu, A mobile agent-based active network architecture for intelligent network control, Information Sciences 141 (1–2) (2002) 3–35.
- L. Chou, K. Shen, K. Tang, C. Kao, Implementation of mobile-agentbased network management systems for national broadband experimental networks in Taiwan, Holonic and Multi-Agent Systems for Manufacturing (Lecture Notes in Computer Science) 2744 (2003) 280– 289.
- J. Huang, N.R. Jennings, J. Fox, Agent-based approach to health care management, Applied Artificial Intelligence 9 (4) (1995) 401–420.
- I. Noda, P. Stone, The RoboCup soccer server and CMUnited clients: implemented infrastructure for MAS research, Autonomous Agents and Multi-Agent Systems 7 (1–2) (2003) 101–120.
- K.Straber, J.Baumann and F.Hohl.. Mole - A Java Based Mobile Agent System. Institute for Parallel and Distributed Computer Systems, University of Stuttgart,1997.
- D. Lange, M.Oshima. Programming and Deploying Java Mobile Agents with Aglets. Addison-Wesley: MA, 1998.
- D.Wong, N.Paciorek, T.Walsh, J.DiCelie, M.Young, B.Peet. Concordia: An infrastructure for collaborating mobile agents. Proceedings of the First International Workshop on Mobile Agents (MA’97) (Lecture Notes in Computer Science, vol. 1219). Springer: Berlin, 1997; 86–97.
- F.Bellifemine, G.Caire, A.Poggi, G.Rimassa.JADE: A software framework for developing multi-agent applications.Lessons learned. Information and Software Technology 2008; 50(1–2):10–21.
- R.Gray, G.Cybenko, D.Kotz,R.Peterson, D.Rus. D’Agents: Applications and performance of a mobile-agent system. Software—Practice and Experience 2002; 32(6):543–573.
- H.Peine. Run-time support for mobile code. PhD Dissertation, Department of Computer Science, University of Kaiserslautern, Germany, 2002.
- H.Peine .Application and programming experience with the Ara mobile agent system. Software—Practice and Experience 2002; 32(6):515–541.
- D.ohnansen, K.Lauvset, R.V.Renesse, F.B. Schneider, N.P. Sudmann, K. Jacobsen. A TACOMA retrospective.Software—Practice and Experience 2002; 32(6):605–619.
- MACE—Mobile agent code environment. Available at: http://wwwagss.informatik.uni-kl.de/Projekte/Ara/mace.html [last modified 10 August 2004].
- N.P.Sudmann,D.Johansen. Adding mobility to non-mobile web robots. Proceedings of the IEEE ICDCS00 Workshop on Knowledge Discovery and Data Mining in the World-wide Web, Taipei, Taiwan, 2000; 73–79.
- B.Chen, H.H.Cheng. A run-time support environment for mobile agents. Proceedings of ASME/IEEE International Conference on Mechatronic and Embedded Systems and Applications, No. DETC2005-85389, Long Beach, CA, September 2005.
- B.Chen,H.H.Cheng,J.Palen. Mobile-C: A mobile agent platform for mobile C/C++ agents. Software—Practice and Experience 2006; 36(15):1711–1733.
- B.Chen, D.Linz, H.H.Cheng. XML-based agent communication, migration and computation in mobile agent systems. Journal of Systems and Software 2008; 81(8):1364–1376.
- Mobile-C: A multi-agent platform for mobile C/C++ code. Available at: http://www.mobilec.org.
- Y.C. Chou, D. Ko, H. H. Cheng, An embeddable mobile agent platform supporting runtime code mobility,interaction and coordination of mobile agents and host systems, Information and Software Technology 52 (2010) 185–196 .
- H.H.Cheng. Scientific computing in the Ch programming language. Scientific Programming 1993; 2(3):49–75 .
- H.H.Cheng.Ch: A C/C++ interpreter for script computing. C/C++ User’s Journal 2006; 24(1):6–12.
- Ch—An embeddable C/C++ interpreter. Available at: http://www.softintegration.com .
- P.M .Reddy, Mobile Agents Intelligent Assistants on the Internet, July 2002
- A. Kaur , S.Kaur, Role of Mobile Agents In Mobile Computing, Proceedings of National Conference on Challenges & Opportunities in Information Technology (COIT-2007) RIMT-IET.
- M. L. Griss, Software Agents as Next Generation Software Components, Chapter 36 in Component-Based Software Engineering: Putting the Pieces Together, Edited by George T. Heineman, Ph.D. & William Councill, M.S., J.D., May 2001,Addison-Wesley.
- B. Chen, H. H. Cheng, J.Palen, Integrating mobile agent technology with multi-agent systems for distributed traffic detection and management systems, Transportation Research Part C 17 (2009) 1–10.