Постановка проблемы 13
Требования к решению 15
1 Варианты решения проблемы 16
1.1 Расширение WIFI-сети 16
1.2 Кэширование запросов 18
1.3 Синхронизация баз данных 20
1.4 Оценочная карта 23
2 Задачи 24
2.1 Глобальная задача 24
2.2 Локальные задачи 24
3 Аналог 25
4 Разработка концепта программного решения 26
4.1 Структура 26
4.2 Реализация программного решения на сервере 30
4.2.1 Сервис по получению схемы базы данных 30
4.2.2 Сервис по управлению транзакциями на сервере 36
4.3 Реализация программного решения на клиенте 42
4.3.1 Локальное хранилище 42
4.3.2 Сервис по работе с хранилищем 43
4.3.3 Сервис по работе с данными 44
4.3.4 Сервис по работе с транзакциями 47
4.3.5 Сервис по работе с хабом сервера 54
4.4 Тестирование и апробация 55
4.5 Сравнение с аналогом - Realm Sync 61
4.6 Вывод по разработанной библиотеке по организации оффлайн-работы
приложения 62
5 Финансовый менеджмент, ресурсоэффективность и ресурсосбережение 64
5.1 Предпроектный анализ 64
5.2 Инициация проекта 66
5.3 Планирование управления научно-техническим проектом 69
5.3.1 План проекта 69
5.3.2 Бюджет научного исследования 71
5.3.3 Сырье, материалы и программные лицензии 72
5.3.4 Специальное оборудование 73
5.3.5 Заработная плата 73
5.3.6 Отчисления во внебюджетные фонды 76
5.3.7 Прочие расходы 76
5.4 Организационная структура 76
5.5 Оценка сравнительной эффективности исследования 77
5.6 Вывод по разделу финансового менеджмента, ресурсоэффективности и
ресурсосбережению 80
6 Социальная ответственность 81
6.1 Правовые и организационные вопросы обеспечения безопасности 81
6.1.1 Специальные правовые нормы правового законодательства 81
6.1.2 Организационные мероприятия по компоновке рабочей зоны 82
6.1.3 Размерные характеристики рабочего места 82
6.1.4 Требования к размещению органов управления 84
6.1.5 Требования к размещению средств отображения информации 84
6.2 Производственная безопасность 85
6.3 Анализ опасных и вредных производственных факторов 86
6.4 Экологическая безопасность 93
6.5 Безопасность в чрезвычайных ситуациях 94
6.6 Вывод по разделу социальной ответственности 96
Список источников 97
Приложение I
В настоящее время для работы с данными в мобильных приложениях повсеместно используется интернет-соединение. В такой модели всё управление, изменение и получение данных идёт через запросы к серверному приложению. Для того, чтобы изменить данные отправляется запрос на сервер, который в свою очередь чаще всего отвечает измененными данными. То же происходит и в приложениях с одновременной работой нескольких пользователей, чаще всего для этого используются веб-сокеты, по которым на сервер отправляются пакеты с изменениями, а сами изменения в данных применяются на сервере и рассылаются пользователям. И всё бы ничего - получать данные с сервера и изменять их запросами и особо не заботиться о доступности интернет-соединения, но возникают ситуации, когда подключения к сети нет, в таком случае приложение становится бесполезным. Данная проблема возникает у работников складов, магазинов, также, когда необходима работа приложения в дороге и сельской местности.
В некоторых местах предоставить интернет-соединение сложно, например, в больших складских помещениях или в старых зданиях с толстыми стенами, либо в зданиях, находящихся в удалённой местности. Потребность в работе с данными может возникнуть в любой ситуации - будь то регистрация пациента или же доступ к истории болезни пациента, его динамике терапии или же получение информации о товаре непосредственно на складе или при выезде куда-то загород.
Чтобы приложения могли работать в любом состоянии, вводится поддержка офлайн-режима, который подразумевает возможность работы без запросов на сервер. Это может быть реализовано различными способами. В таком режиме функционал приложения может быть ограничен, но основные функции, для которых необходима бесперебойная работа, должны быть доступны пользователю.
Порядок работы приложения в офлайн-режиме обусловлен функционалом самого приложения. В общем случае, должны присутствовать возможности как чтения, так и записи, а при подключении к сети, сообщать серверу об изменениях.
Таким образом, в некоторых ситуациях возникает необходимость поддержки бесперебойного доступа к работе с данными, что сделать не всегда просто.
ТРЕБОВАНИЯ К РЕШЕНИЮ
Предполагаемое решение должно отвечать некоторым требованиям:
- обеспечение доступа к чтению данных приложения вне зависимости от наличия интернет-соединения у пользователя;
- обеспечение возможности изменения данных приложения вне зависимости от наличия интернет-соединения у пользователя;
- организация загрузки данных для дальнейшего использования;
- синхронизация изменений с данными на сервере;
- встраиваемость решения в уже существующие приложения (как серверные, так и мобильные), то есть, не должно быть необходимости строить приложение на основе потенциального решения с нуля;
- совместимость с мобильными приложениями, написанными на React [1] и серверными приложениями, использующими Asp.Net Core [2].