Сервіси
Сервіси, як функціональна група, відрізняються тим, що вони можуть управляти іншими складовими другого рівня абстракцій, мають лише один екземпляр в пам'яті основного обчислювального ядра або забезпечують рішення на рівні структури, такі як генерація документації, доступ до конфігураційних даних тощо.
Архітектура
Запуск ядра обчислень супроводжується запуском зʼєднувача обчислень, який в свою чергу в певному порядку запускає сервіси. Кожний сервіс виконує власну структурну функцію. В переважній своїй кількості, сервіси можуть бути сконфігуровані, при чому ряд сервісів надають ряд методів в агенти функціональності для подальшого їх використання в бізнес-схемі.
Завдяки використанню абстрактного сервісу AbstractService, який встановлює стандарти створення сервісів та базовий опис
сервісу, досягається підвищення надійності та спрощення розуміння принципів роботи сервісів. Крім того,
визначається спільна частина для кожного сервісу, що сприяє уніфікації їх правилам запуску, зупинки, а також базового
вмісту.
Ряд сервісів має можливості підключення чи відключення їх від роботи ядра обчислень. Щоб підключити або відключити сервіси, які це допускають необхідно вказати це в конфігураційному файлі налаштування. При відключенні, ядро обчислень не буде витрачати ресурси на роботу цього сервісу.
Порядок виконання
Порядок виконання сервісів визначається залежностями одних сервісів від інших. Наприклад, сервіс
комбінацій CombinationService визначає тип http адаптеру на основі конфігураційного налаштування, що вже вносить
залежність від сервісу відкриттів DiscoveryService оскільки він завантажує конфігурацію роботи обчислень - з цього
слідує, що сервіс відкриттів DiscoveryService повинен запускатись перед запуском сервісу комбінацій CombinationService.
| Назва | Обов'язковість | Порядок | Стабільність | Доступ | Опис |
|---|---|---|---|---|---|
| DiscoveryService | + | 1 | Stable | Загальний | Обробка конфігураційних файлів та надання конфігураційних параметрів як в рамках ядра так і конфігураційні параметри веб-застосунку. |
| LoggerService | + | 2 | Alpha | Загальний | Створення логів роботи веб-сервера з урахуванням рівнів логування та типу транспорту. |
| ContextService | + | 3 | Stable | Внутрішній | Формування унікального контексту виконання запитів з присвоєнням унікального ідентифікатора запиту. |
| SchemeService | + | 4 | Stable | Внутрішній | Обробка бізнес схеми та побудови знімків версій бізнес схеми. |
| CombinationService | + | 5 | Alpha | Внутрішній | Запуск фабричних конструкцій, які можуть підтримувати одну або декілька стратегій / адаптерів реалізації функціоналу однієї напрямленості |
| ScramblerService | - | 6 | Alpha | Зовнішній | Надання методів по роботі з шифруванням, дешифруванням та хешуванням. |
| TaskService | - | 7 | Alpha | Зовнішній | Реєстрація та виконання запланованих задач. |
Порядок зупинки сервісів прямопротилежний порядку запуску сервісів, дозволяючи таким чином коректно завершувати процеси сервісів з більшою кількістю залежностей.
Наразі X-Fiber не підтримує впровадження власних сервісів, але в майбутніх релізах X-Fiber буде допускати включати Ваші власні
рішення в порядок запуску сервісів.
Перелік сервісів
Деталі реалізації та застосування конкретного сервісу:
📄️ Сервіс відкриттів
📚 Обробка конфігураційних файлів та змінних
📄️ Сервіс логування
📚 Фіксація та обробка логів
📄️ Сервіс контексту
📚 Формування та обробка контекстів запитів
📄️ Сервіс бізнес-схеми
📚 Завантаження та надання бізнес-схеми
📄️ Сервіс комбінацій
📚 Запуск та конфігурація функціональних рішень
📄️ Сервіс шифрування
📚 Надання методів хешування та шифрування
📄️ Сервіс задач
📚 Реєстрація та виконання запланованих задач