Java Webアプリケーションの課題
Webアプリケーションの開発は、思いのほか面倒な部分が多くあります。特に手間のかかる部分は、Javaというオブジェクト指向言語と相性の悪い2つの外部環境との連携部分です。1つはWebクライアントとの連携、もう1つはデータベースとの連携です。
どちらの外部環境も、もともとクラスといった概念はなく、「Javaオブジェクトとの変換」を行う手間がかかります。このデータ構造が異なるものを 連携する際の手間は、一般にインピーダンスミスマッチと呼ばれます。このミスマッチを解決する主な方法には以下の2つがあります。
- Javaをオブジェクト的に使わない
- 変換を自動で行うツールを利用する
Javaをオブジェクト的に使わない
この方法は、HTTPリクエストもデータベースからの結果セットも、すべてMap につめてキー、バリューで扱う方法です。この方法は、手軽で、DBスキーマやJSPの値を変更した場合も、Java側でJavaBeansを変更すると いった手間がかからないのが利点です。反面、Javaの型付けやオブジェクト指向の利点が失われ、予期しないバグを生む原因や、メンテナンスコストの増加 につながりやすくなります。
変換を自動で行うツールを利用する
HTTPリクエスト、結果セットとJavaBeansの変換は、単調な上に量の多 い作業で、開発者をうんざりさせます。しかし単調な作業ゆえに、この部分はツールによって自動化できることが多いです。一般に、HTML側のデータ変換は フレームワーク(のWebアプリケーションのビューを制御する機能)が、DB側のデータ変換はO/Rマッパーと呼ばれるツールを使って解決します。

図1:ミスマッチ(など)をツールで解決する
今回はフレームワークについて、次回はO/Rマッパーを使う例を紹介します。