PACフレームワーク - MVCの次に来るもの | Ouobpo

PACフレームワーク - MVCの次に来るもの

 いまやWebアプリケーションフレームワークの世界では、MVCが全盛だ。StrutsもJSFもTapestryもWebWorkも、みんなMVCフレームワークであることに変わりがない。MVCフレームワークの要点は、ビジネスロジック(Model)と画面(View)とを明確に分離することにある。その両者を繋ぐのがコントロール(Control)の役目になる。

 Webアプリケーションフレームワークは、今後も色々なものが出てくるだろうが、MVCである限り、開発がどれだけ容易かといった細かな部分の違いを競い合うくらいしかできないだろう。もっと考え方をドラスティックに変えないと、新しいものは出てこない。

 そんな中で、Webアプリケーションフレームワークに面白い動きがあるとすれば、プラグインベースのWebアプリケーションプラットフォームを作る、といった方向性がひとつあるだろう。Seasarファンデーション傘下で開発が進められているKvasir/Soraなどが、こういった方向に向かって進もうとしている。Eclipseのようなプラグインシステムを、Webのプラットフォームでも実現できたら、かなり面白い。

 ところが、プラグインベースで考えると、MVCを実現するのはなかなか難しい。プラグインごとにビジネスロジックと画面を持たねばならないので、フレームワークでばっさりMとVを切ることが容易でない。

 そこで私が有効だと思うのは、PACフレームワークだ。PAC(Presentation-Abstraction-Control)は、POSAで紹介されているアーキテクチャパターンの1つで、AbstractionがMVCのM、PresentationがMVCのV+Cに相当する。ControlがPACに特徴的な要素だ。PACシステムは、それぞれが画面とロジックとをもった独立したエージェントで構成される。そのエージェント同士が通信しあうためのコンポーネントが、PACのControlになる。

F. ブッシュマン, H. ローネルト, M. スタル, R. ムニエ, P. ゾンメルラード, ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系

 Kvasir/Soraがどういった構造になっているかは知らないのだが(調査しないといけない・・・)、プラグインをPACエージェントにすることで、プラガブルなWebアプリケーションフレームワークを作れるのではないだろうか。