2003年度 データベース論

2005年度 稚内本校
J2EE I (エンタープライズJava)
稚内北星学園大学
情報メディア学部
安藤 友晴
1
J2EE I の講義内容




Webアプリケーションの基礎が中心
リレーショナルデータベース/SQLの復習と
JDBC
配列のような多数のオブジェクトの集合を
扱う「コレクション・フレームワーク
Webの基本となるHTTPプロトコルと、
Servlet / JSP
2
講義予定 (1)
01. J2EE概説
02. リレーショナル・データベース
03. SQL / クラスライブラリとJarファイル
04. SQL
05. JDBC
06. コレクション・フレームワーク (1)
07. コレクション・フレームワーク (2)
3
講義予定 (2)
08.
09.
10.
11.
12.
JSPの基本
HTTPプロトコル (1)
HTTPプロトコル (2)
JavaBeansとJSP
Servlet
4
大事なこと

次の2つで評価します




3~4回(予定)のレポート
出席(救済措置の意味が強い)
前期末試験は行いません。
http://www.wakhok.ac.jp/~tomoharu/j2
ee1-wakkanai-2005/
5
J2EE概説
J2EE I
第1回 / 2005-04-14
6
Java言語の得意なこと
7
Javaの特徴 (1)

インターネット時代に登場した新しい言語


正式リリースは1995年
ネットワークに強い


ネットワーク上で使う機能をはじめから用意
ネットワーク上で動かしても安全なプログラム
を作れる
8
Javaの特徴 (2)

どんなコンピュータでもそのまま使える



Windows, Linux (Unix), Mac OS X など
コンパイルしたプログラムをそのまま動かせる
どんな国・地域でも使える


アメリカで作られたソフトウェアを日本語化す
るようなことが手軽に行える
国や地域・使用する言語などに固有の情報を
追加するだけでよい
9
Javaの特徴 (3)

文法が簡単で、使いやすい


(ほかの言語と比べると) 簡単な文法
「オブジェクト指向」という考え方



機能別にプログラムを整理できる
プログラムの再利用が容易
既存のプログラムを簡単に自分のプログラム
で使える
10
3つのJava

J2SE


J2ME


PCなどで利用されるJava。Javaの基本部分。
携帯電話やPDAなどで利用されるJava。
J2EE

企業情報システムなど、アプリケーション・
サーバで利用されるJava。
11
Javaはどこで使われているか?

携帯電話




NTTドコモ 「iアプリ」
ボーダフォン 「Javaアプリ」
au 「ezplus」
アプリケーション・サーバ


Webからアプリケーションを操作する
ショッピングサイトなど
12
J2EEとアプリケーション・サーバ
13
Webアプリケーション

Webアプリケーションとは、「ユーザがWeb
ブラウザを使って何かを入力し、必要な結
果を得る」Webページ。




サーチエンジン
本の検索
商品の購入
掲示板など
14
なぜWebアプリケーションか

アプリケーションを使う側の理由



特定のソフトをインストールしなくても、Webブラウザ
があれば良い。
操作は簡単。
アプリケーションを提供する側の理由


(CGIの場合) 既存のWebサーバをそのまま使える。
集中管理できるので楽。
15
データベースの利用

Webアプリケーションは「データ」を処理する。





図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。

データをただのファイルで保存しておくと、遅いし面倒。
16
J2EEの基本モデル

J2EEは「データベース」を使った「Webアプ
リケーション」の作成を念頭に置いている
技術
17
なぜJ2EEか (1)

ショッピングサイトのようなシステムでは、次の条
件を満たす必要がある。



たくさんアクセスがあっても大丈夫なこと。
セキュリティを保てること。例えば顧客の情報を盗ま
れないようにすること。
従来の技術 (例えば CGI) では、こうした条件を
満たすのはなかなか大変
18
なぜJ2EEか (2)



大規模な商用システムにも耐えうるシステムが
必要。
こうしてうまれたのが「アプリケーション・サーバ」
アプリケーション・サーバの多くがJ2EEで作られ
ている。

先に示したJavaの特徴が、アプリケーション・サーバを
作るうえで有利に働く
19
なぜ Javaを使うのか? (1)

Webアプリでは、CGIよりもJavaは速い



ライブラリ・ツールの充実


GUIも使ってないし、プログラムはJava VM 上で既に
立ち上がっている。いちいち起動する必要もない。
プロセスではなく、スレッドで処理
もともと揃っているうえに、最近は特に充実。
HTMLとプログラムの分離が容易

他ではなかなか難しい。
20
なぜ Javaを使うのか? (2)

Java言語そのものの信頼性



Cなどと違い、ポインタ演算がないので、暴走
する危険性が極めて少ない。
ガベージコレクションによる不要オブジェクトの
回収
セキュリティが考慮されている言語仕様
21
で、J2EEは実際どうよ? (1)



大規模なビジネスアプリの世界では、Javaベース
の「アプリケーション・サーバ」が流行。
Oracle, BEA, IBM, Sun, Apple など大手のベン
ダーが採用。
こんなところで使われています



