ウェブベースのアプリケーションをオフラインでも

Web 2.0の教えによれば、もはやデスクトップアプリケーションのことは忘れて、AJAX化されたブラウザベースのアプリケーションを使うべきだという。というのもウェブアプリケーションなら、インターネットへの高速接続さえあれば、どのOSからでもどこにいても利用することができるからだ。けれども、オンラインでいられないときにはどうすれば良いのだろうか?FirefoxやOperaなどのブラウザでは今、この問題を解決すべく、アプリケーションをいつでもどこでもオフラインで実行できるようにするための取り組みが進んでいる。

しょっちゅう旅行や出張をする人たち(私自身もそうだが)はウェブメールやウェブベースのカレンダーといったオンラインアプリケーションをよく利用するようになってきている。「路上の戦士たち」がウェブブラウザだけで使えるアプリケーションを好むというのは当然のことだ。しかしオンラインアプリケーションばかりに依存していると、異常な吹雪のおかげでデンバー国際空港に足止めされた場合にはかなりの問題となってしまう。

Firefoxのロードマップでは、オフラインサポートはFirefox 3.0で提供される予定となっている。なお、Firefox開発者Mark Finkle氏がFirefoxのオフライン機能についてブログで書いている。また、Firefox開発者Chris Double氏はFirefoxでのオフラインサポートの概念実証コードとして、オープンソースのウェブベースメッセージアプリケーションZimbraにオフラインサポートを追加している。

Opera社製品管理担当ディレクタであるJan Standal氏によると、Opera社もまたアプリケーションのオフラインサポートの要望を受け取っているのだという。Standal氏によると現在のところOpera社では、ウェブアプリケーションのクライアントサイドの永続ストレージをOpera Widgetsにおいてサポートしているが、WHATWG仕様に準拠した形でのアプリケーション用ストレージについても現在実装中とのことだ。

Standal氏によるとOpera社では特にモバイルデバイスにおいてオフラインアプリケーションに対する多くの需要を感じているという。「(クライアントサイドの永続ストレージを使うことによって)アプリケーションデータへ即時にアクセスできるようになるということが特に重要となるのは、携帯電話や、あるいは携帯電話以外の場合にも接続スピードが非常に限られていたりユーザがまったくネットワークに接続できないことも多々あるようなデバイスにおいてです。Opera 9では、PCだけでなく携帯電話といったデバイス上でもOpera Widgetsをサポートしていますが、開発者コミュニティからはクライアントサイドのストレージ機能について強化して欲しいという要望を数多く受けています」。

オフラインサポートは新しいアイデアではないが、最近、オフラインサポートに対する関心が再燃している。オンライン文書管理ソフトウェアのベンダiNetOffice社の創業社長であるTom Snyder氏は、Internet Explorerには以前からHTML Applicationsを実行する機能があったものの「機能的に、私たちが望んでいるほど豊富で完備されたものではなかった」という。

なお、Firefoxにもしばらく前から簡素なオフライン機能が実装されているが、ページの表示に通常のディスクキャッシュを使用するというだけのものであり、これだけではGmailやZimbraなどのアプリケーションを利用するのには十分ではない。Firefox開発者のFinkle氏によると新機能は「WHATWG仕様のオフライン機能にいくぶん触発されて」開発されたものであり、Firefoxのオフライン機能のためのパッチやコードは昨年5月から現れ始めたという。

Finkle氏によると、オフライン機能はFirefox 3.xでの「優先度: 高」の機能となっているものの、「まだ、この機能のための要件を明らかにしている段階なので、この機能の優先度の再検討も避けられないような何らかの問題や細かい条件などが出てくる可能性はまだある」とのことだ。

完成したらユーザには使われるのか?

ウェブアプリケーションの開発者たちはオフラインサポートを待ち望んでおり、また路上の戦士たちも空港で足止めされてもGmailが利用できることを熱望しているのかもしれないが、常に自宅から快適にオンラインアプリケーションにアクセスしている大部分のユーザにとってはどうなのだろうか。

オフラインサポートが一部のユーザにしか使われないという可能性はあるが、Finkle氏によると、それでもなおその実現を推し進める価値はあるのだという。「ウェブアプリケーションの採用を見送る組織に最も引き合いに出される理由の一つが、オフラインでは利用できないからということなのです。そのためユーザの大部分には必要ないものだとしても、オフラインのサポートを実現することにより、ウェブアプリケーションの採用を妨げる壁を一つ取り除くことになるのです」。

もう一つの課題は異種プラットフォーム間での互換性だ。ウェブ開発者は今までも常に、複数の主要なブラウザ間での非互換性という問題に対処する必要があった。つまり、一つのブラウザだけにターゲットを絞るか、あるいはアプリケーションがすべてのブラウザで確実に動くようにするために数多くの対策を行ない余分な開発やテストを行なうことに長時間を費やすか、のどちらかをする必要があった。

Finkle氏によると、FirefoxがWHATWG標準を越えてWHATWGにはない機能も提供している部分について、Firefox開発者は「他のブラウザにもFirefoxのAPIを実装して欲しいと思っています。私たちFirefox開発者はそうすることが簡単にできるように、できるだけすべてを単純にするよう努力してきました。必要なAPIの多くはすでにWHATWG標準になっていますが、それ以外のものについても私たちは、それぞれ適切な標準化団体と協力して取り組んでいこうと思っています」とのことだ。

