Bt-teh.ru

БТ Тех
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Синхронизация приложения и сервера

Синхронизация приложения и сервера

Всем привет. Пишу сервер для своего андроид приложения и возникло 2 вопроса по поводу синхронизации.

1. И так. Для примера представим что у меня на сервере (в БД) есть текстовая запись "Запись №1", и вот я с помощью приложения (при подключенном интернете) ее успешно обновил на сервере и локальной БД до "Запись №2". Пока есть интернет, то все ок. Но вот представим что у меня один аккаунт (user_id и его таблицы на сервере) используют одновременно планшет и смартфон. Также представим что у планшета и телефона в данный момент нет интернета и они пишут только в свою локальную БД, т.е на планшете запись меняем на "Запись №3", а на смартфоне "Запись №4".
Если сделать просто, то: смартфон подключился первым и обновил запись на сервере до "Запись №3", а потом планшет подключился и обновил до "Запись №4". Получается что обновления смартфона удалились. Как лучше поступать в таком случаи?? Есть идея возможности отката вручную к нужным настройкам, но пока не знаю как осуществить

2 вопрос. Как вообще лучше осуществлять синхронизацию, тоесть как клиент (приложение) будет знать что на сервере есть данные которых у него нет (имеется ввиду после подключения интернете)?? Добавлять к какдой таблице новое поле: дата последнего обновления и в самой аппе сохранять значение последней синхронизации (и если дата в записи позднее чем синхронизации, то обновить его в локальной БД приложения). Ну и стоить учитывать что гаджетов может быть несколько, т.е надо слушать клиенту сервер и серверу клиента. Может есть какие-то туториалы как лучше делать?

И вообще может у кого есть информация по синхронизации и ее принципах и реализациях, буду очень признален если поделитесь ею

Всем спасибо, всем добра

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Синхронизация приложения с сайтом
Допустим, есть приложение, данные для которого берутся из API сайта. Соответственно, данные на.

Синхронизация данных приложения между устройствами
Здравствуйте! Необходимо осуществить синхронизацию данных приложения на разных устройствах.

Синхронизация приложения на разных устройствах
Всем привет! Подскажите пожалуйста ( если есть возможность дайте ссылку где почитать) я начиная.

Синхронизация клиента и сервера
1. Сервер генерирует число double. Например 3.25. 2. Сервер посылает клиенту сообщение о старте.

я может неправильно сформулировал.
суть: если интернет есть, то записывать в локальную и потом сразу отдавать серверу и там обновляться. Если интернета нет, то писать только в локальную БД, а при появлении интернета обращатся к серверу. Только как лучше "помечать" данные которые еще не отдавались серверу?
Ну и что можно сделать в такой ситуации: смартфон постоянно подключен к интернету и соответственно все его данные актуальны на сервере, но потом начали юзать планшет (у которого давно интернета не было, и соответственно имеет очень старые данные) и фактически стер свежие данные и залил свои старые. Можно сделать возможность отката вручную, но тут тоже вопрос: как отмечать записи, которые только обновились (так сказать временные) чтобы если что откатить эти изменения??

Добавлено через 1 минуту
ну а напрямую с БД работать не буду. Буду использовать Spring Data и Spring Web MVC

yuraha18, у каждой записи должен быть триггер того, что она отправлена на сервер и время ее обновления. Например, есть несколько полей, которые еще не отправились. В них значение триггера 0, вр.обн. — timestamp в момент создания/обновления. Вы блок записей с триггером 0 отправляете на сервер, вам приходит для каждой записи время ее записи в БД сервера (можно сделать массив из <PrimaryKey, Timestamp>) и у себя локально обновить для этих записей триггер и время. Это подтверждение для каждой транзакции. И если потом локально какая та строка обновилась, то сбрасывать это состояние триггера в 0, и время обновления, и опять же какой-то итерацией отправить все данные с 0 на сервер. На сервере вы сравниваете значение времени обновления прилетевших данных и своих данных. Все данные естественно приводить к единому часовому поясу.
Опять же, такое решение не учитывает возможности того, что несколько человек, отключенных от инета обновят одну и ту же запись, и потом при появлении инета отправят обновление на сервер. Тогда произойдет нехилая коллиция, ведь кому-то из них придут невалидные данные. Возможно тут стоит поиграться с хешем данных вместо timestamp.