Webを使った顧客サービスの提供
COBOLベースの事務情報システムの置き換え
銀行でも使われ始めている
22
で、J2EEは実際どうよ? (2)


現在、Javaがいちばんよく使われている分
野
ところが、J2EEがわかる技術者は非常に
少ない
23
欠点はないの?

個人ベースでは使いにくいかも



もともと大規模システム向き。
ユーザCGIのような仕組みはない。
教育コストがかなりかかる

勉強すべきことはけっこう多い
24
J2EEで使われている技術
25
3層モデル

J2EEの基本パターン

「Webブラウザ」から「データベース」を使う
26
J2EEサーバ


3層モデルの中央に位置
大きく分けて、次の2つの機能を持つ



Webコンテナ
EJBコンテナ
2つのコンテナでは、それぞれJavaのプロ
グラムが動く
27
Servlet と JSP

Servlet



JSP





HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わないけど)
「Webコンテナ」の内部ではServletに変換される
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
28
MVCモデル2とフレームワーク


ServletやJSPは、「MVCモデル2」という技
術で組み合わせる。
MVCモデル2に基づく「フレームワーク」を
使うと、Webアプリケーションの作成が楽
になる



JSF
Struts
Tapestry など
29
データベースの利用

Webアプリケーションは「データ」を処理する。





図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。

データをただのファイルで保存しておくと、遅いし面倒。
30
Javaからデータベースを利用


基本は「JDBC」
EJB (Enterprise JavaBeans) を使うと、
データベースの取り扱いがもっと楽になる。

EJBコンテナが必要
31
B2B と B2C
32
B2C と B2B

B2C



Business to(2) Customer
企業と顧客のやりとり
B2B


Business to(2) Business
企業と企業のやりとり
33
WebアプリケーションとB2C

B2CでWebアプリケーションを使うのはもは
や当たり前


B2C = 企業と顧客のやりとり
やりとりの内容が完全に電子化されるので、
業務が効率化できる。
34
その次の目標

B2B間の情報のやりとりを、できるだけ自
動化したい。


B2B = 企業と企業のやりとり
同じ組織内(企業とか大学)だけではなく、
別の組織にある情報システムを組み合わ
せて使いたい。
35
HTTPプロトコルとWebサービス
36
プロトコル






ネットワークでの通信の仕方を定めたもの
Web の場合
 HTTP プロトコル
メール送信
 SMTP
メール受信
 IMAP or POP
ファイル転送
 FTP
リモートログイン  TELNET
37
ホスト名とポート番号


インターネットでの通信に必要なもの
ホスト名 (= IPアドレス)


www.wakhok.ac.jp など
ポート番号


どのプログラムを使用するか識別する番号
HTTP を扱うプログラムは、たいてい 80 番
38
HTTPの利用 (1)


B2B や B2Cのプログラムは、それぞれ離
れたところにあることが想定されている。
しかし、離れたコンピュータにアクセスしよ
うと思っても、たいていのサイトではWebと
メール以外のポートは閉じている。

多くのサイトでは、セキュリティを保つため、ほ
とんどのポートを使えなくしている。
39
HTTPの利用 (2)



しかし、HTTP (80番) は使えるだろう。
そこで、HTTP を使ってB2BやB2Cの通信
をおこなう。
まれに、SMTP を使う場合もある。
40
「Webアプリケーション」の場合

「Webサーバ」が「Webブラウザ」と通信を
行う。
41
「Webサービス」の場合

「Webサーバ」が「プログラム」と通信を行う。
42
Webサービスとは何か

Webのブラウザを使わずに、プログラム中
から Web にアクセスして必要な情報を取
り出せるサービス。
43
Webサービスの例 (1)

Google Web APIs


自分のプログラムから、Googleのサービスを
呼び出す
エージェント

ある特定の商品について、いくつかの企業の
Webサービスにアクセスして見積を取得し、い
ちばん安価な企業の商品を発注する。
44
Webサービスの例 (2)

企業内に2つの情報システムの統合


それぞれの情報システムに、Webサービスの
機能を追加する。
Webサービスによって2つのシステムを繋げる。
45
HTTP と Webサービス

HTTP によって B2B・B2C が繋がれる。


Webサービスは少しずつ普及していっている。



Webブラウザだけでなく、プログラムからも HTTP を利
用できる。
期待が大きいジャンル
技術者は少ない
Webサービスを利用するには、Javaがいちばん
便利 (かもしれない)
46
J2EEの再定義

J2EEは、B2B・B2Cで使われる技術を整理
したもの



Webアプリケーション
データベースの取り扱い
Webサービス など
47
wakhokで学ぶJava
48
きょうの内容をどこで学ぶか (1)

J2EE I (3年前期)


J2EE II (3年後期)



Servlet / JSP / HTTPプロトコル / JDBC
MVCモデル2
JSF によるWebアプリケーション
J2EE III (4年後期)

EJB
49
きょうの内容をどこで学ぶか (2)

Webサービス I・II (4年前期・後期)


Webサービスの基礎から応用まで
UMLとシステム設計 (4年後期)

システムの設計技法
50