나중에 찾아보기 위해 RFC 2446을 번역된 것 남김.

iCalendar Transport-Independent Interoperability Protocol (iTIP)
Scheduling Events, BusyTime, To-dos and Journal Entries

개요

이 문서는 캘린더 시스템이 iCalendar 객체를 사용하여 다른 캘린더 시스템과 상호 운용하는 방법을 지정합니다. 이는 시스템 간의 다양한 통신 방법을 허용하기 위해 일반적인 방식으로 수행됩니다. 후속 문서에서는 이 프로토콜을 사용하는 시스템 간의 상호 운용 가능한 통신 방법을 지정합니다.

이 문서에서는 static 및 dynamic event, to-do, journal, free/busy 개체를 모두 정의하는 캘린더 교환 모델을 간략하게 설명합니다. static 객체는 원본 항목과의 연속성이나 참조 무결성을 기대하지 않고 한 개체에서 다른 개체로 정보를 전송하는 데 사용됩니다. dyamic 객체는 정적 객체의 상위 집합이며 static 객체만 지원하는 클라이언트의 경우 static 객체로 자연스럽게 저하됩니다.

이 문서는 서로 다른 캘린더 시스템 간에 일정관리 상호 운용성을 제공하는 iCalendar 객체 사양을 기반으로 하는 인터넷 프로토콜을 지정합니다. 이 인터넷 프로토콜을 "iTIP(iCalendar 전송 독립적 상호 운용성 프로토콜)"이라고 합니다.

iTIP는 현재 캘린더 시스템에서 일반적으로 사용할 수 있는 그룹 스케줄링 메서드에 대한 시맨틱을 추가하여 iCalendar 객체 사양을 보완합니다. 이러한 예약 방법을 사용하면 두 개 이상의 캘린더 시스템이 게시, 예약, 일정 재조정, 예약 요청에 대한 응답, 변경 협상 또는 iCalendar 기반 캘린더 구성 요소 취소와 같은 트랜잭션을 수행할 수 있습니다.

iTIP는 스케줄링 정보를 전송하는 데 사용되는 특정 전송 방식과 무관하게 정의됩니다. iTIP에 대한 동반 메모는 여러 인터넷 프로토콜에 대한 상호 운용성 프로토콜의 바인딩을 제공합니다.

1. Introduction

이 문서는 캘린더 시스템이 iCalendar 개체를 사용하여 다른 캘린더 시스템과 상호 운용하는 방법을 지정합니다. 특히 event, to-do 또는 daily journal 항목을 예약하는 방법을 명시합니다. 또한 사용 가능한 바쁜(busy) 시간 정보를 검색하는 방법을 지정합니다. 이는 시스템 간의 다양한 통신 방법을 허용하기 위해 일반적인 방식으로 수행됩니다. 후속 문서에서는 이 프로토콜을 사용하는 시스템 간의 전송 바인딩을 지정합니다.

이 프로토콜은 발신자(originator)가 한 명 이상의 수신자(recipients)에게 보내는 메시지를 기반으로 합니다. 특정 유형의 메시지에 대해 수신자는 자신의 상태를 업데이트하기 위해 응답할 수 있으며 트랜잭션/요청 상태 정보를 반환할 수도 있습니다. 이 프로토콜은 메시지 발신자가 원래 메시지를 수정하거나 취소할 수 있는 기능을 지원합니다. 또한 프로토콜은 수신자가 메시지 발신자에게 변경 사항을 제안할 수 있는 기능도 지원합니다. 프로토콜의 요소는 트랜잭션에 대한 사용자 역할도 정의합니다.

1.1 Formatting Conventions

캘린더링 및 스케줄링 모델, 핵심 객체 또는 상호 운용성 프로토콜의 요소를 참조하기 위해 [iCAL] 및 [iTIP]에 정의된 몇 가지 형식 규칙이 활용되었습니다.

이 문서에서 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENT", "MAY" 및 "OPTIONAL"이라는 키워드는 [RFC-2119]에 설명된 대로 해석되어야 합니다.

캘린더 및 스케줄링 역할은 각 단어의 첫 글자를 대문자로 따옴표로 묶은 텍스트 문자열로 참조됩니다. 예를 들어, 'Organizer'(주최자)는 [iTIP]에 정의된 스케줄링 프로토콜 내에서 'Calendar User(캘린더 사용자)'(CU)의 역할을 나타냅니다. [iCAL]에 정의된 캘린더 구성 요소는 대문자로 따옴표로 묶인 문자열로 참조됩니다. 모든 캘린더 구성 요소는 문자 "V"로 시작합니다. 예를 들어, "VEVENT"는 이벤트 캘린더 구성 요소, "VTODO"는 할 일 캘린더 구성 요소, "VJOURNAL"은 일일 저널 캘린더 구성 요소를 나타냅니다. [iTIP]에 정의된 스케줄링 메서드는 대문자로 따옴표로 묶인 텍스트로 참조됩니다. 예를 들어, "REQUEST"은 일정관리 캘린더 구성 요소의 생성 또는 수정을 요청하는 메서드를 의미하고, "REPLY"은 요청을 받은 사람이 캘린더 구성 요소의 "Organizer"에게 자신의 상태를 업데이트하는 데 사용하는 메서드를 의미합니다.

