JPH10511202A - オブジェクト指向環境における回復可能プロキシ・オブジェクト - Google Patents

オブジェクト指向環境における回復可能プロキシ・オブジェクト

Info

Publication number
JPH10511202A
JPH10511202A JP9511730A JP51173097A JPH10511202A JP H10511202 A JPH10511202 A JP H10511202A JP 9511730 A JP9511730 A JP 9511730A JP 51173097 A JP51173097 A JP 51173097A JP H10511202 A JPH10511202 A JP H10511202A
Authority
JP
Japan
Prior art keywords
proxy
server
address space
client
pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP9511730A
Other languages
English (en)
Other versions
JP3595340B2 (ja
Inventor
コリア、アドリアン、マーク
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH10511202A publication Critical patent/JPH10511202A/ja
Application granted granted Critical
Publication of JP3595340B2 publication Critical patent/JP3595340B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 サーバの誤動作後にプロキシ・オブジェクト(449)の無効な使用からサーバを保護し、クライアント−サーバ分散処理システムのクライアントにおいてプロキシ・オブジェクトを透過的に再作成する機構について記載する。サーバ内のターゲット・オブジェクトの名前(455)を示す追加の属性と、その名前が現在有効であるかどうかに関する標識(459)と、ターゲット・オブジェクトを指す代替ポインタ(457)とを有するプロキシ・クラスを使用する。クライアント内のプロキシ・レジスタ・オブジェクト(155)が、サーバ内のオブジェクトを指すすべてのプロキシ・オブジェクト(449)を指すポインタを維持する。サーバの誤動作が発生し、その結果としてプロキシ・オブジェクト(449)が無効になると、プロキシ・レジスタ・オブジェクト(155)はすべてのプロキシ・オブジェクト(449)をリフレッシュさせる。

Description

【発明の詳細な説明】 オブジェクト指向環境における回復可能プロキシ・オブジェクト発明の分野 本発明は、コンピュータ化オブジェクト指向技法に関し、具体的には、サーバ にあるターゲット・オブジェクトを表すプロキシ・オブジェクトがクライアント にあり、プロキシ・オブジェクトがサーバの障害後に回復可能な、前記技法で使 用するプロキシ・オブジェクトに係わる。発明の背景 オブジェクト指向プログラミングの概要 オブジェクト指向プログラミングが開発される以前に、構造化プログラミング と呼ばれるプログラミングの一形態が開発され、今でも広く使用されている。こ の技法では、まずさまざまな関数を定義し、次にプログラムがその定義された関 数を適切な時点で呼び出してアプリケーション・プログラムの全体的な目的を実 現することから成る。このような関数は、データを操作するために使用するメソ ッドを定義するが、データ自体は定義しない。構造化プログラミングはモジュー ル化手法の機会をもたらした。これは、メンテナンスやデバッグが難しい「スパ ゲッティ・コード」を克服する重要な改 良であった。それにもかかわらず、構造化プログラミングには、プログラムによ ってモデル化される世界における概念および実体と、プログラミング言語におけ る概念との間の「意味ギャップ」や、プログラム・コードのテキスト性、コード ・モジュールの再使用可能性の限界などいくつかの欠点も残されている。 その後、オブジェクト指向プログラミングと呼ばれる新しいプログラミング・ パラダイムが開発された。この技法では、関数を定義する代わりに、「クラス」 を定義する。クラス定義によって、そのクラスの任意のインスタンスが実行する ことができるメソッドと、そのクラスのインスタンスに含まれる属性(またはデ ータ)とを定義する。オブジェクトはクラスのメンバーであり、クラス定義で定 義されているメソッドを実際に実行することができる。オブジェクトは、クラス によって定義された各属性に付随する値を持つ。オブジェクトは、ゼロまたは1 個以上の属性を持ち、そのオブジェクトに対して実行することができるゼロまた は1個以上のメソッドを持つ。 オブジェクトとのインタフェースは、メソッドを介して属性にアクセスするこ とができる方法である。そのクラスから導き出されるすべてのオブジェクトがそ のクラスのインタフェースを共有する。オブジェクトの実現部分はオブジェクト を呼び出すアプリケーションから隠蔽される。オブジェクトへのインタフェース が変わらない限り、アプリケーションに 影響を与えることなく実現部分を完全に変えることはできない。 オブジェクトが内部でどのように「見える」か、また内部で何を「行う」かを 記述する必要なしにオブジェクトの「外観」を記述するこの技法を単純化した例 として、また、そのようなオブジェクト指向プログラミングの重要な利点を例示 するための例として、オブジェクト指向手法によってモデル化することができる 普通の家庭用トースタを考えてみる。外部「インタフェース」は、トーストの所 望の焼き加減を調節するパラメータを本質的に表すつまみと、パンを入れるスロ ットと、トースタへの挿入とトースタの起動を行うレバーとから成る。重要な概 念は、この種の家電製品のエンドユーザはそれを使用するためにトースタの「内 部」を知る必要がないことである。たとえば、熱が電気によって供給されるのか 、化学薬品やその他の手段によって供給されるのかを知る必要はない。ユーザは 上記の外面部と正しくインタフェースするだけでよい。 プログラミングにおけるこの進化の利点は、上記の例を続けて用いると、トー スタをモデル化するプログラミング・コードのモジュールであるオブジェクトの 設計者が、ユーザにとって内部が見えないために、たとえばユーザがそのオブジ ェクトを使用する能力に影響を与えることなくトースタの内部要素を改良するこ とに焦点を絞ることができ、効率を向上させることができることである。したが って、より抽象的に 言うと、オブジェクト指向技法は本質的に、オブジェクトのインタフェースをオ ブジェクトの実現部分から分離する利点をもたらすものと見なすことができる。 ソフトウェア環境においては、それによって、外部の「つまみ」などやその予想 される動作が変わらない限り、アプリケーション・プログラム全体を書き直さな くてもオブジェクトの内部を書き直し、改良することができる。 本発明の理解を助けるオブジェクト技法に関するその他の一般的背景について は、デイビッドA.テイラー(David A.Taylor)による「Obj ect Oriented Technology − A Manager’ s Guide」(copyright 1990,Servio Corpo ration)を参照されたい。 オブジェクト指向プログラミングの発展に伴い、様々な組織やソフトウェア会 社によっていくつかの「オブジェクト・モデル」がさらに改良され、開発された 。オブジェクトとその外部インタフェースを定義する方法が規定され、そのよう な様々なオブジェクト・モデルによって特にカプセル化と継承の特性が規定され た。ある程度の高レベルから見れば、これらの様々なオブジェクト・モデルはき わめて類似している。たとえば、システム・オブジェクト・モデル(SOM)、 コモンLispオブジェクト・システム(CLOS)、Smalltalk、お よびC++などがある。本質的には、これらの様々なオブジェクト・モデルはオ ブジェクトが何であ るかという問いに答える規則の集まりに過ぎず、より低レベルで検討するとそれ ぞれわずかに異なった答えが出る。たとえば、言語構文とカプセル化および継承 の機能はオブジェクト・モデルによって異なる。 これらの相違の直接の結果として、異なるオブジェクト指向言語およびオブジ ェクト・モデルの使用可能性により生じる1つの問題は、そのような言語の混合 で書かれたオブジェクト・プログラム間のインターオペラビリティを実現するこ とができないことであった。この問題は、オブジェクト技法の重要な利点の1つ であるコードの再使用可能性に悪影響を与える。業界を悩ませるこの問題を解決 しようとして、委員会は共通オブジェクト要求ブローカ・アーキテクチャ(CO RBA)に到達した。これには標準化インタフェース定義言語(IDL)が含ま れていた。業界ではオブジェクトインタフェースをどのように規定するか、すな わち、オブジェクト・インタフェースを定義する標準に関して本質的に合意に達 し、その結果、1つのベンダーによって定義されたオブジェクトを他のベンダー が使用することが可能になった。「The Common Object Re quest Broker:Architecture and Specif ication」(OMG Document Number 91.12.1 Revision1.1)を参照されたい。 オブジェクト要求ブローカ(ORB) CORBAアーキテクチャで記述されたオブジェクト要求ブローカ(ORB) は、UNIXオペレーティング・システム環境で作業をする人には周知のリモー ト・プロシージャ・コール(RPC)に似ている(UNIXはX/Open C O.Ltd.によって独占的にライセンス許諾される商標である)。 従来技術のシステムを第1図および第2図に示す。 第1図は、クライアント/サーバ環境にある従来技術のオブジェクト要求ブロ ーカを示すブロック図である。 第2図は、DSOMと呼ばれる従来技術の環境を示すブロック図である。 第1図に、ORBを含むクライアント/サーバ環境を示す。このORBは2つ の部分に分かれており、そのうちの部分50はORBを使用して各クライアント で実行され、部分52はORBをサポートする各サーバで実行される。RPCと 同様に、ORBは1つのアドレス空間53で稼働しているクライアント・アプリ ケーション48が別のアドレス空間54のオブジェクト51と通信することがで きるようにする機構である。他方のアドレス空間54、すなわちクライアント・ アプリケーション48が実行されているアドレス空間と同じアドレス空間53で はないアドレス空間にあるオブジェクト51を「リモート」オブジェクトと呼ぶ 。クライアント・アプリケーション48と同じアドレス空間53にあるオブジェ クトを「ローカル」オブジェクトと呼ぶ。ORB50は1つのアドレス空間53 内のクライアント・アプリケーション48からの呼出しを代行受信し、それをネ ットワーク・プロトコルにカプセル化し、別のアドレス空間54内のターゲット ・オブジェクト51に合わせて呼出しをデコードし、その結果を呼び出し側クラ イアント・アプリケーション48に返す。これによって、一方のアドレス空間( ローカル)で稼働しているクライアント・アプリケーション48が他方のアドレ ス空間(リモート)内のオブジェクト51と通信することができる。ORBは、 オブジェクト指向プログラミングによって得られる高度の柔軟性と能力を備える ように設計されている点で、RPCが改良されたものである。 「オブジェクト・モデル」は様々な組織やソフトウェア会社によって開発され ている。オブジェクト・モデルはオブジェクトとその外部インタフェースの定義 の仕方を規定する。このようなオブジェクト・モデルの1つは、IBM Corporatio nのシステム・オブジェクト・モデル(SOM)である。SOMでは、オブジェ クトを使用するすべてのアプリケーションはそれらのオブジェクトが入っている 1つのアドレス空間内で実行される。SOM内で作成されるものは、分散システ ム・オブジェクト・モデル(DSOM)と呼ばれるオブジェクト・クラスのフレ ームワークである。DSOMでは、1つのアドレス空間内の(クライアントで稼 働している)アプリケーションは別のアドレス空間(サーバに属するアドレス空 間 など)内のオブジェクトにアクセスすることができる。これらのアドレス空間は 同じシステムと異なるシステムのどちらにあってもよい。実際には、システムは 同じプラットフォームで稼働している必要はない。たとえば、OS/2システム 上のアドレス空間で稼働しているクライアント・アプリケーションがAIX/6 000システム上のアドレス空間にあるオブジェクトにアクセスすることができ 、その逆も可能である。SOMとDSOMの両方については、IBM Corporation が発行している「SOMobject:A Practical Introd uction to SOM and DSOM」(Copyright 19 94,Order no.GG24−4357−00)に記載されている。 上記のシステム・オブジェクト・モデル(SOM)は、CORBAとIDLに 準拠した1つのオブジェクト・モデルである。準拠とは、SOMオブジェクトが CORBAのセマンティクスに従っており、SOMオブジェクトがIDL構文で 定義されているという意味である。 DSOMのフレームワークは、ターゲット・オブジェクトがインスタンス化さ れる場所やプラットフォームのタイプをクライアント・プログラマが知らなくて も済むようにするオブジェクト実現部を備える。このプロセス間通信に使用され る通信機構は、プログラマには見えないように完全に隠蔽される。 クライアント−サーバ・アーキテクチャ クライアント−サーバ・アーキテクチャでは、アプリケーション・プログラム は個別の構成要素として実行される個別のタスクに分けられる。各構成要素には クライアントまたはサーバの役割が割り当てられる。1つの構成要素は、ある目 的のためにはサーバの役割を果たし、他の目的のためにはクライアントの役割を 果たすことができる。各構成要素は独立して動作し、特定の責任を担う。クライ アントの役割が割り当てられた構成要素は、サーバ・プロセス内のオブジェクト に対するメソッド呼出しを行うことによって、サーバにサービスを要求する。サ ーバの役割が割り当てられた構成要素は、それらのメソッド呼出しを受け取り、 該当するオブジェクトに対してそれらのメソッド呼出しを行い、その結果をクラ イアントに返すことによってサービスを提供する。クライアントとサーバは事前 定義されたプロトコルを使用してメッセージを交換する。サーバは多くのクライ アントにサービスを提供することができ、クライアントは多くのサーバにサービ スを要求することができる。 プロキシ・オブジェクト プロキシ・オブジェクトとは、リモート・ターゲット・オブジェクトのローカ ル表現である。プロキシ・オブジェクトはターゲット・オブジェクトのインタフ ェースを継承し、その結果、同じメソッドに応答する。プロキシ・オブジェクト で呼び出されたメソッドはローカルでは実行されず、実ターゲット・オブジェク トに転送されて実行される。クライアントで稼働しているプログラムは常に、各 リモート・オブジェクトが稼働しているサーバ内の各リモート・オブジェクトの ローカル・プロキシ・オブジェクトをそのクライアント内に持っている。プロキ シ・オブジェクト内には、ターゲット・オブジェクトが入っているサーバ内の記 憶場所を指すポインタが含まれている。プロキシ・オブジェクトにはターゲット ・オブジェクトの名前は含まれない。プロキシ・オブジェクトは、リモート・サ ーバに対してリモート・オブジェクトに対するメソッド呼出しの要求が行われる と常に、DSOM実行時環境によって作成される。 DSOM環境 クライアント・プロセスはサーバ・プロセス内のオブジェクトについてメソッ ド呼び出しを行う。これらのメソッド呼び出しは、たとえば属性に付随する値の 入手(読取り)や属性に付随する値の設定(書込み)を行うことができる。サー バ・プロセスはこれらのメソッド呼び出しを受け取り、該当するオブジェクトに ついてそれらを呼び出し、クライアントに結果を返す。第2図にDSOM環境の 構成要素の一部の超高水準図を示す。クライアント・アドレス空間53はDSO Mオブジェクト・マネージャ303と呼ぶオブジェクトを含む。このオブジェク トは、サーバ・オブジェクト313の( 後述する)プロキシ・オブジェクト305を指すポインタを返すことによって、 クライアント・アプリケーション(第1図の48)がサーバ54を見つけ出すの を支援する。クライアントは次に、そのサーバ54上で事前定義されているクラ スのオブジェクト51のインスタンスを作成したり、そのサーバ上にすでに存在 するオブジェクト51へのアクセスを獲得したり、そのサーバ54上のオブジェ クト51が不要になった場合にそれを破棄したりするために、サーバ・オブジェ クト313に対するメソッドを(そのプロキシ・オブジェクト305を介して) 呼び出す。 クライアント・アプリケーション(第1図の48)は、サーバ・プロキシ・オ ブジェクト305に対して呼出しを行い、メソッド呼出しを行いたいオブジェク ト51のある場所を見つけ出す。サーバ・プロキシ・オブジェクト305は、サ ーバ・オブジェクト313を呼び出してサーバ内のターゲット・オブジェクト5 1の記憶場所を判断する。サーバ・オブジェクトは、この情報をネーム・サーバ 317から入手する。ネーム・サーバの機能はオブジェクト名が与えられた場合 に記憶場所を示すことである。その機能はUNIXオペレーティング・システム 環境の業者には周知である。サーバ・オブジェクト313は、サーバ・プロキシ ・オブジェクト305に対してターゲット・オブジェクト51の記憶場所を示す 。次にクライアント・アドレス空間53内にターゲット・オブジェクト51のプ ロキシ・オブジェクト49が作成される 。そうすると、ローカル・クライアント・アプリケーションは、ローカル・プロ キシ・オブジェクト49に対して、リモート・ターゲット・オブジェクト51で あるかのようにメソッド呼出しを行うことができる。DSOMは、そのメソッド 呼出しをサーバ・アドレス空間54に渡し、そこでターゲット・オブジェクト5 1に対してメソッド呼出しが行われ、その結果がローカル・クライアント・アプ リケーションに返される。 サーバまたはクライアントあるいはその両方の役割を果たすどのシステム上で も、「somdd」と呼ばれる別個のデーモン・プロセス341がアクティブに なっていなければならない。このプロセスは、サーバ・プロセスの開始、常時使 用可能でなければならないサービスの提供、およびクライアント・プロセスとサ ーバ・プロセスとの間のバインディングの作成の際の手段となる。「デーモン・ プロセス」という用語とその機能は、UNIXオペレーティング・システム環境 の業者には周知であろう。このデーモン・プロセスは本発明ではこれ以上の役割 を果たさない。 DSOM環境に必要な2つの追加の機能がある。それは、インタフェース・リ ポジトリ321とインプリメンテーション・リポジトリ331である。 インタフェース・リポジトリ321は、オブジェクト・インタフェース定義を 記憶するデータベースである。インタフェース・リポジトリにはクラス・インタ フェース定義(メソ ッドのパラメータと戻り値)が登録される。インタフェース・リポジトリは本発 明では役割を果たさない。インプリメンテーション・リポジトリには、サーバ・ インプリメンテーションとそれがサポートするクラスが登録される。すなわち、 サーバおよびクラスと、DSOMがオブジェクト・サーバを見つけ出して起動す るのに必要な属性(サーバ・プログラム名、サーバがあるマシンのホスト名など )がインプリメンテーション・リポジトリに登録される。 持続性 持続オブジェクトとは、そのオブジェクトに付随する属性が不揮発性記憶装置 に記憶され、それを作成したプロセスが終了した後でも使用可能なオブジェクト である。持続性でないオブジェクトは、そのオブジェクトの属性に付随する属性 が不揮発性記憶域に記憶されておらず、そのオブジェクトを作成したプロセスが 終了した後は使用することができない。サーバがクラッシュした場合、非持続性 オブジェクトは復元されないが、持続性オブジェクトはサーバが回復可能なサー バであれば復元され、したがって誤動作が起こった後でも再始動される。 サーバ誤動作 第2図を参照すると、サーバ54が誤動作した場合、サーバ・アドレス空間5 4にあるターゲット・オブジェクト51 を指すクライアント・アドレス空間53にあるプロキシ・オブジェクト49内の 参照は無効になる。サーバ54はクライアント・アプリケーション(第1図の4 8)がオブジェクトを使用することができるようにオブジェクトをメモリに再ロ ードする。サーバ54は、誤動作が起こる前にロードされていた場所とは異なる 場所にあるメモリにオブジェクト51を再ロードすることができる。オブジェク ト51が特にクライアント・アプリケーション(第1図の48)の要求によって ロードされていた場合、すなわち持続オブジェクトでない場合、サーバ54はオ ブジェクト51をメモリに再ロードすることがまったくできない。このいずれの 状況でも、サーバ54内のターゲット・オブジェクト51を指すプロキシ・オブ ジェクト49内に含まれる参照は無効になる。プロキシ・オブジェクト49を使 用すると、参照されているオブジェクトが誤ったオブジェクトであることなどを 示すエラー条件になる。オブジェクト要求ブローカの実施態様によっては、これ によってサーバ内のメモリの破壊や、サーバをさらに再始動させる必要があるサ ーバの誤動作など、重大な影響が生じる可能性がある。 クライアント・アプリケーション48は、そのプロキシ・オブジェクト49の うちの1つまたは複数が無効になったことを示すエラー条件を受け取った場合、 以下のステップのいずれかを実行する必要がある。 A.ターゲット・オブジェクト51が持続オブジェクトでな かった場合、クライアント・アプリケーション48はサーバ54内に新しいター ゲット・オブジェクト51を作成する必要がある。クライアント・アプリケーシ ョン48はサーバ・プロキシ・オブジェクト305を呼び出し、作成するオブジ ェクトのクラスを指定して新しいターゲット・オブジェクト51を作成するよう に要求する。サーバ・プロキシ・オブジェクト305はサーバ・オブジェクト3 13を呼び出し、サーバ54内のターゲット・オブジェクト51の記憶場所を判 断する。サーバ・オブジェクト313はターゲット・オブジェクト51の記憶場 所をサーバ・プロキシ・オブジェクト305に送る。次に、クライアント・アド レス空間53内にターゲット・オブジェクト51のプロキシ・オブジェクト49 が作成される。プロキシ・オブジェクト49には、ターゲット・オブジェクト5 1を見つけることできるサーバ54のメモリ内の場所を指す参照が含まれる。 B.ターゲット・オブジェクトが持続性だった場合、クライアント・アプリケー ション48はターゲット・オブジェクト51が入っているサーバ54のメモリ内 の場所を指す参照を含む新しいプロキシ・オブジェクト49を作成する必要があ る。 サーバ54が誤動作した場合、上記のステップを行うことによって、クライア ント・アドレス空間53にあるプロキシ・オブジェクト49からターゲット・サ ーバ54にあるすべてのターゲット・オブジェクト51を指すすべての参照をリ フレッシュしなければならない可能性が高い。これは、典型的なクライアント・ アプリケーション48にとって重大な作業である。クライアント・アプリケーシ ョン48は、アドレス空間全体の様々な場所にあるプロキシ・オブジェクト49 を指すポインタを持っており、以下のタスクを行う必要がある。 1.サーバ54の誤動作の前にはターゲット・オブジェクト51を指す有効な参 照であったが今は無効になっているサーバ54内の記憶場所を指す参照を含む古 いプロキシ・オブジェクト49を破棄する必要がある。 2.古い各プロキシ・オブジェクトに対応する新しいプロキシ・オブジェクト4 9を作成する必要がある。これらの新しいプロキシ・オブジェクト49は、それ に含まれている参照が、サーバ54が誤動作後に再始動されたために得られたサ ーバ54内のターゲット・オブジェクト51を指す有効な参照である点を除けば 、古いプロキシ・オブジェクトに対応している。 3.クライアント・アドレス空間53にあるプロキシ・オブジェクト49を指す クライアント・アプリケーション内のすべてのポインタは、ステップ1で破棄さ れており、ステップ2で作成されたそれに対応する新しいプロキシ・オブジェク ト49を指すポインタに更新する必要がある。このステップでは、そのポインタ を更新する必要のあるアプリケーションに固有の知識が必要である。 サーバが誤動作した場合、サーバにあるターゲット・オブジェクトを指す、ク ライアントにあるプロキシ・オブジェクト内の参照は無効になる。リモート・サ ーバがもはや存在しないため、クライアントが無効な参照を使用しようとすると オブジェクト要求ブローカはタイムアウト・エラーを発生させる。 無効なプロキシ・オブジェクトの使用の防止 DSOMフレームワークを使用して実施されたサーバはすべてサーバ・オブジ ェクトを持っており、着信メッセージはすべてそのサーバ・オブジェクトに対し て送られる。このオブジェクトはそのメッセージをその実際の宛先にディパッチ する。この実際の宛先は同じDSOMサーバ内の別のオブジェクトである。無効 なプロキシ・オブジェクトの使用を防止する方法は、DSOMサーバがプロキシ ・オブジェクトに付随するタイムスタンプを調べてDSOMサーバ自体に付随す るタイムスタンプと突き合わせする何らかの基本検査を行い、DSOMに付随す るタイムスタンプがプロキシ・オブジェクトに付随するタイムスタンプより遅い 場合はエラー条件を返すことである。同様の検査は、他のオブジェクト要求ブロ ーカを使用するシステムでも行うことができる。 これらの検査によって、エラーが発生したことと、プロキシ・オブジェクト内 に含まれる参照が無効であることは検出されるが、そのエラーを修正する方法に はならない。参照は 、クライアント・アプリケーションに入っているプロキシ・オブジェクト内の参 照を修正するアプリケーション固有の知識とコードを使用して修正することがで きる。 「Object replacement using dynamic p roxy updates」(S.Menon,R.J.LeBlanc Jr 、Dist.Syst.Engng1(1994)pp.271−279)では 、ターゲット・オブジェクトを指すプロキシ・オブジェクト参照が無効であるこ とを示すエラーを受け取ると、プロキシ・オブジェクトがネーム・サーバに対し て更新された参照を要求するオブジェクト置換方式が開示されている。低水準事 象を使用してエラーを検出し、プロキシ・オブジェクトを更新する。このオブジ ェクト置換方式は特にClouds分散オペレーティング・システムと共に使用 するものである。記載されている方式はその他のオペレーティング・システムや オブジェクト要求ブローカ一般では機能しない。発明の開示 したがって本発明は、クライアント・アドレス空間にある回復可能プロキシ・ オブジェクトがサーバ・アドレス空間内のターゲット・オブジェクトを指すポイ ンタを有し、前記プロキシ・オブジェクトにターゲット・オブジェクトの名前と 、プロキシ・オブジェクトの妥当性に関する標識と、前記ターゲット・オブジェ クトの代替プロキシとを格納するステッ プと、前記プロキシ・オブジェクトがそれ自体を、前記プロキシ・オブジェクト を指す参照ポインタを維持するプロキシ・レジスタ・オブジェクトに登録するス テップと、前記ターゲット・オブジェクトの各呼出しの前に前記プロキシ・オブ ジェクトがプロキシ・オブジェクトの妥当性を検査するステップと、前記検査に 応答して、有効な場合はプロキシ・オブジェクトを使用し、無効な場合は代替プ ロキシを使用するステップと、前記サーバ・アドレス空間における誤動作に応答 して、前記プロキシ・レジスタ・オブジェクトが前記プロキシ・オブジェクトの それぞれに前記サーバ内のターゲット・オブジェクトの有効な代替プロキシを入 手させ、前記プロキシ・オブジェクトが無効であることを示させ、有効な代替プ ロキシを指すポインタを記憶させるステップとを特徴とする、分散オブジェクト 指向コンピューティングの方法を提供する。 第1の実施例では、サーバ・アドレス空間とクライアント・アドレス空間が双 方向通信リンクによってリンクされ、サーバ・オブジェクトがクライアント・ア プリケーションに対して、サーバ・アドレス空間内にあるターゲット・オブジェ クトの有効な代替プロキシを入手することによって各プロキシ・オブジェクトを リフレッシュするように要求する。 第2の実施例では、クライアント・アプリケーションは、サーバ・アドレス空 間にあるターゲット・オブジェクトにアクセスする際にエラー標識を受け取ると 、サーバ・アドレス 空間にあるターゲット・オブジェクトの有効代替プロキシを入手することによっ て各プロキシ・オブジェクトをリフレッシュする。 分散オブジェクト指向システムはCORBA準拠システムであり、分散オブジ ェクト指向コンピュータ・システムはDSOMクラス・ライブラリを使用するこ とが好ましい。しかし、本発明はそのようなシステムでの応用やそのようなクラ ス・ライブラリの使用には限定されない。たとえば、分散オブジェクト指向シス テムはマイクロソフトのコンポーネント・オブジェクト・モデル(COM)に準 拠していてもよい。また、分散オブジェクト環境(DOE)としてSunSof tから、およびORBプラスとしてヒューレット・パッカードCo.から入手可 能な、分散オブジェクト管理機能(DOMF)を使用することもできる。 本発明は、クライアント・アドレス空間内のプロキシ・オブジェクトがサーバ ・アドレス空間内のターゲット・オブジェクトを指す一次ポインタを有し、それ によってプロキシ・オブジェクトに対する呼出しの結果、対応するターゲット・ オブジェクトが呼び出される分散オブジェクト指向コンピューティングの方法で あって、サーバ・アドレス空間における誤動作に応答して、前記ターゲット・オ ブジェクトの再配置を引き起こすステップと、再配置されたターゲット・オブジ ェクトを指すように前記プロキシ・オブジェクトを回復するステップとを含み、 前記各プロキシ・オブジェクトに前記ア ドレス空間内のネーム・サーバから前記再配置されたターゲット・オブジェクト を指す有効な代替ポインタを入手させ、記憶させるステップと、前記一次ポイン タが無効であり、前記代替ポインタを使用すべきであることを示す妥当性フラグ を前記プロキシ・オブジェクト内に作成するステップとをさらに含み、それによ ってプロキシ・オブジェクトに対する呼出しの結果として該当するターゲット・ オブジェクトが呼び出されることを特徴とする方法も提供する。 分散オブジェクト指向コンピュータ・システムがDSOMクラス・ライブラリ を使用する好ましい実施例では、回復可能プロキシ・オブジェクトはSOMDC lientproxyのサブクラスであり、DSOMは通信機構である。サブク ラス(または子クラス)はそのスーパークラス(または親クラス)からすべての 属性とメソッドを継承する。SOMDClientProxyはDSOMの一部 として事前定義されたオブジェクト・クラスである。さらに、プロキシ・レジス タ・オブジェクトはメタクラスSOMMSingleInstanceを持つS OMオブジェクトであることが好ましい。これは、プロキシ・レジスタ・オブジ ェクトがクラスのメンバであり、そのクラス自体がメタクラスSOMMSing leInstanceから派生していることを意味する。このメタクラスによっ て、そのメタクラスから派生した各クラスの単一のインスタンスだけが作成され るように保証される。このようにして派生したクラスのインスタンスをさらに作 成する要求を行っても、すでに作成済みのインスタンスを指すポインタが返され るだけである。 本発明は、1つまたは複数のプロキシ・オブジェクトを有し、サーバ・アドレ ス空間とクライアント・アドレス空間を含む分散オブジェクト指向コンピュータ ・システムも提供する。サーバ・アドレス空間は、アドレス空間内にあり、クラ イアント・アプリケーションがそれに対して操作を行うことができるターゲット ・オブジェクトと、クライアント・アドレス空間内のクライアント・アプリケー ションとの通信を可能にするオブジェクト要求ブローカと、クライアント・アプ リケーションからの要求に応答するサーバ・オブジェクトとを有する。クライア ント・アドレス空間は、アドレス空間内にあり、クライアント・アドレス空間に ある1つまたは複数のオブジェクトに対して操作を行うクライアント・アプリケ ーションと、サーバ・アドレス空間内のオブジェクトとの通信を可能にするオブ ジェクト要求ブローカと、各プロキシ・オブジェクトがサーバ・アドレス空間内 のターゲット・オブジェクトの場所を指すポインタを含む1つまたは複数のプロ キシ・オブジェクトとを有する。 このシステムは、1つまたは複数のプロキシ・オブジェクトのそれぞれが、サ ーバ・アドレス空間にあるターゲット・オブジェクトの名前と、ターゲット・オ ブジェクトを指す代替ポインタと、ターゲット・オブジェクトを参照するために プロキシと代替ポインタのどちらを使用すべきかを示す妥当 性フラグとをさらに含むことを特徴とする。クライアント・アドレス空間は、ク ライアント・アドレス空間内にあるプロキシ・オブジェクトを指す参照ポインタ を維持するプロキシ・レジスタ・オブジェクトと、サーバ・アドレス空間におけ る誤動作の後に1つまたは複数のプロキシ・オブジェクトを更新する手段とをさ らに含む。図面の簡単な説明 以下に本発明の実施例について例として添付図面を参照しながら説明する。 第1図は、クライアント/サーバ環境にある従来技術のオブジェクト要求ブロ ーカを示すブロック図である。 第2図は、従来技術のDSOM環境を示すブロック図である。 第3図は、本発明と共に使用するのに適した従来技術のコンピュータ・システ ムを示す図である。 第4図は、第1図のクライアント/サーバ環境にある、本発明によるプロキシ ・オブジェクトとプロキシ・レジスタ・オブジェクトを示す図である。 第5図は、第1図のクライアント/サーバ環境で使用される従来技術のプロキ シ・オブジェクトの構築を示す図である。 第6図は、第8図および第9図のクライアント/サーバ環境で使用する、本発 明によるプロキシ・オブジェクトの構築 を示す図である。 第7図は、第6図により構築されたプロキシ・オブジェクトを示す図である。 第8図は、クライアントとサーバの間に双方向リンクを有するシステムにおい て実施された、本発明による回復可能プロキシ・オブジェクトの第1の実施例を 含むクライアント/サーバ環境を示す図である。 第9図は、クライアントとサーバの間に双方向通信リンクを持たないシステム において実施された、本発明による回復可能プロキシ・オブジェクトの第2の実 施例を含むクライアント/サーバ環境を示す図である。発明の詳細な説明 本発明を実施することができる適合するハードウェア 本発明は、いくつかの異なるオペレーティング・システム下にある様々なコン ピュータまたはコンピュータの集合上で実行することができる。コンピュータは 、たとえばパーソナル・コンピュータ、ミニ・コンピュータ、メインフレーム・ コンピュータ、または他のコンピュータの分散ネットワーク内で稼働するコンピ ュータとすることができる。特定のコンピュータの選定はメモリおよびディスク の必要記憶容量によってのみ限定されるが、本発明ではIBM PS/2シリー ズのコンピュータを使用することができる(IBMはIBM Corporationの登録商 標であり、PS/2は商標である)。IB MのPS/2シリーズ・コンピュータの詳細については、Technical Reference Manual Personal System/2(M odel 80)(IBM Corporation Part No.68X 2256 Order Number S68X−2254)を参照されたい 。IBM PS/2パーソナル・コンピュータで実行することができるオペレー ティング・システムはIBMのOS/2 2.0であり、IBM OS/2 2 .0オペレーティング・システムの詳細については、OS/2 2.0 Tec hnical Library,Programming Guide Vol .1,2,3 Version 2.00(Order Nos.10G626 1,10G6495、10G6494)を参照されたい(OS/2はIBM Corpor ationの商標である)。 代替実施例では、コンピュータ・システムはAIXオペレーティング・システ ム上で稼働するIBM RISC System/6000ラインのコンピュー タとすることができる(RISC System/6000およびAIXはIBM Corporationの商標である)。RISC System/6000の様々なモデ ルについては、たとえばRISC System/6000,7073および7 016 POWERstation and POWERserver Har dware Technical Reference(Order No.S A23−2644−00)など、IBM Corp orationの多くの刊行物に記載されている(POWERstationおよびP OWERserverはIBM Corporationの商標である)。AIXオペレーティ ング・システムについては、General Concepts and Pr ocedure−−AIX Version3 for RISC Syste m/6000(Order No.sc23−2202−00)およびIBM Corp orationのその他の刊行物に記載されている。 第3図には、システム・ユニット11と、キーボード12と、マウス13と、 表示装置14を含むコンピュータ10のブロック図が図示されている。システム ・ユニット11は、1本または複数のシステム・バス21を含み、システム・バ スには様々な構成要素が接続され、それによって様々な構成要素間の通信を行う 。マイクロプロセッサ22がシステム・バス21に接続され、やはりシステム・ バス21に接続された読取り専用メモリ(ROM)23とランダム・アクセス・ メモリ(RAM)24によってサポートされている。IBM PS/2シリーズ のコンピュータのマイクロプロセッサは、386または486マイクロプロセッ サを含むインテル・ファミリのマイクロプロセッサのうちの1つである。しかし 、68000、68020、または68030マイクロプロセッサなどのモトロ ーラのマイクロプロセッサ・ファミリや、PowerPCチップなどのIBM製 の様々な縮小命令セット・コンピュータ(RISC)マイクロプロセッサその他 のマイクロプロセッサ、またはヒューレット・パッカード、サン、モトローラお よびその他のマイクロプロセッサなど、他のマイクロプロセッサもこの特定のコ ンピュータで使用することができる。 ROM23は、基本的ハードウェア動作を制御する基本入出力システム(BI OS)も含む。RAM24は、オペレーティング・システムとアプリケーション ・プログラムがロードされるメイン・メモリである。メモリ管理チップ25がシ ステム・バス21に接続され、RAM24とハードウェア・ディスク・ドライブ 26とフロッピィ・ディスク・ドライブ27との間のデータの受渡しを含む直接 メモリ・アクセス操作を制御する。システム・バス21にはCD ROM32も 結合され、たとえばマルチメディア・プログラムやプレゼンテーションなど大量 のデータを記憶するために使用される。 このシステム・バス21には、様々な入出力コントローラ、キーボード・コン トローラ28、マウス・コントローラ29、ビデオ・コントローラ30、および オーディオ・コントローラ31も接続される。当然ながら、キーボード・コント ローラ28はキーボード12のハードウェア・インタフェース、マウス・コント ローラ29はマウス13のハードウェア・インタフェース、ビデオ・コントロー ラ30は表示装置14のハードウェア・インタフェース、オーディオ・コントロ ーラ31はスピーカ15aおよび15bのハードウェア・インタフェース機能を 備える。トークン・リンク・アダプタな どの入出力コントローラ40によって、他の同様に構成されたデータ処理システ ムとネットワーク46を介して通信することができる。 本発明の好ましい実施例の1つは、大体上述のように構成された1つまたは複 数のコンピュータ・システムのランダム・アクセス・メモリ24に入っている1 組の命令48〜52としての実施態様である。この1組の命令は、コンピュータ ・システムが必要とするまで、たとえばハードウェア・ディスク・ドライブ26 、または最終的にCD−ROM32で使用される光ディスクまたは最終的にフロ ッピィ・ディスク・ドライブ27で使用されるフロッピィ・ディスクなどの取り 外し可能メモリなど、別のコンピュータ・メモリに記憶することができる。OR Bを使用して相互に結合されるメモリ・アドレス空間は、ネットワーク46を介 して通信する別々のシステムに存在することもでき、第3図に示すように1つの コンピュータ・システムのメモリ内の2つ以上のアドレス空間53、54とする こともできる。 本発明の要素 本発明は、回復可能プロキシ・オブジェクトを設け、それによってクライアン トにある古いプロキシ・オブジェクトを指すクライアント・アプリケーション内 のすべてのポインタをクライアントにある新しいプロキシ・オブジェクトを指す 新しいポインタに置き換える代わりに、クライアント内の各 プロキシ・オブジェクトに対してそれ自体を妥当性検査し直すように求めること によって、前述の従来技術のクライアント/サーバ環境の問題点を克服する。こ のような再妥当性検査は、クライアント・アプリケーション固有の知識またはコ ードをまったく必要としない。回復可能プロキシ・オブジェクトは、クライアン トの所にあり、リモート・サーバ内にあるオブジェクトを指すすべてのプロキシ ・オブジェクトを指すポインタを維持する「プロキシ・レジスタ」オブジェクト にそれ自体を登録する。回復可能プロキシ・オブジェクトは、回復不能プロキシ ・オブジェクトには存在しない3つの属性を含む。この3つの属性とは、プロキ シ・オブジェクトが指すターゲット・オブジェクトの「名前」と、プロキシ・オ ブジェクトが有効なオブジェクトを指しているかどうかを示すフラグと、代替プ ロキシを指すポインタである。 以下に、本発明の一部として使用するプロキシ・レジスタ・オブジェクトにつ いて、第4図および例1を参照しながら説明する。次に、本発明の一部として使 用するプロキシ・オブジェクトについて第5図、第6図、および例2を参照しな がら説明する。その後で、そのようなプロキシ・オブジェクトの初期設定につい て第7図を参照しながら説明する。 非同期的に動作し、プロキシ・レジスタ・オブジェクトとプロキシ・オブジェ クトが組み込まれた本発明の第1の実施例について、第8図を参照しながら説明 する。次に、同期的に動作する第2の実施例について第9図を参照しながら説明 する。その後で、DSOMプロキシ・オブジェクトによるリモート・サーバへの 従来技術のメソッド呼出しのディスパッチについて、例3を参照しながら説明す る。さらに、本発明による、DSOMプロキシによるリモート・サーバへのメソ ッド呼出しのディスパッチについて例4を参照しながら説明する。 プロキシ・レジスタ・オブジェクト 第4図に、周知のクライアント・アプリケーション48と周知のターゲット・ オブジェクト51と周知のORB50、52を有する、クライアント・アドレス 空間53とサーバ・アドレス空間54を示す。任意選択として、クライアント・ アドレス空間53とサーバ・アドレス空間54の間に双方向通信リンク460を 備えることができる。そのようなリンク460がない場合、サーバはクライアン ト・アプリケーション48に要求を送ることができない。オブジェクト名を示す とメモリ・アドレスを出力する機能を持つネーム・サーバ317を備える。第4 図には、本発明で使用するプロキシ・レジスタ・オブジェクト155も図示され ている。プロキシ・レジスタ・オブジェクト155は、回復可能プロキシ・オブ ジェクト449が作成されると、回復可能プロキシ・オブジェクト449からそ れ自体を登録する要求を受け取る。プロキシ・レジスタ・オブジェクト155は 、クライアント・アプリケーション48がプロキシ・オブジェクト449をリフ レッシュしたい場合にも要求を受け取る(第8図の520)。どの1つのクライ アント・アドレス空間53内にも1つのプロキシ・レジスタ・オブジェクト15 5しか入っていない。これは、SOMのSOMMSingleInstance メタクラスを使用することによって実現される。このメタクラスによって、メタ クラスから派生した各クラスの1つのインスタンスだけが作成されるように保証 される。このようにして派生したクラスのインスタンスをさらに作成する要求を 出しても、すでに作成されているインスタンスを指すポインタが返されるだけで ある。 プロキシ・レジスタ・オブジェクトに対して行うことができるメソッドは以下 の3つである。 1.所与のサーバ名のプロキシ・オブジェクトをすべてリフレッシュする。これ は、その所与のサーバが再始動され、そのサーバ内の場所を指すプロキシ・オブ ジェクト参照が無効になっている可能性があることをクライアントが認識すると 、クライアントによって使用される。 2.プロキシ・レジスタ・オブジェクトによって維持されているリストにプロキ シ・オブジェクトを追加する。これは、プロキシ・オブジェクトが指すターゲッ ト・オブジェクトが入っているサーバが再始動された場合、プロキシ・オブジェ クトがそれ自体をリフレッシュするように求められるようにするために、プロキ シ・オブジェクトが作成された後でそのプロキシ・オブジェクトが使用する。 3.プロキシ・レジスタ・オブジェクトによって維持されているリストからプロ キシ・オブジェクトを削除する。これは、プロキシ・オブジェクトが破棄され、 リフレッシュする必要がなくなった場合に使用される。 例1に、プロキシ・レジスタ・オブジェクトのサンプル宣言を示す。この宣言 は(CORBAについて言及しながら前述した)IDLで書かれており、オブジ ェクトが示すインタフェースを定義する。IDLでは、「//」はそれに続くテ キストが注釈であることを意味する。「void」はC言語の場合と同じ意味を 持つ。すなわち値を返さないものを定義するものである。例1−プロキシ・レジスタ・オブジェクトのサンプル宣言 例1の終わり プロキシ・オブジェクト 第5図に、クラスAnimalのための従来技術のプロキシ・クラスの構築を 示す。DSOM、具体的にはSOMDObjectMgrは、DSOM実行時モ ジュールと共に、Animal_Proxy710と呼ぶプロキシ・クラスを作 成する。プロキシ・クラスAnimal_Proxy710は、クラスAnim al720のインタフェースとSOMDClientProxy730の実現部 とを継承する。この実現部の属性には、リモート・オブジェクトの記憶場所であ るリモート・オブジェクト参照と、リモート・サーバ・バインディングが含まれ る。Animal_proxyクラス710はクラスAnimal720のメソ ッドを保持し、DSOMのデフォルトの方式でリモート・サーバにメソッド呼出 しのディスパッチを行う。詳細は、前掲の「SOMobjects:A Pra ctical Introduction to SOM and DSOM」 の74〜75ページに記載されている。DSOMのデフォルトの方式でのディス パッチについては、例3を参照しながら後述する。 第6図に、クラスAnimal720の本発明によるプロキシ・クラスの構築 を示す。Animal_Proxyオブジェクトがクラス・ライブラリ提供者、 すなわちサーバ・オ ブジェクトの作者によって与えられる。Animal_Proxy710のプロ キシ・クラスは、クラスAnimal_720のインタフェースとCustom _Proxy840の実現を継承する。さらにCustom_Proxy840 の実現はSOMDClientProxy730の実現を継承する。Custo m_Proxy840実現の属性によって、SOMClientServer7 30の属性にリモート・オブジェクト名455と、妥当性フラグ459と代替プ ロキシ457が加えられる。Animal_Proxyクラス710によって、 Animal720のメソッドが上書きされ、リモート・サーバへのメソッド呼 出しのカスタム・ディスパッチが行われる。このカスタム方式のディスパッチに ついては、例4を参照しながら後述する。 本発明によるプロキシ・オブジェクトは、Custom_Proxyの実現の 継承によって加えられる属性によって従来技術のプロキシ・オブジェクトとは区 別される。リモート・オブジェクト名455は、リモート・サーバ内のプロキシ ・オブジェクト449が指すオブジェクト(第4図の51)の名前である。この プロキシが有効であるか、または代替プロキシ457を使用すべきかが、妥当性 フラグ459によって示される。代替プロキシ457には、妥当性フラグ459 によってプロキシ自体が無効であることが示された場合に使用する、再配置され たターゲット・オブジェクトを指すポインタが含まれる。 例2にCustom_Proxyクラスのサンプル宣言を示す。本発明による プロキシ・オブジェクトはすべてこのクラスから導き出される。例2−カスタム・プロキシ・クラスのサンプル宣言 例2の終わり 第7図に、第6図に従って構築されたプロキシ・オブジェクトの初期設定を示 す。クライアント・アプリケーション48、プロキシ・オブジェクト449、プ ロキシ・レジスタ・オブジェクト155、およびORB50については、第4図 のクライアント・アドレス空間53を参照しながら前述している。サーバ313 、ターゲット・オブジェクト51、ネーム・サーバ317、およびORB52に ついても、第1図および第2図のサーバ・アドレス空間54を参照しながら前述 している。 第7図を参照すると、ステップ910で、クライアント・ アプリケーション48がサーバ313に対してオブジェクトを作成する要求を送 る。サーバ313はこの要求に応答して、ステップ920でオブジェクト51を 作成する。サーバ313はステップ930でクライアントにプロキシ・オブジェ クト449を返す。ステップ940で、プロキシ・オブジェクト449はサーバ ・アドレス空間54内のネーム・サーバ317に接触して、サーバ・アドレス空 間54内に作成された新しいオブジェクト51の名前(またはハンドル)を入手 する。ステップ950で、ネーム・サーバ317は名前を返し、プロキシ・オブ ジェクト449はその名前455を記憶し、妥当性フラグ459を真に設定して 代替プロキシ457ではなく実プロキシを使用すべきであることを示す。ステッ プ960で、プロキシ・オブジェクト449はそれ自体をプロキシ・レジスタ・ オブジェクト155に登録する。 第1の実施例 第8図に、サーバとそのクライアントとの間に双方向リンクがある本発明の第 1の実施例を示す。サーバは誤動作後に再始動すると、それに接続されていたす べてのクライアントに接触し、それらのクライアントのプロキシ・オブジェクト をリフレッシュするように指示する。クライアント・アプリケーション48、プ ロキシ・オブジェクト449、プロキシ・レジスタ・オブジェクト155、およ びORB50については、第4図のクライアント・アドレス空間53を参照しな がら前述している通りである。サーバ313、ターゲット・オブジェクト51、 ネーム・サーバ317、およびORB52は、第2図のサーバ・アドレス空間5 4を参照しながら前述した通りである。 第8図を参照すると、ステップ510で、サーバ313はそのクライアント・ アプリケーション48のそれぞれに対して、誤動作後に再始動したことを通知す る。第8図および第9図には、図を簡単にするために1つのクライアント・アプ リケーション48しか図示されていないが、実際にはクライアント・アプリケー ション48は1つでも複数でもよい。ステップ520で、クライアント・アプリ ケーション48がプロキシ・レジスタ・オブジェクト155に対して、リモート ・サーバ54にあるターゲット・オブジェクト51のプロキシ・オブジェクト4 49をすべてリフレッシュするように要求する。ステップ530で、プロキシ・ レジスタ・オブジェクト155はサーバ54にあるターゲット・オブジェクト5 1のすべてのプロキシ・オブジェクト449に対してそのプロキシ・オブジェク ト449自体をリフレッシュするように要求する。ステップ540で、各プロキ シ・オブジェクト449はリモート・ネーム・サーバ317に接触し、パラメー タとしてリモート・オブジェクト名455を渡し、リモート・オブジェクト51 の更新された記憶場所を問い合わせる。ステップ550で、オブジェクトが従属 オブジェクトである場合、ネーム・サーバ317は渡された名前を持つターゲッ ト・オブジェクト51を探し出す。オブジェクトが持続オブジェクトでない場合 、ネーム・サーバ317はそのオブジェクトを作成する。ステップ555で、ネ ーム・サーバ317はクライアント・アドレス空間53にあるプロキシ・オブジ ェクト449にリモート・オブジェクト51の新しい記憶場所を返す。ステップ 560で、プロキシ・オブジェクト449は妥当性フラグ459を偽に設定し、 リモート・オブジェクト51の新たに供給された記録場所を指すようにその代替 プロキシ・ポインタ457を更新する。 第2の実施例 第9図に、サーバとクライアントの間に双方向リンクがない本発明の第2の実 施例を示す。この実施例のクライアントは、「最初の障害時にすべてのプロキシ ・オブジェクトをリフレッシュする」というポリシーを実行しなければならない 。クライアント・アプリケーション48、プロキシ・オブジェクト449、プロ キシ・レジスタ・オブジェクト155、およびORB50については、第4図の クライアント・アドレス空間53を参照しながら前述した通りである。サーバ3 13、ターゲット・オブジェクト51、ネーム・サーバ317、およびORB5 2についても、第1図および第2図のサーバ・アドレス空間54を参照しながら 前述した通りである。 第9図を参照すると、ステップ610で、プロキシ・オブ ジェクト449はデフォルトのディスパッチ方法(例3)を使用してメソッド呼 出しを無効なプロキシを使用しているサーバ313にディスパッチしようとする 。この結果、ステップ620でサーバ313は不正オブジェクト参照例外を返す 。この実施例では、クライアントは「最初の障害時にすべてのプロキシ・オブジ ェクトをリフレッシュする」ポリシーを実行するため、ステップ630でプロキ シ・オブジェクト449は、プロキシ・レジスタ・オブジェクト155に対して リモート・サーバ54のすべてのプロキシ・オブジェクトをリフレッシュするよ うに要求する。ステップ640で、プロキシ・レジスタ・オブジェクト155は サーバ54にあるターゲット・オブジェクト51のすべてのプロキシ・オブジェ クト449にそのプロキシ・オブジェクト449自体をリフレッシュするように 指示する。ステップ650で、各プロキシ・オブジェクト449はリモート・ネ ーム・サーバ317に接触し、パラメータとしてその名前を渡し、ターゲット・ オブジェクト51の更新された記憶場所を問い合わせる。ステップ660で、ネ ーム・サーバ317は与えられた名前を持つオブジェクト51を探し出す(また は非持続性の場合には作成する)。ステップ670で、ネーム・サーバ317は クライアント・アドレス空間53にあるプロキシ・オブジェクト449に新しい プロキシを返す。ステップ680で、プロキシはその妥当性フラグ459を偽に 設定し、その代替プロキシ・ポインタ457を新たに供給されたプロキシを指す ように更新する。ステップ690で、プロキシ・オブジェクト449はその代替 プロキシ457を使用して元の要求をカスタム方式(例4)で再ディスパッチす る。 以降のシステム誤動作 リモート・サーバの誤動作がもう一度発生し、その後で再始動した場合、クラ イアントは第3のプロキシを必要としない。クライアントは代替プロキシ・ポイ ンタによって指されているプロキシを削除し、そのプロキシを新しいプロキシに 置き換える。クライアント・アプリケーションはこれをまったく認識しない。し たがって、クライアントはアクセスする各リモート・オブジェクトについてプロ キシを2つ(1つは無効で1つは有効)持つことになる。クライアントはサーバ よりも存続期間が短い傾向があり、クライアントが再始動するときに無効なプロ キシは消滅しているため、追加の無効なプロキシによるオーバーヘッドは大きく ない。 ディスパッチ ディスパッチは、DSOMプロキシ・オブジェクトがメソッド呼出しをリモー ト・サーバにディスパッチするに過ぎない。本発明は、通常のプロキシと代替プ ロキシのどちらを使用するかを判断するために、デフォルトのディスパッチ方法 の変形を必要とする。例3に、従来技術のDSOMプロキシ・オブジェクトで採 用されているIDL言語で書かれたデフ ォルトの従来技術のディスパッチ方法を示す。このディスパッチ方法は、DSO Mフレームワークによって与えられ、プロキシ・オブジェクトの作成時にプロキ シ・オブジェクトによって継承される。例3−デフォルト・ディスパッチ関数の例: 例3の終わり 例4に、本発明により実施されるDSOMプロキシ・オブジェクトで使用する ディスパッチのカスタマイズされた方法をIDL言語で示す。本発明によるディ スパッチ方法では、妥当性標識(459)の検査による通常のポインタと代替プ ロキシ・ポインタ(457)のどちらを使用するかを判断する追加のステップが 含まれる。妥当性フラグ(459)を検査し、通常のプロキシ・ポインタが有効 であることを示している場合はそのポインタを使用し、次にメソッドが従来技術 で周知の方式と同じ方式でディスパッチされる。妥当性フラグ(459)が、通 常のプロキシ・ポインタが無効であることを示している場合、メソッドは従来技 術で周知の方式と同じ方式でディスパッチされるが、代替プロキシ・ポインタ( 457)が使用される。 さらに、プロキシ・オブジェクトをすべて更新させることによって、不正オブ ジェクト参照のエラー処理を行う。DSOMフレームワークが備えるディスパッ チ方法を修正することによってカスタマイズが行われ、プロキシ・オブジェクト の作成時にプロキシ・オブジェクトによって継承される。例4−カスタマイズされたディスパッチ関数の例: 例4の終わり

Claims (1)

  1. 【特許請求の範囲】 1.クライアント・アドレス空間(53)にある回復可能プロキシ・オブジェク ト(449)がサーバ・アドレス空間(54)内のターゲット・オブジェクト( 51)を指すポインタを有する分散オブジェクト指向コンピューティングの方法 であって、 前記プロキシ・オブジェクト(449)にターゲット・オブジェクト(51) の名前(455)と、前記プロキシ・オブジェクトの妥当性に関する標識(45 9)と、前記ターゲット・オブジェクト(51)の代替プロキシ(457)とを 記憶するステップ(950)と、 前記プロキシ・オブジェクト(449)を指す参照ポインタを維持するプロキ シ・レジスタ・オブジェクト(155)に前記プロキシ・オブジェクト(449 )がそれ自体を登録するステップ(960)と、 前記ターゲット・オブジェクト(51)の各呼出しの前に、前記プロキシ・オ ブジェクト(449)が該プロキシ・オブジェクト(449)の妥当性を検査す るステップと、 前記検査に応答して、有効な場合は前記プロキシ・オブジェクト(449)を 使用し、無効な場合は前記代替プロキシ(457)を使用するステップと、 前記サーバ・アドレス空間における誤動作に応答して、前記プロキシ・レジス タ・オブジェクト(155)が各前記プ ロキシ・オブジェクト(449)に、前記サーバ内の前記ターゲット・オブジェ クト(51)の有効な前記代替プロキシ(457)を入手させ(540、650 )、前記プロキシ・オブジェクト(449)が無効であることを示させ(560 、680)、有効な前記代替プロキシ(457)を指すポインタを記憶させる( 560、680)ステップ(530、640)とを含む方法。 2.前記サーバ・アドレス空間(54)と前記クライアント・アドレス空間(5 3)とが双方向通信リンク(460)によってリンクされ、 前記サーバ・オブジェクト(313)が前記クライアント・アプリケーション (48)に要求(510)して前記サーバ・アドレス空間(54)にある前記タ ーゲット・オブジェクト(51)の有効な前記代替プロキシ(457)を入手す ることによって各前記プロキシ・オブジェクト(449)をリフレッシュさせる 、請求項1に記載の方法。 3.前記クライアント・アプリケーション(48)が、前記サーバ・アドレス空 間(54)内にある前記ターゲット・オブジェクト(51)にアクセスする際に エラー標識を受け取ると、前記サーバ・アドレス空間(54)内にある前記ター ゲット・オブジェクト(51)の有効な前記代替プロキシ(457)を入手する ことによって各前記プロキシ・オブジェクト(449)をリフレッシュさせる、 請求項1に記載の方法。 4.前記プロキシ・オブジェクト(449)をリフレッシュする前記ステップが 、前記クライアント・アプリケーション(48)に応答して、前記ターゲット・ オブジェクト(51)が持続オブジェクトでなかった場合に前記サーバ・オブジ ェクト(313)を使用して前記ターゲット・オブジェクト(51)を作成する ステップをさらに含む、請求項2または3に記載の方法。 5.前記分散オブジェクト指向システムがCORBA準拠システムである、請求 項1、2、または3のいずれか一項に記載の方法。 6.前記分散オブジェクト指向コンピュータ・システムがDSOMクラス・ライ ブラリを使用する、請求項5に記載の方法。 7.回復可能な前記プロキシ・オブジェクト(449)がSOMDClient Proxyのサブクラスであり、DSOMが通信機構である、請求項6に記載の 方法。 8.前記プロキシ・レジスタ・オブジェクト(155)がメタクラスSOMMS ingleInstanceを持つSOMオブジェクトである、請求項6に記載 の方法。 9.クライアント・アドレス空間(53)内のプロキシ・オブジェクト(49) がサーバ・アドレス空間(54)内のターゲット・オブジェクト(51)を指す 一次ポインタを有し、それによって前記プロキシ・オブジェクトに対する呼出し の結果として対応する前記ターゲット・オブジェクトが呼び 出される分散オブジェクト指向コンピューティングの方法であって、 前記サーバ・アドレス空間における誤動作に応答して、場合によって前記ター ゲット・オブジェクトの再配置を引き起こすステップと、 再配置された前記ターゲット・オブジェクトを指す前記プロキシ・オブジェク トを回復するステップとを含み、 各前記プロキシ・オブジェクトに前記アドレス空間内のネーム・サーバ(31 7)から有効な代替ポインタ(457)を入手させ、再配置された前記ターゲッ ト・オブジェクト(51)に記憶させるステップと、 前記プロキシ・オブジェクト内に、前記一次ポインタが無効であって前記代替 ポインタ(457)を使用すべきであることを示す妥当性フラグ(459)を作 成し、それによって前記プロキシ・オブジェクトに対する呼出しの結果として該 当する前記ターゲット・オブジェクトが呼び出されるステップとをさらに含むこ とを特徴とする方法。 10.1つまたは複数のプロキシ・オブジェクト(449)を有する分散オブジ ェクト指向コンピュータ・システムであって、 アドレス空間内にある、 クライアント・アプリケーション(48)がそれに対して操作を実行すること ができるターゲット・オブジェクト(51)と、 クライアント・アドレス空間(53)内の前記クライアント・アプリケーショ ン(48)との通信を可能にするオブジェクト要求ブローカ(52)と、 前記クライアント・アプリケーション(48)からの要求に応答するサーバ・ オブジェクト(313)とを有するサーバ・アドレス空間(54)と、 アドレス空間内にある、 前記クライアント・アドレス空間(53)内にある1つまたは複数のオブジェ クト(449)に対する操作を行う前記クライアント・アプリケーション(48 )と、 前記サーバ・アドレス空間(54)内のオブジェクト(313、51)との通 信を可能にするオブジェクト要求ブローカ(50)と、 各前記プロキシ・オブジェクト(449)が前記サーバ・アドレス空間(54 )内の前記ターゲット・オブジェクト(51)の場所を指すポインタを含む1つ または複数の前記プロキシ・オブジェクト(449)とを有する前記クライアン ト・アドレス空間(53)とを含み、 前記1つまたは複数の前記プロキシ・オブジェクト(449)のそれぞれが、 前記サーバ・アドレス空間(54)内にある前記ターゲット・オブジェクトの 名前(455)と、 前記ターゲット・オブジェクト(51)を指す代替ポインタ(457)と、 前記ターゲット・オブジェクト(51)を参照するためにプロキシ・オブジェ クト内のポインタと代替ポインタ(457)とのいずれを使用すべきかを示す妥 当性フラグ(459)とをさらに含むことを特徴とし、 前記クライアント・アドレス空間が、 該クライアント・アドレス空間(53)内にある前記プロキシ・オブジェクト (449)を指す参照ポインタを維持するプロキシ・レジスタ・オブジェクト( 155)と、 前記サーバ・アドレス空間(54)における誤動作後に1つまたは複数の前記 プロキシ・オブジェクト(449)を更新する手段をさらに含むシステム。 11.前記サーバ・アドレス空間(54)と前記クライアント・アドレス空間( 53)とが双方向通信リンク(460)によってリンクされ、前記サーバ・オブ ジェクト(313)が前記クライアント・アドレス空間に要求して前記サーバ・ アドレス空間(54)内にある前記ターゲット・オブジェクト(51)の有効な 代替プロキシ(457)を入手することによって各前記プロキシ・オブジェクト (449)をリフレッシュさせる、請求項9に記載のシステム。 12.前記サーバ・アドレス空間(54)内にある前記ターゲット・オブジェク ト(51)にアクセスする際にエラー標識を受け取ると、前記クライアント・ア プリケーション(48)が前記サーバ・アドレス空間(54)内の前記ターゲッ ト・オブジェクト(51)の前記有効代替プロキシ(457 )を入手することによって各前記プロキシ・オブジェクト(449)をリフレッ シュさせる、請求項9に記載のシステム。 13.前記システムがCORBA準拠システムである、請求項9ないし11のい ずれか一項に記載のシステム。
JP51173097A 1995-09-15 1996-01-23 オブジェクト指向環境における回復可能プロキシ・オブジェクト Expired - Fee Related JP3595340B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9518951A GB2305271A (en) 1995-09-15 1995-09-15 Proxy object recovery in an object-oriented environment
GB9518951.0 1995-09-15
PCT/GB1996/000108 WO1997010545A1 (en) 1995-09-15 1996-01-23 Recoverable proxy object in an object oriented environment

Publications (2)

Publication Number Publication Date
JPH10511202A true JPH10511202A (ja) 1998-10-27
JP3595340B2 JP3595340B2 (ja) 2004-12-02

Family

ID=10780811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51173097A Expired - Fee Related JP3595340B2 (ja) 1995-09-15 1996-01-23 オブジェクト指向環境における回復可能プロキシ・オブジェクト

Country Status (6)

Country Link
US (1) US5903725A (ja)
EP (1) EP0850445B1 (ja)
JP (1) JP3595340B2 (ja)
DE (1) DE69607851D1 (ja)
GB (1) GB2305271A (ja)
WO (1) WO1997010545A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1097571A (ja) * 1996-09-20 1998-04-14 Hitachi Ltd 相談先端末接続方法
JPH10171701A (ja) * 1996-12-10 1998-06-26 Fuji Xerox Co Ltd 手続実行装置及び方法
FR2762415B1 (fr) 1997-04-17 1999-06-11 Alsthom Cge Alcatel Gestion de la mort accidentelle d'un objet lors d'une communication entre objets distribues dans un environnement com
US6014700A (en) * 1997-05-08 2000-01-11 International Business Machines Corporation Workload management in a client-server network with distributed objects
CA2204971A1 (en) * 1997-05-09 1998-11-09 Michael Cheng Uniform access to and interchange between objects employing a plurality of access methods
US5999940A (en) * 1997-05-28 1999-12-07 Home Information Services, Inc. Interactive information discovery tool and methodology
US6040830A (en) * 1997-06-20 2000-03-21 Autodesk, Inc. Intelligent proxy objects
US6253253B1 (en) * 1997-08-25 2001-06-26 International Business Machines Corporation Method and apparatus for optimizing references to objects in a data processing system
JPH11110324A (ja) * 1997-10-07 1999-04-23 Hitachi Ltd 代理サーバ選択装置および代理サーバ
US6209018B1 (en) * 1997-11-13 2001-03-27 Sun Microsystems, Inc. Service framework for a distributed object network system
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
FR2775805B1 (fr) * 1998-03-05 2001-10-12 Alsthom Cge Alkatel Procede et architecture logicielle pour la transmission d'objets au sein d'un environnement distribue, conservant les references entre objets
US6324543B1 (en) * 1998-03-06 2001-11-27 International Business Machines Corporation Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US6412015B1 (en) 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
EP0967546A3 (en) * 1998-06-25 2001-05-02 Intellution Inc. System and method for storing and retrieving objects
US6314459B1 (en) * 1998-08-13 2001-11-06 U.S. Philips Corporation Home-network autoconfiguration
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6637020B1 (en) 1998-12-03 2003-10-21 International Business Machines Corporation Creating applications within data processing systems by combining program components dynamically
US6336118B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Framework within a data processing system for manipulating program objects
US6360358B1 (en) * 1999-03-11 2002-03-19 Microsoft Corporation Maintenance of code knowledge for up-to-date access thereof
WO2000057276A1 (en) * 1999-03-25 2000-09-28 Excelon Corporation Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system
US6192371B1 (en) * 1999-04-28 2001-02-20 Lucent Technologies, Inc Object morphing in an object oriented computing environment using relational database query procedure
US7305473B2 (en) * 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
JP2000347866A (ja) * 1999-06-04 2000-12-15 Nec Corp 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体
US6842906B1 (en) * 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7289964B1 (en) 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US6629128B1 (en) * 1999-11-30 2003-09-30 Recursion Software, Inc. System and method for distributed processing in a computer network
US6947965B2 (en) * 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
EP1168752A1 (en) 2000-06-23 2002-01-02 Matra Nortel Communications Access control in client-sever systems
US6895444B1 (en) * 2000-09-15 2005-05-17 Motorola, Inc. Service framework with local proxy for representing remote services
US20020073409A1 (en) * 2000-12-13 2002-06-13 Arne Lundback Telecommunications platform with processor cluster and method of operation thereof
US7711771B2 (en) * 2001-05-25 2010-05-04 Oracle International Corporation Management and synchronization application for network file system
US7647597B2 (en) * 2001-06-28 2010-01-12 Microsoft Corporation Transparent and sub-classable proxies
US7043731B2 (en) * 2001-07-12 2006-05-09 Qwest Communications International, Inc. Method and system for distributing access to group of objects based on round robin algorithm and only when the object is available
US20030033351A1 (en) * 2001-08-10 2003-02-13 Aleta Ricciardi Group proxy and method for grouping services in a distributed computing application
US7020659B2 (en) * 2001-08-15 2006-03-28 Oic Acquistion I Corporation System and method for managing bi-directional relationships between objects
US20030039256A1 (en) * 2001-08-24 2003-02-27 Klas Carlberg Distribution of connection handling in a processor cluster
US6951020B2 (en) * 2001-08-28 2005-09-27 Kayak Interactive Corporation Method for handling transitions in grouped services in a distributed computing application
US7516447B2 (en) * 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
WO2006092047A1 (en) * 2005-03-02 2006-09-08 Tira Wireless Inc. System and method for porting a mobile device application
CN100461176C (zh) * 2006-01-26 2009-02-11 无锡永中科技有限公司 基于对象存储库的对象引用方法
US9146789B2 (en) * 2006-03-21 2015-09-29 Oracle America, Inc. Method and apparatus for generating and using location-independent distributed object references
US8347321B1 (en) * 2006-03-30 2013-01-01 Emc Corporation In place object reconstruction
AU2009319665B2 (en) 2008-11-26 2015-08-20 Calgary Scientific Inc. Method and system for providing remote access to a state of an application program
US10055105B2 (en) 2009-02-03 2018-08-21 Calgary Scientific Inc. Method and system for enabling interaction with a plurality of applications using a single user interface
US9741084B2 (en) 2011-01-04 2017-08-22 Calgary Scientific Inc. Method and system for providing remote access to data for display on a mobile device
CA2734860A1 (en) 2011-03-21 2012-09-21 Calgary Scientific Inc. Method and system for providing a state model of an application program
US20120254109A1 (en) * 2011-03-28 2012-10-04 Microsoft Corporation Distributed component runtime
SG2014011506A (en) 2011-08-15 2014-05-29 Calgary Scient Inc Non-invasive remote access to an application program
JP6322140B2 (ja) 2011-09-30 2018-05-09 カルガリー サイエンティフィック インコーポレイテッド 協働遠隔アプリケーションの共用および注釈のための双方向デジタル表層を含む非連結アプリケーション拡張
WO2013076554A1 (en) 2011-11-23 2013-05-30 Calgary Scientific Inc. Methods ans systems for collaborative remote application sharing and conferencing
US20130332417A1 (en) * 2012-06-08 2013-12-12 In Koo Kim Hybrid Client-Server Data Proxy Controller For Software Application Interactions With Data Storage Areas And Method Of Using Same
US9648125B2 (en) * 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) * 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
WO2015080845A1 (en) 2013-11-29 2015-06-04 Calgary Scientific Inc. Method for providing a connection of a client to an unmanaged service in a client-server remote access system
US10015264B2 (en) * 2015-01-30 2018-07-03 Calgary Scientific Inc. Generalized proxy architecture to provide remote access to an application framework
US10521200B2 (en) * 2017-01-09 2019-12-31 Oracle International Corporation Unambiguous proxying of interface methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09502547A (ja) * 1992-11-13 1997-03-11 マイクロソフト コーポレイション 遠隔手続き呼び出しのためのインターフェイスポインタをマーシャリングする方法及びシステム
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5732270A (en) * 1994-09-15 1998-03-24 Visual Edge Software Limited System and method for providing interoperability among heterogeneous object systems
US5692183A (en) * 1995-03-31 1997-11-25 Sun Microsystems, Inc. Methods and apparatus for providing transparent persistence in a distributed object operating environment

