Читайте также: |
|
Основною функцією серверного додатку є генерація відповідей в залежності від запиту, що поступив. На рис. 4.12. зображена спрощена структура серверного додатку. Головними блоками додатку є:
- блок перевірки аутентифікації;
- блок розпізнавання команди;
- блок обробки команди.
Рис. 4.12. Спрощена структура серверного додатку
Функцією блоку перевірки аутентифікації є безпосередньо перевірка чи користувач має право знаходитись у системі. Детальна структура блоку зображена на рис. 4.13.
Рис. 4.13. Детальна структура блоку перевірки аутентифікації
Блок перевірки аутентифікації працює наступним чином. Блок збереження параметрів запам’ятовує дані з POST запиту, а саме token та device _ id, та передає значення у блок перевірки належності даних у БД. Останній блок у свою чергу робить SQL запит до БД, що знаходиться на сервері до таблиці auth і перевіряє чи є запис з такими полями. У випадку якщо є то запам’ятовує user _ id та rank, що необхідні для подальшої обробки. У випадку якщо такого запису немає, то в якості команди пересилає наступному блоку access denied.
Функцією блоку розпізнавання команди є отримання команди з POST запиту та в залежності від команди запам'ятати інші параметри з POST запиту і передати команду та її параметри до блоку обробки команд.
Функцією блоку обробки команди є виконання операцій з серверною БД та генерації відповіді для користувача. Детальна структура блоку зображена на рис. 4.14.
Рис. 4.14. Детальна структура блоку обробки команди
Функцією блоку створення запитів до БД є безпосередньо створення запитів до БД у залежності від команди та параметрів команди, що поступили на цей блок.
Функцією блоку створення JSON відповіді є створення відповіді у залежності від даних з БД, що поступили у вигляді:
{“var1”:”val1”, …,”varn”:”valn”}, де var(1) – назва змінної, val(1) – її значення.
Функцією блоку стиснення даних є стиснення JO отриманого від блоку створення відповіді та пакування його також у JO у вигляді:
{“data”:”…”}, де “…” – стиснуті дані.
Використовується алгоритм стиснення gzdeflate з параметром ‘9’, що є аналогом до алгоритмку стиснення java.util.zip.Deflater.BEST_COMPRESSION (block).
Функцією блоку шифрування є шифрування JO отриманого з попереднього блоку та пакування його у JO у вигляді:
{“success”:1, “data”:”…”}, де ”…” – зашифрована відповідь.
Використовується алгоритм команда шифрування crypt з параметром ‘ CRYPT_BLOWFISH’, що є аналогом до алгоритму Blowfish у Java.
Дата добавления: 2015-12-07; просмотров: 99 | Нарушение авторских прав