2017-11-14 5 views
0

私はCalDAVプロトコルを研究しています。CalDAVの時間の競合やオーバーラップを回避するにはどうすればよいですか?

私は、時間の競合またはCalDAVのオーバーラップに関する質問があります。

いくつかのシナリオを例として説明します。 カレンダーにPM1〜PM6というイベントを作りました。そして、私は同じカレンダーで別のイベントPM2〜7を作ろうとします。時間の競合またはオーバーラップです。

CalDavサーバーはこの競合をどのように解決しますか? 2回目のイベントでサーバがエラーになるのですか?

私はRFC 6638を検索しましたが、解決策を見つけることができませんでした。 私の質問を助けてください。

読んでいただきありがとうございます。

答えて

0

重複が発生したときの振る舞いを決めるのは、CalDAVクライアントの責任です。 クライアントが重複するイベントを書き込むことを決定した場合、サーバーは重複イベントを書き込みます。スケジューリングが関与している場合は

は、(ユーザAはミーティングにユーザーBを招待したいと考えていますが、すでにユーザーBのカレンダーでビジー状態である時間帯検出を避けたい)(RFC 4791を参照)のCalDAVクライアントがユーザーのためにFREEBUSY状態を照会することができます。また、CalDAVクライアントがユーザのアベイラビリティを取得できるようにするアベイラビリティもあります(営業時間を考えてみてください)。

0

キムはビジネスカレンダーシステム(2人などの同一人物を予約していない)のために非常に一般的なものを求めています。

私はCalDAVの世界では、この2つの部分があると思う:

a)まず、クライアントは、ユーザが利用可能であるかどうか をチェックするfreebusyクエリを実行することになっているが。そして、妥協の警告を表示するか、または と表示されます。

これは、btw Exchangeを含むシステムの数です。シリはまた、このような紛争の検出を行います(「やあ、あなたはすでにイベントを持っていますが、それでも矛盾するマスターを作りますか?」)。

b)しかし、合理的なシステムでは、 情報はPUT時に古くはありません。私。 2番目の クライアントは同じ出席者/リソースをスケジュールしていません。

私はCalDAVの中で、あなたがPUTIfヘッダを使用してsync-tokenCTagをテストすることによって、それを達成することができると思います。私。基になるコレクション全体が変更されなかった場合にのみPUTが成功するようにしてください。そしてそれが起こった場合(PUTは矛盾して失敗するでしょう)、自由にやり直してからもう一度やり直してください。

CalDAVのクロスコレクション(カレンダー)でこれを行う信頼できる方法はないと思います。つまり、別のカレンダーで予約されたためにリソースの可用性が変更された場合、通常は同期タグを変更し、PUTが実行されます。 CalDAV(スケジューリング)に関して悪いことは、PUTがそれ以上冪等ではないということです。それ以外の場合は、PUTを実行して、まだコンフリクトがないかどうかを再確認し、もしそうなら、事実の後にドロップします。

関連する問題