この記事は、2021年8月28日(土)に行われたオープンデベロッパーズカンファレンス(ODC)2021 Onlineでのセミナーを記事化したものです。

日本UNIXユーザ会の榎と申します。

今日はCollabora Onlineという、LibreOfficeを使ったサーバの話をします。アジェンダとしては以下を予定しています。

  • Collabora Onlineについて
  • メリットと使い方
  • 構築方法(いくつかあります)
  • コミュニティの状態など

この記事では、アジェンダの前半2つについて解説します。後半2つは次回の記事で説明します。

Collabora Onlineについて

Collabora Onlineは、ブラウザで編集できる、オープンソースのクラウドオフィスソフトです。同時編集や共同編集をしたいときに適しています。一言で言うと、GoogleドキュメントとかOffice365みたいなイメージです。

ただ、開発元であるCollabora Productivity社やCollabora Onlineのコミュニティがサービスをホストしてるわけではないので、自分でホストするか、どこかのホスティングベンダーを探す必要はあります。世界中に何社かCollabora Onlineのホスティングをやっているところがあるので、それを使う手もあります。

それから、ファイル管理機能がないので、他のサーバと組み合わせる必要もあります。下の画像はCollabora Onlineを使っているところですが、これはNextcloudと組み合わせています。ヘッダの部分(青いところ)がNextcloud、そこから下がCollabora Onlineで、見た感じはLibreOfficeとほぼ一緒です。機能もLibreOfficeと主な部分はほぼ同じですが、それをブラウザで編集できるのが大きなメリットで、同じURLで他の人も同時に見て、同時に書き込むことができるのがウリです。下の画像はLibreOfficeのリリースノートのレビューをしているところで、こういうときにすごく便利です。

Collabora Onlineの仕組み

Collabora Onlineの仕組みを簡単に説明すると、バックエンドはデスクトップ版のCollabora Office(つまりLibreOffice)で描画しています。そのレンダリングした結果を画像にして、タイルに分割して送るということをやっています。地図サービスとか地図アプリと同じような感じです。そして、クライアント側のJavaScriptでこれをいい感じに表示しています。Leaflet(地図サービスなどでよく使われるJavaScriptライブラリ)なども使っています。

Collabora Onlineの歴史

Collabora Onlineは結構昔からあったらしく、2014年か2015年ぐらいにCollabora Productivity社がお客さん向けに開発したものが元になっています。それをコミュニティに持ってきて、LibreOfficeのプロジェクトでOSSとして開発を続けてきたという感じです。なので昔はLibreOffice Onlineと呼んでいました。

それが2020年にフォークして、リポジトリがLibreOfficeからGitHubに移動し、そこで開発する形になりました。現在はLibreOffice Onlineのリポジトリは停止していて、実質的にCollabora Onlineに一本化されています。ちなみにAndroid版とiOS版に関しても一緒にフォークして、GitHubの方で開発されています。

Collabora Onlineのメリットと使い方

Collabora Onlineのメリットはたくさんありますが、私は以下の3つを特に推したいと思っています。

メリット1:共同編集、同時編集

先ほどもちょっと触れたんですけど、同時編集とか共同編集っていう形でコラボレーションワークしたいときに一番威力を発揮します。あとは、PCだけでなく他のデバイスでも見たいとか、そういうときにも結構便利で、先ほど出てきたAndroid版とかiOS版、さらにブラウザなど、どんなデバイスでも見たり編集したりすることができます。リアルタイムに一緒に作業ができるんで、いまどきだとこういうのが必要だなという感じです。昔みたいに手元で作業してメールでファイルを送り合うのはちょっとつらくなってきたように思います。

これらのメリットは基本的にGoogleドキュメントやOffice365と同じような利点ですが、それがオープンソースでできるのがいいところかなと思います。

メリット2:データ主権、セキュリティ(プライバシー)

2つ目のメリットがデータ主権という話なんですが、自分たちでファイルとかデータをコントロールできることがすごく大事になってきてるなというふうに思います。なぜかというと、クラウドサービスはすごく便利なんだけど、データを人質に取られているという側面がどうしてもあるんですね。仕方ないときもあるんですけど、それが困るときもあります。

こういうときに、自分たちでCollabora Onlineのサーバを立てて自分たちでコントロールすれば、そこの問題は回避できます。これはオンプレでやらないといけないわけではなく、クラウドを使ってもよくて、いろんなパターンで使い分けをすることができます。例えば海外のクラウドがこわいんだったら国内のクラウドを使えばいいし、パブリッククラウドを使っても、プライベートクラウドを使ってもいいです。それが自分で選べるのが非常にいいことかなと思います。