Это решение в лоб, и скорей всего будет серьезная нагрузка на сервер. У меня лишь небольшие знания в области БД. Возможно вам стоит задать этот вопрос в других разделах форума, связанных с БД.

ClockSync

ClockSync для AndroidСинхронизация времени телефона, программа для АндроидClockSync

ClockSync. Ручная или автоматическая синхронизация системного времени устройства через NTP. Акутально для практически всех наших операторов, так как они не поддерживают протокол автоматической синхронизации времени через базовые станции оператора (NITZ). Из-за этого время на вашем устройстве может постоянно отставать или убегать вперед.

Возможности:

  • Обновление времени через NTP по тапу на времени или смещении, синхронизация по тапу на системном времени а так же через меню приложения.
  • Отображение даты или времени прошедшего с последнего момента синхронизации (меняется по тапу).
  • Вибро отзыв при нажатиях на активные элементы экрана.
  • Автоматическая синхронизация времени с заданным интервалом и при загрузке.
  • Возможность синхронизировать только через Wi-Fi (если у вас Wi-Fi отключается при засыпании, не будет синхронизироваться).
  • Энергоэффективные режимы синхронизации (15/30/60 минут и 1/12/14 часов) и синхронизация только при включении устройства.
  • Русский/английский интерфейсы (время с последней синхронизации немного криво показывает множественные формы минут/часов + дата будет всегда на английском).
  • Не лезет в интернет если выключена системная опция Background Data (автоматическая синхронизация не будет работать).
  • Совместимость с Android 1.5 и более поздними версиями системы.
Читать еще:  Включить основную синхронизацию почты андроид

Ручной режим для телефонов без root:

  • Автоматическое получение точного времени с заданным интервалом.
  • Если разница с точным временем превышает заданное значение, показывается уведомление.
  • Помощник для ручной синхронизации с подсказками какие значения даты/времени установить.
  • Точность в интервале между 1 и 30 секундами (т.к. Android не позволяет устанавливать секунды).
  • Точность ~1 секунда если ваше устройство обнуляет секунды при ручной установке времени (большинство устройств Samsung).
  • Сигнал точного времени для помощи при ручной установке если устройство обнуляет секунды.

Управление часовым поясом (root не нужен!):

  • Установка часового пояса через географические координаты.
  • Установка часового пояса согласно последней версии базы Olson (2012g) (tzdata, zoneinfo, tz database).
  • Установка часового пояса через ручную настройку смещения в часах.

Скачать программу для синхронизации времени телефона — ClockSync на Андроид вы можете по ссылке ниже.

Разработчик: Sergey Baranov
Платформа: Android 1.5 и выше
Язык интерфейса: Русский (RUS).
Root: Нужен для автоматической синхронизации времени
Состояние: Free

Настройка сервера точного времени в локальной сети на маршрутизаторах Mikrotik под управлением RouterOS.

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

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

В случаях, когда время на компьютерах отличается, могут возникать определенные проблемы, в частности речь идет о сетевом программном обеспечении. Примеров может быть множество, каждый сам решает насколько для вас важно точное время. Очень часто в торговых предприятиях рабочие станции (например, кассы) хоть и объединены в локальную сеть, но доступа к сети Интернет могут и не иметь. Использование локального сервера времени позволяет установить единое время для всех устройств, работающих в локальной сети предприятия, а также обеспечить автоматическую синхронизацию времени на ПК без доступа к сети Интернет.

Процесс настройки точного времени на примере маршрутизаторов компании Mikrotik.

Первоначальная настройка времени выполняется в разделе System – Clock.

Первоначальная настройка времени выполняется в разделе System – Clock

Важно правильно указать часовой пояс. Заходим в раздел System – NTP Client.

раздел System – NTP Client

Первым делом устанавливаем опцию Enabled, для активации клиента. Режим (Mode) оставляем без изменений – unicast. Далее нам необходимо указать 2 сервера времени, первичный и вторичный – Primary NTP Server и Secondary NTP Server.

Сервер времени достаточно просто найти в интернете, самым крупным сервисом является pool.ntp.org, здесь вы можете выбрать сервер NTP, исходя из своей локации. Поскольку мы находимся в Украине, то и сервера предполагается использовать украинские – чем меньше задержки при передаче пакетов, тем лучше.

Для Украины это серверы:

На сервисе существуют серверы для других стран и регионов, например, для Европы есть сервера верхнего уровня:

выбираем NTP Client

