Кеширование предназначено для ускоренной загрузки запрашиваемых данных на мобильное устройство пользователя. Кеш – это сохранённая на сервере мобильной платформы копия данных, полученных из ресурса источника данных. При запросе данных с мобильного устройства сервер возвращает обновление из сохранённого кеша без обращения к источнику данных. За счёт этого сокращается время обработки запроса.
Совет. Если объем запрашиваемых данных небольшой, то используйте передачу транзакционных данных для обработки ответа при разрыве соединения.
Кеш хранит ответы источника данных с указанием версий, дату сохранения кеша, срок истечения актуальности, информацию для сопоставления запроса с кешем: для какого ресурса кеш, какие учетные данные использовались при запросе к источнику данных и входные параметры запроса. Кеш ресурса доступен для управления кешами по параметрам в подразделе «Управление кэшем».
Дельта – разница между двумя версиями данных ресурса, позволяющая мобильному устройству восстановить новую версию ресурса из сохранённой старой версии.
Для каждой таблицы ресурса дельта содержит:
полный список строк на вставку;
идентификаторы строк на удаление;
номера начальной и конечной версии данных кеша. Версия данных кеша ресурса соответствует порядковому номеру запроса к источнику данных и доступна при просмотре кеша в строке «Версия».
Для получения подробной информации об использовании дельты в запросах обратитесь к разделу «Обозначение версий дельты в запросах».
Помимо номера версии кеш ресурса содержит уникальный идентификатор «ETag», который передаётся вместе с данными или дельтой. При указании в запросе уникального идентификатора сервер мобильной платформы автоматически определяет, какой версии кеша соответствует запрос, рассчитывает и передаёт дельту мобильному устройству между запросом и последней версией кеша на сервере.
Взаимодействие мобильного устройства, сервера мобильной платформы и источника данных при кешировании:
мобильное устройство:
хранит одну версию кеша по параметрам;
формирует запросы на получение данных к серверу платформы;
обновляет хранящийся кеш при получении дельты от сервера мобильной платформы;
сервер мобильной платформы:
хранит несколько версий кеша по параметрам для каждой связки ресурса, учетных данных и набора значений входных параметров;
принимает запросы от мобильного устройства;
проверяет актуальность текущей версии кеша для запрашиваемых данных;
обновляет данные через запрос к источнику данных и рассчитывает хеш-сумму по идентификаторам записей ресурса;
вычисляет дельту между актуальной версией кеша и версией на мобильном устройстве по номеру версии кеша;
отправляет дельту или полную версию данных на мобильное устройство.
источник данных:
формирует ответ, соответствующий параметрам запроса, и передаёт серверу мобильной платформы.
Алгоритм обновления данных на мобильном устройстве:
Мобильное устройство посылает запрос на обновление данных.
Сервер мобильной платформы проверяет актуальность кеша по запрашиваемым данным:
если кеш актуален, сервер высчитывает дельту на основании сохранённых данных без обращения к источнику;
если кеш устарел, сервер запрашивает данные от источника данных и высчитывает дельту.
Дельта передается мобильному устройству с сервера мобильной платформы.
Мобильное устройство восстанавливает актуальную версию из сохранённых данных и полученной дельты.
Схема использования кеша при работе с одним ресурсом:

Для кешируемых ресурсов производится проверка целостности данных:
При получении данных от источника на сервере мобильной платформы рассчитывается хеш-сумма по идентификаторам записей запрашиваемого ресурса.
Хеш-сумма, рассчитанная на сервере мобильной платформы, отправляется на мобильное устройство вместе с актуальной версией кеша или дельтой двух последних версий кеша.
Данные ресурса обновляются на мобильном устройстве, после чего производится расчёт хеш-суммы на мобильном устройстве.
На мобильном устройстве производится сравнение хеш-суммы, полученной с сервера мобильной платформы, с хеш-суммой, рассчитанной на мобильном устройстве:
если хеш-суммы совпадают, то проверка целостности данных завершается;
если хеш-суммы не совпадают, то данные на мобильном устройстве удаляются и выполняется повторный запрос данных ресурса с сервера мобильной платформы. После получения данных на мобильном устройстве обновляются данные ресурса, выполняется расчёт хеш-суммы аналогично шагу 3 и производится сравнение хеш-сумм аналогично шагу 4:
если хеш-суммы совпадают, то проверка целостности данных завершается;
если хеш-суммы не совпадают, то на мобильном устройстве отображается ошибка о несовпадении хеш-сумм.
Для использования кеширования установите флажок «Кэшировать», который доступен после импорта ресурса. При установке флажка будут отображены дополнительные параметры кеширования:

Задайте параметры кеширования:
Срок актуальности кэша. Укажите время в формате <часы : минуты : секунды>, в течение которого кеш считается актуальным после момента создания. На основе этого параметра и даты создания кеша высчитывается время, после которого кеш считается устаревшим. Если с мобильного устройства выполняется запрос данных до того момента, когда кеш уже считается устаревшим, то пользователю возвращаются данные из сохранённого кеша, иначе сервер мобильной платформы выполняет запрос к источнику данных. Для избежания заполнения памяти установите расписание удаления устаревших кешей. Поле обязательно для заполнения;
Сохранять по. Укажите количество строк от 10000 до 100000, записываемых в кеш за одну итерацию;
Примечание. Без указания количества строк скорость записи в кеш будет максимальна, так же как и потребление памяти.
Сколько старых версий хранить. Укажите количество версий кеша, хранение которых обеспечивает обработку запросов от мобильных устройств с различными версиями сохранённых данных. По умолчанию количество версий кеша не ограничено.
Примечание. Хранение старых версий потребляет память на сервере мобильной платформы.
Хранить последнюю версию кэша в оперативной памяти. Установите флажок для хранения последней версии кеша в оперативной памяти и базе данных. За счёт получения последней версии кеша из оперативной памяти ускоряется первичная загрузка данных на мобильное устройство. По умолчанию флажок снят и последняя версия кеша хранится только в базе данных.
Примечание.
При использовании данного параметра учитывайте следующие особенности:
● размер кеша не должен превышать 512МБ;
● хранения последней версии кеша приводит к увеличению
объёма потребления оперативной памяти.
Количество дельт в оперативной памяти. Укажите количество дельт, которые будут хранить изменения между старыми версиями и последней актуальной версией кеша, в оперативной памяти. За счёт хранения заранее рассчитанной дельты между старой версией и последней актуальной версией кеша в оперативной памяти ускоряется загрузка данных на мобильное устройство и снижается нагрузка на процессор.
Примечание.
При использовании данного параметра учитывайте следующие особенности:
● количество дельт в оперативной памяти должно быть
меньше или равно количеству старых версий кеша, указанных в параметре
«Сколько старых версий хранить».
● хранение указанного количества дельт приводит
к увеличению объёма потребления оперативной памяти.
Измените входные параметры ресурса для получения среза данных через запросы и нажмите кнопку «Сохранить». Ресурс будет добавлен в список содержащихся ресурсов источника данных и его входные параметры будут доступны для управления кешем ресурса.
Запросы к ресурсам источника данных приведены в разделе «Метод работы с табличными ресурсами».
См. также: