Techniques in Saros

Basically the following three techniques are used to develop Saros:
  • Java as programming language
  • XMPP as communication layer
  • Eclipse as target development environment to enhance


Since Saros is based on XMPP, it uses a server based architecture. Communication between clients is done by XMPP messages which are send over XMPP servers. Exchanging client actions (modifications, selection, project file operations,...) is done by wrapping activity descriptions in XMPP messages and sending them to other clients. An exception is the file transfer. Due to performance reasons it uses a peer to peer transfer. If this direct connection fails, Saros uses a fallback to file transfer over XMPP servers.

Software Architecture

Saros uses a layer architecture and consists of eight major modules as you can see in the image below. The Whiteboard is an additional project which expands the functionality of the Saros plug-in.

Shared SessionConcurrency ControlInvitationNetwork LayerUIEclipse Bridge


We use PicoContainer to manage our component instances using the dependency injection design pattern. The resulting dependency graph which represents the structure of all classes which are singletons in Saros can be seen in this diagram.