[iCAL]에 정의된 속성은 대문자로 따옴표로 묶인 텍스트 문자열 뒤에 "property"이라는 단어가 붙어서 참조됩니다. 예를 들어, "ATTENDEE"(참석자) 속성은 "Calendar User"(캘린더 사용자)의 캘린더 주소를 전달하는 데 사용되는 iCalendar 속성을 나타냅니다. 이 메모에 정의된 속성 매개변수는 소문자로 따옴표로 묶인 텍스트 문자열 뒤에 "parameter"라는 단어가 붙어서 참조됩니다. 예를 들어, "value" 매개변수는 속성 값의 기본 데이터 유형을 재정의하는 데 사용되는 iCalendar 속성 매개변수를 나타냅니다. 이 메모에 정의된 열거형 값은 대문자로 된 텍스트를 단독으로 사용하거나 그 뒤에 "value"라는 단어를 사용하여 참조합니다.

테이블에서는 테이블 길이를 최소화하기 위해 따옴표로 묶인 문자열 텍스트가 따옴표 없이 지정됩니다.

 

1.2 Related Documents

구현자는 이 문서와 함께 인터넷 캘린더 및 스케줄링 표준을 설명하는 다른 여러 메모를 숙지하고 있어야 합니다. 이 문서인 [iTIP]는 서로 다른 구현 간의 스케줄링을 위한 상호 운용성 프로토콜을 지정합니다. 관련 문서는 다음과 같습니다:

     [iCAL] - 프로토콜에 사용되는 객체, 데이터 유형, 속성 및 속성 매개변수와 이를 표현하고 인코딩하는 방법을 지정합니다;

     [iMIP] - [iTIP]에 대한 인터넷 이메일 바인딩을 지정합니다.

이 메모에서는 이러한 다른 메모의 개념이나 정의에 대한 사양을 반복하지 않습니다. 가능한 경우 이러한 개념 또는 정의의 사양을 제공하는 메모를 참조합니다.

1.3 ITIP Roles and Transactions

ITIP는 "Calendar User"(CU) 간의 그룹 캘린더링 및 예약을 목적으로 [iCAL] 개체를 교환하는 방법을 정의합니다. CU는 iTIP에서 두 가지 역할 중 하나를 수행합니다. 교환을 시작한 CU는 "Organizer"(주최자) 역할을 맡습니다. 예를 들어, 그룹 모임을 제안한 CU가 "Organizer"입니다. "Organizer"로부터 그룹 미팅에 참여하도록 요청받은 CU는 "Attendee"(참석자) 역할을 맡습니다. "role"은 _ATTENDEE_ 속성에 대한 설명 매개변수이기도 합니다. 이 매개변수는 'chair', 'req-participant' 또는 'non-participant'와 같이 'Attendee'에게 설명적인 컨텍스트를 전달하는 데 사용되며 캘린더 워크플로와는 아무런 관련이 없습니다.

ITIP 메서드는 아래에 나열되어 있으며 그 사용법과 의미는 이 문서의 섹션 3에 정의되어 있습니다.

Method Description
PUBLISH 한 명 이상의 캘린더 사용자에게 캘린더 항목을 게시하는 데 사용됩니다. 게시자와 다른 캘린더 사용자 간에는 상호 작용이 없습니다. 예를 들어 야구 팀이 대중에게 일정을 게시하는 경우를 들 수 있습니다.
REQUEST 다른 캘린더 사용자와 캘린더 항목을 예약하는 데 사용됩니다. 요청은 수신자가 응답 메서드를 사용해 응답해야 한다는 점에서 대화형입니다. 미팅 요청, 바쁨 시간 요청, 다른 캘린더 사용자에게 VTODO 할당 등이 모두 그 예입니다. 요청은 'Organizer'가 캘린더 항목의 상태를 업데이트하는 데에도 사용됩니다.
REPLY Reply은 'Attendee' 상태를 'Organizer'에게 전달해 달라는 요청에 대한 응답으로 사용됩니다. 회신은 일반적으로 미팅 및 작업 요청에 응답하는 데 사용됩니다.
ADD 기존 VEVENT, VTODO 또는 VJOURNAL에 하나 이상의 인스턴스를 추가합니다.
CANCEL 기존 VEVENT, VTODO 또는 VJOURNAL의 인스턴스를 하나 이상 취소합니다.
REFRESH REFRESH 방법은 'Attendee'가 캘린더 항목의 최신 버전을 요청하는 데 사용됩니다.
COUNTER Counter 메서드는 'Attendee'가 캘린더 항목의 변경을 협상하는 데 사용됩니다. 예를 들어, 제안된 이벤트 시간을 변경하거나 VTODO의 마감일을 변경하는 요청이 있습니다.
DECLINE-COUNTER "Organizer"가 제안된 반대 제안을 거부하는 데 사용됩니다.

iTIP에서 그룹 예약은 위에서 설명한 "request" 및 "response" 메서드 세트를 사용하여 수행됩니다. 다음 표는 메서드를 보낼 수 있는 사람에 따라 분류된 메서드를 보여줍니다.

Originator Methods
Organizer PUBLISH, REQUEST, ADD, CANCEL, DECLINECOUNTER
Attendee REPLY, REFRESH, COUNTER
REQUEST only when delegating  

일부 캘린더 컴포넌트 유형의 경우 허용되는 메서드가 위 집합의 하위 집합이라는 점에 유의하세요.

+ Recent posts