モバイル・クラウド時代の新たなオフィスソフトへ、LibreOffice Conference2019 Almería, Spainレポート

LibreOffice Conference(通称LibOCon)は、オープンソースのオフィスソフトであるLibreOfficeの年次カンファレンスで、例年(決まっているわけではありませんが)ヨーロッパ圏で開催されています。プロジェクトの多くの開発者、貢献者、ユーザーが一同に介して、さまざまな議論を行います。

今年2019年は9月10日〜13日の日程[1]で、スペインのアルメリア(Almería)で行われました。アルメリアはスペイン・アンダルシア地方、地中海に面する美しい小都市で、オープンソース的にはデスクトップ環境KDEの年次カンファレンスAkademyや、同じくGNOMEの年次カンファレンスGUADECをホストしてきました。

今年のLibOConの参加者数は29カ国から102人とのことです[2]⁠。

LibreOfficeとそのプロジェクトの現状

透明性があって開発者フレンドリーな体制を目指してOpenOffice.orgからフォークしたLibreOfficeプロジェクト。このカンファレンスの時点で発足からほぼ丸9年[3]となります。プロジェクトの継続性を特定の企業に左右されないため、非営利組織であるThe Document Foundation(TDF)によりホストされています。

LibreOffice、またはその標準フォーマットであるOpenDocument Format(ODF)を政府系機関の標準として採用を進めている国には、フランス、イギリス、台湾、ハンガリーなどがあります。日本国内では会津若松市JA福岡市などが採用しています。

タイムベースリリースで年2回のメジャーリリースで活発な新機能追加が行われ、ほぼ毎月のペースでのマイナーリリースにて不具合が修正されています。最新2バージョンがサポート対象で、本稿執筆時のバージョンはそれぞれ6.3.2、6.2.7となります[4]⁠。

カンファレンス初日のオープニングトーク「State of the Project」から、いくつかトピックを拾ってみましょう。

図1 オープニングセッションの様子。The Document Foundation公式ブログより。
画像

LibreOfficeのユーザー数は世界中で推定2億人とされ、Linuxディストリビューションのほぼすべてが標準のオフィスソフトとして採用しています。Windows、Mac、Linux版が公式に存在し、BSD系のビルドもコミュニティにより行われています。また近年は、Google DocsやMS Office OnlineのようなWebブラウザから利用するシステムを独自に構築できる「LibreOffice Online」の開発も活発です。

