「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
本記事は2005年に執筆されたものです。環境構築についての最新情報は「バージョン別セットアップマニュアル一覧」の「Eclipse」をご参照ください。Eclipse全般の最新情報は@IT キーワードINDEXの「Eclipse」をご参照ください。
Eclipseはもともと米IBMが自社のアプリケーションサーバであるWebSphere Application Server用の開発環境として力を入れていたものです。その後Eclipseはオープンソースコミュニティに提供され、多くの開発者に浸透し、今日に至っています(Eclipseとは日食や月食の「食」のことを示します。サン・マイクロシステムズを覆い隠してしまう日食のことを想像すると、何とも皮肉ですね)。
Eclipseは、バージョン2.1以前までは、Javaの統合開発環境として注目を浴びていました。豊富なプラグインがそろった環境であり、かつ必要に応じてプラグイン自身を開発することも可能である点も好評を博した理由の1つです。EclipseはJavaで作られた開発ツールでありながら、高速なGUIを実現するSWT(Standard Widget Toolkit)をベースに作られているため、軽快な動作をするユーザーインターフェイスを実現しており、それが好評を博していました。
そのEclipseは、バージョン3.0になり、単なる開発環境ではなくなりました。Eclipse RCP(Rich Client Platform)と呼ばれるリッチクライアントのプラットフォームとして環境が整えられ、Eclipseベースで動作するプラグインライクなアプリケーションをリッチクライアントとして単独で扱うことができるようになったのです。
最初にプラグインの動作環境を構築するためのorg.eclipse.core.runtimeはわずか数十キロバイトであり、アプリケーション全体としてもサイズが小さく、軽量なリッチクライアントとしてアプリケーションの配布が可能です。RCPベースのアプリケーションを利用するのには、Eclipse全体のインストールは必要ないわけです。
RCPの骨格がEclipseであることの利点はほかにもあります。下記のような一般的なアプリケーションが持つべき仕組みが平易に提供されているところです。
さらに開発者にとってのメリットとして取り上げられるのは以下の項目です。
上記のような利点が挙げられる一方、次のような短所もあります。それは従来動いていたWebアプリケーションや、Javaアプリケーションを移植、移行するような場合には、ユーザーインターフェイス回りを含め、大幅な書き換えが求められることです。それでは、RCPの実力を知る意味でも、RCPベースのWebアプリケーションをいくつか紹介していきましょう。
Eclipse TraderはRCPとして作られた株価チャート表示を行うツールです。逐次変化していく株価情報をインターネット上から取得し、リアルタイムに表示します。
Lotus WorkplaceはLotus Notesで知られるような統合オフィスツールです。スケジュールの設定や、メールの送信、ファイルの送付、会議の設定、特定の相手と(インスタントメッセンジャー)でメッセージのやり取りが可能です。またプロジェクター機能を持ち、同じWebページを見ながら遠く離れた相手と会議を進めることなども可能です。
・http://www.lotus.com/products/product5.nsf/wdocs/workplacehome
eRCPはIBM、Motorola、Nokiaが提唱する組み込み向けのRCPです。主に車載コンピュータや、情報携帯端末(PDA)での利用が考えられています。ユーザーインターフェイスとしてSWTの代わりに組み込み向けのeSWTが考えられています。
・http://www.eclipse.org/proposals/eclipse-ercp/
WebRCPはRCPベースのアプリケーションをJava Web Startで起動し利用するためのフレームワークです。
・http://sf.net/projects/webrcp/
RCPLiteはRCPのサブセット版という位置付けで、RCPフルセットを必要としない軽量アプリケーションのベースとして活用されます。Eclipse 3.0ベースのものとEclipse 2.1ベースのものが存在します。
・http://www.swtworkbench.com/devzone/rcplite/index.shtml
Syndicattoは、RCPベースで開発されたRSS(Rich Site Summary)アグリゲーターです。現在のところ開発中であり、一般には公開されていません。
Eclipse 2.1の時代にSWTやEclipseのプラグインアーキテクチャを利用して開発したWebクライアント。正確にはRCPではないようです。
・http://www.alterpoint.com/products/technologies.html
RCPをベースとしたリッチクライアントは、OSGi(Open Services Gateway initiative)を中心とし、各社が力を入れています。一般的なパソコンのクライアントとしてだけではなく、セットトップボックスなど組み込み用途向けにも発展が見込まれています。
RCPがリッチクライアントとして歓迎される一番の点は、何よりもWebブラウザを利用したWebアプリケーションの「もたもた感」がないことにあります。作りの悪いWebアプリケーションでは、値を設定するたびにサーバに問い合わせに行き、細かな待ち時間が多い場合もあります。また、前ページに戻ったら、すべて入力した値が消えてしまう使い勝手の悪いアプリケーションもないわけではありません。
RCPでリッチクライアントを開発すれば、すべての要因がうまく解決するというわけではありませんが、多くの利点を持った使いやすいWebアプリケーション構築のベースとなることは確かです。RCPベースのアプリケーションはまだまだ多くはありません。Lotus Workplaceを見れば、大規模のリッチクライアントアプリケーション構築が可能であることが分かります。さらにEclipseのプラグインの多さを考えると、今後のRCPの増加にも期待されます。
RCPでのWebアプリケーションの利点として、ネットワークにつながっていないときの動作も作り込むことができる点にあります。クライアント側単体で動作する機構も作り込むことができ、サーバの動作やレスポンスに左右されない操作環境を提供することができるのです。
一時期 GoogleがWebブラウザを開発しているのではないかとのうわさが流れました。現在そのうわさは否定されており、真偽のほどは定かではありません。現在Internet Explorerのシェアが低下しMozilla Firefoxの台頭が話題に上ることが多くなってきました。未来のWebブラウザはリッチクライアント的思想に基づき、WebサービスやRSS/ATOMなどを統合した形であると予想されます。数年後はいったいどんなWebブラウザを使っているのでしょうか? それともWebブラウザといえないような、多機能なリッチクライアントが主流になっているのかもしれませんね。
安藤幸央(あんどう ゆきお)
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.