26
1 JBoss FAN JBoss FAN 集まれ! 集まれ! JBoss JBoss 入門から 入門から AOP AOP まで まで 2004 2004 2 2 27 27 Neverbird Project Neverbird Project 皆本房幸 皆本房幸 森脇大悟 森脇大悟 Copyright © 2004 Neverbird Project All Rights Reserved. 豆ナイト@豆蔵 豆ナイト@豆蔵

豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

1

JBoss FANJBoss FAN集まれ!集まれ! JBossJBoss 入門から入門から AOPAOP までまで

20042004 年年 22 月月 2727 日日Neverbird ProjectNeverbird Project

皆本房幸皆本房幸

森脇大悟森脇大悟

Copyright © 2004 Neverbird Project All Rights Reserved.

豆ナイト@豆蔵豆ナイト@豆蔵

Page 2: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

2

自己紹介自己紹介

皆本 房幸(みなもと ふさゆき)

Neverbird Project 主催

(http://sourceforge.jp/projects/neverbird/)

jboss-fan メーリングリスト管理人

技術評論社、「 JBoss 入門」著者

WEB+DB Press 誌 JBoss 紹介記事執筆

Page 3: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

3

内容内容

JBoss の紹介

JBoss アーキテクチャ

EJB と AOP の関係

Q&ADemo

Page 4: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

4

JBossJBoss とはとは

JBoss はオープンソース J2EE サーバ(http://www.jboss.org)1999年 Marc Fleury 氏によって創設

最新安定版の JBoss 3.2.3 は J2EE 1.3 相当JBoss 4 で J2EE 1.4 認定取得予定

ライセンスは LGPL なので商用でも利用可

JBoss Inc. による企業サポートあり

Page 5: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

5

JBossJBoss サーバの歴史サーバの歴史

1999 年 EJBoss (EJB コンテナ)

2000 年 JBoss 2.0 ( 拡張可能なコンテナ )

2002 年 JBoss 3.0 ( マイクロカーネル )

2003 年 JBoss 3.2 ( 最新安定版 3.2.3)

2004 年 JBoss 4.0 (J2EE 1.4/AOP)

Page 6: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

6

JBoss Inc.JBoss Inc.

JBoss のサポート、コンサルティングを事業とする会社(米アトランタ)

2001 年 Marc Fleury 氏によって創業

「プロフェッショナル・オープンソース」

顧客: Accenture, MCI, Siemens, Motorola, McDonalds, 政府機関 , 銀行 など多数

製品バンドル : Apple, WebMethods, IONA

Page 7: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

7

JBossJBoss の人気と評価の人気と評価

SourceForge.net での開発、コミッタ 90 人強

現在まで 500 万ダウンロードを誇る人気

2002 年 米 JavaWorld 、 Editor's Choice Award“Best Appllication Server” 賞受賞

2003 年 Java Developer's Journal 、 Reader's Choice 、 “ Best Application Server” 第 2 位

マーケットシェア 27 %( 2003 年 BZ Research 調べ)

Page 8: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

8

JBossJBoss の特徴の特徴

使いやすい J2EE サーバホットデプロイ、 EJB コンパイル不要、ネットブート

ダウンロードして、すぐに使えるパッケージ組込み Tomcat / HSQLDBオープンソースプロダクトの統合

カスタマイズ可能なサーバサービス・コンポーネントの追加・削除が可能拡張可能な EJB コンテナ

業界をリードする先進的なアーキテクチャコンポーネント・ベースのアプリケーションサーバエンタープライズ向けの AOP ミドルウェア

Page 9: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

9

JBossJBoss のアーキテクチャのアーキテクチャ

Tomcat EJB

HQLDB

JNDI JMS

JCAJTA WebService

JBoss Microkernel (JMX)

すべてのサービスはMBeanとして実現されるので動的な着脱やリモート監視・管理が可能

Page 10: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

10

Enterprise JavaBeans (EJB)Enterprise JavaBeans (EJB) とはとは

企業システム向けの再利用可能コンポーネント

EJB は再利用可能なビジネスロジックを実現EJB コンテナは EJB の実行環境

EJB は J2EE サーバ間でポータブル

EJB コンテナは分散 /永続 / トランザクション / ロック/ クラスタリング等のサービスを提供

EJB とサービスの関係は「デプロイメント記述子」というXML ファイルに指定 ( カスタマイズ)

Page 11: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

11

EJBEJB を使う目的を使う目的

EJB は本質的な仕事からサービスを分離することで、複雑なエンタープライズシステムの開発生産性を向上させる

分散: 分散オブジェクトの連携

永続性: O/R マッピング

トランザクション: 分散トランザクション

セキュリティ: アクセス権制御

高信頼性: 冗長構成・負荷分散

性能向上: オブジェクトの分散キャッシュ

Page 12: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

12

EJBEJB の構造の構造

Bean

EJB Container

Client Service

DeploymentDescriptorDeploymentDescriptorDeploymentDescriptor

ejb-jar.xmljboss.xmljbosscmp-jdbc.xml

component I/F

home I/F

EJBコンテナがビジネスロジックとサービスを結びつける

Page 13: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

13

JBossJBoss でのデプロイメントでのデプロイメント

ホットデプロイ( Hot Deployment )

JAR / WAR / EJB-JAR / EAR / SAR なんでも OK

サーバの deploy ディレクトリにアーカイブをコピー

アンデプロイ / 再デプロイはファイル操作のみ

EJB コンパイラは不要

標準EJB-JAR ファイルままデプロイ可能

EJB は通信プロトコルに依存しない(コンテナ設定でプロトコルを切り替えられる)

Page 14: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

14

JBossJBoss でのでの EJBEJB の開発手順の開発手順

1. Bean クラスの実装

2 .外部インタフェースの作成( 2種類)

3.デプロイメント記述子の編集

4 . Java ファイルのコンパイル

5 .標準 EJB-JAR ファイルの作成

6 . EJB コンパイラの実行( デプロイ可能な EJB-JAR ファイルの生成)

7. デプロイツールで EJB-JAR をデプロイ

Page 15: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

15

JBossJBoss アーキテクチャの発展アーキテクチャの発展

「 EJB はビジネスロジックと横断的関心事を分離するコンポーネント」

JBoss の歴史はコンテナの解体と統合

JBoss 2: 拡張可能コンテナ(インタセプタによるカスタマイズ)

JBoss 3: マイクロカーネル(サービスのホットデプロイ)

JBoss 4: AOP ミドルウェア(インタセプタ + サービス)

Page 16: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

16

Aspect-Oriented Programming(AOP)Aspect-Oriented Programming(AOP)

AOP は「横断的関心事」をモジュール化する

関心事( Concern ): 家を建てる例

主要な関心事( Core Concern) : 住みやすい家作り

横断的関心事( Crosscutting Concern) :配管・電気

アスペクト( Aspect ) :横断的関心事を実現したモジュール

トランザクション・アスペクト

セキュリティ・アスペクト

Page 17: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

17

横断的関心事の例:DBアプリ横断的関心事の例:DBアプリ

1.ログの記録2. アクセス権検査3. データソースからコネクションを取得4. トランザクションを begin5. DB からデータをロード6. ビジネスロジックの実行7. DBへデータをストア8. トランザクション commit9. コネクション close10. ログの記録

Page 18: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

18

J2EEJ2EE アラカルトアラカルト

EJB の課題:

EJB を開発するのに手間がかかる

EJB の提供するサービスが固定(追加・削除不可)

EJB は EJB コンテナに依存するのでテストが不便

J2EE アラカルト:

AOP ( Aspect-Oriented Programming )によってPOJO (普通の Java オブジェクト)に後から必要なサービスだけを適用できるようにする。

Page 19: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

19

POJOPOJO++ AOPAOP

POJO

JBossAOP

Client Aspect

DeploymentDescriptor

jboss-aop.xml

JBossAOPが POJOとアスペクトを結びつける

Page 20: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

20

まとめまとめ

JBoss の紹介

本格的なオープンソース J2EE サーバ

2004 年 J2EE1.4 認定取得予定

JBoss アーキテクチャ

コンポーネントベースの汎用サービスプラットフォーム

EJB と AOP の関係

EJB の発展形としての AOP ミドルウェア

Page 21: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

21

おすすめおすすめ JBossJBoss学習法学習法

J2EE の基本的な考え方を理解する

仕様書を参照する( Servlet/JSP, EJB)実際に JBoss を使って自分の理解を確認する

開発生産性を向上させるため IDE を使う

疑問点は他人に聞く前にまず自分で調べるJBoss Inc.有料ドキュメント ($10)JBoss Forum / JBoss ML のアーカイブ

ソースを読むのが一番の近道という場合が多い

J2EE ・ EJB デザインパターンは必須

Page 22: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

22

JBossJBoss とコミュニティとコミュニティ

オープンソースはコミュニティの存在が重要

コミュニティが開発サイクルの一環

ユーザがバグの原因を突き止めることが可能

ユーザがサーバのバグを修正することも可能

JBoss.org の JBoss-user ML が基本

国内では jboss-fan ML や Neverbird WikiJBoss は企業サポートがあるのが特長オープンソースと企業サポートが車の両輪

Page 23: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

23

Q&AQ&ATomcat と何が違うの

マニュアルが見当たらないんですけど

推奨される開発環境は何ですか

Page 24: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

24

   DemoDemo

JBossJBoss の基本操作との基本操作とEJBEJB 開発環境の紹介開発環境の紹介

Page 25: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

25

XDocletXDoclet とはとは

XDoclet はコード生成エンジン(http://xdoclet.sourceforge.net/)Ant の拡張タスクとして実装されている

JavaDoc コメントに専用タグを指定することでコードやメタデータを生成する

Struts / EJB / Hibernate などのタグがある

JBoss-IDE や Lomboz でサポート

Page 26: 豆ナイト@豆蔵 JBoss FAN 集まれ!neverbird.osdn.jp/docs/mame-20040227.pdf2004/02/27  · 5 JBoss サーバの歴史 1999 年 EJBoss (EJB コンテナ) 2000 年 JBoss 2.0

26

XDocletXDoclet による自動生成による自動生成

DiaryBean.java

Bean実装クラス

Diary.java

XDoclet

DiaryUtil.javaejb-jar.xml

jboss.xmljbosscmp-jdbx.xml

DiaryHome.java