稚内北星学園大学 情報メディア学部 安藤 友晴

Slides:



Advertisements
Similar presentations
年度 J2EE II 稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴. 2 この講義の位置づけ 3年前期の「データベース論 (J2EE I) 」に続く講義。 「データベース論」の講義内容を理解 していることが前提。
Advertisements

S2.4 & S2EJB3Unit 中村( taedium ). Seasar 2.4 の特徴 1 Sesar 2.4 は EJB 3.0 を実 装しています。 EJB 3.0 の仕様は 5 月 12 日に Final Release されたばかりの新しい技 術です。
Web サービス II ( 第 13 回 )‏ 2008 年 1 月 9 日 植田龍男. 本日の目的 Web サービスの歴史と将来の展望 (1) WSDL 2.0 の登場 ‏ Jersey プロジェクト Ver 0.5 による開発.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
Apache Camel Data Format Component Apache Camel
2006年9月27日 植田龍男 Webサービス II (第1回) 年9月27日 植田龍男.
IIS 4.0で開発をするコツ Webアプリケーション構築.
2004年度 サマースクール in 稚内 JSFによるWebアプリケーション開発
JPAを利用した RESTful Webサービスの開発
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
Webアプリケーション 学習用軽量コンテナSabaphy OSSAJ主催第4回ミニセミナー 2005年10月13日
Relation Mapping EJB 3.0 コース 第9回 2006年8月6日.
Apache Camel Data Format Component Apache Camel
WebサービスII (第10回) 2007年11月28日 植田龍男.
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
Servlet J2EE I 第8回 /
続 Entity Framework 入門 SQLWorld #8 サヴロウ.
Apache Camel Data Format Component Apache Camel
Biac /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
Webアプリケーション.
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
WebサービスII (第8回) 2007年11月14日 植田龍男.
JavaBeans とJSP データベース論 第5回.
JSFによるWebアプリケーション開発 第6回
バイナリ形式コンポーネントの 収集・解析・検索システムの開発
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
RMI ソフトウェア特論 第6回 /
稚内北星学園大学 情報メディア学部 安藤 友晴
プログラミング演習3 第2回 GUIの復習.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
Biac /10/ /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
Stateful Session Beans
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
WebサービスII (第7回) 2007年11月7日 植田龍男.
わんくま同盟・techbank.jp 夏椰 Insight Technology, Inc. 今川 美保
Webアプリケーションの方向性 データベース論 第13回.
2006年度 東京サテライト校 エンタープライズ・アプリケーション II
第6回 2007年6月1日 応用Java (Java/XML).
ソフトウェア工学 知能情報学部 新田直也.
Javaによる Webアプリケーション入門 第6回
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング演習3 第2回 GUIの復習.
Jakarta Struts (2) ソフトウェア特論 第11回.
COM コンポーネント・オブジェクト・モデル.
Java8について 2014/03/07.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
Javaによる Webアプリケーション入門 第11回
アプリケーション依存の先読みが可能なO/Rマッピングツール
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
JSFによるWebアプリケーション開発 第3回
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
Javaによる Webアプリケーション入門 第8回
Javaによる Webアプリケーション入門 第4回
Annotation EJB 3.0 コース 第3回 2006年8月4日.
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
Jakarta Struts (1) ソフトウェア特論 第10回.
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
ソフトウェア工学 知能情報学部 新田直也.
Microsoft Office Project Server 2007
Project GlassFish と Java Pet Store
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
MVCモデル2による Webアプリケーション
Presentation transcript:

稚内北星学園大学 情報メディア学部 安藤 友晴 2006年度サマースクール EJB 3.0 コース 稚内北星学園大学 情報メディア学部 安藤 友晴

本講座の目標 Enterprise JavaBeans (EJB) 3.0 の基本事項を理解する。 Java EE の「コンテナ/コンポーネントモデル」を理解する。 Java Persistence API について理解する

講義予定 (1) 8月3日 (木) 8月4日 (金) Java EE と EJB 実習環境の構築 Annotation Stateless Session Beans Stateful Session Beans

講義予定 (2) 8月5日(土) 8月6日(日) 8月7日(月) O/R Mapping Entity Bean EntityManagerとEJB QL 8月6日(日) Relation Mapping 8月7日(月) まとめ

本講座のWebページ www.wakhok.ac.jp/~tomoharu/ejb3-summer-2006/

Java EE と Enterprise JavaBeans (EJB) 第1回 2006年8月3日

ここでの内容 Enterprise JavaBeans (EJB) とはなにか EJB批判 EJB 3.0 の登場

Enterprise JavaBeans (EJB) とはなにか

Java EEの基本モデル Java EEは「データベース」を使った「Webアプリケーション」の作成を念頭に置いている技術

EJBとは何か? EJB = Enterprise JavaBeans 「ビジネスロジック」や「データの永続化」をコンポーネント化したもの ビジネスロジック = アプリケーションの本質的な処理 データの永続化 = メモリ上のデータをファイルシステム上に保存して、プログラムが終了してもデータは残るようにする EJB は「EJBコンテナ」上で動作する

3種類のEJB Session Beans Entity Beans Message-driven Beans

Session Beans (1) クライアントが必要に応じて呼び出す処理をまとめたもの クライアントの特定のセッションに対応 セッション開始と同時に生成され、セッション終了時に消滅

Session Beans (2) Stateless Session Beans Stateful Session Beans インスタンスに固有のフィールドがないため内部状態を持たず、ユーティリティクラスのように振る舞う Stateful Session Beans 内部状態を持っている

Entity Beans 「永続化」されているデータとの対応に用いるもの O/Rマッピング EJB 3.0 では “Java Persistence API” が用いられる

Message-driven Beans Java Message Service (JMS)でのメッセージを非同期に処理するためのもの

EJB批判

EJBに対する批判 EJBは、普及しつつも、常にさまざまな批判にさらされてきた。 例:「従来のEJBは存在自体が間違いだった」 http://itpro.nikkeibp.co.jp/free/NSW/NEWS/20050621/163065/ By Rod Johnson (Spring Framework の作者) / 2005.06.21

EJB批判のポイント 複雑すぎる 制約が多すぎ

複雑すぎる 作成するプログラムがたくさん 設定すべき項目もたくさん それぞれの関係性がわかりにくい Home インタフェース Remote インタフェース 実装クラス 設定すべき項目もたくさん それぞれの関係性がわかりにくい

制約が多すぎ EJBのプログラムは、コンテナに依存しきったものになりがち そのため、単体テストが困難 コンテナから必要な情報を取得する 「Remoteインタフェースは EJBObject を継承する」といったような多数の制約 そのため、単体テストが困難 「テストファースト」の時代なのに

そんなEJBの替わりとして 多くのソフトウェアが利用されている 軽量コンテナ O/Rマッピング Spring Framework HiveMind Seaser2 O/Rマッピング Hibernate TopLink Cayenne

EJB 3.0 の登場

EJB 3.0 2006年5月に正式リリース これまでの EJB 批判を受け止め、大幅に仕様を追加

“EoD” という考え方 Ease of Development = 開発の容易性 「いかにラクにソフトウェアを開発するか」 数年前から多用されているコトバ 最近のJava技術はEoDの考え方を基本としているものが多い。 J2SE 5.0, JSF, EJB 3.0, …

POJO と POJI (1) 従来のEntity Bean Remoteインタフェースを継承したインタフェース public interface SavingsAccount extends EJBObject {} EntityBean インタフェースを実装したクラス public class SavingsAccountBean implements EntityBean {} EJB独自の規則に従ったオブジェクトになる

POJO と POJI (2) POJO = Plain Old Java Object POJI = Plain Old Java Interface 「純粋で古い」Javaインタフェース 「純粋で古い」= 特定のソフトウェアへの依存性がない

POJO と POJI (3) EJB 3.0 では EJB 3.0 でのオブジェクトは、POJO / POJI になる

Annotation の利用 Annotation = 注釈 J2SE 5.0 (Tiger) から登場した新しい技術 ソースコード中にメタデータを加える。 EJB 3.0 では、POJO / POJI に Annotation を加えて、開発すべきプログラムや設定ファイルを減らすことができる。

軽量コンテナ 軽量コンテナ = POJO を対象としたコンテナ EJB 3.0 用のコンテナは軽量コンテナとなる Spring Framework, Seaser2 などで既に使われている技術

Dependency Injection (1) 従来のEJB EJBがコンテナから必要な情報を取得する EJB 3.0 では コンテナがEJBに必要な情報を与える (= Dependency Injection = DI = 依存性注入) Annotation を利用する コンポーネント間の依存性を減らすことができる

Dependency Injection (2) もともとは Inverse of Control (= IoC = 制御の反転) と呼ばれていた。 Martin Fowler が “Dependency Injection” と呼ぶことを提唱

EJBの現在 JSR 220 で仕様策定 2006年5月に Java EE 5 とともに正式リリース http://www.jcp.org/en/jsr/detail?id=220 2006年5月に Java EE 5 とともに正式リリース 参照実装は Project GlassFish

EJB 3.0 の仕様 EJB 3.0 Simplified API Java Persistence API EJB 3.0 のAPI (永続化APIをのぞく) Java Persistence API 永続化API 将来的には、Java SEでも利用される予定。 EJB Core Contracts and Requirements EJBのアーキテクチャについて