JPH0713766A - オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法 - Google Patents

オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法

Info

Publication number
JPH0713766A
JPH0713766A JP6109774A JP10977494A JPH0713766A JP H0713766 A JPH0713766 A JP H0713766A JP 6109774 A JP6109774 A JP 6109774A JP 10977494 A JP10977494 A JP 10977494A JP H0713766 A JPH0713766 A JP H0713766A
Authority
JP
Japan
Prior art keywords
class
metaclass
processing
classes
oriented
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6109774A
Other languages
English (en)
Inventor
Scott Harrison Danforth
スコット・ハリソン・ダンフォース
Ira Richard Forman
イーラ・リチャード・フォーマン
Hari Haranath Madduri
ハリ・ハラナート・マッドゥリ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0713766A publication Critical patent/JPH0713766A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【目的】 オブジェクト指向システムでメソッドを呼び
出す際の前後挙動を作成するためのシステムを提供す
る。 【構成】 本発明のオブジェクト指向フレームワーク
は、サブクラス・インスタンス中の各クライアント・メ
ソッドを呼び出すたびにBeforeメソッドおよびAfterメ
ソッドをディスパッチするメソッドを含むメタクラス・
クラスを提供する。オブジェクト指向システムの継承お
よびカプセル化の特性がサポートされ、導出されたメタ
クラスも同様である。導出によって、各クラスの指定構
文が予期される結果に影響を及ぼすことはなくなる。明
示的な前後クラス、ディスパッチャ・クラス、および導
出されたメタクラスの組合せによって、システムは連想
式組立てを有するようになる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、電子データ処理システ
ムに関し、具体的には、処理メソッドおよびデータがオ
ブジェクトとして収集されるシステムに関する。さらに
具体的に言うと、本発明は、定義済みの処理メソッドの
前後に特殊なメソッドを処理できるオブジェクト指向シ
ステムに関する。
【0002】
【従来の技術】データ処理システム用の適用業務および
システム・ソフトウェアの開発は従来、時間のかかる仕
事であった。ソフトウェア・エンジニアリングの分野で
は、新しいより効率的なソフトウェア開発モデルを提案
することによって従来の技術の制限を克服しようと試み
てきた。オブジェクト指向プログラミングは、新しいソ
フトウェア・システムを迅速に開発し、実施し、カスタ
マイズできるようにする有望な技術として出現した。
【0003】プログラミング技術の進歩は、使用される
抽象化レベルの増加によって示されるとみなすことがで
きる。プログラミング技術は、たえず大きくなるエンテ
ィティをグループ化する抽象化によって発展してきた。
まずアセンブリ言語命令が制御構造としてまとめられ、
後で制御構造がプロシージャとしてまとめられた。さら
にプロシージャが抽象データ型にまとめられた。オブジ
ェクト指向プログラミングは、これらの従来技術よりも
高レベルのプログラミング・エンティティの抽象化とみ
なすことができる。オブジェクト指向プログラミング
は、抽象化データ型を継承階層として収集する。本発明
は、それ以上の抽象化、すなわち、そのインスタンスの
メソッドの前後処理を提供するメタクラスを対象とす
る。
【0004】オブジェクト指向プログラミングは、アセ
ンブルできるシステム・オブジェクトのツールキットを
使用して必要なタスクを実行する。各オブジェクトは、
何らかのデータ属性と、そのデータに作用するプロセス
またはメソッドとを有する。データは、オブジェクトに
よって「カプセル化」されるとみなされ、オブジェクト
・メソッドによってのみ修正することができる。メソッ
ドは、それを識別し、必要な引数を供給するメッセージ
をオブジェクトに送ることによって呼び出される。
【0005】オブジェクト指向システムは、カプセル化
の他に、2つの主要な特徴を有する。第1の特徴である
「継承」は、既存のオブジェクトから新しいオブジェク
トを導出し、メソッドとデータ構造を含めてすべての特
性を既存のオブジェクトから継承する能力である。新し
いオブジェクトは、既存のクラスに対するオーバーライ
ドまたは修正として供給される何らかの独特の機能を有
することができる。すなわち、新しいサブクラスは、そ
のクラスを既存のより一般的なクラスと区別する関数お
よびデータだけを指定すればよい。
【0006】ポリモルフィズムが、第2の特徴である。
オブジェクト指向プログラミングでは、ポリモルフィズ
ムは、エンティティ(たとえば変数)が実行時に異なる
クラスのインスタンスを参照する能力である。実際に
は、これはあるオブジェクトへの単一のメッセージが、
そのオブジェクト自体に応じて異なる方法で処理できる
ことを意味する。
【0007】継承およびポリモルフィズムは、新しいソ
フトウェア・システムを実施するための強力な構造を生
み出す。ソフトウェア開発者は、システムの各部分を開
発する必要はなく、システムの独特の機能を指定するだ
けでよい。
【0008】オブジェクト指向システムの能力は、シス
テム「フレームワーク」の開発によって実現される。フ
レームワークとは、システム実施者が最終的なシステム
製品を作成するために使用できる基本クラスの集合体で
ある。フレームワークは、システムとして共に働くよう
に定義され開発される。概念的には、フレームワークは
コンピュータ・ハードウェア構築者が使用する1組の標
準ハードウェア構成要素によく似ている。各構成要素
は、ある定義された機能およびインタフェースを有し、
エンジニアは特定の設計に従ってこれらの構成要素を組
み立てて、独特のハードウェア・システムを作成する。
通常は、オブジェクト・フレームワークも電子構成要素
と同様に、エンジニアが変更することはできない。その
代わり、エンジニアは、フレームワークによって定義さ
れた方式でそのフレームワークとのインタフェースをと
る他のオブジェクトを追加しなければならない。
【0009】オブジェクト・フレームワークの例は、I
BM社が開発したSOMobjects製品に含まれている。SOMo
bjectsは、ソフトウェア・システム開発に使用されるい
くつかのオブジェクト、オブジェクト・クラス、および
オブジェクト・メタクラスを定義する。システム開発者
は、SOMobjectsのフレームワークの構成要素を使用し、
そのフレームワーク・クラスに基づいて新しいサブクラ
スを作成することによって構成要素を拡張する。SOMobj
ectsは、新しいサブクラスおよびメソッドを指定するた
めのコンパイラ言語中立インタフェース記述言語(ID
L)を提供する。ソフトウェア・エンジニアによって作
成されたIDL仕様は、エンジニアが使用する親クラス
に関する情報を含み、親クラス中のメソッドをオーバー
ライドするメソッドを指定する。
【0010】コンピュータ・ソフトウェア開発者は多く
の場合、プロセスを実行する前にコンピュータ・システ
ムの状態を知り、その後、そのプロセスの実行後に再び
その状態を知る必要がある。新しいシステムをデバッグ
して、プロセスが正しく実行されていることを確認する
際に、この情報を使用することができる。この情報を使
用して、安全保護ロック、レコード・ロック、データベ
ース・ロギングなどの機能を実施することもできる。既
存のオブジェクト指向システムは、各メソッドの挙動
(振舞い)を明示的に指定することなく、各インスタン
ス・メソッドの前後に実行すべきメソッドを容易に指定
する方法を提供しない。
【0011】本発明が対象とする技術的問題は、いかに
して特定のクラスのすべてのインスタンスのメソッドの
前後に実行すべきメソッドを指定し、このメソッドを組
み立てる(compose)オブジェクト・ベースの能力を提
供するかという点にある。
【0012】
【発明が解決しようとする課題】本発明の一目的は、特
定のクラスのすべてのメソッドの前後処理を可能にする
ことである。
【0013】他の目的は、実行時に矛盾なく組み立てら
れる前後処理構造を実施することである。
【0014】他の目的は、連想式(assosiative)の前
後構造を提供することである。すなわち、3つ以上のBe
foreAfterメタクラスの組立てでは、その組立て順序の
いかんにかかわらず、同じ結果がもたらされる(例:(A
+B)+C=A+(B+C))。
【0015】
【課題を解決するための手段】本発明は、BeforeAfter
クラス用のクラスとしてBeforeAfterDispatchメタクラ
スを有するオブジェクト指向フレームワークを提供する
ことによって、前後メソッド実行の問題を解決する。前
後挙動を有するクラスは、BeforeAfterクラスのサブク
ラスとして作成することができる。BeforeAfterDispatc
hメタクラスは、前後処理を実施するのに必要なディス
パッチ・メソッドをサポートし、サブクラス記述の連想
式組立て(associative composition)を保証するよう
に構成される。
【0016】本発明は、メモリ手段と処理手段を有する
コンピュータ・システムで動作し、データと、当該デー
タを処理するためのメソッドとを有する少なくとも1つ
のクラスを構成するクラス手段を含み、メソッド・プロ
セスのディスパッチごとに前後挙動を実施するオブジェ
クト指向クラスの構築を可能にするシステムに関する。
このシステムは、(1)クラス手段の通知に応答して、
メソッド・プロセスをディスパッチする前後にそれぞれ
BeforeMethodおよびAfterMethodをディスパッチする手
段と、(2)少なくとも1つのクラス手段のうちの1つ
のサブクラスでありかつディスパッチ手段のインスタン
スでもあって、前後挙動要求に応答して、メソッド処理
ディスパッチを通知するためのクラス手段と、(3)Be
foreAfterクラスのサブクラスであり、インスタンス・
メソッド呼出しに応答して、クラス手段への前後挙動要
求を生成するサブクラス手段という各構成要素を有す
る。
【0017】
【実施例】図1は、本発明に従って構成することができ
るコンピュータ・システムを示す。コンピュータ・シス
テム100は、プロセッサ101と、ランダム・アクセ
ス・メモリ102と、永久記憶装置104と、システム
をネットワーク108に接続する通信アダプタ106
と、ディスプレイ112、キーボード114、およびポ
インティング装置116の動作を制御する入出力制御装
置110とを有する。コンピュータ・システム100
は、IBMパーソナル・システム/2(PS/2)コンピュ
ータ・システムやIBM RISCシステム/6000コンピュ
ータ・システム(IBM、パーソナル・システム/2、
PS/2、およびRISCシステム/6000はIBM
社の商標である)など多数の既知のシステムのうちの1
つでよい。構成要素は既知のどのタイプのものでもよ
い。永久記憶装置104は、固定ディスク記憶システム
でも、取外し可能ディスケットでも、テープ・カートリ
ッジ、CD-ROM、WORMなど他の固定媒体または取外し可能
媒体でもよい。本発明のフレームワークは、記憶および
配布用の取外し可能媒体でも実施することができる。
【0018】IBMシステム・オブジェクト・モデル
(SOM)のオブジェクト・フレームワークの用語を図
2を参照して説明する。IBMシステム・オブジェクト
・モデル製品SOMobjectsは、オブジェクト指向フレーム
ワークである。このフレームワークは、クラスと、その
クラスに属するオブジェクトとから構成される。SOMobj
ectsでは、クラスはそれ自体がオブジェクトであり、オ
ブジェクトのすべての特徴を有する。クラスは、そのク
ラス中の各オブジェクトが応答するメソッドまたは挙動
(振舞い)に関する情報を含むという追加の特徴を有す
る。オブジェクトは、それがあるメソッド名用のプロセ
ス・コードを含む場合に、そのメソッドに応答するもの
とみなされる。クラスは、そのクラス中のオブジェクト
があるメソッドに応答するとき、そのメソッドをサポー
トするとみなされる。あるクラスによってサポートされ
るメソッドとは、そのクラスのために明示的に定義され
たもの、およびそのクラスの親クラスであるクラスから
継承されたものである。オブジェクトは、そのクラスに
よってサポートされるメソッドだけに応答する。あるク
ラスのクラスをメタクラスと呼ぶことが多い。
【0019】SOMobjectsは、そのルート・オブジェクト
としてSOMObject202を有する。SOMObjectのクラス
は、SOMClass204である。システム開発者は、SOMobj
ectsを使用して、追加クラスを追加することができる。
たとえば、クラス"Dog"206は、SOMObject202
のサブクラスである。"Rover"207は、"Dog"
のインスタンスである。オブジェクト間の2つの関係を
表すことができる。"instance of"関係は、図中のオブ
ジェクトからそのクラスへの破線の矢印、たとえば20
8によって示されている。それとは逆の関係が"class o
f"である。すなわち、DogはSOMClassの"instance o
f"であり、SOMClassはDogの"class of"である。第2
の関係は、実線、たとえば210で表された"subclass
of"、およびその逆の"parent of"である。すなわち、D
ogはSOMObjectの"subclass of"であり、SOMObjectは
Dogの"parent of"である。サブクラスは、親クラス
からメソッドを継承し、インプリメンテーションを改善
する追加メソッドを定義することができる。
【0020】SOMClassは、図2でメタクラス・セット中
にあると識別されている。これは、SOMClassがあるクラ
スの"class of"であるからである。既知のオブジェクト
指向技術を使用して追加のメタクラス、クラス、および
オブジェクトを作成することができる。
【0021】本発明の好ましい実施例を図3に示す。図
2のフレームワークは、追加された4つの新しいメタク
ラスで拡張されている。SOMMBeforeAfterDispatcher2
20は、SOMClass204のサブクラスであり、かつイン
スタンスである。SOMMParentBeforeAfter222は、SOM
Class204のサブクラスであり、かつSOMMBeforeAfter
Dispatcher220のインスタンスである。SOMMBeforeAf
ter224は、SOMMParentBeforeAfter222のサブクラ
スであり、かつSOMMBeforeAfterDispatcher220のイ
ンスタンスである。最後に、SOMMTraced226は、SOMM
BeforeAfter224のサブクラスであり、かつSOMMBefor
eAfterDispatcher220のインスタンスである。
【0022】SOMMBeforeAfterDispatcher220は、新
しいフレームワークの主要構成要素である。これは、数
個のメタクラスのクラス(したがってメタ−メタクラ
ス)であり、そのインスタンス・メタクラス、たとえば
SOMBeforeAfterにBeforeAfter挙動(前後挙動)を提供
する。SOMMBeforeAfterのサブクラスやその他のメタク
ラスも、BeforeMethod(Beforeメソッド)またはAfterM
ethod(Afterメソッド)あるいはその両方を指定するこ
とによって、各インスタンス・メソッドの実行前と実行
後にメソッドを実行させる能力を有する。BeforeAfter
処理(前後処理)をメタクラスとして抽象化することに
より、オブジェクトとその相互関係を記述するために使
用されるインタフェース定義言語(IDL)による指定
なしに、挙動を実施することができる。
【0023】手続上は、前後処理を実施するには、Befo
reメソッドを実行のためにディスパッチし、インスタン
ス・メソッドを実行のためにディスパッチし、次いでAf
terメソッドを実行のためにディスパッチする必要があ
る。この手続きをDispatcherメソッドで実施して、メソ
ッドの実行のためのディスパッチを処理することができ
る。SOMMBeforeAfterとそのサブクラスはこのメソッド
に応答しなければならないので、該メソッドはSOMMBefo
reAfterのクラス、すなわちメタクラスSOMMBeforeAfter
Dispatcher220によってサポートされなければならな
い。具体的には、SOMMBeforeAfterDispatcher220
は、クラスまたは親クラス中のBeforeメソッドを探索し
ディスパッチするBeforeMethodDispatchと、クラスまた
は親クラス中のAfterメソッドを探索しディスパッチす
るAfterMethodDispatchとを実施する。
【0024】上記の構造は、ソフトウェア開発者がSOMM
BeforeAfterのサブクラスを作成し、Beforeメソッドお
よびAfterメソッドを定義することによって前後クラス
を作成できるようにするフレームワークを提供する。
【0025】SOMMTraced226は、このSOMobjectsフレ
ームワークに供給される前後クラスの一例である。SOMM
Tracedは、オブジェクト指向システムでのメソッド実行
の追跡をサポートするメソッドを提供する。たとえば、
SOMMTracedは、メソッド呼出しの呼出しパラメータをプ
リントするためのBeforeメソッドと、そのメソッド呼出
しからの戻り値をプリントするためのAfterメソッドと
を提供する。
【0026】SOMMParentBeforeAfter222は、継承さ
れたメソッドだけに前後処理が望まれる状況のために提
供される。
【0027】好ましい実施例のメタ−メタクラスSOMBef
oreAfterDispatchの構造は、オブジェクト指向システム
用のメタクラスの連想式組立て(associative composit
ion:関係による構築)を提供するので重要である。SOMo
bjectsは、オブジェクト間の関係を指定するための構文
を提供する。この言語を使用すると、開発者はたとえ
ば、各定義済クラスに対して明示的に定義されたメタク
ラスを提供することができる。複雑なシステムは、幾つ
かの異なる方法で正しく表現することができる。システ
ムを矛盾なく操作するには、それらの有効な各表現がそ
れぞれ、処理されたときに同じ結果を与える必要があ
る。
【0028】SOMobjectsは、各オブジェクトにメタクラ
スを導出することによって強制的に一貫性を実施する。
メタクラスを導出するプロセスは、1993年4月5日
に出願された米国特許出願第08/042930号に記載されて
いる。
【0029】SOMobjectsを用いると、多重継承が可能に
なる。すなわち、クラスを2つ以上のクラスのサブクラ
スまたはインスタンスとすることができる。メタクラス
を導出することによって、そのクラスの各インスタンス
は、継承されたメソッドに有効に応答できるようにな
る。SOMobjectsは、実行時に検査を行って、各クラスの
メタクラスが、そのクラスのインスタンスによって実行
できるメソッドをサポートするかどうかを判定する。そ
うでない場合、SOMobjectsは、必要なすべてのメソッド
をサポートするのに必要なメタクラスを導出する。
【0030】SOMMBeforeAfterおよびSOMMBeforeAfterDi
spatcher構造は、メタクラスの導出をサポートする。こ
の一例を図4に示す。"Dog"クラス231をSOMObjec
tのサブクラスとして作成し、Dogのクラスの特性を
定義することができる。Dogは、犬の動画を表示画面
112に横切らせるメソッド"Fetch"を含むことができ
る。"RinTinTin"233は、ある特性を有する"Dog"
のインスタンスとして作成することができる。メッセー
ジ"Fetch"を"RinTinTin"に送ると、動画の犬が表示画面
を横切ることになる。
【0031】開発者がDogのクラスに前後機能を追加
したい場合がある。これは、SOMMBeforeAfterのサブク
ラスである"Barking"232を作成することによって行
うことができる。"Barking"232は、語"WOOF(うなり
声)"をプリント(出力)させるBeforeメソッドと、語"
woof"をプリントさせるAfterメソッドを含むことができ
る。クラス"BarkingDog"234は、Barking232の明
示的なメタクラスを有するDog231のサブクラスと
して作成される。BarkingDogのインスタンス、たとえば
Lassie236は、メッセージ"Fetch"に応答して、"WOO
F"をプリントさせ、動画の犬に画面を横切らせ、"woof"
をプリントさせる。
【0032】同様に、SOMMBeforeAfterをサブクラス化
して"Fierce"クラス230を作成するよう指定すること
によって、どう猛な犬を作成することができる。Fierce
Dogは、"GRRR"とほえた後に、動作し、その後に"grrr"
とほえることになる。FierceDogの作成は、上述のよう
に行うことができる。
【0033】開発者が"FierceBarkingDog"クラスを作成
しようとするとき、組立ての問題が注目される。この新
しいクラスを、少なくとも3つの方法で定義することが
できる。第1に、このクラスを"FierceBarking"の明示
的なメタクラスをもつDogのサブクラスとして定義す
ることができる。この場合"FierceBarking"は、Fierce
およびBarkingからの多重継承によって作成されるはず
である。第2に、このクラスをFierceDogおよびBarking
Dogのサブクラスとして定義することができる。第3
に、このクラスをFierceの明示的なメタクラスをもつBa
rkingDogのサブクラスとして定義することもできる。こ
れらはそれぞれ、有効なSOMObject表現を表す。それぞ
れが同じ結果をもたらすことが重要である。
【0034】SOMObjectメタクラス処理は、サポートさ
れる必要があるメソッドを分析し、必要な任意のメタク
ラスを導出する。この結果、メタクラスFierceBarking
が、先に定義した3つの定義済みFierceBarkingDogのそ
れぞれの実際のメタクラスとして使用される。一貫性を
保証するために、明示的なメタクラス定義はオーバーラ
イドされる。FierceBarkingDogの"Rover"インスタンス
は、3つのクラスのうちのどれをインスタンス化したも
のかにかかわらず、"GRRRWOOF"(動画の犬)"woofgrrr"
で応答する。定義の形は重要でないので、この結果は連
想式組立てになる。ただし、この組立ては可換性をもた
ない(commutative)ことに留意されたい。すなわち、F
ierceBarkingDogはBarkingFierceDogと同じではない。
【0035】前後環境でsomDispatchの好ましい実施例
を実施するためのコードを以下に示す。このコードは例
示のためのものにすぎず、当業者には、本発明の趣旨か
ら逸脱することなく多数の代替実施例が存在することが
明らかであろう。
【0036】基本ディスパッチ・ルーチンは以下のよう
に実施することができる。"Self"は、メッセージを受け
取るインスタンスを指す。"clientMethod"は、適用業務
によって呼び出され、前後挙動を獲得するメソッドの識
別子である。
【0037】somDispatch(self, clientMethod) BeforeMethodDispatch(class(class(self)), self,
...); retval := clientMethod(self, ...); AfterMethodDispatch(class(class(self)), self,...); return retval;
【0038】BeforeMethodDispatchは以下のように実施
される。
【0039】BeforeMethodDispatch(aMetaclass, clien
tObject, ...) if aMetaclassがBeforeMethodを定義 BeforeMethod(clientObject) else BeforeMethodをサポートするaMetaclassの全ての親につ
いて BeforeMethodDispatch(aParent, clientObject,...)
【0040】このメソッドは、クライアント・オブジェ
クトに対してBeforeMethodが定義されている場合はそれ
を実行させ、あるいはBeforeMethodを定義する最初のメ
タクラスを探してSOMClassに向かって階層走査を行わせ
る。
【0041】AfterMethodDispatchは以下のように実施
される。
【0042】AfterMethodDispatch(aMetaclass, client
Object, ...) if aMetaclassがAfterMethodを定義 AfterMethod (clientObject, ...) else AfterMethodをサポートするaMetaclassの全ての親につ
いて(逆順に) AfterMethodDispatch(aParent, clientObject,...)
【0043】クライアント・オブジェクトに対してAfte
rMethodが定義されていない場合、AfterMethodDispatch
は逆の順序で階層を走査する。
【0044】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0045】(1)メモリ手段と処理手段とを有するデ
ータ処理システムで動作し、データと該データを処理す
るためのメソッドとを有する少なくとも1つのクラスを
構成するクラス手段を含み、メソッド・プロセスのディ
スパッチごとに前後挙動を実施するオブジェクト指向ク
ラスを構築するためのオブジェクト指向コンピュータ・
システムであって、クラス手段の通知に応答して、メソ
ッド・プロセスをディスパッチする前後にそれぞれBefo
reメソッドおよびAfterメソッドをディスパッチする手
段と、少なくとも1つの前記クラス手段のうちの1つの
サブクラスでありかつ前記ディスパッチ手段のインスタ
ンスでもあって、前後挙動要求に応答して、メソッド処
理ディスパッチを通知する前後挙動クラス手段と、前記
前後挙動クラス手段のサブクラスであり、インスタンス
・メソッド呼出しに応答して、該クラス手段への前後挙
動要求を生成するためのサブクラス手段とを備えるシス
テム。 (2)メモリと、少なくとも1つの中央演算処理装置と
を有するデータ処理システムにおいて、オブジェクト・
メタクラスを組立てるオブジェクト・クラス管理方法で
あって、データと該データに作用するメソッドとを有す
る複数のクラスを指定するステップと、前後メソッド呼
出しを実行するためのディスパッチを行う修正可能なメ
タクラスを作成するステップと、前記複数のクラスおよ
び前記修正可能なメタクラスを検査して、一貫性を保持
するために必要なメソッド・セットを決定するステップ
と、上記決定ステップに基づいて、メタクラス階層を生
成するステップとを含む方法。 (3)オブジェクトについて定義されたメソッドの前後
処理を実行する特殊メソッドを実施するオブジェクト指
向コンピュータ・システムであって、各オブジェクトが
1つまたは複数のオブジェクト・クラスを有し、該1つ
または複数のオブジェクト・クラスがそれぞれ1つまた
は複数のオブジェクト・メタクラスを有し、修正不能な
クラスと修正可能なクラスとを有するオブジェクト指向
フレームワーク中で特殊メソッドの処理が実行されるシ
ステムにおいて、前記オブジェクト、クラス、およびメ
タクラスを記憶するための記憶手段と、前記オブジェク
ト指向フレームワーク中の修正可能なメタクラスであっ
て、前記メソッドおよび前記特殊メソッドをディスパッ
チするためのディスパッチ手段とを備えるシステム。
【0046】
【発明の効果】本発明で提供するオブジェクト指向シス
テムにより、各メソッドの挙動を明示的に指定すること
なく、各インスタンス・メソッドの前後に実行すべきメ
ソッドが容易に推定できるようになる。
【0047】本発明のオブジェクト指向フレームワーク
は、サブクラス・インスタンス中の各クライアント・メ
ソッドを呼び出すたびにBeforeメソッドおよびAfterメ
ソッドをディスパッチするメソッドを含むメタクラス・
クラスを提供する。オブジェクト指向システムの継承お
よびカプセル化の特性がサポートされ、導出されたメタ
クラスも同様である。導出によって、各クラスの指定構
文が予期される結果に影響を及ぼすことはなくなる。明
示的な前後クラス、ディスパッチャ・クラス、および導
出されたメタクラスの組合せによって、システムは連想
式組立てを有するようになる。
【図面の簡単な説明】
【図1】本発明を実施する種類のコンピュータ・システ
ムのブロック図である。
【図2】基本システム・オブジェクト・モデル・フレー
ムワークを示し、フレームワーク要素にラベル付けした
図である。
【図3】本発明の好ましい実施例を示すオブジェクト図
である。
【図4】好ましい実施例のフレームワークの適用を示す
オブジェクト図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イーラ・リチャード・フォーマン アメリカ合衆国78746 テキサス州オース チン サイプレス・ポイント・イースト 2100 (72)発明者 ハリ・ハラナート・マッドゥリ アメリカ合衆国78750 テキサス州オース チン アナクワ7004

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】メモリ手段と処理手段とを有するデータ処
    理システムで動作し、データと該データを処理するため
    のメソッドとを有する少なくとも1つのクラスを構成す
    るクラス手段を含み、メソッド・プロセスのディスパッ
    チごとに前後挙動を実施するオブジェクト指向クラスを
    構築するためのオブジェクト指向コンピュータ・システ
    ムであって、 クラス手段の通知に応答して、メソッド・プロセスをデ
    ィスパッチする前後にそれぞれBeforeメソッドおよびAf
    terメソッドをディスパッチする手段と、 少なくとも1つの前記クラス手段のうちの1つのサブク
    ラスでありかつ前記ディスパッチ手段のインスタンスで
    もあって、前後挙動要求に応答して、メソッド処理ディ
    スパッチを通知する前後挙動クラス手段と、 前記前後挙動クラス手段のサブクラスであり、インスタ
    ンス・メソッド呼出しに応答して、該クラス手段への前
    後挙動要求を生成するためのサブクラス手段とを備える
    システム。
  2. 【請求項2】メモリと、少なくとも1つの中央演算処理
    装置とを有するデータ処理システムにおいて、オブジェ
    クト・メタクラスを組立てるオブジェクト・クラス管理
    方法であって、 データと該データに作用するメソッドとを有する複数の
    クラスを指定するステップと、 前後メソッド呼出しを実行するためのディスパッチを行
    う修正可能なメタクラスを作成するステップと、 前記複数のクラスおよび前記修正可能なメタクラスを検
    査して、一貫性を保持するために必要なメソッド・セッ
    トを決定するステップと、 上記決定ステップに基づいて、メタクラス階層を生成す
    るステップとを含む方法。
  3. 【請求項3】オブジェクトについて定義されたメソッド
    の前後処理を実行する特殊メソッドを実施するオブジェ
    クト指向コンピュータ・システムであって、各オブジェ
    クトが1つまたは複数のオブジェクト・クラスを有し、
    該1つまたは複数のオブジェクト・クラスがそれぞれ1
    つまたは複数のオブジェクト・メタクラスを有し、修正
    不能なクラスと修正可能なクラスとを有するオブジェク
    ト指向フレームワーク中で特殊メソッドの処理が実行さ
    れるシステムにおいて、 前記オブジェクト、クラス、およびメタクラスを記憶す
    るための記憶手段と、 前記オブジェクト指向フレームワーク中の修正可能なメ
    タクラスであって、前記メソッドおよび前記特殊メソッ
    ドをディスパッチするためのディスパッチ手段とを備え
    るシステム。
