Saros (software)
Encyclopedia
Saros is an Eclipse
Eclipse (software)
Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system...

 plug-in for distributed collaborative text editing that can support arbitrarily many participants at once.
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.

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.

With multiple concurrent writers, write conflicts can occur.
Saros will resolve them consistently by means of the Jupiter algorithm.
Separate audio conferencing (such as Skype
Skype
Skype is a software application that allows users to make voice and video calls and chat over the Internet. Calls to other users within the Skype service are free, while calls to both traditional landline telephones and mobile phones can be made for a fee using a debit-based user account system...

) completes the collaboration scenario.
Basic screen sharing
Screen Sharing
Screen Sharing is a VNC client by Apple Inc. included as part of Mac OS X v10.5. It allows remote observance or control of any Macintosh machine on the local network that has Screen Sharing activated. It may also be used over the Internet via iChat...

 and whiteboard sketching functionality are built in.

Saros uses an XMPP/Jabber server for session
Session (computer science)
In computer science, in particular networking, a session is a semi-permanent interactive information interchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user . A session is set up or established at a certain point...

 initiation.
It will also use XMPP for subsequent communication if and insofar as some participants cannot be reached directly via IP
Internet Protocol
The Internet Protocol is the principal communications protocol used for relaying datagrams across an internetwork using the Internet Protocol Suite...

 (typically because their computer is behind a firewall
Firewall (computing)
A firewall is a device or set of devices designed to permit or deny network transmissions based upon a set of rules and is frequently used to protect networks from unauthorized access while permitting legitimate communications to pass....

 or NAT
Nat
Nat or NAT may refer to:* Nat., an abbreviation for Natural* Nat , a Burmese spirit worshipped in Myanmar in conjunction with Buddhism...

).
However, Saros uses Socks5 to provide low-latency
Latency (engineering)
Latency is a measure of time delay experienced in a system, the precise definition of which depends on the system and the time being measured. Latencies may have different meaning in different contexts.-Packet-switched networks:...

, high-bandwidth connections whenever possible and is able to apply UPnP
Universal Plug and Play
Universal Plug and Play is a set of networking protocols for primarily residential networks without enterprise class devices that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence...

 for traversing the NATs of typical home networks.

Saros is an Open Source project under GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

.
It is hosted at SourceForge
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...


See also

  • Collaborative editing
    Collaborative editing
    Collaborative editing is the practice of groups producing works together through individual contributions. Effective choices in group awareness, participation, and coordination are critical to successful collaborative writing outcomes. Most usually it is applied to textual documents or...

  • Pair programming
    Pair programming
    Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, types in code while the other, the observer , reviews each line of code as it is typed in...

  • Side-by-side programming (Alistair Cockburn)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK