JPH1185519A - オブジェクトを遠隔的に実行する方法、システム - Google Patents

オブジェクトを遠隔的に実行する方法、システム

Info

Publication number
JPH1185519A
JPH1185519A JP10118308A JP11830898A JPH1185519A JP H1185519 A JPH1185519 A JP H1185519A JP 10118308 A JP10118308 A JP 10118308A JP 11830898 A JP11830898 A JP 11830898A JP H1185519 A JPH1185519 A JP H1185519A
Authority
JP
Japan
Prior art keywords
computer
program
proxy
objects
remote
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
JP10118308A
Other languages
English (en)
Inventor
David Louis Kaminsky
デビッド・ルイス・カミンスキー
Richard Adam King
リチャード・アダム・キング
Zhiyong Li
ツィーヨン・リ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1185519A publication Critical patent/JPH1185519A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/546Message passing systems or structures, e.g. queues
    • 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)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】 プログラマがプログラムを、あたかもそれが
局所的に実行されているかのように作成することを可能
にする、分散オブジェクト・プログラムを生成する改善
された方法を提供すること。 【解決手段】 本発明の自動オブジェクト分散は、明示
的なネットワーキング・コード無しに、またインタフェ
ース定義言語(IDL)を使用することなく、オブジェ
クト指向プログラムが分散プログラムとして実行される
ことを可能にする。本発明はプログラマがプログラミン
グ・タスクを複雑化することなく、異なる分散を試すこ
とを可能にする。これはローカル呼び出しのために作成
されたメソッド呼び出しをネットワークを通じて呼び出
すことを可能にする2つのプロキシを生成することによ
り達成される。これらの動的に生成されるプロキシが、
呼び出しがあたかも局所的であるかのように、ネットワ
ークを横断して伝番されることを可能にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に、コンピュー
タ・プログラミング方法及びシステムに関し、特にオブ
ジェクト指向プログラミング、及びオブジェクト指向プ
ログラムをネットワークにより接続される複数のコンピ
ュータ上で実行する方法及びシステムに関する。
【0002】
【従来の技術】プログラムの一部が2つ以上のコンピュ
ータ上で実行されるようにする、単一のプログラムの分
散は、"デスクトップ"・コンピュータが強力になるにつ
れ、より一層普及するようになった。図1は、アプリケ
ーションが実行される複数の分散コンピュータを含むコ
ンピュータ・ネットワークの例を示す。大部分のコンピ
ュータ・ネットワークは、より大規模な多くの階級が存
在するが、この小さなネットワークが一例として使用さ
れる。現在、多くのコンピュータ・システムが、オブジ
ェクトがネットワークを通じて通信することを可能にす
る。これを可能にする1つの方法は、RPC(Remote P
rocedure Call)すなわちリモート・プロシージャ呼び
出しである。RPCは1980年代中旬から存在し、例
えば、Birrell及びNelsonにより"Implementing Remote
Procedure Calls"、ACM Transaction on Computer Syst
em 2、1984、pp39-59等で詳しく述べられている。更に
DSOM(Distributed Systems Object Model)すなわ
ち分散システム・オブジェクト・モデルなどの改善がR
PCに対して行われ、現在に至っている。従来のシステ
ムでは、プログラマがインタフェース定義言語(ID
L:Interface Definition Language)を用いて、オブ
ジェクトとのインタフェースを記述する。システムがI
DL仕様を実行可能なコードに自動的に変換するツール
を提供する。
【0003】最近、サン・マイクロシステムズ社が、R
MI(Remote Method Invocation)すなわちリモート・
メソッド呼び出しと呼ばれるRPC及びDSOMに類似
する能力を含む、Javaと呼ばれるオブジェクト指向
プログラミング言語を発売した。Javaが有効なシス
テムを用いることにより、プログラマはプログラムが実
行されるネットワークの明示的な認識を有すること無
く、分散オブジェクト・プログラムを作成することがで
きる。しかしながら、この技術を用いてもプログラマま
たはインプリメンタは、オブジェクトのリモート呼び出
しを可能にする追加のコードを作成する(またはIDL
仕様を作成する)ことを要求される。コーディング作業
のために、IDLの作成は誤りを起こしがちである。更
に、プログラマが、彼がオブジェクトを分散するために
選択するポイントが次善であると判断する場合、彼は現
仕様を消去し、別の仕様を作成しなければならない。最
適な分散ポイントを選択することは困難な作業であり、
この問題は最新のプログラミング環境においてしばしば
発生する。更に、最適な分散ポイントは、コンピュータ
・トポロジにもとづき変化し得る。例えば、2つのコン
ピュータが同等に強力な場合、最適な分散は各コンピュ
ータ上で実行される等しい数のオブジェクトを有するで
あろう。また、2つのコンピュータが異なる能力を有す
る場合、より強力なコンピュータがより多くのオブジェ
クトを実行することになろう。異種のコンピュータ・ト
ポロジが一般的であるので、IDLを用いて静的に作成
されるコードは、しばしば次善の性能を生じる。
【0004】代わりに、多くのプログラム作成ツールに
より、プログラマはツールを用いてプログラムを記入
し、オブジェクトが分散されるオブジェクト境界を示す
ことができる。ツールは次にプログラムの実行可能コー
ド生成する。しかしながら、これらのツールは静的プロ
グラム・パーティションを生成し、従ってIDLシステ
ムに類似の異種性の問題を被る。更に、ツールは通常、
共通運用されない。従って、同一のプログラムに携わる
複数のプログラマは一緒に効率的に作業するために、同
一のツール上で標準化することを強要される。ツールは
強みと弱みを有するので、単一のツール上での標準化は
望ましくない。
【0005】
【発明が解決しようとする課題】本発明の目的は、プロ
グラマがプログラムを、あたかもそれが局所的に実行さ
れているかのように作成することを可能にする、分散オ
ブジェクト・プログラムを生成する改善された方法を提
供することである。
【0006】本発明の別の目的は、プログラマにより生
成されたクラスを変更すること無しに、オブジェクトの
分散を生成することである。
【0007】更に本発明の別の目的は、プログラム生成
ツールの必要無しに、オブジェクトの分散を生成するこ
とである。
【0008】
【課題を解決するための手段】本発明は、オブジェクト
を遠隔的に実行または走行するシステム、方法及びプロ
グラム製品について述べ、これはここでは自動オブジェ
クト分散(AOD:Automatic Object Distribution)
として参照される。図2に示されるように、オブジェク
ト指向プログラムは互いに呼び出しあうことにより、統
一された機能を実行する多くの独立のオブジェクトによ
り作成される。図2は、コンピュータ・メモリ101を
示し、そこにはオブジェクト102、すなわちV、W、
X、Y及びZの全てが内在する。本発明は、ユーザがオ
ブジェクトの一部を第1のコンピュータから第2のコン
ピュータに移動して、実行することを可能にする。この
様子が図3に示される。図3では、オブジェクトV及び
Yすなわち205が、第1のコンピュータ・メモリ20
1内に留まり、オブジェクトW、X及びZすなわち20
7が、第2のコンピュータ・メモリ203に移動され
る。これは例えば、第1のコンピュータと第2のコンピ
ュータとの間の作業負荷を平衡化するために行われる。
このことは追加の複雑化を生じる。なぜなら、プログラ
ム・オブジェクトの各々が、ここではメソッドとして参
照される外部ルーチンを呼び出すことができるからであ
る。プログラム・オブジェクトをその実行のために複数
のコンピュータに分離することは、全てのメソッドまた
はオブジェクトが(これらはオブジェクトの異なるコン
ピュータ・メモリへの分離により、もはや同一システム
上に呼び出し側メソッドと共存しないメソッドをアクセ
スする)、オブジェクトの一部がネットワーク上のどこ
か別のところに配置されていることを知り、それらのリ
モート・オブジェクトをアクセスする方法を理解するこ
とを要求する。
【0009】本発明のAODは、プログラマがオブジェ
クトがネットワーク上で分散されると言う知識を有し
て、彼らのプログラムを作成する要求を排除する。本A
ODはまた、プログラマが分散オブジェクトをサポート
する特殊な言語により、プログラムを作成する、或いは
作業をネットワークにまたがり分散したいときに、特定
のツールを用いて作成する必要性を排除する。代わり
に、本発明を用いることにより、プログラマはJava
(サン・マイクロシステムズ社の商標)などの共通のオ
ブジェクト指向言語によりプログラムを作成し、コード
をリンクされていない実行可能コードにコンパイルす
る。(コンピュータ文献では、リンクされていない実行
可能コードは、しばしば"オブジェクト・コード"と呼ば
れる。オブジェクト指向システムを述べるとき、用語"
オブジェクト・コード"の使用は混乱を生じ、従って用
語"バイトコード"が本発明の目的のために採用され
る。)プログラムはコードをあたかもプログラムが単一
のマシン上で実行されるように、正確に作成する。すな
わち、彼はプログラムをIDLシステムの場合のよう
に、追加の情報により修飾しない。プログラムは次に、
分散が発生すべき場所を決定し、AODが分散コードを
生成する。
【0010】AODは2つのプロキシを生成することに
より分散を実行する。プロキシは、ローカル呼び出しの
ために作成されるメソッド呼び出しが、ネットワークを
通じて呼び出されることを可能にする。局所的に実行さ
れるあるクラスYと、遠隔的に実行されるあるクラスX
との間で分割が示される場合、AODプロセスはプロキ
シを生成して介在するネットワークを克服する。これら
のプロキシは一緒にYからの呼び出しを横取りし、それ
らをXに受け渡し、結果をYに返却する。この様子が図
4及び図5に詳細に示される。
【0011】図4は、プログラムが単一メモリ301内
で実行されるコンピュータ・システムを示す。オブジェ
クトY303及びオブジェクトX305の両方は、同一
のメモリ上に存在し、オブジェクトY303からオブジ
ェクトX305を呼び出すために、メソッド呼び出し3
11が使用される。
【0012】図5に示されるように、AODプロセスは
バイトコード・ファイル内の情報を用い、あるクラス例
えばX305のために、そのプロキシとして機能するク
ラスを含む2つのプロキシ・ファイル(X'315及び
X"317)を生成する。X'315は、X305内の全
ての公開メソッドを有するXと命名されるクラスを含
む。(オリジナル・クラスX305ファイルはリモート
・マシン上に配置されるので、名前の衝突は存在しな
い。)X"317は、固有の名前(X")を有するクラス
を含み、これはクラスX内の公開メソッドへの呼び出し
を生成するメソッドを含む。X'315はY303と同
一のマシン上に存在し、X"317はX305と同一の
マシン上に存在する。X'315はXと呼ばれるクラス
を含み、そのクラスはX305内の全ての公開メソッド
を含むので、Y303がオリジナル・クラスX内のメソ
ッドに対する呼び出しを生成するとき、その呼び出しは
実際には、ファイルX'315内に含まれ、局所的に存
在する新たなクラスX内のメソッドに対して生成され
る。X'315は呼び出し情報をX"317に受け渡し、
X"317が次にX305にローカル呼び出しを生成す
る。ローカル呼び出しの結果がX"317及びX'315
を介してY303に伝播される。結果的に、プログラマ
が任意のプログラム・コードを作成または変更すること
を要求すること無く、局所的に実行されるように作成さ
れたアプリケーションが、ネットワークを通じて分散さ
れる。
【0013】
【発明の実施の形態】本発明の好適な実施例について、
図面を参照しながら説明する。しかしながら、本発明は
この好適な実施例に限られるものではない。本発明は、
プロキシを使用する自動分散プログラミングに適用可能
である。好適な実施例の自動オブジェクト分散(AO
D)は、Javaプログラミング環境を使用するが、本
発明はJavaに限られるものではなく、本発明の他の
オブジェクト指向環境への適用が当業者には理解されよ
う。本発明の好適な実施例は、あたかもプログラムが局
所的に実行されるかのように(例えばプログラムがリモ
ート・メソッド呼び出しコードを含まない)、プログラ
マがプログラムをJavaにより作成し、標準のJav
aコンパイラを用いてソース・ファイルを対応するバイ
トコード・ファイルにコンパイルしたものと仮定する。
AODプロセスは次に、オブジェクト指向プログラミン
グにおいては、全てのオブジェクトが(公開変数への直
接アクセスを通じてではなく)、メソッド呼び出しを通
じてアクセスされると言う取り決めを利用する。Jav
aでは、各クラスが別々のバイトコード・ファイルにコ
ンパイルされる(従って、バイトコード・ファイルはし
ばしば"クラス・ファイル"と呼ばれる)。プログラマは
次に、リモート・マシンに移動されるクラス及び局所的
に留まるクラスを識別する。こうしたクラスを識別する
プロセスは、クラスを含むファイルの名前を本発明を実
現するツールにタイプ入力することにより達成される。
【0014】本発明の好適な実施例を用いて、オブジェ
クトを遠隔的に実行するためにAODはどのクラスが局
所的に維持され、どのクラスが遠隔的に移動されるかに
関する入力を用いて、図6に言及される次の処理を実行
する。 1)AODは各クラスに対するバイトコードを検査し、
遠隔的に実行されるクラスからメソッド呼び出しを受信
するクラスを決定する。(ステップ502) 2)リモート・マシンから要求される各オブジェクトX
に対して、その公開メソッドのリストがXのバイトコー
ド・ファイルから抽出され、記憶される。(ステップ5
04) 3)公開メソッドのリストにもとづき、X"と呼ばれる
プロキシが生成される。X"は、X内の公開メソッドと
類似の名前を有するメソッドを含むように構成される。
構成されるメソッドの各々はXに対する対応するメソッ
ド呼び出しを生成する。それはまた、自身をRMIレジ
ストリに登録するために必要なコードを含む。(ステッ
プ506) 4)公開メソッドのリストにもとづき、X'と呼ばれる
プロキシが生成される。X'はX内の公開メソッドを含
むように構成される。構成されるメソッドの各々は、
(JavaのRMI機能を用い)X"に対する対応する
リモート・メソッド呼び出しを生成する。このプロキシ
・クラスは、Xが有するのと同一の名前を有する。(ス
テップ508) 5)リモートとして指定される全てのオリジナル・バイ
トコード・ファイル、及び全ての"2重プライム符号付
きプロキシ"がリモート・マシンに転送される。一方、
ローカルとして指定される全てのバイトコード・ファイ
ル及び全ての"プライム符号付き"プロキシは、ローカル
・マシン上に留まる。(ステップ510)
【0015】各ステップについて、より詳細に述べるこ
とにする。 1)Javaコンパイラ(及び多くのオブジェクト指向
言語のコンパイラ)は、検査プロセスが成功裡に発生す
ることを可能にする、公知の形式のバイトコード・ファ
イルを生成する。様々なバイトコード・ファイルのリン
クを可能にするため、各バイトコード・ファイルは各ク
ラスから呼び出されるメソッドに関する情報を含む。従
って、ファイルからメソッドに関する情報を読出すこと
により、AODは相関するクラスの要求リストを生成す
ることができる。
【0016】2)同様に、バイトコード・ファイルは、
それにより記述されるクラスの公開メソッドに関する情
報を含む。従って、ファイルから公開メソッドに関する
情報を読出すことにより、AODは全ての公開メソッド
のリストを生成することができる。バイトコード・ファ
イルはまた、パラメータ及び戻り値に関する情報を含
む。
【0017】Javaの一部の実施例では、クラスによ
りサポートされる公開メソッドのプログラム的決定を可
能にする"リフレクション(reflection)"と呼ばれる機
能を含む。リフレクションが実施される場合、これはバ
イトコード・ファイルを検査するプロセスを置換するた
めに使用される。
【0018】3)クラス上の全ての公開メソッドのリス
トが提供されると、類似に命名されるメソッドを含む2
重プライム符号付きプロキシ・クラス(X")を生成す
ることは容易であり、これらのメソッドの各々がX上の
メソッドへの呼び出しを生成する。好適な実施例では、
呼び出しはJavaソースとして生成され、Javaの
標準の動的コンパイル機構を用いて、動的にコンパイル
される。従って、XがメソッドA及びBを含む場合、
X"は次のように作成される。
【0019】ここで、プロキシ内のメソッドに"_AOD"の
接尾部を付加する取決めを用いた点に注意されたい。例
えばメソッド"A_AOD"は、X内のメソッド"A"を呼び出
す。再生可能で一貫性があれば、任意の取り決めが使用
され得る。
【0020】4)クラス上の全ての公開メソッドのリス
トが提供されると、これらのメソッドを含むプライム符
号付きプロキシ・クラスを生成することは容易であり、
これは(RMIを用いて、)X"上で類似に命名された
メソッドへのリモート呼び出しを生成する。好適な実施
例では、呼び出しがJava RMIソースとして生成
され、Javaの標準の動的コンパイル機構を用いて動
的にコンパイルされる。
【0021】プロキシX"に加え、X内の全ての公開メ
ソッドの署名を含むインタフェースX"インタフェース
が、Javaの標準RMI技法により要求されるときに
生成される。
【0022】クラス上の全ての公開メソッドに関する同
一の情報が提供されると、インタフェースX"インタフ
ェースを生成することも容易である。
【0023】 Interface XprimeprimeInterface extends java.rmi.Remote{ A_AOD(); B_BOD(); }
【0024】従って、XがA及びBを含む場合、X'は
次のように生成される。 Class Xprime{ XprimeprimeInterface x; Xprime(){//constructor x=(XprimeprimeInterface)Naming.lookup(Xprimeprime);//do the RMI lookup } A(){//call remote A x.A_AOD(); } B(){//call remote B x.B_AOD(); } }
【0025】この例では、Naming.lookup()がRMIレ
ジストリに問い合わせることにより、リモート参照を
X"に返却する。取り決めにより、返却オブジェクトが
X"インタフェースのタイプに投じられる。
【0026】プロキシ・クラスはXと呼ばれるが、オリ
ジナルXとの名前の衝突は発生しない。プロキシXはロ
ーカル・マシン上で実行され、オリジナルXはリモート
・マシンに移動すると識別されたので、1マシン当たり
1つのXだけが存在する。
【0027】5)ファイルが次に、この機能が実現され
るシステム上で使用可能な任意の手段により転送され
る。
【0028】図5に示されるように、プロキシが確立さ
れると、次のステップが実行時に発生する。:プログラ
マがあるオブジェクトYとあるオブジェクトXとの間
で、プログラムを分散するように選択すると仮定しよ
う。ここでYはメソッド呼び出しを通じてのみ、Xをア
クセスする。YがX上の公開メソッドfoo()を呼び出す
と、次のステップが発生する。最初に、Yが通常通りfo
o()への呼び出しを生成する。(そのコードが変更され
ていないので必然である。)プロキシXprimeはローカル
・マシン上の唯一のXであり、メソッドfoo()を含むの
で、呼び出しはXのプライム符号付きプロキシ上で生成
されなければならない。
【0029】取り決めによりX内のメソッドfoo()は、
リモート2重プライム符号付きプロキシ上のメソッドfo
o_AOD()へのRMI呼び出しを生成し、結果を返却す
る。取り決めにより、2重プライム符号付きプロキシ上
のfoo_AOD()は、X上のfoo()へのローカル呼び出しを生
成する。Xは変更されていないので、これはオリジナル
foo()を実行し、結果を2重プライム符号付きプロキシ
内のfoo_AOD()に送り返す。すると、foo_AOD()はそれら
をプライム符号付きプロキシに渡し、プライム符号付き
プロキシがそれらをYに返却する。従って、呼び出しは
意味的にはローカル呼び出しに等価である。
【0030】このプロセスはオリジナル・ファイルに影
響を及ぼさず、いずれのプログラマ介入も要求すること
なく分散を実現するので、プログラマにとって異なるク
ラス分散ポイントをテストすることが極めて容易とな
る。このことがプログラマに多大な影響を及ぼすこと無
く、プログラムをより効率的に実行することを可能にす
る。
【0031】更に、分散は追加のプログラミングを要求
しないので、システム管理者は同一のプログラムの複数
のインスタンスを、異なるコンピュータ構成上に配置す
ることができ、各構成はコンピュータ環境のセグメント
の特定の特性にもとづき、それ自身の分散(及び性能特
性)を有することになる。この分散は、追加のプログラ
ミングを必要とせず、またオリジナル・プログラムに対
するいずれの変更も要求しない。
【0032】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0033】(1)各々が1つ以上のプログラム・メソ
ッドを含むプログラムのオブジェクトを、2つ以上の物
理装置に渡り分散する方法であって、前記プログラム内
の全ての前記オブジェクトを識別するステップと、第1
のコンピュータ上に存在すべき前記オブジェクト、及び
第2のコンピュータ上に存在すべき前記オブジェクトを
決定するステップと、リモート・コンピュータからアク
セスされ得る各前記オブジェクトに含まれる全ての前記
プログラム・メソッドを識別するステップと、前記リモ
ート・コンピュータからアクセスされ得る各前記オブジ
ェクトに対して、第1のプロキシ及び第2のプロキシを
生成するステップであって、前記第1のプロキシが前記
第1のコンピュータ上に存在し、前記第2のプロキシが
前記第2のコンピュータ上に存在し、前記第1のプロキ
シが、前記第2のコンピュータ上の前記プログラム・メ
ソッドをアクセスするためのネットワーク・リンク及び
指示を含み、前記第2のプロキシが、前記第1のコンピ
ュータ上の前記プログラム・メソッドをアクセスするた
めのネットワーク・リンク及び指示を含み、前記プロキ
シを通じて、前記リモート・プログラム・メソッドをア
クセスするステップと、を含む、方法。 (2)前記第2のプロキシが、前記第1のコンピュータ
上に留まる前記オブジェクト内の前記メソッドに類似に
命名されるメソッドを含み、前記第1のプロキシが、前
記第2のコンピュータに移動される前記オブジェクト内
の前記メソッドに類似に命名されるメソッドを含む、前
記(1)記載の方法。 (3)前記ネットワーク・リンクが前記プログラム・メ
ソッドのリモート呼び出しのためのステートメントを含
む、前記(1)記載の方法。 (4)各々が1つ以上のプログラム・メソッドを含むプ
ログラムのオブジェクトを、2つ以上の物理装置に渡り
分散するコンピュータ・プログラム製品であって、コン
ピュータ読出し可能プログラム・コード手段が埋め込ま
れるコンピュータ読出し可能記憶媒体を含むものにおい
て、前記コンピュータ読出し可能プログラム・コード手
段が、前記プログラム内の全ての前記オブジェクトを識
別するコンピュータ読出し可能プログラム・コード手段
と、第1のコンピュータ上に存在すべき前記オブジェク
ト、及び第2のコンピュータ上に存在すべき前記オブジ
ェクトを決定するコンピュータ読出し可能プログラム・
コード手段と、リモート・コンピュータからアクセスさ
れ得る各前記オブジェクトに含まれる全ての前記プログ
ラム・メソッドを識別するコンピュータ読出し可能プロ
グラム・コード手段と、前記リモート・コンピュータか
らアクセスされ得る各前記オブジェクトに対して、第1
のプロキシ及び第2のプロキシを生成するコンピュータ
読出し可能プログラム・コード手段であって、前記第1
のプロキシが前記第1のコンピュータ上に存在し、前記
第2のプロキシが前記第2のコンピュータ上に存在し、
前記第1のプロキシが、前記第2のコンピュータ上の前
記プログラム・メソッドをアクセスするためのネットワ
ーク・リンク及び指示を含み、前記第2のプロキシが、
前記第1のコンピュータ上の前記プログラム・メソッド
をアクセスするためのネットワーク・リンク及び指示を
含み、前記プロキシを通じて、前記リモート・プログラ
ム・メソッドをアクセスするコンピュータ読出し可能プ
ログラム・コード手段と、を含む、コンピュータ・プロ
グラム製品。 (5)前記第2のプロキシが、前記第1のコンピュータ
上に留まる前記オブジェクト内の前記メソッドに類似に
命名されるメソッドを含み、前記第1のプロキシが、前
記第2のコンピュータに移動される前記オブジェクト内
の前記メソッドに類似に命名されるメソッドを含む、前
記(4)記載のコンピュータ・プログラム製品。 (6)前記ネットワーク・リンクが前記プログラム・メ
ソッドのリモート呼び出しのためのステートメントを含
む、前記(4)記載のコンピュータ・プログラム製品。 (7)各々が1つ以上のプログラム・メソッドを含むプ
ログラムのオブジェクトを、2つ以上の物理装置に渡り
分散するシステムであって、前記プログラム内の全ての
前記オブジェクトを識別する手段と、第1のコンピュー
タ上に存在すべき前記オブジェクト、及び第2のコンピ
ュータ上に存在すべき前記オブジェクトを決定する手段
と、リモート・コンピュータからアクセスされ得る各前
記オブジェクトに含まれる全ての前記プログラム・メソ
ッドを識別する手段と、前記リモート・コンピュータか
らアクセスされ得る各前記オブジェクトに対して、第1
のプロキシ及び第2のプロキシを生成する手段であっ
て、前記第1のプロキシが前記第1のコンピュータ上に
存在し、前記第2のプロキシが前記第2のコンピュータ
上に存在し、前記第1のプロキシが、前記第2のコンピ
ュータ上の前記プログラム・メソッドをアクセスするた
めのネットワーク・リンク及び指示を含み、前記第2の
プロキシが、前記第1のコンピュータ上の前記プログラ
ム・メソッドをアクセスするためのネットワーク・リン
ク及び指示を含み、前記プロキシを通じて、前記リモー
ト・プログラム・メソッドをアクセスする手段と、を含
む、システム。 (8)前記第2のプロキシが、前記第1のコンピュータ
上に留まる前記オブジェクト内の前記メソッドに類似に
命名されるメソッドを含み、前記第1のプロキシが、前
記第2のコンピュータに移動される前記オブジェクト内
の前記メソッドに類似に命名されるメソッドを含む、前
記(7)記載のシステム。 (9)前記ネットワーク・リンクが前記プログラム・メ
ソッドのリモート呼び出しのためのステートメントを含
む、前記(7)記載のシステム。
【図面の簡単な説明】
【図1】本発明が実施され得るネットワーク例を示す図
である。
【図2】5つのオブジェクトを含むコンピュータ・メモ
リを示す図である。
【図3】2つのオブジェクトがあるコンピュータ・メモ
リ内で実行され、3つのオブジェクトが異なるコンピュ
ータ・メモリ内で実行される分散システムを示す図であ
る。
【図4】2つのオブジェクトが同一のメモリ内実行され
る方法を示す図である。
【図5】本発明に従い分散された後の、図4のオブジェ
クトを示す図である。
【図6】本発明の分散方法のフローチャートを示す図で
ある。
【符号の説明】
101、201、203 、301、302 コンピュ
ータ・メモリ 102、205、207、303、305 オブジェク
ト 311 メソッド呼び出し 315、317 プロキシ・ファイル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・アダム・キング アメリカ合衆国27514、ノース・カロライ ナ州チャペル・ヒル、エクスカリバー・コ ート 214 (72)発明者 ツィーヨン・リ アメリカ合衆国27705、ノース・カロライ ナ州ダラム、ルイス・サークル 863

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】各々が1つ以上のプログラム・メソッドを
    含むプログラムのオブジェクトを、2つ以上の物理装置
    に渡り分散する方法であって、 前記プログラム内の全ての前記オブジェクトを識別する
    ステップと、 第1のコンピュータ上に存在すべき前記オブジェクト、
    及び第2のコンピュータ上に存在すべき前記オブジェク
    トを決定するステップと、 リモート・コンピュータからアクセスされ得る各前記オ
    ブジェクトに含まれる全ての前記プログラム・メソッド
    を識別するステップと、 前記リモート・コンピュータからアクセスされ得る各前
    記オブジェクトに対して、第1のプロキシ及び第2のプ
    ロキシを生成するステップであって、前記第1のプロキ
    シが前記第1のコンピュータ上に存在し、前記第2のプ
    ロキシが前記第2のコンピュータ上に存在し、前記第1
    のプロキシが、前記第2のコンピュータ上の前記プログ
    ラム・メソッドをアクセスするためのネットワーク・リ
    ンク及び指示を含み、前記第2のプロキシが、前記第1
    のコンピュータ上の前記プログラム・メソッドをアクセ
    スするためのネットワーク・リンク及び指示を含み、前
    記プロキシを通じて、前記リモート・プログラム・メソ
    ッドをアクセスするステップと、 を含む、方法。
  2. 【請求項2】前記第2のプロキシが、前記第1のコンピ
    ュータ上に留まる前記オブジェクト内の前記メソッドに
    類似に命名されるメソッドを含み、前記第1のプロキシ
    が、前記第2のコンピュータに移動される前記オブジェ
    クト内の前記メソッドに類似に命名されるメソッドを含
    む、請求項1記載の方法。
  3. 【請求項3】前記ネットワーク・リンクが前記プログラ
    ム・メソッドのリモート呼び出しのためのステートメン
    トを含む、請求項1記載の方法。
  4. 【請求項4】各々が1つ以上のプログラム・メソッドを
    含むプログラムのオブジェクトを、2つ以上の物理装置
    に渡り分散するコンピュータ・プログラム製品であっ
    て、コンピュータ読出し可能プログラム・コード手段が
    埋め込まれるコンピュータ読出し可能記憶媒体を含むも
    のにおいて、前記コンピュータ読出し可能プログラム・
    コード手段が、 前記プログラム内の全ての前記オブジェクトを識別する
    コンピュータ読出し可能プログラム・コード手段と、 第1のコンピュータ上に存在すべき前記オブジェクト、
    及び第2のコンピュータ上に存在すべき前記オブジェク
    トを決定するコンピュータ読出し可能プログラム・コー
    ド手段と、 リモート・コンピュータからアクセスされ得る各前記オ
    ブジェクトに含まれる全ての前記プログラム・メソッド
    を識別するコンピュータ読出し可能プログラム・コード
    手段と、 前記リモート・コンピュータからアクセスされ得る各前
    記オブジェクトに対して、第1のプロキシ及び第2のプ
    ロキシを生成するコンピュータ読出し可能プログラム・
    コード手段であって、前記第1のプロキシが前記第1の
    コンピュータ上に存在し、前記第2のプロキシが前記第
    2のコンピュータ上に存在し、前記第1のプロキシが、
    前記第2のコンピュータ上の前記プログラム・メソッド
    をアクセスするためのネットワーク・リンク及び指示を
    含み、前記第2のプロキシが、前記第1のコンピュータ
    上の前記プログラム・メソッドをアクセスするためのネ
    ットワーク・リンク及び指示を含み、 前記プロキシを通じて、前記リモート・プログラム・メ
    ソッドをアクセスするコンピュータ読出し可能プログラ
    ム・コード手段と、 を含む、コンピュータ・プログラム製品。
  5. 【請求項5】前記第2のプロキシが、前記第1のコンピ
    ュータ上に留まる前記オブジェクト内の前記メソッドに
    類似に命名されるメソッドを含み、前記第1のプロキシ
    が、前記第2のコンピュータに移動される前記オブジェ
    クト内の前記メソッドに類似に命名されるメソッドを含
    む、請求項4記載のコンピュータ・プログラム製品。
  6. 【請求項6】前記ネットワーク・リンクが前記プログラ
    ム・メソッドのリモート呼び出しのためのステートメン
    トを含む、請求項4記載のコンピュータ・プログラム製
    品。
  7. 【請求項7】各々が1つ以上のプログラム・メソッドを
    含むプログラムのオブジェクトを、2つ以上の物理装置
    に渡り分散するシステムであって、 前記プログラム内の全ての前記オブジェクトを識別する
    手段と、 第1のコンピュータ上に存在すべき前記オブジェクト、
    及び第2のコンピュータ上に存在すべき前記オブジェク
    トを決定する手段と、 リモート・コンピュータからアクセスされ得る各前記オ
    ブジェクトに含まれる全ての前記プログラム・メソッド
    を識別する手段と、 前記リモート・コンピュータからアクセスされ得る各前
    記オブジェクトに対して、第1のプロキシ及び第2のプ
    ロキシを生成する手段であって、前記第1のプロキシが
    前記第1のコンピュータ上に存在し、前記第2のプロキ
    シが前記第2のコンピュータ上に存在し、前記第1のプ
    ロキシが、前記第2のコンピュータ上の前記プログラム
    ・メソッドをアクセスするためのネットワーク・リンク
    及び指示を含み、前記第2のプロキシが、前記第1のコ
    ンピュータ上の前記プログラム・メソッドをアクセスす
    るためのネットワーク・リンク及び指示を含み、 前記プロキシを通じて、前記リモート・プログラム・メ
    ソッドをアクセスする手段と、 を含む、システム。
  8. 【請求項8】前記第2のプロキシが、前記第1のコンピ
    ュータ上に留まる前記オブジェクト内の前記メソッドに
    類似に命名されるメソッドを含み、前記第1のプロキシ
    が、前記第2のコンピュータに移動される前記オブジェ
    クト内の前記メソッドに類似に命名されるメソッドを含
    む、請求項7記載のシステム。
  9. 【請求項9】前記ネットワーク・リンクが前記プログラ
    ム・メソッドのリモート呼び出しのためのステートメン
    トを含む、請求項7記載のシステム。
JP10118308A 1997-05-07 1998-04-28 オブジェクトを遠隔的に実行する方法、システム Pending JPH1185519A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/852263 1997-05-07
US08/852,263 US6157960A (en) 1997-05-07 1997-05-07 Technique for programmatically creating distributed object programs

Publications (1)

Publication Number Publication Date
JPH1185519A true JPH1185519A (ja) 1999-03-30

Family

ID=25312886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10118308A Pending JPH1185519A (ja) 1997-05-07 1998-04-28 オブジェクトを遠隔的に実行する方法、システム

Country Status (4)

Country Link
US (1) US6157960A (ja)
JP (1) JPH1185519A (ja)
KR (1) KR100285223B1 (ja)
GB (1) GB2326255B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051341B2 (en) 2001-12-14 2006-05-23 International Business Machines Corporation Method, system, and program for implementing a remote method call
WO2011158478A1 (ja) * 2010-06-17 2011-12-22 日本電気株式会社 データ処理システム及びデータ処理方法

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938263B2 (en) * 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6185611B1 (en) * 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6421704B1 (en) * 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6446070B1 (en) * 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6567861B1 (en) * 1997-09-17 2003-05-20 International Business Machines Corporation Method and apparatus for remotely running objects using data streams and/or complex parameters
EP1057272A2 (en) * 1998-02-26 2000-12-06 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6993774B1 (en) * 1998-10-19 2006-01-31 Recursion Software, Inc. System and method for remote enabling classes without interfaces
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
FR2810755B1 (fr) * 2000-06-27 2003-01-17 Cit Alcatel Procede de gestion d'informations en java
US7073062B2 (en) * 2000-12-19 2006-07-04 International Business Machines Corporation Method and apparatus to mutually authentication software modules
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030051029A1 (en) 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7433917B2 (en) * 2001-09-28 2008-10-07 Bea Systems, Inc. Method and apparatus for using Java dynamic proxies to interface to generic, bean-like management entities
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
AU2003237363A1 (en) * 2002-08-29 2004-03-19 United States Postal Services Shared services platform
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US7213123B2 (en) * 2002-10-24 2007-05-01 International Business Machines Corporation Method and apparatus for mapping debugging information when debugging integrated executables in a heterogeneous architecture
US7222332B2 (en) * 2002-10-24 2007-05-22 International Business Machines Corporation Method and apparatus for overlay management within an integrated executable for a heterogeneous architecture
US7243333B2 (en) * 2002-10-24 2007-07-10 International Business Machines Corporation Method and apparatus for creating and executing integrated executables in a heterogeneous architecture
US7200840B2 (en) * 2002-10-24 2007-04-03 International Business Machines Corporation Method and apparatus for enabling access to global data by a plurality of codes in an integrated executable for a heterogeneous architecture
EP1420340A1 (en) * 2002-11-15 2004-05-19 Hewlett-Packard Company Remote object invocation system and method
WO2004057469A1 (en) * 2002-12-19 2004-07-08 Red Plain Technology Limited A distributed object processing system and method
WO2004079572A2 (en) * 2003-02-28 2004-09-16 Bea Systems Inc. Dynamic generation of a wrapper
US7536675B2 (en) * 2003-02-28 2009-05-19 Bea Systems, Inc. Dynamic code generation system
US7472400B2 (en) 2003-02-28 2008-12-30 Bea Systems, Inc. Method for dynamically generating a wrapper class
US20040172614A1 (en) * 2003-02-28 2004-09-02 Bea Systems, Inc. Dynamic code generation method
US7472401B2 (en) * 2003-02-28 2008-12-30 Bea Systems, Inc. Computer product for a dynamically generated wrapper class
US20040207659A1 (en) 2003-04-02 2004-10-21 International Business Machines Corporation Program creation by combining web services using graphic user interface controls
US20040226022A1 (en) * 2003-05-09 2004-11-11 Prabhu Sameer D. Method and apparatus for providing a client-side local proxy object for a distributed object-oriented system
US7424722B2 (en) * 2003-08-29 2008-09-09 International Business Machines Corporation Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
US8104043B2 (en) 2003-11-24 2012-01-24 Microsoft Corporation System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
GB2434008B (en) * 2004-03-17 2007-09-12 Nec Corp Inter-processor communication in a parallel processing system running an os for single processors
JP4171910B2 (ja) 2004-03-17 2008-10-29 日本電気株式会社 並列処理システム及び並列処理プログラム
KR100716171B1 (ko) * 2005-05-13 2007-05-10 삼성전자주식회사 분산 환경 시스템에서의 객체 관리 장치 및 방법
US9606846B2 (en) * 2005-07-29 2017-03-28 Sap Se System and method for dynamic proxy generation
US20070027877A1 (en) * 2005-07-29 2007-02-01 Droshev Mladen I System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network
US7984107B2 (en) * 2005-09-09 2011-07-19 Microsoft Corporation Proxy assembly for simulating real assembly features on a remote device
CN100424675C (zh) * 2005-10-12 2008-10-08 大唐移动通信设备有限公司 多处理器系统的消息通信方法及装置
EP1890227A1 (en) * 2006-08-18 2008-02-20 Research In Motion Limited Method, system and machine-readable medium for building distributed software
US7779429B2 (en) 2006-08-18 2010-08-17 Research In Motion Limited Method and machine-readable medium for building distributed software
US10521200B2 (en) * 2017-01-09 2019-12-31 Oracle International Corporation Unambiguous proxying of interface methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1989002129A1 (en) * 1987-09-04 1989-03-09 Digital Equipment Corporation Session control in network for digital data processing system which supports multiple transfer protocols
US5481721A (en) * 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
DE4131380A1 (de) * 1991-09-20 1993-03-25 Siemens Ag Verfahren zur adaption einer objektorientierten applikation
DE69533148T2 (de) * 1994-05-26 2005-08-25 Sun Microsystems, Inc., Santa Clara Verfahren und Gerät zur Erzeugung und Verwendung kurzer Operationsidentifizierer in objektorientierten Systemen
US5822585A (en) * 1995-02-21 1998-10-13 Compuware Corporation System and method for cooperative processing using object-oriented framework
GB2305270A (en) * 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
CA2162188C (en) * 1995-11-06 1999-05-25 Harold Jeffrey Gartner Location transparency of distributed objects over multiple middlewares
US5768532A (en) * 1996-06-17 1998-06-16 International Business Machines Corporation Method and distributed database file system for implementing self-describing distributed file objects
US5948072A (en) * 1996-10-31 1999-09-07 International Business Machines Corporation Method and apparatus for defining the scope of a CORBAservices factory finder

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051341B2 (en) 2001-12-14 2006-05-23 International Business Machines Corporation Method, system, and program for implementing a remote method call
WO2011158478A1 (ja) * 2010-06-17 2011-12-22 日本電気株式会社 データ処理システム及びデータ処理方法
US9116855B2 (en) 2010-06-17 2015-08-25 Nec Corporation Data processing system and data processing method
JP5811088B2 (ja) * 2010-06-17 2015-11-11 日本電気株式会社 データ処理システム及びデータ処理方法

Also Published As

Publication number Publication date
US6157960A (en) 2000-12-05
KR100285223B1 (ko) 2001-05-02
KR19980086685A (ko) 1998-12-05
GB2326255B (en) 2002-01-30
GB2326255A (en) 1998-12-16
GB9808749D0 (en) 1998-06-24

Similar Documents

Publication Publication Date Title
JPH1185519A (ja) オブジェクトを遠隔的に実行する方法、システム
US6011918A (en) Methods, systems and computer program products for generating client/server applications
US6941561B1 (en) Method and apparatus for remotely running objects using data streams and/or complex parameters
JP3072709B2 (ja) 要求伝達方法
Purtilo The Polylith software bus
US6877163B1 (en) Method and system for dynamic proxy classes
US6324543B1 (en) Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US6546553B1 (en) Service installation on a base function and provision of a pass function with a service-free base function semantic
US5745683A (en) System and method for allowing disparate naming service providers to dynamically join a naming federation
JP4146983B2 (ja) サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
US20080178151A1 (en) Method and Apparatus to Implement Adaptive Scripting Tool
US8271622B2 (en) Method and apparatus for a system management tool to adapt command interface and behavior based on installed features
US20030051029A1 (en) Dynamic provisioning of sevice components in a distributed system
US20050262513A1 (en) Modified computer architecture with initialization of objects
JP2000515278A (ja) 非同期式にオブジェクトを呼出し、処理するための方法および装置
JP2007534063A (ja) オブジェクトの初期化を伴う改良型コンピュータアーキテクチャ
JPH0869435A (ja) ネットワークを介してリモート・プロシージャ・コール及びレスポンスを転送するための方法及びシステム
JPH0675846A (ja) アプリケーションのオブジェクト指向呼出しをデータベースで行うための方法及び装置
US7721278B2 (en) Modular server architecture for multi-environment HTTP request processing
US6219835B1 (en) Multi-language DCE remote procedure call
US7039673B1 (en) Method and apparatus for dynamic command extensibility in an intelligent agent
US6704802B1 (en) Method and system for communicating between independent software modules
US7003782B2 (en) Optimized COBRA software method invocation
EP0733968B1 (en) Method and system for type identification for multiple object interfaces in a distributed object environment
US6941556B1 (en) Method and system for type identification for multiple object interfaces in a distributed object environment