2005年度 東京サテライト校
J2EE I
稚内北星学園大学
情報メディア学部
安藤 友晴
1
単位の認定について
最終回にレポート課題を提示します。
レポートを評価して単位を認定
すべてのレポートの提出が必須
「2005年度 サマースクール in 稚内 JSFからは
じめるWebアプリケーション開発」を受講された方
は、本講義の単位に読み替えることができます。
もちろん、本講義を受講していただいても構いません。
2
本講義のWebページ
http://www.wakhok.ac.jp/~tomoharu/j2ee1tokyo-2005/
3
J2EE概説 (2005年12月版)
J2EE I
第1回 / 2005-12-17
4
今回の内容
Java言語の特徴
J2EEとWebアプリケーション
Webアプリケーションの要素技術
B2B と B2C
HTTPとWebサービス
「Java EE 5」への流れの中で
講義予定
5
Java言語の特徴
6
Javaの特徴 (1)
インターネット時代に登場した新しい言語
正式リリースは1995年
ネットワークに強い
ネットワーク上で使う機能をはじめから用意
ネットワーク上で動かしても安全なプログラム
を作れる
7
Javaの特徴 (2)
どんなコンピュータでもそのまま使える
Windows, Linux (Unix), Mac OS X など
コンパイルしたプログラムをそのまま動かせる
どんな国・地域でも使える
アメリカで作られたソフトウェアを日本語化す
るようなことが手軽に行える
国や地域・使用する言語などに固有の情報を
追加するだけでよい
8
Javaの特徴 (3)
文法が簡単で、使いやすい
(ほかの言語と比べると) 簡単な文法
「オブジェクト指向」という考え方
機能別にプログラムを整理できる
プログラムの再利用が容易
既存のプログラムを簡単に自分のプログラム
で使える
9
3つのJava
J2SE (Java SE)
J2ME (Java ME)
PCなどで利用されるJava。Javaの基本部分。
携帯電話やPDAなどで利用されるJava。
J2EE (Java EE)
企業情報システムなど、アプリケーション・
サーバで利用されるJava。
B2B / B2C で用いられる。
10
Javaはどこで使われているか?
携帯電話
NTTドコモ 「iアプリ」
ボーダフォン 「Javaアプリ」
au 「ezplus」
アプリケーション・サーバ
Webからアプリケーションを操作する
ショッピングサイトなど
11
J2EEとWebアプリケーション
12
Webアプリケーション
Webアプリケーションとは、「ユーザがWeb
ブラウザを使って何かを入力し、必要な結
果を得る」Webページ。
サーチエンジン
本の検索
商品の購入
掲示板など
13
2種類のWebページ
静的なページ
普通のページ。見るだけのもの。
動的なページ
ユーザがWebページに何か入力して使うもの
サーチエンジンなど
14
サーチエンジンの動き
1.
2.
3.
4.
5.
サーチエンジンのページを呼び出す。
調べたい言葉を入力する。
検索ボタンを押す。
その言葉に関するWebページのリストが
出力される。
リストの中からWebページを選んで見て
みる。
15
サーチエンジンの動きを
整理すると・・・
調べたい言葉を入力すると、Webページの
リストが出てくる。
入力した言葉によって、出力されるページ
が違う。
そのためには、サーバ側で何かの処理が
行われている。
16
なぜWebアプリケーションか
アプリケーションを使う側の理由
特定のソフトをインストールしなくても、Webブ
ラウザがあれば良い。
操作は簡単。
アプリケーションを提供する側の理由
集中管理できるので楽。
17
データベースの利用
Webアプリケーションは「データ」を処理する。
図書データ
在庫リスト
掲示板の記事
「データ」は保存される (= 永続性を持つ)
データベースを使うと面倒がなくて良い。
データをただのファイルで保存しておくと、遅いし面倒。
18
J2EEの基本モデル
J2EEは「データベース」を使った「Webアプ
リケーション」の作成を念頭に置いている
技術
19
なぜJ2EEか (1)
ショッピングサイトのようなシステムでは、次の条
件を満たす必要がある。
たくさんアクセスがあっても大丈夫なこと。
セキュリティを保てること。例えば顧客の情報を盗ま
れないようにすること。
従来の技術 (例えば CGI) では、こうした条件を
満たすのはなかなか大変
20
なぜJ2EEか (2)
大規模な商用システムにも耐えうるシステムが
必要。
こうしてうまれたのが「アプリケーション・サーバ」
アプリケーション・サーバの多くがJ2EEで作られ
ている。
先に示したJavaの特徴が、アプリケーション・サーバを
作るうえで有利に働く
21
なぜ Javaを使うのか? (1)
Webアプリでは、CGIよりもJavaは速い
ライブラリ・ツールの充実
GUIも使ってないし、プログラムはJava VM 上で既に
立ち上がっている。いちいち起動する必要もない。
プロセスではなく、スレッドで処理
もともと揃っているうえに、最近は特に充実。
HTMLとプログラムの分離が容易
他ではなかなか難しい。
22
なぜ Javaを使うのか? (2)
Java言語そのものの信頼性
Cなどと違い、ポインタ演算がないので、暴走
する危険性が極めて少ない。
ガベージコレクションによる不要オブジェクトの
回収
セキュリティが考慮されている言語仕様
23
で、J2EEは実際どうよ? (1)
大規模なビジネスアプリの世界では、Javaベース
の「アプリケーション・サーバ」が流行。
Oracle, BEA, IBM, Sun, Apple など大手のベン
ダーが採用。
こんなところで使われています
Webを使った顧客サービスの提供
COBOLベースの事務情報システムの置き換え
銀行でも使われ始めている
24
で、J2EEは実際どうよ? (2)
現在、Javaがいちばんよく使われている分
野
ところが、J2EEがわかる技術者は非常に
少ない
25
欠点はないの?
個人ベースでは使いにくいかも
もともと大規模システム向き。
ユーザCGIのような仕組みはない。
教育コストがかなりかかる
勉強すべきことはけっこう多い
26
Webアプリケーションの
要素技術
27
3層モデル
J2EEの基本パターン
「Webブラウザ」から「データベース」を使う
28
J2EEサーバとコンテナ
3層モデルの中央に位置
大きく分けて、次の2つの機能を持つ
Webコンテナ
EJBコンテナ
2つのコンテナでは、それぞれJavaのプロ
グラムが動く
29
Servlet と JSP
J2EEでは動的なページを作成するためServletとJSP
を使う。
Servlet
JSP
HttpServlet を継承する Javaプログラム。
HTML を埋め込める (あまり使わないけど)
ほとんどHTML
Javaプログラムを埋め込める (あまり使わないけど)
「Webコンテナ」の内部ではServletに変換される
どちらも「Webコンテナ」で動く。
普通は Servlet と JSP を組み合わせて使う。
30
MVCモデル2とフレームワーク
ServletやJSPは、「MVCモデル2」という技
術で組み合わせる。
MVCモデル2に基づく「フレームワーク」を
使うと、Webアプリケーションの作成が楽
になる
JSF
Struts
Tapestry など
31
Javaからデータベースを利用
JDBC
JavaでSQLをラッピングしたもの
O/R Mapping
「ひとつのJavaオブジェクト」が「リレーショナルデータ
ベースのテーブルの1行分のデータ」と対応
Entity Bean / Hibernate / Cayenne など
2006年に Java Persistence API がリリース。O/R
Mapping の標準APIになっていく
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 を使ってB2BやB2Cの通信
をおこなう。
まれに、SMTP を使う場合もある。
41
「Webアプリケーション」の場合
「Webサーバ」が「Webブラウザ」と通信を
行う。
42
「Webサービス」の場合
「Webサーバ」が「プログラム」と通信を行う。
43
Webサービスとは何か
Webのブラウザを使わずに、プログラム中
から Web にアクセスして必要な情報を取
り出せるサービス。
44
Webサービスの例
Google Web APIs
自分のプログラムから、Googleのサービスを
呼び出す
エージェント
ある特定の商品について、いくつかの企業の
Webサービスにアクセスして見積を取得し、い
ちばん安価な企業の商品を発注する。
45
HTTP と Webサービス
HTTP によって B2B・B2C が繋がれる。
Webブラウザだけでなく、プログラムからも HTTP を利
用できる。
46
「Java EE 5」への流れの中で
47
Java EE 5
J2EEの次期バージョン
現行バージョンは 1.4
「J2EE」が「Java EE」に
2006年初頭にリリース予定
48
Java EE 5 の要点
Ease of Development = EoD
「開発の容易性」
いかにラクにソフトウェアを開発するか
JSF, EJB 3.0, Webサービス …
技術的なポイント
Annotation
POJO
「オブジェクト指向」から「サービス指向」への流れ
49
Annotation (1)
// Entity Bean である
@Entity
// EMPLOYEE テーブルと対応している
@Table(name="EMPLOYEE")
public class Employee implements Serializable {
……
}
50
Annotation (2)
// id プロパティは ID を示す
// テーブルが ID を生成
@Id(generate=TABLE)
// テーブルのID項目に該当。主キー。
@Column(name=ID, primaryKey=true)
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
51
Annotation (3)
// テーブル中の項目名は EMP_NAME
@Column(name="EMP_NAME", length=80)
public String getName() { return name; }
public void setName(String name) {
this.name = name;
}
52
Annotation (4)
// Employee と PhoneNumbers は一対多の関係
@OneToMany(
targetEntity="com.acme.PhoneNumber",
cascade=ALL, mappedBy="employee")
// EMP_ID と PhoneNumber の ID 項目を結合
@JoinColumn(name="EMP_ID” referencedColumnName="ID")
public Collection getPhoneNumbers() { return phoneNumbers; }
public void setPhoneNumbers(Collection phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
53
Annotation (5)
J2EEで提供されている各技術を使ってプ
ログラムを作成するのは、なかなか大変
「インタフェース」と「実装クラス」
「お決まりのパターン」の記述
設定ファイルの記述
……
54
Annotation (6)
Annotation を使うことで、プログラムと設定
情報の対応が明確になり、管理すべきファ
イル数も減らせる
↓
EoD
55
POJO
POJO (Plain Old Java Object)
特定の技術に依存しない、普通のJavaオ
ブジェクト
テストしやすい
使い回ししやすい
56
DIコンテナ
従来のEJB
EJBがコンテナから必要な情報を取得する
EJB 3.0 では
コンテナがEJBに必要な情報を与える (=
Dependency Injection = DI = 依存性注入)
コンポーネント間の依存性を減らすことができる
57
「サービス指向」への流れ
ソフトウェア開発の基本単位が「オブジェクト」か
ら「サービス」に移行しつつある
そのための基本的な思想が SOA (Service
Oriented Architecture)
ソフトウェアがネットワーク上に存在する
「出張旅費精算サービス」
「出張申請」「承認」「会計処理」「報告」をそれぞれ
Webサービスとして構築
これらのWebサービスを統合して「出張旅費精算サー
ビス」(BPELという技術を使う)
58
SOAの社会的な役割
ビジネス面での要請
企業の業務システムを「サービス」として構築す
ることで、さまざまな効率化が見込まれる
リストラによる企業の間接部門の削減
例えば、ある業務をすべて外注化 → 社外にあるその
業務の「サービス」を呼び出せばよい
その「サービス」を購入すれば、人を雇うよりもいいか
も
Microsoft, Sun, Oracle, IBM などの大手ITベンダ
が「本気」で取り組んでいる
59
Java Business Integration
(JBI)
情報システム上のさまざまなサービスを
Java EE 上に統合しようとする技術
BPEL, XSLT, EJB, JMS, RSS, FTP, …
"Java EE 6" の目玉技術
オープンソースの実装も
ServiceMix (http://servicemix.org/)
60
J2EEの再定義
J2EEは、B2B・B2Cで使われる技術を整理
したもの
Webアプリケーション
データベースの取り扱い
Webサービス など
61
講義スケジュール
62
本講義のスケジュール
第1日 (12/17)
J2EE概説
Webアプリケーション (1)
JavaServer Pages (JSP)
JavaBeans
63
本講義のスケジュール
第2日 (1/14)
リレーショナル・データベースとJDBC
リレーショナル・データベース
SQL (1)
SQL (2)
JDBC
64
本講義のスケジュール
第3日 (1/28)
Webアプリケーション (2)
HTTP (1)
HTTP (2)
Servlet
総合演習
65
© Copyright 2026 ExpyDoc