ソースコード管理はGitを採用していて、年間のコミット数は15,000ほど(周辺プロダクトも含む⁠⁠。1年間になにかの活動を行った開発者は200人以上です。企業に属している開発者だけでなく、ボランティア開発者が1/3を占めているのが特徴的です。

ダウンロードについての統計も公開され、サーチエンジンとしてロシアのYandex経由が20%近いのは興味を引かれました。地域別にはヨーロッパが60%でダントツで、アジアからは10%程度、アフリカは1%ほどです。人口比から大いに伸びる余地がありマーケティングを進めていくそうです。アジアの中ではトップが日本が26%です。しかし人口当たりのダウンロード数でいうと、アジア全体の9%である台湾がトップとなります。さすがに政府がODFへの移行を推進しているだけのことはあります。

次からは筆者の目にとまったトピックをいくつか紹介します。

オンライン版LibreOfficeの開発は堅調、関心は運用にも

ブラウザベースでのコンピュータ利用のニーズの高まりや、エンタープライズにおけるオフィスワークの共同作業効率化、TCOの削減などのニーズに答えるべく、前述のように、LibreOfficeをWebブラウザから利用できるようにする「LibreOffice Online(通称LOOL⁠⁠」が開発されています[5]⁠。

LOOLはGoogleやMSのサービスとは異なり、TDFや特定のベンダーがサービスを提供しているわけではなく、LibreOfficeの共同編集をWebベースで行うためのサーバー(C++)とフロント(JavaScript)の組み合わせをOSSで提供しています。またフロント側も単独のソフトウェアとして完結しているわけではないため、任意のソフトウェア開発者は自身のWebサービスに本格的オフィスソフトの編集機能を取り込むことができます。よくある組み合わせとしては、オンラインストレージ構築OSSであるownCloudNextcloudにプラグインを導入して、ODFの編集機能を統合する使い方です。

実装としてはLOOLサーバーはLibreOfficeそのものをLibreOfficeKit(LOKit)というC++のヘッダライブラリで起動し、レンダリング結果を256x256のタイルに分割して(タイルレンダリング)WebSocket経由でフロントに送信します。フロント側はLeafletでこれらを並べて描画します。クライアントの環境(ブラウザ、OS、インストール済フォントなど)に依存せず完全に同じレンダリング結果を保証しています。

LOOL関係の発表で特に紹介したいのはIván Sánchez Ortega氏による「Getting on key」で、JavaScriptのキーイベントについてのものです。

図2 JavaScriptのキーイベントについての講演でテキストコンポジションについて説明するIván Sánchez Ortega氏(撮影 おがさわらなるひこ)
画像

JavaScriptのキーの扱いについて、イベント種別、テキストコンポジション、さらにキーや入力の種別といったさまざまなトピック、そして落とし穴、結局どうすればいいのか?をわかりやすくまとめた発表でした。このようなWebフロントエンド界隈の深い知見が必要とされ、活かす機会があるという意味で、LOOLがLibreOfficeの、そしてLibOConの世界を広げていると感じました。

Philippe Hemmel氏「Integrating LibreOffice Online in Alfresco」は、文書管理のためのOSSAlfrescoへのLOOLの統合について発表しました。Alfrescoはワークフローなどの機能を備える強力な文書管理システムですが、共同作業には不向きでした。それをLOOLを統合することで改善したというものです。パフォーマンスを引き出すためにロードバランサーの配下にLOOLを入れ、またLOOL自体の監視を行うプロセスも自作したとのこと。

ロードバランサー+LOOLについての議論は、村上正記氏による「Experiment for large-scale operation of LibreOffice Online, 2019 Edition」でも行われました。

このような、活用方法や運用についての発表の存在はLOOLが実用段階にいることの現れです。

図3 村上氏の発表スライドからまとめページ(撮影 おがさわらなるひこ)
画像

モバイルアプリ対応はLOOLベースの新たなステージに

「LibreOfficeをモバイルで利用したい」という声はずっと以前からあり、さまざまな試みがされてきました。しかし残念ながらいろいろな理由によりまだ製品として完成したリリースは存在しません。

PCに比べるとリソースが厳しいモバイルにおいて、有効なソリューションとされたのがLOOLでも用いているタイルレンダリングです。この機能はLOKitで提供されていて、現在ベータリリースされているAndroid版LibreOffice Viewerはこれを利用しています。しかしLOKitは進化が早いLOOLのニーズにあわせて頻繁にインターフェースが変更されるため、各モバイルプラットフォームで直接LOKitを用いると、LOOLに比べてビジネス的に開発リソースが投入できないモバイル版では追随が難しいという問題がありました。

そこで、発想を逆転させて、LOOLのサーバー側プロセスをモバイルのライブラリとしてポートして、WebViewでフロントを描画するアプリケーションを作るというアプローチが試行されています。

Tor Lillqvist氏の「Collabora Office as an iOS app on the iPad」はiOSについての、Jan Holešovský氏の「Reusing the Online as an Android app」はAndroidについての発表でした。両氏はともにLibreOfficeのサポートベンダーCollaboraのメンバーで、この取り組みはCollaboraがパートナーであるスイスのAdfinis SyGroupのスポンサーを受けて実施したものだそうです。

図4 LOOLの技術を用いたAndroidアプリのデモ(Jan Holešovský氏のスライドより)
画像

両プラットフォームとも基本的な戦略は一緒で、LibreOfficeそれ自体とLOOLサーバーをネイティブライブラリとして作成し、アプリに静的リンクを行います。通信はWebSocketではなく、プラットフォームが提供するプロセス間通信を用いて、それをLOOLのインターフェースでラップしているそうです。⁠擬似WebSocket(pseudo WebSocket⁠⁠」と呼んでいました。

図5 LOOLを内部的に用いたiOSアプリのビルドについて説明するTor Lillqvist氏(撮影 おがさわらなるひこ)
画像

まだ両者とも「やってみた」レベルのものに過ぎませんが、この方向性で進めそうという感触は得られている模様です。実際に使用できるまでには少し時間がかかりそうですが、先が楽しみです。

ODF、開発TIPS、CJK問題など多岐に渡るトピック

LibreOfficeの標準ファイルフォーマットであるOpenDocument Format(ODF)は、標準化団体OASISのOpenDocument技術委員会で仕様が管理されている「真の」国際標準です。透明な仕様策定プロセス、見通しの良い仕様、充実した操作ライブラリなど数多くの利点が存在します。ODFに関する発表もいくつかありました。

台湾のJeff Huang氏による「Generating ODF reports on server side」は、台湾において、サーバーサイドのレポート生成を担うAPIサーバーについての発表でした。ODFはこのような用途に向いており、いったんODFに出力してから別のファイルフォーマット(PDFなど)に変換するといった場合にも利用できます。

図6 ODFAPIサーバーを用いたレポート生成のフロー図(Jeff Huang氏の発表スライドより)
画像

Svante Schubert氏による「New ODF Toolkit from TDF」は、ODFの操作ライブラリであるODF Toolkitについてのものですが、それだけでなく「フロッピーでドキュメントを交換していた時代の延長線上のやりかたは終わりにしよう」⁠共同作業のためにはドキュメントを交換するのではなくコミットを交換すべき」というような指針と、それを実現するためのプロトタイプ実装についての興味深い発表でした。

図7 発表中のSvante Schubert氏カンファレンス公式写真集より)
画像

その他ODFについては、ODFの普及促進のためのODF Advocacy Open Projectについてのものや、現在策定中のODF 1.3についての発表などもありました。

開発TIPSについて共有があるのもLibOConの特徴。C++の-fsanitizeについて解説したStephan Bergmann氏の「Janitor of Sanity⁠⁠、コードは書いた時の何倍も読まれるのだから、もっと読みやすいコードを書こう!と呼びかけるLuboš Luňák氏の「On Making Code More Readable⁠⁠、LibreOfficeのPythonによるマクロ開発についてまとめたAlain Romedenne氏の「Scripting LibreOffice Python macros aka «Macros Well Kept Secrets»⁠⁠、パフォーマンスチューニングとその実例を共有したNoel Grandin氏の「We’re going on an O(n^2) hunt⁠⁠、Ashod Nakashian氏によるGDBのTIPSを紹介したライトニングトークなどが印象に残りました。

図8 -fsanitizeについて説明するStephan Bergmann氏(撮影 おがさわらなるひこ)
画像

LibreOfficeはプロジェクト発足時に「次の10年のマニフェスト(TDFマニフェスト;Next Decade Manifesto)として、母語でオフィスソフトを使う権利の保証を掲げています。これは単にユーザーインタフェースの翻訳だけでなく、各言語を正しく扱えること、各言語向きの機能が正しく動作することも含んでいます。筆者の一人、榎は、日本語を含むCJK(Chinese, Japanese, Korean)言語についての不具合まとめを2016年のLibOConから発表しており、本年もアップデートを行いました。

台湾からのKuan-Ting Lin氏とXiao-Wu Wang氏の2人は、⁠Making LibreOffice a lifesaver for dying languages in Asia」として、いわゆる台湾諸語の一つ、数千人しか話者がいない言語のLibreOfficeへのスペルチェックの実装を行い、UI翻訳を進めていることについて発表していました。このような機会があることはLibreOfficeの強みの一つです。

ハンガリー政府のLibreOffice移行をサポートする組織であるNISZでは、内部でLibreOfficeの開発者を育成することで、既存のOOXMLフォーマットのLibreOfficeへの移行を推進しています。Gábor Kelemen氏による発表「Newest NISZ developments, behind the scenes」はこの点についてさまざまな知見を共有するものでした。自組織の困りごとを改善するために開発者を育成するというアプローチはすばらしいです。

2019年は地域国際カンファレンス元年

コミュニティについても少しだけ。今年2019年は、LibreOfficeにとっては記念すべき年です。いままで、国をまたいだLibreOfficeの単独カンファレンスはLibOConしかなかったのですが、2019年5月25日、26日、東京にてLibreOffice Asia Conferenceを開催しました[6]⁠。筆者の一人おがさわらがこの報告を行いました。

同じくLibreOfficeコミュニティにおいて重要な地域であるラテンアメリカでも、パラグアイにてLibreOffice Latin America Conferenceが開催され、Gustavo Buzzatti Pacheco氏が「The challenge of a regional LibreOffice Conference」というタイトルで報告していました。

図9 LibreOffice Latin America Conferenceの集合写真The Document Foundation公式ブログより)
画像

このカンファレンスの実現には、実はAsia Conferenceの開催がきっかけになったということを聞き、個人的には非常に嬉しく思いました。共通の課題などもあり、一緒に議論していきたいです。

まとめ

日本からヨーロッパまで行くのは少し大変ではありますが[7]⁠、多彩な発表を聞き、さまざまなソーシャルイベントで世界中から集まった仲間と交流し、HackNightで開発にトライし、タパスを食べつつビールを飲む日々はやはり大事だなと思います。

来年はLibreOfficeプロジェクト発足10周年、またLibreOfficeの前身であるOpenOffice.orgが発表されてから20周年という節目の年となります。ドイツ、ニュルンベルクにてまた素敵な仲間たちと再会すべく、日本国内でもいろいろ活動していきたいです。

このレポートをお読みになって「面白いこといろいろやってるな、自分もLibreOfficeに関わってみたい」と思った方がいれば幸いです。またLibOConに興味を持った方は、ぜひ一緒にニュルンベルクに行きましょう!

図10 集合写真カンファレンス公式写真集より)
画像

おすすめ記事

記事・ニュース一覧