リッチクライアント時代の到来:安藤幸央のランダウン(25)
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
最近、急に「リッチクライアント」という言葉を聞くことが多くなった。「リッチクライアント」とは、ユーザーインターフェイスの見栄えや操作性が豊か(リッチ)なクライアントソフトウェアのことを指し示している。
「リッチ」というだけでは、言葉の定義が何となくあいまいではあるのは確かだ。「リッチクライアント」という定義は、操作性の貧弱なWebブラウザベースのアプリケーションと対比した形でよく使われる言葉だ(一時期注目を浴びていた3次元や動画再生のメディアリッチなクラアントの意味とは違う扱いであることに注意されたい)。
インターネット時代になって、クライアント・サーバ型のシステムからWebアプリケーションへのマイグレーションが進んだ。それは、Webアプリケーションがオープンプラットフォームであることや、開発コスト、保守の容易さなどの良い部分がフォーカスされたからだ。その一方、旧来の端末操作に習熟したユーザー層からはWebアプリケーションが必ずしも使いやすいわけではないことが指摘されるようになった。このことがリッチクライアントへの関心を高める大きな理由になっている。
ではここで、Webアプリケーションの欠点を並べてみよう。
Webブラウザを利用したアプリケーションの欠点
- ユーザーのマシン環境によって、画面のデザインや操作が変わることがある
- UI画面がサーバサイドで生成されるため応答性が悪い
- セッション管理が複雑で、操作をさかのぼって行うのは難しい
- 定型業務、大量の数値データを入力するためのクライアントに向かない
- オンライン・オフラインで利用を切り替えて操作するのが難しい
- クロスサイトスクリプティングなどのセキュリティの配慮が必要
さて、これらのポイントを吟味することで、昔のクライアント・サーバの時代に戻る方が良いと考えるのは短絡的である。大切なのは、それぞれの良いところ、悪いところを見極めることだ。次に、リッチクライアント(現在そう呼ばれている技術)の利点を並べてみよう。
リッチクライアントを利用したクライアントアプリケーションの利点
- UIの動作に高いパフォーマンスを実現でき、快適に操作できる
- デザイナーの意図を画面デザインに反映しやすい(UIをリッチなものにしやすい)
- クライアント側のマシンのパフォーマンスを利用し、メディアリッチな表現が可能
- 画面制御や画面推移をクライアント側で処理することができる
これらから、私は、静的ドキュメントの表示にはWebブラウザ、データエントリ業務のような迅速に数値を入力する必要があるものにはリッチクライアントというように、用途に応じて使い分けていく(ハイブリッドでの組み合わせでの利用)のが良いのではと考えている。
リッチクライアント指向の製品群
ところで、実際に「リッチクライアント」という製品があるわけではない。そこで、一般に広がっている、または広がりつつあるリッチクライアント製品・技術をいくつかご紹介しよう。
- ●Flash(Macromedia)
現在最も普及率が高いといわれているWebブラウザのプラグイン。 - ●Flex(Macromedia)
MXMLと呼ばれるHTMLのようなマークアップ言語とActionScriptでFlashコンテンツの作成が可能。スクリプティングだけで動的にFlashコンテンツの自動生成ができる。 - ●スマートクライアント(マイクロソフト)
Webサービスを利用し、サーバより配布・展開・アップデートを行うWindowsアプリケーション。 - ●Curl(Curl Corporation)
HTMLのようなページ記述と、JavaScriptのようなプログラミング機能を統合したクライアント側で処理を行うためのプログラミング言語。 - ●Biz/Browser(アクシスソフト)
キーボードフォーカスや、ファンクションキーによる設定が可能で、Web環境におけるユーザビリティを向上させた専用クライアント環境。画像表示のための静的データはクライアント側でキャッシングし、動的データのみサーバから取得することによって高速で安定した画面表示が行われる。 - ●Java Web Start
Javaアプレットの遅さや、プラットフォームごとの違いなどの反省の下にJavaアプリケーションをインターネット環境で最大限活用するための技術。Javaアプリケーションの起動・更新などが平易な操作で可能になる。Java Web Startと、高速化してきたSwingやSWTをベースとしたユーザーインターフェイスを構築することによって、Javaベースのリッチクライアント環境を得ることができる。 - ●Facado
大洋システムテクノロジーが販売するリッチクライアント開発・実行環境。シンガポールの国立研究機関KRDL(Kent Ridge Digital Lab.)のJavaの研究チームが興したベンチャー企業「NexsuEdge Technology」が開発する製品だ。UIを実現するためのロジックを備えた軽量(100Kバイト)のアプレットがリッチなユーザーインターフェイスを実現する。J2EEサーバとJavaアプレットの間はXMLデータの交換のみ。Eclipseのプラグインも提供されているため、Eclipse上での開発も可能だ。 - ●Nexaweb
Curlと同様にMIT(マサチューセッツ工科大学)のスピンオフ組によって開発・マーケティングが進められている注目の技術。NexawebはJ2EEサーバとXMLを利用した表現力豊かなリッチクライアントならではのユーザーインターフェイスを提供する。ユーザーインターフェイスは、XUL(ズール)をベースとし、高速にさまざまなプラットフォーム上で動作する豊かな表現が可能だ。すでに米国では事例があり、金融・証券系や、ホテルチェーンの予約システムなどに利用されている。
以上のようなさまざまなリッチクライアント技術があるが、これらの中で最近になって登場してきた技術はNexawebだ。今回は、国内ではまだ知られてないNexawebに焦点を当ててみることにしよう。
Nexawebの特徴
Nexawebは、ユーザーインターフェイスのコンテナとしての役割をもつJavaアプレットがクライアント側に常駐し、サーバとの画面情報のやりとりをXUL(XML-based User-interface Language)というXMLベースの画面記述言語で行う。アプレットがXULを解釈し、GUIを実現するのが仕組みの大枠である。このNexawebの特徴を個条書きにすると以下のようにまとめることができる。
- GUI表記言語としてXULを利用した高速軽量なユーザーインターフェイス
- JDK 1.1時代のWebブラウザ上から、Personal Java環境まで広く安定して動作(アプレットは約150kバイトの極少クライアント)
- 一般的なJ2EEベースのサーバ環境と連携して動作する
- 従来のJ2EEベースのWebアプリケーションを比較的平易で小規模の変更でNexawebクライアントへ移行できる
- 変更情報の差分のみ情報を送付するため、動作が高速・快適である
- やりとりされるXMLデータは、差分情報のみ、かつ圧縮された最小のもの
- 新規Webアプリケーションのプロタイピングが素早く可能
Nexawebの製品群は、J2EEサーバとクライアントの間に位置し、XULのやり取りを行うNexaweb Server、アプレットであるNexaweb Clientと、オーサリングツールであるNexaweb Studioに分かれる。上記の特徴を見ると、カタログスペック的には良い点ばかりに感じられる。しかし登場したばかりの技術であるがゆえに心配事もある。XULに関する情報やドキュメントが少ない。また、日本語表示は可能だが、フォントリソース管理やフォント設定の点で不安は残る。
Nexawebの日本での販売・サポートはVicus Networks Inc.が中心となって進めていくと聞いている。これから周辺情報、サポートとも充実していくことだろう。ちょうど4月末より、Nexaweb の評価版(Nexaweb Studio 3.1)の配布が開始された。Web 上で動作させることのできるデモのほかに、実際のNexaweb Clientで動作するプログラムをWISYWIGベースのオーサリングツールで開発することができる。従来のWebブラウザベースのWebアプリケーションの遅さに閉口している方は、ぜひ一度Nexawebの素早さを体感してみてほしい。
今回は、リッチクライアントの良さを中心的に取り上げた。あらゆるシステム要件においてリッチクライアントが最適解であるとは限らない。ここに注意を怠ってはいけない。旧来のレガシーシステムの良さもあり、広く普及したWebブラウザベースのアプリケーションのアドバンテージも数多い。
大切なことは、システムに全体における大切な部分、高速に動作しなければならない部分、開発費を圧縮しなければいけない部分など、的確な視点で、的確な技術を選択し全体を組み上げるということだ。
次々に登場してくる新しい技術に踊らされることなく、的確な技術を見分ける目を養っていってほしい。そしてまた新しい技術に果敢に挑戦し使っていく姿勢も同じくらい大切なことを忘れないでいてほしい。
次回は6月下旬の公開予定です。
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.