モバイルサーバーとWebサーバー間でオブジェクトのリストを同期するための最適なソリューション

android iphone java-me sync
モバイルサーバーとWebサーバー間でオブジェクトのリストを同期するための最適なソリューション

特定の方法、ファイル形式の使用からの経験/意見/学習を探しています(例: syncML)およびライブラリ(funambol、その他?)は、複数のモバイルデバイスとWebサーバー間でリストを同期しますか?

ユーザーが複数のモバイルデバイスとWebでリストを編集し、それらを定期的に同期させ、ホイールを再発明することなく優雅な競合などを処理できるようにしたいと考えています。

syncMLの経験、syncMLなどのライブラリ(Apacheスタイルのライセンス付き)、および経験をいただければ幸いです。

開発中です:+
– サーバー用のJava SE(appengineおよびその他のプラットフォーム)-Javaサーブレット
2.3
– J2ME(Symbianなど)+
– iOS
– アンドロイド

そのため、可能であれば、これらのプラットフォームで幅広いカバレッジと優れたライブラリを備えたソリューションが必要です。

データ+リスト内のアイテムは製品になります。 これは、ユーザーが入力したテキスト名、または多くのフィールドを持つ構造化された製品の説明と同じくらい簡単です。 このためにXMLフォーマットが定義されており、すでに進化します。 これらのXMLフラグメントのリストを同期することをお勧めします。

競合+競合の解決方法、またはユーザーが動作を選択できるかどうかを正確に定義する必要があります-ActiveSyncや他のPCソリューションに少し似ています。 この点で新しいことをするつもりはありません。

詳細+リストの各モバイル「コピー」は、ローカルデータストアにデータを保存し、サーバーとの最終同期日と変更のリストを格納することを想定しています。 また、リスト内の各アイテムには、ローカルIDと、同期中に役立つグローバル(サーバーID)が必要です。

Over-the-wire-format +同期中のデータ転送にXML形式を使用します。XML形式は、1つまたは複数のリストを持ち、各リスト内のアイテムを要素として、それぞれのIDを要素。

  2  2


ベストアンサー

リスト内のオブジェクトは何ですか? どのようなデータですか?

競合をどのように処理しますか? たとえば、オブジェクトがデバイスAで削除され、サーバーに同期された場合(したがって、オブジェクトもサーバーで削除されます)が、デバイスBはそのオブジェクトを編集してから同期します。 オブジェクトを再度追加する必要がありますか? デバイスBで削除する必要がありますか?

0


おそらく簡単すぎるアイデアの1つは、SVNまたはCVSと同じ方法を使用することです

  1. 最初に、デバイスがデータを抽出します(チェックアウト)。

  2. 同期すると、更新されます

  3. 競合が発生した場合は、どのバージョンを優先するかをユーザーに尋ねます(私は
    2つのうち1つを選択するオプションを指定するか、新しいものを作成するか、2つの異なるアイテムを検討します)

  4. 競合を解決した後、現在の状態をコミットします

*考えること:

  1. 各アイテムは、ファイル(複雑なデータの場合)またはすべてに一致する必要があります
    アイテム(同じユーザーに属する)は同じファイルに配置する必要がありますか?

  2. アイテムのIDを使用すると、物事が簡単になり、誤った競合を回避できます
    同じ内容のアイテム間

  3. 交換するアイテムはおそらくxmlファイルに変換する必要があります。
    (または同様)なので、バージョンを簡単に追跡できます

  4. これは、xmlを前後に送信する必要があるという意味ではありません。 あなたはできる
    xmlを希望する形式に変換します(たとえば、urlエンコードされたパラメーターをxmlに)

  5. リビジョン管理下のファイルに厳密な形式を使用すると、
    同期しやすいもの

私の最後のポイントの説明:

urlパラメータを到着順にエンコードしないで、論理的な順序を選択してください。 たとえば、「a = 111&b = 222」と「b = 222&a = 111」は同じテキストで保存する必要があります。 異なる形式で受信した場合でも、同じデータが常に同じ表現になるようにしてください。

これらは私の最初の考えでした…​

0


タイトルとURLをコピーしました