JP6109774A 1993-06-14 1994-05-24 オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法 Pending JPH0713766A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7722993A 1993-06-14 1993-06-14
US077229 1993-06-14

Publications (1)

Publication Number Publication Date
JPH0713766A true JPH0713766A (ja) 1995-01-17

Family

ID=22136827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6109774A Pending JPH0713766A (ja) 1993-06-14 1994-05-24 オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法

Country Status (4)

Country Link
US (1) US5761509A (ja)
EP (1) EP0629946B1 (ja)
JP (1) JPH0713766A (ja)
DE (1) DE69420081T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009560A (ja) * 1997-02-14 2009-01-15 Fisher Rosemount Syst Inc 図形要素を用いてプロセスコントロール環境を構成するためのシステム
JP2010511235A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ シナリオサポートを伴うプロデューサグラフ指向のプログラミングフレームワーク
JP2010511234A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミング及び実行
JP2010511233A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミングフレームワークにおけるパラレル化及びインスツルメンテーション
US9921858B2 (en) 2014-09-16 2018-03-20 International Business Machines Corporation Apparatus and method for realizing runtime system for programming language

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6139198A (en) * 1994-10-04 2000-10-31 International Business Machines Corporation System and method for enabling tracing of program execution in an object-oriented system
US6275871B1 (en) * 1996-07-03 2001-08-14 Siemens Aktiengesellschaft Asynchronous transport optimizing observer-pattern-like system supporting several modes for an interface definition language-less communication subsystem
US5857197A (en) * 1997-03-20 1999-01-05 Thought Inc. System and method for accessing data stores as objects
CA2201278C (en) * 1997-03-27 2001-02-20 Ibm Canada Limited-Ibm Canada Limitee Hierarchical metadata store for an integrated development environment
US6647431B1 (en) * 1997-12-31 2003-11-11 Nortel Networks Limited Method and apparatus for handling I/O messages
US6275979B1 (en) * 1998-03-11 2001-08-14 International Business Machines Corporation Implementation for an object oriented run-time extensible item
FR2785412B1 (fr) * 1998-10-30 2001-08-24 Bull Sa Creation dynamique de classes d'objets
US6880126B1 (en) 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6779177B1 (en) 1999-10-28 2004-08-17 International Business Machines Corporation Mechanism for cross channel multi-server multi-protocol multi-data model thin clients
US7181686B1 (en) 1999-10-29 2007-02-20 International Business Machines Corporation Selecting screens in a GUI using events generated by a set of view controllers
US6862686B1 (en) 1999-10-29 2005-03-01 International Business Machines Corporation Method and apparatus in a data processing system for the separation of role-based permissions specification from its corresponding implementation of its semantic behavior
GB2371378A (en) 2000-10-12 2002-07-24 Abb Ab Object oriented control system
US6966053B2 (en) * 2001-08-10 2005-11-15 The Boeing Company Architecture for automated analysis and design with read only structure
US6976244B2 (en) * 2002-01-09 2005-12-13 International Business Machines Corporation Method, system, and product for storage of attribute data in an object oriented environment
WO2004107162A1 (en) * 2003-05-19 2004-12-09 Thought, Inc. Dynamic object-driven database manipulation and mapping system
US8321844B2 (en) * 2007-06-08 2012-11-27 Sap Ag Providing registration of a communication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01229339A (ja) * 1988-03-09 1989-09-13 Fujitsu Ltd デバッグ情報表示方式

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814795B2 (ja) * 1986-01-14 1996-02-14 株式会社日立製作所 マルチプロセッサ仮想計算機システム
JPH05257664A (ja) * 1991-12-12 1993-10-08 Internatl Business Mach Corp <Ibm> バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法
US5361350A (en) * 1991-12-12 1994-11-01 International Business Machines Corporation Object oriented method management system and software for managing class method names in a computer system
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01229339A (ja) * 1988-03-09 1989-09-13 Fujitsu Ltd デバッグ情報表示方式

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009560A (ja) * 1997-02-14 2009-01-15 Fisher Rosemount Syst Inc 図形要素を用いてプロセスコントロール環境を構成するためのシステム
JP2010511235A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ シナリオサポートを伴うプロデューサグラフ指向のプログラミングフレームワーク
JP2010511234A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミング及び実行
JP2010511233A (ja) * 2006-12-01 2010-04-08 マーレックス ソシエテ パール アクシオン サンプリフィエ プロデューサグラフ指向のプログラミングフレームワークにおけるパラレル化及びインスツルメンテーション
US9201766B2 (en) 2006-12-01 2015-12-01 Murex S.A.S. Producer graph oriented programming framework with scenario support
US9424050B2 (en) 2006-12-01 2016-08-23 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
US10083013B2 (en) 2006-12-01 2018-09-25 Murex S.A.S. Producer graph oriented programming and execution
US10481877B2 (en) 2006-12-01 2019-11-19 Murex S.A.S. Producer graph oriented programming and execution
US9921858B2 (en) 2014-09-16 2018-03-20 International Business Machines Corporation Apparatus and method for realizing runtime system for programming language
US10331465B2 (en) 2014-09-16 2019-06-25 International Business Machines Corporation Apparatus and method for realizing runtime system for programming language
US10922107B2 (en) 2014-09-16 2021-02-16 International Business Machines Corporation Apparatus and method for realizing runtime system for programming language

