JPH0644128A - オブジェクト指向プログラミングを支援するデータベース管理システム及び方法 - Google Patents
オブジェクト指向プログラミングを支援するデータベース管理システム及び方法Info
- Publication number
- JPH0644128A JPH0644128A JP3125790A JP12579091A JPH0644128A JP H0644128 A JPH0644128 A JP H0644128A JP 3125790 A JP3125790 A JP 3125790A JP 12579091 A JP12579091 A JP 12579091A JP H0644128 A JPH0644128 A JP H0644128A
- Authority
- JP
- Japan
- Prior art keywords
- application
- database
- class
- objects
- capsule
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/954—Relational
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/955—Object-oriented
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
なくとも一部分が書かれているアプリケーションプログ
ラムによって作成されたオブジェクトの長語による記憶
及び検索を支援する。 【構成】 データ定義言語変換、オブジェクトマネジメ
ントシステム42、オブジェクト変換システム52及び
永続的オブジェクト記憶サーバ54で構成し、アプリケ
ーション、データベース管理システム及びデータベース
間の相互作用の回数を減少するためにオブジェクトフォ
ールト機能を実行する。
Description
ムに関し、特にオブジェクト指向プログラミング言語で
書かれた応用プログラムによって作成されたオブジェク
トの長語での記憶及び検索のための支援を与えるシステ
ム及び方法に間する。
タ支援ソフトウエア設計、マルチメディア及びハイパー
メディア情報システム、人工知能エキスパートシステム
等、最新のコンピュータソフトウエアアプリケーション
の多くは、その内容及びオブジェクト間関係において従
来のシステムより格段に複雑なデータモデルを有する。
オブジェクト指向言語はアプリケーション開発者にこれ
らのアプリケーションに固有なデータモデルを作成し走
査する機構を提供する。データベースシステムはこれら
のアプリケーションによって作成されたデータを長語で
記憶する。しかしながら、既存の言語では長語による記
憶やオブジェクトの共用ができず、既存の商用データベ
ースシステム(階層、網、関係)は必要とする複雑なオ
ブジェクト指向データモデルを支援せず、更に既存のデ
ータベースシステムはアプリケーション開発者に異なる
言語及びモデリング範例を用いてアプリケーションを構
築することを要求するので、既存の言語及びデータベー
スはこれらのアプリケーションを開発するには不十分で
ある。
(OODB)を開発するために種々の開発や商業上の努
力が払われてきた。これらのOODBは、用いられるデ
ータモデルの種類、アプリケーションプログラムの相互
作用、オブジェクトにアクセスする方法、永続的データ
記憶方法等において、異なる。これら現在用いられてい
るOODBおよびその弱点について考察しよう。
ード社)及びジェムストーン(GemStone、セル
ビオコーポレーション社)は新しい所有権を主張できる
(proprietary)オブジェクト指向データモ
デルを用いた代表的OODBであり、一方、ブイベース
(Vbase、オントロジック社)、オリオン(Ori
on、マイクロエレクトロニクスアンドコンピュータテ
クノロジーコーポレーション社)及びドーム(DOM
E、ドームソフトウエアコーポレーション)は既存のプ
ログラム言語のデータモデルに所有権を主張できる拡張
機能として組込まれるOODBの例である。このような
種類のOODBでは、アプリケーション開発者は効果的
にOODBを使うために新しい所有権を主張できるデー
タモデルを修得しなくてはならない。これらのデータモ
デルは新しいので、これらを用いると、アプリケーショ
ン開発者が新しい言語を修得するため、生産性の損失と
なることがよくある。オリオンでは、使用者によって定
義されたクラスのインスタンスは、オリオンで定義され
たクラスでなければデータベースに記憶することができ
ない。更に、ジェムストーンやオリオンはそれらのクラ
スのインスタンスの移行を許さない。即ち、ゲムストー
ンまたはオリオンを基にしたアプリケーション内で作成
された各オブジェクトは特に削除指定しない限りデータ
ベースに記憶される。新しいデータモデルを開発する上
での別の問題は、アプリケーション開発者に言語コンパ
イラ、オブジェクトライブラリ及びプログラムデバッガ
等のようなアプリケーション開発ツールの単一ソースを
用いることを要求することであり、これらOODBの広
範囲の普及を制限してしまう。
レイ大学)は、別の種類のデータモデルである既存の関
係データベースに所有権を主張できる機能拡張するデー
タモデルを用いたOODBの例である。ポストガースは
拡張された関係及びオブジェクト指向データベースの組
合せである。オブジェクトは関係テーブルの記述を用い
て作成され、オブジェクトを操作するための関数はポス
トクエル(POSTQUEL)照会言語及び従来の言語
(C及びLISP)を用いて作成される。また、アプリ
ケーション開発者が使用者定義型インデックスを付加え
たい時は、ポストガース関数を用いて記述し登録し、同
一の使用者定義型の2つのオブジェクト間で様々な比較
処理を行なわなくてはならない。後者の関数作成モード
ではアプリケーション開発者はポストガースとC/LI
SPとの間でマップする必要が有り、このため、エラー
の原因となったり、アプリケーションシステムの開発と
いう仕事から離れてしまうので、この方法ではアプリケ
ーション構築の際に異なる言語やモデリング範例を用い
るというやっかいな要求を軽減することには全く役にた
たない。このオブジェクト指向及び関係データモデル間
のマッピングの問題は、インテーメディアオープスラ
(Intermedia OOPSLA)’87の会議
論文で深く議論されている。
社)及びオブジェクトストア(Object Stor
e、オブジェクトデザイン社)は最後の種類のデータモ
デル、即ち既存のプログラミング言語のデータモデル
(例えば、ソフトウェアプログラムを書いたりデータベ
ースと相互操作するためにC++プログラミング言語デ
ータモデルを用いる)を用いるOODBの代表例であ
る。しかしながら、両システムは、付加的コードを付加
えたり(オントス)、または新しく標準でないC++言
語構造を変換する(オブジェクトストア)には所有権を
主張できる言語コンパイラを用いる必要がある。最初の
2つの種類のOODBのように、この方法でもアプリケ
ーション開発者はアプリケーション開発ツールの単一ソ
ースに頼らなければならないので、これらOODBの広
範囲の普及を制限してしまう。
に加えて、あるアプリケーションプログラムがOODB
と相互作用する時に困難が生じる。アイリスOODBで
は、アプリケーション開発者は所有権を主張できるアイ
リス言語を用いてオブジェクトの型を定義しオブジェク
トを操作するための関数を開発する。アイリスは対話型
インターフェースを与え、アイリスのオブジェクトを検
索または操作することができる。要求は関係照会を行な
うことによって評価され(オブジェクトは関係テーブル
に記憶されるので)、結果はオブジェクト値や参照とし
てではなくアイリスの表現として戻される。アイリスは
組込まれたオブジェクトSQLインターフェース及びC
言語インターフェース(オブジェクト指向型ではない)
を与え、このためアプリケーション開発者は既存の(お
そらくオブジェクト指向型ではない)プログラミング言
語で書かれた別個な関数を登録することができる。これ
らの方法では、アプリケーション開発者はアイリスオブ
ジェクトをプログラム言語でアクセスできるデータ構造
にマップしなくてはならないので、上述の問題が再び起
こることになる。
も、アプリケーション開発者がオブジェクト型やオブジ
ェクトを操作するための関数を定義するのに用いる新し
い言語オーパル(OPAL)を定義した。ジェムストー
ンはオーパルのオブジェクトや関数を開発するための対
話型開発環境を与える。ジェムストーンは既存のプログ
ラム言語(Cやスモールトーク(Smalltal
k))がジェムストーンと相互作用するための機構も用
意している。しかしながら、アプリケーション開発者が
オパール言語のみを用いるのでないなら、オーパルオブ
ジェクトをプログラム言語でアクセスできる構造にマッ
ピングするため、データベースの相互作用には2つのモ
デル及び言語を使わなくてはならないので、先に述べた
問題が生じることになる。
オブジェクト型を定義するためのTDLとアプリケーシ
ョンプログラムを開発するためのCOP(Cプログラム
言語の拡張版)とを必要とする。アプリケーション開発
者はデータモデルとプログラム言語との間でオブジェク
トをマップする必要はないが、プログラムの開発中には
2つの言語をやはり用いなければならないので、上述の
問題がここでも生じる。更にこのシステムによる制限に
は他のプログラミング言語からデータベースへのアクセ
スを提供していないことが含まれる。
ラミング言語、コモンLispをデータモデルに用いた
が、彼等はその言語に数種の所有権を主張できる拡張機
能を開発した。ブイベースのように、ここでもデータモ
デルとプログラミング言語との間でオリオンOODBに
対して変換する必要はない。しかし、この方法は所有権
を主張できる言語トランスレータを用いる必要がある。
分のアプリケーション開発者に、ポストガースの照会言
語であるポストクエルを主に用いたデータベースを相互
作用するプログラムを書くことを期待している。オブジ
ェクト間のナビゲーション(navigation)は
可能であるが、照会は参照するオブジェクトに直接アク
セスする代りにナビゲーションを行なうように発行され
なければならない。アプリケーション開発者はプログラ
ム言語ステートメント、ポストクエル照会文、及び/又
はポストガースの内部関数のコールを含む彼等自身の関
数を定義し実施することができる。このように、アプリ
ケーション開発者は彼等のアプリケーションシステムを
構築するのに2つ以上のデータモデルを扱わなければな
らないことがある。このような要求は前述の問題を軽減
することができない。
ータベースへのインターフェースを与える。しかしなが
ら、プログラムとオントスとの間の相互作用の量は、ア
プリケーション開発者によって与えられなければならな
い特別な関数(例えばオブジェクト構成、変換、記憶/
検索等)の要求による正当なまたは必要な量を遙かに越
えている。これは、データベースシステムによって処理
し得る仕事までアプリケーション開発者に強いることに
なる。オブジェクトストアもC++言語からデータベー
スのインターフェースを与える。しかし、このインター
フェースは新たなC++言語構成の意味を再定義する
か、或いは加えることによって達成されるので、オブジ
ェクトデザイン社の所有権を主張できるC++言語トラ
ンスレータを必要とし、したがって、彼等のシステムの
広範囲の受入れを制限してしまう。
は、既に定義済の関数を用いるか、明示的な照会を用い
てオブジェクトを操作するか、またはプログラミング言
語において明白な参照をコードすることによって行なわ
れる。アイリスOODBではアプリケーション開発者は
関数をコールしてオブジェクト内の値を検索または変更
する。プログラムはオブジェクトへの参照を受取ること
ができず、他の関数に移される。ジェムストーン、ブイ
ベースおよびオリオンOODBでは、個々のオブジェク
トをアクセスし、関数に渡して、検索したり値を指定し
たりする(実際は関係タプル(tuple)。ポストガ
ースは異種の関数にオブジェクトへのアクセスを許す
が、上述したように、関係データモデルから異種関数の
プログラム言語に変換しなくてはならない。
発者はデータベースから明示的にオブジェクトを検索で
きるが(アイリスとポストガースではできない)、アプ
リケーション開発者はいつ元のオブジェクトに関するオ
ブジェクトが検索されるかを特定することはできない。
例えば、アプリケーション開発者は2つの内の1つのモ
ードを用いてオントスにおけるオブジェクトにアクセス
できる。最初のモードでは、オブジェクトは明示的に検
索され、参照されるオブジェクトはオブジェクトフォー
ルト能力を用いて暗黙的に検索される。別のモードで
は、1つ以上の関係オブジェクトが明示的に検索される
が、アプリケーションは、参照オブジェクトが既にメモ
リ内にあるか断続的にチェックし、もしなければ明示的
にそれを検索する。この場合、アプリケーション開発者
は同一プログラム内の永続的オブジェクトにアクセスす
る2つの完全に異なるモデルを用いなければならず、こ
のため、別のモードが用いられるべきところに違うモー
ドを不注意かつ自然に用いることによるプログラム内の
間違えを用意に起こす原因となる。
ェクトアクセスに関して上述のOODBとは全く異な
る。オブジェクトストアのモデルはOODBより永続的
記憶(仮想記憶コンピュータオペレーティングシステム
の拡張版)に類似している。オブジェクトデザインはC
++プログラム言語とユニックス(UNIX、商標)オ
ペレーティングシステムとの仮想記憶管理機能を完全に
再移植することを選択した。いつ永続的オブジェクトが
作成されるか或いはデータベースから検索されても、オ
ブジェクトデザインによって制御される主メモリの一部
分に入れられる。このように、オブジェクトへの参照は
本質的にオブジェクトデザインのソフトウエアによって
監視されている。もしオブジェクトが現在主メモリ内に
なければ、データベースから検索されて主メモリに入れ
られる。この形式のメモリ管理は、永続性を必要とする
いかなるクラスまたはクラスライブラリでもこのメモリ
管理機構を用いて書かなくてはならず、動的メモリ管理
を行なわないことを要求するので、ライブラリのあるバ
ージョンは永続的使用に、あるバージョンは一時的使用
にということになる。この方法はオブジェクトの記憶及
び検索機能を改善するが、基になるコンピュータオペレ
ーティングシステム及びメモリ構成に依存し、したがっ
て、他のコンピュータシステムには移植できないもので
ある。
方法は、どれもがアプリケーションプログラムによるオ
ブジェクトのアクセスに制限があり、プログラムがオブ
ジェクトにアクセスするには付加的仕事が必要となる。
殆どのOODB(アイリスとドームを除く)は、既存の
ファイル管理システムを利用して永続的オブジェクト記
憶機能を開発してきた。これらは、ディスク保存構成及
び管理、同時制御、トランザクション管理、通信、及び
保存管理サブシステム等新たな機能を開発しなくてはな
らなかった。この方法は全データベースシステムソフト
ウエアをより複雑にしている。
これらのオブジェクトを記憶するのに既存の商用関係デ
ータベース管理システム(RDBMS)を用いている。
アイリスOODBはヒューレットパッカードの関係デー
タベースHP−SQLを用いているが、SQLインター
フェースをデータベースに用いておらず、オブジェクト
へのアクセスを入手可能なアイリス関数、アイリス対話
型ブラウザー、C言語インターフェース、そして組込ま
れたアイリスSQLに制限している。アイリスはアプリ
ケーション開発者にオブジェクトがどのように記憶され
ているかを定義させるが、ヒューレットパッカードのR
DBMSを用いることによってオブジェクトのサイズが
制限されることになる。ドームOODBはオラクル(O
racle)社のオラクルRDBMSを用い、ポストガ
ースシステムは独自の関係記憶システムを有し、オブジ
ェクトを1つ以上の関係テーブル内の1つ以上のエント
リーに分解する。この方法は、1つのオブジェクトから
1つ以上の属性値が検索される時はいつでも関係結合を
必要とする。関係結合処理は計算上高価である。
ODBでは、同時制御の単位がオブジェクトではなく、
2次的メモリセグメントのぺージとなっている。この方
法は2次的メモリ読み書き機能を向上させるが、記憶機
能に必要以上にデータをリード、ライト、ロックさせる
結果となる。更に、これは、アプリケーション開発者で
はなくOODBシステムが同時制御の単位を選択するの
で、オブジェクトへの同時アクセスの量が制限される。
永続的オブジェクト記憶装置内で集合化している。ジェ
ムストン及びオリオンは、データベース全体が定義され
るときにのみ関連するオブジェクトの集合化制御の指定
を許可する。ブイベース及びオントスでは実行時に集合
化制御の指定ができ、これによってある永続的オブジェ
クトを別の永続的オブジェクトにできるだけ近くに記憶
することができる。オブジェクトストアでも実行時に集
合化制御の指定ができ、特定のデータベースに統計的に
配置されたオブジェクトを記憶し、動的に配置されたオ
ブジェクトを特定のデータベースに、または別の永続的
オブジェクトにできるだけ接近して記憶させることがで
きる。これは、アプリケーション開発者に類似したオブ
ジェクトを異なる集合化モデルで扱うことを要求するの
で、別のモードを用いるべき所に他のモードを不用意に
用いることによってプログラム内にエラーが生じる原因
となり得る。これらのシステムは、このような集合化は
システムが無視するかもしれない純粋なヒントであるこ
とを示している。これら集合化のヒントは変更された際
にデータベースの再構築を必要とすることがあり、した
がって、オブジェクトの物理的集合化を変更することに
よってデータベースの性能を調整するアプリケーション
開発者の能力を制限してしまう。更に、アイリス、ポス
トガース、ドーム等のような関係記憶に基づくシステム
では使用者はオブジェクトの集合化を許されていない。
発明は、アプリケーションプログラムによって作成され
たオブジェクトの長語での記憶及び検索を支援し、既存
のオブジェクト指向型プログラミング言語を用いること
によって、既存の言語トランスレータまたはコンピュー
タオペレーティングシステムに何の変更も加えることな
く、したがってアプリケーション開発者にコンピュータ
システムまたは言語トランスレータの選択に何等制限を
設けることもなく、他のコンピュータシステムにおいて
も使用可能とする、データベース管理システム及び方法
を提供することを目的とする。
標準のオブジェクト指向型プログラミングインターフェ
ースを設け、オブジェクト指向型及び機能型、または他
のプログラミング形式を混合する必要性をなくし、プロ
グラムのインターフェースを本発明のそれにコーディン
グする際にアプリケーション開発者を混乱させるような
ことのないデータベース管理システム及び方法を提供す
ることである。
ジェクトに直交的に永続性を付加し、これによってアプ
リケーション開発者が永続的及び非永続的オブジェクト
をほぼ同様に扱うことができ、アプリケーションシステ
ムを構築する際に2つ以上のデータモデルを用いる必要
性を排除したデータベース管理システム及び方法を提供
することである。
ン開発者がオブジェクト定義時に、関連するオブジェク
トが、動的または静的に作成されていようと、記憶され
る時どのように集合化すべきかを指定することができ、
これにより記憶オブジェクトのサイズを調整する能力を
与え、システム全体の性能を向上させるデータベース管
理システム及び方法を提供することである。
ション開発者がデータベース内に記憶されたオブジェク
トにアクセスするためにコーディングしなくてはならな
いデータベース管理システムとの相互作用の回数を減少
するデータベース管理システム及び方法を提供すること
である。
ン開発者にアプリケーション実行時に永続的オブジェク
トをセーブする前に、与えられた永続的オブジェクトか
ら参照され、明示的なまたは暗黙的な検索のいずれかに
よって、この与えられた永続的オブジェクトが後に主メ
モリに配されるのと同時に、永続的オブジェクトを主メ
モリに配するか否かを指定させ、システム全体の性能を
向上させるデータベース管理システム及び方法を提供す
ることである。
的オブジェクトの代りに個々のオブジェクトをロックす
る単位とすることによってデータベース内のオブジェク
トの同時使用を最大にすることである。本発明の更に他
の目的は、関係データベース管理システムを用いてオブ
ジェクトの外部表現及びオブジェクトからの外部参照を
記憶することにより、オブジェクトを多数の関係タプル
(tuple)に分解することなく、オブジェクトを永
続的オブジェクト記憶サーバに記憶し、システム全体の
性能を向上させることである。本発明の更に別の目的
は、一律のオブジェクト変換方法を用いることにより、
アプリケーション開発者が複雑なコンピュータ及び言語
依存タスクを操作する必要をなくしたデータベース管理
システム及び方法を提供することである。
じて、本発明の好適実施例はデータベースサービスをア
プリケーション開発者に提供する4本のソフトウエアモ
ジュールからなる。これらを、データ定義言語(DD
L)トランスレータ、オブジェクト管理システム(OM
S)、オブジェクト変換システム(OTS)、及び永続
的オブジェクト記憶サーバ(POSサーバ)と呼ぶ。
スレータに対する変更、または所有権を主張できる言語
トランスレータの開発などは全く必要としないプログラ
ミング言語のアプリケーションインターフェースを提供
する。更に、本発明は、アプリケーションがデータベー
ス管理システム及びデータベース自身と行なわなければ
ならない相互作用の回数を減少するオブジェクトフォー
ルト機能を具える。オブジェクトのアクセス及びオブジ
ェクト間のナビゲーションは、既存の言語処理を用いて
明快に行なうことができる。
ースとの相互作用には1つのデータモデルを用いプログ
ラミング言語でオブジェクトを操作するには別のデータ
モデルを用いるように要求する代りに、本発明は、C+
+やCLOSのようにデータベースのデータモデルとし
て標準的な既存のオブジェクト指向型言語のデータモデ
ルを用いる。これによって、上述した技術に関連した問
題を軽減することができる。
グラミング言語にも実施でき、したがって如何なる特定
の言語にも如何様にも限定されるべきものではないが、
C++とコモンLispの双方に実施されている。C+
+の実施例では、アプリケーション開発者はアプリケー
ションプログラムにおいて、バッチ処理モードのDDL
モジュール及び標準C++シンタックスを用いたOMS
モジュールとのみ対話する。DDLモジュールは標準C
++プログラミング言語ステートメント(若干の付加的
シンタックス構成と共に)のオブジェクト型の記述を受
入れ、記述から十分な情報を抽出し、OTSモジュール
にオブジェクトをその主及び第2のメモリ表現間で変換
させる。この種の記述情報はC++ランタイムシステム
では得られないので、この過程が必要となる。アーキテ
クチャに依存しない変換を達成するに、DDLトランス
レータは本発明のアプリケーションが実行される特定の
コンピュータアーキテクチャ及びソフトウェアシステム
環境を記述した情報も受入れる。POSサーバは商用関
係データベースに対し標準SQLインターフェースを用
いる。
ション開発者は彼等のアプリケーションプログラムにお
いて標準コモンLispシンタックスを用いたOMSモ
ジュールとのみ対話する。OTSモジュールはプログラ
ム実行中にCLOS記述から必要な情報を抽出すること
ができ、その情報は既にコモンLispランタイムシス
テムにて得ることができるので、DDLモジュールは実
施されていない。この実施例は共同発明者によって開発
されたPOSサーバの生ディスク(raw disk−
based)を基にしたものを用いる。
理を行なうためのアプリケーションインターフェースを
提供する。即ち、本発明を開始及び終了し、データベー
ストランザクションを開始及び終了させ(変更したオブ
ジェクトを夫々セーブまたは破棄する)、オブジェクト
を永続的なものとして(データベースにセーブするた
め)設計し、データベースから明示的にオブジェクトを
検索し、オブジェクトを変更されたものとして設計し、
メモリからオブジェクトを除去し、オブジェクトの論理
的集合化のためのデフォルト記憶グループを定義する等
である。OMSモジュールは、アプリケーションが現在
主メモリにはない既にセーブされたオブジェクトを参照
する時、データベースからのオブジェクトの自動的かつ
暗黙的な検索も支援する。また、OMSは、オブジェク
トの検索を簡素化するために永続的オブジェクトに使用
者定義の名称を付加する機能も設けている。この名称−
オブジェクト管理モジュールはよく定義されたインター
フェースを有し、アプリケーション開発者の選択したモ
ジュールと交換することができる。
ンプログラムにデータベースから永続的オブジェクトを
検索し、永続的オブジェクトのデータメンバまたは関数
を参照させることができる。本発明はこれを、永続的オ
ブジェクトを参照するための現在用いられている言語構
成と同様に機能する(C++ではポインタ、コモンLi
spではシンボル及び値)、新しいデータ型即ちクラス
ZG PTRを定義することによって達成する。更に、
本発明は、アプリケーションプログラムに、オブジェク
トフォールト機構を用いてデータベースから永続的オブ
ジェクトを暗黙的に検索させることができる。アプリケ
ーションプログラムが永続的オブジェクトを参照する
時、そのオブジェクトが既に主メモリにあるなら、アプ
リケーションプログラムはその処理を継続する。そのオ
ブジェクトが主メモリになければ、OMSは自動的にオ
ブジェクトをPOSから検索し、OTSモジュールにオ
ブジェクトを変換し主メモリに配置するように要求す
る。最後に、アプリケーションプログラムは、このオブ
ジェクトフォールト処理を意識せずに処理を進めること
ができる。
キテクチャとは独立して、オブジェクトを主メモリ表現
と第2メモリ表現との間で変換する。オブジェクトがセ
ーブされている時、OTSモジュールはDDLトランス
レータから抽出された情報を用いてオブジェクトの範囲
又は境界を判別し、コンピュータアーキテクチャとは独
立した表現で境界内の全てのオブジェクトを変換する。
オブジェクトがPOSから検索される時、OTSは適切
な主メモリ表現を作成し、記憶されている表現からオブ
ジェクトの値を割当て、オブジェクトに含まれる各参照
のOMSデータ構成を他の永続的オブジェクトに割当て
る。
ョンプログラムによって作成されたオブジェクトに安定
した記憶機能を与える。オブジェクトはコンピュータの
長語即ち第2メモリに記憶される。POSサーバはまた
OMSモジュールに同時制御の基本的かつ微細なトラン
ザクションを与える(全てのオブジェクトがセーブされ
るか、なにもセイブされない)。オブジェクトはOTS
のみが理解する型を指定されていないバイト配列として
記憶される。
メモリアーキテクチャに関する情報を利用して、コンピ
ュータのアーキテクチャとは独立した表現でオブジェク
トをPOSサーバを介して記憶する。オブジェクトの内
容及び構成に関する情報は、支援言語で宣言されたオブ
ジェクト定義から抽出される。これによって、いかなる
支援言語で書かれたアプリケーションでも同一のPOS
にオブジェクトを記憶することができる。現在、POS
サーバは既存の商用関係データベース管理システム(R
DBMS)を用いてモジュラー形式で移動可能に実施さ
れている。POSサーバは、組込まれた構造型照会言語
(SQL)インターフェースを用いてRDBMSと相互
作用する。本発明の上述の及び他の特徴及び利点は、添
付図面を用いて以下に述べる好適実施例の詳細な説明か
ら当業者には明らかであろう。
理、永続性、共用を必要とするオブジェクト指向型アプ
リケーションシステムの開発に応用できるものである。
本発明を詳細に説明する前に、本発明の好適実施例はC
++にて実施した場合について詳しく述べるが、如何な
るオブジェクト指向型プログラミング言語にも実施可能
であることを述べておく。現在、本発明のC++版は、
サンマイクロシステムスインコーポレーテッドのサン4
またはデジタルエクイップメントコーポレーションのD
EC3100シリーズワークステーション等のシステム
で実行可能である。また、本発明のコモンLISP版は
テキサスインスツルメントインコーポレーテッドのエク
スプローラシリーズのコンピュータワークステーション
のようなシステムで実行可能である。
処理内容のブロック図である。人間、他のコンピュー
タ、或いは他のアプリケーションであるユーザ8は、ユ
ーザインターフェース管理システム12に情報を送りそ
こから受取るために対話型装置10と相互作用する。対
話型装置10は通信ハードウエアとしても知られてい
る。ユーザインターフェース管理システム12は通信ソ
フトウエアとして知られ、アプリケーションソフトウエ
アプログラム14(以後アプリケーション14と呼ぶ)
に情報を送り、そこから情報を受取る。アプリケーショ
ン14はコンピュータのオペレーティングシステムソフ
トウエア16(以後OS16と呼ぶ)及び本発明(以後
OODB18と呼ぶ)とのインターフェースとして働
く。OODB18は種々のオペレーティングシステムサ
ービスを利用するためにOS16とインターフェースす
る。OODB18はまた関係データベース管理システム
ソフトウエア20(以後RDBMS20と呼ぶ)とイン
ターフェースして、アプリケーション14で作成された
オブジェクトを記憶及び検索する。RDBMS20はオ
ペレーティングシステム16とインターフェースし種々
のOSシステムサービスを利用し、第2メモリ記憶装置
24とインターフェースしてアプリケーション14によ
って作成されOODB18によって管理されるオブジェ
クトを物理的に記憶または検索する。OS16は、シス
テムサービスをアプリケーション14、OODB18及
びRDBMS20に与える必要があれば、別に設けられ
たコンピュータハードウエアともインターフェースす
る。
本発明の好適実施例のアーキテクチャを示すブロック図
である。OODB18内の全てのモジュールは、C++
型記述40(以後型40と呼ぶ)で連係され、1組のア
プリケーションによって定義されたクラスに対してデー
タ定義言語トランスレータ(以後DDL80と呼ぶ、図
3参照)を実行することによって生成され、アプリケー
ション14によって連係されるライブラリを形成し、図
1に示されるコンピュータ環境において実行可能なプロ
グラムを形成する。
管理システム42(以後OMS42と呼ぶ)とインター
フェースし、永続的オブジェクト参照44(以後PTR
44と呼ぶ)を作成または削除し、OMS42によって
管理される永続的オブジェクトを作成、検索、及びアク
セスする。OMS42は名称管理プログラム46とイン
ターフェースし、アプリケーション14によって供給さ
れた名称のPTR44を用いてアプリケーション14に
よって作成または検索された独立永続的オブジェクトと
の関連を管理する。OMS42はデーモンテーブル48
ともインターフェースし、DDL80を実行することに
よってアプリケーション14によって定義されOODB
18によって登録された関数を実行する。更にOMS4
2はオブジェクトマップ50ともインターフェースし、
PTR44によって参照される実際の永続的オブジェク
トを管理する。また、OMS42はオブジェクト変換シ
ステム52(以後OTS52と呼ぶ)ともインターフェ
ースし、主メモリ表現及び第2メモリ表現の間で永続的
オブジェクトを変換する。OTS52はDDL80によ
って作成された型40とインターフェースする。最後に
OMS42は永続的オブジェクトサーバ54(以後PO
S Server54と呼ぶ)とインターフェースし、
OMS42によって管理されている永続的オブジェクト
を記憶及び検索する。
照会言語(SQL)インターフェースを用いてRDBM
S20とインターフェースし、OMS42によって管理
されている永続的オブジェクトを物理的に記憶及び検索
する。RDBMS20は第2メモリ記憶装置24とイン
ターフェースし、アプリケーション14によって作成さ
れOODB18によって管理されているオブジェクトを
物理的に記憶及び検索する。
MS42、名称管理プログラム46、デーモンテーブル
48、オブジェクトマップ50、PTR44、OTS5
2、そしてPOS Server54)について以下に
詳細に説明する。本発明とインターフェースするアプリ
ケーションシステムを開発する前に、アプリケーション
開発者は、本発明とアプリケーションシステムで用いる
C++のクラスを登録しなくてはならない。これは以下
に述べるDDLトランスレータを実行することによって
達成される。DDLトランスレータ80(以後DDL8
0と呼ぶ)は、連続的に実行される別個の3つのアプリ
ケーションプログラムが基となっている(図3参照)。
DDL80は入力としてアプリケーション14の開発者
によって書かれた1つ以上のデータ定義言語ソースファ
イル26を受取る。これらのソースファイル26は、C
++言語によるクラス定義と、本発明によって定義され
た付加的キーワード及びシンタックス構成を含む(この
ようなDDLソースファイルの例については図1参
照)。DDL80はソースファイル26から十分な情報
を抽出し、OMS42及びOTS52によって用いられ
る型記述情報及びソースファイルにおける各クラス定義
に対する1組のC++ソースファイル38とを含むC+
+ソースファイル40(以後型40と呼ぶ。このような
C++ソースファイルの例については表2参照)を作成
する。これらのファイルは次にアプリケーション開発者
によって本発明を用いてクラスのインスタンスを作成及
び操作し更に記憶または検索するC++プログラムを書
き、コンパイルし、実行する時に用いられる。
のものは市販されているC言語プリプロセッサcpp2
8である。このプログラムは入力としてソースファイル
26を受取り、評価され拡張された全てのcppディレ
クティブ(directive)を含む入力ファイルの
コピーを作成する(拡張ファイル30)。このプログラ
ムを本発明で用いるのに何等の変更も必要としない。
DLプロセッサddl32である。このプログラムは、
入力として最初のプログラムで作成された拡張ファイル
30を受取り、特定の情報に関して拡張ファイル30を
検索し、3番目のプログラムddlpost36によっ
て用いられる型オブジェクトデータベース34を作成す
る。ddl32プログラム32は語彙分析プログラムジ
ェネレータlex(図示せず)を基にした語彙スキャナ
を用いてソースファイル26を検索し、ddl32の主
関数に各トークン(シンタックスの単位で図示されてい
ない)を戻す。特定の情報に対するソースファイル26
の検索の他に、ddl32は入力されたファイルに対
し、全体的にシンタックスチェック、また限られた範囲
で意味的チェックを行ない、適切なエラー及び警告メッ
セージを発生する。
義を次のようにして処理する。まず、C++のキーワー
ドである「クラス(class)」を認識するまで入力
されたトークンを調べる。「クラス」キーワードがみつ
かったら、ddl32はクラスの名称、このクラスが派
生される全てのクラスの名称と、このクラスのインスタ
ンスがデータベースにセーブされた時に「独立永続的オ
ブジェクト(IPO)」となるか否かを示すキーワード
「パーシスタント(persistent)」の検索及
び抽出を継続する。もしこのクラスが別のクラスから派
生したものであり、「パーシスタント」キーワードを有
しないならば、ddl32は後者のクラスも永続的クラ
スであるか判断する。もしそうであれば、このクラスは
永続的クラスとして印を付けられる。もし、「パーシス
タント」がなくこのクラスが永続的クラスから派生され
たものでないなら、このクラスのインスタンスは未だデ
ータベースにセーブすることができる。しかし、これら
は物理的にIPOと記憶される「依存性永続オブジェク
ト(DPO)」となる。このクラスが派生されるクラス
がこのファイルまたはDDL80の先の実行において以
前にddl32によって処理されていなければ、エラー
メッセージが発生される。
言のための残りのクラス定義を調べ、データメンバーの
名称、データ型(基礎C++またはユーザ定義の型、ク
ラスを含む)の名称を抽出し、クラスのメモリ配置、大
きさ、このクラスと次のデータメンバーとの間の境界、
及びクラスの先頭からのオフセットを決定する。ddl
32は更に、データメンバが配列の場合は配列内の要素
の数を示す情報、データメンバーがC++ポインタの場
合は参照されたデータのデータ型の名称、ポインタによ
って参照されたデータ項目の数(これはこのクラス内の
番人(sentinel)、十進または16進数の値、
または整数データメンバの名称によって指定される)、
それの前にキーワード「バウンダリ(boundar
y)」があるか(このクラスのインスタンスがデータベ
ースにセーブされるなら参照されたデータはセーブされ
ない)、またデータメンバがPTR44の場合は参照さ
れたクラスの名称を抽出する。データメンバのために用
いられたかこのクラスから参照された(C++ポインタ
またはPTR44を用いて)データ型が以下に述べる第
8ステップでDDL32によって処理されたのではない
なら、エラーメッセージが発生される。
れかがクラス定義の公の部分であるなら、エラーメッセ
ージが発生され、クラス定義は以下に述べる第8ステッ
プ中処理されない。第4に、ddl32はクラス定義内
部の関数宣言のいずれかの前にC++のキーワード「バ
ーチュアル(vertual)」が存在しないか調べ
る。これはキーワード「バーチュアル」はこのクラスの
インスタンスの全体の範囲に影響を及ぼすからである。
第5に、ddl32は関数クラス定義のいずれかの前に
キーワード「デーモン」が存在しないか調べ、ddlp
ostによる後の処理のためにこれを書留めておく。
ddl32はこのクラスのインスタンスのための大きさ
を、このクラスから派生した全てのクラスの大きさ(型
記述データベースから検索された)をこのクラスの全て
のデータメンバの大きさ(データメンバがクラスの組込
まれたインスタンスであれば、大きさは型記述データベ
ースから検索される)に加算することによって計算す
る。もしこのクラスが仮想関数(上述の第4ステップで
検出されたように)を有するから、クラスの大きさはC
++仮想テーブルポインタにC++ポインタの大きさに
等しい量だけ増加される。もしキーワード「パーシスタ
ント」があれば(上述の第1ステップで検出したよう
に)、クラスの大きさはPTR44のクラスのインスタ
ンスの大きさに等しい量だけ増加される。このクラスの
配置及び境界は計算された全体の大きさに基づいて求め
られる。
拡張ファイル30の最後まで継続される。第8に、全て
のクラス定義が調べられ入力ファイルの最後が検出され
たなら、ddl32は次の情報を作成し型記述データベ
ース34に出力する。即ち、クラスの名称、大きさ、配
置、クラス全体の境界情報、このクラスに含まれる各C
++ポインタ及びPTRに関する情報を含むストリン
グ、このクラスが参照する(C++ポインタまたはPT
Rを用いて)か或いは含む全てのクラスまたは構成の名
称、本発明によって支援される種々のデーモンのために
定義された関数の名称、そしてソースファイル26から
のクラス定義全体の名称である。
lpost36であり、これは入力としてddl32に
よって参照された型記述34を受け、次のようにC++
ソース、ヘッダファイルソースファイル38及び型40
を作成する。まず、ddlpost36は型記述34の
内容を読み、情報を保持するデータ構成を作成する。次
に、型記述データベース34内の各クラスに対して、2
つの別個のC++ソースファイルからなるソースファイ
ル38が作成される。ファイルが永続性クラスであれ
ば、PTR44クラスから新たに派生されたクラスの定
義を含むC++ヘッダファイルが作成される。このファ
イルは、ストリームエディタを用いて既に定義済のテン
プレートファイル(表3参照)を編集し、テンプレート
ファイル内のある文字列をこのクラスの名称に変換する
ことによって作成される。第2のC++ヘッダファイル
は、このクラスが派生された各クラスのディレクティブ
を含んだcpp28を具えて作成され、データメンバに
対するデータ型として用いられるか、或いはC++ポイ
ンタまたはPTR44、クラス定義、及びC++ステー
トメントによって参照され、これによってPTR44の
クラス関数はこのクラスのインスタンスを操作すること
ができる。このクラスがデーモンを有していれば、この
第2のC++ヘッダファイルはC++ステートメントも
含んでおり、デーモンクラス関数はこのクラスのインス
タンスを操作することが許される。同様に、このクラス
が永続的であれば、この第2のC++ヘッダファイルは
上述のPTR44ファイル内に作成されたPTR44の
クラス関数に対する定義も含む。
なものであり、ddl32の最初の2ステップで抽出さ
れた情報を基にファイルに最初の項目を付加えることに
よって作成される。2番目の項目は次に型記述データベ
ース34(型記述データベース34の6番目の項目)か
ら得られたものとしてファイルに付加えられる。3番目
の項目は、ストリームエディタを用いて既定義テンプレ
ートファイル(表4参照)を編集しテンプレートファイ
ル内のある文字列をこのクラスの名称に変換した結果得
られる一時的ファイルを作成することによってファイル
に付加えられる。最後の2項目も同様にファイルに付加
えられる。
のクラスが処理された後、ddl32の第8ステップに
関連して上述したように、処理されたクラスの型記述を
含む文字列の配列を定義するC++ステートメントを含
むC++ファイル型40が作成される。このファイルは
アプリケーション開発者によってコンパイルされ、アプ
リケーション14及びOODB18のモジュールと連係
され、これによりOODB18とインターフェースする
アプリケーション14の実行中に配列がOMS42及び
OTS52によって用いられる。ddl32に関してク
ラス及び型記述情報を抽出するための8つの処理ステッ
プを述べたが、同一の効果はステップを組合せることに
よっても得ることができる。
の1つのインスタンス及びPTR44の多くのインスタ
ンスとインターフェースし、永続的オブジェクトを作
成、操作、記憶、そして検索する。アプリケーションに
よって作成された個々の独立した永続的オブジェクトに
はオブジェクトID78が割当てられる。各オブジェク
トID78は記憶グループ番号(オブジェクトがどの記
憶グループに記憶されているかを示す)、オブジェクト
番号(記憶グループ内の特定のオブジェクトを示す)及
びタイムスタンプ(データベースにオブジェクトがセー
ブされた時間を示す)とで構成されている。これら各部
分は32ビットの符号のない整数値で表わされる。有効
なオブジェクトIDがないことを示すために空白(Nu
ll)オブジェクトID78が用いられる。更に、カプ
セル62(以後カプセル62と呼ぶ)が作成され、各独
立永続性オブジェクトと関連する。カプセル62につい
ては後にPTR44について説明する時に詳述する。
ンバを含む。アーキテクチャIDは現在のコンピュータ
ハードウエアのアーキテクチャを記述する情報に対する
指示である。このデータメンバは、データべースが現在
のコンピュータハードウエアで用いられるために最初に
初期化される時にデータベースに付加される。このデー
タメンバは、オブジェクトを主及び第2のメモリ表現の
間で変換する際にOTS52によって用いられる。
よってオブジェクトが記憶される記憶グループの番号を
含む。これはデフォルト−記憶−グループ108を用い
て設定することができる。名称管理プログラムは、OM
S40のこのインスタンスに対する名称管理プログラム
46への指示である。これは名称管理プログラム116
を用いて設定することができる。デーモンテーブルは、
OMS40のこのインスタンスに対するデーモンテーブ
ル48への指示である。これはCreate(作成)1
00の間に設定され、Create(作成)300(後
に記す)、Commit Transaction(遂
行−トランザクション)112、Abort Tran
saction(破棄−トランザクション)114及び
Fetch(取り込み)120−124の間に用いられ
る。オブジェクトマップは、OMS40のこのインスタ
ンスに対するオブジェクトマップ50への指示である。
これはZG−Create100の間に設定され、OM
S42によって用いられる。トランザクションidは現
在のトランザクション番号を含み、Begin Tra
nsaction(開始−トランザクション)110、
Commit Transaction112、Abo
rt Transaction114の間用いられる。
POSサーバはPOS Server54のインスタン
スへの指示である。これはCreate100の間に設
定され、OMS42によってデータベースないのオブジ
ェクトを記憶または検索するのに用いられる。アクティ
ブ(Active)はOMS40のインスタンスがアク
ティブか否かを示す。即ち、Shutdown(遮断)
106がコールされる前にStartup(スタートア
ップ)102がコールされたか否かを示す。また、OM
S40のインスタンスがアプリケーション14によって
作成されたか否かを示すExists(存在)という名
のグローバル変数もある。この変数はStartup1
02の間にチエックされる。
を、OMS42がアプリケーション14に提供する関数
名及び引数と共にまとめたものである。各関数につてい
以下に述べる。これらの関数は内部状態を更新し、或い
はOMS42のインスタンスの内部状態についての情報
を戻す。インターフェース関数100−128は、イン
スタンスの内部状態を更新し、インターフェース関数1
30はアプリケーションプログラムにインスタンスの状
態を戻す。大部分の関数において、殆どの個々の動作の
後エラーチェックが行なわれる。エラーチェックは本発
明の理解及び動作の基礎であるとは考えられないので、
これ以上の説明はしない。
タンスを作成する。この関数はOMS42のインスタン
スが統計的、自動的、或いは動的に作成された時はいつ
でも、アプリケーションプログラムで用いられているC
++変数宣言に依存して、コールされる。作成中、関数
Startup102がコールされる。Startup
102も、Shutdown106がコールされた後で
あればいつでもコールすることができる。アプリケーシ
ョンプログラム当り1つのOMS42のインスタンスし
か許されていないので、Existsグローバル関数の
値を調べてインスタンスが既に存在するか否かチェック
する。もし、まだ存在しておらず、OMS42のインス
タンスが初めて作成されるのであれば、デフォルト記憶
グループデータメンバを最小記憶グループ番号に設定す
る。アプリケーション14の実行中に既に現在のOMS
42のインスタンスが作成されていれば、デフォルト記
憶グループデータメンバ内の以前の値を用いる。デーモ
ンテーブル48及びオブジェクトマップ50が次に作成
され関連するデータメンバに割当てられる。そして、P
OS Server54のインスタンスが作成されPO
Sサーバデータメンバに割当てられる。アプリケーショ
ン14及びOODB18が実行されているコンピュータ
ハードウエアに対するアーキテクチャIDオブジェクト
がPOS Server54から検索され、アーキテク
チャIDオブジェクトデータメンバに割当てられる。ま
た、名称管理プログラム46のインスタンスが作成さ
れ、名称管理プログラムデータメンバに割当てられる。
Begin−Transaction110がコールさ
れ、これに続いてDefault−Name−Cont
ext116がコールされ、データベース内にデフォル
ト名コンテクスト(context)を作成する。もし
データべースを初めて使用するのであれば、Commi
t−Transaction112がコールされ新しい
デフォルト名コンテクストをデータべース内にセーブす
る。もし初めてでなければ、Abort−Transa
ction114がコールされる。最後に、アクティブ
データメンバが設定されこのOMS42のインスタンス
はアクティブであることを示し、グローバル変数Exi
stsが設定されOMS42のインスタンスが存在する
ことが示され、そして、制御はこの関数のコール元に戻
される。
タンスを削除する。この関数は、OMS42のインスタ
ンスが統計的、自動的、或いは動的に削除された時はい
つでも、アプリケーションプログラムで用いられている
C++変数宣言に依存して、コールされる。削除中、関
数Shutdown106がコールされる。Shutd
own106はアクティブデータメンバをチェックしこ
のOMS42のインスタンスがアクティブであるか判断
する。もしアクティブでなければ、動作がなされてはい
けないので、直ちに制御がこの関数のコール元に戻され
る。もしこの関数がアクティブであれば、現在オブジェ
クトマップ50内にある各カプセル62に対してその変
更されたデータメンバが「変更せず」に設定され、そし
てカプセル62は削除される。名称管理プログラム4
6、オブジェクトマップ50及びPOS Server
54は削除され、これらに関連するデータメンバはゼロ
ポインタに設定され、これにより値が無効であることが
示される。最後に、トランザクションIDデータメンバ
がゼロに設定され、このOMS42のインスタンスがイ
ンナクティブであることを示すようにアクティブデータ
メンバが設定され、制御がこの関数のコール元に戻され
る。
up108は次のようにしてこのOMS42のインスタ
ンスの内部状態(private state)を更新
する。供給された記憶グループ番号が最小記憶グループ
番号より大きければ、Is−Sg−Valid504が
コールされデータベース内にこの番号の記憶グループが
存在することを確認する。もし存在すれば、供給された
記憶グループ番号を用いてデフォルト記憶グループデー
タメンバが割当てられ、このデータメンバの以前の値は
戻される。そうでなければ、ゼロ値が戻される。
0はトランザクションの境界の開始点を定めるために用
いられる。全てのアプリケーションプログラムとOMS
42との間の相互作用はトランザクション内で発生され
なければならない。Begin−Transactio
n516は、POS Server54がトランザクシ
ョンを開始することを保証するためにコールされる。も
しコールが成功すれば、トランザクションIDデータメ
ンバは1増加され、この増加された値が戻される。そう
でなければ、値−1が戻される。
12はトランザクションの境界の終点を定めるのに用い
られる。トランザクションIDデータメンバが実行中の
トランザクションがないことを示すと、値−1が戻され
る。そうでなければ、トランザクションが既に存在しな
いなら、POSカプセル70(以後POSカプセル70
と呼び、後に説明する)のインスタンスが作成される。
次に、オブジェクトマップ50内の各カプセルが調べら
れ、そのうちのいくつがオブジェクトID78を持って
いないか判断する(Commit−Transacti
onへの最後のコールの後にアプリケーションプログラ
ムによって作成されたオブジェクト)。その数がゼロよ
り大きければ、Alloc−Symbolic−Nam
e506がコールされる。要求された数のオブジェクト
ID78が得られなかったなら、エラーが戻される。こ
のコールが成功すれば、Begin−Commit50
8がコールされ、この遂行に対しタイムスタンプが戻さ
れる(これはトランザクション中に各POSカプセル7
0にセーブされる)か、またはエラー値が戻される。現
在オブジェクトマップ50内にある各カプセル62に対
し、次の動作が行なわれる。カプセル62内の変更デー
タメンバによってオブジェクトが変更されたことが示さ
れたなら、処理のため無視される。また、カプセル62
内の同時ロックデータメンバによってアプリケーション
プログラムがオブジェクトにライトロック(Write
lock)を持っていないことが示されたら、エラー
が戻される。これは、アプリケーションプログラムはデ
ータベース内に自らの新しい版を作成するために全ての
オブジェクトにライトロックを持たなければならないか
らである。また、Commit Demonがデーモン
テーブル48に登録されたなら、このCommit D
emonが呼ばれる(デーモンテーブル48の説明を参
照)。次に、OTSInternal2Externa
lが呼ばれ、POSカプセル70が通され、オブジェク
トの外部表現402で更新される。もし変換が成功した
ら、Put−Object514がコールされ、データ
ベース内にオブジェクトの新版が作成される。このよう
にしてオブジェクトマップ内の各カプセル62が処理さ
れると、End−Commit510がコールされデー
タベースの変更が遂行され、次にEnd−Transa
ction510がコールされPOS Server5
4のトランザクションを終了する。トランザクションが
完了したので、他のアプリケーションプログラムはデー
タベースからオブジェクトを検索し、更新し、それらの
新版を作成することができる。OMS42のインスタン
スを介してアクセス可能な版は無効と見做される。この
ように、オブジェクトマップ50内に現在存在する各カ
プセル62に対して次の動作が行なわれる。同時ロック
データメンバは「無効」に設定され、変更データメンバ
は「無変更」に設定される。もしアプリケーションプロ
グラムからのこのカプセル62への参照数がゼロより大
きければ、OMS42がオブジェクトを作成したとして
もこのオブジェクトは削除される。また、カプセル62
のオブジェクトポインタデータメンバは無に設定され
る。もし参照数がゼロなら、カプセル62は削除され、
これにより、OMS42がオブジェクトを作成したとし
てもそのオブジェクトは削除されることがある。最後
に、トランザクションIDデータメンバは1減数され、
データベースに記録されたオブジェクトの数が戻され
る。
4もトランザクションの境界の終端を定めるのに用いら
れるが、オブジェクトをデータベースに記録しない。ト
ランザクションIDデータメンバが現在トランザクショ
ンのないことを示すと、値−1が戻される。また、現在
オブジェクトマップ50内にある各カプセル62に対
し、オブジェクト型に対するAbort Demon
(デーモン放棄)がデーモンテーブル48に登録されて
いたなら、このAbort Demonがコールされ
る。次に同時ロックデータメンバが「無効」に設定さ
れ、変更データメンバが「無変更」に設定される。最後
に、Abort−Transaction520がコー
ルされ、これによりPOSTServer54は現在の
トランザクションを終了することができ、トランザクシ
ョンIDデータメンバは1減数され、そして制御はこの
関数のコール元に返される。
称管理プログラムデータメンバを供給された名称管理プ
ログラム46のインスタンスに割当て、このデータメン
バ以前の値を戻すだけである。Default−Nam
e−Context118はName−Contex2
04をコールし、供給された名称コンテクストが存在す
ることを保証し、戻る。
有する。最初のものはオブジェクト名、2番目はオブジ
ェクトに関連するPTR44、そして3番目はオブジェ
クトのオブジェクトID78を取る。第1の形式は、供
給されたオブジェクト名のオブジェクトID78或いは
ユーザ定義名が登録されていない場合は無効オブジェク
ト78を戻すReturn−OID210をコールす
る。後者の場合無効アドレスが戻される。第2の形式は
供給されたPTR44と関連するカプセル62からオブ
ジェクトID78を検索する。いずれの場合でも、一旦
オブジェクトID78が得られたら次の動作が行なわれ
る。オブジェクトID78に関連するカプセル62がオ
ブジェクトマップ50から検索され、オブジェクトポイ
ンタデータメンバがチェックされ関連するオブジェクト
が主メモリにあるか否か判断する。もしそれが主メモリ
にあることが値によって示されると、主メモリ内のオブ
ジェクトのアドレスが戻される。もしそれが主メモリに
は無いことが値によって示されると、Get−Obje
ct512が、供給されたロック及びタイムコンテクス
ト(それぞれREAD及びMOST−RECENTにデ
フォルトする)と共にコールされ、POSカプセル70
(オブジェクトの外部表現402及びそれの他の永続的
オブジェクトへの参照を含む)が戻される。次に、PO
Sカプセル70と共にOTS External2In
ternalがコールされ、POSカプセル70内のオ
ブジェクトの外部表現402を用いてオブジェクトの主
メモリ表現を作成する。他の永続的オブジェクトへの参
照がまだ登録されていなければ、OMSによって登録さ
れる。最後に、カプセル62の変更されたデータメンバ
及び削除可能なデータメンバが夫々「真」、「偽」に設
定され(OMS42はオブジェクトを作成しただけなの
で)、主メモリ内のオブジェクトのアドレスが戻され
る。
etch120−124と同様2つの形式を有する。第
1のものはオブジェクト名を取り、第2のものはオブジ
ェクトに関連するPTR44を取る。Fetch120
−124におけると同様、第1の形式はReturn−
OIDをコールし、供給されたオブジェクト名のオブジ
ェクトID78またはユーザ定義名が登録されていなけ
れば無効オブジェクトIDを戻す。後者の場合、アプリ
ケーション14が現在オブジェクトに有効なロックを有
していないことを示す値が返される。第2の形式は供給
されたPTRと関連するカプセル62からオブジェクト
IDを検索する。いずれの場合も、オブジェクトID7
8に関連するカプセル62がオブジェクトマップ50か
ら検索され、同時ロックデータメンバがチェックされ、
アプリケーションプログラムが現在オブジェクトに有効
なロックを有するか判断する。もしそうであれば、同時
ロックデータメンバの値が返される。そうでなければ、
アプリケーションが現在オブジェクトに有効なロックを
有していないことを示す値が返される。
在の時間を返す。OMS42は名称管理プログラム46
とインターフェースしてアプリケーションによって供給
された名称とPTR44を用いてアプリケーション14
によって作成または検索された独立永続的オブジェクト
との関連を管理する。Name Manager46の
インスタンスは次のデータメンバを含む。第1のコンテ
クストは、本発明を用いてアプリケーション14によっ
て現在アクセスされているデータベース内に定義されて
いる全名称コンテクストのリストの中の最初の名称コン
テクストを参照する。これはCreate200の間に
設定され、名称コンテクストまたは名称エントリを検索
する時にアクセスされる。現行コンテクストは、本発明
を用いてアプリケーション14によって現在アクセスさ
れているデータベース内に定義されている全名称コンテ
クストのリストの中の現在の名称コンテクストを参照す
る。これはCreate200の間は第1のコンテクス
トに設定され、Name−Context204の間は
新たなデフォルト名称コンテクストに設定される。これ
は名称エントリを検索する時アクセスされる。
S42に提供するインターフェース関数200−210
とそれらの関数名及び引数をまとめたものである。各関
数について次に述べる。これらの関数は、名称管理プロ
グラムクラスのインスタンスの内部状態についての情報
を更新または戻すものである。インターフェース関数2
00−208はインスタンスの内部状態を更新し、一方
関数210はインスタンスの内部状態についての情報を
アプリケーションプログラムに戻す。
プログラム46のインスタンスを作成する。Begin
−Transaction110がコールされ、次にF
etch124がコールされてデフォルトル−トコンテ
クスト(default root context)
を検索する。デフォルトルートコンテクストが存在しな
ければ、これが1つ作成され、最初のコンテクストデー
タメンバが割当てられ、Alloc−Symbol−N
ame506を間接的にコールすることにより新しいオ
ブジェクトID78が得られ、そしてCommit−T
ransaction112がコールされデータベース
にデフォルトルートコンテクストがセーブされる。デフ
ォルトルートコンテクストが既に存在するなら、Abo
rt−Transaction114がコールされる。
最後に現在のコンテクストデータメンバが新しいまたは
既に存在するデフォルトルートコンテクストオブジェク
トに設定され、制御はこの関数のコール元に戻される。
管理プログラム46のインスタンスを削除するだけであ
る。Name−Context204は、供給されたコ
ンテクスト名を有するコンテクストエントリに対して、
最初のコンテクストデータメンバからアクセス可能なコ
ンテクストのリストを検索する。コンテクスト名がエン
トリ内にあれば、0(ゼロ)が返される。また、どのエ
ントリにもないなら、供給されたコンテクスト名を用い
て新しいコンテクストエントリが作成される。新たに作
成されたコンテクストエントリはコンテクストリストの
先頭に付加えられ、現在のコンテクストデータメンバは
新しいコンテクストエントリに割当てられ、値1が戻さ
れる。
ンテクストデータメンバのリストにアクセスし、供給さ
れたオブジェクト名を有する名称エントリを捜す。この
オブジェクト名がエントリ内にあれば、2つの同一オブ
ジェクト名は許されていないので−1が戻される。ま
た、どのエントリ内にもなければ、供給されたオブジェ
クト名及びオブジェクトID78を用いて新しい名称エ
ントリが作成され、リストの最後に付加えられる。そし
て、0(ゼロ)が戻される。
のコンテクストデータメンバのリストにアクセスし、供
給されたオブジェクト名を有する名称エントリを捜す。
そのオブジェクト名がエントリ内になければ、−1が戻
される。また、エントリ内にありオブジェクトID78
が供給されたオブジェクトID78と一致すれば、その
名称エントリはリストから削除され、0(ゼロ)が戻さ
れる。2つのオブジェクトID78が一致しなければ、
−1が戻される。
名称エントリの現在のコンテクストデータメンバのリス
トにアクセスし、供給されたオブジェクト名称を有する
名称エントリを捜す。そのオブジェクト名がエントリに
なければ、無効オブジェクトID78がもどされる。ま
た、エントリにあれば、名称エントリ内のオブジェクト
ID78が戻される。
S42によって用いられるデーモンテーブルのブロック
図である。デーモンテーブル48は、ユーザ定義の型ま
たはクラスに対するオブジェクトID78と、デーモン
オブジェクト74への参照との2つのデータメンバを含
むエントリの配列である。DDL変換過程中、アプリケ
ーション開発者はクラス関数の前にキーワード「デーモ
ン」及びイベントキーワード(event keywo
rd)を付加えることができる(上述の表1のクラス宣
言の下部を参照)。これらのデーモンキーワードを有す
るクラスを「デーモンクラス」と呼ぶ。これらのキーワ
ードの存在はDDL32によって認識され、関連する関
数の名称は型記述データベース34に付加えられる。d
dlpost36の実行中、追加のC++ステートメン
ト及び関数がデーモンキーワードを付与された各クラス
のソースファイル38に付加えられる。まず、追加デー
タメンバであるPTR Demon76が、このクラス
を用いたアプリケーションプログラムの実行中このクラ
スのPTR44の全インスタンスによって共用されるこ
とが定義される。次に、他のクラス、デーモンオブジェ
クト74が定義され、元のクラス定義で名付けられたユ
ーザ定義関数をコールする関数を含む。
プリケーション開発者はアプリケーション14及びOO
DB18のソフトウエアモジュールを用いてソースファ
イル38をコンパイルし、連係する。アプリケーション
14の実行が始った後は、PTR76のインスタンスを
統計的に作成することを要求されるコードが実行される
(これはソースファイル38において作成されたコード
である)。アプリケーション14の実行中、OMS42
のインスタンスがいつであろうとデーモンテーブル48
のインスタンスが初期化される。アプリケーションプロ
グラムによってデーモンクラスPTR44のインスタン
スが作成される時はいつでも、それに関連するPTRD
emon76の値がチェックされ、デーモンオブジェク
ト74が存在するか調べられる。存在すれば処理は継続
される。また、存在しなければ、作成され、PTR D
emon76は参照真デーモンオブジェクト74に設定
される。デーモンオブジェクト74が作成されると、エ
ントリがデーモンテーブル48に追加される。オブジェ
クトIDデータメンバは、このデーモンクラスに対する
型記述オブジェクト(Types40内)のオブジェク
トID78に設定され、一方デーモンオブジェクト参照
データメンバはデーモンオブジェクト74の新たに作成
されたインスタンス設定される。
トを処理している間、OMS42はデーモンテーブル4
8をチェックし永続的オブジェクトの型に対するデーモ
ンオブジェクト74が登録されているか調べる。これは
与えられたオブジェクトに対する型記述のオブジェクト
ID78とデーモンテーブル48内のオブジェクトID
78とを比較することによって達成される。もし一致が
みられなければ、与えられたオブジェクトの処理が継続
される。しかし、一致があれば、OMS42は適切なデ
ーモンテーブル48エントリから参照されたデーモンオ
ブジェクト74内に指定されているデーモン関数の内の
1つをコールする。デーモン関数はOMS42が処理を
継続する前にオブジェクトを操作することができる。
ジェクトマップ50のブロック図である。オブジェクト
マップ50は、独立永続的オブジェクトがアプリケーシ
ョン14によって作成されるかデータベースによって検
索される時に作成される。オブジェクトマップ50は記
憶グループ及びオブジェクト数を基にした二段階インデ
クスである。最初の段階は、記憶グループ番号と記憶グ
ループハッシュテーブル58とを含むレコードを要素と
する配列56である。第2段階は、エントリ60がカプ
セル62へのポインタとハッシュテーブル58内の次の
エントリ60とを含む記憶グループハッシュテーブル5
8である。オブジェクトマップ26によってOMS42
に与えられるインターフェースは次の通りである。
プセル追加)は適切なハッシュテーブル56を配置し
(必要ならば新たに作成する)、新しいエントリ60を
作成し、これを供給されたカプセル62と関連づけ、記
憶グループハッシュテーブル58に付加える。Find
Encapsulation(カプセル発見)は適切
なハッシュテーブルオブジェクトマップ58を配置し、
ハッシュテーブル58のエントリ60から供給されたオ
ブジェクトID78と同じオブジェクトIDを有するカ
プセル62を参照するエントリを捜し出す。エントリ6
0が見つかれば、関連するカプセル62のアドレスが戻
される。エントリが何も見つからなければ、または供給
された記憶グループに対するハッシュテーブル58がな
ければ、無効アドレスが返される。Remove En
capsulation(カプセル削除)は適切なハッ
シュテーブル58を配置し、ハッステーブル58のエン
トリ60から供給されたオブジェクトID78と同じオ
ブジェクトID78を有するカプセル62を参照するエ
ントリ60を捜し出す。エントリ60が見つかれば、記
憶グループハッシュテーブル58から除去され削除され
る。エントリ60が見つからなければ何も処理は行なわ
れない。
発明を用いてPTR44のインスタンスを作成し、永続
的オブジェクトを作成、操作、記憶、そして検索する。
図6からわかるように、PTR44のインスタンスはた
だ1つのデータメンバであるカプセルを有し、これがカ
プセルクラス(カプセル62)のインスタンスを参照す
る。カプセル62のインスタンスは次のデータメンバを
含む。型(クラス)記述IDは、このオブジェクトがイ
ンスタンスであるC++クラスの定義の限定された記述
を参照する。具体的には、オブジェクトポインタデータ
メンバを介して参照されるオブジェクトのクラス型のイ
ンスタンス内で各C++ポインタ及びPTR44に関す
る情報を含むのは文字配列へのC++ポインタである。
これは型40から抽出される。
2を参照するPTR44が作成される毎に1増加され、
カプセル62を参照するPTR44が削除される毎に1
減少される。「同時ロック」はカプセルに関連するオブ
ジェクトにかけられた同時ロックを示す。これはカプセ
ル62が作成された時、オブジェクトがデータベースか
ら検索された時、またはロックが格上げされた時に設定
される。「タイムスタンプ」は関連するオブジェクトが
データベースにセーブされた時を示す。「オブジェクト
識別子」はPTR44と関連のあるオブジェクトのオブ
ジェクトIDである。「オブジェクトポインタ」は、関
連するオブジェクトの主メモリ表現を参照するC++ポ
インタである。この値が無効でないなら(したがって、
値が無効でないことを示すなら)、関連するオブジェク
トは主メモリ内にある。
クトがデータベースにセーブされるべきか、或いは既に
セーブされているかを示す。これはPersist30
4をコールすることによって設定される。「モディファ
イド」はアプリケーション14によってこの永続的オブ
ジェクトが変更されたかを示す。新たに作成されたオブ
ジェクトは「モディファイド(変更済)」という印が付
けられ、データベースから検索された永続的オブジェク
トは「ノットモディファイド(無変更)」という印が付
けられている。永続的オブジェクトにはSet−Mod
ified310をコールすることによって「ノットモ
ディファイド」という印を付けることができる。
e)」はOMS42がこの永続的オブジェクトを削除で
きるかを示す。アプリケーション14がこのオブジェク
トを作成したのなら、OMS42はそれを削除すること
ができない。OMS42がオブジェクトを作成したなら
(データベースからそれを検索した時)、永続的オブジ
ェクトを削除することができる。したがって、図6から
PTR44が与えられればそれに関連するカプセルにア
クセスし、そこから関連するオブジェクト64にアクセ
スできることがわかるであろう。
26をその名称及び引数と共に示したもので、PTR4
4によってアプリケーション14に与えられる。各関数
について次に説明する。これらの関数はPTR44の内
部状態を更新、またはそれに関する情報を戻す。インタ
ーフェース関数300−310、316及び320−3
22はPTR44の内部状態を更新し、一方、インター
フェース関数312,314,318,324及び32
6はPTR44の内部状態に関する情報をアプリケーシ
ョン14に戻す。
するためにアプリケーション14に対してPTR44の
インスタンスを作成する。インスタンスはアプリケーシ
ョン14内で用いられるC++変数宣言に応じて統計
的、自動的または動的に作成される。まず、カプセル6
2が作成され、カプセルデータメンバに割当てられる。
次に、このPTR44のクラス定義に対する型記述オブ
ジェクト(型40内)のカプセル62がオブジェクトマ
ップ50から得られ、関連するカプセル62の型記述I
Dデータメンバに割当てられ、制御がこの関数のコール
元に戻される。
インスタンスを削除する。別のPTR44によるカプセ
ル62への参照が全くない場合、カプセル62はオブジ
ェクトマップ50から除去される。カプセル62の削除
可能データメンバによって関連するオブジェクト64が
OMS42によって作成されたことが示されたなら、オ
ブジェクト64は削除される。最後にカプセル62は削
除され、制御はこの関数のコール元に戻される。
t−Transaction112が実行される時に供
給されたオブジェクト64がデータベースにセーブされ
るべきことを示すのに用いられる。まず、カプセル62
の永続的データメンバが「真」に設定される。そして、
POSAlloc−Symbolic−Name506
がコールされ、供給された記憶グループ番号またはそれ
が供給されなかったならOMS42のデフォルト記憶グ
ループデータメンバを用いて、オブジェクトに対しオブ
ジェクトID78が得られる。最後に、オブジェクト型
のPersist Demon(パーシストデーモン)
がデーモンテーブル48に登録されていたなら、このP
ersist Demonをコールし、制御はこの関数
のコール元に戻される。
64のオブジェクト名をPTR44と関連づける。名称
は独立永続的オブジェクトとのみ関連付けられるので、
関連するカプセル62のオブジェクトIDデータメンバ
が無効オブジェクトID78ならば、POS Allo
c−Symbolic−Name506がコールされ、
オブジェクト64に対してオブジェクトID78が得ら
れる。次に、Name206がコールされて新しい名称
が作成され、制御はこの関数のコール元に戻される。
8をコールすることによって、PTR44と関連付けら
れたオブジェクト64から供給されたオブジェクト名と
の関連を外し、制御をこの関数のコール元に戻す。Se
t−Modified310はアプリケーションプログ
ラムがオブジェクト64を変更したことを示す(これは
ツアイトガイスト(Zeitgeist)のCommi
t−Transaction112の処理の間にチェッ
クされる)。まず、カプセルの変更されたデータメンバ
が「真」に設定され、Upgrade−Lock212
がコールされ、ライトロックが要求され、そして制御は
この関数のコール元に戻される。
62の変更されたデータメンバの値を検索し、この値を
戻す。Lock−State314は、カプセル62の
同時ロックデータメンバの現在値またはデータメンバが
現在のロックが無効であることを示す時は「無効」を返
す。Upgrade−Lock316はオブジェクト6
4に対する既存のロックを要求されたロックへの格上げ
を試みる。供給されたロックが有効なロック型でないな
ら、エラーが戻される。供給されたロックがリードオン
リ(Read Only)ロックであれば、カプセル6
2の同時ロックデータメンバはこの値に設定される。ま
た、現在のロックが有効で供給されたロックより強力か
同等であれば、制御はこの関数のコール元に戻される。
上述のいずれの状態でもないなら、Set−Lock5
24がコールされ、ロックの供給を要求する。ロックが
設定されたなら、カプセル62の同時ロックデータメン
バは供給されたロックに設定され、制御はこの関数のコ
ール元に戻される。
のオブジェクトポインタデータメンバの値をチェック
し、関連するオブジェクト64が主メモリにあることが
値によって示されれば1、そうでなければ0を戻す。M
ake−Absent320は、後続のオブジェクト6
4への参照によってOMS42がPOS Server
54からのオブジェクト64を検索するように、カプセ
ル62を格上げする。まず、カプセル62の削除可能デ
ータメンバによってOMS42がオブジェクト62を割
当てたことが示されると、カプセル62の削除可能デー
タメンバはOMS42がオブジェクト64を割当てなか
ったことを示すように設定され、変更されたデータメン
バは「無変更」に設定される。次に、オブジェクト64
及びいかいなる依存性永続的オブジェクトも削除され
る。OMS42がオブジェクト64を割当てたかに無関
係に、カプセル62のオブジェクトポインタデータメン
バは無効に設定され、オブジェクト64は主メモリには
ないことが示され、制御はこの関数のコール元に戻され
る。
ェクト64をPTR44を介してアクセス可能にする。
まず、カプセル62のオブジェクトポインタデータメン
バをチェックし、イブジェクト64が既に主メモリ内に
あるか調べる。主メモリ内にあれば、制御はこの関数の
コール元に戻される。そうでなければ、Fetch12
4がコールされ、POS Server54からオブジ
ェクト64が検索され、主メモリに配される。これが成
功すれば、オブジェクト64の主メモリアドレスが返さ
れる。Timecontext324はカプセル62の
オブジェクトID78のタイムコンテクストデータメン
バの値を検索し、戻す。この値はデータベースからオブ
ジェクトが検索される時に用いられるタイムコンテクス
トを示す。Timestamp326はカプセル62の
タイムスタンプデータメンバの値を検索し、戻す。この
値はオブジェクト64がデータベースにセーブされた時
を示す。
またはMake−Present322をコールする必
要なく、アプリケーションプログラムが暗黙かつ自動的
にPOS Server54から独立永続的オブジェク
トを検索できるようにする付加機能を与える。この機能
はオブジェクトフォールティング(object fa
ulting)と呼ばれ、PTR44は次のようにして
オブジェクトフォールトの発生を処理する。アプリケー
ションプログラムがPTR44のインスタンスを参照し
ない時、関連するカプセル62のオブジェクトポインタ
データメンバの値をチェックするためのコードが実行さ
れる。関連するオブジェクト64が既に主メモリにある
ことが値によって示されれば、アプリケーションプログ
ラムは継続する。また、関連するオブジェクト64が主
メモリ内にないことが値によって示されれば、カプセル
62内のオブジェクトID78のデータメンバを用いて
Fetch124がコールされる。オブジェクト64が
Fetch124によって主メモリに配された後、アプ
リケーションプログラムは継続される。C++の実施例
では、この処理を行なうのに必要なコードはDDL80
によって自動的に作成される(ソースファイル38のC
++ファイルに含まれる)。具体的には、独立永続的オ
ブジェクトクラスに対してC++非参照演算子(”a−
>func()”及び”(*a).func()”)を
オーバーロードするために定義が与えられる。
400(以後「オブジェクト400」と呼ぶ)を示す。
C++オブジェクトは種々のデータメンバを含むことが
できるが、本発明はこれらデータメンバの内次にあげる
3種類のデータ型を支援する。第1の種類はオブジェク
トに完全に埋め込むことができるデータ型である(デー
タメンバ410−414)。第2の種類はC++ポイン
タを用いた独立または依存性永続的オブジェクトへの参
照であるデータ型を含む(データメンバ416−42
0)。第3の種類はPTR44を用いた独立永続的オブ
ジェクトへの参照であるデータを含む(データメンバ4
06,408及び422)。図8はC++オブジェクト
の第2メモリ表現であり、2つの項目、即ち外部表現及
び外部参照で構成されている。OTS52はOTS42
に、永続的オブジェクトを主及び第2メモリ表現の間で
変換するために2つのインターフェース関数を与える。
1の関数で、オブジェクトを主(内部)から第2(外
部)メモリ表現に変換する。これは、まず2つのメモリ
バッファを割当てて外部表現402及び内部表現404
を保持する。次に、オブジェクトの情報(大きさ、型I
D)及びオブジェクト内の各参照(ポインタの型、参照
されるオブジェクト、参照されるオブジェクト数の決め
方等)の情報がDDL80によって作成されたものとし
て、型40から得られる。第2に、オブジェクト400
内のデータが外部表現402にコピーされ、外部表現4
02の最初から開始される。
れる。参照がC++のポインタであり無効値でなけれ
ば、参照されたオブジェクトに関する情報が型40から
得られる。参照されたオブジェクトは、他のコピーされ
たデータ及び参照されたオブジェクトのコピー(外部表
現402の初めに関して)が元のC++のポインタの外
部表現に記憶された後に、外部表現402にコピーされ
る。コピーの後、データメンバ436は、そのオブジェ
クトのコピーの外部表現402の初めからのオフセッ
ト、即ちオブジェクト444を含む。参照されたオブジ
ェクトのデータ型がC++構造またはクラスであれば、
同様の変換過程がその参照されたオブジェクトに対して
行なわれる。C++ポインタが「境界」ポインタであれ
ば、外部表現402内の値は0(ゼロ)に設定される。
例えば、データメンバ416が境界ポインタであれば、
データメンバ434は0(ゼロ)を含む。参照がPTR
44であれば、参照されたオブジェクトのオブジェクト
ID78は関連するカプセル62から得られ、他のコピ
ーされたオブジェクトID78及びそのコピーのオフセ
ット(外部参照404の初めに関して)が外部表現40
2内の適切な場所に記憶された後に外部参照404にコ
ピーされる。例えば、データメンバ422はPTR44
である。参照されたオブジェクトのオブジェクトID7
8は外部参照452に記憶され、外部参照452の場所
(外部参照404内)はデータメンバ440に記憶され
る。本質的には、参照されたオブジェクト即ちオブジェ
クトID78は1ヵ所に記憶され、その記憶場所は元の
参照がコピーされた所に記憶される。最後にPOSカプ
セル70は更新され(このオブジェクトのオブジェクト
ID78、OMS42の現在のインスタンスからのアー
キテクチャID、このオブジェクトに関連する型記述I
D、そして新たに作成された外部表現402及び外部参
照404と共に)、制御はこの関数のコール元に戻され
る。
2の関数で、オブジェクトを第2(外部)から主(内
部)メモリ表現に変換する。これは、まず供給されたP
OSカプセル70内のアーキテクチャIDをチェックし
てOMS42の現在のインスタンス内のアーキテクチャ
IDデータメンバと一致するかを見ることによって変換
を行なう。本実施例では、これらが一致しなければ、オ
ブジェクトは変換されず、エラーがこの関数のコール元
に戻される。第2に、オブジェクトについての情報が、
Internal2Externalが行なったように
して、得られる。第3に、オブジェクトを保持するのに
十分な主メモリが割当てられ、オブジェクトが外部表現
402から新たに割当てられたメモリにコピーされる
(例えば、オブジェクト400)。
れる。参照がC++ポインタならば、参照されたオブジ
ェクトに関する情報が型40から得られる。十分な主メ
モリが割当てられ、参照されたオブジェクトが保持さ
れ、参照されたオブジェクトは元の参照の値によって示
されるように外部表現402内の場所にコピーされる。
オブジェクト400内の対応する参照は新たに割当てら
れた参照されたオブジェクトを参照するように更新され
る。例えば、データメンバ436は、参照されたオブジ
ェクトがオブジェクト444に記憶されているC++ポ
インタである。メモリが割当てられて参照されたオブジ
ェクトが保持された後、参照されたオブジェクトはオブ
ジェクト444から新たに割当てられたメモリにコピー
され、データメンバ418は新たに割当てられた参照さ
れたオブジェクトを参照するように更新される。参照さ
れたオブジェクトのデータ型がC++構成またはクラス
の場合、同様な変換過程が参照されたオブジェクトに対
して行なわれる。参照がPTR444であれば、次の動
作が行なわれる。参照されたオブジェクトのオブジェク
トIDが無効の場合、オブジェクトID78内のタイム
スタンプはこのオブジェクトのカプセル62のタイムス
タンプに設定される。これで、参照されたオブジェクト
がPOS Server54から検索される時に参照さ
れたオブジェクトのタイムスタンプが確実に用いられ
る。次に、参照されたオブジェクトに対するカプセル6
2への参照がオブジェクトマップ50から得られる(オ
ブジェクトが現在OMS42に知られていなければ、作
成される)。アプリケーション14が現在参照されたオ
ブジェクトに対する有効なロックを保持していなければ
(得られたばかりのカプセル62を調べることによって
判断する)、参照されたオブジェクトのカプセル62の
同時ロックデータメンバの値をこのオブジェクトのカプ
セル62の同時ロックデータメンバの値に設定する。こ
れによって、参照されたオブジェクトがPOS Ser
ver54から検索される時参照するオブジェクトのロ
ックが確実に用いられる。アプリケーション14が参照
されたオブジェクトに対して有効なロックを保持してい
れば、Upgrade−Lock316がコールされ、
このオブジェクトのカプセル62内の同時ロックデータ
メンバの値に等しいロックが要求される。最後に、オブ
ジェクト内の全参照が処理されたなら、制御はこの関数
のコール元に戻される。
内の永続的オブジェクトを記憶し検索するためにOMS
42に用いられる。C++の実施例では、本発明は市販
のRDBMS20を用いて上述の独立永続的オブジェク
トの外部表現402及び外部参照404を記憶する。本
発明は、販売人によって提供される組込まれた標準照会
言語(SQL)インターフェースを用いてRDBMS2
0と相互作用する。これによって、本発明は、本発明に
わずかな変更を加えるだけである販売人のRDBMSを
別の販売人のRDBMSに交換することができる。
MS42によって管理される永続的オブジェクトを記憶
するために、次の関係テーブルがRDBMS20内で定
義される。第1のテーブルは、2つの属性、記憶グルー
プ及びオブジェクト番号を含むグループテーブルであ
る。このテーブルの目的は記憶グループ内のオブジェク
ト識別子(オブジェクトID78)の割当てを制御する
ことである。オブジェクト番号がどのように割当てられ
るかについては、後述のAlloc−Symbolic
−Nameの説明を参照されたい。
を有する値テーブルである。このテーブルの目的は、オ
ブジェクトID78(最初の3つの属性で構成されてい
る)によって識別するために独立永続的オブジェクトに
関する十分な情報を保持し、オブジェクトがセーブされ
た時にアプリケーション14及びOODBが実行された
コンピュータハードウエアのアーキテクチャを識別し、
オブジェクトの型(クラス)記述を識別し、参照する独
立永続的オブジェクトの数を識別し、それを主メモリに
配置することである。オブジェクトの外部表現402が
RDBMS20によって属性値に許された長さより長い
場合、単一の長いオブジェクトに対してこのテーブルの
中に多数のタプルがあり、「連続番号」(1から始り、
タプルが加えられる毎に1増加する)と「外部表現」
(以前のタプルがなくなった所に続く)を除いて全て同
一値である。
有するレフト(refto)テーブルである。このテー
ブルの目的は、ある独立永続的オブジェクトから別の独
立永続的オブジェクトへの参照を保持することである。
値テーブル内の各タプルセット(同一オブジェクトID
に1つ以上のタプル)は、関連する値テーブルのタプル
と同じ記憶グループ、オブジェクト番号及び遂行時間の
ため、このテーブルの1つ以上のタプルと関連づけられ
る。1つのオブジェクトから多数の参照がある場合、こ
のテーブルに多数のタプルがあり、「連続番号」(1か
ら始り、タプルが加えられる毎に1増加する)を除い
て、関連する値タプルセット内の記憶グループ、オブジ
ェクト番号、遂行時間属性を有する。値テーブル内に設
定されたタプルに関連するこのテーブル内のタプルの数
は関連する値テーブルタプルセット内の「参照数」の値
と等しい。
れたオブジェクトがどのように値及びレフトテーブルに
記憶されるかの例を示したものである。
は互いの間でカプセル62及びPOSカプセル70を渡
す。POSカプセル70のインスタンスは次のデータメ
ンバを含む。オブジェクトIDはこのPOSカプセル7
0に渡されたオブジェクトのオブジェクトID78であ
る。アーキテクチャIDはアプリケーション14及びO
ODB18が現在実行されているコンピュータハードウ
エアのアーキテクチャを記述した永続的オブジェクトの
オブジェクトIDである。型記述IDは、このPOSカ
プセル70に渡されたオブジェクトの主メモリ表現を記
述した永続的オブジェクトのオブジェクトID78であ
る。オブジェクト外部表現の大きさは、このPOSカプ
セル70内のオブジェクト外部表現402に含まれるバ
イト数である。オブジェクト外部表現はこのPOSカプ
セル70内に渡されたオブジェクトに含まれる外部参照
の数である。外部参照の数はこのPOSカプセル70内
に渡されたオブジェクトの外部参照数である。外部参照
はこのPOSカプセル70に渡されたオブジェクトに含
まれる外部参照404である。POS Server5
4のインスタンスは次にあげるデータメンバを含む。
が現在進行中かを記録する。記録はBegin−Com
mit508がコールされると始まり、End−Com
mit510がコールされると終了する。トランザクシ
ョンは、データベースにアクセスする際多数のプロブラ
ムによって実行されるトランザクションを監視するトラ
ンザクション装置(図示せず)への参照である。
MS42に与えるインターフェース関数を関数名及び引
数と共に示したものである。各関数について以下に説明
する。これらの関数はPOS Server54のイン
スタンスの内部状態を更新するか、或いはそれに関する
情報を戻す。インターフェース関数500−502、5
06−510及び514−524はインスタンスの内部
状態を更新し、インターフェース関数504及び512
はインスタンスの内部状態に関する情報をOMS42に
戻す。
r54のインスタンスを作成し、適切なSQLステート
メントを用いてRDBMS20に接続する(これはPO
SServer54からRDBMS20へのコールも行
なう)。次に、トランザクション装置のインスタンスが
作成され、トランザクションデータメンバに割当てられ
る。最後に、制御がこの関数のコール元に戻される。
er54のインスタンスを削除し、OMS42によって
End−Commit510ガコールされなかった場合
にAbort−Transaction520をコール
する。次に、適切なSQLステートメントを用いてRD
BMS20からの切り離しを行ない、OMS42によっ
て以前に行なわれたが遂行されていない変化が戻される
か削除されることを確かめる。また、これはPOS S
erver54からRDBMS20へのコールの終了を
知らせる。最後に、制御がこの関数のコール元に戻され
る。
S20にSQL照会を発行し、供給された記憶グループ
を含むグループテーブルにタプルが存在するか判断す
る。タプルが存在すれば、1が返され、存在しなければ
0(ゼロ)が返される。Alloc−Symbolic
−Name506は、RDBMS20にSQL照会を発
行し、供給された記憶グループを含むテーブル内でタプ
ルを検索し、戻されたタプルからのオブジェクト番号属
性の値のコピーを作る。オブジェクト番号属性は要求さ
れた数だけ増加され、SQL照会が発行され変更された
タプルを更新し、RDBMS20内の更新を遂行する。
最後に、オブジェクト番号属性のコピーされた値が戻さ
れる。
ト(commit)の開始を記録するのに用いられる。
進行中のコミットのデータメンバの値によってコミット
が進行中であることが示されると、常に1つのコミット
しか進行中であり得ないのでエラーが戻される。その他
の場合は、OS16からの現在時間が得られ、進行中の
コミットのデータメンバの値がコミット進行中を示すよ
うに設定され、OS16から得られた時間が戻される。
終了を記録するのに用いられる。進行中のコミットのデ
ータメンバの値によってコミットが進行中でないことが
示されると、エラーが戻される。その他の場合は、SQ
L照会が発行されPOS Server54によって以
前にRDBMS20に送られた未了の全ての変化を遂行
する。この照会が実行されない場合、別のSQL照会が
発行され未了の全ての変化を戻し、このデータベースを
アクセスする別のどのアプリケーション14からも未了
の変化が絶対に判らないようにする。最後に、進行中の
コミットのデータメンバの値をコミットが進行してない
ことを示すように設定され、制御はこの関数のコール元
に戻される。
−Valid504をコールすることによって開始し、
供給されたカプセル62のオブジェクト78の中に記憶
グレープが存在することを確かめる。存在しなければ、
エラーが戻される。そうでなければ、SQL照会がRD
BMS20に発行され、供給されたカプセル62のオブ
ジェクトID78と一致する値テーブル内の最初のタプ
ルを検索する。次に、検索されたタプル内のオブジェク
トサイズ属性値を用いて、オブジェクト全体を保持する
のに十分なメモリバッファが割当てられる。オブジェク
トサイズ属性が同じオブジェクトIDを有する別のタプ
ルの存在を示した場合(検索された外部表現402が1
つのタプルに入れるには大きすぎたため)、追加のSQ
L照会が発行され、残りの値タプルが検索される。検索
されたタプルからの外部表現402の部分はメモリバッ
ファにコピーされる。次に、SQL照会がRDBMS2
0に発行され、供給されたカプセル62のオブジェクト
IDと一致するレフトテーブル内の最初のタプルを要求
する。値タプル内の「参照数」属性が同じオブジェクト
IDを有する別のタプルがあることを示した場合、更に
SQL照会が発生され、残りのレフトタプルを検索す
る。これらタプルからの参照されたオブジェクト記憶グ
ループ、オブジェクト番号、そしてコミット時間の値
は、外部参照404を作成するのに用いられる。次に、
SQL照会がRDBMS20に発行され、未了の処理を
遂行して検索されたタプルに対する如何なるRDBMS
のロックも保持されていないことを確認する。次に、P
OSカプセル70が作成され、供給されたカプセル62
からのオブジェクトID78のコピー、アーキテクチャ
ID、型記述ID、外部表現402及び値タプルから集
められた外部参照402の大きさ、そして外部参照及び
レフトタプルから集められた外部参照404の数を用い
て更新される。最後に、この新たに作成されたPOSカ
プセル70はこの関数のコール元に戻される。
ットデータメンバの値をチェックすることによって始
り、コミットが進行中であることを確認する。進行中の
ものがない場合、エラーが返される。進行中であれば、
供給されたPOSカプセル70ないの外部表現402の
長さを用いて外部表現402を記憶するのに必要な値タ
プルの数を計算する。そして、SQL照会が発行され、
新しい値タプル内の別の属性値に対して供給されたPO
Sカプセル70内のオブジェクトID78、アーキテク
チャID及び型記述IDデータメンバを用いて、外部表
現402を記憶するのに十分な値タプルを挿入する(表
10を参照)。次に、供給されたPOSカプセル70内
の外部参照データメンバの値を用いて、外部参照404
を記憶するのに必要なレフトタプルの数を決める。そし
て、SQL照会が発行され、新しいレフトタプル内の別
の属性値に対して供給されたPOSカプセル70内のオ
ブジェクトID78を用いて外部参照404を記憶する
のに必要なレフトタプルを挿入する(表11参照)。最
後に、制御がこの関数のコール元に戻される。
6はアプリケーション14によって開始されたトランザ
クションの最初を定めるのに用いられる。トタンザクシ
ョンデータメンバによってトランザクションが既に進行
中であることが示された場合、エラーが戻される。その
他の場合は、トランザクション装置から新たなトランザ
クションIDが得られ、制御はこの関数のコール元に戻
される。
は、アプリケーション14によって開始されたトランザ
クションの最後を定めるのに用いられる。トランザクシ
ョンデータメンバによって現在進行中のトランザクショ
ンがないことが示された場合、エラーが戻される。その
他の場合は、トランザクション装置がコールされて現在
のトランザクションを終了し、制御はこの関数のコール
元に戻される。
0はアプリケーション14によって開始されたトランザ
クションの終りを定めるのに用いれらる。トランザクシ
ョンデータメンバによって現在進行中のトランザクショ
ンがないことが示された場合、エラーが戻される。その
他の場合は、トランザクション装置がコールされて現在
のトランザクションを終了し、制御はこの関数のコール
元に戻される。
されたカプセル62に関連するオブジェクトへのロック
設定を試みる2つの形式を有する。第1の形式は、ロッ
クが与えられるまで待ち、第2の形式は最初の試行でロ
ックが与えられなければ戻る。供給されたカプセル62
のオブジェクトID78が無効オブジェクトIDであれ
ば、オブジェクトがまだデータベース内に存在せず、ア
プリケーション14によって暗黙にライトロックがかけ
られたので、制御はこの関数のコール元に戻される。要
求がリードオンリー(Read−Only)ロックであ
れば、供給されたカプセル62内の同時ロックデータメ
ンバはその値に設定され、制御はこの関数のコール元に
戻される。エラーのためにロックが与えられない場合、
供給されたカプセル62内の同時ロックデータメンバは
その値に設定され、制御はこの関数のコール元に戻され
る。
PTR44への関数コールを組み込みかつアプリケーシ
ョンソフトウエア内のプログラミング言語のステートメ
ントの中にPTR44のインスタンスを用いることによ
って、OMS20及びPTR44をインターフェースと
する。本発明の好適実施例では、OMS42はソフトウ
エアの一つのライブラリとOMS442に対抗するC+
+ヘッダファイルとからなっている。アプリケーション
開発プログラムはOMS42のヘッダファイルをDDL
80によって作成されたソースファイル38と共にコン
パイル中アプリケーションソフトウエアに含ませる。C
++ソースファイルのコンパイル中に作成されたライブ
ラリ及びオブジェクトファイルは連係されアプリケーシ
ョンロードモジュールを形成する。本発明の好適実施例
では、OODB18とOODB18を用いたアプリケー
ション14は同じアドレス空間で実行され、RDBMS
20は異なるアドレス空間で実行される。アプリケーシ
ョン14のソフトウエアからOODB18への関数コー
ルが抽出るされると、結果として得られる命令セットは
次に示す基本的制御の流れを有することになる。まず、
OMS42のインスタンスが作成されOMS42とのイ
ンターフェースが開始される。
ンスが作成され、これによりアプリケーション14は本
発明を用いて永続的オブジェクトを作成、操作、記憶及
び/または検索することができる。第3に、OMS S
egin−Transactionl10がコールさ
れ、アプリケーション14が望むのなら新しいデフォル
ト記憶グループを定義し、この中に新たに作成されるオ
ブジェクトが記憶される。第4に、OMS Defau
lt−Storage−Group108がコールさ
れ、新しいデフォルト記憶グループが定義され、アプリ
ケーション14が望むならば新しく作成されたオブジェ
クトがここに記憶される。
e−Context118がコールされ、アプリケーシ
ョン14が望むのなら新しいデフォルト名称コンテクス
トを定義し、この中に新しいオブジェクト名が登録され
る。第6に、アプリケーション14はオブジェクトのイ
ンスタンスを作成し、インスタンスのクラスに対して定
義された関数を用いてこれらを操作する。その中には1
つのオブジェクトから別の1つ以上のオブジェクトへの
参照の割当てを含む。第7に、データベースに記憶され
るべきオブジェクトに対し、アプリケーション14はオ
ブジェクトを適切なPTR44に割当て、これらのPT
R44に対しPTR Set−Modified310
とPTR Persist304をコールする。第8
に、データベースにセーブされた後に明示的に検索され
るオブジェクトに対し、アプリケーション14はPTR
Name306をコールしオブジェクト名を各オブジ
ェクトと関連づける。
Commit−Transactionl12をコール
し、トランザクションを終了させ、オブジェクトをデー
タベースにセーブする。第10に、アプリケーション1
4はOMS Shutdown106をコールするか、
OMS42のインスタンスを削除してOMS42とのイ
ンターフェースを終了する。第11に、アプリケーショ
ン14がOMS Shutdown106をコールした
なら、OMS Startup102もコールし、OM
S42とのインターフェースを再開する。一方、アプリ
ケーション14がOMS42のインスタンスを削除した
のなら、OMS42の新しいインスタンスを作成しOM
S42とのインターフェースを再開する。
Begin−Transactionl10をコール
し新たなトランザクションを始める。第13に、OMS
Default−Storage−Group108
がコールされ、アプリケーション14が望むのなら新し
いデフォルト記憶グループを定義し、この中に新しく作
成されたオブジェクトが記憶される。第14に、Def
ault−Name−Context118がコールさ
れ、アプリケーション14が望むのなら新しいデフォル
ト名称コンテクストを定義し、この中に新しいオブジェ
クト名が登録される。
ch120−124をコールしてデータベースから1つ
の以上の永続的オブジェクトを明示的に検索する。第1
6に、アプリケーション14は、インスタンスのクラス
に対して定義された関数を用いて検索されたオブジェク
トを操作することができる。これには1つのオブジェク
トから1つ以上の別のオブジェクトへの参照を割当てる
ことが含まれる。これらのオブジェクトの操作によって
アプリケーション14がアクセスする際に自動的に別の
永続的オブジェクトが検索される。新しいオブジェクト
はアプリケーション14によって作成することもでき
る。
ジェクトに対して、アプリケーション14は適切なPT
R44のPTR Set−Modified310をコ
ールする。アプリケーション14は新たに作成されたオ
ブジェクトについてPTRPersist304をコー
ルする必要もある。第18に、データベースにセーブさ
れた後に明示的に検索される新たに作成されたオブジェ
クトに対し、アプリケーション14はPTR Name
306をコールしてオブジェクト名を各オブジェクトと
関連づける。
Commit−Transaction112をコー
ルして変更したオブジェクト及び新たに作成したオブジ
ェクトをデータベースにセーブする。または、アプリケ
ーション14はOMS Abort−Transact
ion114をコールして変更したオブジェクト及び新
たに作成したオブジェクトを破棄する。第20に、アプ
リケーション14はOMS Shutdonw106を
コールするか、OMS42のインスタンスを削除してO
MS42とのインターフェースを終了する。
たが、当業者には種々の変更やこれに代る実施例が考え
られよう。したがって、本発明は添付の特許請求の範囲
に関してのみ限定されることを意図している。
コーポレーテッド。この特許書類の開示の一部は著作権
保護を受ける資料が含まれる。著作権所有者は、特許商
標庁の特許ファイルまたはレコードにあるように、如何
なる者による特許開示のファクシミリによる複製に対し
て異議はないが、それ以外では全ての著作権を保有す
る。
る。 (1) 少なくとも一部がオブジェクト指向型プログラ
ミング言語で書かれた少なくとも1つのアプリケーショ
ンプログラムによって作成されたオブジェクトの記憶及
び検索のためのデータベース管理システムにおいて、少
なくとも1つのデータベースと、少なくとも1つのアプ
リケーションプログラムとインターフェースし、前記少
なくとも1つのアプリケーションプログラムによって作
成された少なくとも1つのオブジェクトの記億を管理
し、前記少なくとも1つのアプリケーションプログラム
によって要求された際これによって用いられるためにそ
のような少なくとも1つのオブジェクトの検索を指揮
し、自らによってのみアクセス可能な内部オブジェクト
を制御するオブジェクト管理部と、前記内部オブジェク
ト及び前記少なくとも1つのオブジェクトを前記オブジ
ェクト管理部から受取り、このような受取った少なくと
も1つのオブジェクトを変換し、このように変換された
少なくとも1つのオブジェクトを前記オブジェクト管理
部に戻すオブジェクト変換部と、前記少なくとも1つの
データベースと前記オブジェクト管理部との間を結び、
前記少なくとも1つのアプリケーションプログラムまた
は前記オブジェクト管理部によって作成され変換された
少なくとも1つのオブジェクトをを記憶しかつ検索する
永続的オブジェクト記憶補助部とからなるデータベース
管理システム。
システムにおいて、前記内部オブジェクトは更にアーキ
テクチャオブジェクト及び少なくとの1つのオブジェク
ト型記述をふくむ、データベース管理システム。
システムは更に、ユーザによってアクセス可能で、前記
オブジェクト管理部と相互作用して前もって選択された
定義を処理するデータ定義言語変換部を含み、前記デー
タ定義言語変換部は、前記少なくとも1つのアプリケー
ションプログラムの実行中に前記オブジェクト変換部及
び前記オブジェクト管理部によって用いられる第1の部
分の情報を作成し、更にアプリケーションプログムを作
成するためにユーザによって用いられる第2の部分の情
報を作成する、データベース管理システム。
システムにおいて、前記前もって選択された定義はクラ
ス定義である、データベース管理システム。
システムにおいて、前記前もって選択された定義はデー
タ定義である、データベース管理システム。
行に先立ち、データベース管理サービスと共にクラス定
義を登録する方法において、前記クラスのインスタンス
は前記少なくとも1つのアプリケーションプログラムの
実行中に少なくとも1つのデータベースに記憶され、ク
ラス定義を含むソースファイルを検索し、この様なクラ
ス定義の所定の部分を抽出し、このような抽出された所
定の部分をセーブし、そして前記少なくとも1つのアプ
リケーションプログラムの実行中オブジェクトの変換及
び前もって定義された関数の実行にこのようなセーブさ
れた所定の部分を用いるステップからなるクラス定義登
録方法。
法において、前記そのようなクラス定義の所定部分を抽
出するステップは更に、データメンバ、インヘリタンス
及び関数に関する情報の予め選択された部分を抽出する
ステップを含む、クラス定義登録方法。
法において、前記データメンバに関する情報を抽出する
ステップは更に、前記データメンバの名称、前記データ
メンバの型の名称、このクラスのインスタンス内の前記
データメンバの位置、及び前記データメンバの大きさ、
配列及び境界を抽出するステップを含む、クラス定義登
録方法。
法において、前記抽出するステップは更に、データメン
バ型が配列ならば配列の大きさを抽出し、データメンバ
型がポインタならばポインタ型、ポインタ参照のデータ
型及び指摘された参照の数を抽出するステップを含む、
クラス定義登録方法。
方法において、前記ポインタ型、ポインタ参照のデータ
型及び指摘された参照の数を抽出するステップは更に、
そのようなポインタ参照のデータ型は、クラスインスタ
ンスか構成かまたは基本データ型かを判断するステップ
を含む、クラス定義登録方法。
方法において、前記ポインタ型及びそれが指摘するもの
を抽出するステップは更に、そのようなポインタの型は
独立インスタンス、従属インスタンスのどちらを示すか
を判断するステップを含む、クラス定義登録方法。
方法において、前記インヘリタンスを抽出するステップ
は、更に、クラス名と、独立オブジェクトか従属オブジ
ェクトかを抽出し、クラスインスタンスの大きさを抽出
するステップを含むクラス定義登録方法。
方法において、前記関数に関する情報を抽出するステッ
プは更に、仮想関数の存在を示す所定のキーワードを検
索するステップを含むクラス定義登録方法。
方法において、前記関数に関する情報を抽出するステッ
プは更に、デーモン関数の存在を示す所定のキーワード
を検索するステップを含むクラス定義登録方法。
実行中に、いかにデータの集合化及び検索をするかを動
的に指定するシステムにおいて、少なくとも1つのデー
タベースと、指示及び検索機能を含む前記少なくとも1
つのデータベースとインターフェースするオブジェクト
管理システムとを含み、前記指示機能は参照するオブジ
ェクトが検索される時参照されるオブジェクトがどのよ
うに指定されるかを指示し、前記検索機能は、その参照
するオブジェクトが検索される時オブジェクトが検索さ
れるべきかを決定し、その他の場合参照するオブジェク
トからそれがアクセスされる時のみ自動的にそのような
参照されたオブジェクトを取込む、システム。
実行中、オブジェクトを1つ以上の検索用関係タプル内
の関係属性に分解することなく少なくとも1つのデータ
ベース管理システムにオブジェクトを記憶するシステム
において、オブジェクト管理部と、前記少なくとも1つ
のデータベータシステムとSQLインターフーェスを用
いる前記オブジェクト管理部との間を結ぶ永続的オブジ
ェクト記憶補助部と、前記オブジェクト管理部からアク
セス可能で、少なくとも1つのオブジェクトの外部表現
を含む第1のバッファと外部参照を含む第2のバッファ
とを発生し、前記少なくとも1つのオブジェクトから少
なくとも1つの付加オブジェクトへのオブジェクト変換
部とを含み、前記永続的オブジェクト記憶補助部は前記
第1及び第2のバッファを前記選択された識別子と共に
前記少なくとも1つのデーターベースシステムに記憶
し、永続的オブジェクト記憶補助部は前記第1及び第2
のバッファ及び前記選択された識別子を前記少なくとも
1つのデータベースシステムから検索して前記オブジェ
クト管理部に戻し、前記オブジェクト管理部は前記検索
された記憶されているオブジェクトを前記アプリケーシ
ョンプログラムによって実行中に用いられるように前記
オブジェクト変換部に渡す、オブジェクト記憶システ
ム。
ステムにおいて、前記永続的オブジェクト記憶補助部は
前記第1のバッファの内容をオブジェクト識別子、オブ
ジェクト型識別子及びアーキテクチャ識別子と共に第1
の表に記憶し、前記アーキテクチャ識別子は前記アプリ
ケーションプログラムが実行されるコンピュータのアー
キテクチャを示し、前記永続的オブジェクト記憶補助部
は前記第2のバッファの内容をオブジェクト識別子と共
に第2の表に記憶する、オブジェクト記憶システム。
ステムにおいて、前記オブジェクト変換部は、前記オブ
ジェクト管理部内に含まれている既に登録されたクラス
定義の選択された部分を用いて前記第1及び第2のバッ
ファを作成する、オブジェクト記憶システム。
からなるオブジェクト指向型プログラミング言語で少な
くとも一部分が書かれているアプリケーションプログラ
ムによって作成されたオブジェクトの長語による記憶及
び検索を支援するデータベース管理システム及び方法。
これらのモジュールは、データ定義言語変換、オブジェ
クト管理、オブジェクト変換及び永続的オブジェクト記
憶サービスを提供する。このようなシステムは、アプリ
ケーション、データベース管理システム及びデータベー
ス間の相互作用の回数を減少するためにオブジェクトフ
ォールト機能を実行する。
わすブロック図。
ロック図。
処理の流れを表わした流れ図。
モンテーブルの例を表わしたブロック図。
ジェクトマップの例を表わしたブロック図。
ト、そのオブジェクトの型記述の間の関係の例を示すブ
ロック図。
のオブジェクト変換過程を示すブロック図。
のオブジェクト変換過程を示すブロック図。
Claims (2)
- 【請求項1】 少なくとも一部がオブジェクト指向型プ
ログラミング言語で書かれた少なくとも1つのアプリケ
ーションプログラムによって作成されたオブジェクトの
記憶及び検索のためのデータベース管理システムにおい
て、 少なくとも1つのデータベースと、 少なくとも1つのアプリケーションプログラムとインタ
ーフェースし、前記少なくとも1つのアプリケーション
プログラムによって作成された少なくとも1つのオブジ
ェクトの記億を管理し、前記少なくとも1つのアプリケ
ーションプログラムによって要求された際これによって
用いられるためにそのような少なくとも1つのオブジェ
クトの検索を指揮し、自らによってのみアクセス可能な
内部オブジェクトを制御するオブジェクト管理部と、 前記内部オブジェクト及び前記少なくとも1つのオブジ
ェクトを前記オブジェクト管理部から受取り、このよう
な受取った少なくとも1つのオブジェクトを変換し、こ
のように変換された少なくとも1つのオブジェクトを前
記オブジェクト管理部に戻すオブジェクト変換部と、 前記少なくとも1つのデータベースと前記オブジェクト
管理部との間を結び、前記少なくとも1つのアプリケー
ションプログラムまたは前記オブジェクト管理部によっ
て作成され変換された少なくとも1つのオブジェクトを
記憶しかつ検索する永続的オブジェクト記憶補助部とか
らなるデータベース管理システム。 - 【請求項2】 アプリケーションプログラムの実行に先
立ち、データベース管理サービスと共にクラス定義を登
録する方法において、前記クラスのインスタンスは前記
少なくとも1つのアプリケーションプログラムの実行中
に少なくとも1つのデータベースに記憶され、 クラス定義を含むソースファイルを検索し、 この様なクラス定義の所定の部分を抽出し、 このような抽出された所定の部分をセーブし、そして前
記少なくとも1つのアプリケーションプログラムの実行
中オブジェクトの変換及び前もって定義された関数の実
行にこのようなセーブされた所定の部分を用いるステッ
プからなるクラス定義登録方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US531493 | 1990-05-30 | ||
US07/531,493 US5297279A (en) | 1990-05-30 | 1990-05-30 | System and method for database management supporting object-oriented programming |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0644128A true JPH0644128A (ja) | 1994-02-18 |
JP3437849B2 JP3437849B2 (ja) | 2003-08-18 |
Family
ID=24117859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12579091A Expired - Lifetime JP3437849B2 (ja) | 1990-05-30 | 1991-05-29 | オブジェクト指向プログラミングを支援するデータベース管理システム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US5297279A (ja) |
EP (1) | EP0459683B1 (ja) |
JP (1) | JP3437849B2 (ja) |
DE (1) | DE69131530T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997029421A1 (fr) * | 1996-02-05 | 1997-08-14 | Athena Telecom Lab, Inc. | Procede et equipement de gestion d'objets |
JPH1069425A (ja) * | 1996-03-20 | 1998-03-10 | Internatl Business Mach Corp <Ibm> | 永続オブジェクトにアクセスするための方法及びメタ状態データを交換するための方法 |
US20230409604A1 (en) * | 2022-06-20 | 2023-12-21 | Emtruth, Inc. | Natural language processing for blockchain-based management of multi-source, multi-format binary objects |
Families Citing this family (330)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
US5822590A (en) * | 1991-10-31 | 1998-10-13 | Texas Instruments Incorporated | dbX: a persistent programming language model |
US5555403A (en) | 1991-11-27 | 1996-09-10 | Business Objects, S.A. | Relational database access system using semantically dynamic objects |
US6578027B2 (en) | 1996-08-20 | 2003-06-10 | Business Objects, Sa | Relational database access system using semantically dynamic objects |
JPH05197734A (ja) * | 1992-01-17 | 1993-08-06 | Mitsui Eng & Shipbuild Co Ltd | データ処理システム |
EP0562822B1 (en) * | 1992-03-24 | 2000-06-07 | Canon Kabushiki Kaisha | Method of managing data structure containing both persistent data and transient data |
US5432936A (en) * | 1992-04-09 | 1995-07-11 | Microsoft Corporation | Method for implementing pointers to members in a compiler for an object-oriented programming language |
US5469562A (en) * | 1992-06-26 | 1995-11-21 | Digital Equipment Corporation | Durable atomic storage update manager |
US5506983A (en) * | 1992-07-06 | 1996-04-09 | Microsoft Corporation | Method and system for transactioning of modifications to a tree structured file |
US5412797A (en) * | 1992-08-31 | 1995-05-02 | International Business Machines Corporation | Method for implementing one-to-many binary relations in object-oriented systems using doubly-linked rings |
US5404525A (en) * | 1992-09-30 | 1995-04-04 | International Business Machines Corporation | Efficient method router that supports multiple simultaneous object versions |
US5459860A (en) * | 1992-10-05 | 1995-10-17 | International Business Machines Corporation | Computerized system and process for managing a distributed database system |
FR2698977B1 (fr) * | 1992-12-03 | 1994-12-30 | Alsthom Cge Alcatel | Système d'information multimédia. |
US5390325A (en) * | 1992-12-23 | 1995-02-14 | Taligent, Inc. | Automated testing system |
JPH06214865A (ja) * | 1993-01-12 | 1994-08-05 | Fujitsu Ltd | オブジェクト・ベース・データ処理装置 |
JP2711216B2 (ja) * | 1993-01-26 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | オブジェクトを管理するためのシステム及び方法 |
US5613099A (en) * | 1993-02-17 | 1997-03-18 | International Business Machines Corporation | Persistent object storage system with modifiable group skeletal formats |
JP3178151B2 (ja) * | 1993-03-19 | 2001-06-18 | 富士ゼロックス株式会社 | オブジェクト指向言語のメッセージコンパイル装置 |
EP0620520A1 (en) * | 1993-03-30 | 1994-10-19 | AT&T Corp. | Method for making persistent data objects having hidden pointers |
SE501433C2 (sv) * | 1993-06-23 | 1995-02-13 | Ellemtel Utvecklings Ab | Sätt att uppnå dataaccess i en primärminnesbaserad databas |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
US5615400A (en) * | 1993-06-30 | 1997-03-25 | Apple Computer, Inc. | System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers |
US5504886A (en) * | 1993-07-02 | 1996-04-02 | International Business Machines Corporation | System and method for applying user supplied relation definitions to application files for a relational database |
WO1995003586A1 (en) * | 1993-07-21 | 1995-02-02 | Persistence Software, Inc. | Method and apparatus for generation of code for mapping relational data to objects |
GB9315448D0 (en) * | 1993-07-26 | 1993-09-08 | Rank Xerox Ltd | Recording and retrieval of information relevant to the activities of a user |
US5541986A (en) * | 1993-07-27 | 1996-07-30 | Bell Communications Research, Inc. | Method and system for automated telecommunications service script consolidation and downloading |
WO1995004960A2 (en) * | 1993-08-02 | 1995-02-16 | Persistence Software, Inc. | Method and apparatus for managing relational data in an object cache |
US5432925A (en) * | 1993-08-04 | 1995-07-11 | International Business Machines Corporation | System for providing a uniform external interface for an object oriented computing system |
US5499365A (en) * | 1993-08-04 | 1996-03-12 | International Business Machines Corporation | System and method for controlling versions of objects in an object oriented computing environment |
CN1125490A (zh) * | 1993-09-13 | 1996-06-26 | 塔里根特公司 | 面向目标的视频系统 |
AU6019994A (en) | 1993-09-13 | 1995-04-03 | Taligent, Inc. | Multimedia data routing system |
WO1995012866A1 (en) * | 1993-11-02 | 1995-05-11 | Taligent, Inc. | Object-oriented graphic system |
US5568639A (en) * | 1993-11-24 | 1996-10-22 | Menai Corporation | Method and apparatus for providing an object-oriented file structuring system on a computer |
US5548779A (en) | 1993-12-21 | 1996-08-20 | Taligent | System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects |
US5623657A (en) * | 1993-12-30 | 1997-04-22 | International Business Machines Corporation | System for processing application programs including a language independent context management technique |
US5964844A (en) * | 1994-01-18 | 1999-10-12 | Cognex Corporation | Method and apparatus for extensible command structure for machine vision system |
US5732262A (en) * | 1994-01-31 | 1998-03-24 | International Business Machines Corporation | Database definition language generator |
US5694597A (en) * | 1994-04-26 | 1997-12-02 | International Business Machines Corporation | Method and system for optimizing access to a datastore |
JPH07295815A (ja) * | 1994-04-26 | 1995-11-10 | Internatl Business Mach Corp <Ibm> | 永続オブジェクトのマッピング・システム及び方法 |
US5596745A (en) * | 1994-05-16 | 1997-01-21 | International Business Machines Corporation | System and procedure for concurrent database access by multiple user applications through shared connection processes |
JPH07319917A (ja) * | 1994-05-24 | 1995-12-08 | Fuji Xerox Co Ltd | 文書データべース管理装置および文書データべースシステム |
US5678038A (en) * | 1994-06-21 | 1997-10-14 | International Business Machines Corporation | Storing and retrieving heterogeneous classification systems utilizing globally unique identifiers |
US5627979A (en) * | 1994-07-18 | 1997-05-06 | International Business Machines Corporation | System and method for providing a graphical user interface for mapping and accessing objects in data stores |
JP3773964B2 (ja) * | 1994-07-25 | 2006-05-10 | 株式会社日立製作所 | オブジェクト指向データベース管理システム及びその管理方法 |
US5737736A (en) * | 1994-07-29 | 1998-04-07 | Oracle Corporation | Method and apparatus for storing objects using a c-structure and a bind descriptor |
US5652884A (en) * | 1994-11-14 | 1997-07-29 | Object Technology Licensing Corp. | Method and apparatus for dynamic update of an existing object in an object editor |
US5630131A (en) * | 1994-11-14 | 1997-05-13 | Object Technology Licensing Corp. | Method and apparatus for importing and exporting archive files for a graphical user interface |
US5752027A (en) * | 1994-11-30 | 1998-05-12 | Dun & Bradstreet Software Services, Inc. | Apparatus and process for creating and accessing a database centric object |
JPH08286916A (ja) * | 1994-12-16 | 1996-11-01 | Internatl Business Mach Corp <Ibm> | オブジェクトにより手続きソフトウェアを機能的に改良するシステム及び方法 |
US5630066A (en) * | 1994-12-20 | 1997-05-13 | Sun Microsystems, Inc. | System and method for locating object view and platform independent object |
US5659793A (en) * | 1994-12-22 | 1997-08-19 | Bell Atlantic Video Services, Inc. | Authoring tools for multimedia application development and network delivery |
US5826102A (en) * | 1994-12-22 | 1998-10-20 | Bell Atlantic Network Services, Inc. | Network arrangement for development delivery and presentation of multimedia applications using timelines to integrate multimedia objects and program objects |
US6154207A (en) * | 1994-12-22 | 2000-11-28 | Bell Atlantic Network Services, Inc. | Interactive language editing in a network based video on demand system |
AU4469896A (en) * | 1994-12-23 | 1996-07-19 | Southwestern Bell Technology Resources, Inc. | Flexible network platform and call processing system |
JPH08235033A (ja) * | 1995-02-24 | 1996-09-13 | Nec Corp | オブジェクト指向データベース管理システムにおける結合演算方式 |
US5793965A (en) * | 1995-03-22 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for determining the type of an object in a distributed object system |
US5870552A (en) * | 1995-03-28 | 1999-02-09 | America Online, Inc. | Method and apparatus for publishing hypermedia documents over wide area networks |
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 |
US5692183A (en) * | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
US6715148B1 (en) | 1995-04-03 | 2004-03-30 | International Business Machines Corporation | Efficient method router that supports multiple simultaneous object versions |
WO1996032685A1 (en) * | 1995-04-11 | 1996-10-17 | Kinetech, Inc. | Identifying data in a data processing system |
JPH11504451A (ja) * | 1995-04-24 | 1999-04-20 | アスペクト・ディベロップメント・インコーポレイテッド | データベース構造に適したオブジェクトのモデリング、リレーショナルデータベース構造への翻訳、それらへの流動的なサーチ |
US5829006A (en) * | 1995-06-06 | 1998-10-27 | International Business Machines Corporation | System and method for efficient relational query generation and tuple-to-object translation in an object-relational gateway supporting class inheritance |
IT1275529B (it) * | 1995-07-14 | 1997-08-07 | Alcatel Italia | Emulatore per un database relazionale in linguaggio sql |
US5918051A (en) * | 1995-07-19 | 1999-06-29 | Ricoh Company, Ltd. | Object-oriented communication system with support for multiple remote machine types |
US5832264A (en) | 1995-07-19 | 1998-11-03 | Ricoh Company, Ltd. | Object-oriented communications framework system with support for multiple remote machine types |
US5732261A (en) | 1995-07-19 | 1998-03-24 | Ricoh Company, Ltd. | Method of using an object-oriented communication system with support for multiple remote machine types |
US5903753A (en) * | 1995-08-18 | 1999-05-11 | International Business Machines Corporation | Name space registry with backward compatibility for older applications |
US5872914A (en) * | 1995-08-31 | 1999-02-16 | International Business Machines Corporation | Method and apparatus for an account managed object class model in a distributed computing environment |
US5732257A (en) * | 1995-09-13 | 1998-03-24 | Hewlett-Packard Co. | Object conversion method from a flat object space to a class structured space |
US5727158A (en) * | 1995-09-22 | 1998-03-10 | Integra Soft, Inc. | Information repository for storing information for enterprise computing system |
US5864864A (en) * | 1995-09-27 | 1999-01-26 | Sun Microsystems, Inc. | Method and apparatus for providing transparent persistent data support to foreign data types |
US5812850A (en) * | 1995-11-13 | 1998-09-22 | Object Technology Licensing Corp. | Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution |
US5778230A (en) * | 1995-11-13 | 1998-07-07 | Object Technology Licensing Corp. | Goal directed object-oriented debugging system |
US5956479A (en) * | 1995-11-13 | 1999-09-21 | Object Technology Licensing Corporation | Demand based generation of symbolic information |
US5815653A (en) * | 1995-11-13 | 1998-09-29 | You; Lawrence L. | Debugging system with portable debug environment-independent client and non-portable platform-specific server |
US6158045A (en) * | 1995-11-13 | 2000-12-05 | Object Technology Licensing Corporation | Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support |
US5787245A (en) * | 1995-11-13 | 1998-07-28 | Object Technology Licensing Corporation | Portable debugging service utilizing a client debugger object and a server debugger object |
US5867708A (en) * | 1995-11-20 | 1999-02-02 | International Business Machines Corporation | System, method, and article of manufacture for adding concurrency to a binary class in an object oriented system |
US5878428A (en) * | 1995-11-20 | 1999-03-02 | International Business Machines Corporation | System, method, and article of manufacture for adding transactional recovery to a binary class in an object oriented system |
US5794030A (en) * | 1995-12-04 | 1998-08-11 | Objectivity, Inc. | System and method for maintenance and deferred propagation of schema changes to the affected objects in an object oriented database |
US5790132A (en) * | 1995-12-07 | 1998-08-04 | Object Technology Licensing Corp. | Image rendering system with extensible mechanism for providing visual user feedback when an image graphic is selected |
US6782538B1 (en) | 1995-12-14 | 2004-08-24 | International Business Machines Corporation | Object oriented information handling system including an extensible instance manager |
US5873092A (en) * | 1995-12-14 | 1999-02-16 | International Business Machines Corporation | Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties |
US5765153A (en) * | 1996-01-03 | 1998-06-09 | International Business Machines Corporation | Information handling system, method, and article of manufacture including object system authorization and registration |
US5822580A (en) * | 1996-01-19 | 1998-10-13 | Object Technology Licensing Corp. | Object oriented programming based global registry system, method, and article of manufacture |
US5809506A (en) * | 1996-01-22 | 1998-09-15 | International Business Machines Corporation | Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto |
US5819251A (en) * | 1996-02-06 | 1998-10-06 | Oracle Corporation | System and apparatus for storage retrieval and analysis of relational and non-relational data |
US6128771A (en) * | 1996-02-09 | 2000-10-03 | Sun Microsystems, Inc. | System and method for automatically modifying database access methods to insert database object handling instructions |
GB9604522D0 (en) * | 1996-03-02 | 1996-05-01 | Univ Strathclyde | Databases |
US6063128A (en) * | 1996-03-06 | 2000-05-16 | Bentley Systems, Incorporated | Object-oriented computerized modeling system |
US5870742A (en) * | 1996-03-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for enabling persistent attributes in an object oriented environment |
US5899997A (en) * | 1996-04-03 | 1999-05-04 | Transparency Systems, Inc. | Object-oriented query mechanism |
US5752028A (en) * | 1996-04-03 | 1998-05-12 | Ellacott; Bruce Arthur | Object-oriented query mechanism |
US6081798A (en) * | 1996-04-24 | 2000-06-27 | International Business Machines Corp. | Object oriented case-based reasoning framework mechanism |
US5778378A (en) | 1996-04-30 | 1998-07-07 | International Business Machines Corporation | Object oriented information retrieval framework mechanism |
US5696961A (en) * | 1996-05-22 | 1997-12-09 | Wang Laboratories, Inc. | Multiple database access server for application programs |
US5907846A (en) * | 1996-06-07 | 1999-05-25 | Electronic Data Systems Corporation | Method and system for accessing relational databases using objects |
US5778355A (en) * | 1996-06-11 | 1998-07-07 | International Business Machines Corp. | Database method and apparatus for interactively retrieving data members and related members from a collection of data |
US5870733A (en) * | 1996-06-14 | 1999-02-09 | Electronic Data Systems Corporation | Automated system and method for providing access data concerning an item of business property |
US5877768A (en) | 1996-06-19 | 1999-03-02 | Object Technology Licensing Corp. | Method and system using a sorting table to order 2D shapes and 2D projections of 3D shapes for rendering a composite drawing |
US5826250A (en) * | 1996-06-19 | 1998-10-20 | Pegasystems Inc. | Rules bases and methods of access thereof |
GB2315343A (en) * | 1996-06-25 | 1998-01-28 | Texas Instruments Inc | Non-model-based application transitioning |
US6012081A (en) * | 1996-07-03 | 2000-01-04 | Siemens Aktiengesellschaft | Service and event synchronous/asynchronous manager |
EP0817016A3 (en) * | 1996-07-03 | 2003-10-22 | Siemens Aktiengesellschaft | Software ICS for high level application frameworks |
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 |
US5970476A (en) * | 1996-09-19 | 1999-10-19 | Manufacturing Management Systems, Inc. | Method and apparatus for industrial data acquisition and product costing |
US6018743A (en) * | 1996-10-04 | 2000-01-25 | International Business Machines Corporation | Framework for object-oriented interface to record file data |
US5809508A (en) * | 1996-10-25 | 1998-09-15 | International Business Machines Corporation | Method for capturing and cataloging datastore characteristics to define datastore persistent objects |
US5765162A (en) * | 1996-10-25 | 1998-06-09 | International Business Machines Corporation | Method for managing queryable datastore persistent objects and queryable datastore collections in an object-oriented environment |
US5794248A (en) * | 1996-10-25 | 1998-08-11 | International Business Machines Corporation | Method for representing non-object-oriented datastores using a collection of collections data model |
US5809509A (en) * | 1996-10-25 | 1998-09-15 | International Business Machines Corporation | Method for using a non-object-oriented datastore as a generic persistent datastore for persistent objects |
US5781907A (en) * | 1996-10-25 | 1998-07-14 | International Business Machines Corporation | Method for the incremental presentation of non-object-oriented datastores using an object-oriented queryable datastore collection |
US5778358A (en) * | 1996-10-25 | 1998-07-07 | International Business Machines Corporation | Query parser for accessing non-relational, non-object-oriented datastores |
US5764979A (en) * | 1996-10-25 | 1998-06-09 | International Business Machines Corporation | Method for capturing and cataloging program characteristics for the usage of datastore persistent classes |
US5794247A (en) | 1996-10-25 | 1998-08-11 | International Business Machines Corporation | Method for representing data from non-relational, non-object-oriented datastores as queryable datastore persistent objects |
US5737598A (en) * | 1996-10-25 | 1998-04-07 | International Business Machines Corporation | Method for capturing and cataloging specifications for datastore persistent classes |
US5799313A (en) * | 1996-10-25 | 1998-08-25 | International Business Machines Corporation | Framework for object-oriented access to non-object-oriented datastores |
US5737597A (en) * | 1996-10-25 | 1998-04-07 | International Business Machines Corporation | Method for cataloging datastore characteristics and defining and generating datastore persistent objects |
US5761671A (en) * | 1996-10-25 | 1998-06-02 | International Business Machines Corporation | Method for interfacing queryable datestore persistent objects to non-relational, non-object-oriented datastores |
US5787436A (en) * | 1996-10-25 | 1998-07-28 | International Business Machines Corporation | Method for using a datastore cursor for the incremental presentation of query results when traversing implied collections in non-object-oriented datastores |
US5778379A (en) * | 1996-10-25 | 1998-07-07 | International Business Machines Corporation | Query syntax for accessing non-relational, non-object-oriented datastores |
US5765163A (en) * | 1996-10-25 | 1998-06-09 | International Business Machines Corporation | Method for using queryable persistent identifiers to locate data for datastore persistent objects in non-object-oriented datastores |
US5765161A (en) * | 1996-10-25 | 1998-06-09 | International Business Machines Corporation | Method for encapsulating data from non-object-oriented datastores as datastore persistent objects |
US5878432A (en) * | 1996-10-29 | 1999-03-02 | International Business Machines Corporation | Object oriented framework mechanism for a source code repository |
US5826265A (en) * | 1996-12-06 | 1998-10-20 | International Business Machines Corporation | Data management system having shared libraries |
US6088693A (en) * | 1996-12-06 | 2000-07-11 | International Business Machines Corporation | Data management system for file and database management |
US6035297A (en) * | 1996-12-06 | 2000-03-07 | International Business Machines Machine | Data management system for concurrent engineering |
US5907838A (en) * | 1996-12-10 | 1999-05-25 | Seiko Epson Corporation | Information search and collection method and system |
US5953532A (en) * | 1997-01-03 | 1999-09-14 | Ncr Corporation | Installation and deinstallation of application programs |
US5987452A (en) * | 1997-01-22 | 1999-11-16 | At&T Corp | Query translation system |
US5924105A (en) * | 1997-01-27 | 1999-07-13 | Michigan State University | Method and product for determining salient features for use in information searching |
US5936860A (en) * | 1997-03-28 | 1999-08-10 | International Business Machines Corporation | Object oriented technology framework for warehouse control |
US6041312A (en) * | 1997-03-28 | 2000-03-21 | International Business Machines Corporation | Object oriented technology framework for accounts receivable and accounts payable |
US5899990A (en) * | 1997-03-31 | 1999-05-04 | Sun Microsystems, Inc. | Java-to-Database Connectivity Server |
US6145121A (en) * | 1997-04-17 | 2000-11-07 | University Of Washington | Trace based method for the analysis, benchmarking and tuning of object oriented databases and applications |
US5991765A (en) * | 1997-05-06 | 1999-11-23 | Birdstep Technology As | System and method for storing and manipulating data in an information handling system |
US6094664A (en) * | 1997-05-30 | 2000-07-25 | Sun Microsystems | Method and apparatus for optimizing the null pointer exception in an object-oriented programming environment with statically typed variables |
JPH1115646A (ja) * | 1997-06-25 | 1999-01-22 | Fujitsu Ltd | 技術情報管理システム |
US5920725A (en) * | 1997-07-02 | 1999-07-06 | Adaptivity Inc. | Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors |
US6266663B1 (en) * | 1997-07-10 | 2001-07-24 | International Business Machines Corporation | User-defined search using index exploitation |
US5963958A (en) * | 1997-07-18 | 1999-10-05 | Electronic Data Systems Corporation | Method and system for generating object definitions |
US5937409A (en) * | 1997-07-25 | 1999-08-10 | Oracle Corporation | Integrating relational databases in an object oriented environment |
US5956727A (en) * | 1997-09-15 | 1999-09-21 | International Business Machines Corporation | Heterogeneous database system with data source extensibility and alteration of database functions |
US6016394A (en) * | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
US5937410A (en) * | 1997-10-16 | 1999-08-10 | Johnson Controls Technology Company | Method of transforming graphical object diagrams to product data manager schema |
KR100593581B1 (ko) * | 1997-10-17 | 2006-06-28 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 데이터를 일정한 사이즈의 전송 패킷으로 캡슐화하는 방법 |
US7076784B1 (en) * | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
US6112210A (en) * | 1997-10-31 | 2000-08-29 | Oracle Corporation | Apparatus and method for null representation in database object storage |
US6128622A (en) * | 1997-11-26 | 2000-10-03 | International Business Machines Corporation | IMS web studio taskguide |
US6105035A (en) * | 1998-02-17 | 2000-08-15 | Lucent Technologies, Inc. | Method by which notions and constructs of an object oriented programming language can be implemented using a structured query language (SQL) |
KR100280820B1 (ko) | 1998-03-19 | 2001-02-01 | 정선종 | C++ 객체지향 프로그래밍 시스템에서의 객체에 영속성부여 방법 |
US6714991B1 (en) * | 1998-03-23 | 2004-03-30 | Sun Microsystems, Inc. | Method and apparatus for implementing fast subclass and subtype checks |
EP0945812A1 (en) | 1998-03-23 | 1999-09-29 | Application Building Blocks Limited | Data processing systems |
US6298428B1 (en) * | 1998-03-30 | 2001-10-02 | International Business Machines Corporation | Method and apparatus for shared persistent virtual storage on existing operating systems |
US6128611A (en) * | 1998-04-30 | 2000-10-03 | International Business Machines Corporation | Internet-enabled generic application program for accessing hierarchical data |
US6529914B1 (en) | 1998-04-30 | 2003-03-04 | International Business Machines Corporation | Object-oriented programming model for accessing hierarchical databases |
US6128619A (en) * | 1998-04-30 | 2000-10-03 | International Business Machines Corporation | Generating an internet application for accessing a hierarchical database |
US6202069B1 (en) | 1998-04-30 | 2001-03-13 | International Business Machines Corporation | Execution paradigm for accessing hierarchical data using an object framework |
US6360229B2 (en) | 1998-04-30 | 2002-03-19 | International Business Machines Corporation | Generic execution model for isolating applications from underlying databases |
US20020049573A1 (en) * | 1998-05-13 | 2002-04-25 | El Ata Nabil A. Abu | Automated system and method for designing model based architectures of information systems |
US7783468B2 (en) * | 1998-05-13 | 2010-08-24 | Accretive Technologies, Inc. | Automated system and method for service and cost architecture modeling of enterprise systems |
US7031901B2 (en) * | 1998-05-13 | 2006-04-18 | Abu El Ata Nabil A | System and method for improving predictive modeling of an information system |
US6311144B1 (en) | 1998-05-13 | 2001-10-30 | Nabil A. Abu El Ata | Method and apparatus for designing and analyzing information systems using multi-layer mathematical models |
US7389211B2 (en) * | 1998-05-13 | 2008-06-17 | Abu El Ata Nabil A | System and method of predictive modeling for managing decisions for business enterprises |
US6990437B1 (en) | 1999-07-02 | 2006-01-24 | Abu El Ata Nabil A | Systems and method for determining performance metrics for constructing information systems |
US6847384B1 (en) * | 1998-05-14 | 2005-01-25 | Autodesk, Inc. | Translating objects between software applications which employ different data formats |
US6351751B1 (en) * | 1998-05-14 | 2002-02-26 | Sun Microsystems, Inc. | Persistent storage managers for configuring client/server environments |
US6138269A (en) * | 1998-05-20 | 2000-10-24 | Sun Microsystems, Inc. | Determining the actual class of an object at run time |
US6163858A (en) * | 1998-06-08 | 2000-12-19 | Oracle Corporation | Diagnostic methodology for debugging integrated software |
US6484247B1 (en) * | 1998-06-25 | 2002-11-19 | Intellution, Inc. | System and method for storing and retrieving objects |
US6430571B1 (en) | 1998-07-16 | 2002-08-06 | International Business Machines Corporation | Multi-frame output form that facilitates internet search and update in a hierarchical database |
US6141660A (en) * | 1998-07-16 | 2000-10-31 | International Business Machines Corporation | Command line interface for creating business objects for accessing a hierarchical database |
US6792606B2 (en) | 1998-07-17 | 2004-09-14 | International Business Machines Corporation | Method and apparatus for object persistence |
US6499036B1 (en) * | 1998-08-12 | 2002-12-24 | Bank Of America Corporation | Method and apparatus for data item movement between disparate sources and hierarchical, object-oriented representation |
US6154747A (en) * | 1998-08-26 | 2000-11-28 | Hunt; Rolf G. | Hash table implementation of an object repository |
US6341291B1 (en) | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US6397203B1 (en) * | 1998-09-30 | 2002-05-28 | International Business Machines Corporation | Defining object classes to match corresponding specialized data types in a relational database |
US6405209B2 (en) | 1998-10-28 | 2002-06-11 | Ncr Corporation | Transparent object instantiation/initialization from a relational store |
US6353846B1 (en) | 1998-11-02 | 2002-03-05 | Harris Corporation | Property based resource manager system |
JP2000207257A (ja) * | 1999-01-20 | 2000-07-28 | Fujitsu Ltd | デ―タベ―ス移行システムおよびプログラム記憶媒体 |
US6829770B1 (en) * | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
DE19910535A1 (de) * | 1999-03-09 | 2000-09-14 | Siemens Ag | Verfahren zur automatischen Wiedergewinnung von Engineeringdaten aus Anlagen |
JP4132441B2 (ja) * | 1999-07-19 | 2008-08-13 | 富士通株式会社 | 管理対象オブジェクトのデータ管理装置 |
US6718535B1 (en) | 1999-07-30 | 2004-04-06 | Accenture Llp | System, method and article of manufacture for an activity framework design in an e-commerce based environment |
US6704873B1 (en) | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US7100195B1 (en) | 1999-07-30 | 2006-08-29 | Accenture Llp | Managing user information on an e-commerce system |
US6601233B1 (en) | 1999-07-30 | 2003-07-29 | Accenture Llp | Business components framework |
US6470354B1 (en) * | 1999-08-05 | 2002-10-22 | International Business Machines Corporation | Implementing persistent object services (POS) on top of a relational database |
US6356933B2 (en) * | 1999-09-07 | 2002-03-12 | Citrix Systems, Inc. | Methods and apparatus for efficiently transmitting interactive application data between a client and a server using markup language |
US6748555B1 (en) * | 1999-09-09 | 2004-06-08 | Microsoft Corporation | Object-based software management |
US6446069B1 (en) | 1999-09-17 | 2002-09-03 | International Business Machines Corporation | Access control system for a multimedia datastore |
US6470353B1 (en) | 1999-09-17 | 2002-10-22 | International Business Machines Corporation | Object-oriented framework for managing access control in a multimedia database |
EP1089202A1 (en) * | 1999-09-30 | 2001-04-04 | Abb Research Ltd. | Method for management and processing of data |
US6715108B1 (en) * | 1999-10-12 | 2004-03-30 | Worldcom, Inc. | Method of and system for managing test case versions |
US6308178B1 (en) | 1999-10-21 | 2001-10-23 | Darc Corporation | System for integrating data among heterogeneous systems |
US6834290B1 (en) | 1999-11-15 | 2004-12-21 | Quest Software, Inc. | System and method for developing a cost-effective reorganization plan for data reorganization |
US7805423B1 (en) * | 1999-11-15 | 2010-09-28 | Quest Software, Inc. | System and method for quiescing select data modification operations against an object of a database during one or more structural operations |
US6839894B1 (en) | 1999-11-19 | 2005-01-04 | Oracle International Corporation | Method and apparatus for debugging a software program using dynamic debug patches and copy on write views |
US6671825B1 (en) * | 1999-11-19 | 2003-12-30 | Oracle International Corporation | Method and apparatus for debugging a software program |
US6920636B1 (en) * | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US6615219B1 (en) * | 1999-12-29 | 2003-09-02 | Unisys Corporation | Database management system and method for databases having large objects |
US6694328B1 (en) * | 2000-01-13 | 2004-02-17 | International Business Machines Corporation | Method for creating queries on version objects |
US7065538B2 (en) * | 2000-02-11 | 2006-06-20 | Quest Software, Inc. | System and method for reconciling transactions between a replication system and a recovered database |
US6574637B1 (en) | 2000-02-23 | 2003-06-03 | Orillion International, Inc. | Browser oriented method of viewing database structures |
US6834285B1 (en) * | 2000-03-24 | 2004-12-21 | Numoda Corporation | Computer system for portable digital data capture and data distribution |
AU2001261123A1 (en) * | 2000-05-01 | 2001-11-12 | Sun Microsystems, Inc. | Method and apparatus for storing and accessing data in computer systems |
US6665863B1 (en) * | 2000-05-31 | 2003-12-16 | Microsoft Corporation | Data referencing within a database graph |
US7881920B2 (en) | 2000-08-29 | 2011-02-01 | Abu El Ata Nabil A | Systemic enterprise management method and apparatus |
US7346842B1 (en) | 2000-11-02 | 2008-03-18 | Citrix Systems, Inc. | Methods and apparatus for incorporating a partial page on a client |
US7194743B2 (en) * | 2000-12-12 | 2007-03-20 | Citrix Systems, Inc. | Methods and apparatus for communicating changes between a user interface and an executing application using property paths |
US20020129146A1 (en) | 2001-02-06 | 2002-09-12 | Eyal Aronoff | Highly available database clusters that move client connections between hosts |
US20040162836A1 (en) * | 2001-02-06 | 2004-08-19 | Eyal Aronoff | System and method for altering database requests and database responses |
US7231391B2 (en) * | 2001-02-06 | 2007-06-12 | Quest Software, Inc. | Loosely coupled database clusters with client connection fail-over |
US7310653B2 (en) * | 2001-04-02 | 2007-12-18 | Siebel Systems, Inc. | Method, system, and product for maintaining software objects during database upgrade |
WO2002084481A1 (en) * | 2001-04-18 | 2002-10-24 | Telefonaktiebolaget Lm Ericsson | Persistent object management |
JP2002328935A (ja) * | 2001-05-07 | 2002-11-15 | Fujitsu Ltd | オブジェクト指向データベースのデータ操作においてスキーマに自由度を持たせるプログラム及びデータ操作装置 |
US7069540B1 (en) * | 2001-07-02 | 2006-06-27 | Unisys Corporation | COM persistence model |
BR0210863A (pt) * | 2001-07-05 | 2004-08-24 | Computer Ass Think Inc | Sistema para transformar um primeiro dado em um primeiro formato em um segundo dado em um segundo formato, meio legìvel por computador, método implementado por computador para adaptar dados de diretriz de processo comercial, e, sistema para facilitar interações entre diretrizes de processo comercial incorporadas em componentes de computador |
US7124362B2 (en) * | 2001-08-31 | 2006-10-17 | Robert Tischer | Method and system for producing an ordered compilation of information with more than one author contributing information contemporaneously |
US7233960B1 (en) | 2001-10-31 | 2007-06-19 | Numoda Corporation | System and method for mobile wireless electronic data capture and distribution of a merchant card-processing application |
US7167986B2 (en) * | 2001-12-26 | 2007-01-23 | Storage Technology Corporation | Upgradeable timestamp mechanism |
US20040010498A1 (en) * | 2002-07-10 | 2004-01-15 | Lin Tser Yeng | Object persistence to relational database within run-time environment supporting attributes and reflection |
US7213026B2 (en) * | 2002-08-23 | 2007-05-01 | Sun Microsystems, Inc. | Apparatus and method for associating classes |
CA2408474A1 (en) * | 2002-10-17 | 2004-04-17 | Ibm Canada Limited-Ibm Canada Limitee | Apparatus and method for enabling efficient multi-protocol database transaction processing |
TW200411479A (en) * | 2002-12-27 | 2004-07-01 | Hon Hai Prec Ind Co Ltd | System and method for managing account payable |
US20040177339A1 (en) * | 2003-03-07 | 2004-09-09 | Microsoft Corporation | Customization of fields in objects in a computing environment |
US7085752B2 (en) * | 2003-03-12 | 2006-08-01 | Microsoft Corporation | Customization of metadata describing objects in a computing environment |
US7412455B2 (en) * | 2003-04-30 | 2008-08-12 | Dillon David M | Software framework that facilitates design and implementation of database applications |
US6976144B1 (en) * | 2003-05-06 | 2005-12-13 | Pegasystems, Inc. | Methods and apparatus for digital data processing with mutable inheritance |
US8238696B2 (en) | 2003-08-21 | 2012-08-07 | Microsoft Corporation | Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system |
US8166101B2 (en) * | 2003-08-21 | 2012-04-24 | Microsoft Corporation | Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system |
US7886307B1 (en) * | 2003-09-26 | 2011-02-08 | The Mathworks, Inc. | Object-oriented data transfer system for data sharing |
US7877390B2 (en) * | 2003-10-20 | 2011-01-25 | International Business Machines Corporation | Systems and methods for providing autonomous persistent storage systems |
US7284010B2 (en) * | 2003-10-23 | 2007-10-16 | Microsoft Corporation | System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined |
US6941316B2 (en) | 2003-10-23 | 2005-09-06 | Microsoft Corporation | System and method for object persistence in a database store |
US20050091231A1 (en) * | 2003-10-24 | 2005-04-28 | Shankar Pal | System and method for storing and retrieving XML data encapsulated as an object in a database store |
US7222117B1 (en) | 2003-11-14 | 2007-05-22 | Advent Software, Inc. | Segmented global area database |
US20050144615A1 (en) * | 2003-12-29 | 2005-06-30 | Shu-Chuan Chen | Modularized custom-developed software package producing method and system |
US7376656B2 (en) * | 2004-02-10 | 2008-05-20 | Microsoft Corporation | System and method for providing user defined aggregates in a database system |
US6976029B2 (en) | 2004-02-10 | 2005-12-13 | Microsoft Corporation | System and method for providing user defined types in a database system |
US7665063B1 (en) | 2004-05-26 | 2010-02-16 | Pegasystems, Inc. | Integration of declarative rule-based processing with procedural programming |
US7548901B2 (en) | 2004-06-29 | 2009-06-16 | Microsoft Corporation | System and method for delayed fetching of designated members of a user defined type |
US7617501B2 (en) | 2004-07-09 | 2009-11-10 | Quest Software, Inc. | Apparatus, system, and method for managing policies on a computer having a foreign operating system |
US20060064395A1 (en) * | 2004-09-23 | 2006-03-23 | Seguin Christopher A | Data element storage method |
US8335704B2 (en) * | 2005-01-28 | 2012-12-18 | Pegasystems Inc. | Methods and apparatus for work management and routing |
US7650346B2 (en) * | 2005-04-01 | 2010-01-19 | Microsoft Corporation | User-defined type consistency checker |
US7849165B2 (en) | 2005-04-21 | 2010-12-07 | Fiducci Thomas E | Data backup, storage, transfer, and retrieval system, method and computer program product |
US8126990B2 (en) | 2005-04-21 | 2012-02-28 | Fiducci Thomas E | Data backup and transfer system, method and computer program product |
US8145686B2 (en) * | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
US7716252B2 (en) * | 2005-07-29 | 2010-05-11 | Microsoft Corporation | Dynamically exposing relationships among entities contained in data stores |
US7904949B2 (en) | 2005-12-19 | 2011-03-08 | Quest Software, Inc. | Apparatus, systems and methods to provide authentication services to a legacy application |
US8087075B2 (en) | 2006-02-13 | 2011-12-27 | Quest Software, Inc. | Disconnected credential validation using pre-fetched service tickets |
US8185576B2 (en) | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
US7984416B2 (en) * | 2006-03-24 | 2011-07-19 | The Mathworks, Inc. | System and method for providing class definitions in a dynamically typed array-based language |
US8966456B2 (en) * | 2006-03-24 | 2015-02-24 | The Mathworks, Inc. | System and method for providing and using meta-data in a dynamically typed array-based language |
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
US20090132232A1 (en) * | 2006-03-30 | 2009-05-21 | Pegasystems Inc. | Methods and apparatus for implementing multilingual software applications |
US20080208785A1 (en) * | 2006-03-30 | 2008-08-28 | Pegasystems, Inc. | User interface methods and apparatus for rules processing |
US20070233902A1 (en) * | 2006-03-30 | 2007-10-04 | Alan Trefler | User interface methods and apparatus for rules processing |
US8429712B2 (en) | 2006-06-08 | 2013-04-23 | Quest Software, Inc. | Centralized user authentication system apparatus and method |
US7945596B2 (en) | 2006-06-20 | 2011-05-17 | Microsoft Corproation | Programming model for customized data objects |
US7574701B2 (en) * | 2006-08-21 | 2009-08-11 | Microsoft Corporation | Syntax for members added through object protocol systems and methods |
US7895332B2 (en) | 2006-10-30 | 2011-02-22 | Quest Software, Inc. | Identity migration system apparatus and method |
US8086710B2 (en) | 2006-10-30 | 2011-12-27 | Quest Software, Inc. | Identity migration apparatus and method |
US8250525B2 (en) | 2007-03-02 | 2012-08-21 | Pegasystems Inc. | Proactive performance management for multi-user enterprise software systems |
US20080263034A1 (en) * | 2007-04-19 | 2008-10-23 | Satyadeep Dey | Method and apparatus for querying between software objects |
US20090112668A1 (en) * | 2007-10-31 | 2009-04-30 | Abu El Ata Nabil A | Dynamic service emulation of corporate performance |
US7984020B2 (en) * | 2007-12-06 | 2011-07-19 | Sap Ag | System and method for business object sync-point and rollback framework |
US20090171651A1 (en) * | 2007-12-28 | 2009-07-02 | Jan Van Lunteren | Sdram-based tcam emulator for implementing multiway branch capabilities in an xml processor |
US8101543B2 (en) * | 2008-06-30 | 2012-01-24 | Weyerhaeuser Nr Company | Biodegradable superabsorbent particles |
US8046550B2 (en) | 2008-07-14 | 2011-10-25 | Quest Software, Inc. | Systems and methods for performing backup operations of virtual machine files |
US8135930B1 (en) | 2008-07-14 | 2012-03-13 | Vizioncore, Inc. | Replication systems and methods for a virtual computing environment |
US8060476B1 (en) | 2008-07-14 | 2011-11-15 | Quest Software, Inc. | Backup systems and methods for a virtual computing environment |
US8429649B1 (en) | 2008-09-25 | 2013-04-23 | Quest Software, Inc. | Systems and methods for data management in a virtual computing environment |
US8843435B1 (en) | 2009-03-12 | 2014-09-23 | Pegasystems Inc. | Techniques for dynamic data processing |
US8468492B1 (en) | 2009-03-30 | 2013-06-18 | Pegasystems, Inc. | System and method for creation and modification of software applications |
US8996468B1 (en) | 2009-04-17 | 2015-03-31 | Dell Software Inc. | Block status mapping system for reducing virtual machine backup storage |
US8255984B1 (en) | 2009-07-01 | 2012-08-28 | Quest Software, Inc. | Single sign-on system for shared resource environments |
US8682945B2 (en) * | 2009-07-24 | 2014-03-25 | Ensequence, Inc. | Method and system for authoring multiple application versions based on audience qualifiers |
US20110023022A1 (en) * | 2009-07-24 | 2011-01-27 | Ensequence, Inc. | Method for application authoring employing an application template stored in a database |
US8667460B2 (en) * | 2009-07-24 | 2014-03-04 | Ensequence, Inc. | Method for application authoring employing a child application template derived from a master application template |
US8307020B2 (en) | 2009-07-24 | 2012-11-06 | Ensequence, Inc. | Method for distributing a certified application employing a pre-certified master application template |
US8671124B2 (en) * | 2009-07-24 | 2014-03-11 | Ensequence, Inc. | Method for application authoring employing a pre-certified master application template |
US20110022603A1 (en) * | 2009-07-24 | 2011-01-27 | Ensequence, Inc. | Method and system for authoring and distributing multiple application versions based on audience qualifiers |
US9778946B2 (en) * | 2009-08-07 | 2017-10-03 | Dell Software Inc. | Optimized copy of virtual machine storage files |
US8458217B1 (en) | 2009-08-24 | 2013-06-04 | Advent Software, Inc. | Instantly built information space (IBIS) |
US8266125B2 (en) | 2009-10-01 | 2012-09-11 | Starcounter Ab | Systems and methods for managing databases |
WO2011038770A1 (en) | 2009-10-01 | 2011-04-07 | Starcounter Ab | Systems and methods for managing databases |
US9020905B2 (en) * | 2009-10-31 | 2015-04-28 | International Business Machines Corporation | Synchronizing database and non-database resources without a commit coordinator |
US8453145B1 (en) | 2010-05-06 | 2013-05-28 | Quest Software, Inc. | Systems and methods for instant provisioning of virtual machine files |
US9569446B1 (en) | 2010-06-08 | 2017-02-14 | Dell Software Inc. | Cataloging system for image-based backup |
US9547562B1 (en) | 2010-08-11 | 2017-01-17 | Dell Software Inc. | Boot restore system for rapidly restoring virtual machine backups |
US8898114B1 (en) | 2010-08-27 | 2014-11-25 | Dell Software Inc. | Multitier deduplication systems and methods |
US9229984B2 (en) | 2011-01-25 | 2016-01-05 | Hewlett Packard Enterprise Development Lp | Parameter expressions for modeling user defined function execution in analytical data processing systems |
US8856151B2 (en) | 2011-01-25 | 2014-10-07 | Hewlett-Packard Development Company, L.P. | Output field mapping of user defined functions in databases |
US9355145B2 (en) | 2011-01-25 | 2016-05-31 | Hewlett Packard Enterprise Development Lp | User defined function classification in analytical data processing systems |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
JP2014513791A (ja) | 2011-02-22 | 2014-06-05 | ザ プロクター アンド ギャンブル カンパニー | スキンケア組成物用の化粧剤を同定するための方法 |
EP2691539B1 (en) | 2011-03-31 | 2018-04-25 | The Procter and Gamble Company | Methods for identifying and evaluating skin-active agents effective for treating dandruff |
US8769350B1 (en) | 2011-09-20 | 2014-07-01 | Advent Software, Inc. | Multi-writer in-memory non-copying database (MIND) system and method |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US8332349B1 (en) | 2012-01-06 | 2012-12-11 | Advent Software, Inc. | Asynchronous acid event-driven data processing using audit trail tools for transaction systems |
US9311375B1 (en) | 2012-02-07 | 2016-04-12 | Dell Software Inc. | Systems and methods for compacting a virtual machine file |
US20130217589A1 (en) | 2012-02-22 | 2013-08-22 | Jun Xu | Methods for identifying agents with desired biological activity |
EP2831273B1 (en) | 2012-03-30 | 2018-09-26 | The Procter and Gamble Company | Method of generating a hyperpigmentation condition gene expression signature |
WO2013184908A2 (en) | 2012-06-06 | 2013-12-12 | The Procter & Gamble Company | Systems and methods for identifying cosmetic agents for hair/scalp care compositions |
EP2885422B1 (en) | 2012-08-15 | 2018-03-21 | The Procter and Gamble Company | Systems, models and methods for identifying and evaluating skin-active agents effective for treating an array of skin disorders |
CN102830978A (zh) * | 2012-08-23 | 2012-12-19 | 上海创图网络科技发展有限公司 | 一种可视化3d编程系统及应用 |
US8886671B1 (en) | 2013-08-14 | 2014-11-11 | Advent Software, Inc. | Multi-tenant in-memory database (MUTED) system and method |
US9104436B1 (en) * | 2014-05-28 | 2015-08-11 | Emc Corporation | Compile directives for memory management |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
CN112214424B (zh) * | 2015-01-20 | 2024-04-05 | 乌尔特拉塔有限责任公司 | 对象存储器结构、处理节点、存储器对象存储和管理方法 |
US11782601B2 (en) * | 2015-01-20 | 2023-10-10 | Ultrata, Llc | Object memory instruction set |
US10698628B2 (en) | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US9971542B2 (en) | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
CA3006773A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc | Memory fabric software implementation |
US10235063B2 (en) | 2015-12-08 | 2019-03-19 | Ultrata, Llc | Memory fabric operations and coherency using fault tolerant objects |
WO2017100288A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc. | Memory fabric operations and coherency using fault tolerant objects |
US10698599B2 (en) | 2016-06-03 | 2020-06-30 | Pegasystems, Inc. | Connecting graphical shapes using gestures |
US10698647B2 (en) | 2016-07-11 | 2020-06-30 | Pegasystems Inc. | Selective sharing for collaborative application usage |
US10169020B2 (en) | 2017-02-01 | 2019-01-01 | International Business Machines Corporation | Software globalization of distributed packages |
US11163616B2 (en) | 2017-03-07 | 2021-11-02 | Polyjuice Ab | Systems and methods for enabling interoperation of independent software applications |
EP3797417A1 (en) | 2018-05-22 | 2021-03-31 | The Procter & Gamble Company | System and method for identifying connections between perturbagens and genes associated with a skin condition |
US11048488B2 (en) | 2018-08-14 | 2021-06-29 | Pegasystems, Inc. | Software code optimizer and method |
CN110213234B (zh) * | 2019-04-30 | 2022-06-28 | 深圳市腾讯计算机系统有限公司 | 应用程序文件的开发者识别方法、装置、设备及存储介质 |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
US4853842A (en) * | 1985-09-11 | 1989-08-01 | Texas Instruments Incorporated | Computer memory system having persistent objects |
US5079695A (en) * | 1988-04-25 | 1992-01-07 | Hewlett-Packard Company | Object management facility which includes a snapshot facility for providing data transfer between two objects |
US4989132A (en) * | 1988-10-24 | 1991-01-29 | Eastman Kodak Company | Object-oriented, logic, and database programming tool with garbage collection |
US5075845A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Type management and control in an object oriented memory protection mechanism |
US5075842A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Disabling tag bit recognition and allowing privileged operations to occur in an object-oriented memory protection mechanism |
US5075848A (en) * | 1989-12-22 | 1991-12-24 | Intel Corporation | Object lifetime control in an object-oriented memory protection mechanism |
US5297279A (en) * | 1990-05-30 | 1994-03-22 | Texas Instruments Incorporated | System and method for database management supporting object-oriented programming |
-
1990
- 1990-05-30 US US07/531,493 patent/US5297279A/en not_active Expired - Lifetime
-
1991
- 1991-05-21 DE DE69131530T patent/DE69131530T2/de not_active Expired - Fee Related
- 1991-05-21 EP EP91304579A patent/EP0459683B1/en not_active Expired - Lifetime
- 1991-05-29 JP JP12579091A patent/JP3437849B2/ja not_active Expired - Lifetime
-
1993
- 1993-08-20 US US08/110,040 patent/US5437027A/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1997029421A1 (fr) * | 1996-02-05 | 1997-08-14 | Athena Telecom Lab, Inc. | Procede et equipement de gestion d'objets |
WO1997029422A1 (fr) * | 1996-02-05 | 1997-08-14 | Athena Telecom Lab, Inc. | Procede et appareil de gestion d'objets et structure de donnees |
JPH1069425A (ja) * | 1996-03-20 | 1998-03-10 | Internatl Business Mach Corp <Ibm> | 永続オブジェクトにアクセスするための方法及びメタ状態データを交換するための方法 |
US20230409604A1 (en) * | 2022-06-20 | 2023-12-21 | Emtruth, Inc. | Natural language processing for blockchain-based management of multi-source, multi-format binary objects |
Also Published As
Publication number | Publication date |
---|---|
DE69131530T2 (de) | 2000-02-03 |
US5437027A (en) | 1995-07-25 |
DE69131530D1 (de) | 1999-09-23 |
EP0459683B1 (en) | 1999-08-18 |
EP0459683A2 (en) | 1991-12-04 |
US5297279A (en) | 1994-03-22 |
JP3437849B2 (ja) | 2003-08-18 |
EP0459683A3 (en) | 1993-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0644128A (ja) | オブジェクト指向プログラミングを支援するデータベース管理システム及び方法 | |
US6243709B1 (en) | Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies | |
US5937409A (en) | Integrating relational databases in an object oriented environment | |
US5295256A (en) | Automatic storage of persistent objects in a relational schema | |
US7152228B2 (en) | Automatically generated objects within extensible object frameworks and links to enterprise resources | |
US6163776A (en) | System and method for exchanging data and commands between an object oriented system and relational system | |
US5832498A (en) | Device for generating object-oriented interfaces for relational data bases and a process implemented by this device | |
US7325007B2 (en) | System and method for supporting non-native data types in a database API | |
US6341289B1 (en) | Object identity and partitioning for user defined extents | |
KR100659889B1 (ko) | 데이터 액세스 방법, 기록매체 및 컴퓨터 | |
US7539688B2 (en) | Systems and methods for supporting inheritance for user-defined types | |
US6453321B1 (en) | Structured cache for persistent objects | |
US7287039B2 (en) | System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined | |
US7289997B1 (en) | System and method for an extensible metadata driven application framework | |
JP2001527243A (ja) | オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置 | |
US20070055647A1 (en) | Dynamic class inheritance and distributed caching with object <->relational mapping and Cartesian model support in a database manipulation and mapping system | |
US20060015490A1 (en) | Secondary index and indexed view maintenance for updates to complex types | |
WO2001004726A2 (en) | Automatically generated objects within extensible object frameworks and links to enterprise resources | |
KR20060048418A (ko) | 사용자 정의 형식의 지정 멤버의 지연 인출을 위한시스템과 방법 | |
US6421666B1 (en) | Mechanism for sharing ancillary data between a family of related functions | |
US6542900B1 (en) | Method and apparatus for distributed object mapping in a java language environment | |
EP1492035A2 (en) | Defining user-defined data types and/or user-defined methods using an interpreted programming language | |
US7739296B2 (en) | System and method for virtualization of relational stored procedures in non-native relational database systems | |
US8015217B2 (en) | Method and system for obtaining user data having user-defined data types | |
JPH11134368A (ja) | 言語管理プログラムインタフェース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080606 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100606 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110606 Year of fee payment: 8 |
|
EXPY | Cancellation because of completion of term |