Мобільні об’єкти та мобільні агенти: майбутнє розподілених обчислень
Voyager. Voyager кампанії ObjectSpace - це платформа для розподілених обчислень за допомогою агентів, яка також реалізована на Java. Voyager забезпечує обмін повідомленнями між об'єктами та дозволяє об'єктам пересуватися, як це роблять агенти в мережі. Можна сказати, що Voyager дозволяє програмістам на Java створювати застосування як за традиційною, так і за “агент-орієнтованою” технологіями створення розподілених обчислювальних систем.
Звернемо увагу, що системи мобільних агентів, реалізовані на Java мають багато спільного. Справа в тому, що вони прив’язані до стандартних версій віртуальної машини Java і механізму серіалізації об’єктів. Загальна серверна архітектура властива всім системам. Істотні відмінності спостерігаються в механізмах переміщення агентів і обміну повідомленнями.
Хоча більшість сучасних систем мобільних агентів базуються на Java, існують інші мови для їх реалізації. До них, в першу чергу, належать Tcl і Python.
Agent Tcl. Це система, агенти якої пишуться на Tcl. Agent Tcl, розроблена в коледжі Дартмоут (Dartmouth), має потужні сервіси для переміщення і зв'язку, механізм захисту інформації, а також засоби для відлагодження і трасування. Головною компонентою Agent Tcl є сервер, який працює на кожній машині і дозволяє агентам рухатись і обмінюватись повідомленнями. Коли агент мігрує до іншої машини, він викликає функцію agent_jump, яка запам’ятовує стан агента і посилає цю інформацію до серверу на машині адресата. Сервер машини адресата викликає на виконання Tcl, завантажує інформацію про стан в середовище виконання, і запускає агента в тому ж стані, в якому він завершив свою роботу.
Ara. Ara, розробка університету Кайзерслотерн (Kaiserslautern), це заснована на Tcl платформа для безпечної роботи мобільних агентів в різнорідних мережах. Дослідницький проект, перш за все, спрямовано на підтримку системи мобільних агентів, як середовища для безпечного і ефективного функціонування.
TACOMA. Проект TACOMA спрямований на дослідження операційних систем, як середовища для підтримки агентів, а також на використання агентів для розв’язання задач, які традиційно належать до функцій операційних систем. TACOMA базується на UNIX і TCP. Система підтримує агентів, які написані на C, Tcl/Tk, Perl, Pyhton і Scheme (Elk). Власне систему реалізовано на C.
Загальною рисою для ряду проектів, що базуються на Tcl, є те, що вони передбачають рух до підтримки декількох мов, що по суті означає можливість інтеграції з системами мобільних агентів, реалізованих на Java.
8. Стандартизація мобільних агентів: MASIF
Очевидним є те, що вищезазначені системи дуже відрізняються архітектурою і реалізацією, і таким чином перешкоджають сумісності, а згодом і стрімкому розгортанню технологій мобільних агентів на сучасному ринку. Тому здається природнім для підвищення сумісності нормалізувати деякі аспекти технології. Компанії Crystaliz, General Magic Inc., GMD Fokus, IBM Corporation і Open Group спільно розробили проект “Засоби сумісності систем мобільних агентів” (Mobile Agent System Interoperability Facility – MASIF).
MASIF описує стандартні інтерфейси систем мобільних агентів (не плутати з інтерфейсом власне агентів і систем їх підтримки !). MASIF не містить домовленості про єдину мову. Мовна сумісність для мобільних об'єктів – надскладна проблема, і в MASIF вимагається тільки сумісність систем мобільних агентів, які пишуться на одній мові, але потенційно різними продавцями. До того ж, в MASIF не нормалізуються локальні дії агента як, наприклад, інтерпретація агента, серіалізація або виконання. Можна сказати, що MASIF визначає інтерфейси на рівні систем мобільних агентів, а не на рівні агента.
В MASIF стандартизовано наступні чотири області:
Управління агентами. В множині мобільних агентів бажано стандартизувати управління агентом. Необхідно, щоб адміністратори систем агентів різних типів могли застосовувати стандартні процедури для створення агентів за ім'ям класу агента, переривати виконання агента, відновлювати виконання та завершувати виконання агента.
Передача агентів. Бажано, щоб застосування могли породжувати таких агентів, які будуть здатні вільно пересуватися між системами мобільних агентів різних типів.