Due to the decentralized nature of computing on the University of California, Berkeley campus, different schools, departments, and campus organizations often create applications on an ad-hoc basis. The lack of campus-wide guidelines and standards for designing and building applications make it difficult for developers to design for interoperability and reuse. Consequently, the Berkeley campus is inundated with applications serving a similar purpose and repurposing similar content but built with different technologies and based on different, and often incompatible, data models.
A striking example of this occurs with event calendars -- at least 80 different calendars exist in the Berkeley.edu domain. Each calendar has its own way of describing events, uses different forms for submitting them and different databases to store them. This means that there is no automated way to cross-post or share event information among calendars. Cross-posting is accomplished today using manual data entry forms located on many calendars' websites, or by sending a separate email with teh event information to each calendar's administrator.
The goal of our project is to improve the process for sharing event information among different calendars on the U.C. Berkeley campus. In the summer of 2003 members of our project team undertook a collaborative effort with U.C. Berkeley staff members to develop a standard data model of an "Event" that is flexible and scalable enough to accommodate the requirements of most calendars on the Berkeley campus. This Event model was then used as the basis for a model-driven event management system, the U.C. Berkeley Calendar Network. Our team created a web-based calendar which displays events conforming to this Event data model. In conjunction with our Calendar Management tool, which allows calendar owners to both manage the events in their calendar and customize their calendar’s appearance, our calendar can be used by many organizations on campus. The tool provides numerous ways to customize the calendar within our Calendar Management tool, including the uploading of a cascading style sheet or an XSL transform. This is a critical piece of the project because it is important to many calendar owners on the U.C. Berkeley campus to “brand” their department by creating a website and web calendar with a consistent look and feel.
Calendars using our system will store their events in a centralized repository also based on our Event data model. However, there are calendar owners who have specialized web development needs, or a need to maintain their own repository of event information and thus will not be able to use our calendar. For these users, we outline a process by which they can send event information to, or pull information from the centralized event repository using an XML document that, again, is based on our Event data model.