Also Published As

Publication number Publication date
EP0850445A1 (en) 1998-07-01
JP3595340B2 (ja) 2004-12-02
DE69607851D1 (de) 2000-05-25
WO1997010545A1 (en) 1997-03-20
GB2305271A (en) 1997-04-02
EP0850445B1 (en) 2000-04-19
US5903725A (en) 1999-05-11
GB9518951D0 (en) 1995-11-15

Similar Documents

Publication Publication Date Title
JPH10511202A (ja) オブジェクト指向環境における回復可能プロキシ・オブジェクト
US6067578A (en) Container independent control architecture
US6564377B1 (en) Self-describing components within a software catalog
US5692183A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US8020173B2 (en) Method and system for associating parameters of containers and contained objects
US6438616B1 (en) Method and apparatus for fast, local corba object references
JP2915842B2 (ja) 第1クラス分散オブジェクトを使用して分散オブジェクト・サーバを制御、管理するシステム、及び方法
US6044224A (en) Mechanism for dynamically associating a service dependent representation with objects at run time
US6263498B1 (en) Method and apparatus for enabling server side distributed object modification
US6014666A (en) Declarative and programmatic access control of component-based server applications using roles
CN100498699C (zh) 在运行时系统中共享对象
US5802367A (en) Method and system for transparently executing code using a surrogate process
US5893106A (en) Object oriented server process framework with interdependent-object creation
US5842220A (en) Methods and apparatus for exposing members of an object class through class signature interfaces
US5896532A (en) Objects with run-time classes and methods of making them
US8141104B2 (en) Integrating non-compliant providers of dynamic services into a resource management infrastructure
EP0817101A2 (en) Method and system for uniformly accessing multiple directory services
US6330711B1 (en) Method and apparatus for dynamic application and maintenance of programs
US20020055965A1 (en) Method and system for accessing objects of different thread types
CN1989489A (zh) 在运行时系统中共享对象
CN1989488A (zh) 运行时系统的鲁棒共享
EP1185927A1 (en) Management of non-mbeam objects in jmx environment
Pautet et al. GLADE users guide
JPH09251377A (ja) オブジェクト指向システムにおいて、オブジェクト・サービスをバイナリ・クラスに追加するシステム、方法及び商品
Felber et al. Evaluating CORBA portability: the case of an object group service

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040903

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees