JPH10116196A - リモート・ゲートウェイ・システムにアクセスする方法および装置 - Google Patents

リモート・ゲートウェイ・システムにアクセスする方法および装置

Info

Publication number
JPH10116196A
JPH10116196A JP9155004A JP15500497A JPH10116196A JP H10116196 A JPH10116196 A JP H10116196A JP 9155004 A JP9155004 A JP 9155004A JP 15500497 A JP15500497 A JP 15500497A JP H10116196 A JPH10116196 A JP H10116196A
Authority
JP
Japan
Prior art keywords
program
gateway
machine
computer
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9155004A
Other languages
English (en)
Inventor
Peter W Madany
ピーター・ダブリュ・マダーニイ
Eduardo Pelegri-Llopart
エデュアード・ペレグリ−ロパート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10116196A publication Critical patent/JPH10116196A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed 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)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 クライアント・マシンに、他のドメイン内の
プログラムと直接通信させる必要がある場合にゲートウ
ェイ・サーバをクライアント・マシンに動的にロードす
る方法および装置を提供する。 【解決手段】 新しいマシンがオブジェクト参照を受け
取ると、この新しいマシンは、このオブジェクト参照を
次の通信にそのまま使用できるかどうか、あるいはこの
オブジェクト参照を使用する前にその修正を試みなけれ
ばならないかどうかを判定する。新しいマシンは、オブ
ジェクト参照のフロント・ハンドルが、新しいマシン上
に配置されたゲートウェイ・オブジェクトを指し示して
いるかどうかを調べることによってこの判定を下す。そ
うである場合、新しいマシンはオブジェクト参照をその
まま使用する。フロント・ハンドル・ポインタが、指定
されたゲートウェイ・オブジェクトが他のマシン上にあ
ることを示す場合、次の通信で使用できる新しいマシン
上の新しいゲートウェイを見つけあるいは作成し、それ
に応じてオブジェクト参照を修正する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散型コンピュー
タ・システムおよびオブジェクト指向プログラミングの
分野に関する。詳細には、本発明は、あるネットワーク
・ドメインが異なるタイプのドメインと通信するときに
通信ボトルネックを最小限に抑える方法および装置であ
る。
【0002】
【従来の技術】異種コンピュータ・システム・ドメイン
間(たとえば、オブジェクト指向ドメインと非オブジェ
クト・レガシー・ソフトウェア・ドメインとの間)で通
信を行うときに効率的な通信を可能にすることが好まし
い。
【0003】インターネットおよび大規模な社内ネット
が発展しているので、UNIXTMベースのシステムとウ
ィンドウ・ベースのシステムなど異種コンピュータ・シ
ステム/ネットワーク間で通信を行うことが必要になっ
ている。さらに、このようなネットワーク内でオブジェ
クト指向システムが使用されることによって、新しいコ
ンピュータ・ドメインが作成され、互いに通信する必要
のあるいくつかの異なるドメインの集合が拡張してい
る。オブジェクト指向システムでは、オブジェクト・イ
ンプレメンテーションへのポインタ(「ハンドル」と呼
ばれることが多い)をあるクライアントから他のクライ
アントへ渡すことができ、それらが使用する通信経路に
関してそれらのハンドルを最適化する必要がある。
【0004】最近、Sun Microsystems
TM Inc.によって開発されたJAVATMシステムと
して知られる新しいコンピューティング・パラダイム
は、異種コンピュータ・プラットフォーム間でプログラ
ムを透過的に渡す必要とそのための効率的な機構(「A
ppletsTM」と呼ばれることもある)に基づくもの
である。(UNIXは、X/Open Company
Ltd.を通じて独占ライセンスを与えられる、米国
およびその他の国内の登録商標、JAVAとSun M
icrosystemsはSun Microsyst
ems,Inc.の登録商標)。
【0005】従来、特にあるクライアントから他のクラ
イアントへハンドルを渡すことができる場合に、このよ
うなハンドルを使用してオブジェクトを指し示す(「オ
ブジェクト・インプレメンテーション」とも呼ぶ)クラ
イアント間の通信トラフィックを最小限に抑える試みが
なされている。この問題の解決策は一般に、単一のコン
ピュータ・ドメイン内で実施されている。すなわち、当
該の特定のネットワークに含まれるコンピュータ・シス
テムがすべて同じオブジェクト・プロトコルを実施する
場合のこの問題の解決策は見つかっている。たとえば、
1994年2月15日に発行され(「Hamilton
等」)Sun Microsystems,Inc.に
譲渡された、「Method and Apparat
us for Portable Object Ha
ndles that useLocal Cache
s」と題する(引用によって完全に本明細書に組み込ま
れる)米国特許第5287507号は、ネットワーク・
オブジェクト・ハンドルを使用してサーバ(オブジェク
ト・インプレメンテーション)とローカル・キャッシュ
・マネージャの両方を参照するための機構を教示してい
る。ネットワーク・オブジェクト・ハンドルを他のクラ
イアントへ送信すると、そのハンドルは、受取側クライ
アントに対してローカルなキャッシュ・マネージャを使
用するために自動的に更新され、あるいはキャッシュ・
マネージャが使用できない場合、ハンドルは第1のクラ
イアントを通じてサーバに伝達されるのではなく直接サ
ーバを指し示すように更新される。このプロセスは、ハ
ンドルを保持するクライアントからサーバへの通信経路
を最小限に抑えるようにうまく働くが、クライアントお
よびサーバを保持するすべてのコンピュータ・システム
が同じオブジェクト・プロトコルを使用するドメインで
しか働かない。異種ドメイン境界を横断して通信しなけ
ればならない第1のドメインがある場合、サーバがある
ドメインにあり、クライアントが第1のドメインとは異
なる第2のドメインにあるとき、もはや直接サーバを指
し示すことはできない。これは、ドイツ語しか理解でき
ない人にフランス語で話しかけることと同様である。し
たがって通常、呼出し側クライアントの通信プロトコル
と被呼側プログラムのプロトコルとの間の変換を行うこ
とのできるある種の中間機構がなければならない。
【0006】異種ドメインが互いに通信しなければなら
ないこの問題を解決する試みとして、ゲートウェイ・サ
ーバ、すなわち前述のハンドルを使用するクライアント
からのオブジェクト指向要求を第2のドメインが理解す
るメッセージ・プロトコル・フォーマットに変換するメ
ソッドを有するオブジェクトが、あるマシン、すなわち
オブジェクト指向マシン上にインストールされている。
あるコンピュータ・ドメイン内にマシンA102を示
し、他のドメイン内にマシンB104およびマシンC1
06を示す図1を参照して下記の例について考える。ド
メイン境界は線120によって示されている。マシンB
104およびマシンC106は、オブジェクト指向ドメ
インにあり、それに対してマシンA102は第2のドメ
インにある。通信経路112を介してゲートウェイ・サ
ーバ110と通信するクライアントB108を有するマ
シンB104が示されている。この場合、ゲートウェイ
・サーバ110は、オブジェクト指向呼出しをマシンA
102が理解できる異なるフォーマットに変換できるメ
ソッドを有するオブジェクトである。この通信は、通信
経路114および116を介して行われる。クライアン
トB108はハンドルをゲートウェイ・サーバ110へ
渡し、マシンC106のクライアントC118へ渡すこ
とができ、マシンC106がマシンB104上のゲート
ウェイ・サーバと同様なゲートウェイ・サーバ110を
有さない場合には、クライアントC118は、マシンB
104のゲートウェイ・サーバ110を通過しないかぎ
りマシンA102と通信することはできない。次に、こ
のことをより明確にする図1を参照して、より具体的な
例を考える。NFSサーバ・マシンA102はNFSフ
ァイルにアクセスする。Springオブジェクト指向
マシンB104が、NFS動作とSpringファイル
動作との間の変換を行うゲートウェイ・サーバ110を
有する場合、SpringマシンB104およびC10
6上のプログラム(クライアントB108やクライアン
トC118など)は、マシンA102からエクスポート
されたNFSファイルを使用することができる(「Sp
ring」とは、近年開発されたマイクロカーネル・ベ
ースのオブジェクト指向オペレーティング・システムを
指定するためにSun Microsystems,I
nc.によって使用される内部コード名である。Spr
ingは、引用によって完全に本明細書に組み込まれ
る、1995年11月7日にGraham Hamil
ton等によってグループ・アート・ユニット2317
で出願された「A Method & Apparat
us for Subcontracts inDis
tributed Processing Syste
ms」と題する米国特許出願第08/554794号
(1992年12月21日出願の米国特許出願第07/
995863号の継続出願)に詳しく記載されている。
【0007】本発明は、オブジェクト指向プログラムま
たはクライアントと他のドメイン内のコンピュータ・シ
ステムとの間に自動的にゲートウェイ・サーバを挿入し
て同じドメイン内の他の何らかのマシン内の間接通信経
路(たとえば図1の経路119)を回避することが適切
であるかどうかを判定し、そうである場合にはそうする
方法および装置である。図2を考える。マシンC106
がゲートウェイ・サーバ122を有し、マシンC106
上のプログラム(たとえばクライアントC118)がマ
シンB104上のゲートウェイ・サーバ110のファイ
ルへの参照を得た場合、本発明は自動的に、マシンC1
06のゲートウェイ・サーバ122をクライアントC1
18とマシンB104のサーバ110との間に挿入す
る。挿入されたこのゲートウェイ・サーバは、オブジェ
クト参照の動作呼出しを変換し、通信経路126および
128を介して直接マシンA102上のNFSサーバへ
転送し、それによってマシンCのプログラムによるファ
イル・アクセスに必要なネットワーク・トラフィックを
半分だけ低減させる。マシンC106がゲートウェイ・
サーバを有さない場合、本発明は、自動的にマシンC1
06上に所望のゲートウェイ・サーバを生成する機構を
提供する。下記で詳しく説明するように、上記で「ゲー
トウェイ・サーバ」として指定したエンティティは、遠
隔のマシンのあるクライアントが現マシンにオブジェク
ト参照を渡しており、フロント・オブジェクト・ハンド
ルが他の未知のドメイン内のマシンを参照しているの
で、必要なときに動的にロードされるJAVAクラスで
あってよい。
【0008】
【発明が解決しようとする課題】本発明は、あるドメイ
ン内のマシン上のプログラムと異なるドメイン内のマシ
ンとの間に自動的にゲートウェイ・サーバを挿入する経
済的で高性能で適応可能なシステムおよび方法を提供す
ることによって前述の通信問題の欠点を解消することを
目的とする。
【0009】
【課題を解決するための手段】本発明は、クライアント
・マシンが、直接他のドメイン内のプログラムと通信す
る必要があり、かつそれが妥当であるとみなされる場合
に、ゲートウェイ・サーバをクライアント・マシンに動
的にロードする方法および装置である。簡単に言えば、
新しいマシンがオブジェクト参照を受けると、この新し
いマシンは、このオブジェクト参照を次の通信にそのま
ま使用できるかどうか、あるいはこのオブジェクト参照
を使用する前にその修正を試みなければならないかどう
かを判定しなければならない。新しいマシンは、オブジ
ェクト参照のフロント・ハンドルが、新しいマシンに配
置されたゲートウェイ・オブジェクトを指し示している
かどうかを調べることによってこの判定を下す。そうで
ある場合、新しいマシンはオブジェクト参照をそのまま
使用する。フロント・ハンドル・ポインタが、指定され
たゲートウェイ・オブジェクトが他のマシン上にあるこ
とを示す場合、大部分のケースでは、新しいマシン上に
新しいゲートウェイ・オブジェクトを作成すると有利で
あり、次の通信で使用できる新しいマシン上の新しいゲ
ートウェイを見つけ、あるいは作成し、それに応じてオ
ブジェクト参照を修正す必要がある。
【0010】本発明の一態様では、あるドメイン内のロ
ーカル・マシンから異なるドメイン内のリモート・プロ
グラムへの通信を行う必要があるときに、ゲートウェイ
・プログラムの動的ローディングを実行するプログラム
可能な装置が提供される。このプログラム可能な装置
は、第1のドメイン内のローカル・コンピュータと、リ
モート・プログラムを含む第2のドメイン内の少なくと
も1台のコンピュータを含む複数の他のコンピュータと
の通信接続とを有し、リモート・プログラムとの通信を
行うローカル・ゲートウェイ・プログラムがローカル・
コンピュータに存在するかどうか、あるいはローカル・
コンピュータが新しいゲートウェイ・プログラムに適応
する資源を有する場合に、そのプログラムを見つけロー
カル・コンピュータ上にロードしようとしなければなら
ないかどうかを判定するように構成された機構をローカ
ル・コンピュータ内に有する。
【0011】本発明の他の態様では、第1のドメイン内
のコンピュータに、第2のドメイン内のリモート・プロ
グラムとの通信で使用できるゲートウェイ・プログラム
を動的に得させるためにコンピュータ読取り可能な媒体
自体に埋め込まれたコンピュータ・プログラム機構を有
するコンピュータ読取り可能な媒体からなる装置が請求
される。
【0012】本発明の他の態様では、第1のドメイン内
のマシンへのゲートウェイ・プログラムの動的なロード
を実行し、第2のドメイン内のリモート・プログラムと
通信できるようにするコンピュータが実施する方法が請
求される。
【0013】本発明のシステムの目的、特徴、利点は、
下記の説明から明らかになろう。 表記および用語 下記の詳細な説明は主として、コンピュータ・メモリ内
のデータ・ビットに対する演算のアルゴリズムおよび記
号表現で表されている。このようなアルゴリズム記述お
よび表現は、データ処理の当業者が研究の内容を最も効
果的に他の当業者に伝達するために使用する手段であ
る。
【0014】アルゴリズムとは、本明細書では一般に、
所望の結果に導く一貫したステップ・シーケンスである
とみなされる。これらのステップは、物理数量の物理操
作を必要とするステップである。通常、必ずしも必要な
ことではないが、このような数量は、記憶され、転送さ
れ、組み合わされ、比較され、その他の方法で操作する
ことができる電気信号または磁気信号の形をとる。これ
らの信号は、主として共通的に使用されるという理由
で、時にはビット、値、要素、記号、文字、項、数字な
どと呼ぶと好都合であることが分かっている。しかし、
すべてのこれらの語および同様な語が、適当な物理数量
に関連付けられ、このような数量に適用される好都合な
ラベルに過ぎないことに留意されたい。
【0015】さらに、実行される操作は、一般に人間の
オペレータが行う暗算に関連する、加算や比較などの語
で呼ばれることが多い。本発明の一部を形成する、本明
細書で説明する演算では、人間のオペレータのそのよう
な能力は、必要とされず、大部分のケースでは望ましく
もない。すなわち、演算は機械演算である。本発明の演
算を実行する有用なマシンには、汎用ディジタル・コン
ピュータや同様な装置が含まれる。すべての場合に、コ
ンピュータを操作する際の方法操作と計算方法自体との
違いに留意されたい。本発明は、電気信号またはその他
の(たとえば、機械的、化学的)物理信号を処理して所
望の他の物理信号を生成する際にコンピュータを操作す
る方法ステップに関する。
【0016】本発明は、これらの演算を実行する装置に
も関する。この装置は、必要な目的向けに特別に構築す
ることも、あるいはコンピュータ自体に記憶されたコン
ピュータ・プログラムによって、選択的に活動化または
再構成される汎用コンピュータを備えることもできる。
本明細書で提示するアルゴリズムは基本的に、特定のコ
ンピュータやその他の装置に関係するものではない。特
に、様々な汎用マシンを、本明細書の教示によって書か
れたプログラムと共に使用することができ、あるいは必
要な方法ステップを実行する専用装置を構築する方が好
都合であることもある。様々なこのようなマシンに必要
な構造は、下記の説明から明らかになろう。
【0017】
【発明の実施の形態】いくつかの異なるドメインを横切
るローカル・マシン直接通信の利益を向上させるよう
に、あるドメイン内のクライアント・プログラムが異な
る(場合によっては非オブジェクト)ドメインと通信で
きるようにし、かつ通信する際にオブジェクトの参照を
使用できるようにする方法および装置を開示する。下記
の説明では、説明の都合上、本発明を完全に理解してい
ただくために特定のデータおよび構成について述べる。
しかし、当業者には、特定の詳細なしで本発明を実施で
きることが明らかになろう。他の例では、本発明を不必
要に曖昧にしないように周知のシステムは概略図形また
はブロック図形で示されている。
【0018】動作環境 本発明が使用される環境は、汎用コンピュータ、または
ワークステーション、またはパーソナル・コンピュータ
が様々なタイプの通信リンクを介してクライアント−サ
ーバ構成として接続され、オブジェクトの形の多数のプ
ログラムおよびデータが、システムの様々なメンバーに
よって、システムの他のメンバーによる実行およびアク
セスのために使用することができる、一般的な分散コン
ピューティング・システムを包含する。汎用ワークステ
ーション・コンピュータのいくつかの要素を図3に示
す。図3には、入出力(「I/O」)部2と、中央演算
処理装置(「CPU」)3と、メモリ部4とを有するプ
ロセッサ1が示されている。入出力部2は、キーボード
5、表示装置6、ディスク記憶装置9、CD−ROM駆
動装置7に接続される。CD−ROM装置7は、通常プ
ログラム10とデータとを含むCD−ROM媒体8を読
み取ることができる。
【0019】用語集 マシン:「マシン」および「アドレス空間」の語は、下
記で相互交換可能に使用される。Java用語では、J
ava仮想マシンである。
【0020】JAVA:JAVAの語は、Sun Mi
crosystems,Inc.自体の言語と、JAV
Aソース・コードを、JAVA仮想マシンを表すバイト
・コードとしてコンパイルするコンパイラと、JAVA
バイト・コードを特定のコンピュータ向けの実行時オブ
ジェクト・コードに変換することができる任意のコンピ
ュータに存在させることができる実行時インタープリタ
とを含む同社のシステムを指す。JAVAおよび関連製
品の詳細な定義および説明は、インターネット上の「h
ttp://www.javasoft.com/al
labout.html」で得ることができる。
【0021】オブジェクト参照:(リモート)オブジェ
クトの参照。本出願人のケースでは、オブジェクト参照
は、ゲートウェイ・オブジェクトのハンドルと、ゲート
ウェイ・サーバの名前と、クーキー/ハンドルとを含
む。オブジェクト参照は、ユニットとして渡される。オ
ブジェクト参照は、アドレス空間(仮想マシン)内で渡
されると、修正されずに渡される。あるアドレス空間か
ら他のアドレス空間へ渡されたときは、最初のオブジェ
クトの参照を使用して新しいオブジェクト参照を得るこ
とができる。オブジェクト呼出しは、オブジェクト参照
内の情報を使用して行われる。本発明で使用されるオブ
ジェクト参照構成を示す図7を参照されたい。
【0022】オブジェクト・ハンドル:この語は、リモ
ート・オブジェクトが存在するマシンとマシン内のオブ
ジェクトを判定するために必要な情報を記述するために
使用される。
【0023】サービス:オブジェクト指向ドメインに与
えられるサービス。この好例はNFS(ネットワーク・
ファイル・システム)サーバである。
【0024】サービス・クーキー(ハンドル):ゲート
ウェイによって変換(アドレス)されるサービスのID
(すなわちポインタ)。
【0025】ゲートウェイ・オブジェクト:ある種のサ
ービスに関するゲートウェイ変換を行うオブジェクト。
ゲートウェイ・オブジェクトは、同じマシン内にあるゲ
ートウェイ・サービス・マネージャへのポインタを有す
る。
【0026】ゲートウェイ・サービス(ゲートウェイの
aka名):使用すべきゲートウェイのタイプを識別す
る名前。たとえば、この名前は、NFSサーバにゲート
ウェイを与えるサービスを識別する「NFSゲートウェ
イ」などでよい。
【0027】ゲートウェイ・サービス・マネージャ(a
kaゲートウェイ・マネージャ):所与のタイプのすべ
てのゲートウェイ・オブジェクトを管理し作成するオブ
ジェクト。このオブジェクトは、それが作成するゲート
ウェイ・オブジェクトと同じマシンに存在する。
【0028】ローカル・ゲートウェイ・マネージャ・マ
ッパ(akaローカル・マネージャ):これは、ゲート
ウェイ・マネージャの参照からマッピングを行うオブジ
ェクトである。ゲートウェイ・マネージャは、ローカル
・マネージャと同じマシンに存在することも、あるいは
異なるマシン上に存在することもできる。
【0029】マネージャ記述:ゲートウェイ・マネージ
ャのタイプを固有に識別する記述。この記述は、あるオ
ブジェクトがそれを満たしているかどうかを判定するの
に十分なものであり、この記述を使用して、この種の新
しいインスタンスを作成するためのコードを得ることも
できる。
【0030】追加背景 本明細書に開示する本発明の好ましい実施形態は、引用
によって完全に本明細書に組み込まれた、1996年4
月23日に出願され「System & Method
for Generating Identifie
rs ForUniquely Identifyin
g Object Types for Object
s Used In Processing of O
bject−Oriented Programs A
nd The Like」と題するJames H.W
aldo、Krishna Bharat、Roger
Riggsの米国特許出願第08/636707号で開
示されたオブジェクト参照を識別する技法を使用する。
【0031】問題 クライアント・マシンが同じドメイン内の他のあるマシ
ンから、異なるドメイン内のプログラムと通信するゲー
トウェイ・サーバを指し示すために使用されるオブジェ
クト・ハンドルを受け取ったときに技術的な問題が生じ
る。好ましい実施形態の動的ローディング機能を有さな
いシステムについて考える。図4を参照すると分かるよ
うに、クライアント・プログラムは他のプログラムから
オブジェクト・ハンドルを受け取る(302)。このオ
ブジェクト・ハンドルがローカル・マシンのゲートウェ
イ・オブジェクトを指し示すかどうかを調べる試験が行
われる(304)。そうである場合(308)、このオ
ブジェクト・ハンドルは、リモート・プログラムとの次
の通信のために使用される(318)。オブジェクト・
ハンドルがローカル・ゲートウェイ・サーバを指し示し
ていない場合(306)、ローカル・ゲートウェイ・オ
ブジェクトが存在するかどうかを調べることを求める要
求がローカル・ネーミング・サービスに対して行われる
(310)。ローカル・マシンでオブジェクトが見つか
らない場合(314)、受け取られたオブジェクト・ハ
ンドルは、リモート・プログラムとの次の通信に使用さ
れる(318)。この例では、通信経路が、ローカル・
マシンから、オブジェクト・ハンドルの送信元であるマ
シン上のゲートウェイ・オブジェクトに至り、さらにリ
モート・プログラムに至り、通信経路が2倍になること
に留意されたい。これは、図1に示した状況であり、こ
の場合、クライアントC118は、経路119を介して
マシンB104上のゲートウェイ110と通信する。ロ
ーカル・ネーミング・サービスがローカル・ゲートウェ
イ・オブジェクトを見つけられない場合(312)、受
け取られたオブジェクト・ハンドルはローカル・ゲート
ウェイ・オブジェクト(316)を指すように変更さ
れ、その後、この新しいハンドルを使用して直接通信を
行うことができる(320)。
【0032】問題の一般化 必要に応じてゲートウェイを動的にロードするプロセス
の好ましい実施形態を示す前に、一般的な問題環境のよ
り厳密な説明を図6に示す。この説明は、図1および図
2に示した問題を一般化するものである。次に、図6を
参照すると、ゲートウェイが最初オブジェクト・ハンド
ルを保持するマシンとは異なるマシンに存在する、この
問題のより一般的なケースが示されている。マシン(ア
ドレス空間)A502には、マシンB514上で実行さ
れるゲートウェイ・オブジェクト(プログラム)G51
8を推進することによって異なるドメインC520内の
サーバ・オブジェクトS522によって実施されるサー
ビスのオブジェクト参照R504がある。この一般的な
ケースでは、ゲートウェイ・マネージャ・オブジェクト
M516もマシンB514に配置される。オブジェクト
参照R504をマシンA502からマシンD508に渡
し、それによってマシンD508が通信経路を最小限に
抑えながら引き続きサービスS522を呼び出すことが
できることが望ましい。いくつかのケースでは、通信経
路を最小限に抑えることよりも資源消費量を最小限に抑
える方が重要なので、ゲートウェイ・オブジェクトの位
置に融通性を持たせることが望ましい。
【0033】本発明 本発明は、クライアント・マシンを他のドメイン内のプ
ログラムと直接通信させる必要があり、かつそうするこ
とが望ましい場合に、ゲートウェイ・サーバをクライア
ント・マシンに動的にロードする方法および装置であ
る。下記では、本発明がどのように働きかつ使用され、
したがって本発明をどのように構成するかについて説明
する。簡単に言えば、新しいマシンがオブジェクト参照
を受け取ると、この新しいマシンは、このオブジェクト
参照を次の通信にそのまま使用できるかどうか、あるい
はこのオブジェクト参照を使用する前にその修正を試み
なければならないかどうかを判定しなければならない。
新しいマシンは、オブジェクト参照のフロント・ハンド
ルが新しいマシンに配置されたゲートウェイ・オブジェ
クトを指し示しているかどうかを調べることによってこ
の判定を下す。そうであれば、新しいマシンは、オブジ
ェクト参照をそのまま使用することができる。フロント
・ハンドルが、指定されたゲートウェイ・オブジェクト
が他のマシンにあることを示す場合、次の通信で使用で
きるゲートウェイを見つけあるいは作成し、それに応じ
てオブジェクト参照を修正する必要がある。このゲート
ウェイ・オブジェクトは、新しいマシンに対してローカ
ルであってもよく(通信コストが削減される)、あるい
はそうでなくてもよい(メモリ/cpuの用途が低減さ
れる)。新しいゲートウェイ・オブジェクトを見つけあ
るいは作成するタスクについて下記で説明する。この場
合、ゲートウェイ・マネージャがこのマシン内にローカ
ルに存在するかどうかが判定され、そうでない場合、現
在ローカル・マシンで使用できる資源においてゲートウ
ェイ・マネージャを作成するのに必要な資源が評価され
る。
【0034】本発明におけるオブジェクト参照 好ましい実施形態は、オブジェクト参照を2つのオブジ
ェクト・ハンドルおよび1つの名前として表す。図7を
参照すると分かるように、オブジェクト参照R600
は、2つのハンドルと1つの名前、すなわちゲートウェ
イ・オブジェクトG602を指し示すフロント・ハンド
ルと、ゲートウェイ・サービス名606と、サービス・
オブジェクトS604を指し示すバック・ハンドルとを
備える。この構造は、上記で引用した特許第52875
07号のキャッシュ可能なハンドル(ローカル・キャッ
シュを使用する移植可能なオブジェクト・ハンドル)に
類似している。しかし、本発明では、フロント・オブジ
ェクト・ハンドルがゲートウェイ・オブジェクトGを指
し示し、バック・ハンドルが実際のサービス・オブジェ
クトSを指し示す。ゲートウェイ・サービス名は、関連
するゲートウェイ・サービスを記述する。
【0035】オブジェクト参照に対する呼出し オブジェクト参照R(たとえば、図6の504)で表さ
れたオブジェクトのメソッドを呼び出すには、フロント
・オブジェクト・ハンドルが使用される。バック・ハン
ドル(サービスがオブジェクト指向のものではないの
で、クーキーとして最もうまく記述することができる)
が使用されるのは、参照がマシンを横切って渡されると
きだけである。第5287507号とは異なり、Sによ
って与えられるサービスはクライアントによって直接使
用できるものではない(サービスとクライアントがそれ
ぞれの異なるドメインに存在するため)と仮定されてい
るので、バック・ハンドルを通じた呼出しは行われな
い。(たとえば、名前サービスにおいて名前を解決する
ことによって)第1のゲートウェイ・マネージャ・オブ
ジェクトを得るプロセスは当技術分野において周知であ
る。
【0036】オブジェクト参照の転送 下記で、オブジェクト参照受取時のプロセスを、まず擬
似コードで、次いでより記述的に説明する。
【0037】オブジェクト参照Rが、ゲートウェイ・オ
ブジェクトGの参照と、ゲートウェイ・サービス名N
と、クーキーS(参照Rがクライアント間で渡されるの
で、クーキーSは直接は使用されない)とを含むと仮定
する。
【0038】 if Gがローカルである then 受け取られたRを使用する。 else if Nのローカル・ゲートウェイ・マネージャGMがある then GMによってRから返された新しいゲートウェイ・オブジェクトをG ’とする。 受け取られた参照中のゲートウェイ・オブジェクトとしてG’を使用 する。 else Nのゲートウェイ・マネージャのコストCを得る。 if C<ローカルに使用できる資源である then GMのバイトコードをダウンロードする。 GMをインスタンス化する。 Nのローカル・ゲートウェイ・マネージャとしてGMを登録する 。 GMによってRから返された新しいゲートウェイ・オブジェクト をG’とする。 受け取られた参照R中のゲートウェイ・オブジェクトとしてG’ を使用する。 else 受け取られたRを使用する。 endif endif endif
【0039】所与のサービス名Nに関して、(1)マシ
ンに対してローカルなNのゲートウェイ・マネージャ
と、ローカルなゲートウェイ・マネージャがないことの
表示のどちらかと、(2)ゲートウェイ・マネージャを
実施するために使用されるバイトコードの参照と、
(3)そのようなゲートウェイ・マネージャ(すなわ
ち、ローカルにゲートウェイを有するために使用される
資源)のコストの記述を与える登録サービスが各マシン
にあると仮定する。たとえば、ゲートウェイ・マネージ
ャのコストは、それを実行するために必要なメモリであ
ってよい。
【0040】再び図6を参照すると分かるように、マシ
ンD508で参照R504が受け取られると、下記のプ
ロセスが実行される。まず、図7のR602のフロント
・ハンドルが検査され、それがマシンD508内のゲー
トウェイ・オブジェクトを参照しているかどうかが判定
される。そうである場合、R504は修正なしでマシン
D508で使用できる。フロント・ハンドルが他のマシ
ンを参照する場合(図6と同様に、RはマシンB514
を指し示す)、ローカル・ゲートウェイ・オブジェクト
を有するコストを求め、必要に応じてゲートウェイ・オ
ブジェクトの作成を試みる追加処理が必要である。これ
は下記のように行われる。
【0041】次のステーションでは、ゲートウェイ・サ
ービスを識別する名前N(図7の606)を使用して、
登録サービス(最も簡単な実施態様ではテーブル)にお
いて、受取側マシンD508にゲートウェイ・マネージ
ャGMがあるかどうかが検査される。ゲートウェイ・マ
ネージャがある場合、受け取られた参照RがこのGMに
渡され、ゲートウェイ・オブジェクトG’が得られる。
G’は、R(図7の602)内のGに置き換わり、マシ
ンD508で使用すべきオブジェクト参照600が生成
される。
【0042】受取側マシンD508にゲートウェイ・マ
ネージャがない場合、マシンDでゲートウェイ・マネー
ジャをインスタンス化するときに必要になるコストの記
述が得られる。たとえば、このコストは、マネージャを
記述するバイトコードに関するメモリ要件に、マネージ
ャを実行するための追加コストを加えた値である。この
コスト記述は、登録機構から得られ、この場合も図7の
名前N606によってインデックス付けされる。次に、
このコストは、マシンD508でローカルに使用できる
資源と比較される。使用できる資源が十分にない場合、
オブジェクト参照Rはそのまま使用され、必要に応じて
追加通信コストが受け入れられる。
【0043】ゲートウェイ・マネージャの作成 ゲートウェイ・マネージャの作成は、マネージャ記述子
に基づいて行われる。マネージャを記述するのに有用な
いくつかの機構がある。このような機構は、Javaコ
ードが移植可能なフォーマット(javaバイトコー
ド)を有し、Javaマシンがこのようなバイトコード
を動的にロードできることに基づくものである。クラス
を記述するバイトコードは、名前サービスによって与え
られる名前で識別されるオブジェクトに記憶することが
できる。インターネットにおける一般的な例は、ユニフ
ォーム・リソース・ロケータ(URL)であり、他の例
として、ファイル・システムが使用可能な状況に適用で
きるファイル名がある。一貫性を確保するには、クラス
をフィンガプリント化することができる。フィンガプリ
ントとは、クラスを統計的に一意に識別する数(または
数の集合)である。すなわち、実際には異なる2つのク
ラスが同じフィンガプリントを有する確立は非常に低い
(引用によって完全に本明細書に組み込まれる、199
6年4月23日に出願された「System & Me
thod for Generating Ident
ifiers For Uniquely Ident
ifying Object Types for O
bjects Used InProcessing
of Object−Oriented Progra
ms And The Like」と題するJames
H.Waldo、Krishna Bharat、R
oger Riggsの前述の米国特許出願第08/6
36707号を参照されたい)。
【0044】これらの技術が与えられる場合、ゲートウ
ェイ・マネージャ識別子は、「そのクラスの名前、その
フィンガプリント、必要に応じてバイトコードにアクセ
スするためのURL」であってよい。このクラスからオ
ブジェクトをインスタンス化するために使用される方法
は下記のとおりである。まず、この名前を使用して、受
取側マシンがその名前を有するクラスを有するかどうか
が判定され、そのようなクラスが存在しない場合、UR
Lを使用してそのクラスのバイトコードがロードされ
る。そのようなクラスが存在する場合、そのフィンガプ
リントが算出され、送信されたフィンガプリントと比較
される。これらのフィンガプリントが一致しない場合、
エラーが表示される。このように新しいマシン上にゲー
トウェイ・サービス・マネージャが作成された後、前述
のようにゲートウェイ・サービス・マネージャを使用し
て新しいマシン上に新しいゲートウェイ・オブジェクト
を作成することができる。
【0045】オブジェクト指向アーキテクチャの好まし
い実施形態と、代替実施形態に関して本発明を説明した
が、コンピュータ・システム設計の当業者には、添付の
特許請求の範囲から推定される本発明の趣旨および範囲
から逸脱せずに、他のオペレーティング・システム・ア
ーキテクチャおよびドメインにおける本発明の応用を含
め、前述の実施態様の構造およびプログラミングに様々
な変更を加えられることが認識されよう。
【図面の簡単な説明】
【図1】 複数のオブジェクト指向マシンのうちの1つ
のみが、オブジェクト指向クライアントと非オブジェク
ト指向マシンとの間で通信を行うことができるようにす
るゲートウェイ・サーバを有する、異種コンピュータ・
システムのネットワークを示す図である。
【図2】 図1のネットワークに類似しているが、すべ
てのオブジェクト指向マシンが本発明によるゲートウェ
イ・サーバを有する、異種コンピュータ・システムのネ
ットワークを示す図である。
【図3】 本発明を具体化することができるCPUと従
来型のメモリとを含む、コンピュータの一部を示す図で
ある。
【図4】 新しいゲートウェイ・サーバを動的に組み込
むことなしに実施される、あるマシンが異種コンピュー
タ・ネットワーク内の他のあるマシンから新しいクライ
アント・ハンドルを得たときに第1のマシンで使用され
る論理プロセスのフローチャートである。
【図5】 新しいゲートウェイ・サーバを呼び出すこと
を含め、あるマシンが異種コンピュータ・ネットワーク
内の他のあるマシンから新しいクライアント・ハンドル
を得たときに第1のマシンで使用される論理プロセスの
フローチャートである。
【図6】 いくつかの異種ドメインにわたって広がる問
題環境をより一般的に説明する図である。
【図7】 ゲートウェイ・オブジェクトを指し示すフロ
ント・ハンドルGを含む例示的なオブジェクト参照Rを
示す図である。
【図8】 新しいゲートウェイ・オブジェクトを呼び出
すタスクを実行する図5中の論理ブロック416で使用
される論理プロセスのフローチャートである。
【符号の説明】
102、104、106 マシン 108、118 クライアント 110、122 ゲートウェイ・サーバ 112、114、116、119 通信経路 502、508、514 マシン 504、600 オブジェクト参照 516 ゲートウェイ・マネージャ・オブジェクト 520 ドメイン 522 サーバ・オブジェクト 602 ゲートウェイ・オブジェクト 604 サービス・オブジェクト 606 ゲートウェイ・サービス
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成9年8月15日
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正内容】
【図1】
【図2】
【図3】
【図7】
【図4】
【図5】
【図6】
【図8】
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 エデュアード・ペレグリ−ロパート アメリカ合衆国・94040・カリフォルニア 州・マウンテン ヴュー・フォードハム ウェイ・1731

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ローカル・マシンがリモート・プログラ
    ムと直接通信するゲートウェイ・プログラムを必要とす
    るときに、前記ゲートウェイ・プログラムの動的ローデ
    ィングを実行する装置であって、 第1のドメインに存在し、プロセッサと、メモリと、オ
    ペレーティング・システムとを有するプログラム可能な
    ローカル・コンピュータであって、異なるオペレーティ
    ング・システムを有し前記リモート・プログラムを含む
    複数の他のコンピュータの少なくとも1つとの通信接続
    を行うプログラム可能なローカル・コンピュータと、 前記プログラム可能なローカル・コンピュータにローカ
    ル・ゲートウェイ・プログラムが存在するかどうかを判
    定し、そうである場合、前記ローカル・ゲートウェイの
    参照を使用して前記リモート・プログラムと直接通信
    し、そうでない場合は、前記プログラム可能なローカル
    ・コンピュータにロードできる新しいゲートウェイ・プ
    ログラムがあるかどうかを判定し、そうである場合、前
    記新しいゲートウェイ・プログラムを、前記リモート・
    プログラムと通信するために使用できるように前記プロ
    グラム可能なローカル・コンピュータに動的にロードす
    るように構成された、前記プログラム可能なローカル・
    コンピュータ内のコンピュータ・プログラム機構とを備
    えることを特徴とするプログラム可能な装置。
  2. 【請求項2】 第1のドメイン内のローカル・マシン
    が、第2のドメイン内のマシンに存在するリモート・プ
    ログラムと直接通信するゲートウェイ・プログラムを必
    要とするときに、前記ゲートウェイ・プログラムの動的
    ローディングを実行させる装置であって、 コンピュータ読取り可能な記憶媒体と、 前記記憶媒体に記憶されたコンピュータ・プログラムと
    を備え、 前記記憶媒体は、前記第1のドメイン内のプログラム可
    能なローカル・コンピュータに、前記プログラム可能な
    ローカル・コンピュータ上にローカル・ゲートウェイ・
    プログラムが存在するかどうかを判定させ、そうである
    場合、前記ローカル・ゲートウェイの参照を使用して前
    記第2のドメイン内の前記リモート・プログラムと直接
    通信させ、そうでない場合は、前記プログラム可能なロ
    ーカル・コンピュータが前記新しいゲートウェイ・プロ
    グラムを受け取るための資源を有する場合に、前記リモ
    ート・プログラムと通信するために使用できる新しいゲ
    ートウェイ・プログラムを前記プログラム可能なローカ
    ル・コンピュータに動的にロードさせるコンピュータ・
    プログラムを備えていることを特徴とする装置。
  3. 【請求項3】 第1のドメイン内のローカル・マシン、
    第2のドメイン内のマシン上に存在するリモート・プロ
    グラムと直接通信するゲートウェイ・プログラムを必要
    とするときに、前記ゲートウェイ・プログラムの動的ロ
    ーディングを実行する、コンピュータによって実施され
    る方法であって、 前記第1のドメイン内のプログラム可能なローカル・コ
    ンピュータを使用するステップと、 第2のドメインに配置された前記リモート・プログラム
    と通信することができるゲートウェイ・プログラムを指
    し示す値を含む参照ハンドルを、前記第1のドメイン内
    の他のコンピュータから受け取るステップと、 前記プログラム可能なローカル・コンピュータにローカ
    ル・ゲートウェイ・プログラムが存在するかどうかを判
    定し、そうである場合、前記ローカル・ゲートウェイ・
    プログラムの参照を使用して前記リモート・プログラム
    と直接通信するステップと、 前記プログラム可能なローカル・コンピュータ上にロー
    カル・ゲートウェイ・プログラムが存在しない場合、前
    記リモート・プログラムと通信するために使用できる新
    しいゲートウェイ・プログラムを前記プログラム可能な
    ローカル・コンピュータに動的にロードするステップと
    を有することを特徴とする方法。
JP9155004A 1996-06-12 1997-06-12 リモート・ゲートウェイ・システムにアクセスする方法および装置 Pending JPH10116196A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/662,838 US5987512A (en) 1996-06-12 1996-06-12 Method and apparatus for access to remote gateway servers
US08/662838 1996-06-12

Publications (1)

Publication Number Publication Date
JPH10116196A true JPH10116196A (ja) 1998-05-06

Family

ID=24659425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9155004A Pending JPH10116196A (ja) 1996-06-12 1997-06-12 リモート・ゲートウェイ・システムにアクセスする方法および装置

Country Status (3)

Country Link
US (1) US5987512A (ja)
EP (1) EP0813148A3 (ja)
JP (1) JPH10116196A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1040414B1 (de) * 1997-12-17 2002-07-10 Fujitsu Siemens Computers GmbH Verfahren zum umsetzen eines systemaufrufs
US20060010136A1 (en) * 1999-01-28 2006-01-12 Deangelo Michael System and method for creating and manipulating information containers with dynamic registers
KR100463221B1 (ko) * 2002-03-19 2004-12-23 알서포트 주식회사 게이트웨이서버를 통한 파일교환시스템
JP4019817B2 (ja) * 2002-06-28 2007-12-12 株式会社日立製作所 分散オブジェクト制御方法およびその実施システム
US7769853B2 (en) * 2007-06-12 2010-08-03 International Business Machines Corporation Method for automatic discovery of a transaction gateway daemon of specified type
US20130167144A1 (en) * 2009-09-04 2013-06-27 Bernd Mathiske Virtual Machine Persisted Within Itself

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677588A (en) * 1983-11-14 1987-06-30 International Business Machines Corp. Network interconnection without integration
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
JPH05257664A (ja) * 1991-12-12 1993-10-08 Internatl Business Mach Corp <Ibm> バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法
DE69309485T2 (de) * 1992-11-13 1997-07-10 Microsoft Corp Verfahren zur verteilung von schnittstellenzeigern fur fernprozeduranrufe
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects

Also Published As

Publication number Publication date
US5987512A (en) 1999-11-16
EP0813148A2 (en) 1997-12-17
EP0813148A3 (en) 2001-01-17

Similar Documents

Publication Publication Date Title
US9183066B2 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
JP3072709B2 (ja) 要求伝達方法
US6272559B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6633923B1 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US6189046B1 (en) Mechanism and method for merging cached location information in a distributed object environment
US6820267B2 (en) Method and system for remote automation of object oriented applications
US7484218B2 (en) Method and apparatus for dynamically brokering object messages among object models
US6560656B1 (en) Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US5832219A (en) Distributed object networking service
US8010968B2 (en) Method and system for dynamic configuration of interceptors in a client-server environment
US6993774B1 (en) System and method for remote enabling classes without interfaces
US6282581B1 (en) Mechanism for resource allocation and for dispatching incoming calls in a distributed object environment
EP0886212A2 (en) System and method for remote object invocation
EP0695992A2 (en) Shared memory subcontract
US6629154B1 (en) Method and system for deterministic hashes to identify remote methods
JP2002505466A (ja) 遠隔メソッド呼出し方法及び装置
US7730522B2 (en) Self-registering objects for an IPC mechanism
JPH10116196A (ja) リモート・ゲートウェイ・システムにアクセスする方法および装置
US7424721B2 (en) Inter-object communication interface bridge
KR20010041227A (ko) 분산 시스템에서 정보를 동적으로 증명하기 위한 장치 및 방법
US20020178141A1 (en) Method and apparatus for remote inter-language method calling
WO1999044123A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
EP1057113B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
JP3007340B1 (ja) 機能呼び出し方法、並列分散処理システムおよびコンピュータ
JPH11272622A (ja) 並行分散処理システムおよびその方法