JPH0997204A - 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置 - Google Patents

分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置

Info

Publication number
JPH0997204A
JPH0997204A JP8077336A JP7733696A JPH0997204A JP H0997204 A JPH0997204 A JP H0997204A JP 8077336 A JP8077336 A JP 8077336A JP 7733696 A JP7733696 A JP 7733696A JP H0997204 A JPH0997204 A JP H0997204A
Authority
JP
Japan
Prior art keywords
data
immutable
distributed
pointer
data object
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
JP8077336A
Other languages
English (en)
Inventor
Mark W Hapner
ダブリュー. ハプナー マーク
Alan Snyder
スナイダー アラン
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 JPH0997204A publication Critical patent/JPH0997204A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Abstract

(57)【要約】 【課題】 分散オブジェクト操作環境において、透明性
のある不変性を提供する、方法および装置を提供する。 【解決手段】 サーバントオブジェクトを供給し、不変
データが格納される不変データオブジェクトと、前記不
変データオブジェクトを間接的に示す不変データオブジ
ェクトポインタとを有する不変データ格納機構を供給し
て、データオブジェクトの値を判定し、データオブジェ
クトポインタをサーバントオブジェクト内に配置し、デ
ータオブジェクトポインタを不変データポインタで置き
換えて、透明性のある不変データサポートを有する分散
オブジェクトを作成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散コンピューテ
ィングシステム、クライアント−サーバコンピューティ
ングおよびオブジェクト指向プログラミングの分野に係
わり、特に、分散オブジェクトシステムにおいて透明性
のある不変性(transparent persistence)を提供する
方法および装置を含む。
【0002】
【従来の技術および発明が解決しようとする課題】ここ
数年来、従来のプログラミング手法で開発されたソフト
ウェアの納期遅れと予算超過の傾向が強まるにつれて、
オブジェクト指向プログラミング手法への関心が高まっ
ている。従来のプログラミング手法に伴う1つの問題
は、多くの課題に関して、設計及び保守がしばしば著し
く困難な手順モデルと「線形」コードとに重点が置かれ
ていることに起因している。一般的に、従来の手法を用
いて作成された大きなプログラムは「脆い(brittl
e)」。すなわち、わずかな変更でさえも、プログラミ
ングコードの全要素が影響を受ける。従って、ユーザの
要望に応じたソフトウェアの小規模な変更でも、全プロ
グラムの大幅な再設計と書き換えとが必要になることが
ある。
【0003】オブジェクト指向プログラミング戦略は、
こうした問題の回避に向いている。その理由は、オブジ
ェクト手法は、手順よりもむしろデータの取り扱いに重
点を置くので、プログラマに現実世界の問題をモデル化
するにあたって、より直感的なアプローチを提供するか
らである。更に、オブジェクトは関連データと手順とを
カプセル化しており、オブジェクトのインターフェイス
を介してのみ関連するデータおよび手順へのアクセスを
可能にすることによって、これらの情報がプログラムの
他の部分から隠されている。従って、オブジェクトのデ
ータおよび/または手順への変更は、プログラムの他の
部分から比較的隔離された状態にある。こうして、特定
のオブジェクトコードの変更が、他のオブジェクトのコ
ードに影響を及ぼすことがないので、従来の方法を用い
て書かれたコードに比べて保守の容易なコードが提供さ
れる。更に、オブジェクトは本来モジュール的な性質で
あり、個々のオブジェクトを種々のプログラムで再使用
することができる。したがって、プログラマは「試行正
(tried and true)」のオブジェクトのライブラリを作
成し、個々のアプリケーションにオブジェクトを反復し
て使用することができる。このことにより、ソフトウェ
アの信頼性が高まると共に、信頼性のあるプログラミン
グコードが繰り返し用いられるので、開発時間が短縮さ
れる。
【0004】オブジェクト指向方法論の分野における最
近の進歩は、コンピュータネットワークを介して相互に
接続された複数のコンピュータにまたがる分散オブジェ
クトオペレーティング環境の実現の中で見られた。ここ
で使用する意味での用語「分散オブジェクト」または
「オブジェクト」は、インターフェイスを介する動作に
よって操作できるコードとデータのカプセル化されたパ
ッケージをいう。したがって、分散オブジェクトは、オ
ブジェクト指向プログラミング(OOP)の分野の当業
者には、従来通りのプログラミングオブジェクトを定義
する基本的特性を含むものと見られるであろう。しか
し、分散オブジェクトは、2つの重要な特徴を有するこ
とによって従来のプログラミングオブジェクトとは異な
る。第1に、分散オブジェクトは多言語的(multilingu
al)である。すなわち、分散オブジェクトのインターフ
ェイスは、多様な異なるプログラミング言語にマップ
(map)できるインターフェイス定義言語(IDL)を
使用して定義される。そのようなインターフェイス定義
言語の1つがオブジェクトマネージメントグループ(Ob
ject Manegement Group)のIDLである。第2に、分散
オブジェクトは場所独立性がある。すなわち、分散オブ
ジェクトは、ネットワーク内のどの場所にも配置され得
るのである。このことは、通常は単一のアドレス空間の
中に存在する従来のプログラミングオブジェクトとは著
しく対照的である。
【0005】分散オブジェクト操作環境について更に詳
しく述べると、分散オブジェクトは、他のオブジェクト
へリクエストを送っているか、あるいはクライアントか
らのリクエストに回答しているかによって、オブジェク
トクライアントあるいはオブジェクトサーバーとなり得
る。分散オブジェクト環境においては、リクエストと回
答は、オブジェクトの場所と状態を認識しているオブジ
ェクトリクエストブローカ(Object Request Broker)
を介して行われる。そうしたORBに適したひとつのア
ーキテクチャが、共通オブジェクトリクエストブローカ
アーキテクチャ(CORBA)仕様によって提供され
る。CORBA仕様は、サービスをリクエストするオブ
ジェクトへサーバーオブジェクトがサービスを提供する
ことのできる分散クライアントサーバー環境におけるオ
ブジェクトに関して分散コンピューティング環境を定義
するため、OMG(Object Management Group)によっ
て開発された。
【0006】クライアントが目標オブジェクト(target
object)をコールする場合、目標オブジェクトがリク
エストされたサービスを実行できることを保証するた
め、特定の手順が実行される必要がある。こうした手順
は、目標オブジェクトの識別および配置、(もし、必要
ならば)目標オブジェクト側でのサーバーオブジェクト
の起動、(もし、必要ならば)目標オブジェクトの活性
化、そして最後に、目標オブジェクトとの接続を形成し
てコールを送る。ORBは、オブジェクトアダプタ(O
A)とともに、クライアントと目標オブジェクトと共働
して、これらのサービスを実行する。
【0007】分散オブジェクトのライフサイクルの観点
から、オブジェクトは、一時オブジェクトと不変オブジ
ェクトという2つのカテゴリのいずれか一方となる。オ
ブジェクトの属性が一時的か不変的かという議論を行う
場合、オブジェクトの状態の属性が一時的か不変的かが
参照される。オブジェクト指向プログラミング(OO
P;object oriented programming)の当業者にはなじ
みのように、オブジェクトは、実行可能なコードと状態
という2の要素によって記述されている。実行可能なコ
ードは、本質的に、それによってオブジェクトが動作す
る命令であり、オブジェクトの「振る舞い(behavio
r)」を定義する。状態は、単に、コードでは無いデー
タのような、オブジェクトの残余の部分である。
【0008】大多数の先行技術では、一時オブジェクト
に関して開示している。通常、一時データは短いライフ
サイクルを有し、単一のホストコンピュータプロセスと
のみ結び付いて存在する。この結果、ホストコンピュー
タプロセスが中止した場合に、ホストコンピュータプロ
セス中に存在する全ての一時オブジェクトが中止する。
したがって、あるプロセスから他のプロセスへの一時オ
ブジェクトの同一性の連続性は存在しなくなる。一時オ
ブジェクトが単一のプロセスのみ結び付いているので、
一時オブジェクトは、本質的に、それらの位置を変化す
ることができない。したがって、一時オブジェクトのア
ドレスは変化しないので、一時オブジェクトは、「イン
モービル(immobile)」オブジェクトとも呼ばれる。一
時オブジェクトのみを含むオブジェクト種を使用するプ
ログラマにとっては、インスタンスからインスタンスへ
のオブジェクト状態が保護されるにすぎない。
【0009】一方、不変オブジェクトは単一のプロセス
にのみ結び付くのでは無く、不変オブジェクトのアドレ
スとメモリ位置は時間が経過しても変更できる(たとえ
ば、不変オブジェクトは多くの「ライフ(life)」サイ
クルを有する)。不変オブジェクトでは、あるプロセス
から他のプロセスへの一時オブジェクトの同一性の連続
性が存在する。要するに、不変オブジェクトは、状態が
オブジェクトの特定のインスタンスの寿命よりも長命の
オブジェクトである。不変オブジェクトが、オブジェク
ト開発者に対して多くの利益をもたらすことは、明らか
である。不幸にも、従来の不変オブジェクトの実装に関
する戦略は、上記のように、オブジェクト開発者に対し
て、十分に満足のいく解答を提供できていなかった。
【0010】不変オブジェクトを提供する、最も未成熟
な戦略では、おそらく、オブジェクト内のプログラマコ
ードは、ハードディスクのようなパーマネントストレー
ジ媒体からのデータの読み込みやデータの書き込み(す
なわち、管理)である。この戦略は単純であるが、少な
くとも2つの欠点がある。第1に、オブジェクト開発者
は、夫々の不変オブジェクトの中へこのデータ管理を実
装するにあたって、負荷を担わなければならない。第2
に、この戦略では、不要なオーバヘッドを覚悟しなけれ
ばならない。例を挙げると、夫々のオブジェクトは、不
変データサポートについて事前に記述されたコードを含
まなければならない。更に、データファイルの構造が非
常に複雑なものとなり、データの読み出しや書き込みの
ために詳細な分析が必要となる。こうしたデータ管理の
全ては、オブジェクトによる実行時間内に終了されねば
ならず、システム資源の利用の点で、高価なものになっ
てしまう結果をもたらす。更に、分散オブジェクト操作
環境に複雑性が付与され、オブジェクト開発者が不変性
戦略を実装することが非常に困難となる。これは、部分
的には、システムの外に配置された多くの代理オブジェ
クトを有する分散オブジェクトの属性によるものであ
る。
【0011】不変オブジェクトを提供する他のアプロー
チでは、不変性は、現存のオブジェクトのプログラミン
グ言語中に導入される。1つのアプローチでは、現存の
オブジェクトのプログラミング言語の拡張が、データベ
ースの機能性へのインターフェイスを提供する。例え
ば、このアプローチを使用する拡張された言語に関する
コンパイラは、データベースの使用に対して適合するコ
マンドの特別セットを許容しなければならない。リレー
ショナルデータベースは、オブジェクト状態が通常に見
出される形態での格納データに関しての設計はなされて
いないので、ジレンマを引き起こす。オブジェクト指向
データベースは利用可能であるが、オブジェクト指向デ
ータベースによって作成されたオブジェクトはCORB
Aオブジェクトではなく、CORBAガイドラインの利
益を享受できない。いずれにしても、先行技術の戦略で
は、データの不変性を注意深く管理しなければならない
ので、プラグラマには不当な負荷が課されることにな
る。
【0012】図1を参照して、CORBA仕様に従って
設計された特定のオブジェクトについて議論する。図1
に、一時データ122、データオブジェクトポインタ1
24、およびデータオブジェクト120を含む、分散オ
ブジェクトクラスのサーバントオブジェクト120を示
す。背景として、クラスは、それからオブジェクトが作
成され得るテンプレートである。オブジェクト指向プロ
グラミングの分野の当業者にとっては理解されるよう
に、クラスの新たなインスタンスが作成されると、イン
スタンス変数に関するメモリが割り当てられる。サーバ
ントオブジェクト120は、分散オブジェクトの1つの
インスタンスである。図1には、サーバントオブジェク
ト120のメモリ割り当てが示されている。このメモリ
領域が連続領域であることに注意されたい。一時データ
122は、オブジェクトが一時データを使用するための
みに必要な状態(例えば、変数)を含むサーバントオブ
ジェクト120のメモリの一部分である。
【0013】一時データは、サーバントオブジェクト1
20のインスタンスによってのみ使されるスクラッチパ
ッド領域と類似している。データオブジェクト128
は、オブジェクトが不変状態としての使用を意図するイ
ンスタスのメモリの一部である。まず、サーバントオブ
ジェクト120が作成されると、オブジェクトコンスト
ラクタが、当初は空の一時データおよびデータオブジェ
クトとともに、サーバントオブジェクト120を作成す
る。(作成中に実行される)初期化機能および(活動中
に実行される)活性化機能は、要請された初期化を実行
しなければならない。以前に議論したように、オブジェ
クト開発者は、データオブジェクト128を保守し、呼
び起こすために、なんらかのタイプの不変性戦略と共働
しなければならず、データは、作成および活性化/非活
性化のサイクルを通して保守される。通常の方法では、
タスクを実行する、複雑な初期化機能および活性化機能
を書き込まねばならない。
【0014】CORBA仕様は、不変データを管理する
オブジェクト開発者を援助する1つの可能な手段を提供
する。オブジェクトアダプタデータベース(object ada
pterdatabase;OAD)内で、ORBは、各登録オブジ
ェクトごとに、参照データと呼ばれる、最大1キロバイ
ト(1Kバイト)の不変データ部を保守する。活性化に
おいて、オブジェクトは、OAD内の適当な参照データ
の配置に関するキーとして使用できる参照キーを獲得す
る。開発者は、データオブジェクト128に関連する不
変データを格納するために、1Kバイトの参照データを
利用することができるが、1Kバイトという制限は、多
くの応用にとっては不向きであろう。したがって、オブ
ジェクト開発者は、より複雑な不変性戦略を実装しなけ
ればならない。例えば、不変データを含むメモリ空間を
オブジェクトに示すポインタのリストは有効であろう。
CORBA仕様に従うにも拘らず、オブジェクト開発者
は、不変性戦略の実装にあたっては、負荷を負うことに
なる。
【0015】従来のプログラミングオブジェクトに関す
る不変データストレージを実装する方法および装置と、
不変性機構がオブジェクト開発者にとって透明性がある
ような分散オブジェクトが必要なのである。このために
は、不変性機構が透明性のある不変性となるであろう。
透明性のある不変オブジェクトは、プログラマが明示的
な状態のロードやセーブを実装しなくともよいので、オ
ブジェクト指向プログラマの作業が容易になるであろ
う。したがって、透明性のある不変オブジェクトサポー
トを提供する方法および装置が必要なのである。
【0016】
【課題を解決するための手段】本発明は、分散オブジェ
クト操作環境におけるオブジェクトに対して、不変デー
タサポートを提供する方法および装置を提供することに
よって、上記の制限を克服する。特に、以下に記載の方
法および装置は、プログラマに対して相対的に透明性の
ある不変性に関するサポートを提供することによって、
オブジェクト内での不変性の生成に関連する負荷からオ
ブジェクトプログラマを解放する。
【0017】本発明は、分散オブジェクトシステム上で
使用に関して、透明性のある不変性データサポートを有
する分散オブジェクトを提供するコンピュータに実装さ
れる方法を含む。本発明の方法は、一時データが格納さ
れ得る関連データオブジェクト(associated data obje
ct)と、関連データオブジェクトを間接的に指示するデ
ータオブジェクトポインタ(data object pointer)と
を有するサーバントオブジェクト提供する。サーバント
オブジェクトは、データオブジェクトクラス(data obj
ect class)からデータオブジェクトを継承する。ま
た、本発明の方法は、不変(persistent)データが格納
される不変データオブジェクトと、不変データオブジェ
クトを間接的に指示する不変データオブジェクトポイン
タとを有する不変データ格納機構を提供する。更に、デ
ータオブジェクトポインタの値は判定され、データオブ
ジェクトポインタは、サーバントオブジェクト内に置か
れ、不変データポインタに置き換えて、透明性のある不
変データサポートを有する分散オブジェクトを作成す
る。
【0018】また、本発明は、透明性のある不変データ
サポートを有する分散オブジェクトを作成するコンピュ
ータシステムを提供する。本発明のコンピュータシステ
ムは、データオブジェクトクラス中ヘデータスキーマを
コンパイルするデータコンパイラと、コンパイルされた
実装(implementation)中へ実装ファイルをコンパイル
する実装コンパイラとを備える。更に、本発明のコンピ
ュータシステムは、一時データスペース、データオブジ
ェクトポインタ、およびデータオブジェクトを含み、デ
ータオブジェクトクラスからデータオブジェクトポイン
タを継承するサーバントオブジェクトを作成可能なサー
バントオブジェクトコンストラクタを作成する最終段階
コンパイラを備える。更に、不変データベースと不変デ
ータベースのイメージである不変データオブジェクトと
を含む不変データストレージ機構を備える。そして、デ
ータオブジェクトとデータオブジェクトのアドレススペ
ースとの値を見出すロケータ、および、アドレススペー
スの値を不変データオブジェクトを示すポインタ値とス
ワップする置換機構を含む透明性のある不変性機構を備
える。
【0019】また、本発明は、分散オブジェクトシステ
ム上での使用に好適な分散オブジェクトを含む。この分
散オブジェクトは、一時データを格納する一時データス
ペースと、データオブジェクトと、データオブジェクト
からの読み込み位置と、不変データベースのイメージで
ある不変データオブジェクトへの書き込み位置とを間接
的に示す不変データポインタと備える。
【0020】
【発明の実施の形態】本発明は、オブジェクト指向プロ
グラミング(OOP)に基づく分散オペレーティング環
境に係わり、特に、分散オペレーティング環境におい
て、透明性のある不変性を提供する方法および装置に関
するものである。以下、用語の定義に続いて、まず、本
発明の装置を例示する。次に、本発明に好適な、コンピ
ュータプロセス、ネットワーク、およびコンピュータシ
ステムを例について議論し、引き続いて、本発明の装置
とデータ構造のいくつかの実施例を詳細に説明すること
によって、更に、本発明の方法面の詳細な説明をして、
本発明の方法と装置を詳細に説明する。
【0021】I.用語の定義 ここで使用する意味での用語「分散オブジェクト」また
は「オブジェクト」はオブジェクトと関連する定義済イ
ンターフェイスを介して作用によって操作できるコード
とデータのカプセル化されたパッケージをいう。したが
って、分散オブジェクトは、当業者にとっては、従来通
りのプログラミングオブジェクトを定義する基本的特性
を含むものと見えるであろう。しかし、分散オブジェク
トは、2つの重要な特徴を含むことによって、従来のプ
ログラミングオブジェクトとは異なる。第1に、分散オ
ブジェクトは多言語的(multilingual)であるという点
である。分散オブジェクトのインターフェイスは、種々
の異なるプログラミング言語にマッピングできるインタ
ーフェイス定義言語を使用して定義される。そのような
インターフェイス定義言語の1つがOMGのIDLであ
る。第2に、分散オブジェクトは場所独立性がある。す
なわち、分散オブジェクトはネットワーク内のどの場所
にも配置できるのである。これは、通常はクライアント
と同じアドレス空間に存在している従来のプログラミン
グオブジェクトとは著しく対照的である。分散オブジェ
クトは、他のオブジェクトへリクエストを送信している
のか、または他のオブジェクトからのリクエストに応答
しているのかによって、オブジェクトクライアントまた
はオブジェクトサーバの何れかとなる。リクエストおよ
び応答は、オブジェクトの場所と状態を認識しているオ
ブジェクトリクエストブローカ(Object Request Broke
r;ORB)を介して行われる。
【0022】「分散オブジェクトシステム」または「分
散オブジェクトオペレーティング環境」は、ORBを介
して通信する複数の分散オブジェクトを含むシステムを
表わす。
【0023】「オブジェクトレファレンス」または「オ
ブジェレフ(obfref)」は、別のオブジェクトに対する
ポインタを含むオブジェクトである。更に、オブジェレ
フはサブオフジェクトを識別するために使用できるメモ
リの一部(「サブオブジェクト識別子」)を含むことが
できる。サブオブジェクト識別子を除いて、オブジェク
トレファレンスの作成と定義は、当業者には周知であ
る。
【0024】ここで定義する「クライアント」は、第2
のクライアントへリクエストを送信する実体をいう。こ
のモデルにおいては、第2のオブジェクトを「サーバオ
ブジェクト」または「ターゲットオブジェクト」とい
う。したがって、クライアントはサーバから作用または
実装実行を発動する。分散オブジェクト環境では、オブ
ジェクトが多言語性を有するという条件があるため、ク
ライアントは実装実行プログラミング言語の知識を持つ
必要がなく、実装実行もクライアントのプログラミング
言語の知識を持つ必要がない。分散オブジェクト環境に
おけるクライアントとサーバは、インターフェイス定義
言語によって通信するだけで良い。先に述べた通り、ク
ライアントからサーバへのリクエストおよびクライアン
トへのサーバの応答は、ORBによって処理される。ク
ライアントとサーバは同じプロセスにあっても良く、同
じホストコンピュータにあっても良く、あるいは2つの
異なるホストコンピュータにあっても良いことを指摘し
ておくべきである。
【0025】「オブジェクトインターフェイス」は、オ
ブジェクトが提供する作用、属性および例外の仕様であ
る。分散オブジェクトの場合のオブジェクトインターフ
ェイスは、IDLを使用して書き込まれるのが好まし
い。前述のように、オブジェクトはそのインターフェイ
スを介してトランザクションを実行する。したがって、
インターフェイスを使用すると、使用されるプログラミ
ング言語を認識しているオブジェクトがトランザクショ
ン中のオブジェクトの方法およびデータを定義する必要
がなくなる。
【0026】情報のパケットを「マーシャル(整頓)す
る」とは、この情報を共有メモリまたはネットワーク通
信ラインを介して転送するように準備することである。
これは、しばしば、使用するネットワーク通信プロトコ
ルに従ってデータを編成することを意味する。
【0027】情報のパケットを「アンマーシャル(整頓
解除)する」とは、本質的にマーシャリング手順を逆に
することであって、非ネットワーク環境において意味を
もつフォーマットにおいてデータを作成することであ
る。
【0028】「透明性のある不変性(transparent pers
istence)」とは、オブジェクト開発者に対して、不変
データの格納と管理とを提供する機構のことである。
【0029】II.透明性のある不変性 本発明によれば、分散オブジェクト操作環境内のプログ
ラミングオブジェクトに透明性のある不変性を提供する
種々の方法および装置が提供される。ここで、「透明性
のある不変性」とは、オブジェクト開発者に対して、不
変データの格納と管理とを提供する機構のことである。
いくつかの実施例において、オブジェクトのインスタン
ス変数の構造の透明性のある構成(特に、オブジェクト
の限定された不変メモリを示すアドレス情報)と、オブ
ジェクトの関連した不変データの自動的な管理とを説明
する。いくつかの実施例においては、(分散オブジェク
トに対して外部にあるとともに透明性を有する)不変ス
トレージマネージャが、不変オブジェクトデータを保守
する。
【0030】ひとつの実施例では、透明性のある不変性
戦略は、以下のように、オブジェクトコンパイル(obuj
ect compilation)の属性と継承の原理(the principle
ofinheritance)を利用する。オブジェクト開発者が、
データスキーマ(data schema)中のデータ変数を宣言
すると、直接的な関係でそれが実行される。しかしなが
ら、オブジェクト開発者のデータスキーマがデータオブ
ジェクトクラス(dataobject class)中にコンパイルさ
れると、直接的な関係は、コンパイラによって間接的な
ものに変換される。(「間接的な指示(indirectio
n)」は、情報、ポインタなどの集合であり、オブジェ
クトにクライアントエンティティを示すことのできる、
例えばロケータオブジェクトのようなソースにクライア
ントエンティティを示す。(クライアントが地理的な位
置をリクエストすると、間接的な指示は、クライアント
に現在の地図上の位置を示すか、多分、地理に詳しい個
人の電話番号をクライアントに連絡するのと類似してい
る。) したがって、直接的な関係は変換され、オブジェクトの
活動中の関係は、コンパイラによって挿入され、オブジ
ェクト開発者が意識いないデータポインタとなるであろ
う。データポインタは、他のインスタンス変数に隣接す
るメモリ中のデータオブジェクトを間接的に示す。オブ
ジェクトが活性化されると、オブジェクトクラスの単一
のインスタンスが生成され、インスタンスは、データオ
ブジェクトを示すデータポインタを含むオブジェクトク
ラスの振る舞いと属性を継承する。本発明では、オブジ
ェクト活動中に不変データオブジェクトのレプリカを作
成し、データオブジェクトに対する初期データポインタ
を不変データオブジェクトに対するポインタに置き換え
る。
【0031】オブジェクトは、オブジェクトクライアン
トであってもよいし、オブジェクトサーバであってもよ
く、他のオブジェクトにリクエストをおくるか、クライ
アントからのリクエストに応答するかで、オブジェクト
クライアントであるか、オブジェクトサーバであるかが
決まる。分散オブジェクト環境においては、リクエスト
および応答は、オブジェクトの位置と状態とに通じてい
るオブジェクトリクエストブローカ(ORB)を介して
なされる。こうしたORBの実装に好適な一つのアーキ
テクチャが、コモンオブジェクトリクエストブローカア
ーキテクチャ(Commom Object Request Broker Archite
cture)仕様によって供給される。CORBA仕様は、
サービスをリクエストするクライアントへサーバーオブ
ジェクトがサービスを提供することのできる分散クライ
アントサーバー環境におけるオブジェクトに関して分散
コンピューティング環境を定義するため、OMG(Obje
ctManagement Group)によって開発された。以下の説明
では、「オブジェクト」と「分散オブジェクト」は互換
性をもって仕様される。しかしながら、一般的には、分
散オブジェクトは、分散オブジェクト操作環境の至る所
で(ORBを介して)クライアントがアクセスできる性
質もつ一方、C++オブジェクトやSmall Tal
kオブジェクトのような非分散オブジェクトは、共通の
オブジェクトとして同一のプロセス中の常駐クライアン
トのみが利用可能である。当業者は、文脈から、また
は、明示的な記述からこれら区別できるであろう。
【0032】クライアントがオブジェクトをコールする
場合、オブジェクトに応じたアドレス情報が必要とな
る。非分散オブジェクト指向操作環境では、クライアン
トは、同一のアドレス空間内、すなわち、同一のプロセ
ス内にあるオブジェクトとのみ会話することができる。
したがって、通常、アドレス情報は、目標オブジェクト
が存在するアドレス空間を示すポインタそのものであ
る。
【0033】しかしながら、分散オブジェクト操作環境
においては、クライアントは、求める目標オブジェクト
(リモートオブジェクトの場合)に関するオブジェクト
レファレンスを持っていなければならない。オブジェク
トレファレンスは、本来的に、目標オブジェクトをクラ
イアントに示すために十分なアドレス情報を含んでい
る。オブジェクトレファレンスアドレス情報は、直接的
なアドレス情報かもしれない。例えば、直接的なアドレ
ス情報は、ホストコンピュータのネットワークアドレ
ス、サーバープロセスのネットワークポート番号、およ
び、目標オブジェクト識別子を含むであろう。しかし、
アドレス情報は間接的なものかもしれないし、直接的な
アドレス情報と間接的なアドレス情報との組合せかもし
れない。
【0034】アドレス情報については、異なる種類のオ
ブジェクトレファレンスの好適な実施例ととともに、本
出願人の別出願である、米国特許出願「弁理士書類番
号:SUN1P025/P721、発明の名称:Method
s, Apparatus, and Data Structures for Managing Obj
ects、発明者:Brownell 他」に詳細に記載されてい
る。更に、分散オブジェクト操作環境でのオブジェクト
間の接続の形成と終結とに関する好適な実施例が、「弁
理士書類番号:SUN1P018/P715、発明の名
称:Methods and Apparatus for Managing Connections
for Communicationamong Objects in a Distributed O
bject System、発明者:Brownell 他」に記載されてい
る。
【0035】クライアントが目標オブジェクトをコール
する場合、目標オブジェクトがリクエストされたサービ
スを実行できることを保証するために、特定の手順が実
行されなければならない。こうした手順は、目標オブジ
ェクトの識別および配置、(もし、必要ならば)目標オ
ブジェクト側でのサーバーオブジェクトの起動、(も
し、必要ならば)目標オブジェクトの活性化、そして最
後に、目標オブジェクトとの接続を形成してコールを送
る。ORBは、オブジェクトアダプタ(OA)ととも
に、クライアントと目標オブジェクトと共働して、これ
らのサービスを実行する。
【0036】本発明の好適な実施例では、透明性のある
不変性機構が、オブジェクト開発者が分散オブジェクト
を開発するために使用するオブジェクト開発フレームワ
ークによって、自動的に実装される。こうしたフレーム
ワークは、本出願人の米国特許出願「弁理士書類番号:
SUN1P022/P719、発明の名称:Methodsand
Apparatus for Generation and Installation of Dist
ributed Objects ona Distributed Object System、発
明者:Snyder 他」に詳細に記載されている。ひとつの
好適なオブジェクト開発フレームワークがSunSof
t(Mountain View,CA)から提供され
ており、利用可能である。継承のオブジェクト指向原理
(obuject oriented principles)が、分散オブジェク
トに対して透明性を持って本発明を提供するためのオブ
ジェクト開発フレームワークを可能とするために使用さ
れるであろうことは、当業者には明らかであろう。
【0037】オブジェクト「クラス」は、オブジェクト
がそれから作成され得るテンプレートである。それは、
クラス内の全てのオブジェクに共通の振る舞い(behavi
or)や属性(attributes)を特定するために使用され
る。現存しているクラスから新たなクラスを定義する機
構は、「インヘリタンス(inheritance;継承)」であ
る。クラスの「サブクラス」は、親の動作を継承する。
よく知られているように、「インヘリタンス」は、再使
用可能性を容易にする機構である。
【0038】図2は、本発明の一実施例に従って、オブ
ジェクトの作成の一つの可能なフローを示している。デ
ータスキーマ(data schema)170は、オブジェクト
開発者によって記述される。データスキーマ170は、
全てのオブジェクト変数の構造と性質とを定義し、記述
する。そして、データスキーマ170は、データオブジ
ェクトクラス174を作成するために、データコンパイ
ラ172によって処理される。したがって、データオブ
ジェクトクラス174は、開発されつつあるオブジェク
トに関するデータの振る舞いと属性を記述している。特
に、データオブジェクトクラスはデータオブジェクトポ
インタの値を含んでおり、このことの重要性を以下に詳
述する。
【0039】実装(implementation)176は、開発さ
れつつあるオブジェクトの振る舞いと属性とを定義する
オブジェクト開発者によって記述される。実装176
は、コンパイル済実装180を作成するために、実装コ
ンパイラ178によってコンパイルされる。データスキ
ーマ170、データオブジェクトクラス174、実装1
76、コンパイル済実装180は、通常は、夫々、オブ
ジェクト開発者またはコンパイラによって書かれたファ
イルであることに注意されたい。
【0040】特に、コンパイル中に、データオブジェク
トを参照する記載がデータオブジェクトに対するポイン
タによって置き換えられることは、当業者には理解され
るであろう。例えば、xがサーバントであり、aがデー
タオブジェクトメンバである、「x.a」という記載
は、「dop」がデータオブジェクトクラス内でその値
が見出されるデータオブジェクトポインタである、
「x.dop→a」という記載に、コンパイル中に置き
換えられる。したがって、サーバントがデータオブジェ
クトを継承するならば、データオブジェクトポインタ
は、適当なデータオブジェクトに対してデータ操作(す
なわち、読み出し操作および書き込み操作)を間接的に
指示する。
【0041】データオブジェクトクラス174とコンパ
イルされた実装180は、コンパイラの他の段階で処理
され、オブジェクトコンストラクタ184を作成する。
当業者には理解されるように、オブジェクトコンストラ
クタ184を実行すると、所望のオブジェクトのインス
タンスが作成される。
【0042】本発明の一実施例のサーバントオブジェク
ト150について、図3を参照して説明する。図3に示
すように、分散オブジェクトクラスのサーバントオブジ
ェクト150は、一時データ152、データオブジェク
トポインタ154、およびデータオブジェクト158を
含む。一実施例では、サーバントはデータオブジェクト
を継承する。したがって、当業者には明らかなように、
データオブジェクトポインタ154の値はデータオブジ
ェクトクラス内に保持される。これにより、もちろん、
全ての作成されたサーバントが同一のデータオブジェク
トクラスからデータオブジェクトポインタの値を継承す
るので、労力を軽減して多数のサーバントの作成をする
ことができる。
【0043】サーバントオブジェクト150は、本発明
の一実施例に関する分散オブジェクトの1つのインスタ
ンスである。オブジェクト指向プラグラミングの当業者
には明らかなように、クラスの新たなインスタンスが作
成されると、インスタンス変数に関するメモリが割り当
てられる。図3には、サーバントオブジェクト150の
メモリ割り当てが示されている。一時データ152は、
オブジェクトが一時データとしてのみ使用することが必
要な状態(例えば、変数)を含むサーバントオブジェク
ト150のメモリ部分である。また、一時データは、サ
ーバントオブジェクト150のこのインスタンスによっ
てのみ使用されるスクラッチパッドとして想定される。
データオブジェクト158は、オブジェクト開発者が不
変状態として使用を意図しているインスタンスのメモリ
の部分である。メモリのこの領域は、上記のデータオブ
ジェクトクラスから継承されたデータオブジェクトポイ
ンタによって持しされる。
【0044】まず、サーバントオブジェクト150が作
成される場合、オブジェクトコンストラクタ184のよ
うなオブジェクトコンストラクタが、初期化状態(デー
タオブジェクトが割り当てられたメモリ中がランダムな
値のまま放置されている、または、0に初期化されてい
る、等)中の一時データ152およびデータオブジェク
ト158とともにサーバントオブジェクト150を作成
する。(作成期間に実行される)初期化機能および(活
性化期間に実行される)活性化機能の双方は、要請され
た初期化を実行しなければならない。上述のように、こ
のことは、プログラマに不変性を実装するために、必要
な機能を提供する負荷を担うことを要求する。
【0045】しかし、本発明の好適な実施例によれば、
(図1のように)データオブジェクト158を示す、元
のデータオブジェクトポインタ154は、作成中あるい
は活性化中に、不変データオブジェクトをコールしたデ
ータオブジェクト158のレプリカを保有するメモリの
領域を指示する不変ストレージマネージャデータオブジ
ェクトポインタ(a persistent storage manager data
object pointer)154に置き換えられる。オブジェク
トが作成されるか、活性化されたとき、レプリカ不変デ
ータオブジェクト162は、不変データベース164の
ような不変ストレージの外部に写像される。不変データ
オブジェクト162の格納形式は、作成期間に生成さ
れ、オブジェクトが削除されまれで、不変データベース
内で維持される。以下、図7から図10を参照して、本
発明に従う透明性のある不変性を実装するオブジェクト
の作成、活性化、および削除に関する好適な方法を説明
する。
【0046】好適な実施例では、不変データストレージ
164は、不変ストレージマネージャによって管理され
る。不変ストレージマネージャの好適な実施例は、米国
出願「弁理士書類番号:SUN1P036、発明の名
称:Methods and Apparatus for Managing a Database
in a Distributed Object Operating Enviroment、発明
者:Hapner 他」に記載されている。
【0047】本発明で考察されているような分散オブジ
ェクトは、(ORBおよび/またはホストコンピュータ
によって)コンピュータプロセスのもとで実行される。
コンピュータプロセスは、良く知られた共通のフレーム
ワークを提供し、その下で、コンピュータシステムは、
複数の異なるスレッドを実行する。コンピュータプロセ
スは、コンピュータシステムの分割された領域として考
えることができる。
【0048】実際に、プロセスは、通常、アドレススペ
ース(すなわち、当該プロセスのみが割り当てられたメ
モリ部分)、ファイル記述子の集合、プロセス識別番
号、および1つ以上の実行のスレッドを含む。本発明の
一実施例で考察されているような多重スレッドシステム
では、複数のスレッドを単一のプロセスないで同時に実
行することができる。スレッド、多重スレッドシステ
ム、および同時性の詳細に関しては、SunSoft社
発行の「Dr. Robert Hagmann 著、”Concurrency Withi
n DOE Object Implementations”、Version 0.91, May
27, 1993」を参照されたい。
【0049】図4に、本発明の一実施例に応じた、多重
スレッドプロセス100を含む本発明の実施例を示す。
プロセス100はコンピュータ30のようなコンピュー
タ上に実装され、スレッド102のような多重スレッ
ド、不変および一時的メモリを有する割り当てられたメ
モリ104、ファイル識別子106、および、オブジェ
クト108のような少なくとも1つのオブジェクトを含
む。オブジェクト108は、状態110とコード112
とを含む。オブジェクト108は、通常、状態110お
よびコード112によって定義され。コード112は、
本質的には、オブジェクトが実行する動作命令である。
したがって、状態110は、実行可能ではないコードで
ある、残りの部分である。明らかなように、状態110
は、一般的に、本発明の透明性のある不変性が目指して
いるものである。本発明のいくつかの実施例では、不変
ストレージマネージャが、複数のプロセス中に存在する
複数の分散オブジェクトにとってアクセス可能な単一の
データベースを保守する。
【0050】本発明の好ましい実施形態において、分散
オブジェクト、コンピュータプロセスおよび分散オブジ
ェクトのクライアントは、ネットワークによって相互に
連結された1台以上のコンピュータに配置される。ネッ
トワークは、いくつかの好ましい形態を取り得る。例え
ば、図5に、代表的なネットワーク編成10を示す。ネ
ットワーク編成10はネットワーク14に結合されたコ
ンピュータ12を備える。ネットワーク編成10は、別
のコンピュータ18,20,および22に加えてサー
バ、ルータ等16を備え、データや命令がネットワーク
化されたコンピュータ間で転送できる。こうしたコンピ
ュータネットワークの設計、構成、および実装は当業者
には周知である。
【0051】図5のコンピュータ12,16,18,2
0,および/または22の構成を、図6に示す。コンピ
ュータ30は、ランダムアクセスメモリ(RAM)34
に双方向的に、リードオンリメモリ(ROM)36に単
方向的に接続された中央処理装置(CPU)32を備え
る。通常、RAM34は、CPU32上で現在作動中の
プロセスに関する分散したオブジェクトおよびそれらの
オブジェクトに関連するデータと命令を含む、プログラ
ミング命令およびデータを格納している。ROM36
は、通常、コンピュータが機能を実行するために用いる
基本的動作命令、データ、およびオブジェクトを格納て
いる。更に、ハードディスク、CD ROM、磁気光学
(フロプティカル)ドライブ、テープドライブ等の大容
量記憶装置38が双方向的にCPU32に接続されてい
る。一般には、大容量記憶装置38は、アドレス空間が
CPU32によって、例えばバーチャルメモリ等として
アクセス可能であるにもかかわらず、CPU32によっ
て、通常は頻繁に用いられない追加のプログラミング命
令、データ、およびオブジェクトを格納する。上記の各
コンピュータは、通常、更に、キーボード、ポインタ装
置(すなわち、マウスやスタイラス)等の入力媒体を含
む入出力源210を備える。また、ネットワーク接続を
介して、追加の大容量記憶装置(図示せず)をCPU2
02に接続することができる。上記ハードウェア要素、
ソフトウェア要素、およびネットワーキング装置は、当
業者にとって周知の標準設計構成である。
【0052】図7を参照して、本発明における透明性の
ある不変性を有するオブジェクトを作成する方法を説明
する。透明性のある不変性の方法200は、種々のシス
テムで使用される。例えば、この方法は、CORBA仕
様に基づく分散オブジェクト操作環境における使用に適
している。方法200は、オブジェクトクリエータがオ
ブジェクトの作成のためにコールされたとき、ステップ
201で開始する。オブジェクトの作成のために、オブ
ジェクトのファクトリクラスが利用されることは、当業
者には理解されるであろう。通常、オブジェクトインス
トールにあたって、ファクトリクラスの単一のインスタ
ンスが作成され、適当なクライアントによってアクセス
可能なサーバプロセス内に置かれる。いくつかの場合、
サービスをリクエストしようとするクライアントは、使
用するオブジェクトのインスタンスを作成するため、こ
のファクトリサーバントオブジェクト(factory servan
tobject)をコールするかもしれない。他の場合、OR
Bが、サービスをリクエストしているクライアントに応
答して、クリエータをコールするかもしれない。
【0053】ステップ202で、サーバントオブジェク
ト150が作成される。通常、この動作は、上述のよう
に、オブジェクトコンストラクタの実行によって終了す
る。ステップ202において、メモリの連続部分が、一
時データ152、データオブジェクトポインタ154、
およびデータオブジェクト158に関するメモリを含む
サーバントオブジェクト150に割り当てられる。上述
のように、データオブジェクトポインタ154に関する
値は、データオブジェクトクラスから継承される。
【0054】割り当てられた当初、データオブジェクト
ポインタ154はデータオブジェクト158を指してい
る。そして、ステップ204で、不変データオブジェク
ト162が作成される。好適な実施例では、(オブジェ
クト開発者によってプログラミンされたデータオブジェ
クトのレプリカである)不変データオブジェクト162
は、不変ストレージマネージャによって保守される不変
データベース164内のストレージから写像される。ス
テップ204においては、不変データオブジェクト16
2は、RAM34のような一時メモリ内に写像される。
不変データオブジェクト164をRAM34内へのコピ
ーは、不変ストレージ内で保守されるよりも、速い読み
出し/書き込み操作を可能とすることが、当業者には理
解されるであろう。
【0055】次に、ステップ208で、オブジェクトア
ダプタオブジェクト(object adapter object)が獲得
される。このステップは、ORBにサーバントオブジェ
クト150を登録すること、および、リターン時にオブ
ジェクトレファレンスを受けることを含む。オブジェク
トアダプタオブジェクトの生成は、周知の方法で実行さ
れる。例えば、CORBA標準は、ステップ208で要
求されるような分散オブジェクトの生成に関するガイド
ラインを提供している。次いで、ステップ210で、オ
ブジェクトレファレンスが、サーバントオブジェクト1
50のホストコンピュータ上のORBによって保守され
るオブジェクトレファレンスデータ内に格納される。ス
テップ212で、初期のデータオブジェクトポインタ1
54は、先のステップ204で生成された不変データオ
ブジェクト162を指示する不変データポインタ154
に置き換えられる。ステップ212の一実施例を、図8
を参照して、後に詳細に説明する。
【0056】次に、ステップ214で、初期化手順が実
行される。これは、変数の初期値の設定のステップ、お
よび、不変データ内での読み出しステップを含んでい
る。初期化手順(少なくとも一部)は、オブジェクト開
発者によって記述され、各オブジェクト作成に対してユ
ニークとなるであろう。したがって、活性化期間より
も、作成初期化ステップ214の期間のほうが、異なる
機能が実行されるであろう。ここで、オブジェクトが、
作成され、活性化され、そして、サービスに関するリク
エストを受けることができるようになり、ステップ21
6で、オブジェクトレファレンスが、作成方法200を
開始したクライアントに返される。
【0057】図8を参照して、図7のデータポインタ置
換ステップ212の一実施例を詳細に説明する。図8に
示す実施例は、C++やSmall Talkのよう
な、オブジェクト指向プログラミング言語で使用するの
に好適である。こうした言語は、元々、分散オブジェク
ト操作環境や透明性のある不変性のために設計されてい
ないので、図8の方法は、現在使用可能なプログラミン
グフレームワークにおいて、本発明の方法を行うことを
可能とする、1つの手法を提供する。他のプログラミン
グ言語が使用される場合には、データポインタ置換ステ
ップ212のメカニズムを適当に変形すればよいこと
は、当業者には理解されるであろう。
【0058】図8のデータポインタ置換ステップ212
は、データポインタ154の値が識別されたとき開始す
る。図2を参照して、上記で説明したように、分散オブ
ジェクトの特定の特徴は、「親(parent)」クラスから
「継承(inherited)」される。この場合では、データ
ポインタ154が、データオブジェクトクラスから継承
される。現状のオブジェクト指向プログラミング言語
(例えば、C++やSmall Talk)の構造およ
び継承性(inheritance)の性質の結果として、データ
ポインタ154のアドレスは「隠されている(hidde
n)」か、または、分散オブジェクトにとって利用不可
能である。更に、データオブジェクトポインタ154
は、分散オブジェクトのライフサイクルで一定ではな
い。この一因は、異なる活性化/非活性化サイクル期間
中、夫々の活性化フェーズで、分散オブジェクトが、異
なるメモリ空間(すなわち、異なるアドレス)に存在す
ることである。一般に、活性化時にオブジェクトに割り
当てられたメモリ空間は、ORBによって知られている
が、ORBは、データポインタ154の特定位置を知ら
ないことにある。
【0059】しかし、周知のように、適切な「拡張(wi
dening)」機能を実行することにより、データポインタ
154の値をデータオブジェクトクラスから獲得するこ
とができる。ステップ252で、データポインタ154
の値が獲得されると、ステップ254で、ステップ25
2で見出した値と同一の値を含むアドレス空間を見出す
ために、分散オブジェクトのメモリ位置を探す。ステッ
プ254で見出されたアドレス情報は、データポインタ
フィールド154内の値を新たなデータオブジェクトポ
インタ154に置き換えるステップ256を可能とす
る。一実施例において、データオブジェクトポインタ1
54は、不変メモリ中のデータを保守する不変ストレー
ジマネージャによって提供される。不変ストレージマネ
ージャのより詳細に関しては、米国出願「弁理士書類番
号:SUN1P036/D422」を参照されたい。デ
ータオブジェクトポインタ154が置換されると、図8
の方法が終了する。
【0060】探査ステップ254の実行中において、値
判定ステップ252で得られた値が、分散オブジェクト
に割り当てられたメモリ空間内でユニークではないとい
うリスクが、僅小ではあるが存在することに指摘しなけ
ればならない。したがって、いくつかの実施例において
は、唯一性を保証するために、メモリ空間の完全な探査
はステップ254で実行されるであろう。しかし、上記
のリスクは小さいので、殆どの実施例においては、付加
的な保証ステップは不必要と信じられる。理解されるよ
うに、図8の方法の自明な変形が、異なるオブジェクト
指向プログラミング言語を使用する場合に適当である。
例えば、いくつかのインスタンスでは、オブジェクト指
向プログラミング言語が、直接的に、データポインタ1
54のアドレスを獲得する機構を提供しているかもしれ
ない。こうした場合には、ステップ254は不要であ
り、上記のリスクは除去される。
【0061】図9を参照して、本発明での、オブジェク
トを活性化する方法300を説明する。ステップ302
で、オブジェクトに関する発動(invocation)が受信さ
れる。発動は、オブジェクトが存在するサーバプロセス
によって受信されるであろう。次いで、ステップ304
で、サーバプロセスが、オブジェクトが活性であるか否
かが判定される。既に、オブジェクトが活性であれば、
不変データオブジェクト162は既に配置されており、
データオブジェクトポインタは、上記のように既に置換
されている。したがって、本発明に関連する活性化のス
テップは既に実行されており、活性化方法300は終了
する。
【0062】オブジェクトが非活性であれば、ステップ
306で、コンストラクタがサーバントオブジェクト1
50の作成をコールする。ステップ306においては、
一時データ152、データオブジェクトポインタ15
4、およびデータオブジェクト158を有するサーバン
トオブジェクト150にメモリの連続部分が割り当てら
れる。
【0063】割り当てられた当初、データオブジェクト
ポインタ154はデータオブジェクト158を指してい
る。図9のステップ306が、図7のステップ202に
類似していることに注目されたい。そして、ステップ3
08で、不変データオブジェクト162が、不変データ
ベース164内のストレージから検索され、RAM34
のような一時メモリ内に写像される。不変データオブジ
ェクト164をRAM34内へのコピーは、不変ストレ
ージ内で保守されるよりも、速い読み出し/書き込み操
作を可能とすることが、当業者には理解されるであろ
う。このステップは、図7のデータオブジェクト作成ス
テップ204と同様であることに注目されたい。
【0064】しかし、検索ステップ308においては、
データオブジェクトのレプリカが既に作成されており、
それを不変データベース164から直接読み出すことが
できる。データオブジェクト162が、アドレスが知ら
れたメモリ内に写像されたとき、すなわちステップ31
0で、元のデータオブジェクトポインタ154が、上述
の方法を使用して、不変データオブジェクト162を指
すデータオブジェクトポインタに置き換えられる。ポイ
ンタ置換ステップ310の後、ステップ312で、活性
化の初期化ステップが実行される。いくつかの実施例で
は、活性化フックが、オブジェクト開発者によってプロ
グラムされ、活性化にあたって実行さなければならない
全ての必須機能を定義している。活性化フックは、図7
のオブジェクト作成200の初期化ステップ214で実
行される初期化につぃては不要であることに注意された
い。
【0065】図10を参照して、本発明の一実施例に関
する、オブジェクトを削除する方法350について説明
する。最初のステップ352で、クライアントが、オブ
ジェクトに対して、「廃棄(destroy)」操作を発動す
るコールを行う。これは、(たとえ、外部で開始され
も)自己実行動作であるオブジェクト削除を有するプリ
グラミング手法に聞こえるで有ろう。これは、オブジェ
クト開発者によって定義された、秩序立ったシャットダ
ウンと削除を保証する。したがって、オブジェクトは、
インターフェイスを介してクライアントが利用可能な
「廃棄」のような操作を有する(オブジェクトを削除す
るオブジェクトの完全独立性とは異なっている)。オブ
ジェクトは、非活性や置換のような様々な理由で削除さ
れる。オブジェクト(または、オブジェクトが置かれた
プロセス)が非活性となる場合に、対称的にオブジェク
トを削除する好適な方法は、米国特許出願「弁理士書類
番号:SUN1P035/P769、発明者:Snyder
他」に開示されている。
【0066】オブジェクトが自己廃棄(self-destroy)
の要求をうけると、ステップ354で、オブジェクト
は、内部削除操作を実行する。これは、新たなリクエス
トをブロックしつつ、係属中のサービスリクエストを完
了させ、削除が完了した旨を表示する最終メッセージを
通知する、系統的な非活性化ステップを含む。オブジェ
クトを非活性化する好適な方法の一つが、米国特許出願
「弁理士書類番号:SUN1P026/P718、発明
の名称:Methods and Apparatus for Managing Deactiv
ation and Shutdown of a Server、発明者:Yeturu Aah
lad」に開示されている。次に、ステップ356で、オ
ブジェクトに関連する不変データが削除される。このス
テップは、廃棄操作中のオブジェクト自身によって実行
されるかもしれないし、オブジェクトが廃棄操作を実行
した後に不変ストレージマネージャによって行われるか
もしれないし、オペレーティングシステムのような他の
コンピュータエンティティによって実行されるかもしれ
ない。オブジェクトおよびその不変データが削除される
と、図10の方法は終了する。
【0067】以上、本発明のいくつかの実施例を説明し
たが、本発明はその精神と範囲から逸脱することなく他
の多くの具体的な形態において実施できるものと解釈す
べきである。例えば、図の2の実施例は、単に、オブジ
ェクト開発手順の1例を提供するにすぎない。しかし、
多くの他のオブジェクト開発手順が、本発明の方法およ
び装置を実装のために使用できることが、当業者には理
解されるであろう。
【0068】図9に示した実施例において、透明性のあ
る不変性の方法300は、クライアントがオブジェクト
をコールすることにより開始される。しかし、他の適当
な事象が図9の方法を開始するかもしれない。例えば、
分散オブジェクトは自己活性化するかもしれない。更
に、データポインタ置換ステップ310の実装の前に、
他の判定ステップが出現するかもしれない。例えば、以
前の活性化のデータオブジェクトを無視しなければなら
ない活性化環境かもしれない。この場合、異なるポイン
タが分散オブジェクトに返され、不変データを格納する
ための「新たな」位置とともにポインタが供給されるか
もしれない。したがって、提示された例は説明のためで
あって、制限するためではなく、本発明はここに示され
た詳細事項に限られるのではない。
【図面の簡単な説明】
【図1】従来技術のサーバントオブジェクトのインスタ
ンス変数のメモリ割り当ての説明図である。
【図2】オブジェクトコンストラクタのコンパイルに関
するパラダイムの説明図である。
【図3】本発明のサーバントオブジェクトのインスタン
ス変数のメモリ割り当ての説明図である。
【図4】プロセスの説明図である。
【図5】相互接続された種々のコンピュータを備えるコ
ンピュータネットワークシステムの構成図である。
【図6】図5におけるコンピュータの構成図である。
【図7】分散オブジェクトのインスタンスを作成する方
法のフローチャートである。
【図8】図7のステップ212の詳細フローチャートで
ある。
【図9】オブジェクトを活性化する方法のフローチャー
トである。
【図10】オブジェクトを削除する方法のフローチャー
トである。
【符号の説明】
12,16,18,20,22…コンピュータ、14…
ネットワーク接続、30…コンピュータ、32…中央処
理装置(CPU)、34…RAM、36…ROM、38
…大容量記憶装置、40…入出力源、100…コンピュ
ータプロセス、102…スレッド、104…メモリ、1
06…ファイル、108…オブジェクト、110…状
態、112…コード、150…サーバントオブジェク
ト、152…一時データ、154…データオブジェクト
ポインタ、158…データオブジェクト、162…不変
データオブジェクト、164…不変データベース。
フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06F 15/16 370 G06F 15/16 370N (72)発明者 アラン スナイダー アメリカ合衆国, カリフォルニア州 94306, パロ アルト, ブライアウッ ド ウェイ 4160

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 分散オブジェクトシステムで使用され
    る、透明性のある不変データサポートを有する分散オブ
    ジェクトを提供する、コンピュータに実装される方法で
    あって、 a)一時データを格納可能な関連データオブジェクト
    と、前記関連データオブジェクトを間接的に示すデータ
    オブジェクトポインタとを有し、データオブジェクトク
    ラスからデータオブジェクトを受け継ぐサーバントオブ
    ジェクトを提供するステップと、 b)不変データが格納される不変データオブジェクト
    と、前記不変データオブジェクトを間接的に示す不変デ
    ータオブジェクトポインタとを有する不変データ格納機
    構を提供するステップと、 c)前記データオブジェクトの値を判定するステップ
    と、 d)前記データオブジェクトポインタを前記サーバント
    オブジェクト内に配置し、前記データオブジェクトポイ
    ンタを前記不変データポインタで置き換えて、透明性の
    ある不変データサポートを有する分散オブジェクトを作
    成するステップと、 備えるコンピュータに実装される方法。
  2. 【請求項2】 前記不変データ格納機構は、前記不変デ
    ータオブジェクトと結び付いた不変データベースを備え
    る、請求項1記載のコンピュータに実装される方法。
  3. 【請求項3】 前記不変データ格納機構は、不変データ
    マネージャを備える、請求項2記載のコンピュータに実
    装される方法。
  4. 【請求項4】 前記判定するステップは、前記サーバン
    トオブジェクト上での機能を拡張し、前記データオブジ
    ェクトクラス内の前記データオブジェクトポインタを判
    定するステップを備える、請求項1記載のコンピュータ
    に実装される方法。
  5. 【請求項5】 前記配置するステップは、前記データオ
    ブジェクトポインタと同一の値を含むアドレス空間の位
    置を得るために、前記サーバントオブジェクトのメモリ
    位置を探査するステップを備える、請求項4記載のコン
    ピュータに実装される方法。
  6. 【請求項6】 前記配置するステップは、前記データオ
    ブジェクトの前記アドレスの唯一性を保証するために、
    前記サーバントオブジェクトの前記メモリ空間の全体を
    探査するステップを更に有する、請求項5記載のコンピ
    ュータに実装される方法。
  7. 【請求項7】 オブジェクトリクエストブローカとオブ
    ジェクトアダプタ機構とを使用して分散オブジェクトが
    通信する分散オブジェクトとクライアントが配置された
    メモリを有する、複数のネットワーク接続されたコンピ
    ュータを含む分散オブジェクトシステム上のコンピュー
    タのメモリ内に、前記分散オブジェクトが配置される、
    請求項1記載のコンピュータに実装される方法。
  8. 【請求項8】 前記分散オブジェクトシステム上のクラ
    イアントによる、前記サーバントオブジェクトの発動に
    応答して、請求項1のa)ないしd)のステップが実行
    される、請求項7記載のコンピュータに実装される方
    法。
  9. 【請求項9】 前記分散オブジェクト上での前記サーバ
    ントオブジェクトの作成および据付けの間に、請求項1
    のa)ないしd)のステップが実行される、請求項7記
    載のコンピュータに実装される方法。
  10. 【請求項10】 請求項1のコンピュータに実装される
    方法によって形成された、透明性のある不変データサポ
    ートを有する分散オブジェクト。
  11. 【請求項11】 透明性のある不変データサポートを有
    する分散オブジェクト作成するコンピュータシステムで
    あって、 a)データオブジェクトクラス中ヘデータスキーマをコ
    ンパイルするデータコンパイラと、 b)コンパイルされた実装中へ実装ファイルをコンパイ
    ルする実装コンパイラと、 c)一時データスペース、データオブジェクトポイン
    タ、およびデータオブジェクトを含み、前記データオブ
    ジェクトクラスから前記データオブジェクトポインタを
    継承するサーバントオブジェクトを作成可能なサーバン
    トオブジェクトコンストラクタを作成する最終段階コン
    パイラと、 d)不変データベースと前記不変データベースのイメー
    ジである不変データオブジェクトとを含む不変データス
    トレージ機構と、 e)前記データオブジェクトと前記データオブジェクト
    のアドレススペースとの値を見出すロケータ、および、
    前記アドレススペースの値を前記不変データオブジェク
    トを示すポインタ値とスワップする置換機構を含む透明
    性のある不変性機構とを備えるコンピュータシステム。
  12. 【請求項12】 前記不変データストレージ機構は、前
    記不変データオブジェクトポインタを提供する不変スト
    レージマネージャを備える、請求項11記載のコンピュ
    ータシステム。
  13. 【請求項13】 前記一時データスペース、前記データ
    オブジェクトポインタ、および前記データオブジェクト
    は、コンピュータ内の隣接領域を占める、請求項11記
    載のコンピュータシステム。
  14. 【請求項14】 前記ロケータは、前記データオブジェ
    クトポインタの値を判定する拡張機構と、前記サーバン
    トオブジェクトのメモリスペース内で前記データオブジ
    ェクトポインタの前記メモリアドレスを探す探査機構と
    を備える、請求項13記載のコンピュータシステム。
  15. 【請求項15】 オブジェクトリクエストブローカ機構
    およびオブジェクトアダプタ機構を使用して、通信を行
    う分散オブジェクトと、クライアントが置かれたメモリ
    を有する、ネットワーク接続された複数のコンピュータ
    を備える分散オブジェクトシステム上のいずれかのコン
    ピュータのメモリ内に、前記分散オブジェクトが置かれ
    る、請求項11記載のコンピュータシステム。
  16. 【請求項16】 前記透明性のある不変性機構は、前記
    サーバの発動に応答して活性状態とされる、請求項15
    記載のコンピュータシステム。
  17. 【請求項17】 前記透明性のある不変性機構は、前記
    サーバの作成に応答して活性状態とされる、請求項15
    記載のコンピュータシステム。
  18. 【請求項18】 請求項12記載のコンピュータシステ
    ムによって形成された、透明性のある不変データサポー
    トを有する分散オブジェクト。
  19. 【請求項19】 分散オブジェクトシステム上での使用
    に好適な分散オブジェクトであって、 一時データを格納する一時データスペースと、 データオブジェクトと、 データオブジェクトからの読み込み位置と、不変データ
    ベースのイメージである不変データオブジェクトへの書
    き込み位置とを間接的に示す不変データポインタと、 備える分散オブジェクト。