Пока клиент NTP не активен – система будет использовать локальные часы (using local clock). Поле того, как вы укажете серверы для синхронизации и нажмете применить, система преобразует DNS в IP-адреса и начнет синхронизацию (статус synchronized – синхронизация прошла успешно).

Преобразование в IP имеет недостаток, дело в том при смене IP сервера, в маршрутизаторе он автоматически не сменится. Будем надеяться, в последующих обновлениях RouterOS разработчики учтут этот недостаток.

Настройка и синхронизация точного времени в локальной сети

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

Для этого нам потребуется специальный пакет NTP, который устанавливается отдельно. На официальном сайте Mikrotik в разделе загрузок (Downloads), необходимо скачать архив Extra packages для вашей платформы. В нашем случае это MIPS-BE.

архив Extra packages

Качаем all_packages-mipsbe-6.34.zip (архив для текущей версии 6.34) и извлекаем из него NPK-пакет ntp-6.34-mipsbe.npk.

NPK-пакет ntp-6.34-mipsbe.npk

Загружаем в Mikrotik, активируем, перезагружаем систему. После этого у вас появится новый раздел System – NTP Server.

раздел System – NTP Server

Это и есть наш сервер NTP. Устанавливаем опцию Enabled, а также Multicast и Manycast.

Устанавливаем опцию Enabled, а также Multicast и Manycast

Готово, теперь в нашей локальной сети есть свой сервер времени. Осталось настроить клиентские устройства. Большинство офисов используют Windows-платформу, поэтому настройку опишем на примере операционной системы Windows.

Windows время

В настройках часов присутствует специальная вкладка «Время по Интернету», здесь можно указать сервер времени и выполнить ручную синхронизацию.

Windows время - ручная синхронизация

Недостаток этого метода в том, что настройку нужно произвести на всех компьютерах, а при переустановке ОС выполнять все действия повторно. Существует альтернативный и куда более удобный вариант решения данного вопроса. Дело в том, что по-умолчанию, операционная система Windows настроена на синхронизацию времени с сервером time.windows.com

Поскольку клиенты в локальной сети в качестве DNS-сервера используют локальный маршрутизатор, мы вполне можем «обмануть» Windows. Открываем раздел IP – DNS.

раздел IP – DNS

В настройках DNS необходимо добавить новую статическую запись, для чего нажимаем Static.

В настройках DNS необходимо добавить новую статическую запись

В поле Name указываем time.windows.com, в поле Address – IP маршрутизатора в локальной сети.

указываем time.windows.com

После этого у нас появится новая запись.

Настройка и синхронизация точного времени в локальной сети в ОС Виндовс

До того, как кеш DNS обновится может пройти достаточное количество времени, поэтому ускоряем процесс. В настройках DNS выбираем Cache (Кеш) и далее нажимаем Flush Cache, что приведет к его очистке.

Настройка и синхронизация точного времени в локальной сети в ОС Виндовс

На этом настройка завершена, а все системы на ОС Windows будут производить автоматическую синхронизацию времени с локальным сервером без каких-либо дополнительных настроек.

Читать еще:  Itunes как синхронизировать книги в ibooks

Контроль за мегабайтами: как экономить мобильный трафик на Android

Давно минули те времена, когда интернет-провайдеры повсеместно вели учет мегабайтам, потраченным пользователями в Сети. Тарифные планы на домашний интернет в наши дни различаются в основном скоростью. А вот операторы сотовой связи не спешат предоставлять полностью безлимитный интернет и, как правило, выделяют лишь определенный объем недорогого трафика.

А ведь без интернета сегодня не могут жить не только люди, но и сами смартфоны: бывает, он сам там что-то стянет среди ночи, обновит пару-тройку приложений, и утром на загрузку вложений из почты предоплаченного трафика уже не остается. Что ж, подумаем, как можно с этим бороться и как экономить на пока что недешевом интернете.

⇡#Контроль трафика штатными средствами операционной системы

Для начала посмотрим, что мы можем сделать без установки дополнительных приложений. В настройках Android есть пункт «Контроль трафика», при помощи которого можно отдельно отслеживать передачу данных по Wi-Fi и через мобильные сети. Тут же можно вообще отключить передачу данных, то есть использование мобильного интернета.

Операционная система отображает график использования трафика за выделенный период времени (изменять его можно, двигая ползунки по графику) и показывает, какие приложения потребляют больше всего данных. Щелкнув по приложению, можно увидеть график потребления, сгенерированный специально для него.

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

