Мобільні об’єкти та мобільні агенти: майбутнє розподілених обчислень
На відміну від об’єктно-орієнтованих програмних продуктів, до яких треба безпосередньо звертатися через певний інтерфейс для того, щоб отримати результат, агенти є активними об'єктами, які функціонують відповідно до так званого принципу Голлівуда: “Не кличте нас, ми самі вас покличемо!”
Визначення Агента ( з точки зору системи )
Агент – це програмний продукт, який:
-розміщується всередині середовища виконання;
-має такі обов’язкові властивості:
а) здатність фіксувати зміни в середовищі і діяти відповідно до них;
б) здатність контролювати власні дії;
в) здатність самостійно активізуватися для досягнення власної мети;
г) здатність працювати впродовж деякого (невизначеного) терміну;
-крім того, може мати такі необов’язкові властивості:
а) здатність до обміну повідомленнями з іншими агентами;
б) здатність до пересування з одного серверу (комп’ютера) до іншого;
в) здатність до адаптації з урахуванням попереднього досвіду (здатність до навчання);
г) здатність проявляти/ приховувати своє існування для користувача.
3. Що таке мобільний агент?
Мобільність є необов’язковою властивістю агентів, тобто, не всі агенти повинні бути спроможними до пересування в комп’ютерній мережі. Довільний агент може функціонувати на одному сервері і співпрацювати з середовищем за встановленими правилами, в тому числі шляхом віддаленого виклику процедур і обміну повідомленнями. Назвемо агентів, які не можуть або не “хочуть” пересуватися стаціонарними (статичними).
Визначення стаціонарного (статичного) агента.
Стаціонарний агент – агент, який функціонує тільки в тій системі, де почалося його виконання.
Якщо такому агенту потрібна інформація, відсутня у власній системі, або необхідно взаємодіяти з агентом в іншій системі, то він, звичайно, використовує будь-який механізм зв’язку, наприклад, віддалений виклик процедури (RPC).На відміну від такого визначення, мобільний агент не прив'язується до системи, де почалось його виконання. Мобільний агент може вільно мандрувати між комп'ютерами в мережі. Створений в одному середовищі виконання, він може перемістити свій код і стан до іншого середовища виконання в мережі, де й продовжить свою роботу.
Під терміном "стан" (“state”) розуміють сукупність значень атрибутів агента, яка допомагає йому визначити наступні кроки при завершенні роботи в певному середовищі. Під терміном “код” розуміють, в контексті об’єктно-орієнтованого програмування, визначений клас коду, необхідний для виконання агента.