Реферат: Мобільні об єкти та мобільні агенти майбутнє розподілених обчислень
6. Мобільні агенти в якості застосувань
Розглянемо ближче деякі програмні продукти, які реалізовано в рамках парадигми мобільних агентів.
Електронна комерція. Мобільні агенти добре відповідають вимогам електронної комерції. Комерційна обробка запиту (транзакція) може вимагати доступу в реальному часі до віддалених ресурсів як, наприклад, запасів на складах, поточних цін на товар і, можливо, навіть детального узгодження умов операції. Різні агенти мають різну мету, і розвивають різні стратегії для їх досягнення. Уявимо собі агентів, які втілюють мету їхніх творців, представляють інтереси, ведуть переговори замість, власне, людини. Технологія мобільних агентів є зворушливим розв'язком проблеми такого типу.
Персональна допомога. Здатність мобільних агентів працювати на віддалених комп'ютерах робить їх придатними для використання асистентами, які будуть виконувати завдання в мережі від імені користувача. Віддалений асистент діятиме незалежно від того, чи існує в даний момент зв’язок з комп’ютером-“батьком”, і користувач може вимкнути машину після того, як агент почне роботу в мережі. Наприклад, для призначення зустрічі з іншою людиною користувач зможе послати мобільного агента для взаємодії з таким самим агентом людини, з якою треба зустрітися. Агенти зустрінуться і домовляться про час та місце зустрічі відповідно до побажань користувачів.
Приватні (корпоративні) зустрічі. Цікаве застосування мобільних агентів може бути в робочих групах, де не всі співробітники довіряють один одному. У такому випадку, окремі користувачі могли б призначити місце збору їх агентів на надійному комп'ютері, де взаємодія може відбуватися без ризику, що ще чиїсь агенти одержать конфіденційну інформацію.
Розподілений пошук інформації. Пошук інформації є одним з найзгадуваніших прикладів застосування мобільних агентів. Замість того, щоб передавати великі обсяги даних до центрального пошукового серверу, де буде створено пошуковий індекс, до віддалених джерел інформації посилаються агенти, які локально створюють пошукові індекси і повертаються з ними до місця відправлення. Мобільні агенти також можуть виконувати розширений пошук, який триває годинами, проте не вимагає роботи комп'ютера користувача.
Телекомунікаційні послуги . Підтримка і управління провідними телекомунікаційними сервісами характеризуються динамічною мережевою переконфігурацією. Фізичний розмір цих мереж і вимоги до їх експлуатації такі, що використання технології мобільних агентів значно підвищить гнучкість і ефективність систем. Агенти виконуватимуть роль "клею", який утримує такі системи.
Організація групових робіт . За своєю природою групова робота вимагає обміну інформацією між співробітниками. Мобільні агенти будуть корисними для організації автономної роботи над певними частинами проекту, зберігаючи при цьому цілісність всього проекту.
Моніторинг і служба повідомлень. Це одне з класичних застосувань мобільних агентів, яке висвітлює їх асинхронну природу. Агент може спостерігати за деяким джерелом інформації незалежно від комп’ютера, з якого він був надісланий. Агенти можуть бути послані, щоб чекати на появу певного виду інформації. Важливо те, що агенти контролю мають недетермінований термін дії, який перевищує або не залежить від обчислювальних процесів, що створюють таких агентів.
Поширення інформації. Мобільні агенти втілюють так звану модель Internet-"поштовху" (Internet push). Вони можуть розповсюджувати інформацію типу новин або нових версій програмного забезпечення для продавців та зареєстрованих користувачів. Агенти здатні доставити і встановити новий програмний компонент на комп’ютер в такий самий спосіб, як і звичайні процедури установки.
Паралельні обчислення. Відомо, що мобільні агенти можуть клонуватись в мережі, а тому, ще одним потенційним застосуванням мобільних агентів є управління паралельними обчисленнями. Якщо деяке обчислення вимагає великих ресурсів, то воно може бути розподілене між декількома процесорами (комп’ютерами), які входять до мережі, в якій діють специфічні агенти паралельних обчислень.
7. Сучасні системи мобільних агентів.
Які види систем мобільних агентів доступні зараз? Після того, як з’явилась Java, на її платформі було згенеровано багато експериментальних систем мобільних агентів. Численні системи розробляються зараз, і більшість з них доступна для оцінки в Інтернеті.
Кількість систем зростає так швидко, що будь-яка спроба перелічити та класифікувати їх приречена на неповноту й застарілість, тому в цьому досліджені здається доцільним згадати тільки найцікавіші базові системи мобільних агента, які реалізовано на Java: Aglets, Odyssey, Concordia і Voyager.
Aglets. Ця система, яка створюється General Magic Inc., є розвитком аплетів в Java. Мета проекту - надати мобільності Java-аплетам. Термін аglet є об'єднанням слів agent і applet . Розробники спробували створити аглети в якості експериментальної дослідницької моделі, і сподіваються, що програмісти оцінять шляхи розвитку, що пропонують аглети як нащадки аплетів.
Odyssey. General Magic Inc. є винахідником мобільного агента і свого часу створив першу комерційну систему мобільних агентів Telescript. Базуючись на власній мові і архітектурі мережі, Telescript мав короткий термін життя. Зважаючи на популярність Internet і приголомшуючий успіх мови Java, General Magic Inc. створила нову систему мобільних агентів Odyssey, реалізовану на Java. Ця система ефективно втілює принципи Telescript вже у вигляді Java-класів. Результатом роботи є бібліотека Java-класів, яка дає розробникам можливість створювати власні застосування мобільних агентів.
Concordia . Mitsubishi's Concordia є продуктом для розробки і управління системами мобільних агентів, який може функціонувати в будь-якому середовищі, яке підтримує Java. Concordia вміщує компоненти, написаних на Java, які разом надають завершене середовище для створення розподілених застосувань. Система Concordia, в найпростішому вигляді, складається з стандартної віртуальної машини (інтерпретатора) Java, серверу і множини агентів.
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 стандартизовано наступні чотири області:
Управління агентами. В множині мобільних агентів бажано стандартизувати управління агентом. Необхідно, щоб адміністратори систем агентів різних типів могли застосовувати стандартні процедури для створення агентів за ім'ям класу агента, переривати виконання агента, відновлювати виконання та завершувати виконання агента.