Очень многие Android-приложения связываются с Интернетом в фоновом режиме и, как результат, трафик расходуется еще до того, как владелец телефона успевает проснуться. Чтобы этого не происходило, можно запретить для отдельных приложений использование мобильного трафика в фоновом режиме. Для этого щелкните по названию приложения в окне расхода трафика и установите флажок Restrict Background data.

Эту функцию можно отключить и глобально. Для этого, находясь в разделе «Контроль трафика», перейдите к настройкам и установите одноименный флажок. Тут же можно отключить автоматическую синхронизацию данных. Правда, при глобальном запрете на загрузку через мобильный интернет некоторые важные приложения — например почтовый клиент — могут работать не так, как вы ожидаете.

Очень много трафика уходит на обновления приложений. Чтобы загрузка апдейтов не съедала дорогой трафик, можно перейти к настройкам Google Play и в разделе «Автообновление приложений» выбрать обновление только через Wi-Fi или (как вариант) вообще отключить автоматическое обновление.

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

⇡#Контроль трафика в Google Chrome

Функция сжатия данных есть и в мобильной версии браузера Google Chrome. Работает она так: содержимое веб-страниц сначала отправляется на серверы Google, там оптимизируется и загружается уже в сжатом виде. Качество изображений при этом, конечно, страдает, но зато и трафика потребляется намного меньше.

Найти и включить эту опцию можно в меню «Настройки → Контроль трафика → Сокращение трафика». В зависимости от того, какие веб-страницы вы просматриваете на мобильном устройстве, экономия может быть ощутимой — до 50%. Правда, сжатие данных будет бесполезным при загрузке веб-страниц, на которых используется шифрование трафика, — такие данные Google не сможет отправить на свои серверы. Кроме этого, стоит иметь в виду, что сжатие выполняться не будет и при включении режима «инкогнито» в браузере.

Для экономии мобильного трафика в Google Chrome также стоит отключить функцию предварительной загрузки веб-страниц. Находится она в том же разделе настроек «Контроль трафика». Можно позволить браузеру загружать страницы в фоновом режиме только при активном Wi-Fi-соединении или же вообще запретить закачку.

⇡#Контроль за потреблением трафика при помощи специализированных приложений

Основная цель приложений для учета мобильного трафика — помочь сэкономить. Для этого используется как простая статистика потребления, так и ограничения на разные периоды времени.

Возможно, самая простая программа для учета трафика — Internet Speed Meter Lite. Она выполняет только функции мониторинга и сбора статистики. Приложение в реальном времени следит за потреблением мобильного и Wi-Fi-трафика. Текущую скорость передачи данных можно наблюдать на панели уведомлений, а если раскрыть меню уведомлений, можно также увидеть название текущей сети и количество трафика, который был потреблен за сегодня.

Окно приложения показывает, сколько трафика было использовано за последний месяц по дням, сумму за последние семь и тридцать дней, а также общее число с начала текущего месяца. Мобильный и Wi-Fi-трафик считается отдельно.

Приложение Data Usage интересно тем, что может считать не только мобильный, но и Wi-Fi-трафик. И не только считать, но и уведомлять о превышении заданного лимита, а также блокировать передачу данных при достижении определенного значения. Зачем может понадобиться учет трафика по Wi-Fi? К примеру, в некоторых отелях практикуют предоставление бесплатного доступа к Wi-Fi в рамках определенного лимита. При его превышении нужно платить дополнительно.

В настройках приложения можно указать, какой объем трафика (отдельно — мобильного и Wi-Fi) предоставляется на заданный период. Data Usage не только соберет статистику за день, за неделю и за отчетный период, но и посчитает, сколько трафика нужно потреблять в идеале, чтобы интернет точно не влетел в копейку. Также показывается прогнозируемое потребление, отдельная статистика по полученным и переданным данным и — самое главное — сколько осталось свободного трафика до конца отчетного периода.

Читать еще:  Драйвер для синхронизации с телефоном престижио

Данные по мобильному интернету и Wi-Fi показываются на отдельных вкладках, но можно просмотреть суммарную историю потребления трафика на наглядном графике.

