2003年度 データベース論

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