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

CNET Japan ブログ

UIEngineが実現しようとしていること

2007/02/07 08:00
  • このエントリーをはてなブックマークに追加

プロフィール

中島聡

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

最近のエントリー

 UIEngineはユーザーインターフェイスを実現するためのuser agentであるという話は前回したが、別の見方をすれば、UJMLというマークアップ言語で書かれたプログラムを実行するVirtual Machineでもある。

 Virtual Machineというと、最初に浮かぶのがJavaだ。"Write once. Run everywhere"というキャッチフレーズのもとに鳴り物入りで業界にデビューしたJavaだが、サーバー側ではそれなりの成功を収めているものの、クライアント側でその約束は、携帯電話用上でパソコン用のJavaが走らないことが明確になってから、事実上破綻してしまっている。

 Javaの"Write once. Run evewhre."が成功しなかった一番の原因は、それがそもそもウェブ・アプリケーションのuser agentとして設計されていなかったことにある。そのため、「デバイスの能力・性質に応じて最も適切なユーザー・インターフェイスをサーバー側から取得する」という『アダプティブなUI』を持つアプリケーションの作り方を支援する仕組みに欠けているのである。

 それと比べてUIEngineには、そんな『アダプティブなUI』を実現する仕組みがいくつか用意されている。すべてのユーザー・インターフェイスをスクリプト部も含めて「データ」として扱うUIEngineは、Javaのように、class単位で「プログラム」をロードするのではなく、ユーザーとのやりとりに応じてその場その場で必要なUIデータを非同期にサーバーからダイナミックにロードしたりキャッシュしたりする仕組みを持っている。この仕組みにより、アプリケーションの立ち上がりまでの時間(最初にアプリケーションがユーザーとやり取りを開始できるまでの時間)をJavaと比べて大幅に短くできるし、同時にメモリー上に展開しておかなければいけないデータ量を必要最小限に抑えることができる。

 それに加えて、UIデータのサーバーからの取得は、ブラウザーと同じくHTTPリクエストで明示的に行うため、クライアント側のロジックでデバイスの種類によって異なるURLにリクエストを出す、もしくはサーバー側のロジックでHTTPヘッダーのuser agentストリングからデバイスの種類を判断して異なるデータを返す、などのさまざまな方法で、ユーザーが使っているデバイスに最も適したユーザー・インターフェイスを表示する、ということが可能になる。

 この仕組みを使えば、パソコンからアクセスされた場合は、大きなディスプレイとマウスと豊富なリソースを最大限に活用したリッチなUIを表示しつつ、携帯電話からアクセスされた場合には小さなディスプレイと十字キーに適したUIを表示する、というアプリケーション作りが可能になる。

 この発想を延長して行けば、ディスプレイを持たないデバイスに対しては音声による入出力だけを記述したUIを返す、だとか、携帯電話を手元に持ってテレビを見ているユーザーのためにその人の携帯とテレビの両方に連携して動くUIを送り込んでマルチ・デバイスなユーザー・エクスペリエンスを実現する、などの作り込みまでが可能になる。

 別の言い方をすれば、UIEngineが実現しようとしていることは、Javaのように「同じアプリケーションをどんなデバイス上でもそのまま実行する」ことではなく、「一つのウェブ・アプリケーションに対してあらゆるデバイスからのアクセスを可能にしながら、それぞれのデバイスやネットワークやユーザー・シナリオに最も適したユーザー・エクスペリエンスを提供する」ことなのである。 

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

最新ブログエントリー