A Generic Transformation Approach - Semantic Scholar

19 downloads 345119 Views 1MB Size Report
graphics editor furnishing shared drawing) is a costly and complex endeavor. .... Orion) and graphics editors (e.g. Adobe Photoshop Express,. SVG-edit) featuring ..... uation schedule comprising (1) a 5 min editor tutorial, (2) a. 15 min shared ...
WWW 2012 – Session: User Interfaces and Human Factor

April 16–20, 2012, Lyon, France

Exploiting Single-User Web Applications for Shared Editing - A Generic Transformation Approach Matthias Heinrich

Franz Lehmann

SAP AG SAP Research Dresden

SAP AG SAP Research Dresden

[email protected] Thomas Springer

[email protected] Martin Gaedke

Department of Computer Science Dresden University of Technology

Department of Computer Science Chemnitz University of Technology

[email protected]

[email protected]

ABSTRACT

1. INTRODUCTION

In the light of the Web 2.0 movement, web-based collaboration tools such as Google Docs have become mainstream and in the meantime serve millions of users. Apart from established collaborative web applications, numerous web editors lack multi-user support even though they are suitable for collaborative work. Enhancing these single-user editors with shared editing capabilities is a costly endeavor since the implementation of a collaboration infrastructure (accommodating conflict resolution, document synchronization, etc.) is required. In this paper, we present a generic transformation approach capable of converting single-user web editors into multi-user editors. Since our approach only requires the configuration of a generic collaboration infrastructure (GCI), the effort to inject shared editing support is significantly reduced in contrast to conventional implementation approaches neglecting reuse. We also report on experimental results of a user study showing that converted editors meet user requirements with respect to software and collaboration qualities. Moreover, we define the characteristics that editors must adhere to in order to leverage the GCI.

In 2011, Gutwin et al. stated that the “standard web browser is increasingly becoming a platform for delivering rich interactive applications” [17]. The rise of the web browser as application platform is associated to its unique capabilities such as instant application consumption, deviceagnostic provisioning and ease of maintenance. However, the limitations of the web browser in areas such as protocol support, sandbox restrictions or browser API inconsistencies challenge web developers. Moreover, groupware applications enabling numerous users to jointly edit documents (e.g. Google Docs [16]) demand sophisticated features such as real-time synchronization, conflict resolution or workspace awareness. Thus, implementing web-based groupware systems (e.g. a word processor capable of shared editing or a graphics editor furnishing shared drawing) is a costly and complex endeavor. For instance, the real-time collaboration suite Apache Wave [14] primarily developed by Google encompasses more than 200 000 lines of Java code [26]. A second example demonstrating the enormous implementation effort is the web-based business process modeler called SAP Gravity [30]. SAP Gravity consists of an editor accounting for 180 000 lines of JavaScript code and a synchronization server adding another 100 000 lines of Java code. One convenient means to lower the development effort for groupware systems is the transparent adaptation approach pioneered by Sun et al. [34]. Transparent adaptation advocates the idea of converting new or existing single-user applications into collaborative multi-user applications. The transformation process requires a collaboration adapter and a generic collaboration engine. While the collaboration adapter records, converts and transmits operations, the generic collaboration engine merges conflicting operations and synchronizes all document copies. The approach reduces development effort since the generic collaboration engine may be reused by arbitrary applications. Another approach tailored for web applications was proposed by Lowet and Goergen [23] which was especially suited for co-browsing scenarios. The task of synchronizing multiple views was tackled through an output synchronization mechanism, i.e. once the document object model (DOM) was modified through a UI event (e.g. mouse click) the DOM mutation event (e.g. DOM node removed) is recorded, distributed and replayed among all application instances. Since the output synchro-

Categories and Subject Descriptors D.2.11 [Software Engineering]: Software Architectures— Domain-specific architectures; H.5.3 [Information Interfaces and Presentation]: Group and Organization Interfaces—Computer supported cooperative work, Synchronous interaction, Web-based interaction

General Terms Design

Keywords Groupware, Shared Editing, Web Applications

Copyright is held by the International World Wide Web Conference Committee (IW3C2). Distribution of these papers is limited to classroom use, and personal use by others. WWW 2012, April 16–20, 2012, Lyon, France. ACM 978-1-4503-1229-5/12/04.

1057

WWW 2012 – Session: User Interfaces and Human Factor nization mechanism relies exclusively on the standardized DOM Core [20] and DOM Events specification [32], the solution may be applied to arbitrary web applications. Although the aforementioned solutions may speed up the time-consuming task of implementing a web-based groupware system, they exhibit a number of limitations. First, the presented transparent adaptation scheme [34] entails the implementation of a collaboration adapter. If the transparent adaptation approach is adopted naively i.e. the collaboration adapter leverages application-specific APIs, the reuse of the adapter is not permitted and a re-implementation for each application is required. Second, the output synchronization mechanism [23] lacks a conflict resolution scheme. Consequently, shared editing scenarios where multiple users edit the same document simultaneously are not supported. To address these limitations, we propose a novel generic collaboration infrastructure (GCI) for web applications comprising a generic collaboration adapter and an operational transformation engine. While the generic collaboration adapter is capable of tracking DOM manipulations (e.g. create, delete, and modify DOM elements), the operational transformation engine provides a synchronization service as well as a conflict resolution mechanism based on the prevalent concurrency control algorithm called operational transformation (OT) [12]. Besides implementing the proposed GCI, we have validated the transformation of single-user applications into multi-user applications with two distinct webbased applications: the graphics editor SVG-edit [2] and the word processor CKEditor [7]. After transforming SVG-edit and CKEditor, the two collaborative editors were evaluated conducting an extensive user study. The main contributions of this paper are three-fold:

