Saros is composed of a number of functional components. The following figure shows the most important components at working during a running Session.
- 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.
- Session Management
This component is responsible for managing a Shared Session and keeping the shared projects in a consistent state across the local copies of all participants. It functions as the core component in a running session and directs communication between all other components.
In general this component takes input from the User Interface, transforms and directs it and afterwards passes the result to the Network Layer. See Session Management for a more detailed view at this component and Activity Sending. The main entrance-point of this component is the ISarosSession-Interface.
- Network Layer
The Network Layer is responsible for communicating with other participants by sending and receiving Activities. The main entrance-points of this component are the Interfaces ITransmitter for sending messages and the IReceiver for receiving them.