MVC
アーキテクチャの採用によるビジネスロジックのコンポーネント化
cFramework は、Sun Microsystems
から公開されているBluePrints
のデザインを踏襲し、その中で推奨されているMVCアーキテクチャを採用しています。MVCアーキテクチャはSmalltalk
においてGUI のアプリケーションを構築するためのパターンとして考案されたものですが、Model をView
とController から分離して、Model の再利用性を高めようとする考え方は、実装技術に依存することなく、Web
ベースのシステムに対しても有効です。MVC
アーキテクチャは、コンポーネントの再利用を促進していくうえで最適なアーキテクチャパターンの1 つです。
Web 層とEJB
層の分離
cFramework は、システム全体をWeb
サーバ(サーブレットコンテナ)とEJBサーバ(EJBコンテナ)に分散配置できるように考慮しています。Web
層では、ブラウザからのリクエストの受付、EJB 層へのリクエストオブジェクト(イベント)の生成、EJB
層へのリクエスト、次画面の決定、画面遷移を大きな役割としています。EJB
層では、クライアントのタイプ(ブラウザ、Java
アプリケーション、アプレットなど)を意識することなく、ビジネスロジックを実行するという役割を担っています。
スケーラビリティ
cFramework は、EJB を利用しないWeb
アプリケーションを構築することもできます。特に照会系のシステムで、コンポーネント化の必要がない場合は、EJB
層へのリクエストをおこなうことなく、メインサーブレットとビューだけで動作できるように構築されています。また、EJB
層へのリクエストをおこなう場合とおこなわない場合との違いをできる限りなくし、どちらのパターンでもHTTP
セッションやHTTP リクエストに保管したオブジェクトをView
が自律的に照会するように設計されています。
もちろん、大規模な開発においては、プログラムをWeb層とEJB層へ分離するなど分散環境への対応を図る必要があり、cFrameworkではそれを意識することなく開発に専念できます。
優れた再利用性により、生産性が向上
cFramework上で開発されたJavaプログラムやEJBコンポーネント、ビジネスフローは様々なアプリケーションモデルで再利用が可能になります。MVCアーキテクチャに基づいたこれらのコンポーネントを再利用することで、新規開発においても追加開発においても開発期間が短縮され、生産性が大幅に向上します。
システムコンポーネントやユーティリティを標準装備
本来、ソフトウェアアーキテクチャであるフレームワークにはアプリケーションや機能は含まれていません。ログファイルの取得やオブジェクトの永続化、入力チェックなどはフレームワークから見れば一つのアプリケーションに過ぎません。しかしながら、Webアプリケーションにおけるコンポーネント開発の生産性をさらに向上し、信頼性の高いシステムを、短期間に構築するためには、いくつか標準的なシステムコンポーネントやユーティリティがあると便利です。cFramework2.0では以下のようなシステムコンポーネントやユーティティを提供しています。
■システムコンポーネント
cSQLBuilder
cSQLBuilder
は,SQL文を断片化させたテンプレートをXMLとして記述し,実行時にパラメータ値の集合を与えることによって,動的SQL文を自動的に組み立てるコンポーネントです。