Разработка мобильных приложений для Android - подключайтесь к веб-сервису REST по медленной сети
Я разрабатываю модуль репликации данных для подключения устройства Android к веб-службе REST с единственной целью репликации данных. Я использую Volley API.
Модуль репликации данных делает это в два этапа.
- Загрузка данных - устройство Android отправляет данные, взятые из его таблиц SQLite, в виде сообщения POST в формате JSON одним запросом к одному веб-сервису. Веб-служба сервера будет считывать данные JSON и сохранять записи в таблицах MySQL сервера.
- После шага 1 устройство Android вызовет другую веб-службу в сообщении POST, чтобы запросить данные с сервера. Веб-служба сервера ответит извлечением данных из своей базы данных SQLite и отправкой данных в формате JSON. Устройство Android получит данные и сохранит их в своих таблицах SQLite.
Вообще говоря, модуль работает в нормальных сетевых условиях. Проблемы возникают из-за того, что основные пользователи работают с приложением в очень медленных / пятнистых сетевых условиях.
У меня есть полный контроль над клиентами Android-устройств, а также веб-службами и базами данных на стороне сервера.
- Является ли этот подход неправильным - использование веб-службы REST для репликации данных в медленных / нестабильных сетевых условиях? Есть ли более надежные подходы?
- Каков наилучший подход к управлению отправкой / получением данных по медленной / нестабильной сети? Репликация сегодня сталкивается с несколькими исключениями тайм-аута / отсутствия соединения / сети. Управление исключениями не является проблемой, проблема, с которой я сталкиваюсь, заключается в том, что некоторые записи отправляются на сервер и успешно сохраняются, а некоторые нет. И во время загрузки, некоторые записи загружаются успешно, а некоторые нет. Потому что во время медленных / нестабильных сетевых условий связь с сервером прерывается, поэтому устройство не может получить больше информации от сервера.
Извините, если мой вопрос сходит с ума на любителя и я не знаю, я довольно новичок в разработке для Android.