Components during Invitation Process

This Page shows which components take part in the Invitation Process (Modifing a Shared Session itself).

 


  • User Interface

This component is responsible for managing all the visual elements in Saros, listening to changes in Eclipse and reacting to actions performed by the local user. In this context, the User Interface allows the Host to add users or projects and displays the needed invitation-dialogs at both sides.


  • Network Layer

This componentis responsible for communicating with other participants by sending and receiving MESSAGES. The main entrance-points of this component are the Interfaces ITransmitter for sending messages and the IReceiver for receiving them.


  • Invitation Management

The Invitation Management is responsible for starting a Shared Session or adding new users or projects to a running session. The Invitation Process itself is divided into the two subcomponents Session Negotiation and Project Negotiation. Both are started by the Invitation Management and are only active while the respective Invitation Process is running.

  • Session Negotiation: The Session Negotiation is responsible for adding a new user to the session.
  • Project Negotiation: The Project Negotiation is responsible for sharing projects with the participants and adding new projects to a running session.

A Negotiation is always performed between the Host and a Client to ensure consistency in a running session. Saros supports the invitation of multiple users at once. In this case multiple Negotiation Processes are started concurrently, one for each invitee.


  • Session Management

The Session Management is responsible for keeping a running session consistent. For more informations see Session Management. After the Invitation Management has established or changed a session the Session Management is informed about the changes so that new users and projects will be minded by Saros going forward.

 

During an Invitation a running session goes on, so that other participants aren't forced to wait until a new user joined for Example. This leads to a couple of rules for joining users that have to be met. See User States for more informations.