2010-01-21 17 views
6

Mam bazę danych na moim serwerze, która ma około 3mb. Chciałbym wysłać to z moją aplikacją na iPhone'a.Jaki jest najlepszy sposób synchronizacji jednokierunkowej z bazy danych po stronie serwera do iPhone'a?

Najważniejsze jest to, że chciałbym promować zmiany w bazie danych (wstawianie, aktualizacje, usuwanie) do iPhone'a. Jaki jest najlepszy sposób na zrobienie tego? Mam na myśli - co jest potrzebne na - serwerze - klienta (= iphone) - pomiędzy; jak przenieść te dane?

Jestem całkiem wolny w użyciu technologii servers; teraz mam bazę danych sqlite na serwerze wypełnioną danymi, które chciałbym zsynchronizować z telefonami iPhone.

Odpowiedz

1

Spróbuj użyć haczyków internetowych.

Koncepcja WebHook jest prosta. WebHook to wywołanie zwrotne HTTP: POST z HTTP , który występuje, gdy zdarzy się coś ; proste zdarzenie-powiadomienie przez HTTP POST.

Aplikacja internetowa implementująca WebHooks wyświetli komunikat POST o adresie URL , gdy pewne rzeczy się zdarzą. Gdy aplikacja internetowa pozwala użytkownikom zarejestrować własne adresy URL, użytkownicy mogą następnie rozszerzyć, dostosować i zintegrować aplikację z własnymi niestandardowymi rozszerzeniami lub nawet z innymi aplikacjami w Internecie. Dla użytkownika , WebHooks są sposobem na otrzymywanie cennych informacji o , gdy to się dzieje, zamiast ciągłego odpytywania dla , że dane i nie otrzymują niczego cennego przez większość czasu. WebHooks mają ogromny potencjał i są ograniczone tylko przez wyobraźnię! (Nie, nie może jednak zmywać naczynia..)

Możesz dowiedzieć się więcej na Webhooks tutaj: http://www.webhooks.org/ i http://webhooks.pbworks.com/

+0

hm ... brzmi ciekawy. Rozumiem, jak działają web hooky (przynajmniej tak myślę). Ale w połączeniu z iPhonem ... jak mogę zaktualizować użytkowników mojej aplikacji? Byłoby to możliwe tylko z powiadomieniem push, prawda? Chodzi mi o to, że muszę rejestrować telefony z moją aplikacją, a kiedy coś się zmienia, muszę zrobić powiadomienie push - czy coś mi brakuje? – swalkner

+0

Tak. Powiadomienie push może działać. Tak czy inaczej, musisz dać zarejestrowanym użytkownikom jakieś uwierzytelnienie. Można zasadniczo utworzyć zadanie CRON, które wysyła powiadomienia do listy użytkowników (użytkowników, którzy oczywiście są zarejestrowani i uwierzytelnieni) – feketegy

2

Jak często potrzebna jest aktualizacja bazy danych i jak pilne są zmiany?

Jeśli aktualizacje bazy danych są rzadkie i nie są pilne, powinienem sprawdzić aplikację pod kątem nowej wersji bazy danych po uruchomieniu, a jeśli to się zmieniło, pobrać cały nowy plik.

Aplikacja zawsze pobiera niewielki plik metadanych ze znanego adresu URL podczas uruchamiania. Plik metadanych zawiera identyfikator wersji najnowszej wersji oraz lokalizację, w której można pobrać tę wersję bazy danych. Jeśli identyfikator wersji zmienił się z wersji, którą aplikacja już posiada, pobierze nową wersję. Jeśli identyfikator wersji się nie zmienił lub jeśli nie można go sprawdzić, aplikacja może nadal używać wersji, którą posiada.

Wskazówka: jeśli chcesz wyświetlać pasek postępu pobierania, podaj rozmiar bazy danych w pliku metadanych. Sieci komórkowe często mają przezroczyste serwery proxy, które usuwają nagłówek Content-Length z odpowiedzi HTTP.

+0

niestety aktualizacje są częste i dość pilna ... – swalkner

1

zastanawiać, czy masz za pomocą ramy Sync do zarządzania synchronizacja. Jeśli to interesuje, możesz rzucić okiem na projekt Open Source, usługę synchronizacji OpenMobster.Można wykonać następujące operacje Sync

  • dwukierunkowy
  • jednokierunkową klienta
  • jednokierunkowe urządzenie
  • bootup

Poza tym, wszystkie modyfikacje są automatycznie śledzone i synchronizowane z chmurą. Możesz wyłączyć swoją aplikację, gdy połączenie sieciowe nie działa. Śledzi wszelkie zmiany i automatycznie w tle synchronizuje je z chmurą po powrocie połączenia. Zapewnia również synchronizację, taką jak iCloud, na wielu urządzeniach.

Ponadto modyfikacje w chmurze są synchronizowane za pomocą powiadomień Push, więc dane są zawsze aktualne, nawet jeśli są przechowywane lokalnie.

Tu jest link do projektu open source: http://openmobster.googlecode.com

Tu jest link do iPhone App Sync: http://code.google.com/p/openmobster/wiki/iPhoneSyncApp

Powiązane problemy