Клієнт-серверне рішення
Клієнт-серверна архітектура — це підхід до побудови розподілених систем, що включає дві основні частини: клієнти та сервери. Ця архітектура дозволяє ефективно розділити обробку даних між ними. Основна ідея полягає в тому, що клієнтські програми надсилають запити до серверів, які обробляють ці запити та повертають відповіді.
База
Основні компоненти
- Клієнт: це програма або пристрій, який ініціює запит до сервера для виконання певних операцій. Клієнти можуть бути веб-браузерами, касою, мобільними додатками, месенджером тощо.
- Проксі: мережевий інтерфейс зв'язку, який забезпечує комутацію між двома віддаленими нодами.
- Сервер: сервер обробляє запити від клієнтів, виконуючи необхідні операції (наприклад, записи до баз даних, обчислення) та повертає результати назад до клієнта. Сервери спеціалізуються на певних задачах, таких як веб-сервери, сервери баз даних, файлові сервери.
Характеристика
- Централізоване управління ресурсами: Сервери управляють ресурсами та даними, що забезпечує централізоване місце для їх зберігання, доступу та управління.
- Масштабованість: Систему можна масштабувати, додавши більше серверів або покращивши їх характеристики, щоб впоратися зі зростаючим навантаженням.
- Гнучкість: Клієнти та сервери можуть бути розроблені та оновлені незалежно, дозволяючи легше впроваджувати нові технології та оновлення.
- Спеціалізація: Сервери можуть бути оптимізовані для виконання специфічних задач, що підвищує ефективність обробки запитів.
Схеми
Клієнт-сервер з дублікацією даних
На малюнку зображена схема клієнт-серверної архітектури, яка включає використання проксі-серверів та дублювання даних з основною бази.

Алгоритм
-
Клієнти: Каса, мобільний застосунок, браузер відправляють запити до сервера. Запити можуть йти через інтернет або локальну мережу.
-
Проксі-сервери: Є два проксі-сервери, вони відповідають за фільтрацію запитів та забезпечення певної безпеки серверів. Клієнти можуть підключатися до тієї проксі, до якої привʼязане те чи інше доменне імʼя.
-
Веб-сервер: Веб-сервер обробляє запити, отримані від проксі-серверів, і взаємодіє з базою даних. Веб-сервер налаштований на виконання бізнес-логіки додатку, видачу веб-сторінок, обслуговування API-запитів тощо.
-
База даних: Основна база даних зберігає дані, які використовуються веб-сервером. Вона може обробляти запити на читання та запис, управління транзакціями, запити на оновлення тощо.
-
Дублікація бази даних: Дані з головної бази даних дублюються на інший сервер, який відповідає виключно за збереження актуальних даних без будь-якого доступу до них. Це реалізовано з метою забезпечення безпеки цих даних на випадок відмови головної бази (аварії у датацентрі, пошкодження дискових масиві, технічні несправності сервера...), у такому разі буде повна копія актуальних даних на момент аварії, які будуть використанні технічними спеціалістами для відновлення роботи головного серевера з даними.
Схема показує, що всі компоненти взаємопов'язані, і кожен з них виконує певну роль у загальній архітектурі системи. Зокрема, проксі-сервери можуть служити як додатковий рівень абстракції та контролю між клієнтами та веб-сервером, а реплікація бази даних забезпечує надійність та доступність даних.
Клієнт-сервер з реплікацією серверів

