JPH05265838A - オブジェクト指向データベースシステム及びそのバージョン管理方法 - Google Patents

オブジェクト指向データベースシステム及びそのバージョン管理方法

Info

Publication number
JPH05265838A
JPH05265838A JP4090246A JP9024692A JPH05265838A JP H05265838 A JPH05265838 A JP H05265838A JP 4090246 A JP4090246 A JP 4090246A JP 9024692 A JP9024692 A JP 9024692A JP H05265838 A JPH05265838 A JP H05265838A
Authority
JP
Japan
Prior art keywords
version
attribute
pointer
class
meta
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
JP4090246A
Other languages
English (en)
Inventor
Miyoko Namioka
美予子 浪岡
Yoichi Yamamoto
洋一 山本
Masato Asami
真人 浅見
Kumiko Furukawa
久美子 古川
Kazuhiro Sato
和洋 佐藤
Takeo Maruyama
剛男 丸山
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4090246A priority Critical patent/JPH05265838A/ja
Publication of JPH05265838A publication Critical patent/JPH05265838A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 メモリ浪費及びユーザ定義の手続き実行効率
の低下の少ないオブジェクト指向データベースシステム
及びバージョン管理方法 【構成】 メタバージョンへのポインタを格納する属性
をインスタンス変数とし、該属性への値書込み用と値読
込用メソッドを保持するバージョン化オブジェクトクラ
スをライブラリとして保持し、コンパイル要求ユーザの
クラスに対しバージョン化オブジェクトクラスの定義を
継承させ、オブジェクトの複数のバージョンを要素とす
る集合オブジェクトへのポインタ格納用、該集合オブジ
ェクトの要素を代表する代表バージョンへのポインタ格
納用、ジェネリックインスタンスへのポインタ格納用の
各属性をインスタンス変数とし、各属性への値書込用と
値読込用メソッドを保持するメタバージョンクラスと、
オブジェクトのバージョン化手段をメソッドとして保持
するバージョンマネジャクラスとをライブラリとして保
持する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】オブジェクト指向データベースシ
ステムと、そのバージョン管理方法に関する。
【0002】
【従来技術】最近、ECAD(electrical
computer aided design)、MC
AD(mechanical computer ai
ded design)、SCAD(software
computer aided design)など
のアプリケーションをサポートすることが、データベー
スシステムの主要な課題となっている。
【0003】前記アプリケーションが扱うデータは、構
造が複雑である、種類が多い、また異なった種類のデー
タは異なった手続きを必要とする等の特徴を持ってい
る。
【0004】このようなデータを扱うためには、現在一
般的になりつつあるリレーショナルデータモデルなどで
は表現能力が不足している。これに対して、近年データ
の意味表現能力の拡大を目的に種々のデータモデルや、
それに基づくシステムの研究がなされている。特に、オ
ブジェクト指向の考えにデータ意味論的な概念を融合さ
せたオブジェクト指向データモデルの有用性が注目され
ている。
【0005】オブジェクト指向データモデルでは、実世
界のデータを全てオブジェクトとして扱い、それらに対
して統一的な操作インタフェースを与える。また、オブ
ジェクト間の汎化・専化、集約などの関係の表現を可能
にし、実世界のデータの持つ意味をデータベース上に表
現する能力が従来のデータベースに比べ優れている。こ
のようなオブジェクト指向データモデルに基づくデータ
ベースシステムを、オブジェクト指向データベースシス
テムと呼んでいる。
【0006】上記にあげた応用分野では、設計に代表さ
れる試行錯誤的な作業がなんらかのバージョン機能を必
要とする。そのため、バージョン管理機能は、オブジェ
クト指向データベースがサポートすべき重要な機能の1
つとなっている。バージョン管理でサポートしなければ
ならない基本的な機能としては、オブジェクトのバージ
ョン化を可能とすること、バージョンに対する暗黙的参
照と明示的参照を可能とすること、バージョン間の関連
を管理することを挙げることができる。以下、それぞれ
の機能について簡単に説明する。
【0007】通常、オブジェクトについては、それを操
作するためのインタフェースが使用者に対して公開され
るが、そのインタフェースを実現するためのインプリメ
ンテーション部分は使用者から隠されている。このイン
プリメンテーション部分は、オブジェクトの状態を格納
するための変数(インスタンス変数)と手続き(メソッ
ド)を含んでいる。オブジェクトの状態とは、オブジェ
クトが持っている変数の値によって決まる。オブジェク
トのバージョン管理機能を持たないシステムでは、オブ
ジェクトは唯1つの状態のみを持つ。オブジェクトのバ
ージョン化を可能にするとは、オブジェクトが複数の状
態を持つことを可能にするということである。オブジェ
クトAについて、オブジェクトAの異なった状態を表す
オブジェクトをオブジェクトAのバージョンと呼ぶ。バ
ージョンという言葉に対し、それらが状態を表している
オブジェクトをジェネリックインスタンスと呼ぶことが
多い。
【0008】オブジェクト指向データベースでは、オブ
ジェクトに対してそれを一意に識別することができるオ
ブジェクト識別子を与えるのが普通である。オブジェク
トを参照する場合、このオブジェクト識別子を用いるこ
とができる。バージョンの明示的参照を可能にすると
は、あるジェネリックインスタンスの任意のバージョン
を直接参照可能にすることである。また、バージョンの
暗黙的参照を可能にするとは、ジェネリックインスタン
スへの参照に対して、実際にその具体的な状態が必要に
なったときに、その参照を特定のバージョンへ動的に結
合することである。どちらの参照を用いた場合でも、同
じジェネリックインスタンスに対応するバージョンは、
各々の状態は異なっていても、ジェネリックインスタン
スと同じインタフェースを持たなければならない。
【0009】1つのジェネリックインスタンスの複数の
バージョンの間には、生成に関する時系列的な関係や親
子関係などが存在するのが普通である。バージョン間の
関係を管理するとは、このような関係を維持し、操作す
ることを可能にすることである。上記のようなバージョ
ン管理機能をサポートする方法として、バージョン固有
の属性や手続きを定義したクラスをオブジェクト指向デ
ータベースシステムが用意し、その定義をユーザが定義
したクラスに継承させるという方法が、以下の論文
(1)(2)(3)の中で論じられている。
【0010】(1)R.Agrawal et.a
l.,”Object Versioning in
Ode”,Proc.IEEE Data Engin
eering,1991,446−455. 文献(1)のシステムでは、該システムが提供するプロ
グラミング言語で記述されたユーザ定義のクラスは、該
システムのコンパイラによって、汎用クラスVersi
onの定義を継承するようなコードに変換される。この
Versionというクラスは、バージョンの時系列リ
スト、バージョンの導出木、バージョンから成る集合オ
ブジェクトへのポインタを保持する変数を含み、バージ
ョンの追加や削除、バージョンから成る集合オブジェク
トへのポインタを返す手続き等を含んでいる。
【0011】以下の文献(2)のシステムや文献(3)
のシステムでは、システムが付加する属性や手続きが、
ジェネリックインスタンスとバージョンで異なるという
点で文献(1)のシステムとは少し違っている。しか
し、オブジェクトがユーザ定義の属性や手続きの他に、
システムが定めたバージョン管理のための属性や手続き
を持つということは同じである。 (2)H.T.Chou and W.Kim,”VE
RSION AND CHANGE NOTIFICA
TION IN AN OBJECT−ORIENTE
D DATABASE SYSTEM”,Proc.2
5th ACM/IEEE Data Automat
ion Conf.,1988,275−281. (3)D.Beech and B.Mahbod,”
GeneralizedVersion Contro
l in an Object−Oriented D
atabase”,Proc.IEEE 4th In
t’l Conf.Data Engineerin
g,1988,14−22. 次の論文の中で提案されている方法は、上記とは少し異
なる。
【0012】(4)Lichao Tan, et.
ai.,”Attribute Grammar Ba
sed Structure Evolution i
n Object Management Syste
m OOAG”,1990,情報処理学会研究報告Vo
l.90,No.68. ここでは、オブジェクトに対して、そのオブジェクトの
バージョンに関する情報を一手に維持・管理するオブジ
ェクト(これを、メタオブジェクトと呼んでいる)につ
いて論じられている。オブジェクトが生成されるとシス
テムが自動的に対応するメタオブジェクトを生成する。
オブジェクトに送信されたメッセージは、全てシステム
がそのオブジェクトのメタオブジェクトに転送する。そ
して、バージョンに関するメッセージの場合は、このメ
タオブジェクトが処理する。
【0013】
【発明が解決しようとする課題】文献(1)〜(3)の
ように、ユーザ定義の属性や手続きの他に、バージョン
管理に必要な属性や手続きをオブジェクトに付加すると
いう方法は、次のような問題がある。 (1)付加される属性の数だけ、オブジェクトのサイズ
が大きくなるため、バージョン管理を必要としないオブ
ジェクトについては、バージョン管理のための余分な属
性を持つことになりメモリを浪費する。 (2)バージョン管理のために付加される手続きの数だ
け、手続き探索に余分な時間がかかるため、ユーザ定義
の手続きの実行性能を低下させることになる。
【0014】このような問題点について文献(2)で
は、予めクラス単位でバージョン管理を必要とするオブ
ジェクトか否かを定義しておくことにより、問題(1)
(2)によるオーバヘッドを局所化することが提案され
ているが、この方法では、クラス定義時にそのクラスの
インスタンスについて、バージョン管理の必要の有無を
決定しなければならないため、使い勝手の面で問題があ
る。また、バージョン管理の対象となるクラスの全ての
インスタンスがバージョン管理を必要とするわけではな
いから、そのようなインスタンスについてのオーバッヘ
ッドは残る。文献(3)では、クラス単位ではなく個々
のオブジェクトについて、バージョンを持たない状態か
らバージョンを持った状態へ変換する操作を設けること
により、問題(1)を回避している。文献(3)では、
永続性を持つクラスのオブジェクトのみが、バージョン
管理の対象となるため、文献(2)と同様、問題はその
ようなクラスにのみ局所化される。
【0015】文献(4)による方法は、オブジェクトに
付加する属性や手続きが文献(1)〜(3)の方法に比
べて少なくて済む。しかし、本来オブジェクト自身で処
理できるユーザ定義の手続きまでが、メタオブジェクト
に転送されるため、手続きの実行性能を低下させること
になる。
【0016】従来技術にあげたシステムにおけるバージ
ョン管理方法は、先に述べた基本的なバージョン管理機
能、すなわち、オブジェクトのバージョン化、バージョ
ンへの明示的参照と暗黙的参照、バージョン間の関連の
管理、などを実現することができる。しかし、オブジェ
クトの改訂の際の処理方法やバージョン間の関連の付け
方など、実際のバージョン管理は、適用分野ごとに多種
の方法が考えられる。適用分野にマッチしたバージョン
管理機能を実現するには、バージョン管理のためのデー
タ構造を利用者がクラスとして定義し、バージョン管理
操作をメソッドとして記述できることが望ましい。従来
例にあげた方法は、このような要求との親和性が低い。
【0017】本発明の目的は、オブジェクト指向データ
ベースシステムにおいて、メモリの浪費ならびにユーザ
定義の手続きの実行効率の低下の少ないデータベースシ
ステムおよびバージョン管理方法を提供することであ
る。本発明の他の目的は、オブジェクト指向データベー
スシステムにおいて、適用分野にマッチしたバージョン
管理機能の実現を容易にするデータベースシステムおよ
びバージョン管理方法を提供することである。
【0018】
【課題を解決するための手段】上記課題を解決するた
め、本発明のオブジェクト指向データベースシステムで
は、オブジェクト指向データベース中のオブジェクトに
対して、当該オブジェクトのバージョン管理情報を保持
するメタバージョンへのポインタを格納する属性を付加
する手段と、当該属性に値を書き込む手段と、当該属性
の値を読み込む手段と、上記メタバージョンについて
は、上記オブジェクトの複数のバージョンを代表する唯
1つの代表バージョンへのポインタを格納する属性を付
加する手段と、当該属性に値を書き込む手段と、当該属
性の値を読み込む手段と、与えられた1組のオブジェク
トとメタバージョンより、該オブジェクトを複写して該
オブジェクトの最初のバージョンとなるオブジェクトを
生成し、複写元のオブジェクトに該オブジェクトがジェ
ネリックインスタンスであることを示すタグを付加し、
該オブジェクトと該オブジェクトの上記最初のバージョ
ンについて、それぞれのメタバージョンへのポインタを
格納する属性に上記付与されたメタバージョンへのポイ
ンタを示す値を書き込むオブジェクトのバージョン化手
段と、オブジェクトに付加された、メタバージョンへの
ポインタを格納する属性の値、該メタバージョンが保持
する該オブジェクトの代表バージョンへのポインタを格
納する属性の値、ならびに該オブジェクトがジェネリッ
クインスタンスであるか否かを示すタグの有無に基い
て、該オブジェクトへ送信されたメッセージを処理する
手段とを有する。
【0019】特に本発明の望ましい態様では、上記メタ
バージョンへのポインタを格納する属性をインスタンス
変数とし、当該属性に値を書き込む手段ならびに当該属
性の値を読み込む手段をメソッドとして保持するバージ
ョン化オブジェクトクラスをライブラリとして保持し、
コンパイルを要求するユーザのクラスに対して当該バー
ジョン化オブジェクトクラスの定義を継承させ、上記オ
ブジェクトの複数のバージョンを要素とする集合オブジ
ェクトへのポインタを格納する属性と、該集合オブジェ
クトの要素である複数のバージョンを代表する唯1つの
代表バージョンへのポインタを格納する属性と、上記ジ
ェネリックインスタンスへのポインタを格納する属性を
インスタンス変数とし、それぞれの属性に値を書き込む
手段ならびに値を読み込む手段をメソッドとして保持す
るメタバージョンクラス、与えられた1組のオブジェク
トとメタバージョンに基いて、付与されたオブジェクト
を複写して該オブジェクトの最初のバージョンとなるオ
ブジェクトを生成し、該オブジェクトに該オブジェクト
がジェネリックインスタンスであることを示すタグを付
加し、該オブジェクトと該オブジェクトの上記最初のバ
ージョンについて、それぞれのメタバージョンへのポイ
ンタを格納する属性に上記付与されたメタバージョンへ
のポインタを示す値を書き込むオブジェクトのバージョ
ン化手段をメソッドとして保持するバージョンマネジャ
クラスをライブラリとして保持する。
【0020】また、本発明のバージョン管理方法は、オ
ブジェクト指向データベース中のオブジェクトに、該オ
ブジェクトのバージョン管理情報を保持するメタバージ
ョンへのポインタを格納する属性を持たせ、該メタバー
ジョンには、上記オブジェクトのバージョンを要素とす
る集合オブジェクトへのポインタを格納する属性ならび
に該集合オブジェクトの要素を代表する代表バージョン
へのポインタを格納する属性を持たせておき、オブジェ
クトの生成要求があった場合には、該要求により生成し
たオブジェクトの上記メタバージョンへのポインタを格
納する属性に、該メタバージョンが存在しない旨を設定
しておき、該オブジェクトのバージョン化要求があった
場合には、該オブジェクトに対する上記メタバージョン
を生成し、該オブジェクトを複写して該オブジェクトの
最初のバージョンとなるオブジェクトを生成し、該オブ
ジェクトにはジェネリックインスタンスであることを示
すタグを付加し、該オブジェクトならびに該バージョン
のメタバージョンへのポインタを格納する属性には、該
オブジェクトに対して生成しておいた上記メタバージョ
ンへのポインタを示す値を設定し、当該メタバージョン
については、該バージョンを要素とする集合オブジェク
トを生成して、当該集合オブジェクトへのポインタを示
す値と該バージョンへのポインタを示す値を、それぞ
れ、バージョンを要素とする集合オブジェクトへのポイ
ンタを格納する属性、集合オブジェクトの要素を代表す
る代表バージョンへのポインタを格納する属性に設定し
ておき、該オブジェクトに新たにバージョンを追加する
場合は、該オブジェクトのメタバージョンに設定されて
いる集合オブジェクトに、当該バージョンを要素として
追加し、メッセージを処理する場合には、そのメッセー
ジのレシーバに指定されているオブジェクトについて、
該オブジェクトがジェネリックインスタンスであること
を表すタグがあるか否かを判定し、該オブジェクトがジ
ェネリックインスタンスでない場合は、該オブジェクト
をレシーバとしてメッセージを処理し、該オブジェクト
がジェネリックインスタンスである場合は、該オブジェ
クトのメタバージョンを得、該メタバージョンから代表
バージョンを得、当該代表バージョンをレシーバとして
メッセージを処理する。
【0021】
【作用】本発明によるオブジェクト指向データベースシ
ステム及びバージョン管理方法によれば、当該オブジェ
クト指向データベースシステムを用いて構築されるアプ
リケーションプログラムは、該プログラムが扱うオブジ
ェクトのバージョン管理のために必要となるデータ構造
(例えば、導出履歴管理のための木構造など)とそれを
扱う操作をクラスとして定義し、該オブジェクト指向デ
ータベースシステムが提供するメタバージョンクラス、
バージョンマネジャクラスの定義を継承し、さらに上記
により定義した固有のデータを操作する機能を追加する
ことにより、それぞれのクラスを該アプリケーションプ
ログラム用にカスタマイズし、オブジェクトのバージョ
ン管理を行う前に、カスタマイズしたバージョンマネジ
ャクラスに、インスタンスを生成しておく必要がある。
【0022】該アプリケーションプログラムは、オブジ
ェクトのバージョン管理が必要となった場合、該オブジ
ェクトのためのメタバージョンをメタバージョンクラス
のインスタンスとして生成し、該オブジェクトと該メタ
バージョンをパラメタとして、予め生成しておいたバー
ジョンマネジャクラスのインスタンスにバージョン化を
要求する。この結果、該オブジェクトのジェネリックイ
ンスタンスと最初のバージョンが生成される。このバー
ジョン化の機能は、該アプリケーションプログラム用に
カスタマイズされたバージョンマネジャクラスならびに
メタバージョンクラスが、本発明が提供するバージョン
マネジャクラスならびにメタバージョンクラスから継承
する機能である。もちろん、バージョン化の際必要とな
る該アプリケーション固有の処理が追加されていても良
い。
【0023】上記オブジェクト指向データベースシステ
ムは、オブジェクトに送られてきたメッセージを処理す
る場合、該オブジェクトがジェネリックインスタンスで
あるか否かを、オブジェクトのバージョン化の際付加す
るタグの有無によって判定し、該オブジェクトがジェネ
リックインスタンスでない場合は、該オブジェクトをそ
のままメッセージのレシーバとして該メッセージが処理
され、該オブジェクトがジェネリックインスタンスであ
る場合は、該オブジェクトの参照するメタバージョンを
得、さらにこのメタバージョンから該オブジェクトの代
表バージョンを得、当該代表バージョンをレシーバとし
て上記メッセージを処理する。この結果、バージョンを
持ったオブジェクトに対する明示的参照ならびに暗黙的
参照が実現される。
【0024】上記によると、バージョン化要求のないオ
ブジェクトは、対応するメタバージョンを持たないこ
と、バージョン管理のためにユーザ定義のクラスに余分
に付加されるインスタンス変数やメソッドは、コンパイ
ル時にバージョン化オブジェクトクラスから継承する1
つの変数と2つのメソッドだけであることから、メモリ
の浪費ならびにメッセージ処理のためのメソッドの探索
に関するオーバヘッドが少ない。また、本発明によるオ
ブジェクト指向データベースシステムを用いて構築され
るアプリケーションプログラムは、本発明が提供するバ
ージョンマネジャクラスならびにメタバージョンクラス
の定義に、必要なデータ構造や操作を付加することによ
り、該アプリケーション固有のバージョン管理機能を構
築することができる。
【0025】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。図1は、本実施例の全体構成を示す図である。計算
機システム10は、その上でオブジェクトサーバ20
や、該オブジェクトサーバ20のクライアント30が動
作する。オブジェクトサーバ20は、通信処理部21、
メッセージ処理部22、メモリ管理部23、ストレージ
管理部24から構成される。メッセージ処理部22は、
オブジェクトに定義されている手続きを実行する。通信
処理部21は、オブジェクトサーバ20とクライアント
30間の処理要求やデータの遣り取りを制御する。スト
レージ管理部24は、オブジェクトサーバ20が処理す
るオブジェクトを2次記憶装置内のオブジェクトデータ
ベース40上で管理する。メモリ管理部23は、メモリ
上のオブジェクト領域60内のオブジェクトを管理す
る。メッセージ処理に必要なオブジェクトがオブジェク
ト領域60上にない場合など、必要に応じてオブジェク
トデータベース40上のオブジェクトはオブジェクト領
域60にロードされる。オブジェクトデータベース40
中のシステムライブラリ50には、オブジェクトサーバ
20が予め準備したオブジェクトが存在する。また、、
オブジェクトデータベース40中のアプリケーションプ
ログラムライブラリ70には、該アプリケーションプロ
グラムを構成するオブジェクトならびに該アプリケーシ
ョンプログラムの実行により生成されたオブジェクトが
存在する。バージョン化オブジェクトクラス51、メタ
バージョンクラス52、バージョンマネジャクラス53
は、本発明を実現するためにオブジェクトサーバ20が
予め準備するクラスオブジェクトである。
【0026】図2は、本実施例の動作の概要を示す図で
ある。オブジェクトサーバ20は、自分自身を初期化し
た後、クライアント30からのコネクト要求を待つ。コ
ネクト要求があれば、該クライアントに対する子プロセ
スを生成する。親プロセスは、さらに他のクライアント
からのコネクト要求を待つ。生成された子プロセスで
は、クライアント30からの処理要求を待ち、クライア
ント30からの処理要求を受け取ると、これを処理し、
その結果をクライアントへ返し、次の処理要求を待つと
いう動作を繰り返す。クライアント30から終了要求を
受け取ると、子プロセスを削除しクライアント30との
通信を終了する。
【0027】本実施例のオブジェクトサーバ20を用い
た場合のアプリケーションプログラムのプログラミング
は、まず問題領域をクラスという抽象概念の集まりに分
けてクラスをつくるところから始まる。そして、クラス
が揃えば、クラスにインスタンスオブジェクトを生成す
ることができる。このクラスオブジェクトやインスタン
スオブジェクトが、図1のアプリケーションプログラム
ライブラリ70を構成する。クライアント30からの要
求をトリガに該アプリケーションプログラムが起動され
ると、以後は上記クラスオブジェクトやインスタンスオ
ブジェクトにメッセージを送ることによってプログラム
が進行する。
【0028】クラスでは、そのクラスのインスタンスの
内部状態を表す値を格納するインスタンス変数と、イン
スタンスに対して適用可能な手続きであるメソッドを定
義する必要がある。このとき、より上位のクラスである
スーパクラスを指定することにより、そのスーパクラス
に定義されているインスタンス変数やメソッドを継承す
ることができる。例えば、人クラスの場合、人A、人
B、人Cがインスタンスであり、人の性別、生年月日等
がインスタンス変数であり、男、昭和1年1月1日等が
インスタンス変数の内部状態であり、生年月日から年齢
を得るための手続きがメソッドであり、メソッドはプロ
グラミングされている。メソッドは、メッセージによっ
て起動される。メッセージには、そのメッセージのレシ
ーバとなるオブジェクト、起動するメソッドを示すメソ
ッド名、及びメソッドに対するパラメタ値を含んでい
る。
【0029】クラスの記述内容を示す例を図3に示す。
この例は、「研究メモ」というクラスの記述例である。
研究メモクラス301は、スーパクラス定義302によ
り、ドキュメントクラス401をスーパクラスに指定
し、インスタンス変数定義303により、メモ番号30
4、関連メモ305、目的306、本文307、挿入図
308をインスタンス変数に持ち、メソッド定義309
により、グループ内回覧310をメソッドに持つ。
【0030】同様に、研究メモクラス301のスーパク
ラスであるドキュメントクラス401の記述内容を示す
例を図4に示す。インスタンス変数定義403により、
タイトル404、ドキュメント種類405、キーワード
406、作成者407、審査者408、承認者409を
インスタンス変数に持ち、メソッド定義410により、
回覧411、審査412、承認413をメソッドに持
つ。
【0031】スーパクラス定義402により、ドキュメ
ントクラス401のスーパクラスに指定されているオブ
ジェクトクラスは、全てのオブジェクトが持つインスタ
ンス変数やメソッドの定義を持つクラスである。例え
ば、インスタンスを生成するメソッド等をこのクラスに
持たせ、明示的にスーパクラスに指定しなくても、全て
のクラスにこの定義を継承させることにより、全てのオ
ブジェクトが、システムが想定したオブジェクトとして
の性質を持つようにすることができる。本発明は上記ク
ラスのインスタンス変数やメソッドの詳細には無関係な
ので、ここではこれ以上言及しない。
【0032】通常、オブジェクト指向データベースシス
テムは、それぞれのクラス定義言語とそのコンパイラを
持っている。コンパイラは、図3や図4に示したような
内容を持つクラス定義文をパラメタとして入力し、予め
定められた形式のクラスオブジェクトを生成する。イン
スタンス変数やメソッドの定義ならびにスーパクラスか
らの継承もコンパイラによって処理され、クラスオブジ
ェクトの中に埋め込まれる。本発明の好ましい構成で
は、オブジェクトサーバ20は、コンパイラをクラスに
適用可能なメソッドとして、システムライブラリ50に
用意する。
【0033】以下、図5と図6を用いて、コンパイラが
生成する一般的なクラスオブジェクトの内容や継承の処
理の仕方について説明する。図3の研究メモクラスをコ
ンパイルした結果生成されるクラスオブジェクトの概要
を図5に示す。クラスオブジェクト中のインスタンス変
数情報には、スーパクラスであるドキュメントクラス4
01に定義されているインスタンス変数404〜409
のタイトル、ドキュメント種類等が継承の結果として取
り込まれている。同様に、インスタンスメソッド情報に
もスーパクラスであるドキュメントクラス401に定義
されているメソッド411〜413の回覧、審査、承認
が継承の結果として取り込まれている。ただし、継承し
たメソッドの実行コードは、ドキュメントクラス401
のメソッドの実行コードを共有している。
【0034】インスタンスメソッド情報については、図
6に示すように、スーパクラスのメソッドを取り込まな
い方法も考えられる。図5は、スーパクラスからの継承
がコンパイル時に全て処理されている状態であり、図6
は、インスタンス変数については継承がコンパイル時に
処理されているが、メソッドについては処理されていな
い状態である。図6のような場合は、実際にメソッドを
探索する時にスーパクラス(この場合、ドキュメント)
へも探索に行くことによって継承が実現できる。本発明
はクラスオブジェクトや継承の実現方法には無関係なの
で、ここではこれ以上言及しない。
【0035】図7〜図9は、オブジェクトサーバ20が
予めシステムライブラリ50の中に用意しているバージ
ョン化オブジェクトクラス(図7中では、Versio
nedObject)51、メタバージョンクラス(図
8中では、MetaVersion)52、バージョン
マネジャクラス(図9中では、VersionMana
ger)53について、それぞれのクラスオブジェクト
の内容を示したものである。
【0036】図7で、@metaVersion71
は、オブジェクトのバージョン管理情報を保持するメタ
バージョンへのポインタを格納するためのインスタンス
変数、getMetaVersion72は、@met
aVersion71の値を返すメソッド、setMe
taVersion:73は、パラメタとして受け取っ
たメタバージョンを@metaVersion71に設
定するメソッドである。
【0037】図8で、@versionSet81は、
複数のバージョンを要素とする集合オブジェクトへのポ
インタを格納するためのインスタンス変数、@gene
ric(該インスタンス変数に付けた名称である)82
は、ジェネリックインスタンスへのポインタを格納する
ためのインスタンス変数、@current(該インス
タンス変数に付けた名称である)83は、集合オブジェ
クトの要素である複数のバージョンを代表する代表バー
ジョンへのポインタを格納するためのインスタンス変
数、getVersionSet84は、@versi
onSet81の値を返すメソッド、setVersi
onSet:85は、パラメタとして受け取った集合オ
ブジェクトを@versionSet81に設定するメ
ソッド、getGeneric88は、@generi
c82の値を返すメソッド、setGeneric:8
9は、パラメタとして受け取ったジェネリックインスタ
ンスを@generic82に設定するメソッド、ge
tCurrent86は、@current83の値を
返すメソッド(getCurrentをセレクトするメ
ッセージを送ると結果として代表バージョンを得ること
になる)、setCurrent:87は、パラメタと
して受け取ったバージョンを@currentに設定す
るメソッドである。
【0038】図9で、versioning:wit
h:91は、第1パラメタで受け取ったバージョン化対
象オブジェクトと第2パラメタで受け取ったメタバージ
ョンに基いて、オブジェクトをバージョン化するメソッ
ドである。
【0039】本発明のオブジェクトサーバ20が用意し
ているコンパイラ54は、クライアント30がクラスの
コンパイルを要求した場合、上記バージョン化オブジェ
クトクラス51の定義を、コンパイル要求されたクラス
に継承させる。したがって、図3の研究メモクラスのコ
ンパイル要求があった場合、コンパイラ54は、図10
に示すようなクラスオブジェクトを生成する。バージョ
ンマネジャクラス53にインスタンスを生成する(以
下、このインスタンスを単にバージョンマネジャと呼
ぶ。)と、このバージョンマネジャをレシーバとして図
9に示したインスタンスメソッドを実行することができ
る。
【0040】図11を用いて、オブジェクトのバージョ
ン化を行うバージョンマネジャクラス53のversi
oning:with:メソッド91の処理について詳
細に説明する。まず、第1パラメタで与えられるオブジ
ェクト、すなわちバージョン化対象オブジェクト(OB
J)にgetMetaVersionをセレクタとする
メッセージを送信し(ステップ111)、リターン値に
よりメタバージョンが既に存在しているかどうかを判定
する(ステップ112)。メタバージョンが既に存在し
ている場合は、バージョン化済みである旨を結果として
返し(ステップ113)、処理を終了する。メタバージ
ョンがまだ存在していない場合は、OBJを複写して新
しいオブジェクト(VER)を生成し(ステップ11
4)、OBJにはジェネリックインスタンスであること
を示すタグを付ける(ステップ115)。さらに、OB
JならびにVERをレシーバとし、setMetaVe
rsion:をセレクタとし、第2パラメタで与えられ
たメタバージョンをパラメタに指定したメッセージを送
信して、このメタバージョンとの参照関係を設定し(ス
テップ116〜ステップ117)、ステップ114で生
成したVERをメッセージの送り手(関数のコール元に
相当するに)返して(スッテプ118)、処理を終了す
る。
【0041】バージョン化しないオブジェクトについて
は、メタバージョンやそれに係わる余分なオブジェクト
は生成されないこと、また、バージョン管理に係わり全
てのオブジェクトが一様に持たなければならないインス
タンス変数は、バージョン化オブジェクトクラス51か
ら継承する@metaVersion71だけであると
いうこと等より、従来技術で述べた方法に比べてメモリ
の浪費が少ない。
【0042】メッセージ処理部22の処理について、図
12を用いて詳細に説明する。メッセージ処理部22
は、まず受け取ったメッセージ(MSG)を解析して、
レシーバに指定されているオブジェクト(OBJ)、実
行すべきメソッドを指定しているセレクタ(SEL)、
メソッドに対するパラメタ(PARM)を取り出す(ス
テップ121)。次に、OBJにジェネリックインスタ
ンスであることを示すタグがあるかどうかを判定する
(ステップ122)。OBJにタグがついている場合、
OBJをレシーバとしてgetMetaVersion
をセレクタとするメッセージを送信し、OBJのメタバ
ージョンを得る(ステップ124)。さらに、このメタ
バージョンをレシーバとしてgetCurrentをセ
レクタとするメッセージを送信し、代表バージョンを得
(ステップ125)、現在の処理対象であるメッセージ
(MSG)のレシーバをOBJからこの代表バージョン
に置き換える(ステップ126)。次に、SELに対応
するメソッドを探索し(ステップ127)、得られたメ
ソッドを実行する(ステップ128)。ステップ122
においてOBJにタグが無い場合、OBJをメッセージ
(MSG)のレシーバとし(ステップ123)、ステッ
プ127〜ステップ128を実行する。
【0043】上記により、バージョンに対する明示的参
照ならびに暗黙的参照が実現されている。明示的参照
は、オブジェクトXの任意のバージョンをX(i)(i
=1・・・n)とすると、X(i)を直接参照する(X
(i)をレシーバとしてメッセージを送ること、X
(i)が直接メッセージをうける)。暗黙的参照は、特
定のバージョンではなくX(個々のバージョンに対して
こちらをジェネリックインスタンスと呼んでいる)を参
照する(メッセージはXに送るが、内部的にはその時点
の代表バージョンがメッセージを受ける)。図12で
は、ステップ122で明示的参照か暗黙的参照かを判定
し(ジェネリックインスタンスにタグを付けておき、ジ
ェネリックインスタンスをレシーバとするものは暗黙的
参照としている)、明示的参照の場合はステップ123
を、暗黙的参照の場合はステップ124〜126を実行
している。バージョン管理のための操作を、ユーザが定
義した個々のクラスに継承させていないため、図12の
ステップ127で探索対象となるメソッドのうち、バー
ジョン管理に係わるメソッドは、バージョン化オブジェ
クトクラス51から継承する2つのメソッドのみであ
る。また、メタバージョンを介するのは暗黙的参照解決
のために代表バージョンを必要とする場合のみである。
したがって、それぞれのクラスにユーザが定義したメソ
ッドの実行に対して、バージョン管理機能実現に伴うオ
ーバヘッドは、従来技術で述べた方法に比べて小さい。
【0044】以下では、本発明によるオブジェクトサー
バ20に基いて、クライアント30のより実際的なバー
ジョン管理機能がどのように実現できるかについて述べ
る。例として、次のような仕様を持つバージョン管理機
能の実現を考える。 (1)最初のバージョンを除き、新たなバージョンは既
存のバージョンから生成する。 (2)上記バージョンの導出履歴を管理する。
【0045】図13〜図15は、アプリケーションプロ
グラムの開発者が、上記バージョン管理機能の実現のた
めに用意するクラスオブジェクトを示す図である。図1
3のVersionTreeクラス130は、バージョ
ンの導出履歴を管理するための属性や操作を記述したク
ラスである。VersionTreeクラス130に
は、図16に示すようなトリー構造のデータを持つオブ
ジェクトへのポインタを格納するためのインスタンス変
数@rootNode131、与えられたノードに子ノ
ードを追加するaddNode:to:メソッド13
2、与えられたノードの親ノードを返すgetPrec
edeNode:メソッド133、与えられたノードの
子ノードのリストを返すgetSucceedNode
LIst:メソッド134を用意する。図16中の各ノ
ードは1つ1つのバージョンに対応し、図中の矢印は、
始点のバージョンから終点のバージョンが導出されてい
るという関係を表す。VersionTreeクラス1
30は、通常のプログラミングの場合と同様、オブジェ
クト指向データベースシステムが予め用意している、整
数やリストやアレイ等の基本クラスによって実現できる
レベルのクラスであるため、これ以上言及しない。
【0046】図14のCustomizedMetaV
ersionクラス140は、メタバージョンクラス5
2をスーパクラスとし、メタバージョンクラス52から
インスタンス変数81〜83、メソッド84〜89を継
承する。CustomizedMetaVersion
クラス140固有のインスタンス変数として、導出履歴
を保持するVersionTreeクラス130のイン
スタンスへのポインタを格納するためのインスタンス変
数@versionTree141と、この変数の値を
返すgetVersionTreeメソッド142、こ
の変数に値を設定するsetVersionTree:
メソッド143、バージョンを追加するためのaddD
erivedVersion:from:メソッド14
4を持つ。
【0047】addDerivedVersion:f
rom:メソッド144では、まず、getVersi
onSet84を用いてインスタンス変数@versi
onSet81の値から集合オブジェクトを得、この集
合オブジェクトに第1パラメタで与えられたバージョン
を追加する。次に、getVersionTree14
2を用いてインスタンス変数@versionTree
141の値からバージョントリーインスタンスを得、こ
のバージョントリーインスタンスに、addNode:
to:メソッド132を用いて、第1パラメタで与えら
れたバージョンが第2パラメタで与えられたバージョン
の子バージョンとなるように新しいノードを追加する。
【0048】図15のCustomizedVersi
onManagerクラス150は、バージョンマネジ
ャクラス53をスーパクラスとし、バージョンマネジャ
クラス53からメソッド91を継承する。Custom
izedVersionManagerクラス150固
有のメソッドとして、与えられたオブジェクトをバージ
ョン化するversioning:メソッド151、与
えられたバージョンから子バージョンを導出するder
iveFrom:メソッド152、与えられたバージョ
ンの親バージョンを返すメソッドgetParent:
153、与えられたバージョンの子バージョンのリスト
を返すgetChildren:メソッド154を持
つ。
【0049】CustomizedVersionMa
nagerクラス150の、オブジェクトのバージョン
化処理を行うversioning:メソッド151の
処理について、図17を用いて説明する。versio
ning:メソッド151では、まず、Customi
zedMetaVersionクラス140にインスタ
ンス(META)を生成する(ステップ171)。次
に、versioning:メソッド151のレシーバ
自身(CustomizedVersionManag
erクラスのインスタンス、すなわちバージョンマネジ
ャ)をレシーバとし、パラメタで与えられるオブジェク
ト、すなわちバージョン化が要求されているオブジェク
ト(OBJ)を第1パラメタ、ステップ171にて生成
したメタバージョン(META)を第2パラメタとし
て、versioning:with:をセレクタとす
るメッセージを送信する(ステップ172)。これによ
り、図11に示した処理が実行される。ステップ172
の結果から、既にメタバージョンが存在しているかどう
か、すなわちバージョン化済みであるかどうかを判定し
(ステップ173)、OBJが既にバージョン化済みで
あった場合、ステップ171で生成したメタバージョン
(META)を消去し(ステップ174)、OBJが既
にバージョン化済みである旨を返して(ステップ17
5)処理を終了する。OBJがバージョン化されていな
い場合、まずVersionTreeクラス130に、
ステップ172の結果リターンされる最初のバージョン
がルートノードとなるようにバージョントリーインスタ
ンス(TREE)を生成する(ステップ176)。さら
に、METAをレシーバとし、TREEをパラメタと
し、setVersionTree:をセレクタとする
メッセージを送信し、このMETAとTREEとの関係
を設定し(ステップ177)、ステップ172の結果リ
ターンされる最初のバージョンを返し(ステップ17
8)て、処理を終了する。
【0050】以下、CustomizedVersio
nManagerクラス150の他のメソッドについて
説明する。図18は、deriveFrom:メソッド
152の処理フローを示す。まず、第1パラメタで与え
られるオブジェクト(OBJ)を複写して、新しいバー
ジョン(VER)を生成する(ステップ181)。OB
Jをレシーバとし、getMetaVersionをセ
レクタとするメッセージを送信して、参照するメタバー
ジョン(META)を得る(ステップ182)。次に、
METAをレシーバとし、生成した子バージョンVER
を第1パラメタ、OBJを第2パラメタとして、add
DerivedVersion:from:を送信し
て、METAに生成したVERの情報を追加する(ステ
ップ183)。さらに、METAをレシーバとし、生成
した子バージョンVERをパラメタとして、setCu
rrent:を送信し、VERを代表バージョンに設定
(ステップ184)し、VERを返し(ステップ18
5)て処理を終了する。
【0051】図19は、getParent:メソッド
153の処理フローを示す図である。第1パラメタで与
えられたオブジェクト(OBJ)をレシーバとし、ge
tMetaVersionをセレクタとするメッセージ
を送信して、参照するメタバージョン(META)を得
る(ステップ191)。さらにそのMETAをレシーバ
として、getVersionTreeをセレクタとす
るメッセージを送信し、参照するバージョントリーイン
スタンス(TREE)を得(ステップ192)、このバ
ージョントリーインスタンスTREEから第1パラメタ
で与えられるバージョンの親バージョンを得てこれを返
す(ステップ193)。
【0052】図20は、getChildren:メソ
ッド154の処理フローを示す図である。第1パラメタ
で与えられたオブジェクト(OBJ)をレシーバとし、
getMetaVersionをセレクタとするメッセ
ージを送信して、参照するメタバージョン(META)
を得る(ステップ201)。さらにそのMETAをレシ
ーバとし、getVersionTreeをセレクタと
するメッセージを送信して、参照するバージョントリー
インスタンス(TREE)を得(ステップ202)、こ
のバージョントリーインスタンスTREEから、第1パ
ラメタで与えられたバージョンの子バージョンのリスト
を得てこれを返す(ステップ203)。
【0053】上記CustomizedVersion
Managerクラス150にインスタンスを生成する
と、このインスタンスは、クライアント30に固有のバ
ージョン管理機能を持ったバージョンマネジャとして動
作する。すなわち、このインスタンスをレシーバとし
て、上記CustomizedVersionMana
gerクラス150に定義されているメソッド91、1
51〜154が実行可能である。上記の例で示したよう
に、本発明によるオブジェクトサーバ20を用いると、
応用分野にマッチしたバージョン管理機能の実現が容易
になるという効果もある。
【0054】
【発明の効果】本発明によれば、バージョン化要求のな
いオブジェクトは、バージョン管理情報を保持するため
の余分なオブジェクトを持たないこと、バージョン管理
のためにユーザ定義のクラスに余分に付加されるインス
タンス変数は1つ、メソッドは2つであることから、バ
ージョン管理のために生じるメモリの浪費や、メッセー
ジ処理に対するオーバヘッドの少ないバージョン管理機
能が実現できる。
【図面の簡単な説明】
【図1】実施例の全体構成を示す図である。
【図2】実施例の動作の概要を示す図である。
【図3】クラスの記述内容の例を示す図である。
【図4】クラスのスーパクラスの記述内容の例を示す図
である。
【図5】クラスオブジェクトの内容を示す図である。
【図6】図5のクラスオブジェクトの内容に代わる内容
を示す図である。
【図7】バージョン化オブジェクトクラスの内容を示す
図である。
【図8】メタバージョンクラスの内容を示す図である。
【図9】バージョンマネジャクラスの内容を示す図であ
る。
【図10】本実施例のコンパイラが生成するクラスの内
容を示す図である。
【図11】versioning:with:メソッド
の処理フローを示す図である。
【図12】本実施例のメッセージ処理部の処理フローを
示す図である。
【図13】VersionTreeクラスの内容を示す
図である。
【図14】CustomizedMetaVersio
nクラスの内容を示す図である。
【図15】CustomizedVersionMan
agerクラスの内容を示す図である。
【図16】バージョン導出履歴のデータ構造を示す図で
ある。
【図17】versioning:メソッドの処理フロ
ーを示す図である。
【図18】deriveFrom:メソッドの処理フロ
ーを示す図である。
【図19】getParent:メソッドの処理フロー
を示す図である。
【図20】getChildren:メソッドの処理フ
ローを示す図である。
【符号の説明】
10 計算機システム 20 オブジェクトサーバ 21 通信処理部 22 メッセージ処理部 23 メモリ管理部 24 ストレージ管理部 30 クライアント 40 オブジェクトデータベース 50 システムライブラリ 51 バージョンオブジェクトクラス 52 メタバージョンクラス 53 バージョンマネジャクラス 54 コンパイラ 60 オブジェクト領域 70 アプリケーションプログラムライブラリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 古川 久美子 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 佐藤 和洋 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 丸山 剛男 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトに対する複数のバージョン
    を保持するオブジェクト指向データベースシステムであ
    って、 オブジェクト指向データベース中のオブジェクトについ
    て、当該オブジェクトのバージョン管理情報を保持する
    メタバージョンへのポインタを格納する属性を付加する
    手段と、当該属性に値を書き込む手段と、当該属性の値
    を読み込む手段と、 前記メタバージョンについては、前記オブジェクトの複
    数のバージョンを代表する唯1つの代表バージョンへの
    ポインタを格納する属性を付加する手段と、当該属性に
    値を書き込む手段と、当該属性の値を読み込む手段と、 与えられた1組のオブジェクトとメタバージョンより、
    付与された該オブジェクトを複写して該オブジェクトの
    最初のバージョンとなるオブジェクトを生成し、複写元
    の前記オブジェクトに該オブジェクトがジェネリックイ
    ンスタンスであることを示すタグを付加し、該オブジェ
    クトと該オブジェクトの前記最初のバージョンについ
    て、それぞれのメタバージョンへのポインタを格納する
    属性に前記付与されたメタバージョンへのポインタを示
    す値を書き込むオブジェクトのバージョン化手段と、 オブジェクトに付加されたメタバージョンへのポインタ
    を格納する属性の値、該メタバージョンが保持する該オ
    ブジェクトの代表バージョンへのポインタを格納する属
    性の値ならびに該オブジェクトがジェネリックインスタ
    ンスであることを示すタグの有無に基いて、該オブジェ
    クトへ送信されたメッセージを処理する手段、を有する
    ことを特徴とするオブジェクト指向データベースシステ
    ム。
  2. 【請求項2】 請求項1記載のオブジェクト指向データ
    ベースシステムにおいて、前記メタバージョンへのポイ
    ンタを格納する属性をインスタンス変数とし、当該属性
    に値を書き込む手段ならびに当該属性の値を読み込む手
    段をメソッドとして保持するバージョン化オブジェクト
    クラスをライブラリとして保持し、コンパイルを要求す
    るユーザのクラスに対して当該バージョン化オブジェク
    トクラスの定義を継承させることを特徴とするオブジェ
    クト指向データベースシステム。
  3. 【請求項3】 請求項1記載のオブジェクト指向データ
    ベースシステムにおいて、前記オブジェクトの複数のバ
    ージョンを要素とする集合オブジェクトへのポインタを
    格納する属性と、該集合オブジェクトの要素である複数
    のバージョンを代表する唯1つの代表バージョンへのポ
    インタを格納する属性と、前記ジェネリックインスタン
    スへのポインタを格納する属性をインスタンス変数と
    し、それぞれの属性に値を書き込む手段ならびに値を読
    み込む手段をメソッドとして保持するメタバージョンク
    ラスをライブラリとして保持することを特徴とする請求
    項1記載のオブジェクト指向データベースシステム。
  4. 【請求項4】 請求項1記載のオブジェクト指向データ
    ベースシステムにおいて、前記オブジェクトのバージョ
    ン化手段をメソッドとして保持するバージョンマネジャ
    クラスをライブラリとして保持することを特徴とする請
    求項1記載のオブジェクト指向データベースシステム。
  5. 【請求項5】 請求項1記載のオブジェクト指向データ
    ベースシステムにおいて、 前記メタバージョンへのポインタを格納する属性をイン
    スタンス変数とし、当該属性に値を書き込む手段ならび
    に当該属性の値を読み込む手段をメソッドとして保持す
    るバージョン化オブジェクトクラスをライブラリとして
    保持し、コンパイルを要求するユーザのクラスに対して
    当該バージョン化オブジェクトクラスの定義を継承さ
    せ、 前記オブジェクトの複数のバージョンを要素とする集合
    オブジェクトへのポインタを格納する属性と、該集合オ
    ブジェクトの要素である複数のバージョンを代表する唯
    1つの代表バージョンへのポインタを格納する属性と、
    前記ジェネリックインスタンスへのポインタを格納する
    属性をインスタンス変数とし、それぞれの属性に値を書
    き込む手段ならびに値を読み込む手段をメソッドとして
    保持するメタバージョンクラスをライブラリとして保持
    し、 前記オブジェクトのバージョン化手段をメソッドとして
    保持するバージョンマネジャクラスをライブラリとして
    保持することを特徴とするオブジェクト指向データベー
    スシステム。
  6. 【請求項6】 オブジェクト指向データベースシステム
    におけるバージョン管理方法であって、 当該オブジェクト指向データベース中のオブジェクト
    に、該オブジェクトのバージョン管理情報を保持するメ
    タバージョンへのポインタを格納する属性を持たせ、該
    メタバージョンには、前記オブジェクトのバージョンを
    要素とする集合オブジェクトへのポインタを格納する属
    性ならびに該集合オブジェクトの要素を代表する代表バ
    ージョンへのポインタを格納する属性を持たせておき、 オブジェクトの生成要求があった場合には、該要求によ
    り生成したオブジェクトの前記メタバージョンへのポイ
    ンタを格納する属性に、該メタバージョンが存在しない
    旨を設定しておき、 該オブジェクトのバージョン化要求があった場合には、
    該オブジェクトに対するメタバージョンを生成し、該オ
    ブジェクトを複写して該オブジェクトの最初のバージョ
    ンを生成し、該オブジェクトにはジェネリックインスタ
    ンスであることを示すタグを付加し、該オブジェクトな
    らびに該バージョンのメタバージョンへのポインタを格
    納する属性には、該オブジェクトに対して生成しておい
    た前記メタバージョンへのポインタを示す値を設定し、
    当該メタバージョンについては、該バージョンを要素と
    する集合オブジェクトを生成して、当該集合オブジェク
    トへのポインタを示す値と該バージョンへのポインタを
    示す値を、それぞれ、バージョンを要素とする集合オブ
    ジェクトへのポインタを格納する属性、集合オブジェク
    トの要素を代表する代表バージョンへのポインタを格納
    する属性に設定しておき、 該オブジェクトに新たにバージョンを追加する場合は、
    該オブジェクトのメタバージョンに設定されている集合
    オブジェクトに、当該バージョンを要素として追加し、 該オブジェクトの代表バージョンを変更する場合は、該
    オブジェクトのメタバージョンに設定されている代表バ
    ージョンへのポインタを、新たな代表バージョンへのポ
    インタに書き換え、 メッセージを処理する場合には、そのメッセージのレシ
    ーバに指定されているオブジェクトについて、該オブジ
    ェクトがジェネリックインスタンスであることを表すタ
    グがあるか否かを判定し、該オブジェクトがジェネリッ
    クインスタンスでない場合は、該オブジェクトをレシー
    バとしてメッセージを処理し、該オブジェクトがジェネ
    リックインスタンスである場合は、該オブジェクトのメ
    タバージョンを得、該メタバージョンから代表バージョ
    ンを得、当該代表バージョンをレシーバとしてメッセー
    ジを処理することを特徴とするバージョン管理方法。
