2017-11-14 30 views
0

나는 CalDAV 프로토콜을 연구 중이다.CalDAV의 시간 충돌 또는 오버랩을 방지하려면 어떻게해야합니까?

시간 충돌 또는 CalDAV 중복 문제가 있습니다.

시나리오에 따라 예를 들어 설명하겠습니다. 캘린더에 PM1 ~ PM6 이벤트를 만들었습니다. 그리고 같은 달력에 PM2 ~ 7 번 이벤트를 만들려고합니다. 시간 충돌 또는 겹침입니다.

어떻게 CalDav 서버가이 충돌을 해결합니까? 두 번째 이벤트가 발생하면 서버에서 오류가 발생합니까?

나는 RFC 6638을 찾아 냈다. 그러나 해결책을 찾을 수 없었다. 제 질문을 도와주세요.

읽어 주셔서 감사합니다.

답변

0

겹치는 부분이있을 때 어떻게 행동할지 결정하는 것은 CalDAV 클라이언트의 책임입니다. 클라이언트가 다른 서버와 중첩되는 이벤트를 작성하기로 결정하면 서버는 중첩 이벤트를 작성합니다. 일정이 포함 된 경우

는 (사용자 A는 회의에 사용자 B를 초대하고 싶어하지만 이미 사용자 B의 일정에 바쁜 시간 슬롯 따기 피하기 위해 같은 것) (RFC 4791 참조) CalDAV를 클라이언트가 사용자의 FREEBUSY 상태를 조회 할 수 있습니다. 또한 CalDAV 클라이언트가 사용자의 가용성을 검색 할 수있는 가용성도 있습니다 (업무 시간 고려).

0

김 위원장은 비즈니스 캘린더 시스템에 대해 매우 공통적 인 기능을 요구하고 있습니다 (같은 사람은 두 번 등을 예약하지 않았습니다).

A) 먼저 클라이언트는 사용자가 사용할 수 있는지 여부를 을 확인하는의 freebusy 쿼리를 수행하도록되어 :

나는 두 부분이 거기있는 CalDAV를 세계에서 생각합니다. 그리고 나서 충돌 경고 또는 을 표시하십시오.

btw Exchange 작업을 포함하여 얼마나 많은 시스템입니까? 시리 (Siri)는 또한 이러한 종류의 충돌 탐지를 수행합니다 ("이봐 요, 당신은 이미 그 사건을 이미 가지고 있습니다, 나는 여전히 상충되는 것을 만들지, 마스터?").

b) 그러나 합리적인 시스템에서는 실제로 정보가 PUT 시간에 구형이 아닙니다. 나는. 두 번째 클라이언트는 동일한 참석자/리소스를 예약하지 않았습니다.

저는 CaldV에서 sync-token 또는 CTagPUTIf 헤더를 사용하여 테스트 할 수 있다고 생각합니다. 나는. 전체 기본 컬렉션이 변경되지 않은 경우에만 PUT을 성공 시키십시오. 그리고 그랬다면 (PUT은 충돌로 실패 할 것입니다), 자유롭게 다시 실행 한 다음 다시 시도하십시오.

CalDAV 교차 모음 (캘린더)에서이를 수행 할 수있는 확실한 방법이 없다고 생각합니다. 즉, 다른 캘린더에서 예약 되었기 때문에 자원의 가용성이 변경되면 대상 동기화 모음에서 일반적으로 동기화 태그가 변경되고 PUT이 실행됩니다. CalDAV (스케줄링)에 관한 나쁜 점은 PUT이 더 이상 멱등수가 아니라는 것입니다. 그렇지 않으면 PUT을 수행하고 충돌이 없는지 다시 확인한 다음 사실이 사실인지 확인한 후 삭제하십시오.