о надаються шаром «Контролер».
Окремий модулем є клієнтська бібліотека, що надає функції управління з'єднанням з вузлом СГД Centera, а також відправлення/отримання даних на/з кластера. Інтерфейс і опис функцій цієї бібліотеки наведені нижче:
Шар «Модель»
Шар складається з наступних основних модулів: модуль сховища налаштувань, модуль контексту з'єднання з СГД Centera, модуль контексту клієнт-серверної сесії. Крім того в шарі використовуєте загальний для серверного та клієнтського компонентів модуль протоколу.
Модуль сховища налаштувань
Виконує функції серіалізациі/десеріалізациі налаштувань клієнтського модуля в/з файлів, що знаходяться в «робочої» директорії клієнтського компонента. «Робочій» називається директорія, в якій знаходиться виконуваний файл клієнтської програми. Налаштування легко відображаються на документ формату XML, при маршаллінг налаштувань використовується DOM-реалізація XML-документа, що поставляється разом з пакетом Java Runtime Environment 6.0 [8].
Модуль контексту з'єднання з СГД Centera
Модуль представлений набором сутностей, що зберігають у собі властивості з'єднання з кластером. Зокрема сутність контексту з'єднання містить в собі сутність параметрів поточного з'єднання (адреса вузла СГД, назву з'єднання, використовувана при встановленні з'єднання обліковий запис), пароль для встановлення з'єднання, стан з'єднання (встановлено, не встановлено, перервано), версію ПЗ СГД Centera, контекст поточної клієнт-серверної сесії, список вузлів СГД Centera c зазначенням їх ролей).
Модуль контексту клієнт-серверної сесії
Містить набір сутностей, пов'язаних з контекстом клієнт-серверної взаємодії: контекст клієнт-серверної сесії і їх сховище; сутність сховища завдань та їх результатів, створених в контексті сесії.
Контекст клієнт-серверної сесії містить такий важливий атрибут, як об'єкт блокування сесії, похволяющій працювати з сесією тільки одному екземпляру клієнтського компонента. Слід зазначити, що поняття сесії присутній тільки в клієнтському компоненті, оскільки тільки на клієнтській стороні можливий паралельний запуск декількох копій компонента, серверний компонент завжди перевіряє свою унікальність в просторі запущених процесів і обробляє завдання клієнтського компонента незалежно від ідентифікатора сесії.
Загальний модуль протоколу
Містить суті завдань разом з усіма їх типами, результатів виконання, а також сутностей-обгорток над документом XML. Модуль повторно використовується в клієнтському і серверному компонентах.
Загальний модуль типових завдань
Частина модуля протоколу - містить реалізацію для всіх підтримуваних типів завдань.
Шар «Контролер»
Шар складається з трьох модулів - контролерів клієнтського компонента, з'єднання і завдань.
Модуль контролера клієнтського компонента призначений для управління часом життя клієнтського компонента і реалізований за тим же принципом, що і контролер для серверного компонента (див. підрозд. 3.3 пп. 1). З специфічних для контролера клієнтського компонента функцій реалізується тільки ініціалізація компонентів.
Модуль контролера з'єднання призначений для управління з'єднанням з вузлом СГД Centera, а також для моніторингу стану з'єднання і повідомлення інших сутностей про його зміни.
Модуль контролера завдань виконує найбільшу частину функцій з управління завданнями під час всього періоду її існування на стороні клієнтського компонента.
Модуль контролера з'єднання
Складається з наступних сутностей:
контролер сполуки - надає інтерфейс для створення і завершення з'єднання, відстеження його стану (через підписку на повідомлення про зміну стану), отримання його параметрів (сутність контекст з'єднання); надає з'єднання для посилки через нього завдань серверному компоненту і отримання результатів виконання завдання; використовує клієнтську бібліотеку для роботи з вузлом кластера; контролює роботу монітора з'єднання; окремо вартої завданням контролера є завантаження серверного компонента на вузол СГД Centera, якщо на вузлі він відсутній або копія має застарілу версію;
монітор сполуки - здійснює періодичний опитування стану з'єднання і оповіщає всіх передплатників про його зміну;
інтерфейс передплатника - реалізується всіма сутностями, яким потрібна знати про зміну стану з'єднання
Модуль контролера завдань
Виконує всю логіку функцій клієнтського компонента по роботі з завданнями, створеними користувачем. Складається з наступних сутностей:
контролер завдань - надає інтерфейс для отримання фабрики завдань, отримання інформації про вже створених завданнях, підписки на оновлення стану завдань; координує роботу всіх інших сутностей модуля;
інтерфейс фабрики завдань - містить методи для створення конкретних типових завдань;
тимчасове сховище завдань - зберігає ста...