EJB 3.0(Public Draft)入門記 Simplified API Chapter1

今日からSimplified APIを読んでいきたいと思います。まず目次から。こんな感じ。

  • Chapter1 Introduction
  • Chapter2 Overview of the EJB 3.0 Simplified API
  • Chapter3 Enterprise Bean Class and Business Interface
  • Chapter4 Stateless Session Bean
  • Chapter5 Stateful Session Beanss
  • Chapter6 Message-Driven Beans
  • Chapter7 Entity Beans and Persistent
  • Chapter8 Enterprise Bean Context and Environment
  • Chapter9 Compatibility and Migration
  • Chapter10 Metadata Annotation
  • Chapter11 Related Documents

EJB!といった感じの言葉が並んでます。注目すべきなのはChapter8とChapter10といったところでしょうか。Chapter8はDependency Injectionに関連する章で、Chapter10はタイトルそのままにアノテーションに関する章です。Chapter7も当然注目すべきですが内容は数行しかなく詳しくはJava Persistence APIを見てねとなっています。

では、いよいよChapter1に突入。

Chapter1 Introduction

1.1 Overvie

概要です。EJB3.0は新しくシンプルになったAPIを開発者に提供するよ、とあります。そして、現在のEJB2.1のAPIは依然有効でEJB2.1のAPIに対して書かれたコンポーネントEJB3.0APIに対して書かれたコンポーネントといっしょに使えるそうです。

ふと気になりましたが、世の中にはEJB2.1以前のEJBを利用したシステムというのはどれくらい動いているんでしょうか?結構多いのか意外と少ないのか(基準はさておき)気になるところです。EJB 3.0の普及をにらんでいる人たちは現時点の開発でEJB 2.1を使おうとするのかなー。EJBを理解するという意味ではEJB 2.1を使用したほうがいいかもしれないしそういう意見も聞いたことがありますが、アプリケーションの構造的にはPOJOとDIコンテナで開発しておいたほうが移行が楽そうな気がします。

1.2 Goal of this Release

ゴール重要。EJB3.0をリリースすることの目的は、開発者にとってのEJBの複雑さを減らすことでEJBアーキテクチャを改善することらしいです。で、ゴールには次のようなものがあります。

  • EJB用のアノテーションを定義して開発者の仕事を軽減する。
  • プログラムのデフォルトを決めて例外的なときにだけ設定を行うようにする。これは「configuration by exception」アプローチ。
  • アノテーションDependency Injection、シンプルなlookupを使用して環境依存やJNDIアクセスをカプセル化する。
  • enterprise bean typeをシンプルにする。継承やポリもーフィズムを含んだlight-weightなドメインモデリングをサポートする。
  • session beanに対するEJBコンポーネントインタフェースを不要とする。
  • session beanに対するhomeインタフェースを不要とする。
  • entity beanの永続化をシンプルにする。
  • 新しいpersistence APIに向けて書かれるエンティティに関して特定のインタフェースを不要とする。
  • O/Rマッピングのためのアノテーションの仕様を定める。
  • EJB QLの拡張をしてユーザビリティを向上させる。
  • 検査例外を使用するための必要条件を緩和する。
  • コールバックインタフェースの実装を不要とする。
  • コンテナ外でテストを行いやすくする。

当然かもしれないですが、EJBの目的は開発者の負荷を軽減するところにあるのですね。なんとなく強調。
enterprise bean typeって何でしょう?SessionBeanとかEntityBeanとかMessageDrivenBeanとかの種類のこと?
テストはどこまでコンテナ外で行えるのか気になります。EJB 3.0を使う場合のテスト方法論とかこれから出てくるんでしょうか。基本的には全部コンテナ外でOKなのか。どこかの記事では全部コンテナ内でやるべきだという意見を見たような気もします(勘違いかも)。

1.3 EJB 3.0 Expert Group

いろんな人といろんな会社名が挙がってます。

1.4 Organization of the Specification Decuments

ドキュメントには次の3つがあるということについて説明が行われます。

Java Persistence API」のドキュメントではEJB3.0の環境とJ2SEの環境それぞれでPersistence APIがどのようにサポートされるかが定義されているらしいです。J2SEの環境でもというところがインパクトが大きんでしょうね。

1.5 Document Convention

フォントとかの説明。


眠くて朦朧としてきた。Chapter1終わり。たった3ページ分でした。