Software:Saros

From HandWiki

Saros[1] is an Eclipse plug-in for distributed collaborative text editing that can support five[1] participants at once (typically two or three). It can be used for a variety of purposes ranging from simple remote code review, over Remote pair programming, through to variants of Side-by-side programming with more than two participants.

Functionality

All members of a session have an identical copy of Eclipse projects and Saros keeps these copies in sync as editing progresses. At the beginning of a session, Saros will automatically synchronize the contents of the Eclipse project from the initiator of a session ("host") to the other participants.

During the session, markers in every participant's viewport will indicate who is currently seeing what and who made recent changes where ("awareness information"). Explicit highlighting of text for others is done by means of simple text selection which will be shown in a color that indicates who performed the selection.

Separate audio conferencing (such as Skype) completes the collaboration scenario. Basic whiteboard sketching functionality is built in.

Underlying technology

With multiple concurrent writers, write conflicts can occur. Saros will resolve them consistently by means of the Jupiter algorithm (an architecture for operational transformation).

Saros uses an XMPP/Jabber server for session initiation. It will also use XMPP for subsequent communication if and insofar as some participants cannot be reached directly via IP (typically because their computer is behind a firewall or NAT). However, Saros uses Socks5 to provide low-latency, high-bandwidth connections whenever possible and is able to apply UPnP for traversing the NATs of typical home networks.

User Experience

Compared to cooperation via screensharing, working with Saros has a number of advantages:[2]

  • No latency until typed characters appear for either partner
  • Working with one's own IDE configuration
  • Concurrent work possible if needed

The latter (if used wisely) can be advantageous even in comparison to local pair programming.

License

Saros is an open source project under GPL. It is hosted at GitHub.[3]

See also

References