One document matched: draft-ietf-calsch-cih-00.txt
Internet-Draft 2/6/97
draft-ietf-calsch-cih-00.txt Expires 6 months from above date
Calendaring Interoperability over HTTP (CIH)
Abstract
Calendaring Interoperability over HTTP (CIH) is a technique
for exchanging calendaring information between scheduling
systems using the Hypertext Transfer Protocol (HTTP). This
allows users to schedule meetings with anyone else, no
matter what scheduling software they use.
This document is a tentative exploration of whether CIH is
feasible and what the pros and cons are relative to a brand
new protocol like the Calendaring Interoperability Protocol
(CIP). The primary benefit of CIH over CIP and motivation
for this project is that we avoid implementing a whole new
protocol, such as writing and debugging the protocol,
convincing vendors to write new code to support it, and then
convincing users to deploy it.
Table of Contents
Abstract ..................................................1
Table of Contents .........................................1
1.0 Introduction ..........................................1
2.0 Overview of CIH .......................................2
2.1 Performing Basic CIH Operations ......................2
2.2 Mapping an Attendee Address to a URL for CIH .........3
3.0 Pros and Cons of CIH (vs CIP) .........................3
3.1 Performance Concerns .................................3
4.0 Security Considerations ...............................4
5.0 References ............................................4
6.0 Open Issues ...........................................4
7.0 To Be Done ............................................5
8.0 Author's Address ......................................5
1.0 Introduction
The Internet Calendaring and Scheduling Core Object
Specification (iCalendar) [1] describes a way to represent
calendaring and scheduling objects and verbs as MIME
objects. This includes distributing and responding to events
and todos and sending free time queries and responses. One
of the most interesting parts of iCalendar(and probably one
of the best) is that these objects can include a Profile
property that indicates what action should be performed
(proposing an event, cancelling one, changing one,
responding to one, etc.). This allows the objects to be sent
around by email and transferred into scheduling systems,
either manually or by integrating the scheduling systems
with the email system.
1
Internet-Draft 2/6/97
draft-calsch-cih-00.txt Expires 6 months from above date
However, there are many times when email is not an ideal
transport for calendaring and scheduling. For instance,
email delivery can be slow and sometimes unreliable.
Gateways can mangle messages. Users can fail to check their
email for long periods of time. Most email systems will
require manual effort to transfer scheduling info from email
to the scheduling system and back. Many scheduling
operations can and should be performed better with a direct,
real-time connection between scheduling systems.
For these reasons, a protocol that allows iCalendar objects
to be exchanged in real time would be ideal. A simple
protocol will do. We're just exchanging MIME objects. The
details of the object format and the actions implied by the
objects (date syntax, attendee list, etc.) are considered in
the iCalendar spec.
Several protocols have been suggested to address this
problem. The CIP (Calendaring Interoperability Protocol) [2]
is a simple protocol with a few verbs that correspond to the
operations necessary to accomplish calendaring
interoperability. HTTP is also being considered for this
role and that is the focus of this document.
This document provides a tentative exploration of whether
Calendaring Interoperability over HTTP (CIH) is feasible and
what the pros and cons are relative to a brand new protocol
like the CIP.
2.0 Overview of CIH
CIH uses the overall architecture of CIP, but reimplements
it using a subset of the HTTP 1.1 protocol specification
[3]. CIH servers are HTTP servers and therefore must meet
all requirements for HTTP servers laid out in the HTTP 1.1
specification. CIH is merely a convention which describes
how certain HTTP commands should be handled when certain
MIME content types are used.
2.1 Performing Basic CIH Operations
All CIH operations are performed by using the HTTP POST
command to send MIME objects from the client to a specified
URL on the server and receive MIME objects in the response.
The MIME objects in question are those described by the
iCalendar spec and their semantics and syntax are described
thoroughly in that document.
HTTP is used in this context mostly as a real-time transfer
mechanism for MIME objects. Since its capabilities are a
superset of those provided by SMTP email, this does not
require significant changes to the iCalendar spec.
2
Internet-Draft 2/6/97
draft-calsch-cih-00.txt Expires 6 months from above date
2.2 Mapping an Attendee Address to a URL for CIH
The default value of an attendee as defined in iCalendar is
an RFC 822 address (that is, user@hostname). While iCalendar
allows the value to have other data types, such as URL, it
is desirable to have an easy way to map a single RFC 822
address into a URL that can be used for CIH. For the address
hanna@world.std.com, the CIH URL is
http://cih.world.std.com/hanna. The algorithm is to prepend
cih. to the host name and use the user name as an abs_path.
If this generates an invalid URL or an error occurs when CIH
communications are attempted, email communication SHOULD be
used.
A few notes here. First, this does not mean that all URLs
that support CIH must have this form. It just provides a
convenient method for mapping an RFC 822 address into an
HTTP URL for use with CIH. Second, if a better scheme
emerges for server location (SLP or whatever), we can
support that and provide backward compatibility with this
scheme via redirects.
3.0 Pros and Cons of CIH (vs CIP)
The primary benefit of CIH over CIP and the motivation for
this project is that we avoid implementing a whole new
protocol, such as writing and debugging the protocol,
convincing vendors to write new code to support it, and then
convincing users to deploy it. There are three phases to
this benefit: definition, implementation, and deployment.
Some would argue that defining CIH will be easier than
defining a whole new protocol. This is not clear, as there
is also a counter-argument that HTTP is so complicated that
defining CIH will be quite a task.
For vendors with lots of HTTP experience and code,
deployment of CIH will be easier than CIP. For vendors
without much HTTP experience, CIH will be more complex than
CIP and probably take more time to implement, even if HTTP
code can be licensed and integrated into their products.
For deployment, the balance is clearly in favor of CIH.
Users and administrators are already familiar with HTTP and
a great deal of infrastructure has been built up to support
HTTP already. Problems may arise, however, if CIH uses a
subset of HTTP or takes advantage of obscure or cutting-edge
features of HTTP that aren't widely implemented. These is
also a risk of customer backlash against using HTTP for a
purpose different from its original intent.
3.1 Performance Concerns
3
Internet-Draft 2/6/97
draft-calsch-cih-00.txt Expires 6 months from above date
Concerns have been raised that CIH will be substantially
slower than CIP. This section provides some of the arguments
pro and con.
While HTTP 1.0 is a connectionless protocol, HTTP 1.1 uses
persistent connections by default. This avoids the overhead
associated with bringing up and shutting down TCP
connections all the time.
Although HTTP 1.1 uses persistent connections, it is still a
stateless protocol in that each request is considered
without regard to the requests that preceded it (unless
cookies are used). The stateful nature of CIP can allow it
to optimize some operations by establishing a state once and
then performing several commands. However, it is not clear
that this will provide substantial performance improvements.
In the area of authentication and encryption, SSL avoids
reauthentication with every request.
Several HTTP features, such as compression via content
codings may provide sophisticated methods of boosting
throughput and therefore performance over CIP.
4.0 Security Considerations
Since calendaring interoperability may involve the exchange
of sensitive information, any calendaring interoperability
mechanism must provide for encryption and authentication.
Several techniques such as SSL and HTTP Access Authorization
are available for use with HTTP as described in [3] and [4].
Without such techniques, CIH clients and servers are wide
open to forged or snooped meeting proposals or responses.
5.0 References
[1] F. Dawson, D. Stenerson, _Internet Calendaring and
Scheduling Core Object Specification_, Internet Draft,
draft-ietf-calsch-ical-00.txt, February 1997.
[2] A. Ganguly, S. Hanna, P. O'Leary, B. Spencer,
_Calendaring Interoperability Protocol_, Internet Draft,
draft-ietf-calsch-cip-00.txt, November 1996.
[3] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T.
Berners-Lee, _Hypertext Transfer Protocol_, RFC 2068.
[4] A. Frier, P. Karlton, P. Kocher, _The SSL Protocol
Version 3.0_, Internet Draft, draft-ietf-tls-ssl-version3-
00.txt, November 1996.
6.0 Open Issues
Define iCalendar objects to be used in CIH responses (other
than FREE-BUSY/REPLY). This will have the benefit of
4
Internet-Draft 2/6/97
draft-calsch-cih-00.txt Expires 6 months from above date
allowing responses (i.e. operation confirmations) by email
if that's desired.
Should have a non-destructive way to confirm that a given
URL supports CIH before you start PUTting things to it.
Otherwise, you might just be dumping things in a directory
on an HTTP server. Perhaps a GET that is expected to return
a certain value.
7.0 To Be Done
Add examples and lots more detail.
8.0 Author's Address
Steve Hanna
On Technology Corporation
hanna@world.std.com
(617)
692-3153
Anik Ganguly
OnTime
Campbell Services Inc.
http://www.ontime.com
| PAFTECH AB 2003-2026 | 2026-04-24 13:18:00 |