キムはビジネスカレンダーシステム(2人などの同一人物を予約していない)のために非常に一般的なものを求めています。
私はCalDAVの世界では、この2つの部分があると思う:
a)まず、クライアントは、ユーザが利用可能であるかどうか をチェックするfreebusyクエリを実行することになっているが。そして、妥協の警告を表示するか、または と表示されます。
これは、btw Exchangeを含むシステムの数です。シリはまた、このような紛争の検出を行います(「やあ、あなたはすでにイベントを持っていますが、それでも矛盾するマスターを作りますか?」)。
b)しかし、合理的なシステムでは、 情報はPUT時に古くはありません。私。 2番目の クライアントは同じ出席者/リソースをスケジュールしていません。
私はCalDAVの中で、あなたがPUT
にIf
ヘッダを使用してsync-token
かCTag
をテストすることによって、それを達成することができると思います。私。基になるコレクション全体が変更されなかった場合にのみPUT
が成功するようにしてください。そしてそれが起こった場合(PUT
は矛盾して失敗するでしょう)、自由にやり直してからもう一度やり直してください。
CalDAVのクロスコレクション(カレンダー)でこれを行う信頼できる方法はないと思います。つまり、別のカレンダーで予約されたためにリソースの可用性が変更された場合、通常は同期タグを変更し、PUT
が実行されます。 CalDAV(スケジューリング)に関して悪いことは、PUTがそれ以上冪等ではないということです。それ以外の場合は、PUT
を実行して、まだコンフリクトがないかどうかを再確認し、もしそうなら、事実の後にドロップします。
出典
2017-11-15 11:16:16
hnh