JP2002505466A - 遠隔メソッド呼出し方法及び装置 - Google Patents
遠隔メソッド呼出し方法及び装置Info
- Publication number
- JP2002505466A JP2002505466A JP2000533810A JP2000533810A JP2002505466A JP 2002505466 A JP2002505466 A JP 2002505466A JP 2000533810 A JP2000533810 A JP 2000533810A JP 2000533810 A JP2000533810 A JP 2000533810A JP 2002505466 A JP2002505466 A JP 2002505466A
- Authority
- JP
- Japan
- Prior art keywords
- module configured
- invoke
- request
- machine
- invoked
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 255
- 238000012545 processing Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 description 26
- 230000007246 mechanism Effects 0.000 description 18
- 238000012546 transfer Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/433—Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 総称コードを用いた遠隔メソッド呼出しのための方法及び装置を提供する。
【解決手段】 クライアントマシンは、メソッドオブジェクトの識別子を含む遠隔オブジェクトのメソッドを呼び出すためのコールを転送する。サーバマシンは前記識別子を受信し、総称コードを用いてメソッドオブジェクトを呼出し、呼び出されたメソッドの標識を関連するパラメータと共に返す。
Description
【0001】 (関連出願) 以下に示す米国特許出願は、本出願が依拠し且つ参照によりその全てを記載す
るのと同等に本出願に援用されるものである。 1998年2月26日出願の米国特許仮出願番号60/076,048、発明の名称「分散型コ ンピュータ処理システム」。 同日出願の米国特許出願番号09/044,923、発明の名称「記憶装置の割当てのた
めの方法及びシステム」(代理人整理番号06502.0011-01000)。 同日出願の米国特許出願番号09/044,838、発明の名称「分散型システムにおけ
る委任証明の割当てのための方法、装置及び製品」(代理人整理番号06502.0011
-02000)。 同日出願の米国特許出願番号09/044,834、発明の名称「分散型システムにおけ
るグループ帰属関係の割当てのための方法、装置及び製品」(代理人整理番号06
502.0011-03000,)。 同日出願の米国特許出願番号09/044,933、発明の名称「イベント指向システム
における転送動作の方法」(代理人整理番号06502.0054-00000)。 同日出願の米国特許出願番号09/044,919、発明の名称「分散型システムにおけ
るイベント通知のための遠隔ロード及びオブジェクトの繰延べ再構築」(代理人
整理番号06502.0062-01000)。 同日出願の米国特許出願番号09/045,652、発明の名称「リモート方法を識別す
る決定論的ハッシュのための方法及び装置」(代理人整理番号06502.0103-00000
)。 同日出願の米国特許出願番号09/044,790、発明の名称「分散型システムにおけ
るリモートオブジェクトのステータスを決定するための方法及び装置」(代理人
整理番号06502.0104-00000)。 同日出願の米国特許出願番号09/044,930、発明の名称「分散型システムにおけ
るリモート手続きコールに関連して処理を実行するためのダウンロード可能なス
マートな委任」(代理人整理番号06502.0105-00000)。 同日出願の米国特許出願番号09/044,917、発明の名称「リモート方法の中止及
び継続」(代理人整理番号06502.0106-00000)。 同日出願の米国特許出願番号09/044,835、発明の名称「データベースにおける
マルチ・エントリー及びマルチ・テンプレート突合せのための方法及びシステム
」(代理人整理番号06502.0107-00000)。 同日出願の米国特許出願番号09/044,839、発明の名称「データベースの内部で
変更するための方法及びシステム」(代理人整理番号06502.0108)。 同日出願の米国特許出願番号09/044,945、発明の名称「データベースにおける
タイプに関わらない属性突合せのための方法及びシステム」(代理人整理番号06
502.0109-00000)。 同日出願の米国特許出願番号09/044,931、発明の名称「分散型システムにおけ
る動的ルックアップサービス」(代理人整理番号06502.0110-00000)。 同日出願の米国特許出願番号09/044,939、発明の名称「分散型システムにおけ
るデバイスとの通信に用いるダウンロード可能なコードの供給のための装置及び
方法」(代理人整理番号06502.0112-00000)。 同日出願の米国特許出願番号09/044,826、発明の名称「ルックアップサービス
へのアクセスを容易にするための方法及びシステム」(代理人整理番号06502.01
13-00000)。 同日出願の米国特許出願番号09/044,932、発明の名称「分散型システムにおけ
る情報の動的証明のための装置及び方法」(代理人整理番号06502.0114.00000)
。 1998年2月26日出願の米国特許出願番号09/030,840、発明の名称「ネットワー クをまたぐ動的分散コンピュータ処理のための方法及び装置」。 同日出願の米国特許出願番号09/044,936、発明の名称「持続的な共有メモリー
空間のためのインタラクティブ・デザイン・ツール」(代理人整理番号06502.01
16-00000)。 同日出願の米国特許出願番号09/044,934、発明の名称「多様性を有するトーク
ン指向制御」(代理人整理番号06502.0117-00000)。 同日出願の米国特許出願番号09/044,915、発明の名称「スタック指向のアクセ
ス制御」(代理人整理番号06502.0118-00000)。 同日出願の米国特許出願番号09/044,944、発明の名称「スタック指向のセキュ
リティ要求」(代理人整理番号06502.0119-00000)。 同日出願の米国特許出願番号09/044,837、発明の名称「セキュリティ要求の方
法毎の指定」(代理人整理番号06502.0120-00000)。
るのと同等に本出願に援用されるものである。 1998年2月26日出願の米国特許仮出願番号60/076,048、発明の名称「分散型コ ンピュータ処理システム」。 同日出願の米国特許出願番号09/044,923、発明の名称「記憶装置の割当てのた
めの方法及びシステム」(代理人整理番号06502.0011-01000)。 同日出願の米国特許出願番号09/044,838、発明の名称「分散型システムにおけ
る委任証明の割当てのための方法、装置及び製品」(代理人整理番号06502.0011
-02000)。 同日出願の米国特許出願番号09/044,834、発明の名称「分散型システムにおけ
るグループ帰属関係の割当てのための方法、装置及び製品」(代理人整理番号06
502.0011-03000,)。 同日出願の米国特許出願番号09/044,933、発明の名称「イベント指向システム
における転送動作の方法」(代理人整理番号06502.0054-00000)。 同日出願の米国特許出願番号09/044,919、発明の名称「分散型システムにおけ
るイベント通知のための遠隔ロード及びオブジェクトの繰延べ再構築」(代理人
整理番号06502.0062-01000)。 同日出願の米国特許出願番号09/045,652、発明の名称「リモート方法を識別す
る決定論的ハッシュのための方法及び装置」(代理人整理番号06502.0103-00000
)。 同日出願の米国特許出願番号09/044,790、発明の名称「分散型システムにおけ
るリモートオブジェクトのステータスを決定するための方法及び装置」(代理人
整理番号06502.0104-00000)。 同日出願の米国特許出願番号09/044,930、発明の名称「分散型システムにおけ
るリモート手続きコールに関連して処理を実行するためのダウンロード可能なス
マートな委任」(代理人整理番号06502.0105-00000)。 同日出願の米国特許出願番号09/044,917、発明の名称「リモート方法の中止及
び継続」(代理人整理番号06502.0106-00000)。 同日出願の米国特許出願番号09/044,835、発明の名称「データベースにおける
マルチ・エントリー及びマルチ・テンプレート突合せのための方法及びシステム
」(代理人整理番号06502.0107-00000)。 同日出願の米国特許出願番号09/044,839、発明の名称「データベースの内部で
変更するための方法及びシステム」(代理人整理番号06502.0108)。 同日出願の米国特許出願番号09/044,945、発明の名称「データベースにおける
タイプに関わらない属性突合せのための方法及びシステム」(代理人整理番号06
502.0109-00000)。 同日出願の米国特許出願番号09/044,931、発明の名称「分散型システムにおけ
る動的ルックアップサービス」(代理人整理番号06502.0110-00000)。 同日出願の米国特許出願番号09/044,939、発明の名称「分散型システムにおけ
るデバイスとの通信に用いるダウンロード可能なコードの供給のための装置及び
方法」(代理人整理番号06502.0112-00000)。 同日出願の米国特許出願番号09/044,826、発明の名称「ルックアップサービス
へのアクセスを容易にするための方法及びシステム」(代理人整理番号06502.01
13-00000)。 同日出願の米国特許出願番号09/044,932、発明の名称「分散型システムにおけ
る情報の動的証明のための装置及び方法」(代理人整理番号06502.0114.00000)
。 1998年2月26日出願の米国特許出願番号09/030,840、発明の名称「ネットワー クをまたぐ動的分散コンピュータ処理のための方法及び装置」。 同日出願の米国特許出願番号09/044,936、発明の名称「持続的な共有メモリー
空間のためのインタラクティブ・デザイン・ツール」(代理人整理番号06502.01
16-00000)。 同日出願の米国特許出願番号09/044,934、発明の名称「多様性を有するトーク
ン指向制御」(代理人整理番号06502.0117-00000)。 同日出願の米国特許出願番号09/044,915、発明の名称「スタック指向のアクセ
ス制御」(代理人整理番号06502.0118-00000)。 同日出願の米国特許出願番号09/044,944、発明の名称「スタック指向のセキュ
リティ要求」(代理人整理番号06502.0119-00000)。 同日出願の米国特許出願番号09/044,837、発明の名称「セキュリティ要求の方
法毎の指定」(代理人整理番号06502.0120-00000)。
【0002】 (発明の技術分野) 本発明は、分散型システムにおいてマシン間でオブジェクトを転送するシステ
ム及び方法に関し、更に詳しくは、分散型システムにおける遠隔メソッド呼出し
方法に関する。
ム及び方法に関し、更に詳しくは、分散型システムにおける遠隔メソッド呼出し
方法に関する。
【0003】 (発明の背景技術) 二地点間データ転送に重点を置く分散プログラムは、多くの場合、遠隔端末ア
クセス及びファイル転送のための専用プロトコルを使えばより適切且つ効率的に
実行できる。この種のプロトコルは、特定のプログラムに適合させて定められた
ものであり、従って、種々の分散プログラム(例えば、分散オペレーティングシ
ステム、電子メールシステム、会議システム、等)を構築するための基盤を提供
するものではない。
クセス及びファイル転送のための専用プロトコルを使えばより適切且つ効率的に
実行できる。この種のプロトコルは、特定のプログラムに適合させて定められた
ものであり、従って、種々の分散プログラム(例えば、分散オペレーティングシ
ステム、電子メールシステム、会議システム、等)を構築するための基盤を提供
するものではない。
【0004】 従来の転送機能は、分散プログラムの構築の基盤として用いることが可能であ
るが、この種の機能は、異なるマシン毎に異なるデータ型を使用すること、同期
性を提供するための機構の不足、限定されたプログラミングパラダイムに対する
対応の欠如、といった多くの構成上の問題を抱えている。
るが、この種の機能は、異なるマシン毎に異なるデータ型を使用すること、同期
性を提供するための機構の不足、限定されたプログラミングパラダイムに対する
対応の欠如、といった多くの構成上の問題を抱えている。
【0005】 分散型システムは、普通、通信ネットワークによって相互接続された多数の異
なるタイプのマシンを含む。各マシンは、それぞれ独自の内部データの型、独自
のアドレス配列規則、及び、独自のオペレーティングシステムを有している。こ
の不統一さが分散型システムを構築する際の障害となっており、この結果、プロ
グラム開発者は、この種の不統一な分散型システム用に開発するプログラムに、
異なるマシンにおいても情報の処理及び解読を矛盾の無く一貫して行うための機
能を備えることを要求されていた。
なるタイプのマシンを含む。各マシンは、それぞれ独自の内部データの型、独自
のアドレス配列規則、及び、独自のオペレーティングシステムを有している。こ
の不統一さが分散型システムを構築する際の障害となっており、この結果、プロ
グラム開発者は、この種の不統一な分散型システム用に開発するプログラムに、
異なるマシンにおいても情報の処理及び解読を矛盾の無く一貫して行うための機
能を備えることを要求されていた。
【0006】 しかしながら、プログラムの大部分は処理と処理の間で要求・応答インタラク
ションを用いており、このため開始側(即ち、通信を開始するプログラム)はブ
ロックされ応答が帰ってくるのを待つことになり、この間アイドル状態となると
いう点に着目することにより、一つの簡略化が可能である。この簡略化は、処理
と処理の間の手続き呼出し機構によりモデル化することが可能である。この様な
機構の1つが、遠隔手順呼出し(RPC)と呼ばれるものである。
ションを用いており、このため開始側(即ち、通信を開始するプログラム)はブ
ロックされ応答が帰ってくるのを待つことになり、この間アイドル状態となると
いう点に着目することにより、一つの簡略化が可能である。この簡略化は、処理
と処理の間の手続き呼出し機構によりモデル化することが可能である。この様な
機構の1つが、遠隔手順呼出し(RPC)と呼ばれるものである。
【0007】 RPCとは、同一或いは異なるコンピュータ上で実行される2つの処理(例え
ば、プログラム、アプレット、他)の間に、同期通信を提供する機構のことであ
る。簡単な例を挙げると、クライアントプログラムのような1つのプロセスがサ
ーバプログラムのような他のプロセスにメッセージを送る場合がある。この場合
、メッセージの送信或いは受信のいずれにおいても処理を同期させる必要はない
。クライアントプログラムはメッセージを送信しその後新たな動作に移ることも
可能であるし、或いは、サーバプログラムが新規メッセージを処理できる状態に
なるまで、送信されてくるメッセージをサーバプログラム環境がバッファに入れ
ておくことも可能である。
ば、プログラム、アプレット、他)の間に、同期通信を提供する機構のことであ
る。簡単な例を挙げると、クライアントプログラムのような1つのプロセスがサ
ーバプログラムのような他のプロセスにメッセージを送る場合がある。この場合
、メッセージの送信或いは受信のいずれにおいても処理を同期させる必要はない
。クライアントプログラムはメッセージを送信しその後新たな動作に移ることも
可能であるし、或いは、サーバプログラムが新規メッセージを処理できる状態に
なるまで、送信されてくるメッセージをサーバプログラム環境がバッファに入れ
ておくことも可能である。
【0008】 しかしながら、RPCは同期に制約を課すものである。なぜならば、RPCは
、呼出し処理において、パラメータが一方向へ通過すること、サーバプログラム
が呼出された手続きを完了するまで呼出し手続きをブロックすること、及び、そ
の後応答を返すことを要求するローカル手続き呼出しを忠実にモデルしているか
らである。このように、RPCは2つのメッセージの転送と呼出しの継続時間中
における2つの処理の同期とに関わる。
、呼出し処理において、パラメータが一方向へ通過すること、サーバプログラム
が呼出された手続きを完了するまで呼出し手続きをブロックすること、及び、そ
の後応答を返すことを要求するローカル手続き呼出しを忠実にモデルしているか
らである。このように、RPCは2つのメッセージの転送と呼出しの継続時間中
における2つの処理の同期とに関わる。
【0009】 RPC機構は、通常、ローカル手続き呼出しパラダイムを用いて、一方がクラ
イアント側、他方がサーバ側の2つの処理部分に分けて実装される。これら2つ
の処理部分については、いずれも図1を参照して後述する。
イアント側、他方がサーバ側の2つの処理部分に分けて実装される。これら2つ
の処理部分については、いずれも図1を参照して後述する。
【0010】 図1は、RPC機構を用いたときの呼出し情報の流れを示す概念図である。図
1に示すように、クライアントプログラム100がコールを発信する(ステップ
102)。その後、RPC機構101が前記コールをコールパケットの引数とし
てパックし(ステップ103)、このコールパケットをRPC機構101がサー
バプログラム109に転送する(ステップ104)。コールパケットは、前記コ
ールを最初に送ったクライアントプログラム100を識別するための情報も含ん
でいる。コールパケットの送信後(ステップ104)、サーバプログラム109
からの応答を待つ間、RPC機構101は待ち状態に入る。
1に示すように、クライアントプログラム100がコールを発信する(ステップ
102)。その後、RPC機構101が前記コールをコールパケットの引数とし
てパックし(ステップ103)、このコールパケットをRPC機構101がサー
バプログラム109に転送する(ステップ104)。コールパケットは、前記コ
ールを最初に送ったクライアントプログラム100を識別するための情報も含ん
でいる。コールパケットの送信後(ステップ104)、サーバプログラム109
からの応答を待つ間、RPC機構101は待ち状態に入る。
【0011】 サーバプログラム109側のRPC機構108(サーバプログラム109がク
ライアントプログラム100と同一のプラットフォームで動作している場合は、
これをRPC機構101と同一の機構としてもよい)は、コールパケットを受信
し(ステップ110)、コールパケットからコールの引数をアンパックし(ステ
ップ111)、コールがアドレス指定されているサーバプログラム109を前記
コール情報を基に識別し、サーバプログラム109にコールの引数を渡す。
ライアントプログラム100と同一のプラットフォームで動作している場合は、
これをRPC機構101と同一の機構としてもよい)は、コールパケットを受信
し(ステップ110)、コールパケットからコールの引数をアンパックし(ステ
ップ111)、コールがアドレス指定されているサーバプログラム109を前記
コール情報を基に識別し、サーバプログラム109にコールの引数を渡す。
【0012】 サーバプログラムは前記コールを受信し(ステップ112)、該当する手続き
を呼出してコールを処理し(ステップ115)、RPC機構108に応答を返す
(ステップ116)。その後、RPC機構108は、応答パケットに応答をパッ
クし(ステップ114)、この応答パケットをクライアントプログラム100へ
転送する(ステップ113)。
を呼出してコールを処理し(ステップ115)、RPC機構108に応答を返す
(ステップ116)。その後、RPC機構108は、応答パケットに応答をパッ
クし(ステップ114)、この応答パケットをクライアントプログラム100へ
転送する(ステップ113)。
【0013】 前記応答パケットを受信すると(ステップ107)、これをトリガとして、R
PC機構101が待ち状態から抜け出し、応答パケットから応答をアンパックす
る(ステップ106)。この後、RPC101は、前記コールへの応答をクライ
アントプログラムシステム100に返す(ステップ105)。以上が、ローカル
手続き呼出しをモデルとする代表的なRPC機構の処理の流れである。RPC機
構は、ローカル手続き呼出しパラダイムを使用しているので、クライアントプロ
グラム100は応答を受け取るまでコールによってブロックされる。このように
、クライアントプログラム100はコールの転送後、クライアントプログラム1
00自身の処理を継続せず、サーバプログラム109からの応答を待つことにな
る。
PC機構101が待ち状態から抜け出し、応答パケットから応答をアンパックす
る(ステップ106)。この後、RPC101は、前記コールへの応答をクライ
アントプログラムシステム100に返す(ステップ105)。以上が、ローカル
手続き呼出しをモデルとする代表的なRPC機構の処理の流れである。RPC機
構は、ローカル手続き呼出しパラダイムを使用しているので、クライアントプロ
グラム100は応答を受け取るまでコールによってブロックされる。このように
、クライアントプログラム100はコールの転送後、クライアントプログラム1
00自身の処理を継続せず、サーバプログラム109からの応答を待つことにな
る。
【0014】 JavaTMプログラミング言語は、オブジェクト指向プログラミング言語で
あり、通常、バイトコード命令セットを用いてプラットフォーム非依存のフォー
マットにコンパイルされるが、これはJava仮想マシン(JVM)をサポート
するいかなるプラットフォーム上でも実行可能である。このJavaTMプログ
ラミング言語については、例えば、参照することにより本明細書に援用する、ジ
ェームス ゴスリング、ビル ジョイ、及び、ガイ スティール共著、「Jav
a言語仕様」(1996年、アジソン・ウェスレイ発行)に説明されている。J
VMについては、例えば、参照により援用する、ティム リンドホルム及びフラ
ンク イエリン共著、「Java仮想マシン仕様」(1996年、アジソン・ウ
ェスレイ発行)に説明されている。Java及びJavaを基調とした商標は、
米国及びその他の国におけるサンマイクロシステムズインコーポレーテッドの商
標又は登録商標である。
あり、通常、バイトコード命令セットを用いてプラットフォーム非依存のフォー
マットにコンパイルされるが、これはJava仮想マシン(JVM)をサポート
するいかなるプラットフォーム上でも実行可能である。このJavaTMプログ
ラミング言語については、例えば、参照することにより本明細書に援用する、ジ
ェームス ゴスリング、ビル ジョイ、及び、ガイ スティール共著、「Jav
a言語仕様」(1996年、アジソン・ウェスレイ発行)に説明されている。J
VMについては、例えば、参照により援用する、ティム リンドホルム及びフラ
ンク イエリン共著、「Java仮想マシン仕様」(1996年、アジソン・ウ
ェスレイ発行)に説明されている。Java及びJavaを基調とした商標は、
米国及びその他の国におけるサンマイクロシステムズインコーポレーテッドの商
標又は登録商標である。
【0015】 オブジェクト指向システムにおいて、「クラス」は、それぞれのクラスの特性
を有する「オブジェクト」(システムにより操作される項目或いはインスタンス
を表す)を生成するためのテンプレートを提供するものである。テンプレートと
いう用語は、各クラスのオブジェクト(即ち、データ項目)がそのクラスによっ
て決定される、ある一定の特性即ち属性を共有することを表す。このように、ク
ラスとはオブジェクトの型を定義するものである。オブジェクトは、通常、シス
テムのオペレーション中に動的に作成される。通例、クラスに関連付けられたメ
ソッドは同じクラス或いはサブクラスのオブジェクト上に呼出される(即ち、か
かるオブジェクト上で動作させられる)。
を有する「オブジェクト」(システムにより操作される項目或いはインスタンス
を表す)を生成するためのテンプレートを提供するものである。テンプレートと
いう用語は、各クラスのオブジェクト(即ち、データ項目)がそのクラスによっ
て決定される、ある一定の特性即ち属性を共有することを表す。このように、ク
ラスとはオブジェクトの型を定義するものである。オブジェクトは、通常、シス
テムのオペレーション中に動的に作成される。通例、クラスに関連付けられたメ
ソッドは同じクラス或いはサブクラスのオブジェクト上に呼出される(即ち、か
かるオブジェクト上で動作させられる)。
【0016】 JVMはいかなるタイプのプラットフォームでも実装可能であるので、JVM
を使って分散型システムを実装することにより、不統一な分散型システム用のプ
ログラム開発が抱える困難性が大幅に減少する。その上、JVMは、システムの
プログラム間での通信を可能にする遠隔メソッド呼出し(RMI)システムを用
いる。RMIについては、例えば、参照により援用する、サンマイクロシステム
ズインコーポレーテッドによる「遠隔メソッド呼出し仕様」(1997年発行)
に説明されている。尚、同文書は下記のURLからも入手可能である。 http://www.javasoft.com/products/jdk/1.1/docs/guide/rmi/spec/rmiTOC.doc.
html.
を使って分散型システムを実装することにより、不統一な分散型システム用のプ
ログラム開発が抱える困難性が大幅に減少する。その上、JVMは、システムの
プログラム間での通信を可能にする遠隔メソッド呼出し(RMI)システムを用
いる。RMIについては、例えば、参照により援用する、サンマイクロシステム
ズインコーポレーテッドによる「遠隔メソッド呼出し仕様」(1997年発行)
に説明されている。尚、同文書は下記のURLからも入手可能である。 http://www.javasoft.com/products/jdk/1.1/docs/guide/rmi/spec/rmiTOC.doc.
html.
【0017】 図2は、JVMを使ってメソッド呼出しの送受信を行うマシン201、202
を有するオブジェクト指向分散システム200におけるオブジェクトの流れを示
した概念図である。システム200においては、マシン201は、オブジェクト
203からのコールに応答するのにRMI205を用いる。前記コールは、遠隔
メソッド204にメソッドを呼び出すためのコールであり、識別子及びその他の
パラメータを含むが、メソッドの呼出しはこのコールをバイトストリーム207
に変換することによって行う。マシン201がオブジェクト203からのコール
に応答する間も、該マシン或いはシステム201に含まれる他のマシン上で実行
中の処理を、要求に対する応答を待つことなく引き続き行うことが可能である。
を有するオブジェクト指向分散システム200におけるオブジェクトの流れを示
した概念図である。システム200においては、マシン201は、オブジェクト
203からのコールに応答するのにRMI205を用いる。前記コールは、遠隔
メソッド204にメソッドを呼び出すためのコールであり、識別子及びその他の
パラメータを含むが、メソッドの呼出しはこのコールをバイトストリーム207
に変換することによって行う。マシン201がオブジェクト203からのコール
に応答する間も、該マシン或いはシステム201に含まれる他のマシン上で実行
中の処理を、要求に対する応答を待つことなく引き続き行うことが可能である。
【0018】 マシン202はバイトストリーム207を受信し、これをRMI206を使っ
て実行可能なバイトコードに自動的に変換しオブジェクト204上のメソッド呼
出しを起動する。RMIは、また、オブジェクトを遠隔マシン上で実行中の処理
に関連して使用する際に、分散型システム内でオブジェクトを転送するのにも用
いられる。
て実行可能なバイトコードに自動的に変換しオブジェクト204上のメソッド呼
出しを起動する。RMIは、また、オブジェクトを遠隔マシン上で実行中の処理
に関連して使用する際に、分散型システム内でオブジェクトを転送するのにも用
いられる。
【0019】 かかるマシンは、RMIを実行するのにスタブ及びスケルトンと呼ばれるRM
Iコンパイラにより生成されるコードを用いる。スタブはクライアントマシン上
に存在し、遠隔のオブジェクトに対する参照を含み、該遠隔オブジェクトのプロ
キシとして振る舞う。スケルトンもまた遠隔オブジェクトのプロキシであるが、
スケルトンは、その遠隔オブジェクトを有するサーバマシン上に存在する。つま
り、クライアントマシン上にあるスタブが遠隔オブジェクトのメソッド呼出しの
コールを発信し、サーバコンピュータ上にあるスケルトンが、前記遠隔オブジェ
クトを含んでいることになる。加えて、遠隔オブジェクトは、関連する定数及び
メソッドの集合であるインターフェースを介して参照される。通常、スタブ及び
スケルトンは、コールに関わる遠隔オブジェクトに基づいて型を特定されていな
ければならない。従って、様々な型のオブジェクトを伴うRMIに対しては、様
々な型のスタブ及びスケルトンが存在する必要がある。スタブ及びスケルトンに
ついては、例えば、参照により援用する、ジェイミー ジャオルスキー著「Ja
va1.1開発者ガイド、第二版」(1997年、サムズネットパブリッシング
発行)の371〜383ページに説明されている。また、上述の「遠隔メソッド
呼出し仕様」にもその説明がある。
Iコンパイラにより生成されるコードを用いる。スタブはクライアントマシン上
に存在し、遠隔のオブジェクトに対する参照を含み、該遠隔オブジェクトのプロ
キシとして振る舞う。スケルトンもまた遠隔オブジェクトのプロキシであるが、
スケルトンは、その遠隔オブジェクトを有するサーバマシン上に存在する。つま
り、クライアントマシン上にあるスタブが遠隔オブジェクトのメソッド呼出しの
コールを発信し、サーバコンピュータ上にあるスケルトンが、前記遠隔オブジェ
クトを含んでいることになる。加えて、遠隔オブジェクトは、関連する定数及び
メソッドの集合であるインターフェースを介して参照される。通常、スタブ及び
スケルトンは、コールに関わる遠隔オブジェクトに基づいて型を特定されていな
ければならない。従って、様々な型のオブジェクトを伴うRMIに対しては、様
々な型のスタブ及びスケルトンが存在する必要がある。スタブ及びスケルトンに
ついては、例えば、参照により援用する、ジェイミー ジャオルスキー著「Ja
va1.1開発者ガイド、第二版」(1997年、サムズネットパブリッシング
発行)の371〜383ページに説明されている。また、上述の「遠隔メソッド
呼出し仕様」にもその説明がある。
【0020】 この様に、様々な型のオブジェクトを伴うRMI呼出しに用いるための総称コ
ードが必要とされている。
ードが必要とされている。
【0021】 (発明の概略) 本発明に係る第1の方法は、オブジェクトのメソッドを呼出す要求を受け取る
工程と呼出すべき前記メソッドを総称コードを用いて決定する工程とを有する。
前記メソッドは前記決定に基づいて呼び出され、前記呼出されたメソッドの標識
が提供される。
工程と呼出すべき前記メソッドを総称コードを用いて決定する工程とを有する。
前記メソッドは前記決定に基づいて呼び出され、前記呼出されたメソッドの標識
が提供される。
【0022】 本発明に係る第2の方法は、特定のクラスのオブジェクトのメソッドを呼出す
要求を受け取る工程と前記メソッドを前記クラス全てに共通の処理を用いて決定
する工程とを有する。前記メソッド前記決定に基づいてを呼び出され、前記呼出
されたメソッドの標識が提供される。
要求を受け取る工程と前記メソッドを前記クラス全てに共通の処理を用いて決定
する工程とを有する。前記メソッド前記決定に基づいてを呼び出され、前記呼出
されたメソッドの標識が提供される。
【0023】 本発明に係る第3の方法は、第1のオブジェクトの第1のメソッドと前記第1
のオブジェクトとは異なる型の第2のオブジェクトの第2のメソッドとを呼出す
要求を受け取る工程と、呼出すべき前記第1及び第2のメソッドを共通の処理を
用いて決定する工程とを有する。前記第1及び第2のメソッドは前記決定に基づ
いて呼び出され、前記呼出された第1のメソッド及び第2のメソッドの標識が提
供される。
のオブジェクトとは異なる型の第2のオブジェクトの第2のメソッドとを呼出す
要求を受け取る工程と、呼出すべき前記第1及び第2のメソッドを共通の処理を
用いて決定する工程とを有する。前記第1及び第2のメソッドは前記決定に基づ
いて呼び出され、前記呼出された第1のメソッド及び第2のメソッドの標識が提
供される。
【0024】 本発明に係る第1の装置は、オブジェクトのメソッドを呼出す要求を受け取り
、呼出すべき前記メソッドを総称コードを用いて決定する。該装置は、前記メソ
ッドを前記決定に基づいて呼出し、前記呼出されたメソッドの標識を提供する。
、呼出すべき前記メソッドを総称コードを用いて決定する。該装置は、前記メソ
ッドを前記決定に基づいて呼出し、前記呼出されたメソッドの標識を提供する。
【0025】 本発明に係る第2の装置は、特定のクラスのオブジェクトのメソッドを呼出す
要求を受け取り、前記メソッドを前記クラス全てに共通の処理を用いて決定する
。該装置は、前記メソッドを前記決定に基づいて呼出し、前記呼出されたメソッ
ドの標識を提供する。
要求を受け取り、前記メソッドを前記クラス全てに共通の処理を用いて決定する
。該装置は、前記メソッドを前記決定に基づいて呼出し、前記呼出されたメソッ
ドの標識を提供する。
【0026】 本発明に係る第3の装置は、第1のオブジェクトの第1のメソッドと、前記第
1のオブジェクトとは異なる型の第2のオブジェクトの第2のメソッドとを呼出
す要求を受け取り、呼出すべき前記第1及び第2のメソッドを共通の処理を用い
て決定する。該装置は、前記第1及び第2のメソッドを前記決定に基づいて呼出
し、前記呼出された第1のメソッド及び第2のメソッドの標識を提供する。
1のオブジェクトとは異なる型の第2のオブジェクトの第2のメソッドとを呼出
す要求を受け取り、呼出すべき前記第1及び第2のメソッドを共通の処理を用い
て決定する。該装置は、前記第1及び第2のメソッドを前記決定に基づいて呼出
し、前記呼出された第1のメソッド及び第2のメソッドの標識を提供する。
【0027】 (発明の詳細な説明) 添付の図面は、本明細書に援用され本明細書の一部を構成するものであり、本
発明の詳細な説明と共に本発明の利点と原理を説明するものである。
発明の詳細な説明と共に本発明の利点と原理を説明するものである。
【0028】 (概観) 本発明に係るシステムは、総称プロキシクラスを用いて遠隔メソッド呼出しを
実行するものである。一般的に、クライアントマシンは、メソッドオブジェクト
の識別子を含む遠隔オブジェクトのメソッドを呼び出すためのコールを送信する
。サーバマシンは、かかる識別子を受信し、且つ、どのクラスにも特定でない総
称コードを使って呼出すべきメソッドを示す標識を得るが、これはいかなる型の
パラメータであってもよい。
実行するものである。一般的に、クライアントマシンは、メソッドオブジェクト
の識別子を含む遠隔オブジェクトのメソッドを呼び出すためのコールを送信する
。サーバマシンは、かかる識別子を受信し、且つ、どのクラスにも特定でない総
称コードを使って呼出すべきメソッドを示す標識を得るが、これはいかなる型の
パラメータであってもよい。
【0029】 クライアントが遠隔オブジェクトに対するスタブを受け取る際、総称プロキシ
クラスのインスタンスは、遠隔オブジェクトが実装している全ての遠隔インター
フェースを把握している。クライアントがスタブ(型に依存しない総称プロキシ
クラス)にメソッドを呼出すと、プロキシの呼出しメソッドが呼出されるが、こ
れはクライアントがどのメソッドをそのオブジェクトに呼出したかを示すメソッ
ドオブジェクト、及び、そのメソッドのパラメータリストといった情報と共に呼
出される。メソッドオブジェクトには、メソッド名、引数の型、及び、応答の型
といった情報が含まれる。ただし、メソッドオブジェクトに含まれる情報はこれ
に限定されるものではない。それぞれの型は、「オブジェクト」型か、或いは、
「基本」型のいずれかである。
クラスのインスタンスは、遠隔オブジェクトが実装している全ての遠隔インター
フェースを把握している。クライアントがスタブ(型に依存しない総称プロキシ
クラス)にメソッドを呼出すと、プロキシの呼出しメソッドが呼出されるが、こ
れはクライアントがどのメソッドをそのオブジェクトに呼出したかを示すメソッ
ドオブジェクト、及び、そのメソッドのパラメータリストといった情報と共に呼
出される。メソッドオブジェクトには、メソッド名、引数の型、及び、応答の型
といった情報が含まれる。ただし、メソッドオブジェクトに含まれる情報はこれ
に限定されるものではない。それぞれの型は、「オブジェクト」型か、或いは、
「基本」型のいずれかである。
【0030】 プロキシは、そのメソッドに対するメソッドハッシュの算出、コールの転送を
行うが、この転送はRMIを介して行ってもよい。かかるコールには、コールを
受け取るオブジェクトの識別子、メソッドハッシュ、及び、(メソッドオブジェ
クトにおいて特定された型に応じて)整列化されたパラメータといった情報が含
まれる。ただし含まれる情報はこれに限定されるものではない。パラメータの整
列はメソッドオブジェクトの引数の型の情報に依存するのみであるので、総称プ
ロキシコードで行ってもよい。
行うが、この転送はRMIを介して行ってもよい。かかるコールには、コールを
受け取るオブジェクトの識別子、メソッドハッシュ、及び、(メソッドオブジェ
クトにおいて特定された型に応じて)整列化されたパラメータといった情報が含
まれる。ただし含まれる情報はこれに限定されるものではない。パラメータの整
列はメソッドオブジェクトの引数の型の情報に依存するのみであるので、総称プ
ロキシコードで行ってもよい。
【0031】 サーバは、前記コールを受け取り、オブジェクト識別子及びメソッド識別子を
読み取る。メソッド識別子は、所期するメソッドオブジェクトを決定するのに用
いられるが、これはメソッドハッシュをメソッドオブジェクトに対応づけるルッ
クアップテーブルを用いて行う。メソッドオブジェクトが与えられると、サーバ
側の総称コードは、メソッドオブジェクトから型を検出できるので、パラメータ
を非整列化し、実際の遠隔オブジェクトインプリメンテーションにメソッドを呼
出す。呼出しの結果は、総称コードとメソッドオブジェクトから得た応答の型と
を用いてクライアントに整列化される。
読み取る。メソッド識別子は、所期するメソッドオブジェクトを決定するのに用
いられるが、これはメソッドハッシュをメソッドオブジェクトに対応づけるルッ
クアップテーブルを用いて行う。メソッドオブジェクトが与えられると、サーバ
側の総称コードは、メソッドオブジェクトから型を検出できるので、パラメータ
を非整列化し、実際の遠隔オブジェクトインプリメンテーションにメソッドを呼
出す。呼出しの結果は、総称コードとメソッドオブジェクトから得た応答の型と
を用いてクライアントに整列化される。
【0032】 クライアント側の総称プロキシは、メソッドオブジェクトの応答型の情報及び
呼出しへの応答の結果を用いて戻り値を読み取る。
呼出しへの応答の結果を用いて戻り値を読み取る。
【0033】 (分散型処理システム) 図3は、本発明に係る一実施形態において好適に用いられる分散型処理システ
ム300を示す。図3において、分散型処理システム300は、3つの独立した
、異なる種類のプラットフォーム301、302、303を有しており、これは
、ネットワークを表す雲形319によって図示されるネットワーク構成に接続さ
れている。雲形319で図示したネットワーク構成は、プラットフォーム301
、302、303間の情報通信を可能にするものであればよく、その構成及びプ
ロトコルは重要でない。また、ここでプラットフォームを3つ用いたのもあくま
でも説明のためであり、本発明の実施形態を特定の数のプラットフォームの使用
に限定するものではない。更に、本発明の実施形態は、特定のネットワークアー
キテクチャに左右されるものではない。例えば、本発明の実施形態に用いること
ができる上記以外のネットワークアーキテクチャとしては、1つのプラットフォ
ームを、接続される他のプラットフォーム全てのコントローラとして用いるもの
でもよい。
ム300を示す。図3において、分散型処理システム300は、3つの独立した
、異なる種類のプラットフォーム301、302、303を有しており、これは
、ネットワークを表す雲形319によって図示されるネットワーク構成に接続さ
れている。雲形319で図示したネットワーク構成は、プラットフォーム301
、302、303間の情報通信を可能にするものであればよく、その構成及びプ
ロトコルは重要でない。また、ここでプラットフォームを3つ用いたのもあくま
でも説明のためであり、本発明の実施形態を特定の数のプラットフォームの使用
に限定するものではない。更に、本発明の実施形態は、特定のネットワークアー
キテクチャに左右されるものではない。例えば、本発明の実施形態に用いること
ができる上記以外のネットワークアーキテクチャとしては、1つのプラットフォ
ームを、接続される他のプラットフォーム全てのコントローラとして用いるもの
でもよい。
【0034】 分散型処理システム300の具体化において、各プラットフォーム301、3
02、303は、プロセッサ316、317、318、及び、メモリ304、3
05、306をそれぞれ含み、各メモリ304、305、306には、アプリケ
ーション307、308、309、及び、オペレーティングシステム310、3
11、312、更に、RMIコンポーネント313、314、315がそれぞれ
格納されている。
02、303は、プロセッサ316、317、318、及び、メモリ304、3
05、306をそれぞれ含み、各メモリ304、305、306には、アプリケ
ーション307、308、309、及び、オペレーティングシステム310、3
11、312、更に、RMIコンポーネント313、314、315がそれぞれ
格納されている。
【0035】 アプリケーション307、308、309は、前もって記述或いは修正を加え
たアプリケーション或いはプログラムでもよいし、本発明の具体化において提供
されるサービスの利点を生かすため特別に記述されたアプリケーション或いはプ
ログラムでもよい。アプリケーション307、308、309は、本発明の具体
化に従い実行すべき操作を呼出す。
たアプリケーション或いはプログラムでもよいし、本発明の具体化において提供
されるサービスの利点を生かすため特別に記述されたアプリケーション或いはプ
ログラムでもよい。アプリケーション307、308、309は、本発明の具体
化に従い実行すべき操作を呼出す。
【0036】 オペレーティングシステム310、311、312は、通常、それぞれ対応す
るプロセッサ316、317、318に強固に関連付けられたオペレーティング
システムである。プラットフォーム301、302、303はそれぞれ異なる種
類のプラットフォームとしてもよい。例えば、プラットフォーム301は、サン
マイクロシステムズ社製のUltraSparc(登録商標)をプロセッサ31
6として含み、ソラリス(登録商標)をオペレーティングシステム310として
用いるとしてもよい。プラットフォーム302は、シリコングラフィクス社製の
MIPSマイクロプロセッサをプロセッサ317として含み、オペレーティング
システム311にユニックスを用いるとしてもよい。プラットフォーム303は
、インテル社製のペンティアムマイクロプロセッサをプロセッサ318として含
み、マイクロソフト社のウィンドウズ95をオペレーティングシステム312と
して用いるとしてもよい。本発明の実施形態はさほど限定されておらず、同種の
プラットフォームのみを用いる場合にも当然適用可能である。
るプロセッサ316、317、318に強固に関連付けられたオペレーティング
システムである。プラットフォーム301、302、303はそれぞれ異なる種
類のプラットフォームとしてもよい。例えば、プラットフォーム301は、サン
マイクロシステムズ社製のUltraSparc(登録商標)をプロセッサ31
6として含み、ソラリス(登録商標)をオペレーティングシステム310として
用いるとしてもよい。プラットフォーム302は、シリコングラフィクス社製の
MIPSマイクロプロセッサをプロセッサ317として含み、オペレーティング
システム311にユニックスを用いるとしてもよい。プラットフォーム303は
、インテル社製のペンティアムマイクロプロセッサをプロセッサ318として含
み、マイクロソフト社のウィンドウズ95をオペレーティングシステム312と
して用いるとしてもよい。本発明の実施形態はさほど限定されておらず、同種の
プラットフォームのみを用いる場合にも当然適用可能である。
【0037】 Sun、Sun Microsystems、Solarisは、米国及びそ
の他の国におけるサンマイクロシステムズインコーポレーテッドの商標又は登録
商標である。UltraSparc及びこの他全てのSPARCの商標は、SP
ARC International,Inc.の許可を得て米国及びその他の
国で使用している。SPARC商標を付した製品は、サンマイクロシステムズイ
ンコーポレーテッドが開発したアーキテクチャを基礎にして製造されたものであ
る。
の他の国におけるサンマイクロシステムズインコーポレーテッドの商標又は登録
商標である。UltraSparc及びこの他全てのSPARCの商標は、SP
ARC International,Inc.の許可を得て米国及びその他の
国で使用している。SPARC商標を付した製品は、サンマイクロシステムズイ
ンコーポレーテッドが開発したアーキテクチャを基礎にして製造されたものであ
る。
【0038】 メモリ304、305、306は、対応するプラットフォームにおいて一般的
な記憶装置としての機能を果たす。もう1つの機能は、各々のプロセッサ316
、317、318の実行中、アプリケーション307、308、309、RMI
コンポーネント313、314、315、及び、オペレーティングシステム31
0、311、312をそれぞれ格納することである。加えて、メモリ304、3
05、306を部分的に、ネットワーク319の全てのプラットフォーム301
、302、303が使用可能な共用記憶域として構成してもよい。尚、RMIコ
ンポーネント313、314、315はJVMと協動して動作するが、JVMは
図の簡略化のため図示していない。
な記憶装置としての機能を果たす。もう1つの機能は、各々のプロセッサ316
、317、318の実行中、アプリケーション307、308、309、RMI
コンポーネント313、314、315、及び、オペレーティングシステム31
0、311、312をそれぞれ格納することである。加えて、メモリ304、3
05、306を部分的に、ネットワーク319の全てのプラットフォーム301
、302、303が使用可能な共用記憶域として構成してもよい。尚、RMIコ
ンポーネント313、314、315はJVMと協動して動作するが、JVMは
図の簡略化のため図示していない。
【0039】 (分散型システムインフラストラクチャ) 本発明に係るシステム及び方法は、図4及び図5を参照して説明する例示的な
分散型システム400においても実行可能である。分散型システム400は、ハ
ードウェア及びソフトウェアなどの様々な構成要素により構成されるが、これら
の構成要素は、(1)システムユーザが、多数のデバイスのサービス及び機能を
ネットワークを介して共用することを可能にする、(2)プログラマに、強固で
安全な分散型システムの開発を可能にするツール及びプログラミングパタンを提
供する、(3)分散型システムの管理タスクを簡易化する、ためのものである。
かかる目的実現のため、分散型システム400はJavaプログラミング環境を
使用して、コード及びデータの両方をデバイスからデバイスへスムーズに転送す
ることを可能にする。従って、分散型システム400はJavaプログラミング
環境の最上層に位置し、セキュリティ及び強固な型付け等、かかる環境が提供す
る特性を全て利用する。
分散型システム400においても実行可能である。分散型システム400は、ハ
ードウェア及びソフトウェアなどの様々な構成要素により構成されるが、これら
の構成要素は、(1)システムユーザが、多数のデバイスのサービス及び機能を
ネットワークを介して共用することを可能にする、(2)プログラマに、強固で
安全な分散型システムの開発を可能にするツール及びプログラミングパタンを提
供する、(3)分散型システムの管理タスクを簡易化する、ためのものである。
かかる目的実現のため、分散型システム400はJavaプログラミング環境を
使用して、コード及びデータの両方をデバイスからデバイスへスムーズに転送す
ることを可能にする。従って、分散型システム400はJavaプログラミング
環境の最上層に位置し、セキュリティ及び強固な型付け等、かかる環境が提供す
る特性を全て利用する。
【0040】 図4及び図5の分散型システム400には、異なるコンピュータ及びデバイス
がユーザには見かけ上1つのシステムであるかのように統合されている。単一の
システムのような見かけにより、分散型システム400は、パソコンやワークス
テーションが持つ柔軟性及び各ユーザ個人に専用化された応答性を損なうことな
く、単一システムによって提供されるアクセスにおける簡易性と共用による利点
とを提供する。分散型システム400は、地理的に分散しているが、信用、管理
、方針などの基本的概念に同意しているユーザにより操作される何千ものデバイ
スを含むことが可能である。
がユーザには見かけ上1つのシステムであるかのように統合されている。単一の
システムのような見かけにより、分散型システム400は、パソコンやワークス
テーションが持つ柔軟性及び各ユーザ個人に専用化された応答性を損なうことな
く、単一システムによって提供されるアクセスにおける簡易性と共用による利点
とを提供する。分散型システム400は、地理的に分散しているが、信用、管理
、方針などの基本的概念に同意しているユーザにより操作される何千ものデバイ
スを含むことが可能である。
【0041】 代表的な分散型システムには、1または複数のデバイスにより提供されるサ
ービスの様々な論理グループがあり、この様な各論理グループはそれぞれ「Dj
inn」として周知である。ここでいう「サービス」とは、ユーザ、プログラム
、デバイス、或いは、他のサービスからアクセス可能であり、且つ、計算、保存
、通信、或いは、他のユーザへのアクセス提供に関わる資源、データ、或いは、
機能を指す。Djinnの一部として提供されるサービスには、例えば、プリン
タ、ディスプレイ、ディスクといったデバイス、プログラム、ユーティリティと
いったソフトウェア、データベース、ファイルといった情報、システムのユーザ
が含まれる。
ービスの様々な論理グループがあり、この様な各論理グループはそれぞれ「Dj
inn」として周知である。ここでいう「サービス」とは、ユーザ、プログラム
、デバイス、或いは、他のサービスからアクセス可能であり、且つ、計算、保存
、通信、或いは、他のユーザへのアクセス提供に関わる資源、データ、或いは、
機能を指す。Djinnの一部として提供されるサービスには、例えば、プリン
タ、ディスプレイ、ディスクといったデバイス、プログラム、ユーティリティと
いったソフトウェア、データベース、ファイルといった情報、システムのユーザ
が含まれる。
【0042】 ユーザ及びデバイスはその両方ともDjinnに参加することが可能である。
Djinnに参加することにより、ユーザ或いはデバイスはDjinnに0個以
上のサービスを追加し、セキュリティ制約の対象にはなるが、Djinnに含ま
れるどのサービスにでもアクセスすることが可能になる。Djinnに統合され
るデバイス及びユーザは、Djinnの有するサービスへのアクセスを共有する
。Djinnのサービスはプログラム上JavaTMプログラミング環境におけ
るオブジェクトとして現れ、他のオブジェクト、異なるプログラミング言語で書
かれたソフトウェアコンポーネント、或いはハードウェアデバイスを含んでもよ
い。サービスは、かかるサービスの要求可能な操作を定義するインターフェース
を有し、そのサービスの型はかかるサービスを構成するインターフェースを決定
する。
Djinnに参加することにより、ユーザ或いはデバイスはDjinnに0個以
上のサービスを追加し、セキュリティ制約の対象にはなるが、Djinnに含ま
れるどのサービスにでもアクセスすることが可能になる。Djinnに統合され
るデバイス及びユーザは、Djinnの有するサービスへのアクセスを共有する
。Djinnのサービスはプログラム上JavaTMプログラミング環境におけ
るオブジェクトとして現れ、他のオブジェクト、異なるプログラミング言語で書
かれたソフトウェアコンポーネント、或いはハードウェアデバイスを含んでもよ
い。サービスは、かかるサービスの要求可能な操作を定義するインターフェース
を有し、そのサービスの型はかかるサービスを構成するインターフェースを決定
する。
【0043】 分散型システム400は、ネットワーク408を介して相互接続された、コン
ピュータ402、コンピュータ404、デバイス406から成る。デバイス40
6は、プリンタ、ファックス機、記憶装置、コンピュータ他の多数のデバイスの
内いずれであってもよい。ネットワーク408は、ローカルエリアネットワーク
、広域ネットワーク、或いは、インターネットなどである。分散型システム40
0は、ここでは2台のコンピュータと1台のデバイスのみを含むが、分散型シス
テム400が更に他のコンピュータやデバイスを含みうることは、当業者には当
然認識されるところである。
ピュータ402、コンピュータ404、デバイス406から成る。デバイス40
6は、プリンタ、ファックス機、記憶装置、コンピュータ他の多数のデバイスの
内いずれであってもよい。ネットワーク408は、ローカルエリアネットワーク
、広域ネットワーク、或いは、インターネットなどである。分散型システム40
0は、ここでは2台のコンピュータと1台のデバイスのみを含むが、分散型シス
テム400が更に他のコンピュータやデバイスを含みうることは、当業者には当
然認識されるところである。
【0044】 図5は、コンピュータ402を更に詳細に示して、分散型システム400の多
数のソフトウェアコンポーネントを図示する。コンピュータ404或いはデバイ
ス406も同様に構成されているであろうことは、当業者には当然認識されるも
のである。コンピュータ402は、メモリ502、二次記憶装置504、中央処
理装置(CPU)506、入力装置508、及び、ビデオディスプレイ510を
含む。メモリ502は、ルックアップサービス512、ディスカバリーサーバ5
14、及び、Javaランタイムシステム516を含む。Javaランタイムシ
ステム516は、JavaRMIシステム518及びJVM520を含む。二次
記憶装置504はJavaスペース522を含む。
数のソフトウェアコンポーネントを図示する。コンピュータ404或いはデバイ
ス406も同様に構成されているであろうことは、当業者には当然認識されるも
のである。コンピュータ402は、メモリ502、二次記憶装置504、中央処
理装置(CPU)506、入力装置508、及び、ビデオディスプレイ510を
含む。メモリ502は、ルックアップサービス512、ディスカバリーサーバ5
14、及び、Javaランタイムシステム516を含む。Javaランタイムシ
ステム516は、JavaRMIシステム518及びJVM520を含む。二次
記憶装置504はJavaスペース522を含む。
【0045】 上述したように、分散型システム400はJavaプログラミング環境を基盤
としており、従って、Javaランタイムシステム516を使用する。Java
ランタイムシステム516はJavaAPIライブラリを含み、これにより、J
avaランタイムシステムの最上層で実行されるプログラムが、ホストオペレー
ティングシステムのウィンドウ機能及びネットワーク機能を含む種々のシステム
機能に、プラットフォーム非依存的にアクセスすることが可能になる。Java
APIライブラリは、Javaランタイムシステムが実装されている全てのオペ
レーティングシステムに共通する単一のAPIを提供するので、Javaランタ
イムシステムの最上層で実行されるプログラムが、オペレーティングシステム或
いはホストプラットフォームのハードウェア構成に関わらず、プラットフォーム
非依存的に実行される。Javaランタイムシステム516はJavaソフトウ
ェア開発キットの一部として、カリフォルニア州、マウンテンビュー所在のサン
マイクロシステムズインコーポレーテッドより提供されている。
としており、従って、Javaランタイムシステム516を使用する。Java
ランタイムシステム516はJavaAPIライブラリを含み、これにより、J
avaランタイムシステムの最上層で実行されるプログラムが、ホストオペレー
ティングシステムのウィンドウ機能及びネットワーク機能を含む種々のシステム
機能に、プラットフォーム非依存的にアクセスすることが可能になる。Java
APIライブラリは、Javaランタイムシステムが実装されている全てのオペ
レーティングシステムに共通する単一のAPIを提供するので、Javaランタ
イムシステムの最上層で実行されるプログラムが、オペレーティングシステム或
いはホストプラットフォームのハードウェア構成に関わらず、プラットフォーム
非依存的に実行される。Javaランタイムシステム516はJavaソフトウ
ェア開発キットの一部として、カリフォルニア州、マウンテンビュー所在のサン
マイクロシステムズインコーポレーテッドより提供されている。
【0046】 JVM520は、また、プラットフォーム非依存性を容易にする。JVM52
0は抽象的な計算装置の役割を果たし、プログラムからバイトコード形式の命令
を受け取り、かかるバイトコードを動的にオブジェクトコードなどの実行形式に
変換して翻訳し、これを実行する。RMI518は、1つのコンピュータ或いは
デバイスで実行中のオブジェクトが他のコンピュータ或いはデバイス上のオブジ
ェクトのメソッドを呼出すことを可能することによりオブジェクト遠隔メソッド
呼出しを容易にする。RMI及びJVMは、いずれもJavaソフトウェア開発
キットの一部として提供されている。
0は抽象的な計算装置の役割を果たし、プログラムからバイトコード形式の命令
を受け取り、かかるバイトコードを動的にオブジェクトコードなどの実行形式に
変換して翻訳し、これを実行する。RMI518は、1つのコンピュータ或いは
デバイスで実行中のオブジェクトが他のコンピュータ或いはデバイス上のオブジ
ェクトのメソッドを呼出すことを可能することによりオブジェクト遠隔メソッド
呼出しを容易にする。RMI及びJVMは、いずれもJavaソフトウェア開発
キットの一部として提供されている。
【0047】 ルックアップサービス512は、ある特定のDjinnで使用可能なサービス
を定義する。即ち、分散型システム400はDjinnを複数有している可能性
があり、従って、ルックアップサービスも分散型システム400内に複数存在す
る可能性がある。ルックアップサービス512は、Djinnの各サービスに対
しそれぞれ1つのオブジェクトを含んでおり、各オブジェクトは対応するサービ
スへのアクセスを容易にする様々なメソッドを含んでいる。ルックアップサービ
ス512については、参照により援用する、前述の米国出願、発明の名称「ルッ
クアップサービスへのアクセスを容易にするための方法及びシステム」に説明さ
れている。
を定義する。即ち、分散型システム400はDjinnを複数有している可能性
があり、従って、ルックアップサービスも分散型システム400内に複数存在す
る可能性がある。ルックアップサービス512は、Djinnの各サービスに対
しそれぞれ1つのオブジェクトを含んでおり、各オブジェクトは対応するサービ
スへのアクセスを容易にする様々なメソッドを含んでいる。ルックアップサービ
ス512については、参照により援用する、前述の米国出願、発明の名称「ルッ
クアップサービスへのアクセスを容易にするための方法及びシステム」に説明さ
れている。
【0048】 ディスカバリーサーバ514は、ブート・アンド・ジョイン(またはディスカ
バリ)として知られる処理において、いつ新たなデバイスが分散型システム40
0に追加されたかを検出する。新たなデバイスが検出されると、ディスカバリサ
ーバはルックアップサービス512にかかる新規デバイスの参照を渡す。これに
より、かかるデバイスはそのサービスをルックアップサービスに登録でき、Dj
innのメンバとなる。登録後、新規デバイスはDjinnのメンバとなり、こ
の結果、ルックアップサービス512に含まれる全てのサービスへのアクセスす
ることが可能になる。ブート・アンド・ジョイン処理については、参照により援
用する、前述の米国出願、発明の名称「分散型システムにおけるデバイスとの通
信に用いるダウンロード可能なコードの供給のための装置及び方法」に説明され
ている。
バリ)として知られる処理において、いつ新たなデバイスが分散型システム40
0に追加されたかを検出する。新たなデバイスが検出されると、ディスカバリサ
ーバはルックアップサービス512にかかる新規デバイスの参照を渡す。これに
より、かかるデバイスはそのサービスをルックアップサービスに登録でき、Dj
innのメンバとなる。登録後、新規デバイスはDjinnのメンバとなり、こ
の結果、ルックアップサービス512に含まれる全てのサービスへのアクセスす
ることが可能になる。ブート・アンド・ジョイン処理については、参照により援
用する、前述の米国出願、発明の名称「分散型システムにおけるデバイスとの通
信に用いるダウンロード可能なコードの供給のための装置及び方法」に説明され
ている。
【0049】 Javaスペース522は、分散型システム400においてプログラムがオブ
ジェクトの保存に用いるオブジェクトリポジトリである。プログラムはJava
スペース522を使ってオブジェクトを永続的に保存し、且つ、分散型システム
400内の他の装置からアクセスできるようにする。Javaスペースについて
は、本出願と共通の譲受人に譲渡された、1997年11月17日出願の米国特
許出願番号08/971,529、発明の名称「多様エントリ及びエントリマッ
チングを用いたデータベースシステム」に説明されている。同出願は、参照によ
り援用するものとする。代表的な分散型システム400は、ルックアップサービ
ス、ディスカバリーサービス、及びJavaスペースをそれぞれ多数含みうるこ
とは、当業者には当然認識されるものである。
ジェクトの保存に用いるオブジェクトリポジトリである。プログラムはJava
スペース522を使ってオブジェクトを永続的に保存し、且つ、分散型システム
400内の他の装置からアクセスできるようにする。Javaスペースについて
は、本出願と共通の譲受人に譲渡された、1997年11月17日出願の米国特
許出願番号08/971,529、発明の名称「多様エントリ及びエントリマッ
チングを用いたデータベースシステム」に説明されている。同出願は、参照によ
り援用するものとする。代表的な分散型システム400は、ルックアップサービ
ス、ディスカバリーサービス、及びJavaスペースをそれぞれ多数含みうるこ
とは、当業者には当然認識されるものである。
【0050】 (分散型処理システムにおけるデータの流れ) 図6は、マシン601及び602を繋ぐオブジェクト指向分散型ネットワーク
600を示したブロック図である。マシン601及び602は、例えば、コンピ
ュータ、或いは、1または複数のコンピュータ上で実行される仮想マシン、或い
は、図3、図4、及び、図5を参照に説明したマシンなどである。ネットワーク
600は、RMI602及び関連するコード603を有するクライアントマシン
601を含む。サーバマシン606は、RMI605及び遠隔オブジェクト60
8を含む。操作において、RMI602は、遠隔オブジェクト608のメソッド
の呼出しを要求するコール或いは要求601を転送する。RMI602は、総称
プロキシ604を使ってコール609をRMI605に転送する。総称プロキシ
604は、型に特化していないという利点を備えており、従って、様々な型の遠
隔オブジェクトのメソッドを呼出すことが可能である。表1は、総称プロキシク
ラスのクラス定義を示すが、これは、ネットスケープ・コミュニケーションズ社
によりJavaプログラミング言語を使って記述され、且つ、総称プロキシがメ
ソッドの呼出しを一連のインターフェースにおいてサポートするように拡張され
たものである。
600を示したブロック図である。マシン601及び602は、例えば、コンピ
ュータ、或いは、1または複数のコンピュータ上で実行される仮想マシン、或い
は、図3、図4、及び、図5を参照に説明したマシンなどである。ネットワーク
600は、RMI602及び関連するコード603を有するクライアントマシン
601を含む。サーバマシン606は、RMI605及び遠隔オブジェクト60
8を含む。操作において、RMI602は、遠隔オブジェクト608のメソッド
の呼出しを要求するコール或いは要求601を転送する。RMI602は、総称
プロキシ604を使ってコール609をRMI605に転送する。総称プロキシ
604は、型に特化していないという利点を備えており、従って、様々な型の遠
隔オブジェクトのメソッドを呼出すことが可能である。表1は、総称プロキシク
ラスのクラス定義を示すが、これは、ネットスケープ・コミュニケーションズ社
によりJavaプログラミング言語を使って記述され、且つ、総称プロキシがメ
ソッドの呼出しを一連のインターフェースにおいてサポートするように拡張され
たものである。
【0051】
【表1】 package java.lang.reflect; public class Proxy { protected native Proxy(Class [] implementsInterface); protected abstract Object invoke(Method method, Object[] args); }
【0052】 遠隔オブジェクトの型に特定のスタブの位置には、代わりに総称プロキシが用
いられている。この総称プロキシはかかるプロキシに呼出すことが可能な全ての
メソッドを示す一連のインターフェースによって初期化されるものである。コー
ルがプロキシに出されると、プロキシの「呼出し」メソッドが「メソッドオブジ
ェクト」に渡されるが、この「メソッドオブジェクト」は、呼出されているメソ
ッドに関する情報を有し、且つ、オブジェクトの配列としてまとめられた必要な
引数を渡すものである。
いられている。この総称プロキシはかかるプロキシに呼出すことが可能な全ての
メソッドを示す一連のインターフェースによって初期化されるものである。コー
ルがプロキシに出されると、プロキシの「呼出し」メソッドが「メソッドオブジ
ェクト」に渡されるが、この「メソッドオブジェクト」は、呼出されているメソ
ッドに関する情報を有し、且つ、オブジェクトの配列としてまとめられた必要な
引数を渡すものである。
【0053】 RMI605は、総称コード607を使って応答610を返す。総称コードは
、以下のことを実現するために用いられる。即ち、メソッド識別子に基づいてメ
ソッドをルックアップすること、メソッドオブジェクトで示されたそれぞれの型
に基づいてパラメータを非整列化すること、遠隔オブジェクトインプリメンテー
ションにメソッドを呼出すこと、クライアントへの応答結果を(型に基づいて)
整列化することである。応答は、転送されたオブジェクトの型の識別、オブジェ
クト状態を構成するデータ、オブジェクトに関連付けられたコードの、ネットワ
ークからアクセス可能なロケーションをURL形式で示したものを含んでもよい
。
、以下のことを実現するために用いられる。即ち、メソッド識別子に基づいてメ
ソッドをルックアップすること、メソッドオブジェクトで示されたそれぞれの型
に基づいてパラメータを非整列化すること、遠隔オブジェクトインプリメンテー
ションにメソッドを呼出すこと、クライアントへの応答結果を(型に基づいて)
整列化することである。応答は、転送されたオブジェクトの型の識別、オブジェ
クト状態を構成するデータ、オブジェクトに関連付けられたコードの、ネットワ
ークからアクセス可能なロケーションをURL形式で示したものを含んでもよい
。
【0054】 入力ストリーム及び出力ストリームを含む、Javaプログラミング言語に用
いられるストリームは、当業者には周知であり、その説明は、例えば、参照によ
り援用する、メアリー カンピオン、キャシー ウォルラス共著、「Javaチ
ュートリアル:インターネットのためのオブジェクト指向プログラミング」(1
996年、アジソン・ウェスレイ発行)の325〜53ページに記載されている
。オブジェクトストリームについての説明は、例えば、サンマイクロシステムズ
インコーポレーテッドにより提供される、「オブジェクト直列化仕様」に記載さ
れている。また、URLも当業者には周知であり、その説明は、例えば、参照に
より援用する、メアリー カンピオン、キャシー ウォルラス共著、「Java
チュートリアル:インターネットのためのオブジェクト指向プログラミング」(
1996年、アジソン・ウェスレイ発行)の494〜507ページに記載されて
いる。
いられるストリームは、当業者には周知であり、その説明は、例えば、参照によ
り援用する、メアリー カンピオン、キャシー ウォルラス共著、「Javaチ
ュートリアル:インターネットのためのオブジェクト指向プログラミング」(1
996年、アジソン・ウェスレイ発行)の325〜53ページに記載されている
。オブジェクトストリームについての説明は、例えば、サンマイクロシステムズ
インコーポレーテッドにより提供される、「オブジェクト直列化仕様」に記載さ
れている。また、URLも当業者には周知であり、その説明は、例えば、参照に
より援用する、メアリー カンピオン、キャシー ウォルラス共著、「Java
チュートリアル:インターネットのためのオブジェクト指向プログラミング」(
1996年、アジソン・ウェスレイ発行)の494〜507ページに記載されて
いる。
【0055】 図7は、メソッドが呼出されるどの遠隔オブジェクトの型にも特定されていな
い総称コードを用いて行われるRMIの処理700を示したフローチャートであ
る。クライアントマシン601に含まれるアプリケーションが、総称プロキシク
ラスのインスタンスであるスタブ上にメソッドを呼出す(ステップ701)。総
称プロキシインスタンスの「呼出し」メソッドは、オブジェクト配列に組み込ま
れたメソッドオブジェクト及びパラメータリストと共に呼出される(ステップ7
02)。総称プロキシは、オブジェクトID、メソッドハッシュ、及び、整列化
されたパラメータを含む識別子をサーバマシンに転送する(ステップ703)。
い総称コードを用いて行われるRMIの処理700を示したフローチャートであ
る。クライアントマシン601に含まれるアプリケーションが、総称プロキシク
ラスのインスタンスであるスタブ上にメソッドを呼出す(ステップ701)。総
称プロキシインスタンスの「呼出し」メソッドは、オブジェクト配列に組み込ま
れたメソッドオブジェクト及びパラメータリストと共に呼出される(ステップ7
02)。総称プロキシは、オブジェクトID、メソッドハッシュ、及び、整列化
されたパラメータを含む識別子をサーバマシンに転送する(ステップ703)。
【0056】 メソッドハッシュの使用に関する詳細は、参照により援用する前述の米国出願
、発明の名称「リモート方法を識別する決定論的ハッシュのための方法及び装置
」に説明されている。整列化は、オブジェクトの構築に用いられるコード或いは
コードの参照を含むバイトストリームからオブジェクトの構築を行うことに関す
る。整列化及び非整列化については、参照により援用する、1997年10月1
5日出願の米国特許出願番号08/950,756、発明の名称「分散型システ
ムにおけるオブジェクトの据え置き再構築及び遠隔ローディング」に説明されて
いる。
、発明の名称「リモート方法を識別する決定論的ハッシュのための方法及び装置
」に説明されている。整列化は、オブジェクトの構築に用いられるコード或いは
コードの参照を含むバイトストリームからオブジェクトの構築を行うことに関す
る。整列化及び非整列化については、参照により援用する、1997年10月1
5日出願の米国特許出願番号08/950,756、発明の名称「分散型システ
ムにおけるオブジェクトの据え置き再構築及び遠隔ローディング」に説明されて
いる。
【0057】 サーバマシン606はオブジェクトID及びメソッドハッシュを読み取り(ス
テップ704)、読み取ったメソッドハッシュを使ってコールに対するメソッド
オブジェクトをルックアップする(ステップ705)。メソッドオブジェクトで
特定されたパラメータの型を与えられると、サーバマシン606は、その操作に
対するパラメータを非整列化する(ステップ706)。ステップ706は、特定
のメソッドに対する値をコンパイルし、遠隔オブジェクトが作成及びエクスポー
トされることにより起動されるメソッドテーブルの構築を伴うこともある。総称
コードは、メソッドハッシュと特定のメソッドとの間に対応関係を構築する。従
って、メソッドテーブルに含まれるハッシュを用いれば、メソッドハッシュをメ
ソッドオブジェクトに対応づけるメソッド呼出しのための、異なるオブジェクト
型に型付けされた異なるスケルトンが不要になる。
テップ704)、読み取ったメソッドハッシュを使ってコールに対するメソッド
オブジェクトをルックアップする(ステップ705)。メソッドオブジェクトで
特定されたパラメータの型を与えられると、サーバマシン606は、その操作に
対するパラメータを非整列化する(ステップ706)。ステップ706は、特定
のメソッドに対する値をコンパイルし、遠隔オブジェクトが作成及びエクスポー
トされることにより起動されるメソッドテーブルの構築を伴うこともある。総称
コードは、メソッドハッシュと特定のメソッドとの間に対応関係を構築する。従
って、メソッドテーブルに含まれるハッシュを用いれば、メソッドハッシュをメ
ソッドオブジェクトに対応づけるメソッド呼出しのための、異なるオブジェクト
型に型付けされた異なるスケルトンが不要になる。
【0058】 サーバマシン606は、遠隔オブジェクトインプリメンテーションにメソッド
を呼出し(ステップ707)、メソッドオブジェクトに含まれる応答型の情報を
使って、コール側への応答結果を整列化する(ステップ708)。総称プロキシ
は、メソッドオブジェクトに含まれる応答型の情報を使ってこの応答結果を非整
列化し(ステップ709)、この結果をコール側、即ちクライアントマシン60
1へ返す(ステップ710)。
を呼出し(ステップ707)、メソッドオブジェクトに含まれる応答型の情報を
使って、コール側への応答結果を整列化する(ステップ708)。総称プロキシ
は、メソッドオブジェクトに含まれる応答型の情報を使ってこの応答結果を非整
列化し(ステップ709)、この結果をコール側、即ちクライアントマシン60
1へ返す(ステップ710)。
【0059】 図7に示したステップを具体化するマシンは、かかる機能を実行する、図3〜
6に示したようなコンピュータプロセッサを含んでもよい。これらのコンピュー
タプロセッサは、プロセッサにより上記の機能を実行するように構成されたモジ
ュール或いはプログラムを含んでもよいし、また、メモリに格納したコンピュー
タプログラムプロダクトを含んでもよい。コンピュータプログラムプロダクトは
、マシンに上記の機能を実行させるコンピュータ可読コードを組み込んだコンピ
ュータ可読媒体或いは媒体でもよい。前記媒体には、搬送波に載せたコンピュー
タデータ信号であり、プロセッサに実行されることにより、プロセッサに本明細
書で説明した方法を実行させて周辺機器を絶対アドレスで確実にアドレス指定す
る命令シーケンスを表すコンピュータデータ信号もその範疇に含まれる。加えて
、かかる媒体は、本明細書で説明した方法の実行に用いられるデータ構造として
もよい。
6に示したようなコンピュータプロセッサを含んでもよい。これらのコンピュー
タプロセッサは、プロセッサにより上記の機能を実行するように構成されたモジ
ュール或いはプログラムを含んでもよいし、また、メモリに格納したコンピュー
タプログラムプロダクトを含んでもよい。コンピュータプログラムプロダクトは
、マシンに上記の機能を実行させるコンピュータ可読コードを組み込んだコンピ
ュータ可読媒体或いは媒体でもよい。前記媒体には、搬送波に載せたコンピュー
タデータ信号であり、プロセッサに実行されることにより、プロセッサに本明細
書で説明した方法を実行させて周辺機器を絶対アドレスで確実にアドレス指定す
る命令シーケンスを表すコンピュータデータ信号もその範疇に含まれる。加えて
、かかる媒体は、本明細書で説明した方法の実行に用いられるデータ構造として
もよい。
【0060】 以上、本発明に係るシステムの実施形態の例を、JVM上でJavaプログラ
ミング言語を実行するコンピュータシステムに言及して説明したが、本発明は、
異なるプログラミング言語によるコードを処理する他のコンピュータシステムに
も均しく適用可能である。特に、本発明は、オブジェクト指向のプログラミング
システムと非オブジェクト指向プログラミングシステムとのいずれによっても具
体化可能である。本発明に係る一実施例をJavaプログラミング環境において
動作するものとして説明したが、本発明は他のプログラミング環境においても同
様に用いることができることは、当業者には当然認識されるものである。
ミング言語を実行するコンピュータシステムに言及して説明したが、本発明は、
異なるプログラミング言語によるコードを処理する他のコンピュータシステムに
も均しく適用可能である。特に、本発明は、オブジェクト指向のプログラミング
システムと非オブジェクト指向プログラミングシステムとのいずれによっても具
体化可能である。本発明に係る一実施例をJavaプログラミング環境において
動作するものとして説明したが、本発明は他のプログラミング環境においても同
様に用いることができることは、当業者には当然認識されるものである。
【0061】 本発明を実施例を示して説明したが、多くの変容が可能であることは当業者に
は容易に理解されるものであり、この適用は、本発明のあらゆる応用或いは変種
を含むことを意図するものである。例えば、本発明の範囲から逸脱することなく
、様々な型の総称コードを用いることが可能である。本発明は、添付の請求の範
囲及びその均等物によってのみ限定されるものである。
は容易に理解されるものであり、この適用は、本発明のあらゆる応用或いは変種
を含むことを意図するものである。例えば、本発明の範囲から逸脱することなく
、様々な型の総称コードを用いることが可能である。本発明は、添付の請求の範
囲及びその均等物によってのみ限定されるものである。
【図1】 RPC機能を使った呼出し情報の流れを説明する概念図である。
【図2】 オブジェクト指向分散型システムにおけるオブジェクトの転送を説明する概念
図である。
図である。
【図3】 本発明に係る一実施形態に好適に用いられる代表的な分散型処理システムを示
した概念図である。
した概念図である。
【図4】 代表的な分散型システムのインフラストラクチャを示した概念図である。
【図5】 図4に示した分散型システムのインフラストラクチャのコンピュータを示した
概念図である。
概念図である。
【図6】 総称コードを用いてRMIを行うシステムを示したブロック図である。
【図7】 総称コードを用いて行う遠隔オブジェクトのメソッド呼出し処理を示したフロ
ーチャートである。
ーチャートである。
300 分散型処理システム 301、302、303 プラットフォーム 316、317、318 プロセッサ 394、305、306 メモリ 307、308、309 アプリケーション 310、311、312 オペレーティングシステム 313、314、315 RMIコンポーネント 402、404 コンピュータ 406 デバイス 408 ネットワーク 502 メモリ 504 二次記憶装置 506 中央処理装置(CPU) 508 入力装置 510 ビデオディスプレイ 512 ルックアップサービス 514 ディスカバリーサービス 516、518 Javaランタイムシステム 520 Java仮想マシン(JVM) 522 Javaスペース 600 オブジェクト指向分散型ネットワーク 601 クライアントマシン 602、605 RMI 603 コード 604 総称プロキシ 606 サーバマシン 607 総称コード 608 遠隔オブジェクト 609 コール或いは要求
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW (72)発明者 ジョーンズ ピーター シー アメリカ合衆国、01890 マサチューセッ ツ州、ウィンチェスター、ベーコン スト リート 85 Fターム(参考) 5B045 BB31 GG01
Claims (21)
- 【請求項1】 複数のマシンを有する分散型システムにおける遠隔メソッド
呼出し方法であって、 オブジェクトのメソッドを呼出す要求を受け取る工程と、 呼出すべき前記メソッドを総称コードを用いて決定する工程と、 前記メソッドを前記決定に基づいて呼出す工程と、 前記呼出されたメソッドの標識を提供する工程とを有する。 - 【請求項2】 請求項1の方法であって、前記受け取り工程は、前記メソッ
ドに対応付けられた識別子を提供する工程を有する。 - 【請求項3】 複数のマシンを有し且つ複数のクラスを定義する分散型オブ
ジェクト指向システムにおける遠隔メソッド呼出し方法であって、 特定のクラスのオブジェクトのメソッドを呼出す要求を受け取る工程と、 前記メソッドを前記クラス全てに共通の処理を用いて決定する工程と、 前記メソッドを前記決定に基づいて呼出す工程と、 前記呼出されたメソッドの標識を提供する工程とを有する。 - 【請求項4】 請求項3の方法であって、前記受け取り工程は、前記メソッ
ドに対応付けられた識別子を提供する工程を有する。 - 【請求項5】 複数のマシンを有する分散型システムにおける遠隔メソッド
呼出し方法であって、 第1のオブジェクトの第1のメソッドと、前記第1のオブジェクトとは異なる
型の第2のオブジェクトの第2のメソッドとを呼出す要求を受け取る工程と、 呼出すべき前記第1及び第2のメソッドを共通の処理を用いて決定する工程と
、 前記第1及び第2のメソッドを前記決定に基づいて呼出す工程と、 前記呼出された第1のメソッド及び第2のメソッドの標識を提供する工程とを
有する。 - 【請求項6】 複数のマシンを有する分散型システムにおける遠隔メソッド呼出し装置であっ
て、 オブジェクトのメソッドを呼出す要求を受け取るよう構成されたモジュールと
、 呼出すべき前記メソッドを総称コードを用いて決定するよう構成されたモジュ
ールと、 前記メソッドを前記決定に基づいて呼出すよう構成されたモジュールと、 前記呼出されたメソッドの標識を提供するよう構成されたモジュールとを有す
る。 - 【請求項7】 請求項6の装置であって、前記受け取りモジュールは、前記
メソッドに対応付けられた識別子を提供するよう構成されたモジュールを有する
。 - 【請求項8】 複数のマシンを有する分散型システムにおける遠隔メソッド
呼出し装置であって、 特定のクラスのオブジェクトのメソッドを呼出す要求を受け取るよう構成され
たモジュールと、 前記メソッドを前記クラス全てに共通の処理を用いて決定するよう構成された
モジュールと、 前記メソッドを前記決定に基づいて呼出すよう構成されたモジュールと、 前記呼出されたメソッドの標識を提供するよう構成されたモジュールとを有す
る。 - 【請求項9】 請求項8の装置であって、前記受け取りモジュールは、前記
メソッドに対応付けられた識別子を提供するよう構成されたモジュールを有する
。 - 【請求項10】 複数のマシンを有する分散型システムにおける遠隔メソッ
ド呼出し装置であって、 第1のオブジェクトの第1のメソッドと、前記第1のオブジェクトとは異なる
型の第2のオブジェクトの第2のメソッドとを呼出す要求を受け取るよう構成さ
れたモジュールと、 呼出すべき前記第1及び第2のメソッドを共通の処理を用いて決定するよう構
成されたモジュールと、 前記第1及び第2のメソッドを前記決定に基づいて呼出すよう構成されたモジ
ュールと、 前記呼出された第1のメソッド及び第2のメソッドの標識を提供するよう構成
されたモジュールとを有する。 - 【請求項11】 複数のマシンを有する分散型システムにおいてオブジェク
トを転送するシステムであって、 第1のマシンと、 第2のマシンと、 前記第1のマシンを前記第2のマシンに接続するネットワークと、 オブジェクトを転送する装置とを有し、 前記装置は、 オブジェクトのメソッドを呼出す要求を受け取るよう構成されたモジュールと
、 呼出すべき前記メソッドを総称コードを用いて決定するよう構成されたモジュ
ールと、 前記メソッドを前記決定に基づいて呼出すよう構成されたモジュールと、 前記呼出されたメソッドの標識を提供するよう構成されたモジュールとを有す
る。 - 【請求項12】 請求項11のシステムであって、前記受け取りモジュール
は、前記メソッドに対応付けられた識別子を提供するよう構成されたモジュール
を有する。 - 【請求項13】 複数のマシンを有する分散型システムにおいてオブジェク
トを転送するシステムであって、 第1のマシンと、 第2のマシンと、 前記第1のマシンを前記第2のマシンに接続するネットワークと、 オブジェクトを転送する装置とを有し、 前記装置は、 特定クラスのオブジェクトのメソッドを呼出す要求を受け取るよう構成された
モジュールと、 前記メソッドを前記クラス全てに共通の処理を用いて決定するよう構成された
モジュールと、 前記メソッドを前記決定に基づいて呼出すよう構成されたモジュールと、 前記呼出されたメソッドの標識を提供するよう構成されたモジュールとを有す
る。 - 【請求項14】 請求項13のシステムであって、前記受け取りモジュール
は、前記メソッドに対応付けられた識別子を提供するよう構成されたモジュール
を有する。 - 【請求項15】 複数のマシンを有する分散型システムにおいてオブジェク
トを転送するシステムであって、 第1のマシンと、 第2のマシンと、 前記第1のマシンを前記第2のマシンに接続するネットワークと、 オブジェクトを転送する装置とを有し、 前記装置は、 第1のオブジェクトの第1のメソッドと、前記第1のオブジェクトとは異なる
型の第2のオブジェクトの第2のメソッドとを呼出す要求を受け取るよう構成さ
れたモジュールと、 呼出すべき前記第1及び第2のメソッドを前記クラス全てに共通の処理を用い
て決定するよう構成されたモジュールと、 前記メソッドを前記決定に基づいて呼出すよう構成されたモジュールと、 前記呼出された第1のメソッド及び第2のメソッドの標識を提供するよう構成
されたモジュールとを有する。 - 【請求項16】 コンピュータプログラムプロダクトであって、 方法を実行するようにコンピュータシステムを制御するための命令を格納した
コンピュータ可読媒体を含み、 前記方法は、 オブジェクトのメソッドを呼出す要求を受け取る工程と、 呼出すべき前記メソッドを総称コードを用いて決定する工程と、 前記メソッドを前記決定に基づいて呼出す工程と、 前記呼出されたメソッドの標識を提供する工程とを有する。 - 【請求項17】 請求項16のコンピュータプログラムプロダクトであって
、前記受け取り工程は、前記メソッドに対応付けられた識別子を提供する工程を
含む。 - 【請求項18】 コンピュータプログラムプロダクトであって、 方法を実行するようにコンピュータシステムを制御するための命令を格納した
コンピュータ可読媒体を含み、 前記方法は、 特定のクラスのオブジェクトのメソッドを呼出す要求を受け取る工程と、 呼出すべき前記メソッドを前記クラス全てに共通の処理を用いて決定する工程
と、 前記メソッドを前記決定に基づいて呼出す工程と、 前記呼出されたメソッドの標識を提供する工程とを有する。 - 【請求項19】 請求項18のコンピュータプログラムプロダクトであって
、前記受け取り工程は、前記メソッドに対応付けられた識別子を提供する工程を
含む。 - 【請求項20】 コンピュータプログラムプロダクトであって、 方法を実行するようにコンピュータシステムを制御するための命令を格納した
コンピュータ可読媒体を含み、 前記方法は、 第1のオブジェクトの第1のメソッドと、前記第1のオブジェクトとは異なる
型の第2のオブジェクトの第2のメソッドを呼出す要求を受け取る工程と、 呼出すべき前記第1及び第2のメソッドを共通の処理を用いて決定する工程と
、 前記第1のメソッド及び第2のメソッドを前記決定に基づいて呼出す工程と、 前記呼出された第1のメソッド及び第2のメソッドの標識を提供する工程とを
有する。 - 【請求項21】 複数のマシンを有する分散型システムにおける遠隔メソッ
ド呼出し装置であって、 オブジェクトのメソッドを呼出す要求を受け取る手段と、 呼出すべき前記メソッドを総称コードを用いて決定する手段と、 前記メソッドを前記決定に基づいて呼出す手段と、 前記呼出されたメソッドの標識を提供する手段とを有する。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US7604898P | 1998-02-26 | 1998-02-26 | |
US09/044,938 | 1998-03-20 | ||
US09/044,938 US6487607B1 (en) | 1998-02-26 | 1998-03-20 | Methods and apparatus for remote method invocation |
US60/076,048 | 1998-03-20 | ||
PCT/US1999/003395 WO1999044126A2 (en) | 1998-02-26 | 1999-02-17 | Methods and apparatus for remote method invocation |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002505466A true JP2002505466A (ja) | 2002-02-19 |
Family
ID=26722184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000533810A Pending JP2002505466A (ja) | 1998-02-26 | 1999-02-17 | 遠隔メソッド呼出し方法及び装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6487607B1 (ja) |
EP (1) | EP1058881A2 (ja) |
JP (1) | JP2002505466A (ja) |
KR (1) | KR20010041293A (ja) |
CN (1) | CN1298513A (ja) |
AU (1) | AU2770299A (ja) |
WO (1) | WO1999044126A2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004502339A (ja) * | 2000-06-26 | 2004-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 通信システム |
JP2008225625A (ja) * | 2007-03-09 | 2008-09-25 | Nec Corp | 分散処理システム連携システム、分散処理システム連携方法および分散処理システム連携プログラム |
JP2009508250A (ja) * | 2005-09-12 | 2009-02-26 | マイクロソフト コーポレーション | クライアントおよびサーバ間の型情報の保存 |
JP5163128B2 (ja) * | 2006-01-31 | 2013-03-13 | 富士通株式会社 | 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539628B2 (en) * | 2000-03-21 | 2009-05-26 | Bennett James D | Online purchasing system supporting buyer affordability screening |
JP2000322288A (ja) * | 1999-05-06 | 2000-11-24 | Fujitsu Ltd | 分散オブジェクト開発システム、および、分散オブジェクト開発をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6581094B1 (en) * | 1999-11-02 | 2003-06-17 | Sun Microsystems, Inc. | Apparatus and method for identifying a digital device based on the device's uniform device descriptor file that specifies the attributes of the device in a XML document in a networked environment |
WO2001040939A1 (en) * | 1999-11-30 | 2001-06-07 | Sun Microsystems, Inc. | Apparatus and methods for communicating between resource domains |
US6728788B1 (en) * | 1999-12-16 | 2004-04-27 | International Business Machines Corporation | Method and system for converting a remote procedure call to a local procedure call when the service is on the same device as the calling client |
US7743149B1 (en) * | 1999-12-22 | 2010-06-22 | Nortel Networks Limited | SIP messages carrying executable computer software code |
US6766356B1 (en) | 2000-09-14 | 2004-07-20 | Genesys Conferencing, Ltd. | Method and system for remotely modifying presentations in a multimedia conference |
JP2002132739A (ja) * | 2000-10-23 | 2002-05-10 | Nec Corp | スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体 |
US6842786B1 (en) * | 2001-02-09 | 2005-01-11 | Adobe Systems Incorporated | Method and apparatus for remote communication of data associated with dynamically generated type object at runtime to describe the data type |
US7043714B2 (en) * | 2001-06-28 | 2006-05-09 | International Business Machines Corporation | Method, system, and program for using objects in data stores during execution of a workflow |
US7069536B2 (en) * | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US7100147B2 (en) * | 2001-06-28 | 2006-08-29 | International Business Machines Corporation | Method, system, and program for generating a workflow |
US7296056B2 (en) * | 2001-07-30 | 2007-11-13 | International Business Machines Corporation | Method, system, and program for selecting one user to assign a work item in a workflow |
US7047535B2 (en) | 2001-07-30 | 2006-05-16 | International Business Machines Corporation | Method, system, and program for performing workflow related operations using an application programming interface |
US7698427B2 (en) | 2001-07-30 | 2010-04-13 | International Business Machines Corporation | Method, system, and program for transferring data from an application engine |
US7228547B2 (en) * | 2001-07-30 | 2007-06-05 | International Business Machines Corporation | Method, system, and program for enabling access to a plurality of services |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7000238B2 (en) * | 2001-10-10 | 2006-02-14 | Borland Software Corporation | Development system providing extensible remoting architecture |
US20030093496A1 (en) * | 2001-10-22 | 2003-05-15 | O'connor James M. | Resource service and method for location-independent resource delivery |
US7257613B2 (en) * | 2001-11-20 | 2007-08-14 | Sun Microsystems, Inc. | Methods to develop remote applications with built in feedback ability for use in a distributed test framework |
US7051341B2 (en) * | 2001-12-14 | 2006-05-23 | International Business Machines Corporation | Method, system, and program for implementing a remote method call |
US7290267B2 (en) * | 2002-01-23 | 2007-10-30 | International Business Machines Corporation | Multi-protocol object distribution |
US7130881B2 (en) * | 2002-05-01 | 2006-10-31 | Sun Microsystems, Inc. | Remote execution model for distributed application launch and control |
US7458061B2 (en) * | 2002-06-14 | 2008-11-25 | Sun Microsystems, Inc. | Protecting object identity in a language with built-in synchronization objects |
US7454458B2 (en) * | 2002-06-24 | 2008-11-18 | Ntt Docomo, Inc. | Method and system for application load balancing |
WO2004001585A1 (en) * | 2002-06-24 | 2003-12-31 | Docomo Communications Laboratories Usa, Inc. | Mobile application environment |
US20040001476A1 (en) * | 2002-06-24 | 2004-01-01 | Nayeem Islam | Mobile application environment |
US20030236826A1 (en) * | 2002-06-24 | 2003-12-25 | Nayeem Islam | System and method for making mobile applications fault tolerant |
US20040054809A1 (en) * | 2002-08-26 | 2004-03-18 | Goff Max K. | Synchronous object unification protocol |
SE0203297D0 (sv) * | 2002-11-05 | 2002-11-05 | Ericsson Telefon Ab L M | Remote service execution in an heterogenous network |
US20040111706A1 (en) * | 2002-12-07 | 2004-06-10 | Mogul Jeffrey Clifford | Analysis of latencies in a multi-node system |
US7506273B2 (en) * | 2003-03-19 | 2009-03-17 | International Business Machines Corporation | Method and system for modifying properties of graphical user interface components |
US7478399B2 (en) * | 2003-04-21 | 2009-01-13 | International Business Machines Corporation | Method, system and program product for transferring program code between computer processes |
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 |
KR100550477B1 (ko) * | 2003-12-13 | 2006-02-10 | 한국전자통신연구원 | 임베디드 시스템에서의 원격 디바이스 드라이버 개발환경을 지원하기 위한 드라이버 에이전트 장치 및 그 운용방법 |
US7490168B2 (en) * | 2003-12-17 | 2009-02-10 | International Business Machines Corporation | Service oriented integration server architecture |
US7496932B2 (en) * | 2004-01-12 | 2009-02-24 | International Business Machines Corporation | Communicating with remote objects in a data processing network |
US8312473B2 (en) * | 2004-04-26 | 2012-11-13 | Sony Computer Entertainment Inc. | Specifying parameters for selective return to an invoker |
US7386865B2 (en) * | 2004-06-24 | 2008-06-10 | Sap Ag | System and method for processing remote function calls |
IL164577A (en) * | 2004-10-14 | 2011-12-29 | Tadiran Telecom Ltd | Communication in a distributed system |
US7539150B2 (en) * | 2004-11-16 | 2009-05-26 | International Business Machines Corporation | Node discovery and communications in a network |
US7543300B2 (en) * | 2004-11-16 | 2009-06-02 | International Business Machines Corporation | Interface for application components |
IL166085A (en) * | 2004-12-30 | 2011-08-31 | Tadiran Telecom Ltd | Method and apparatus for use of identical data objects representing a user in a distributed communications network |
US7549151B2 (en) * | 2005-02-14 | 2009-06-16 | Qnx Software Systems | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment |
US7453865B2 (en) * | 2005-02-16 | 2008-11-18 | International Business Machines Corporation | Communication channels in a storage network |
KR100674838B1 (ko) * | 2005-02-28 | 2007-01-26 | 삼성전기주식회사 | 적층형 카메라 모듈 |
US7840682B2 (en) | 2005-06-03 | 2010-11-23 | QNX Software Systems, GmbH & Co. KG | Distributed kernel operating system |
US8667184B2 (en) | 2005-06-03 | 2014-03-04 | Qnx Software Systems Limited | Distributed kernel operating system |
US7680096B2 (en) * | 2005-10-28 | 2010-03-16 | Qnx Software Systems Gmbh & Co. Kg | System for configuring switches in a network |
US7917913B2 (en) * | 2006-09-15 | 2011-03-29 | Telefonaktiebolaget L M Ericsson (Publ) | Injecting proxy components using blueprints |
US8332866B2 (en) | 2006-11-29 | 2012-12-11 | Qualcomm Incorporated | Methods, systems, and apparatus for object invocation across protection domain boundaries |
US8117601B2 (en) * | 2007-11-14 | 2012-02-14 | Microsoft Corporation | Internal test and manipulation of an application |
US20100174575A1 (en) * | 2009-01-02 | 2010-07-08 | International Business Machines Corporation | Meeting management system with failover and failback capabilities for meeting moderators |
US20100306177A1 (en) * | 2009-05-29 | 2010-12-02 | Khosravi Hormuzd M | Host operating system independent storage-related remote access and operations |
US8214902B2 (en) * | 2009-06-19 | 2012-07-03 | Intel Corporation | Determination by circuitry of presence of authorized and/or malicious data |
US8307175B2 (en) * | 2009-06-26 | 2012-11-06 | Intel Corporation | Data recovery and overwrite independent of operating system |
US9934079B2 (en) | 2010-05-27 | 2018-04-03 | International Business Machines Corporation | Fast remote communication and computation between processors using store and load operations on direct core-to-core memory |
US9378073B2 (en) | 2012-08-14 | 2016-06-28 | International Business Machines Corporation | Remote procedure call for a distributed system |
US9092281B2 (en) | 2012-10-02 | 2015-07-28 | Qualcomm Incorporated | Fast remote procedure call |
CN104965864B (zh) * | 2015-06-04 | 2018-05-08 | 深圳市腾讯计算机系统有限公司 | 一种远程对象的标识方法及远程对象的标识系统 |
CN108306844B (zh) * | 2016-10-09 | 2020-07-24 | 上海思立微电子科技有限公司 | 用于服务器与客户端之间的api通信的方法 |
US11734054B2 (en) | 2019-09-03 | 2023-08-22 | Netflix, Inc. | Techniques for interfacing between media processing workflows and serverless functions |
KR102187063B1 (ko) * | 2020-07-13 | 2020-12-04 | 김인헌 | 서브 로터가 구비되는 드론 |
CN113110947B (zh) * | 2021-04-16 | 2024-04-02 | 中国工商银行股份有限公司 | 一种程序调用链生成方法、系统、电子设备及介质 |
Family Cites Families (182)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2476349A1 (fr) | 1980-02-15 | 1981-08-21 | Philips Ind Commerciale | Systeme de traitement de donnees reparti |
US4491946A (en) | 1981-03-09 | 1985-01-01 | Gould Inc. | Multi-station token pass communication system |
AU556499B2 (en) | 1981-05-22 | 1986-11-06 | Data General Corporation | Data processing system |
US4558413A (en) | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
JPH0640302B2 (ja) | 1984-01-30 | 1994-05-25 | 株式会社日立製作所 | 図式・ソ−スプログラム自動生成方法 |
US4823122A (en) | 1984-06-01 | 1989-04-18 | Digital Equipment Corporation | Local area network for digital data processing system |
US4809160A (en) | 1985-10-28 | 1989-02-28 | Hewlett-Packard Company | Privilege level checking instruction for implementing a secure hierarchical computer system |
US4713806A (en) | 1986-03-14 | 1987-12-15 | American Telephone And Telegraph Company, At&T Bell Laboratories | Communication system control arrangement |
US4939638A (en) | 1988-02-23 | 1990-07-03 | Stellar Computer Inc. | Time sliced vector processing |
US5287511A (en) | 1988-07-11 | 1994-02-15 | Star Semiconductor Corporation | Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith |
US4979105A (en) | 1988-07-19 | 1990-12-18 | International Business Machines | Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system |
US5133075A (en) | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
US5109486A (en) | 1989-01-06 | 1992-04-28 | Motorola, Inc. | Distributed computer system with network and resource status monitoring |
US5088036A (en) | 1989-01-17 | 1992-02-11 | Digital Equipment Corporation | Real time, concurrent garbage collection system and method |
EP0384339B1 (en) | 1989-02-24 | 1997-04-02 | Digital Equipment Corporation | Broker for computer network server selection |
US5297283A (en) | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
US5257369A (en) | 1990-10-22 | 1993-10-26 | Skeen Marion D | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5187787B1 (en) | 1989-07-27 | 1996-05-07 | Teknekron Software Systems Inc | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5557798A (en) | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
US5218699A (en) | 1989-08-24 | 1993-06-08 | International Business Machines Corporation | Remote procedure calls in heterogeneous systems |
WO1991010191A1 (en) | 1989-12-26 | 1991-07-11 | Fujitsu Limited | Object oriented distributed processing system |
GB2242293A (en) | 1990-01-05 | 1991-09-25 | Apple Computer | Apparatus and method for dynamic linking of computer software components |
AU628753B2 (en) | 1990-08-14 | 1992-09-17 | Digital Equipment Corporation | Method and apparatus for implementing server functions in a distributed heterogeneous environment |
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 |
US5446897A (en) | 1990-08-31 | 1995-08-29 | International Business Machines Corporation | Automated address discovery method and apparatus for local area networks |
DE69132280T2 (de) | 1990-09-17 | 2001-01-18 | Cabletron Systems, Inc. | System und Verfahren zur Modellierung eines Computer-Netzwerks |
JPH0799497B2 (ja) | 1990-12-14 | 1995-10-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | ソフトウェアの使用を管理するための装置及び方法 |
IE910553A1 (en) | 1991-02-19 | 1992-08-26 | Tolsys Ltd | Improvements in and relating to stable memory circuits |
EP0501610B1 (en) | 1991-02-25 | 1999-03-17 | Hewlett-Packard Company | Object oriented distributed computing system |
EP0501613A3 (en) | 1991-02-28 | 1993-09-01 | Hewlett-Packard Company | Heterogeneous software configuration management apparatus |
US5293614A (en) | 1991-04-08 | 1994-03-08 | Texas Instruments Incorporated | System and method for hard real-time garbage collection requiring a write barrier but no read barrier |
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 |
US5826017A (en) | 1992-02-10 | 1998-10-20 | Lucent Technologies | Apparatus and method for communicating data between elements of a distributed system using a general protocol |
US5390328A (en) | 1992-03-30 | 1995-02-14 | International Business Machines Corporation | Data processing system and method for providing notification in a central processor of state changes for shared data structure on external storage |
US5553305A (en) | 1992-04-14 | 1996-09-03 | International Business Machines Corporation | System for synchronizing execution by a processing element of threads within a process using a state indicator |
US5353343A (en) | 1992-04-30 | 1994-10-04 | Rockwell International Corporation | Telephonic switching system with a user controlled data memory access system and method |
US5412717A (en) | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
EP0578207B1 (en) * | 1992-07-06 | 1999-12-01 | Microsoft Corporation | Method for naming and binding objects |
US5307490A (en) | 1992-08-28 | 1994-04-26 | Tandem Computers, Inc. | Method and system for implementing remote procedure calls in a distributed computer system |
JP2524472B2 (ja) | 1992-09-21 | 1996-08-14 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 電話回線利用の音声認識システムを訓練する方法 |
US5423042A (en) | 1992-10-23 | 1995-06-06 | International Business Machines Corporation | Remote procedure execution |
US5561785A (en) | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
US5515536A (en) | 1992-11-13 | 1996-05-07 | Microsoft Corporation | Method and system for invoking methods of an object through a dispatching interface |
WO1994011810A1 (en) | 1992-11-13 | 1994-05-26 | Microsoft Corporation | A method and system for marshalling interface pointers for remote procedure calls |
US5386568A (en) | 1992-12-01 | 1995-01-31 | Yamaha Corporation | Apparatus and method for linking software modules |
EP0602263A1 (en) | 1992-12-15 | 1994-06-22 | International Business Machines Corporation | User interface program generator |
US5560003A (en) | 1992-12-21 | 1996-09-24 | Iowa State University Research Foundation, Inc. | System and hardware module for incremental real time garbage collection and memory management |
US5452459A (en) | 1993-01-08 | 1995-09-19 | Digital Equipment Corporation | Method and apparatus for allocating server access in a distributed computing environment |
DE69429686T2 (de) | 1993-02-25 | 2003-04-30 | Sun Microsystems, Inc. | Transaktionsverwaltung in objektorientiertem System |
US5832593A (en) | 1993-04-14 | 1998-11-10 | Minnesota Mining And Manufacturing Company | Splice head for insulated telecommunication wires |
CA2121612A1 (en) | 1993-05-21 | 1994-11-22 | Chung-Hwa Herman Rao | Methods and apparatus for making and using distributed applications |
US5603031A (en) | 1993-07-08 | 1997-02-11 | General Magic, Inc. | System and method for distributed computation based upon the movement, execution, and interaction of processes in a network |
DE59410317D1 (de) | 1993-07-16 | 2003-10-02 | Siemens Ag | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen |
US5844553A (en) | 1993-08-30 | 1998-12-01 | Hewlett-Packard Company | Mechanism to control and use window events among applications in concurrent computing |
US5617537A (en) | 1993-10-05 | 1997-04-01 | Nippon Telegraph And Telephone Corporation | Message passing system for distributed shared memory multiprocessor system and message passing method using the same |
CA2118169A1 (en) | 1993-10-27 | 1995-04-28 | Michael R.C. Seaman | Event architecture for system management in an operating system |
US5455952A (en) | 1993-11-03 | 1995-10-03 | Cardinal Vision, Inc. | Method of computing based on networks of dependent objects |
US5742848A (en) | 1993-11-16 | 1998-04-21 | Microsoft Corp. | System for passing messages between source object and target object utilizing generic code in source object to invoke any member function of target object by executing the same instructions |
US5581704A (en) | 1993-12-06 | 1996-12-03 | Panasonic Technologies, Inc. | System for maintaining data coherency in cache memory by periodically broadcasting invalidation reports from server to client |
US5485617A (en) | 1993-12-13 | 1996-01-16 | Microsoft Corporation | Method and system for dynamically generating object connections |
US5548726A (en) | 1993-12-17 | 1996-08-20 | Taligeni, Inc. | System for activating new service in client server network by reconfiguring the multilayer network protocol stack dynamically within the server node |
WO1995017064A1 (en) | 1993-12-17 | 1995-06-22 | Taligent, Inc. | Object-oriented distributed communications directory service |
US5594921A (en) | 1993-12-17 | 1997-01-14 | Object Technology Licensing Corp. | Authentication of users with dynamically configurable protocol stack |
AU1522095A (en) | 1994-01-05 | 1995-08-01 | Peter J. Covey | Dynamic-state, multi-dimensional, multi-media database |
US5832219A (en) | 1994-02-08 | 1998-11-03 | Object Technology Licensing Corp. | Distributed object networking service |
US5845090A (en) | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US5392280A (en) | 1994-04-07 | 1995-02-21 | Mitsubishi Electric Research Laboratories, Inc. | Data transmission system and scheduling protocol for connection-oriented packet or cell switching networks |
US5675796A (en) | 1994-04-08 | 1997-10-07 | Microsoft Corporation | Concurrency management component for use by a computer program during the transfer of a message |
US6216138B1 (en) | 1994-04-22 | 2001-04-10 | Brooks Automation Inc. | Computer interface system for automatically generating graphical representations of computer operations linked together according to functional relationships |
US5680617A (en) | 1994-05-16 | 1997-10-21 | Apple Computer, Inc. | Computer-human interface which provides for user customization of object behavior |
US5675797A (en) | 1994-05-24 | 1997-10-07 | International Business Machines Corporation | Goal-oriented resource allocation manager and performance index technique for servers |
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 |
US5655148A (en) | 1994-05-27 | 1997-08-05 | Microsoft Corporation | Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information |
US5680573A (en) | 1994-07-12 | 1997-10-21 | Sybase, Inc. | Method of buffering data objects in a database |
US5778228A (en) * | 1994-08-16 | 1998-07-07 | International Business Machines Corporation | Method and system for transferring remote procedure calls and responses over a network |
US5922054A (en) | 1994-08-19 | 1999-07-13 | Canon Kabushiki Kaisha | System for managing external applications and files |
US5555367A (en) | 1994-09-30 | 1996-09-10 | General Electric Company | Method and system for generating computer programs for queries formed by manipulating object-oriented diagrams |
JP4058118B2 (ja) | 1994-11-15 | 2008-03-05 | 株式会社日立製作所 | プログラム生成システム及び方法 |
US5577231A (en) | 1994-12-06 | 1996-11-19 | International Business Machines Corporation | Storage access authorization controls in a computer system using dynamic translation of large addresses |
US5644768A (en) | 1994-12-09 | 1997-07-01 | Borland International, Inc. | Systems and methods for sharing resources in a multi-user environment |
US5553282A (en) | 1994-12-09 | 1996-09-03 | Taligent, Inc. | Software project history database and method of operation |
DE69521977T2 (de) | 1994-12-13 | 2002-04-04 | International Business Machines Corp., Armonk | Verfahren und System zur gesicherten Programmenverteilung |
US5677851A (en) | 1994-12-15 | 1997-10-14 | Novell, Inc. | Method and apparatus to secure digital directory object changes |
US5608903A (en) | 1994-12-15 | 1997-03-04 | Novell, Inc. | Method and apparatus for moving subtrees in a distributed network directory |
US5630066A (en) | 1994-12-20 | 1997-05-13 | Sun Microsystems, Inc. | System and method for locating object view and platform independent object |
US5872928A (en) | 1995-02-24 | 1999-02-16 | Cabletron Systems, Inc. | Method and apparatus for defining and enforcing policies for configuration management in communications networks |
US5727203A (en) | 1995-03-31 | 1998-03-10 | Sun Microsystems, Inc. | Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache |
EP0735472A3 (en) | 1995-03-31 | 2000-01-19 | Sun Microsystems, Inc. | Method and apparatus for conspiracy among objects |
US5812819A (en) | 1995-06-05 | 1998-09-22 | Shiva Corporation | Remote access apparatus and method which allow dynamic internet protocol (IP) address management |
US5628005A (en) | 1995-06-07 | 1997-05-06 | Microsoft Corporation | System and method for providing opportunistic file access in a network environment |
US5903731A (en) | 1995-06-14 | 1999-05-11 | Us West Technologies, Inc. | System and associated method for re-engineering a telecommunications network support system with object-oriented translators |
US5761656A (en) | 1995-06-26 | 1998-06-02 | Netdynamics, Inc. | Interaction between databases and graphical user interfaces |
US5802367A (en) | 1995-07-07 | 1998-09-01 | Microsoft Corporation | Method and system for transparently executing code using a surrogate process |
US5745703A (en) | 1995-07-18 | 1998-04-28 | Nec Research Institute, Inc. | Transmission of higher-order objects across a network of heterogeneous machines |
US5774551A (en) | 1995-08-07 | 1998-06-30 | Sun Microsystems, Inc. | Pluggable account management interface with unified login and logout and multiple user authentication services |
US5956509A (en) | 1995-08-18 | 1999-09-21 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
JPH0962526A (ja) | 1995-08-28 | 1997-03-07 | Fujitsu Ltd | 耐故障型rpcシステムおよび方法 |
JP2964926B2 (ja) | 1995-08-29 | 1999-10-18 | 富士ゼロックス株式会社 | データベース管理装置及び方法 |
US5671225A (en) | 1995-09-01 | 1997-09-23 | Digital Equipment Corporation | Distributed interactive multimedia service system |
US5737607A (en) | 1995-09-28 | 1998-04-07 | Sun Microsystems, Inc. | Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats |
US5765174A (en) | 1995-10-06 | 1998-06-09 | Sun Microsystems, Inc. | System amd method for distributed object resource management |
US5864862A (en) | 1996-09-30 | 1999-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for creating reusable components in an object-oriented programming environment |
US5872973A (en) | 1995-10-26 | 1999-02-16 | Viewsoft, Inc. | Method for managing dynamic relations between objects in dynamic object-oriented languages |
US5860153A (en) | 1995-11-22 | 1999-01-12 | Sun Microsystems, Inc. | Memory efficient directory coherency maintenance |
US5692047A (en) | 1995-12-08 | 1997-11-25 | Sun Microsystems, Inc. | System and method for executing verifiable programs with facility for using non-verifiable programs from trusted sources |
US6067575A (en) | 1995-12-08 | 2000-05-23 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
US6003763A (en) | 1995-12-29 | 1999-12-21 | Visa International Service | Method and apparatus for recording magnetic information on traveler's checks |
US5745695A (en) | 1996-01-16 | 1998-04-28 | Motorola Inc. | Radio system with suspension of packet data service during non-data service connection |
US5754849A (en) | 1996-01-30 | 1998-05-19 | Wayfarer Communications, Inc. | Self-describing object providing dynamic manipulation of heterogeneous data values and semantic identity between memory and transmission representations |
US5946485A (en) | 1996-02-09 | 1999-08-31 | Intervoice Limited Partnership | Enhanced graphical development environment for controlling program flow |
CA2199108C (en) | 1996-03-05 | 2002-04-23 | Hirotoshi Maegawa | Parallel distributed processing system and method of same |
US6049673A (en) | 1996-03-08 | 2000-04-11 | Organicnet, Inc. | Organicware applications for computer systems |
US5845129A (en) | 1996-03-22 | 1998-12-01 | Philips Electronics North America Corporation | Protection domains in a single address space |
US5706502A (en) | 1996-03-25 | 1998-01-06 | Sun Microsystems, Inc. | Internet-enabled portfolio manager system and method |
US5790548A (en) | 1996-04-18 | 1998-08-04 | Bell Atlantic Network Services, Inc. | Universal access multimedia data network |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US6226746B1 (en) | 1998-03-20 | 2001-05-01 | Sun Microsystems, Inc. | Stack-based system and method to combine security requirements of methods |
US6134603A (en) | 1998-03-20 | 2000-10-17 | Sun Microsystems, Inc. | Method and system for deterministic hashes to identify remote methods |
US5815709A (en) | 1996-04-23 | 1998-09-29 | San Microsystems, Inc. | System and method for generating identifiers for uniquely identifying object types for objects used in processing of object-oriented programs and the like |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
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 |
US5978484A (en) | 1996-04-25 | 1999-11-02 | Microsoft Corporation | System and method for safety distributing executable objects |
EP0805393B1 (en) | 1996-04-30 | 2011-11-09 | International Business Machines Corporation | Method and apparatus for managing membership of a group of processors in a distributed computing environment |
US5778368A (en) | 1996-05-03 | 1998-07-07 | Telogy Networks, Inc. | Real-time embedded software respository with attribute searching apparatus and method |
US5778187A (en) | 1996-05-09 | 1998-07-07 | Netcast Communications Corp. | Multicasting method and apparatus |
US5835737A (en) | 1996-05-10 | 1998-11-10 | Apple Computer, Inc. | Method and apparatus for arbitrating access to selected computer system devices |
US5889951A (en) | 1996-05-13 | 1999-03-30 | Viewpoint Corporation | Systems, methods, and computer program products for accessing, leasing, relocating, constructing and modifying internet sites within a multi-dimensional virtual reality environment |
US5928323A (en) | 1996-05-30 | 1999-07-27 | Sun Microsystems, Inc. | Apparatus and method for dynamically generating information with server-side software objects |
US5813013A (en) | 1996-06-06 | 1998-09-22 | Microsoft Corporation | Representing recurring events |
JP3488019B2 (ja) | 1996-06-17 | 2004-01-19 | 株式会社山武 | 制御設計用コンフィギュレーション・ツールの部品再利用方法 |
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 |
US6044409A (en) | 1996-06-26 | 2000-03-28 | Sun Microsystems, Inc. | Framework for marshaling and unmarshaling argument object references |
US5991823A (en) | 1996-06-26 | 1999-11-23 | Sun Microsystems, Inc. | Low overhead object adaptor |
US5727145A (en) | 1996-06-26 | 1998-03-10 | Sun Microsystems, Inc. | Mechanism for locating objects in a secure fashion |
SG67354A1 (en) | 1996-06-27 | 1999-09-21 | Inst Of Systems Science Nation | Computationally efficient method for trusted and dynamic digital objects dissemination |
US5809507A (en) | 1996-07-01 | 1998-09-15 | Sun Microsystems, Inc. | Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework |
US6360256B1 (en) | 1996-07-01 | 2002-03-19 | Sun Microsystems, Inc. | Name service for a redundant array of internet servers |
US5748897A (en) | 1996-07-02 | 1998-05-05 | Sun Microsystems, Inc. | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer |
US5818448A (en) | 1996-07-02 | 1998-10-06 | Sun Microsystems, Inc. | Apparatus and method for identifying server computer aggregation topologies |
US5860004A (en) | 1996-07-03 | 1999-01-12 | Sun Microsystems, Inc. | Code generator for applications in distributed object systems |
US5949998A (en) | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
US5757925A (en) | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
US6016516A (en) | 1996-08-07 | 2000-01-18 | Fuji Xerox Co. Ltd. | Remote procedure processing device used by at least two linked computer systems |
US5875335A (en) | 1996-09-30 | 1999-02-23 | Apple Computer, Inc. | Parameter marshaling techniques for dynamic object-oriented programming languages |
US5787425A (en) | 1996-10-01 | 1998-07-28 | International Business Machines Corporation | Object-oriented data mining framework mechanism |
US5974201A (en) | 1996-10-01 | 1999-10-26 | Siemens Corporate Research, Inc. | Smart image system |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6044381A (en) | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
US5944793A (en) | 1996-11-21 | 1999-08-31 | International Business Machines Corporation | Computerized resource name resolution mechanism |
US5987506A (en) | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US5892904A (en) | 1996-12-06 | 1999-04-06 | Microsoft Corporation | Code certification for network transmission |
US5884024A (en) | 1996-12-09 | 1999-03-16 | Sun Microsystems, Inc. | Secure DHCP server |
JPH10171701A (ja) | 1996-12-10 | 1998-06-26 | Fuji Xerox Co Ltd | 手続実行装置及び方法 |
US5787431A (en) | 1996-12-16 | 1998-07-28 | Borland International, Inc. | Database development system with methods for java-string reference lookups of column names |
US5933647A (en) | 1997-01-24 | 1999-08-03 | Cognet Corporation | System and method for software distribution and desktop management in a computer network environment |
US6052761A (en) | 1997-01-31 | 2000-04-18 | Hewlett-Packard Company | Increment update in an SCI based system |
US5913029A (en) | 1997-02-07 | 1999-06-15 | Portera Systems | Distributed database system and method |
US5815149A (en) | 1997-02-19 | 1998-09-29 | Unisys Corp. | Method for generating code for modifying existing event routines for controls on a form |
US5935249A (en) | 1997-02-26 | 1999-08-10 | Sun Microsystems, Inc. | Mechanism for embedding network based control systems in a local network interface device |
US6061713A (en) | 1997-03-12 | 2000-05-09 | Fujitsu Limited | Communications system for client-server data processing systems |
US5864866A (en) | 1997-03-26 | 1999-01-26 | International Business Machines Corporation | Apparatus and method for providing externalization in an object-oriented environment |
US5999988A (en) | 1997-03-31 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems |
US5890158A (en) | 1997-03-31 | 1999-03-30 | International Business Machines Corporation | Method, apparatus, and program storage device for sharing objects with a network server and a database server using a common object model |
US6247091B1 (en) | 1997-04-28 | 2001-06-12 | International Business Machines Corporation | Method and system for communicating interrupts between nodes of a multinode computer system |
US6282295B1 (en) | 1997-10-28 | 2001-08-28 | Adam Lucas Young | Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers |
US5808911A (en) | 1997-06-19 | 1998-09-15 | Sun Microsystems, Inc. | System and method for remote object resource management |
US5878411A (en) | 1997-06-27 | 1999-03-02 | International Business Machines Corporation | Dependent object class and subclass mapping to relational data store |
US5887134A (en) | 1997-06-30 | 1999-03-23 | Sun Microsystems | System and method for preserving message order while employing both programmed I/O and DMA operations |
US5946694A (en) | 1997-09-29 | 1999-08-31 | International Business Machines Corporation | Apparatus and method for transparent application of service to business objects |
US5951652A (en) | 1997-10-06 | 1999-09-14 | Ncr Corporation | Dependable data element synchronization mechanism |
US6061699A (en) | 1997-11-03 | 2000-05-09 | International Business Machines Corporation | Method and computer program product for extracting translatable material from browser program function codes using variables for displaying MRI |
US6032151A (en) | 1997-11-17 | 2000-02-29 | Sun Microsystems, Inc. | Database system employing polymorphic entry and entry matching |
US5999179A (en) | 1997-11-17 | 1999-12-07 | Fujitsu Limited | Platform independent computer network management client |
US6016496A (en) | 1997-11-20 | 2000-01-18 | International Business Machines Corporation | Method and apparatus for an object-oriented object for retrieving information from local and remote databases |
US6009103A (en) | 1997-12-23 | 1999-12-28 | Mediaone Group, Inc. | Method and system for automatic allocation of resources in a network |
US5963947A (en) | 1998-01-27 | 1999-10-05 | International Business Machines Corporation | Technique of dynamically adding functionality from a client to manipulated data at a server |
US6023586A (en) | 1998-02-10 | 2000-02-08 | Novell, Inc. | Integrity verifying and correcting software |
US6026414A (en) | 1998-03-05 | 2000-02-15 | International Business Machines Corporation | System including a proxy client to backup files in a distributed computing environment |
US6185602B1 (en) | 1998-06-29 | 2001-02-06 | Sony Corporation | Multi-user interaction of multimedia communication |
US6108346A (en) | 1998-08-27 | 2000-08-22 | Xiox Corporation | Combined synchronous and asynchronous message transmission |
US6282568B1 (en) | 1998-12-04 | 2001-08-28 | Sun Microsystems, Inc. | Platform independent distributed management system for manipulating managed objects in a network |
-
1998
- 1998-03-20 US US09/044,938 patent/US6487607B1/en not_active Expired - Lifetime
-
1999
- 1999-02-17 JP JP2000533810A patent/JP2002505466A/ja active Pending
- 1999-02-17 KR KR1020007009393A patent/KR20010041293A/ko not_active Application Discontinuation
- 1999-02-17 EP EP99908212A patent/EP1058881A2/en not_active Withdrawn
- 1999-02-17 CN CN99805490A patent/CN1298513A/zh active Pending
- 1999-02-17 AU AU27702/99A patent/AU2770299A/en not_active Abandoned
- 1999-02-17 WO PCT/US1999/003395 patent/WO1999044126A2/en not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004502339A (ja) * | 2000-06-26 | 2004-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 通信システム |
JP2004502337A (ja) * | 2000-06-26 | 2004-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 携帯装置を通してのデータ配送 |
JP2009508250A (ja) * | 2005-09-12 | 2009-02-26 | マイクロソフト コーポレーション | クライアントおよびサーバ間の型情報の保存 |
JP5163128B2 (ja) * | 2006-01-31 | 2013-03-13 | 富士通株式会社 | 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ |
JP2008225625A (ja) * | 2007-03-09 | 2008-09-25 | Nec Corp | 分散処理システム連携システム、分散処理システム連携方法および分散処理システム連携プログラム |
Also Published As
Publication number | Publication date |
---|---|
AU2770299A (en) | 1999-09-15 |
WO1999044126A3 (en) | 1999-10-21 |
US6487607B1 (en) | 2002-11-26 |
KR20010041293A (ko) | 2001-05-15 |
CN1298513A (zh) | 2001-06-06 |
EP1058881A2 (en) | 2000-12-13 |
WO1999044126A2 (en) | 1999-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002505466A (ja) | 遠隔メソッド呼出し方法及び装置 | |
US6393497B1 (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
US6272559B1 (en) | Deferred reconstruction of objects and remote loading for event notification in a distributed system | |
US6983285B2 (en) | Apparatus and method for dynamically verifying information in a distributed system | |
US6560656B1 (en) | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system | |
US6253256B1 (en) | Deferred reconstruction of objects and remote loading in a distributed system | |
US6134603A (en) | Method and system for deterministic hashes to identify remote methods | |
JP3853592B2 (ja) | 分散ウェブアプリケーションサーバ | |
US6636900B2 (en) | Method and apparatus for executing distributed objects over a network | |
US6629154B1 (en) | Method and system for deterministic hashes to identify remote methods | |
JP2002505553A (ja) | 多様性トークン・ベース・コントロール | |
US7089263B2 (en) | Apparatus and method for dynamically verifying information in a distributed system | |
EP1405185A2 (en) | Method and system for passing objects in a distributed system using serialization contexts | |
Gu et al. | JBSP: A BSP programming library in Java | |
EP1058880A1 (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 | |
EP1235149A2 (en) | Deferred reconstruction of objects and remote loading for event notification in a distributed system | |
Janson et al. | CORBA vs. DCOM | |
Pasquale | Travis Gregory Newhouse |