JPH03138735A - データベース管理装置及び方法 - Google Patents

データベース管理装置及び方法

Info

Publication number
JPH03138735A
JPH03138735A JP2241360A JP24136090A JPH03138735A JP H03138735 A JPH03138735 A JP H03138735A JP 2241360 A JP2241360 A JP 2241360A JP 24136090 A JP24136090 A JP 24136090A JP H03138735 A JPH03138735 A JP H03138735A
Authority
JP
Japan
Prior art keywords
work unit
database
level
task
instance
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.)
Granted
Application number
JP2241360A
Other languages
English (en)
Other versions
JPH0833863B2 (ja
Inventor
Robert L Abraham
ロバート・ロー・アブラハム
Richard E Moore
リチヤード・ユージン・ムア
William L Rich
ウイリアム・ローレンス・リッチ
Floyd W Shackelford
フロイド・ウエイン・シヤツケルフオード
Jr John R Tiller
ジヨン・ラツセル・テイラー・ジユニア
Cynthia A Ross
シンシア・エイ・ロス
Jr Richard S Briggs
リチヤード・スミス・ブリッグス・ジユニア
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 JPH03138735A publication Critical patent/JPH03138735A/ja
Publication of JPH0833863B2 publication Critical patent/JPH0833863B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/955Object-oriented
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 この発明は、データベース管理システムに関するもので
あり、より詳細には、データベースにおけるデータの一
貫性を保持するための方法および装置に関するものであ
る。
B、従来の技術 ]ンピュータに基づくデータベース管理システムは、多
(の関連のあるデータのセットの蓄積および処理操作の
ために広範に使用されている。データベース管理システ
ムは、データベース管理プログラムまたはデータベース
・マネージャと呼ばれるコンピュータ・プログラムを用
いて、パーソナル・コンピュータ、ミニコンピユータま
たはメインフレーム・コンピュータにおいて実施するこ
とができる。多くのデータベース管理システムは通常の
プログラミング技術を用いて実施されるものであるが、
データベース管理システムは従来からオブジェクト指向
型のプログラミング・システムおよび方法を用いて設計
されており、また、現状では商用で開始するようにみえ
ている。
オブジェクト指向型のプログラミング・システムおよび
方法は、従来からのデータ処理の環境において、多くの
研究・調査の対象であり、また、関心が集まっている。
オブジェクト指向型のブロクラミングは、コンピュータ
・プログラムの包括的な技術であって、再使用可能で拡
張可能なプログラムの付与がなされる。新規な機能的要
求および新規なタイプのデータには容易には適合できな
い既知の機能的なプログラミング技術とは対照的に、オ
ブジェクト指向型のプログラムは、新規な要求が生じる
ときに、再使用可能かつ拡張可能である。コンピュータ
に基づくシステムの複雑性が増大するとともに、オブジ
ェクト指向型のプログラミングに向かう注意および研究
・調査が増大してきている。
オブジェクト指向型のプログラミング・システムにおい
ては、主たる関心の中心は、機能というよりもデータで
ある。オブジェクト指向型のプログラミング・システム
は、多くの“オブジェクト“からなるものである。オブ
ジェクトとはデータ構成であり、また、当該データ構成
をアクセスすることができる動作または機能のセットで
ある。該データ構成は“フレーム”として表現すること
ができる。該フレームは多くの“スロット”を有するこ
とができて、その各々には該スロット内のデータの“属
性“が含まれている。この属性はプリミティブ(pri
mitive)(即ち、整数またはストリング)または
オブジェクト・リファランス(ObjectRefer
ences)であって、他のオブジェクトの1個または
複数個のインスタンス(以下に定義される)に対するポ
インタである。データ構成をアクセスすることができる
動作(機能)の各々は“メソッド”と呼ばれる。
第1図には、メソッド内にフレームが閉じ込められてい
る概略的な表現が例示されている。第2図にはオブジェ
クトの一例が示されているが、ここでのデータ構成は、
従業員のデータとこのデータ構成を包囲する多くのメソ
ッドに関連している。
−”)のメソッドの例としては、従業員の年令がとられ
ている。それぞれに定義されるオブジェクトは、通常は
、多くの“インスタンス”の中で表示されている。それ
ぞれのインフラ・ンスには、特定の例としてのオブジェ
クトに対する、特定のデータ構成が含まれている。例え
ば、ジョイス・スミス(Joyce Sa+1th)な
る氏名の個別の従業員に対するオブジェクトが、′従業
員1オブジェクトのインスタンスにされている。
オブジェクト指向型のプログラミング・システムで与え
られる2個の主要な特性により、展開される上で柔軟性
があり、再使用性があるプログラムとして許容される。
これらの特性は“閉じ込め(encapsulatio
n)”および#!承(inheritance)”とし
て参照される。第1図から認められるように、フレーム
はそのメソッド(機能)によって閉じ込められている。
それぞれのデータの周囲にはフード・ウオール(wal
l or code)が設けられている。フレームに対
する全てのアクセスは、包囲しているメソッドによって
取り扱われる。これによりデータの独立性が付与される
が、その理由は、あるデータ構成に対するアクセスが、
それに対応するメソ。
ドによってのみなされるからである。関連のあるメソッ
ドだけが、内部的なデータ構成を知っていることになる
。これによってデータの一貫性が確実にされる。
オブジェクト指向型のプログラミング・システムの“継
承”特性のために、オブジェクトの新規なスーパークラ
ス(superclasses)およびサブクラス(s
ubclasses)を生成させることにより、先に書
かれたプログラムが広がることが許容される。新規なオ
ブジェクトの記述は、それらが先に存在するオブジェク
トとはどのように異なっているかを表すようにされ、こ
のことから、新規なタイプのデータまたは機能を取り扱
うために、完全に新規なプログラムを書くことが不要に
なるようにされる。
第3図には、継承特性が例示されている。例示を容易に
するために、オブジェクトは円ではなくて方形として例
示されている。そして、オブジェクトの名称は方形の頂
部におかれ、フレームはオブジェクトの名称の下部にお
かれ、また、メソッドはフレームの下部におかれている
。第3図を参照すると、3個のオブジェクトのクラスが
、′セールスマン”従業員”および“個人”とじて例示
されているが、ここで、セールスマンは従業員“の種類
”であり、また、個人“″の種類”である。これを換言
すれば、セールスマンは従業側のサブクラスであり、ま
た、従業員はセールスマンのスーパークラスである。同
様にして、従業員は個人のサブクラスであり、また、個
人は従業員のスーパークラスである。各クラスには3個
のインスタンスが示されている。ビー・スーター(B、
 5outer)、ダブリュ・ティップ(Y、 Tip
p)およびビー・ジー・ブルー(B、 G、 Blue
)はセールスマンである。ビー・アブラハム(B、^b
rahaI11)、ケイ・イエイツ(K、 Yates
)およびアール・ムーア(R,Moore)は従業員で
ある。ジェイ・マツケンロー(J、 McEnro)、
アール・ネイダー(R,Nader)およびアール・ジ
ーガン(R,Reagan)は個人である。
これを換言すれば、ある1個のインスタンスは、関連“
がある”ということで、そのクラスに関連している。
各サブクラスで“継承する”ことは、フレームおよびそ
のスーパークラスのメソッドである。かくして、セール
スマンのフレームで継承することは、年令と雇用年月日
とのオブジェクト、および、従業員のスーパークラスか
らの昇進メソッドである。また、セールスマンに含まれ
ていることは、固有の分は前の属性、および、口銭支払
いのメソッドである。各インスタンスでは、そのスーパ
ークラスの全てのメソッドおよびフレームをアクセスす
ることが可能であって、例えば、ビー・ジー・ブルーが
昇進できるようにされている。
オブジェクト指向型のシステムにおい°Cは、あるオブ
ジェクトでなすべきことについての“メツセージ”を、
該当のオブジェクトに対して伝送することにより、その
メソッドの一つを実行するような、高いレベルのルーチ
ンが当該オブジェクトにおいて必要とされる。該メツセ
ージを受は入れたオブジェクトは、メツセージの名称を
具体化させるメソッドの選択をし、このメソッドの実行
をしてから、該メソッドの結果とともに、現に呼んでい
る高いレベルのルーチンに対して制御を戻すことにより
、当該メツセージに対する応答をする。
オブジェクト指向型のプログラミング・システムは、デ
ータベース管理システムとして採用することができて、
大規模なデータベースに対する操作が可能であり、また
、拡張可能であるとともに適合可能なものである。オブ
ジェクト指向型のデー9ベース管理システムにおいては
、該データベース内のデータは組織化されて、オブジェ
クトの項目内に入れられており、該オブジェクトのイン
スタンスはデータベース内でのデータにされている。同
様にして、データベース・マネージャはオブジェクトの
セットとして組織化されており、データベース管理の動
作は、ある1個のオブジェクトから他のオブジェクトへ
とメツセージを伝送することでなされて°いる。目標の
オブジェクトにおいては、そのメソッドを用いて、該当
の属性に対して必要とされる動作がなされる。
データベース管理システムが、オブジェクト指向型のプ
ログラミングまたは通常のプログラミングのいずれを用
いて動作するにしても、データベース管理システムに関
する重要なことは、データの一貫性を保持することであ
る。データの一貫性を保持することは、データのサイズ
および複雑性が増すにつれて困難になる。これに加えて
、極めて大規模なデータベースにとっては、多くのタス
ク処理を同時に実行することが望まれ、これにより、デ
ータの一貫性と更に衝突することになる。
より詳細にいえば、データベース・マネージャで代表的
に制御されることは、データベース内でのデータに対し
てタスク処理を実行することである。各タスクには多く
のステップが含まれており、これらのステップの各々に
より、データベース内でのデータの修正がもたらされる
。その完了に先立ってタスクに失敗があったときには、
データの一貫性が失われる。即ち、その完了に先立って
タスクに失敗があったときには、該タスク内のステップ
によりデータベース内でのデータの修正が可能にされ、
これによってデータベースの一貫性が失われることにな
る。タスクが失敗するのは次のような理由によるもので
ある。即ち、ある1個のステップで失敗があったこと、
または、データベース・マネージャの制御の下に、“同
時的な”タスク処理をするように、ある第2のタスクを
実行するために、前記ある1個のタスクが一時的に休止
していることによるものである。このような同時処理の
シナリオにおいては、当初のタスク処理が完了する可能
性はな(、該当初のタスクにおける完了のステップの結
果として、データベースが修正を受けるということもな
い。これに加えて、それぞれ同時に実行されるタスクは
、データベースからの同じ要素に対して処理動作がなさ
れるものであって、これにより、第1のタスクによって
データベース内に配置されたデータに対して、第2のタ
スクをして誤りの修正をさせることになる。
か(して、データの一貫性が再び失われる。
C1発明が解決しようとする課題 従って、この発明の目的は、改良されたデータベース管
理システムを提供することにある。
この発明の別の目的は、オブジェクト指向型のプログラ
ミング・システムとして実施される、改良されたデータ
ベース管理システトを提供することにある。
この発明の別の目的は、データベース内のデータの一貫
性が保持される、改良されたデータベース管理システム
を提供することにある。
この発明の別の目的は、その完了に先立つタスクの失敗
にも拘わらず、データベース内のデータの一貫性が保持
される、改良されたデータベース管理システムを提供す
ることにある。
この発明の更に別の目的は、多数の同時的な実行0間に
、データベース内のデータの一貫性が保持される、改良
されたデータベース管理システムを提供することにある
01課題を解決するための手段 これらの目的およびその他の目的は、次のような発明に
よって達成される。即ち、データ蓄積デバイス内に蓄積
されたデータ要素からなるデータベース、および、該デ
ータベースに対して多くのタスクを実行するためのデー
タ・プロセッサに対して動作するデータベース・マネ゛
−ジャを含んでいるデータベース管理システムにおいて
、各タスクに含まれている多くのステップは、データベ
ース内のデータ要素を修正できるようにされた発明によ
って達成される。この発明によれば、該データベース・
マネージャにはワーク・ユニット・マネージャが含まれ
ている。該ワーク・ユニット・マネージャにより、各タ
スクに対するワーク・ユニットのインスタンスの割り当
てがなされ、また、ある1個のタスクにおける各ステッ
プに対するワーク・ユニットのレベルの生成がなされる
。オブジェクト指向型のプログラミング・システムにお
いて、ワーク・ユニッ!・は新規なオブジェクトのクラ
スであり、また、該ワーク・ユニットのクラスにおける
インスタンスは、タスクによって動作されるように、各
オブジェクトのインスタンスに対して生成されるもので
ある。
この発明によれば、タスクのための各ワーク・ユニット
のレベルに含まれているものは、該タスクによって修正
されるべき、データベースからのデータ要素のコピーで
ある。該夕、スクにおける各ステップは、データベース
それ自体の中のデータ要素ではな(、関連のワーク・ユ
ニットのレベルにおけるデータ要素の修正をするために
制御される。従って、その完了に先立ってタスクが中断
されたときには、ワーク・ユニットのレベルにおけるデ
ータ要素だけが修正されることになる。データベース内
のデータ要素は修正されない。同様にして、データベー
ス・マネージャによって第2のタスクに切り換えられた
ときには、該ワーク・ユニットのレベルは保管されて、
該タスクの再開のときに呼び戻されるようにできる。
より詳細にいえば、この発明によると、ワーク・ユニッ
トのレベルがタスクの各ステップに対して生成される。
タスクにおける後続のステップに対する後続のワーク・
ユニットのレベルに含まれているものは、該後続のステ
ップによって動作されるべきデータ要素のコピーであっ
て、先行のステップに対する先行のワーク・ユニットの
レベルから“修正されたような”状態にあるものである
。これらの“ネストされた”コピーにより、該当のデー
タに対してなされた修正の経時的な痕跡が付与される。
従って、先行のステップから現れるようなデータに対し
て各ステップでの動作がなされると、該当のタスクにお
ける最後のステップが正しく完了されるまでは、データ
ベース内の実際のデータが修正されることはない。かく
して、ワーク・ユニットのレベルについて適当なネスト
処理を施すことにより、ある特定のワーク・ユニットの
レベルにおけるデータに対する変化の“ロールバック”
をさせることができる。
この発明によるワーク・ユニット・マネージャは、単一
のタスクのデータベース管理システム(即ち、−時に1
@のタスクを実行するシステム)とともに用いられて、
何らかの理由によりタスクが完了しない場合、または、
中断している場合に、データの一貫性が付与される。更
に、この発明によるワーク・ユニット・マネージャは、
同時的なタスクのデータベース管理システム(即ち、多
くのタスクを同時に実行することができるシステ11)
とともに用いられて、その完了に先立ってタスクが切り
換えられたときに、データの一貫性が付与される。当該
の場合には、多くのタスクの各々に対して、各ワーク・
ユニットのインスタンスのコピーが作成される。多くの
コピーの各々に含まれているものも、各ステップに対す
る多くのレベルである。
この発明によるワーク・ユニット・マネージャは、機能
的にプログラムされたデータベース管理システムにおい
て実現させることができる。しかしながら、このワーク
・ユニット・マネージャは、オブジェクト指向型のプロ
グラミング・システムのために特に有利なものである。
その理由は、これらのシステムは、代表的には、極めて
大規模のデータベースに対して動作するものであり、ま
た、多重タスク操作が可能であるためである。オブジェ
クト指向型のプログラミング・システムは、代表的には
、“°乱雑な机(messy desk)”の環境下で
処理が施されるものであり、ここでは同一の適用におい
て多くの活動がなされる。このような環境においては、
データの一貫性を維持させることは国難である。
オブジェクト指向型のプログラミング・システムにおい
ては、この発明によるワーク・ユニットはオブジェクト
のクラスであり、これに含まれるメソッドとしては次の
ことがある。即ち、′コミット(commit)″  
“放棄(discard)″  “新規(new)”通
知(notify)“、 ロールバック(rollba
ck)”起動(start)”および“切り換え(sw
itch)″というメソッドがある。コミ、yト(co
mmit)メソッドにおいては、現在のワーク・ユニッ
トのレベル内で、先行のワーク・ユニットのレベルへと
なされる変化に適用される。ワーク・ユニットのレベル
が1″であるときにコミットが実行されたとすると、デ
ータベースに対する物理的な更新が生じる。放棄(di
scard)により、特定のワーク・ユニットのインス
タンスがシステムから除去される。放棄されたワーク・
ユニットのインスタンス内の全てのデータが失われる。
新規(new)では、完全に新規なワーク・ユニットの
インスタンスが始まる。通知(noLHy)は適用プロ
グラムで用いられて、あるデータ要素が修正されようと
していることを、ワーク・ユニット・マネージャに知ら
せるようにされる。ロールパック(rol 1back
)では、現在のワーク・ユニットのレベル内でなされた
変化を無効にして、先行のワーク・ユニットのレベルに
遅れるようにされる。起動(start)では、現在の
ワーク・ユニットのインスタンス内で、新規にネストさ
れたワーク・ユニットのレベルが始まる。最後に、切り
換え(switch)が用いられ、現在のワーク・ユニ
ットのインスタンスが除かれて、別の、先に定義された
ワーク・ユニットのインスタンスを入力するようにされ
る。
E、実施例 以下、この発明の好適な実施例が示されている添付図面
を参照しながら、この発明をより詳細に説明していく。
ただし、この発明は多くの異なる形式をもって具体化で
きるものであって、ここに示されている実施例に限定さ
れると解釈すべきではない。むしろ、この実施例が提供
されたのは、ここでの開示を十分かつ完全なものにし、
この発明の範囲が当業者に対して十分に伝わるようにす
るためである。全体を通じて、同様な数字が同様な要素
に付されている。
オブジェクト指向型のコンピュータ・システムオブジェ
クト指向型のコンピュータ・システムにおいては、デー
タを含んでいる(閉じ込めている)オブジェクトに対し
て動作要求メツセージを伝送することにより、作業の達
成がなされる。該オブジェクトは、その予め定義された
メソッドにより、該データに対して要求された動作を実
行する。該動作を要求する者は、実際のデータがどのよ
うなものであるか、または、該オブジェクトがそれをど
のようにして取り扱うかを知る必要はない オブジェクトのクラスでは、該データのタイプおよび意
味についての定義がなされ、オブジェクトが正当である
という動作の要求がなされる(メツセージが出される)
。データを含んでいる個別のオブジェクトは、クラスの
インスタンスと呼ばれる。クラスは、全般的には、実社
会の事物に関連している。例えば、“部分(Part)
”はクラスであってよい。ある1個の部分についてのデ
ータ要素(スロット)は部分ナンバ、状態(statu
s)および部分タイプである。このクラスのインスタン
スは個別の部分を表しており、該個別の部分の各々は、
それ自体の部分ナンバ、状態およびタイプの情報を資し
ている。要求された動作を実行するプログラムは、クラ
スのメソッドと呼ばれる。
オブジェクトのクラスは、他のクラスのサブクラスであ
るとして定義される。サブクラスは、ペアレント(pa
rent)・クラスの全てのデータ特性およびメソッド
を継承する。それらには追加のデータおよびメソッドが
付加され、また、それらはペアレント・クラスの任意の
データ要素またはメソッドを無効にする(再定義する)
ことができる。大力のメツセージがオブジェクトのイン
スタンスに伝送されている間に、新規なインスタンスが
生成されるべきであると要求するメツセージがオブジェ
クトのクラスに伝送される。このクラスにより新規なイ
ンスタンスが生成されて、・該当のオブジェクトが知ら
されるオブジェクト識別子を戻すようにされる。
動作要求のメツセージの伝送者は、該メツセージを伝送
しているオブジェクトの正確なりラスを知る必要はない
。目標のオブジェクトがメツセージを取り扱うメソッド
を定義しているか、または、このようなメソッドを定義
するペアレント・クラスを有している限りは、このメツ
セージの取り扱いは、該オブジェクトのインスタンス内
のデータ、および、そのクラスまたはそのペアレント・
クラス内のメソッドを用いてなされる。実際には、中間
的なペアレントは必要ではなく、ペアレントのペアレン
ト等であればよい。該メソッドの伝送者は、受は入れる
オブジェクトのオブジェクトIDを知ることだけが必要
である。オブジェクト指向型のシステムのこの特性は“
継承(inheritance)”と呼ばれる。この発
明においては、この継承の特性が用いられている。
ここで第4図を参照すると、オブジェクト指向型のコン
ピュータ・システム10の概略的フロック図が例示され
ている。該システムlo1.:含まれているデータ・プ
ロセッサ11は、メインフレーム・コンピュータ、ミニ
コンピユータまたはパーソナル−コンピュータでよい。
多くのユーザを有する大規模なデータベースのためには
、メインフレーム・コンピュータが代表的に採用されて
いる。
当業者にとっては周知であるように、データ・プロセッ
サ10に含まれている揮発性のデータ蓄積デバイス13
は、代表的にはラン−ダム・アクセス・メモリ(RAM
)であって、活動的なデータおよび中間的な結果のため
の作業用蓄積部を提供するようにされる。データ・プロ
セッサ11に対するパワーが除去されたとき、または、
新規なユーザのセツションが始まったときに、RAM1
3内のデータが消去される。システム10には、オブジ
ェクトの永久的な蓄積のための、不揮発性のデータ蓄積
デバイス14も含まれている。デバイス14は、ダイレ
クト・アクセス蓄積デバイス(DASD−ディスク・フ
ァイル)、テープ・ファイル、消去可能な光学的ディス
ク、または、その他の周知のデバイスでよい。不揮発性
のデータ蓄積デバイス14は、ここでは、“データベー
ス”として参照される。また、揮発性のデータ蓄積デバ
イス13は“メモリ”としても参照される。陰極線管(
CRT)またはその池のデイスプレ・イおよびキーボー
ドを含むデイスプレィ・ターミナル15も示されている
オブジェクト指向型の動作プログラム12もデータ・プ
ロセッサ11に含まれて゛いる。オブジェクト指向型の
動作プログラム12は、“C”または“スモールトーク
(Smalltalk)” もしくはその変形のような
、オブジェクト指向型の言語をもってプログラムをする
ことができ、または、FORTRANまたはC0BOL
のような通常のプログラミング言語をもってプログラム
することができる。
オブジェクト指向型の動作プログラム12の設計は、オ
ブジェクト指向型のプログラミング・システムにおける
当業者には周知のことであって、以下に概略的な説明だ
けをしておく。
ここで、第5図を参照しながら、オブジェクト指向型の
プログラム(12、第4図)の主要構成部について説明
する。オブジェクト指向型のプログラムの設計および動
作についてのより詳細な説明は、1988年にプレンテ
ィス・ホール社によって刊行された、パートランド・メ
イヤー(Bertrand Meyer)著の、“オブ
ジェクト指向型のソフトウェア構成(Object 0
riented SoftwareCons t ru
e t 1on) ”でなされている。なお、この刊行
物による開示事項はここでの参照により組み入れをする
第5・図を参照すると、オブジェクト指向型の動作プロ
グラム12には3個の主要な構成部が含まれている。即
ち、メツセンジャ51、オブジェクト管理テーブル52
およびロード・クラス・テーブル(Loaded C1
asses Table)53が含まれている。
メツセンジャ51は、呼びメツセンジャと被呼メツセン
ジャ、オブジェクト管理テーブル52およびロード・ク
ラス・テーブル53の間での通信の制御をする。オブジ
ェクト管理テーブル52には、全ての活動的なオブジェ
クトのインスタンスに対するポインタのリストが含まれ
ている。ロード・クラス・テーブル53には、全ての活
動的なオブジェクトのクラスのメソッドに対するポイン
タのリストが含まれている。
ここで、オブジェクト指向型のプログラム12の動作に
ついて、第5図に示されている例をとって説明する。こ
の第5図において、オブジェクトのメソッドA(ブロッ
ク54)から、オブジェクトのメソッドB(ブロック5
5)に向−けて、メツセージの伝送がなされる。メソッ
ドAからメソッドBへのメツセージの伝送は、メツセン
ジャ51を呼ぶことによってなされる。−該メツセンジ
ャに含まれているものは、(1)該当のメツセージを受
は入れるための、インスタンスのオブジェクト・リフェ
ランス、(2)’閉じ込められているデータに対して、
該オブジェクトのインスタンスが実行することが必要と
されるメソッド、および、(3)受は入れているメソッ
ドによって必要とされる任意のパラメータ、である。メ
ツセンジャ51Lt、インスタンスとしてのオブジェク
トに対するオブジェクト管理テーブル52を探索するこ
とにより、メソッドAで特定されたインスタンスとして
のオブジェクトについて、データ・フレーム5Gに対す
るポインタを獲得する。該特定されたインスタンスとし
てのオブジェクトが発見できないときには、オブジェク
ト管理テーブル52は該インスタンスとしてのオブジェ
クトをテーブルに加え、該インスタンスを呼んで、その
データをデータベースからのものに具体化させる。該イ
ンスタンスが一旦テーブル内にあれば、オブジェクト管
理テーブル52は、該具体化されたインスタンスとして
のオブジェクトに、そのポインタを戻す。
メツセンジャ51は、次いで、メソッドBのアドレスを
ロード・クラス・テーブル53から獲得する。該インス
タンスのクラスがロードされていないときには、該ロー
゛ド・クラス・テーブル53は該アドレスをこの時点に
おいてロードして、そのデータとして具体化させる。該
ロード・クラス・テーブル53は特定されたメソッド(
メソッドB)を探索して、該メソッドのアドレスをメツ
センジャ51に戻す。
次いで、メツセンジャ51はメソッドBを呼び、ポイン
タを含んでいるメソッド八によってなされた呼びからの
システム・データ・エリアおよびパラメータが該メソッ
ドBを通過するようにされる。
メソッドBは該ポインタを用いてデータ・フレーム56
をアクセスする。次いで、メソッドBはメツセンジャ5
1に制御を戻し、このメツセンジャ51はメソッドAに
制御を戻す。
オブジェクト指向型のプログラム12には、代表的には
、各オブジェクトに関連したメソッドに対するテーブル
が含まれている。このメソッド・テーブルには、メソッ
ドのナンバおよび該当のメソッドが配置される対応のア
ドレスが含まれている。これに加えて、オブジェクト指
向型のプログラム12には、代表的には、各オブジェク
トに対するオブジェクト識別テーブルも含まれている。
このテーブルに含まれている全てのインスタンスは、各
インスタンスに対するオブジェクトおよび対応のアドレ
スまたは0REFに対するものである。
これらのテーブルは、メソッドの実行をすること、およ
び、オブジェクトおよびオブジェクトのインスタンスと
してのデータをアクセスすることの処理のために用いら
れる。
多くのプログラミングの活動において、特にオブジェク
ト指向型のプログラミング・システムにおいて、ある1
個のタスクを他のものと衝突させることなく、多くのタ
スクを独立かつ平行して処理することが望ましい。多く
のデータベース・システムでは、単一の、逐次的に順序
付けられたタスクに対するプログラムに限定されている
。その主たる限定は、コミットミロールバック、ロック
または解放されたものを特定することが不可能であるこ
とにある。これに加えて、データベースにコミットがあ
る毎に、その後で、一般的には資源(resource
)の解放がなされる。これらの限定のために、同一の適
用内で多くの同時的な活動がなされる、“乱雑な机”な
る環境内でのユーザの動作を許容することが困難にされ
る。
この発明の“ワーク・ユニット”のオブジェクト・クラ
スによれば、ある1個の制御環境内で、1個または複数
個の活動の実行が許容される。この発明のワーク・ユニ
ットのオブジェクト・クラスを有する、オブジェクト指
向型のプログラミング・システムにおいては、適用プロ
グラムによってワーク・ユニットの識別がなされる。オ
ブジェクト指向型のプログラム12(第4図)に含まれ
ているワーク・ユニット・マネージャは、関連のあるワ
ークの活動性について、データの管理をするとともにそ
の相対的な一貫性を維持する可能性のある適用プログラ
ムの付与をする。
その動作において、ワーク・ユニット・マネージャは適
用プログラムによって初期化される。データを修正する
ためのプログラムは、該ワーク・ユニット・マネージャ
に通知をする責任がある。
処理をしているタスクがワーク・ユニットのレベルを通
って進行すると、ワーク・ユニット・マネージャは同一
のオブジェクトのインスタンスの多くのコピーを作成す
る。本質的には、これら多数のインスタンスは、データ
に対してなされた修正の経時的な痕跡を付与するもので
ある。が(して、’7−トユニツトのレベルの適当なネ
スト処理を通して、ある特定のワーク・ユニットのレベ
ルにおいて、データに対する変化を“ロールパック”さ
せることができる。該ワーク・ユニット・マネージャは
、論理的なワーク・ユニットのインスタンスを制御する
ために、タスクによって用いられる。ワーク・ユニット
・マネージャはタスクによってアクセスされる。そして
、これ−に次いで、現在のワーク・ユニットのインスタ
ンスを処理することが要求されると、タスクはワーク・
ユニット・マネージャに対して要求を伝送する。
ここで第6図を参照すると、この発明のワーク・ユニッ
トのオブジェクト・クラスに対する、2個の主要な用途
が示されている。その第1の用途は、各オブジェクトに
対する、多くの同時的なワーク・ユニットのレベルのた
めのものである。第7図において表されているように、
ワーク・ユニット・インスタンス・オブジェクト・テー
ブルとして知られているオブジェクト・テーブルは、各
ワーク・ユニットのインスタンスのために存在するもの
である。ある1個のオブジェクトに対するワーク・ユニ
ットのインスタンスの一例は、第6図におけるオブジェ
クトAが第3図におけるセールスマンのオブジェクトと
等しいときには、セールスマンのオブジェクト(即ち、
オブジェクトA)である多くのオブジェクトのインスタ
ンスは、ビー・スーツ、ダブリュ、ティップおよびビー
・ジー・ブルーである。第8図には、多くのワーク・ユ
ニットのインスタンスが例示されているが、ここに、第
6図におけるオブジェクトA1オブジェクトBおよびオ
ブジェクトCは、単一のワーク・ユニットのインスタン
スとして集合的に表すことが可能であり、また、この第
8図において、ワーク・ユニットのインスタンス 1、
ワーク・ユニットのインスタンス 11およびワーク・
ユニットのインスタンス II+は、3個のワーク・ユ
ニットのインスタンスが例示されている。その第2の用
途は、第6図において、UOIレベルl、UOYレベル
2およびUOWレベル3としてそれぞれに参照されるよ
うに、ある特定のワーク・ユニットのインスタンス内で
ワーク・ユニットのレベルを生成させることである。
多くのワーク・ユニットのインスタンスにおいて単に意
味することは、第8図において、ワーク・ユニットのイ
ンスタンス 1、ワーク・ユニットのインスタンス I
Iおよびワーク・ユニットのインスタンス II+ と
して参照される2個またはそれよりも多くのワーク・ユ
ニットが同時に存在するけれども、互いに独立して動作
することである。
このことは、第6図におけるオブジェクトA1オブジェ
クトBおよびオブジェクトCのような、オブジェクト自
体にも当て嵌まるものである。このコンセプトで許容さ
れるデータベースのコミットで生じることは、第8図に
おけるワーク・ユニットのインスタンス ■のような、
オブジェクトAに対する一つの特定のワーク・ユニット
のインスタンスへの影響だけである。・これに加えて、
多(のワーク・ユニットのインスタンスでユーザに許容
されることは、所望に応じて、ワーク・ユニットのイン
スタンスからワーク・ユニットのインスタンスへと“切
り換える”ことである。即ち、ワーク・ユニットのイン
スタンス 1からワーク・ユニットのインスタンス 1
■へと“切り換よる7ことである。ワーク・ユニットの
レベル1.2および3は、ある特定のワーク・ユニット
のインスタンス内で、それらのワーク・ユニットの関連
のある活動の制御をする。ある特定のワーク・ユニット
のインスタンスの最低のレベル、即ち、レベル1にコミ
ットする動作だけにより、データベースに対する実際の
衝突が生じる。
ワーク・ユニットのオブジェクト・クラス−属性この発
明のワーク・ユニットのオブジェクト・クラスの主要な
属性としては以下のものが含まれている: ワーク・ユニット・インスタンスID ワーク・ユニット・インスタンスIDは、ある1個のワ
ーク・ユニット・インスタンスを固有のものとして識別
する。
ワーク・ユニット・インスタンスの現在のレベル ワーク・ユニット・インスタンスの現在のレベルは、あ
る所与のワーク・ユニット・インスタンスに対するワー
ク・ユニットのレベルを識別する。
ワーク・ユニットの先行インスタンスIDワーク・ユニ
ットの先行インスタンスIDは、新規に生成されたワー
ク・ユニット・インスタンスに対して制御が伝送され、
または、切り換えられるのに先立って、いずれのイン、
スタンスに制御があったかの固有の識別をする。
’7−トユニツト・インスタンス・オブジェクト・テー
ブル(ワーク・ユニット・インスタンス・オブジェクト
・リスト) ワーク・ユニット・インスタンス・オブジェクト・テー
ブルは、各ワーク・ユニット・インスタンスに対して維
持されている。2次元のテーブルに含まれているものは
、ワーク・ユニット・インスタンス内でオブジェクトが
発見されたときの、ワーク・ユニット拳インスタンスに
対するオブジェクトおよびワーク・ユニットのレベルで
ある。一つの実施で付与されるものは、オブジェクトに
よるラベルが付された行(column)およびワーク
・ユニットのレベルによるラベルが付された列(row
)である。ある1個のオブジェクトのインスタンスに対
するアドレスまたは0REFは、テーブルにおいて、該
特定のオブジェクトの行と、ワーク・ユニットのレベル
の列との交点で維持される。アドレスまたは0REFが
発見されなかったときには、該特定のワーク・ユニット
・インスタンス内には、当該特定のワーク・ユニットの
レベルは存在しない。
例えば、第7図を参照すると、第6図におけるワーク・
ユニット・インスタンスのためのワーク・ユニット・イ
ンスタンス・オブジェクト・テーブルが示されている。
第6図に例示されているワーク−ユニット・インスタン
スにおいて、ワーク・ユニットのレベル2におけるオブ
ジェクトB、または、ワーク・ユニットのレベル3にお
けるオブジェクトCにインスタンスが存在しないことか
ら、それらのワーク・ユニットのレベルにおけるそれら
のオブジェクトに対して、ワーク・ユニット・インスタ
ンス・オブジェクト・テーブルには対応のエントリは存
在しない。
ワーク・ユニット・オブジェクト・クラスーメソッこの
発明のワーク・ユニット・オブジェクト・クラスで付与
される7個のメソッドは、オブジェクト指向型の環境下
でオブジェクトに対して動作するものである。これらの
メンツ、ドに含まれているものは、新規(New)、起
動(Start)、通知(Notify)、放棄(Di
scard)、切り換え(Switch)、コミット(
Commit)および凸−ルバック(Rol 1bac
k)である。各メソッドは、上記のカウンタおよびその
他の属性を取り扱うものである。
新規(New) 新規のメソッドにおいては、完全に新規なワーク・ユニ
ット・インスタンスが始まり、適用プログラムの呼びに
その扱いを戻す。この扱いでは、新規なワーク・ユニッ
ト・インスタンスの固有の識別をする。データが他のワ
ーク・ユニット・インスタンス内で既に先に選択された
ものであっても、このワーク・ユニ・7ト・インスタン
ス内で参照された全てのデータは新規に生成され、また
は選択されたものである。これに加えて、このワーク・
ユニット・インスタンスが放棄されるときには、このワ
ーク・ユニット・インスタンス内で選択され、または生
成されたいずれのデータに関連するメモリでも、その全
てが自由にされる。
起動(Start) 起動メソッドにおいては、ワーク・ユニット・インスタ
ンスに対して、現在のワーク・ユニット・インスタンス
内で新規でネストされたワーク・ユニットのレベルを始
めることを通告する。
通知(Notify) 通知メソッドにおいては、ワーク・ユニット・マネージ
ャに対して、適用プログラムがデータ要素を修正する旨
の通告をすることを許容して、該データ要素が現在のワ
ーク・ユニット・インスタンス内の現在のワーク・ユニ
ットのレベル“内ニコピー”させる。
放棄(Discard) 放棄メソッドにおいては、特定されたワーク・ユニット
・インスタンスをメモリから取り除き、その結果として
、該ワーク・ユニット・インスタンス内のデータは失わ
れるが、データベースは影響を受けない。
切り換え(Switch) 切す換えメソッドにおいては、現在のワーク・ユニット
・インスタンスから制御が離れ、新規の特徴によって戻
った該制御(扱いまたは固有の識別子)を用いて、先に
定義された別のワーク・ユニット・インスタンスに入力
するようにされる。
コミット(Coaunit) コミット・メソッドにおいては、先行のワーク・ユニッ
トのレベルに対して、ワーク・ユニット・インスタンス
の現在のレベルによって指示されてい現在のワーク・ユ
ニットのレベル内でなされる変化を適用させる。ワーク
・ユニットのレベルが1であるときにはコミットが実行
されて、物理的な更新およびデータベースのコミットが
もたらされる。正しくコミットするワーク・ユニット・
インスタンスにより、各データ要素の更新が正しいもの
であったことを確実にする。
ロールパック(Ro l Iback)ロールバック・
メソッドにおいては、ワーク・ユニット・インスタンス
の現在のレベルにより指示されている現在のワーク・ユ
ニットのレベル内でなされる変化を無効として、先のワ
ーク・ユニットのレベルに制御を戻す。データベースの
動作が正しくなかったときには、該ワーク・ユニットの
レベルは“コミット不能(un−commitLabl
e)” と考えられる。データベースはロールバックさ
れて、全てのデータ・オブジェクトが、メモリ内のワー
ク・ユニットのレベル1において、それらの更新された
状態で残され、データベースへのコピー操作はなされな
い。ワーク・ユニット・マネージャは、いずれのデータ
要素がデータベースの更新に失敗したこと、および、そ
の失敗の理由を指示するエラーを有するコミットを発効
させる、呼びの適用プログラムに制御を戻す。
より詳細に第8図を参照すると、新規メソッドにおいて
、適用プログラムによって特定されるオブジェクトのた
めに、新規のワーク・ユニット・インスタンス、即ち、
ワーク・ユニット・インスタンス 111を生成させる
。新規における3個の属性として含まれているものは、
このワーク・ユニット・インスタンスに対するワーク・
ユニット・インスタンスの現在のレベル、先行のワーク
−ユニット・インスタンスの識別子、いずれのワーク・
ユニット・インスタンスが新規の生成に先立って制御を
有していたかを指示する、ワーク・ユニットの先行イン
スタンスID、および、この新規に生成されたワーク・
ユニット・インスタンスが、テーブルとして、即ち、ワ
ーク・ユニット・インスタンス・オブジェクト・テーブ
ル(第7図)として表すことができることについて知っ
ているオブジェクトのリスト、である。ここで注意され
ることは、該リストのレベル1に含まれているものは、
データベース内でそれらが現れるときのオブジェクトの
コピーであり、また、ワー°り・ユニット・インスタン
スが生成されたばかりであることから、ワーク・ユニッ
ト・インスタンスの現在のレベルが1にセットされるこ
とである。新規の動作については、コミット・メソッド
およびロールパック・メソッドのための例において更に
説明する。
起動メソッドにおいては、現に活動中のワーク・ユニッ
ト・インスタンスにおける新規なワークのレベルが生成
される。各インスタンスに対するワ−り一ユニット・イ
ンスタンスの一現在のレベルにより、ワーク・ユニット
・インスタンス内のいずれのワーク・ユニットのレベル
が現に活動中であるかの通告がなされる。活動的なイン
スタンスにおけるこの現在のレベル・インジケータが具
体化される。かくして、ワーク・ユニット・インスタン
ス 11が現に活動的なワーク・ユニット・インスタン
スであるときには、現在のレベルが1であることから、
ワーク・ユニット・インスタンス11に対して、起動I
Iにより、ワーク・ユニット・マネージャをして新規な
ワーク・ユニットのレベル、即ち、レベル2を生成さ−
せる。このワーク・ユニット・インスタンス 11に対
するワーク・ユニット・インスタンスの現在のレベルは
lだけ増大する。即ち、lから2に増大する。次いで、
制御は、現在ののレベルの値とともに、起動と呼ばれる
適用プログラムに通される。この新規なレベルにより、
第9図で反映されているように、第8図に対する変化が
もたらされる。起動の動作については、コミット・メソ
ッドおよびロールバック・メソッドに対する例において
更に説明する。
通知メソッドにおいては、ワーク・ユニット・マネージ
ャに対して、データ要素が修正されるべきであるという
、適用プログラムからの指示が与えられる。活動的なワ
ーク・ユニット・インスタンスのワーク・ユニット・イ
ンスタンスの現在のレベルによって指示されたレベルが
チエツクされて、該レベルがデータのコピーを有してい
るかどうかが認められる。該活動的なワーク・ユニット
・インスタンスの現在のレベルにおいてコピーが存在し
ないときには、メモリの割り当てがなされて、当初のオ
ブジェクトのコピーがこのレベルにおいて作成される。
一つの実施で生成されるポインタは、該オブジェクトの
先のコピーを指示するようにセットされる。通知の動作
については、コミット・メソッドおよびロールバック・
メソッドの例において更に説明する。
放棄メソッドにおいては、現に活動的なワーク・ユニッ
ト・インスタンスがメモリから取り除かれる。これはオ
ブジェクト識別テーブルにおける全てのエントリを削除
することによって達成される。
前記のオブジェクト識別テーブルが有しているものは、
オブジェクト識別ナンバおよび特定のオブジェクトに対
して現に活動的なワーク・ユニット・インスタンスに関
連しているアドレスである。この特定のワーク・ユニッ
トのオブジェクトは、当初のワーク・ユニットのオブジ
ェクトにおけるオブジェクト・リストから取り除かれる
。ワーク・ユニット・インスタンス・オブジェクト・チ
ーフルもメモリから取り除かれる。放棄メモリの動作お
よび実施については、コミット・メソッドおよびロール
バック・メソッドの例において更に説明する。
切り換えメソッドにおいては、現に活動的なワーク・ユ
ニット・インスタンスから、先に定義されたワーク・ユ
ニット・インスタンスに対して、制御の変化が許容され
る。このメソッドで付与される次の3個の属性は、切り
換えメソッドを用いるワーク・ユニット・インスタンス
の各々と関連している。即ち、ワーク・ユニット・イン
スタンスの現在のレベル、どれが先のワ、−り・ユニッ
ト・インスタンスであるかのインジケータ、即ち、ワー
ク・ユニットの先行インスタンスID、および、現に活
動的なワーク・ユ゛ニット・インスタンスがどれである
かが知られるオブジェクトのリスト、即ち、ワーク・ユ
ニット・インスタンス・オブジェクト・テーブルである
。ここで注意されることは、あるインスタンスの現に活
動的なレベルに対してのみ切り換えがなされて、インス
タンスの先行のレベルにはなされないということである
ここで第1O図を参照しながら、この発明の切り換えメ
ソッドについて更に説明する。この第10図において、
ワーク・ユニット・インスタンスとしてのUOf I、
110111およびUOIIIIには1個または複数個
のオブジェクトが含まれており、また、各ワーク・ユニ
ット・インスタンスには1個のワーク・ユニットのレベ
ルよりも大きいものを含ませることができると理解され
る。最右端のインスタンスであるUOIIIIは、現に
活動的なインスタンスである。新規のワーク・ユニット
・インスタンスおよび先行のワーク・ユニット・インス
タンスに対する参照値が維持されている。適用プログラ
ムが、例えばワーク・ユニット・インスタンスUOV 
+に対する切り換えを実行するときには、ワーク・ユニ
ット・インスタンスUOIIII+に対する先行の活動
的なインスタンスのポインタが、ワーク・ユニット・イ
ンスタンス001 +に対する先行の活動的なポインタ
に対してセットされる。即ち、ヌル(null)にされ
る。また、ワーク・ユニット・インスタンスUO胃11
こ対する先行の活動的なポインタは現に活動的なインス
タンスにセットされる。即ち、ワーク・ユニット・イン
スタンス001 II+に指示される。そして、現に活
動的なインスタンスはワーク・ユニット・インスタンス
 UO胃Iにセットされる。ワーク・ユニット・インス
タンスUOI II+ オよヒUOT Iに対する新規
なポインタは、それぞれに、ワーク・ユニット・インス
タンス UOY lにセットされ、またヌル(null
)になる。かくして、第11図を参照すると、ワーク・
ユニット・インスタンスUOY Iは、そのリスト内の
現在の位置から該リストの最後の位置にまで動かされて
、先行のワークのインスタンスに対するポインタが調節
され、tlOY lによる先行のインスタンスのポイン
タがUOYII+を指示し、また、UOIII II+
による先行のインスタンスのポインタがUOY Iを指
示するようにされる。
次に、適用プログラムにより放棄Aが実行されたときに
は、ワーク・ユニット・インスタンスUOW +が現に
活動的であることを指示するインデイケータは、該ワー
ク・ユニット−インスタンスυOf lの先行のインス
タンスのポインタが指示するような、即ち、ワーク・ユ
ニット・インスタンス001 Il+を指示するような
調節がなされるべきことを指示する。ワーク・ユニット
・インスタンス UOY II+に対する新規なポイン
タはヌルに〜される。ワーク・ユニット・インスタンス
 UOW lに対するオブジェクト識別テーブルにおけ
る全てのエントリは削除される。かくして、ワーク・ユ
ニット・インスタンスUOT II+は現に活動的なイ
ンスタンスである。この放棄メソッドの結果は第12図
に描かれている。
ワーク・ユニット・メソッドの詳細な説明この発明のコ
ミット・メソッドおよびロールバック・メソッドの動作
を完全に説明するために、これらのメソッドの動作を4
個の例について説明する。その他の5個のメソッドの動
作については、即ち、新規(New)、起動(Star
t)、通知(Notify)、放棄(Discard)
および切り換え(Switch)の動作については、こ
れらの例の一部として現れる。例1で説明する動作は、
各レベルの終端においてコミットするワーク・ユニット
・インスタンス内の2個のワーク・ユニットのレベルに
おける、オブジェクトAおよびオブジェクトBに対する
修正メソッドの動作である。例2で説明する動作は、正
しい完了をせず、従って、レベルの終端においてロール
バックする、ワーク蟲ユニット・インスタンス内の2個
のワーク・ユニットのレベルにおける、オブジェクトA
およびオブジェクトBに対する修正メソッドの動作であ
る。例3で説明する動作は、内側のレベルはエラーをと
もなって完了してロールバックされ、また、外側のレベ
ルは正しく完了してコミットされたときの、ワーク・ユ
ニット・インスタンス内の2個のワーク・ユニットのレ
ベルにおける、オブジェクトAおよびオブジェクトBに
対する修正メソッドの動作である。例4で説明する動作
は、内側のレベルは正しく完了してコミットし、また、
外側のレベルは正しく完了せずにロールバックするとき
の、ワーク・ユニット・インスタンス内の2個のワーク
・ユニットのレベルにおける、オブジェクトAおよびオ
ブジェクトBに対する修正メソッドの動作である。
全ての例において、“データベース”なる用語は、不揮
発性のデータ蓄積デバイスを参照するために使用される
。“RAM”および“メモリ”なる用語は、揮発性のデ
ータ蓄積デバイスを参照するために使用される。
各側に対して、2個のデータ・オブジェクトである、オ
ブジェクトAおよびオブジェクトBが存在するものとす
る。双方のオブジェクトの属性は各側の開始時に初期化
される。
オブジェクトAは数値的な属性を有しており、この属性
は、物理的なデータベースに蓄積されていて、値100
を有するフィールドXと呼ばれるものである。
オブジェクトBは長さ3のキャラクタ・アレイの属性を
有しており、この属性は、データベースに蓄積されてい
て、値″ABC”を有するフィールドYと呼ばれるもの
である。
例1・・コミット−コミット この例においては、オブジェクトAおよびオブジェクト
Bは2個のワーク・ユニット内で修正されており、その
一方は、ある一つのワーク・ユニット・インスタンス内
の他方の内部でネストされている。ここでの修正メソッ
ドは、この発明によるワーク・ユニット・メソッドを用
いて実行される。
この例示の目的のために、ワーク・ユニットのレベルの
各々は正しく完了して、その端部においてコミットする
ようにされる。コミット・メソッドは、各ワーク・ユニ
ットのレベルの端部において用いられる。この例は第1
3図において表すことができる。
ワーク・ユニットのメソッドの動作は既に定義されてい
るように生起するものであるが、ここではコミット・メ
ソッドについて説明をしていく。
高レベルのプログラムにおいて、ワーク・ユニット・イ
ンスタンスの開始が決定される。ワーク・ユニットの新
規メソッドが呼び出される。新規メソッドでは、次のワ
ーク・ユニット・インスタンスが割り当てられ、その扱
い(固有のワーク・ユニット・インスタンスm 利子)
を高レベルのルーチンに戻して通過させる。このワーク
・ユニット。
インスタンス内の全てのデータは新規に生成されたもの
、または選択されたものである。このインスタンスに対
する現在のレベル・カウンタ(ワーク・ユニット・イン
スタンスの現在のレベル)カ宣言されて、1にセットさ
れる。先行のインスタンス・カウンタ(ワーク・ユニッ
トの先行インスタンスID)が宣言されて、制御をして
いた先行のワーク・ユニット・インスタンスの参照値に
セットされる。
次いで、高レベルのルーチンで、ワーク・ユニットの制
御を必要とする動作の開始が決定される。
このルーチンでは、ワークの新規なレベルを生成させる
ために、ワーク・ユニットの起動メソッドが呼び出され
る。ワーク・ユニットの起動ルーチンにおいては、活動
的なワーク・ユニット・インスタンスに対するレベル噌
カウンタ(ワーク・ユニット・インスタンスの現在のレ
ベル)を2に増大させる。起動ルーチンでは、それを呼
ぶもの(its caller)に制御を戻して、ワー
ク・ユニットの現在のレベル値、即ちレベル2を戻して
通過させる。
高レベルのルーチンにおいては、次いで、オブジェクト
Aに対する修正Aルーチンを呼び出す。
データの修正を探索し、オブジェクト識別テーブルから
得られた当該オブジェクトAの識別を通過させることか
ら、修正Aルーチンでは、ワーク・ユニットの通知ルー
チンを呼び出す。ワーク・ユニット通知ルーチンでは、
ワーク・ユニット・インスタンス・オブジェクト・テー
ブルのチエツクをして、オブジェクトAのコピーが現在
のワーク・ユニットのレベル(ワーク・ユニット・イン
スタンスの現在のレベル)に存在するかどうか、即ちレ
ベル2であるかどうかを認めるようにされる。
オブジェクトAがワーク・ユニットのレベルAにはない
ことから、ワーク・ユニットの通知ルーチンにより、適
切なサイズにされたメモリのブロックが割り当てられて
、現在のデータ・バージョンがこのブロックにコピーさ
れる。このプロ、りのアドレスまたは0REFが、レベ
ル2において、」ブジェクトAに対するワーク・ユニッ
ト・インスタンス・オブジェクト・テーブルに蓄積され
る。
ワーク・ユニット通知ルーチンは、修正Aルーチンに制
御を戻す。
次いで、修正Aルーチンにおいては、データを修正する
タスクが開始される。例えば、フィールドXが50に等
しくセットされる。概念的にいえば、データベースおよ
びメモリは、第14図において表されているように見る
ことができる。修正Aがその作業を完了したときには、
高レベルのルーチンの呼び出しに制御が戻される。
次に、高レベルのルーチンにより、ワーク・ユニットの
起動ルーチンを呼び出して、別のネストされているワー
ク・ユニットのレベルを始めることが所望されているこ
とを指示する。ワーク・ユニットの起動ルーチンにおい
ては、現に活動的なワーク・ユニット・インスタンスに
対する活動的なレベル・カウンタ(ワーク・ユニット・
インスタンスの現在のレベル)を3に増大させる。起動
ルーチンでは、それを呼ぶもの(its caller
)に制御を戻して、活動的なワーク・ユニット・インス
タンスのレベル値、即ち3を戻して通過させる。
次に、高いレベルのルーチンにより、第13図に描かれ
ているように、オブジェクトAに対する修正Aルーチン
が呼び出される。当該データの修正することを探索して
いることから、修正Aルーチンにおいては、ワーク・ユ
ニットの通知ルーチンが呼び出される。修正ルーチンに
より、通知するための、オブジェクト識別テーブルから
得られたオブジェクトAを通過させる。通知ルーチンで
は、ワーク・ユニット・インスタンス・オブジェクト・
テーブルのチエツクをして、オブジェクトAのコピーが
現在のワーク・ユニットのレベルに存在するかどうかを
認めるようにする。オブジェクトAが現在のワーク・ユ
ニットのレベル(ワーク・ユニット・インスタンスの現
在のレベル)には存在しないことから、即ちレベル3に
は存在しないことから、通知ルーチンにおいて、適切な
サイズにされたメモリのブロックを割り当て、オブジェ
クトAの現在のバージョンをこのブロックにコピーさせ
る。このブロックのア、ドレスは、レベル3において、
オブジェクト八に対するワーク・ユニット・インスタン
ス・オブジェクト・テーブル内にロードされる。ワーク
・ユニット通知ルーチンは、修正Aルーチンに対して制
御を戻す。
次の修正Aルーチンにおいては、オブジェクトAを修正
するタスクの開始をする。例えば、フィールドXが25
に等しくセットされる。概念的には、データベースおよ
びモメリは、第15図に例示されているようなものとし
て見ることができる。
修正Aでそのタスクが完了したときには、高レベルのル
ーチンの呼び出しに制御が戻される。
高レベルのルーチンでは、これに次いで、オブジェクト
Bに対する修正Bルーチンが呼び出される。第13図の
修正Bルーチンにおいては、オブジェクトBを修正する
ことが探索されていることから、ワーク・ユニット通知
ルーチンが呼び出される。修正においては、通知をする
ために、オブジェクト識別テーブルから得られたオブジ
ェクトBの識別を通過させる。ワーク・ユニット通知ル
ーチンでは、ワーク・ユニット・インスタンス・オブジ
ェクト・テーブルをチエツクして、オブジェクトBのコ
ピーが現在のワーク・レベル(ワーク・ユニット・イン
スタンスの現在のレベル)にあるかどうかを認めるよう
にする。即ち、レベル3にあるかどうかを認めるように
する。オブジェクトBが現在のワーク・ユニットのレベ
ルにはないことから、即ち、レベル3にはないことから
、通知ルーチンにおいて、適切なサイズにされたメモリ
のブロックが割り当てられる。し゛レベル3において、
レベル1からのオブジェクトBの現在のバージョンがこ
のブロックにコピーされる。レベル3におけるオブジェ
クトBのコピーの存在およびその場所を反映させるため
に、ワーク・ユニット・インスタンス・オブジェクト・
テーブルが更新される。
ワーク・ユニット通知ルーチンでは、[EBポル−ンに
対して制御を戻す。
次の修正Bルーチンにおいては、オブジェクトBを修正
するタスクの開始をする。例えば、フィールドYが“D
EF”に等しくセットされる。概念的には、データベー
スおよびモメリは、第16図に例示されているようなも
のとして見ることができる。オブジェクトBに対しては
、レベル2が存在しないことが注意される。これは、現
在のレベル・カウンタ(ワークφユニット・インスタン
スの現在のレベル)が2に等しかったときに、オブジェ
クトBには取り扱いがないことの結果である。修正Bで
そのタスクが完了したときには、高レベルのルーチンの
呼び出しに制御が戻される。
高レベルのル−チンにおいては−、ワーク・ユニットの
レベル3が満足のいくように完了したことが決定されて
、ワーク・ユニット コミット・ルーチンが呼び出され
る。この例は、フミッ、トの例示をするために、正しく
完了したものとする。コミットでは、ワーク・ユニット
・インスタンス・オブジェクト・テーブルがチエツクさ
れて、現在のワーク・ユニットのレベル(ワーク・ユニ
ット・インスタンスの現在のレベル)に等しいワーク・
ユニットのレベルを有している、全てのデータのオブジ
ェクトを見出すようにされる。現在のレベルが3である
ことから、オブジェクトAおよびオブジェクトBの双方
がレベル3において見出される。
各オブジェクトのコピーが、現在のレベルに先立つレベ
ルに存在しているかどうかのチエツクがなされる。この
場合において、オブジェクトAおよびオブジェクトBの
コピーがレベル2に存在するかどうかを知るためのチエ
ツクがなされる。オブジェクトAのコピーがレベル2に
存在することから、ワーク拳ユニットーコミットールー
チンにより、レベル2におけるオブジェクトAがメモリ
から取り除かれ、レベル2で現に“活動的な”ものトシ
テ、レベル3からのオブジェクトAが設定される。かく
して、オブジェクトAでレベル2におけるワーク・ユニ
ット・インスタンス・オブジェクト・テーブルの内容は
、レベル3からのものと置換される。メモリ内でワーク
・ユニットのレベル2におけるコピーを、オブジェクト
Bが有していないことから、オブジェクトBのワーク・
ユニットのレベルが、コミットによって3から2に変更
される。かくして、オブジェクトBで、レベル3におけ
る、ワーク・ユニット・インスタンス・オブジェクト・
テーブルの内容が、レベル2に移行される。
ワーク・ユニット・コミット・ルーチンにおいては、ワ
ーク・ユニット・レベル・カウンタ(ワークφユニット
・インスタンスの現在のレベル)から1が減算される。
いま、新規なワーク・ユニットのレベルは2である。ワ
ーク・ユニット・コミット−ルーチンにより、高レベル
のルーチンに対して制御が戻される。概念的には1.−
データベースおよびモメリは、第17図に例示されてい
るようなものとして見ることができる。ここで、先行の
レベルには現在のレベルが重ねられている。
高レベルのルーチンにおいて、ワーク・ユニットのレベ
ル2が満足のいく完了がなされたことが決定されて、ワ
ーク・ユニット・コミット・ルーチンが呼び出される。
ここで注意されることは、この例は、コミットの例示を
するために、正しく完了したとされていることである。
ワーク・ユニット・コミット・ルーチンでは、ワーク・
ユニット・インスタンス・オブジェクト・テーブルがチ
エツクされて、現在のワーク・ユニットの活動的なレベ
ル(ワーク・ユニット・インスタンスの現在のレベル)
において、全てのデータのオブジェクトが存在している
ことが見出される゛。現在のレベルが2であることから
、オブジェクトAおよびオブジェクトBの双方が見出さ
れる。現在の活動的なレベルが2であるときには、デー
タベースの更新がコミットでなされるものとする。ワー
ク−ユニットのレベルノ値(ワーク・ユニット・インス
タンスの現在のレベル)が、この例では2であることか
ら、データベースの更新が、オブジェクトAおよびオブ
ジェクトBにおいて、レベル2で見出された新規なデー
タをもって、コミットでなされるものとする。次いで、
データベースに対する変更が物理的に適用されるように
、適切なデータベース質問言語コマンドが発効される。
この例の目的のために、データベースの更新は正しいも
のとする。
ここで、ワーク・ユニット・コミット・ルーチンにより
、レベル1におけるオブジェクトAおよびオブジェクト
Bがメモリから解放され、レベル2におけるオブジェク
トAおよびオブジェクトBに対するレベル・インジケー
タがレベルlにセットされ、そして、オブジェクトAお
よびオブジェクトBが現に“活動的な”ものとして設定
される。
レベルlでのオブジェクトA1および、レベル1でのオ
ブジェクトBについての、ワーク・ユニット・インスタ
ンス・オブジェクト・テーブルの内容の更新が、それぞ
れに、レベル2でのオブジェクトA、および、レベル2
でのオブジェクトBがらの内容との置換によってなされ
る。
ワーク・ユニット・コミット・ルーチンにおいて、ワー
ク・ユニットの現在のレベル・カウンタ(ワーク・ユニ
ット・インスタンスの現在のレベル)から1が減算され
る。かくして、このインスタンスに対して現に活動的な
レベル・カウンタの値は、この時点ではlである。次い
で、ワーク・ユニット・コミットφルーチンが、高レベ
ルのルーチンに戻される。概念的には、データベースお
よびモメリは、第18図に例示されているようなものと
して見ることができる。
次いで、高レベルのルーチンでは放棄が発効されて、ワ
ーク・ユニット・インスタンスが取り除かれる。かくし
て、オブジェクトAおよびオブジェクトBの識別が、メ
モリ内のオブジェクト識別テーブルから削除される。ワ
ーク・ユニットのレベル1もメモリから取り除かれる。
このワーク・ユニット・インスタンスに対するワーク・
ユニット・インスタンス・オブジェクト・テーブルが、
メモリから取り除かれる。データベースは、第18図に
描かれている状態に留まっている。これに次いで、高レ
ベルのルーチンが終端して、それを呼ぶもの(its 
caller)に戻される。
例2・・ロー)Lt Jeックーロールバ1.り第2の
例として、オブジェクトAおよびオブジェクトBが2個
のワーク・ユニットのレベル内での修正がなされる。こ
こで、その一方は他方の内部でネストされており、全体
として1個のワーク・ユニット・インスタンス内にある
ようにされる。
この例示の目的にために、各ワーク・ユニットのレベル
は完全に正しくはない。従って、各ネストの終端のとき
にロールバックが生じることになる。
この例は第9図で認められるように表すことができる。
適用プログラムにおける高レベルのルーチンにより、ワ
ーク・ユニット・インスタンスを始める決定がなされる
。ワーク・ユニットの新規(New)メソッドが呼び出
される。新規なインスタンスに対する現在のレベル・カ
ウンタ(ワーク・ユニット・インスタンスの現在のレベ
ル)が宣言されて、lに初期化される。先行のワーク・
ユニット・インスタンスのインジケータ(ワーク・ユニ
ットの先行インスタンスのID)が宣言されて、先行し
て制御を保持していたインスタンスに参照値がセットさ
れる。この新規メソッドでは、このインスタンスが知っ
ているオブジェクトを蓄積するリストの宣言もする。こ
のリストは、ワーク・ユニット・インスタンス・オブジ
ェクト・テーブルなるテーブルとして表すことができ、
異なるレベルにおいてオブジェクトのアドレスを含んで
いる。データベースからのオブジェクトは、レベル1で
テーブル(リスト)にコピーされる。新規メソッドにお
いては、次に続くワーク・ユニットの扱い(固有識別子
)を割り当て、それを高レベルのルーチンに戻して通す
ようにする。高レベルのルーチンでは、ワーク・ユニッ
トの制御を必要とする動作を始めることの決定がなされ
る。このルーチンにおいて、ワーク・ユニットの起動(
Start)ルーチンが呼び出される。起動メソッドに
おいては、この現に活動的なインスタンスにおける新規
なレベルのワークが生成される。起動メソッドでは、現
在のワーク・ユニットのレベル・カウンタが1だけ増大
される。かくして、このインスタンスにおいて現に活動
的なレベル(ワーク・ユニット・インスタンスの現在の
レベル)は2である。ワーク・ユニットの起動メソッド
は、それを呼ぶもの(itscaller)に制御を返
して、その値が2であるワーク・ユニットの現在のレベ
ル・カウンタに戻して通すようにする。
高レベルのルーチンは、次いで、第19図に表されてい
るように、オブジェクトAに対する修正Aメソッドを呼
び出す。修正Aはデータの取り扱いを探索していること
から、ワーク・ユニット通知(Notify)メソッド
を呼び出し、ワーク・ユニット・マネージャに対して、
オブジェクトAが修正されるべきであることを指示する
。修正の操作は、修正をしているオブジェクトAの識別
を通過させる。このことは、オブジェクト識別テーブル
から得られる。ワアク・ユニットの通−知メソッドでは
、ワーク・ユニット拳インスタンス・オブジェクト・テ
ーブルをチエツクして、オブジェクトAのコピーが現在
のワーク・ユニーシトのレベル(ワーク・ユニット・イ
ンスタンスの現在のレベル)に存在するかどうかを知る
ようにされる。オブジェクトAはこのインスタンスに対
する現在のワーク・ユニットのレベル、即ち、レベル2
には存在しないことから、通知メソッドにおいて、適切
なサイズにされたメモリのブロックが割り当てられる。
通知メモリでは、これに次いで、オブジェクトへの現在
のバージョンを、レベル】からレベル2におけるこのブ
ロックにコピーさせる。オブジェクトAのレベル2にお
けるワーク・ユニット・インスタンス・オブジェクト・
テーブルには、このブロックのアドレスがロードされる
。ワーク・ユニット通知ルーチンは、修正Aのルーチン
に制御を戻す。
次いで、修正Aのメソッドによりデータの修正がなされ
る。例えば、フィールドXは50に等しくセットされる
。概念的にいえば、データベースおよびメモリは第14
図に例示さ−れているように表されることができる。修
正へでのデータの修正操作が完了したときには、高レベ
ルのルー□チンを呼び出すことに制御が戻される。
高レベルのルーチンは、次に、ワーク・ユニットの起動
メソッドを呼び出して、別のネストされているワーク・
ユニット・インスタンスの開始を所望していることを指
示する。起動においては、現在のワーク・ユニット・イ
ンスタンスの新規なワークのレベルが生成される。ワー
ク・ユニットの起動メソッドにより、このインスタンス
に対する現在のレベルのカウンタ(ワーク・ユニット・
インスタンスの現在のレベル)が3に増大される。
起動メソッドは、それを呼ぶもの(its calle
r)に制御を返して、その値が3であるワーク・ユニッ
トの現在のレベル・カウンタに戻して通すようにする。
これに次いで、高レベルのルーチンでは、オブジェクト
Aに対する修正Aのメソッドを呼び出す。
修正Aではワーク・ユニット・ルーチンを呼び出して、
オブジェクトAの識別を通、遇させる。オブジェクト識
別テーブルからオブジェクトへの識別が得られて、それ
を通知に通すようにされる。ワーク・ユニットの通知メ
ソッドでは、ワーク・ユニット・インスタンス・オブジ
ェクト・テーブルのチエツクをして、オブジェクトAの
コピーが現在ノワーク・ユニットのレベル(ワーク・ユ
ニット・インスタンスの現在のレベル)、即ちレベル3
に存在するかどうかを見るようにする。レベル3におけ
るオブジェクトAのためのエントリ(アドレス)がワー
ク・ユニット・インスタンスやテーブル内に存在するか
どうかにより、これの決定がなされる。オブジェクトA
は現在のワーク・ユニットのレベル(ワーク・ユニ・7
ト・インスタンスの現在のレベル)には存在しないこと
から、通知により、適切なサイズにされたメモリのブロ
ックが割り当てられる。レベル2からのオブジェクトA
の現在のバージョンは、レベル3においてこのブロック
にコピーされる。このブロックのアドレスは、レベル3
のオブジェクトAにおいて、ワーク・ユニット・インス
タンス・−オブジェクト・テーブルにロードされる。ワ
ーク・ユニットの通知メソッドは、修正Aのメソッドに
制御を戻す。
次に、修正へによりオブジェクトΔが修正される。例え
ば、フィールドXは25にセットされる。
概念的にいえば、データベースおよびメモリは第15図
に例示されているように表されることができる。修正A
がそのタスクを完了したときには、高レベルのルーチン
の呼び出しに制御が戻される。
高レベルのルーチンは、次いで、オブジェクトBに対す
る修正Bのメソッドを呼び出す。ワーク・ユニット・マ
ネージャに対して、オブジェクトBが修正されるべきで
あることを指示するために、修正Bはワーク・ユニット
通知メソッドを呼び出す。修正では、オブジェクトBの
識別をオブジェクト識別テーブルから取り出して、それ
を通知に通すようにする。ワーク・ユニットの通知メソ
ッドでは、ワーク・ユニット・インスタンス・オブジェ
クト・テーブルのチエツクをして、オブジェクトBのコ
ピーが現在のワーク・ユニットのレベル(ワーク・ユニ
ット・インスタンスの現在のレベル)、即ちレベル3に
存在するかどうかを見るようにする。オブジェクトBは
現在のワーク・ユニットのレベル(ワーク・ユニット・
インスタンスの現在のレベル)には存在しないことから
、通知により、適切なサイズにされたメモリのブロック
が割り当てられる。現在のバージョン、即ちレベルlか
らのパージロンが、通知によって、レベル3においてこ
のブロックにコピーされる。このブロックのアドレスは
、レベル3のオブジェクトB長おいて、ワーク・ユニッ
ト・インスタンス・オブジェクト・テーブルにロードさ
れる。ワーク・ユニットの通知メソッドは修正Bのメソ
ッドに戻される。
次に、修正BによりオブジェクトBが修正される。例え
ば、フィールドXはDEF”にセットされる。概念的に
いえば、データベースおよびメモリは第16図に例示さ
れているように表されることができる。修正Bがそのタ
スクを完了したときには、高レベルのルーチンの呼び出
しに制御が戻される。
高レベルのルーチンにおいては、ワーク・ユニットのレ
ベル3が不満足な状態で完了したことが決定されて、ワ
ーク・ユニット・ロールバック・ルーチンが呼び出され
る。ロールバックを例示するために、不満足な状態での
完了が仮定されたことが注意される。ワーク・ユニット
のロールバック・ルーチンにおいては、ワーク争ユニッ
ト・インスタンスの現在のレベル、即ちレベル3に、全
てのデータ・オブジェクトが現に存在することが見出さ
れる。これが達成されるのは、ワーク・ユニット・イン
スタンス・オブジェクト雫テーブルにおいて、このレベ
ルでのエントリを有する全てのオブジェクトを見出すこ
とによる。この例において、オブジェクトAおよびオブ
ジェクトBの双方は、レベル3に等しいレベル・インジ
ケータを有している。
該オブジェクトのコピーが現在のレベルを下回るレベル
1に存在するときには、該現在のレベルは削除されて、
この下回っているレベルが現に活動的なものになる。現
在のレベルを下回るレベルにコピーが存在しないときに
は、該現在のレベルは削除されて、これに続けて低(存
在するコピーが現に活動的なものになる。オブジェクト
Aはワーク・ユニットのレベル2におけるメモリ内にそ
のコピーを有していることから、ワーク・ユニットのロ
ールバック・メソッドにより、レベル3におけるオブジ
ェクト八に対するメモリが解放されて、レベル2におけ
るオブジェクトAが現に“活動的な”ものとして設定さ
れる。かくして、オブジェクトAのレベル3におけるワ
ーク・ユニット・インスタンス・オブジェクト・テーブ
ル内のエントリが削除される。オブジェクトBはワーク
・ユニットのレベル2におけるメモリ内にコピーを有し
”Cいないことから、ロールバック・メソッドにより、
レベル3におけるオブジェクトBからメモリが解放され
て、レベル1におけるオブジェクトBが現に“活動的な
”ものとして設定される。かくして、オブジェクトBの
レベル3におけるワーク・ユニット・インスタンス・オ
ブジェクト・テーブル内のエントリが削除される。
次いで、ロールバックにより、ワーク・ユニットの現在
のレベル・カウンタ(ワーク・ユニット・インスタンス
の現在のレベル)から1が減算される。これで、新規な
現在のワーク・ユニットのレベルは2になる。ワーク・
ユニットのロールバック・メソッドにより、高レベルの
ルーチンに対して制御が戻される。概念的には、データ
ベースおよびメモリは、第20図に例示されているよう
に表すことができる。
高レベルのルーチンでは、ワーク・ユニットのレベル2
が不満足な状態で完了したことが決定され、これに従っ
て、ワーク・ユニットのロールバック・ルーチンが呼び
出される。ロールバックの例示をするために、不満足な
状態での完了が仮定されたことが注意される。ワーク・
ユニットのロールバック・ルーチンでは、このインスタ
ンスに対して、即ちレベル2に対して、全てのデータの
オブジェクトが、現在のワーク・ユニットのレベル(ワ
ーク・ユニット・インスタンスの現在のレベル)に存在
することが見出される。−このことは、レベル2でのエ
ントリを有する、ワーク・ユニット・インスタンス・オ
ブジェクト・テーブルにおける全てのオブジェクトを見
出すことによっ°C決定される。この例においては、オ
ブジェクトAだけがレベル2に存在している。ロールバ
ックの動作と両立して、レベル2でのオブジェクトAに
対するメモリが解放され、レベル1でのオブジェクト八
が活動的なものにされる。かくして、レベル2でのオブ
ジェクトAに対する、ワーク・ユニット・インスタンス
・オブジェクト・テーブルにおけるエントリが削除され
る。その活動的なレベルが1であることから、オブジェ
クトBについては何も生じない。即ち、レベル2でのオ
ブジェクトBに対するワーク・ユニット・インスタンス
・オブジェクト・テーブルには、エントリが存在しない
。次いで、ロールパックにより、このインスタンスに対
するワーク・ユニット・インスタンスの現在のレベルか
ら1が減算される。かくして、現在のワーク・ユニット
のレベルはlである。次に、ワーク・ユニットのロール
バ・ツク・ルーチンは高レベルのルーチンに戻される。
概念的には、データベースおよびメモリは、第21図に
例示されているように表すことができる。
これに次いで、高レベルのルーチンにより放棄(Dis
card)が発効されて、ワーク・ユニット・インスタ
ンスが取り除かれる。オブジェクトおよびそれらの属性
が、全てのテーブルを含むメモリから削除される。従っ
て、データベースだけが第21図のように留まることに
なる。更に、このロールパックの結果として、該データ
ベースには変更がない。次に、高レベルのルーチンが終
端して、それを呼ぶもの(its caller)に制
御が戻される。
例3・・ロールパック−コミット 第3の例として、オブジェクトΔおよびオブジェクトB
が2個のワーク・ユニットのレベル内での修正を受ける
が、該レベルの一方は他方のそれの中でネストされてお
り、1個のワーク・ユニットのインスタンス内にあるも
のである。例示の目的のために、ワーク・ユニットの内
側のレベルはエラーを生じて、ロールパックをも、って
完了するようにされる。外側のレベルは正しく完了して
、その端部においてコミットするようにされる。この例
は、第22図に描かれているように、グラフ的な表現が
可能である。
そのフレームの設定については、例1および例2と同様
であって、第14図ないし第16図に例示されている。
従って、ここでは反復した説明はシナい。フレームのレ
ベルが一旦設定されると、第16図に示されているよう
に、それらの例示をすることができる。
高レベルのルーチンでは、ワーク・ユニットのレベル3
が不満足な状態で完了したことが決定される。ロールパ
ックの例示をするために、不満足な状態での完了が仮定
されたことが注意される。
これに従って、高レベルのルーチンでは、ワーク・ユニ
ットのロールパック・メソッドが呼び出される。ワーク
・ユニットのロールパック・メソッドでは、全てのデー
タのオブジェクトが、現在のワーク・ユニットのレベル
(ワーク・ユニット・インスタンスの現在のレベル)、
即ちレベル3に存在することが見出される。このことは
、レベル3でのエントリを有する、ワーク・ユニット・
インスタンス・オブジェクト・テーブルにおける全ての
オブジェクトを見出すことによって決定される。
第16図に例示されているように、オブジェクトAおよ
びオブジェクトBの双方が有するワーク・ユニットのレ
ベル・インジケータは3に等しい。
各オブジェクトに対して現在のレベルを下回るレベルに
ある全てのデータのオブジェクトは、それらの状態を維
持するようにされる。現在の活動的なレベルにある全て
のデータのオブジェクトは削除される。このことは、レ
ベル3におけるワーク・ユニット・インスタンス・オブ
ジェクト・テーブル内の全てのエントリを削除すること
によって達成される。このインスタンスに対するワーク
・ユニット・インスタンスの現在のレベルは、1だけ減
少される。オブジェクトAはワーク・ユニットのレベル
2において、メモリ内にコピーを有していることから、
ワーク・ユニットのロールパック・メソッドにより、レ
ベル3におけるオブジェクトAに対するメモリが解放さ
れて、レベル2におけるオブジェクトAが現在の“活動
的な“ものとして達成される。オブジェクトBはワーク
・ユニットのレベル2において、メモリ内にコピーを有
していることから、ワーク・ユニットのロールパック・
メソッドにより、レベル3におけるオブジェクトBに対
するメモリが解放されて、レベル1におけるオブジェク
トBが現在の“活動的な”ものとして達成される。オブ
ジェクトBはレベル2には存在せず、このために、レベ
ル2ではオブジェクトBに対して何も生じないことが注
意される。
ロールパックにより、このインスタンスに対スるワーク
・ユニット・インスタンスの現在のレベルから1が減算
される。いまは、現在のワーク・ユニット・インスタン
スのレベルは2ということになる。ワーク・ユニットの
ロールバック・メソッドにより、高レベルのメソッドに
対して制御が戻される。概念的には、データベースおよ
びメモリは、第23図で例示されているように表すこと
ができる。
高レベルのルーチンでは、ワーク・ユニットのレベル2
が満足な状態で完了したことが決定されるで、ワーク・
ユニットのコミット・メソッドが呼び出される。コミッ
トの例示をするために、これの仮定がされたことに注意
される。ワーク・ユニットのコミット・ルーチンでは、
全てのデータのオブジェクトが、このインスタンスに対
して、現在のワーク・ユニットのレベル(ワーク・ユニ
ト・インスタンスの現在のレベル)、即ちレベル2に存
在することが見出される。このことは、レベル2でのエ
ントリを有する、ワーク・ユニット・インスタンス・オ
ブジェクト・テーブルにおける全てのオブジェクトを見
出すことによって達成される。現に活動的なレベルが2
であることから、コミットにより、データベースの更新
が試行される。ワーク・ユニットのコミット・メソッド
によれば、オブジェクトAにおいて見出された新規なデ
ータをもって、該データベースの更新が試行される。こ
れに次いで、適切なデータベースの質問言語が発効され
”C1該データベースに対する変更が物理的に加わるよ
うにされる。この例での目的のために、該データベース
の更新は正しいものと仮定する。
ワーク・ユニットのコミット・メソッドによれば、レベ
ル2におけるオブジェクトAをレベル1におけるオブジ
ェクトへの上でのコピーがなされて、レベル1における
オブジェクトAに対するメモリが解放され、そして、オ
ブジェクトAに対するレベルが現在の活動的なものとし
て達成される。
このことは、レベル1のオブジェクトAにおける’7−
り・ユニット・インスタンス・オブジェクト・テーブル
内でのエントリを、レベル2のオブジェクトAからのも
のと置換することによって達成される。ワーク・ユニッ
トのコミット・ルーチンにより、このインスタンスに対
するワーク・ユニ、。
ト・インスタンスの現在のレベルから1が減算される。
いまは、このカウンタは1に等しくされている。次いで
、ワーク・ユニットのコミット・ルーチンにより、高レ
ベルのルーチンに対して制御が戻される。概念的には、
データベースおよびメモリは、第24図で例示されてい
るように表すことができる。
次ニ、高レベルのルーチンにより放”J= (D i 
s c a r d )が発効されて、ワーク・ユニッ
トのインスタンスが取り除かれる。かくして、オブジェ
クトAおよびオブジェクトBの識別が、メモリ内のオブ
ジェクト識別テーブルから削除される。該オブジェクト
、即ら、レベル1におけるオブジェクトAおよびオブジ
ェクトBもメモリから取り除かれる。ワーク・ユニット
・インスタンス・オブジェクト・テーブルが削除される
。データベースは更新されて、第24図で例示されてい
る状態に留まっている。そして、高レベルのルーチンが
終端して、それを呼ぶもの(its caller)に
制御が戻るようにされる。
例4・Φコミットーロールバック 第4の例として、オブジェクトAおよびオブジェクI−
Bが2個のワーク・ユニットのレベル内での修正を受け
るが、該レベルの一方は他方のそれの中でネストされて
おり、1個のワ、−り・ユニットのインスタンス内にあ
るものである。例示の目的のために、ワーク・ユニット
の最も内側のレベルは正しく完了して、コミットするよ
うにされる。
最も外側のレベルは正しく完了することが不可能であり
、そのために、その端部においてロールバックするよう
にされる。この例は、第2゛5図において例示されてい
るように表すことができる。
そのフレームの設定については、例1および例2と同様
であって、第14図ないし第16図に例示されている。
従って、ここでは反復した説明はしない。フレームのレ
ベルが一旦設定されると、第16図に示されているよう
に、それらの例示をすることができる。
高レベルのルーチンでは、ワーク・ユニットのレベル3
が満足な状態で完了したことが決定される。例示的な目
的のために、満足な状態で完了したこ−とが仮定されて
いる。ワーク・ユニットのコミ、ト・メソッドが呼び出
される。ワーク・ユニットのコミット・メソ・ノドでは
、全てのデータのオブジェクトが、ワーク・ユニット・
インスタンスの現在のレベル、即ちレベル3に存在する
ことが見出される。このことは、レベル3でのエントリ
を有する、ワーク・ユニツート・インスタンス・オブジ
ェクト・テーブルにおける全てのオブジェクトを見出す
ことによって達成される。現在のレベル・カウンタが3
であることから、オブジェクトAおよびオブジェクトB
の双方が見出される。コミットにより、現在のレベルに
おいて存在するオブジェクトが、該現在のレベルよりも
1だけ低いレベルに対してコピーがなされる。
ワーク・ユニットのコミット・メン・7ドによれば、レ
ベル3におけるオブジェクトAをレベル2におけるオブ
ジェクトAの上でのコピー操作がなされる。これに次い
で、コミットにより、レベル3におけるオブジェクトA
に対するメモリが解放され、そして、レベル2における
オブジェクト八が現在の“活動的な”ものとして達成さ
れる。このことは、レベル2のオブジェクトAにおける
ワーク・ユニット・インスタンス・オブジェクト・テー
ブル内でのエントリを、レベル3のオブジェクトAから
のものと置換し、レベル3のオブジェクトAにおけるも
のを削除することによって達成される。オブジェクトB
は、ワーク・ユニットのレベル2において、メモリ内に
コピーを有していないことから、コミットにより、オブ
ジェクトBのワーク・ユニットの活動的なレベルを2に
セットする。これを換言すれば、レベル2におけるオブ
ジェクトBに対するレベル・インジケータを単に2にセ
ットすることにより、レベル3におけるオブジェクトB
がレベル2にコピーされる。これが達成されるのは、レ
ベル3のオブジェクトBにおけるものに等しい、レベル
2のオブジェクトBにおけるワーク・ユニット・インス
タンス・オブジェクト・テーブルの内容をセットし、そ
して、レベル3のオブジェクトBにおけるものを削除す
ることによる。ワークφユニットのコミブト・ルーチン
においては、ワーク・ユニット・インスタンスの現在の
レベルから1が減算される。レベルが3であったことか
ら、ここでは当該レベルは2である。ワーク・ユニット
のコミーブト・ルーチンでは、高レベルのルーチンに制
御が戻される。概念的には、データベースおよびメモリ
は、第26図に例示されているように表すことができる
このコピー操作の結果は、代替的な態様で達成させるこ
とができる。これと同じ結果への到達は、レベル3にお
けるオブジェクト八に対するポインタを、レベル2にお
けるオブジェクトAに対するポインタの値にセットする
ことにより、即ち、レベル1におけるオブジェクトAを
指示することによりなされる。レベル3におけるオブジ
ェクトBに対するレベル・カウンタはレベル2に変更さ
れる。オブジェクトAおよびレベル2におけるその属性
に対するメモリの解放がなされる。
高レベルのルーチンでは、ワーク・ユニットのレベル2
が不満足な状態で完了し、そして、ワーク・ユニットの
ロールパック・メソッドの呼び出しがなされる。ここで
の仮定は、この例を目的としてなされたものである。ワ
ーク・ユニットのロールパック・メソッドでは、このイ
ンスタンスに対して、全てのデータのオブジェクトが、
ワーク・ユニット・インスタンスの現在のレベル、即ち
レベル2に存在することが見出される。このことは、ワ
ーク・ユニット・インスタンス・オブジェクト・テーブ
ルにおいて、レベル2でのエントリを有スる全てのオブ
ジェクトを見出すことによって達成される。現在のレベ
ル・カウンタが2であることから、オブジェクトAおよ
びオブジェクトBの双方がレベル2において見出される
ロールパック・メソッドでは、オブジェクトAおよびレ
ベル2におけるその属性に対するメモリが解放され、そ
して、レベル1におけるオブジェクトAが活動的なもの
として達成される。また、ロールパックでは、オブジェ
クトBおよびレベル2におけるその属性に対するメモリ
も解放され、そして、レベル1におけるオブジェクトI
3が活動的なものとして達成される。このことは、ワー
ク・ユニット・インスタンス・オブジェクト・テーブル
内のレベル2におけるオブジェクトAおよびオブジェク
トBに対するエントリを削除することによって達成され
る。ワーク・ユニ、−ブトのロールパック・メソッドで
は、これに次いで、このインスタンスに対するワーク・
ユニット・インスタンスの現在のレベルから1が減算さ
れる。現在のレベル・カウンタが2であったことから、
該当のレベルはいまは1である。次に、ワーク・ユニッ
トのロールパック・メソッドにより、高レベルのルーチ
ンに対して制御が戻される。概念的には、データベース
およびメモリは、第27図に例示されているように表す
ことができる。
これに次いで、高レベルのルーチンにより放棄(Dis
card)が発効されて、現に活動的なワーク・ユニッ
ト・インスタンスがメモリから取り除かれる。オブジェ
クトAおよびオブジェクトBに対するこの現に活動的な
インスタンスに関して、オブジェクト識別ナンバおよび
関連のアドレスを含んでいる、オブジェクトMa別テー
ブル内の全てのエントリが削除される。このワーク・ユ
ニット・インスタンスに対するワーク・ユニット・イン
スタンス・オブジェクト・テーブルも削除される。この
特定のワーク・ユニットのインスタンスは、それがある
オブジェクトそれ自体であるときには、当初のワーク・
ユニットのオブジェクト・リストにおけるオブジェクト
のリストから取り除かれる。
即ち、呼びを出している(cal ling)ワーク・
ユニット(ペアレント)のオブジェク!・・リストにお
けるオブジェクトのリストから取り除かれる。
この例の結果として、データベースは変更されずに留ま
るものであり、第27図に例示されているように表すこ
とができる。放棄がなされた後では、レベル1における
メモリ内でのオブジェクトAおよびオブジェクトBは存
在しないことが注意される。この例では、放棄がなされ
た後では、データベースだけが存在する。これに次いで
、高レベルのルーチンが終端して、それを呼んでいるも
の(its caller)に制御が戻される。
F1発明の効果 この発明で提供される改善されたデータベース管理シス
テムによれば、その完了に先立つタスクの失敗に拘わら
ず、該データベースにおけるデータの一貫性が保持され
る。
【図面の簡単な説明】
第1図は、オブジェクトの概略的な表現の例示図である
。 第2図は、例示的なオブジェクトの概略的な表現の例示
図である。 第3図は、オブジェクトの継承特性の例示図である。 第4図は、この発明によるオブジェクト指向型のコンピ
ュータ・システムを例示する概略的なブロック図である
。 第5図は、この発明によるオブジェクト指向型のプログ
ラムを例示する概略的なブロック図である。 第6図は、多くのオブジェクトおよび多くのワーク・ユ
ニットのレベルを含んでいる、この発明によるワーク・
ユニットのインスタンスの概略的な表現の例示図である
。 第7図は、この発明によるワーク・ユニ1トのインスタ
ンスに対するオブジェクト・テーブルの概略的な表現の
例示図である。 第8図は、この発明による多くのワーク・ユニットのイ
ンスタンスの例示図である。 第9図は、この発明による新規なレベルの起動の後での
、多くのワーク・ユニットのインスタンスの例示図であ
る。 第10図ないし第12図は、切り換えメソッドおよび放
棄メン・7ドの実施の前後における、この発明によるワ
ーク・ユニットの例示図である。 第13図は、この発明の第1の例において実施される動
作についての概略的な例示図である。 第14図ないし第16図は、この発明によるワーク・ユ
ニットのレベルの設定の間の、メモリおよびデータベー
スにおけるオブジェクトの例示図である。 第17図および第18図は、この発明の第1の例の間の
、メモリおよびデータベースにおけるオブジェクトの例
示図である。 第19図は、この発明の第2の例において実施される動
作についての概略的な例示図である。 第20図および第21図は、この発明の第2の例の間の
、メモリおよびデータベースにおけるオブジェクトの例
示図である。 第22図は、この発明の第3の例において実施される動
作についての概略的な例示図である。 第23図および第24図は、この発明の第3の例の間の
、メモリおよびデータベースにおけるオブジェクトの例
示図である。 第25図は、この発明の第4の例において実施される動
作についての概略的な例示図である。 第26図および第27図は、この発明の第4の例の間の
、メモリおよびデータさ一スにおけるオブジェクトの例
示図である。 第4図において: 10はオブジェクト指向型のコンピュータ・システム、 11はデータ・ブロモ・ノサ、 12はオブジェクト指向型のプログラム、13は揮発性
のデータ蓄積デバイス(RAM)、14は不揮発性のデ
ータ蓄積デバイス(DASD)、 15はデイスプレィ・ターミナル、 第5図において: 51はメツセンジャ、 52はオブジェクト管理テーブル、 53はロード・クラス・テーブル、 54はメソッドA1 55はメソッドB1 56はデータ・フレーム。 第1@ 第6図 第2図 第4図 第6図 第5図 オブジェクト オ ブジェクトオ ブ ジェクト 1@7図 ワーク・ユニット・インスタンス! ワーク・ニット・インスタンス1 ワーク・ユニット・インスタンス1 ワーク・ユニット・インスタンス1 ワーク・ユニット・インスタンス! ワーク・ユニット・インスタンス■ 第9図 メモリ データベース 第14図 M2O図 第11図 第12図 データベース 第15囚 データベース 第16図 起動 ロールバック 第19図 メモリ データベース 第20図 データベース データベース Ill I 8GO−=−−++++++−++−=−
−−鴨一嘔j1111sメモリ データベース 第21図 第22図 メモリ データベース メモリ データベース 第24図

Claims (1)

  1. 【特許請求の範囲】 (1)データ蓄積デバイス; 前記データ蓄積デバイスに蓄積されたデータ要素からな
    るデータベース; 前記データ蓄積デバイスに接続されたデータ・プロセッ
    サ; 前記データ・プロセッサ内で動作するデータベース・マ
    ネージャ; を含んでなるデータベース管理装置であって: 該データベース・マネージャは、前記データベースにお
    ける複数個のタスクを実行するための動作をしており、
    前記タスクの各々は複数個のステップを含み、前記ステ
    ップの各々は前記データベースにおけるデータ要素を修
    正することができるものであって、前記データベース・
    マネージャは: 各タスクにワーク・ユニットを割り当てるための手段; 前記複数個のステップの各々にワーク・ユニット・レベ
    ルを生成させるための手段;を含んでおり: 後続するステップへの該ワーク・ユニット・レベルは、
    該後続するステップで修正されるべき、先行するワーク
    ・ユニット・レベルからのデータ要素のコピーを含み; 前記データベース・マネージャは、関連のワーク・ユニ
    ット・レベルにおけるデータ要素の修正をするために、
    前記複数個のステップの各々を制御しており; 前記複数個のステップのある1個が正しい動作をしなか
    ったときでも、前記データベースにおけるデータ要素に
    ついて、前記データベースの一貫性を維持するようにさ
    れている;前記のデータベース管理装置。 (2)前記データベース・マネージャには、タスクの最
    終のワーク・ユニット・レベルにおいて識別されるデー
    タ要素のコピーを置換するための手段が更に含まれてお
    り、前記タスクにおける全ステップが正しく完了したと
    きには、前記コピーを前記データベースにおける対応の
    データ要素のコピーに置換するようにされている、請求
    項1に記載のデータベース管理装置。 (3)前記データベース・マネージャには、タスクの第
    1のワーク・ユニットからタスクの第2のワーク・ユニ
    ットに切り換えるための手段が更に含まれている、請求
    項1に記載のデータベース管理装置。 (4)前記データベース・マネージャはオブジェクト指
    向型のデータベース・マネージャであって、前記ワーク
    ・ユニットはインスタンス(instance)・ワー
    ク・ユニットからなるものであり、ワーク・ユニット・
    レベルの各々にはオブジェクト・クラスの前記ワーク・
    ユニットのインスタンスのコピーが含まれている、請求
    項1に記載のデータベース管理装置。 (5)タスクの後続するステップに対するワーク・ユニ
    ット・インスタンスの前記コピーは、前記タスクの先行
    するステップに対するワーク・ユニット・インスタンス
    のコピー内でネストされている、請求項4に記載のデー
    タベース管理装置。 (6)該オブジェクト・クラスのワーク・ユニットに含
    まれている方法は、タスクに対する後続のワーク・ユニ
    ット・インスタンスにおけるデータ要素のコピーを、該
    タスクに対する先行のワーク・ユニット・インスタンス
    におけるデータ要素のコピーに変更するための方法、ネ
    ストされているワーク・ユニットのコピーを生成させる
    ための方法、および、第1のタスクにおけるある所定の
    ステップに対応している第1のワーク・ユニット・イン
    スタンスから、第2のタスクにおけるある所定のステッ
    プに対応している第2のワーク・ユニット・インスタン
    スに切り換えるための方法である、請求項4に記載のデ
    ータベース管理装置。 (7)該オブジェクト・クラスのワーク・ユニットには
    、ある1個のワーク・ユニット・インスタンスを放棄す
    るための方法、および、新規なタスクに対する新規なワ
    ーク・ユニット・インスタンスを生成させるための方法
    が更に含まれている、請求項6に記載のデータベース管
    理装置。 (8)前記データベース・マネージャには、第1のタス
    クのワーク・ユニット・レベルを、該第1のタスクに対
    する先行のワーク・ユニット・レベルに変更するための
    手段が更に含まれている、請求項1に記載のデータベー
    ス管理装置。 (9)前記データベース・マネージャには、ある所定の
    ワーク・ユニットを放棄するための手段が更に含まれて
    いる、請求項1に記載のデータベース管理装置。 (10)前記データベース・マネージャには、ある新規
    なタスクに対する新規なワーク・ユニットを生成させる
    ための手段が更に含まれている、請求項1に記載のデー
    タベース管理装置。 (11)前記データベース・マネージャには、直前を先
    行するワーク・ユニット・レベルまでロール・バックす
    るための手段が更に含まれている、請求項1に記載のデ
    ータベース管理装置。 (12)前記データベース・マネージャには、第1のタ
    スクにおけるワーク・ユニットから、第2のタスクにお
    けるワーク・ユニットに切り換えるための手段が更に含
    まれている、請求項1に記載のデータベース管理装置。 (13)前記データベース・マネージャには、前記デー
    タベースから選択されたデータ要素のコピーを生成させ
    ることにより、ある1個のタスクに対する第1のワーク
    ・ユニットを生成させるための手段が更に含まれている
    、請求項1に記載のデータベース管理装置。(14)デ
    ータ蓄積デバイス; 前記データ蓄積デバイスに蓄積されたデータ要素からな
    るデータベース; 前記データ蓄積デバイスに接続されたデータ・プロセッ
    サ; 前記データ・プロセッサ内で動作するデータベース・マ
    ネージャ; を含んでなるデータベース管理装置であって: 該データベース・マネージャは、前記データベースにお
    けるタスクを実行するための動作をしており、前記タス
    クの各々は複数個のステップを含み、前記ステップの各
    々は前記データベースにおけるデータ要素を修正するこ
    とができるものであって、前記データベース・マネージ
    ャは:前記タスクにワーク・ユニットを割り当てるため
    の手段; 前記複数個のステップの各々にワーク・ユニット・レベ
    ルを生成させるための手段;を含んでおり: 後続するステップへの該ワーク・ユニット・レベルは、
    該後続するステップで修正されるべき、先行するワーク
    ・ユニット・レベルからのデータ要素のコピーを含み; 前記データベース・マネージャは、関連のワーク・ユニ
    ット・レベルにおけるデータ要素の修正をするために、
    前記ステップの各々を制御しており; 前記複数個のステップのある1個が正しい動作をしなか
    ったときでも、前記データベースにおけるデータ要素に
    ついて、前記データベースの一貫性を維持するようにさ
    れている;前記のデータベース管理装置。 (15)前記データベース・マネージャには、タスクの
    最終のワーク・ユニット・レベルにおいて識別されるデ
    ータ要素のコピーを置換するための手段が更に含まれて
    おり、前記タスクにおける全ステップが正しく完了した
    ときには、前記コピーを前記データベースにおける対応
    のデータ要素のコピーに置換するようにされている、請
    求項14に記載のデータベース管理装置。 (16)前記データベース・マネージャはオブジェクト
    指向型のデータベース・マネージャであって、前記ワー
    ク・ユニットはインスタンス(instance)・ワ
    ーク・ユニットからなるものであり、ワーク・ユニット
    ・レベルの各々にはオブジェクト・クラスの前記ワーク
    ・ユニットのインスタンスのコピーが含まれている、請
    求項14に記載のデータベース管理装置。 (17)タスクの後続するステップに対するワーク・ユ
    ニット・インスタンスの前記コピーは、前記タスクの先
    行するステップに対するワーク・ユニット・インスタン
    スのコピー内でネストされている、請求項16に記載の
    データベース管理装置。 (18)該オブジェクト・クラスのワーク・ユニットに
    は、タスクに対する後続のワーク・ユニット・レベルに
    おけるデータ要素のコピーを、該タスクに対する先行の
    ワーク・ユニット・レベルにおけるデータ要素のコピー
    に変更するための方法、および、ネストされているワー
    ク・ユニット・レベルを生成させるための方法が含まれ
    ている、請求項16に記載のデータベース管理装置。 (19)前記オブジェクト・クラスのワーク・ユニット
    には、ある1個のワーク・ユニット・インスタンスを放
    棄するための方法、および、新規なタスクに対する新規
    なワーク・ユニット・インスタンスを生成させるための
    方法が更に含まれている、請求項18に記載のデータベ
    ース管理装置。 (20)前記データベース・マネージャには、前記タス
    クのワーク・ユニット・レベルを、前記タスクに対する
    ある1個のワーク・ユニット・レベルに変更するための
    手段が更に含まれている、請求項14に記載のデータベ
    ース管理装置。 (21)前記データベース・マネージャには、ある所定
    のワーク・ユニットを放棄するための手段が更に含まれ
    ている、請求項14に記載のデータベース管理装置。 (22)前記データベース・マネージャには、ある新規
    なタスクに対する新規なワーク・ユニットを生成させる
    ための手段が更に含まれている、請求項14に記載のデ
    ータベース管理装置。 (23)前記データベース・マネージャには、直前を先
    行するワーク・ユニット・レベルまでロール・バックす
    るための手段が更に含まれている、請求項14記載のデ
    ータベース管理装置。 (24)前記データベース・マネージャには、前記デー
    タベースから選択されたデータ要素のコピーを生成させ
    ることにより、ある1個のタスクに対する第1のワーク
    ・ユニットを生成させるための手段が更に含まれている
    、請求項14に記載のデータベース管理装置。 (25)データ蓄積デバイスにはデータ・プロセッサが
    接続されて、該データ・プロセッサに備えられたデータ
    ベース・マネージャはデータベースにおけるタスクを実
    行するための動作をしており、該データ蓄積デバイスに
    蓄積されているデータ要素について、該データベースの
    一貫性を維持するための方法であって: 前記データベースにおいて実行されるタスクのために選
    択されたデータベース要素のコピーを生成させるステッ
    プ; 該選択されたデータベース要素について生成されたコピ
    ーにおいて前記タスクを実行するステップ;および 前記タスクが正しく完了したときには、 該選択されたデータベース要素を、該選択されたデータ
    ベース要素について生成されたコピーをもって置換する
    ステップ; を有している前記の方法。 (26)前記生成ステップには、前記データベースにお
    いて実行されるタスクに対するワーク・ユニットを生成
    させるステップが含まれている、請求項25に記載の方
    法。 (27)前記実行ステップには、選択されたデータベー
    ス要素について生成されたコピーを修正するステップが
    含まれている、請求項25に記載の方法。 (28)前記置換ステップには、該選択されたデータベ
    ース要素について生成され、修正されたコピーをもって
    、該選択されたデータベース要素と置換するステップが
    含まれている、請求項27に記載の方法。 (29)前記タスクには一連のステップが含まれており
    、前記生成ステップには、後続のステップにおいて用い
    るために、先行のステップから選択されたデータベース
    要素のコピーを生成させるステップが含まれている、請
    求項25に記載の方法。 (30)前記置換ステップには、データベース内で選択
    されたデータベース要素を、正しく完了したタスクの最
    終のステップから選択されたデータベース要素のコピー
    をもって置換するステップが含まれている、請求項29
    に記載の方法。 (31)前記タスクにおけるステップが失敗であったと
    きには、該失敗があったステップに先立つ全ステップか
    ら選択されたデータベース要素のコピーを保管するステ
    ップが更に含まれている、請求項29に記載の方法。 (32)タスクが切り換えられたときには、該タスクに
    おいて完了したステップに対して選択されたデータベー
    ス要素のコピーを保管して、新規のステップに切り換え
    るステップが更に含まれている、請求項29に記載の方
    法。 (33)データ蓄積デバイスにはデータ・プロセッサが
    接続されて、該データ・プロセッサに備えられたオブジ
    ェクト指向型のプログラミングによるデータベース・マ
    ネージャは、データベースにおけるタスクを実行するた
    めの動作をしており、該データ蓄積デバイスに蓄積され
    ているデータ要素について、該データベースの一貫性を
    維持するための方法であって: 選択されたデータベース要素のコピーを含むオブジェク
    ト・クラスのワーク・ユニットをその属性として付与す
    るステップ; ワーク・ユニットのインスタンスには、 関連のタスクによって操作されるべきデータベース要素
    のコピーが、その属性として含まれており、前記データ
    ベースにおいて実行されるべきそれぞれのタスクに対す
    る前記ワーク・ユニットのインスタンスを生成させるス
    テップ; 関連のあるワーク・ユニットのインスタンスにおいて、
    データベース要素のコピーについてそれぞれのタスクを
    実行するステップ;およびそれぞれのタスクが正しく完
    了したときには、該選択されたデータ(ベース)要素を
    、関連のあるワーク・ユニットのインスタンスの属性に
    おけるデータベース要素と置換するステップ;を有して
    いる前記の方法。 (34)前記実行ステップには、関連のあるワーク・ユ
    ニットのインスタンスのコピーにおけるデータベース要
    素を修正するステップが含まれている、請求項33に記
    載の方法。(35)前記タスクの各々には複数個のステ
    ップが含まれ、前記生成ステップには前記タスクの各々
    に対する各ステップに対してネストされているワーク・
    ユニットのコピーを生成させるステップが含まれており
    、ネストされているワーク・ユニットのコピーの各々に
    は、関連のステップによって操作されるべきデータベー
    ス要素のコピーが含まれている、請求項33に記載の方
    法。 (36)前記置換ステップには、データベース内で選択
    されたデータベース要素を、正しく完了したタスクに対
    して最後にネストされたワーク・ユニットのコピーで置
    換するステップが含まれている、請求項33に記載の方
    法。 (37)前記タスクにおけるステップが失敗であったと
    きには、該ステップにおいて失敗があったステップに先
    立ステップに対してネストされているワーク・ユニット
    のコピーを保管するステップが更に含まれている、請求
    項35に記載の方法。 (38)第1のタスクにおけるある所定のワーク・ユニ
    ットのコピーから、第2のタスクにおけるある所定のワ
    ーク・ユニットのコピーへ切り換えるステップが更に含
    まれている、請求項35に記載の方法。 (39)前記切り換えステップは、前記第1のタスクに
    おける前記所定のワーク・ユニットのコピーに先行する
    、前記第1のタスクにおいてネストされているワーク・
    ユニットのコピーを保管するステップによって先行され
    ている、請求項38に記載の方法。 (40)オブジェクト指向型のデータベース管理装置の
    ためのワーク・ユニット・オブジェクトであって、前記
    オブジェクト指向型のデータベース管理装置には、デー
    タ蓄積デバイス、該データ蓄積デバイスに蓄積されたデ
    ータ・オブジェクトからなるデータベース、該データ蓄
    積デバイスに接続されたデータ・プロセッサ、および、
    前記データベースに対して複数個のタスクを実行するた
    めに、該データ・プロセッサ内で動作するオブジェクト
    指向型のデータベース・マネージャ、を含んでおり、各
    タスクは複数個のステップを含み、前記ステップの各々
    は前記データベースにおけるデータ要素を修正すること
    が可能であり、前記ワーク・ユニット・オブジェクトに
    は: 複数個のワーク・ユニットの属性が含まれており、該属
    性は: ワーク・ユニットのインスタンスに対するワーク・ユニ
    ットのレベルを指示する属性;データ・オブジェクトの
    インスタンスに対する現在のワーク・レベルを指示する
    属性;およびある1個のワーク・ユニットのレベルによ
    って知られている全てのデータ・オブジェクトをリスト
    にするための属性; からなるものであり、また 複数個のワーク・ユニットに対するメソッドには: ある1個のタスクに対する新規なワーク・ユニットのイ
    ンスタンスを開始するための新規メソッド; ある1個のタスクにおけるある1個のステップに対する
    ネストされたワーク・ユニットのインスタンスを開始す
    るための起動メソッド;ある1個のワーク・ユニットの
    レベルに おいて、先行するワーク・ユニットのレベルに変化させ
    るためのコミット(commit)・メソッド;ある1
    個のワーク・ユニットのレベルに おける変化を無効にするためのロールバック・メソッド
    ;および 第1のワーク・ユニットのインスタンスから、第2のワ
    ーク・ユニットのインスタンスに切り換えるための切り
    換えメソッド; が含まれている、前記のオブジェクト指向型のデータベ
    ース管理装置のためのワーク・ユニット・オブジェクト
JP2241360A 1989-10-23 1990-09-13 データベース管理装置及び方法 Expired - Fee Related JPH0833863B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/425,607 US5313629A (en) 1989-10-23 1989-10-23 Unit of work for preserving data integrity of a data-base by creating in memory a copy of all objects which are to be processed together
US425607 1995-04-20

Publications (2)

Publication Number Publication Date
JPH03138735A true JPH03138735A (ja) 1991-06-13
JPH0833863B2 JPH0833863B2 (ja) 1996-03-29

Family

ID=23687277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2241360A Expired - Fee Related JPH0833863B2 (ja) 1989-10-23 1990-09-13 データベース管理装置及び方法

Country Status (4)

Country Link
US (1) US5313629A (ja)
EP (1) EP0425415B1 (ja)
JP (1) JPH0833863B2 (ja)
DE (1) DE69032389T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0798649A (ja) * 1993-06-14 1995-04-11 Internatl Business Mach Corp <Ibm> 固定オブジェクト記憶システム

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410691A (en) * 1990-05-07 1995-04-25 Next Computer, Inc. Method and apparatus for providing a network configuration database
JP3055970B2 (ja) * 1991-06-20 2000-06-26 富士通株式会社 オブジェクト指向言語間インタフェース実現方法および装置
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
DE69327448T2 (de) * 1992-12-21 2004-03-04 Sun Microsystems, Inc., Mountain View Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem
US6259446B1 (en) 1992-12-23 2001-07-10 Object Technology Licensing Corporation Menu state system
CA2147380C (en) * 1992-12-23 2000-07-18 Object Technology Licensing Corporation Atomic command system
JPH06214865A (ja) * 1993-01-12 1994-08-05 Fujitsu Ltd オブジェクト・ベース・データ処理装置
JP2711216B2 (ja) * 1993-01-26 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクトを管理するためのシステム及び方法
US5404502A (en) * 1993-02-25 1995-04-04 Prologic Computer Corporation Error-detection in database update processes
US5377350A (en) * 1993-04-30 1994-12-27 International Business Machines Corporation System for cooperative communication between local object managers to provide verification for the performance of remote calls by object messages
WO1995004960A2 (en) * 1993-08-02 1995-02-16 Persistence Software, Inc. Method and apparatus for managing relational data in an object cache
JP2986051B2 (ja) * 1993-08-04 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
JPH07104981A (ja) * 1993-09-30 1995-04-21 Hitachi Software Eng Co Ltd オブジェクトリンク情報を用いたプログラム構築装置
US5943495A (en) * 1993-10-20 1999-08-24 Mci Communication Corp. Copy utility method and apparatus for non-stop database applications
US5678040A (en) * 1993-10-29 1997-10-14 Motorola, Inc. Method for managing a hierarchical design transaction
US5727203A (en) * 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
US5752028A (en) * 1996-04-03 1998-05-12 Ellacott; Bruce Arthur Object-oriented query mechanism
US5899997A (en) * 1996-04-03 1999-05-04 Transparency Systems, Inc. Object-oriented query mechanism
US6012081A (en) * 1996-07-03 2000-01-04 Siemens Aktiengesellschaft Service and event synchronous/asynchronous manager
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
US5956728A (en) * 1996-07-17 1999-09-21 Next Software, Inc. Object graph editing context and methods of use
US6012059A (en) * 1997-08-21 2000-01-04 Dataxel Corporation Method and apparatus for replicated transaction consistency
US6023709A (en) * 1997-12-15 2000-02-08 International Business Machines Corporation Automated file error classification and correction in a hierarchical storage management system
US6353881B1 (en) 1999-05-17 2002-03-05 Sun Microsystems, Inc. Supporting space-time dimensional program execution by selectively versioning memory updates
EP1188114B1 (en) * 1999-05-17 2008-07-23 Sun Microsystems, Inc. Dynamic handling of object versions to support space and time dimensional program execution
US6694328B1 (en) * 2000-01-13 2004-02-17 International Business Machines Corporation Method for creating queries on version objects
US7725878B1 (en) 2000-05-12 2010-05-25 Oracle International Corporation Property bundles on a per instance basis
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US7185005B1 (en) 2000-05-12 2007-02-27 Oracle International Corporation Nested transactions in a file system
US7389493B1 (en) 2000-05-12 2008-06-17 Oracle International Corporation Categories on a per instance basis
US7421541B2 (en) 2000-05-12 2008-09-02 Oracle International Corporation Version management of cached permissions metadata
US7203709B2 (en) * 2000-05-12 2007-04-10 Oracle International Corporation Transaction-aware caching for access control metadata
US6611898B1 (en) * 2000-12-22 2003-08-26 Convergys Customer Management Group, Inc. Object-oriented cache management system and method
AUPR399401A0 (en) * 2001-03-26 2001-04-26 Future Is Freedom Pty Ltd, The Improvements in developing and maintaining custom computer information systems
US20040210564A1 (en) * 2001-06-26 2004-10-21 Kenneth Oksanen Indexing method and system for relational databases
WO2004027604A2 (en) 2002-09-23 2004-04-01 Neos Financial Systems Limited Transaction processing system
US7243088B2 (en) * 2003-08-06 2007-07-10 Oracle International Corporation Database management system with efficient version control
US8694510B2 (en) 2003-09-04 2014-04-08 Oracle International Corporation Indexing XML documents efficiently
US8229932B2 (en) 2003-09-04 2012-07-24 Oracle International Corporation Storing XML documents efficiently in an RDBMS
US7269588B1 (en) 2003-09-24 2007-09-11 Oracle International Corporation Neighborhood locking technique for increasing concurrency among transactions
US7555481B1 (en) 2003-10-28 2009-06-30 Oracle Corporation Method and apparatus for increasing transaction concurrency by early release of locks in groups
US7930277B2 (en) 2004-04-21 2011-04-19 Oracle International Corporation Cost-based optimizer for an XML data repository within a database
US20070208946A1 (en) * 2004-07-06 2007-09-06 Oracle International Corporation High performance secure caching in the mid-tier
US7739244B2 (en) * 2004-10-14 2010-06-15 Oracle International Corporation Operating logging for online recovery in shared memory information systems
US7921076B2 (en) 2004-12-15 2011-04-05 Oracle International Corporation Performing an action in response to a file system event
US8073841B2 (en) 2005-10-07 2011-12-06 Oracle International Corporation Optimizing correlated XML extracts
US8949455B2 (en) * 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8538931B2 (en) * 2006-04-28 2013-09-17 International Business Machines Corporation Protecting the integrity of dependent multi-tiered transactions
US8682863B2 (en) * 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US8161010B2 (en) 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US7797310B2 (en) 2006-10-16 2010-09-14 Oracle International Corporation Technique to estimate the cost of streaming evaluation of XPaths
US7958112B2 (en) * 2008-08-08 2011-06-07 Oracle International Corporation Interleaving query transformations for XML indexes
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
US8255373B2 (en) * 2008-10-24 2012-08-28 Microsoft Corporation Atomic multiple modification of data in a distributed storage system
US20100241893A1 (en) * 2009-03-18 2010-09-23 Eric Friedman Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment
US8510344B1 (en) * 2010-08-27 2013-08-13 Amazon Technologies, Inc. Optimistically consistent arbitrary data blob transactions
US8688666B1 (en) 2010-08-27 2014-04-01 Amazon Technologies, Inc. Multi-blob consistency for atomic data transactions
US8510304B1 (en) 2010-08-27 2013-08-13 Amazon Technologies, Inc. Transactionally consistent indexing for data blobs
US8856089B1 (en) 2010-08-27 2014-10-07 Amazon Technologies, Inc. Sub-containment concurrency for hierarchical data containers
US8621161B1 (en) 2010-09-23 2013-12-31 Amazon Technologies, Inc. Moving data between data stores
CN102880473A (zh) * 2012-09-28 2013-01-16 五八有限公司 基于quartz框架的任务执行方法及装置
DE102015001194A1 (de) * 2015-01-31 2016-08-04 Audi Ag Verfahren zum Bereitstellen von Information eines Objekts in einer Verkehrssituation und System
US9984142B2 (en) 2015-11-05 2018-05-29 Oracle International Corporation Single unit of work

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62219124A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd デ−タベ−スにおける項目属性遺伝処理方式
JPH02206839A (ja) * 1989-02-06 1990-08-16 Hitachi Ltd オブジェクト管理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791550A (en) * 1985-02-13 1988-12-13 Rational Higher order language-directed computer
US4814971A (en) * 1985-09-11 1989-03-21 Texas Instruments Incorporated Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state
US4821220A (en) * 1986-07-25 1989-04-11 Tektronix, Inc. System for animating program operation and displaying time-based relationships
US5206951A (en) * 1987-08-21 1993-04-27 Wang Laboratories, Inc. Integration of data between typed objects by mutual, direct invocation between object managers corresponding to object types
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62219124A (ja) * 1986-03-20 1987-09-26 Fujitsu Ltd デ−タベ−スにおける項目属性遺伝処理方式
JPH02206839A (ja) * 1989-02-06 1990-08-16 Hitachi Ltd オブジェクト管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0798649A (ja) * 1993-06-14 1995-04-11 Internatl Business Mach Corp <Ibm> 固定オブジェクト記憶システム

Also Published As

Publication number Publication date
EP0425415A2 (en) 1991-05-02
DE69032389T2 (de) 1999-02-18
DE69032389D1 (de) 1998-07-16
EP0425415B1 (en) 1998-06-10
JPH0833863B2 (ja) 1996-03-29
EP0425415A3 (en) 1993-04-21
US5313629A (en) 1994-05-17

Similar Documents

Publication Publication Date Title
JPH03138735A (ja) データベース管理装置及び方法
US5237654A (en) Hierarchical inter-panel process flow control
US5535389A (en) Business process objects with associated attributes such as version identifier
US6757905B1 (en) Method and system for synchronous operation of linked command objects
US6442568B1 (en) Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
US6119145A (en) Multithreaded client application storing a separate context for each transaction thus allowing threads to resume transactions started by other client threads
USRE38270E1 (en) Multiple level undo/redo mechanism
US7490330B2 (en) Using a virtual machine instance as the basic unit of user execution in a server environment
US5161225A (en) Persistent stream for processing time consuming and reusable queries in an object oriented database management system
US7031989B2 (en) Dynamic seamless reconfiguration of executing parallel software
JP3949180B2 (ja) 基底システムオブジェクトモデルを備えたシステム管理サービスの統合
US7844665B2 (en) Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
JPH03137730A (ja) オブジエクト指向コンピユータ・システム
US6161147A (en) Methods and apparatus for managing objects and processes in a distributed object operating environment
JPH076111A (ja) 修正可能な機能をサーバーで実行する方法
JPH03231352A (ja) オブジェクトクラス定義情報実装装置
US20020073092A1 (en) Methods, systems and computer program products for controlling variables associated with transactions in a multiple transaction environment
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
US7451434B1 (en) Programming with shared objects in a shared memory
US6208994B1 (en) Supporters providing extensible classes without recoding for object-oriented applications
US20180321956A1 (en) Multi-version asynchronous dynamic software update system and method for applications with multiple threads
US6662364B1 (en) System and method for reducing synchronization overhead in multithreaded code
US20090100082A1 (en) Replication and mapping mechanism for recreating memory durations
JPH02114335A (ja) マルチ・プロセツシング方式
US5987580A (en) Serially reusable execution memory

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees