Я разрабатываю приложение мобильного Интернета (для iPhone и Android) с локальной базой данных (использующий html5 webstorage), таким образом, мое приложение все еще применимо, когда пользователь в режиме офлайн.
Это работает отлично, но я хочу сохранить локальные данные на сервере. Таким образом, я должен синхронизировать локальный DB с DB на сервере. Синхронизация может только быть одним путем, но в будущем, я хотел бы синхронизировать его обоими способами (сервер <-> локальный DB).
Этот requierement выглядит очень распространенным (или будет распространено в будущем для приложения мобильного Интернета), но я не могу найти библиотеку, делающую это.
Я знаю, что Google делает это в их приложении мобильного Интернета (напр. Gmail), и я нашел проект WSPL проектом Google, но без источника для загрузки.
Если я не могу найти решение, я создам библиотеку, чтобы сделать это как один способ, которым синхронизация не выглядит трудной, но интересно, существуют ли другие решения.
https://github.com/orbitaloop/WebSqlSync
http://quickconnect.pbworks.com/Using-Enterprise-Synchronization
Чтобы использовать эту библиотеку, вам нужно использовать DataAccessObject фреймворка для доступа к вашей DB. Она работает, сохраняя все SQL-запросы, примененные к БД (кроме select, конечно), и отправляя их на сервер. Это здорово для управления удалением, но немного тяжеловато, если у вас много обновлений, а сервер должен использовать тот же язык SQL...
http://www.quickconnectfamily.org/qcdbsync/. (Я думаю, он также хранит историю всех SQL-запросов)
https://github.com/zefhemel/persistencejs
"persistence.js - это асинхронная Javascript библиотека объектно-реляционного маппера. Вы можете использовать ее как в браузере, так и на сервере (и вы можете обмениваться моделями данных между ними)."
У них есть модуль синхронизации БД: DOC of persistence.synch.js
(работает с HTML5 DB SQLite или Google Gears на клиенте, и MySQL на сервере)
http://impel.simulacre.org/api/Impel.inTouch