Okapi Project

プラグイン化に関する設計(思いつき版)

バージョン
2003 年 09 月 14 日 Ver.1.0
作成者
T.Itoh ( Xware )

要約

フレームワークの次期バージョンでは Eclipse などのようにプラグインを追加するだけで機能が増えていくような機構を実現したいとかんがえています。そのための設計として思いついた点を書き連ねたものです。 思いつきだけの記述のため多分にして誤った記述がある可能性が高く、気付いた方が修正していただけると非常に助かります。

目次


1.プラグイン的な構造で提供されているプロダクト

1.1.Eclipse

Eclipse がプラグインとして機能を自在に追加する機能があり、またそのプラグインを開発者が自由に開発可能なことは比較的有名ですが、Eclipse の Java 開発部分もプラグインとして(JDT というプラグイン)初期状態に組み込まれていることを知っている人は少ないと思います。C/C++ 言語や PHP 、さらには COBOL の開発環境までプラグイン化されているますが、初期状態で組み込まれているものが C/C++ のものであったら現在ほど Eclipse が開発環境としてメジャになったかどうかは怪しいと思います。

1.2.JBoss

オープンソースの J2EE サーバとして最近注目されている JBoss もプラグイン的な構造で作られています。こちらは MBean(Managed Bean) という Java Beans に似た軽量なコンポーネントを組み合わせて全体を構成する設計となっています。この MBean というのは Java の規格である JMX(Java Management Extensions) に沿ったものです。新しく機能追加する場合も、既にあるサービスを JBoss に組み込む場合でも MBean によってラップすることで簡単に追加することができます。

2.結論

つまり、プラグインとして後から機能を追加することができるプロダクトというものは、「本体そのものもプラグイン化されている」という事実があります。本体そのものをプラグイン化しなくても Eclipse や JBoss のように機能追加を行っていく機構を開発することは可能であると考えられますが、本体までをもプラグイン化するメリットは何と言っても「ユーザが本体の機能で不要なものを自由にはずすことができる」点にあると考えられます。

これらの設計を鑑みて、フレームワークをプラグイン化する際にフレームワークの主要な機能をすべてプラグイン構造にして提供すると言うのがスマートな設計のように思えます。

Copyright © 2003 - 2006 Okapi Project All Rights Reserved.