JBoss入門 オープンソースJava・EJB
2003年6月13日紙版発売
皆本房幸 著
B5変形判/464ページ/CD1枚
定価4,268円(本体3,880円+税10%)
ISBN 4-7741-1749-8
ただいま弊社在庫はございません。
書籍の概要
この本の概要
「オープンソース・Java・EJBソフトウェア開発の旗手JBoss」JBossはオープンソースのEJB(Enterprise Java Beans)サーバで,オープンソースの総本山SouceForge。Netで年間200万ダウンロードを超える人気のソフトの1つです(米JavaWorld誌で2002年ベストアプリケーションサーバ賞受賞)。JBossは高価なWebサーバを購入することなく,EJBを無料で学習できる定番Webサーバとなりました。本書はJavaプログラマ/開発者を対象とし,JBossの機能とEJBのプログラミング方法をやさしく解説しました。EJBのみならず,Jakartaプロジェクトのツール群の使い方からUMLを利用したオブジェクト指向開発までも統合的に学習できます。
こんな方におすすめ
- EJBを使用して高度なサーバーサイドJavaプログラミングに挑戦したい方
- オープンソース系のソフトウェア開発を知りたい方
著者の一言
JBossを使いこなせるようになるためには,J2EEの基本となる考え方やJBossの アーキテクチャを理解することが大事です。本書ではJ2EEプログラミングの題材を通して,「なぜそうなっているのか」ということを自分の頭で考えられるように努めました。本書によって,JBossの魅力が少しでもお伝えできたら幸いです。
目次
1章 JBossとJ2EE
- 1.1 JBossは,もっとも人気のあるオープンソースJ2EEサーバ
- 1.1.1 .JBossとはなにか「歴史と発展」
- 1.1.2 .JBossの特徴「簡単・使いやすい・先進的」
- 1.1.3 .JBoss 3.0の機能「EJB仕様への対応」
- 1.1.4 .JBossの基盤としてのJMX「柔軟なサーバ構成を可能にする技術」
- 1.1.5 .マイクロカーネルアーキテクチャ「サービスの登録を簡単にする秘密」
- 1.1.6 .JBossの主なモジュール
- 1.1.7 .JBoss使用上の注意「J2EEの認証について」
- 1.2 J2EE多層モデル
- 1.2.1 .J2EEプラットフォーム「多層モデルの役割を確認しよう」
- 1.2.2 .J2EE開発のロールと作業「コンポーネントプロバイダ・アプリケーションアセンブラ・デプロイヤ」
- 1.3 EJBの基礎知識を復習する
- 1.3.1 .EJBの概念「必要とされるシステム要件とメリット」
- 1.3.2 .EJBサーバ「分散オブジェクトと通信プロトコルAPI」
- 1.3.3 .EJBコンテナ「構造と機能」
- 1.3.4 .宣言型プログラミング「デプロイメント記述子の役割」
- 1.3.5 .EJBのリソース管理「インスタンスとガーベッジコレクション」
- 1.3.6 .EJBの規約「クライアント・コンポーネント・EJB-JARファイル」
- 1.3.7 .EJBの種類「セッション・エンティティ・メッセージ駆動型Bean」
- 1.3.8 .EJBの構成要素「必須インターフェース」
- 1.3.9 .EJB-JARファイル「構造と機能」
- 1.3.10 .EJBのインターフェース「リモートとローカル」
- 1.3.11 .EJBクライアント「JNDIアクセスの仕組み」
- 1.3.12 .JBossデプロイメント記述子「J2EE仕様とのすり合わせ」
2章 J2EEプログラミングの基礎
- 2.1 JBossのインストールの方法
- 2.1.1 .JDKとJBossの準備をしよう「環境の構築における注意点」
- 2.1.2 .JBossのダウンロードと配布内容「適用バージョンに注意」
- 2.1.3 .配布ファイルの展開「jarコマンド」
- 2.1.4 .環境変数の設定「各種スクリプトファイルに適用」
- 2.1.5 .設定セット「設定ファイルとライブラリ一式」
- 2.1.6 .ディレクトリ構成「階層構造を確認」
- 2.2 JBossの起動と停止
- 2.2.1 .JBossの起動「バッチファイルやシェルスクリプトで行う」
- 2.2.2 .JBossの停止「バッチファイルかCtrl+Cで行う」
- 2.2.3 .JBossの起動オプション「目的別にオプションを変える」
- 2.2.4 .Webコンテナの動作確認「JMXコンソール」
- 2.3 JMXコンソールとはなにか
- 2.3.1 .JMXコンソールの機能「MBeanをブラウズする」
- 2.3.2 .JMXコンソールの使い方「コンソールの起動」
- 2.4 サンプルEJBの説明「開発の手順とAntのインストール」
- 2.5 STEP1 はじめてのEJBプログラミング
- 2.5.1 .数値カウンタEJBを作ろう「インターフェース設計」
- 2.5.2 .EJBのビルド手順「コンパイル→JARファイル作成,Antを活用」
- 2.5.3 .クライアントの実行「動作確認テスト」
- 2.5.4 .JMXコンソールによる確認「JNDIとデプロイメントの成功」
- 2.5.5 .JNDIプロパティの設定「2つの方法」
- 2.6 STEP2 Webアプリケーションを作ろう
- 2.6.1 .Webコンテナ「アプリケーション実行エンジン」
- 2.6.2 .Webアプリケーション「その定義とは」
- 2.6.3 .WARファイルの作成方法「コンパイル後,jarコマンド実行」
- 2.6.4 .数値カウンタのWeb表示「ブラウザで実行確認」
- 2.6.5 .クライアントの実行「カウンタの動作確認」
- 2.6.6 .STEP2の課題「改善方法を考える」
- 2.7 STEP3 J2EEアプリケーションを作ろう
- 2.7.1 .J2EEアプリケーション「本格的なJ2EE対応を目指す」
- 2.7.2 .EARファイル「J2EE準拠ならばマルチベンダ対応」
- 2.7.3 .数値カウンタアプリケーション「J2EE対応にするには」
- 2.7.4 .クライアントの実行「動作確認」
- 2.8 STEP4 J2EEアプリケーションの組立て
- 2.8.1 .ENC「ローカルな名前空間とはなにか」
- 2.8.2 .EJB参照の解決「問題点の明確化と対策」
- 2.8.3 .依存ライブラリの指定「Java拡張機能機構」
- 2.8.4 .クライアントの実行「動作確認テスト」
3章 オープンソースによるEJB開発
- 3.1 J2EEアプリケーションの開発手順「AntとXDocletの活用」
- 3.2 Antによるビルドの自動化「XMLファイルとビルド手順」
- 3.2.1 .Antビルドファイルの構造「XMLファイルの構成要素」
- 3.2.2 .EJBをビルドするために「build.xmlの例」
- 3.3 XDocletを使ったコード生成
- 3.3.1 .XDocletのインストール「Antが必須」
- 3.3.2 .XDocletの概要「作業を効率化する魅力的な機能」
- 3.3.3 .BeanクラスへのJavadocコメントの記述例「クラス・メソッド」
- 3.3.4 .Javadocコメントから生成されたファイルの例「リモートインターフェースとCMPレイヤクラス」
- 3.3.5 .AntにおけるEJBDocletの利用例「JBoss向けの設定方法」
- 3.4 Java IDEを利用したXML編集とデバッグ
- 3.4.1 .Java IDEの必要性「さらなる生産性の向上のために」
- 3.4.2 .NetBeansのインストール「Sun Microsystemsの高機能IDE」
- 3.4.3 .デプロイメント記述子の編集「NetBeansのXMLサポート機能」
- 3.4.4 .リモートデバッグ「一連の手順を紹介」
- 3.5 EclipseとJBossの使い方
- 3.5.1 .Eclipseのインストール「プラグインで拡張可能な開発環境」
- 3.5.2 .JBossIDEプラグインのインストール「2つの方法」
- 3.5.3 .JBossサーバの起動と停止
- 3.5.4 .XDocletタグ入力補完
4章 EJBプログラミングの実践
- 4.1 サンプルプログラムの仕様解説
- 4.1.1 .図書館システム作成シナリオ「なにを実現したいのか」
- 4.1.2 .エンティティの確認「永続オブジェクト」
- 4.1.3 .アプリケーションの構成「BluePrintsを下敷きに」
- 4.1.4 .コンポーネントの配置「セッションEJBを中心に」
- 4.1.5 .サンプルのビルドと実行「Antコマンドの使い方」
- 4.1.6 .画面構成「一連の操作の画面遷移」
- 4.2 CMPエンティティBean
- 4.2.1 .エンティティBeanの概要「データベースのレコード」
- 4.2.2 .CMPとBMPの違い「データベース処理をサーバにまかせるか」
- 4.2.3 .エンティティBeanの構造
- 4.2.4 .インスタンスの管理「活性化と非活性化」
- 4.2.5 .オブジェクトの作成「インスタンスの初期化」
- 4.2.6 .データベースとの同期「N+1問題の解決」
- 4.3 CMPリレーションシップ
- 4.3.1 .CMRの概要「リレーションシップの実現方法」
- 4.3.2 .エンティティとリレーションシップ「宣言の方法」
- 4.3.3 .CMRの機能と効能「簡素化.整合性の維持,カスケード削除」
- 4.3.4 .JBossリレーションマッピング「外部キーとテーブル」
- 4.4 CMP EJBクエリ言語とはなにか
- 4.4.1 .EJB-QLの概要「SQLに似ているEJB問い合わせ言語」
- 4.4.2 .JBoss-QLの紹介「EJB-QLをより便利に」
- 4.5 セッションBean
- 4.5.1 .セッションBeanの概要「手続き型のBean」
- 4.5.2 .セッションBeanの構造「ホームとリモートインターフェース」
- 4.5.3 .データ転送オブジェクト「エンティティの内容をC/S間で転送」
- 4.6 メッセージ駆動型Bean
- 4.6.1 .メッセージ駆動型Beanの概要「非同期とトランザクション」
- 4.6.2 .メッセージの構造と種類「用途に応じたメッセージの選択」
- 4.6.3 .JMSメッセージングモデル「パブリッシュ−サブスクライブとポイント−ポイントモデル」
- 4.6.4 .メッセージ駆動型Bean「クラス構造とインターフェース」
- 4.6.5 .JMSクライアントコード「キューを送る手順」
- 4.7 図書館システムに催促メールサービスを加える
- 4.7.1 .スケジューラMBean「cronに似た機能を作る」
- 4.7.2 .スケジューラの属性「パラメータのXMLファイル指定」
- 4.7.3 .スケジューラクラスの作成「催促メールの送信」
- 4.7.4 .スケジューラのアーカイブ作成「<classpath>要素を忘れずに」
- 4.7.5 .スケジューラMBeanの動作確認「JMXコンソールで制御」
5章 トランザクションの概要
- 5.1 トランザクションの概要
- 5.1.1トランザクションは商取引「まとめて1つとして扱う必要のある一連の仕事」
- 5.1.2 .トランザクションの要件「ACID特性」
- 5.1.3 .トランザクション処理の重要性「サーバによる並行制御と耐障害性」
- 5.2トランザクション管理のコンポーネント
- 5.2.1 .コミットとロールバック「EJBでのトランザクション処理」
- 5.2.2トランザクションの伝播「トランザクションの構造化」
- 5.3 宣言トランザクションとはなにか
- 5.3.1 .トランザクション属性「スレッドとメソッド」
- 5.3.2 .トランザクション属性の実装例「本の注文を例に」
- 5.3.3 .トランザクション属性の設定方法「ejb-jar.xml」
- 5.4 コミットオプションとはなにか
- 5.4.1 .コミットオプションの種類「A,B,C,D」
- 5.4.2 .キャッシュの制御「オプションの種類と性質」
- 5.4.3 .Read-Onlyデータの扱い「各オプションの用途」
- 5.4.4 .コミットオプションの設定方法「コンテナ設定」
- 5.4.5 .EJBコールバックメソッドとの関係「呼ばれ方の変化を調べる」
- 5.5 トランザクション独立性とはなにか
- 5.5.1 .トランザクションとロックの関係「独立性の保持の仕組み」
- 5.5.2ロックの種類「悲観的/楽観的ロック」
- 5.6デッドロックとその回避策
- 5.6.1 .デッドロック「排他的/悲観的ロック」
- 5.6.2 .デッドロック例外「適切に使いこなすJBoss」
- 5.6.3 .Read-Onlyフラグ「EJB 2.0にはない機能」
- 5.6.4 .トランザクションと例外処理「EJBコンテナによるトランザクションロールバック処理」
6章 セキュリティ管理
- 6.1 J2EEセキュリティの概要
- 6.1.1 .J2EEにおける認証と認可「認証サービスの特徴」
- 6.1.2 .プリンシパルとロール「認証情報とデータ」
- 6.1.3 .ロールによるアクセス制御「ロールベースで手間を減らす」
- 6.2 J2EEアクセス制御の2つの方法
- 6.2.1 .ロールの参照「メソッドで記述する場合」
- 6.2.2 .EJBにおける宣言セキュリティ「ロールとアクセス権」
- 6.3 .Webの保護リソース
- 6.4 .Webのログイン認証
- 6.5 JBossセキュリティ管理の仕組み
- 6.5.1 .セキュリティドメインを単位としたリソース管理「デプロイメント記述子で宣言する」
- 6.5.2 .セキュリティドメインの指定「JNDI登録方法」
- 6.5.3 .セキュリティドメインの設計「選択肢は3通り」
- 6.6 JBossセキュリティマネージャ
- 6.6.1 .セキュリティマネージャ「JASSフレームワーク」
- 6.7 JBossログインモジュールの選択と設定
- 6.7.1 .ログイン設定ファイル「login-config.xmlの構造」
- 6.7.2 .UsersRolesLoginModule「プロパティから認証情報を取得」
- 6.7.3 .DatabaseServerLoginModule「DBから認証情報を取得」
- 6.7.4 .ClientLoginModule「クライアント側でのログイン」
- 6.7.5 .パスワードの符号化「ハッシュアルゴリズム」
- 6.7.6 .非認証コンポーネントからのアクセス「ロールベースでの認証をどのように実現するか」
7章 EJBデザインパターンの適用
- 7.1 EJBデザインパターンとはなにか
- 7.2 Session Facadeパターン
- 7.2.1 .通信層としてのセッションBean「複数のインターフェースを1つにまとめる」
- 7.2.2 .Session Facadeパターンによるパフォーマンス向上「効果覿面」
- 7.3 Data Transfer Object Factoryパターン
- 7.3.1 .DTOの役割「分散環境に有効」
- 7.3.2 .カスタムDTO「エンティティBeanと対に」
- 7.3.3 .DTO FactoryによるDTO作成の集約「コード修正を最小限にしたい」
- 7.4 Business Delegateパターン
- 7.4.1 .EJB APIを隠すBusiness Delegate「正しいコーディングを導くために」
- 7.4.2 .Business Delegateの役割「コード変更の吸収のメリット」
- 7.4.3 .Business Delegateによる例外の変換「間違いを減らす処理」
- 7.4.4 .Business Delegateにおけるキャッシュの保持「高速化のために」
- 7.4.5 .典型的なEJBアプリケーションの構成「様々なパターン」
8章 パフォーマンスの考察
- 8.1 JBoss CMPの最適化でパフォーマンスは向上するか
- 8.1.1 .遅すぎる測定結果「Session Facade適用の有無」
- 8.1.2 .トランザクションの影響「背後でのエンティティの動き」
- 8.1.3 .JBoss CMPの影響「先読みをするか否か」
- 8.1.4 .Session Facadeパターンの効果「3つのメリット」
- 8.2 キャッシュの制御
- 8.2.1 .コミットオプションの効果「魔法のスイッチの使い方」
- 8.2.2 .Read-Onlyフラグの効果「コミットオプションとの関係」
- 8.3 JBossの最適化機能とパフォーマンス向上
9章 XDocletアプリケーション開発
- 9.1 なぜXDocletが必要なのか
- 9.1.1 .EJB開発の問題点を明らかにする「再利用と保守性を考える」
- 9.1.2 .リファクタリングの必要性「実装コードの改善」
- 9.1.3 .XDocletとリファクタリング「EJB=Beanクラス」
- 9.2 セッションBean
- 9.2.1 .@ejbのタグ指定「XDocletのための確認」
- 9.2.2 .セッションBeanのデプロイメント記述子「BookSearchBean」
- 9.3 CMPエンティティBean
- 9.3.1 .@ejbのタグ指定「構造部分」
- 9.3.2 .@ejbのタグ指定「Value Object」
- 9.3.3 .@ejbのタグ指定「データベースの操作」
- 9.3.4 .@jbossのタグ指定「CMPエンティティBeanでの利用方法」
- 9.3.5 .マージポイント「デプロイメント記述子上でおこなう」
- 9.3.6 .CMPエンティティBeanのデプロイメント記述子「構造部分」
- 9.4 CMP finderメソッド
- 9.4.1 .@ejbのタグ指定「JBoss-QL」
- 9.4.2 .CMP finderのデプロイメント記述子「生成結果」
- 9.5 CMPリレーションシップ
- 9.5.1 .@ejbのタグ指定「エンティティ間のリレーションを宣言」
- 9.5.2 .CMP リレーションシップのデプロイメント記述子「生成結果」
- 9.6 メッセージ駆動型Bean
- 9.6.1 .@ejbのタグ指定「属性名とejb-jar.xml」
- 9.6.2 .メッセージ駆動型デプロイメント記述子「生成結果」
- 9.7 Webアプリケーション
- 9.7.1 .@webのタグ指定「外部ファイル化」
- 9.7.2 .Webアプリケーションのデプロイメント記述子「生成結果」
- 9.8 Antビルドスクリプト
10章 JBossアーキテクチャ
- 10.1 JMXの概要
- 10.1.1 .JMXとMBeanの概要「JBossはJMXベースのJ2EEサーバ」
- 10.1.2 .MBeanの構成要素を作る「構造と機能」
- 10.1.3 .MBeanサーバ「オブジェクトの機能と役割」
- 10.1.4 .MBeanクライアント「バージョン表示・リモートデプロイメント機能」
- 10.2 JBossアーキテクチャの基礎
- 10.2.1 .JBossサービスの作成「実装方法」
- 10.2.2 .MBeanのデプロイメント「マイクロカーネルアーキテクチャの威力」
- 10.2.3 .MBeanのライフサイクル管理「依存関係の制御」
- 10.2.4 .UnifiedClassLoaderアーキテクチャ「クラスローダの存在理由」
- 10.3 JBossコンテナアーキテクチャ
- 10.3.1 .ホットデプロイ「作業を楽にする重要な機能」
- 10.3.2 .ダイナミックプロキシ「RMIがなぜ要らないのか」
- 10.3.3 .コンテナ通信「IIOPの利用」
- 10.3.4 .カスタマイズ可能なコンテナ「インタセプタ」
- 10.3.5 .インタセプタの例「CounterServiceの使い方」
- 10.3.6 .クライアントインタセプタ「プロキシから呼び出されるインタセプタ」
11章 JBossシステム管理
- 11.1 Java仮想マシンの調整
- 11.2 オープンポート
- 11.3 JMXコンソール
- 11.3.1 .JMXコンソールのセキュリティ上の問題「Web公開時の注意点」
- 11.1.2 .JMXコンソールのログイン認証「修正方法例」
- 11.1.3 .JMXコンソールから利用可能な監視ツール「MBeanモニタ」
- 11.4 ログファイルの設定
- 11.4.1 .JBossのログファイルの種類「Logの読み方」
- 11.4.2 .Log4Jによるログ指定「6つのトレースレベル」
- 11.5 Webコンテナの設定
- 11.5.1 .Jettyの設定「SARファイルの書き方」
- 11.5.2 .Tomcatの設定「Jetty以外のWebコンテナ」
- 11.6 EJBコンテナの設定
- 11.7 データベースの変更方法
- 11.7.1 .JBossのコネクション管理「JCAドライバ」
- 11.7.2 .PostgreSQLのインストール「シーラカンス本参照のこと」
- 11.7.3 .設定セットの作成「PostgreSQLの例」
- 11.7.4 .サービス設定ファイル「JNDI名とConnectionURLの変更」
- 11.7.5 .ログイン設定情報の修正「ユーザ認証」
- 11.7.6 .JDBCドライバのインストール「設定し忘れに注意」
- 11.7.7 .CMP関連ファイルの修正「変更注意点」
- 11.7.8 .Postgresサービスの動作確認「サーバとの接続」
- 11.7.9 .Hypersonic SQL DBの削除「切り替え」
この本に関連する書籍
-
JBoss徹底活用ガイド―Java・オープンソース・JBoss Seam・JBoss AS
EJBアプリケーションサーバJBoss ASとWebフレームワークJBoss SeamによるWebアプリケーション開発を解説します。
-
BEA WebLogic Server 8.1J EJB2.0 徹底攻略
本書は,金融や流通分野で高いシェアを誇るJ2EEサーバWebLogicServer8.1J最新版のJava/EJBプログラミング解説書です。Apache Jakartaオープンソースプロダクトとの組み...
-
詳解 Sun ONE Application Server7 パーフェクトガイド
Sun One AS7はJ2EEベースのアプリケーションサーバであり,Javaを生んだサン・マイクロシステムズ社が提案するWebシステムソリューションです。本書ではSun ONE AS7の概...
-
J2EEプログラマのためのEJBパーフェクトガイド
J2EE関連技術の中でも最も重要とされているEJB(EJB)は,大規模基幹業務だけでなく,中小規模のWebアプリケーション開発においてもその威力を発揮します。本書はコンポ...
-
J2EE パフォーマンスチューニング徹底解説
本書は今話題のWebシステムのパフォーマンスチューニングについて,単なるJavaプログラミングやツールの解説ではなく,基本的な知識からJavaプログラミングで注意すべき...