Overall Scheduler Architecture

The image above illustrates the overview of the components and processes within the scheduler system. The major components of the system are the directory, the agents, agent warehouse, and client application. The directory contains information regarding the users such as names, email addresses, and calendar locations. Agents carry the main tasks, specifically those related to generation of meeting schedules. In order for these agents to persist, a warehouse is needed which will ensure that the agents will remain running regardless of the log status of their users, and may also help in managing agent resources. Users run the client application in order to interface with their personal clients or the scheduler system in general.

The Directory

As said above, the directory will contain basic information about the users. One very important information that the directory will contain is the location of the calendars of the users.

Calendars are maintained independent of our system and so scheduler uses data that are not “locally” present. In addition, the provider of the data will have other ways to update them outside of our system giving them full control over their data. Furthermore, these data may also be used by other applications unrelated to the system.

The Agents

Agents will carry out most–if not all–of the tasks or functions that is expected from the application, which are mostly involved in coming up with meeting schedules–basically the intersection of free times (iCalendar) of people involved. These agents will “negotiate” among themselves when users ask them to make meeting schedules. They will act mostly on their own but will have to do so according to user preferences. For example, if users would not want to meet anyone within a given period of time even if that particular user has not specified his actual free or busy times, then the user’s personal agent will have to reject any attempt to schedule a meeting with him or her.

Scheduler agents may also do some calendar management tasks such as putting the meeting schedule generated by themselves or by others on their users’ calendars or deleting these entries when users do not want them. In the implementation of the system, the client application may include a calendar management module where users can manage their calendars directly. However, the agents may not help much on this.

Agent Warehouse

Agents are processes running on the system’s server. These agents must continue to exist even after their users have logged out of the system for the purpose of becoming open to other agents for scheduling. For this task, a warehouse may be used. The main problem here is that since agents will be implemented as processes, there must be a way to manage the resources they will use especially when the number of agents is relatively high.

Explore posts in the same categories: Architecture, System Design

Comment: