онфігурації для копірованіяNodes: список вузлів для пошуку DataTypes: список типів шуканих даних QueryAllSessions: прапор пошуку файлів у всіх сессіях1 часВсего: кількість вузлів, помножене на кількість типів даних Виконано: сумарна кількість переглянутих типів даних на всіх вузлах Помилки: кількість невдало переглянутих типів даних на всіх узлахСпісок знайдених файлів на вузлі серверного компонентаКопірованіе файлів журналів або конфігурацііDataPaths: список шляхів до копійованим файлам1 суткіВсего: кількість копійованих файлів Виконано: кількість файлів, розпочатих копіюватися Помилки: кількість нескопірованних через помилки файловУказанние файли на вузлі серверного компонентаДекодірованіе вмісту пакета типу SmartPacketData: Base64 - закодоване вміст пакета10 мінутВсего: кількість декодуємих пакетів Виконано: кількість декодованих пакетів Помилки: кількість недекодірованних пакетовДекодірованное вміст пакету на вузлі серверного компонентаОстановка серверного компонентаБез параметров10 мінутВсего: 1 Виконано: 1 Помилки: 0Отсутствует
Оскільки протокол використовує однакові сутності (запити, завдання, результати, стану) в обох компонентах програмного комплексу, то доцільно розробити загальний модуль, що займається сериализацией і десеріалізацію об'єктів «запит» і «завдання» в запис на мові розмітки XML. Оскільки взаємодія по протоколу відбувається через файлову систему, то сериализация і десеріалізацію відбуватиметься в/з потоку вводу-виводу.
. 3 Розробка структури серверного компонента
Серверний компонент виконує чёткпро обмежене коло завдань, що дозволяє його представити у вигляді основних служб, що надають інтерфейси для вирішення даних завдань. Крім основних служб необхідні ще контролер, який буде управляти роботою цих служб і додаткові інфраструктурні служби, що забезпечують роботу основних. Таким чином структура компонента може бути представлена ??у вигляді переліку модулів:
контролер життєдіяльності серверного компонента - стартує першим і управляє часом життя всіх інших модулів;
модуль серверної бібліотеки - ініціалізує використання бібліотеки, надає її інтерфейс іншим модулям;
бібліотека протоколу - надає єдині засоби для маршаллінг примірників сутностей в файли і з файлів
модуль роботи з файловою системою - надає роботу зі станом і вмістом директорій, як зі списками об'єктів-потоків введення або виведення
модуль управління чергою запитів - відстежує нові запити, викликає створення по ним завдань у відповідних фабрик, передає завдання модулю черзі завдань, очищає чергу запитів від незавершених запитів;
модуль управління чергою завдань - контролює виконання завдань, поміщає їх в сховище результатів і очищає застарілі результати; це центральний модуль серверного компонента, координуючий виконання запитів від клієнтського модуля;
модуль управління фабриками завдань - надає фабрики завдань, реєструє фабрики в модулі управління чергою запитів.
Компонування і взаємодія модулів показано на рис. 3.5. Штриховими лініями показані дії по створенню і ініціалізації модулів, що виконуються головним модулем «Контролер», суцільними лініями показані взаємодії модулів, пов'язані з обробкою запитів від клієнтського модуля.
Контролер, модуль черги запитів і модуль черги завдань працюють паралельно, тому слід розглянути їх роботу по-окремо.
Контролер:
Контролер за своїми функціями однаковий для обох компонентів програмного комплексу, тому його базові функціональності, загальні для обох модулів виділені в окремий модуль; контролер серверного компонента успадковує функціональності загального і додає лише специфічні функції - захоплення блоікіровкі і ініціалізацію модулів компонента.
Таким чином базова сутність контролера є абстрактною і надає функції:
Контролю за часом життя компонента і його модулів
Створення та зберігання списку компонентів
Виклику абстрактного методу ініціалізації списку компонентів
Запуску модулів компонента в порядку їх знаходження в списку
Очікування зупинки компонента
Зупинки компонента
Зупинки модулів компонента в порядку, зворотному їх знаходженню в списку
Специфічний контролер серверного компонента здійснює:
Реалізацію функції main, що створює екземпляр контролера і запускає його
Захоплення унікального в рамках ОС об'єкта блокування, щоб забезпечити єдиний екземпляр серверного компонента в просторі процесів ОС, при невдалій спробі завершує роботу серверного компонента
Модуль черги запитів працює циклічно, кожна ітерація якого відбувається не частіше 1 разу за заданий інтервал часу (5 секунд) і виглядає наступним чином:
Модуль черги запитів запрошув...