7

デバイスのデータを SQLite データベースに保存するカスタム連絡先アプリを開発しています。いくつかの理由から、このデバイス データベースをクラウド データベースと同期することが非常に重要です。

ユーザーは複数のデバイスを持っている可能性があり、すべてのデバイスでアプリ データを最新の状態にしたいと考えています。ユーザーは、Web アプリケーションからこれらのデータにアクセスできる場合があります。このアプリは多くの写真を保存するため、デバイスのメモリはすべてのデータを保持するには不十分であり、クラウド データベースにのみデータを保持するためのアーカイブ オプションが利用可能になります。古いレコードのクラウドへのアーカイブは自動的に行われます。必要に応じてレコードのデータをダウンロードするための復元オプションが利用可能になります。ご覧のとおり、デバイス データベースは 1 人のユーザーの連絡先を保持し、クラウド データベースは同様のデータベースですが、すべてのユーザーのデータを保持します。したがって、この同期にはロジックがあります。SQLite DB ファイル全体を上下にコピーするだけではありません。これは、行/列レベルの同期である必要があります。

これを達成するためにどのようなソリューションを使用できるのでしょうか? Google Cloud または App Engine を使用してサーバー側を実装することは可能ですか? デバイス側で何ができますか? 何か案は?

どんな答えでも本当に感謝しています。

ありがとう。

4

2 に答える 2

3

必要な「クラウド」ベースの Web サービスを使用できます。Java の完全な機能と、電話で利用できる堅牢な http ライブラリがあります。Amazon EC2 や App Engine などのプラットフォームでアプリ/ウェブサービスを構築し、それをアプリから直接呼び出して、セキュリティ、ストレージ、および同期を自分で処理することは確かに可能です。

個人的には、私の経験では、EC2 で Django/Python を (さまざまな AWS データ サービスと共に) 使用しており、うまく機能しています。

それとは別に、あなたのシナリオに合わせてすぐに使えるソリューション、つまりモバイル開発者だけを対象とした特別な SDK やバックエンド サービスを構築しているさまざまな新興企業があることを私は知っています。私はこれらの経験はありませんが、ここに私が知っている2つがあります(承認なし、リンクのみ): https://www.parse.com/ https://www.stackmob.com/

于 2013-02-19T02:16:25.993 に答える
2

Google Cloud Messaging の使用を検討することを強くお勧めします。具体的には. 「Send to Sync」パターン。

レコードの変更の検出と同期の詳細については、この機能は多くのデータベース システムで行われているため、解決方法を調べてください。最も一般的なものには、タイムスタンプとバージョン番号が含まれます。

参照リンク: GCM での Google I/O セッション (これは、GCM を始めるための良い入門書だと思います) http://www.youtube.com/watch?v=YoaP6hcDctM&list=PL4C6BCDE45E05F49E&index=9

Google クラウド メッセージングのドキュメント (直接送信して同期するためのリンク) http://developer.android.com/google/gcm/adv.html#s2s

于 2013-02-19T02:28:34.353 に答える