Eclipse を使用して開発されたアプリケーションをユーザーが起動すると、プラットフォーム・ランタイム・エンジンが始動します。 ランタイムは、プラットフォームで使用される基本的なプラグイン・モデルとインフラストラクチャーを実装します。 ランタイム・エンジンは、インストールされているすべてのプラグインと、各プラグインによって提供される機能を追跡します。
プラグインは、システムに対してコード (またはドキュメント、あるいはその両方) をコントリビュートし、 それを構造化された方法で記述する構造化されたコンポーネントです。 プラグインは拡張ポイントを定義することができます。拡張ポイントとは、他のプラグインによる拡張が可能な、正しく定義された機能です。 プラグインが拡張ポイントに機能を提供する場合、プラグインはプラットフォームに拡張を追加する、という言い方をします。これらの拡張と拡張ポイントは、プラグインのマニフェスト (plugin.xml) ファイルで宣言されます。
共通拡張モデルを使用すると、プラグインの拡張方法およびクライアント・プラグインが提供する拡張をそれぞれのプラグインが構造化された方法で記述できます。 拡張ポイントの定義は、他の API の定義とよく似ています。 唯一の違いは、拡張ポイントがコード・シグニチャーではなく XML を使用して宣言されることです。 同様に、クライアント・プラグインは XML を使用して、システムに対する特定の拡張を記述します。
ランタイムの一般的な目標は、インストールされてはいるが使用されていないプラグインに対して、 エンド・ユーザーにメモリー上またはパフォーマンス上のペナルティーが科されない、というものです。宣言を使用するというプラットフォーム拡張モデルの性質により、ランタイム・エンジンは、プラグインによって提供される拡張ポイントおよび拡張が何であるかを、それらを実行することなく判別できます。 そのため、多数のプラグインをインストールできますが、プラグインが備えている機能がユーザーの活動に従って要求されるまでは、 どのプラグインもアクティブにはなりません。 これは、拡張が容易で堅固なプラットフォームを提供する上で重要な機能です。