JavaBeansとEJBの違い
さて、EJBのWebサービス化に入る前に、少しだけ基本的な技術をおさらいしておきます。前回まで利用してきたJavaBeansと今回利用するEJBの違いを少しだけ見てみることにしましょう。
JavaBeansが起動される状態を簡単に書くと下図のようになります。ポイントは、呼び出し元のインスタンスがJavaBeansインスタンスを呼び出すのは、あくまでも「同一のJavaVM内」であるということです。そのため、JavaBeansインスタンスのメソッドを呼び出すための「メッセージ」は、「JavaVMの内部プロトコルで通信される」といういい方もできます。
さて、次にEJBです。典型的なEJBの場合、呼び出し元インスタンス(EJBクライアント)とEJBインスタンスは、異なるJavaVMで実行されます(同一インスタンスも可能ですが、ここではそれついては触れません)。
下図では、それを簡易的に表していますが、ここで重要なのは、EJB呼び出し元(EJBクライアント)のJavaVMとEJB自体が稼働するJavaVMが別々に存在することです。その結果、JavaVM間のメッセージがネットワークを介して送信されることになっています。この場合のプロトコルは、「Internet Inter-ORB Protocol」(IIOP)になります。
ネットワークが間に挟まることで、EJBの1つの特徴である「拡張性」が実現できることも、JavaBeansと比較して考えれば容易に理解してもらえるでしょう。
JavaBeansとEJBには、ほかにも多くの違いがあります。これらの違いを十分認識することで、Webサービスの業務ロジックを作成するコンポーネント技術として、JavaBeansを選ぶべきかEJBを選ぶべきかが決まってきます。これは、ビジネスロジック部分の要件(機能要件)だけでなく、稼働する際のプラットフォーム要件(非機能要件)により、選択する必要が出てきます。これは、WebサービスのシステムをJavaによって構築する際に大変重要な要素です。それぞれの特徴を十分理解して、適切な部品化技術を選択するようにしてください。
JavaBeansとEJBの違いなどをもっと詳しく知りたい場合は、筆者の著書『最新サーバサイドJavaがわかる』(技術評論社 ISBN4-7741-1411-1)を参考にしてください。コーディング技術ではなく、EJBがどのように稼働しているかなどを解説しています。
EJBのWebサービス化の流れ
まずは全体の流れを見てみることにしましょう。この作業と前回のJavaBeansの作業を比較して、EJB特有の作業がどこにあるかを覚えておいてください。比較のために、ここではJavaBeansの作成手順も並べてみることにしましょう。
EJB版Webサービス作成の手順
- プロジェクトの作成
- EJBの作成
- EJBの配置(Deploy)
- EJBの単体テスト
- EJBのWebサービス化
- WSDLからテスト・クライアントの作成
- Webサービスのテスト
JavaBeans版Webサービス作成の手順
- プロジェクトの作成
- JavaBeansの作成
- JavaBeansの単体テスト
- JavaBeansのWebサービス化
- WSDLからテスト・クライアントの作成
- Webサービスのテスト
おおよそ理解できたと思いますが、大きな流れは同じです。唯一EJBに特有な「EJBの配置(Deploy)」がありますが、これもあまり大きな負荷とはいえないかもしれません。それは、この後、実感していただくことにしましょう。
今回は、主にJavaBeansとEJBで手順が異なる部分について解説をします。まったく同じ手順の部分もありますので、その部分は前回の参照するところを明示して解説を省略します。前回の記事と比較しながら読み進めてください。
開発環境の準備
今回も統合開発環境にはIBM WebSphere Studio Application Developer Ver5.0(WSAD)を利用します。WSADは評価版を入手することができますので、ぜひ評価版で試してみてください。評価版は次のURLから申し込むことができます。
評価版のインストールは特に難しいところはありません。インストールプログラムに従ってインストールしてください。前回インストールされている方は、そのまま使うことができますので、再度インストールする必要はありません。
インストールが完了したら、WSADを起動します。WSADを立ち上げた最初の画面は次のようになっています。左に縦に並んでいる小さなアイコンは「J2EEパースペクティブ」を選択しておいてください。ここからスタートです。
それでは、EJB版Webサービスを作り始めましょう。
Copyright © ITmedia, Inc. All Rights Reserved.