ローカルの資源にアクセスする

オンデマンドTVの記事についてそのしくみが紹介されている。

ちなみに、少し宣伝をさせてもらうと、このセットトップ・ボックス上の全てのアプリケーションは、「非同期メッセージ型ウェブ・アプリケーション」として動いているのが特徴である。デバイス側には、スクリプト処理と表示をこなす UIEngine だけを置いておき、ユーザー・インターフェイス・テンプレート(=view)や映画のタイトル情報(=data)などは、全て非同期なHTTP通信でサーバーから取得して表示しているのだ。これにより、端末側のユーザー・インターフェイスの変更がサーバー側のテンプレートを変更するだけで可能になり、サービス内容の変更や新サービスの追加が、ファームウェアのアップデート無しに可能になるのだ。私の知る限り、これはAjax型の「非同期メッセージ型ウェブ・アプリケーション」の仕組みをパソコン・携帯電話以外のネットワーク端末で採用した世界で最初の例である。

以前、ウェブアプリケーション構築の際に、磁気カードを使いたいという要望があって、Windows CE + IE + OCX + javascriptという構成で開発をした。
画面はすべてHTMLでカードリーダーの制御はjavascriptからOCXを経由してという方法だ。Roppiみたいなコンビニに置いてあるキオスク端末とかはたぶん同じしくみで動いているんじゃないかと思う。

利点としては

  • サーバー側を変更するだけで即座に全ての端末の画面を変更できること
    • 画面だけではなくリーダーの制御方法もサーバー側で変更できたコト
  • ウェブアプリの製作しかやったことない人でも磁気カードリーダを利用した組み込みアプリケーションがつくれたこと(何をもって組み込みとするかというのはあやふやですが)

があった。上記の利点はそのままsatoshiさんがあげられているメリットと重なるとおもうのでAjaxならではというわけではなく、Webアプリであれば、そして必要なローカルの資源にアクセスする機能があれば、たぶんそうした恩恵はうけられるとおもう。


とはいえAjaxを利用して動いているわけではないのでいろんなところで苦労した。今ならAjaxで動かすんだろうなぁと思う。それで減る苦労がいくつも思い当たる。(サーバー側を変更すればAjaxアプリにするのはできるけど開発依頼がきてない)
それのほとんどが画面が遷移することに起因する苦労だ。


で、ようするに何がいいたいかというとブラウザでローカルの資源にアクセスするということはあまり意識されていない(セキュリティ方面では重要な課題だけど)が結構重要なことということだ。

たぶんUIEngineというのもローカルの資源にアクセスするための機構がはいっているんだとおもう。(リモコンの操作を受け付けるイベント機構だったり、まあその他STBを動かすために必要な機能)


でそのあたりから考えると、ローカルの資源(先にあげた例だとカードリーダ)はどんどんjavascriptからアクセスできるオブジェクトにしていく(なっていく)可能性が高いし、要望としては多いとおもう。ブラウザからローカルの資源にアクセスできて、スクリプトエンジンはブラウザまかせにできればそりゃあ便利だ。組み込みLinuxが増えてくればmozilla用のプラグインも欲しくなるだろうから、今後はローカル資源にアクセスするためのプラグインづくりというのはかなり要望が高くなるんじゃないかと思う。


一般コンシューマー向けの指紋認証とか流行るのかどうかはわからないが、ウェブアプリからそういう機器にアクセスできるかどうかは普及するための視点として結構重要だと思うので、メーカー側は是非OCXやmozzila用のプラグインを提供してもらいたい。