Model-driven Application Design for a Campus Calendar Network

Track: Case Studies, B2B

Audience Level: High Level View

Time: Thursday, November 18 at 09:45

Author: Allison Bloodworth , Project Manager, University of California at Berkeley

Author: Dr. Robert J. Glushko , Adjunct Professor, University of California at Berkeley , Director, Center for Document Engineering

Keywords: Case Studies, Content Model, Content Repurposing, Data Interchange, Document Engineering, Interoperability, W3C XML Schema, XML

Abstract:

Due to the decentralized nature of computing on the University of California, Berkeley campus, different schools, departments, and campus organizations often create applications in an independent and ad-hoc fashion. A striking example of this occurs with event calendars -- at least 80 different calendars exist on 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 event information among these calendars. Cross-posting is accomplished today using manual data entry forms located on many calendars' websites, or by sending an email with event information to a calendar administrator.

This situation is not novel. Most large organizations struggle with incompatible models and applications for time sheets, expense forms, project schedules, registrations, etc. The problems are also typical of those that arise between enterprises with incompatible catalogs and transactional documents like orders and invoices.

In the fall of 2003 a team of UC Berkeley staff members, led by the first author and advised by the second author, began the process of solving this problem. We developed a standard data model of an Event flexible and scalable enough to accommodate the requirements of most calendars on the Berkeley campus. The group began by selecting 23 campus calendars and harvesting the data elements from each one. We then went through a process of harmonizing and consolidating the data elements into a list of candidate components. The design portion of the process involved using normalization procedures to separate the selected components into functionally dependent aggregates. This resulted in a conceptual model of an event. The group’s final step was to begin the implementation process by encoding this conceptual model into an XML schema.

This Event model was then used as the basis for a model-driven event management system, the UC Berkeley Calendar Network. Our team created a web-based calendar that can display multiple views of events conforming to this Event data model. In conjunction with our Calendar Management tool, which allows calendar administrators to both manage the events in their calendar and customize their calendar’s appearance, the calendar we provide can be used by many organizations on campus. This tool provides numerous ways to customize the calendar, including the use of cascading style sheets or XSL transforms. Calendars using our system will store their events in a centralized repository also based on our Event data model. However, there are calendar administrators who have specialized web development needs, or a need to maintain their own repository of event information and thus cannot use our calendar and repository. 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.