お使いのブラウザは最新版ではありません。最新のブラウザでご覧ください。

CNET Japan ブログ

UIEngineはUIの表示に特化したuser agent

2007/01/30 08:58
  • このエントリーをはてなブックマークに追加

プロフィール

中島聡

Microsoftでチーフアーキテクトを務めた経験を持つUIEvolution CEOの中島聡氏が、「Web 2.0」と呼ばれる新しいネット時代のサービスのあり方や、ライフスタイルの変化について考察します。
ブログ管理

最近のエントリー

 「UIEngineとはいったい何なんですか?」という質問を受けると、普通は「ユーザーインターフェイスを表示するためのミドルウェアです」などと答えている私だが、内心は「ミドルウェア」というあいまいな言葉を使うことに毎回少し違和感を感じている。

 技術的にもっとも的確な答は、「UIEngineはインタラクティブなアプリケーションを実現するためのuser agentです」なのだが、この「user agent(ユーザー・エージェント)」という言葉の定義が技術者の間にすらちゃんと浸透していないので、ミドルウェアなどというより汎用的な(=あいまいな)言葉を使ってごまかしているのである。

 ウェブの世界に生きているエンジニアにとっては、user agentとは、ブラウザーからHTTPヘッダーを使って送られてくるブラウザーの識別子のことである。例えば、

 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

だと、「Windows上で動くInternet Explorer 6.0」を意味したりする。

 しかし、もともとのuser agentの意味は、サーバー側で走るアプリケーションから受け取ったユーザーインターフェイスを、アプリケーションの代わりにとしてクライアント側の画面に表示してユーザーとの対話をするクライアント側のソフトウェアのことを指す。野球は得意だが、金銭に関わる交渉が得意ではない野球選手の代わりに契約交渉をする人のことをエージェントと呼ぶが、それと全く同じである。

 ウェブ・サーバー上で走るアプリケーションから送られてきたHTMLページを表示するウェブ・ブラウザーがその典型的な例であるが、Citrixクライアント、Unixのターミナルプログラム、古くはIBMの3270なども、user agentの一種である。

 Microsoftで、90年代の後半にthin client版のMicrosoft Office(プロジェクト名Netdocs)の開発をしていた私が強く感じ始めたのは、さまざまなデバイスがネットワークに繋がってきた時代にふさわしい、ウェブ・アプリケーションのユーザー・インターフェイスを表示するための新しいuser agentの必要性である。

 CitrixのようにGUIの描画をサーバー側で仮想VRAMに展開し、その差分だけをクライアント送る方法は、帯域を使いすぎるし、スケーラビリティに欠けるし、ネットワークの遅延をユーザーから隠すことはできない。HTMLブラウザー上のスクリプトと非同期通信を使った手法(すなわちAJAX)がアーキテクチャとしては正しい方向だとは感じていたが、HTMLという静的なドキュメントを表示するために作られたマークアップ言語を無理やりアプリケーションのユーザー・インターフェイスの表示に使うことには違和感があったし、ブラウザーそのものが肥大化してもはやthin clientとは呼べないぐらいCPUやメモリを消費してしまうことにも問題を感じていた。

 そんな考え方のもとに生まれたのが、最新のブラウザーの持つ「非同期通信、クライアント側でのデータ・バインディング、スクリプト機能」、という三つのキーとなる機能を持ちながら、それ以外の機能を極限までそぎ落としてユーザー・インターフェイスの表示に特化させた軽くて小さくて移植性の高いuser-agent、UIEngineなのである。 

※このエントリは CNET Japan ブロガーにより投稿されたものです。朝日インタラクティブ および CNET Japan 編集部の見解・意向を示すものではありません。
運営事務局に問題を報告

最新ブログエントリー

個人情報保護方針
利用規約
訂正
広告について
運営会社