Local Navigation:

Calendar-WS
(formerly Calendar Access Project):
Functional Specifications - Summary

This document summarizes the functional specifications which led to the creation of the Calendar-WS web services interface to CalAgenda. It is now a historical document, but may still be useful in its descriptions of the reasons that this service was created and the considerations which governed its design.

Introduction

Several campus and departmental applications at UC Berkeley need to be able to find, add, delete, and modify meetings, reservations, and other events in the campus calendars for various people and resources. These calendars are provided by the campus's shared calendaring system, CalAgenda.

To make this possible, this project is developing interfaces that will offer those applications programmatic access to CalAgenda calendars.

Customers

A number of campus customers have requested programmatic interfaces which would permit them to integrate their applications with CalAgenda Calendars. We are now working with these customers to define their requirements for these interfaces. Representative examples of these campus customers and their applications include:

Simplicity and generality are among the design goals for the programmatic interfaces for these initial customers. As such, these interfaces are intended to be able to substantially meet the needs of additional campus customers in the future, as well, although they may require some minor modification to do so.

Requirements overview

At a high level, the programmatic interfaces will need to permit applications to perform the following four types of actions on the calendar:

(Please see the Web Services Interface for detailed discussions of each of these actions.)

Implementation overview

We currently anticipate offering these programmatic interfaces via Web Services, using the SOAP specification. SOAP is a standards-based method for communicating between two different pieces of programming code, and has the advantages of relative simplicity, widespread use, and extensive documentation.

Using SOAP will also provide compatibility with the widest range of programming languages and development tools used in our customers' applications. Toolkits for interacting with SOAP-based Web Services are available for many languages, such as C, C++, C#, Perl, Python, Java, JavaScript, Visual Basic, PHP, and Cold Fusion, among others. Many of these toolkits are free: either open source or included at no extra cost with commercial development environments.

These SOAP-based Web Services will be offered in a Remote Procedure Call ("RPC") paradigm, in which actions to be performed on calendars are offered via a set of remotely invocable procedures. This paradigm is familiar to customers, easier for them to use, and quicker to implement on the server side. Compared with its alternative, a document-style paradigm, the RPC paradigm concedes some flexibility, however.

Web Services can be used in either of two paradigms, Remote Procedure Call ("RPC") messaging or document-style ("document/literal") transactions: In the simpler RPC paradigm, a Web Services client calls a remote procedure, typically (but not always) providing some parameters and receiving a response. In contrast, in the document-style paradigm, as described by the campus's Center for Document Engineering, the Web Services client sends an XML document to the server, and receives an XML document in return. A choreographed sequence of documents, sent and received between Web Services endpoints, is used to carry out a transaction. And these documents can be processed by XML tools which can validate, transform, and otherwise process the documents, either en-route or at either endpoint.

Finally, these Web Services interfaces will be described using the Web Service Definition Language (WSDL) specification. WSDL descriptions will serve as a key component of the interfaces' documentation. Their existence can also benefit customers whose SOAP toolkits can generate client code, or take advantage of simpler programming models, when WSDL descriptions are available.

Implementation decisions & open issues

The following are some proposed implementation decisions, together with some open issues relating to some of those decisions:

Implementation alternatives

Oracle Corporation, the vendor of Oracle Calendar, the product currently used by the campus to provide the CalAgenda calendaring service, offers three programming interfaces that can be used to access calendars.

The following is a listing of these vendor-provided interfaces, as well as a discussion of why these interfaces were deemed unsuitable for offering programmatic access to CalAgenda calendars, thus prompting the campus's development of its own interface:



UC Berkeley UC Berkeley CIO Campuswide IT Services
Site Map Contact Webmaster