まあ、私は自分自身に答えることができます。
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はデータの同期専用ですが、iOSもAndroidもサポートしていません。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サーバーを実装することです。