Architecture

以下は、http://www.nhforge.org/wikis/reference2-0en/architecture.aspx の勝手翻訳です。

Overview

(非常に)高レベルな NHibernateのアーキテクチャは図のようなものです:

(図)

この図は、NHibernateが、データベースとコンフィギュレーションデータを利用して、永続化サービス(と、永続化オブジェクト)の提供をアプリケーションに対して行う事を表しています。

実行時アーキテクチャをより詳しく見てみることにしましょう。残念なことに、NHibernateは柔軟で、様々なやり方をサポートしています。二つの、極端な例をみてみます。"lite"アーキテクチャでは、アプリケーションは自身でADO.NETのコネクションを提供し、トランザクションを管理します。このアプローチでは、NHirbenateのAPIのうち、最小のサブセットを利用します。

(図)

"full cream"アーキテクチャは、アプリケーションをADO.NETのAPIから切り離し、NHibernateに詳細の管理を任せます。

(図)

図で利用されているオブジェクトの定義を示します:

ISessionFactory (NHibernate.ISessionFactory)

一つのデータベースに対する、コンパイル済みマッピングの、スレッドセーフ(イミュータブル)なキャッシュです。ISessionのファクトリーであり、IConnectionProviderのクライアントです。オプションとして、プロセス、もしくはクラスターレベルのトランザクション間で再利用可能なデータの(セカンドレベルの)キャッシュを保持できます。(??)

ISession (NHibernate.ISession)

アプリケーションと永続化ストア間の対話を表現する、シングルスレッドで、短命なオブジェクトです。ADO.NETのコネクションをラップします。ITransactionのファクトリーでもあります。オブジェクトを辿ったり、識別子によってオブジェクトを探すときに利用される、永続化オブジェクトの(ファーストレベルの)キャッシュを管理します。

Persistent Objects and Collection

永続化状態と、ビジネスファンクションを含む、短命で、シングルスレッドなオブジェクトです。

最終更新:2008年09月07日 17:01