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