第1回 Java Pet Storeで、J2EEを体験する(1)

丸山不二夫
稚内北星学園大学学長
(http://www.wakhok.ac.jp/)
2001/4/6
今回の内容
Webとデータベースを結ぶ技術としてのJ2EE
この講座で、重点的に学ぶこと
J2EEサーバとdeploytool

Java Pet Storeデモを動かそう
Web-DBアプリケーションとしてのJava Pet Store デモ
J2EEサーバのほかの機能

 この講座は、サーバ・サイドでのJava利用の代表的な手法の1つであるJ2EEの基礎を、できるだけ基本的なところから説明することを目的としています。この「J2EEの初等的な説明」にとっての一番の問題は、J2EEが非常に多くの要素技術からなる巨大なシステムだということです。以下に、J2EEを構成する基本的な技術の一覧を示します(これらの技術にバージョン番号が付いているのは、J2EE自身が変化を続けていることを示しています。このリストは、この原稿を書いている2001年3月時点でのJ2EE j2sdkee-1.3betaの構成を反映しています)。

Enterprise JavaBeans 2.0
Java Servlets 2.3
JavaServer Pages 1.2
Java Messaging Service 1.0.2
J2EE Connector 1.0
JDBC Standard Extension 2.0
Java Naming and Directory Interface 1.2 (CosNaming SPI)
RMI/IIOP
Java Transaction API 1.0
JavaMail 1.2
Java API for XML Parsing 1.1
Java Secure Sockets Extension 1.0.2

 さらに、個々の構成要素の細部の説明に入り込めば込むほど、J2EE全体の姿が見えにくくなることもあります。また、これらの技術の説明の総和がJ2EEの説明になるかといえば、そうではないという問題もあります。

 「J2EE基礎」と名付けたこの講座では、J2EEの細部ではなく、J2EEがどのようなシステムであるかの具体的なイメージを、J2EEが利用される典型的なシナリオのもとで持ってもらうことを目標にしたいと思います。

 

 Webとデータベースを結ぶ技術としてのJ2EE

 J2EEの全体像について語るには、実は幾つか方法があります。Model-View-Controller(MVC)というデザイン・パターンの応用としてJ2EEを語ることもできますし、Component/Container技法といった切り口からJ2EEを解説することもできます。また、多階層(マルチ・ティア)のネットワーク・アプリケーションとしてそれを説明することもよく行われています。

 ただ、この基礎講座では、「J2EEは、Webとデータベースを結ぶ、サーバ・サイドのミドルウェア技術である」という観点から、J2EEの基礎を説明していきたいと思います。つまり、

J2EE = Webブラウザ + J2EEサーバ + データベース

というわけです。また、図1のように示せば、J2EEがサーバ・サイドのミドルウェア技術であることもよく分かります。

図1 J2EEは、WebアプリケーションにおいてWebブラウザとデータベースを結びつけるミドルウェア技術として位置付けることができる

 こうした特徴づけはいささかの単純化を含んでいるのですが、J2EEという技術の基本的な狙いはよく押さえています。また、なによりもJ2EEに興味を持つ読者の多くの実践的な関心は、Webとデータベースの結合に置かれているはずです。こうしたJ2EEの定式化は、先に挙げた3ティア(階層)モデルやMVCの図式にも適合します。

図2 J2EEはMVCモデルに適合する

 

 この講座で、重点的に学ぶこと

 この基礎講座で重点的に学ぶべきものを、次のように設定しようと思います。

(1) Webブラウザとサーバ・サイドをつなぐ技術としてのJSP/Servlet
(2) クライアント、あるいは、ミドルウェアサーバとデータベースをつなぐ技術としての JDBC
(3) 上記2つの技術を仲立ちする、J2EEの中核技術としてのEJB

図3 この基礎講座で学ぶ3つの技術

 この基礎講座では、J2EEをこの3つの技術を中心に学びます。そのほかの技術は、これら3つの技術との関連で副次的に取り上げることになると思います。このように、全体像の把握を優先して幾つかの中心的な技術に絞って、J2EEの説明をしたいと考えています。基本から初等的に説明することを目指しています。

 

 J2EEサーバとdeploytool

 学ぶということに関しては、実はあと1つ、大事な領域があります。それは、先の要素技術のリストには登場してこなかった、狭い意味でJ2EE固有の技術です。これらには、Sunが提供しているJ2EEサーバの立ち上げ方とか、deploytoolの使い方といったJ2EE関連ツールの話題が含まれます。今回はむしろ、J2EEのデモ・サンプルとして提供されている、「Java Pet Store」 の立ち上げを通じて、これらの基本的な扱いを学びます。

 

 Java Pet Storeデモを動かそう

 これからの目標は、Sunが提供する「Java Pet Store」デモが動く環境を構築して、J2EEを体験することです。Java Pet Storeは、ある意味ではJ2EEのシンボルです。「JPS(Java Pet Store」のことをこのように略しますが、Java Server Page のJSPと間違えないでください) を知らないでJ2EEのお勉強はできません。それに、見かけは、まったくToy Programのように見えるのですが、そうではありません。JPSは非常にキチンとしたつくりになっています。J2EEを一通り勉強したら、ぜひ、JPSのソースコードをしっかり読んで勉強してもらいたいと考えています。

 

 Web-DBアプリケーションとしての
 Java Pet Store デモ

 まず、「Java Pet Store」の最初の画面1を見てみましょう。

画面1 Java Pet StoreのTOPページ

 基本的な確認なのですが、「JPS」は独立したアプリケーションとしてではなく、Webブラウザ上で動作するWebアプリケーションです。この最初の画面1で、例えば猫の画像をクリックすると、次のような画面2に変わります。

画面2 TOPページの猫の画面をクリックすると猫の種類が表示される

 この画面2で「Persian」のリンクをクリックすると、次の画面3に変わります。

画面3 さらに詳しい猫の種類が表示される

 さらに、「Adult Female Persian」を選んだときの画面4を示します。

画面4 選択した猫の写真が表示される

 こうした動作だけを見ていると、その背後にJ2EEサーバがあることは分かりません。同じ構成のWebページをJ2EEサーバなしで作ることは簡単です。例えば、画面2に対応したHTMLを作ることは難しくありません。ただ、こうしたHTMLでのページ作成には、こうした用途ではちょっとした問題があります。このページは、「Java Pet Store」で、2種類の猫を扱っていることを表しているのですが、もしもこのペット屋で新しい種類の猫を扱うようになれば、ページを作り変えなければなりません。小規模のWebサイトでしたら、こうした更新作業は、当然のことのように思われるかもしれません。しかし、大規模で本格的なeコマースのシステムをインターネット上で構築しようと思ったら、こうした手工業的なやり方では対応できなくなります。

 「Java Pet Store」では、JSP(JavaServer Page)を使って、基本的なデータベースのデータからこれらのページを自動的に生成しています。ですから、データベースのデータを更新しさえすればページは自動的に更新されます。こうしたことを可能にするのがJ2EEの力なのです。

 次の画面5は、「Java Pet Store」上部のテキスト・フィールドに“dog”という検索文字列を入力したときのものです。こうした働きも、データベースでの検索とJSPでのページ自動生成の能力が可能にしたものです。

画面5 “dog”で検索すると、さまざまな犬の種類が写真付きで表示される

 

 J2EEサーバのほかの機能

 画面6〜8は、先の画面2で買いたいペットを選んで、「add to cart」を押して、買い物カゴに入れたものです。こうしたセッション中のページをまたいだ処理も、CGIやFormだけで行おうとすれば、Webサーバはクライアントの状態を保存しませんので、いろいろ面倒なものです。JSP/J2EEでは、こうしたセッション管理の機能が簡単に実現できます。

画面6

画面7

画面8

 ここで、「Proceed to Checkout」を押したときには次の画面9が現れます。

画面9

 実は、J2EEではユーザーのアカウントを管理したり、それぞれのユーザーがWebページにアクセスする権限を設定・管理することが可能です。この機能も、実用的には非常に便利なものです。次は、あらかじめ登録されていたユーザー情報の、提示画面(画面10)と注文の確認画面(画面11)です。

画面10

画面11

 このように、J2EEにはWebベースのアプリケーション開発にとって便利な機能がいろいろと組み込まれています。

 次回は、J2EEと「Java Pet Store」のデモをダウンロードしてJ2EEの環境設定を行い、実際にデモを動かしてみます。

連載内容
J2EEの基礎
第1回 Java Pet Storeで、J2EEを体験する(1)
  第2回 Java Pet Storeで、J2EEを体験する(2)
 

第3回 J2EEアプリケーションと配置(deployment)

  第4回 J2EEアプリケーションを構成するコンポーネント
  第5回 データベースのブラウザを作る
  第6回 EJBにおけるコンテナとコンポーネント
  第7回 J2EEのセキュリティのキホンを知る
  第8回 J2EEのトランザクション処理

連載記事一覧




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

注目のテーマ

Java Agile 記事ランキング

本日 月間