김 위원장은 비즈니스 캘린더 시스템에 대해 매우 공통적 인 기능을 요구하고 있습니다 (같은 사람은 두 번 등을 예약하지 않았습니다).
는
A) 먼저 클라이언트는 사용자가 사용할 수 있는지 여부를 을 확인하는의 freebusy 쿼리를 수행하도록되어 :
나는 두 부분이 거기있는 CalDAV를 세계에서 생각합니다. 그리고 나서 충돌 경고 또는 을 표시하십시오.
btw Exchange 작업을 포함하여 얼마나 많은 시스템입니까? 시리 (Siri)는 또한 이러한 종류의 충돌 탐지를 수행합니다 ("이봐 요, 당신은 이미 그 사건을 이미 가지고 있습니다, 나는 여전히 상충되는 것을 만들지, 마스터?").
b) 그러나 합리적인 시스템에서는 실제로 정보가 PUT 시간에 구형이 아닙니다. 나는. 두 번째 클라이언트는 동일한 참석자/리소스를 예약하지 않았습니다.
저는 CaldV에서 sync-token
또는 CTag
을 PUT
의 If
헤더를 사용하여 테스트 할 수 있다고 생각합니다. 나는. 전체 기본 컬렉션이 변경되지 않은 경우에만 PUT
을 성공 시키십시오. 그리고 그랬다면 (PUT
은 충돌로 실패 할 것입니다), 자유롭게 다시 실행 한 다음 다시 시도하십시오.
CalDAV 교차 모음 (캘린더)에서이를 수행 할 수있는 확실한 방법이 없다고 생각합니다. 즉, 다른 캘린더에서 예약 되었기 때문에 자원의 가용성이 변경되면 대상 동기화 모음에서 일반적으로 동기화 태그가 변경되고 PUT
이 실행됩니다. CalDAV (스케줄링)에 관한 나쁜 점은 PUT이 더 이상 멱등수가 아니라는 것입니다. 그렇지 않으면 PUT
을 수행하고 충돌이 없는지 다시 확인한 다음 사실이 사실인지 확인한 후 삭제하십시오.
출처
2017-11-15 11:16:16
hnh