або традиційним розподіленим системам, що використовують віддалений виклик процедур (RPC) і мають тільки мобільні дані, системи мобільних агентів поєднують в собі як мобільність коду, так і мобільність даних.
Переваги мобільних агентів
Переваги мобільних агентів полягають в простоті встановлення серверної бази, гнучкості сервера, а також в локальній взаємодії в реальному часу. Системи мобільних агентів реалізують підтримку клонування, постійної пам'яті агентів і групового обміну повідомленнями.
Більшість програмної логіки, яка за діючою парадігмою статичних клієнт-серверних взаємодій була інкапсульована в статичних клієнтах або серверах, в мобільних системах перенесена в агента, гарантуючи при цьому, що встановлена база сервера для систем мобільних агентів цілком проста. Все, що входить в функції сервера – це підтримка міграцій агентів і забезпечення доступу до будь-яких ресурсів в межах середовища. Це дозволяє досягти великої гнучкості в роботі сервера, тому що поступаючий агент може сам ефективно змінити поведінку сервера прибуття, як то кажуть, “на льоту”. Системи мобільних агентів розглядають сервер, як ізольовану ділянку, на якій мобільний агент може скористатися локальними ресурсами. Ці ресурси не є доступними безпосередньо через мережу, і тому для користування ними мобільний агент повинен транспортувати себе сам до ресурсу або, в більш складному випадку, “послати підлеглого”, тобто запросити в деякого спеціального агента доставку даних.
Можливо, найбільш цитована причина для відмови від мобільності полягає в тому, що в недалекому майбутньому Internet матиме достатню пропускну здатність, щоб підтримати весь трафік, і, що клієнт-серверні взаємодії через Web будуть виконуватися так саме швидко, як і взаємодії всередині єдиної машини, таким чином заперечуючи перевагу взаємодії, доступної за допомогою мобільних агентів.
Це спірна точка зору, але ми відкинемо це зараз, бо, наприклад, мережа, на яку зважають в NASA, надзвичайно величезна. Для взаємодії у космічному просторі локальна взаємодія є більш природньою, ніж віддалене керування.
Структура управління мобільного агента
Запропонована структура управління мобільними агентами полягає в тому, що кожний сервер надає простий інтерфейс для прийняття агента в своє середовище. Після входу в середовище агент стає спроможним доступитися до локальних ресурсів для виконання власної задачі.
На відміну від мобільного коду, який тільки сліпо виконується, мобільний агент може показати всі ознаки, які були в нього закладені, включаючи реактивність і навчання. Треба встановити, як узгоджується автономність і взаємодія між агентами. Якщо прибулий агент бажає скористатися простим ресурсом на комп’ютері, відповідальним за надання доступу до ресурсу покладається на сервер, і вже в його компетенції буде надання дозволу на використання ресурсу або заборона такого доступу через можливу небезпеку для інших агентів або для самого серверу. З другого боку, агент може забажати взяти завершене управління. Регламент надання таких повноважень агентам в даний момент досліджується і залишається центральним для успіху запропонованої структури керування мобільними агентами.
Мобільні обчислення – Obliq
Програмна модель створення мігруючих програм базується на засобах, які доступні в мові розподіленого сценарію Obliq.
В Obliq, довільні дані, в тому числі й процедури (код програми), можуть бути передані по мережі. Одиниця даних Obliq може бути представлена графом, при чому деякі вершини є змінними (це означає, що вони мають деякий стан, який може бути змінений присвоєнням), а інші вершини незмінні (означає, що вони не можуть бути змінені). Наприклад, текст процедури програми є незмінним і не може бути змінений, в той час, як поля в деякому об'єкті змінні через те, що цим полям взагалі можна присвоїти нові значення.
Коли граф даних передається на виконання до віддаленої процедури, або повертається від неї, будемо казати, що він передається по мережі. Зупинимось на передачі даних трохи детальніше.
Починаючись від даного кореня, граф даних копіюється від початкового сайту до машини призначення, при цьому змінні вершини не копіюються; в їхній позиції вписується посилання на місце в мережі, де вони насправді знаходяться. Наприклад, об'єкт (одна з основних структур даних) в Obliq ніколи не копіюється по мережі, замість цього на нього передається вказівник. На цей об'єкт потім можна віддалено послатися через цей самий мережевий вказівник, наприклад, віддалено викликати один з методів.
Процедури Obliq, подібно іншим даним, мають значення, яким можна маніпулювати і передавати. Значення процедури зветься припиненням, воно складається з тексту процедури та таблиці значень для глобальних змінних цієї процедури.
На відміну від механізму передачі даних по мережі, в Obliq існує примітив, який дозволяє дозволяє передати весь граф даних, як змінних, так і незмінних. Це необхідно при переміщені всього інтерфейсу користувача на інший хост. В графі даних можуть міститися дані про положення та параметри всіх вікон користувацького інтерфейсу. Після одержання такої копії графа даних, на машині, куди мігрує програма, проінтерпретувавши цей граф можна миттєво відновити зовнішній вигляд інтерфейсу користувача, “яким його залишили”.
Агент в Obliq– це такий програмний продукт, яке може “стрибнути” по мережі з одного комп’ютера на інший.
Портфель(Suitcase) – це ті дані, які агент переносить із собою при міграції з сайту на сайт. В ньому міститься “довгострокова” пам'ять агента. Це може бути список машин, які вже були відвідані, завдання, які треба виконати на кожному комп'ютері, і результати виконання цих завдань.
Бріфінг(Briefing) - дані, які агент отримує на кожній машині при вході. Може включати пораду для агента (наприклад, "дуже зайнятий тепер, спробуйте піти на інший сайт"), і будь-які дані, які описують цей сайт, як то локальна файлова система і наявні бази даних.
Сервер агента(Agent Server) - для даного сайта це програма,