Мобільні об’єкти та мобільні агенти: майбутнє розподілених обчислень
Вони стійкі до несправностей в мережі. Здатність мобільних агентів динамічно реагувати на несприятливі ситуацій і події робить легким побудову стійких до критичних ситуацій розподілених систем. Якщо комп'ютер припиняється свою роботу, то виконання агентів на цій машині зупиниться, і їм буде наданий час, щоб переміститися і продовжити роботу на іншому комп'ютері в мережі.
5. Парадигми обчислень в мережі
Досвід переконує, що мобільні агенти надають могутню однорідну парадигму для розподілених обчислень. Мобільні агенти можуть стати новим кроком в розробці розподілених систем. Зробимо короткий перегляд і порівняння трьох парадигм для реалізації розподілених обчислень: клієнт-сервер, код-на-запит (Code-on-Demand) і рухливих агентів. Зверніть увагу, що ми зробимо наголос на тому, як парадигма сприймається розробником, а не на архітектурі програмного забезпечення та обладнання.
Парадигма клієнт-сервер. В парадигмі клієнт-сервер сервер пропонує множину сервісів, які забезпечують доступ до деяких ресурсів (наприклад, баз даних). Код програми, яка відповідає за цей сервіс, знаходиться локально на сервері. Ми кажемо, що сервер має know-how. Врешті-решт, сервер безпосередньо виконує програму доступу до ресурсу, і в такий спосіб використовує процесор. Якщо клієнт зацікавлений в доступі до деякого ресурсу на сервері, він просто використовуватиме один або більше з сервісів, які забезпечуються сервером. Зверніть увагу, що клієнту потрібен деякий "інтелект", щоб визначитись, яким сервісом йому треба скористатись. Сервер має know-now, ресурси, і процесор.
До теперішнього часу, більшість розподілених систем базувалися саме на цій парадигмі. На ній побудовано велику кількість технологій як, наприклад, віддалений виклик процедури (RPC), брокери об'єктного запиту (CORBA) і виклик віддаленого методу в Java (RMI).
Відповідно до парадигми код-на-запит (Code-on-Demand), передача коду (know-how) на комп’ютер відбувається по запиту з цієї машини. Кажуть, що один комп'ютер (А) спочатку неспроможний виконати завдання через відсутність коду (know-how). Але інший комп'ютер (B) в мережі має потрібний код (програму). Як тільки А-комп’ютер отримує код, обчислення проводиться всередині А-комп’ютера. Ця машина має в розпорядженні процесор і локальні ресурси. На відміну від парадигми клієнт-сервер, А не потребує знання про віддалений комп'ютер після того, як весь необхідний код буде завантажений. Кажемо, що один комп'ютер (А) має ресурси і процесор, а інший (B) має know-how. Аплети Java є найкращим прикладом реалізації такої парадигми. Аплети завантажуються в броузер і виконуються локально.
Парадигма мобільного агента. Ключовою характеристикою парадигми мобільного агента є те, що будь-якому комп'ютеру в мережі дозволяється гнучко конфігурувати множину know-how, ресурсів і процесорів, як засобів для обробки даних. Процесорні потужності можуть бути об'єднані з локальними ресурсами. Know-how (в вигляді мобільних агентів) не нав'язується конкретному комп'ютеру, але є доступним через мережу.
Якщо порівнювати ці три парадигми, можна побачити хронологічний напрям в розвитку, спрямований до більшої гнучкості. Клієнт і сервер зливаються в один комп'ютер. Аплети (клієнти) і серверлети (серверні додатки), відповідно, об'єднуються і вдосконалюються з появою парадигми мобільних агентів.
6. Мобільні агенти в якості застосувань
Розглянемо ближче деякі програмні продукти, які реалізовано в рамках парадигми мобільних агентів.
Електронна комерція. Мобільні агенти добре відповідають вимогам електронної комерції. Комерційна обробка запиту (транзакція) може вимагати доступу в реальному часі до віддалених ресурсів як, наприклад, запасів на складах, поточних цін на товар і, можливо, навіть детального узгодження умов операції. Різні агенти мають різну мету, і розвивають різні стратегії для їх досягнення. Уявимо собі агентів, які втілюють мету їхніх творців, представляють інтереси, ведуть переговори замість, власне, людини. Технологія мобільних агентів є зворушливим розв'язком проблеми такого типу.Персональна допомога. Здатність мобільних агентів працювати на віддалених комп'ютерах робить їх придатними для використання асистентами, які будуть виконувати завдання в мережі від імені користувача. Віддалений асистент діятиме незалежно від того, чи існує в даний момент зв’язок з комп’ютером-“батьком”, і користувач може вимкнути машину після того, як агент почне роботу в мережі. Наприклад, для призначення зустрічі з іншою людиною користувач зможе послати мобільного агента для взаємодії з таким самим агентом людини, з якою треба зустрітися. Агенти зустрінуться і домовляться про час та місце зустрічі відповідно до побажань користувачів.