図1●Eclipseプラットフォーム(3.0以降)
図1●Eclipseプラットフォーム(3.0以降)
[画像のクリックで拡大表示]
図2●拡張ポイントによる機能拡張
図2●拡張ポイントによる機能拡張
[画像のクリックで拡大表示]
画面1●サンプル・ビュー
画面1●サンプル・ビュー
[画像のクリックで拡大表示]
リスト1●plugin.xml(抜粋),<a href="./plugin.xml" target="_blank">全体表示</a>
リスト1●plugin.xml(抜粋),<a href="./plugin.xml" target="_blank">全体表示</a>
[画像のクリックで拡大表示]
リスト2●SampleView.java,&lt;a href="./SampleView.zip" target="_blank"&gt;圧縮ファイル・ダウンロード&lt;/a&gt;
リスト2●SampleView.java,<a href="./SampleView.zip" target="_blank">圧縮ファイル・ダウンロード</a>
[画像のクリックで拡大表示]

この連載記事の目次へ

 今回は,オープンソースで実現するリッチクライアント技術の最後として「Eclipse RCP」を紹介する。Eclipse RCPはWebブラウザ上で動くものではないという点で,第2回で紹介した「Ajax」第3回で紹介した「OpenLaszlo」とは大きく異なる特徴をもつ。

Eclipseの“純正”リッチクライアント

 Eclipse RCP(Rich Client Platform)はEclipse Foundationからリリースされている,Eclipseの“純正”リッチクライアント・アプリケーション構築プラットフォームである。Eclipse3.xから利用可能になった。

 今までもクライアント・サイドのJavaとしてはアプレットやSwingなどのように大きな期待を背負って登場したものがあったが,動作の重さや,開発コストの問題など,期待されていたほどの普及には至っていない。しかし,Eclipse RCPはEclipseの柔軟なレイアウト,フレームワーク,軽快なUI,更新機能など,既存のクライアント・サイドJavaの多くの問題点を解決できる。

 このような背景から,Eclipse RCPはクライアント・サイドへのJavaの普及の鍵を握る技術として注目され,国内外で盛んにアプリケーション開発が行われている。

Eclipse RCPの特徴

  • ブラウザ上では動作しないため,配布を自動化するためにはJava Web Startなどの配信の仕組みが必要
  • すべてJavaで記述されているため,Java技術者は新たな言語や技術を覚える必要がない(特有の記述方法や,コンポーネントの使用方法は覚える必要がある)
  • 多くのJavaのオープンソース・ソフトウエアを取り込むことができる
  • Eclipse RCPで用意されているのはクライアント・サイドのみでサーバー・サイドは独自に用意する必要がある

    Eclipseから最小限の機能を抽出

     まず,なじみのない方のためにEclipseの構成について簡単に説明しておこう。

     Eclipseは図1のようにランタイム,SWT,JFace,UIといった動作に必要な最低限の機能をベースとしている。その上にプラグインと呼ばれる機能拡張を加えていくことで様々な機能を実現する。

     今回取り上げているEclipse RCPはこのEclipseプラットフォームから動作に最低限必要な部分を抽出したもの。アプリケーション開発は,このEclipse RCPの上に,必要なプラグインを作成し追加していく作業になる。

     例えば,Javaの開発環境としてはデファクト・スダンダードとなったEclipse SDKはEclipseにJavaの開発に必要な機能をプラグインとして追加したものであるが,別のプラグインを追加した場合は業務システムのクライアントなど,まったく異なる機能をもつアプリケーションを作成することができるのである。

     それでは,Eclipse RCPによるアプリケーション開発の流れを簡単に見ていこう。