JP4090246A 1992-03-16 1992-03-16 オブジェクト指向データベースシステム及びそのバージョン管理方法 Pending JPH05265838A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4090246A JPH05265838A (ja) 1992-03-16 1992-03-16 オブジェクト指向データベースシステム及びそのバージョン管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4090246A JPH05265838A (ja) 1992-03-16 1992-03-16 オブジェクト指向データベースシステム及びそのバージョン管理方法

Publications (1)

Publication Number Publication Date
JPH05265838A true JPH05265838A (ja) 1993-10-15

Family

ID=13993148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4090246A Pending JPH05265838A (ja) 1992-03-16 1992-03-16 オブジェクト指向データベースシステム及びそのバージョン管理方法

Country Status (1)

Country Link
JP (1) JPH05265838A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083326A (ja) * 1996-05-01 1998-03-31 Internatl Business Mach Corp <Ibm> トレース・データ収集方法およびコンピュータ読み取り可能コード
US7251645B1 (en) 1999-04-07 2007-07-31 Ns Solutions Corporation Data processing apparatus, data processing system, data processing method, and recording medium
US8010887B2 (en) 2001-09-21 2011-08-30 International Business Machines Corporation Implementing versioning support for data using a two-table approach that maximizes database efficiency

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1083326A (ja) * 1996-05-01 1998-03-31 Internatl Business Mach Corp <Ibm> トレース・データ収集方法およびコンピュータ読み取り可能コード
US7251645B1 (en) 1999-04-07 2007-07-31 Ns Solutions Corporation Data processing apparatus, data processing system, data processing method, and recording medium
US7752232B2 (en) 1999-04-07 2010-07-06 Ns Solutions Corporation Data processing apparatus, data processing system, data processing method, and recording medium
US8010887B2 (en) 2001-09-21 2011-08-30 International Business Machines Corporation Implementing versioning support for data using a two-table approach that maximizes database efficiency

