[プロダクトレビュー]


サーバサイドJavaにシフトする
JBuilder 4の新機能を検証する



槙邑恭介
2000/11/1

 マルチプラットフォーム上で動作するJava開発環境として定評のあるインプライズのJBuilderがバージョンアップし、JBuilder 4がリリースされる。前バージョンのJBuilder 3.5(日本語版)のリリースが2000年の4月であるので、比較的早い時期でのバージョンアップとなる。JBuilder 4では、JDK 1.3をサポートし、J2EE(Java 2 Enterprise Edition)を強力にサポートする。本稿では、今回のバージョンアップの中心となるJ2EEに関連する機能を中心に、バージョンアップの概要を紹介しよう。

  なお今回の評価では、JBuilder 4の日本語フィールドテスト版を使用しているため、実際の製品版と内容が異なる可能性がある点をご了承いただきたい。フィールドテスト版の実行には、Windows 2000 Professionalを用いた。

   Webアプリケーション作成を手厚くサポート

 今回のバージョンアップでは、従来のユーザーインターフェイスからの変更は少ない。これまで通り、Windows、Solaris、Linuxの3つのプラットフォーム上で動作する。

 以前のバージョンのJBuilderでもWebアプリケーションの開発機能は提供されていたが、今回のバージョンではそれらがより洗練されている。

 一般的なJavaによるWebアプリケーションの開発では、Servletによるサーバサイドのロジックの作成が中心的だったが、最近のWebアプリケーションでは、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)などがサポートされ、どちらかというとサーバサイドのロジックの記述にはEJBを用いる場合が増加しつつある。そして必要に応じて(実際にはほとんどの場合)データベース接続を含むロジックの記述を行うことになる。

 JBuilder 4ではさまざまなウィザードを提供することで、これらのコード作成が容易になっている。今回のバージョンアップでは、特にウィザードによるEJBの作成と統合環境内でのデバッグが可能になった点が注目される。

■ServletとJSPのデバックが可能

 サーバサイドでJavaを用いるWebアプリケーションを考える場合、Servletを用いるのが最も現実的なケースである。フリーのWebサーバや市販のWebサーバ(アプリケーションサーバ)で最もサポートされているのがこのServletである。JBuilder 4でServletを作成するには、Servletを作成する「サーブレットウィザード」が用意されており、これを使って簡単にServletのスケルトンが生成できる(画面1)

(画面をクリックすると拡大します)
画面1 「サーブレットウィザード」        
サーブレットウィザードでは、クラス名のほかに、アプリケーションサーバから起動されるトリガ(PUT、POST)の選択や、Servletを呼び出すコードを含むHTMLファイルの生成が行える

 さらにこのウィザードでは、Servletを呼び出すHTMLファイルも同時に生成できるので、呼び出し元のHTMLファイルからServletに渡されるパラメータの確認なども簡単に行えるようになっている。また、JBuilder 4では、ServletとJSPのデバッグ用にTomcat 3.1が含まれており、統合環境内でServletとJSPのデバッグが可能になっている(画面2)。また、Servletにエイリアス名を設定して、直接Servletを起動して実行/デバッグすることも可能だ。

(画面をクリックすると拡大します)
画面2 「統合環境でのServletのデバッグ」           
Servlet起動は、ウィザードから生成されたHTMLから起動することも、エイリアスを設定して直接起動することもできる

■InternetBeans Expressはユーザーインターフェイスの構築を容易にする

 ServletでブラウザにHTMLデータを返す場合、Servlet内で処理結果に応じてHTMLのタグを生成するケースが多く、ユーザーインターフェイスとロジックがうまく分離できずに苦労することが多い。これに対してJBuilder 4では、InternetBeans Expressという、テンプレート化したHTMLファイルを用いてHTMLデータをブラウザに返す便利な機能が用意されている。基本的なユーザーインターフェイスの部分は事前にHTMLファイルで用意しておき、Servlet内で、動的に置換処理を行う。

 実際にはテンプレートHTMLファイル内のタグにIDを付けておき、Servlet実行時にこのテンプレートを読み込み、IDの付けられたタグを見つけて置換する仕組みだ。InternetBeansを利用するとユーザーインターフェイスとロジックの分離が容易になり、ページのデザイン変更に柔軟に対応できる。うまく利用すれば、ブラウザ(IE、Netscape、iモード)に応じたページ生成などが可能になるかもしれない。

■JSPの作成もウィザードで可能

 Servletと比べてより簡単にJavaによるWebアプリケーションが実現できるのがJSPだが、JBuilder 4では「JSPウィザード」を利用してJSPファイルのスケルトンが作成できる(画面3)

(画面をクリックすると拡大します)
画面3 「JSPウィザード」
JSPウィザードでは、生成するJSPファイルにFORMタグを含めるかどうかを指定できる。また、JSPから呼び出すBeanのスケルトンを生成することもできる。

 このウィザードでは、ベースとなるJSPファイル(xxx.jsp)と、必要に応じてBeanオブジェクトのスケルトンを生成できる。JSPファイルには、生成されたBeanオブジェクトのパラメータを参照するコードが含まれる(リスト1)

