TOP調査レポート> Eclipse RCPの構成
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密
オープンソースをこう使った! 〜 運用管理ツールHinemosの秘密

第3回:Eclipseで実現した統合運用画面について

著者:NTTデータ  大上 貴充   2006/8/31
前のページ  1  2  3  次のページ
Eclipse RCPの構成

   Eclipse RCPで作成するアプリケーションは、Eclipse RCPが提供するプラットフォームとSWT(Standard Widget Toolkit)やJFaceと呼ばれるGUI作成用のコンポーネントを利用することで実現されます(図2)。

   提供する機能はすべてプラグインとして構築されます。Eclipse RCPのアプリケーションが起動すると、まずプラットフォーム・ランタイムと呼ばれる実行エンジンが起動します。このランタイムが、必要となる機能を提供するプラグインをロードし実行するモデルとなっています。プラグインは他のプラグインの機能を利用することができ、機能拡張することが可能です。

   Eclipse RCPアプリケーションの画面全体の枠組みを提供するプラグインが、ワークベンチとなります。ワークベンチは、SWTおよびJFaceにより構築されており、ユーザ操作によるビューの表示や、メニュー/ボタンにより起動される機能の連携を実現します。

Eclipse RCPを構成するコンポーネント

図2:Eclipse RCPを構成するコンポーネント


SWTとJFace

   SWTはEclipseを構成するGUIツールキットです。Eclipse RCPのGUIを構成するもっともプリミティブな部品となります。OSのネイティブAPIを呼び出すことで、軽快に動作するのが特長です。

   SWTは汎用的なGUI開発基盤を提供しますが、この汎用的なツールキットをもとに一から実装するのは煩雑な作業になります。そこでSWTをベースに、より実際のGUIアプリケーション開発で有用なGUIコンポーネントを提供するフレームワークが用意されています。それが、JFaceです。

   SWTをラップすることで、より複雑で抽象度の高いGUIを可能とするビューアクラスや、メニュー/ツールバーを透過的に扱うためのアクション・フレームワークなどを提供します。JFaceを利用することで、SWTを直接使うよりも容易に高機能なGUIアプリケーションの開発が可能となります。


Eclipse RCPで実現した統合運用画面

   Hinemosは、運用管理の機能として主に5つの機能(リポジトリ機能、監視管理機能、性能管理機能、ジョブ管理機能、一括制御機能)を提供します。これらの機能を1つのクライアントアプリケーションで統一的に操作することを可能としています。

   実際の運用シーンでは、複数の機能画面をいくつか同時に表示した状態で使用することになると思います。例えば、イベント監視画面とCPUの性能グラフ画面を同時に表示しつつ、ジョブ管理画面にてジョブの実行を行うといった具合です。

   このような使い方を可能とするため、Eclipse RCPのビューとパースペクティブを有効に利用しGUIを実装しました。各機能の操作・確認画面をビューで実現し、自由なレイアウトを可能としています(図3)。

Hinemosの統合画面
図3:Hinemosの統合画面
(画像をクリックすると別ウィンドウに拡大図を表示します)

   以下で、Eclipse RCPの機能をどのように利用し、Hinemosの画面を実装したのかを説明いたします。


ビューによる機能画面の実装

   Hinemosの各機能画面がビューで構成されていることはすでに述べましたが、このビューを構成する部品は主に2種類のものからなります。1つはスコープ(注1)をWindowsのエクスプローラのようにツリー状に表示する部品、もう1つは各種情報を一覧でテーブル状に表示する部品です。

注1: Hinemosの特長である、管理対象のノードを階層的にグループ化する概念。詳細は、前回の「第2回:OpenLDAPによるリポジトリ機能について」を参照ください。

   これらは、どちらもGUI作成ではよく使われる部品であるため、JFaceがViewerと呼ばれるコンポーネントとして提供しています。階層構造を持つデータをツリー状態で、表示・操作することができるTreeViewerと、データの一覧表示を実現するTableViewerがそれにあたります。

   これらの基本コンポーネントを利用することで、実装量を削減しつつ高度な操作性・表現力を持つGUIを実現することができます(図4)。

JFaceのViewerクラスを利用したビュー
図4:JFaceのViewerクラスを利用したビュー
(画像をクリックすると別ウィンドウに拡大図を表示します)

前のページ  1  2  3  次のページ


NTTデータ  大上 貴充
著者プロフィール
株式会社NTTデータ   大上 貴充
基盤システム事業本部 オープンソース開発センタ
2004年よりOSSを用いたシステム構築、運用管理ツールの研究開発に従事。現在はHinemosの開発メンバとして、より一層の機能充実、品質向上とコミュニティの創造を目指して活動中。

INDEX
第3回:Eclipseで実現した統合運用画面について
  はじめに
Eclipse RCPの構成
  パースペクティブの利用