JPH1091444A - 実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構 - Google Patents
実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構Info
- Publication number
- JPH1091444A JPH1091444A JP9170768A JP17076897A JPH1091444A JP H1091444 A JPH1091444 A JP H1091444A JP 9170768 A JP9170768 A JP 9170768A JP 17076897 A JP17076897 A JP 17076897A JP H1091444 A JPH1091444 A JP H1091444A
- Authority
- JP
- Japan
- Prior art keywords
- servant
- server
- subcontracts
- distributed
- representative
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 コンパイル時におけるサーバントクラ
ス、あるいは、インターフェースとの関連付けに代え
て、実行時にサブコントラクトを個々のサーバントに動
的に関連付けるための機構を提供すること。 【解決手段】 動的関連付けデータ構造200は、単一
サブコントラクトを示すサーバ代表クラス206、実行
時に生成されるサーバントオブジェクト220と関連付
けられるサーバント基底クラス204、実行時にサーバ
代表クラス206とサーバントオブジェクト220間に
リンク222を形成するためのリンク機構を備える。サ
ーバ代表クラス206は、機能性を唯一サブコントラク
トに対して提供する。実行時、サーバントオブジェクト
220はサーバント基底クラス204、あるいは、より
導出されたクラスから具象化される。サーバントオブジ
ェクト220はリンク機構を介してサブコントラクトに
より提供される機能性を使用する。
ス、あるいは、インターフェースとの関連付けに代え
て、実行時にサブコントラクトを個々のサーバントに動
的に関連付けるための機構を提供すること。 【解決手段】 動的関連付けデータ構造200は、単一
サブコントラクトを示すサーバ代表クラス206、実行
時に生成されるサーバントオブジェクト220と関連付
けられるサーバント基底クラス204、実行時にサーバ
代表クラス206とサーバントオブジェクト220間に
リンク222を形成するためのリンク機構を備える。サ
ーバ代表クラス206は、機能性を唯一サブコントラク
トに対して提供する。実行時、サーバントオブジェクト
220はサーバント基底クラス204、あるいは、より
導出されたクラスから具象化される。サーバントオブジ
ェクト220はリンク機構を介してサブコントラクトに
より提供される機能性を使用する。
Description
【0001】
【発明の属する技術分野】本発明は、一般的に、コンピ
ュータネットワークの分散オブジェクトシステム内にお
けるオブジェクト管理に関する。より詳細には、本発明
は、実行時にオブジェクトを備える分散オブジェクトシ
ステムによって提供される関連付けサービスに関する。
ュータネットワークの分散オブジェクトシステム内にお
けるオブジェクト管理に関する。より詳細には、本発明
は、実行時にオブジェクトを備える分散オブジェクトシ
ステムによって提供される関連付けサービスに関する。
【0002】
【従来の技術】オブジェクト指向プログラム言語、及び
システムの人気の高まりに伴い、分散オブジェクトシス
テムの開発はこれまで、これら分散システム中における
一般的なオブジェクトの生成、及び管理に関する新たな
可能性を追求してきている。特に、例えば、生成、活
性、削除等といったオブジェクトのライフサイクルを制
御する関数は、特定のプロトコル、あるいは、実行方法
を指示する特定の意味にしたがって実行され得る。しか
しながら、全オブジェクトについての自明な意味の単一
セットが存在するというよりは、しばしば、異なるアプ
リケーション要求を反映する幅広い範囲の可能性オブジ
ェクト意味が存在するように思われる。例えば、複製、
原子処理、オブジェクト移動、及び永続性といった特性
についての統合サポートを含む分散オブジェクトシステ
ムが存在する。しかし、最小限の特性だけを備える代わ
りに高性能に傾倒する分散オブジェクトシステムもまた
存在する。
システムの人気の高まりに伴い、分散オブジェクトシス
テムの開発はこれまで、これら分散システム中における
一般的なオブジェクトの生成、及び管理に関する新たな
可能性を追求してきている。特に、例えば、生成、活
性、削除等といったオブジェクトのライフサイクルを制
御する関数は、特定のプロトコル、あるいは、実行方法
を指示する特定の意味にしたがって実行され得る。しか
しながら、全オブジェクトについての自明な意味の単一
セットが存在するというよりは、しばしば、異なるアプ
リケーション要求を反映する幅広い範囲の可能性オブジ
ェクト意味が存在するように思われる。例えば、複製、
原子処理、オブジェクト移動、及び永続性といった特性
についての統合サポートを含む分散オブジェクトシステ
ムが存在する。しかし、最小限の特性だけを備える代わ
りに高性能に傾倒する分散オブジェクトシステムもまた
存在する。
【0003】この多様化に対する一つの可能性ある解決
策は、全ての可能特性を含むオブジェクトのための単一
分散オブジェクトシステムを発明することである。不都
合なことに、可能な特性のリストは、拡張し続け、全特
性が互換性を必要とするわけではない。例えば、高性能
システムは、自身のオブジェクトが永続性、原子構成の
特性についてのサポートを含むことを望まないであろ
う。さらに、しばしば、いくつかの異なる、所定の意味
セットの実行方法が存在する。アプリケーションが、新
規な、また、改良された特性を活用できない単一システ
ムを有すれば、アプリケーションの現実のニーズを良く
反映し得る。例えば、信頼性を高めるために、オブジェ
クト複製特性をサポートすることが要求され得る。しか
しながら、単に複製済オブジェクトと対話するために追
加作業を実行するクライアントアプリケーションコード
を有することは好ましくない。したがって、オブジェク
トの呼出機構の一部として、「隠れて」複製をサポート
することが好ましい。多くの異なる複製の実行方法が存
在するが、他の特性を絶対的に拒絶する一方で、いくつ
かの特定特性セットについてのサポートを組み込むこと
は好ましくない。
策は、全ての可能特性を含むオブジェクトのための単一
分散オブジェクトシステムを発明することである。不都
合なことに、可能な特性のリストは、拡張し続け、全特
性が互換性を必要とするわけではない。例えば、高性能
システムは、自身のオブジェクトが永続性、原子構成の
特性についてのサポートを含むことを望まないであろ
う。さらに、しばしば、いくつかの異なる、所定の意味
セットの実行方法が存在する。アプリケーションが、新
規な、また、改良された特性を活用できない単一システ
ムを有すれば、アプリケーションの現実のニーズを良く
反映し得る。例えば、信頼性を高めるために、オブジェ
クト複製特性をサポートすることが要求され得る。しか
しながら、単に複製済オブジェクトと対話するために追
加作業を実行するクライアントアプリケーションコード
を有することは好ましくない。したがって、オブジェク
トの呼出機構の一部として、「隠れて」複製をサポート
することが好ましい。多くの異なる複製の実行方法が存
在するが、他の特性を絶対的に拒絶する一方で、いくつ
かの特定特性セットについてのサポートを組み込むこと
は好ましくない。
【0004】分散オブジェクトシステムが備え得る、幅
広い特性、あるいは、オブジェクト機構が存在する。例
えば、分散オブジェクトシステムは、複製、原子処理、
オブジェクト移動、永続性、ネーミング、事象通知、関
連付け、サーバ起動、クリーンシャットダウン、処理、
セキュリティ、及びフィルタ(圧縮、暗号化、追跡、手
直し等)の権能付与といった特性を備え得る。これらの
特性はまた、サービスと呼ばれ、また、分散オブジェク
トシステムの一部としてオブジェクトサービスモジュー
ルによって提供され得る。異なるアプリケーションにつ
いてこれら異なる特性の柔軟なサブセットを備えること
ができず、言うまでもなくアプリケーション内に異なる
オブジェクトを備えることができなかったので、従来の
分散オブジェクトシステムは、問題点を有していた。従
来のシステムは、固定されたこれら特性セットだけを備
えていた。
広い特性、あるいは、オブジェクト機構が存在する。例
えば、分散オブジェクトシステムは、複製、原子処理、
オブジェクト移動、永続性、ネーミング、事象通知、関
連付け、サーバ起動、クリーンシャットダウン、処理、
セキュリティ、及びフィルタ(圧縮、暗号化、追跡、手
直し等)の権能付与といった特性を備え得る。これらの
特性はまた、サービスと呼ばれ、また、分散オブジェク
トシステムの一部としてオブジェクトサービスモジュー
ルによって提供され得る。異なるアプリケーションにつ
いてこれら異なる特性の柔軟なサブセットを備えること
ができず、言うまでもなくアプリケーション内に異なる
オブジェクトを備えることができなかったので、従来の
分散オブジェクトシステムは、問題点を有していた。従
来のシステムは、固定されたこれら特性セットだけを備
えていた。
【0005】この不足分は、サブコントラクトの概念を
通じて取り扱われ得る。サブコントラクト、及びその使
用については、米国特許出願番号08/554,794
に記載されている。サブコントラクトの概念もまた、19
93年Sun Microsystems Laboratories, Inc.出版、G. Ha
milton, M. Powell 及びJ. Mitchell共著の「Subcontra
ct: A Flexible Base for Distributed Programming」
に記載されている。サブコントラクト、及びその関連機
能性は、多くの異なる方法によって実行され得る。例と
して、その実施例の一つをここで説明する。
通じて取り扱われ得る。サブコントラクト、及びその使
用については、米国特許出願番号08/554,794
に記載されている。サブコントラクトの概念もまた、19
93年Sun Microsystems Laboratories, Inc.出版、G. Ha
milton, M. Powell 及びJ. Mitchell共著の「Subcontra
ct: A Flexible Base for Distributed Programming」
に記載されている。サブコントラクト、及びその関連機
能性は、多くの異なる方法によって実行され得る。例と
して、その実施例の一つをここで説明する。
【0006】サブコントラクトの使用を通じて、アプリ
ケーションは、(特に)上記各特性のどの特性の利用を
望んでいるかを明細に記することができ、あるいは、ア
プリケーション内の異なるオブジェクトによって使用さ
れ得る異なる特性グループさえも明細に記することがで
きる。これらの特性のグループ、または、入れ替えは、
サブコントラクトによって実行される。したがって、ア
プリケーション内の各オブジェクトは、特定のサブコン
トラクトを利用し得る。要求される特性グループは、こ
れらの特性を明細に記すサービスリストの品質によって
代表され得る。そして、サブコントラクトは、分散オブ
ジェクトアプリケーション中における特定のサービスの
質と矛盾しない機能性を備え、また、そのサブコントラ
クトに関連する他の機能性を備え得る。オブジェクト
は、所定時間に、それに関連する1つのサブコントラク
トを有し得る。サブコントラクトは、オブジェクトイン
ターフェース、及びオブジェクト実装から独立してい
る。したがって、オブジェクト実装による存在サブコン
トラクトの選択、及び、使用のどちらをも容易にし、あ
るいは、新規オブジェクトの実行を容易にする。相応じ
て、アプリケーションレベルのプログラマは、特定のオ
ブジェクトについて使用される特定のサブコントラクト
を知っている必要はない。オブジェクトに関連するサブ
コントラクトは、オブジェクト実行の仕事が、オブジェ
クト機構を実行する仕事、あるいは、システムによって
供給される特性から独立することを許容する。サブコン
トラクトはまた、いくつかのオブジェクト呼出特性がシ
ステムのトランスポート層から切り離されることを可能
にし、この結果、トランスポート層が異なるシステムと
機能し得る。
ケーションは、(特に)上記各特性のどの特性の利用を
望んでいるかを明細に記することができ、あるいは、ア
プリケーション内の異なるオブジェクトによって使用さ
れ得る異なる特性グループさえも明細に記することがで
きる。これらの特性のグループ、または、入れ替えは、
サブコントラクトによって実行される。したがって、ア
プリケーション内の各オブジェクトは、特定のサブコン
トラクトを利用し得る。要求される特性グループは、こ
れらの特性を明細に記すサービスリストの品質によって
代表され得る。そして、サブコントラクトは、分散オブ
ジェクトアプリケーション中における特定のサービスの
質と矛盾しない機能性を備え、また、そのサブコントラ
クトに関連する他の機能性を備え得る。オブジェクト
は、所定時間に、それに関連する1つのサブコントラク
トを有し得る。サブコントラクトは、オブジェクトイン
ターフェース、及びオブジェクト実装から独立してい
る。したがって、オブジェクト実装による存在サブコン
トラクトの選択、及び、使用のどちらをも容易にし、あ
るいは、新規オブジェクトの実行を容易にする。相応じ
て、アプリケーションレベルのプログラマは、特定のオ
ブジェクトについて使用される特定のサブコントラクト
を知っている必要はない。オブジェクトに関連するサブ
コントラクトは、オブジェクト実行の仕事が、オブジェ
クト機構を実行する仕事、あるいは、システムによって
供給される特性から独立することを許容する。サブコン
トラクトはまた、いくつかのオブジェクト呼出特性がシ
ステムのトランスポート層から切り離されることを可能
にし、この結果、トランスポート層が異なるシステムと
機能し得る。
【0007】サブコントラクトの有用性は、全オブジェ
クト作成者が、必ずしもオブジェクト実装機構を熟知す
る必要なくして、異なる範囲のオブジェクト機構(ある
いは、特性)を選択することを許可する。サブコントラ
クトが備える特性セットは、分散環境内において、制御
を取得するための正しいレベルにある。設計によって、
遠隔オブジェクト上で採られる全てのキー動作は、何ら
かのオブジェクトのサブコントラクトを含む。例えば、
オブジェクト生成、オブジェクト参照生成、オブジェク
ト非活性化及びリボーク、及びオブジェクトに対する参
照の決定のような動作は、全てオブジェクトのサブコン
トラクトを含んでいる。サブコントラクトは、異なるオ
ブジェクトについての異なるポリシーを接続するための
有効な方法を備え、また、基本システムによって備えら
れなければならない機能性の削減に成功する。
クト作成者が、必ずしもオブジェクト実装機構を熟知す
る必要なくして、異なる範囲のオブジェクト機構(ある
いは、特性)を選択することを許可する。サブコントラ
クトが備える特性セットは、分散環境内において、制御
を取得するための正しいレベルにある。設計によって、
遠隔オブジェクト上で採られる全てのキー動作は、何ら
かのオブジェクトのサブコントラクトを含む。例えば、
オブジェクト生成、オブジェクト参照生成、オブジェク
ト非活性化及びリボーク、及びオブジェクトに対する参
照の決定のような動作は、全てオブジェクトのサブコン
トラクトを含んでいる。サブコントラクトは、異なるオ
ブジェクトについての異なるポリシーを接続するための
有効な方法を備え、また、基本システムによって備えら
れなければならない機能性の削減に成功する。
【0008】しかしながら、いくつかの分散オブジェク
トシステムにおける1つの問題点は、サーバントオブジ
ェクト自身による、これらの動作の直接の呼び出しが不
可能になっていることである。例えば、サーバントは、
それ自身では、「非活性化」、「リボーク」、「参照非
残存の予期」、「オブジェクト参照の取得」を呼び出す
ことができない。この欠如は、これらシステムの柔軟性
を低下させた。また、いくつかの分散オブジェクトシス
テムにおける他の重大な問題点は、それにより特定のサ
ブコントラクトが特定のオブジェクトと関連付けられる
機構が、十分には柔軟でなくなってしまうことである。
すなわち、これらの機構は、特定のサブコントラクトを
オブジェクト定義、あるいは、オブジェクトクラスと関
連付け得るが、サブコントラクトをクラスのインスタン
ス、あるいは、オブジェクトそれ自身と関連付けること
は不可能になっている。この欠如は、図4を参照するこ
とによりより判りやすく説明される。
トシステムにおける1つの問題点は、サーバントオブジ
ェクト自身による、これらの動作の直接の呼び出しが不
可能になっていることである。例えば、サーバントは、
それ自身では、「非活性化」、「リボーク」、「参照非
残存の予期」、「オブジェクト参照の取得」を呼び出す
ことができない。この欠如は、これらシステムの柔軟性
を低下させた。また、いくつかの分散オブジェクトシス
テムにおける他の重大な問題点は、それにより特定のサ
ブコントラクトが特定のオブジェクトと関連付けられる
機構が、十分には柔軟でなくなってしまうことである。
すなわち、これらの機構は、特定のサブコントラクトを
オブジェクト定義、あるいは、オブジェクトクラスと関
連付け得るが、サブコントラクトをクラスのインスタン
ス、あるいは、オブジェクトそれ自身と関連付けること
は不可能になっている。この欠如は、図4を参照するこ
とによりより判りやすく説明される。
【0009】図4は、どのようにして1つの特定分散オ
ブジェクトアプリケーションが実行され得るかの一例を
図示している。このアプリケーションでは、開発者は、
インターフェース定義122によってオブジェクト型を
既に定義している。このインターフェース定義は、当業
者によく知られているインターフェース定義言語(ID
L)によって実行され得る。インターフェースは、オブ
ジェクト型についての入手可能な動作、及び属性を明細
に記する。例えば、インターフェースカウンタ122
は、1つの動作「インクリメント」及び1つの属性「最
大」を含むオブジェクト型を明細に記する。開発者が、
特定のサブコントラクトXのサービスを利用する、この
オブジェクト型のオブジェクト(インスタンス、又はサ
ーバントとも呼ばれる)を生成したいと望む場合には、
開発者は、そのオブジェクト型についてのクラス定義中
においてこのサブコントラクトXを明細に記さなければ
ならない。ここに示されるように、開発者は、サブコン
トラクトXをサーバントクラスA124に明細に記して
いる。したがって、実行時に生成される2つのサーバン
ト、サーバントA1(128)、サーバントA2(13
0)は、サーバントクラスAによって裏付けられるそれ
らの効力によってサブコントラクトXと関連付けられる
機能性を有す。問題点は、このサブコントラクトXがサ
ーバントクラスAのコンパイル時前のアプリケーション
開発中に関連付けられなければならないことである。
ブジェクトアプリケーションが実行され得るかの一例を
図示している。このアプリケーションでは、開発者は、
インターフェース定義122によってオブジェクト型を
既に定義している。このインターフェース定義は、当業
者によく知られているインターフェース定義言語(ID
L)によって実行され得る。インターフェースは、オブ
ジェクト型についての入手可能な動作、及び属性を明細
に記する。例えば、インターフェースカウンタ122
は、1つの動作「インクリメント」及び1つの属性「最
大」を含むオブジェクト型を明細に記する。開発者が、
特定のサブコントラクトXのサービスを利用する、この
オブジェクト型のオブジェクト(インスタンス、又はサ
ーバントとも呼ばれる)を生成したいと望む場合には、
開発者は、そのオブジェクト型についてのクラス定義中
においてこのサブコントラクトXを明細に記さなければ
ならない。ここに示されるように、開発者は、サブコン
トラクトXをサーバントクラスA124に明細に記して
いる。したがって、実行時に生成される2つのサーバン
ト、サーバントA1(128)、サーバントA2(13
0)は、サーバントクラスAによって裏付けられるそれ
らの効力によってサブコントラクトXと関連付けられる
機能性を有す。問題点は、このサブコントラクトXがサ
ーバントクラスAのコンパイル時前のアプリケーション
開発中に関連付けられなければならないことである。
【0010】例えば、開発者が、異なるサブコントラク
トYを実行する、いくつかのオブジェクト型サーバント
の生成をも望む場合には、1つのサブコントラクトだけ
が所定のサーバントクラスに関連付けされ得るので、開
発者は、全く新規なサーバントクラスを生成しなければ
ならない。ここに図示されるように、開発者は、インタ
ーフェースカウンタを実行する異なるサーバントクラス
126を既に生成している。サーバントクラスBは、サ
ブコントラクトXの代えてサブコントラクトYと関連付
けられる点を除いてサーバントクラスAと同一である。
この方法では、サーバントB1(132)は、サブコン
トラクトYと関連付けられる機能性により実行時に裏付
けされ得る。問題点は、異なるサブコントラクトを利用
するため開発者が所定のインターフェースの複数サーバ
ントを望む場合、開発者は、望まれる各サブコントラク
トについての異なるサーバントクラスを記載し、あるい
は、明細に記さなければならないところにある。この余
分なコーディングは、時間を浪費し、無駄である。さら
に、サブコントラクトは、コンパイル時、及び非実行時
においてだけサーバントと関連付けられ得るので、シス
テムの柔軟性が低下する。またいくつかのシステムで
は、さらに柔軟性が失われる。いくつかのシステムは、
オブジェクトのインターフェース中に明細に記されたサ
ブコントラクトを必要とし、この結果、サーバントオブ
ジェクトについての要求されるサブコントラクトの各型
用インターフェースを備えるために、不必要な複製が要
求される。
トYを実行する、いくつかのオブジェクト型サーバント
の生成をも望む場合には、1つのサブコントラクトだけ
が所定のサーバントクラスに関連付けされ得るので、開
発者は、全く新規なサーバントクラスを生成しなければ
ならない。ここに図示されるように、開発者は、インタ
ーフェースカウンタを実行する異なるサーバントクラス
126を既に生成している。サーバントクラスBは、サ
ブコントラクトXの代えてサブコントラクトYと関連付
けられる点を除いてサーバントクラスAと同一である。
この方法では、サーバントB1(132)は、サブコン
トラクトYと関連付けられる機能性により実行時に裏付
けされ得る。問題点は、異なるサブコントラクトを利用
するため開発者が所定のインターフェースの複数サーバ
ントを望む場合、開発者は、望まれる各サブコントラク
トについての異なるサーバントクラスを記載し、あるい
は、明細に記さなければならないところにある。この余
分なコーディングは、時間を浪費し、無駄である。さら
に、サブコントラクトは、コンパイル時、及び非実行時
においてだけサーバントと関連付けられ得るので、シス
テムの柔軟性が低下する。またいくつかのシステムで
は、さらに柔軟性が失われる。いくつかのシステムは、
オブジェクトのインターフェース中に明細に記されたサ
ブコントラクトを必要とし、この結果、サーバントオブ
ジェクトについての要求されるサブコントラクトの各型
用インターフェースを備えるために、不必要な複製が要
求される。
【0011】
【発明が解決しようとする課題】本発明は、上記した従
来技術の問題点を解決するためになされたものであり、
コンパイル時におけるサーバントクラス、あるいは、イ
ンターフェースとの関連付けに代えて、実行時にサブコ
ントラクトを個々のサーバント(オブジェクトインスタ
ンス)に動的に関連付けるための機構を提供することを
目的とする。また、種々のオブジェクトライフサイクル
機能と互換性を有する機構を提供することを目的とす
る。
来技術の問題点を解決するためになされたものであり、
コンパイル時におけるサーバントクラス、あるいは、イ
ンターフェースとの関連付けに代えて、実行時にサブコ
ントラクトを個々のサーバント(オブジェクトインスタ
ンス)に動的に関連付けるための機構を提供することを
目的とする。また、種々のオブジェクトライフサイクル
機能と互換性を有する機構を提供することを目的とす
る。
【0012】
【課題を解決するための手段】本発明の一形態は、実行
時にサービス従属代表をサーバントオブジェクトと動的
に関連付けるための関連付け機構データ構造を記録した
記録媒体に関する。この関連付け機構データ構造は、実
行時以前に存在し、実行時には動的関連付けを実行する
ために用いられる。このデータ構造は、異なるサブコン
トラクトを組み込む分散オブジェクトコンピューティン
グシステムにおいて用いられる。このデータ構造は記録
媒体に記録されており、複数のサブコントラクトの内の
1つのサブコントラクトを代表する少なくとも1つのサ
ーバ代表クラスを備えている。このサーバ代表クラスは
機能性を唯一、複数のサブコントラクトの内の1つのサ
ブコントラクトに提供するために配置されている。また
データ構造は、実行時に生成されるサーバントオブジェ
クトと関連付けられるために配置される少なくとも1つ
のサーバント基底クラスを備えている。すなわち、実行
時、サーバントオブジェクトは、サーバント基底クラ
ス、あるいは、導出クラスから具象化される。加えて、
サーバントオブジェクトが複数のサブコントラクトの内
の1つのサブコントラクトにより提供される機能性を使
用し得るよう、実行時に前記サーバ代表クラスと選択さ
れたサーバントオブジェクトの1つとの間に実行時リン
クを形成するためにリンク機構が配置されている。この
一形態では、サーバ代表クラスから具象化されたサーバ
代表オブジェクトがリンクを形成するために用いられ
る。
時にサービス従属代表をサーバントオブジェクトと動的
に関連付けるための関連付け機構データ構造を記録した
記録媒体に関する。この関連付け機構データ構造は、実
行時以前に存在し、実行時には動的関連付けを実行する
ために用いられる。このデータ構造は、異なるサブコン
トラクトを組み込む分散オブジェクトコンピューティン
グシステムにおいて用いられる。このデータ構造は記録
媒体に記録されており、複数のサブコントラクトの内の
1つのサブコントラクトを代表する少なくとも1つのサ
ーバ代表クラスを備えている。このサーバ代表クラスは
機能性を唯一、複数のサブコントラクトの内の1つのサ
ブコントラクトに提供するために配置されている。また
データ構造は、実行時に生成されるサーバントオブジェ
クトと関連付けられるために配置される少なくとも1つ
のサーバント基底クラスを備えている。すなわち、実行
時、サーバントオブジェクトは、サーバント基底クラ
ス、あるいは、導出クラスから具象化される。加えて、
サーバントオブジェクトが複数のサブコントラクトの内
の1つのサブコントラクトにより提供される機能性を使
用し得るよう、実行時に前記サーバ代表クラスと選択さ
れたサーバントオブジェクトの1つとの間に実行時リン
クを形成するためにリンク機構が配置されている。この
一形態では、サーバ代表クラスから具象化されたサーバ
代表オブジェクトがリンクを形成するために用いられ
る。
【0013】本発明の他の形態では、実行時、サーバオ
ブジェクトをサブコントラクトにより供給される機能性
に対して動的にリンクするための引数が存在する。この
実行時引数は、複数のサブコントラクトを組み込む分散
オブジェクトコンピューティングシステムにおいて使用
するための記録媒体に記録されている。実行時引数は、
分散オブジェクトのインスタンスの型を採るサーバント
オブジェクト、及び、複数のサブコントラクトの内の1
つのサブコントラクトを代表するサーバ代表オブジェク
トを備える。サーバ代表オブジェクトは、サーバ代表ク
ラスを使用して機能性を唯一、複数のサブコントラクト
の内の1つのサブコントラクトに提供するために配置さ
れるとともに、サーバントオブジェクトと関連付けられ
ている。さらに、実行時引数は、サーバントオブジェク
トがサーバ代表オブジェクトによって提供される機能性
にアクセスすることを許容する、サーバ代表オブジェク
トとサーバントオブジェクトとの間のリンクを備える。
この一形態では、このリンクは、サーバントオブジェク
トからサーバ代表オブジェクトへの位置標識子の形式を
採る。
ブジェクトをサブコントラクトにより供給される機能性
に対して動的にリンクするための引数が存在する。この
実行時引数は、複数のサブコントラクトを組み込む分散
オブジェクトコンピューティングシステムにおいて使用
するための記録媒体に記録されている。実行時引数は、
分散オブジェクトのインスタンスの型を採るサーバント
オブジェクト、及び、複数のサブコントラクトの内の1
つのサブコントラクトを代表するサーバ代表オブジェク
トを備える。サーバ代表オブジェクトは、サーバ代表ク
ラスを使用して機能性を唯一、複数のサブコントラクト
の内の1つのサブコントラクトに提供するために配置さ
れるとともに、サーバントオブジェクトと関連付けられ
ている。さらに、実行時引数は、サーバントオブジェク
トがサーバ代表オブジェクトによって提供される機能性
にアクセスすることを許容する、サーバ代表オブジェク
トとサーバントオブジェクトとの間のリンクを備える。
この一形態では、このリンクは、サーバントオブジェク
トからサーバ代表オブジェクトへの位置標識子の形式を
採る。
【0014】他の形態は、上記データ構造を使用する方
法、及び装置に関する。一つの局面は、分散オブジェク
トの管理に使用するための複数のサブコントラクトを備
える分散オブジェクトコンピューティングシステムにお
いて使用するための分散サーバントオブジェクトの生成
方法である。この方法は、種々のステップを含む。一つ
のステップは、複数のサブコントラクトの内の1つのサ
ブコントラクトを識別するサーバントクラス名、及びオ
ブジェクトアダプタデリゲートを受け取ることを備え
る。他のステップは、受け取ったサーバントクラス名に
応じてサーバントオブジェクトを具象化する。次に、オ
ブジェクトアダプタデリゲートの生成メソッドは、サー
バ代表オブジェクトを生成するために、オブジェクトア
ダプタデリゲートの生成メソッドを呼び出しする。この
サーバ代表オブジェクトは、オブジェクトアダプタデリ
ゲートによって識別される複数のサブコントラクトの内
の1つのサブコントラクトに対して機能性を唯一提供す
るために配置される。最後に、生成されたサーバ代表オ
ブジェクトがサーバントオブジェクトと関連付けられ
る。したがって、サーバントオブジェクトは、サーバ代
表を使用して入手可能な複数のサブコントラクトの内の
1つのサブコントラクトによって提供される機能性を使
用することができる。
法、及び装置に関する。一つの局面は、分散オブジェク
トの管理に使用するための複数のサブコントラクトを備
える分散オブジェクトコンピューティングシステムにお
いて使用するための分散サーバントオブジェクトの生成
方法である。この方法は、種々のステップを含む。一つ
のステップは、複数のサブコントラクトの内の1つのサ
ブコントラクトを識別するサーバントクラス名、及びオ
ブジェクトアダプタデリゲートを受け取ることを備え
る。他のステップは、受け取ったサーバントクラス名に
応じてサーバントオブジェクトを具象化する。次に、オ
ブジェクトアダプタデリゲートの生成メソッドは、サー
バ代表オブジェクトを生成するために、オブジェクトア
ダプタデリゲートの生成メソッドを呼び出しする。この
サーバ代表オブジェクトは、オブジェクトアダプタデリ
ゲートによって識別される複数のサブコントラクトの内
の1つのサブコントラクトに対して機能性を唯一提供す
るために配置される。最後に、生成されたサーバ代表オ
ブジェクトがサーバントオブジェクトと関連付けられ
る。したがって、サーバントオブジェクトは、サーバ代
表を使用して入手可能な複数のサブコントラクトの内の
1つのサブコントラクトによって提供される機能性を使
用することができる。
【0015】他の局面は、分散オブジェクトの管理に使
用するための複数のサブコントラクトを備える分散オブ
ジェクトコンピューティングシステムにおいて使用する
ための分散サーバントオブジェクトのリボーク方法であ
る。先ず、サーバントオブジェクトに関連するサーバン
トリボークメソッドをサーバントオブジェクトにより呼
び出す。このサーバントリボークメソッドは、サーバン
トオブジェクトによって呼び出しされる。次に、サーバ
代表オブジェクトに関連するサーバ代表リボークメソッ
ドが呼び出しされる。このサーバ代表オブジェクトは、
複数のサブコントラクトの内の1つのサブコントラクト
に対して機能性を唯一提供するために配置される。最後
に、呼び出しされたサーバ代表リボークメソッドを使用
してサーバントオブジェクトがリボークされる。 他の
局面は、分散オブジェクトの管理に使用するための複数
のサブコントラクトを備える分散オブジェクトコンピュ
ーティングシステムにおいてクライアントにより使用さ
れるサーバントオブジェクトのオブジェクト参照の生成
方法である。先ず、サーバントオブジェクトの特定超ク
ラスについての取得オブジェクト参照要求を受け取る。
この要求は、サーバントオブジェクトから発生する。次
に、サーバ代表オブジェクトに関連するサーバ代表オブ
ジェクトが識別される。このサーバ代表オブジェクト
は、複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される。
他のステップでは、サーバ代表オブジェクトに関連する
取得オブジェクト参照メソッドが呼び出しされ、また、
取得オブジェクト参照メソッドにより、サーバントオブ
ジェクトに対するファットポインタが生成される。最後
に、それを特定超クラスに関連付けるためにファットポ
インタを広げる。
用するための複数のサブコントラクトを備える分散オブ
ジェクトコンピューティングシステムにおいて使用する
ための分散サーバントオブジェクトのリボーク方法であ
る。先ず、サーバントオブジェクトに関連するサーバン
トリボークメソッドをサーバントオブジェクトにより呼
び出す。このサーバントリボークメソッドは、サーバン
トオブジェクトによって呼び出しされる。次に、サーバ
代表オブジェクトに関連するサーバ代表リボークメソッ
ドが呼び出しされる。このサーバ代表オブジェクトは、
複数のサブコントラクトの内の1つのサブコントラクト
に対して機能性を唯一提供するために配置される。最後
に、呼び出しされたサーバ代表リボークメソッドを使用
してサーバントオブジェクトがリボークされる。 他の
局面は、分散オブジェクトの管理に使用するための複数
のサブコントラクトを備える分散オブジェクトコンピュ
ーティングシステムにおいてクライアントにより使用さ
れるサーバントオブジェクトのオブジェクト参照の生成
方法である。先ず、サーバントオブジェクトの特定超ク
ラスについての取得オブジェクト参照要求を受け取る。
この要求は、サーバントオブジェクトから発生する。次
に、サーバ代表オブジェクトに関連するサーバ代表オブ
ジェクトが識別される。このサーバ代表オブジェクト
は、複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される。
他のステップでは、サーバ代表オブジェクトに関連する
取得オブジェクト参照メソッドが呼び出しされ、また、
取得オブジェクト参照メソッドにより、サーバントオブ
ジェクトに対するファットポインタが生成される。最後
に、それを特定超クラスに関連付けるためにファットポ
インタを広げる。
【0016】他の局面は、分散オブジェクトの管理に使
用するための複数のサブコントラクトを備える分散オブ
ジェクトコンピューティングシステムにおける分散サー
バントオブジェクトの非活性化方法である。先ず、サー
バントオブジェクトに関連するサーバント非活性化メソ
ッドが呼び出しされる。このサーバント非活性化メソッ
ドは、サーバントオブジェクトにより呼び出しされる。
次に、サーバ代表オブジェクトに関連するサーバ代表非
活性化メソッドが呼び出しされる。このサーバ代表オブ
ジェクトは、複数のサブコントラクトの内の1つのサブ
コントラクトに対して機能性を唯一提供するために配置
される。最後に、サーバ代表非活性化メソッドを使用し
てサーバントオブジェクトが非活性化される。
用するための複数のサブコントラクトを備える分散オブ
ジェクトコンピューティングシステムにおける分散サー
バントオブジェクトの非活性化方法である。先ず、サー
バントオブジェクトに関連するサーバント非活性化メソ
ッドが呼び出しされる。このサーバント非活性化メソッ
ドは、サーバントオブジェクトにより呼び出しされる。
次に、サーバ代表オブジェクトに関連するサーバ代表非
活性化メソッドが呼び出しされる。このサーバ代表オブ
ジェクトは、複数のサブコントラクトの内の1つのサブ
コントラクトに対して機能性を唯一提供するために配置
される。最後に、サーバ代表非活性化メソッドを使用し
てサーバントオブジェクトが非活性化される。
【0017】
「概観」本発明は分散オブジェクトシステムに関する発
明であり、また、添付の図面中に図示されているいくつ
かの好適な発明の実施の形態を参照して説明される。本
発明は、CORBA、あるいは、この他のあらゆる好適
な仕様の下、定義されるあらゆる好適な分散オブジェク
トシステムのコンテキスト中に実行され得る。しかしな
がら、説明の都合上、本発明に係る発明の実施の形態
は、先ず、1995年7月付け、改訂第2.0版、オブ
ジェクト管理グループ(OMG)に基づくCORBA仕
様の下、実行される、オブジェクト要求ブローカ(OR
B)のコンテキスト中に記述される。図1は、本発明に
係る発明の実施の形態の実行に好適である、代表的な分
散オブジェクトシステムの全体構成を概略的に図示す
る。図2は、クライアントからサーバントオブジェクト
への要求が3段階ディスパッチ機構を含むそのような構
成中を流れる際に採り得るいくつかのフローパスを図示
する。図3は、サーバントオブジェクトを参照するため
にクライアントによって使用され得る1つのオブジェク
ト参照データ構造を図示する。
明であり、また、添付の図面中に図示されているいくつ
かの好適な発明の実施の形態を参照して説明される。本
発明は、CORBA、あるいは、この他のあらゆる好適
な仕様の下、定義されるあらゆる好適な分散オブジェク
トシステムのコンテキスト中に実行され得る。しかしな
がら、説明の都合上、本発明に係る発明の実施の形態
は、先ず、1995年7月付け、改訂第2.0版、オブ
ジェクト管理グループ(OMG)に基づくCORBA仕
様の下、実行される、オブジェクト要求ブローカ(OR
B)のコンテキスト中に記述される。図1は、本発明に
係る発明の実施の形態の実行に好適である、代表的な分
散オブジェクトシステムの全体構成を概略的に図示す
る。図2は、クライアントからサーバントオブジェクト
への要求が3段階ディスパッチ機構を含むそのような構
成中を流れる際に採り得るいくつかのフローパスを図示
する。図3は、サーバントオブジェクトを参照するため
にクライアントによって使用され得る1つのオブジェク
ト参照データ構造を図示する。
【0018】分散オブジェクトシステム10は、一般的
に、図1に概念的に図示されているオブジェクト要求ブ
ローカ(ORB)11を含む。ORB11は、以下に図
2を参照して説明するように、クライアントからサーバ
ント(目標オブジェクト)への呼出を配信するため、ま
た、クライアントに対して応答を返信するために必要
な、全ての位置発見、トランスポート機構、及びファシ
リティを備えている。クライアント、及びサーバント
は、同一プロセス中、同一マシンの異なるプロセス中、
あるいは、全く異なるマシン中に見出され得る。説明の
都合上、クライアント20は、分散オブジェクト上の動
作を呼び出すあらゆるコードであり得、この結果、分散
オブジェクト、又は、プロセスの形式を採り得ることも
あり、また、採り得ないこともある。分散オブジェクト
は、幅広い代表を有し得る。例えば、分散オブジェクト
は、既にアプリケーション開発者によって提供されてい
るC++オブジェクトであり得る。あるいは、分散オブ
ジェクトの実装は、ビジュアルアプリケーションビルダ
15内で開発され得る。オブジェクトの新規実装を生成
するために、このビジュアルアプリケーションビルダに
よって、開発者は、カタログから視覚的に存在オブジェ
クト型選択することができるとともに、一つのオブジェ
クトにより供給されるサービスを他のオブジェクトが必
要とするサービスに対して写実的に関連付けることがで
きる。
に、図1に概念的に図示されているオブジェクト要求ブ
ローカ(ORB)11を含む。ORB11は、以下に図
2を参照して説明するように、クライアントからサーバ
ント(目標オブジェクト)への呼出を配信するため、ま
た、クライアントに対して応答を返信するために必要
な、全ての位置発見、トランスポート機構、及びファシ
リティを備えている。クライアント、及びサーバント
は、同一プロセス中、同一マシンの異なるプロセス中、
あるいは、全く異なるマシン中に見出され得る。説明の
都合上、クライアント20は、分散オブジェクト上の動
作を呼び出すあらゆるコードであり得、この結果、分散
オブジェクト、又は、プロセスの形式を採り得ることも
あり、また、採り得ないこともある。分散オブジェクト
は、幅広い代表を有し得る。例えば、分散オブジェクト
は、既にアプリケーション開発者によって提供されてい
るC++オブジェクトであり得る。あるいは、分散オブ
ジェクトの実装は、ビジュアルアプリケーションビルダ
15内で開発され得る。オブジェクトの新規実装を生成
するために、このビジュアルアプリケーションビルダに
よって、開発者は、カタログから視覚的に存在オブジェ
クト型選択することができるとともに、一つのオブジェ
クトにより供給されるサービスを他のオブジェクトが必
要とするサービスに対して写実的に関連付けることがで
きる。
【0019】オブジェクト開発ファシリティ16は、分
散オブジェクトの生成、及び実装を簡易にするために用
いられ得る。それは、分散オブジェクト内の開発者オブ
ジェクトを「くるみ」あるいは、隠蔽するために使用さ
れる。例えば、オブジェクト開発ファシリティ16は、
開発者オブジェクトをORBオブジェクト実装14に変
換するために使用され得る。この例では、ORBオブジ
ェクト実装14は、図中におけるそれの位置によって図
示されるサーバとして表されている。開発者は、ORB
オブジェクト実装14を生成するために、ORBオブジ
ェクト用インターフェースを定義するためにインターフ
ェース定義言語を使用し、オブジェクトの特性を実装す
る開発者オブジェクト実装を供給し、そして、オブジェ
クト開発ファシリティを使用する。実行時には、このO
RBオブジェクト実装14を利用する、このORBオブ
ジェクト(サーバントオブジェクト)のインスタンスが
生成される。オブジェクト開発ファシリティはまた、い
くつかの時点においてクライアントの役割を果たすオブ
ジェクトを生成するために使用され得ることは理解され
るべきである。
散オブジェクトの生成、及び実装を簡易にするために用
いられ得る。それは、分散オブジェクト内の開発者オブ
ジェクトを「くるみ」あるいは、隠蔽するために使用さ
れる。例えば、オブジェクト開発ファシリティ16は、
開発者オブジェクトをORBオブジェクト実装14に変
換するために使用され得る。この例では、ORBオブジ
ェクト実装14は、図中におけるそれの位置によって図
示されるサーバとして表されている。開発者は、ORB
オブジェクト実装14を生成するために、ORBオブジ
ェクト用インターフェースを定義するためにインターフ
ェース定義言語を使用し、オブジェクトの特性を実装す
る開発者オブジェクト実装を供給し、そして、オブジェ
クト開発ファシリティを使用する。実行時には、このO
RBオブジェクト実装14を利用する、このORBオブ
ジェクト(サーバントオブジェクト)のインスタンスが
生成される。オブジェクト開発ファシリティはまた、い
くつかの時点においてクライアントの役割を果たすオブ
ジェクトを生成するために使用され得ることは理解され
るべきである。
【0020】クライアント20は、スタブ21、サブコ
ントラクト層36、場合によってはフィルタ40、及び
トランスポート層38を介してサーバントと通信する。
スタブ21は、サローゲート22、メソッドテーブル2
4、及びスタブ機能25を備えている。クライアント2
0は、先ず、クライアントに対してサーバントオブジェ
クトとして現れるサローゲートと通信する。あるいは、
クライアント20は、サローゲート22、メソッドテー
ブル24、及びスタブ機能25を通過する代わりに、動
的呼出インターフェース(DII)26を通じて直接、
サーバントオブジェクトと通信し得る。動的呼出インタ
ーフェース26を使用することにより、クライアント
は、動的要求を構成することができる。それにより、ク
ライアントが上記した層を利用するサーバントを呼び出
し得る1つのメソッドが、以下に図2を参照して詳細に
記述されている。
ントラクト層36、場合によってはフィルタ40、及び
トランスポート層38を介してサーバントと通信する。
スタブ21は、サローゲート22、メソッドテーブル2
4、及びスタブ機能25を備えている。クライアント2
0は、先ず、クライアントに対してサーバントオブジェ
クトとして現れるサローゲートと通信する。あるいは、
クライアント20は、サローゲート22、メソッドテー
ブル24、及びスタブ機能25を通過する代わりに、動
的呼出インターフェース(DII)26を通じて直接、
サーバントオブジェクトと通信し得る。動的呼出インタ
ーフェース26を使用することにより、クライアント
は、動的要求を構成することができる。それにより、ク
ライアントが上記した層を利用するサーバントを呼び出
し得る1つのメソッドが、以下に図2を参照して詳細に
記述されている。
【0021】米国特許出願(出願番号08/554,7
94)中に詳細に記述されているように、サブコントラ
クト層36は、特定のサブコントラクトによって名付け
られた種々のサービス(あるいは、特徴、あるいは、オ
ブジェクト機構)を実行すべくサブコントラクトを利用
するために、オブジェクトによって要求される機能性を
供給する。サブコントラクトは、個々のオブジェクトに
よって利用され得る分散オブジェクトシステムによって
供給されるサービスの質を識別する。例えば、サブコン
トラクトは、特定オブジェクトについて使用されるセキ
ュリティの特徴を識別し得る。それにより、実行時に特
定サブコントラクトがサーバントオブジェクトと動的に
関連付けられ得る技術は、以下に詳述される本発明の主
題である。
94)中に詳細に記述されているように、サブコントラ
クト層36は、特定のサブコントラクトによって名付け
られた種々のサービス(あるいは、特徴、あるいは、オ
ブジェクト機構)を実行すべくサブコントラクトを利用
するために、オブジェクトによって要求される機能性を
供給する。サブコントラクトは、個々のオブジェクトに
よって利用され得る分散オブジェクトシステムによって
供給されるサービスの質を識別する。例えば、サブコン
トラクトは、特定オブジェクトについて使用されるセキ
ュリティの特徴を識別し得る。それにより、実行時に特
定サブコントラクトがサーバントオブジェクトと動的に
関連付けられ得る技術は、以下に詳述される本発明の主
題である。
【0022】使用される場合、フィルタ40は、圧縮、
暗号化、追跡、あるいは、手直しといった、オブジェク
トに対する、及びオブジェクトからの通信に適用される
種々のタスクを実行し得る。
暗号化、追跡、あるいは、手直しといった、オブジェク
トに対する、及びオブジェクトからの通信に適用される
種々のタスクを実行し得る。
【0023】トランスポート層38は、一般的に同一の
プロセスをクライアントとシェアしないサーバントへ
の、及び、サーバントからのマーシャル、アンマーシャ
ル、及び物理的トランスポート情報を管理する。
プロセスをクライアントとシェアしないサーバントへ
の、及び、サーバントからのマーシャル、アンマーシャ
ル、及び物理的トランスポート情報を管理する。
【0024】標準実装スイート28(あるいは、オブジ
ェクトアダプタ)は、同一の方法、例えばオブジェクト
キー管理、でORBオブジェクト14と対話するサブコ
ントラクトのセットを代表している。サブコントラクト
は、複数の実装スイートに属し得ることに留意すべきで
ある。また、実装スイートは、異なるサブコントラクト
を利用し得る。動的スケルトン30、あるいは、静的ス
ケルトン32のいずれかの形式を採り得るスケルトン
は、要求をサーバントオブジェクト78によって要求さ
れる形式に変換するために用いられる(詳細について
は、以下に図2を参照して説明する)。したがって、ス
ケルトン30、32は、適当なサーバントオブジェクト
78を呼び出す。静的スケルトン32は、インターフェ
ース−特定オブジェクト実装14を呼び出すために用い
られ、一方、動的スケルトン30は、一般的に、インタ
ーフェース−特定オブジェクトを利用できないときに用
いられる。全ORBについて同一であり、また、オブジ
ェクトインターフェース、又はオブジェクトアダプタに
従属しないORBインターフェース34は、直接ORB
に作用するインターフェースである。
ェクトアダプタ)は、同一の方法、例えばオブジェクト
キー管理、でORBオブジェクト14と対話するサブコ
ントラクトのセットを代表している。サブコントラクト
は、複数の実装スイートに属し得ることに留意すべきで
ある。また、実装スイートは、異なるサブコントラクト
を利用し得る。動的スケルトン30、あるいは、静的ス
ケルトン32のいずれかの形式を採り得るスケルトン
は、要求をサーバントオブジェクト78によって要求さ
れる形式に変換するために用いられる(詳細について
は、以下に図2を参照して説明する)。したがって、ス
ケルトン30、32は、適当なサーバントオブジェクト
78を呼び出す。静的スケルトン32は、インターフェ
ース−特定オブジェクト実装14を呼び出すために用い
られ、一方、動的スケルトン30は、一般的に、インタ
ーフェース−特定オブジェクトを利用できないときに用
いられる。全ORBについて同一であり、また、オブジ
ェクトインターフェース、又はオブジェクトアダプタに
従属しないORBインターフェース34は、直接ORB
に作用するインターフェースである。
【0025】ORBデーモン46は、クライアントによ
り呼び出される際、オブジェクトサーバが動作すること
を確実にする責任を負う。オブジェクトサーバをスター
トさせる技術は、米国特許出願(出願番号08/40
8,645)に記載されている。
り呼び出される際、オブジェクトサーバが動作すること
を確実にする責任を負う。オブジェクトサーバをスター
トさせる技術は、米国特許出願(出願番号08/40
8,645)に記載されている。
【0026】セキュアプロトコル42は、インターネッ
ト相互ORBプロトコルを保証し、また、セキュア方式
においてトランスポート層38を通じた情報の伝送を助
けるセキュア共同利用性プロトコルである。このこと
は、完全な保護、機密性等を意味し得る。インターネッ
ト相互ORBプロトコルは、一般的に異なるマシン上の
プロセス間において通信するプロトコルである。しかし
ながら、インターネット相互ORBプロトコルは、同一
マシン上のプロセス間で通信し得る場合もある。セキュ
リティサーバ54は、異なるコンピュータ上のプロセス
間で使用されるサービスを安全にするセキュリティ管理
サーバである。
ト相互ORBプロトコルを保証し、また、セキュア方式
においてトランスポート層38を通じた情報の伝送を助
けるセキュア共同利用性プロトコルである。このこと
は、完全な保護、機密性等を意味し得る。インターネッ
ト相互ORBプロトコルは、一般的に異なるマシン上の
プロセス間において通信するプロトコルである。しかし
ながら、インターネット相互ORBプロトコルは、同一
マシン上のプロセス間で通信し得る場合もある。セキュ
リティサーバ54は、異なるコンピュータ上のプロセス
間で使用されるサービスを安全にするセキュリティ管理
サーバである。
【0027】タイプコード/ANYモジュール44は、
「タイプコード」、あるいは、「ANY」オブジェクト
を実装する。タイプコードは、クライアントとサーバ間
においてタイプ記述が伝送されることを許容するインタ
ーフェース定義言語(IDL)を記述する。IDLデー
タ形式のインスタンスは、ANYオブジェクトによって
包含される。ANYオブジェクトは、内包データのタイ
プコード、及び一般的なデータのエンコーディングを意
味する。
「タイプコード」、あるいは、「ANY」オブジェクト
を実装する。タイプコードは、クライアントとサーバ間
においてタイプ記述が伝送されることを許容するインタ
ーフェース定義言語(IDL)を記述する。IDLデー
タ形式のインスタンスは、ANYオブジェクトによって
包含される。ANYオブジェクトは、内包データのタイ
プコード、及び一般的なデータのエンコーディングを意
味する。
【0028】実装レジストリ50は、オブジェクトサー
バに関係する情報を格納するために用いられる。特に、
実装レジストリ50は、サーバプロセスを介するために
必要な情報を格納する。例えば、実装レジストリ50
は、サーバプログラムの位置、プログラムに対するあら
ゆる引数、及び、プログラムに渡すためのあらゆる環境
変数等の情報を格納する。
バに関係する情報を格納するために用いられる。特に、
実装レジストリ50は、サーバプロセスを介するために
必要な情報を格納する。例えば、実装レジストリ50
は、サーバプログラムの位置、プログラムに対するあら
ゆる引数、及び、プログラムに渡すためのあらゆる環境
変数等の情報を格納する。
【0029】単一永続性56は、インターフェース定義
言語−定義型、及び追加コード部分と共にIDLコンパ
イラを通過する実行中のそのIDL型からの出力を使用
し、その結果、IDL−定義型がディスクから読み出し
可能となり、またディスクへ書き込み可能となる。名付
けサーバ52は、ORBオブジェクトを名付けるために
使用される。クライアントは、名前によって所望のオブ
ジェクトを発見するために名付けサーバ52を使用す
る。名付けサーバ52は、オブジェクト参照に戻り、次
に、そのオブジェクトに対して要求を送信するために用
いられ得る。インターフェースレポジトリ48(IF
R)は、分散オブジェクト内の全オブジェクトに関する
全インターフェースについて知っている。
言語−定義型、及び追加コード部分と共にIDLコンパ
イラを通過する実行中のそのIDL型からの出力を使用
し、その結果、IDL−定義型がディスクから読み出し
可能となり、またディスクへ書き込み可能となる。名付
けサーバ52は、ORBオブジェクトを名付けるために
使用される。クライアントは、名前によって所望のオブ
ジェクトを発見するために名付けサーバ52を使用す
る。名付けサーバ52は、オブジェクト参照に戻り、次
に、そのオブジェクトに対して要求を送信するために用
いられ得る。インターフェースレポジトリ48(IF
R)は、分散オブジェクト内の全オブジェクトに関する
全インターフェースについて知っている。
【0030】メソッドテーブル(mテーブル)ディスパ
ッチを使用するクライアントによりなされた要求は、図
2に概略的に図示されているサーバントへの経路中にあ
る前記種々の構成層を通過する。要求は、クライアント
によって生成され、また、あらゆる好適な形式を採り得
る。要求の形式は、クライアントを形成するために用い
られたプログラム言語の性質に大きく依存する。例え
ば、クライアントがC++言語で記述されているとき
は、要求は、C++メソッド呼出62の形式を採り得
る。呼出は、サローゲートの形式を採る指定オブジェク
ト参照に対して生成される。サローゲートは、オブジェ
クトのインターフェースに従うメソッドを含む。
ッチを使用するクライアントによりなされた要求は、図
2に概略的に図示されているサーバントへの経路中にあ
る前記種々の構成層を通過する。要求は、クライアント
によって生成され、また、あらゆる好適な形式を採り得
る。要求の形式は、クライアントを形成するために用い
られたプログラム言語の性質に大きく依存する。例え
ば、クライアントがC++言語で記述されているとき
は、要求は、C++メソッド呼出62の形式を採り得
る。呼出は、サローゲートの形式を採る指定オブジェク
ト参照に対して生成される。サローゲートは、オブジェ
クトのインターフェースに従うメソッドを含む。
【0031】当業者に明らかであるように、分散オブジ
ェクトシステム内の異なる位置にて用いられるオブジェ
クト参照は、様相において著しく異なる。記述される発
明の実施の形態では、クライアント側オブジェクト参照
は、デュアルポインタ(以後、「ファットポインタ」と
いう。)である。ファットポインタは、2つの別のポイ
ンタを有している。第1ポインタは、参照オブジェクト
と関連するクライアント代表を指す。第2ポインタは、
参照オブジェクトと関連するメソッドテーブルディスパ
ッチ24のメソッドテーブルを指す。クライアント代表
は、CORBAと同様に「疑似」オブジェクト参照動作
で定義される呼出をサポートするメソッドを有するオブ
ジェクトである。これらの動作は、これに限定されるも
のではないが、「複製」メソッド、「解放」メソッド、
「狭小化」メソッド、「ハシュ」メソッド、及び「均等
化」メソッドを含む。
ェクトシステム内の異なる位置にて用いられるオブジェ
クト参照は、様相において著しく異なる。記述される発
明の実施の形態では、クライアント側オブジェクト参照
は、デュアルポインタ(以後、「ファットポインタ」と
いう。)である。ファットポインタは、2つの別のポイ
ンタを有している。第1ポインタは、参照オブジェクト
と関連するクライアント代表を指す。第2ポインタは、
参照オブジェクトと関連するメソッドテーブルディスパ
ッチ24のメソッドテーブルを指す。クライアント代表
は、CORBAと同様に「疑似」オブジェクト参照動作
で定義される呼出をサポートするメソッドを有するオブ
ジェクトである。これらの動作は、これに限定されるも
のではないが、「複製」メソッド、「解放」メソッド、
「狭小化」メソッド、「ハシュ」メソッド、及び「均等
化」メソッドを含む。
【0032】クライアントが呼出を開始した後、呼出
は、メソッドテーブルディスパッチ機構24を使用して
進行する。この技術は、米国特許出願(出願番号08/
307,929)に記載されている。
は、メソッドテーブルディスパッチ機構24を使用して
進行する。この技術は、米国特許出願(出願番号08/
307,929)に記載されている。
【0033】メソッドテーブルディスパッチ機構は、そ
の内1つが呼び出しされたメソッドに関連する、スタブ
機能25に対するポインタリストを含むメソッドテーブ
ルを使用する。スタブ機能25は、クライアントプロセ
スの「ネイティブ」言語で機能、あるいは、メソッド呼
出を受け取り、そして、サブコントラクト層36、ある
いは、結局サーバントオブジェクトに対応する呼出に対
するネイティブ呼出のいずれかを使用する。ネイティブ
言語は、あらゆる好適な言語であり得、例えば、C++
のような言語であり得る。
の内1つが呼び出しされたメソッドに関連する、スタブ
機能25に対するポインタリストを含むメソッドテーブ
ルを使用する。スタブ機能25は、クライアントプロセ
スの「ネイティブ」言語で機能、あるいは、メソッド呼
出を受け取り、そして、サブコントラクト層36、ある
いは、結局サーバントオブジェクトに対応する呼出に対
するネイティブ呼出のいずれかを使用する。ネイティブ
言語は、あらゆる好適な言語であり得、例えば、C++
のような言語であり得る。
【0034】メソッドテーブルディスパッチ24は、メ
ソッド呼出を進めるために適当なスタブ機能25の1つ
を決定し、そして、メソッド呼出を適当なスタブ機能と
組み合わせる。メソッド呼出を生成するクライアントが
サーバントオブジェクトと同一プロセス中に在る場合、
局所スタブ機能が呼び出しされる。局所スタブ機能は、
メソッド呼出を直接サーバントオブジェクトに送る。ロ
ーカルプロセス内のルーティング呼出についての技術
は、出願番号08/678,684の米国特許出願に記
述されている。あるいは、サーバントオブジェクトが異
なるプロセス中、すなわち、遠隔プロセス中に存在する
場合には、遠隔スタブ機能が呼び出しされる。遠隔スタ
ブ機能は、呼出をサーバントオブジェクト78に配信す
るクライアント代表を呼出す。
ソッド呼出を進めるために適当なスタブ機能25の1つ
を決定し、そして、メソッド呼出を適当なスタブ機能と
組み合わせる。メソッド呼出を生成するクライアントが
サーバントオブジェクトと同一プロセス中に在る場合、
局所スタブ機能が呼び出しされる。局所スタブ機能は、
メソッド呼出を直接サーバントオブジェクトに送る。ロ
ーカルプロセス内のルーティング呼出についての技術
は、出願番号08/678,684の米国特許出願に記
述されている。あるいは、サーバントオブジェクトが異
なるプロセス中、すなわち、遠隔プロセス中に存在する
場合には、遠隔スタブ機能が呼び出しされる。遠隔スタ
ブ機能は、呼出をサーバントオブジェクト78に配信す
るクライアント代表を呼出す。
【0035】サブコントラクト層36によって実装され
るサブコントラクトは、分散オブジェクトシステムにと
って重要なオブジェクト呼出の基本機構の制御、及び引
数パッシングを備える論理モジュールである。サブコン
トラクト層36によって実装されるサブコントラクト
は、オブジェクトによって使用するための固有サービス
の質を決定する。サブコントラクトは、一般的にオブジ
ェクト参照中に埋め込まれるサブコントラクト識別子に
よって唯一的に識別される。サービスの質は、サービス
プロパティのセットである。可能性ある属性の中で選択
可能なのは、サーバの活性化、セキュリティ、処理、ふ
るい分け性、クリーンシャットダウンに関連する質であ
る。サブコントラクトは、いくつかのサービスの質が利
用可能であるように形成される。既に定められているサ
ービスの質を備える場合には、ここのサービス属性の処
理に関連するオーバヘッドが低減される。現実には、
「妥当な」、あるいは、共通して使用されるサービス属
性の組み合わせだけがサブコントラクトにサポートされ
る。しかしながら、サブコントラクトは、所定の分散オ
ブジェクトシステムの固有の要求に合致させるために生
成され得る。
るサブコントラクトは、分散オブジェクトシステムにと
って重要なオブジェクト呼出の基本機構の制御、及び引
数パッシングを備える論理モジュールである。サブコン
トラクト層36によって実装されるサブコントラクト
は、オブジェクトによって使用するための固有サービス
の質を決定する。サブコントラクトは、一般的にオブジ
ェクト参照中に埋め込まれるサブコントラクト識別子に
よって唯一的に識別される。サービスの質は、サービス
プロパティのセットである。可能性ある属性の中で選択
可能なのは、サーバの活性化、セキュリティ、処理、ふ
るい分け性、クリーンシャットダウンに関連する質であ
る。サブコントラクトは、いくつかのサービスの質が利
用可能であるように形成される。既に定められているサ
ービスの質を備える場合には、ここのサービス属性の処
理に関連するオーバヘッドが低減される。現実には、
「妥当な」、あるいは、共通して使用されるサービス属
性の組み合わせだけがサブコントラクトにサポートされ
る。しかしながら、サブコントラクトは、所定の分散オ
ブジェクトシステムの固有の要求に合致させるために生
成され得る。
【0036】サブコントラクト層36中の適当なサブコ
ントラクトの識別ラベルは、そのサブコントラクトに対
して唯一の要求機能の識別ラベルとして考えられ得る。
例えば、マーシャル機能、あるいは、アンマーシャル機
能が各サブコントラクトについて定義される。サブコン
トラクトマーシャル機能は、オブジェクト参照をマーシ
ャルするためにスタブによって用いられ、この結果、そ
れは、他のアドレススペース、あるいは、ドメインに対
して転送され得る。オブジェクト参照は、一般的に、ト
ランスポート層38内のトランスポート機構によって処
理される。
ントラクトの識別ラベルは、そのサブコントラクトに対
して唯一の要求機能の識別ラベルとして考えられ得る。
例えば、マーシャル機能、あるいは、アンマーシャル機
能が各サブコントラクトについて定義される。サブコン
トラクトマーシャル機能は、オブジェクト参照をマーシ
ャルするためにスタブによって用いられ、この結果、そ
れは、他のアドレススペース、あるいは、ドメインに対
して転送され得る。オブジェクト参照は、一般的に、ト
ランスポート層38内のトランスポート機構によって処
理される。
【0037】トランスポート層38の一部である、T
1、T2等のトランスポート機構は、マーシャルし、ま
た、サーバントオブジェクトとの間で情報を物理的に伝
送し合うために使用される。情報、すなわち、オブジェ
クト参照、あるいは、要求は、所定のドメインにとって
適当なプロトコルに変換される。例えば、プロトコル
は、これに限定されるものではないが、イーサネットプ
ロトコル、及び、汎用相互ORBプロトコル(GIP
O)を有している。いくつかの一般的でない場合には、
プロトコルは、サーバ上で実行される指示を伝送するた
めに電子メールを使用することまでも必要とする。情報
がマーシャルされた後、トランスポート機構は、全てが
分散オブジェクトシステムのクライアント側によって使
用されるハードウェア70の一部であるオペレーティン
グシステム、装置ドライバ、あるいは、ネットワークの
あらゆる組み合わせを通じて情報を移動させる。
1、T2等のトランスポート機構は、マーシャルし、ま
た、サーバントオブジェクトとの間で情報を物理的に伝
送し合うために使用される。情報、すなわち、オブジェ
クト参照、あるいは、要求は、所定のドメインにとって
適当なプロトコルに変換される。例えば、プロトコル
は、これに限定されるものではないが、イーサネットプ
ロトコル、及び、汎用相互ORBプロトコル(GIP
O)を有している。いくつかの一般的でない場合には、
プロトコルは、サーバ上で実行される指示を伝送するた
めに電子メールを使用することまでも必要とする。情報
がマーシャルされた後、トランスポート機構は、全てが
分散オブジェクトシステムのクライアント側によって使
用されるハードウェア70の一部であるオペレーティン
グシステム、装置ドライバ、あるいは、ネットワークの
あらゆる組み合わせを通じて情報を移動させる。
【0038】トランスポート機構は、所定のドメインに
固有のプロトコルへの情報変換を要求するが、いくつか
のトランスポート機構は、異なるドメインについての情
報のエンコーディングを要求しない。そこで情報が生じ
るトランスポート機構とは別のドメインに固有のプロト
コルへの情報の変換を要求しない1つのトランスポート
機構は、「ドア」と呼ばれる。ドアは、本質的に同一ホ
スト上の2つの異なるプロセス間のゲートウェイであ
る。情報が同一ホスト上に残り、その結果、ドメインの
変更を要求しないという事実によって、異なるマシンに
よって使用され得るプロトコルへ情報をエンコードする
必要がないので、ドアを使用することにより、トランス
ポート層38内において標準的実装への情報変換の必要
性が除去される。しかして、情報は、単に「平滑化さ
れ」、あるいは、異なるマシンによる使用についてはエ
ンコードされないストリーム中へマーシャルされ得、ま
た、ホスト上の2つのプロセス間を行き来させられる。
固有のプロトコルへの情報変換を要求するが、いくつか
のトランスポート機構は、異なるドメインについての情
報のエンコーディングを要求しない。そこで情報が生じ
るトランスポート機構とは別のドメインに固有のプロト
コルへの情報の変換を要求しない1つのトランスポート
機構は、「ドア」と呼ばれる。ドアは、本質的に同一ホ
スト上の2つの異なるプロセス間のゲートウェイであ
る。情報が同一ホスト上に残り、その結果、ドメインの
変更を要求しないという事実によって、異なるマシンに
よって使用され得るプロトコルへ情報をエンコードする
必要がないので、ドアを使用することにより、トランス
ポート層38内において標準的実装への情報変換の必要
性が除去される。しかして、情報は、単に「平滑化さ
れ」、あるいは、異なるマシンによる使用についてはエ
ンコードされないストリーム中へマーシャルされ得、ま
た、ホスト上の2つのプロセス間を行き来させられる。
【0039】1つの情報は、クライアント側によって使
用されるハードウェア70を介して伝送され、そして、
情報は、分散オブジェクトシステムのサーバ側上のハー
ドウェア70に伝送される。一旦、情報がハードウェア
70を通じて経路に従い伝送されると、トランスポート
層38の一部である端点上で情報を受け取るため分散オ
ブジェクトシステムのサーバ側は、T1、T2等のトラ
ンスポート機構を呼び出す。端点がトランスポート層3
8によって形成されていない場合には、トランスポート
層38は、サブコントラクト層36によって端点が形成
されるために必要な機能性を提供する。例えば、専用端
点は、一般的にサブコントラクト38によって形成さ
れ、一方、ネットワーク、及びTCP/IP端点を含む
クラスタ端点は、一般的にトランスポート層38によっ
て形成される。端点がサブコントラクト36、あるい
は、トランスポート層38のいずれによって形成される
かにかかわらず、端点は、トランスポート層38に「残
存し」、すなわち、トランスポート層38の一部であ
る。端点は、本質的に異なるドメインから情報を受け取
るポートである。トランスポート層38内の端点は、異
なるドメインから伝送された情報を受け取った後、その
情報をトランスポート層38からサブコントラクト層3
6にディスパッチする。そして、サブコントラクト層3
6は、その情報をスケルトン、及びサーバントに対して
ディスパッチする。この3段階ディスパッチを実行する
ための技術は、出願番号08/670,700の米国特
許出願中に記述されている。
用されるハードウェア70を介して伝送され、そして、
情報は、分散オブジェクトシステムのサーバ側上のハー
ドウェア70に伝送される。一旦、情報がハードウェア
70を通じて経路に従い伝送されると、トランスポート
層38の一部である端点上で情報を受け取るため分散オ
ブジェクトシステムのサーバ側は、T1、T2等のトラ
ンスポート機構を呼び出す。端点がトランスポート層3
8によって形成されていない場合には、トランスポート
層38は、サブコントラクト層36によって端点が形成
されるために必要な機能性を提供する。例えば、専用端
点は、一般的にサブコントラクト38によって形成さ
れ、一方、ネットワーク、及びTCP/IP端点を含む
クラスタ端点は、一般的にトランスポート層38によっ
て形成される。端点がサブコントラクト36、あるい
は、トランスポート層38のいずれによって形成される
かにかかわらず、端点は、トランスポート層38に「残
存し」、すなわち、トランスポート層38の一部であ
る。端点は、本質的に異なるドメインから情報を受け取
るポートである。トランスポート層38内の端点は、異
なるドメインから伝送された情報を受け取った後、その
情報をトランスポート層38からサブコントラクト層3
6にディスパッチする。そして、サブコントラクト層3
6は、その情報をスケルトン、及びサーバントに対して
ディスパッチする。この3段階ディスパッチを実行する
ための技術は、出願番号08/670,700の米国特
許出願中に記述されている。
【0040】サブコントラクト層36は、少なくとも既
に受け取った情報のいくつかをアンマーシャルするため
の機能性を備える。すなわち、サブコントラクト層36
は、要求の少なくとも一部をアンマーシャルする。そし
て、要求は、要求をサーバントオブジェクト78によっ
て要求される実装特別形式に変換するスケルトン31に
ディスパッチされる。スケルトン31は、前述の通り、
静的スケルトン、あるいは、動的スケルトンのいずれか
である。
に受け取った情報のいくつかをアンマーシャルするため
の機能性を備える。すなわち、サブコントラクト層36
は、要求の少なくとも一部をアンマーシャルする。そし
て、要求は、要求をサーバントオブジェクト78によっ
て要求される実装特別形式に変換するスケルトン31に
ディスパッチされる。スケルトン31は、前述の通り、
静的スケルトン、あるいは、動的スケルトンのいずれか
である。
【0041】一般的に、遠隔要求は、前述のようにクラ
イアント側、及びサーバ側を通じて経路に従い伝送され
る。メソッド呼出62が受け取られると、要求をマーシ
ャルし、他のドメインへ伝送するために要求を準備する
トランスポート層38内のトランスポート機構の選択に
先立ち、適当なサブコントラクトを識別するためにメソ
ッドテーブルディスパッチ層24が用いられる。適当な
端点は、配線を介して伝送される情報を受信し、情報
は、トランスポート層38から、少なくとも既に受け取
った情報のいくつかをアンマーシャルするために機能性
を備えるサブコントラクト36にディスパッチされる。
そして、サブコントラクト層は、要求をサーバントオブ
ジェクト78によって要求される特別形式に変換するス
ケルトン31に対して要求をディスパッチする。このパ
スは矢印77で示されており、また、遠隔、及び局所要
求の双方によって採られるパスである。
イアント側、及びサーバ側を通じて経路に従い伝送され
る。メソッド呼出62が受け取られると、要求をマーシ
ャルし、他のドメインへ伝送するために要求を準備する
トランスポート層38内のトランスポート機構の選択に
先立ち、適当なサブコントラクトを識別するためにメソ
ッドテーブルディスパッチ層24が用いられる。適当な
端点は、配線を介して伝送される情報を受信し、情報
は、トランスポート層38から、少なくとも既に受け取
った情報のいくつかをアンマーシャルするために機能性
を備えるサブコントラクト36にディスパッチされる。
そして、サブコントラクト層は、要求をサーバントオブ
ジェクト78によって要求される特別形式に変換するス
ケルトン31に対して要求をディスパッチする。このパ
スは矢印77で示されており、また、遠隔、及び局所要
求の双方によって採られるパスである。
【0042】しかしながら、クライアント、及びサーバ
が局所プロセス中に存在する場合、すなわち、クライア
ント、及びサーバ双方が同一プロセス中に在る場合に
は、前述の矢印77で示されるパスの使用は不必要に複
雑である。クライアント、及びサーバが同一プロセス内
に存在することが既知の場合には、呼出パス、あるい
は、サービスについての要求のフローパスを短縮するこ
とが可能である。オブジェクト参照が生成されるときに
局所プロセスが識別され得る場合には、短縮フローパ
ス、すなわち、矢印75,76で表されるパスは、同一
ホスト上のクライアントからサーバへ要求を送信するた
めに採られ得る。矢印76によって表されるパスは、適
当なサブコントラクトを識別するためにサブコントラク
ト層36を使用するので、より採用され易い。しかしな
がら、明快に識別するために適当なサブコントラクトが
必要ない状況では、矢印75によって表されるパスが採
られ得る。
が局所プロセス中に存在する場合、すなわち、クライア
ント、及びサーバ双方が同一プロセス中に在る場合に
は、前述の矢印77で示されるパスの使用は不必要に複
雑である。クライアント、及びサーバが同一プロセス内
に存在することが既知の場合には、呼出パス、あるい
は、サービスについての要求のフローパスを短縮するこ
とが可能である。オブジェクト参照が生成されるときに
局所プロセスが識別され得る場合には、短縮フローパ
ス、すなわち、矢印75,76で表されるパスは、同一
ホスト上のクライアントからサーバへ要求を送信するた
めに採られ得る。矢印76によって表されるパスは、適
当なサブコントラクトを識別するためにサブコントラク
ト層36を使用するので、より採用され易い。しかしな
がら、明快に識別するために適当なサブコントラクトが
必要ない状況では、矢印75によって表されるパスが採
られ得る。
【0043】図3を参照してオブジェクト参照の発明の
実施の形態について説明する。当業者に知られているよ
うに、オブジェクト参照は、それらがあらゆる所定時間
にて保持されるプロセス内の位置に依って種々の形式を
採り得る。しかしながら、背景として、低オーバヘッド
実装スイートを利用する、システム中にて使用するため
の代表オブジェクト参照が、図3に図示されている。図
中に図示されている実装では、オブジェクト参照150
は、ホスト識別子152,ポート指定154,及びオブ
ジェクトキー156を備えている。オブジェクトキー1
56は、サブコントラクト識別子158、サーバ識別子
160、実装識別子162、及びユーザキー164を備
えている。ホスト識別子152は、ネットワーク中の特
定コンピュータを表示し、ポート指定154は、通信に
使用されるために選択されるコンピュータのポートを識
別する。オブジェクトキー156は、所望のサーバント
オブジェクトをそのホストマシン上に見出すために用い
られる更なる識別情報を提供する。
実施の形態について説明する。当業者に知られているよ
うに、オブジェクト参照は、それらがあらゆる所定時間
にて保持されるプロセス内の位置に依って種々の形式を
採り得る。しかしながら、背景として、低オーバヘッド
実装スイートを利用する、システム中にて使用するため
の代表オブジェクト参照が、図3に図示されている。図
中に図示されている実装では、オブジェクト参照150
は、ホスト識別子152,ポート指定154,及びオブ
ジェクトキー156を備えている。オブジェクトキー1
56は、サブコントラクト識別子158、サーバ識別子
160、実装識別子162、及びユーザキー164を備
えている。ホスト識別子152は、ネットワーク中の特
定コンピュータを表示し、ポート指定154は、通信に
使用されるために選択されるコンピュータのポートを識
別する。オブジェクトキー156は、所望のサーバント
オブジェクトをそのホストマシン上に見出すために用い
られる更なる識別情報を提供する。
【0044】サーバ識別子160は、その中にサーバン
トオブジェクトが存在する特定のプロセス、及びプログ
ラムを名付け、ユーザキー164は、サーバ識別子16
0によって名付けられたプロセス内にサーバントを見出
すために用いられる唯一番号、あるいは、ストリングで
ある。サブコントラクト識別子158は、特定サブコン
トラクトのプロトコル、及びそれのサーバントと関連付
けられるサービスを添付するために用られ、実装識別子
162は、そのサーバントオブジェクトと共に用いられ
るインターフェースの実装を名付ける。
トオブジェクトが存在する特定のプロセス、及びプログ
ラムを名付け、ユーザキー164は、サーバ識別子16
0によって名付けられたプロセス内にサーバントを見出
すために用いられる唯一番号、あるいは、ストリングで
ある。サブコントラクト識別子158は、特定サブコン
トラクトのプロトコル、及びそれのサーバントと関連付
けられるサービスを添付するために用られ、実装識別子
162は、そのサーバントオブジェクトと共に用いられ
るインターフェースの実装を名付ける。
【0045】「好適な発明の実施の形態」本発明に係る
発明の実施の形態は、実行時に特定サブコントラクトを
サーバントに動的に関連付けるための機構を提供する。
すなわち、サービス従属代表は、動的にサーバントと関
連付けられ得る。このサービス従属代表(以下、「サー
バ代表」という。)は、サーバントが使用するための特
定サブコントラクトを提供する。この機構の一例が図
5,6,7に図示されており、これについて以下説明す
る。このサーバ代表の機能性はまた、以下に図8,9,
10,11を参照して説明するようにサーバント自身
が、「リボーク」のようないくつかの機能を呼び出すこ
とを許容する。また、本発明は分散オブジェクト内のオ
ブジェクトのライフサイクルと関連付けられる機能に関
し、これら機能は、図8〜図14を参照して以下に説明
される。
発明の実施の形態は、実行時に特定サブコントラクトを
サーバントに動的に関連付けるための機構を提供する。
すなわち、サービス従属代表は、動的にサーバントと関
連付けられ得る。このサービス従属代表(以下、「サー
バ代表」という。)は、サーバントが使用するための特
定サブコントラクトを提供する。この機構の一例が図
5,6,7に図示されており、これについて以下説明す
る。このサーバ代表の機能性はまた、以下に図8,9,
10,11を参照して説明するようにサーバント自身
が、「リボーク」のようないくつかの機能を呼び出すこ
とを許容する。また、本発明は分散オブジェクト内のオ
ブジェクトのライフサイクルと関連付けられる機能に関
し、これら機能は、図8〜図14を参照して以下に説明
される。
【0046】図5を参照して、サブコントラクトをサー
バントに動的に関連付けるための機構200の一例につ
いて説明する。特定オブジェクトの定義、及びそれの機
能性がインターフェースカウンタ202として図示され
ている。オブジェクトは、幅広い方法によって定義され
得る。例えば、カウンタ202はインターフェース定義
言語(IDL)を使用するインターフェース中にて定義
される。カウンタ202は、操作の「インクリメン
ト」、及び一属性の「最大値」を定義する簡単な定義で
ある。その中に多くの操作、属性、例外が存在し、その
中で継承方式が使用され得るさらに複雑な定義が可能で
あることは理解されるべきである。カウンタ202は、
操作、及び他の機能性のための実装を提供するサーバン
トクラスM(204)によって部分的に実行され得る。
図示されるように、サーバントクラスM(204)は、
以下に説明するように各々が異なるサブコントラクトに
関連付けられる、サーバントM1(220)、サーバン
トM2(224)、サーバントM3(228)、及びサ
ーバントM4(232)を既に具象化している。
バントに動的に関連付けるための機構200の一例につ
いて説明する。特定オブジェクトの定義、及びそれの機
能性がインターフェースカウンタ202として図示され
ている。オブジェクトは、幅広い方法によって定義され
得る。例えば、カウンタ202はインターフェース定義
言語(IDL)を使用するインターフェース中にて定義
される。カウンタ202は、操作の「インクリメン
ト」、及び一属性の「最大値」を定義する簡単な定義で
ある。その中に多くの操作、属性、例外が存在し、その
中で継承方式が使用され得るさらに複雑な定義が可能で
あることは理解されるべきである。カウンタ202は、
操作、及び他の機能性のための実装を提供するサーバン
トクラスM(204)によって部分的に実行され得る。
図示されるように、サーバントクラスM(204)は、
以下に説明するように各々が異なるサブコントラクトに
関連付けられる、サーバントM1(220)、サーバン
トM2(224)、サーバントM3(228)、及びサ
ーバントM4(232)を既に具象化している。
【0047】(特定サブコントラクトによって実行され
る)特定のサービスの質を個々のサーバントと関連付け
ることを望む開発者にとって、サーバ代表が役立ち得
る。単に記述するだけで、サーバ代表は特定のサブコン
トラクトに関連する機能性を組込み、そして、サーバン
トとリンクされる。この方法では、各サーバントは、サ
ーバ代表に対するリンクを通じて特定サブコントラクト
の機能性を利用し得る。1つのサーバ代表だけをサーバ
ント関連付けることが好ましいが、所定のサーバントは
あらゆる数のサーバ代表と関連付けられ得ることも予期
される。また、サーバ代表は、多くの形式で実行され得
るが、以下に説明するようにサーバ代表をクラス、及び
オブジェクトとして実行することが好ましい。
る)特定のサービスの質を個々のサーバントと関連付け
ることを望む開発者にとって、サーバ代表が役立ち得
る。単に記述するだけで、サーバ代表は特定のサブコン
トラクトに関連する機能性を組込み、そして、サーバン
トとリンクされる。この方法では、各サーバントは、サ
ーバ代表に対するリンクを通じて特定サブコントラクト
の機能性を利用し得る。1つのサーバ代表だけをサーバ
ント関連付けることが好ましいが、所定のサーバントは
あらゆる数のサーバ代表と関連付けられ得ることも予期
される。また、サーバ代表は、多くの形式で実行され得
るが、以下に説明するようにサーバ代表をクラス、及び
オブジェクトとして実行することが好ましい。
【0048】図5の下部には、3つのサーバ代表クラ
ス、サーバ代表クラスX206,サーバ代表クラスY2
08,サーバ代表クラスZ210が図示されている。各
サーバ代表クラスには、1つのサブコントラクト、それ
ぞれサブコントラクトX、Y、Xが関連付けられてい
る。換言すれば、分散オブジェクトシステム内の各サブ
コントラクトは、サーバ代表クラスによって代表され
る。例えば、サーバ代表クラスXはサブコントラクトX
に関連する機能性を実行する。実行時には、サブコント
ラクトX機能性の利用を望む多くのサーバントが存在し
得るので、各サーバ代表クラスは、各サーバントについ
てそのクラスに対応するサーバ代表オブジェクトを具象
化する。図示されるように、サーバ代表クラスXはサー
バントM1に対してリンクされているサーバ代表オブジ
ェクトX1(212)を既に具象化している。サーバ代
表クラスYはサーバントM2、M3に対して各々リンク
されている2つのサーバ代表オブジェクトY1(21
4)、Y2(216)を既に具象化している。また、サ
ーバ代表クラスZは、サーバントM4に対してリンクさ
れているサーバ代表オブジェクトZ1(218)を具象
化している。これらサーバ代表オブジェクトは、リンク
222,226,230,234によってそれぞれそれ
らのサーバントとリンクされている。したがって、サー
バントM4は、サーバ代表クラスZのインスタンスであ
るサーバ代表オブジェクトZ1に対するそれのリンクを
経由してサブコントラクトZ機能性を取得する。また、
これらのリンクは、以下に図12を参照して説明するよ
うに実行時に形成され得る。
ス、サーバ代表クラスX206,サーバ代表クラスY2
08,サーバ代表クラスZ210が図示されている。各
サーバ代表クラスには、1つのサブコントラクト、それ
ぞれサブコントラクトX、Y、Xが関連付けられてい
る。換言すれば、分散オブジェクトシステム内の各サブ
コントラクトは、サーバ代表クラスによって代表され
る。例えば、サーバ代表クラスXはサブコントラクトX
に関連する機能性を実行する。実行時には、サブコント
ラクトX機能性の利用を望む多くのサーバントが存在し
得るので、各サーバ代表クラスは、各サーバントについ
てそのクラスに対応するサーバ代表オブジェクトを具象
化する。図示されるように、サーバ代表クラスXはサー
バントM1に対してリンクされているサーバ代表オブジ
ェクトX1(212)を既に具象化している。サーバ代
表クラスYはサーバントM2、M3に対して各々リンク
されている2つのサーバ代表オブジェクトY1(21
4)、Y2(216)を既に具象化している。また、サ
ーバ代表クラスZは、サーバントM4に対してリンクさ
れているサーバ代表オブジェクトZ1(218)を具象
化している。これらサーバ代表オブジェクトは、リンク
222,226,230,234によってそれぞれそれ
らのサーバントとリンクされている。したがって、サー
バントM4は、サーバ代表クラスZのインスタンスであ
るサーバ代表オブジェクトZ1に対するそれのリンクを
経由してサブコントラクトZ機能性を取得する。また、
これらのリンクは、以下に図12を参照して説明するよ
うに実行時に形成され得る。
【0049】図6及び図7は、本発明に係る発明の実施
の形態の一つに従う、サーバントオブジェクト、サーバ
ントとサーバント代表オブジェクト間のリンク、及びサ
ーバ代表クラスの詳細を図示する。図6は、実行時にサ
ーバ代表オブジェクトに対してリンクされるサーバント
の例250を図示する。各サーバントは、逐次、サーバ
ント基底256から機能性を継承するスケルトン254
から機能性を継承する。サーバント252及びサーバ代
表オブジェクト260間のリンク258は、あらゆる好
適な方法を使用して形成され得る。リンク258は、サ
ーバントからサーバ代表オブジェクトへの位置標識子の
形式を採ることが好ましい。この位置標識子は、サーバ
ント内に存在し得、あるいは、そこからサーバントが継
承するサーバント基底クラスの一部であり得る。サーバ
ント基底クラスは、特に「非活性化」、「リボーク」、
及び「参照非残存の予期」の機能を実装するメソッドを
含み得る。この方法では、逐次リンク258を介して対
応するサーバ代表クラスのメソッドを呼び出しする個々
のサーバントは、これらの手続きの1つを呼出す。図7
に図示されるように、各サーバ代表クラスは、特に「オ
ブジェクト参照の取得」、「リボーク」、「非活性
化」、及び「参照非残存の予期」といったメソッドを既
に定義済であり得る。さらに、図7のサーバ代表クラス
280は、それがサブコントラクトXを代表することを
示している。この方法では、サブコントラクトXについ
ての唯一のメソッドセットが、明記され、サーバントに
よって利用され得る。後述する図12は、どのようにし
てサーバ代表オブジェクトが生成され、サーバントに対
してリンクされるかを図示している。
の形態の一つに従う、サーバントオブジェクト、サーバ
ントとサーバント代表オブジェクト間のリンク、及びサ
ーバ代表クラスの詳細を図示する。図6は、実行時にサ
ーバ代表オブジェクトに対してリンクされるサーバント
の例250を図示する。各サーバントは、逐次、サーバ
ント基底256から機能性を継承するスケルトン254
から機能性を継承する。サーバント252及びサーバ代
表オブジェクト260間のリンク258は、あらゆる好
適な方法を使用して形成され得る。リンク258は、サ
ーバントからサーバ代表オブジェクトへの位置標識子の
形式を採ることが好ましい。この位置標識子は、サーバ
ント内に存在し得、あるいは、そこからサーバントが継
承するサーバント基底クラスの一部であり得る。サーバ
ント基底クラスは、特に「非活性化」、「リボーク」、
及び「参照非残存の予期」の機能を実装するメソッドを
含み得る。この方法では、逐次リンク258を介して対
応するサーバ代表クラスのメソッドを呼び出しする個々
のサーバントは、これらの手続きの1つを呼出す。図7
に図示されるように、各サーバ代表クラスは、特に「オ
ブジェクト参照の取得」、「リボーク」、「非活性
化」、及び「参照非残存の予期」といったメソッドを既
に定義済であり得る。さらに、図7のサーバ代表クラス
280は、それがサブコントラクトXを代表することを
示している。この方法では、サブコントラクトXについ
ての唯一のメソッドセットが、明記され、サーバントに
よって利用され得る。後述する図12は、どのようにし
てサーバ代表オブジェクトが生成され、サーバントに対
してリンクされるかを図示している。
【0050】図8〜図14は、サーバントと関連するサ
ブコントラクトを利用する分散オブジェクトシステム内
で利用可能な種々の機能について図示する。これらの機
能のいくつかは、サーバントオブジェクトのライフサイ
クルの局面に関係する。オブジェクトのライフサイクル
は、生成、活性、非活性化、リボーク、及び消滅の段階
を含む。生成では、オブジェクト参照は、将来のサーバ
ントのために生成され、オブジェクトの状態についての
格納領域が割り当てられると共に初期化され、また、随
意に、オブジェクトが名付けサーバ内に記録される。活
性化では、オブジェクトを代表するためにサーバントが
生成され、また、サーバントオブジェクトの状態がメモ
リ中にロードされる。換言すれば、オブジェクトは、2
次記憶装置から取り出され、プロセス中に置かれる。非
活性化では、サーバントが開放され得る。オブジェクト
は、もはやアクセス可能でないが、依然として存在はす
る。リボークは、オブジェクトが依然として存在し得る
が、もはや参照され得ず、また、呼び出しされ得ないこ
とを意味する。消滅は生成活動を取り消す。また、「参
照非残存の予期」、及び「オブジェクト参照の取得」の
機能が関係する。こららの機能は以下に説明する。
ブコントラクトを利用する分散オブジェクトシステム内
で利用可能な種々の機能について図示する。これらの機
能のいくつかは、サーバントオブジェクトのライフサイ
クルの局面に関係する。オブジェクトのライフサイクル
は、生成、活性、非活性化、リボーク、及び消滅の段階
を含む。生成では、オブジェクト参照は、将来のサーバ
ントのために生成され、オブジェクトの状態についての
格納領域が割り当てられると共に初期化され、また、随
意に、オブジェクトが名付けサーバ内に記録される。活
性化では、オブジェクトを代表するためにサーバントが
生成され、また、サーバントオブジェクトの状態がメモ
リ中にロードされる。換言すれば、オブジェクトは、2
次記憶装置から取り出され、プロセス中に置かれる。非
活性化では、サーバントが開放され得る。オブジェクト
は、もはやアクセス可能でないが、依然として存在はす
る。リボークは、オブジェクトが依然として存在し得る
が、もはや参照され得ず、また、呼び出しされ得ないこ
とを意味する。消滅は生成活動を取り消す。また、「参
照非残存の予期」、及び「オブジェクト参照の取得」の
機能が関係する。こららの機能は以下に説明する。
【0051】次に図8を参照して、本発明に係る発明の
実施の形態の一つに従う、自身を非活性化するためにサ
ーバントによって用いられ得る非活性化機能を説明す
る。第1ステップ302では、サーバントは、サーバン
ト基底クラス上に定義される非活性化メソッドを呼び出
す。サーバント基底クラスが各サーバントクラスによっ
て継承されるので、このメソッドはサーバントに対して
アクセス可能なメソッドである。次に、ステップ304
では、このメソッドはコールバック閉包を生成する。閉
包は、2つの部分を有している。第1の部分は、遅れて
実行される機能に対するポインタであり、第2の部分は
その機能によって使用されるデータに対するポインタで
ある。この場合、コールバック閉包の機能ポインタは、
システムライブラリ中の「非活性化終了」機能を指し示
し、データポインタは、呼出サーバントを指し示す。ス
テップ306では、引数として、関連サーバ代表の非活
性化メソッドがコールバック閉包と共に呼び出しされ
る。サーバントは、図6に図示するように、サーバント
からサーバ代表オブジェクトへのリンク258を介して
このメソッドにアクセスしている。ステップ308で
は、サーバ代表のこの非活性化メソッドが実行され、後
の使用のためにコールバック閉包が格納される。次に、
メソッドは、それが呼び出しされたところからもリター
ンするサーバント基底非活性化メソッドにリターンす
る。
実施の形態の一つに従う、自身を非活性化するためにサ
ーバントによって用いられ得る非活性化機能を説明す
る。第1ステップ302では、サーバントは、サーバン
ト基底クラス上に定義される非活性化メソッドを呼び出
す。サーバント基底クラスが各サーバントクラスによっ
て継承されるので、このメソッドはサーバントに対して
アクセス可能なメソッドである。次に、ステップ304
では、このメソッドはコールバック閉包を生成する。閉
包は、2つの部分を有している。第1の部分は、遅れて
実行される機能に対するポインタであり、第2の部分は
その機能によって使用されるデータに対するポインタで
ある。この場合、コールバック閉包の機能ポインタは、
システムライブラリ中の「非活性化終了」機能を指し示
し、データポインタは、呼出サーバントを指し示す。ス
テップ306では、引数として、関連サーバ代表の非活
性化メソッドがコールバック閉包と共に呼び出しされ
る。サーバントは、図6に図示するように、サーバント
からサーバ代表オブジェクトへのリンク258を介して
このメソッドにアクセスしている。ステップ308で
は、サーバ代表のこの非活性化メソッドが実行され、後
の使用のためにコールバック閉包が格納される。次に、
メソッドは、それが呼び出しされたところからもリター
ンするサーバント基底非活性化メソッドにリターンす
る。
【0052】この時点で、サーバントは非活性化のため
に既に調整されている、にもかかわらず、非活性化はサ
ーバントが準備できるまで生じ得ない。サーバントは、
いくつかの理由により非活性化の準備が整っていない。
例えば、分散オブジェクトシステム内の他のオブジェク
トが依然としてサーバントに対する参照を保持している
場合、あるいは、それらがサーバントの情報を要求して
いる場合には、サーバントは非活性化の準備が整ってい
ないことがある。したがって、ステップ316は、ステ
ップ320にてサーバントの非活性化が可能であると決
定されるまでその中でシステム内のプロセシングが継続
する、待機状態、あるいは、待機期間を示す。一旦、非
活性化が可能になると、ステップ324は、閉包により
指し示される機能を呼び出すことにより、上記ステップ
304にて生成されたコールバック閉包を実行する。こ
の場合、それが引数としてサーバントを伴うライブラリ
における「非活性化終了」機能である。この機能内か
ら、サーバント基底の「非活性化終了」メソッドがステ
ップ326にて呼び出しされる。ステップ326では、
配信済「非活性化終了」メソッドの導出バージョンのほ
とんどが呼び出しされ、この結果、開発者は、要求され
る場合にサーバント基底の「非活性化終了」を上書きす
るために「フック」できる。特に、さらにカスタマイズ
された導出「非活性化終了」メソッドで置き換えること
のより、開発者はカスタム非活性化ルーティンを呼び出
すことができると共に、カスタムコードを挿入すること
ができる。したがって、「フック」の供給は、非常に高
い柔軟性を提供する。
に既に調整されている、にもかかわらず、非活性化はサ
ーバントが準備できるまで生じ得ない。サーバントは、
いくつかの理由により非活性化の準備が整っていない。
例えば、分散オブジェクトシステム内の他のオブジェク
トが依然としてサーバントに対する参照を保持している
場合、あるいは、それらがサーバントの情報を要求して
いる場合には、サーバントは非活性化の準備が整ってい
ないことがある。したがって、ステップ316は、ステ
ップ320にてサーバントの非活性化が可能であると決
定されるまでその中でシステム内のプロセシングが継続
する、待機状態、あるいは、待機期間を示す。一旦、非
活性化が可能になると、ステップ324は、閉包により
指し示される機能を呼び出すことにより、上記ステップ
304にて生成されたコールバック閉包を実行する。こ
の場合、それが引数としてサーバントを伴うライブラリ
における「非活性化終了」機能である。この機能内か
ら、サーバント基底の「非活性化終了」メソッドがステ
ップ326にて呼び出しされる。ステップ326では、
配信済「非活性化終了」メソッドの導出バージョンのほ
とんどが呼び出しされ、この結果、開発者は、要求され
る場合にサーバント基底の「非活性化終了」を上書きす
るために「フック」できる。特に、さらにカスタマイズ
された導出「非活性化終了」メソッドで置き換えること
のより、開発者はカスタム非活性化ルーティンを呼び出
すことができると共に、カスタムコードを挿入すること
ができる。したがって、「フック」の供給は、非常に高
い柔軟性を提供する。
【0053】「非活性化終了」が上書きされない場合に
は、このメソッドは、サーバントオブジェクトを解体
し、消去するために、ステップ328にて消去機能を呼
び出す。異なる言語に関して、この消去機能を実行する
ために、幅広い消去機能が使用され得る。例えば、C+
+プログラム言語では、「この操作の消去」機能が呼び
出しされ得る。一旦、ステップ328が終了すると、制
御は、ステップ330にてライブラリ「非活性化終了」
にリターンし、制御は、ステップ332にてそこからサ
ーバ代表「非活性化」メソッドにリターンする。このス
テップの後、非活性化機能が終了する。
は、このメソッドは、サーバントオブジェクトを解体
し、消去するために、ステップ328にて消去機能を呼
び出す。異なる言語に関して、この消去機能を実行する
ために、幅広い消去機能が使用され得る。例えば、C+
+プログラム言語では、「この操作の消去」機能が呼び
出しされ得る。一旦、ステップ328が終了すると、制
御は、ステップ330にてライブラリ「非活性化終了」
にリターンし、制御は、ステップ332にてそこからサ
ーバ代表「非活性化」メソッドにリターンする。このス
テップの後、非活性化機能が終了する。
【0054】図9は、本発明に係る発明の実施の形態の
一つに従う、自身にいくらかでも参照が残余しているか
否かを決定するためにサーバントによって使用され得
る、「参照非残存の予期」機能を図示する。一切存在し
ない場合には、好ましくは図8を参照して上述した非活
性化機能を使用してサーバントは自身を非活性化する。
したがって、「参照非残存の予期」機能は、サーバント
が自身を非活性化し得るか否かを決定する際に有用であ
る。
一つに従う、自身にいくらかでも参照が残余しているか
否かを決定するためにサーバントによって使用され得
る、「参照非残存の予期」機能を図示する。一切存在し
ない場合には、好ましくは図8を参照して上述した非活
性化機能を使用してサーバントは自身を非活性化する。
したがって、「参照非残存の予期」機能は、サーバント
が自身を非活性化し得るか否かを決定する際に有用であ
る。
【0055】第1ステップ502では、サーバントは、
サーバント基底クラス上に定義される「参照非残存の予
期」メソッドを呼び出す。サーバント基底クラスが各サ
ーバントクラスによって継承されるので、このメソッド
はサーバントに対してアクセス可能なメソッドである。
次に、ステップ504では、このメソッドはコールバッ
ク閉包を生成する。閉包は、2つの部分を有している。
第1の部分は、遅れて実行される機能に対するポインタ
であり、第2の部分はその機能によって使用されるデー
タに対するポインタである。この場合、コールバック閉
包の機能ポインタは、システムライブラリ中の「参照の
残存なし」機能を指し示し、データポインタは、呼出サ
ーバントを指し示す。ステップ506では、引数とし
て、関連サーバ代表の「参照非残存の予期」メソッドが
コールバック閉包と共に呼び出しされる。サーバント
は、図6に図示するように、サーバントからサーバ代表
オブジェクトへのリンク258を介してこのメソッドに
アクセスしている。ステップ508では、サーバ代表の
この「参照非残存の予期」メソッドが実行され、後の使
用のためにコールバック閉包が格納される。次に、メソ
ッドは、それが呼び出しされたところからもリターンす
るサーバント基底参照非残存予期メソッドにリターンす
る。
サーバント基底クラス上に定義される「参照非残存の予
期」メソッドを呼び出す。サーバント基底クラスが各サ
ーバントクラスによって継承されるので、このメソッド
はサーバントに対してアクセス可能なメソッドである。
次に、ステップ504では、このメソッドはコールバッ
ク閉包を生成する。閉包は、2つの部分を有している。
第1の部分は、遅れて実行される機能に対するポインタ
であり、第2の部分はその機能によって使用されるデー
タに対するポインタである。この場合、コールバック閉
包の機能ポインタは、システムライブラリ中の「参照の
残存なし」機能を指し示し、データポインタは、呼出サ
ーバントを指し示す。ステップ506では、引数とし
て、関連サーバ代表の「参照非残存の予期」メソッドが
コールバック閉包と共に呼び出しされる。サーバント
は、図6に図示するように、サーバントからサーバ代表
オブジェクトへのリンク258を介してこのメソッドに
アクセスしている。ステップ508では、サーバ代表の
この「参照非残存の予期」メソッドが実行され、後の使
用のためにコールバック閉包が格納される。次に、メソ
ッドは、それが呼び出しされたところからもリターンす
るサーバント基底参照非残存予期メソッドにリターンす
る。
【0056】この時点で、機能は、ステップ520にて
サーバ代表が分散オブジェクトシステム内にサーバント
に対する参照を保持する他のオブジェクトが存在しない
と決定するまで待機状態に入る。他のオブジェクトがこ
のサーバントに対する参照を有している場合には、サー
バントは非活性化され得ず、しかして、待機状態が必要
となる。一旦、サーバ代表が参照が残存しないと決定す
ると、ステップ524は、閉包内の機能、この場合は引
数としてサーバントを伴うライブラリにおける「参照非
残存の予期」機能を呼び出すことにより、上記ステップ
504にて生成されたコールバック閉包を実行する。こ
の機能内から、サーバント基底の「参照非残存の予期」
メソッドがステップ526にて呼び出しされる。この技
術は、「参照非残存の予期」メソッドの導出バージョン
のほとんどが呼び出しされることを許容し、要求される
場合にサーバント基底「参照非残存の予期」を上書きす
るために、開発者に「フック」を許容する。「参照非残
存」が上書きされない場合には、このメソッドは、サー
バントを非活性化するために、図8中の非活性化機能を
呼び出す。一旦、ステップ528が終了すると、制御
は、ステップ530にてライブラリ「参照非残存」にリ
ターンし、制御は、ステップ532にてそこからサーバ
代表「参照非残存の予期」メソッドにリターンする。こ
のステップの後、「参照非残存の予期」機能が終了す
る。
サーバ代表が分散オブジェクトシステム内にサーバント
に対する参照を保持する他のオブジェクトが存在しない
と決定するまで待機状態に入る。他のオブジェクトがこ
のサーバントに対する参照を有している場合には、サー
バントは非活性化され得ず、しかして、待機状態が必要
となる。一旦、サーバ代表が参照が残存しないと決定す
ると、ステップ524は、閉包内の機能、この場合は引
数としてサーバントを伴うライブラリにおける「参照非
残存の予期」機能を呼び出すことにより、上記ステップ
504にて生成されたコールバック閉包を実行する。こ
の機能内から、サーバント基底の「参照非残存の予期」
メソッドがステップ526にて呼び出しされる。この技
術は、「参照非残存の予期」メソッドの導出バージョン
のほとんどが呼び出しされることを許容し、要求される
場合にサーバント基底「参照非残存の予期」を上書きす
るために、開発者に「フック」を許容する。「参照非残
存」が上書きされない場合には、このメソッドは、サー
バントを非活性化するために、図8中の非活性化機能を
呼び出す。一旦、ステップ528が終了すると、制御
は、ステップ530にてライブラリ「参照非残存」にリ
ターンし、制御は、ステップ532にてそこからサーバ
代表「参照非残存の予期」メソッドにリターンする。こ
のステップの後、「参照非残存の予期」機能が終了す
る。
【0057】図10は、発明の実施の形態の一つに従
う、自身をリボークするためにサーバントにより使用さ
れる、「リボーク」機能を図示する。リボークメソッド
は、他のオブジェクトがサーバントに対して呼出し、あ
るいは、参照することを有効に防止する。第1ステップ
602では、サーバントは、サーバント基底クラス上に
定義される「リボーク」メソッドを呼び出す。サーバン
ト基底クラスが各サーバントクラスによって継承される
ので、このメソッドはサーバントに対してアクセス可能
なメソッドである。次に、ステップ604では、このメ
ソッドはサーバ代表の「リボーク」メソッドを呼び出
す。サーバントは、図6に図示するように、サーバント
からサーバ代表オブジェクトへのリンク258を介して
このメソッドにアクセスしている。このリボークメソッ
ドは、サーバントを有効にリボークする。このリボーク
は、呼出し、あるいは、このオブジェクト参照の使用が
もはや許容されないことを意味する。一旦このメソッド
が終了すると、メソッドはステップ606にてサーバン
ト基底「リボーク」メソッドにリターンし、そしてリボ
ーク機能が終了する。
う、自身をリボークするためにサーバントにより使用さ
れる、「リボーク」機能を図示する。リボークメソッド
は、他のオブジェクトがサーバントに対して呼出し、あ
るいは、参照することを有効に防止する。第1ステップ
602では、サーバントは、サーバント基底クラス上に
定義される「リボーク」メソッドを呼び出す。サーバン
ト基底クラスが各サーバントクラスによって継承される
ので、このメソッドはサーバントに対してアクセス可能
なメソッドである。次に、ステップ604では、このメ
ソッドはサーバ代表の「リボーク」メソッドを呼び出
す。サーバントは、図6に図示するように、サーバント
からサーバ代表オブジェクトへのリンク258を介して
このメソッドにアクセスしている。このリボークメソッ
ドは、サーバントを有効にリボークする。このリボーク
は、呼出し、あるいは、このオブジェクト参照の使用が
もはや許容されないことを意味する。一旦このメソッド
が終了すると、メソッドはステップ606にてサーバン
ト基底「リボーク」メソッドにリターンし、そしてリボ
ーク機能が終了する。
【0058】図11は、発明の実施の形態の一つに従
う、サーバントが、クライアントが使用するサーバント
自身に対する実装−従属ポインタを生成することを許容
する、機能「オブジェクト参照取得」を図示する。すな
わち、「オブジェクト参照取得」機能は、要求サーバン
トについてのオブジェクト参照を生成する。この機能は
また、サーバントが、サーバントの特定超クラスに対す
る既に広げられたポインタをリターンすることを許容す
る。サーバントを参照するこの実装−従属ポインタは、
以後「ファットポインタ」と呼ぶ、デュアルポインタで
ある。ファットポインタと呼ばれるのは、それが1つの
構造内に2つの異なるポインタを含むからである。すな
わち、ファットポインタは、シングルポインタよりも実
際に大きく、あるいは、「太い」からである。サーバン
トのオブジェクト参照は、図示される実装−従属情報を
含むのに対し、サーバントのファットポインタは、サー
バントを参照する際クライアントにより使用される言語
−従属代表なので、ファットポインタは、図3のオブジ
ェクト参照とは異なる。例えば、ファットポインタは、
クライアントによって使用される、サーバントのC++
オブジェクト参照である。ファットポインタの1つのポ
インタは、一般的に図3のオブジェクト参照情報のみな
らず、クライアントがサーバントにアクセスすることを
許容する実装−従属情報をも含む、クライアント代表を
指し示す。先に述べたように、ファットポインタは2つ
のポインタを含んでいる。第1のポインタは、クライア
ント代表に対するポインタである。このクライアント代
表は、図3のオブジェクト参照情報のみならず、呼出機
能ががサーバントにアクセスすることを許容する実装−
従属情報をも含むオブジェクトである。ファットポイン
タの第2のポインタは、このサーバントに関連するメソ
ッドテーブルに対するポインタである。これは、局所メ
ソッドテーブル、あるいは、遠隔メソッドテーブルのい
ずれかである。ファットポインタは、2つより多いポイ
ンタを含み得る。
う、サーバントが、クライアントが使用するサーバント
自身に対する実装−従属ポインタを生成することを許容
する、機能「オブジェクト参照取得」を図示する。すな
わち、「オブジェクト参照取得」機能は、要求サーバン
トについてのオブジェクト参照を生成する。この機能は
また、サーバントが、サーバントの特定超クラスに対す
る既に広げられたポインタをリターンすることを許容す
る。サーバントを参照するこの実装−従属ポインタは、
以後「ファットポインタ」と呼ぶ、デュアルポインタで
ある。ファットポインタと呼ばれるのは、それが1つの
構造内に2つの異なるポインタを含むからである。すな
わち、ファットポインタは、シングルポインタよりも実
際に大きく、あるいは、「太い」からである。サーバン
トのオブジェクト参照は、図示される実装−従属情報を
含むのに対し、サーバントのファットポインタは、サー
バントを参照する際クライアントにより使用される言語
−従属代表なので、ファットポインタは、図3のオブジ
ェクト参照とは異なる。例えば、ファットポインタは、
クライアントによって使用される、サーバントのC++
オブジェクト参照である。ファットポインタの1つのポ
インタは、一般的に図3のオブジェクト参照情報のみな
らず、クライアントがサーバントにアクセスすることを
許容する実装−従属情報をも含む、クライアント代表を
指し示す。先に述べたように、ファットポインタは2つ
のポインタを含んでいる。第1のポインタは、クライア
ント代表に対するポインタである。このクライアント代
表は、図3のオブジェクト参照情報のみならず、呼出機
能ががサーバントにアクセスすることを許容する実装−
従属情報をも含むオブジェクトである。ファットポイン
タの第2のポインタは、このサーバントに関連するメソ
ッドテーブルに対するポインタである。これは、局所メ
ソッドテーブル、あるいは、遠隔メソッドテーブルのい
ずれかである。ファットポインタは、2つより多いポイ
ンタを含み得る。
【0059】機能「オブジェクト参照取得」は、そのサ
ーバントの特定超クラスについてのオブジェクト参照
(ファットポインタ)を生成するためにサーバントから
の要求を受け取ることにより始まる。この要求は超クラ
スのメソッドによって取り扱われ得る。例えば、各超ク
ラスは、この要求を取り扱う超クラス上で定義される
「this」と名付けられたメソッドを有している。サ
ーバントは、ファットポインタを要求する特定の超クラ
スを有しているので、機能は、呼出に対する適当な「t
his」を決定することができる。第1のステップ40
4では、ほとんどの導出サーバント基底クラス上で定義
される変換操作メソッドが呼び出しされる。この変換操
作メソッドは、ほとんどの導出サーバント基底クラス上
においてのみ定義されるので、変換操作は、適当なメソ
ッドテーブルへのアクセスを許容する。変換操作は、サ
ーバントを特定超クラス型を有するファットポインタに
変換する。換言すれば、サーバントは、このファットポ
インタを生成するために用いられる。
ーバントの特定超クラスについてのオブジェクト参照
(ファットポインタ)を生成するためにサーバントから
の要求を受け取ることにより始まる。この要求は超クラ
スのメソッドによって取り扱われ得る。例えば、各超ク
ラスは、この要求を取り扱う超クラス上で定義される
「this」と名付けられたメソッドを有している。サ
ーバントは、ファットポインタを要求する特定の超クラ
スを有しているので、機能は、呼出に対する適当な「t
his」を決定することができる。第1のステップ40
4では、ほとんどの導出サーバント基底クラス上で定義
される変換操作メソッドが呼び出しされる。この変換操
作メソッドは、ほとんどの導出サーバント基底クラス上
においてのみ定義されるので、変換操作は、適当なメソ
ッドテーブルへのアクセスを許容する。変換操作は、サ
ーバントを特定超クラス型を有するファットポインタに
変換する。換言すれば、サーバントは、このファットポ
インタを生成するために用いられる。
【0060】ステップ406では、変換操作メソッド
は、サーバント用局所、及び遠隔メソッドテーブルに対
するポインタを伴うサーバントにリンクされているサー
バ代表の「オブジェクト参照取得」メソッドを呼び出
す。サーバント自身がそれに関連するメソッドを知って
おり、また、それらメソッドに対するポインタを有して
いるので、これらのメソッドテーブルは、アクセス可能
である。次にステップ408では、要求サーバントにつ
いてのファットポインタが生成される。サーバ代表は、
(既に生成されたクライアント代表を再使用することに
より、あるいは、新規にクライアント代表を生成するこ
とにより)要求サーバントについてのクライアント代表
を取得し、また、局所、または、遠隔メソッドテーブル
をこのファットポインタに関連付ける。そして、ステッ
プ410では、サーバ代表「オブジェクト参照取得」メ
ソッドは、ステップ404にて呼び出された変換操作メ
ソッドに対して新規に生成されたこのファットポインタ
にリターンする。この時点で、ファットポインタは最導
出サーバントクラスに類別される。ステップ412で
は、変換操作メソッドは、このファットポインタを特定
超クラスに関連する型に拡大する。換言すれば、ファッ
トポインタの型は、最導出クラスから、特定超クラスの
より一般的なクラスへ変更される。導出クラスはまた、
超クラスのサブクラスとも呼ばれる。すなわち、超クラ
スは導出クラスのより一般的な型である。ステップ41
2の後、機能は終了する。
は、サーバント用局所、及び遠隔メソッドテーブルに対
するポインタを伴うサーバントにリンクされているサー
バ代表の「オブジェクト参照取得」メソッドを呼び出
す。サーバント自身がそれに関連するメソッドを知って
おり、また、それらメソッドに対するポインタを有して
いるので、これらのメソッドテーブルは、アクセス可能
である。次にステップ408では、要求サーバントにつ
いてのファットポインタが生成される。サーバ代表は、
(既に生成されたクライアント代表を再使用することに
より、あるいは、新規にクライアント代表を生成するこ
とにより)要求サーバントについてのクライアント代表
を取得し、また、局所、または、遠隔メソッドテーブル
をこのファットポインタに関連付ける。そして、ステッ
プ410では、サーバ代表「オブジェクト参照取得」メ
ソッドは、ステップ404にて呼び出された変換操作メ
ソッドに対して新規に生成されたこのファットポインタ
にリターンする。この時点で、ファットポインタは最導
出サーバントクラスに類別される。ステップ412で
は、変換操作メソッドは、このファットポインタを特定
超クラスに関連する型に拡大する。換言すれば、ファッ
トポインタの型は、最導出クラスから、特定超クラスの
より一般的なクラスへ変更される。導出クラスはまた、
超クラスのサブクラスとも呼ばれる。すなわち、超クラ
スは導出クラスのより一般的な型である。ステップ41
2の後、機能は終了する。
【0061】図12は、本発明に係る発明の実施の形態
の一つにおける、サーバント、及びそれに対応するサー
バ代表を生成する機能を図示する。機能は、クライアン
トからのルックアップとは無関係に発生させられ、ある
いは、サーバントに対するアクセスを要求するクライア
ントにより発生されたルックアップに応答して発生させ
られる。図13は、第1の状況を取り扱い、図14は第
2の状態を取り扱う。サーバント、及びサーバ代表生成
機能は、ステップ801にて、それのために生成される
サーバントクラス名、あらゆる必要な引数、及びオブジ
ェクトアダプタデリゲートを受け取ることにより開始す
る。オブジェクトアダプタデリゲートは、ステップ81
0にてサーバ代表を生成するオブジェクトである。オブ
ジェクトアダプタデリゲートと呼ばれるのは、サーバ代
表を生成を委任されているからである。オブジェクトア
ダプタデリゲートは、特定のサブコントラクトを識別す
る。したがって、サーバ代表を生成する際、オブジェク
トアダプタデリゲートは、特定のサブコントラクトに関
連するサーバ代表を生成することができる。この方法で
は、生成されるサーバ代表は、サーバントとリンクされ
得、この結果、サーバントに対してこの特定サブコント
ラクトの機能性を分け与え得る。
の一つにおける、サーバント、及びそれに対応するサー
バ代表を生成する機能を図示する。機能は、クライアン
トからのルックアップとは無関係に発生させられ、ある
いは、サーバントに対するアクセスを要求するクライア
ントにより発生されたルックアップに応答して発生させ
られる。図13は、第1の状況を取り扱い、図14は第
2の状態を取り扱う。サーバント、及びサーバ代表生成
機能は、ステップ801にて、それのために生成される
サーバントクラス名、あらゆる必要な引数、及びオブジ
ェクトアダプタデリゲートを受け取ることにより開始す
る。オブジェクトアダプタデリゲートは、ステップ81
0にてサーバ代表を生成するオブジェクトである。オブ
ジェクトアダプタデリゲートと呼ばれるのは、サーバ代
表を生成を委任されているからである。オブジェクトア
ダプタデリゲートは、特定のサブコントラクトを識別す
る。したがって、サーバ代表を生成する際、オブジェク
トアダプタデリゲートは、特定のサブコントラクトに関
連するサーバ代表を生成することができる。この方法で
は、生成されるサーバ代表は、サーバントとリンクされ
得、この結果、サーバントに対してこの特定サブコント
ラクトの機能性を分け与え得る。
【0062】ステップ802では、記憶装置がサーバン
トに割り当てされる。このステップは、サーバント、及
び、それに関連する変数、ロケーション標識子等によっ
て使用されるメモリ内に現実のスペースを生成する。次
に、ステップ803では、最導出サーバントクラス名の
ためのコンストラクタメソッドが呼び出しされる。一般
的に、このコンストラクタメソッドは、サーバントの生
成を補助するために使用される。ステップ804では、
コンストラクタは、サーバントの全てのインスタンス変
数を初期化し、そして、高位基底クラスコンストラクタ
を連続して呼び出しする。各高位基底クラスは、自身の
コンストラクタメソッドを有し得るので、これらは、サ
ーバントの生成を促進するためにこのステップにて呼び
出しされる。これらの連続呼出のある時点では、IDL
発生スケルトンクラスのコンストラクタが届けられる。
IDL発生スケルトンクラスが届けられると、ステップ
806において、それは、サーバントのディスパッチメ
ソッドを表示するそれの機能ポインタ、及びサーバント
を表示するデータポインタと共にサーバント閉包を生成
する。このサーバント閉包、及びディスパッチメソッド
の使用については、米国特許出願(出願番号08/67
0,700)に記載されている。サーバント閉包は、サ
ーバントに対する呼出が実行されるときに使用される。
呼出は、閉包にアクセスし、また、サーバントに対する
ディスパッチメソッドを実行する。この方法では、サー
バント閉包は、サーバント自身に関連する適当なディス
パッチメソッドを提供する。ディスパッチメソッドは、
元のクライアント要求に応じてサーバントのメソッドに
対する現実の呼出を実行する。
トに割り当てされる。このステップは、サーバント、及
び、それに関連する変数、ロケーション標識子等によっ
て使用されるメモリ内に現実のスペースを生成する。次
に、ステップ803では、最導出サーバントクラス名の
ためのコンストラクタメソッドが呼び出しされる。一般
的に、このコンストラクタメソッドは、サーバントの生
成を補助するために使用される。ステップ804では、
コンストラクタは、サーバントの全てのインスタンス変
数を初期化し、そして、高位基底クラスコンストラクタ
を連続して呼び出しする。各高位基底クラスは、自身の
コンストラクタメソッドを有し得るので、これらは、サ
ーバントの生成を促進するためにこのステップにて呼び
出しされる。これらの連続呼出のある時点では、IDL
発生スケルトンクラスのコンストラクタが届けられる。
IDL発生スケルトンクラスが届けられると、ステップ
806において、それは、サーバントのディスパッチメ
ソッドを表示するそれの機能ポインタ、及びサーバント
を表示するデータポインタと共にサーバント閉包を生成
する。このサーバント閉包、及びディスパッチメソッド
の使用については、米国特許出願(出願番号08/67
0,700)に記載されている。サーバント閉包は、サ
ーバントに対する呼出が実行されるときに使用される。
呼出は、閉包にアクセスし、また、サーバントに対する
ディスパッチメソッドを実行する。この方法では、サー
バント閉包は、サーバント自身に関連する適当なディス
パッチメソッドを提供する。ディスパッチメソッドは、
元のクライアント要求に応じてサーバントのメソッドに
対する現実の呼出を実行する。
【0063】次に、ステップ808では、このスケルト
ンクラスコンストラクタメソッドは、引数オブジェクト
アダプタデリゲート、及び被生成サーバント閉包と共に
サーバント基底を定義する「初期化サーバ代表」メソッ
ドを呼び出しする。ステップ810では、この「初期化
サーバ代表」メソッドは、サーバ代表を生成するため
に、引数としてサーバント閉包と共に、オブジェクトア
ダプタデリゲートの「生成」メソッドを呼び出しする。
このステップは、この生成サーバント機能が要求のルッ
クアップに対応するものであるか否かに依存して異なる
方法で実行され得る。このステップを実行するための2
つの方法が、図13及び図14を参照して以下に説明さ
れる。一旦、ステップ810にてサーバント代表が生成
されると、オブジェクトアダプタデリゲート「生成」メ
ソッドは、サーバント代表をリターンする。リターンさ
れたサーバント代表は、ステップ814にて生成された
ばかりのサーバントに関連付けられる。サーバ代表は、
サーバントがサーバ代表によって提供されるサブコント
ラクト機能性にアクセスできるよう、幅広い方法でサー
バントに対して関連付けられ、あるいは、リンクされ
る。例えば、サーバントは、サーバ代表を参照するポイ
ンタ変数を含み得る。ステップ814にてサーバ代表、
及びサーバントがリンクされた後、「サーバント生成」
メソッドは終了し、呼出メソッドにリターンする。
ンクラスコンストラクタメソッドは、引数オブジェクト
アダプタデリゲート、及び被生成サーバント閉包と共に
サーバント基底を定義する「初期化サーバ代表」メソッ
ドを呼び出しする。ステップ810では、この「初期化
サーバ代表」メソッドは、サーバ代表を生成するため
に、引数としてサーバント閉包と共に、オブジェクトア
ダプタデリゲートの「生成」メソッドを呼び出しする。
このステップは、この生成サーバント機能が要求のルッ
クアップに対応するものであるか否かに依存して異なる
方法で実行され得る。このステップを実行するための2
つの方法が、図13及び図14を参照して以下に説明さ
れる。一旦、ステップ810にてサーバント代表が生成
されると、オブジェクトアダプタデリゲート「生成」メ
ソッドは、サーバント代表をリターンする。リターンさ
れたサーバント代表は、ステップ814にて生成された
ばかりのサーバントに関連付けられる。サーバ代表は、
サーバントがサーバ代表によって提供されるサブコント
ラクト機能性にアクセスできるよう、幅広い方法でサー
バントに対して関連付けられ、あるいは、リンクされ
る。例えば、サーバントは、サーバ代表を参照するポイ
ンタ変数を含み得る。ステップ814にてサーバ代表、
及びサーバントがリンクされた後、「サーバント生成」
メソッドは終了し、呼出メソッドにリターンする。
【0064】図13は、その中でクライアントからの要
求とは無関係にサーバント及びサーバ代表が生成される
図12のステップ810の具体例を図示する。例えば、
この状況は、推移オブジェクトが生成される際に発生し
得る。この具体例の最初のステップ820では、新規に
生成されたサーバントのための唯一オブジェクトキーが
生成される。このキーは、サーバントが存在するプロセ
ス内においてサーバントを唯一的に識別する。唯一キー
は、幅広い方法で生成され得る。例えば、各サーバント
が、何時それが生成されたかに基づく唯一キーを有する
ように、キーは時間式であり得る。各サーバントが増加
するカウンタに関連付けられるように、キーはカウンタ
式でもあり得る。あるいは、キーはまた、メモリ内のサ
ーバントのスペースに関係付けられた唯一アドレスにも
関連付けられる。一旦、唯一オブジェクトキーが生成さ
れると、ステップ822にて、オブジェクトキー、及び
(図12を参照して前述した先に生成された)サーバン
ト閉包がサーバント閉包ルックアップテーブルにストア
される。このルックアップテーブルは、それのオブジェ
クトキーによる、サーバントに対する将来のアクセスを
許容する。換言すれば、サーバント閉包、及びサーバン
トを発見するために、オブジェクトキーを知る将来の要
求は、このテーブルにアクセスし得る。
求とは無関係にサーバント及びサーバ代表が生成される
図12のステップ810の具体例を図示する。例えば、
この状況は、推移オブジェクトが生成される際に発生し
得る。この具体例の最初のステップ820では、新規に
生成されたサーバントのための唯一オブジェクトキーが
生成される。このキーは、サーバントが存在するプロセ
ス内においてサーバントを唯一的に識別する。唯一キー
は、幅広い方法で生成され得る。例えば、各サーバント
が、何時それが生成されたかに基づく唯一キーを有する
ように、キーは時間式であり得る。各サーバントが増加
するカウンタに関連付けられるように、キーはカウンタ
式でもあり得る。あるいは、キーはまた、メモリ内のサ
ーバントのスペースに関係付けられた唯一アドレスにも
関連付けられる。一旦、唯一オブジェクトキーが生成さ
れると、ステップ822にて、オブジェクトキー、及び
(図12を参照して前述した先に生成された)サーバン
ト閉包がサーバント閉包ルックアップテーブルにストア
される。このルックアップテーブルは、それのオブジェ
クトキーによる、サーバントに対する将来のアクセスを
許容する。換言すれば、サーバント閉包、及びサーバン
トを発見するために、オブジェクトキーを知る将来の要
求は、このテーブルにアクセスし得る。
【0065】そして、ステップ824では、オブジェク
トアダプタデリゲートに対するサーバ代表仕様が生成さ
れる。この具体例では、当初、ステップ801にて受け
取られたオブジェクトアダプタデリゲートは、既に特定
のサブコントラクトと関連付けられている。すなわち、
サーバント生成機能が呼び出しされるとき、呼出エント
リは、サーバ代表、及び、今後サーバントのために要求
されるサブコントラクトの型に対応するオブジェクトア
ダプタデリゲート内を通過する。すなわち、サブコント
ラクトY機能性を備えるサーバントが要求される場合に
は、呼出エントリは、サブコントラクトYに対応するオ
ブジェクトアダプタデリゲートを使用し、この結果、ス
テップ824にて、このオブジェクトアダプタデリゲー
トがサーバ代表を生成するとき、サーバ代表は、新規に
生成されるサーバに対して伝達可能なサブコントラクト
Y機能性を有する。各々が特定のサブコントラクトを示
すこれらのオブジェクトアダプタデリゲートは、システ
ムのスタートアップ時に生成され得る。また、このステ
ップ824では、それが、上記「非活性化」、「参照非
残存の予期」、「リボーク」、及び「オブジェクト参照
の取得」機能を実行できるように、情報はオブジェクト
アダプタからサーバ代表にパスされる。一旦、ステップ
824が完了すると、サーバ代表を生成することステッ
プは、終了し、制御は図12のステップ812にリター
ンする。
トアダプタデリゲートに対するサーバ代表仕様が生成さ
れる。この具体例では、当初、ステップ801にて受け
取られたオブジェクトアダプタデリゲートは、既に特定
のサブコントラクトと関連付けられている。すなわち、
サーバント生成機能が呼び出しされるとき、呼出エント
リは、サーバ代表、及び、今後サーバントのために要求
されるサブコントラクトの型に対応するオブジェクトア
ダプタデリゲート内を通過する。すなわち、サブコント
ラクトY機能性を備えるサーバントが要求される場合に
は、呼出エントリは、サブコントラクトYに対応するオ
ブジェクトアダプタデリゲートを使用し、この結果、ス
テップ824にて、このオブジェクトアダプタデリゲー
トがサーバ代表を生成するとき、サーバ代表は、新規に
生成されるサーバに対して伝達可能なサブコントラクト
Y機能性を有する。各々が特定のサブコントラクトを示
すこれらのオブジェクトアダプタデリゲートは、システ
ムのスタートアップ時に生成され得る。また、このステ
ップ824では、それが、上記「非活性化」、「参照非
残存の予期」、「リボーク」、及び「オブジェクト参照
の取得」機能を実行できるように、情報はオブジェクト
アダプタからサーバ代表にパスされる。一旦、ステップ
824が完了すると、サーバ代表を生成することステッ
プは、終了し、制御は図12のステップ812にリター
ンする。
【0066】図14は、図12のサーバント、及びサー
バ代表生成ステップ810の他の具体例を図示する。こ
の具体例では、サーバント、及びサーバ代表は、既にル
ックアップを発生したクライアントからの要求に対応し
て生成される。この状況は、サーバントのメソッドを実
行するためにクライアントがオブジェクト参照を停止す
るときに起こり得る。したがって、この状況では、クラ
イアントがこのオブジェクト参照の停止を要求するの
で、オブジェクト参照はマーシャルバッファから受信さ
れたものとして存在する。この具体例では、オブジェク
トアダプタデリゲートは、図13に示すシステムスター
トアップ時に生成される代わりに、呼出基準毎に生成さ
れる。この生成されたオブジェクトアダプタデリゲート
は、被検索オブジェクトのキーを参照する。また、オブ
ジェクトキーはサブコントラクト識別子(図3参照)を
含んでいるので、オブジェクトアダプタデリゲートは、
特定のサブコントラクトと関連付けられ得る。従って、
ステップ830では、オブジェクトキーを参照すること
により、オブジェクトアダプタデリゲート内に内在する
サブコントラクトに対応してサーバ代表が生成される。
他の点に関しては、このステップは図13のステップ8
24に近似する。一旦、ステップ830が完了すると、
制御は図12のステップ812に移行する。
バ代表生成ステップ810の他の具体例を図示する。こ
の具体例では、サーバント、及びサーバ代表は、既にル
ックアップを発生したクライアントからの要求に対応し
て生成される。この状況は、サーバントのメソッドを実
行するためにクライアントがオブジェクト参照を停止す
るときに起こり得る。したがって、この状況では、クラ
イアントがこのオブジェクト参照の停止を要求するの
で、オブジェクト参照はマーシャルバッファから受信さ
れたものとして存在する。この具体例では、オブジェク
トアダプタデリゲートは、図13に示すシステムスター
トアップ時に生成される代わりに、呼出基準毎に生成さ
れる。この生成されたオブジェクトアダプタデリゲート
は、被検索オブジェクトのキーを参照する。また、オブ
ジェクトキーはサブコントラクト識別子(図3参照)を
含んでいるので、オブジェクトアダプタデリゲートは、
特定のサブコントラクトと関連付けられ得る。従って、
ステップ830では、オブジェクトキーを参照すること
により、オブジェクトアダプタデリゲート内に内在する
サブコントラクトに対応してサーバ代表が生成される。
他の点に関しては、このステップは図13のステップ8
24に近似する。一旦、ステップ830が完了すると、
制御は図12のステップ812に移行する。
【0067】上述したように本発明は、コンピュータシ
ステム内にストアされているデータを必要とする種々の
プロセスステップを採用する。これらのステップは、物
理量の物理的処理を必要とする。通常、必ずしも必要で
はないが、これら物理量は、記憶、伝送、結合、比較、
及び他の処理が可能である、電気信号又は磁気信号の形
を採る。そして、時々、都合が良く、汎用されているこ
とを主たる理由として、これらの信号は、便宜上、ビッ
ト、値、要素、変数、文字、データ構造等と呼ばれるこ
とがある。しかしながら、これらの用語、及び同様な用
語の全ては、適当な物理量と関連付けられ、また、単に
これらの物理量に適用される都合の良いラベルでしかな
いことが理解されるべきである。
ステム内にストアされているデータを必要とする種々の
プロセスステップを採用する。これらのステップは、物
理量の物理的処理を必要とする。通常、必ずしも必要で
はないが、これら物理量は、記憶、伝送、結合、比較、
及び他の処理が可能である、電気信号又は磁気信号の形
を採る。そして、時々、都合が良く、汎用されているこ
とを主たる理由として、これらの信号は、便宜上、ビッ
ト、値、要素、変数、文字、データ構造等と呼ばれるこ
とがある。しかしながら、これらの用語、及び同様な用
語の全ては、適当な物理量と関連付けられ、また、単に
これらの物理量に適用される都合の良いラベルでしかな
いことが理解されるべきである。
【0068】さらに、実行される処理は、しばしば、識
別、実行、あるいは比較といった用語で呼ばれる。上述
の操作は、どれも本発明の一部を成し、これらの操作は
機械操作である。本発明の操作を実行するために有用な
機械には、一般的用途のディジタルコンピュータ、ある
いは他の同様な装置が含まれる。全ての場合において、
コンピュータの操作方法と、演算の方法そのものとは、
明確に区別されるべきである。そして、本発明は、他の
所望の物理信号を生成するために、電気信号、又は他の
物理信号を処理するコンピュータの操作方法に関する。
別、実行、あるいは比較といった用語で呼ばれる。上述
の操作は、どれも本発明の一部を成し、これらの操作は
機械操作である。本発明の操作を実行するために有用な
機械には、一般的用途のディジタルコンピュータ、ある
いは他の同様な装置が含まれる。全ての場合において、
コンピュータの操作方法と、演算の方法そのものとは、
明確に区別されるべきである。そして、本発明は、他の
所望の物理信号を生成するために、電気信号、又は他の
物理信号を処理するコンピュータの操作方法に関する。
【0069】本発明はまた、これらの操作を実行する装
置に関連し、この装置は、特に特定用途のために構成さ
れたコンピュータであり、あるいは、コンピュータに記
憶されているコンピュータプログラムによって選択的に
再構成される一般用途のコンピュータである。本明細書
にて説明される処理は、どのような特定のコンピュー
タ、あるいは他の装置に対しても、本来的に関連付けら
れるものではない。特に、個々の一般的用途の機械は、
本明細書の説明に従って書かれたプログラムと共に使用
されるであろうし、あるいは要求されるステップを実行
するために、より専用化された装置を構成することは、
より都合が良いであろう。これら多くの機械に要求され
る構造は、記述の通りである。
置に関連し、この装置は、特に特定用途のために構成さ
れたコンピュータであり、あるいは、コンピュータに記
憶されているコンピュータプログラムによって選択的に
再構成される一般用途のコンピュータである。本明細書
にて説明される処理は、どのような特定のコンピュー
タ、あるいは他の装置に対しても、本来的に関連付けら
れるものではない。特に、個々の一般的用途の機械は、
本明細書の説明に従って書かれたプログラムと共に使用
されるであろうし、あるいは要求されるステップを実行
するために、より専用化された装置を構成することは、
より都合が良いであろう。これら多くの機械に要求され
る構造は、記述の通りである。
【0070】さらに、本発明は、個々のコンピュータ実
働操作を実行するための種々のプログラム命令を含むコ
ンピュータプログラムの記録媒体に関連する。媒体、及
びプログラム命令は、本発明の目的のために特別に設計
され、構成されるであろうし、また、コンピュータソフ
トウェア技術分野の当業者にとって良く知られ、利用可
能なものであろう。コンピュータプログラムの記録媒体
の例としては、これらに限られるものではないが、ハー
ドディスク、フロッピーディスク、磁気テープのような
磁気媒体、CD−ROMディスクのような光媒体、フロ
プティカルディスクのような光磁気媒体、及び、読取り
専用記憶装置(ROM)、及び読取り書込み記憶装置
(RAM)のようなプログラム命令を記憶し、実行する
ために特別に構成されたハードウェア装置がある。
働操作を実行するための種々のプログラム命令を含むコ
ンピュータプログラムの記録媒体に関連する。媒体、及
びプログラム命令は、本発明の目的のために特別に設計
され、構成されるであろうし、また、コンピュータソフ
トウェア技術分野の当業者にとって良く知られ、利用可
能なものであろう。コンピュータプログラムの記録媒体
の例としては、これらに限られるものではないが、ハー
ドディスク、フロッピーディスク、磁気テープのような
磁気媒体、CD−ROMディスクのような光媒体、フロ
プティカルディスクのような光磁気媒体、及び、読取り
専用記憶装置(ROM)、及び読取り書込み記憶装置
(RAM)のようなプログラム命令を記憶し、実行する
ために特別に構成されたハードウェア装置がある。
【0071】プログラム命令には、例えば、コンパイラ
によって生成される機械コード、及びインタプリタを使
用するコンピュータによって実行され得る高レベルコー
ドを含むファイルが含まれる。
によって生成される機械コード、及びインタプリタを使
用するコンピュータによって実行され得る高レベルコー
ドを含むファイルが含まれる。
【0072】図15は、本発明の発明の実施の形態にし
たがう一般的なコンピュータシステムを図示する。コン
ピュータシステム100は、1次記憶装置104(一般
的に読取り専用記憶装置、又はROMと呼ばれる)、及
び1次記憶装置106(読取り書込み記憶装置、又はR
AMと呼ばれる)と結合されてるあらゆる数のプロセッ
サ102(中央演算装置、又はCPUとも呼ばれる)を
備える。当業者によって良く知られているように、1次
記憶装置104は、データ、及び命令をCPU102に
対して単一方向に転送し、1次記憶装置106は、一般
的にデータ、及び命令を双方向に転送する。これら1次
記憶装置の双方には、上述したあらゆる好適なコンピュ
ータプログラムの記録媒体が含まれ得る。
たがう一般的なコンピュータシステムを図示する。コン
ピュータシステム100は、1次記憶装置104(一般
的に読取り専用記憶装置、又はROMと呼ばれる)、及
び1次記憶装置106(読取り書込み記憶装置、又はR
AMと呼ばれる)と結合されてるあらゆる数のプロセッ
サ102(中央演算装置、又はCPUとも呼ばれる)を
備える。当業者によって良く知られているように、1次
記憶装置104は、データ、及び命令をCPU102に
対して単一方向に転送し、1次記憶装置106は、一般
的にデータ、及び命令を双方向に転送する。これら1次
記憶装置の双方には、上述したあらゆる好適なコンピュ
ータプログラムの記録媒体が含まれ得る。
【0073】大容量記憶装置108もまた、双方向転送
可能であるようにCPU102と接続されると共に、追
加データ記憶容量を提供し、また、上述したあらゆるコ
ンピュータプログラムの記録媒体を含み得る。大容量記
憶装置108は、プログラム、データ等を記憶するため
に用いられ、また、一般的に、1次記憶装置よりも遅
い、例えば、ハードディスクのような2次記憶装置であ
る。大容量記憶装置108内に保持されている情報は、
適当な場合に、一般的な方法により、仮想メモリの形で
1次記憶装置106の一部として組み込まれ得ることは
理解されるべきである。特定の大容量記憶装置、例え
ば、CD−ROM114もまた、CPU102に対して
データを単一方向に転送し得る。
可能であるようにCPU102と接続されると共に、追
加データ記憶容量を提供し、また、上述したあらゆるコ
ンピュータプログラムの記録媒体を含み得る。大容量記
憶装置108は、プログラム、データ等を記憶するため
に用いられ、また、一般的に、1次記憶装置よりも遅
い、例えば、ハードディスクのような2次記憶装置であ
る。大容量記憶装置108内に保持されている情報は、
適当な場合に、一般的な方法により、仮想メモリの形で
1次記憶装置106の一部として組み込まれ得ることは
理解されるべきである。特定の大容量記憶装置、例え
ば、CD−ROM114もまた、CPU102に対して
データを単一方向に転送し得る。
【0074】CPU102はまた、ビデオモニタ、トラ
ックボール、マウス、キーボード、マイクロホン、接触
感応ディスプレイ、トランスジューサカードリーダ、磁
気又は紙テープリーダ、タブレット、音声又は手書き認
識装置、当然のことながら他のコンピュータといった他
の周知の入力装置を含む、1つ以上の入出力装置(I/
O)110と接続されている。最後に、CPU102
は、任意に、コンピュータ、あるいは112として概念
的に示されているネットワーク接続回路を使用する通信
ネットワークと光学的に接続され得る。ネットワークと
接続されている場合、上述の方法ステップを実行するや
り方で、CPUはネットワークから情報を受け取り、ま
た、ネットワークに対して情報を出力し得ることが予期
される。上述の装置、及び機器は、コンピュータハード
ウェア、及びソフトウェアの技術分野における当業者に
馴染みのあるものであろう。
ックボール、マウス、キーボード、マイクロホン、接触
感応ディスプレイ、トランスジューサカードリーダ、磁
気又は紙テープリーダ、タブレット、音声又は手書き認
識装置、当然のことながら他のコンピュータといった他
の周知の入力装置を含む、1つ以上の入出力装置(I/
O)110と接続されている。最後に、CPU102
は、任意に、コンピュータ、あるいは112として概念
的に示されているネットワーク接続回路を使用する通信
ネットワークと光学的に接続され得る。ネットワークと
接続されている場合、上述の方法ステップを実行するや
り方で、CPUはネットワークから情報を受け取り、ま
た、ネットワークに対して情報を出力し得ることが予期
される。上述の装置、及び機器は、コンピュータハード
ウェア、及びソフトウェアの技術分野における当業者に
馴染みのあるものであろう。
【0075】以上、理解を明確にするために種々の発明
の実施の形態に基づき本発明を説明したが、本発明の趣
旨から逸脱しない範囲で種々の変更改良が可能である。
例えば、サーバ代表の特定実装が示されているが、実行
時に、特定のサブコントラクトが動的にサーバントと関
連付けられることを許容するあらゆる好適な実装が用い
られ得る。また、サーバントとサーバ代表との間のリン
クには、サーバントがサーバ代表、及びそれの機能性に
アクセスすることを許容するあらゆるリンクであり得
る。わずか2、3の機能を説明したが、サーバントは、
サーバ代表上で定義される種々の機能にアクセスし得る
ことは理解されるべきである。また、サーバントは、そ
れ自身サーバ代表の機能性を通じて、説明された機能以
外の機能を呼び出すことができることは理解されるべき
である。したがって、説明された発明の実施の形態は、
説明として捉えられるべきであり、制限として捉えられ
るべきでなく、また、本発明は本明細書中の詳細事項に
限定されるべきでなく、特許請求の範囲、及びその均等
範囲に基づいてその範囲が判断されるべきである
の実施の形態に基づき本発明を説明したが、本発明の趣
旨から逸脱しない範囲で種々の変更改良が可能である。
例えば、サーバ代表の特定実装が示されているが、実行
時に、特定のサブコントラクトが動的にサーバントと関
連付けられることを許容するあらゆる好適な実装が用い
られ得る。また、サーバントとサーバ代表との間のリン
クには、サーバントがサーバ代表、及びそれの機能性に
アクセスすることを許容するあらゆるリンクであり得
る。わずか2、3の機能を説明したが、サーバントは、
サーバ代表上で定義される種々の機能にアクセスし得る
ことは理解されるべきである。また、サーバントは、そ
れ自身サーバ代表の機能性を通じて、説明された機能以
外の機能を呼び出すことができることは理解されるべき
である。したがって、説明された発明の実施の形態は、
説明として捉えられるべきであり、制限として捉えられ
るべきでなく、また、本発明は本明細書中の詳細事項に
限定されるべきでなく、特許請求の範囲、及びその均等
範囲に基づいてその範囲が判断されるべきである
【0076】
【発明の効果】以上説明したように、本発明に係る実行
時にサービス従属代表をオブジェクトに動的に関連付け
るための機構によれば、コンパイル時におけるサーバン
トクラス、あるいは、インターフェースとの関連付けに
代えて、実行時にサブコントラクトを個々のサーバント
(オブジェクトインスタンス)に動的に関連付けること
ができる。また、種々のオブジェクトライフサイクル機
能と互換性を有することができる。
時にサービス従属代表をオブジェクトに動的に関連付け
るための機構によれば、コンパイル時におけるサーバン
トクラス、あるいは、インターフェースとの関連付けに
代えて、実行時にサブコントラクトを個々のサーバント
(オブジェクトインスタンス)に動的に関連付けること
ができる。また、種々のオブジェクトライフサイクル機
能と互換性を有することができる。
【図1】本発明の発明の実施の形態の1つに従うオブジ
ェクト要求ブローカ(ORB)部、オブジェクト開発フ
ァシリティ、及び、クライアント及びサーバオブジェク
トを有する分散オブジェクトシステムの概略構成図であ
る。
ェクト要求ブローカ(ORB)部、オブジェクト開発フ
ァシリティ、及び、クライアント及びサーバオブジェク
トを有する分散オブジェクトシステムの概略構成図であ
る。
【図2】図1に図示する分散オブジェクトシステム内に
おけるクライアントからサーバントオブジェクトへの要
求の流れを示す概念図である。
おけるクライアントからサーバントオブジェクトへの要
求の流れを示す概念図である。
【図3】図1及び図2に図示する分散オブジェクトシス
テム内での仕様に好適なオブジェクト参照の具体例を示
す概念図である。
テム内での仕様に好適なオブジェクト参照の具体例を示
す概念図である。
【図4】分散オブジェクトシステムの一例におけるサブ
コントラクト関連付け機構を模式的に示す説明図であ
る。
コントラクト関連付け機構を模式的に示す説明図であ
る。
【図5】本発明の発明の実施の形態の1つに従う動的サ
ブコントラクト関連づけ機構を示す概念図である。
ブコントラクト関連づけ機構を示す概念図である。
【図6】動的サブコントラクト関連付け機構の詳細、及
び特にサーバントオブジェクト及びサーバ代表オブジェ
クト間のリンクを示す概念図である。
び特にサーバントオブジェクト及びサーバ代表オブジェ
クト間のリンクを示す概念図である。
【図7】特定サブコントラクトに関連付けられると共
に、その上で定義される種々のメソッドを有するサーバ
代表クラスの概念図である。
に、その上で定義される種々のメソッドを有するサーバ
代表クラスの概念図である。
【図8】本発明の発明の実施の形態の1つに従う「サー
バントの非活性化」機能を実行する際に用いられるフロ
ーチャートである。
バントの非活性化」機能を実行する際に用いられるフロ
ーチャートである。
【図9】本発明の発明の実施の形態の1つに従うサーバ
ントに対する「参照非残存の予期」機能を実行する際に
用いられるフローチャートである。
ントに対する「参照非残存の予期」機能を実行する際に
用いられるフローチャートである。
【図10】本発明の発明の実施の形態の1つに従う「サ
ーバントのリボーク」機能を実行する際に用いられるフ
ローチャートである。
ーバントのリボーク」機能を実行する際に用いられるフ
ローチャートである。
【図11】本発明の発明の実施の形態の1つに従うサー
バントのための「オブジェクト参照の取得」機能を実行
する際に用いられるフローチャートである。
バントのための「オブジェクト参照の取得」機能を実行
する際に用いられるフローチャートである。
【図12】本発明の発明の実施の形態の1つに従う「生
成」サーバント機能を実行する際に用いられるフローチ
ャートである。
成」サーバント機能を実行する際に用いられるフローチ
ャートである。
【図13】図12のステップ810「サーバ代表の生
成」の1つの具体例を示すフローチャートである。
成」の1つの具体例を示すフローチャートである。
【図14】図12のステップ810「サーバ代表の生
成」の他の具体例を示すフローチャートである。
成」の他の具体例を示すフローチャートである。
【図15】本発明の実施に好適な一般的なコンピュータ
システムの概略構成図である。
システムの概略構成図である。
20…クライアント、21…スタブ、36…サブコント
ラクト層、38…トランスポート層、200…サブコン
トラクトをサーバントに動的に関連付ける機構、202
…インターフェースカウンタ、204…サーバントクラ
スM、206…サーバ代表クラスX、208…サーバ代
表クラスY、210…サーバ代表クラスZ、212…サ
ーバ代表オブジェクトX1、214…サーバ代表オブジ
ェクトY1、216…サーバ代表オブジェクトZ1、2
20…サーバントM1、224…サーバントM2、22
8…サーバントM3、232…サーバントM4、254
…スケルトン、256…サーバント基底、222,22
6,230,234…リンク。
ラクト層、38…トランスポート層、200…サブコン
トラクトをサーバントに動的に関連付ける機構、202
…インターフェースカウンタ、204…サーバントクラ
スM、206…サーバ代表クラスX、208…サーバ代
表クラスY、210…サーバ代表クラスZ、212…サ
ーバ代表オブジェクトX1、214…サーバ代表オブジ
ェクトY1、216…サーバ代表オブジェクトZ1、2
20…サーバントM1、224…サーバントM2、22
8…サーバントM3、232…サーバントM4、254
…スケルトン、256…サーバント基底、222,22
6,230,234…リンク。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スウィー ブーン リム アメリカ合衆国, カリフォルニア州, マウンテン ヴュー, スティアリン ロ ード 405, アパートメント 50 (72)発明者 ピーター ビー. ケスラー アメリカ合衆国, カリフォルニア州, パロ アルト, ヴァードサ ドライヴ 4121
Claims (21)
- 【請求項1】 サブコントラクトを組み込む分散オブジ
ェクトコンピューティングシステムにおいて実行時にサ
ービス従属代表をサーバントオブジェクトと動的に関連
付けるための関連付け機構データ構造を記録した記録媒
体であって、前記関連付け機構データ構造は、 前記複数のサブコントラクトの内の1つのサブコントラ
クトを代表する少なくとも1つのサーバ代表クラスと、
そのサーバ代表クラスは機能性を唯一、前記複数のサブ
コントラクトの内の1つのサブコントラクトに提供する
ために配置されていることと、 実行時に生成されるサーバントオブジェクトと関連付け
られるために配置される少なくとも1つのサーバント基
底クラスと、 前記サーバントオブジェクトが前記複数のサブコントラ
クトの内の1つのサブコントラクトにより提供される前
記機能性を使用し得るよう、実行時に前記サーバ代表ク
ラスと選択された前記サーバントオブジェクトの1つと
の間に実行時リンクを形成するために配置されているリ
ンク機構とを備えることを特徴とする関連付け機構デー
タ構造を記録した記録媒体。 - 【請求項2】 請求項1に記載の関連付け機構データ構
造を記録した記録媒体において、 実行時に前記サーバ代表と関連付けられるサーバ代表オ
ブジェクトが生成され、前記実行時リンクは前記選択済
サーバントオブジェクトから前記サーバ代表オブジェク
トへの位置標識子を含むことを特徴とする関連付け機構
データ構造を記録した記録媒体。 - 【請求項3】 請求項1または請求項2に記載の関連付
け機構データ構造を記録した記録媒体において、 前記サーバ代表クラスは、サーバントオブジェクトの非
活性化、サーバントオブジェクトのリボーク、及び現在
サーバントオブジェクトに対する参照が存在するか否か
の決定の内の少なくともの1つに好適なメソッドを含む
ことを特徴とする関連付け機構データ構造を記録した記
録媒体。 - 【請求項4】 請求項3に記載の関連付け機構データ構
造を記録した記録媒体において、前記サーバ代表クラス
はさらに、サーバントオブジェクトについてのオブジェ
クト参照を取得するために好適なメソッドを含むことを
特徴とする関連付け機構データ構造を記録した記録媒
体。 - 【請求項5】 複数のサブコントラクトを組み込む分散
オブジェクトコンピューティングシステムにおいて使用
するための実行時引数を記録した記録媒体であって、前
記実行時引数は、 分散オブジェクトのインスタンスの型を採るサーバント
オブジェクトと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトを代表するサーバ代表オブジェクトと、そのサーバ
代表オブジェクトはサーバ代表クラスを使用して機能性
を唯一、前記複数のサブコントラクトの内の1つのサブ
コントラクトに提供するために配置されるとともに、前
記サーバントオブジェクトと関連付けられていること
と、 前記サーバントオブジェクトが前記サーバ代表オブジェ
クトによって提供される機能性にアクセスすることを許
容する、前記サーバ代表オブジェクトと前記サーバント
オブジェクトとの間のリンクとを備えることを特徴とす
る実行時引数を記録した記録媒体。 - 【請求項6】 請求項5に記載の実行時引数を記録した
記録媒体において、 前記リンクは前記サーバントオブジェクトから前記サー
バ代表オブジェクトへの位置標識子を含むことを特徴と
する実行時引数を記録した記録媒体。 - 【請求項7】 請求項4または請求項5に記載の実行時
引数を記録した記録媒体において、 前記サーバ代表オブジェクトは、サーバントオブジェク
トの非活性化、サーバントオブジェクトのリボーク、及
び現在サーバントオブジェクトに対する参照が存在する
か否かの決定の内の少なくともの1つに好適なメソッド
を含み、これにより前記メソッドは前記サーバントオブ
ジェクトによってアクセス可能となることを特徴とする
実行時引数を記録した記録媒体。 - 【請求項8】 請求項7に記載の実行時引数を記録した
記録媒体において、前記サーバ代表オブジェクトはさら
に、前記サーバントオブジェクトによってアクセス可能
なサーバントオブジェクトについてのオブジェクト参照
を取得するために好適なメソッドに対するアクセスを提
供することを特徴とする実行時引数を記録した記録媒
体。 - 【請求項9】 分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいて使用するための分散
サーバントオブジェクトの生成方法であって、 前記複数のサブコントラクトの内の1つのサブコントラ
クトを識別するサーバントクラス名、及びオブジェクト
アダプタデリゲートを受け取るステップと、 受け取ったサーバントクラス名に応じてサーバントオブ
ジェクトを具象化するステップと、 前記オブジェクトアダプタデリゲートによって識別され
る前記複数のサブコントラクトの内の1つのサブコント
ラクトに対して機能性を唯一提供するために配置される
サーバ代表オブジェクトを生成するために、前記オブジ
ェクトアダプタデリゲートの生成メソッドを呼び出しす
るステップと、 前記サーバントオブジェクトが、前記サーバ代表を使用
して入手可能な前記複数のサブコントラクトの内の1つ
のサブコントラクトによって提供される機能性を使用で
きるように、前記生成されたサーバ代表オブジェクトを
前記サーバントオブジェクトと関連付けるステップとを
備える分散サーバントオブジェクトの生成方法。 - 【請求項10】請求項9に記載の分散サーバントオブジ
ェクトの生成方法において、前記生成メソッドは、 プロセス内の前記サーバントオブジェクトを唯一的に識
別するオブジェクトキーを生成するステップと、 前記オブジェクトキーを前記サーバントオブジェクトに
対する参照と関連するルックアップテーブル内に格納す
るステップと、 前記オブジェクトアダプタデリゲートにより識別される
前記複数のサブコントラクトの内の1つのサブコントラ
クトに対応する前記サーバ代表オブジェクトを生成する
ステップとを備えることを特徴とする分散サーバントオ
ブジェクトの生成方法。 - 【請求項11】請求項9に記載の分散サーバントオブジ
ェクトの生成方法において、 前記オブジェクトアダプタデリゲートは、サブコントラ
クト識別子を有する被受け取りオブジェクトキーに対す
る参照により前記複数のサブコントラクトの内の1つの
サブコントラクトを識別し、 前記生成メソッドは、前記サブコントラクト識別子によ
り識別される前記複数のサブコントラクトの内の1つの
サブコントラクトに対応する前記サーバ代表オブジェク
トを生成するステップを備えることを特徴とする分散サ
ーバントオブジェクトの生成方法。 - 【請求項12】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいて使用するための分散
サーバントオブジェクトのリボーク方法であって、 前記サーバントオブジェクトに関連するサーバントリボ
ークメソッドを前記サーバントオブジェクトにより呼び
出しするステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表リボー
クメソッドを呼び出しするステップと、 前記呼び出しされたサーバ代表リボークメソッドを使用
して前記サーバントオブジェクトをリボークするステッ
プとを備えることを特徴とする分散サーバントオブジェ
クトのリボーク方法。 - 【請求項13】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいてクライアントにより
使用されるサーバントオブジェクトのオブジェクト参照
の生成方法であって、 前記サーバントオブジェクトから発生する、サーバント
オブジェクトの特定超クラスについての取得オブジェク
ト参照要求を受け取るステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表オブジ
ェクトを識別するステップと、 前記サーバ代表オブジェクトに関連する取得オブジェク
ト参照メソッドを呼び出しするステップと、 前記取得オブジェクト参照メソッドにより、前記サーバ
ントオブジェクトに対するファットポインタを生成する
ステップと、 それを前記特定超クラスに関連付けるために前記ファッ
トポインタを広げるステップとを備えるオブジェクト参
照の生成方法。 - 【請求項14】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおける分散サーバントオブ
ジェクトの非活性化方法であって、 前記サーバントオブジェクトにより前記サーバントオブ
ジェクトに関連するサーバント非活性化メソッドを呼び
出しするステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表非活性
化メソッドを呼び出しするステップと、 前記サーバ代表非活性化メソッドを使用して前記サーバ
ントオブジェクトを非活性化するステップとを備える分
散サーバントオブジェクトの非活性化方法。 - 【請求項15】請求項14に記載の分散サーバントオブ
ジェクトの非活性化方法において、さらに、 前記サーバントオブジェクトについてのコールバック閉
包を生成するステップと、 前記サーバ代表非活性化メソッドに対する前記呼出と共
に、前記コールバック閉包を前記サーバ代表オブジェク
トに対してパスするステップと、 前記サーバントオブジェクトが非活性化され得るか否か
決定するステップと、 前記サーバントオブジェクトが非活性化され得ると決定
された場合には、前記コールバック閉包を実行するステ
ップとを備えることを特徴とする分散サーバントオブジ
ェクトの非活性化方法。 - 【請求項16】請求項15に記載の分散サーバントオブ
ジェクトの非活性化方法において、さらに、 前記サーバントオブジェクトを非活性化するために、前
記サーバントオブジェクトと関連するサーバント非活性
化完了メソッドを呼び出しするステップを備えることを
特徴とする分散サーバントオブジェクトの非活性化方
法。 - 【請求項17】演算処理装置と、 前記演算処理装置と結合されている入出力装置と、 前記演算処理装置と通信するとともに、サブコントラク
トを組み込む分散オブジェクトコンピューティングシス
テムにおいて実行時にサービス従属代表をサーバントオ
ブジェクトと動的に関連付けるための関連付け機構デー
タ構造を記録した記録媒体を含む記憶装置と、 前記関連付け機構データ構造は、 前記複数のサブコントラクトの内の1つのサブコントラ
クトを代表する少なくとも1つのサーバ代表クラスと、
そのサーバ代表クラスは機能性を唯一、前記複数のサブ
コントラクトの内の1つのサブコントラクトに提供する
ために配置されていることと、 実行時に生成されるサーバントオブジェクトと関連付け
られるために配置される少なくとも1つのサーバント基
底クラスと、 前記サーバントオブジェクトが前記複数のサブコントラ
クトの内の1つのサブコントラクトにより提供される前
記機能性を使用し得るよう、実行時に前記サーバ代表ク
ラスと選択された前記サーバントオブジェクトの1つと
の間に実行時リンクを形成するために配置されているリ
ンク機構とを備えるコンピュータ装置。 - 【請求項18】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいて使用するための分散
サーバントオブジェクトを生成するプログラムを記録し
た記録媒体であって、前記プログラムは、 前記複数のサブコントラクトの内の1つのサブコントラ
クトを識別するサーバントクラス名、及びオブジェクト
アダプタデリゲートを受け取るステップと、 受け取ったサーバントクラス名に応じてサーバントオブ
ジェクトを具象化するステップと、 前記オブジェクトアダプタデリゲートによって識別され
る前記複数のサブコントラクトの内の1つのサブコント
ラクトに対して機能性を唯一提供するために配置される
サーバ代表オブジェクトを生成するために、前記オブジ
ェクトアダプタデリゲートの生成メソッドを呼び出しす
るステップと、 前記サーバントオブジェクトが、前記サーバ代表を使用
して入手可能な前記複数のサブコントラクトの内の1つ
のサブコントラクトによって提供される機能性を使用で
きるように、前記生成されたサーバ代表オブジェクトを
前記サーバントオブジェクトと関連付けるステップとを
備えることを特徴とする分散サーバントオブジェクトを
生成するプログラムを記録した記録媒体。 - 【請求項19】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいて使用するための分散
サーバントオブジェクトリボークプログラムを記録した
記録媒体であって、前記プログラムは、 前記サーバントオブジェクトに関連するサーバントリボ
ークメソッドを前記サーバントオブジェクトにより呼び
出しするステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表リボー
クメソッドを呼び出しするステップと、 前記呼び出しされたサーバ代表リボークメソッドを使用
して前記サーバントオブジェクトをリボークするステッ
プとを備えることを特徴とする分散サーバントオブジェ
クトリボークプログラムを格納した記録媒体。 - 【請求項20】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおいてクライアントにより
使用されるサーバントオブジェクトのオブジェクト参照
を生成するプログラムを記録した記録媒体であって、前
記プログラムは、 前記サーバントオブジェクトから発生する、サーバント
オブジェクトの特定超クラスについての取得オブジェク
ト参照要求を受け取るステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表オブジ
ェクトを識別するステップと、 前記サーバ代表オブジェクトに関連する取得オブジェク
ト参照メソッドを呼び出しするステップと、 前記取得オブジェクト参照メソッドにより、前記サーバ
ントオブジェクトに対するファットポインタを生成する
ステップと、 それを前記特定超クラスに関連付けるために前記ファッ
トポインタを広げるステップとを備えることを特徴とす
るオブジェクト参照を生成するプログラムを記録した記
録媒体。 - 【請求項21】分散オブジェクトの管理に使用するため
の複数のサブコントラクトを備える分散オブジェクトコ
ンピューティングシステムにおける分散サーバントオブ
ジェクトを非活性化するプログラムを記録した記録媒体
であって、前記プログラムは、 前記サーバントオブジェクトにより前記サーバントオブ
ジェクトに関連するサーバント非活性化メソッドを呼び
出しするステップと、 前記複数のサブコントラクトの内の1つのサブコントラ
クトに対して機能性を唯一提供するために配置される前
記サーバ代表オブジェクトに関連するサーバ代表非活性
化メソッドを呼び出しするステップと、 前記サーバ代表非活性化メソッドを使用して前記サーバ
ントオブジェクトを非活性化するステップとを備えるこ
とを特徴とする分散サーバントオブジェクトを非活性化
するプログラムを記録した記録媒体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/670,682 US6044224A (en) | 1996-06-26 | 1996-06-26 | Mechanism for dynamically associating a service dependent representation with objects at run time |
| US08/670682 | 1996-06-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1091444A true JPH1091444A (ja) | 1998-04-10 |
Family
ID=24691422
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9170768A Pending JPH1091444A (ja) | 1996-06-26 | 1997-06-26 | 実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6044224A (ja) |
| EP (1) | EP0817037A3 (ja) |
| JP (1) | JPH1091444A (ja) |
Families Citing this family (67)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US6125383A (en) * | 1997-06-11 | 2000-09-26 | Netgenics Corp. | Research system using multi-platform object oriented program language for providing objects at runtime for creating and manipulating biological or chemical data |
| US6438616B1 (en) * | 1997-12-18 | 2002-08-20 | Sun Microsystems, Inc. | Method and apparatus for fast, local corba object references |
| GB2334353B (en) * | 1998-02-12 | 2002-08-07 | Ibm | An apparatus,method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction stat |
| US6629126B1 (en) * | 1998-03-13 | 2003-09-30 | Genuity Inc. | Framework for providing quality of service requirements in a distributed object-oriented computer system |
| US6728771B2 (en) * | 1998-03-20 | 2004-04-27 | Siemens Information And Communication Networks, Inc. | Generic transport option for transporting messages in relay or broadcast mode via combinations of ISDN B-channels or D-channels |
| US6473897B1 (en) * | 1998-04-13 | 2002-10-29 | Intel Corporation | Method and apparatus for generating multiple processor-specific code segments in a single executable |
| US6222916B1 (en) * | 1998-05-22 | 2001-04-24 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for introducing and modifying telecommunications services |
| US6490721B1 (en) * | 1998-07-14 | 2002-12-03 | Oc Systems Incorporated | Software debugging method and apparatus |
| US6351843B1 (en) * | 1998-08-31 | 2002-02-26 | International Business Machines Corporation | Dynamically inserting a function into an application executable at runtime |
| US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
| US6499137B1 (en) | 1998-10-02 | 2002-12-24 | Microsoft Corporation | Reversible load-time dynamic linking |
| US7039919B1 (en) * | 1998-10-02 | 2006-05-02 | Microsoft Corporation | Tools and techniques for instrumenting interfaces of units of a software program |
| US6629123B1 (en) | 1998-10-02 | 2003-09-30 | Microsoft Corporation | Interception of unit creation requests by an automatic distributed partitioning system |
| US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
| US6230312B1 (en) * | 1998-10-02 | 2001-05-08 | Microsoft Corporation | Automatic detection of per-unit location constraints |
| US6546553B1 (en) | 1998-10-02 | 2003-04-08 | Microsoft Corporation | Service installation on a base function and provision of a pass function with a service-free base function semantic |
| US6988271B2 (en) * | 1998-10-02 | 2006-01-17 | Microsoft Corporation | Heavyweight and lightweight instrumentation |
| US6983463B1 (en) * | 1998-10-02 | 2006-01-03 | Microsoft Corporation | Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment |
| WO2000031629A1 (en) * | 1998-11-25 | 2000-06-02 | Microsoft Corporation | Object model for object-oriented computing environments |
| US6795968B1 (en) | 1998-11-25 | 2004-09-21 | Microsoft Corporation | Dynamic object behavior for object-oriented-computing environments |
| US6304879B1 (en) | 1998-11-25 | 2001-10-16 | Microsoft Corporation | Dynamic data cache for object-oriented computing environments |
| US6907609B1 (en) * | 1999-02-01 | 2005-06-14 | Iona Technologies Plc. | Object request dispatch using matching of a segmented object key |
| US6473769B1 (en) | 1999-03-31 | 2002-10-29 | Microsoft Corporation | Property linking in object-oriented computing environments |
| GB2351370A (en) * | 1999-06-25 | 2000-12-27 | Ibm | Data processing with policed object union |
| US6609158B1 (en) * | 1999-10-26 | 2003-08-19 | Novell, Inc. | Component architecture in a computer system |
| US7725878B1 (en) | 2000-05-12 | 2010-05-25 | Oracle International Corporation | Property bundles on a per instance basis |
| US7987217B2 (en) * | 2000-05-12 | 2011-07-26 | Oracle International Corporation | Transaction-aware caching for document metadata |
| US7185005B1 (en) | 2000-05-12 | 2007-02-27 | Oracle International Corporation | Nested transactions in a file system |
| US7203709B2 (en) * | 2000-05-12 | 2007-04-10 | Oracle International Corporation | Transaction-aware caching for access control metadata |
| US7421541B2 (en) | 2000-05-12 | 2008-09-02 | Oracle International Corporation | Version management of cached permissions metadata |
| US7389493B1 (en) | 2000-05-12 | 2008-06-17 | Oracle International Corporation | Categories on a per instance basis |
| DE10105454A1 (de) * | 2001-02-07 | 2002-08-29 | Bosch Gmbh Robert | Verfahren zur automatischen Ergänzung von Software |
| US7284271B2 (en) | 2001-03-14 | 2007-10-16 | Microsoft Corporation | Authorizing a requesting entity to operate upon data structures |
| US7024662B2 (en) | 2001-03-14 | 2006-04-04 | Microsoft Corporation | Executing dynamically assigned functions while providing services |
| US20020133535A1 (en) * | 2001-03-14 | 2002-09-19 | Microsoft Corporation | Identity-centric data access |
| US7539747B2 (en) * | 2001-03-14 | 2009-05-26 | Microsoft Corporation | Schema-based context service |
| US7302634B2 (en) * | 2001-03-14 | 2007-11-27 | Microsoft Corporation | Schema-based services for identity-based data access |
| US7100148B2 (en) * | 2001-03-16 | 2006-08-29 | Sap Ag | Development computer, development program for combining components to applications, using component descriptors related to the components, method, and computer program |
| US6918110B2 (en) * | 2001-04-11 | 2005-07-12 | Hewlett-Packard Development Company, L.P. | Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code |
| US6817014B2 (en) * | 2001-04-11 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Analysis of executable program code using compiler-generated function entry points and endpoints with other sources of function entry points and endpoints |
| US7574713B2 (en) | 2001-11-05 | 2009-08-11 | Trendium, Inc. | Methods, systems, and computer program products for instantiating a device driver for communication with a device by dynamically associating the device driver at run-time with a device-specific and/or service-specific software component |
| US20030192038A1 (en) * | 2002-04-09 | 2003-10-09 | Thomas Hagmann | Linking data objects to a project development system |
| US9886309B2 (en) | 2002-06-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Identity-based distributed computing for device resources |
| US20040203891A1 (en) * | 2002-12-10 | 2004-10-14 | International Business Machines Corporation | Dynamic service binding providing transparent switching of information services having defined coverage regions |
| US7136658B2 (en) * | 2002-12-10 | 2006-11-14 | International Business Machines Corporation | High-rate proximity detection with the ability to provide notification |
| US8799003B2 (en) | 2004-05-18 | 2014-08-05 | International Business Machines Corporation | Dynamic binding of principal services in a cross-enterprise business process management system |
| US7921216B2 (en) * | 2005-02-01 | 2011-04-05 | Microsoft Corporation | System and method for building and using communication binding objects |
| US7873951B1 (en) * | 2007-08-01 | 2011-01-18 | Oracle America, Inc. | Automated object delegation |
| US9298902B2 (en) * | 2009-02-12 | 2016-03-29 | International Business Machines Corporation | System, method and program product for recording creation of a cancelable biometric reference template in a biometric event journal record |
| US8359475B2 (en) * | 2009-02-12 | 2013-01-22 | International Business Machines Corporation | System, method and program product for generating a cancelable biometric reference template on demand |
| US8242892B2 (en) * | 2009-02-12 | 2012-08-14 | International Business Machines Corporation | System, method and program product for communicating a privacy policy associated with a radio frequency identification tag and associated object |
| US8289135B2 (en) | 2009-02-12 | 2012-10-16 | International Business Machines Corporation | System, method and program product for associating a biometric reference template with a radio frequency identification tag |
| US8301902B2 (en) * | 2009-02-12 | 2012-10-30 | International Business Machines Corporation | System, method and program product for communicating a privacy policy associated with a biometric reference template |
| US8327134B2 (en) | 2009-02-12 | 2012-12-04 | International Business Machines Corporation | System, method and program product for checking revocation status of a biometric reference template |
| US9229980B2 (en) * | 2010-02-23 | 2016-01-05 | Yahoo! Inc. | Composition model for cloud-hosted serving applications |
| US8954929B2 (en) * | 2010-03-29 | 2015-02-10 | Microsoft Corporation | Automatically redirecting method calls for unit testing |
| US9811353B1 (en) * | 2010-07-29 | 2017-11-07 | Crimson Corporation | Remotely invoking dynamic classes on a computing device |
| US9665601B1 (en) | 2010-12-16 | 2017-05-30 | Crimson Corporation | Using a member attribute to perform a database operation on a computing device |
| US9141356B2 (en) | 2011-12-14 | 2015-09-22 | Microsoft Technology Licensing, Llc | Process for generating dynamic type |
| US10061626B2 (en) | 2013-06-05 | 2018-08-28 | Splunk Inc. | Application framework providing a registry for mapping names to component instances |
| US8756593B2 (en) | 2013-06-05 | 2014-06-17 | Splunk Inc. | Map generator for representing interrelationships between app features forged by dynamic pointers |
| US9594545B2 (en) | 2013-06-05 | 2017-03-14 | Splunk Inc. | System for displaying notification dependencies between component instances |
| US8756614B2 (en) | 2013-06-05 | 2014-06-17 | Splunk Inc. | Central registry for binding features using dynamic pointers |
| US8589876B1 (en) * | 2013-06-05 | 2013-11-19 | Splunk Inc. | Detection of central-registry events influencing dynamic pointers and app feature dependencies |
| US11995047B2 (en) * | 2020-04-10 | 2024-05-28 | International Business Machines Corporation | Dynamic schema based multitenancy |
| CN116340942B (zh) * | 2023-03-01 | 2024-04-30 | 软安科技有限公司 | 一种基于对象传播图和指针分析的函数调用图构建方法 |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2242293A (en) * | 1990-01-05 | 1991-09-25 | Apple Computer | Apparatus and method for dynamic linking of computer software components |
| DE69327448T2 (de) * | 1992-12-21 | 2004-03-04 | Sun Microsystems, Inc., Mountain View | Verfahren und Vorrichtung für Teilaufgaben in verteiltem Verarbeitungssystem |
| US5566302A (en) * | 1992-12-21 | 1996-10-15 | Sun Microsystems, Inc. | Method for executing operation call from client application using shared memory region and establishing shared memory region when the shared memory region does not exist |
| US5437025A (en) * | 1993-01-26 | 1995-07-25 | International Business Machines Corporation | System and method for run time configuration of objects in an object oriented computing environment |
| US5515508A (en) * | 1993-12-17 | 1996-05-07 | Taligent, Inc. | Client server system and method of operation including a dynamically configurable protocol stack |
| US5491800A (en) * | 1993-12-20 | 1996-02-13 | Taligent, Inc. | Object-oriented remote procedure call networking system |
| JP2580536B2 (ja) * | 1994-06-02 | 1997-02-12 | 工業技術院長 | オブジェクト指向言語における動的オブジェクトの管理方式 |
| US5778227A (en) * | 1995-08-01 | 1998-07-07 | Intergraph Corporation | System for adding attributes to an object at run time in an object oriented computer environment |
| US5727145A (en) * | 1996-06-26 | 1998-03-10 | Sun Microsystems, Inc. | Mechanism for locating objects in a secure fashion |
-
1996
- 1996-06-26 US US08/670,682 patent/US6044224A/en not_active Expired - Lifetime
-
1997
- 1997-06-13 EP EP97304147A patent/EP0817037A3/en not_active Withdrawn
- 1997-06-26 JP JP9170768A patent/JPH1091444A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| US6044224A (en) | 2000-03-28 |
| EP0817037A2 (en) | 1998-01-07 |
| EP0817037A3 (en) | 2003-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH1091444A (ja) | 実行時にサービス従属代表をオブジェクトに動的に関連付けるための機構 | |
| US6442620B1 (en) | Environment extensibility and automatic services for component applications using contexts, policies and activators | |
| JP3072709B2 (ja) | 要求伝達方法 | |
| US5511197A (en) | Method and system for network marshalling of interface pointers for remote procedure calls | |
| US6189046B1 (en) | Mechanism and method for merging cached location information in a distributed object environment | |
| US6718550B1 (en) | Method and apparatus for improving the performance of object invocation | |
| US6438616B1 (en) | Method and apparatus for fast, local corba object references | |
| US6687831B1 (en) | Method and apparatus for multiple security service enablement in a data processing system | |
| US5864866A (en) | Apparatus and method for providing externalization in an object-oriented environment | |
| US6633923B1 (en) | Method and system for dynamic configuration of interceptors in a client-server environment | |
| US5963947A (en) | Technique of dynamically adding functionality from a client to manipulated data at a server | |
| US5991823A (en) | Low overhead object adaptor | |
| AU638138B2 (en) | Methods and apparatus for implementing data bases to provide object-oriented invocation of applications | |
| US8010967B2 (en) | Method and system for dynamic configuration of interceptors in a client-server environment | |
| US6170018B1 (en) | Remote procedure calling using an existing descriptor mechanism | |
| EP0735472A2 (en) | Method and apparatus for conspiracy among objects | |
| EP0474339A2 (en) | Methods and apparatus for providing a client interface to an object-oriented invocation of an application | |
| JPH1063506A (ja) | タイプコードで解釈されコンパイル(編集)されたマーシャリングを可能にするトランスポートから独立した呼出しとサーバントインターフェイス | |
| Wollrath et al. | Java-centric distributed computing | |
| JPH1049381A (ja) | 複数のデータ処理要求の処理方法及び処理システム、プログラムの実行方法及びシステム | |
| WO2001073551A2 (en) | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server | |
| US6205491B1 (en) | Method and apparatus for deferred throwing of exceptions in C++ | |
| WO2000010084A2 (en) | Object load balancing | |
| US7533388B1 (en) | Method and apparatus for dynamic Stubs and Ties in RMI-IIOP | |
| US6260074B1 (en) | Method and apparatus for passing generic objects in a distributed system |