3. ПЕРСПЕКТИВИ РОЗВИТКУ СЕРЕДИ РОЗПОДІЛЕНОГО МОДЕЛЮВАННЯ ДЛЯ СИСТЕМИ DIVA
3.1 Недоліки розподіленої середи моделювання DIVA
Розподілена середа для моделюючої системи DIVA має наступні недоліки:
• Серверна частина (DIVA proxy daemon) при розподіленні обчислень у кластері враховує тільки завантаженість кожного комп'ютера у кластері але не враховує потужність цього комп’ютера. Тобто може виникнути ситуація коли буде завантажено вільний комп'ютер малої потужності, коли через секунду звільниться потужний.
• Немає розподілення процесу моделювання в межах однієї складної системи. Тобто нерівномірно навантажується обчислювальна потужність кластера.
• Навантажує трафік мережі зайвою інформацією.
• Досить складний процес розробки клієнт-додавань до серверу DIVA.
Враховуючи всі ці недоліки можна вести вдосконалення в будь-якому напрямку. Напрямок який удосужився саме менше уваги - це складність розробки клієнт-додатків до сервера DІVA. У такий спосіб програміст, що пише додаток під сервер DІVA повинний піклуватися про роботу із сокетами, процедуру обміну із сервером і про структуру даних переданих на сторону сервера. Тобто свідомо предпологается робота з моделюючою системою DІVA як з вилученим ресурсом. У цьому напрямку і варто продовжити роботу.
Можна представити роботу із системою моделювання DІVA, як з вилученим об'єктом. Існують дві технології для роботи з вилученими об'єктами - DCOM і CORBA. Але головною відмінністю CORBA від СОМ є інтегрований у CORBA шар, що реалізує доступ до вилучених об'єктів. Тобто відпадає ще необхідність в операціях по з'єднанню з вилученим об'єктом.
3.2 Огляд технології CORBA та ії переваги до розподіленого моделювання.
CORBA активно використовується інтерфейс об'єкта. Відповідно до цієї технології схема взаємодії клієнта і DIVA-сервера виглядає таким чином (рис. 3.1).
На машині клієнта створюються два об'єкти-посередники: Stub (заглушка) і ORB (Object Requіre Broker - брокер необхідного об'єкта). Stub виступає як повноважний представник об'єкта: за допомогою інтерфейсу об'єкта клієнт звертається до Stub так, ніби це був сам об’єкт.
Одержавши виклик методу Stub транслює цей виклик об'єкту ORB, що посилає в мережу широкомовне повідомлення. На це повідомлення відгукується один з об'єктів Smart Agent ("розумний" агент), встановлений у мережному оточенні клієнта (як у локальній мережі, так і в Іnternet). Smart Agent моделює мережний каталог, у якому зареєстровані відомі йому сервери об'єктів. Він відшукує потрібну мережну адресу сервера і передає запит об'єкту ORB на машині сервера. Помітимо, що обмін даними між ORB (клієнта і сервера) і Smart Agent здійснюється з використанням спеціального протоколу UDP, що більш дбайливо використовує мережні ресурси, чим протокол TCP (тобто вирішується ще одна проблема, завантаженість трафіку). Через BOA (Basіc Object Adapter - базовий об'єктний адаптер) дані одержує особливий об'єкт сервера, що називається Skeleton (основа). Skeleton поміщає параметри виклику в стек адресного простору об'єкта і реалізує власне виклик.
Роль об'єкта BOA полягає у фільтрації звертань до об'єкта сервера: за допомогою його методів сервер через Skeleton може оголосити деякі свої поля і властивості доступними тільки для читання або зовсім прихованими від даного клієнта. (Оскільки в рамках технології дані, якими обмінюються клієнт і сервер, розглядаються просто як ланцюжки байт, клієнт повинний помістити в буфер виклику свій авторизований ключ у системах, захищених від "сторонніх" клієнтів.)
"Ізюминкою" CORBA є спосіб опису інтерфейсу об'єкта. Для цих цілей розроблена спеціальна мова ІDL (Іnterface Defіnіtіon Language - мова опису інтерфейсу), дуже напоминаюча C++. Після опису інтерфейсу в термінах цієї мови компілятор ІDL автоматично створює об'єкти Stub і Skeleton. Обмін інформацією про інтерфейс між розроблювачами здійснюється в термінах мови високого рівня, у той час як компілятор опису інтерфейсу переводить його текст у машинні інструкції конкретного комп'ютера ( клієнта або сервера). У результаті досягається високий ступінь незалежності обміну даними від апаратних засобів клієнта і користувача.
Для реалізації технології в мережному оточенні клієнта повинний існувати хоча б один Smart Agent, а при обміні даними по Іnternet - на одному з вузлів. При створенні сервера здійснюється автоматична реєстрація об'єктів в одному чи декількох Smart Agent. У такий спосіб. Smart Agent "знає", по яких мережних адресах розташовані його сервери. Це дозволяє системі підвищити свою надійність: якщо в одному із серверів відбувся збій. Smart Agent повторить виклик і при повторному збої переключиться на інший сервер.