April 16–20, 2012, Lyon, France

Figure 1: User interface of the single-user word processor CKEditor [7]

2. MOTIVATING EXAMPLE Web-based groupware systems have proven to support geographically dispersed teams in a variety of tasks. For example, teammates can jointly create documents, spreadsheets or presentations leveraging web-based office suites such as Google Docs or Microsoft Office Web Apps. However, numerous web-based editors provide solely single-user support without shared editing capabilities. For instance, there are word processors (e.g. Adobe Buzzword, CKEditor), integrated development environments (e.g. Cloud9 IDE, Eclipse Orion) and graphics editors (e.g. Adobe Photoshop Express, SVG-edit) featuring only single-user support. Transforming these editors into collaborative multi-user editors could significantly broaden the application scope since converted editors enrich existing capabilities with shared editing support. Hence, multiple users may work simultaneously leveraging converted editors. One prominent single-user editor is the open source project CKEditor [7] depicted in Figure 1. CKEditor is a word processor offering common features such as text formatting, image insertion or text alignment. In contrast to standalone office suites (e.g. Google Docs), CKEditor is primarily meant to be embedded in web pages. Since its first release in 2003, CKEditor has been widely adopted resulting in 3.5 million downloads [8]. The large CKEditor customer base consisting of enterprises, nonprofit organizations and individual users is also confronted with joint tasks where shared editing capabilities could speed up the task execution. However, introducing shared editing facilities in an established open source project with a JavaScript code base of more than 110 000 lines of code is not a trivial task. Amongst other things, the traditional development approach comprises the following tasks: (1) implementing a state-of-the-art conflict resolution scheme, (2) setting up a communication infrastructure to distribute synchronization messages and (3) intercepting as well as serializing user input in a dedicated messaging format. In Section 4 we demonstrate how the proposed generic collaboration approach can transform CKEditor into a collaborative multi-user editor. Additionally, we show in Section 5 that the transformed CKEditor meets user requirements with respect to accepted software qualities (e.g. usability, efficiency) and collaboration characteristics (e.g. coordination).

• We propose a generic transformation approach for web applications capable of turning single-user editors into multi-user editors supporting shared editing. • We report on a user study with 30 participants assessing collaboration qualities in shared editing and shared drawing scenarios leveraging the collaboration-enabled CKEditor and the converted SVG-edit editor. • We carve out the limitations of the generic transformation approach and derive crucial characteristics of web applications that are required in order to apply the generic conversion scheme. The rest of this paper is organized as follows: Section 2 provides motivating examples introducing two single-user editors suitable for shared editing scenarios. Section 3 elaborates on the challenges designing a generic transformation approach for web editors. Section 4 illustrates an architecture and an implementation realizing the generic transformation approach and the process of converting existing single-user editors into multi-user editors. Section 5 shows the results of the conducted user study evaluating the collaboration qualities of two converted editors. Section 6 discusses the limitations of the generic transformation approach and derives requirements for convertible web applications. Section 7 compares our work to the state-of-the-art and Section 8 exhibits conclusions as well as future work.

1058

WWW 2012 – Session: User Interfaces and Human Factor

April 16–20, 2012, Lyon, France Site s1

Site s2

ABC

ABC

o1 = ins('a', 2)

o2 = ins('b', 3) AaBC

o1

o2

ABbC

AaBC

ABbC

AaBbC

AaBbC

o2' = ins('b', 4)

o1' = ins('a', 2)

Figure 3: Conflict resolution example using the operational transformation algorithm Docs [16] and SAP Gravity [30]. One key characteristic of OT is that each OT implementation is tailored to a predefined set of operations. Therefore, it is unsuitable for generic applicability since each editor employs its own set of operations. For example, while a word processor may require an operation to insert and delete a character, a graphics editor may demand a create shape as well as a remove shape operation. To illustrate the link between the OT conflict resolution scheme and the number of editor operations, suppose the following example: a simple text editor exclusively supports the operation insert character ins(ci , xj ) where ci denotes the character to insert and xj the insertion index. In the scenario depicted in Figure 3 two users simultaneously insert a character in the document ABC at different index positions. After the local operations o1 = ins( a , 2), o2 = ins( b , 3) were applied to the local documents, operations o1 , o2 are transmitted to the other site in order to reconcile document copies. Note that the naive replay of the local operations o1 , o2 would result in two diverging documents containing AabBC and AaBbC. The OT conflict resolution scheme transforms operations o1 , o2 according to the function f

Figure 2: User interface of the single-user graphics editor SVG-edit [2] Besides shared editing, shared drawing represents a second important collaboration domain. Therefore, we selected a graphics editor capable of producing scalable vector graphics (SVG). The single-user editor called SVG-edit [2] is another widespread open source project supported by a very active community (i.e. SVG-edit has more than 18 000 downloads of its current release version 2.51 and a development team of 17 committers and contributors). SVG-edit provides common graphics tools to accomplish typical drawing operations such as create lines, ellipses, rectangles, text, fill shapes or modify stroke styles. The tool palette as well as the canvas of the SVG-edit is shown in Figure 2. Like CKEditor, SVG-edit is also implemented in JavaScript accounting for approximately 30 000 lines of code. Again, supporting realtime collaboration in a project of this size is a demanding endeavor since the same implementation steps are required as for the conversion of the CKEditor. In the following section, we will present the challenges that emerge devising a GCI which allows to efficiently transform single-user editors into multi-user editors.

3.

f (o1 , o2 ) = {o1 , o2 } ⎧ ⎪ ⎨x1 >x2 f (ins(c1 , x1 ), ins(c2 , x2 )) = x1