JPH1063561A - データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法 - Google Patents

データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Info

Publication number
JPH1063561A
JPH1063561A JP9025450A JP2545097A JPH1063561A JP H1063561 A JPH1063561 A JP H1063561A JP 9025450 A JP9025450 A JP 9025450A JP 2545097 A JP2545097 A JP 2545097A JP H1063561 A JPH1063561 A JP H1063561A
Authority
JP
Japan
Prior art keywords
objects
main memory
instructions
classes
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9025450A
Other languages
English (en)
Inventor
Theron D Tock
ディー トック シアロン
Roderic G G Cattell
ジー ジー カッテル ローデリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH1063561A publication Critical patent/JPH1063561A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 主メモリに記憶されたオブジェクトをアクセ
スするコンパイルされたプログラムを、持続的に記憶さ
れたオブジェクトをアクセスしかつ更新するプログラム
の中に自動的に変換するシステムを提供する。 【解決手段】 初期コンピュータ・プログラムは、少な
くとも第1のオブジェクト・クラスにおけるオブジェク
トをアクセスしかつ更新するためのオリジナル命令を含
み、オリジナル命令はコンピュータの主メモリのオブジ
ェクトをアクセスしかつ更新する。オリジナル命令にオ
ブジェクト・ローディング命令及びオブジェクト記憶命
令を追加することによって初期コンピュータ・プログラ
ムを自動的に改訂する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、データベース
に記憶されたデータを処理するためにオブジェクト指向
型コンピュータ・プログラムを用いるシステム及び方法
に関し、特に、データベースからデータを検察し、かつ
適切な時間にデータベースの中に戻して新しくかつ変更
されたデータを記憶するために命令を挿入するようにデ
ータベースのデータをアクセスするオブジェクト分類方
法を自動的に変更するシステム及び方法に関する。
【0002】
【従来の技術】オブジェクト指向型DBMSs(データ
ベース管理システム)は、言語オブジェクトをプログラ
ムするための持続的な記憶(persistent storage)を供給
し、かつそれらは、プログラミング言語の事実上あらゆ
るデータ構造の記憶を支持する。対照的に、従来のレコ
ード−構造型DBMSsは、データをデータベース及び
プログラミング言語表現の間で前後にコピーすべく埋込
型データベース言語(例えば、SQL)ステートメント
または手順呼出しを必要とし、かつそれらは、レコード
の記録だけを支持する。ある新しい製品は、従来のレコ
ード−指向型データベースをプログラミング言語オブジ
ェクトに自動的にマップさせ、それゆえに、オブジェク
ト指向型DBMSとして同じプログラマーのビューを供
給する。本発明は、これらのオブジェクト指向型マッピ
ング及びオブジェクト指向型DBMSsに対する革新的
インプリメンテーション技術である。我々の目的のため
に、両方に対して後者の用語を用いる。
【0003】オブジェクト指向型データベースの興味を
そそる態様は、そのようなデータベースを処理(操作)
するために用いるコンピュータ・プログラムが従来のデ
ータベース・アクセス・プログラムよりも理解するのが
容易であるということである。オブジェクト指向型デー
タベースのより重要な利点は、“静的データ型エンフォ
ースメント(static data type enforcement)”がデータ
ベースをアクセスするコンピュータ・プログラムに適用
できるということである。これは、そのようなプログラ
ムのコンパイラが、特定のデータベース・フィールドに
記憶された全てのデータベースがそのフィールドに対し
て定義されたデータ型に一致することを確実にすること
ができるということを意味する。それゆえに、整数を従
業員(雇い人)の名前フィードの中に入れることを試み
るプログラムは、オブジェクト指向型システムのコンパ
イラによって拒否されるであろう。
【0004】
【発明が解決しようとする課題】残念ながら、DBMS
(データベース管理システム)のディスクまたは他の2
次メモリ上に記憶されたデータをアクセスするためにオ
ブジェクト指向型プログラムを書くことは、一見してそ
れが見えるよりも難しい。オブジェクト・フィールドへ
のアクセスをデータベース照会の中に変換(翻訳)する
オブジェクト分類方法を書くことは、かなり直接的であ
るが、データがデータベースから読取られることが必要
なとき及びデータがデータベースの中に書き戻されるこ
とが必要なときを一貫して決定するためにコードを書く
ことは、オブジェクトへの参照(即ち、他のオブジェク
トに対するオブジェクトにおける参照)が用いられるよ
うな方法なので、ある程度注意を要する。例えば、同じ
データベース・オブジェクトを表わすメモリにおいて二
つのオブジェクトを不注意に生成しないことは、重要で
ある。
【0005】この文書の目的に対して、用語“メモリ”
及び“主メモリ”は、コンピュータ・システムのランダ
ム・アクセス・メモリまたは1次メモリを意味すべく定
義され、用語“2次メモリ”及び“持続的記憶”は、デ
ィスク・メモリまたは、主メモリよりも持続的または長
い期間ベイシスでデータを保持する記憶の他の形を意味
する。実際の持続的記憶データからデータを読取りかつ
それに書くための機構でそれら自体を考慮することな
く、それらが主メモリにおけるデータベース・オブジェ
クトを単に処理することであっても、プログラマがオブ
ジェクト指向型データベース使用プログラムを書くこと
ができるようにすることが、本プログラムの目的であ
る。
【0006】より特定的には、適時に、データベースか
らメモリのオブジェクトの中にデータをコピーしかつメ
モリのオブジェクトからデータの中に新しくかつ変更さ
れたデータをコピーするために必要な追加のコードを自
動的に挿入するようにコンパイルされたオブジェクト指
向型データベース・プログラムを“後処理(post proces
sing) ”するシステム及び方法を供給することが本発明
の目的である。この方法で、プログラマは、非持続的デ
ータを記憶しているオブジェクトとは異ならない、初期
ソース・コード・プログラムの目的に対して、持続的に
記憶されたデータを表しているオブジェクトが処理され
るようなオジェクト指向型データベース・プログラムを
書くことができる。
【0007】
【課題を解決するための手段】本発明の上記目的は、持
続的に記憶されたオブジェクトをアクセスしかつ更新す
るオブジェクト指向型コンピュータ・プログラムを生成
する方法であって:コンピュータの主メモリに記憶され
たオブジェクトをアクセスしかつ更新するオリジナル命
令を含む初期コンピュータ・プログラムを受け取り;改
訂されたコンピュータ・プログラムの実行中に、各対応
オブジェクトが最初にアクセスされるときにオブジェク
トの対応するもの持続性記憶装置から主メモリの中にロ
ードする、オブジェクト・ローディング命令を追加し;
かつ改訂されたコンピュータ・プログラムの実行中に、
所定事象の発生によりコンピュータの主メモリのオブジ
ェクトの対応するものを持続性記憶装置の中に記憶する
オブジェクト記憶命令を追加することによって:改訂さ
れたコンピュータ・プログラムを生成すべく初期コンピ
ュータ・プログラムを自動的に改訂する段階を具備する
方法によって達成される。
【0008】本発明の方法では、改訂段階は、改訂され
たコンピュータ・プログラムの実行中に、コンピュータ
の主メモリのどのオブジェクトが新しい及び/又は更新
されたデータを含むのかを示しているデータを記憶する
ダーティ・オブジェクト・マーキング命令を追加するこ
とを更に含み、オブジェクト記憶命令は、新しい及び/
又は更新されたデータを含むコンピュータの主メモリの
オブジェクトのそれらを持続性記憶装置に記憶するよう
にしてもよい。本発明の方法では、オリジナル命令によ
ってアクセスされかつ更新されたオブジェクトは、オブ
ジェクト・クラスの第1のセットにおけるオブジェクト
を含み、かつオブジェクト記憶命令によって持続性記憶
装置に記憶されたオブジェクトは、第1のセットのサブ
セットであるオブジェクト・クラスの第2のセットにお
けるオブジェクトを含み;オリジナル命令は、オブジェ
クト・クラスの第1のセットにおけるオブジェクトに関
連付けられたデータ構造を定義するためのオブジェクト
・データ構造定義命令を含み;改訂段階は:オブジェク
ト・クラスの第2のセットにおけるオブジェクトに、オ
ブジェクト・クラスの第2のセットにおけるオブジェク
トによって参照されるオブジェクトに対する主メモリ・
オブジェクト・ポインタ及び持続性記憶装置オブジェク
ト識別子の両方を記憶することができるようにオブジェ
クト・クラスの第2のセットに関連付けられたデータ構
造を改訂する補足オブジェクト定義命令を追加すること
を更に含むようにしてもよい。
【0009】本発明の方法では、オブジェクト・ローデ
ィング命令によって主メモリの中にロードされたオブジ
ェクトは、主メモリにロードされたオブジェクトによて
参照される持続性記憶装置におけるオブジェクトに対す
るヌル・オブジェクト・ポインタを含み;改訂段階は、
オブジェクト・クラスの第2のセットにおけるオブジェ
クトのヌル・オブジェクト・ポインタがアクセスされる
ときにはいつでもオブジェクト・ローディング命令が呼
出されるように初期コンピュータ・プログラムを改訂す
ることを含むようにしてもよい。本発明の方法では、オ
リジナル命令によってアクセスされかつ更新されたオブ
ジェクトは、オブジェクト・クラスの第1のセットにお
けるオブジェクトを含み、かつオブジェクト記憶命令に
よって持続性記憶装置に記憶されたオブジェクトは、第
1のセットのサブセットであるオブジェクト・クラスの
第2のセットにおけるオブジェクトを含み;オリジナル
命令は、オブジェクト・クラスの第1のセットにおける
オブジェクトに関連付けられたデータ構造を定義するた
めのオブジェクト・データベース構造定義命令を含み;
改訂段階は:オブジェクト・クラスの第2のセットにお
けるオブジェクトに、オブジェクト・クラスの第2のセ
ットにおけるオブジェクトによって参照されるオブジェ
クトに対する主メモリ・オブジェクト・ポインタ及び持
続性記憶装置オブジェクト識別子の両方を記憶すること
ができるようにオブジェクト・クラスの第2のセットに
関連付けられたデータ構造を改訂する補足オブジェクト
定義命令を追加することを更に含むようにしてもよい。
【0010】また、本発明の上記目的は、データ処理シ
ステム上で実行されるプログラムによるアクセスに対す
るデータを記憶するためのメモリであって:コンピュー
タの主メモリに記憶されたオブジェクトをアクセスしか
つ更新するためのオリジナル命令を含む初期コンピュー
タ・プログラムを変更するためのポストプロセッサ手順
を備え;ポストプロセッサ手順は、初期コンピュータ・
プログラムに補足命令を追加することによって改訂され
たコンピュータ・プログラムを生成すべく初期コンピュ
ータ・プログラムを自動的に改訂する命令を含み、補足
命令は:改訂されたコンピュータ・プログラムの実行中
に、各対応オブジェクトが最初にアクセスされるときに
オブジェクトの対応するものを持続性記憶装置から主メ
モリの中にロードするオブジェクト・ローディング命
令;及び改訂されたコンピュータ・プログラムの実行中
に、所定の事象の発生によりコンピュータの主メモリの
オブジェクトの対応するものを持続性記憶装置の中に記
憶するオブジェクト記憶命令を含んでいるメモリによっ
て達成される。
【0011】本発明のメモリでは、補足命令は、改訂さ
れたコンピュータ・プログラムの実行中に、コンピュー
タの主メモリにおけるどのオブジェクトが新しい及び/
又は更新されたデータを含むものかを示しているデータ
を記憶するダーティ・オブジェクト・マーキング命令を
含み;オブジェクト記憶命令は、新しい及び/又は更新
されたデータを含むコンピュータの主メモリにおけるオ
ブジェクトのそれらを持続性記憶装置に記憶するように
してもよい。本発明のメモリでは、オリジナル命令によ
ってアクセスされかつ更新されたオブジェクトは、オブ
ジェクト・クラスの第1のセットにおけるオブジェクト
を含み、かつオブジェクト記憶命令によって持続性記憶
装置に記憶されたオブジェクトは、第1のセットのサブ
セットであるオブジェクト・クラスの第2のセットにお
けるオブジェクトを含み;オリジナル命令は、オブジェ
クト・クラスの第1のセットにおけるオブジェクトに関
連付けられたデータ構造を定義するためのオブジェクト
・データ構造定義命令を含み;補足命令は:オブジェク
ト・クラスの第2のセットにおけるオブジェクトに、オ
ブジェクト・クラスの第2のセットにおけるオブジェク
トによって参照されるオブジェクトに対する主メモリ・
オブジェクト・ポインタ及び持続性記憶装置オブジェク
ト識別子の両方を記憶することができるようにオブジェ
クト・クラスの第2のセットに関連付けられたデータ構
造を改訂する補足オブジェクト定義命令を更に含むよう
にしてもよい。
【0012】本発明のメモリでは、オブジェクト・ロー
ディング命令によって主メモリの中にロードされたオブ
ジェクトは、主メモリにロードされたオブジェクトによ
て参照される持続性記憶装置におけるオブジェクトに対
するヌル・オブジェクト・ポインタを含み;ポストプロ
セッサ手順は、オブジェクト・クラスの第2のセットに
おけるオブジェクトのヌル・オブジェクト・ポインタが
アクセスされるときにはいつでもオブジェクト・ローデ
ィング命令が呼出されるように初期コンピュータ・プロ
グラムを改訂するようにしてもよい。本発明のメモリで
は、オリジナル命令によってアクセスされかつ更新され
たオブジェクトは、オブジェクト・クラスの第1のセッ
トにおけるオブジェクトを含み、かつオブジェクト記憶
命令によって持続性記憶装置に記憶されたオブジェクト
は、第1のセットのサブセットであるオブジェクト・ク
ラスの第2のセットにおけるオブジェクトを含み;オリ
ジナル命令は、オブジェクト・クラスの第1のセットに
おけるオブジェクトに関連付けられたデータ構造を定義
するためのオブジェクト・データ構造定義命令を含み;
補足命令は:オブジェクト・クラスの第2のセットに、
オブジェクト・クラスの第2のセットにおけるオブジェ
クトによって参照されるオブジェクトに対して主メモリ
・オブジェクト・ポインタ及び持続性記憶装置オブジェ
クト識別子の両方を記憶することができるようにオブジ
ェクト・クラスの第2のセットに関連付けられたデータ
構造を改訂する補足オブジェクト定義命令を更に含むよ
うにしてもよい。
【0013】更に本発明の上記目的は、コンピュータ・
システムであって:オブジェクトを記憶するための主メ
モリを含んでいる、メモリを備え;メモリは、初期コン
ピュータ・プログラム、改訂されたコンピュータ・プロ
グラム及び、主メモリに記憶されたオブジェクトをアク
セスしかつ更新するためのオリジナル命令を含む初期コ
ンピュータ・プログラムを変更するためのポストプロセ
ッサ手順を更に記憶しており;ポストプロセッサ手順
は、初期コンピュータ・プログラムに補足命令を追加す
ることによって改訂されたコンピュータ・プログラムを
生成すべく初期コンピュータ・プログラムを自動的に改
訂するための命令を含んでおり、補足命令は:改訂され
たコンピュータ・プログラムの実行中に、各対応オブジ
ェクトが最初にアクセスされるときにオブジェクトの対
応するものを持続性記憶装置から主メモリの中にロード
するオブジェクト・ローディング命令;及び改訂された
コンピュータ・プログラムの実行中に、所定の事象の発
生によりコンピュータの主メモリのオブジェクトの対応
するものを持続性記憶装置の中に記憶するオブジェクト
記憶命令を含むコンピュータ・システムによって達成さ
れる。
【0014】本発明のコンピュータ・システムでは、補
足命令は、改訂されたコンピュータ・プログラムの実行
中に、コンピュータの主メモリにおけるどのオブジェク
トが新しい及び/又は更新されたデータを含むものかを
示しているデータを記憶するダーティ・オブジェクト・
マーキング命令を含み;オブジェクト記憶命令は、新し
い及び/又は更新されたデータを含むコンピュータの主
メモリにおけるオブジェクトのそれらを持続性記憶装置
に記憶するようにしてもよい。本発明のコンピュータ・
システムでは、オリジナル命令によってアクセスされか
つ更新されたオブジェクトは、オブジェクト・クラスの
第1のセットにおけるオブジェクトを含み、かつオブジ
ェクト記憶命令によって持続性記憶装置に記憶されたオ
ブジェクトは、第1のセットのサブセットであるオブジ
ェクト・クラスの第2のセットにおけるオブジェクトを
含み;オリジナル命令は、オブジェクト・クラスの第1
のセットにおけるオブジェクトに関連付けられたデータ
構造を定義するためのオブジェクト・データ構造定義命
令を含み;補足命令は:オブジェクト・クラスの第2の
セットに、オブジェクト・クラスの第2のセットにおけ
るオブジェクトによって参照されるオブジェクトに対し
て主メモリ・オブジェクト・ポインタ及び持続性記憶装
置オブジェクト識別子の両方を記憶することができるよ
うにオブジェクト・クラスの第2のセットに関連付けら
れたデータ構造を改訂する補足オブジェクト定義命令を
更に含むようにしてもよい。
【0015】本発明のコンピュータ・システムでは、オ
ブジェクト・ローディング命令によって主メモリの中に
ロードされたオブジェクトは、主メモリにロードされた
オブジェクトによて参照される持続性記憶装置における
オブジェクトに対するヌル・オブジェクト・ポインタを
含み;ポストプロセッサ手順は、オブジェクト・クラス
の第2のセットにおけるオブジェクトのヌル・オブジェ
クト・ポインタがアクセスされるときにはいつでもオブ
ジェクト・ローディング命令が呼出されるように初期コ
ンピュータ・プログラムを改訂するようにしてもよい。
本発明のコンピュータ・システムでは、オリジナル命令
によってアクセスされかつ更新されたオブジェクトは、
オブジェクト・クラスの第1のセットにおけるオブジェ
クトを含み、かつオブジェクト記憶命令によって持続性
記憶装置に記憶されたオブジェクトは、第1のセットの
サブセットであるオブジェクト・クラスの第2のセット
におけるオブジェクトを含み;オリジナル命令は、オブ
ジェクト・クラスの第1のセットにおけるオブジェクト
に関連付けられたデータ構造を定義するためのオブジェ
クト・データ構造定義命令を含み;補足命令は:オブジ
ェクト・クラスの第2のセットに、オブジェクト・クラ
スの第2のセットにおけるオブジェクトによって参照さ
れるオブジェクトに対して主メモリ・オブジェクト・ポ
インタ及び持続性記憶装置オブジェクト識別子の両方を
記憶することができるようにオブジェクト・クラスの第
2のセットに関連付けられたデータ構造を改訂する補足
オブジェクト定義命令を更に含むようにしてもよい。
【0016】
【作用】纏めると、本発明は、主メモリに記憶されたオ
ブジェクトをアクセスするコンパイルされたプログラム
を、持続的に記憶されたオブジェクトをアクセスしかつ
更新するプログラムの中に自動的に変換するシステム及
び方法である。初期コンピュータ・プログラムは、少な
くとも第1のオブジェクト・クラスにおけるオブジェク
トをアクセスしかつ更新するための原始命令(original
instructions) を含む。原始命令は、コンピュータの主
メモリのオブジェクトをアクセスしかつ更新する。本発
明のシステム及び方法は、オブジェクト・ローディング
ド命令及びオブジェクト記憶命令を原始命令に追加する
ことによって改訂版コンピュータ・プログラムを生成す
べく初期コンピュータ・プログラムを自動的に改訂す
る。
【0017】改訂版コンピュータ・プログラムの実行
中、オブジェクト・ローディング命令は、オブジェクト
が初めてアクセスされるときに持続的に記憶されたオブ
ジェクトの一つのコピーをコンピュータの主メモリの対
応オブジェクトの中にロードする。オブジェクト記憶命
令は、トランザクションの終了のような、所定の事象の
発生により新しいかまたは変更されたデータを含むコン
ピュータの主メモリのオブジェクトを対応している持続
的に記憶されたオブジェクトの中にコピーする。本発明
のシステム及び方法は、改訂版コンピュータ・プログラ
ムの実行中に、新しい及び/又は更新されたデータを含
むコンピュータの主メモリのオブジェクトを追跡する、
ダーティ・オブジェクト・マーキング命令を原始命令に
追加することによって改訂版コンピュータ・プログラム
を生成すべく初期コンピュータ・プログラムを更に改訂
する。オブジェクト記憶命令は、新しい及び/又は更新
されたデータを含むコンピュータの主メモリのオブジェ
クトのそれらだけをコピーする。
【0018】本発明の更なるオブジェクト及び特徴は、
図面を参照することにより以下の詳細の説明及び添付し
た特許請求の範囲からより容易に明らかであろう。
【0019】
【実施例】この文書の目的に対して、用語“データベー
ス使用プログラム”及び“データベース利用プログラ
ム”は、持続的に記憶されたデータベースまたは持続的
に記憶されたファイルに記憶されたデータをアクセスす
るあらゆるプログラムを意味する。好ましい実施例で
は、データベース使用プログラムの著者は、用いられる
データベース全体が主メモリに記憶されていても、プロ
グラムを書く。データベース使用プログラムのソース・
コードは、従って、現行トランザクションが処理される
ならばデータベースに書き戻されることが結果として必
要である新しい及び/又は更新されたデータを含む主メ
モリのオブジェクトを追跡するために、かつ新しいまた
は変更されたデータを有するオブジェクトをデータベー
スに書き戻すために、オブジェクトが持続的に記憶され
たデータベースから主メモリにコピーされるべきときを
決定するために必要な全てのプログラム・コードが不要
である。結果として、ソース・コード・プログラムは、
データベースと主メモリの間で前後に情報を転送するた
めに必要な全てのコードを含んだソース・コード・プロ
グラムよりも読取りかつ改訂することが容易である。
【0020】好ましい実施例では、データベース利用プ
ログラムのソース・コードは、サン・マイクロシステム
ズ(Sun Microsystems,Inc.)に
よって市販された“マシン・プラットフォーム独立”プ
ログラミング言語である、Java(ジャワ)プログラ
ミング言語に書き込まれる。データベース利用プログラ
ムのソース・コード200(図2及び図3参照)は、通
常のJavaコンパイラ202を用いてJavaバイト
コード・プログラム204の中にコンパイルされ、それ
により、多数のオブジェクト・クラスを一般に含むバイ
トコード・ファイルを生成する。Javaバイトコード
・プログラムは、バーチャル・マシン(仮想計算機)を
形成するバイトコード・プログラム・インタープリタ1
76に関して実行される。Javaバイトコード・プロ
グラムは、Javaバイトコード・プログラム・インタ
ープリタがコンピュータ上に存在する限り、コンピュー
タのオペレーティング・システム及びコンピュータ・ハ
ードウェア・プラットフォームに係わりなく、それらが
あらゆるコンピュータ上で実行されうるように設計され
る。
【0021】しかしながら、データベース利用プログラ
ムの初期のコンパイルされたバイトコード・プログラム
版は、データベースが持続的記憶に実際に記憶されるの
に対して、用いられるデータベース全体が主メモリに記
憶されるという誤った想定(false assumption)に基づい
てそれが書き込まれていたので、真に機能的なプログラ
ムではない。本発明によれば、データベース利用プログ
ラムの初期のコンパイルされたバイトコード・プログラ
ム版は、コンパイルされたプログラムのオブジェクト・
クラスを変更する“ポストプロセッサ”プログラム20
6によって改訂される。ポストプロセッサ206は、オ
ブジェクト・ポインタを管理しかつ持続的に記憶された
データベースに記憶されることが必要な“ダーティ”オ
ブジェクトを追跡するために必要な追加情報の記憶を可
能にすべく持続的に記憶されたオブジェクトのコピーを
主メモリに記憶するために用いられるオブジェクト・ク
ラスのオブジェクト・データ構造を変更する。また、ポ
ストプロセッサは、オブジェクトが持続的に記憶された
データベースから主メモリにコピーされるべきときを決
定し、データベースから主メモリにオブジェクトをコピ
ーし、現行トランザクションが処理されるならばデータ
ベースへ書き戻されることが結果として必要な新しいま
たは変更されたデータを含む主メモリのオブジェクトを
追跡し、新しいまたは変更されたデータを有するオブジ
ェクトをデータベースに書き戻すための追加命令を加え
ることによってコンパイルされたプログラムのオブジェ
クト・クラスの方法を変更する。
【0022】図1を参照すると、データ使用プログラム
の動作に関連付けられた1次データ構造のあるものが示
されている。この説明の目的に対して、本発明を用いて
いるコンピュータ・システム100は、高速ランダム・
アクセス・メモリから一般に構成されている、主メモリ
102と、装置がパワー・オフされるときでさえもその
中に記憶された情報を保持する一般に磁気ディスク記憶
または他の記憶装置である、持続性データ記憶104
(2次メモリとも呼ばれる)を含むということを想定す
る。持続性データ記憶104は、この場合には、多数の
オブジェクト108を記憶するオブジェクト指向型デー
タベースであると想定される、データベース106を記
憶する。記憶されたオブジェクト108の全てまたはほ
とんどは、データベースにおけるオブジェクトの他のも
のへのポインタを含む。更に、データベース106は、
一般に、データベースに記憶されたデータへの全てのア
クセスを管理するデータベース管理システム(DBM
S)110の一部であり、データベースへのアクセス
が、SQLの種々の版に含まれたそれらのようなよく定
義された指令を用いて実行されることを一般的に必要と
する。この説明の目的に対して、DBMS110及びデ
ータベース106は、本発明によって変更されないとい
うことが想定される。好ましい実施例では、ランタイム
・システム112は、データを主メモリ102に記憶す
る、プログラムの実行を制御する。ランタイム・システ
ム112によて実行されるプログラムは、オブジェクト
指向型プログラムであるとこのアプリケーションの目的
に対して想定され、従って、オブジェクト114の形で
データを主メモリに記憶する傾向がある。主メモリ10
2に記憶された、オブジェクト114−3のような、オ
ブジェクトのあるものは、それらが持続性記憶装置10
4に決して記憶されずそれゆえにそれらを生成した処理
よりも長くは存在しないので、“トランジエント(一
時)”オブジェクトと呼ばれる。オブジェクト114−
1及び114−2のような、他のオブジェクトは、
(A)それらのオブジェクトのコピーが持続性記憶装置
104に記憶されか、または(B)それらを生成したト
ランザクションが成功裏に終了したならばこれらのオブ
ジェクトが持続性記憶装置104における記憶に対して
構成されるので、“持続性”オブジェクトと呼ばれる。
【0023】本発明は、一組のオブジェクト記憶基準の
充足(例えば、第1のセットの定義された事象のあるも
のの発生)によりオブジェクト・データが持続性記憶装
置媒体に記憶され、かつ一組のオブジェクト検索基準の
充足(例えば、第2のセットの定義された事象のあるも
のの発生)によりオブジェクト・データが持続性記憶装
置媒体から検索されるようなあらゆるシステムに適用可
能であるということが理解されるべきである。図1に示
すように、好ましい実施例では、持続性オブジェクト
は、持続性データ記述子122へのポインタ120を含
む。好ましい実施例では、持続性データ記述子122
は、A)フル・オブジェクト識別子(OID)124ま
たは持続性記憶装置のオブジェクトのアドレス、B)オ
ブジェクトが“ダーティ”オブジェクトのリストに含ま
れるならば用いられるリスト・ポインタ126、及び
C)フル・オブジェクト識別子(OID)128または
別のオブジェクトに対するオブジェクトの各レファレン
ス130のアドレスを含む。メモリ使用を最小化するた
めに、持続性オブジェクトだけが持続性データ記述子1
22を含む。
【0024】明瞭のために、好ましい実施例では、オブ
ジェクトがDBMS110から(即ち、持続性記憶装置
104から)主メモリ102にコピーされるときに、コ
ピーされたオブジェクトの全てのオブジェクト・レファ
レンスは、DBMSオブジェクト識別子(OIDs)と
ここで呼ばれる64−ビット以上のオブジェクト・アド
レスであるということに注目すべきである。それらOI
Dsは、持続性データ記述子122に記憶され、かつ主
メモリ・オブジェクト・コピー114のオブジェクト・
レファレンス・フィールド130は、(A)参照された
オブジェクトが主メモリ102に存在しないならばヌル
・ポインタ値で、または(B)参照されたオブジェクト
が主メモリにあるならば主メモリの参照されたオブジェ
クトのコピーへの主メモリ・オブジェクト・ポインタで
置換される。代替実施例ではOIDsは、データベース
からコピーされたオブジェクトに関連付けられた固有の
1次キー値で構成されうる。
【0025】好ましい実施例では、持続性オブジェクト
に対する各オブジェクト・クラスは、また、一時オブジ
ェクトを維持する。一時オブジェクトは、同じオブジェ
クト・クラスの持続性オブジェクトと同じデータ構造を
有するが、ヌル持続性データ記述子ポインタ120を有
する。同じオブジェクト・クラスの一時及び持続性オブ
ジェクトの両方を支持する一つの理由は、一時オブジェ
クトのデータが持続性記憶装置104に記憶される必要
が決してなくても、種々の計算中の使用のためにオブジ
ェクト並びに持続性オブジェクトと同じ型の中間または
一時“ワーキング”オブジェクトの一時的コピーを作る
ことがしばしば都合がよいということである。ある一定
のオブジェクト・クラスが持続性オブジェクトに対して
だけ用いられるような本発明のインプリメンテーション
では、それらオブジェクト・クラス定義は、持続性デー
タ記述子ポインタ120を除去しかつ、その代わりに、
主オブジェクト定義の一部として持続性データ記述子1
22自体を含むべく改訂されうる。
【0026】主メモリに記憶されたオブジェクト114
を追跡すべく二つの追加データ構造が好ましい実施例に
おいて用いられる。まず、ハッシュ・テーブル140
は、主メモリに記憶されかつDBMS OIDsを主メ
モリ・オブジェクト・ポインタの中にマップするために
用いられる。オブジェクトがDBMSから主メモリにコ
ピーされるときにはいつでも、対応エントリは、オブジ
ェクトのOID並びにその主メモリ・オブジェクト・ポ
インタを示すハッシュ・テーブルに追加される。ハッシ
ュ・テーブル140のあらゆるオブジェクトのフルDB
MS OIDを探索(ルック・アップ)するとき、対応
エントリがハッシュ・テーブル140に見出されないな
らば、オブジェクトは、主メモリにまだコピーされてい
ない。他方、対応エントリがハッシュ・テーブルに見出
されるならば、そのエントリのオブジェクト・ポインタ
は、主メモリのオブジェクトをポイントする(指し示
す)。
【0027】第2に、リスト・ヘッダ142は、持続性
記憶装置にコピー・バックされることが必要であるオブ
ジェクトのリンクされたリストをポイントする。それら
が主メモリに書き戻されることが必要であるキャッシュ
・メモリ(“ダーティ”キャッシュ回線と呼ばれる)に
おける変更されたデータのようなものなので、これらの
オブジェクトは、“ダーティ”オブジェクトと呼ばれ
る。リンクされたリストは、リスト・ヘッダ142のポ
インタ、プラス、ダーティ・オブジェクトの持続性デー
タ記述子122における一連のポインタ126によって
形成される。ダーティ・オブジェクト・リストが空なら
ば、リスト・ヘッダ142は、ヌル・ポインタを含む。
ダーティ・オブジェクトが空でないとき、リスト・ヘッ
ダ142は、ダーティ・オブジェクト・リストに追加さ
れるべき最終オブジェクト(last object) をポイント
し、順次、ダーティ・オブジェクト・リストに追加され
るべき最終オブジェクトの次のものをポイントする、
等。ダーティ・オブジェクト・リストに追加されるべき
最初の項目であった、ダーティ・オブジェクト・リスト
の最終項目は、その次のポインタ・フィールド126に
ヌル・ポインタを有する。
【0028】“新しいオブジェクト”がダーティ・オブ
ジェクト・リストに追加されることが必要であるとき
に、実行されるべき一連の段階は:(A)リスト・ヘッ
ダ142のオブジェクト・ポインタを新しいオブジェク
トの次のダーティ・オブジェクト・ポインタ・フィール
ド126の中にコピーし、かつ(B)新しいオブジェク
トへのポインタをリスト・ヘッダ142に記憶すること
である。好ましい実施例で成された別の組の想定は、デ
ータベース・オブジェクトが有限トランザクションのコ
ンテキストで用いられ、かつ各トランザクションが、
“スタート・トランザクション(start transaction) ”
によって一般に規定された、明確に規定された始まり、
及びトランザクションの結果がデータベースに永続的
(恒久的)に記憶されるべきであるならば“コミット・
トランザクション(commit transaction)”によって及び
トランザクションの結果が放棄されるべきであるならば
“アボート・トランザクション(abort transaction) ”
によって一般に規定された、明確に規定された終りを有
する。るということである。更に、各トランザクション
の実行中に、ランタイム・システム112は、主メモリ
にコピーされた全てのデータベース・オブジェクト上に
読み取りロック(read lock) を要求しなければならず、
更に、その内容がランタイム・システム112により実
行されるプログラムによって変更される全てのデータベ
ース・オブジェクト上に書込みロック(write lock)を要
求しなければならないということが想定される。
【0029】より特定的に、データ利用プログラムのソ
ース・コードを準備しているプログラマは、各トランザ
クションの開始におけるデータベース(Database)・オブ
ジェクト・クラスのスタート・トランザクション(Start
Transaction)方法を呼出すために Invoke Database.StartTransaction に等しいソース・コードにステートメントを含まなけれ
ばならない。同様にプログラマは、各成功裏に終了した
トランザクションの終結(conclusion)におけるデータベ
ース(Database)・オブジェクト・クラスのエンド・トラ
ンザクション(EndTransaction)方法を呼出すために Invoke Database.EndTransaction に等しいソース・コードにステートメントを含まなけれ
ばならず、かつ各非成功裏に終了したトランザクション
の開始におけるデータベース(Database)・オブジェクト
・クラスのアボート・トランザクション(AbortTransact
ion)方法を呼出すために InvokeDatabase.AbortTransaction に等しいソース・コードにステートメントを含まなけれ
ばならない。
【0030】スタート・トランザクション(StartTransa
ction)、エンド・トランザクション(EndTransaction)、
アボート・トランザクション(AbortTransaction)方法
は、図4に関連して以下により詳細に説明される。ラン
タイム・システムが動作するような“明確に規定された
トランザクション”コンテキストにより、各トランザク
ションの終結で、主メモリに記憶された一組のオブジェ
クトは、好ましくはそのPDDの各オブジェクトのOI
Dをヌル・アウトすることによって、通常、無効にされ
る。更に、ハッシュ・テーブル140の内容は、クリア
され、かつヌル・ポインタは、ダーティ・リスト・ヘッ
ダ142に記憶され、それにより、実行されるプログラ
マがこれらのオブジェクトのいずれかに対する追加ポイ
ンタを生成しない限りガーベッジ・コレクションに対し
て主メモリのオブジェクトを準備する。しかしながら、
全てのそのようなオブジェクトが無効でありかつ使用不
可能であると考えられるべきなので、適切に書かれたプ
ログラマは、トランザクションが終了した後に主メモリ
のあらゆるオブジェクトへのポインタを維持すべきでな
い。
【0031】通常、主メモリに記憶された全てまたはほ
とんどのトランジエント・オブジェクトは、主メモリに
記憶された持続性オブジェクトによって、直接的または
間接的に、参照されるということに注目する。主メモリ
の全ての持続性オブジェクトを無効にしかつ全てのその
ような持続性オブジェクトを到達不可能にすることによ
って、また、主メモリのトランジエント・オブジェクト
は、通常、到達不可能になりそれゆえにガーベッジ・コ
レクションの準備ができる。代替実施例では、使用不可
能なオブジェクトを削除するためにガーベック・コレク
ションを用いないシステムにおけるように、主メモリの
オブジェクトは、明示的に削除されかつ割当てを解除さ
れうる。 コンピュータ・システム構成 図2を参照すると、好ましい実施例では、本発明の好ま
しい実施例を組み込んでいるコンピュータ・システム1
00は、一般に、スタンド・アロン・コンピュータ、ま
たはネットワーク型コンピュータのシステムのクライア
ント・コンピュータ150またはサーバ・コンピュータ
152のいずれかである。本説明の目的のために、本発
明の好ましい実施例は、クライアント・コンピュータ1
50上に埋め込まれるものと想定する。クライアント・
コンピュータ150は、中央処理装置(CPU)16
0、ユーザ・インターフェイス162、及び通信ネット
ワーク166を介する他のコンピュータとの通信のため
の通信インターフェイス164を含む。
【0032】主メモリ102及び持続性記憶装置104
の両方を含む、メモリ102/104は、 ・ オペレーティング・システム170; ・ インターネット通信マネージャ・プログラム17
2; ・ 指定されたプログラムがある所定の完全性基準を満
足するか否かを検証するJavaバイトコード・プログ
ラム・ベリファイヤ174; ・ アプリケーション・プログラムを実行するJava
バイトコード・プログラム・インタープリタ176; ・ オブジェクト・クラスをユーザのアドレス空間の中
にロードし、かつ各ロードされたオブジェクト・クラス
に関連付けられた方法の完全性を検証するためにバイコ
ード・プログラム・ベリファイヤを用いる、クラス・ロ
ーダ178; ・ 使用中及び/又はコンピュータ102のユーザの使
用のために入手可能なオブジェクト・クラス182、1
84、186を局所的に記憶するための、少なくとも一
つのクラス・リポジトリ180; ・ オブジェクト・リポジトリ182に記憶されたオブ
ジェクト・クラスのオブジェクトの例である、オブジェ
クト192、194を記憶するための少なくとも一つの
オブジェクト・リポジトリ190; ・ DBMSデータベース110/106に記憶された
オブジェクトに対応する主メモリに記憶されたオブジェ
クトを追跡するための、オブジェクト・ハッシュ・テー
ブル140;及び ・ ダーティ・オブジェクト・リスト・ヘッダ142 を記憶する。
【0033】また、メモリ102/104に記憶される
ものは、 ・ ソース・コード・データベース利用プログラム20
0; ・ Javaプログラム・コンパイラ202; ・ ソース・コード・プログラム200からコンパイラ
202によって生成された初期コンパイルド・プログラ
ム204; ・ 好ましい実施例のポストプロセッサ手順206;及
び ・ ポストプロセッサ手順206によって生成された変
更プログラム208である。しかしながら、ソース・コ
ード200、コンパイラ202、初期コンパイルド・プ
ログラム204、及びポストプロセッサ手順206は、
変更プログラム208の実行中に通常、主メモリ102
に記憶されないということが理解されるべきである。
【0034】好ましい実施例ではオペレーティング・シ
ステム170は、各規定アドレス空間内の実行の多重ス
レッドを支持するオブジェクト指向型マルチタスキング
・オペレーティング・システムである。オペレーティン
グ・システムは、解放されたデータ構造に関連付けられ
たメモリ空間を回復するためにガーベッジ・コレクタ手
順を更に用いる。ガーベッジ・コレクタ手順は、周期ご
と(periodic basis)に自動的に実行され、かつ割り当て
に利用可能なメモリの量がしきいレベル以下になるよう
な更なるときにおいて自動的に呼出される。図3を参照
すると、好ましい実施例のシステム及び方法は、初期
の、ソース・コード、Java言語データベース利用プ
ログラム200を受け取る。この初期ソース・コード・
プログラムは、Javaバイトコード・プログラム20
4を生成すべく通常のJavaコンパイラ202によっ
てコンパイルされる。しかしながら、Javaバイトコ
ード・プログラムは、プログラムによって用いられるデ
ータベースは、持続性記憶装置に実際に記憶されるのに
対して、用いられるデータベース全体が主メモリに記憶
されるという誤想定(false assumption)にそのコードが
基づくので、真に機能的なプログラムではない。
【0035】データベース利用プログラム204の初期
の、コンパイルされたバイトコード・プログラム版は、
コンパイルされたプログラムのオブジェクト・クラスを
変更する“ポストプロセッサ”206によって次に改訂
され、それにより変更されたJavaバイトコード・プ
ログラム208を生成する。ポストプロセッサ206
は、オブジェクト・ポインタを管理しかつ持続的に記憶
されたデータベースに記憶されることが必要な“ダーテ
ィ”オブジェクトを追跡するために必要な更なる情報の
記憶を可能にするために持続的に記憶されたオブジェク
トのコピーを主メモリに記憶するために用いられるオブ
ジェクト・クラスのオブジェクト・データ構造を変更す
る。ポストプロセッサ206は、また、オブジェクトが
持続的に記憶されあデータベースから主メモリにコピー
されるべきときを決定し、オブジェクトをデータベース
から主メモリにコピーし、現行トランザクションが処理
されるならばデータベースに書き戻されることが結果と
してに必要な新しいまたは変更されたデータを含む主メ
モリのオブジェクトを追跡し、かつ新しいまたは変更さ
れたデータを有するオブジェクトをデータベースに書き
戻すために更なる命令を追加することによってコンパイ
ルされたプログラムのオブジェクト・クラスの方法を変
更する。
【0036】変更されたプログラム208は、以下に詳
述する、一つ以上の所定のオブジェクト・クラス182
の方法への方法呼出しを含む。しかしながら、一般的
に、変更されたプログラムによって用いられる所定のオ
ブジェクト・クラスの方法は、持続性オブジェクトで用
いられる持続性データ記述子構造122(図1参照)で
作動することが必要な方法であり、かつデータベース1
06への及びそれからのデータベースの移動を処理する
ためである。結果として得られる変更されたバイトコー
ド・プログラム208の完全性は、バイトコード・プロ
グラム・ベリファイヤ174によって検証され、そして
バイトコード・プログラム・インタープリタ176によ
って実行される。図4を参照すると、好ましい実施例で
は、持続性オブジェクトで作動しかつデータベース10
6へ及びそれからのデータの移動を処理するために必要
な全ての方法を含む、Database(データベー
ス)オブジェクト・クラスと呼ばれる、所定のオブジェ
クト・クラスが存在する。Databaseオブジェク
ト・クラスは、二つの変数を含む:1)ダーティ・オブ
ジェクト・リスト・ヘッダ142及び2)オブジェクト
・ハッシュ・テーブル140。Databaseオブジ
ェクト・クラスに含まれる方法は: ・ ユーザまたはプログラム指定基準に一致する一つ以
上のデータベース・オブジェクトを要求し、かつ主メモ
リにそれらオブジェクトのコピーを生成する、Quer
y(クェリー)方法220; ・ 指定されたデータベース・オブジェクトから主メモ
リのオブジェクトの中にデータをロードし、また、主メ
モリのそのオブジェクトに対する持続性データ記述子の
生成をもたらす、LoadData方法222;Loa
dData方法は、また、対応しているDBMSオブジ
ェクトに読み取りロックを要求しかつ取得し、かつ主メ
モリにロードされた各オブジェクトに対してハッシュ・
テーブルにエントリを追加する; ・ 主メモリの指定オブジェクトをダーティ・オブジェ
クト・リストに追加する、ダーティ方法224としての
MarkObject;MarkObjectは、ま
た、対応するDBMSオブジェクトに書込みロックを要
求しかつ取得する; ・ ハッシュ・テーブル140のオブジェクトIDを検
索するため並びにハッシュ・テーブル140における新
しいエントリを記憶する場所を決定するためにデータベ
ース・クェリー方法220及びロード・データ方法22
2によって用いられる、ハッシュ関数方法226; ・ しかしそれらがトランザクションの始めで既に初期
化されていないならば、トランザクションの開始におい
てオブジェクト・ハッシュ・テーブル140及びダーテ
ィ・オブジェクト・リスト・ヘッダ142を初期化する
ために用いられる、StartTransaction
(スタート・トランザクション)方法228; ・ トランザクションが成功裏に終わる(即ち、処理す
る)ときに呼出され、かつダーティ・オブジェクト・リ
ストの全てのオブジェクトをデータベース106にまず
コピーしそしてオブジェクト・ハッシュ・テーブル14
0及びダーティ・オブジェクト・リスト・ヘッダ142
を再初期化するために用いられる、EndTransa
ction(エンド・トランザクション)方法230; ・ トランザクションが不成功裏に終わる(即ち、アボ
ートする)ときに呼出され、かつオブジェクト・ハッシ
ュ・テーブル140及びダーティ・オブジェクト・リス
ト・ヘッダ142を再初期化するために用いられる、A
bortTransaction(アボート・トランザ
クション)方法232;及び ・ オブジェクト・ハッシュ・テーブル140及びダー
ティ・オブジェクト・リスト・ヘッダ142を初期化ま
たは再初期化し、かつそれにより主メモリに先に記憶さ
れた全ての持続性オブジェクトを使用不可能にするため
にスタート、エンド及びアボード・トランザクション方
法228、230、及び232によって呼出される、ハ
ッシュ・テーブル及びダーティ・オブジェクト・リスト
を初期化する方法234。
【0037】Query、StarTransacti
on、EndTransaction及びAbortT
ransaction方法は、データベース・プログラ
マを書くときにプログラマによって用いられる。Dat
abaseオブジェクト・クラスのLoadData、
MarkDirty及びHashFunction方法
は、ポストプロセッサ206によって生成された変更プ
ログラマの命令によってのみ用いられる。Query方
法220が呼出されかつデータベースから一つ以上のオ
ブジェクトのリターンを結果として生ずるときに、読出
しロックは、全ての要求されたオブジェクト上で自動的
に要求される。更に、データベースQuery方法22
0によってリターンされた全てのオブジェクトは、それ
ぞれが持続性データ記述子122を有している持続性オ
ブジェクトとして主メモリに表される。
【0038】StartTransaction方法2
28は、(A)それらが既にクリアされていないならば
ハッシュ・テーブル140及びダーティ・リスト・ポイ
ンタ142をクリアし、かつ(B)DBMSの内部状態
を適切に初期化するように“スタート・トランザクショ
ン”指令をDBMSに送る。EndTransacti
on(エンド・トランザクション)方法230は、次の
ように作動する。成功裏のトランザクションの終りで、
ダーティ・オブジェクト・リストの全てのオブジェクト
は、持続性記憶装置にコピーされることが必要である。
しかしならが、ダーティ・オブジェクトがDBMSにコ
ピーされる前に、DBMSにコピーされるダーティ・オ
ブジェクトのオブジェクト・ポインタによって参照され
た全てのトランジエント・オブジェクトは、持続性オブ
ジェクトに変換され、かつDBMSにコピーされるべき
ダーティ・オブジェクトのリストに追加されなければな
らない。これは、DBMSオブジェクトにおいて未解決
なポインタを有することを回避するために必要である。
好ましい実施例では、持続性記憶装置にダーティ・オブ
ジェクトの全てのオブジェクトをコピーするためのEn
dTransaction(エンド・トランザクショ
ン)方法は、ダーティ・オブジェクト・リストを通して
二つのパスを実行する。第1のパスは、(A)他のトラ
ンジエント・オブジェクトを通して直接または間接的
に、ダーティ・オブジェクト・リストのオブジェクトに
よって参照される全てのトランジエント・オブジェクト
を位置決めし、(B)全てのそれらオブジェクトに対す
るデータベースOIDsを取得し、(C)全てのそれら
参照されたトランジエント・オブジェクトを持続性オブ
ジェクトに変換し、かつ(D)これらのオブジェクトに
対するレファレンスをハッシュ・テーブル及びダーティ
・オブジェクト・リストに追加するために用いられる。
【0039】次いで、第2のパスではダーティ・オブジ
ェクト・リストの各オブジェクトは、DBMSにコピー
され、DBMSにオブジェクトを送る前に各オブジェク
トのローカル・オブジェクト・レファレンスをそれらの
対応DBMS OIDsで置換する。次いで、“コミッ
ト・トランザクション(処理トランザクション)”指令
がDBMSに送られ、DBMSオブジェクト上で先に取
得した全ての読取りロックを解放させかつ全てのDBM
Sオブジェクト変更を永続的に記憶させる。表1は、D
atabase.EndTransaction(デー
タベース.エンド・トランザクション)方法の擬似コー
ド表現である。
【0040】
【表1】 AbortTransaction(アボート・トラン
ザクション)方法232は、(A)ハッシュ・テーブル
140及びダーティ・リスト・ポインタ142をクリア
し、かつ(B)DBMSの内部状態をリセットするよう
にDBMSに“abort transaction
(アボート・トランザクション)”指令を送る。
【0041】ポストプロセッサ手順 図4及び図5を参照すると、Database(データ
ベース)オブジェクト・クラスのデータ構造及び方法
は、コンパイルされたデータベース使用プログラマの中
にポストプロセッサによって挿入されたコードにより用
いられる。好ましい実施例におけるコンパイルされたデ
ータベース使用プログラマをポストプロセッシングする
処理は、次に示す通りである。ポストプロセッシング手
順は、コンパイルされたデータベース使用プログラマの
オブジェクト・クラス定義を変更し、かつプログラマの
第1の命令に対してポインタを設定することによって開
始する(ステップ250)。データベースまたは他の持
続性記憶装置からコピーされたをデータ記憶するために
用いられうるコンパイルされたデータベース使用プログ
ラマの全てのオブジェクト・クラスは、持続性データ記
述子に対するポインタを含むべく変更される。本発明の
ある実施例では、ポストプロセッサは、そのオブジェク
トが持続性データを記憶するために用いられうる全ての
オブジェクト・クラスのリストを受け取り、そのような
場合にはそれらのオブジェクト・クラスだけが持続性デ
ータ記述子を含むべく検査されかつ変更される。次に、
初期にコンパイルされたデータベース使用プログラマの
各ステートメントまたは命令は、ステートメントが、特
別の処理を必要とする複数の命令型の一つであるかどう
かを決定すべく検査される(ステップ254、25
8)。以下の説明では、コンパイルされたデータベース
使用プログラマに追加された命令は、擬似コード・フォ
ームで書かれる。この文書で用いられた擬似コードは、
汎用コンピュータ言語規定を利用する。ここで採用され
た擬似コードは、この説明の目的のためにだけ開発さ
れ、この分野におけるあらゆるコンピュータ・プログラ
マによって容易に理解できるように設計されている。
【0042】オブジェクトのオブジェクト・ポインタ・
フィールドを参照する“GetField(ゲット・フ
ィールド)”命令のために挿入されるコード 現行命令(即ち、ポストプロセッサ・ポインタによって
ポインタされたもの)がオブジェクトからオブジェクト
・ポインタ・フィールドを読取るための命令であれば
(Javaバイトコード言語において“getfiel
d(ゲット・フィールド)”命令と呼ばれる)(ステッ
プ254)、表2に示した命令は、プログラマに追加さ
れる(ステップ256)。レファレンスの容易のため
に、表2において追加された命令は、番号が付されてい
る。
【0043】
【表2】
【0044】
【表3】 追加された命令の説明は、次の通りである。この説明で
は、“参照オブジェクト(referring object)”は、“参
照されたオブジェクト(referenced object) ”とここで
呼ばれる別のオブジェクトへのポインタを含むオブジェ
クトである。更に、表1及び2の挿入された“命令”は
擬似コード命令であり、かつ追加された実際の命令の数
及びフォーマットは用いられるプログラミング言語に依
存して変化する、ということが理解されるべきである。
追加された命令01は、参照されたオブジェクトに対す
るオブジェクト・ポインタがヌルであるか否かを単にテ
ストする。オブジェクト・ポインタがヌルでないなら
ば、ラベルS1へのジャンプ(命令02)が実行され、
オリジナル・プログラムの実行が再開される。それゆえ
に、参照されたオブジェクトが主メモリに既に存在する
ときには、一つの追加命令だけが実行される:非ヌル・
ポインタ・テストで条件付けられる条件付き分岐。
【0045】参照されたオブジェクトに対するオブジェ
クト・ポインタがヌルであれば(命令01)、残りの命
令(03〜14)が用いられる。命令03は、参照オブ
ジェクトが持続性データ記述子を有するか否かを見るべ
くチェックする。そうでなければ、プログラムが存在し
ないであろうオブジェクトをアクセスすることを試みて
いるので、これは致命的誤りでありうるし、かつ命令0
4は、ヌル・ポインタ例外をスローして(投じて)、例
外ハンドラにプログラムの制御を取って代わらせる。参
照オブジェクトが持続性データ記述子を有すると想定す
ると、命令04は、実行されず、かつその代わり命令0
5が実行されて、参照オブジェクトの持続性データ記述
子から参照されたオブジェクトに対するオブジェクト識
別子(OID)を取得する。
【0046】命令06は、OIDがヌルであるかどうか
を決定する。そうであれば、それは、プログラムがトリ
ーまたはリストのトラバースを実行してリーフ・ノード
に到達することを示す。この点において、命令07は、
S1ラベルに対する分岐を実行することによってオリジ
ナル・プログラムの次の命令に戻すように制御を単に転
送して、スタックにヌル・ポインタを置き去りにする。
次に、非ヌルOIDが見出されたと想定すると、命令0
8は、もしあれば、OIDに対応している、オブジェク
ト・ポインタを要求すべくハッシュ・テーブルをアクセ
スする。命令09は、ハッシュ・テーブルが非ヌル・オ
ブジェクト・ポインタをリターンするかどうかを見るべ
くチェックする。そうであれば、これは、参照されたオ
ブジェクトが既に主メモリの中にあることを意味する。
その場合には命令10は、オブジェクト・ポインタを参
照オブジェクトの適切なフィールドの中にコピーし、命
令18は、オブジェクト・ポインタをスタック上にプッ
シュし、そして制御は、ラベルS1でオリジナル・プロ
グラム命令にリターンされる。
【0047】命令12は、命令09が、参照されたオブ
ジェクトが主メモリにないということを決定したなら
ば、実行される。命令12は、Database.Lo
adObject方法を呼出し、a)データベースから
参照されたオブジェクトをフェッチし、b)適切なオブ
ジェクト・クラスの新しい例を生成しかつ初期化し、
c)新しいオブジェクトに対する持続性データ記述子を
生成し、d)フェッチされたオブジェクトの内容を新し
いオブジェクトの中にコピーし、かつフェッチされたオ
ブジェクトからのあらゆるOIDs(即ち、データベー
スにおける他のオブジェクトへの参照(基準))を新し
いオブジェクトの持続性データ記述子の中に記憶し、か
つe)新しいオブジェクトに対してハッシュ・テーブル
に新しい記録を生成する。命令14は、新しいオブジェ
クトに対するオブジェクト・ポインタをスタック上にプ
ッシュする。次いで制御は、オリジナル・プログラム命
令にリターンされる。
【0048】纏めると、追加されたコードは、参照され
たオブジェクトが既に主メモリにあるかどうかを決定
し、そうでなければ、それは、データベースからオブジ
ェクトをフェッチしかつ主メモリに新しいオブジェクト
のフェッチされたオブジェクトからの情報を記憶する。
このコードは、(A)既に主メモリにあるオブジェクト
へのヌル・オブジェクト・ポインタを用いて、または
(B)主メモリにまだコピーされていないオブジェクト
へのヌル・オブジェクト・ポインタを用いて、情報を読
取ることを試みることができるプログラム位置でのみオ
リジナル・コンパイルされたプログラムに追加される。 “プット・フィールド(PutField)”命令に対して挿入さ
れたコード 現行命令(即ち、ポストプロセッサ・ポインタによって
ポイントされるもの)が情報をオブジェクトの中に記憶
するための命令であれば(Javaバイトコード言語に
おいて“フットフィールド(putfield)”命令を呼ばれ
る)(ステップ258)、表3に示した命令は、プログ
ラムに追加される(ステップ260)。参照の容易のた
めに、表3における追加された命令は、番号が付けられ
る。
【0049】
【表4】
【0050】
【表5】 表3における追加された命令の説明は、次の通りであ
る。命令31及び32は、参照オブジェクトと時々呼ば
れる、オブジェクトからの持続性データ記述子ポインタ
のコピーをゲットする。命令33は、ポインタがヌルで
あるかどうかを見るためにテストする。ポインタがヌル
であれば、それは、参照オブジェクトが、ダーティとマ
ークすることができない、トランジエント・オブジェク
トであることを意味し、その場合には、挿入されたコー
ドの命令34は、ラベルS2への分岐を実行する。次
に、命令35は、参照オブジェクトの持続性データ記述
子におけるリンクされたリスト・ポインタをゲットし、
かつ命令36は、それがヌルでないかどうかを見るため
にテストする。非ヌル・リンクド・リスト・ポインタ
は、オブジェクトがダーティと予め先にマークされたこ
とを示し、その場合には挿入されたコードの命令37が
ラベルS2への分岐を実行する。
【0051】参照オブジェクトが持続性データ記述子を
有しかつダーティとして予め先にマークされていないな
らば、命令38は、オブジェクトをダーティをマークす
べくデータベース・オブジェクト・クラスのMarkD
irth(マーク・ダーティ)方法を呼出す。Mark
Dirth(マーク・ダーティ)方法は、データベース
からの書込みロックを要求する命令を含む。命令41か
ら48は、値が書き込まれるフィールドがオブジェクト
・ポインタ・フィールドであるならば、オリジナル・コ
ンパイルされたプログラムに追加される。命令41及び
42は、参照オブジェクトに記憶されるべき値Vがヌル
・オブジェクト・ポインタであるかどうかを決定する。
記憶されるべき値Vがヌル・オブジェクト・ポインタで
あれば、制御は、参照オブジェクトの持続性データ記述
子に記憶されるべきOIDが存在しないので、ラベルS
3に続く命令(即ち、オリジナル・コンパイルされたプ
ログラムの“PushV(プッシュV)”命令)にパス
される。
【0052】記憶されるべき値Vがヌル・オブジェクト
・ポインタでないならば、命令43及び44は、値Vに
よりポイントされたオブジェクトが持続性データ記述子
を有するかどうか決定する。有さないならば、参照オブ
ジェクトの(即ち、オブジェクトE’s)PDDに記憶
されるべきOIDが存在せず、かつ制御がラベルS3に
続く命令にパスされる。さもなければ、値Vに対応して
いるOIDは、命令46によって取得され、かつ命令4
7により参照されたオブジェクトの持続性データ記述子
の適切なフィールドに記憶される。図5に示す手順のス
テップ262及び252は、オリジナル・コンパイルさ
れたプログラムの各命令が処理された後に実行され、も
しあれば、次のプログラム命令にポインタを進め、かつ
ポストプロセッシング手順が終了したときを決定する。
ポストプロセッサによって生成された変更されたプログ
ラムは、好ましい実施例において、有効Javaバイト
コード・プログラムであるということに注目すべきであ
る。それゆえに、適切なときに、ポストプロセッサによ
って生成された変更されたプログラムは、その上でそれ
が実行されるコンピュータ・プラットフォームに対する
ネイティブ・コード(native code) の中に更にコンパイ
ルされうる。
【0053】代替実施例 代替実施例では、オブジェクトのオブジェクト・ポイン
タ・フィールドを読取るための各ゲットフィールド命令
の後、表1に示したコードの挿入は、クレバー“ヌル・
オブジェクト・ポインタ”例外ハンドラの使用によりほ
とんどの場合に回避されうる。ヌル・オブジェクト・ポ
インタ例外は、ランタイム・システムが、オペランド・
スタック上に記憶されるべき有効オブジェクト・ポイン
タを必要とするが、スタック上の値がヌル・オブジェク
ト・ポインタのそれである、ゲットフィールドまたはプ
ットフィールド命令のような、命令を実行することを試
みるときにはいつでも発生する。
【0054】この代替実施例では、図5のポストプロセ
ッサ手順のステップ250では、ポストプロセッサは、
処理されるコンパイルされたデータベース利用プログラ
ムにヌル・ポインタ例外ハンドラを追加しかつ、また、
挿入されたヌル・ポインタ例外ハンドラを参照するよう
にプログラムの例外ハンドラ・テーブルを変更する。ス
テップ256は、ヌル・ポインタ例外ハンドラが、ヌル
・オブジェクト・ポインタ・フィールドがそれから取得
された参照プログラムを識別するトラブルを有するよう
ならば、表1に示した命令が(ステップ268により)
プログラムに挿入されるように、変更される。即ち、オ
ブジェクト・ポインタを用いるための第1の命令が第1
のオブジェクトからオブジェクト・ポインタを検索する
命令からプログラムにおいて遠くに移動されたならば、
例外ハンドラは、その第1のオブジェクトを識別するこ
とができないであろう。例えば、プログラムが次の一連
の命令を有するものと考える:
【0055】
【表6】 上記の例では、“getfieldF3(ゲットフィー
ルドF3)”命令がヌル・ポインタ例外をもたらすなら
ば、例外ハンドラは、スタック上のヌル・オブジェクト
・ポインタがオブジェクトO1から取得されたことを決
定することができないであろう。そのような情況におい
て、ポストプロセッサは、オブジェクトO1のオブジェ
クト・ポインタ・フィールドを読取るための命令の後に
表1に示したコードをまだ挿入する。第1の好ましい実
施例では少なくとも一つの追加命令(プログラム分岐を
もたらす非ヌル・テスト命令)が全てのそのようなge
tfield(ゲットフィールド)命令に対して実行さ
れなければならないが、この代替実施例では、ほとんど
の場合においてオーバヘッドは、非ヌル・オブジェクト
・ポインタがオブジェクトから読取られるランタイムの
間に招かれない。上記したように、ヌル・ポインタ例外
ハンドラは、変更されたデータベース使用プログラム
が、プログラムの実行の間に、ヌル・ポインタを用いて
オブジェクトを参照することを試みるときにはいつでも
呼出される。変更されたデータベース使用プログラム
は、(A)データベースから主メモリの中にまだ運ばれ
ていないオブジェクトにおける情報をアクセスするため
の“getfield(ゲットフィールド)”または
“putfield(プットフィールド)”動作を実行
することが最初の試みであるときに、または(B)主メ
モリのオブジェクトを参照するために先に用いられてい
ないオブジェクトからのオブジェクト・ポインタを用い
ているときにだけ、ヌル・ポインタを有するオブジェク
トを参照することを試みるべきである。ヌル・ポインタ
例外ハンドラは、図6を参照して以下に説明する。
【0056】図6を参照して、ヌル・ポインタ例外ハン
ドラは次のステップを実行する: A)どのオブジェクト(参照オブジェクト)がヌル・ポ
インタ例外をもたらしたヌル・オブジェクト・ポインタ
を含むかを決定する(280); B)参照オブジェクトが持続性データ記述子を有さない
ならば(281)、次に高いレベル例外ハンドラを、も
しあれば、呼び出させるように、ヌル・ポインタ例外を
リアサート(re-assert) する(282); C)参照オブジェクトが持続性データ記述子を有するな
らば(281)、そのオブジェクトの持続性データ記述
子から対応データベース・オブジェクトIDをゲットす
る(283); D)オブジェクトのコピーが既に主メモリにあるかどう
かを見るためにハッシュ・テーブルのオブジェクトID
を調べる(284); E)オブジェクトが既に主メモリにあるならば(28
6,Y)、ヌル・ポインタを(ハッシュ・テーブルから
コピーした)オブジェクトへの主メモリ・オブジェクト
・ポインタのコピーで置換し、オブジェクト・ポインタ
をプログラム・オペランド・スタック上にプッシュし、
そして、それに、ヌル・ポインタ例外をもたらした命令
を再実行させるようにデータベース使用プログラムに制
御を戻す(288); F)オブジェクトがまだ主メモリにないならば(28
6,N)、Database.LoadObject方
法を呼出す(289)、そして G)それにヌル・ポインタ例外をもたらした命令を再実
行させるようにデータベース使用プログラムに制御をリ
ターンする(299)。Database.LoadO
bject方法は、呼出されたときに、次のステップを
実行する: H)オブジェクトIDによって参照されたオブジェクト
のコピーを要求しかつ取得する;また、DBMSオブジ
ェクト上に読取りロックを要求しかつ取得する(29
0); I)DBMSから受け取ったオブジェクトに対応してい
るオブジェクト・クラスの新しいオブジェクト例を生成
し、かつオブジェクトに対する持続性データ記述子を生
成する(292); J)新しいオブジェクトの全てのオブジェクト識別子が
新しいオブジェクトに対する持続性データ記述子に記憶
されかつ主オブジェクトのオブジェクト識別子がヌル・
オブジェクト・ポインタで置換されることを除き、DB
MSオブジェクトの内容を新しいオブジェクトの中にコ
ピーする(294); K)新しいオブジェクトそのへのポインタ及びそのデー
タベース・オブジェクト識別子を包含している記録をハ
ッシュ・テーブルに追加する(296);そして、 L)プログラム・オペランド・スタック・ポインタ上に
主メモリ・オブジェクト・ポインタのコピーをプッシュ
する(298)。
【0057】本発明は、2〜3の特定の実施例を参照し
て記述したが、記述は、本発明の説明のためであり、本
発明を限定するものであると解釈されるべきでない。添
付した特許請求の範囲によって規定されたような本発明
の真の精神及び範疇から逸脱することなく種々の変更が
当業者に生じうる。
【0058】
【発明の効果】本発明の方法は、持続的に記憶されたオ
ブジェクトをアクセスしかつ更新するオブジェクト指向
型コンピュータ・プログラムを生成する方法であって:
コンピュータの主メモリに記憶されたオブジェクトをア
クセスしかつ更新するオリジナル命令を含む初期コンピ
ュータ・プログラムを受け取り;改訂されたコンピュー
タ・プログラムの実行中に、各対応オブジェクトが最初
にアクセスされるときにオブジェクトの対応するもの持
続性記憶装置から主メモリの中にロードする、オブジェ
クト・ローディング命令を追加し;かつ改訂されたコン
ピュータ・プログラムの実行中に、所定事象の発生によ
りコンピュータの主メモリのオブジェクトの対応するも
のを持続性記憶装置の中に記憶するオブジェクト記憶命
令を追加することによって:改訂されたコンピュータ・
プログラムを生成すべく初期コンピュータ・プログラム
を自動的に改訂する段階を具備するので、実際の持続的
記憶データからデータを読取りかつそれに書くための機
構でそれら自体を考慮することなく、それらが主メモリ
におけるデータベース・オブジェクトを単に処理するこ
とであっても、プログラマがオブジェクト指向型データ
ベース使用プログラムを書くことができ、かつ適時に、
データベースからメモリのオブジェクトの中にデータを
コピーしかつメモリのオブジェクトからデータの中に新
しくかつ変更されたデータをコピーするために必要な追
加のコードを自動的に挿入するようにコンパイルされた
オブジェクト指向型データベース・プログラムを後処理
することができる。
【0059】本発明のメモリは、データ処理システム上
で実行されるプログラムによるアクセスに対するデータ
を記憶するためのメモリであって:コンピュータの主メ
モリに記憶されたオブジェクトをアクセスしかつ更新す
るためのオリジナル命令を含む初期コンピュータ・プロ
グラムを変更するためのポストプロセッサ手順を備え;
ポストプロセッサ手順は、初期コンピュータ・プログラ
ムに補足命令を追加することによって改訂されたコンピ
ュータ・プログラムを生成すべく初期コンピュータ・プ
ログラムを自動的に改訂する命令を含み、補足命令は:
改訂されたコンピュータ・プログラムの実行中に、各対
応オブジェクトが最初にアクセスされるときにオブジェ
クトの対応するものを持続性記憶装置から主メモリの中
にロードするオブジェクト・ローディング命令;及び改
訂されたコンピュータ・プログラムの実行中に、所定の
事象の発生によりコンピュータの主メモリのオブジェク
トの対応するものを持続性記憶装置の中に記憶するオブ
ジェクト記憶命令を含んでいるので、実際の持続的記憶
データからデータを読取りかつそれに書くための機構で
それら自体を考慮することなく、それらが主メモリにお
けるデータベース・オブジェクトを単に処理することで
あっても、プログラマがオブジェクト指向型データベー
ス使用プログラムを書くことができ、かつ適時に、デー
タベースからメモリのオブジェクトの中にデータをコピ
ーしかつメモリのオブジェクトからデータの中に新しく
かつ変更されたデータをコピーするために必要な追加の
コードを自動的に挿入するようにコンパイルされたオブ
ジェクト指向型データベース・プログラムを後処理する
ことができる。
【0060】本発明のコンピュータ・システムは、オブ
ジェクトを記憶するための主メモリを含んでいる、メモ
リを備え;メモリは、初期コンピュータ・プログラム、
改訂されたコンピュータ・プログラム及び、主メモリに
記憶されたオブジェクトをアクセスしかつ更新するため
のオリジナル命令を含む初期コンピュータ・プログラム
を変更するためのポストプロセッサ手順を更に記憶して
おり;ポストプロセッサ手順は、初期コンピュータ・プ
ログラムに補足命令を追加することによって改訂された
コンピュータ・プログラムを生成すべく初期コンピュー
タ・プログラムを自動的に改訂するための命令を含んで
おり、補足命令は:改訂されたコンピュータ・プログラ
ムの実行中に、各対応オブジェクトが最初にアクセスさ
れるときにオブジェクトの対応するものを持続性記憶装
置から主メモリの中にロードするオブジェクト・ローデ
ィング命令;及び改訂されたコンピュータ・プログラム
の実行中に、所定の事象の発生によりコンピュータの主
メモリのオブジェクトの対応するものを持続性記憶装置
の中に記憶するオブジェクト記憶命令を含むので、実際
の持続的記憶データからデータを読取りかつそれに書く
ための機構でそれら自体を考慮することなく、それらが
主メモリにおけるデータベース・オブジェクトを単に処
理することであっても、プログラマがオブジェクト指向
型データベース使用プログラムを書くことができ、かつ
適時に、データベースからメモリのオブジェクトの中に
データをコピーしかつメモリのオブジェクトからデータ
の中に新しくかつ変更されたデータをコピーするために
必要な追加のコードを自動的に挿入するようにコンパイ
ルされたオブジェクト指向型データベース・プログラム
を後処理することができる。
【図面の簡単な説明】
【図1】本発明の好ましい実施例の技法を用いて改訂さ
れたデータベース・プログラムを用いているコンピュー
タ・システムの概念的ブロック図である。
【図2】本発明の技法の好ましい実施例の概念的ブロッ
ク図である。
【図3】本発明の好ましい実施例を組み込んでいるコン
ピュータ・システムのブロック図である。
【図4】本発明の好ましい実施例で用いられるデータベ
ース・オブジェクト・クラスのブロック図である。
【図5】本発明の好ましい実施例で用いられる技法のフ
ローチャートである。
【図6】本発明の代替実施例で用いられるヌル・ポイン
タ例外ハンドラ手順のフローチャートの一部である。
【図7】本発明の代替実施例で用いられるヌル・ポイン
タ例外ハンドラ手順のフローチャートの他の一部であ
る。
【符号の説明】
100 コンピュータ・システム 102 主メモリ 104 持続性データ記憶 106 データベース 108 オブジェクト 110 データベース管理システム(DBMS) 112 ランタイム・システム 114−1〜114−3 オブジェクト 120 ポインタ 122 持続性データ記述子 124 フル・オブジェクト識別子(OID) 126 リスト・ポインタ 128−1〜128−2 フル・オブジェクト識別子
(OID) 130−1〜130−2 オブジェクト・レファレンス
・フィールド 140 ハッシュ・テーブル 142 リスト・ヘッダ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ローデリック ジー ジー カッテル アメリカ合衆国 カリフォルニア州 94024 ロス アルトス エッジ レーン 737

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 持続的に記憶されたオブジェクトをアク
    セスしかつ更新するオブジェクト指向型コンピュータ・
    プログラムを生成する方法であって:コンピュータの主
    メモリに記憶されたオブジェクトをアクセスしかつ更新
    するオリジナル命令を含む初期コンピュータ・プログラ
    ムを受け取り;前記改訂されたコンピュータ・プログラ
    ムの実行中に、各前記対応オブジェクトが最初にアクセ
    スされるときに前記オブジェクトの対応するもの持続性
    記憶装置から前記主メモリの中にロードする、オブジェ
    クト・ローディング命令を追加し;かつ前記改訂された
    コンピュータ・プログラムの実行中に、所定事象の発生
    により前記コンピュータの主メモリの前記オブジェクト
    の対応するものを前記持続性記憶装置の中に記憶するオ
    ブジェクト記憶命令を追加することによって:改訂され
    たコンピュータ・プログラムを生成すべく前記初期コン
    ピュータ・プログラムを自動的に改訂する段階を具備す
    ることを特徴とする方法。
  2. 【請求項2】 前記改訂段階は、前記改訂されたコンピ
    ュータ・プログラムの実行中に、前記コンピュータの主
    メモリのどのオブジェクトが新しい及び/又は更新され
    たデータを含むのかを示しているデータを記憶するダー
    ティ・オブジェクト・マーキング命令を追加することを
    更に含み、 前記オブジェクト記憶命令は、新しい及び/又は更新さ
    れたデータを含む前記コンピュータの主メモリの前記オ
    ブジェクトのそれらを前記持続性記憶装置に記憶するこ
    とを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記オリジナル命令によってアクセスさ
    れかつ更新された前記オブジェクトは、オブジェクト・
    クラスの第1のセットにおけるオブジェクトを含み、か
    つ前記オブジェクト記憶命令によって前記持続性記憶装
    置に記憶された前記オブジェクトは、前記第1のセット
    のサブセットであるオブジェクト・クラスの第2のセッ
    トにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データ構造定義命令を含み;前
    記改訂段階は:前記オブジェクト・クラスの第2のセッ
    トにおける前記オブジェクトに、前記オブジェクト・ク
    ラスの第2のセットにおける前記オブジェクトによって
    参照されるオブジェクトに対する主メモリ・オブジェク
    ト・ポインタ及び持続性記憶装置オブジェクト識別子の
    両方を記憶することができるように前記オブジェクト・
    クラスの第2のセットに関連付けられた前記データ構造
    を改訂する補足オブジェクト定義命令を追加することを
    更に含むことを特徴とする請求項1または2に記載の方
    法。
  4. 【請求項4】 前記オブジェクト・ローディング命令に
    よって主メモリの中にロードされたオブジェクトは、主
    メモリにロードされた前記オブジェクトによて参照され
    る持続性記憶装置におけるオブジェクトに対するヌル・
    オブジェクト・ポインタを含み;前記改訂段階は、前記
    オブジェクト・クラスの第2のセットにおけるオブジェ
    クトのヌル・オブジェクト・ポインタがアクセスされる
    ときにはいつでも前記オブジェクト・ローディング命令
    が呼出されるように前記初期コンピュータ・プログラム
    を改訂することを含むことを特徴とする請求項3に記載
    の方法。
  5. 【請求項5】 前記オリジナル命令によってアクセスさ
    れかつ更新された前記オブジェクトは、オブジェクト・
    クラスの第1のセットにおけるオブジェクトを含み、か
    つ前記オブジェクト記憶命令によって前記持続性記憶装
    置に記憶された前記オブジェクトは、前記第1のセット
    のサブセットであるオブジェクト・クラスの第2のセッ
    トにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データベース構造定義命令を含
    み;前記改訂段階は:前記オブジェクト・クラスの第2
    のセットにおける前記オブジェクトに、前記オブジェク
    ト・クラスの第2のセットにおける前記オブジェクトに
    よって参照されるオブジェクトに対する主メモリ・オブ
    ジェクト・ポインタ及び持続性記憶装置オブジェクト識
    別子の両方を記憶することができるように前記オブジェ
    クト・クラスの第2のセットに関連付けられた前記デー
    タ構造を改訂する補足オブジェクト定義命令を追加する
    ことを更に含むことを特徴とする請求項1に記載の方
    法。
  6. 【請求項6】 データ処理システム上で実行されるプロ
    グラムによるアクセスに対するデータを記憶するための
    メモリであって:コンピュータの主メモリに記憶された
    オブジェクトをアクセスしかつ更新するためのオリジナ
    ル命令を含む初期コンピュータ・プログラムを変更する
    ためのポストプロセッサ手順を備え;前記ポストプロセ
    ッサ手順は、前記初期コンピュータ・プログラムに補足
    命令を追加することによって改訂されたコンピュータ・
    プログラムを生成すべく前記初期コンピュータ・プログ
    ラムを自動的に改訂する命令を含み、前記補足命令は:
    前記改訂されたコンピュータ・プログラムの実行中に、
    各前記対応オブジェクトが最初にアクセスされるときに
    前記オブジェクトの対応するものを持続性記憶装置から
    前記主メモリの中にロードするオブジェクト・ローディ
    ング命令;及び前記改訂されたコンピュータ・プログラ
    ムの実行中に、所定の事象の発生により前記コンピュー
    タの主メモリの前記オブジェクトの対応するものを前記
    持続性記憶装置の中に記憶するオブジェクト記憶命令を
    含んでいることを特徴とするメモリ。
  7. 【請求項7】 前記補足命令は、前記改訂されたコンピ
    ュータ・プログラムの実行中に、前記コンピュータの主
    メモリにおけるどのオブジェクトが新しい及び/又は更
    新されたデータを含むものかを示しているデータを記憶
    するダーティ・オブジェクト・マーキング命令を含み;
    前記オブジェクト記憶命令は、新しい及び/又は更新さ
    れたデータを含む前記コンピュータの主メモリにおける
    前記オブジェクトのそれらを前記持続性記憶装置に記憶
    することを特徴とする請求項6に記載のメモリ。
  8. 【請求項8】 前記オリジナル命令によってアクセスさ
    れかつ更新された前記オブジェクトは、オブジェクト・
    クラスの第1のセットにおけるオブジェクトを含み、か
    つ前記オブジェクト記憶命令によって前記持続性記憶装
    置に記憶された前記オブジェクトは、前記第1のセット
    のサブセットであるオブジェクト・クラスの第2のセッ
    トにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データ構造定義命令を含み;前
    記補足命令は:前記オブジェクト・クラスの第2のセッ
    トにおける前記オブジェクトに、前記オブジェクト・ク
    ラスの第2のセットにおける前記オブジェクトによって
    参照されるオブジェクトに対する主メモリ・オブジェク
    ト・ポインタ及び持続性記憶装置オブジェクト識別子の
    両方を記憶することができるように前記オブジェクト・
    クラスの第2のセットに関連付けられた前記データ構造
    を改訂する補足オブジェクト定義命令を更に含むことを
    特徴とする請求項6または7に記載のメモリ。
  9. 【請求項9】 前記オブジェクト・ローディング命令に
    よって主メモリの中にロードされたオブジェクトは、主
    メモリにロードされた前記オブジェクトによて参照され
    る持続性記憶装置におけるオブジェクトに対するヌル・
    オブジェクト・ポインタを含み;前記ポストプロセッサ
    手順は、前記オブジェクト・クラスの第2のセットにお
    けるオブジェクトのヌル・オブジェクト・ポインタがア
    クセスされるときにはいつでも前記オブジェクト・ロー
    ディング命令が呼出されるように前記初期コンピュータ
    ・プログラムを改訂することを特徴とする請求項8に記
    載のメモリ。
  10. 【請求項10】 前記オリジナル命令によってアクセス
    されかつ更新された前記オブジェクトは、オブジェクト
    ・クラスの第1のセットにおけるオブジェクトを含み、
    かつ前記オブジェクト記憶命令によって前記持続性記憶
    装置に記憶された前記オブジェクトは、前記第1のセッ
    トのサブセットであるオブジェクト・クラスの第2のセ
    ットにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データ構造定義命令を含み;前
    記補足命令は:前記オブジェクト・クラスの第2のセッ
    トに、前記オブジェクト・クラスの第2のセットにおけ
    る前記オブジェクトによって参照されるオブジェクトに
    対して主メモリ・オブジェクト・ポインタ及び持続性記
    憶装置オブジェクト識別子の両方を記憶することができ
    るように前記オブジェクト・クラスの第2のセットに関
    連付けられた前記データ構造を改訂する補足オブジェク
    ト定義命令を更に含むことを特徴とする請求項6に記載
    のメモリ。
  11. 【請求項11】 コンピュータ・システムであって:オ
    ブジェクトを記憶するための主メモリを含んでいる、メ
    モリを備え;前記メモリは、初期コンピュータ・プログ
    ラム、改訂されたコンピュータ・プログラム及び、前記
    主メモリに記憶されたオブジェクトをアクセスしかつ更
    新するためのオリジナル命令を含む初期コンピュータ・
    プログラムを変更するためのポストプロセッサ手順を更
    に記憶しており;前記ポストプロセッサ手順は、前記初
    期コンピュータ・プログラムに補足命令を追加すること
    によって改訂されたコンピュータ・プログラムを生成す
    べく前記初期コンピュータ・プログラムを自動的に改訂
    するための命令を含んでおり、該補足命令は:前記改訂
    されたコンピュータ・プログラムの実行中に、各前記対
    応オブジェクトが最初にアクセスされるときに前記オブ
    ジェクトの対応するものを持続性記憶装置から前記主メ
    モリの中にロードするオブジェクト・ローディング命
    令;及び前記改訂されたコンピュータ・プログラムの実
    行中に、所定の事象の発生により前記コンピュータの主
    メモリの前記オブジェクトの対応するものを前記持続性
    記憶装置の中に記憶するオブジェクト記憶命令を含むこ
    とを特徴とするコンピュータ・システム。
  12. 【請求項12】 前記補足命令は、前記改訂されたコン
    ピュータ・プログラムの実行中に、前記コンピュータの
    主メモリにおけるどのオブジェクトが新しい及び/又は
    更新されたデータを含むものかを示しているデータを記
    憶するダーティ・オブジェクト・マーキング命令を含
    み;前記オブジェクト記憶命令は、新しい及び/又は更
    新されたデータを含む前記コンピュータの主メモリにお
    ける前記オブジェクトのそれらを前記持続性記憶装置に
    記憶することを特徴とする請求項11に記載のコンピュ
    ータ・システム。
  13. 【請求項13】 前記オリジナル命令によってアクセス
    されかつ更新された前記オブジェクトは、オブジェクト
    ・クラスの第1のセットにおけるオブジェクトを含み、
    かつ前記オブジェクト記憶命令によって前記持続性記憶
    装置に記憶された前記オブジェクトは、前記第1のセッ
    トのサブセットであるオブジェクト・クラスの第2のセ
    ットにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データ構造定義命令を含み;前
    記補足命令は:前記オブジェクト・クラスの第2のセッ
    トに、前記オブジェクト・クラスの第2のセットにおけ
    る前記オブジェクトによって参照されるオブジェクトに
    対して主メモリ・オブジェクト・ポインタ及び持続性記
    憶装置オブジェクト識別子の両方を記憶することができ
    るように前記オブジェクト・クラスの第2のセットに関
    連付けられた前記データ構造を改訂する補足オブジェク
    ト定義命令を更に含むことを特徴とする請求項11また
    は12に記載のコンピュータ・システム。
  14. 【請求項14】 前記オブジェクト・ローディング命令
    によって主メモリの中にロードされたオブジェクトは、
    主メモリにロードされた前記オブジェクトによて参照さ
    れる持続性記憶装置におけるオブジェクトに対するヌル
    ・オブジェクト・ポインタを含み;前記ポストプロセッ
    サ手順は、前記オブジェクト・クラスの第2のセットに
    おけるオブジェクトのヌル・オブジェクト・ポインタが
    アクセスされるときにはいつでも前記オブジェクト・ロ
    ーディング命令が呼出されるように前記初期コンピュー
    タ・プログラムを改訂することを特徴とする請求項13
    に記載のコンピュータ・システム。
  15. 【請求項15】 前記オリジナル命令によってアクセス
    されかつ更新された前記オブジェクトは、オブジェクト
    ・クラスの第1のセットにおけるオブジェクトを含み、
    かつ前記オブジェクト記憶命令によって前記持続性記憶
    装置に記憶された前記オブジェクトは、前記第1のセッ
    トのサブセットであるオブジェクト・クラスの第2のセ
    ットにおけるオブジェクトを含み;前記オリジナル命令
    は、前記オブジェクト・クラスの第1のセットにおける
    前記オブジェクトに関連付けられたデータ構造を定義す
    るためのオブジェクト・データ構造定義命令を含み;前
    記補足命令は:前記オブジェクト・クラスの第2のセッ
    トに、前記オブジェクト・クラスの第2のセットにおけ
    る前記オブジェクトによって参照されるオブジェクトに
    対して主メモリ・オブジェクト・ポインタ及び持続性記
    憶装置オブジェクト識別子の両方を記憶することができ
    るように前記オブジェクト・クラスの第2のセットに関
    連付けられた前記データ構造を改訂する補足オブジェク
    ト定義命令を更に含むことを特徴とする請求項13に記
    載のコンピュータ・システム。
