WOAndEOF

2007/03/30 (Fri) 22:07:46 JST

EOFはWebObjectsと統合されていて、データベースと画面表示をスムースに連携することが可能になっています。 もちろんコンテキストという概念はWebObjectsにもあり、「セッション」と「コンポーネント」が相当します。

ここで注意したいのは、EOFとWebObjectsではコンテキストの単位が異なることです。 両者のコンテキストはそれぞれまったく別のものです。 WebObjects側ではEOFのコンテキストを管理せず、EOF側でもWebObjectsのコンテキストを管理しません。

WebObjectsのコンテキスト

WebObjectsのコンテキストの1つはセッションです。 セッションは、ユーザがアプリケーションにアクセスしてから一連の作業が終了するまでのコンテキストです。 もう1つのコンテキストであるコンポーネントは、セッション内で表示したWebページを特定します。 Webページに含まれるエレメントやコンポーネントもすべてコンテキストとして管理されます。 コンポーネントのコンテキストは、ユーザが入力したデータをインスタンス変数にセットしたりアクションを起動するのに使われます。

WebObjectsのコンテキストはそれぞれセッションIDとコンテキストID(コンポーネント)で管理されます。 WebObjectsの生成する、あのややこしいURLがそうです。 URLの最後にセッションIDとコンテキストIDが含まれています。

図:WebObjectsのURL

EOFを含めたWebObjects全体のコンテキスト

WebObjectsと絡むEOFのコンテキストは編集コンテキストです。 編集コンテキストはWebObjectsの各セッションに1つずつ用意されており、 基本的にセッションの編集コンテキストを使ってデータベースを操作します。 セッションやコンポーネントと違い、編集コンテキストにIDはありません。

以上を合わせると、WebObjects全体のコンテキストとその多重度は以下のようになります。

図:WebObjects全体のコンテキスト

図:WebObjects全体のコンテキストの多重度


Inverse Pages: WebObjects基礎研究室