Collaborative Systems - Project

Web Support for Collaborative Software development

- Naveen Koorakula

Sriram Sellappa

List of papers reviewed.

Collaboration among geographically spaced software developers can be greatly enhanced by making use of the pre-existing infrastructure provided by the web. The web is an effective infrastructure for collaboration because of its widespread use, availability and platform independence. In order to make the collaborative application attractive and usable by the current web user community, it is considered desirable that, the application require minimal changes to the web standards. We propose to implement a collaborative software design tool to demonstrate the features of the web useful for collaboration.

The collaborative tool can support various levels of participation depending of the facilities available at the participating ends. For example, a desktop user can participate actively in the collaborative process, while the user of a hand-held device can be a passive observer due the limited processing ability available.

In collaborative software development, information exchanged among the collaborators is structured. XML provides a good format for structured documents. It is universally accepted and supported by various software, which would provide support for viewing and importing the XML document used in our application. Thus XML is a good choice for representing information exchange among the collaborators.

In this project, we aim to demonstrate the power of XML for information exchange in collaborative software. Specifically, we plan to implement a tool for collaborative software design, which will enable users to collaborate in the design phase of the software development. The various design parameters of the software are represented in XML format and this XML document is collaboratively edited. This could be done using java applets or HTTP 1.1 compliant browsers. With local processing provided by the applets, a higher degree of synchrony can be supported for the collaborators using java applets. The degree of synchrony provided by the browser is lesser compared to the applets. One more advantage of the applet-based approach is that the information exchange among collaborators ca be done efficiently, by communicating only the changes instead of the entire document as done by the browser. The collaborators with access to sufficient processing power to support the Java processing environment will participate actively in the collaborative design process. The other collaborators with minimal processing power (hand-held devices) participate by passively viewing the shared document.

We plan to make extensive use of the existing software support in Java for the XML format. Examples of existing software in Java include XML parser, XML browser, etc.

Since we are working with the web as the medium for collaboration, providing tight coupling could degrade the response time. Hence we plan to provide rather loose coupling. The shared document being edited collaboratively contains the design details of various components of the software being designed collaboratively. For example, the document will contain the specification of the various classes (fields and methods).


 
 

The working of the system is as follows:

    1. Download shared document from HTTP server (GET).
    2. Upload edited document to CSD server (PUT).
    3. CSD server updates the shared document.
    4. Browser client gets the updated document.
    1. Download shared document from HTTP server (GET).
    2. Establish connection with CSD server and send/receive updates.
    3. CSD server updates the shared document.
    1. Get the shared document.