JP9025450A 1996-02-09 1997-02-07 データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法 Pending JPH1063561A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/599,055 US6128771A (en) 1996-02-09 1996-02-09 System and method for automatically modifying database access methods to insert database object handling instructions
US08/599055 1996-02-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008149726A Division JP2008262585A (ja) 1996-02-09 2008-06-06 データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Publications (1)

Publication Number Publication Date
JPH1063561A true JPH1063561A (ja) 1998-03-06

Family

ID=24398014

Family Applications (2)

Application Number Title Priority Date Filing Date
JP9025450A Pending JPH1063561A (ja) 1996-02-09 1997-02-07 データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法
JP2008149726A Pending JP2008262585A (ja) 1996-02-09 2008-06-06 データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008149726A Pending JP2008262585A (ja) 1996-02-09 2008-06-06 データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法

Country Status (8)

Country Link
US (2) US6128771A (ja)
EP (1) EP0789300B1 (ja)
JP (2) JPH1063561A (ja)
KR (1) KR100472807B1 (ja)
CN (1) CN1146786C (ja)
DE (1) DE69724855D1 (ja)
SG (1) SG75111A1 (ja)
TW (1) TW317624B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528555A (ja) * 2004-03-10 2007-10-11 マイクロソフト コーポレーション ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911071A (en) * 1996-09-13 1999-06-08 Sun Microsystems, Inc. Persistent programming system and method for deploying self-containing executable applications
US5930794A (en) * 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
KR100512157B1 (ko) * 1997-09-04 2005-11-01 삼성전자주식회사 오오피 기반의 마이크로컨트롤러 응용 개발 시스템
US6360363B1 (en) * 1997-12-31 2002-03-19 Eternal Systems, Inc. Live upgrade process for object-oriented programs
US6714935B1 (en) * 1998-09-21 2004-03-30 Microsoft Corporation Management of non-persistent data in a persistent database
US7464383B1 (en) * 1999-04-16 2008-12-09 Adobe Systems Incorporated Dynamic dependency graph in MVC paradigm
US6857015B1 (en) 1999-06-14 2005-02-15 Wind River International, Ltd. Method and system for remotely observing and controlling objects
US6490616B1 (en) 1999-06-14 2002-12-03 Wind River International, Ltd. Method and apparatus for incremental download from server to client
WO2000077613A2 (en) * 1999-06-14 2000-12-21 Wind River International Inc. Method and system for managing and using persistent storage
JP3756352B2 (ja) * 1999-06-29 2006-03-15 富士通株式会社 コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体
KR100689368B1 (ko) * 1999-12-29 2007-03-08 삼성전자주식회사 개인용 컴퓨터에서 데이터 베이스 접속 방법
US6658660B1 (en) * 1999-12-31 2003-12-02 Nortel Networks Limited System and method of automatically modifying source code for marshaling, unmarshaling and marking modified data objects
US7185005B1 (en) 2000-05-12 2007-02-27 Oracle International Corporation Nested transactions in a file system
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US7389493B1 (en) 2000-05-12 2008-06-17 Oracle International Corporation Categories on a per instance basis
US7725878B1 (en) * 2000-05-12 2010-05-25 Oracle International Corporation Property bundles on a per instance basis
US6772320B1 (en) * 2000-11-17 2004-08-03 Intel Corporation Method and computer program for data conversion in a heterogeneous communications network
US7434156B1 (en) 2000-11-27 2008-10-07 Sun Microsystems, Inc. Method, system, program, and computer readable medium for providing a database for object oriented objects
KR100426620B1 (ko) * 2000-12-26 2004-04-13 한국전자통신연구원 주기억장치 상주 객체관계형 dbms 에서의 클래스 인스턴스 변경 방법
US6931638B2 (en) * 2001-03-15 2005-08-16 Sun Microsystems, Inc Method and apparatus to facilitate sharing optimized instruction code in a multitasking virtual machine
US7370322B1 (en) * 2001-04-11 2008-05-06 Sun Microsystems, Inc. Method and apparatus for performing online application upgrades in a java platform
US6772172B2 (en) 2001-04-27 2004-08-03 Sun Microsystems, Inc. Method, system, program, and computer readable medium for indexing object oriented objects in an object oriented database
US7069540B1 (en) * 2001-07-02 2006-06-27 Unisys Corporation COM persistence model
US20030018909A1 (en) * 2001-07-17 2003-01-23 International Business Machines Corporation Method and apparatus for enforcing security policies in Java applications
US6857119B1 (en) * 2001-09-25 2005-02-15 Oracle International Corporation Techniques for modifying a compiled application
US6763347B1 (en) * 2001-10-19 2004-07-13 Nick Zhang Indexing management for hierarchical main memory
US7020641B2 (en) * 2001-10-22 2006-03-28 Sun Microsystems, Inc. Method, system, and program for maintaining a database of data objects
US20030122966A1 (en) * 2001-12-06 2003-07-03 Digeo, Inc. System and method for meta data distribution to customize media content playback
US7320137B1 (en) 2001-12-06 2008-01-15 Digeo, Inc. Method and system for distributing personalized editions of media programs using bookmarks
US7016913B2 (en) 2002-03-20 2006-03-21 Sun Microsystems, Inc. Method, system, data structures, and article of manufacture for implementing a persistent object
US7356537B2 (en) 2002-06-06 2008-04-08 Microsoft Corporation Providing contextually sensitive tools and help content in computer-generated documents
US20070088655A1 (en) * 2002-06-27 2007-04-19 Peter Seilern Method for the electronic processing of share transactions
US7093245B2 (en) * 2002-11-20 2006-08-15 Hewlett-Packard Development Company, L.P. System and apparatus for upgrading concentrated executable computer software code without reconcentration
US7096463B2 (en) * 2002-11-20 2006-08-22 Hewlett-Packard Development Company, Lp. System and apparatus for dynamically upgrading concentrated executable computer software code
US7113953B2 (en) * 2003-06-30 2006-09-26 International Business Machines Corporation System and method for efficiently writing data from an in-memory database to a disk database
US20050044523A1 (en) * 2003-08-20 2005-02-24 International Business Machines Corporation Method and system for compiling Java code with referenced classes in a workspace environment
US20060085473A1 (en) * 2004-10-14 2006-04-20 Frederik Thormaehlen Method and system for business process super-transaction
US7665077B2 (en) * 2004-10-18 2010-02-16 Microsoft Corporation System and method for sharing objects between applications in a virtual runtime environment
US8683184B1 (en) * 2004-11-15 2014-03-25 Nvidia Corporation Multi context execution on a video processor
US20060293940A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for applying intelligent filters and identifying life cycle events for data elements during business application debugging
US8539003B2 (en) * 2005-04-22 2013-09-17 Sap Ag Systems and methods for identifying problems of a business application in a customer support system
US20060242174A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Systems and methods for using object-oriented tools to debug business applications
US20060241961A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of optimizing legacy application layer control structure using refactoring
US20060242176A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of exposing business configuration dependencies
US7958486B2 (en) * 2005-04-22 2011-06-07 Sap Ag Methods and systems for data-focused debugging and tracing capabilities
US20060242194A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Systems and methods for modeling and manipulating a table-driven business application in an object-oriented environment
US20060241999A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of exposing a sequence of instructions into an object-oriented programming language
US20060242188A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of exposing a missing collection of application elements as deprecated
US7542980B2 (en) 2005-04-22 2009-06-02 Sap Ag Methods of comparing and merging business process configurations
US20060282458A1 (en) * 2005-04-22 2006-12-14 Igor Tsyganskiy Methods and systems for merging business process configurations
US7720879B2 (en) * 2005-04-22 2010-05-18 Sap Ag Methods of using an integrated development environment to configure business applications
US20060242172A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Systems and methods for transforming logic entities of a business application into an object-oriented model
US20060242177A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of exposing business application runtime exceptions at design time
US20060242197A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of transforming application layer structure as objects
US20060293935A1 (en) * 2005-04-22 2006-12-28 Igor Tsyganskiy Methods and systems for incrementally exposing business application errors using an integrated display
US7702638B2 (en) * 2005-04-22 2010-04-20 Sap Ag Systems and methods for off-line modeling a business application
US20060242171A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of using code-based case tools to verify application layer configurations
US20060242196A1 (en) * 2005-04-22 2006-10-26 Igor Tsyganskiy Methods of exposing application layer integrity as object oriented programming language elements
KR100772455B1 (ko) * 2005-06-22 2007-11-01 한국전자통신연구원 Dac 강화를 위한 프로세스 분류/실행 제어 장치 및 방법
US7487178B2 (en) * 2005-10-05 2009-02-03 International Business Machines Corporation System and method for providing an object to support data structures in worm storage
US20100122073A1 (en) * 2008-11-10 2010-05-13 Ravi Narayanaswamy Handling exceptions in software transactional memory systems
US9020905B2 (en) * 2009-10-31 2015-04-28 International Business Machines Corporation Synchronizing database and non-database resources without a commit coordinator
JP4959781B2 (ja) 2009-12-22 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト生成地点記録方法およびプログラム
US8756193B2 (en) 2011-10-31 2014-06-17 Apple Inc. System and method for persisting object pointers
US10509725B2 (en) 2013-03-08 2019-12-17 Oracle International Corporation Flushing by copying entries in a non-coherent cache to main memory
US9354849B2 (en) * 2013-03-14 2016-05-31 Apperian, Inc. Modification of compiled applications and application management using retrievable policies
US10754842B2 (en) * 2014-06-13 2020-08-25 International Business Machines Corporation Preplaying transactions that mix hot and cold data
US9934008B2 (en) * 2014-06-18 2018-04-03 Netapp, Inc. Methods for facilitating persistent storage of in-memory databases and devices thereof
US10698671B2 (en) 2015-03-30 2020-06-30 Arxan Technologies, Inc. Processing, modification, distribution of custom software installation packages
US11424931B2 (en) 2016-01-27 2022-08-23 Blackberry Limited Trusted execution environment
US10599409B2 (en) 2016-02-02 2020-03-24 Blackberry Limited Application lifecycle operation queueing
US11514186B2 (en) * 2021-04-14 2022-11-29 Sap Se Integrated database user privilege management

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6437621A (en) * 1987-07-20 1989-02-08 Ibm Updating of program
US5325531A (en) * 1989-06-30 1994-06-28 Digital Equipment Corporation Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
JPH0833862B2 (ja) * 1989-10-23 1996-03-29 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン オブジエクト指向コンピユータ・システム
US5297279A (en) * 1990-05-30 1994-03-22 Texas Instruments Incorporated System and method for database management supporting object-oriented programming
JPH04160893A (ja) * 1990-10-25 1992-06-04 Oki Electric Ind Co Ltd オブジェクト指向ソフトウェアの局データ・加入者データ管理方法
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
US5426747A (en) 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5822590A (en) * 1991-10-31 1998-10-13 Texas Instruments Incorporated dbX: a persistent programming language model
US5568642A (en) * 1991-12-26 1996-10-22 Institute Of Software Scientifical Constructions Computer system with easy programming architecture and programming method therefor
US5535392A (en) * 1992-06-26 1996-07-09 Digital Equipment Corporation Using hint generation to cause portions of object files to remain the same
JPH06103075A (ja) * 1992-07-06 1994-04-15 Internatl Business Mach Corp <Ibm> オブジェクト指向適用業務
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
US5359730A (en) * 1992-12-04 1994-10-25 International Business Machines Corporation Method of operating a data processing system having a dynamic software update facility
US5634123A (en) * 1993-07-08 1997-05-27 Park City Group, Inc. Data management using nested records and code points
WO1995003586A1 (en) 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
WO1995004960A2 (en) 1993-08-02 1995-02-16 Persistence Software, Inc. Method and apparatus for managing relational data in an object cache
JP3910221B2 (ja) * 1993-12-28 2007-04-25 株式会社日立製作所 オブジェクト指向データベース管理システム及び方法
US5590269A (en) * 1994-04-22 1996-12-31 Minnesota Mining & Manufacturing Company Resource assignment system providing mixed-initiative user interface updates
US5522077A (en) 1994-05-19 1996-05-28 Ontos, Inc. Object oriented network system for allocating ranges of globally unique object identifiers from a server process to client processes which release unused identifiers
US5542078A (en) 1994-09-29 1996-07-30 Ontos, Inc. Object oriented data store integration environment for integration of object oriented databases and non-object oriented data facilities
US5864864A (en) * 1995-09-27 1999-01-26 Sun Microsystems, Inc. Method and apparatus for providing transparent persistent data support to foreign data types
US6134710A (en) * 1998-06-26 2000-10-17 International Business Machines Corp. Adaptive method and system to minimize the effect of long cache misses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528555A (ja) * 2004-03-10 2007-10-11 マイクロソフト コーポレーション ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法

