Software framework developed by google for real time collaborative editing
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up. Connect and share knowledge within a single location that is structured and easy to search. Multiple document viewers are able to simultaneously read and change a document's content so that one user's updates are instantly applied and visible to all other viewers.
Does this model for collaborative editing present a viable alternative to the current source control systems generally used by teams of software developers working on a single code base? Related but less general. Visual Studio. Net has a plugin called wave-vs. Eclipse has two plugins called DocShare and Saros , that allow real-time collaborative editing of documents DocShare or projects Saros.
Obviously pair programming. Off the top of my head I can't think of any immediate show-stoppers when considering the improvement the GDocs experience brings, and extending that improvement to collaborative coding. I think the collaborative approach would work best if multiple people are working on sections of code that can be considered 'close'. It can also improve round-trip time for changes , as you don't have to wait for a commit-update cycle to have the latest version.
They are complementary. They both serve the same purpose of streamlining contributions from team members. But there is a fundamental difference in their approach: Current VCS'es mostly document snapshots of a project, while collaborative editing documents fine-grained changes , capturing the thought process of a developer.
Furthermore, commits in a VCS are neatly organised as a change set. In a collaborative environment, on the other hand, you can't even ensure the code will compile at any moment before completion of the whole project, because someone else might always be in the middle of writing a line of code.
Change is continuous. Therefore it might not be possible to unravel the contributions into change sets. Sign up to join this community.
Real-time operation is an important aspect to be considered in the design of collaborative editors as users should be able to see the effects of their own actions immediately and those of other users as soon as possible. We will achieve this through web sockets. The problem of concurrency in collaborative editing is a well researched problem. People have suggested turn taking algorithm Greenberg, allowing only one active participant at a time.
Such an algorithm lacks concurrency and locks the document. Other approaches like locking Greenberg and Marwood, guarantees that users access objects in the shared workspace one at a time. Concurrent editing is allowed only if users are locking and editing different objects. The operational transformation approach has been identified as an appropriate approach for maintaining consistency of the copies of the shared document in real-time collaborative editing systems Google Wave, a real-time collaboration tool which has been in open beta for the last several months.
The treeOPT algorithm Ignat and Norrie, improves upon operational transformation by considering hierarchical representation of the shared document in their research paper. Conceptual framework: Methodology In order to ensure high responsiveness we will be using a replicated architecture where users will work on their own copy of the shared document.
Only changes done are transmitted to other users. Here is the control flow of such architecture: Each collaborator will hold a copy of the shared document along with the server.
Whenever any of the shared copies will be edited, operations are calculated and transmitted to the server. To ensure real time transmission, we will leverage the power of web sockets. In case different users are updating different part of the same document, server applies the changes to its copy and forwards the changes to other collaborators.
In case different users are trying to update the same part of document for e. Now the actual problem starts. Suppose server applied operation b on the document and client applied operation a on the document. Operational transformation adjusts operation a with respect to b and operation b with respect to a.
The final results must be such that the adjusted operations cause the diverged copies to converge. Using operational transformation on a linear representation of text is not very efficient. We will represent the text in hierarchical order Using operational transformation on a linear representation of text is not very efficient. We will represent the text in hierarchical order. Toggle navigation. Software development with real-time collaborative editing Author s Goldman, Max, Ph.
Massachusetts Institute of Technology. Download Full printable version 2. Other Contributors Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.
Advisor Robert C. Terms of use M. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission.
See provided URL for inquiries about permission. Metadata Show full item record.
0コメント