リスト1 ウィザードで生成されたBean
public class Jsp1Bean {
  private String sample = "Start value";
  /**サンプルプロパティにアクセス*/
  public String getSample() {
    return sample;
  }
  /**サンプルプロパティにアクセス*/
  public void setSample(String newValue) {
    if (newValue!=null) {
      sample = newValue;
    }
  }
}

 またウィザード上で、JSPファイルから参照するJavaBeansを指定することもできる。これは既存のオブジェクトをJSPから利用したい場合は便利な機能だ。このウィザードを使ってJSPファイルとBeanオブジェクトを作成し、ロジック部分をBeanに記述するようにすると、ユーザーインターフェイスとロジックの分離が容易になる。

 Webページのデザインとアプリケーション作成を分けて開発する場合は(ほとんどの場合がそうだろうが)、デザイナの作成したデザインを壊さないでロジックを埋め込むのに苦労するが、ロジック部分をBeanとして分離できれば、ページの作成が楽になるだろう。もちろんBeanの生成を指定しない場合は、JSPファイルのみが生成され、ここにロジックを記述することになる。

 ここまでで紹介したJSPとServlet作成機能は、Professional版とEnterprise版でサポートされるが、JSPに埋め込まれたJavaコードに対するCodeInsight(コード補完機能)、ErrorInsight(エラーチェック機能)などの支援機能は、Professional版ではサポートされないので注意が必要である。

   EJBをビジュアル開発できる

 JBuilder 4のWebアプリケーション開発機能の目玉となるのが、EJBのビジュアル開発機能である。この機能は、Enterprise版でのみ提供されている。Enterprise版には、インプライズのWebアプリケーションサーバであるInprise Application Server 4.1(IAS 4.1)がパッケージに含まれており、統合環境内でEJBの作成からデバッグまですべて行える。さらに出来上がったEJBの配布まで可能になっている。

 EJBの作成には、「Enterprise JavaBean」と「EJBエンティティBeanモデラ」という2つのウィザードが用意されている。「Enterprise JavaBean」ウィザードでは、stateless Session Bean、statefull Session Bean、 BMPエンティティ Bean、CMPエンティティBeanの選択が行える(画面4)

(画面をクリックすると拡大します)
画面4 「Enterprise JavaBeansウィザード」
ウィザードのデザインがほかのものと異なるが、EJBウィザードでは、パッケージ名、クラス名などとともに、EJBのタイプを指定する

 また、「EJBエンティティBeanモデラ」ウィザードでは、JDBCによるデータベース接続を行うエンティティBeanの作成が可能である。この場合はJDBC接続を通して、接続先のデータベースから任意のテーブルを選択して必要な列にアクセスできるBeanが生成できる(画面5)

(画面をクリックすると拡大します)
画面5 「EJBエンティティBeanモデラウィザード」  
EJBエンティティBeanモデラウィザードでは、ドライバ、テーブル名、参照するフィールドなどのさまざまなデータベース接続の設定を行うことで、データベース上のテーブルにアクセスするEJBを簡単に作成できる

 EJBエンティティBeanモデラの場合は、BMPエンティティBean、CMPエンティティBeanのどちらかを選択する。またEJBのバージョンのうち1.1と2.0のどちらかを選択できる(リスト2)


リスト2 ウィザードで生成されたEJBのコード
package testejb;

import java.rmi.*;
import javax.ejb.*;

public class Enterprise1Bean implements SessionBean {
  private SessionContext sessionContext;
  public void ejbCreate() {
  }
  public void ejbRemove() {
  }
  public void ejbActivate() {
  }
  public void ejbPassivate() {
  }
  public void setSessionContext(SessionContext context) {
  sessionContext = context;
  }
}

 ウィザードが完了すると、SessionBean、EJBHome、EJBObjectといったクラスの派生クラスが生成される。あとはこのソースに必要なロジックを記述していくことになる。

 当然だが、コードを記述してEJBを作成しただけでは、それがきちんと動作するのかを検証することはできない。JBuilder 4では、作成したEJBを呼び出すクライアントオブジェクトも作成できる。このクライアントはスタンドアロンでの実行も可能で(mainメソットをインプリメントするかどうかを選択できる)、このクライアントオブジェクトを統合環境内で実行することで、EJBの実行テストが簡単に行える。さらにここで作成したEJBクライアントを、JavaBeansオブジェクトとしてJSPやServletから利用すれば、JSPやServletからEJBにアクセスすることも可能になる。

■EJBのデバッグにはIAS 4.1を利用

 このようにして作成したEJBは、テストクライアントを使って統合環境でデバッグすることになるが、これにはEnterprise版に含まれるIAS(Inprise Application Server)4.1を利用する。JBuilder 4のEnterprise版には、IAS 4.1の開発用ライセンスが含まれており、JBuilderがインストールされたPCにインストールすれば利用できる。ただしIAS 4.1を別のマシンにインストールする場合は別途開発キットを購入する必要がある。

 また、統合環境上でのEJBのデバッグ機能は、IAS 4.1のほかにBEA社のWebLogic 5.1も利用できるようだ。EJBのデバッグ機能については、JBuilderがJPDA準拠のリモートデバッグ機能を提供しているため、この機能を利用すれば、JPDAに対応した任意のJavaプロセスがデバッグ可能であるとのことである。

 EJBのデバッグを行うには、まず「エンタープライズ関連設定」から、CORBAやWebアプリケーションサーバの設定を行う。ここでデバッグで利用するアプリケーションサーバとして、IAS 4.1とWebLogic 5.1のどちらを選択するか決める(画面6)

