The Design and Implementation of Collaborative Editing System Based on SaaS

In recent years, collaborative editing system that is an important application of Computer Supported Cooperative Work field has made a lot of progress. But most of the collaborative editing systems have the disadvantages about maintenance and huge investment etc. In order to solve these problems, this paper proposes a collaborative editing system based on SaaS(Software as a Service). The realization of the system includes the following aspects: (1) Introducing and analyzing SaaS cloud computing model; (2) Designing the message model and communication model of collaborative editing system; (3) Setting up the SaaS development environment; (4) Designing and realizing a collaborative editing system based on the SaaS model. The collaborative editing system based on SaaS can not only support the cross-platform operation, but also reduce development cost and it's convenient for the system maintenance and upgrade.


Introduction
Collaborative editing system is a kind of Computer Supported Cooperative Work. It allows multiple users to edit the same document simultaneously through the network. Compared with the single user editing systems, a collaborative editing system can reduce development time, diminish development costs and improve the efficiency of the development process [1] .
In recent few decades, there are three kinds of collaborative editing systems at home and abroad. The first one is the centralized structure system such as Alliance, Quilt and ShrEdit. The second one is the replicated architecture system such as DistEdit and GROVE. The third one is the hybrid structure system such as REDUCE and CoWord [2] . However, there are a lot of shortcomings within the previous collaborative editing systems. For instance, the previous collaborative systems mostly did not support other platforms, and were difficult to maintain systems while requiring huge capital investment. So we have created a collaborative editing system based on SaaS by using the Google App Engine development platform. It can be used on any browser with Java support. The editing system based on SaaS can overcome the limitations of heterogeneous platforms and make the processes of system management and maintenance convenient, while reducing the operative costs.

The introduction of SaaS cloud computing model
The basic concept of SaaS . SaaS (Software-as-a-Service) is a completely innovative software application model that provided by Internet software [3] . In this mode, the SaaS service providers provide all the network infrastructures, softwares and hardware platforms. They are also responsible for the early implementation and the periodic maintenance. Thus, enterprises lease the services from service providers instead of purchasing any software. The Characteristics of SaaS. Compared with traditional service mode, SaaS has many unique characteristics: Convenience: SaaS providers provide all the software and hardware resources, enterprises can use the information systems without having to buy any softwares and hardwares. Meanwhile, the enterprises do not need to build a computer room or recruit IT staffs. So SaaS cloud computing model facilitates enterprise management and maintenance.
Flexibility and scalability: SaaS uses the on-demand and rental software services model, so the users can order software application services according to demand. Compared with the traditional software licensing model, this model offers greater flexibility and expansibility.
Reduction of capital investment: SaaS is a model that based on Internet service. The enterprises need only to pay certain leasing services, Through the Internet we can enjoy hardwares, softwares and maintenance services. SaaS reduces the costs from traditional software licensing and releases the expenditure of softwares and maintenance. The advantages of the collaborative editing system based on SaaS All of the data resources are stored in its own system, lower safety All of the data resources are stored in the servers that provided by SaaS providers, higher safety Update Self renewal, slow Timely

The message model and communication model of the collaborative editing system
The message model of collaborative editing system The message model refers to the transfer mode of messages produced in collaborative editing. The editors log on to the collaborative editing system through the browser. Then they can edit documents by using the editor. After editing, editors click on the "submit" button to send the edited contents to the editing area. If the edited contents need to be changed, the editors can click on the "return to edit" button. So the edited contents will be returned to the editor. Then the editors can edit and submit the edited contents again. As thus, the editors can edit the same documents simultaneously. Besides, they can communicate and learn with each other.

Fig. 2. Communication model of collaborative editing system
The communication model of collaborative editing system refers to the communication mechanism between the client-side and the server-side. The client-side makes a request with Javascript technology. Then the Ajax engine captures the request and sends the request to the server-side by TCP/IP protocol. The server-side makes a response to the request. Then the edited contents and other data can be store into the database by the JDO technology. At last, the response data of the server-side is displayed in the browser by the Ajax technology.

The Design and Implementation of Collaborative Editing System
The construction of SaaS development platform based on Google App Engine. GAE (Google App Engine) is a cloud computing service platform designed for software developers. Google provides super-large computing power and storage spatial. The users can directly run the network applications on Google's cloud computing infrastructure. The GAE platform has the characteristics of stability, free use of 1GB spatial while it supports Java and Python two development language and utilizes the the BigTable database technology. If the projects created in GAE platform have been uploaded to Cloud Server, it is no need for the developers to maintain the web server [4] . Google App Engine Registration: Open the URL: http://appengine.google.com and log in your Google Email. Then click the button of Create an Application to create a cloud computing application based on GAE. After verifying the phone number, you have created a cloud computing application with the prompt "Application Registered Successfully". Then the GAE application will be listed in your brower as Fig. 4

Fig. 4. GAE application
Java development environment configuration: Download and install JDK1.6, then configure environment variables of JDK: JAVA_HOME; PATH; CLASSPATH. If the environment variables already exist, click on the "edit" button to edit, or click on the "new" button to create a new one.
Google Eclipse plug-in installation: Firstly, start Eclipse and select "Help"-> "Install New Software" option in the menu bar. Then click on the "Add" button and write the URL "http://dl.google.com/eclipse/plugin/3.6" in the "Location" area. The number 3.6 is the version of Google Plugin. After that, click on the "Next" button and select the Plugin and SDKs to install.
Uploading project to Cloud Server: Create Web Application Project in the Eclipse platform. When you click on the App Engine deployment button, eclipse will prompt you to enter your email user name and password. Enter your account information and click on the upload button to complete the upload process. Then eclipse will check up the application ID and the version information from the appengine-web.xml file and upload the Web Application Project that is under the war/ directory contents. The whole system can be divided into the following modules: The Editing module, the Communication module, the Control module and the Data Persistence module.

The Design and Implementation of Collaborative Editing System Based on SaaS
Editing module: The Editing module's main feature is that it is equipped with a powerful word processing editor, thus it is able to transform text file format, read, delete, track and receive comments and also can keep detailed records of every modification. If contents must be deleted, the personnel of high level privilege have the right to change previous excision or perform recovery, as the data traces remain.
Communication module: The Communication module is used for all the participants in collaborative editing to establish the connection and exchange information. And not only that, the Communication module allows all editors to submit the edited documents to Cloud Server.
Control module: This module is mainly used to administer access control, authorization management, file access, communication and exception handling.
Data Persistence module: The Data Persistence module uses Java data object (JDO) technology. JDO is used to contain data objects stored in a database operable through a standard interface. Through JDO technology, this module can be used to store the data or, through GQL (Google Query Language), query data. The data may include document information, document contents, user information, workflow control data or other related data.

Summary
This system based on SaaS creates a mutual communication and cooperative editing system through the CSCW concept. This system achieves basic collaborative editing functionality and provides access management, document access and other functions. Because the system is based on SaaS, it is better to use with cross-platform working environments and offers greater flexibility and expansibility. There are still some deficiencies, but we will improve the system to phase them out in the future.