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

企画特集

企画特集一覧

注目コンテンツ

読まれている記事

    CNET Japan ブログ

    UIEngineの一番の特徴は、UIEngine自身の移植性の高さにある

    2007-02-21 09:22:26

    プロフィール

    中島聡

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

    最近のエントリー

     UIEngineの基本設計は、UIEvolution設立時の2000年の時点でほぼ固まっていたが、その際にもっとも注意を払ったのが、UIEngineそのものの移植性の高さである。

     JavaにしろFlashにしろブラウザーにしろ、ほとんどのミドルウェアが「まずはパソコン用に作り、それを機能を削りながらなんとか携帯電話などの小さなデバイスに押し込んで行く」という進化のしかたをしている。そのため、どうしてもパソコン用のものと小さなデバイス用のものの互換性が失われるし、載せることの出来るデバイスも限られてしまう。

     それに対してUIEngineは、当初から「どんなデバイスでも走るぐらい小さく軽く作る」ことを一番の目標に置いて設計している。そのために削れる機能は可能な限り削ったし、アプリケーション自身がどんなに複雑で大きくても、同時に必要となるメモリ量を抑えることができる仕組み(パーティションのロードとアンロード)を採用した。消費電力を極力抑えなければならないポータブル・デバイスのために、画面に変化がない時にはCPUを一切消費しないで済むような設計になっている(イベント・ドリブンなプログラミング・モデル)のも、適用できるデバイスの範囲を広げるための工夫だ。

     また、リソースが極端に少ないデバイスのために、マルチ・スレッドを使わない多重処理の仕組みを設けてある。これにより、複数のタイマーを同時に走らせたり、画面に複数のオブジェクトを同時に動かしたり、非同期通信を使ってバックグラウンドでサーバーからリソースを取得するなどの多重処理が、マルチ・スレッドによるリソースの浪費なしに行うことができる。

     こういった設計段階での工夫により、UIEngineに今までのどんなミドルウェアより桁外れに高い移植性を持たせることに成功した。Windows、Linux+XWindow、Window CE、Symbian、BREW、PalmなどのGUI OSはもちろんのこと、μ-iTron、embedded Linux、VxWorks、PTOSなどのリアルタイムOSにもすでに移植されているし、試験的にだがOSを全く持たないデバイスの上でも動き始めている。対象とするデバイスも、携帯電話どころか、超安価なMP3プレーヤーから、表示装置付きのプリペイド・カード、使い捨てのペーパー・ディスプレイを持ったインタラクティブ・クリスマス・カードへの応用まで想定した設計になっているのがUIEngineである。

     しかし、UIEngineの移植性の高さをもっとも端的に表すのは、他のミドルウェア上に移植されたUIEngineである。すでに、J2ME(パソコン用Java)、P-Java(PDA用Java)、J2ME(携帯電話用Java)、Flash、SPOT(時計用.Net VM)などの上に移植済みで、現在BD-J(BluRay用Java)への移植も進めている。

     私の知っている限り、OSを持たない組み込みデバイスの上で直接組み込むことが可能で、かつ、FlashやJavaなどの他のミドルウェアのさらにその上で走らせることが可能というほどの移植性の高さを持つミドルウェアはUIEngineしか存在しない。

     これだけプラットフォーム自身の移植性が高いと、その上でアプリケーションを作ってビジネスを展開しようとする時の自由度が大きく高まる。

     携帯電話だけを見ただけでも、すでにJ2ME/MIDP、J2ME/DoJa、Flash lite、BREW、μiTron、Symbian、Windows CE、Palm、embedded Linux、OS-X、などのさまざまなプラットフォームが存在し、収束する気配は見せていない。それに加えて、ユーザーによるダウンロード型アプリケーションに開放されているプラットフォームとそうでないプラットフォームがあるために、「組み込み型のアプリを作るときはμiTron上にC++でVRAMに直接アクセスしながら個々の機種に特化したものを作るが、ダウンロード型のアプリは携帯電話事業者が指定するJavaやBREWなどで作る」などといった、とても非効率なことが行われているのが現状だ。

     UIEngineを使うことにより、「組み込み型のアプリケーション」から「ダウンロード型やウェブ・アプリケーション型のアプリケーション」までを含んだアプリケーション間でのライブラリやアプリケーションそのもの共有が可能になるし、そこで作ったさまざまなアプリケーションやサービスを、カーナビやTVなどの携帯電話以外のさまざななデバイスにも提供できるようになる。そして、それによって始めて、ユーザーがTPOに応じてネットワークに繋がったさまざなデバイスを使いこなして必要なデータやアプリケーションにアクセスできる「パーベイシブ・アプリケーションの時代」が実現する。

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

    最新ブログエントリー

    Bluetooth特集

    Bluetooth特集
    ワイヤレスでアクティブにスマートに!

    カメラ解体新書

    カメラ解体新書
    注目の最新アイテムからお得情報も満載

    電動自転車

    電動自転車
    坂道も楽々♪話題のモデルが続々登場

    サングラスカタログ

    サングラスカタログ
    夏のアウトドアの必需品。注目ブランド続々

    クール寝具特集

    クール寝具特集
    爽やか寝具が大集合。夏の夜を快適に

    話題のタブレットが大集合

    話題のタブレットが大集合
    注目モデルが大集合。アクセサリーも充実

    特集 by 楽天市場

      インタレストマッチ - 広告の掲載について
      個人情報保護方針
      利用規約
      訂正
      広告について
      朝日インタラクティブについて