Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИКИТ_2015_8.05010201_Постайчук.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

4.2.3 Ахрітектура Android-додатку

На рис. 4.7. представлена архітектура Android-додатку. Головними блоками додатку є:

  • блок інтерфейсу додатку;

  • блок даних;

  • блок синхронізації;

  • блок генерації запиту.

Рис. 4.7. Спрощена архітектура Android-додатку

Представлена на рис. 4.8. структура детальніше описує Блок синхронізації. Блок складається з блоку розшифрування, блоку розпакування даних, блоку збереження результату та таймеру.

Блок розшифрування на вході приймає JO від сервера, структура якого складається:

{“success”:1, “data”:”…”}, де ”…” – зашифрована відповідь.

Дані розшифровуються за допомогою алгоритму Blowfish з ключом від token, що представляє собою основним параметром аутентифікації. На виході блок повертає JO структура якого складається:

{“data”:”…”}, де “…” – розшифровані, але стиснуті дані.

Блок розпакування приймає на вході JO від блоку розшифрування та застосовуючи алгоритм java.util.zip.Deflater.BEST_COMPRESSION (block) розпаковує дані і на виході має JO структура якого складається:

{“var1”:”val1”, … ,”varn”:”valn”}, де var(1) – назва змінної, val(1) – її значення.

Блок збереження результату на вході приймає JO дані від блоку розпакування, розпаковує з нього необхідні дані, і на їх основі створює SQL запити.

Таймер призначений для генерації сигналу для блоку генерації запиту, щоб розпочати нову синхронізацію даних з сервером.

Рис. 4.8. Детальна структура блоку синхронізації

На рис. 4.9. зображено детальну структура блоку даних. До нього входить БД SQLite для зберігання інформації на пристрої та блок збережених налаштувань додатку, який необхідний для створення запитів оновлення інтерфейсу якщо це необхідно.

Рис. 4.9. Детальна структура блоку даних

На рис. 4.10. зображена детальна структура блоку генерації запиту. До його складу входить блок розпізнавання команди, що розпізнає команди від інтерфейсу та блок генерації запитів з необхідними даними. Блок генерації запитів необхідний для складання команди та даних, що необхідно передати до сервера.

На рис. 4.11. зображено детальну структуру блоку інтерфейсу. Його головною функцією є відображення необхідної інформації для конкретного користувача.

Рис. 4.10. Детальна структура блоку генерації запиту

Рис. 4.11. Детальна структура блоку інтерфейсу додатку

4.2.4 Архітектура серверного додатку

Основною функцією серверного додатку є генерація відповідей в залежності від запиту, що поступив. На рис. 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.