Search
Write a publication
Pull to refresh
20.82
Форсайт
Разработка аналитических и мобильных решений

Как мы решали задачу по ускорению выдачи данных на мобильные устройства бизнес-пользователей. Часть 2

Level of difficultyEasy
Reading time3 min
Views160

В корпоративных мобильных приложениях данные должны загружаться на устройство быстро. Медленное получение данных не лучшим образом сказывается на бизнес-процессах предприятия и конкурентоспособности.

К примеру, работнику нужно работать с данными технического оборудования и посмотреть список заказов на обход, а ему приходится сравнительно долго ждать загрузки справочных и транзакционных данных – такая ситуация порождает дополнительные ненужные проблемы для бизнеса. В итоге процесс корпоративной мобилизации проходит не так гладко, как хотелось бы.

Увеличение скорости загрузки данных напрямую связано с повышением эффективности бизнес-процессов. Если мобильное приложение грузит данные быстро, бизнес-процесс в нужной точке получает необходимые данные для перехода на следующий уровень.

Одним из способов увеличить скорость получения данных конечным пользователем является кэширование. Именно этот функционал мы и реализовали в платформе для мобильных решений «Форсайт. Мобильная платформа».

«Форсайт. Мобильная платформа» (далее ФМП) — продукт на рынке Mobile Application Development Platform (MADP), предназначенный для создания мобильных приложений с помощью готовых сценариев и шаблонов выполнения типовых задач мобильной разработки.

Слепок данных сохраняется на сервере ФМП и, как итог, при запросе пользователя не тратится лишнее время на обращение к источнику данных и получение от него ответа. 

Источники данных в отчётный период могут отвечать с задержкой, максимум скорости выдачи данных можно получить, если разместить данные в оперативной памяти, для этого ФМП имеет специальный функционал.

Пример времени выдачи данных при запросе к кэшируемым и не кэшируемым ресурсам. 

Запрос некэшируемого ресурса. Получение десятка КБ данных заняло 339 мс.

Запрос того же самого кэшируемого ресурса. Получение десятка КБ данных заняло 144 мс.

Из примера видно, что кэшируемые данные на мобильное устройство доставляются быстрее, хотя объём подрос из за дополнительного ключа. (8,46 КБ первое измерение и 10,64 КБ второе).

Но что делать, если пользователь получил кэш утром, а после обеда данные в источнике уже были изменены? Отправка на мобильное устройство снова всех данных, в которых изменено несколько строчек, время загрузки не экономит.

Выгодным решением в данном случае является доставка разности нескольких версий кэша. Приложение запрашивает у сервера ФМП изменения между последней имеющейся на устройстве версией кэша и последней версией кэша, хранящейся на сервере.  Сервер ФМП вычисляет различия между двумя версиями кэша и отправляет новые, измененные или удаленные строки в мобильное приложение. Мы называем такую разность кэшей дельтой.

Данные закэшировали, дельту запрашиваем, транспортная скорость доставки данных увеличилась. 

Но возникает другая проблема. Если приложение часто запрашивает дельту, таблицы большие, а изменений между версиями кэша много, то при каждом запросе пользователя сервер будет вычислять изменения между версиями.  Это не способствует сокращению времени выдачи данных.

Решить данную проблему можно предварительным расчетом дельты и хранением ее в оперативной памяти сервера ФМП. 

Проверим, изменяется ли время выдачи дельты без предварительного расчета и с ним.

Сначала делаем запрос дельты ресурса без настроенного предварительного расчета. Загрузка 596 байт данных заняла 196 мс.

Далее включаем предварительный расчет дельты и хранение его в оперативной памяти. После чего снова делаем запрос той же самой дельты. Загрузка 596 байт данных заняла 117 мс.

На данном примере хорошо видно, что использование предварительного расчета дельты и хранение ее в оперативной памяти уменьшает время получения передаваемых данных на устройство.

Такая возможность оптимизации процесса загрузки данных на мобильное устройство была внедрена в версии ФМП 21.10.  Однако, как известно, у всего есть своя цена. И данная функция не исключение. Используя данный функционал, нужно понимать, что хранение дополнительных данных в кэше значительно повысит нагрузку на системные ресурсы сервера. Поэтому рекомендуемый размер кэша для хранения его в оперативной памяти составляет 512 Мб.

Хранение кэша и дельты в оперативной памяти сервера мобильной платформы стоит использовать тогда, когда для определенного бизнес-кейса приходится часто запрашивать большие изменяемые данные.

Tags:
Hubs:
+3
Comments3

Articles

Information

Website
www.fsight.ru
Registered
Founded
Employees
201–500 employees
Location
Россия