Смекни!
smekni.com

Мобільні об єкти та мобільні агенти майбутнє розподілених обчислень (стр. 2 из 3)

Вони адаптуються динамічно. Мобільні агенти здатні аналізувати своє програмне середовище виконання і реагувати відповідно до змін, які в ньому відбуваються. Багато мобільних агентів здатні розподілюватися між комп'ютерами в мережі таким чином, щоб підтримати оптимальну конфігурацію для розв'язання специфічної проблеми.

Вони природно різнорідні (гетерогенні). Розподілені обчислення в своїй більшості різнорідні, як з точки зору апаратних засобів, так і програмного забезпечення. Оскільки мобільні агенти є, в принципі, комп'ютер- і транспорт-незалежні, і залежать тільки від їх середовища виконання, то вони створюють оптимальні умови для безшовного інтегрування розподілених систем.

Вони стійкі до несправностей в мережі. Здатність мобільних агентів динамічно реагувати на несприятливі ситуацій і події робить легким побудову стійких до критичних ситуацій розподілених систем. Якщо комп'ютер припиняється свою роботу, то виконання агентів на цій машині зупиниться, і їм буде наданий час, щоб переміститися і продовжити роботу на іншому комп'ютері в мережі.

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. Мобільні агенти в якості застосувань

Розглянемо ближче деякі програмні продукти, які реалізовано в рамках парадигми мобільних агентів.

Електронна комерція. Мобільні агенти добре відповідають вимогам електронної комерції. Комерційна обробка запиту (транзакція) може вимагати доступу в реальному часі до віддалених ресурсів як, наприклад, запасів на складах, поточних цін на товар і, можливо, навіть детального узгодження умов операції. Різні агенти мають різну мету, і розвивають різні стратегії для їх досягнення. Уявимо собі агентів, які втілюють мету їхніх творців, представляють інтереси, ведуть переговори замість, власне, людини. Технологія мобільних агентів є зворушливим розв'язком проблеми такого типу.

Персональна допомога. Здатність мобільних агентів працювати на віддалених комп'ютерах робить їх придатними для використання асистентами, які будуть виконувати завдання в мережі від імені користувача. Віддалений асистент діятиме незалежно від того, чи існує в даний момент зв’язок з комп’ютером-“батьком”, і користувач може вимкнути машину після того, як агент почне роботу в мережі. Наприклад, для призначення зустрічі з іншою людиною користувач зможе послати мобільного агента для взаємодії з таким самим агентом людини, з якою треба зустрітися. Агенти зустрінуться і домовляться про час та місце зустрічі відповідно до побажань користувачів.

Приватні (корпоративні) зустрічі. Цікаве застосування мобільних агентів може бути в робочих групах, де не всі співробітники довіряють один одному. У такому випадку, окремі користувачі могли б призначити місце збору їх агентів на надійному комп'ютері, де взаємодія може відбуватися без ризику, що ще чиїсь агенти одержать конфіденційну інформацію.

Розподілений пошук інформації. Пошук інформації є одним з найзгадуваніших прикладів застосування мобільних агентів. Замість того, щоб передавати великі обсяги даних до центрального пошукового серверу, де буде створено пошуковий індекс, до віддалених джерел інформації посилаються агенти, які локально створюють пошукові індекси і повертаються з ними до місця відправлення. Мобільні агенти також можуть виконувати розширений пошук, який триває годинами, проте не вимагає роботи комп'ютера користувача.

Телекомунікаційні послуги. Підтримка і управління провідними телекомунікаційними сервісами характеризуються динамічною мережевою переконфігурацією. Фізичний розмір цих мереж і вимоги до їх експлуатації такі, що використання технології мобільних агентів значно підвищить гнучкість і ефективність систем. Агенти виконуватимуть роль "клею", який утримує такі системи.

Організація групових робіт. За своєю природою групова робота вимагає обміну інформацією між співробітниками. Мобільні агенти будуть корисними для організації автономної роботи над певними частинами проекту, зберігаючи при цьому цілісність всього проекту.

Моніторинг і служба повідомлень. Це одне з класичних застосувань мобільних агентів, яке висвітлює їх асинхронну природу. Агент може спостерігати за деяким джерелом інформації незалежно від комп’ютера, з якого він був надісланий. Агенти можуть бути послані, щоб чекати на появу певного виду інформації. Важливо те, що агенти контролю мають недетермінований термін дії, який перевищує або не залежить від обчислювальних процесів, що створюють таких агентів.

Поширення інформації. Мобільні агенти втілюють так звану модель Internet-"поштовху" (Internet push). Вони можуть розповсюджувати інформацію типу новин або нових версій програмного забезпечення для продавців та зареєстрованих користувачів. Агенти здатні доставити і встановити новий програмний компонент на комп’ютер в такий самий спосіб, як і звичайні процедури установки.

Паралельні обчислення. Відомо, що мобільні агенти можуть клонуватись в мережі, а тому, ще одним потенційним застосуванням мобільних агентів є управління паралельними обчисленнями. Якщо деяке обчислення вимагає великих ресурсів, то воно може бути розподілене між декількома процесорами (комп’ютерами), які входять до мережі, в якій діють специфічні агенти паралельних обчислень.

7. Сучасні системи мобільних агентів.

Які види систем мобільних агентів доступні зараз? Після того, як з’явилась Java, на її платформі було згенеровано багато експериментальних систем мобільних агентів. Численні системи розробляються зараз, і більшість з них доступна для оцінки в Інтернеті.

Кількість систем зростає так швидко, що будь-яка спроба перелічити та класифікувати їх приречена на неповноту й застарілість, тому в цьому досліджені здається доцільним згадати тільки найцікавіші базові системи мобільних агента, які реалізовано на Java: Aglets, Odyssey, Concordia і Voyager.

Aglets. Ця система, яка створюється General Magic Inc., є розвитком аплетів в Java. Мета проекту - надати мобільності Java-аплетам. Термін аglet є об'єднанням слів agent і applet. Розробники спробували створити аглети в якості експериментальної дослідницької моделі, і сподіваються, що програмісти оцінять шляхи розвитку, що пропонують аглети як нащадки аплетів.