Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
JBoss FANJBoss FAN集まれ!集まれ! JBossJBoss 入門から入門から AOPAOP までまで
20042004 年年 22 月月 2727 日日Neverbird ProjectNeverbird Project
皆本房幸皆本房幸
森脇大悟森脇大悟
Copyright © 2004 Neverbird Project All Rights Reserved.
豆ナイト@豆蔵豆ナイト@豆蔵
2
自己紹介自己紹介
皆本 房幸(みなもと ふさゆき)
Neverbird Project 主催
(http://sourceforge.jp/projects/neverbird/)
jboss-fan メーリングリスト管理人
技術評論社、「 JBoss 入門」著者
WEB+DB Press 誌 JBoss 紹介記事執筆
3
内容内容
JBoss の紹介
JBoss アーキテクチャ
EJB と AOP の関係
Q&ADemo
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. による企業サポートあり
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)
6
JBoss Inc.JBoss Inc.
JBoss のサポート、コンサルティングを事業とする会社(米アトランタ)
2001 年 Marc Fleury 氏によって創業
「プロフェッショナル・オープンソース」
顧客: Accenture, MCI, Siemens, Motorola, McDonalds, 政府機関 , 銀行 など多数
製品バンドル : Apple, WebMethods, IONA
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 調べ)
8
JBossJBoss の特徴の特徴
使いやすい J2EE サーバホットデプロイ、 EJB コンパイル不要、ネットブート
ダウンロードして、すぐに使えるパッケージ組込み Tomcat / HSQLDBオープンソースプロダクトの統合
カスタマイズ可能なサーバサービス・コンポーネントの追加・削除が可能拡張可能な EJB コンテナ
業界をリードする先進的なアーキテクチャコンポーネント・ベースのアプリケーションサーバエンタープライズ向けの AOP ミドルウェア
9
JBossJBoss のアーキテクチャのアーキテクチャ
Tomcat EJB
HQLDB
JNDI JMS
JCAJTA WebService
JBoss Microkernel (JMX)
すべてのサービスはMBeanとして実現されるので動的な着脱やリモート監視・管理が可能
10
Enterprise JavaBeans (EJB)Enterprise JavaBeans (EJB) とはとは
企業システム向けの再利用可能コンポーネント
EJB は再利用可能なビジネスロジックを実現EJB コンテナは EJB の実行環境
EJB は J2EE サーバ間でポータブル
EJB コンテナは分散 /永続 / トランザクション / ロック/ クラスタリング等のサービスを提供
EJB とサービスの関係は「デプロイメント記述子」というXML ファイルに指定 ( カスタマイズ)
11
EJBEJB を使う目的を使う目的
EJB は本質的な仕事からサービスを分離することで、複雑なエンタープライズシステムの開発生産性を向上させる
分散: 分散オブジェクトの連携
永続性: O/R マッピング
トランザクション: 分散トランザクション
セキュリティ: アクセス権制御
高信頼性: 冗長構成・負荷分散
性能向上: オブジェクトの分散キャッシュ
12
EJBEJB の構造の構造
Bean
EJB Container
Client Service
DeploymentDescriptorDeploymentDescriptorDeploymentDescriptor
ejb-jar.xmljboss.xmljbosscmp-jdbc.xml
component I/F
home I/F
EJBコンテナがビジネスロジックとサービスを結びつける
13
JBossJBoss でのデプロイメントでのデプロイメント
ホットデプロイ( Hot Deployment )
JAR / WAR / EJB-JAR / EAR / SAR なんでも OK
サーバの deploy ディレクトリにアーカイブをコピー
アンデプロイ / 再デプロイはファイル操作のみ
EJB コンパイラは不要
標準EJB-JAR ファイルままデプロイ可能
EJB は通信プロトコルに依存しない(コンテナ設定でプロトコルを切り替えられる)
14
JBossJBoss でのでの EJBEJB の開発手順の開発手順
1. Bean クラスの実装
2 .外部インタフェースの作成( 2種類)
3.デプロイメント記述子の編集
4 . Java ファイルのコンパイル
5 .標準 EJB-JAR ファイルの作成
6 . EJB コンパイラの実行( デプロイ可能な EJB-JAR ファイルの生成)
7. デプロイツールで EJB-JAR をデプロイ
15
JBossJBoss アーキテクチャの発展アーキテクチャの発展
「 EJB はビジネスロジックと横断的関心事を分離するコンポーネント」
JBoss の歴史はコンテナの解体と統合
JBoss 2: 拡張可能コンテナ(インタセプタによるカスタマイズ)
JBoss 3: マイクロカーネル(サービスのホットデプロイ)
JBoss 4: AOP ミドルウェア(インタセプタ + サービス)
16
Aspect-Oriented Programming(AOP)Aspect-Oriented Programming(AOP)
AOP は「横断的関心事」をモジュール化する
関心事( Concern ): 家を建てる例
主要な関心事( Core Concern) : 住みやすい家作り
横断的関心事( Crosscutting Concern) :配管・電気
アスペクト( Aspect ) :横断的関心事を実現したモジュール
トランザクション・アスペクト
セキュリティ・アスペクト
17
横断的関心事の例:DBアプリ横断的関心事の例:DBアプリ
1.ログの記録2. アクセス権検査3. データソースからコネクションを取得4. トランザクションを begin5. DB からデータをロード6. ビジネスロジックの実行7. DBへデータをストア8. トランザクション commit9. コネクション close10. ログの記録
18
J2EEJ2EE アラカルトアラカルト
EJB の課題:
EJB を開発するのに手間がかかる
EJB の提供するサービスが固定(追加・削除不可)
EJB は EJB コンテナに依存するのでテストが不便
J2EE アラカルト:
AOP ( Aspect-Oriented Programming )によってPOJO (普通の Java オブジェクト)に後から必要なサービスだけを適用できるようにする。
19
POJOPOJO++ AOPAOP
POJO
JBossAOP
Client Aspect
DeploymentDescriptor
jboss-aop.xml
JBossAOPが POJOとアスペクトを結びつける
20
まとめまとめ
JBoss の紹介
本格的なオープンソース J2EE サーバ
2004 年 J2EE1.4 認定取得予定
JBoss アーキテクチャ
コンポーネントベースの汎用サービスプラットフォーム
EJB と AOP の関係
EJB の発展形としての AOP ミドルウェア
21
おすすめおすすめ JBossJBoss学習法学習法
J2EE の基本的な考え方を理解する
仕様書を参照する( Servlet/JSP, EJB)実際に JBoss を使って自分の理解を確認する
開発生産性を向上させるため IDE を使う
疑問点は他人に聞く前にまず自分で調べるJBoss Inc.有料ドキュメント ($10)JBoss Forum / JBoss ML のアーカイブ
ソースを読むのが一番の近道という場合が多い
J2EE ・ EJB デザインパターンは必須
22
JBossJBoss とコミュニティとコミュニティ
オープンソースはコミュニティの存在が重要
コミュニティが開発サイクルの一環
ユーザがバグの原因を突き止めることが可能
ユーザがサーバのバグを修正することも可能
JBoss.org の JBoss-user ML が基本
国内では jboss-fan ML や Neverbird WikiJBoss は企業サポートがあるのが特長オープンソースと企業サポートが車の両輪
23
Q&AQ&ATomcat と何が違うの
マニュアルが見当たらないんですけど
推奨される開発環境は何ですか
24
DemoDemo
JBossJBoss の基本操作との基本操作とEJBEJB 開発環境の紹介開発環境の紹介
25
XDocletXDoclet とはとは
XDoclet はコード生成エンジン(http://xdoclet.sourceforge.net/)Ant の拡張タスクとして実装されている
JavaDoc コメントに専用タグを指定することでコードやメタデータを生成する
Struts / EJB / Hibernate などのタグがある
JBoss-IDE や Lomboz でサポート
26
XDocletXDoclet による自動生成による自動生成
DiaryBean.java
Bean実装クラス
Diary.java
XDoclet
DiaryUtil.javaejb-jar.xml
jboss.xmljbosscmp-jdbx.xml
DiaryHome.java