# Conga フレームワークとは？

Conga とは，Ajax ベースの軽量な Java Webアプリケーションフレームワークです。

## Conga フレームワークの特徴

Conga フレームワークには以下の特徴があります。

### かんたん開発

たった４つのステップ ( HTMLの作成， Valueオブジェクトクラスの作成， コントローラ（ビジネスロジック）クラスの作成，定義ファイル(XML)の設定 ) だけで，ちゃんと動作する Web アプリケーションを開発することができます。

### Ajax

Conga フレームワークは，サーバクライアント間の通信が，主として XMLHttpRequest を使用して行なわれることを前提に設計されています。
XMLHttpRequest の利用により，Webアプリケーションは「画面の部分書き換え」を行なうことが出来るようになり，画面レスポンス性能が向上するとともに，画面のちらつきを抑えることができます。

さらに，テーブル，ツリー，内部ウインドウ等を標準的な dhtml 部品 (IWidgets オブジェクト) として提供することにより，より高い操作性を容易に実現できるようにします。

### シンプル・透明・軽量

Conga フレームワークのサーバ側コンポーネント CongaServlet は， parser(validation)処理，controller(ビジネスロジック)処理，writer(XML/HTML出力)処理というわずか３種類の処理だけでリクエスト処理を行ないます。
また，アプリケーション開発者が作成する定義ファイルのタグ構成も上の３種類の処理にぴったり合ったものになっています。
これにより，フレームワーク利用者にとって，その構造と動作がとても理解しやすくなっています。

### 非依存

Conga フレームワークは，J2SE API 及び Servlet API 以外のライブラリを使用していません。従って，導入が非常に容易です。

### アプリケーションの再利用を促進

アプリケーション開発者が Conga フレームワークの上で動作させる controller(ビジネスロジック)クラスおよび Valueオブジェクトクラスには，特別なクラスの継承や，特別なインターフェースの実装が不要です。
これにより，他のプロジェクトで開発したアプリケーションを Conga フレームワークの上で動作させたり，Conga フレームワーク上のアプリケーションとして開発したビジネスオブジェクトを別のフレームワーク上で動作させることが容易にできます。

## Conga フレームワークの機能

Conga フレームワークは大きく分けて，以下の２つの機能で構成されています。

- CongaRequest - XMLHttpRequest を使用してサーバとの通信を行なうための Javascript Object。
- CongaServlet - クライアントからのリクエストを受け付け，ビジネスロジックを呼び出し，クライアントへの応答を出力する。

### CongaServlet

CongaServlet は以下の３つの機能で構成されています。

- ParameterParser - クライアントからのリクエスト文字列を解析し，ビジネスロジックが処理可能なオブジェクト（ValueObject）に格納する
- Controller - アプリケーション開発者が作成するビジネスロジックです
- ResultWriter - クライアントへの応答文字列(XMLまたはHTML)を出力します

大枠は上の通りですが，もう少し細かいレベルの機能で言うと， エラーハンドリングのしくみ， 基本的なValidationの機能， アップロード・ダウンロードのサポート， 画面遷移制御といった機能も備えています（一部未実装アリ。未実装機能については，TODO リストを参照のこと）。

さらに，ログ出力や認証済かどうかのチェックなどといった個別のプロジェクトに依存する（けれどもビジネスロジックではない共通）機能に関しては，「アダプタ」という仕組みを使って，後から自由に追加することができます。

## Conga フレームワークの動作環境

Conga フレームワークを利用した Java アプリケーション開発・実行には，J2SE 5.0 と Servlet API が必要です。

フレームワークのテストに使用しているブラウザは IE6.0 と FireFox 1.0.x です。

TOP