Data Usage может предупреждать о том, что предоплаченный трафик скоро закончится. Причем таких предупреждений может быть три. По умолчанию — при использовании пятидесяти, семидесяти пяти и девяноста процентов, но этот параметр настраивается. Кроме этого, приложение может вовсе отключать интернет при достижении определенного значения (по умолчанию — 99%) и автоматически включать его при наступлении следующего отчетного периода.

Еще одно приложение для мониторинга трафика, которое может оказаться полезным — «Мой интернет-менеджер» (My Data Manager — Data Usage. Его особенность в возможности установить отдельные планы использования данных для роуминга и мобильного интернета. Можно задать лимит трафика, а также дату и время начала плана.

Что касается данных, получаемых через Wi-Fi, то лимит трафика тут установить невозможно, но зато можно указать, при достижении какого числа загруженных данных программа должна уведомить пользователя. «Мой интернет-менеджер» выводит информацию о расходе трафика в удобном виде, при этом каждый вид соединения размещен на отдельной вкладке.

Полный отчет об общем потреблении данных можно увидеть на графике. Также информация по израсходованному трафику выводится на панели уведомлений.

Приложение также ведет учет потребления данных разными приложениями. Эта информация может быть представлена в виде диаграммы или же в виде списка.

К приятным бонусам приложения можно отнести возможность резервного копирования данных на SD-карту и их быстрое восстановление.

⇡#Нестандартный подход: не только контроль, но и уменьшение трафика

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

Та же технология сжатия, которая использовалась в старых продуктах норвежской компании, легла в основу приложения Opera Max для Android. В настоящее время оно пока что тестируется, но уже доступно для свободного скачивания из Google Play в нашей стране. Основное отличие Opera Max от соответствующей функции в браузере — работа со всеми приложениями. То есть если Opera Mini сжимает только содержимое веб-страниц, то Opera Max работает с любым браузером, а также приложениями для просмотра видеоконтента, для чтения RSS, для загрузки фотографий и т.д. В частности, при помощи Opera Max существенно экономится трафик в приложениях «Вконтакте», Viber, «Одноклассники».

Технически работа Opera Max реализована через сеть VPN. Весь сетевой трафик с мобильного устройства проходит через серверы Opera, где по возможности сжимается. Таким образом, пользователь загружает гораздо меньше данных.

То, сколько данных было сэкономлено, показывается в окне приложения. Доступна и подробная статистика по дате и по приложениям. Как показало наше тестирование, лучше всего сжимаются веб-страницы и фотографии, с видео ситуация обстоит похуже. А вот с Facebook и Twitter приложение не работает вообще — это потому, что указанные социальные сайты используют зашифрованное соединение. Соответственно, перехватить этот трафик, чтобы отправить его на серверы Opera, у приложения не получается. Стоит также иметь в виду, что приложение бесполезно для сжатия веб-страниц, если вы используете браузер Google Chrome с включенной функцией сжатия данных. В этом случае экономить еще больше не получается. Также Opera Max не сжимает обновления приложений и загружаемые на устройство файлы.

Opera Max работает только с мобильным Интернетом. Что же касается трафика Wi-Fi, то он не учитывается и не экономится. Но зато в приложении есть удобная опция для запрета на использование мобильного трафика для отдельных приложений. Это может быть удобно, так как параметр обновления через Wi-Fi можно найти не во всех приложениях.

Наконец, используя Opera Max, стоит иметь в виду, что приложение работает в автономном режиме в течение семи дней. Для его дальнейшей работы нужно «выполнить подзарядку», то есть нажать на специальную кнопку на соответствующей вкладке приложения. Пока что (на этапе тестирования) это бесплатно, но в будущем, скорее всего, за продление работы сервиса нужно будет платить.

Впрочем, если все же Opera Max в будущем станет платным, то стоит иметь в виду, что это приложение не уникальное. Те же функции уже более двух лет доступны пользователям менее известной программы Onavo Extend, разработчики которой в 2013 году перешли под крыло компании Facebook.

Как и Opera Max, это бесплатное приложение работает через прокси-сервер и сжимает весь мобильный трафик с устройства. При включении Wi-Fi оно автоматически отключается. В приложении можно посмотреть статистику по сэкономленному трафику за неделю и за месяц. А еще в настройках есть возможность управлять качеством графики, а также устанавливать размер кеша для сохраняемых графических элементов. Это актуально, если вы постоянно загружаете одни и те же веб-страницы. Onavo Extend сохраняет графику с них, она не загружается повторно, благодаря чему экономия еще больше.

⇡#Заключение

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector