WebブラウザはSQLの夢を見るか? いや、たぶんもう見ないようだ
グーグルがオープンソースとして開発しているプラグインの「Gears」が開発中止となる、というニュースが先週報道されました。
- InfoQ: GoogleがGearsの開発を中止
- Google、「Google Gears」開発を減速しHTML 5にフォーカスへ - SourceForge.JP Magazine
- Googleの戦略変更、HTML5に注力する一方でGearsの開発は停止:佐藤信正「Googleウォッチング」
Gearsの機能はHTML5へ
Gearsは2008年にリリースされた、Internet ExplorerやFirefoxなどに対応するプラグインです。Chromeにも同等の機能が内蔵されています。Gearsは、Webブラウザに以下の機能を追加します。
- Webサイトをローカルにキャッシュし、オフラインで利用可能にする
- SQLiteを内蔵し、ローカルデータベース機能を提供する
- JavaScriptにスレッド機能を提供し、バックグラウンド処理などを可能にする
もともとGearsはHTML5を見据えてグーグルが実装を開始したプラグインであり、今回のGears開発中止の理由として「HTML5にフォーカスする」というのは予想されたことでした。HTML5およびその周辺仕様では、上記の3つの機能それぞれがおおむね次の仕様に該当します。
- Offline Web Applications
- Web SQL Database、Web Simple Database、Web Storageなど
- Web Workers
上記の仕様はいずれも策定中ですが、グーグルはこうした仕様の進捗と実装に注力するべき時期がきたと判断したのでしょう。
新たにWeb SQL DatabaseとIndexed Databaseという名称に
最近になって、これらの中でデータベース関連の仕様にいくつか動きがありました。
Web DatabaseはWebブラウザにローカルデータベース機能を追加するための仕様で、実装にはSQLiteが想定されていました。
しかし、そうなると仕様上はSQL言語を標準として定義することになりますが、SQLiteに実装を固定して仕様を作っていいのか? SQLiteがバージョンアップしたときにはこの仕様もバージョンアップするべきなのか? Webブラウザにもパッチを当てるべきなのか? そもそもSQL言語がこの仕様にふさわしいのか? などの議論がありました。この議論については、以前の記事「HTML5の標準化で表面化したSQLの非互換性問題」でもWeb Storageの課題として紹介しました。
ブログ「JavaScriptで遊ぶよ」のエントリ「ブラウザ上のデータベースに関して」では、このデータベース関連の議論の経緯を紹介してくれています。それによるとWeb Database仕様と実装にはマイクロソフト、オラクル、Mozillaが反対していて、HTML5エディタのIan Hickson氏もこれらの意見により、仕様についてはこのまま置いておくとのことです。
そして、このWeb Databaseの名称が「Web SQL Database」に変更されました。SQLを用いた仕様であると明確化した一方で、別のデータベース仕様として議論されていた「Web Simple Database」が「Indexed Database」という名称に変更されたという報告もありました。
この経緯については「html5-developers-jp」のスレッド「Indexed Database APIとWeb SQL Database」にも解説があります。
こうした動きから、今後の議論はWebブラウザでローカルなリレーショナルデータベースを操作することからは遠ざかり、Indexed Databaseの仕様について重点的に行われることになりそうです。