REST APIを使用してAndroidアプリケーションとリモートサーバー間のデータ同期を最適に処理する方法を設計しようとしています。REST APIによるAndroidサービスとサーバー間のデータの同期処理
まだ初期の段階ですが、私は自分のレストサーバーを基本的に実行しています(とにかくテスト目的で十分です)。
私は3つのテーブルを同期させます(以下にリンクしています)。
SHOW> -----シーズン> ----- EPISODE
サーバとデバイスの両方がこれらのテーブルの同様のバージョンを持っていると私はデバイスからサーバにそれらを同期する必要があります(今、最終的には2のために方法)。同期は、バックグラウンドでREST API(挿入/更新および削除)への非同期呼び出しを行うAndroidサービスを通じて行われます。
私の主な問題は、両側がそれに応じて更新されるようにするロジックが出てくることです。
デバイスからサーバーへの挿入/更新はPOSTリクエストによって行われるので、ON INSERT/ON UPDATE TRIGGERS(SQlite)を使用して3つのテーブルに状態フラグを設定すると、同期サービスが機能しますサーバー上に移動する必要がある行。 これは正しいアプローチですか?
それは私しかし、BEFORE使用してSQLiteのは、サービスが参照できることを「TODELETE」テーブルを埋めるためにトリガーDELETEとのメインアプリから独立している、削除のために今すぐサービスを
CREATE TRIGGER sync_update_show AFTER UPDATE ON show
BEGIN
UPDATE show SET sync_flag = 'TO_SYNC' WHERE _id = new._id
END
のようになります。サーバーへのapi呼び出しを削除します。 これは正しいアプローチですか?
それはアプリの同期にサーバーに来るとき、それは今
CREATE TRIGGER sync_delete_show BEFORE DELETE ON show
BEGIN
INSERT INTO todelete_show
SELECT * FROM show WHERE _id = old._id
END
ようになります私はすべてのレコード(API呼び出しを)になるだろうと、デバイス上で削除/挿入/更新を扱うには(ブラウジング返されたレコードを介して)。しかし、帯域幅を最適化するより効率的な方法があるかもしれません(返されるJSONは大きいかもしれません)。
サービスインプリメンテーションの作業を開始したくないと思ったので、私はそれをすべて歓迎します。
は、情報をありがとう:ここhttp://openmobster.googlecode.com
は、その働きの一部を理解するためのチュートリアルです。私は、残りのサーバー以外の他のアプリケーションとコンテンツを共有することを計画していないので、私はこの時点でContentProviderが必要とは思わない。私は未来のために間違いなくそれを考慮する! – Madoc