2008年12月2日火曜日

[Dion Almaer] アプリケーション実行における信任のありかた; Webアプリケーションでサンドボックスの関門を越える

(原文: Application trust models; Expanding Web applications out of the sandbox



数年前にWeb開発者達は、ちらっとしか見れなかったのが残念だけど、あの美しい冬景色を称賛したんだった。あれは、我々のうちのベストメンバーが、Ajaxを手に入れる前の先史時代の日々から我々を抜け出させるために作業を行った時のことだった。



希望に満ちた年月は矢の如く過ぎ、我々はWebプラットフォームの爆発的増大を目にする事になった。作業領域はWebにとどまらずモバイルへと拡大し、今やデスクトップアプリケーションの領域に及んでる。

Prism、Fluid、Gears、AIRといったテクノロジの登場により、我々はデスクトップアプリケーション作成のためにWeb関連スキルを利用するようになった。数多あるゲームをプレイしてみて、ちゃんとしたWeb対戦型ゲームをネイティブアプリケーションの形で書く人がどの程度の数であるかを認識すれば、Webというものがブラウザという枠をはるかに越えて今や最も優勢なアプリケーションプラットフォームになったということがわかる。

でもその一方で、Webサンドボックス(訳注:アプリケーションを特定の範囲内のみに限定して動作させるセキュリティモデル)の関門を破るにはどうすればいいんだろう? 我々はアプリケーション作成において大量の「セキュリティのため」と称する関門(このことはCrockford(訳注:たぶんDouglas Crockfordのこと)には言わないでね)を否応無しに押し付けられ、それを打ち破れずにいる。

問題は、何か良い手を思いつかない限り「詰まらん事に関してユーザにいちいち確認を求めるなんていうやり方は私には出来ないよ。だから、ネイティブアプリを書けばいいじゃん、と考えたんだ」という結論にいつもなってしまうということなんだ。

もちろんこのやり方であっても現実にはユーザの生活におけるセキュリティ向上の助けになる訳じゃない。というよりむしろネイティブアプリでも「はい。私はそれがインターネットからダウンロードされたものだということを認識してます」という例のダイアログのOKボタンを押すのと同等のことをしなければならなくなるんだ!

それは置いといて、私はどれくらいの人が
 a) Webから何かをダウンロードし
 b) 実行し
 c) 例のダイアログを目にし
 d「おいおいOKじゃだめだろ」と言う
のか知りたい。どっちに賭ければいいかは先刻承知さ ;)

現状のWebサンドボックスにある弱点を取り除き、より強固なものにするって言ったら君はどう思う? 実行中の事に関して割り込みをかけられるようなプラットフォームがあって、アプリケーションが何をしているかを正確に伝えるなんらかの尺度があったらなと考えてみてほしいんだ。Chromeではこの点に関して、タブのメモリ使用量を表示するという、ちょっとした手を打ってる。これは偉大なる一歩だ。さらに進めてiStatMenuをブラウザのどこかに表示するというのはどうだろう。



これなら全てのブラウザベースアプリケーションに関して、メモリ使用量だけではなく、アプリケーション起動状況、ネットワーク利用状況、ローカルDB利用状況、ファイルシステム利用状況さえも見る事が出来る。「このアプリケーションに実行を許可しますか」と聞く代わりに、より詳細な問いかけをユーザに対して行う事も可能だし、ユーザが何に関してOKと言ったのか忘れてしまったとしても、現状に関する詳細なフィードバックを示す事が可能だ。

アプリケーションデバッグを進める際に有用な、ヒープ(訳注:個々のアプリケーションに割り当てられたメモリ領域)利用状況のビジュアル表示も付いたパワーユーザモードというのもアリだ。詳細なネットワーク通信状況の表示、その他もろもろ。

もちろん一番良いのは、こういった表示がさりげないユーザインタフェースによって行われる事だ。Google検索における「現在地の近くのものを探す」チェックボックスがわかりやすい例として挙げられる。

確かに微妙な問題ではあるけど、私はWebテクノロジーはより広範に拡大するべきだし、この問題については切り抜けなきゃならないと信じてる。みんなはどう思う?

0 件のコメント:

コメントを投稿