フレームワークとは、アプリケーションを開発するための再利用可能な「半分完成したアプリケーション」である。フレームワークを使うと、各コンポーネント間の連携処理など、どのようなアプリケーションでも共通の処理は、フレームワークから提供される。このため、開発者は画面と業務固有の処理を実装するだけでよくなる。これがいちばんのメリットだ。ライブラリが機能を再利用する技術であるのに対し、フレームワークは設計を再利用する技術といえる。
そして、フレームワークを使うと、次のようなメリットが得られると言われている。
まず最初に、開発期間の短縮が期待できる点だ。
アプリケーションの骨格部分の設計は既に完成されているので、設計に要する時間、骨格部分のコードを書く時間、骨格部分のコードをテストする時間を短縮できる。
次に、実装コード水準を統一できる点だ。
フレームワークはどの部分をどのように実装するのか、といったルールが存在する。そのため、ルールに沿って開発を進めれば、開発者間の実装方針の違いやスキルレベルをある程度吸収することができる。このメリットは、特に大規模なプロジェクトにおいて有効だろう。
ただし、使い方やルールは修得するための時間を要するという点にも注意したい。導入するといっても、すぐには効果が期待できない、というのは準備が必要となるからだ。
また、フレームワークを選定する際は、できるだけ普及しているものを選択するのがポイントだろう。Webや書籍による情報量が多いものを選択すれば、そう簡単には消滅しないはずだ。すでにフレームワークを理解しているエンジニアを確保しやすいのも重要なメリットだ。
どれを使っていいのか分からない場合は「Struts」をおすすめしたい。
StrutsはApache Jakartaプロジェクトで開発され、現在はApahce Strutsプロジェクトとして開発が続けられている。JavaによるWebアプリケーションフレームワークのデファクトスタンダードといえるほど普及しており、シンプルで処理も軽量なためどのようなWebアプリケーションでもほぼ適用可能だ。デベロッパーチャンネルのdev Java特集では、「Strutsで作るWebアプリケーション入門」が役立つだろう。
UMLはクラスやオブジェクト、それらの関連を表すためのオブジェクト指向言語にマッチした、図で表す表記法だ。
デザインパターンに代表される、オブジェクト指向ならではの設計手法を理解するためには、UMLが多少読めることが最低限必要だ。なぜなら、そのようなデザインパターンを使った設計書はUML(言語)が用いられるからだ。逆にいうと、UMLを用いないと表記そのものが困難である。
UMLには全部で9種類の表記法が存在する(表6)。UMLは業務分析やモデリングにも使われるが、デザインパターン(表現方法)を理解するには、取りあえずクラス図とシーケンス図の表記法を覚える程度でよいだろう。dev Java特集では「UMLのポテンシャルを探る」(FTP Online)や「モデリング言語UMLを学ぼう」が参考になるはずだ。
EJBは、ビジネスロジック(EJBコンテナ)の実装に特化されたコンポーネントである。
ビジネスロジックの実装に特化しているため、Webブラウザからのリクエストを直接受け付けたり、画面表示処理を行うといったことはできない(担わない)。
EJBは分散環境に配備して、分散されて配備されたコンポーネント間でトランザクション制御が可能である。そのほかにも、データベースアクセスにJDBC APIを使ったコードを記述しなくてもよい仕組みが提供されていたり、非同期処理を行ったりできる仕組みも提供されている(表7)。
表7■EJBの種類SessionBean | ビジネスロジックの実装、トランザクション管理を行うためのEJB | StatelessSession Bean |
状態を持たないSessionBean |
StatefulSession Bean |
クライアントごとにインスタンスが割り当てられ、状態を保持できるSessionBean | ||
EntityBean | データベースに格納されたデータをオブジェクトとして扱うためのEJB | CMP Entity Bean | データベースの操作はEJBコンテナが行う |
BMP Entity Bean | データベースの操作はBeanのソースコードに開発者が実装する | ||
Message DrivenBean | JMSメッセージを受信して非同期処理を行うためのEJB |
EJBは、比較的設計段階での念入りな作り込みが必要なため、少数先鋭の現場では難しい面もある。しかし、分散環境でトランザクション制御が可能な技術は、現実的にはEJB以外にあり得ない。EJBは大規模かつミッションクリティカルなシステムでは、必要な技術なのである。dev Java特集では「JBossで学ぶEJB入門」を読めば理解を深められる。
次に、デザインパターンを紹介しよう。
Copyright © ITmedia, Inc. All Rights Reserved.