3.2.1 2層システムの制限
データベース層を共有データのセットとして提供する従来の2層システムにおいて、純粋なオブジェクト指向手法とは、データベース・レコードを共有CORBAオブジェクト(CORBAアプリケーションの場合)またはエンティティBean (EJBアプリケーションの場合)として表現することです。ただし、この手法には次のような制限があります。
- 規模が適切に調整されません。クライアント数が劇的に増加した場合、サーバー・マシンで数千(あるいは数百万)のデータベース・オブジェクトを管理しなければならなくなる可能性がある(各オブジェクトではそれ独自のトランザクション・コンテキストが必要)。
- ネットワーク・リソースが効率的に利用されません。データベース・オブジェクトがサーバー・マシンのメモリーでインスタンス化される際、クライアント・アプリケーションでそのオブジェクトのどのくらいの量のデータが必要とされているのかに関係なくデータベース・オブジェクト全体がメモリーで読み書きされます。
- EJBアプリケーションでは、通常はエンティティBeanを使用してデータベースにアクセスする。その際、エンティティBeanはデータベース表の行を表す。ただし、エンティティBeanにアクセスするために、クライアント・アプリケーションでは2回の呼出しを行わなければならない。最初の呼出しではエンティティBeanのオブジェクト参照を取得し、2回目の呼出しでそのエンティティBeanのメソッドを呼び出す。オブジェクト参照を取得することは、特に大規模なエンタープライズ・アプリケーションではクライアントにとってコストのかかる操作となる。
親トピック: スケーラビリティとリソース利用率の向上