A generic bridge-based conferencing support package should include:
  • Support for arbitrary conference media types (chat, whiteboard, interactive workspace, or any arbitrary data type -- e.g., "take a look at this table" scenarios.)
  • Support for arbitrary sets of conference participants
  • Support for user- or application-defined persistence policies

Conferencing support will use the following classes:
  • edu.vt.cs.collab.cork.models.userlist.SessionData for posting invitations to join a conference
  • edu.vt.cs.collab.bridge.apps.linear.ObjectRecordList (or a subclass thereof) to store references to current and past conferences (referred to as "conference list" below). In the role bridge client this wold probably be the virtual directory /users/id/conferences/.

A conference is initiated by:
  1. Finding a SessionData object (in, for example, the global SharedUserList) for the target user
  2. Finding or creating an appropriately named ObjectRecord in the conference list. This step could take a number of forms depending on application:
    • Finding a conference with an appropriate name, e.g., "Chat with smith"
    • Finding or opening an arbitrary object (possibly an existing conference) and designating it as a conference
  3. Setting the permissions on the conference object to allow access by the target user. For objects that were not created specifically as conference objects, this should generally prompt for confirmation so that the user realizes that they may be exposing data not previously available to the target user.
  4. Creating a ComponentViewFrame for the new conference (unless one already exists)
  5. Adding the pair (conference name, object id) to the target user's SessionData
  6. Showing feedback until the invitation tuple is removed from the target user's SessionData (indicating that the invitation was accepted)

An invitation to join a conference is handled by:
  1. Listening for additions to the local user's SessionData object
  2. When a conference invitation appears (and is accepted):
    • If an object record in the conference list has the requested object id, that record is used
    • If no object record exists, one is created with the given name and object id and added to the user's conference list
  3. Creating a ComponentViewFrame for the new conference (unless one already exists)
  4. Removing the invitation from the SessionData object


Notes:
  • Writing invitations to the SessionData might be problematic since everybody will see every invitation. Moving this into a separate object would fix this.
  • Need to consider permissions: Users shouldn't be able to set these to "same as container".
  • Need to consider options for different conference types, e.g., live edit vs. copy and annotate.


/public/projects/bridge/design/BRIDGE-based conferencing support Login | Web Editor | Full Editor
Last modified 9/11/03 12:35 PM by isenhour (history)
Site contents