Смекни!
smekni.com

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

Національний університет

“Києво-Могилянська Академія”

Департамент комп’ютерних технологій

Кафедра інформатики

Мобільні об’єкти та мобільні агенти:

майбутнє розподілених обчислень?

Реферат з курсу “Програмне забезпечення інтелектуальних систем”

виконав студент V курсу

Кравченко Іван Олександрович

Київ, 2000 р.

Зміст

1. Вступ............................................................................................................ 3

2. Що таке агент як програмний продукт ?................................................... 3

3. Що таке мобільний агент?.......................................................................... 5

4. Підстави для використання мобільний агентів.......................................... 6

5. Парадигми обчислень в мережі.................................................................. 9

6. Мобільні агенти в якості застосувань....................................................... 10

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

8. Стандартизація мобільних агентів: MASIF............................................. 15

9. Підсумок.................................................................................................... 18

10. Література і ресурси............................................................................... 19

1. Вступ

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

2. Що таке агент як програмний продукт ?

Так що таке програма - агент, з чого він складається, і чим відрізняється від звичайної програми, - протягом декількох останніх років ці питання були і є темою для обговорення і суперечок. У той час, поки ці дебати тривають, на практиці дедалі більше зустрічається програмних продуктів, для яких існує таке, суто емпіричне визначення: “Агенти – це програми, які допомагають людям і працюють в їх інтересах”. Це визначення більше схоже, власне, на мету, задля якої створюються агентні системи. Зазначимо для справедливості, що всі програмні продукти мають на меті в той чи інший спосіб допомагати кінцевим користувачам.

Визначення агента ( з точки зору кінцевого користувача )

Агент - це програма, яка допомагає людям і діє в їх інтересах. Агенти функціонують в рамках дозволу, який делегується користувачем.

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

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

На відміну від об’єктно-орієнтованих програмних продуктів, до яких треба безпосередньо звертатися через певний інтерфейс для того, щоб отримати результат, агенти є активними об'єктами, які функціонують відповідно до так званого принципу Голлівуда: “Не кличте нас, ми самі вас покличемо!”

Визначення Агента ( з точки зору системи )

Агентце програмний продукт, який:

- розміщується всередині середовища виконання;

- має такі обов’язкові властивості:

а) здатність фіксувати зміни в середовищі і діяти відповідно до них;

б) здатність контролювати власні дії;

в) здатність самостійно активізуватися для досягнення власної мети;

г) здатність працювати впродовж деякого (невизначеного) терміну;

- крім того, може мати такі необов’язкові властивості:

а) здатність до обміну повідомленнями з іншими агентами;

б) здатність до пересування з одного серверу (комп’ютера) до іншого;

в) здатність до адаптації з урахуванням попереднього досвіду (здатність до навчання);

г) здатність проявляти/ приховувати своє існування для користувача.

3. Що таке мобільний агент?

Мобільність є необов’язковою властивістю агентів, тобто, не всі агенти повинні бути спроможними до пересування в комп’ютерній мережі. Довільний агент може функціонувати на одному сервері і співпрацювати з середовищем за встановленими правилами, в тому числі шляхом віддаленого виклику процедур і обміну повідомленнями. Назвемо агентів, які не можуть або не “хочуть” пересуватися стаціонарними (статичними).

Визначення стаціонарного (статичного) агента.

Стаціонарний агент агент, який функціонує тільки в тій системі, де почалося його виконання.

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

На відміну від такого визначення, мобільний агент не прив'язується до системи, де почалось його виконання. Мобільний агент може вільно мандрувати між комп'ютерами в мережі. Створений в одному середовищі виконання, він може перемістити свій код і стан до іншого середовища виконання в мережі, де й продовжить свою роботу.

Під терміном "стан" (“state”) розуміють сукупність значень атрибутів агента, яка допомагає йому визначити наступні кроки при завершенні роботи в певному середовищі. Під терміном “код” розуміють, в контексті об’єктно-орієнтованого програмування, визначений клас коду, необхідний для виконання агента.

Визначення мобільного агента

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

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

4. Підстави для використання мобільний агентів

Хоча технологія мобільних агентів викликає нечуване захоплення в сучасному світі, інтерес до них мотивується не технологією по суті, а скоріше перевагами, які з’являються при створенні розподілених систем на основі такої технології. Нижче наведено сім добрих причин для того, щоб використовувати мобільні агенти.

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

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

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

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