2003年度 データベース論

2004年度
J2EE I (データベース論)
稚内北星学園大学
情報メディア学部
専任講師 安藤 友晴
この講義について

次の2つで評価します




3~4回(予定)のレポート
出席(救済措置の意味が強い)
前期末試験は行いません。
http://www.wakhok.ac.jp/~tomoharu/d
b2004/
J2EE概説
J2EE I (データベース論)
第1回 / 2004-04-14
3つのJava

J2SE


J2ME


PCなどで利用されるJava。Javaの基本部分。
携帯電話やPDAなどで利用されるJava。
J2EE

企業情報システムなど、アプリケーションサー
バで利用されるJava。
J2EE

Web と データベースの組み合わせを強く
意識。
Webの普及

1993年、Mosaic登場
(最初のWebブラウ
ザ)

NetscapeNavigator
と Windows95 によっ
て一気に普及
イントラネット (1)


「Webって、いろんな情報が手に入るよね」
「Webブラウザって、使いやすいよね」


「もしかして、仕事でも使えないかな?」


(幼稚園児でも普通に使えます)
Webサーバに書類をいくつかアップする
「おぉ、ブラウザから書類が読めると便利
だなー。探す手間も省けるし。」
イントラネット (2)


(しばらくしてWebにもたくさんの書類が)
「あれー、あの書類どこいったっけ・・・」


「やっぱり検索もできた方がいいなー」


かちかちかち・・・
Perl で CGI プログラムを作る
「すぐ探せるよー。便利じゃん」
イントラネット (3)


というようなことが、1996年ころからあちこ
ちで起こっていた。
「インターネット」をもじって、「イントラネッ
ト」と呼ばれた。


「イントラ(内の)」+「ネット」
インターネットの内も外も同じ技術を使える
2種類のWebページ

静的なページ


普通のページ。見るだけのもの。
動的なページ


ユーザがWebページに何か入力して使うもの
サーチエンジンなど
サーチエンジンの動き
1.
2.
3.
4.
5.
サーチエンジンのページを呼び出す。
調べたい言葉を入力する。
検索ボタンを押す。
その言葉に関するWebページのリストが
出力される。
リストの中からWebページを選んで見て
みる。
サーチエンジンの動きを
整理すると・・・



調べたい言葉を入力すると、Webページの
リストが出てくる。
入力した言葉によって、出力されるページ
が違う。
そのためには、サーバ側で何かの処理が
行われている。
Webアプリケーションとは何か

Webアプリケーションとは、「ユーザがWeb
ブラウザを使って何かを入力し、必要な結
果を得る」Webページ。

サーチエンジン、本の検索、商品の購入、掲
示板など
なぜWebアプリケーションか

アプリケーションを使う側の理由



特定のソフトをインストールしなくても、Webブ
ラウザがあれば良い。
操作は簡単。
アプリケーションを提供する側の理由


既存のWebサーバをそのまま使える。
集中管理できるので楽。
CGI




動的なページ → ユーザからの入力に応じ
て出力結果が変化
静的なページ → 普通のページ
CGIで動的なページを生成する。
CGIはWebサーバ上で動く。
CGI で困ること



CGIは呼ばれるたびにプロセスを生成する
ので、重い。負荷が集中すると辛い。
セキュリティを保つのも大変。
大規模で安全な処理が要求されるシステ
ムでは、CGI だと大変。

ショッピングサイトなど
Java製アプリケーション・サーバ



大規模な商用システムにも耐えうるシステ
ムが必要。
こうしてうまれたのが「アプリケーション・
サーバ」
アプリケーション・サーバの多くがJavaで作
られている。
なぜ Javaを使うのか? (1)

この場合、Javaは速い



ライブラリ・ツールの充実


GUIも使ってないし、いちいち起動する必要も
ない。
プロセスではなく、スレッドで処理
もともと揃っているうえに、最近は特に充実。
HTMLとプログラムの分離が容易

他ではなかなか難しい。
なぜ Javaを使うのか? (2)

Java言語そのものの信頼性



Cなどと違い、ポインタ演算がないので、暴走
する危険性が極めて少ない。
ガベージコレクションによる不要オブジェクトの
回収
セキュリティが考慮されている言語仕様
で、実際どうよ?





大規模なビジネスアプリの世界では、Java
ベースの「アプリケーション・サーバ」が流行。
Oracle, BEA, IBM, Sun, Apple など大手の
ベンダーが採用。
顧客サービスの提供
COBOLベースの事務情報システムの置き換
え。
現在のJavaの主戦場
欠点はないの?

個人ベースでは使いにくいかも



もともと大規模システム向き。
ユーザCGIのような仕組みはない。
教育コストがかなりかかる

勉強すべきことはけっこう多い
Webアプリケーションの仕組み (1)
3層モデル

J2EEの基本パターン
Webアプリケーションの仕組み (2)
Servlet と JSP

Servlet



JSP




HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わない
けど)
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
Webアプリケーションの仕組み (3)
データベースの利用

Webアプリケーションは「データ」を処理す
る。





図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。

データをただのファイルで保存しておくと、遅
いし面倒。
J2EE I の講義内容




Webアプリケーションの基礎が中心
リレーショナルデータベース/SQLの復習と
JDBC
配列のような多数のオブジェクトの集合を
扱う「コレクション・フレームワーク
Webの基本となるHTTPプロトコルと、
Servlet / JSP
講義予定 (1)
01.
02.
03.
04.
05.
06.
07.
J2EE概観
リレーショナル・データベース
SQL / クラスライブラリとJarファイル
JDBC
コレクション・フレームワーク (1)
コレクション・フレームワーク (2)
JSPの基本
講義予定 (2)
08.
09.
10.
11.
12.
13.
HTTPプロトコル (1)
HTTPプロトコル (2)
JavaBeansとJSP
タグライブラリとJSP
Servlet / Ant
MVCモデル2
この講義以降の予定 (1)

J2EE II (3年後期・安藤)




Webアプリケーションの応用編
かなり実践的な内容
Struts / JSF / JNDI / セキュリティなど
J2EE III (4年後期?・安藤)


データベース周り (Enterprise JavaBeans)
Webサービスとの連携
この講義以降の予定 (2)

Webサービス I (4年前期・坂本先生)


ブラウザからではなく、プログラムからWebに
アクセスする。
Webサービス II (4年後期・植田先生)