ラベル Web の投稿を表示しています。 すべての投稿を表示
ラベル Web の投稿を表示しています。 すべての投稿を表示

2012年2月18日土曜日

WebKit Page Cache I - The Basics 抄訳

WebKit Page Cache I – The Basics
Page Cacheの内部動作を調べる必要があったので、上記記事を読んでみた。ざっと見ただけで内部動作については書かれていない事は分かったが、取り敢えずちょこっとピックアップして和訳。

Page Cache Overview
  • Page Cache=Firefoxの"Back-Forward Cache"、"bfcache"、Operaの"Fast History Navigation"と呼ばれる。
  • WebKitの"Back/Forward List"と"Page Cache"は違う(らしい)。
  • Page Cacheはウェブをよりスムーズに移動出来る様にするためのエンドユーザ向けの機能。
  • "HTTP sense"、"disk cache"、"memory cache"における"cache"とは異なる。
  • Page Cacheは「あるページを移動する時に"一時停止"し、そのページに戻ってきた時に"再生"する」機能。
  • 新しいページに遷移する場合、前のページのDOM、JavaScript、プラグイン、画像等はクリアされてしまうと、戻るボタンで戻ってくると再度これらリソースをネットワーク上から取得して、ページを再構築しなければならず、非効率。
  • 以前のページのリソースを(戻るボタンを押された場合のために)解放せずに維持しておくのがPage Cache。
Why Wouldn't Work?
  • Page Cacheがそんなに素晴らしいものならば、新しいページに遷移する時にWebKitは常にPage Cacheを使わないのか?
  Some Pages aren't Interesting
  • ページロードが未完了、もしくはエラーの場合や、他のURLにリダイレクトするページの場合にはPage Cacheは動作しない。
  Some Pages are Complicated
  • ウェブページはPage Cacheされる事を想定されていないかも知れないため、"一時停止"する事が難しい場合もある。WebKitが"一時停止"できないネイティブコードを持つプラグインを持つ場合や、WebKitが履歴上キャッシュ管理していない複数フレームを持つページ等があげられる。
  Some Pages are Secure
  • WebKitは全てのHTTPSサイトをPage Cacheから展開する事を許可していない。
  Planned Improvements
  • revision 48036では主要な制約が解消され、フレームを持ったページのPage Cacheが可能。
  • Plug-inサポートは計画中改善の中の大きなアイテム。
Unload Handlers
  • unloadイベントは、ユーザがページをクローズした時にページにcleanup処理をさせるために設計されたもの。
  • Page Cache内にページを移動させる前に、ブラウザはunloadイベントを発火させる事ができない。
  • もしブラウザがunloadイベントを行わずにPage Cacheにページを移動させるならば、そのページは"一時停止"されて隠れている間にブラウザによって解放されるかも知れず、その場合cleanup処理は決して動作しない。
  • unloadイベントの目的はページが閉じられる時の重要な処理を許可する事であり、全ての主要ブラウザはそのようなページをPage Cacheに移動する事を拒絶しており、ユーザ操作上のインパクトに繋がる。

2012年2月14日火曜日

The Vehicle API by webinos

The Vehicle API – pushing borders of Web applications

車内はFlexRay, CAN,MOST等の異なるネットワークが存在し、Gatewayを経由して相互に接続している。それらのネットワークへのアクセスを提供する場合には安全機能の妨げにならない事を保証する必要がある。

よいエントリーポイントとしてはヘッドユニットがあるが、駐車時の後方距離センサーのデータを利用して物体までの距離をディスプレイに表示する場合にはソフトリアルタイムメッセージが必要となる(のでリアルタイム性を損なわない注意が必要)。そこでwebinos APIを経由した車両バスへのアクセスを制御し、車両情報への安全なデータアクセスを提供する。今のところ、要求される安全性を確保するためヘッドユニット内でのデータ利用に制限している。

webinosプラットフォームであるVehicle APIの最初のリリースでは車両データの読み取りと、オンボードナビゲーションシステムとの連携機能にフォーカスしている。Vehicle APIはW3C仕様に沿った設計でイベントモデルをベースとしている。現在速度や縦加速度はW3CのGeolocationやDevice Orientation APIが提供するため、Vehicle APIでは扱わず、以下のデータ等を扱う。
  • 静的車両データ(型式、 モデル、燃料やトランスミッションのタイプ)
  • 距離センサーデータ
  • トリップコンピュータデータ(平均速度、燃費、走行距離、走行可能距離)
  • 気候データ(エアコンや排気口)
  • 制御データ(ワイパーやライトの状態)
  • ギアデータ
  • ナビゲーションデータ(目的地までの距離、経路案内のキャンセル)
HTML、CSS、JavaScriptで作成された駐車時の物体距離センサー情報を利用したデモを作成している。

W3C仕様に沿った仕様作りを意識してはいるものの、W3Cの仕様にまで持って行く計画があるかどうかも分からない状況であり、今後も少しは気にして見ておいた方が良さそう。また、BMWが仕様作成したと言う点が興味深い。他者と協力して車両情報APIの主導権を握って置きたいのかも知れない。この辺のAPIが固まって一般に公開され、普及してしまうと、車載用アプリも一般ユーザが軽く作れる状況になってしまって、ナビメーカーはさあ大変、な状況になりそう。

まあ、その前にデータ取得だけとは言え、データの組み合わせ次第では幾らでもプライバシー侵害が出来てしまうので、セキュリティが重要になってくると思われる。でも、セキュリティを維持するために使い勝手を損なうのでは微妙なのでユーザビリティを維持、もしくは向上させる事が可能なセキュリティシステムとか、今後必要になってくるかも知れない。