これまで2回にわたって,JavaSE6に搭載されたスクリプト呼出機能(Scripting),そしてその機能を利用して呼び出せるスクリプト言語の1つApache Velocityについて紹介した。

 今回はJavaSE6の機能を利用している訳ではないが,スクリプトをJ2EEアプリケーションで上手く利用している例として,Apache OFBizというプロダクトを紹介しよう。

ERP,CRM,SCM,Eコマースを公開

 OFBizは,正式にはThe Open For Business ProjectというApache Software Foundation(以降,ASF)のトップレベルプロジェクト(TLP)だ。OFBizは,その名が示す通り,「実ビジネスで利用可能なアプリケーション・プロダクトをオープンソースで提供する」というプロジェクトで,現在下記の機能をもったアプリケーション・プロダクトを即利用可能なWebアプリケーションの状態で提供している。

  • ERP
  • CRM
  • Eコマース
  • SCM
  • MRP
  • CMMS/EAM

     ASFの他の多くのプロジェクトが,アプリケーションの基盤(アプリケーションサーバーなど)や部品,ツールやフレームーワークといった,それらを利用してアプリケーションを構築する必要があるプロダクトを提供しているのに対して,OFBizではそれ単体で完成したアプリケーション・パッケージを提供しようとしている。この流れはオープンソースが新しい領域に進出しはじめたことを示しているといえるだろう。

     これまでも,CMSやE-Commerceなどはオープンソースのアプリケーション・パッケージが存在していたが,より高度な機能を要求されるERPやSCMといった分野のオープンソースのアプリケーション・パッケージはあまり存在しなかった。このような分野のパッケージはそのままで利用することはまれであり,利用側の実情に合わせて改修することがほとんどだろう。このような場合でも,OFBizが採用している商利用および改変可能かつ改変部の公開義務がない ASLライセンスでアプリケーションが配布されることの意義は大きいだろう。

     今後,さらに多くのプロダクトがアプリケーション・パッケージの分野に誕生することで,コマーシャルパッケージとの競争が生まれ様々な相乗効果が生まれる事を期待したい。

    OFBizのアーキテクチャ

     さて前置きが長くなったが,今回注目したいのは OFBiz が提供しているアプリケーション・パッケージの機能そのものではない。本稿で注目するのはアプリケーションが採用しているアーキテクチャだ。

     なぜなら,多くのアプリケーション開発において,その内部構造の均一化やパターン化は大きな課題である。このような課題は,実際のアプリケーション構築においては,アーキテクチャ設計や方式設計というフェーズで解決され,開発時にどのような方式を採用するかを決定する必要がある。この設計を怠ってしまうと,品質低下や作りのばらつき,メンテナンスが困難となるなど,様々な弊害が発生する危険を生む可能性がある。それゆえ,現在でも様々な方式が提唱され活発に検討が行われている。

     有名なものでは J2EE BluePrintsや,Expert One-on-One J2EE Design and Development(邦題「実践 J2EEシステムデザイン」ソフトバンククリエイティブ刊)もアプリケーション全体の作り方を示しているとう点では,これにあたるだろう。

     また,実際の開発現場においても様々なアーキテクチャを設計している事だろう。例えば,Webアプリケーションにおいては,プレゼンテーションの生成にはJSPを利用するのか?Velocityを利用するのか?また,コントローラはJSFなのか Strutsなのか?DIコンテナは利用するのか?データベースへのアクセス方式はどうするのか?といった大きな決め事から,大量な検索結果の表示方法や認証・認可の制御といった機能レベルの方法まで実に様々な事を決める必要がある。そして,必要に応じてフレームワークを作成していることだろう。

     OFBizでも,ERPやSCMといったアプリケーションを構築する際に,アプリケーション全体の構造が均一化するようさまざま決まりを設け,それに従うようなフレームワークを用意している。この決まり事=アーキテクチャを本稿では紹介し,今後の皆さんが設計するアーキテクチャの参考にしていただきたい。

    OFBizのフレームワーク