(画面をクリックすると拡大します)
画面6 「エンタープライズ環境設定」
EJBのデバッグに先立って、エンタープライズ環境設定からWebアプリケーションサーバを設定する。インプライズのIAS 4.1とBEA社のWebLogic 5.1のどちらかを選択する

 IAS4.1を用いたEJBのデバッグは、通常のJavaアプリケーションと変わらない。EJBのコードに対して必要な個所にブレークポイントが設定できる(画面7)

(画面をクリックすると拡大します)
画面7 「EJBのデバッグ」                      
EJBのデバッグは、テスト用のクライアントオブジェクトを使って行う。デバッグの作業は、通常のJavaアプリケーションと変わらない

 上述したデバッグ用のテストオブジェクトを作成しておけば簡単にデバッグが行える。こうして出来上がったEJBは、最終的にターゲットのWebアプリケーションサーバに配布することになるが、JBuilder 4ではIASに配布するためのウィザードが用意されている。これを用いることで、必要なオブジェクトをjarファイルにまとめて、ターゲットのIASに配布が行える。同様の操作は、WebLogicに対しても行える。

   DBやアプリケーションサーバとの接続も容易に

 スタンドアロンのJavaアプリケーションやJavaアプレットとは異なり、サーバサイドで動作するJavaでは、ほとんどの場合に何らかのデータベースにアクセスすることになるだろう。JSPやServletなどでは、JDBCを経由したデータベースアクセスを行うことになるが、JBuilder 4では、DataExpressと呼ばれる、統一的にデータベースにアクセスできるコンポーネントが用意されている。これを用いることで、Swingを用いたJavaアプリケーションや、InternetBeansを用いるServletなどで簡単にデータベースにアクセスできるようになる。

 そのほかの新機能として、多人数によるチーム開発がサポートされている点が挙げられる。ソースコードはCVSによりバージョン管理され、統合環境内で各バージョン間の差分表示が可能になっている(画面8)

(画面をクリックすると拡大します)
画面8 「統合環境内でのバージョン管理」             
統合環境内でソースファイルのバージョン管理が行える。特定のバージョンでの差分表示なども行える。バージョン管理にはCVSを用いている

 JBuilder 4の販売価格は、最も高機能でIASの開発ライセンスを含むEnterprise版が36万円(2000年12月22日までのキャンペーン期間は26万8000円)で、JSP、Servletの開発が行えるProfessional版は6万8000円(2001年3月23日までの乗り換えキャンペーン中は3万8000円)となっている。Foundation版は従来バージョンと同じく、インプライズのサイトで11月13日から無償でのダウンロードサービスと、CD-ROM送付サービス(要申し込み)が提供される。

■EJBのサポート具合は要チェック

 EJBの開発を考えた場合は、Enterprise版しか選択の余地はないのだが、IASとWebLogic以外のWebアプリケーションサーバをターゲットにする場合は、EJBコンテナとの整合性なども十分調べておく必要があるだろう。エンタープライズ環境の設定では、IAS 4.1とWebLogic5.1しか選択できないが、プロジェクトのプロパティではアプリケーションサーバの選択が可能になっている(画面9)

画面9アプリケーションサーバーの選択」
プロジェクトのプロパティでは、アプリケーションサーバの選択が行える。パラメータを手入力することで、新規にアプリケーションサーバの設定が行えるが、この設定と、エンタープライズ環境設定でのアプリケーションサーバの選択との関係が分かりにくい

 このあたりのEJBのサポート具合は、実際に製品がリリースされた時点で、十分チェックする必要がありそうだ。

■ServletとJSPの開発ではProfessional版の選択もある

 また、ServletやJSPの開発では、Professional版とEnterprise版のどちらを選択するか悩ましいところだ。JSPの編集時のCodeInsightなどの細かなサポート機能が必要ないのならProfessional版の選択も可能である。

 フィールドテスト版では、統合環境を実行中にヘルプウィンドウを開いておいて、ヘルプを参照しながら作業が行えるのだが、ダイアログボックスなどのポップアップウィンドウが開いていると(ウィザードやファイルオープンなど)、ヘルプウィンドウへのウィンドウ切り替えができなくなる。統合環境そのものがJavaで動作していることが原因なのか不明だが、ユーザーインターフェイスに若干違和感を覚える。また、これはWindowsで利用する場合に限っての話だが、統合環境でスクロールマウスのスクロール機能が利かないのもつらいところだ。そしてEnterprise版では、統合環境とともにWebアプリケーションサーバも同時に起動することになるので、メモリは十分用意しておきたい。



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間