またFinkle氏によると現在、ウェブ開発者がオフラインサポートを簡単に実装できるようにするためのライブラリの開発も進行中とのことだ。「ウェブ開発者が各種ブラウザ間でのオフラインモードに関する問題に対処するのを手助けするためのJavaScriptライブラリがおそらくできると思います。Dojoなどのプロジェクトが、すべてのブラウザでオフラインアプリケーションを可能にするためのコンポーネントを現在開発しています。ただ、ブラウザによる直接的なサポートなしでは、あまりシームレスな使用感は得られないかも知れません」。

Opera社のStandal氏によると、OperaはWHATWGのような「仕様に準拠することについては本気で努力して」おり、ウェブ開発者はOperaに対してその他のブラウザベンダ以上に期待して欲しいとのことだ。なお、WHATWG仕様にはない機能を扱うFirefoxのAPIをサポートする可能性についてはStandal氏は「HTML 5はまだ未完成の状態」であり、Operaは標準規格を越えたものについてサポートするという約束はできないとしながらも、「(標準規格のWHATWGの仕様がアップデートされれば、その)アップデートされた仕様に基づいて、Firefoxと類似の機能群をサポートする可能性は高い」とした。

オフラインアプリケーションの課題

iNetOffice社のSnyder氏によると、ウェブアプリケーションという観点からの最大の課題の一つは「ユーザにとって出来る限り単純でわかりやすくすること」だという。Snyder氏によると、ブラウザ開発やウェブアプリケーション開発に携わっている人たちにとってはオンライン/オフラインという考え方は直観的であるものの、「例えば花屋を経営している人にとっては……そんなユーザにオンライン/オフラインについて説明しても、彼らの目はどんよりとしてくるんだ。理解したくもないし、どうでもいいし、といったことだから。ただただ、ちゃんと動いてさえくれればいいと思っているんだ」という。

Snyder氏によると、 表計算やワープロのようなウェブベースアプリケーションをオフラインでちゃんと動かすのは比較的簡単な部類なのだという。というのもそのようなアプリケーションは「より中央集権的」であり、扱うデータも少なめだからだ。一方メールは非常に多くのデータを要求する。メールのようなアプリケーションの場合、アプリケーションは「ユーザがオフラインで必要とするものを正確に予測する必要がある。必要なものの30%しか手元になければ、ユーザにとっては使ってみる価値はないということなんだ。95%あって初めて、一部のデータが手元になくても仕事をすることは可能だということをユーザは理解してくれるかもしれない」という。

Standal氏によると、オフラインサポートは今後の重要課題の一つであり、アプリケーションが対応するかどうかは、ウェブアプリケーションの開発者次第になるだろうとのことだ。ブラウザベンダは必要な機能を提供することはできるが、その後、その提供された新機能を利用するようにウェブアプリケーション開発者の手によってアプリケーションを修正する必要があるのだという。

Standal氏によるとメールアプリケーションの場合、ウェブアプリケーション開発者は、ユーザのメールの大半はサーバ上に置いておき、ローカルには未読メールや最近のメールだけを保存するようにするだろうという。「ほとんどの開発者の場合、クライアントサイドのストレージにキャッシュしておくのは、エンドユーザにとって意味や関心のある可能性が高いデータだけにするのではないかと思います」。

ユーザのデータが大量である場合、開発者がユーザのデータをオフラインでの利用のためにすべてクライアントサイドに保存することにすると、いろいろと問題が生じる可能性がある。そこで、Firefox開発者のFinkle氏によると、Firefoxではキャッシュの容量制限が実装される予定であり、また、開発者がユーザのコンピュータ上でどれほどの量のディスク容量を使用して良いのかを判断するための手段が用意される予定だという。「Firefoxではまた、ウェブアプリケーションがデータの保存についてインテリジェントに決定を行なうことができるようにするため、キャッシュとして使用可能なディスク容量があとどれくらい残っているのかを問い合わせるためのAPIをいくつか用意するつもり。このことについての技術的な詳細はまだ検討中だけどね」。

コラム:オフラインサポートについて

今現在のFirefoxのオフラインモードでも、(ローカルに保存されたキャッシュを利用して)ウェブにアクセスせずに文書を閲覧することはできる。これはこれで便利なのだが、ユーザがGoogleのサーバに情報を保存することを前提としているGoogle Docsのようなアプリケーションを使用しようとする際にはあまり役に立たない。そこで最近、開発者たちは、ユーザがウェブに接続されていない状態であってもウェブベースのアプリケーションを使えるようにすることに取り組んでいる。言い換えると、ユーザがオンラインなのかどうかを把握し、オンラインでない場合には情報をローカルに保存しておき、その情報を後でオンラインになったときにサーバ側に保存する、ということをアプリケーションにさせることができるということだ。つまりユーザは、リモートのサーバから情報を取得しようとすることなく、ローカルに保存された情報を使って作業を進めることができるようになる。

Microsoftはかねてより、オフラインアプリケーションとして配布することが可能なHTA(HTML Applications)を提供している。しかしHTAは各種ブラウザ間での互換性がない。

しかし幸いなことに標準規格策定の兆しは見えており、現在WHATWG(Web Hypertext Application Technology Working Group)が、永続ストレージオフラインに関する仕様などウェブアプリケーションのための標準規格の策定に取り組んでいる。

NewsForge.com 原文