Google、「Chrome Web Store」向けネイティブアプリ開発を促す

~次期Google Chrome安定版公開の意味


 米Googleが開発者たちに向けて、「Chrome Web Store」向けにネイティブアプリを開発するよう促している。

 これは、Google Chromeのベータチャンネルにおいて「Native Client」が統合されたことによるものだ。これらがユーザーと開発者に十分に受け入れられれば、OSの持つ役割が薄まり、ブラウザーがますますOSの役割を多く担うことになるため、業界構造の変化につながる可能性もある。

 Native Clientでは、C/C++言語を使用して高パフォーマンスなウェブアプリケーションをOSに依存せず開発できる。これにより、ゲームやグラフィックスを多用するシミュレーションなどのパフォーマンスを必要とするアプリケーションであっても、場合によっては開発ターゲットとなるOSを限定せずに開発できることになる。

 これを実現するために、Native Clientではブラウザーの下のレイヤーにあるOS独自APIを使用しない。その代わりに「Pepper API」と呼ばれるHTML5に対するC/C++によるインターフェイスを使用する。これにより、既存アプリケーションをいったんNative Clientに移植すれば、他のOSでも動作させられることになる。

 現時点でNative Clientは2Dグラフィックス、ステレオオーディオ、URLフェッチ、サンドボックスによるローカルファイルアクセス、JavaScriptによる非同期メッセージ送受信機能を利用できる。今後、OpenGL ES 2.0による3Dハードウェアアクセラレーション、フルスクリーンモード、WebSocketsとP2Pによるネットワーキングなど、多くの機能が利用できるようになる計画だ。

 ネイティブコードを動作させるため、当然ながらセキュリティ上の懸念が存在する。そのためGoogleでは、Native ClientサンドボックスとChromeサンドボックスの2段構えを用意する。また、Native ClientアプリはOS独自APIにアクセスできない。これは、セキュリティ上の問題があったActiveXコントロールやNPAPIプラグインと異なる仕様だと強調している。その結果、Native ClientアプリはJavaScriptと同程度の安全性が保証されるとしている。

 Native Clientの次の目標は、アーキテクチャー非依存の「Portable Native Client」だ。これはLLVMビットコードを使用することによって、コード実行前に実際の命令セットに変換することにより、ネイティブコードを高速に実行させられるようにするものだ。GoogleがNative ClientアプリをChrome Web Storeにアップロードするよう促している背景には、マーケティング上の理由だけではなく、将来このPortable Native Clientに移行する際に、アーキテクチャーに依存しているアプリを少しでも減らしたいからだとしている。

 現在、Native Clientを利用できるのは、開発者以外にはGoogle Chromeベータチャンネルのユーザーだ。しかし、Chromeのこのバージョンが安定版としてリリースされる時期は間近に迫っており、その時には全ChromeユーザーがChrome Web Storeにあるネイティブアプリを利用できることになる。こうしたアプリがユーザーと開発者にどこまで受け入れられるのか。その状況によっては、業界構造が大きく変化していく可能性もある。


関連情報


(青木 大我 taiga@scientist.com)

2011/8/22 11:52