JP8077336A 1995-03-31 1996-03-29 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置 Pending JPH0997204A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/414770 1995-03-31
US08/414,770 US5692183A (en) 1995-03-31 1995-03-31 Methods and apparatus for providing transparent persistence in a distributed object operating environment

Publications (1)

Publication Number Publication Date
JPH0997204A true JPH0997204A (ja) 1997-04-08

Family

ID=23642891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8077336A Pending JPH0997204A (ja) 1995-03-31 1996-03-29 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置

Country Status (4)

Country Link
US (2) US5692183A (ja)
EP (1) EP0735465A1 (ja)
JP (1) JPH0997204A (ja)
CA (1) CA2171601A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518495A (ja) * 2002-10-31 2006-08-10 ロッキード マーティン コーポレーション 改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法
US8073974B2 (en) 2004-10-01 2011-12-06 Lockheed Martin Corporation Object oriented mission framework and system and method

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
GB2305271A (en) * 1995-09-15 1997-04-02 Ibm Proxy object recovery in an object-oriented environment
US5794250A (en) * 1995-10-20 1998-08-11 Ncr Corporation Method and apparatus for extending existing database management system for new data types
US6782538B1 (en) * 1995-12-14 2004-08-24 International Business Machines Corporation Object oriented information handling system including an extensible instance manager
WO1997022925A1 (en) * 1995-12-15 1997-06-26 Object Dynamics Corp. Method and system for constructing software components and systems as assemblies of independent parts
US6345311B1 (en) * 1995-12-27 2002-02-05 International Business Machines Corporation Method and system of dynamically moving objects between heterogeneous execution environments
US6374308B1 (en) * 1996-04-23 2002-04-16 Sun Microsystems, Inc. Method and apparatus for interactively connecting distributed objects to a graphic user interface
US6247039B1 (en) * 1996-05-17 2001-06-12 Sun Microsystems, Inc. Method and apparatus for disposing of objects in a multi-threaded environment
US5940616A (en) * 1996-05-31 1999-08-17 International Business Machines Corporation Tracker class for object-oriented programming environments
US5805887A (en) * 1996-05-31 1998-09-08 International Business Machines Corporation Universal pointer object
US6282580B1 (en) * 1996-07-02 2001-08-28 Sun Microsystems, Inc. Bridge providing communication between different implementations of object request brokers
US5860004A (en) * 1996-07-03 1999-01-12 Sun Microsystems, Inc. Code generator for applications in distributed object systems
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
US5920868A (en) * 1996-07-03 1999-07-06 Sun Microsystems, Inc. Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system
US5875335A (en) * 1996-09-30 1999-02-23 Apple Computer, Inc. Parameter marshaling techniques for dynamic object-oriented programming languages
US6018743A (en) * 1996-10-04 2000-01-25 International Business Machines Corporation Framework for object-oriented interface to record file data
US6647393B1 (en) 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US7136903B1 (en) 1996-11-22 2006-11-14 Mangosoft Intellectual Property, Inc. Internet-based shared file service with native PC client access and semantics and distributed access control
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US6047296A (en) * 1996-12-09 2000-04-04 Omnimark Technologies Corporation Comprehensive method of resolving nested forward references in electronic data streams within defined resolution scopes
US5794256A (en) * 1996-12-12 1998-08-11 Microsoft Corporation Pointer swizzling facility using three-state references to manage access to referenced objects
US5907707A (en) * 1997-01-14 1999-05-25 International Business Machines Corporation Object model for Java
US6006230A (en) * 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
US6687761B1 (en) * 1997-02-20 2004-02-03 Invensys Systems, Inc. Process control methods and apparatus with distributed object management
US5905987A (en) 1997-03-19 1999-05-18 Microsoft Corporation Method, data structure, and computer program product for object state storage in a repository
BR9806000A (pt) * 1997-06-17 2000-01-25 Purdue Pharma Lp Documento autodestrutivo e sistema de envio de mensagens por e-mail.
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
US5956730A (en) * 1997-08-15 1999-09-21 International Business Machines Corporation Legacy subclassing
US6216152B1 (en) * 1997-10-27 2001-04-10 Sun Microsystems, Inc. Method and apparatus for providing plug in media decoders
US6125364A (en) * 1997-11-06 2000-09-26 International Business Machines Corporation Flexible object persistence framework using data cursor objects loaded from superclasses
US6668257B1 (en) * 1997-11-06 2003-12-23 International Business Machines Corporation Migrating non-persistent objects when one or more of the superclass fields of the object are modified
US5978581A (en) * 1997-12-02 1999-11-02 Electronic Data Systems Corporation Object-oriented code generation system and method
US6023704A (en) * 1998-01-29 2000-02-08 International Business Machines Corporation Apparatus and method for swapping identities of two objects to reference the object information of the other
US6192368B1 (en) * 1998-02-11 2001-02-20 International Business Machines Corporation Apparatus and method for automatically propagating a change made to at least one of a plurality of objects to at least one data structure containing data relating to the plurality of objects
JPH11259284A (ja) * 1998-03-12 1999-09-24 Fujitsu Ltd オンラインプログラム更新システム及びプログラム更新用プログラムを記録したコンピュータ読み取り可能な記録媒体
US6446253B1 (en) * 1998-03-20 2002-09-03 Novell, Inc. Mechanism for achieving transparent network computing
US6330709B1 (en) * 1998-03-30 2001-12-11 International Business Machines Corporation Virtual machine implementation for shared persistent objects
US6256618B1 (en) * 1998-04-23 2001-07-03 Christopher Spooner Computer architecture using self-manipulating trees
US6973641B1 (en) * 1998-06-04 2005-12-06 Microsoft Corporation Persistent representations for complex data structures as interpreted programs
US6792606B2 (en) 1998-07-17 2004-09-14 International Business Machines Corporation Method and apparatus for object persistence
GB2341951A (en) * 1998-09-22 2000-03-29 Ibm Thin-client remote object execution
US6757713B1 (en) 1998-09-23 2004-06-29 John W. L. Ogilvie Method for including a self-removing indicator in a self-removing message
US6701347B1 (en) 1998-09-23 2004-03-02 John W. L. Ogilvie Method for including a self-removing code in a self-removing email message that contains an advertisement
EP1116126A4 (en) * 1998-09-23 2002-03-27 John W L Ogilvie SELF-DELETING ELECTRONIC MAIL
US6324569B1 (en) 1998-09-23 2001-11-27 John W. L. Ogilvie Self-removing email verified or designated as such by a message distributor for the convenience of a recipient
CA2248522C (en) * 1998-09-25 2002-01-29 Ibm Canada Limited-Ibm Canada Limitee Framework for representation and manipulation of record oriented data
US6928469B1 (en) 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6539425B1 (en) 1999-07-07 2003-03-25 Avaya Technology Corp. Policy-enabled communications networks
US6542900B1 (en) * 1999-10-04 2003-04-01 Sun Microsystems, Inc. Method and apparatus for distributed object mapping in a java language environment
US6308178B1 (en) 1999-10-21 2001-10-23 Darc Corporation System for integrating data among heterogeneous systems
US6684219B1 (en) * 1999-11-24 2004-01-27 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for building and maintaining an object-oriented geospatial database
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) * 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6457111B1 (en) * 1999-12-14 2002-09-24 International Business Machines Corporation Method and system for allocation of a persistence indicator for an object in an object-oriented environment
US6591277B2 (en) * 1999-12-27 2003-07-08 International Business Machines Corporation Dynamic object persistence
US6571252B1 (en) 2000-04-12 2003-05-27 International Business Machines Corporation System and method for managing persistent objects using a database system
US7031976B1 (en) 2000-05-26 2006-04-18 Sprint Communications Company L.P. Computer framework and method for isolating a business component from specific implementations of a datastore
US7246145B1 (en) * 2000-08-08 2007-07-17 Cisco Technology, Inc. Fully distributed, scalable infrastructure, communication system
US7685183B2 (en) * 2000-09-01 2010-03-23 OP40, Inc System and method for synchronizing assets on multi-tiered networks
US7689560B2 (en) 2000-10-13 2010-03-30 Miosoft Corporation Persistent data storage techniques
US7587428B2 (en) * 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
US7346842B1 (en) 2000-11-02 2008-03-18 Citrix Systems, Inc. Methods and apparatus for incorporating a partial page on a client
US20020105548A1 (en) 2000-12-12 2002-08-08 Richard Hayton Methods and apparatus for creating a user interface using property paths
US7197505B2 (en) * 2000-12-22 2007-03-27 Star Bridge Systems, Inc. Multi-dimensional recursive wavefront behavioral synthesis
US7146532B2 (en) * 2001-02-05 2006-12-05 Affiniti, Inc. Persistent session and data in transparently distributed objects
US7249190B2 (en) * 2001-02-09 2007-07-24 Comlet Technologies, Llc. Enhanced data exchange and presentation/communication system
US7797431B2 (en) * 2001-02-09 2010-09-14 Willard Case Enhanced data exchange and functionality control system and method
US7069540B1 (en) * 2001-07-02 2006-06-27 Unisys Corporation COM persistence model
US20030023949A1 (en) * 2001-07-06 2003-01-30 International Business Machines Corporation Storage administration
US20030046266A1 (en) * 2001-07-26 2003-03-06 Ward Mullins System, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
US7203700B1 (en) * 2001-08-31 2007-04-10 Oracle International Corporation Online instance addition and deletion in a multi-instance computer system
US6772954B2 (en) * 2001-10-09 2004-08-10 Activcard Ireland Limited Method of encoding information within directory files on an integrated circuit smart card
US6996825B2 (en) * 2001-12-27 2006-02-07 Sun Microsystems, Inc. Method and apparatus for efficient object sub-typing
US7000017B1 (en) * 2002-03-15 2006-02-14 Novell, Inc. System and method for distributing a selected object and for automatically distributing the objects that are associated with the selected object
US7149751B1 (en) 2002-03-15 2006-12-12 Novell, Inc. System and method for distributing selected objects from a source database to a destination database
US7203738B1 (en) 2002-03-15 2007-04-10 Novell, Inc. System and method for distributing application objects
US8135843B2 (en) 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
CA2409882A1 (en) * 2002-10-25 2004-04-25 Ibm Canada Limited-Ibm Canada Limitee Persistent data storage for metadata related to web service entities
US20050071809A1 (en) * 2003-09-29 2005-03-31 Greggory Pulley System and method for serializing objects in a compiled programming language
US20060177122A1 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Method and apparatus for particle manipulation using graphics processing
CN101495990B (zh) 2005-12-02 2011-09-14 思杰系统有限公司 用于提供从代理服务器到虚拟计算环境的身份验证证明以访问远程资源的方法和设备
US8438535B2 (en) * 2006-12-04 2013-05-07 Sap Ag Method and apparatus for persistent object tool
US7565376B2 (en) * 2006-12-22 2009-07-21 Sap Ag Dynamic assessment and persistence of object instances
US9990595B2 (en) * 2009-09-11 2018-06-05 Sap Se Modeled service endpoints in business process model and notation tools
JP4959781B2 (ja) * 2009-12-22 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト生成地点記録方法およびプログラム
US20130097136A1 (en) * 2011-10-17 2013-04-18 Pie Digital, Inc. Method and system for acessing domain specific in-memory database management system
US9355030B2 (en) * 2014-06-06 2016-05-31 International Business Machines Corporation Parallel garbage collection implemented in hardware

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
EP0408812B1 (en) * 1989-07-21 2000-03-01 Hewlett-Packard Company Distributed object based systems
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
DE69228621T2 (de) * 1991-02-25 1999-07-22 Hewlett Packard Co Objektorientiertes verteiltes Rechnersystem
DE69328800D1 (de) * 1992-03-24 2000-07-13 Canon Kk Verfahren und Verwaltung einer sowohl dauerhafte als auch zeitweilige Daten enthaltenden Datenstruktur
GB2276739A (en) * 1993-03-30 1994-10-05 Ibm System for storing persistent and non-persistent queued data.
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
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
US5555376A (en) * 1993-12-03 1996-09-10 Xerox Corporation Method for granting a user request having locational and contextual attributes consistent with user policies for devices having locational attributes consistent with the user request
US5467472A (en) * 1994-04-15 1995-11-14 Microsoft Corporation Method and system for generating and maintaining property sets with unique format identifiers
US5564048A (en) * 1994-06-15 1996-10-08 Lucent Technologies Inc. Object-oriented functionality class library for use in graphics programming
US5553282A (en) * 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006518495A (ja) * 2002-10-31 2006-08-10 ロッキード マーティン コーポレーション 改善された計算アーキテクチャを有する計算マシン、関連システム、並びに、方法
US8073974B2 (en) 2004-10-01 2011-12-06 Lockheed Martin Corporation Object oriented mission framework and system and method

