CS 778/878 Networked Multimedia Systems

Course Project

S P I C E

Simple Platform-Independent InteractiveCollaborative Environment

Objectives

Simple: We need to provide a system that can be used by a small group of collaborators. For example, the system could be used by a group of 2-4 students working together on a common project or helping each other on homework. the students could be anywhere, e.g., at homes, dorms, offices or labs.

The Simplicity characteristics are:

  • Invocation and set up: Any user can start up a new Session or join any session by typing one simple command or clicking into an icon. Do not let the user specify values for ENVIRINMENTvariables (e.g., CLASSPATH) IP addresses, etc. commonly required by any systems which impede the use of the system and discourage users from using the system.
  • May function in the absence of some components. We leave it up to the user to determine whether it makes sense to continue participate in the session if some components are not available or functioning (e.g., no camera).
  • The user interface should be kept as simple as possible and avoid giving the user too much control and options (unlike vic and vat interface that present the user with too much details and fine control).

Platform-Independent:The system should be used primarily on WINDOWS and UNIX Platforms, but since it uses JAVA, it should run on other platforms such as APPLEcomputers. We will use JAVA for everything: Interface (swing), communications, data sharing, audio and video (JMF).

Interactive:The system is used live, thus responsiveness critical. The quality of audio should be high, even if we have to degrade the quality of video (e.g., use still images or low frame rate).

Collaborative Environment:The system is not just audio/video conferencing system, it is used primarily to aid collaboration among a group and thus has to provide an array of shared data tools and applications. The most common used tools are shared white board, presentation tool and application sharing.

System Design

Communications Issues

Figure 1:TwoParticipants using direct TCP/UPD between each other. The server is just a mediator that helps each connect to each other.

Figure 2:Three/FourParticipants uses the server as the communication hub. This architecture is simple since it requires very little change on participant code, but thedelay isdoubled.

Figure 3: Three/FourParticipants uses a complete graph to establish direct links among the participants. The delay is reduced, but the participant code is more complex, since each will send every message 2/3 times.

Figure 4:If all Participants are linked with LAN that supports multicast (e.g., two in Va Beach and two in Norfolk IRI sites), we should use multicast for audio and video and for TCP we may use either complete graph or the server.

Figure 5: If Three can use multicast among each other while one can't, we may use the tunneling through the server.

Proposal:

Start with the assumption that all participants can use multicasting. When a new participant P joins, the server conduct aMulticast-test to see if the server can communicatewith P using multicasting. If NOT, the system is downgraded to use unicast. If P leaves, the system upgarded to use multiucast (we assume multicast is of higer grade that unicast). In that sense the system switchesbetween Figure3 & Figure 4dynamicaly.

Super Sever

How Participants knows about the SPICE server?.Either manually(by mail or phone), or automatically bycontacting a super serverthat runs on a well known machine/port. The best solution is to use the automatic solution, but downgrade to use the manual in case the super server is not running or the host where it is running is not reachable.

SPICE server location and startup:

Where the super server should reside?. One possibility is the host of the first participant. In such case, should the server start automatically as an integral part of the first client or start it separately.