Also Published As

Publication number Publication date
DE69724855D1 (de) 2003-10-23
KR100472807B1 (ko) 2005-05-16
EP0789300A2 (en) 1997-08-13
CN1161505A (zh) 1997-10-08
TW317624B (ja) 1997-10-11
SG75111A1 (en) 2000-12-19
CN1146786C (zh) 2004-04-21
JP2008262585A (ja) 2008-10-30
EP0789300B1 (en) 2003-09-17
US6128771A (en) 2000-10-03
US6915510B1 (en) 2005-07-05
EP0789300A3 (en) 2001-04-11
KR970062897A (ko) 1997-09-12

Similar Documents

Publication Publication Date Title
US6128771A (en) System and method for automatically modifying database access methods to insert database object handling instructions
US6912520B2 (en) System and method for providing a persistent object framework for managing persistent objects
Wu et al. Espresso: Brewing java for more non-volatility with non-volatile memory
Cockshot et al. Persistent object management system
US6795898B2 (en) Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
Olson et al. Berkeley DB.
Bohannon et al. The architecture of the Dali main-memory storage manager
CN114631089B (zh) 用于直接映射的持久存储器数据库的持久存储器文件仓库
EP1040433B1 (en) A fine-grained consistency mechanism for optimistic concurrency control using lock groups
US5414840A (en) Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US6571259B1 (en) Preallocation of file system cache blocks in a data storage system
EP0459683B1 (en) A system and method for database management supporting object-oriented programming
EP0848324B1 (en) Using three-state references to manage access to referenced objects
US7451434B1 (en) Programming with shared objects in a shared memory
US7665075B1 (en) Methods for sharing of dynamically compiled code across class loaders by making the compiled code loader reentrant
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
JP2001527243A (ja) オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置
US6928466B1 (en) Method and system for identifying memory component identifiers associated with data
US8095731B2 (en) Mutable object caching
Vaughan et al. Casper: a cached architecture supporting persistence
Straw et al. Object management in a persistent Smalltalk system
White et al. QuickStore: a high performance mapped object store
Hosking Update logging for persistent programming languages: A comparative performance evaluation
JP2001527241A (ja) オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置
Biliris et al. Object storage management architectures

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070709

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071009

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080204