Also Published As

Publication number Publication date
EP0629946A2 (en) 1994-12-21
EP0629946B1 (en) 1999-08-18
US5761509A (en) 1998-06-02
DE69420081T2 (de) 2000-03-30
EP0629946A3 (en) 1995-02-08
DE69420081D1 (de) 1999-09-23

Similar Documents

Publication Publication Date Title
JPH0713766A (ja) オブジェクト指向コンピュータ・システムおよびオブジェクト・クラス管理方法
US6363435B1 (en) Event sourcing and filtering for transient objects in a hierarchical object model
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US5535389A (en) Business process objects with associated attributes such as version identifier
US6182155B1 (en) Uniform access to and interchange between objects employing a plurality of access methods
US5602729A (en) Method and apparatus for monitoring and controlling multiprocessor digital data processing systems
US6139198A (en) System and method for enabling tracing of program execution in an object-oriented system
EP1727041A2 (en) Pipeline architecture for use with net-centric application program architectures
US5896532A (en) Objects with run-time classes and methods of making them
US6694506B1 (en) Object oriented programming system with objects for dynamically connecting functioning programming objects with objects for general purpose operations
US6308314B1 (en) Mechanism and method for flexible coupling of processes in an object oriented framework
US6330711B1 (en) Method and apparatus for dynamic application and maintenance of programs
US20070083551A1 (en) Extensible mechanism for object composition
Conrad et al. Temporal OCL: Meeting specification demands for business components
US6298475B1 (en) Method and apparatus for analyzing performance of a Java bean
US5634056A (en) Run time dependency management facility for controlling change propagation utilizing relationship graph
US7444618B2 (en) Automatic generation of batch programs with identification, insertion of invariables, declarative statements and variables with the use of place-marks
US6195791B1 (en) Object mechanism and method for coupling together processes to define a desired processing environment in an object oriented framework
JPH0950370A (ja) 高機能作成者クラス・パターン、マシン実行手続きおよびオブジェクト指向プログラミング・システム
US6560770B1 (en) Extending the attributes of an application generated using a fourth generation programming tool
US5948072A (en) Method and apparatus for defining the scope of a CORBAservices factory finder
Cheong et al. Frame-based method for customizing generic software architectures
US5737606A (en) Method and system for delegation in a class-based language
US6269407B1 (en) Method and system for data filtering within an object-oriented data
de Miguel et al. Automatic generation of simulation models for the evaluation of performance and reliability of architectures specified in UML