Also Published As

Publication number Publication date
US5692183A (en) 1997-11-25
EP0735465A1 (en) 1996-10-02
CA2171601A1 (en) 1996-10-01
US5848419A (en) 1998-12-08

Similar Documents

Publication Publication Date Title
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
JP2915842B2 (ja) 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法
JP4070248B2 (ja) オブジェクト接続を動的に発生する方法及びシステム
EP0501610B1 (en) Object oriented distributed computing system
EP0733972B1 (en) Method and apparatus for managing relationships among objects in a distributed object environment
US6493719B1 (en) Method and system for scripting for system management information
JP3595340B2 (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
US5793965A (en) Method and apparatus for determining the type of an object in a distributed object system
KR100472807B1 (ko) 데이터베이스객체처리명령어들을삽입하기위하여데이터베이스액세스방법들을자동적으로수정하기위한시스템및그방법
US5864864A (en) Method and apparatus for providing transparent persistent data support to foreign data types
US6976261B2 (en) Method and apparatus for fast, local CORBA object references
JP2842714B2 (ja) アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法
US5721925A (en) Method for generically invoking operation in an object oriented repository
EP0474340A2 (en) Methods and apparatus for providing dynamic invocation of applicatons in a distributed heterogeneous environment
JPH03137730A (ja) オブジエクト指向コンピユータ・システム
JPH10133877A (ja) マーシャリングフレームワークを使用して分散オブジェクトネットワーク上に不変オブジェクトを格納するためのメソッドと装置
GB2308468A (en) Data processing systems and methods providing interoperability between data processing resources
JPH06110808A (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH0926925A (ja) オブジェクトの集合を管理する方法および装置
JPH0916503A (ja) コンピュータプロセスを管理する方法および装置
Kafura et al. ACT++ 2.0: A class library for concurrent programming in C++ using Actors
US20020016866A1 (en) Methods and apparatus for managing computer processes
EP0767434B1 (en) System and method for adding object services to a binary class in an object oriented system
Dewan et al. An object model for conventional operating systems
KR19990039270A (ko) 객체지향 데이터베이스 시스템의 영속 객체 관리 방법