next up previous
Next: Object Semantics (オブジェクトセマンティクス) Up: The Object Model (オブジェクトモデル) Previous: The Object Model (オブジェクトモデル)

Overview (概説)

オブジェクトモデルはオブジェクトの概念とその用語法について 組織化された表現を与えるものである。 このモデルは計算機の処理のための部分モデルを定義する。 この部分モデルは付随する技術により実現される オブジェクトの鍵となる特徴を具体的に示す。 OMGのオブジェクトモデルは抽象的なもので、 ある特定の技術で直に実現されるものではない。 これから述べるモデルはある実在するオブジェクトモデルである。 このオブジェクトモデルは抽象的なモデルとは 以下のような様々な面で異なる。

オブジェクトシステムはオブジェクトの集まりであり、 この集まりがサービスの要求者(クライアント)とサービスの提供者とを うまく定義されカプセル化したインタフェースによって分離している。 特に、 クライアントはデータ表現や実行コードのような サービスの実装から分離されている。

オブジェクトモデルとして、まずクライアントにとって意味のある概念を記述する。 つまり、オブジェクト生成・識別、 リクエスト・オペレーション、型・シグネイチャのような 概念を含むものである。 次に、オブジェクトの実装に関係する概念を記述する。 つまり、メソッドや実行エンジン、活性化のような概念を含むものである。

オブジェクトモデルはクライアントに意味のある概念を定義する上で 最も明確・規定的である。 オブジェクトの実装の議論はより暗示的で、 異なるオブジェクト技術ではできるだけ オブジェクトの実装を違うやりかたで提供できるよう示唆している。

その他のオブジェクトシステムの特徴としては オブジェクトモデルの領域外にあるものもある。 これらの概念にはアプリケーションアーキテクチャの側面を持つものもあり、 また、オブジェクト技術が適用される特定の領域に結び付いているものもある。 このような概念はアーキテクチャのリファレンスモデル中で 扱った方が適切である。 このような除外した概念の例は、 複合オブジェクトやリンク、オブジェクトの複写、 更新管理、トランザクションである。 制御構造の詳細もオブジェクトモデルの範囲外となる。 (つまり、オブジェクトモデルはクライアントやサーバが シングルスレッド/マルチスレッドであるかどうか考慮しないし、 イベントループがどのようにプログラムされているか、 スレッドがどのように生成・破棄・同期されるかを明確にしない。)

ここで言うオブジェクトモデルは、 クライアントがオブジェクトにメッセージを送るという 伝統的なオブジェクトモデルの一例である。 概念的には、 オブジェクトはメッセージを解析してどんなサービスを実行するか決定する。 伝統的なモデルでは、 メッセージはオブジェクトとゼロ以上のパラメータを識別する。 このような多くの伝統的なモデルと同様に、 分類されている初期パラメータが必要とされ、 これが実行されるべき命令を識別する。 つまり、オブジェクトによるメッセージの解析は 指定された命令に基づくメソッドの選択を行なう。 もちろん命令としてのメソッドの選択はオブジェクトやORBによっても実行されうる。



Masao Takaku 平成11年3月12日