Eclipse は、統合化された Web およびアプリケーション開発ツールを構築するために、ゼロから設計されたプラットフォームです。 プラットフォーム自体は、設計上、それ程多くのエンド・ユーザー機能は提供しません。 プラットフォームの真価は、それによって促進されるもの、 つまり、プラグイン・モデルに基づく、統合化されたフィーチャーの迅速な開発にあります。
Eclipse は、ツールを扱うための共通のユーザー・インターフェース (UI) モデルを提供しています。 Eclipse は、複数のオペレーティング・システムで実行されるように設計されている一方で、 各基本 OS と堅固に統合されています。 プラグインは、Eclipse の移植可能な API に従ってプログラミングし、 サポートされているどのオペレーティング・システム上でも、それを変更することなくそのまま実行することができます。
Eclipse のコアには、プラグインの動的な検出、ロード、および実行のためのアーキテクチャーがあります。 プラットフォームは、正しいコードを検出し、実行するためのロジスティクスを処理します。 プラットフォーム UI は、標準のユーザー・ナビゲーション・モデルを提供しています。 したがって、各プラグインは、少数のタスクの実行に集中することができます。では、どのような種類のタスクなのでしょうか? 定義、テスト、アニメーション、パブリッシング、コンパイル、デバッグ、ダイアグラミング、など想像できるものすべてです。
Eclipse プラットフォームは、オープン・アーキテクチャーを定義しているので、 各プラグイン開発チームは、自分たちの専門領域に集中することができます。 リポジトリーの専門家は、バックエンドを構築し、 使用可能度の専門家は、エンド・ユーザー向けのツールを構築することができます。 プラットフォームの設計が良ければ、重要な新規フィーチャーおよび統合のレベルを、 他のツールに影響を与えることなく追加することができます。
Eclipse プラットフォームは、共通ワークベンチというモデルを使用して、エンド・ユーザーの観点からツールを統合します。 開発するツールを、拡張ポイントと呼ばれる定義済みのフックを使用して、ワークベンチにプラグインとして組み込むことができます。
プラットフォーム自体は、プラグインのレイヤーにビルドされます。各レイヤーは、下位レベルのプラグインの拡張ポイントへの拡張を定義し、将来のカスタマイズ用の独自の拡張ポイントも定義します。 この拡張モデルを使用すると、プラグイン開発者は、基本ツール・プラットフォームにさまざまな機能を追加できます。 ファイルおよびその他のデータなど、各ツールの成果物は、 共通プラットフォームのリソース・モデルによって調整されます。
プラットフォームは、ツールを扱うための共通の方法と、 ユーザーがプラグインを使用して作成するリソースの統合管理をユーザーに提供します。
プラグイン開発者も、このアーキテクチャーから得るものがあります。 プラットフォームは、異なるオペレーティング・システム、あるいはワークグループ・サーバー環境などの、 さまざまの複雑なランタイム環境も管理します。 プラグイン開発者は、これらの統合化の問題に煩わされることなく、自分のタスクに集中することができます。
Eclipse プラットフォーム自体は、1 つ以上のプラグインにインプリメントされているサブシステムとして構成されています。 サブシステムは、小さなランタイム・エンジンの上に構築されています。 以下の図は、単純化したビューを表しています。
サブシステムを構成するプラグインは、プラットフォームに振る舞いを追加するための拡張ポイントを定義します。 下の表に、1 つ以上のプラグインとしてインプリメントされているプラットフォームの 主なランタイム・コンポーネントを示します。
プラットフォームのランタイム |
拡張ポイントおよびプラグイン・モデルを定義しています。これは、プラグインを動的に検出し、 プラットフォームのレジストリーにプラグインとその拡張ポイントに関する情報を保持します。プラットフォームのユーザー操作に従って要求されたときに、プラグインが開始します。ランタイムは、OSGi フレームワークを使用してインプリメントされます。 |
リソース管理 (ワークスペース) |
ツールによって作成され、ファイル・システムに保管されるリソース (プロジェクト、ファイル、およびフォルダー) の作成と管理のための API を定義しています。 |
ワークベンチ UI |
プラットフォームをナビゲートするための、 ユーザー・コックピットをインプリメントします。 これは、ビューやメニュー・アクションなどの UI コンポーネントを追加するための拡張ポイントを定義します。 これは、ユーザー・インターフェースを構築するための 追加ツールキット (JFace と SWT) を提供します。UI サービスが構造化されているため、UI プラグインのサブセットを使用して、 リソース管理およびワークスペース・モデルに依存しないリッチ・クライアント・アプリケーションをビルドできます。 IDE セントリック・プラグインは、リソースをナビゲートし操作する追加機能を定義します。 |
ヘルプ・システム |
プラグインが、ヘルプまたは他のドキュメンテーションをブラウズ可能なブックとして提供するための 拡張ポイントを定義しています。 |
チーム・サポート |
リソースの管理およびバージョン管理のためのチーム・プログラミング・モデルを定義しています。 |
デバッグ・サポート |
言語に依存しないデバッグ・モデル、さらにデバッガーおよびランチャーをビルドするための UI クラスを定義します。 |
その他のユーティリティー |
その他のユーティリティー・プラグインは、リソースの検索と比較、XML 構成ファイルを使用したビルドの実行、 サーバーからのプラットフォームの動的な更新などを行う機能を提供します。 |
コンピューターの枠を超えて - または Web を離れて - 基本プラットフォームは、 あらゆるものの統合開発環境 (IDE) です (それ以外の何物でもありません)。
プラットフォームの最終的な機能を決定するものはプラグインです。 したがって、Eclipse SDK には、その機能を強化するための追加プラグインが付属しています。
プラグインは、Java ファイル、C プログラム、Word 文書、HTML ページ、 および JSP ファイルなどのリソースの追加タイプの編集と管理をサポートすることができます。