|
|
Log in / Subscribe / Register

Collabora Online

June 29, 2016

This article was contributed by Adam Saunders

Those interested in free-and-open-source alternatives to proprietary online collaborative document-editing software (such as Google Docs or Microsoft's Office Online) have a number of options to choose from. For simple collaborative text editing, there are solutions like Etherpad and Gobby. But for a more comprehensive suite for writing documents, crafting slideshow presentations, or making spreadsheets, the only game in town had been OnlyOffice or, more recently, the Open365 beta.

Another option has recently arrived with the announcement of a 1.0 release and demo version of Collabora Online, which is an adaptation of LibreOffice for the cloud. Collabora Online's origins date back to October 2011, with a demonstration [WebM video] at a conference by long-time LibreOffice developer Michael Meeks. This eventually led to the release of the Collabora Online Development Edition (CODE) in December 2015.

Accessing the demo requires filling out a brief form. Diving into it reveals a promising suite of software, but one currently lacking in many features that users may take for granted. There are examples of slide presentations, spreadsheets, and text documents on the home page; clicking on the Collabora Online link in the dropdown menu leads to options to create a new document, spreadsheet, or presentation. Using the demo is something of a bare-bones experience. The document editor feels like a traditional "What You See Is What You Get" (WYSIWYG) editor, but a number of features that users may expect are not there. For example, there's no automated spell-checking available, nor is there an option for setting paragraphs to have double-spacing.

[Word processing]

A reviewer of the document (for example, a co-author collaborating on a draft of an academic paper) can mark up the text with comments, but there is no comprehensive "track changes" option, which is a hindrance. Normally, collaborative tools allow an individual to make direct deletions and additions to the text while having those changes clearly marked, so the original author can see exactly what changes were made—and accept or reject said changes as they wish. This type of editing is essential to collaborative online document crafting (roughly analogous to using diff on source code) and it was surprising to not see it in a 1.0 release. Documents can be exported to PDF, ODT, DOC, or DOCX formats.

The slideshow presentation editor is similarly minimal. One can add, delete, or clone slides, insert graphics and tables into slides, and run the final presentation in full-screen mode for displaying to an audience, but that's it. There is no spell-check, there are no mechanisms for fancy transitions from slide to slide, there is no clip art gallery included for those needing images to insert into the presentation, nor is there a video export option to allow for easy publishing on the Web (as, say, an HTML5 video). One can export the final project into PDF, ODP, PPT, and PPTX formats.

[Presentation]

Spreadsheet editing also has the basics. One is greeted with a grid of cells to input and manage data, as usual. There can be up to three worksheets for each spreadsheet instance; other programs (including LibreOffice itself) allow for many more. This is limiting for a number of use cases, such as businesses that need to track several different accounts, types of inventory, or other items that cannot be easily categorized into three sheets of data.

Furthermore, the user interface to the spreadsheet functions is lacking. There is a button for a SUM() function allowing users to add up the values in a range of cells. But other functions, such as statistical, financial, conditional, and engineering functions, must be input manually, unlike other spreadsheet programs. The help menu does not provide an explanation of how to use these functions, so they must be learned elsewhere, such as from LibreOffice Calc. PDF, ODS, XLS, and XLSX formats are available for exporting.

[Spreadsheet]

Given that this is the early days of a new product, it is understandable that there may be missing features. An email exchange with Meeks revealed that the main bottleneck for reintroducing these features is realtime collaboration: "While the functionality is all there under the hood, there are a number of compromises here around how much UX [user experience] surface we can expose before we implement collaboration: the more UX operations, the bigger the collaboration problem matrix gets. We plan to focus on collaboration before expanding the UX to include lots of the dialogs." One can begin exploring this collaborative editing in the 1.0 demo by connecting to the same document from two different browsers. Documents can be marked up with comments or textual/graphical changes in realtime while the other browser shows the changes remotely.

Those interested in getting involved can download the Collabora Online Development Edition (CODE): a virtual machine image based on openSUSE with the latest revisions to the Collabora Online codebase, running in a custom ownCloud instance supplied with it. This allows developers to work on the code while offline.

Collabora Online is made of five major pieces: most of the LibreOffice codebase, LibreOfficeKit, which is an API that allows adding the vast majority of the LibreOffice code to the browser, a WebSocket daemon to manage and serve traffic to an online instance of the office suite, a Node.js back-end for realtime document rendering, and an ownCloud plugin. Despite the turmoil for ownCloud following a fork of the project, it continues to be actively developed, with a recent 9.1 beta release. The two projects are closely aligned; Collabora has just announced the release of Collabora Online for ownCloud Enterprise.

The client-side component is written in JavaScript, and the LibreOfficeKit API is based on Leaflet, an open-source JavaScript library for interactive maps. Here, the various elements of the office-software instances, such as the toolbar, timestamps of the last modification to the files, and the address of the WebSocket hosting server, are analogized to mapping information. The API translates user modification of the document into C++ operations, such as saveAs(), loadDocument(), and paste(), which are sent to the server hosting the LibreOffice instance via "loolwsd", the LibreOffice OnLine WebSocket Daemon. The daemon updates the document on both the client and server in realtime. The client-side code is permissively-licensed under the "two-clause BSD" license, while the server-side code is copylefted under MPL 2.0.

Collabora intends to make money from subscription and service contracts, which would be used to fund further development. Collabora offers to provide customization to the software as needed by customers, such as for user-interface changes to incorporate a corporate logo.

Contributors to Collabora Online, including those wanting to submit patches, are encouraged to join the IRC chat on #libreoffice-dev at irc.freenode.org, or to subscribe to the LibreOffice mailing list. The project uses Bugzilla for bug tracking and Gerrit for code review. Writers are encouraged to help with documentation on the project's wiki. The code itself can be found at a freedesktop.org repository; API documentation is available as well.

While there is plenty of room for the project to grow, it is likely that Collabora Online will soon become an attractive, full-featured open-source office suite. The ability to do basic editing is already there, which may be enough for some. With the project backed by a multinational business boasting over ten years of experience, millions of lines code written, and clients including some of the largest information technology corporations in the world as well as the UK government, it will be exciting to see what is in store for the future.

Index entries for this article
GuestArticlesSaunders, Adam


to post comments


Copyright © 2016, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds