2010-01-21 4 views
6

У меня есть база данных на моем сервере размером около 3 мб. Я хотел бы отправить это с помощью приложения iphone.Каков наилучший способ односторонней синхронизации с серверной базой данных на iPhone?

Самое главное, что я хотел бы внести изменения в базу данных (вставить, обновить, удалить) в iphone. Каков наилучший способ сделать это? Я имею ввиду - что необходимо на - сервере - клиент (= iphone) - между; как передать эти данные?

Я довольно свободно использую технологии serverside; прямо сейчас, у меня есть база данных sqlite на сервере, заполненная данными, которые я хотел бы синхронизировать с iphones.

ответ

1

Попробуйте использовать веб-крючки.

Концепция WebHook проста. A WebHook - это HTTP-обратный вызов: HTTP POST, который возникает, когда происходит что-то ; простое уведомление о событиях через HTTP POST.

Веб-приложение, реализующее WebHooks отправит сообщение по адресу , когда произойдут некоторые вещи. Когда веб-приложение позволяет пользователям регистрировать свои собственные URL-адреса, пользователи могут затем расширить, настраивать и интегрировать эту приложение со своим обычаем расширения или даже с другими приложений по всему Интернету. Для пользователя WebHooks - это способ получить ценную информацию, если это произойдет, , а не постоянно для голосования за , что данные и ничего не получайте ценный в большинстве случаев. WebHooks имеют огромный потенциал и являются ограниченным только вашим воображением! (Нет, он не может мыть посуду все же.).

Вы можете узнать больше о Webhooks здесь: http://www.webhooks.org/ и http://webhooks.pbworks.com/

+0

гм ... звуки интересно. Я понимаю, как работают веб-крючки (по крайней мере, я думаю, что знаю). Но в сочетании с iPhone ... как мне обновлять пользователей моего приложения? Это было бы возможно только с помощью push-уведомления, верно? Я имею в виду - нужно регистрировать свои телефоны с моим приложением, и всякий раз, когда что-то меняется, я должен сделать push-уведомление - или я чего-то не хватает? – swalkner

+0

Да. Push-уведомление может работать. В любом случае, вы должны предоставить зарегистрированным пользователям некоторую аутентификацию. В основном вы можете создать задание CRON, которое отправляет уведомления в список пользователей (пользователей, которые, очевидно, зарегистрированы и аутентифицированы) – feketegy

2

Как часто вам нужна обновляемая база данных и насколько срочны изменения?

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

Приложение всегда загружает небольшой файл метаданных из известного URL-адреса при запуске. Файл метаданных содержит идентификатор версии для последней версии и место, где можно загрузить эту версию базы данных. Если идентификатор версии изменился с версии, которую уже имеет приложение, будет загружена новая версия. Если идентификатор версии не изменился или если он не может проверить, приложение может продолжать использовать версию.

Совет: если вы хотите показать индикатор выполнения для загрузки, укажите размер базы данных в файле метаданных. У сотовых сетей часто есть прозрачные прокси, которые выделяют заголовок Content-Length из ответов HTTP.

+0

, к сожалению, обновления часто и довольно срочно ... – swalkner

1

Удивление, если вы рассматривали с помощью Sync Framework для управления синхронизации. Если это вас интересует, вы можете взглянуть на проект с открытым исходным кодом, службу OpenMobster Sync.Вы можете выполнить следующие действия операций и операциям синхронизации

  • двухсторонней
  • одностороннюю клиент
  • односторонний устройство
  • начального пуск

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

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

Вот ссылка на проект с открытым исходным кодом: http://openmobster.googlecode.com

Вот ссылка на iPhone App Sync,: http://code.google.com/p/openmobster/wiki/iPhoneSyncApp