JAXSONはJava-Ajaxフレームワークを中心とした業務で使用する様々な機能を凝縮したライブラリの集合です。
業務とは無関係のシステム関連の機能と通常使われる業務ロジックのパターンをフレームワークに組み込むことにより、
重複するコードを極限まで排除することで大幅な工期短縮・低コスト開発を可能にしました。
JAXSONの特徴
-
導入が容易
ライブラリを配置して簡単な設定を行うだけで開発を開始できます。
それにかかる時間は30分とかからないでしょう。
もちろん既存システムにも同様にインストールが可能です。
開発にはJava、JavaScript、HTMLの知識が必要ですが、
専門的・特殊な知識を要求しませんので基本的なことをマスターしていれば大丈夫です。
-
大幅な工期短縮
業務とは無関係の機能と一般的な業務パターンをフレームワークに任せる事により
従来よりも大幅なコード量の減少を可能とします。
同時にプログラムは業務ロジックとユーザインタフェースだけに集中できるため
さらに工期の短縮が期待できます。
-
プログラムの品質向上
コード量は減ったけれど裏で何が行われているのか分からないということはありません。
JAXSON上のプログラムは単純明快で言語を知らない人が見ても何をやっているのか理解することができます。
余分なコードが排除される分だけプログラムが見やすくなり潜在バグを抑制され、
高度な知識を要求される部分はフレームワークに任せる事によってプログラマによる品質のばらつきも減少します。
さらにAjaxを導入することにより1リクエストでページ全体を読込むといった制約から解放され、
ビジネスロジックの凝集度が向上する結果、再利用および仕様変更・追加への対応が容易になります。
-
優れた柔軟性
検索画面に複数の条件が指定できる場合、例えばコードと名称の入力欄があるとしますと
コードのみを入力して検索する時は名称を検索条件としないのが普通です。
このために名称が空であるかどうかを判定してその結果でSQLを組み立てるという処理を
検索処理ごとに実装することでしょう。
JAXSONのデフォルトでは検索については値が空である条件をSQLとして出力しないため
IF文の嵐となることはありません。
しかし場合によっては名称が空のレコードを検索するというケースもあるかもしれません。
この場合は値に空文字列を許容するフラグをセットことで可能となります。。
このように通常の動作では何もしなくても期待通りに動き、
通常と異なるケースではそれを知らせてやるというポリシーを貫き、
特殊なケースではそれを実現する方法を必ず用意しています。
-
高いスケーラビリティ
JXSONは導入・開発が容易であるため
これまでPHPやPerlといったスクリプト言語で開発されてきた小規模の案件にも対応できるほか、
もちろん大規模のエンタープライズアプリケーションにも耐えうる機能を持っています。
開発規模が大きければ大きいほど費用対効果は莫大なものとなるでしょう。
コアフレームワーク
JAXSONのコアフレームワークはStrutsに似ているため
これまでStrutsに親しんだ開発者が容易に導入することができますが、
さらに開発効率の向上、Ajaxの対応、多彩な出力形式をサポートするために
より柔軟な機能を持っています。
アクションの呼出しはStrutsと同様に
"*.do" といったURLパターンによってアクションクラスを指定する方法の他に
以下のものを用意してあります。
- クラス名による呼出し
設定ファイルにアクションパッケージを登録することにより
クライアントはアクションクラス名を指定することでアクションを呼び出す事ができます。
アクションクラスを追加するたびに設定ファイルのエントリを追加する必要はありません。
- リクエストパラメータによる指定
ファイルのダウンロードでファイル名を動的に変更したい場合、
リクエストパラメータにアクションクラス名を指定することで
呼び出すアクションとリクエストURLの関連を排除することができます。
また、アクションクラスを注釈することで様々な出力形式を指定することができます。
標準で用意している出力形式は以下の通りです。
- JSON(JavaScript Object Notation)
Ajaxによって要求されたリクエストに対して処理結果を
JavaScriptオブジェクトとしてクライアントに返します。
JSPを使用した場合はリクエストごとにページ全体を読み込こんだり、
クライアントに処理結果を大量のHidden項目として返す必要はありません。
- JavaScript
サーバの処理結果を引数としてクライアントのコールバック関数を実行させたり
メッセージをクライアントに表示することができます。
- HTML
ページの一部または全体のHTMLを出力します。
- テキスト
一般的なテキストをクライアントに返します。
- JPEG、GIFイメージ
処理結果によってイメージを変更することを可能にします。
- エクセルファイル
後で述べますエクセルファイル作成機能によって作成した帳票やレポートをクライアントに返します。
- その他バイナリファイル
イメージやエクセルファイル以外のバイナリデータを出力します。
- JSP、HTMLなど他のリソースへの転送
WEBアプリケーションで最も開発コストがかかるJSPはJAXSONではあまり必要がありません。
HTMLへ転送する場合はアクションの処理結果を初期データとして転送先のHTMLに渡されます。
アクセス制限
ログインユーザのロールをチェックしてアクセス制限を行います。。
アクセス制限は、アクション毎、アクションパッケージ毎、画面毎に設定することができます。
アクセス制限のAPIは非常にシンプルですので、データベースやLDAPなど様々なリソースに対応可能です。
要求が許容されない場合はデフォルトでは警告ダイアログを表示してログイン画面に遷移するようになっていますが、
JavaScript関数を上書きすることによりそのシステム固有の動作に変更できます。
パラメータの自動設定
アクションクラスのインスタンス変数に注釈をすることにより
アクション生成時に変数の値をリクエスト、セッション、サーブレットパラメータ、
アプリケーション設定から取得します。
パラメータの型とインスタンス変数の型が異なる場合は型変換も同時に行います。
変数の型がBeanの場合は
Beanクラスのインスタンスを生成してそのクラスの各変数に対して値を設定します。
入力の妥当性チェック
入力された値の妥当性チェックも注釈によって行います。
管理が面倒な設定ファイルは必要ありません。
入力値が妥当でない場合はデフォルトではクライアントに警告ダイアログを表示しますが、
JavaScript関数を定義すればそのシステムのポリシーに適合した動作に変更することができます。
データベース接続、トランザクション管理
データベースとの接続として
データソース、ドライバマネージャ、接続プールをサポートしています。
接続先として複数のデータベースを指定することもできます。
デフォルトの接続の場合は接続先を指定する必要がないため、
通常はアプリケーションでデータベース接続を意識する必要はほとんどありません。
トランザクションについては
1リクエスト=1トランザクションとしてフレームワークが管理しているため
多くの場合アプリケーションがコミット、ロールバックを行う必要はありませんが、
必要に応じてトランザクションをコントロールすることが可能です。
データベースアクセス
SQL文の構築はプログラミングで最も面倒な作業のひとつです。
JAXSONではSQL文の基本的な部分は自動生成され、
指定しなければならない最小限の情報、
例えば検索処理では検索対象テーブル、検索条件、並び順をフレームワークに指示するだけです。
SQL文はJavaオブジェクト構造として保持し、
「値が空の検索条件はSQLとして出力しない」
という通常使われるパターンが検索条件オブジェクトに組み込まれているために
データベースアクセスロジックが非常にシンプルになります。
エクセルファイルの作成
JAXSONのエクセルファイルライブラリは任意のエクセルテンプレートに
Javaオブジェクトを読込む事ができます。
これにより自由なフォーマットでの帳票・レポート作成が容易に作成できます。
JavaScriptライブラリ
JavaScriptライブラリは
Ajaxによるアクションの呼出し、アクションが返すオブジェクトのHTML要素への読込み、
その他ユーティリティを提供し、
クライアントサイドのコーディングをサポートします。