10

機能、長所、短所に関して、SyncML と CalDAV の違いは何だろうか。

Web アプリとモバイル デバイス間でイベント/カレンダーを同期するために使用するテクノロジを決定しようとしています。競合と双方向の同期を処理する必要があります。

一見すると、CalDAV は私のニーズに最も適しているように見えますが、可能性のある欠点についてはわかりません。SyncML は標準ですが、CalDAV の方が優れているという Oracle のブログの投稿を読みました...

Google が両方をサポートしていることは知っていますが、主要なソリューションとして Microsoft テクノロジである ActiveSync (Exchange) も提供しています。私はこのように興味がありません。

乾杯、ウィリアム

4

3 に答える 3

7

まあ、私は自分自身に答えることができます。

CalDAV

CalDAVは、 HTTPプロトコルの拡張であるWebDAV上のプロトコルです。CalDAVはRFC4791で説明されいます。データ形式としてiCalendarを使用します。多くの実装があります。

競合についてCalDAVは409 Conflictsステータスコード(HTTP 1.1)を使用します。私の知る限り、クライアントはこのエラーコードに対処する必要があります。iCal(Macクライアント)はローカルの変更を元に戻すだけです。次に、サーバーでルールを定義して、競合がある場合の対処方法を知るのは非常に簡単です。競合の1つを解決できない場合は、409ステータスコードを送信するだけです。

標準として、CalDAVはカレンダーデータの管理に専念しており、多くのクライアントがいます。

残念ながら、Androidはこのプロトコルを使用するためのネイティブソリューションを提供していません。実際には、Exchange ActiveSync (Googleが使用)以外のものは提供していません。しかし、AndroidマーケットにはたくさんのCalDAVクライアントがあります。

iOSはCalDAVをネイティブでサポートしています。

SyncML

同期Mrkup言語は、データを管理するためのプラットフォームに依存しない同期言語であり、Nokia、IBMなどの大手企業によって作成されています。これはオープンスタンダードです。トランスポートとしてHTTPを使用し、情報を記述するためにXMLを使用します。さまざまなサーバー実装があります。たとえば、Funambolはよく知られています。

SyncMLは7つの同期について説明しています。

  • 双方向同期:サーバーとクライアントの両方が変更に関する情報を共有しますが、変更を送信するのはクライアントが最初です。
  • 同期が遅い:クライアントはすべてのデータを送信します。サーバーは、そのデータとクライアントのデータの間のデルタを決定し、サーバーはこのデルタを送信します。これは、最初の同期でよく使用されます。
  • 一方向同期、クライアントのみ:クライアントはサーバーに変更を送信します。
  • クライアントからの同期の更新:クライアントはすべてのデータを送信し、サーバーはすべてのデータを送信します。
  • 一方向同期、サーバーのみ:サーバーはクライアントに変更を送信します。
  • サーバーからの同期の更新:サーバーはすべてのデータを送信し、クライアントはそのデータをサーバーのデータに置き換えます。
  • サーバーアラート同期:サーバーはクライアントに特定の同期を開始するように要求します。

SyncMLは、、、、 …</p> などUpdates mades on the Client always winの事前定義されたルールのセットを使用してサーバー上の競合を処理しますUpdates mades on the Client always win

SyncMLはデータの同期専用ですが、iOSAndroidもサポートしていません。NokiaまたはSamsungのスマートフォンは、このプロトコルとWindowsPhone6をサポートしているようです。

それで?

Microsoft Exchange ActiveSyncは、ほぼすべてのスマートフォンとヘビークライアントをサポートするための最良の選択です。しかし、これはオープンスタンダードではなく、商用であり、これらの理由で説明しませんでした。覚えておいてください。

モバイルオペレーティングシステムについて:

  • AndroidはActiveSync以外はサポートしていませんが、いくつかの優れたCalDAVクライアントが存在します。
  • iOSはCalDAVをサポートしていますが、SyncMLをサポートしていません。私が知る限り、カレンダーデータ用のSyncMLクライアントはありません(Funambolは連絡先用のクライアントを提供します)。
  • Windows Phone 7は、ActiveSync以外はサポートしていません。
  • RIM(BlackBerry)はCalDAVをサポートしていないようですが、SyncMLクライアントがあります。
  • 他のOS(Badaなど)についてはよくわかりません。

フランスでは、iOSがモバイル市場の60%を占めAndroidが30%を占めています。

(少なくとも私にとって)最善の解決策は、競合を処理するための一連のカスタムルールを使用してCalDAVサーバーを実装することから始め、次に市場の残りの部分をカバーするためにSyncMLサーバーを実装することです。

于 2012-01-21T13:18:23.097 に答える
0

android は syncml をサポートしています - android-client_funambolでfunambold 同期アプリ
をチェックしてください (そこのフォーラムをチェックしてください。非常に活発で、高度な機能のスナップショットを試してください)。

于 2012-02-18T15:37:13.130 に答える
0

クエリに適切に対処するためのいくつかの質問 -

  1. デバイス クライアントを制御できますか? それとも、既に展開されているデバイスのネイティブ クライアントに依存する必要がありますか?

  2. 同期サーバーを制御していますか?

  3. カレンダーの予定以外に、他の種類のデータを同期する必要があると予想していますか? 注: カレンダーの添付ファイル (連絡先やファイルなど) などは、この質問では「その他の種類のデータ」としてカウントされます。

  4. どのレベルの複雑さをサポートする必要がありますか? 定期的なイベント、定期的なイベントの例外、共有または共同のカレンダー、複数の個別のカレンダーを持つユーザー (例: デバイスのカレンダー、Outlook のカレンダー、Gmail のカレンダーなど)

  5. 同期する必要がある特定のデスクトップ アプリ (Outlook/Exchange など) はありますか、それとも完全にクラウド <-> デバイスのみですか?

于 2012-01-19T17:37:03.593 に答える