日本以外の国では、政府がデータにアクセスできる枠組みを持っているケースが結構あるようで、例えばアメリカや中国では、法律を根拠にベンダーに対してアクセスさせろと言うことができて、しかもそれはユーザに通知されるわけではないので、見られてるかどうかさっぱりわからないというのが現状だと思います。つまり、ここで言っているセキュリティというのはクラッキングのリスクではなくて、合法的に見られてるっていうリスクの話です。

で、ヨーロッパを中心に、そういうのはまずいよね、自分たちでコントロールできないとまずいよねということで、データ主権とかデジタル主権みたいなことがここ何年か言われだして、大きな社会問題になりつつあるというふうに認識しています。それに対する答えとして、Nextcloudを使ったりCollabora Onlineを使うことで、ある程度は対処できるんじゃないかという提案です。

メリット3:デスクトップとオンラインの互換性

そして3つ目が、デスクトップ版とオンライン版の行き来が非常にしやすいというものです。これは他の人はあまり言ってないんですけど、私はこれがすごくいいなと思っています。

そもそもクラウド版のオフィスソフトって、どれを使っても動きが遅いです。Collabora Onlineもデスクトップ版に比べると遅いですが、Googleドライブもそんなにサクサクというわけでもありません。そうすると、1人でファイルを編集するときはデスクトップで操作して、コラボレーションするときはオンラインでやりたくなります。そのときは作成したファイルを同期させて、オンラインにもっていきたいですよね。

で、それをやったときに、LibreOfficeとCollabora Onlineはバックエンドで使っているレンダリングエンジンが一緒なので、レイアウトがずれません。フォントなどをそろえておけばほぼずれることがありません。これがかなり便利だと思ってます。これはかなり特殊な作りで、他のソフトでは真似ができない仕様になっています。

おまけとしては、LibreOfficeではMicrosoft Officeで利用されているOOXMLファイルの読み書きもそこそこできるので、そういう用途で使ってる人もいるみたいです。

何と組み合わせるか?

次は何と組み合わせるかという話です。というのは、Collabora Onlineは本当に割り切っていて、ファイルの管理機能は一切ありません。Collabora Onlineだけで使っていると、URL直打ちみたいなことをしない限りファイルを開けないのです。そこで、NextcloudやownCloudなどと組み合わせるのが一般的な使い方になります。ユーザ数も多いですし、プラグインも安定しているので、これが一番楽です。

他にもCollaboraのサイトを見ているといろいろ書いてありますが、Moodleと組み合わせるケースもあるらしく、どこまで簡単に構築できるのかわからないんですが、これも結構便利かなと。あとAlfrescoはちょっと大変そうって話をちらっと聞いたんですが一応できているようです。あとは、EGroupware(グループウェア)、Mattermost(チャット)、Nuxeo(コンテンツ管理)など、いろんなソフトウェアと組み合わせて使えるようになってます。

もちろん自前のシステムに組み込むこともできます。インテグレーションするのはちょっと大変かもしれませんが、他のプラグインなどを参考にすればたぶんできるでしょう。

COOLとCODE

Collabora Online(COOL)とCollabora Online Development Edition(CODE)の違いについても触れておきます。

COOLはCollabora Onlineのことですが、中でもサポート契約をしているものを指すことがあります。サポート契約をしている人には、Collaboraから生成した安定版のバイナリが供給されます。一方、CODEの方はCOOLの一種ですが、サポートがない代わりに誰でも簡単に試せるようにしたバイナリのことをそう呼んでいます。用語が入り混じってきたら、このあたりを意識してください。

Collabora Onlineの操作デモ



上の動画は、ローカル環境に構築したCollabora Onlineを操作しているところです。最初に表示されているのはNextcloudの画面です。ここで先ほど紹介したファイル(LibreOfficeのリリースノート)を開くと、読み込んでブラウザに表示します。日本語による編集も普通にできます。レビューらしくコメントを入れたりもできます。ファイルを閉じると、Nextcloudの画面に戻ります。

それから、管理用のダッシュボードもあります。ファイルがどれぐらいメモリを消費しているかとか、この動画では自分がつないでいるだけですが、ユーザが増えてくるとメモリ消費量が増えてきてちょっとやばいな、といったことがわかります。

次回につづく

次回は、Collabora Onlineのさまざまな構築方法や、開発コミュニティの体制などをお伝えします。