写真1●Ajaxの例 Google Maps
写真1●Ajaxの例 Google Maps
[画像のクリックで拡大表示]
写真2●OpenLaszloで開発したFlashアプリケーション
写真2●OpenLaszloで開発したFlashアプリケーション
[画像のクリックで拡大表示]
写真3●Eclipse RCPで開発したJavaアプリケーション
写真3●Eclipse RCPで開発したJavaアプリケーション
[画像のクリックで拡大表示]
図1●リッチクライアント登場までの流れ
図1●リッチクライアント登場までの流れ
[画像のクリックで拡大表示]

この連載記事の目次へ

 「リッチクライアント」という言葉が誕生して約2年。ECサイトや業務システム構築に欠かせない技術として定着してきたリッチクライアントだが,ここに来て大きな変化が起きている。要因は2つある。

 一つはWebブラウザ本体だけでリッチクライアントを実現するAjax(Asynchronous JavaScript + XML)の出現。もう一つは,OpenLaszloやEclipse RCPといったオープンソースのリッチクライアント開発環境が実用レベルに到達したことだ。

 Ajaxもオープンソース・ソフトウエアを活用することで実現できる。本連載では,リッチクライアントを実現するオープンソース技術としてAjax,OpenLaszlo,Eclipse RCPの3つを紹介していく。それぞれの詳細については次回以降解説するが,まずはその概要と実例をご覧いただきたい。

 Ajaxは,DHTML(JavaScript + CSS)とXMLによる非同期通信を利用して,Webページをリロードすることなく更新し,通常のPCアプリケーションのような高い操作性を実現するものだ。代表的な例として,Google Maps写真1)がある。ページ全体を読み込むことなく地図を拡大したり,マウスで地図をつかんで移動させたりすることができるその操作性は,多くの開発者に衝撃を与えた。

 OpenLaszloは,Flashでリッチ・クライアントを開発するための開発ツールおよび実行環境だ。簡単なスクリプトでアプリケーションを記述できる。アーキテクチャは米MacromediaのFlexに似たアーキテクチャである。開発元であるLazlo Systemsのサイトに,OpenLaszloで開発したアプリケーションがある(写真2)。各デモのLaunch Appをクリックするとデモアプリケーションが起動するので触って見て欲しい。

 Eclipse RCP(Rich Client Platform) は,クライアントのJavaでリッチクライアントを実現するための開発・実行環境。統合開発環境Eclipseのプラグインとして実装されている。Webブラウザを使用しないため最も自由度が高い。Eclipse RCP CommunityのOpen Source RCP ApplicationsのリンクをクリックするとEclipse RCPベースのアプリケーションを見ることができる(写真3)。

 以下,第1回となる今回は,リッチクライアント技術の全体像から解説していく。

リッチクライアントが登場した背景

 まずはリッチクライアントが登場するまでのクライアント技術の流れについて見ていこう。

 インターネットが普及する以前,多くのシステムはクライアント/サーバーで構築され,クライアントには専用のソフトをインストールして使用するのが主流であった。しかし,クライアント/サーバーモデルで構築されたクライアント(ファットクライアント)は,操作性は高いものの,バージョンアップ時の配布コストが高いという問題があった。

 そのようなファットクライアントの高コスト問題を解決すべく出てきたのが,クライアントにWebブラウザを使用し,特別なクライアントソフトを必要としない「HTMLクライアント」(注1)である。HTMLクライアントはインターネットの普及とともに一気に広がり,現在最も多く利用されているクライアント技術である。しかし,HTMLクライアントでは,コストと引き換えに操作性を犠牲にしたため,多くのユーザーが不満を抱えたまま使用していた。このようなファットクライアントの高コスト体質,HTMLクライアントの低操作性の両方を解決する技術として,リッチクライアントという概念が登場する(図1)。

注1:場合によってシンクライアント,プアクライアントと呼ばれるが本連載ではHTMLクライアントで統一する

 リッチクライアンとは低コスト,高操作性を実現する技術の総称であり,最低限以下の条件を満たしていればリッチクライアントと呼ぶことができる。

1.高い操作性を実現していること
2.クライアントへのソフトの配布が容易であること

 そのため多くの異なる技術がリッチクライアントと呼ばれており,そのことが本質がとらえにくい原因となっている。