home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-calsch-mod-00.txt < prev    next >
Text File  |  1997-07-07  |  34KB  |  938 lines

  1.  
  2. Network Working Group                                      J. Noerenberg
  3. draft-ietf-calsch-mod-00.txt                               Qualcomm, Inc
  4. Category: INTERNET DRAFT                               Expires: Dec 1997
  5.  
  6.  
  7.  
  8.              Internet Calendar Model Specification
  9.  
  10. Status of this Memo
  11.  
  12. This document is an Internet-Draft. Internet-Drafts are working
  13. documents of the Internet Engineering Task Force (IETF), its areas,
  14. and its working groups. Note that other groups may also distribute
  15. working documents as Internet-Drafts.
  16.  
  17. Internet-Drafts are draft documents valid for a maximum of six months.
  18. Internet-Drafts may be updated, replaced, or made obsolete by other
  19. documents at any time. It is not appropriate to use Internet-Drafts as
  20. reference material or to cite them other than as a "working draft" or
  21. "work in progress".
  22.  
  23. To learn the current status of any Internet-Draft, please check the
  24. 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  25. Directories on ds.internic.net (US East Coast), nic.nordu.net
  26. (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  27.  
  28. Distribution of this document is unlimited.
  29.  
  30.  
  31. Abstract
  32.  
  33. Internet Calendaring and Scheduling protocols require the definition
  34. of objects to encapsulate the notion of an event to be scheduled, a
  35. calendar on which the event will be stored, and means for exchanging
  36. these objects across the Internet between calendars on behalf of
  37. people for whom the calendars are meaningful. This document gives an
  38. abstract model of the objects and the protocols necessary to
  39. accomplish this kind of information exchange.  It will establish the
  40. context in which other Calendaring and Scheduling RFCs can be
  41. interpreted.  Included are brief introductions to the other components
  42. of Internet calendar protocols and definitions of nomenclature common
  43. to all documents defining these protocols. Reading this document will
  44. enable implementors and users of Internet Calendaring and Scheduling
  45. protocols to understand the goals and constraints chosen for related
  46. protocols.
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. Noerenberg                   Expires Dec 1997                   [Page 1]
  54. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  55.  
  56.  
  57. Table of Contents
  58.  
  59. 1. Document framework                                        3
  60. 1.1 Model Specification                                      3
  61. 1.2 iCalendar: Core Object Specification                     3
  62. 1.3 iTIP: Transport Independent Interoperability Protocol    3
  63. 1.4 CAP: Calendar Access Protocol Specification              4
  64. 2. Calendar protocol nomenclature                            4
  65. 2.1 Calendaring lexicon                                      4
  66. 3. Model Components                                          7
  67. 3.1 Calendar User                                            7
  68. 3.2 Calendar                                                 8
  69. 3.2.1 Collection of objects                                  8
  70. 3.2.2 Properties                                             8
  71. 3.2.3 Components                                             8
  72. 3.3 Calendar User Agent (CUA)                                9
  73. 3.4 Calendar Service                                         9
  74. 3.5 Calendar Domain                                         10
  75. 3.6 Calendar Access Protocol (CAP)                          10
  76. 3.7 Transport Independent Interoperability Protocol (iTIP)    10
  77. 4. Calendar System Model                                    10
  78. 4.1 Model Component Relationship                            10
  79. 4.2 Calendar Transport Model                                12
  80. 4.2.1 Direct Access                                         13
  81. 4.2.2 Calendar Service Mediation                            13
  82. 4.2.3 Interdomain Exchange                                  13
  83. 5. Security considerations                                  14
  84. 6. References                                               15
  85. 7. Acknowledgments                                          15
  86. 8. Author's address                                         16
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112. Noerenberg                   Expires Dec 1997                   [Page 2]
  113. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  114.  
  115.  
  116.  
  117.  
  118. Introduction
  119.  
  120. The Internet Calendar Model specification provides a framework for the
  121. set of protocols that define Calendaring and scheduling for the
  122. Internet.  The protocols specify the contents of calendars, and how
  123. the objects stored on calendars are represented during transmission
  124. across the Internet.  These protocols also define the interaction
  125. between a calendar user agent and a calendar store, as well as the
  126. actions performed by calendar transfer agents that facilitate
  127. communication between calendar stores.  These terms will be defined
  128. more precisely in the section on nomenclature below.  The protocols
  129. are the:
  130.  
  131. "Core Object Specification" [CoreObjSpec]
  132. "Calendar Interoperability Protocol" [CalIntProt]
  133. "Calendar Access Protocol" [CalAccProt]
  134.  
  135.  
  136.  
  137. 1. Document framework
  138. Calendar and Scheduling Protocols are contained in a series of related
  139. documents. This section describes the relationship between the
  140. documents.
  141.  
  142. 1.1 Model Specification
  143. This document - see abstract and introduction above.
  144.  
  145. 1.2 iCalendar: Core Object Specification
  146. The Core Object Specification is the authoritative definition of all
  147. properties that may be used in the Internet Calendar and Scheduling
  148. Protocols as well as the rules for encoding and representing the
  149. objects that are constructed from those properties. iCalendar also
  150. specifies the method to be used to define new attributes.
  151.  
  152. 1.3 iTIP: Transport Independent Interoperability Protocol
  153. This document specifies how calendaring systems use iCalendar objects
  154. to interoperate with other calendar systems.  It does so in a general
  155. way so as to allow multiple methods of communication between systems.
  156.  
  157. Binding of iTIP to a real-time protocol
  158. This document specifies a session-layer iTIP protocol.  Multiple
  159. bindings are possible. This WG will specify and foster implementation
  160. of at least one binding.
  161.  
  162. Binding of iTIP to E-mail
  163. This document specifies an iTIP protocol over Internet e-mail using
  164. MIME. Internet e-mail protocols are given by RFCs 821, 822, 2045-2049
  165. [RFC-821] [RFC-822] [RFC- 2045] [RFC-2046] [RFC-2047]. [RFC-2048]
  166. [RFC-2049].  See the references for details for constructing Internet
  167. e-mail messages.
  168.  
  169.  
  170.  
  171. Noerenberg                   Expires Dec 1997                   [Page 3]
  172. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  173.  
  174.  
  175. 1.4 CAP: Calendar Access Protocol Specification
  176. This document specifies how a Calendar User Agent (CUA) will interact
  177. with a Calendar Service using iCalendar objects.
  178.  
  179. A graphical representation of the relationship between the documents
  180. is shown below:
  181.  
  182.  
  183.                         ------------------ 
  184.                        | Model Document   |
  185.                         ------------------ 
  186.                                 |
  187.                                 |
  188.                                 |
  189.                         ------------------ 
  190.                        |    iCalendar     |
  191.                         ------------------ 
  192.                                 |
  193.                                 |
  194.                                 |
  195.                ----------------------------------- 
  196.               |                                   |
  197.       ------------------                 ------------------ 
  198.      |      iTIP        |               |        CAP       |
  199.       ------------------                 ------------------ 
  200.               |
  201.       -----------------
  202.       |               |
  203.  ----------      -----------
  204. | session  |    |   email   |
  205. |   iTIP   |    |    iTIP   |
  206.  ----------      -----------
  207.  
  208.  
  209. 2. Calendar protocol nomenclature
  210. Calendaring and Scheduling uses a rich lexicon of terms that are
  211. specific to the problems of scheduling events and reconciling
  212. conflicting requests for time and resources.  This document will
  213. identify the major components of these systems, and show component
  214. relationships.  However, for the sake of completeness and to serve as
  215. an introduction to the protocols in general, a more extensive list of
  216. terms, and brief definitions are included here. Essential parts of the
  217. system model have expanded definitions in this document where the
  218. components of the model are introduced.
  219.  
  220. 2.1 Calendaring lexicon
  221.  
  222. Alarm, Reminder
  223. An asynchronous mechanism providing feedback for a pending or past
  224. event or to-do.
  225.  
  226. Busy Time
  227. A period of time that is not available for scheduling.
  228.  
  229.  
  230. Noerenberg                   Expires Dec 1997                   [Page 4]
  231. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  232.  
  233.  
  234.  
  235. Calendar
  236. A particular collection of calendar components.
  237.  
  238. Calendar Component
  239. The objects that can be found in a calendar.  The components are
  240. events, to-dos, journals, free/busies, time zones and alarms. 
  241. Components also include properties and may include other components. 
  242. A calendar component is identified by unique delimiters.
  243.  
  244. Calendar Date
  245. A day identified by its position within the calendar year.
  246.  
  247. Calendar Scale
  248. A particular type of calendar year, for example, Gregorian, Buddhist
  249. Era, Japanese Emperor Era, Chinese Lunar, Islamic, and Jewish
  250. Calendars.
  251.  
  252. Calendar Service
  253. A Calendar Service (CS) stores a collection of calendars and interacts
  254. with the Calendar User Agent (CUA) via the Calendar Access Protocol
  255. (CAP).
  256.  
  257. Calendar Transport Agent (CTA)
  258. A CTA mediates the exchange of calendar objects between calendars.  It
  259. is generally responsible for interpreting the Transport Independent
  260. Interoperability Protocol (iTIP) used to exchange calendar objects
  261. either within a domain or across calendar domains.  It can be
  262. implemented as a daemon that operates automatically without continuous
  263. human intervention.
  264.  
  265. Calendar User Agent (CUA)
  266. A CUA mediates the interactions between a calendar user and his
  267. calendar.  It represents the information stored in the calendar to the
  268. user, and enables the user to manipulate it. This is a particular
  269. instance of the interactive process used by a calendar user.
  270.  
  271. Coordinate Universal Time (UTC)
  272. The time scale maintained by the Bureau International de l'Heure
  273. (International Time Bureau). UTC is often incorrectly referred to as
  274. GMT.
  275.  
  276. Daylight Saving Time (DST)
  277. An adjustment to local time to accommodate annual changes in the
  278. number of daylight hours. DST is also known as Advanced Time, Summer
  279. Time, or Legal Time. Daylight Saving Time adjustments in the Southern
  280. Hemisphere are opposite to those in the Northern Hemisphere.
  281.  
  282. Event
  283. A calendar component that defines a scheduled activity, minimally
  284. specified by a start and end calendar date and time of day and a
  285. description.
  286.  
  287.  
  288.  
  289. Noerenberg                   Expires Dec 1997                   [Page 5]
  290. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  291.  
  292.  
  293. Free Time
  294. A period of time available for scheduling on a calendar.
  295.  
  296. FreeBusy
  297. FreeBusy components describe blocks of allocated and unallocated time
  298. on a calendar. They do not contain a description why the time is
  299. allocated.
  300.  
  301. Gregorian Calendar
  302. A calendar scale in general use beginning in 1582.  The Gregorian
  303. Calendar scale is based on a solar calendar consisting of common years
  304. made up of 365 days and leap years made up of 366 days; both divided
  305. into 12 sequential months.
  306.  
  307. Journal
  308. A calendar component that defines a collection of information intended
  309. for human presentation and is minimally specified by a calendar date
  310. and one or more descriptions.
  311.  
  312. Local Time
  313. The clock time in public use in a locale. Local time is often
  314. referenced by the customary name for the time zone in which it is
  315. located. The relationship between local time and UTC is based on the
  316. offset(s) that are in use for a particular time zone. In general, the
  317. formula is as follows:
  318.  
  319. local time = UTC + (offset)
  320.  
  321. Period
  322. A duration of time, specified as either a defined length of time or by
  323. its beginning and end points.
  324.  
  325. Properties
  326. Attributes that apply to calendar components or calendars. A calendar
  327. component is a named set of properties.  Properties can also be used
  328. to produce variants to suit a particular purpose.
  329.  
  330. Recurrence Rule
  331. A notation used to represent repeating occurrences, or the exceptions
  332. to such a repetition of an event or a to-do. The recurrence rule can
  333. also be used in the specification of a time zone description.
  334.  
  335.  
  336. Repeating Event or To-do
  337. An event or to-do that repeats for one or more additional occurrences.
  338. The recurrence may be defined with discrete dates and times and/or
  339. with a recurrence rule.
  340.  
  341. Standard Time
  342. Introduced by Sir Sanford Fleming and others around 1870, standard
  343. time is a scheme for dividing the world into zones where the same time
  344. would be kept. The original proposal was to divide the world into 24
  345. zones, each zone having a width of 15 degrees of longitude. The center
  346.  
  347.  
  348. Noerenberg                   Expires Dec 1997                   [Page 6]
  349. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  350.  
  351.  
  352. zone was originally the meridian passing through Greenwich, England,
  353. called Greenwich Mean Time (GMT). The time in the zones was
  354. decremented by one hour per zone going westwards and was incremented
  355. by one hour per zone going eastwards from GMT. Changes have been made
  356. to the original proposal to accommodate political boundaries. In
  357. addition, some countries and regions specify 30 or 45 minute offsets,
  358. rather than the full 60 minute offset. Standard time is also known as
  359. Winter Time in some regions.
  360.  
  361. GMT and UTC are generally equivalent. However, by international
  362. agreement, the GMT term is discouraged in favor of the term UTC for
  363. all general time keeping.
  364.  
  365. Time Zone
  366. A geographic region to which a specified offset from UTC applies. 
  367. While offsets can frequently be calculated by knowing the longitudinal
  368. distance from Greenwich, England, local conventions frequently alter
  369. the calculation, complicating the determination of local time.  Local
  370. convention may also assign a label to identify the time zone.  There
  371. is no world-wide standard for labels.
  372.  
  373. To-do
  374. A calendar component that defines an action item and is minimally
  375. specified by an effective calendar date and time of day, a due
  376. calendar date and time of day, a priority and a description.
  377.  
  378. 3. Model Components
  379. There are several principal components in a Calendaring and Scheduling
  380. system. Their relationship can be seen in Figure 2 below.  This
  381. section identifies some of the salient features of the components. 
  382. The syntax and semantics for creating and transmitting these objects
  383. are completely specified in [CoreObjSpec], [CalAccProt], and
  384. [CalIntProt].
  385.  
  386. 3.1 Calendar User
  387. A calendar user is the entity that interprets objects on a calendar,
  388. creates them, and exchanges them with other calendar users.  A
  389. calendar user may be a person (Ken Caminiti), a group of people (the
  390. games of the San Diego Padres baseball club), or a resource (Padre's
  391. home games at the "Q").  From the point of view of other calendar
  392. users, groups and resources appear as a single entity to other
  393. calendar users, regardless of their composition in the physical world.
  394. Calendar users that are resources generally contain properties that
  395. identify them as inanimate objects -- anything from a fruit bowl to
  396. rubber bats to settle disputes during a meeting.
  397.  
  398. A calendar user owns his own calendar, and can manipulate objects
  399. stored there via a CUA.  Access control attributes condition access to
  400. calendars and their components and properties.
  401.  
  402. A calendar user can also manipulate the contents of other calendar
  403. users' calendars by sending messages containing calendar objects to
  404. them.  For example, The San Diego Padres sends calendar events for the
  405.  
  406.  
  407. Noerenberg                   Expires Dec 1997                   [Page 7]
  408. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  409.  
  410.  
  411. 1997 season to Ken Caminiti, so he knows when to show up at the
  412. ballpark.  The Padres sends calendar events for games to be played at
  413. home to the Qualcomm Stadium calendar so the concessionaires can order
  414. hot dogs.
  415.  
  416. 3.2 Calendar
  417.  
  418. 3.2.1 Collection of objects
  419. Calendar users own calendars.  This is a one to many relationship.  A
  420. single calendar user may have multiple calendars.  A calendar is an
  421. information store containing information about events,to-dos, alarms,
  422. journals and free time, the components stored in it.  Also stored in a
  423. calendar are properties that are global to all of the objects in the
  424. calendar.  An example of a global property is the GEO property that
  425. identifies the physical location where the calendar user can be found.
  426.  Global properties such as this establish the context used to
  427. interpret the objects stored in the calendar.  The principal
  428. structural features of a calendar are described below in section
  429. 3.2.3.  When components or properties of a calendar are exchanged
  430. between actors in a calendaring and scheduling network (Calendar User
  431. Agents and Calendar Services), they are expressed in the form defined
  432. in [CoreObjSpec].  Figure 1 below is a schematic representation of a
  433. calendar.
  434.  
  435. 3.2.2 Properties
  436. Properties are attributes of a component or a calendar.  They consist
  437. of a name and a value.  Properties are strongly typed.  Some
  438. properties are multivalued.  A property may have parameters that
  439. distinguish between related properties.  Some properties may occur
  440. multiple times in the same component instance, and may be gathered
  441. into a logical group. Some properties may be unique to a particular
  442. calendar or component.
  443.  
  444. 3.2.3 Components
  445. Components are collections of property values.  A particular set of
  446. values for the properties of a component define a particular
  447. component.  Some components may contain certain other components.  The
  448. set of components in a calendar are identified below.
  449.  
  450. 3.2.3.1 Events
  451. Event components are defined for specific starting date-time, have a
  452. duration on a calendar, and a description.  Other properties of an
  453. event may specify a location or other attributes that define the
  454. event, such as resources that are part of the event.  Events may also
  455. contain an Alarm component.
  456.  
  457. 3.2.3.2 To-do
  458. While like an event, a To-do doesn't reserve a specific block of time
  459. on a calendar.  A To- do component must have a starting date-time that
  460. identifies its first appearance on the calendar.  It must also have a
  461. date-time that specifies when the To-do expires.  A To-do must have a
  462. description.  It may also contain an alarm component.
  463.  
  464.  
  465.  
  466. Noerenberg                   Expires Dec 1997                   [Page 8]
  467. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  468.  
  469.  
  470. 3.2.3.3 Alarms
  471. An alarm component may occur in an Event or To-do.  It contains a
  472. date-time. When present, and the date-time is passed, it will cause a
  473. CUA or CS to notify the user the date-time has passed.
  474.  
  475. 3.2.3.4 Journal
  476. A journal component is a textual item that is associated with a
  477. particular date. As its name suggests, its purpose is to record
  478. information meaningful about the date, but not necessarily tied to
  479. other calendar components on a calendar.
  480.  
  481. 3.2.3.5 Timezone
  482. Timezone components encapsulate rules for calculating local time from
  483. UTC. Including this component in an event component enables a receiver
  484. to calculate the universal time value for time values expressed in the
  485. sender's local time. This component is especially useful for
  486. expressing recurring events whose instances span a change in the time
  487. reference such as the transition between Standard time and Daylight
  488. Savings time.  Time values expressed in local time are always
  489. interpreted in the receiver's local time.  The sender must provide
  490. another context using UTC values and Timezone components if this is
  491. not the interpretation intended by the sender.
  492.  
  493.  
  494.  
  495.                                calendar
  496.                                   |
  497.    -----------------------------------------------------------
  498.   |         |            |           |            |           |
  499. to-do     event       journal    freebusy     timezone    property...
  500.             |
  501.      --------------
  502.     |              |
  503. property...      alarm
  504.                    |
  505.                property...
  506.  
  507.  
  508. Figure 1: Calendar Object Model
  509.  
  510.  
  511.  
  512. 3.3 Calendar User Agent (CUA)
  513. A CUA mediates the interactions between a calendar user and his
  514. calendar.  It represents the information stored in the calendar to the
  515. user, and enables the user to manipulate it. This is a particular
  516. instance of the interactive process used by a calendar user.
  517.  
  518. 3.4 Calendar Service
  519. A Calendar Service (CS) stores a collection of calendars and interacts
  520. with the Calendar User Agent (CUA) via the Calendar Access Protocol
  521. (CAP).
  522.  
  523.  
  524.  
  525. Noerenberg                   Expires Dec 1997                   [Page 9]
  526. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  527.  
  528.  
  529. 3.5 Calendar Domain
  530. A collection of calendars that can be grouped together constitutes a
  531. Calendar Domain. The relation used to bound the group is arbitrary. 
  532. Frequently membership in an organization will be used to define the
  533. domain, but it could be a shared Internet address domain, as well.  A
  534. Calendar Domain provides a contiguous address space for all the
  535. calendars, CTAs and CUAs contained in the domain.  It must be possible
  536. for any Calendar User (via the facilities of a CUA and/or CTA) to
  537. determine whether they are members of a particular domain, or if other
  538. Calendar Users are members.  CTAs and CUAs can take advantage of
  539. domain information when routing event messages.
  540.  
  541. 3.6 Calendar Access Protocol (CAP)
  542. When calendar users need to manipulate calendars that are not stored
  543. on the same computer where the CUA executes, the CUA will use the
  544. Calendar Access Protocol to exchange components with the Calendar
  545. Service (CS). CAP specifies the beginning and ending of the session
  546. between the CUA and the CS.  Using CAP, the CUA will mediate
  547. authentication of the user to the service.  CAP requires calendar
  548. components and calendar properties to be expressed in the on-the-wire
  549. data format defined in [CalObjSpec]. A CUA must not be required to
  550. maintain a connection to a CS via CAP in order to display a Calendar
  551. for a Calendar User or accept commands from a user to change a
  552. Calendar's content.  By using CAP a CUA need not have specific
  553. information on how a particular CS stores a Calendar and vice versa.
  554. This enables specification and exchange of components and properties
  555. independently of Calendar storage models adopted by particular CUAs or
  556. CSs.
  557.  
  558. 3.7 Transport Independent Interoperability Protocol (iTIP)
  559. CSs in a domain or across domains exchange components and properties
  560. using iTIP. Like CAP, iTIP uses iCalendar formats to represent
  561. components and properties. iTIP defines the beginning and ending of
  562. the exchange session, as well the users for whom the messages are
  563. intended.  iTIP permits unauthenticated delivery of components and
  564. properties to a CS.  A CS may accept or reject delivery without
  565. interaction with a user.  But a CS may require further confirmation of
  566. receipt of a component or property before it is acted upon by the CS.
  567.  
  568.  
  569. 4. Calendar System Model
  570. This section presents the Calender and Scheduling system model.  It
  571. describes how the elements identified and described in the section 3
  572. relate to each other. This is done in two parts. Table 1 in section
  573. 4.1 below summarizes the relationships between pairs of elements. 
  574. Section 4.2, Calendar Transport Model, identifies and describes the
  575. different transport modes that are supported by Calendaring and
  576. Scheduling protocols.
  577.  
  578. 4.1 Model Component Relationship
  579. The table below identifies the defined relationships between pairs of
  580. elements. If a cell contains a number that means that the elements
  581. specified in the row and column headings have a relationship with each
  582.  
  583.  
  584. Noerenberg                  Expires Dec 1997                  [Page 10]
  585. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  586.  
  587.  
  588. other.  If a cell is blank then there is no relationship between the
  589. corresponding pair of model elements. Following the table the numbered
  590. relationships are described in detail.
  591.  
  592. Table 1: Component Relationships
  593.  
  594.          Calendar  Calendar    Calendar   Calendar   Calendar    iTIP   CAP
  595.            User               User      Service    Domain   
  596.                              Agent
  597. Calendar              1       2
  598. User
  599.  
  600. Calendar                      3           4          5
  601.  
  602. Calendar
  603. User                          6           7          8         6,8    7
  604. Agent
  605.  
  606. Calendar                                  9          9         9
  607. Service
  608.  
  609. Calendar                                             10        10
  610. Domain
  611.  
  612. iTIP
  613.  
  614. CAP
  615.  
  616.  
  617. 1. The relationship between a Calendar and a Calendar User is defined
  618. in the Model Components section 3.
  619.  
  620. 2. A Calendar User interacts with the system through a Calendar User
  621. Agent.  The Calendar User Agent is typically (but not necessarily) an
  622. interactive program that the Calendar User depends on to maintain
  623. their own calendar and to interact with other users' calendars, for
  624. example to invite them to meetings.
  625.  
  626. 3. A Calendar User Agent interacts with a Calendar typically on behalf
  627. of a Calendar User. However, a Calendar User Agent may be a program
  628. without a user interface, for example a program that scans multiple
  629. calendars for vacation entries and maintains a summary in a separate
  630. calendar.
  631.  
  632. 4. A Calendar Service may store a Calendar although this model does
  633. not require that.  In fact, this model does not define how a Calendar
  634. is stored, leaving it open to the implementation to determine that. 
  635. The calendar may be stored in a file system, in memory, in the message
  636. store of a messaging system etc.
  637.  
  638. 5. The relationship between a Calendar and a Calendar Domain is
  639. defined in the Model Components, section 3.
  640.  
  641.  
  642.  
  643. Noerenberg                  Expires Dec 1997                  [Page 11]
  644. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  645.  
  646.  
  647. 6. A Calendar User Agent may interact directly with another Calendar
  648. User Agent by using iTIP.
  649.  
  650. 7. A Calendar User Agent may interact with a Calendar Service using
  651. the Calendar Access Protocol.
  652.  
  653. 8. A Calendar User Agent may interact with a Calendar Domain via iTIP.
  654.  
  655. 9. A Calendar Service may interact with another Calendar Service or a
  656. Calendar Domain using iTIP.
  657.  
  658. 10. Calendar Domains may interact with each other using iTIP.
  659.  
  660.  
  661. 4.2 Calendar Transport Model
  662. There are several transport modes in this architecture.  The figures
  663. below illustrate the different modes that are allowed.  Three modes
  664. are required to handled the different kinds of calendar exchanges
  665. across the Internet, person to person, group interactions local to a
  666. particular network, and exchanges across networks.
  667.  
  668.  ------------                  ------------
  669. | CUA  | rcvr| -----      ----|rcvr|  CUA  |
  670. |       -----|      \   /     |----        |
  671. |            |       \ /      |            |
  672. |            |        X       |            |
  673. |            |       / \      |            |
  674. |       -----|      /   \     |----        |
  675. |      | sndr| -----      ----|sndr|       |
  676.  ------------       \    /     ------------
  677.                      iTIP
  678.                      
  679. Figure 2: Direct Access
  680.  
  681.  
  682.  ------------                  ------------
  683. | CUA        |                |       CUA  |
  684. |            |                |            |
  685. |            |                |            |
  686.  ------------                  ------------
  687.         \                          /                     
  688.          \   ------- CAP -------  /
  689.           \                      /
  690.            \   --------------   /
  691.             \ |      CS      | /
  692.               |              |
  693.               |              |
  694.                --------------
  695.  
  696. Figure 3: Calendar Service Mediation
  697.  
  698.  
  699.  
  700.  
  701.  
  702. Noerenberg                  Expires Dec 1997                  [Page 12]
  703. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  704.  
  705.  
  706.  -----------------                     ------------------
  707. |                 |                   |                  |
  708. | Calendar Domain |                   | Calendar Domain  |
  709. |                 |                   |                  |
  710. |                 |                   |                  |
  711. |  -------        |                   |                  |
  712. | |  CUA  |       |                   |                  |
  713. |  -------        |                   |                  |
  714. |     |           |                   |                  |
  715. |     | -- CAP    |                   |                  |
  716. |     |           |                   |                  |
  717. |  ------------   |                   |---------         |
  718. | | CS   | rcvr|----------     -------|rcvr|    |        |
  719. | |       -----|  |       \   /       |----     |        |
  720. | |            |  |        \ /        | Gateway |        |
  721. | |            |  |         X         |         |        |
  722. | |            |  |        / \        |         |        |
  723. | |       -----|  |       /   \       |----     |        |
  724. | |      | sndr| ---------      ------|sndr|    |        |
  725. |  ------------   |       \    /      |---------         |
  726. |                 |        iTIP       |                  |
  727. |                 |                   |                  |
  728.  -----------------                     ------------------
  729.  
  730.  Figure 4: Interdomain Exchange
  731.  
  732.  
  733. 4.2.1 Direct Access
  734. For direct access, two calendar user agents (CUA) exchange calendar
  735. components by using iTIP.  Each CUA provides an iTIP sender and
  736. receiver.  As is generally the case, the methods used by the CUA to
  737. store calendar data locally are not relevant to the transport model. 
  738. For this mode, calendar users must be uniquely identifiable across the
  739. Internet, and access to CUAs must conform with privacy and security
  740. considerations.
  741.  
  742. 4.2.2 Calendar Service Mediation
  743. Using Calendar Service Mediation a CUA interoperates with a Calendar
  744. Service (CS) using CAP to exchange calendar components.  The CS takes
  745. responsibility for mediating receipt and delivery of components with
  746. other collaborating CUAs.  The principal difference between this mode
  747. and Interdomain Exchange is that CSs do not need to use iTIP to
  748. facilitate exchange of components.  A consequence of this mode is that
  749. CUAs and CSs need not use addresses that are unique across the
  750. Internet.  However, consistency with other modes makes a consistent
  751. address model an obvious simplification for implementors.
  752.  
  753. 4.2.3 Interdomain Exchange
  754. With Interdomain Exchange a Calendar Service (CS) supporting a group
  755. of users in one domain can exchange calendar components with a
  756. different calendar domain. Domains may or may not be within the same
  757. Internet network domain.  Like Direct Access, iTIP is the vehicle
  758. which permits component exchange.  In the figure, one domain is
  759.  
  760.  
  761. Noerenberg                  Expires Dec 1997                  [Page 13]
  762. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  763.  
  764.  
  765. illustrated with a Calendar Service providing iTIP service.  The 2nd
  766. domain in this figure has a distinct iTIP sender and receiver.  In
  767. order to provide end-to-end privacy components must be wrapped in a
  768. cryptographically secure wrapper to insure only the intended
  769. corespondents can interpret the components.  This wrapper is not
  770. required unless privacy must be assured.  In order to provide backward
  771. compatibility with existing calendar and scheduling systems, a privacy
  772. wrapper cannot be a required aspect of the component exchange.
  773.  
  774.  
  775. 5. Security considerations
  776. The Core Object Specification must provides the means to classify the
  777. intended sensitivity level of an event, to-do or journal calendar
  778. component (i.e., PUBLIC, PRIVATE, or CONFIDENTIAL).  It must also
  779. provide a means to wrap all components in an exchange in a
  780. cryptographically secure envelope so that only the intended
  781. correspondents can decode the message.
  782.  
  783. The Transport Independent Interoperability Protocol must provides a
  784. description of the authentication step that must be defined in any of
  785. the iTIP bindings.
  786.  
  787. The Calendar Access Protocol must provide a description of the
  788. elements of the calendaring system security model and the protocol
  789. elements for creating and manipulating the access control to a
  790. calendar.
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820. Noerenberg                  Expires Dec 1997                  [Page 14]
  821. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  822.  
  823.  
  824.  
  825. 6. References
  826. [RFC-821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
  827. 821, USC/Information Sciences Institute, August 1982.
  828.  
  829. [RFC-822] Crocker, D., "Standard for the Format of ARPA Internet Text
  830. Messages", STD 11, RFC 822, UDEL, August 1982.
  831.  
  832. [RFC-2045] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  833. Extensions (MIME) Part One: Format of Internet Message Bodies", RFC
  834. 2045, Nov 1996
  835.  
  836. [RFC-2046] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  837. Extensions MIME) Part Two: Media Types", RFC 2046, Nov 1996
  838.  
  839. [RFC-2047] Borenstein, N. & Freed, N., "MIME (Multipurpose Internet
  840. Mail Extensions) Part Three: Message Header Extensions for Non-ASCII
  841. Text", RFC 2047, Nov 1996
  842.  
  843. [RFC-2048] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  844. Extensions (MIME) Part Four: Registration Procedures", RFC 2048, Nov
  845. 1996
  846.  
  847. [RFC-2049] Borenstein, N. & Freed, N., "Multipurpose Internet Mail
  848. Extensions (MIME) Part Five: Conformance Criteria and Examples", RFC
  849. 2049, Nov 1996
  850.  
  851. [CoreObjSpec] "Core Object Specification"
  852.  
  853. [iTIP] "Calendar Interoperability Protocol"
  854.  
  855. [CalAccProt] "Calendar Access Protocol"
  856.  
  857. 7. Acknowledgments
  858. The author is extremely grateful for the assistance, patience and
  859. tolerance of the members of the CalSch working group.  Their ideas and
  860. suggestions are crucial to making this a useful document.  In
  861. particular, the author would like to thank
  862. Anik Ganguly
  863. Derik Stenerson
  864. Frank Dawson
  865. Their comments and ideas were particularly important for the original
  866. formulation of this draft.  I would also like to thank Qualcomm,
  867. Incorporated for allowing the time necessary to bring this effort to
  868. fruition.
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879. Noerenberg                  Expires Dec 1997                  [Page 15]
  880. ietf-draft-calsch-mod-00      Internet Calendar Model      J. Noerenberg
  881.  
  882.  
  883.  
  884.  
  885. 8. Author's address
  886.  
  887. For more information, please contact the author via Internet Mail.
  888.  
  889. John W. Noerenberg, II
  890. Qualcomm, Incorporated
  891. 6455 Lusk Blvd
  892. San Diego, CA 92131
  893. USA
  894.  
  895. email: jwn2@qualcomm.com
  896. ph: +1 619 658 3510
  897.  
  898.  
  899. The "Internet Calendar Model Specification" is the work of the Internet
  900. Engineering Task Force Working Group on Calendaring and Scheduling.
  901. The chairman of that group, Anik Ganguly, may be reached at:
  902.  
  903. Anik Ganguly
  904. Campbell Services, Inc.
  905. 21700 Northwestern Highway
  906. 10th Floor
  907. Southfield, MI 48075
  908. email: anik@ontime.com
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937. Noerenberg                  Expires Dec 1997                  [Page 16]
  938.