Мобільні агенти і обчислення
Поточні дослідження встановлюють, як контролювати взаємодію між такими агентами, їхніми внутрішніми під-системами і людиною. Регульована автономія є цікавою, коли маємо справу з системами, які повинні функціонувати автономно протягом декількох років, або, наприклад, коли необхідно, щоб система сама прийняла рішення про припинення своєї діяльності без отримання інструкцій з боку оператора-людини.
В цій роботі буде описано загальні принципи функціонування мобільних агентів (мігруючих програм), а також буде розглянуто, як міграція програми може бути здійснена на рівні мови/середовища програмування.
Мобільність
Мобільні агенти знедавна стали вельми цікавою темою для обговорення в колі дослідників. Існує вже багато робіт, які досліджують потенціал цієї нової парадигми. Хоч й досі немає остаточної відповіді на питання, до чого може дійти розвиток мобільних агентів, на них покладають великі надії, а тому обсяг робіт, присвячених ним, зростає.
Поняття про мобільних агентів було встановлене в 1994, як опис обчислювального середовища, відомого, як Telescript. У цьому середовищі програми під час виконання можуть зупинити власне виконання і перемістити себе з одного комп’ютера до іншого в обчислювальній мережі, відновивши своє виконання після “прибуття” на нове місце.
В цій роботі мобільний агент буде визначений, як: програма - агент, який може автономно мігрувати з одного комп'ютера до іншого в обчислювальній мережі. В розділі, який присвячений середовищу створення міграційних програм Obliq, зроблено детальний огляд того, з чого саме складаються такі програми, а зараз спробуємо неформально дослідити, як працюють ці системи.За своєю природою, мобільним агентам притамано поширюватися. Як такі, вони повинні функціонувати на різних платформах та операційних системах для реалізації свого потенціалу. Ця потреба виразилася в тому, що мобільних агентів створюються в таких системах, які дозволяють використовувати сценарії, або представляти код програми у вигляді байт-коду – такого набору інструкцій, який може бути проінтерпретований. Інтерпретація усуває необхідність перекомпіляції після прибуття агента на новий комп’ютер, і тільки вимагає такого середовища в цьому комп'ютері, яке здатне коректно відновити роботу агента після його прибуття. Середовище, в якому можуть функціонувати агенти, називається сервером агентів.
Ці сервери працюють на зразок спільного робочого середовища, в якому агенти всіх типів можуть обмінюватися один з одним повідомленнями. Сервери агентів надають сервіси для прибуття агентів і здійснюють управління агентами в цьому середовищі. Через сервер агент може отримати інформацію про середовище, послати запити до середовища і інших агентів та отримати повідомлення від активних в даний момент агентів та середовища. Мобільні агенти можуть взаємодіяти шляхом передачи повідомлень як безпосередньо між собою, так й скориставшись сервісами середовища. Системи мобільних агентів абсолютно відрізняються від існуючих традиційних розподілених систем, які поширені в індустрії. Ці системи можуть бути охарактерізовані, як такі, що надають сервіси для локальної взаємодії між агентами, і реалізують мобільні логіку і дані.
Ця відмінність робить мобільних агентів особливо корисними. У протилежність системам з мобільним кодом, наприклад аплетам Java, які містять послідовність команд, і фактично мають тільки мобільну логіку, або традиційним розподіленим системам, що використовують віддалений виклик процедур (RPC) і мають тільки мобільні дані, системи мобільних агентів поєднують в собі як мобільність коду, так і мобільність даних.
Переваги мобільних агентів
Переваги мобільних агентів полягають в простоті встановлення серверної бази, гнучкості сервера, а також в локальній взаємодії в реальному часу. Системи мобільних агентів реалізують підтримку клонування, постійної пам'яті агентів і групового обміну повідомленнями.
Більшість програмної логіки, яка за діючою парадігмою статичних клієнт-серверних взаємодій була інкапсульована в статичних клієнтах або серверах, в мобільних системах перенесена в агента, гарантуючи при цьому, що встановлена база сервера для систем мобільних агентів цілком проста. Все, що входить в функції сервера – це підтримка міграцій агентів і забезпечення доступу до будь-яких ресурсів в межах середовища. Це дозволяє досягти великої гнучкості в роботі сервера, тому що поступаючий агент може сам ефективно змінити поведінку сервера прибуття, як то кажуть, “на льоту”. Системи мобільних агентів розглядають сервер, як ізольовану ділянку, на якій мобільний агент може скористатися локальними ресурсами. Ці ресурси не є доступними безпосередньо через мережу, і тому для користування ними мобільний агент повинен транспортувати себе сам до ресурсу або, в більш складному випадку, “послати підлеглого”, тобто запросити в деякого спеціального агента доставку даних.