Title: Bringing Collaborative Editing of Open Document Format ODF Documents to the Web Changyan Chi, Ravi K
1Bringing Collaborative Editing of Open Document
Format (ODF) Documents to the Web Changyan
Chi, Ravi Konuru, Wenpeng Xiao, Danny Yeh IBM
Research
2Outline
- Introduction
- Online ODF service
- DocChord an ODF based online collaborative
editing system - User Feedback
- Future Work
3Introduction
- Open Document Format
- An open XML-based document format specification
for office applications to be used for documents
containing text, spreadsheet, charts, and
graphical element - It is ISO standard for document format with
expanding support by many applications e.g. IBM
Symphony, OpenOffice, RedOffice, etc. - Characteristics
- Easy to extended and customized
- Ubiquity, and interoperation needs
OpenDocument Format (ODF) opens the door to
create new types of applications and solutions
other than traditional office productivity
applications.
4ODF as a Web-based Content Format
- Formatted Document
- Template Oriented in Enterprise
- In Document Bookmark
- Various Storage
- Content Permanency
- Versioning
- Content for reuse or record
- Different Style Document, SpreadSheet,
Presentation
- Html/XHtml
- Content Oriented
- Bookmark for entity URI
- Simple storage
- More about Up to date
- Single style
Formatted document is still used widely in
enterprise, but user need a simpler way to access
the information which stored in the documents and
reuse it!
5Embrace ODF in World Wide Web
- Usage scenarios
- Make online ODF documents responsive and active
through web technologies - Work with online ODF documents using everyday
tools like instant messaging - Integrate annotation and other metadata with
online ODF document - Critical requirements to online ODF
- Represent ODF content in Web
- Compose ODF document in Web app without
heavyweight editor - Make ODF content be a live content
Existing technology makes it possible to mashup
ODF content with other format content, and then
present to Web
6DocChord System Introduction
7DocChord Overview
- Web based collaborative editors are increasingly
required within Web 2.0 era - Keep rich editing features like traditional
standalone editor - Require on-line and collaboration characters
- What is DocChord?
- Web based document-centric collaborative service
to supports group of people to rendezvous
spontaneously to contribute their thoughts to the
web world - Its the first step to enable ODF on-line in
enterprise environment - Whats the advantages?
- OpenDocument Formant as backend document model
- Access control at fine granularity
- Show various awareness on live document
8DocChord Online ODF Services
- Online collaborative office application
- Light-weight and javascript based ODF editor
- Keeping high fidelity document model while
editing in low fidelity look and feel - fine-grained and incremental editing
- adapt rich and simplified editors
- Real-time group editing service
- record meeting minutes
- Embeddable ODF widget for Web 2.0
- ODF editing widget that can be embedded in web
2.0 applications - API for online ODF documents manipulation
- Online ODF document model which can be accessed
by HTML browsers - RESTful API to manipulate ODF document
9DocChord Screen Shots Document Management
Easily online document management Share, control,
export and remove
Template based document creation Document set be
public or private
10DocChord Screen Shots Online Group Editor
11DocChord System Architecture
12A End-to-End Request Example Flow
Operation Synchronizer
DOM Servlet
ODF as a Shared Normalized Data Model with Fine
Grain Identity
Operation and Fine Grain Sync Messages with
Identity and Notification at the level of Data
Model Uses Some of Dojo toolkit
Sync Servlet
13Operation Synchronizer and Model Controller
- Shared data model
- Basic data object model for document sharing
purpose - Use ODF as the reference document definition
- Support W3C core and event model
- Can be transformed to any markup language when
necessary (e.g. HTML) - Model controller
- Host all instanced ODF DOM trees
- Create/Query/Store/Load (Persistence)
- Monitor and propagate changes of ODF DOM
- Base on ODF DOM mutation event
- Wrapped as DOM Message which can be interpreted
and applied in another ODF DOM container - Operation Synchronizer
- Convert editor operations to DOM operations and
vice versa - Convert editor event to DOM event and vice versa
14Transformation Service
- Transformation types
- ODF to XHTML transformation
- Transform whole document when opening a document
by browser (once per user) - Sync message transformation
- XHTML message fragment to ODF fragment
- Notification message transformation
- ODF fragment to XHTML message
- Used technology
- Following standards like XHTML 1.0, OpenDocument
Format 1.0, XSLT StyleSheet 1.0 - Xalan transformation engine and java extension
- Consideration
- Need more extensions to cover complex
transformation - No one-to-one mapping between ODF and XHTML
15Examples of the Mapping between ODF and HTML
16Notification and Multicast Services
- Use JMS Pub/Sub service for sending and receiving
synchronization messages - Scalable
- Extensible (Logging and performance monitoring
services) - Persistence and buffering (Queue messages for
slow polling clients) - Performance (Sub-second response)
- JMS Message Properties - client filters on these
properties for their messages - Document Id
- Namespace
- ODF - changes to the document
- User - changes to the collaborator list
- JMS Message Body - content of the change
- Control Flow
- Changes from the clients are first applied to the
in memory DOM, - Packaged as a JMS Message and send to the JMS
Broker. - Each client polls a Subscription Servlet that in
turn polls the JMS Broker for new messages.
17Managing Distributed Shared Document State
18Design Principles
- The operation which applied to server document
model (DOM-S) is cannot be rolled back - Operations on DOM-S should also be applied to
client document model (DOM-C) - The final sequence of operations applied in DOM-S
and DOM-C should be same
Basic operation executing model
Collaborative editing session between two
clients
19Browser-Server State Synchronization Protocol
- Message header
- Client agent type
- Session identity
- Sync content incremental changes
- 3 basic atom operations Insert, Delete, Replace
- Operation Addressing Schema
- Address (elementId, attrName, textIndex)
- We adopt two address parameters that to describe
one operation position. The first one is called
as target address, and the second one is the
reference address. - Execution sequence and operation boundary
- Boundary (lower/upper bounds) can be used for
potential conflict detection - Execution sequence guarantees an unique execution
steps among all participant sites which
generating under server side like time stamps - Participant status
- Participant current focus
20An Example of HTML Model Snippet
View from users perspective
Hello, DocChord family! Today is Monday. Its a
raining day. We have a call. The topic is foil.
We also need think about our next steps. Any
ideas are welcome!
HTML Document Model fragment
ltpgt ltspangtHello, DocChord family!lt/spangt lt/pgt
ltpgt ltspangtToday is Monday!lt/spangt
ltspangtIts a raining daylt/spangt ltspangtWe
have a call.lt/spangt ltspangtThe topic is
foil.lt/spangt ltspangtWe also need think about
our next steps.lt/spangt lt/pgt ltpgtltspangt Any ideas
are welcome lt/spangtlt/pgt
0
Sub of DOM tree
A continue number to names the node at same level
, the first one is 0, and the last one is the
node num1. The start and end node are virtual
node for further usage
21Case 1 Single User Editing
Sent message fragment
ltexecutiongt ltserverSeqgt1lt/serverSeqgt
ltupperBoundgt221lt/upperBoundgt
ltlowerBoundgt223lt/lowerBoundgt lt/executiongt
Received message fragment
ltexecutiongt ltserverSeqgt2lt/serverSeqgt
ltupperBoundgt221lt/upperBoundgt
ltlowerBoundgt223lt/lowerBoundgt lt/executiongt
.. ltspangtToday is Monday!lt/spangt
ltspangtIts a raining day, right?lt/spangt
ltspangtWe have a call.lt/spangt ..
- The server will return un-changed boundary
- serverSeq will be changed to server sequence
22Case 2 User A and User B have no-Conflict Editing
User A modifies a node
User B inserts a new sentence
23Case 3 User A and User B have Conflicting Edits
Sent message fragment by A
ltexecutiongt ltserverSeqgt1lt/serverSeqgt
ltupperBoundgt221lt/upperBoundgt
ltlowerBoundgt223lt/lowerBoundgt lt/executiongt
User A modifies a node
Sent message fragment by B
ltexecutiongt ltserverSeqgt1lt/serverSeqgt
ltupperBoundgt222lt/upperBoundgt
ltlowerBoundgt223lt/lowerBoundgt lt/executiongt
User B inserts a new sentence
24Group Undo-Redo
- Undo/Redo is a critical and natural requirement
in group editing system - Users are especially afraid of destroying
artifacts created by other participants in group
situation - Timestamps and group undo-redo handling
- DocChord supports local group undo which means a
user undoes the last interaction step issued by
the local user - Central server maintains execution sequences as
the timestamps - Participants clients handle undo/redo
interactions sent by any user - A user can only undo their operations up to the
point where other users operations are not
affected
25Feedback and Future Works
26DocChord has been Deployed within IBM Internal
Usage
Oct.
1642
The number of documents with at least 2
participants is 358 The number of active
documents in the last 15 days (modified) is
355 The largest number of participants observed
on same document is 70
Sep.
1517
Aug.
1129
Jul.
807
Total User number
27User Feedback - Pro
- Another great idea that changed my life
- simplicity in concept..
- something that not many other tools offer at the
moment - The real-time capabilities of co-creating and
co-updating the same document by multiple people
is just UNIQUE! AWESOME tool! - value to internal teams within IBM as well as
teams comprised of IBMers, Customers, Partners - ..using it to help develop technical documents
for IT solutions we have been developing. This
tool is very handy because our developers are all
scattered around the world.
28User Feedback - Con
- Security for confidential or restricted documents
- Protect portions of my document from editing by
others. - Can it scale to a large number of users?
- Performance not good over slow internet
connections. - Support more other browsers, not only IE and
Firefox - Un-supported image formats (e.g. WMF)
- Un-supported document formats (e.g. spreadsheet)
29Enterprise and More Team Features
- Access control
- Link with enterprise user directory for right
setting - Partition locking for different users
(improvement) - Public and private documents in enterprise
(improvement) - Connecting to the enterprise functions
- Leverage organization structure, like management
chain - Pivot browsing
- Browse user profile and other information from
one point - Context based on-line chatting
30Issues and Future Work
- Issues
- Dependencies are related with browser limitation
- High fidelity support
- Rich format vs. simple format
- Performance consideration
- Improvement for word processing
- More adaptive memory management policies
- Off-loading more function into the browser
- New functions
- Connecting to the enterprise functions
- Link with business process
- Link with business database
- Effective notification when document is changed
RSS/ATOM
31Question?