Синхронизация клиент-серверных баз данных
Синхронизация клиент-серверных баз данных
Я ищу некоторые общие стратегии синхронизации данных на центральном сервере с клиентскими приложениями, которые не всегда в сети.
В моем конкретном случае у меня есть приложение для телефона Android с базой данных sqlite и веб-приложение PHP с базой данных MySQL.
Пользователи смогут добавлять и редактировать информацию в приложении телефона и в веб-приложении. Мне нужно убедиться, что изменения, внесенные в одном месте, отражаются везде, даже когда телефон не может сразу связаться с сервером.
Меня не волнует, как передавать данные с телефона на сервер или наоборот. Я упоминаю свои конкретные технологии только потому, что я не могу использовать, например, функции репликации, доступные в MySQL.
Я знаю, что проблема синхронизации данных клиент-сервер существует уже давно, и мне нужна информация — статьи, книги, советы и т. Д. — о шаблонах решения этой проблемы. Я хотел бы узнать об общих стратегиях работы с синхронизацией, чтобы сравнить сильные и слабые стороны и недостатки.
Первое, что вам нужно решить, это общая политика относительно того, какая сторона считается «авторитетной» в случае противоречивых изменений.
То есть: предположим, что запись № 125 была изменена на сервере 5 января в 22:00, и такая же запись была изменена на одном из телефонов (назовем ее клиентом A) 5 января в 23:00. Последняя синхронизация была 3 января. Затем пользователь снова подключается, скажем, 8 января.
Определить, что нужно изменить, «легко» в том смысле, что и клиент, и сервер знают дату последней синхронизации, поэтому все, что было создано или обновлено (подробнее об этом см. Ниже) с момента последней синхронизации, должно быть согласовано.
Итак, предположим, что единственная измененная запись — № 125. Вы либо решаете, что одна из двух автоматически «побеждает» и перезаписывает другой, либо вам необходимо поддерживать фазу согласования, когда пользователь может решить, какая версия (серверная или клиентская) является правильной, перезаписывая другую.
Это решение чрезвычайно важно, и вы должны взвесить «роль» клиентов. Особенно, если существует потенциальный конфликт не только между клиентом и сервером, но и в случае, если разные клиенты могут изменять одну и ту же запись (записи).
[Предполагая, что № 125 может быть изменен вторым клиентом (клиентом B), есть вероятность, что клиент B, который еще не синхронизировался, предоставит еще одну версию той же записи, что делает предыдущее разрешение конфликта спорным]
Что касается пункта « создано или обновлено » выше . как вы можете правильно идентифицировать запись, если она была создана на одном из клиентов (при условии, что это имеет смысл в вашей проблемной области)? Предположим, ваше приложение управляет списком деловых контактов. Если клиент A говорит, что вам нужно добавить недавно созданного Джона Смита, а на сервере есть Джон Смит, созданный вчера клиентом D . создаете ли вы две записи, потому что не можете быть уверены, что они не разные люди? Вы попросите пользователя уладить и этот конфликт?
Есть ли у клиентов «владение» подмножеством данных? Т.е. если клиент B настроен как «авторитет» для данных для области №5, может ли клиент A изменять / создавать записи для области №5 или нет? (Это упростит разрешение некоторых конфликтов, но может оказаться невыполнимым в вашей ситуации).
Подводя итог, можно выделить следующие основные проблемы:
- Как определить «идентичность», учитывая, что отключенные клиенты могли не получить доступ к серверу до создания новой записи.
- Предыдущая ситуация, независимо от того, насколько сложным является решение, может привести к дублированию данных, поэтому вы должны предвидеть, как периодически решать эти проблемы и как информировать клиентов о том, что то, что они считали «записью № 675», действительно было объединено / заменено Запись # 543
- Решите, будут ли конфликты разрешаться указанием (например, «Версия сервера всегда превосходит версию клиента, если первая была обновлена с момента последней синхронизации») или вручную.
- В случае фиата , особенно если вы решите, что клиент имеет приоритет, вы также должны позаботиться о том, как поступать с другими, еще не синхронизированными клиентами, которые могут иметь еще некоторые изменения.
- В предыдущих пунктах не учитывалась детализация ваших данных (чтобы упростить описание). Достаточно сказать, что вместо рассуждений на уровне «записи», как в моем примере, вы можете найти более подходящим записывать изменения на уровне поля. Или работать с набором записей (например, запись человека + запись адреса + запись контактов), одновременно рассматривая их совокупность как своего рода «мета-запись».
Подробнее об этом, конечно же, в Википедии .
Оптимистическая репликация ЯСУШИ САЙТО (HP Laboratories) и МАРК ШАПИРО (Microsoft Research Ltd.) — ACM Computing Surveys, Vol. V, № N, 3, 2005.
Александр Трауд, Юрген Наглер-Ихляйн, Франк Каргл и Майкл Вебер. 2008. Циклическая синхронизация данных посредством повторного использования SyncML. В материалах Девятой Международной конференции по управлению мобильными данными (MDM ’08). IEEE Computer Society, Вашингтон, округ Колумбия, США, 165–172. DOI = 10.1109 / MDM.2008.10 http://dx.doi.org/10.1109/MDM.2008.10
Лам Ф., Лам Н. и Вонг Р. 2002. Эффективная синхронизация мобильных XML-данных. В материалах одиннадцатой международной конференции по управлению информацией и знаниями (Маклин, Вирджиния, США, 4–9 ноября 2002 г.). ЦИКМ ’02. ACM, Нью-Йорк, Нью-Йорк, 153–160. DOI = http://doi.acm.org/10.1145/584792.584820
Cunha, PR и Maibaum, TS 1981. Resource & equil; абстрактный тип данных + синхронизация — Методология программирования, ориентированного на сообщения -. В материалах 5-й международной конференции по разработке программного обеспечения (Сан-Диего, Калифорния, США, 9–12 марта 1981 г.). Международная конференция по программной инженерии. IEEE Press, Пискатауэй, Нью-Джерси, 263-272.
(Последние три взяты из цифровой библиотеки ACM, не знаю, являетесь ли вы ее участником или можете получить их по другим каналам).
Лучшая программа для синхронизации между клиентом Windows 7 и сервером Linux
Я работаю и разрабатываю PHP/MySQL на клиенте Windows 7. С xampp его просто использовать и тестировать. Но поскольку в моем фактическом проекте мне нужны только некоторые функции linux, я хочу протестировать свой код на сервере virtualbox (Ubuntu).
Теперь я ищу хороший способ синхронизировать мой исходный код как на клиенте, так и на сервере.
Я знаю, что мог бы работать через SFTP на клиенте linux, но для меня это не идеальный способ.
Я использую Eclipse и Git.
Есть какие-нибудь идеи для синхронизации двух файловых систем?
Может быть, samba, но есть проблема прав. Rsync для windows?
1 ответ
- Java синхронизация файлов между FTP и клиентом
мне нужен метод синхронизации файлов между сервером FTP и клиентом по щелчку мыши. я ищу несколько дней, но все, что я мог найти, слишком сложно для моих низких навыков java. кто-нибудь знает какой-нибудь простой способ сделать это? Приветствую!
Что такое алгоритм с низкой задержкой и низкой пропускной способностью для синхронизации, скажем, текстового файла между клиентом и сервером? Есть ли дизайн, в котором клиент отправляет дельту своего текущего состояния и последнего состояния ACKd с сервера? Я думаю о сети Quake3.. EDIT 1: Более.
1) Samba встроен в большинство дистрибутивов Linux. Он стандартный, надежный и простой в использовании.
Он понимает ваши структуры каталогов, сохраняет имена файлов и метки дат, а также может использовать Windows Explorer или ваш Linux файловый менеджер GUI по выбору (например, Nautilus) для перетаскивания файлов между средами
Что тут не любить?
2) Вот несколько ссылок:
3) Если все, что вас интересует, — это синхронизация управления версиями исходного кода &, GIT должно быть более чем достаточно.
4) Вы можете использовать клиент Windows, такой как TortoiseGit (или, что проще, просто используйте Eclipse!):
5) Вы также можете рассмотреть возможность использования GitHub:
— Надеюсь, это поможет.
PS: Если вы используете VBox, общие папки также являются опцией, верно?
Похожие вопросы:
Я хотел сделать безопасную связь между клиентом Oracle и сервером Oracle. Oracle версия: 11g Знает ли кто-нибудь, как настроить безопасную связь с сервером Oracle и клиентом? Какую конфигурацию.
Я работал над проектом, который использует базу данных sqlce, которая передается между клиентом, который должен работать в автономном режиме, и сервером, который хранит информационную базу данных.
Существуют ли какие-либо рекомендации по синхронизации иерархических доменных объектов между клиентом с модульной структурой (WPF,PRISM,MVVM) и сервером(WCF service и NHibernate for persistence in.
мне нужен метод синхронизации файлов между сервером FTP и клиентом по щелчку мыши. я ищу несколько дней, но все, что я мог найти, слишком сложно для моих низких навыков java. кто-нибудь знает.
Что такое алгоритм с низкой задержкой и низкой пропускной способностью для синхронизации, скажем, текстового файла между клиентом и сервером? Есть ли дизайн, в котором клиент отправляет дельту.
В чем разница между сервером и клиентом? Какое это имеет значение для некоторых программных установок? Например, я проверил, как загрузить и установить cvs, и один из пользователей спросил о сервере.
Когда дело доходит до мобильных приложений, большую часть времени клиент будет находиться в автономном режиме. Прямо сейчас, когда пользователь отправляет данные на клиент, они сохраняются локально.
Я выполняю связь между клиентом (windows) и сервером(linux RT) в c. Я написал клиентский код для операционной системы windows (один ноутбук) и серверный код для операционной системы linux (другой.
Я привык работать с Dart, где обмен типами между сервером и клиентом так же прост, как импорт соответствующих пакетов в ваш проект. Можно ли сделать что-то подобное с Yesod/Haskell?, если я должен.
В узле JS существует множество пакетов для передачи файлов между клиентом и сервером. Но есть ли какой-то конкретный пакет, который легко передает любые файлы между клиентом и сервером и наоборот?
SyncML
SyncML (от англ. Synchronization Markup Language — «язык разметки синхронизации») был создан для разработки единого протокола передачи данных для всех типов портативных устройств, таких как КПК, портативные ПК, пейджеры и мобильные телефоны. Созданный в феврале 2000, SyncML быстро охватил наиболее весомых производителей мобильных устройств и мобильного программного обеспечения, таких как Nokia, Ericsson, IBM, Lotus, Motorola, Palm, Psion, Starfish. SyncML призван решить вопросы синхронизации мобильных устройств с сетевыми данными.
SyncML использует разметку XML и различные протоколы для передачи данных. Реализация клиентских приложений для SyncML позволяет использовать WAP Binary XML для уменьшения размера пакетов передаваемых данных, тем не менее, использование WBXML не является обязательным. SyncML также способен восстановить связь между устройствами, если происходят обрывы соединения (при условии, что клиент и сервер поддерживают обрывы соединения). Кроме этого, SyncML эффективно работает с различными коммуникационными протоколами, такими как HTTP, Wireless Session Protocol, OBEX (Bluetooth, IrDA), SMTP, TCP/IP.
Программная структура SyncML основана на двух протоколах:
- Протокол представления SyncML (SyncML Representation Protocol), который определяет формат представления SyncML-сообщений и описание внутренней конструкции работы SyncML.
- Протокол синхронизации SyncML (SyncML Synchronisation Protocol), который определяет действия между SyncML-клиентом и SyncML-сервером.
SyncML поддерживает семь различных типов синхронизации:
- Двусторонняя синхронизация (Two-way sync);
- Медленная синхронизация (Slow sync);
- Односторонняя синхронизация только от клиента (One-way sync from client only);
- Обновление только от клиента (Refresh sync from client only);
- Односторонняя синхронизация только от сервера (One-way sync from server only);
- Обновление только от сервера (Refresh sync from server only);
- Синхронизация при изменении серверных данных (Server-alerted sync).
SyncML не зависим от типов синхронизируемых данных, но обычно это данные в формате text/x-vcard (визитки), text/x-vcalendar (календарь/задачи), text/plain(заметки). Следует отметить, что первые два типа имеют регламентированные наборы полей, и каждое определённое устройство может поддерживать или не поддерживать некоторые поля. Несмотря на то, что существуют спецификации на vcard и vcalendar, они позволяют производителям устройств произвольно трактовать некоторые параметры. Протокол SyncML позволяет передавать данные о поддерживаемых форматах (поля, типы, размер, возможные значения и т. д.), но, как правило, эти данные не в полном объёме предоставляются устройством для однозначной интерпретации формата или существенно различаются по значениям между устройствами различных производителей, что создаёт определённые сложности для разработчиков SyncML-серверов.
Как использовать Google Диск для компьютеров
Диск для компьютеров используется для того, чтобы синхронизировать файлы, хранящиеся в облаке и на компьютере. При этом файлы скачиваются из облака и загружаются с жесткого диска компьютера. В результате материалы, которые хранятся на вашем компьютере, соответствуют контенту, размещенному в облаке. Если вы выполняете действия с файлом в одном хранилище (например, редактируете, удаляете или перемещаете), то же самое происходит с его копией в другом хранилище. Таким образом, во всех версиях ваших файлов будет представлено актуальное содержание и к нему можно будет получить доступ с любого устройства.
В настройках Диска для компьютеров вы можете указать, как должны обрабатываться ваши файлы: нужно ли дублировать файлы Моего диска или же следует выполнять их потоковую передачу. В зависимости от выбранного вами варианта ваши файлы будут находиться в разных папках на компьютере.
Что происходит при дублировании или потоковой передаче файлов
С помощью Диска для компьютеров вы можете на своем компьютере получить доступ к файлам, хранящимся на Google Диске.Все вносимые в них изменения будут синхронизироваться. Все файлы на общих дисках, USB и других компьютерах будут передаваться из облака на компьютер. Вы можете дублировать файлы Моего диска или выполнять их потоковую передачу.
Когда вы дублируете файлы, все ваши файлы из папки «Мой диск» хранятся в облаке и на компьютере, занимая место на жестком диске. Все файлы будут доступны в любое время, даже если устройство не подключено к интернету или приложение «Диск для компьютеров» не запущено. С файлами можно будет работать из папки на вашем компьютере.
Если вы пользуетесь потоковой передачей, файлы из папки «Мой диск» хранятся в облаке. Место на жестком диске используется только тогда, когда вы открываете файлы и делаете их доступными в офлайн-режиме. С файлами, недоступными в офлайн-режиме, можно работать только при подключении к интернету. С любыми файлами, в том числе доступными офлайн, можно работать только при включенном приложении. Доступ к файлам можно получить через подключенный диск на вашем компьютере.
Как переключиться с дублирования файлов на их потоковую передачу
Когда вы переключаетесь с дублирования файлов из папки «Мой Диск» на их потоковую передачу, местоположение этих файлов на компьютере меняется. При потоковой передаче файлы можно открыть через виртуальный диск на вашем компьютере. Папка, в которую вы дублировали файлы из раздела «Мой Диск», останется на вашем компьютере, но больше не будет синхронизироваться. Ее можно удалить, чтобы случайно не перепутать файлы и не утратить внесенные изменения.
Прежде чем удалять папку с компьютера Windows, вам необходимо выйти из приложения «Диск для компьютеров».
Настройки для папок на компьютере
Вы можете синхронизировать папку с Google Диском или загрузить ее в Google Фото.
- При синхронизации с Google Диском загружаются все файлы из папки. Все изменения в файлах на компьютере и Google Диске синхронизируются. Вы можете получить доступ ко всем своим файлам с любого устройства на странице drive.google.com или через приложение «Google Диск».
- При резервном копировании в Google Фото загружаются только изображения и видео. Изменения в файлах на компьютере и в Google Фото не синхронизируются. Посмотреть фотографии и видео можно с любого устройства на странице photos.google.com или в приложении «Google Фото».
macOS требует, чтобы приложения, такие как Диск для компьютеров, запрашивали разрешение на доступ к определенным папкам и устройствам, в том числе к папкам «Рабочий стол», «Документы» и «Загрузки», съемным и сетевым томам, а также вашей библиотеке Google Фото.
Приложение «Диск для компьютеров» запросит доступ только к тем папкам или устройствам, которые вы выберете для синхронизации с Google Диском или резервного копирования в Google Фото. Приложение также запросит доступ, если вы решили использовать функцию совместного редактирования в реальном времени или Bluetooth-ключ для входа в аккаунт.
Устранение ошибок
Как выполнять потоковую передачу файлов с помощью FileProvider
Как синхронизировать файлы с разделом «Компьютеры» на Google Диске
Как изменить расположение каталога локального кеша
При потоковой передаче файлов с Google Диска на ваш компьютер создается каталог локального кеша.
- В каталоге хранится информация о файлах, которые вы открываете и делаете доступными офлайн.
- Кеш Диска для компьютеров помогает быстро открывать ваши файлы.
- Если путь к каталогу кеша недоступен, использовать Диск для компьютеров не получится.
Чтобы изменить расположение каталога локального кеша, выполните следующие действия:
- Откройте Диск для компьютеров.
- Нажмите «Настройки»Параметры.
- Нажмите на значок «Настройки».
- Найдите пункт «Локальная папка для хранения файлов из кеша» и нажмите Выбрать папку.
- Выберите новое расположение кеша.
- Нажмите Изменить.
Вы можете настроить резервное копирование любого количества папок со съемных устройств, например с внешних жестких дисков.
Для их синхронизации и резервного копирования устройство должно быть подключено к компьютеру. Не отключайте устройство, пока выполняется перенос данных.
Если фото и видео составляют больше 95 % от числа файлов в папке, вы можете задать настройки так, чтобы эта папка синхронизировалась только с Google Фото. Этим вы сэкономите место в хранилище:
- Если раньше папка синхронизировалась и с Диском, и с Google Фото, то теперь файлы будут копироваться только в один сервис.
- Если же раньше она синхронизировалась только с Диском (а при этом загружается весь контент, включая уменьшенные изображения и метаданные), то теперь в Google Фото будут загружаться только снимки и видео.
- Данные из этой папки, которые уже были синхронизированы с Google Диском, не будут с него удалены.
Обратите внимание: данные с USB-устройств не будут переноситься.
Если вы отключите синхронизацию папки, файлы на компьютере и в облаке перестанут друг другу соответствовать. Это значит, что если вы добавите новый файл или отредактируете существующий, то такие изменения не будут перенесены в облако.
Если вы хотите, чтобы все ваши действия с локальными файлами отражались на Диске, не отключайте синхронизацию папок.
В Google Диске для компьютеров есть три основные вкладки: «Мой диск», «Общие диски» и «Компьютеры».
Папки, представленные на вкладке «Компьютеры», находятся на вашем компьютере и синхронизируются с Google Диском. Кроме того, здесь же могут быть папки и с других компьютеров, которые вы синхронизировали ранее. Вы увидите их в отдельных группах.
Папки, которые находятся на вкладке «Мой диск», можно дублировать на компьютер или включить для них ленту. В обоих случаях они будут доступны на локальном виртуальном диске.
Резервное копирование в Google Фото поддерживается только для изображений из системной медиатеки. Для остальных медиатек можно включить синхронизацию с Диском. При этом будет синхронизироваться весь контент в медиатеке, включая уменьшенные изображения и другие метаданные. Обратите внимание, что, когда вы запустите перенос аккаунта, приложение «Google Диск для компьютеров» может не знать, сколько места доступно в вашем хранилище iCloud.
С функциями «Фото iCloud», «Общие альбомы» и «Мой фотопоток» совместима только системная медиатека. Если у вас только одна библиотека с фотографиями, значит это системная медиатека. Если их несколько, то системной становится первая медиатека, которую вы создали или открыли в приложении «Фото». Если у вас установлена macOS версии Catalina или более поздней, то приложение сначала скачает изображения и видео из вашего хранилища, и только потом загрузит их в Google Фото. Для этого ему понадобится временно занять часть свободного пространства на жестком диске.
Синхронизация данных между сервером и клиентами
Побродив пару дней по интернету у меня сложилось впечатление, что многопользовательские программы — это очень большая редкость.
В общем проблема в том, что я пишу на wpf C# linqtosql sql2008 vs2012 приложение, которое обращается к базе. Пользователей много и изменений тоже. Необходимо периодически синхронизировать данные на клиенте (на мой взгляд классическая задача). Попробовав тупо обновлять все данные, получил ужасный результат — данных много обновление доходит до 30 секунд.
В шапки прочитал про основные принципы отслеживания изменений (понравился пункт 3 и 4 ), но в интернете конкретных реализаций ни одной не нашел.
В книгах и msdn тоже ничего, в основном основы.
Помогите найти ссылки на конкретные примеры с linqtosql.
сейчас примерно так:
и так для каждой таблицы.
Подозреваю должен быть какой-то не сложный способ, возможно в самом linq.
Синхронизация данных между клиентами/серверами
Есть множество клиентов-серверов. Как синхронизировать между ними данные. (все время появляются.
Связь между сервером и клиентами
Всем привет. Работаю над приложением сервер/клиенты. И появились чисто организационные вопросы.
Синхронизация времени между клиентами и сервером
Есть тестовый простой игровой сервак, и клиенты, соединение есть, пакеты пересылаются. Мне.
Socket между двумя клиентами и сервером
Здравствуйте. Разобрал урок как делать обмен данными между сервером и клиентом, а как сделать обмен.
Сообщение от Serge73
Да что Вы говорите ! Серьезно .
Так и представляю себе картинку такую:
Эпизод 1.
Сайт продажи билетов, например ржд. Тысячи поездов по всей России и туче стран, в каждом пара десятков вагонов, в каждом вагоне от 24 до 52 мест. Да еще на три месяца вперед. Помножим.. Ага ! Несколько лимонов мест.
Эпизод 2.
Сидят себе в Москве, Куало-Лумпуре, Гвадалахаре и Мохосранске Вани, Пети, Сени, Майклы и Джошуа. Всего так несколько сот тысяч. Одномоментно ! Т.е. ОДНОВРЕМЕННО. Хотят, панимаш, купить билеты на поезд.
Им всем нужна актуальная информация.
Эпизод 3. Ваня решил сходить в туалет, Сеня услышал как Спартак забил "коням", рванул к телеку да так и застыл там. А браузер не закрыл Ни первый, ни второй.
И вот каждую секунду (3 сек, 5 сек, минуту — кто сколько даст ?) Браузер требует от сервера перечитки ВСЕХ свободных мест во ВСЕХ поездах на ВСЕ даты. Для ВСЕХ браузеров, на которых открыта соотв. страничка.
Несколько вопросов:
1. Это какой надо иметь сервер ?
2. Это какую нужно иметь сеть ?
3. Это какой нужно иметь ПК с браузером ?
И наконец последние 2 вопроса
Ребята, неужели Вы думаете, что так работает большинство (если не все) "базовых" приложений ?
Если Вам все-таки актуализация нужна (а такие приложения существуют, например в системах диспетчирования), то некисло было бы озвучить и стоящую перед вами Задачу. А также объемы передаваемых данных и прогнозируемое реальное кол-во пользователей.
Добавлено через 20 минут
Приведу пример из собственной практики.
Было это еще в 90-х.
Торговый дом, несколько офисов. Большой склад товаров.
В офисах сидят девочки, которые выписывают счета мелкооптовикам.
На складе по выписанным счетам выдают товар.
Все — через мою программу (на Paradox3.5 — был тогда в "тренде")
И вот смотрит Наташа на экран и видит, что на складе есть 20 упаковок "Мивины куриной". Она их в счет — покупатель возжелал. Бац — а ей сообщение "Товара нет на складе в нужном количестве. Только 5 уп осталось).
Покупатель недоволен, Наташа в замешательстве. Она ведь не знала, что Маша, сидящая в соседнем офисе только что выписала 15 упаковок своему клиенту.
Вызывают срочно меня.
Приезжаю. У дира в кабинете человек 20 "нацяльников" — все хмурят бровки и ругаюцца.
Объясняют что к чему. Вкратце можно сказать двумя словами "Невозможно работать !"
Я пытаюсь объяснить что будет если сделать "красиво". Не понимают.
"Хорошо", — говорю я, — "будет Вам "красиво".
Через день привожу им новый деплой (с рефрешами по таймеру). И быстро уезжаю !
Приезжаю в свой офис (прошло не более 20 мин — моя контора рядом с торгашами находилась), а мне мои девочки в один голос — "Где ты шастаешь, тут телефон как утюг — все тебя спрашивают".
Звоню диру. "Ты что сделал, редиска ! Все стоит, очереди огромные, ни склад, ни бухгалтерия, ни менеджеры, ни девочки не могут работать — все висит !"
Короче, пришлось все менять "взад" — все опять залетало и все довольны. А Наташа с Машей.. привыкли. Через пару дней они уже и не мыслили иначе. А чтобы покупатели не обижались, перед каждым "окошком" повесили объявление, что мол наличие товара на складе определяется на момент выписки счета.
ЗЫ. Кстати, в приложении изначально было кнопулька "Обновить", но ее просто не замечали. А когда спрашивали и я отвечал, непонимающе пожимали плечами). С тех пор эта кнопка стала воистину "горячей".
Синхронизация между клиентом и сервером
Всем привет. Хочу попросить помощи. Ситуация такова, что нужно реализовать универсальное.
Синхронизация файлов между локальным пк и сервером
Здраствуйте, Нужна помощь, мне нужно организовать синхронизацию папок между сервером и.
Синхронизация клиента с сервером, без участия в обработке данных
Суть вопроса такова: есть сетевая игра, в которой все данные обрабатываются сервером, клиент.
Передача данных между клиентами: вопрос скорости и оптимальности
у меня есть сайт, с mysql базой, доступ по FTP и всё такое. как лучше и как будут быстрее.