Перейти до основного вмісту

Ядро обчислень

інформація

Головною метою веб-сервера є ефективна обробка запитів, що надходять від зовнішніх джерел взаємодії. У різних реалізаціях веб-серверів, розробники використовують внутрішню пам'ять сервера для зберігання даних, проте такий підхід може бути неефективним та призводити до перевантаження сервера.

Ефективна практика передбачає, що веб-сервер повинен обробляти лише запити, виконувати обчислення та виступати як посередник між джерелами взаємодії, бізнес-логікою та зберіганням даних у зовнішніх системах. Ядро обчислення побудоване з фокусом саме на таке застосування.

примітка

Роль веб-сервера не обмежується лише обробкою запитів. Він також повинен здійснювати моніторинг, мати можливість конфігураційного налаштування в робочому режимі, формувати специфікації, генерувати документацію та інші функції, що сприяють його ефективній роботі та взаємодії з іншими системами.

Архітектура

Ядро обчислень складається з сукупності технологій та інструментів реалізації веб-сервера, такі як логування, моніторинг, обробка запитів тощо. Окремим елементом ядра обчислень є модулі взаємодії з бізнес-схемою, які утворюють правила та структури заповнення бізнес-схеми. При запуску програми веб-сервера - ядро завантажує структуру бізнес-схеми та виконує обробку запитів у відповідність з версією бізнес-схеми. Така схема дозволяє використовувати ядро обчислень - виключно для обчислень, передаючи функції зберігання на сервери зберігання (сервер бази данних тощо), залишаючи за собою виконання обробників бізнес-логіки.

Використовуючи ООП та архітектурні підходи взаємодії між різними структурними блоками ядра обчислень - кодова база програми стійка до змін та надає прості рішення для масштабування самого ядра обчислень.

architecture

інформація

Ядро обчислень поділене на ряд рівнів абстракцій, кожне з яких необхідно для відділення структурних елементів один від одного, а також відділення більш системних модулів від більш предметних модулів:

  • Перший рівень абстракції є зʼєднувачі, які поєднують частини ядра обчислень, які можуть бути розділені в фізичному плані та можуть мати між собою доступ лише через мережу.
  • Другий рівень абстракції це перелік компонентів функціональності, будь-то сервіс логування, провайдер помилок та виключень тощо. Основною рушійною силою другого рівня є сервіси, які мають свій порядок запуску та зупинки.
  • Третій рівень абстракції відповідає за комунікацію з бізнес-схемою. Він визначає як дані будуть завантажені та в якому форматі, а також визначає перелік методів, які будуть надані бізнес-схемі від ядра обчислень для можливостей побудови самої бізнес-схеми.
інформація

Окремою, допоміжною абстракцією третього рівня є сеттери setters - функції помічники, які надаються ядром обчислень для створення конкретних структур бізнес-схеми, будь-то опис сервісу, прикладної області чи конкретного документа. Вони націлені на створення декларативного опису бізнес-схеми, а також для контролю за кодовою базою бізнес-схеми на рівні типів.

Конфігурація

Потреби веб-застосунків відрізняються, тому X-Fiber має можливості широкого конфігураційного налаштування. Більш того, в рамках різних застосунків - описуйте різні конфігураційні налаштування, змінюючи лише назву застосунку, ядро обчислень здатне працювати в зовсім іншому режимі, з іншими базами даних, з можливостями роботи інших адаптерів тощо. Гнучкість системи - одне із головних завдань, яке стоїть перед X-Fiber.

Рівні абстракцій

Деталі реалізації, функціональне призначення конкретного рівня абстракції, його складових та використання дивись в відповідних розділах:

Перспективи

небезпека

В активній розробці ведеться створення інших надважливих функцій веб-сервера - створення моніторингу, використання просунутих систем логування, таких як ELK, робота з хмарними сховищами даних, створення холодних та гарячих backup бази даних, автоматична генерація документації чи специфікацій тощо. X-Fiber робить виклик, в першу чергу перед собою, оскільки для побудови якісного веб-сервера необхідно впровадити велику кількість системних рішень.