Skip to main content

IBM Cambridge Research Center

  Project: Zipper

Primary Researchers: Steven Rohall, John Patterson

A Collaborative User Experience Project:

The Zipper Project is investigating sharing single-user applications, allowing people to collaborate using the applications to which they are already accustomed. Although extremely desirable, built-in collaborative capabilities are rare in familiar products like word processors and spreadsheets, and it is hard to retrofit these features into pre-existing applications. Today, unless an application has collaborative features built in -- as in a shared whiteboard -- there is only one readily-available way to share an application: screen sharing. Screen sharing is accomplished using tools such as IBM/Lotus Sametime to track the changes to a computer screen and transmit them as bitmaps to the other collaborators. Although this approach can handle many applications, it can also be slow and use lots of network bandwidth. Zipper is a tool that makes it possible to share Eclipse-based applications without modifying or even recompiling them. The result is the performance of specially-written collaborative applications, combined with the generality of screen-sharing approaches.

Here's a scenario: Imagine a customer support representative who needs to write a response to an inquiry. Before sending out the email, she would like an expert in the subject area to review it quickly. Using IBM Workplace Client Technologies enhanced with Zipper, the customer service representative could simply share the email editor with others and allow them to edit her email synchronously. The Zipper tool is not limited to email, however-- any tool built on the platform could be automatically enabled for collaboration. Take, for example, the case of a marketing representative who is collaborating with the Legal Department to put together a contract. If they were using a Zipper-enabled workflow, the person in the Legal Department could easily add any relevant process to the workflow directly.

The idea behind Zipper is simple; user-interface events such as mouse clicks or keystrokes from an application are sent to copies of the same application running on other users' machines. When the events are received, they are treated as if they had been generated locally -- keeping all the applications synchronized. There can be a problem with this approach: computers do not have identical operating environments. So if an application tries to access something in the computer environment outside the application itself, for example, open a font file on the local file system, it causes a problem because the other systems may not have the same file in the same place. These problems are known as "externalities" because they are external to the application itself. To overcome this challenge, Rohall and Patterson turned to "environmental replication," replicating the environment among the distributed applications. Although environmental replication is not a new idea, their approach to it is. Since it is virtually impossible to replicate a computer's environment completely, the Zipper prototype first tries to minimize the likelihood of externalities. When that is not possible, Zipper attempts to detect and correct them.

Zipper also offers flexible and dynamic application sharing. Zipper lets users either share the entire application or "unzip" it so that collaborators can control some aspects of interaction individually. For example, even if users are sharing all of the text changes made to a document, some users might want to control scrolling separately so that they can look ahead in the document to parts not being discussed.

The Zipper prototype has demonstrated the viability of sharing text-based editors in Eclipse. It has also given the research team a better understanding of the problems involved in sharing applications.