Unformatted text preview:

GEORGE MASON UNIVERSITYComputer Science DepartmentConcurrent & Distributed Software SystemsSpring 2003Assignment 4A Calendar Tool for Work GroupsDEMO DATE: May 51 IntroductionThe goal of this assignment is to introduce you to the use of CORBA/Java RMI/SOAP as middleware for constructingdistributed applications by building a calendar tool for work groups.The calendar tool helps individuals manage their schedules. It also aids groups of people in coordinating commonevents such as meetings. Each user controls his or her own calendar. The user may view this calendar or post events(appointments, to-do lists, etc) to the calendar. The calendar is also a coordinating tool. A user may view the calendarsof other users, and schedule shared events such as meetings.1.1 CalendarsA calendar is a database of events. An event is a record that contains three attributes: a time interval, a text eventdescription, and an access control field. Each attribute is defined as follows:• Time Interval: This attribute denotes the range of time over which the event is active. An example is ”9 - 10AM, March 10, 1995”. We say that event A contains event B if the interval of A contains the interval of B. Wesay that events A and B are conflicting if their intervals intersect.•Text Description: This is a simple text description of the event. For example, ”Squash game with Mary”.• Access Control: Defines access rights to the event. There are four types of access control attributes: Private,Public, Group, and Open. They define the mode of permissible access to calendar events. The owner of thecalendar is permitted to add, delete or modify any type of events on the calendar.Private events are accessible only by the owner.Public events may be read by any user. A group event is an event that includes a list of group members. Anygroup member can read or modify a group event, provided that it does not conflict with other group events andthat it is contained within an open event on the calendars of group members. Any user can read the time intervalof a group event but cannot see any other event data unless he is a member of the group.Open events are public events used to specify periods that are open for scheduling group events. Any user canview open events and create a respective group event that is contained in the open event, provided this groupevent does not conflict with any other group event.1.2 System ArchitectureThe system you will build consists of two objects per user: a Calendar object and an object that implements the ClientUser Interface. In addition, there is a Calendar Manager, which is used for creating and keeping track of Calendarobjects.Each user’s calendar is implemented by a single calendar object. The calendar object exports the operationsdescribed in Section 2 via (CORBA/Java) remote interfaces. These interfaces are used by other calendar objects or byuser interface objects to access and manipulate calendars.1The user interface lets the user view and modify calendars. It communicates with its calendar object via an ORB1to query or update calendar databases. The user interface and calendar object reside either on the same machine oron different machines across the network. Although the user interface usually requests services from the calendar,occasionally the calendar initiates communication with the user interface program to notify the user of events.2 Calendar ObjectEach Calendar object maintains a database of events for its user. As such, it should support the following classes ofservices that essentially query and modify its database and that of other users. Optional parameters appear in squarebrackets.Retrieve Event [usertime-range]Retrieve the schedule of a user for the specified time-range. If user is omitted, it defaults to the owner of thecalendar. The Calendar object will need to communicate with another object to retrieve a schedule if it does notmaintain the calendar of the specified user. Note that the calendar only returns events that the requesting userhas privileges to view.Schedule Event [user-list event]Schedule an event in calendars of each user specified in user-list. If user-list is omitted, schedule the event inthe local calendar. A group event may be scheduled in the calendar of each proposed user only if the AccessControl field of the respective event in every specified calendar is currently set to Open.3 User Interface ProgramThe User Interface program lets the user perform the operations defined in the previous section. In particular, thisprogram presents the user with an interface that permits her to view calendars, to modify appropriate events, and toschedule group events. The user interface usually communicates with its Calendar object to perform these services,but occasionally, the Calendar object might need to notify the user of scheduled events such as appointments. In thissystem, the user interface interacts solely with its designated Calendar which acts as proxy for any operations thatrequire the services of other Calendars.This assignment is not about user interface design. We want you to focus on the distributed computing aspects ofthe problem. A simple text-based interface will suffice. However, if you are using Java, it is relatively straightforwardto design a simple GUI for this application.4 Calendar ManagerThe Calendar Manager acts as aclass factoryfor Calendar objects. Each Calendar User Interface program shouldhave a command-line argument that is the name of its user. If a calendar does not already exist for that user, theUser Interface object should create a calendar object for that user by invoking the appropriate method in the CalendarManager object.The User Interface can also query the Calendar Manager to obtain a list of names of other users in the work group.5 Guidelines for this AssignmentThis assignment deals with the design and implemention of the Calendar Tool described above. In particular, you haveto design and implement the following:• Calendar and Calendar Manager classes•User Interface program, and1In the rest of this handout, an ORB refers to both CORBA-compliant ORBs and the Java RMI mechanism2•Appropriate primitives, data structures and algorithms for robustly implementing the calendar database, and forcommunicating between Calendar objects.For this assignment, you have to use the software architecture shown in Figure 1 below. In this architecture, all thecalendar objects and the calendar manager reside in the same


View Full Document

MASON CS 475 - Assignment 4

Download Assignment 4
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Assignment 4 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Assignment 4 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?