Similar Documents

Publication Publication Date Title
JP4027679B2 (ja) コンポーネント接続管理方法およびその方法をコンピュータで制御するためのコンピュータ読取り可能な記憶媒体
US6907433B2 (en) System and method for managing object to relational one-to-many mapping
US6704803B2 (en) Method and system for distributing data events over an information bus
JP4406609B2 (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
JP4070248B2 (ja) オブジェクト接続を動的に発生する方法及びシステム
US5581760A (en) Method and system for referring to and binding to objects using identifier objects
US8024295B2 (en) Method and apparatus for archiving and unarchiving objects
JP3790650B2 (ja) オブジェクト指向トランザクション・システムによるトランザクションの完了時にリレーショナル・データベース上で実行されるデータベース・オペレーションに対応するオブジェクトを順序付けるシステム及び方法並びに該方法を実行するためのプログラムを記憶したプログラム記憶媒体
JP4855656B2 (ja) 複数のオブジェクトをシリアライズする方法
JP2986051B2 (ja) オブジェクト指向コンピュータ・システム及びオブジェクト実行方法
US6704804B1 (en) Method and system for communicating information among interactive applications
US20110173220A1 (en) Generating web services from business intelligence queries
JPH03137730A (ja) オブジエクト指向コンピユータ・システム
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
Estublier et al. Three dimensional versioning
US6941309B2 (en) Object integrated management system
US6266708B1 (en) Object oriented application program development framework mechanism
US20030061398A1 (en) Method and system for retrieving data over an information bus
US7702647B2 (en) Method and structure for unstructured domain-independent object-oriented information middleware
Blair et al. A knowledge-based operating system
CN112835638A (zh) 一种基于嵌入式应用程序的配置信息管理方法及装置
WO2012024435A2 (en) System and method for execution of high performance computing applications
US20050080765A1 (en) Modeling and implementing complex data access operations based on lower level traditional operations
US8762421B2 (en) Accessing entities of data access layer
JPH05265838A (ja) オブジェクト指向データベースシステム及びそのバージョン管理方法