JP2002505471A - 遠隔処理の中断および継続の方法と装置 - Google Patents

遠隔処理の中断および継続の方法と装置

Info

Publication number
JP2002505471A
JP2002505471A JP2000533815A JP2000533815A JP2002505471A JP 2002505471 A JP2002505471 A JP 2002505471A JP 2000533815 A JP2000533815 A JP 2000533815A JP 2000533815 A JP2000533815 A JP 2000533815A JP 2002505471 A JP2002505471 A JP 2002505471A
Authority
JP
Japan
Prior art keywords
remote method
remote
resources
server system
processing
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
JP2000533815A
Other languages
English (en)
Inventor
ケネス シー アール シー アーノルド
アン エム ウォールラス
Original Assignee
サンマイクロシステムズ インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/044,917 external-priority patent/US6237024B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505471A publication Critical patent/JP2002505471A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】フ゛ロックされた遠隔メソット゛が、スレット゛および他の資源を、サーハ゛システム上の他のメソット゛に開放可能にする方法と装置を提供する。 【解決手段】分散コンヒ゜ューティンク゛環境では、遠隔メソット゛は、多数のネットワーク資源に割り当てられるが、他の処理からの書き込み動作等の動作が完了するのを待つ間はフ゛ロックされる。十分な遠隔メソット゛がフ゛ロックされると、スレット゛や他のネットワーク資源が枯渇することがある。サーハ゛サーヒ゛スを要求するクライアントシステムでは、応答時間の低下を感じることがある。この方法およびシステムは、遠隔メソット゛が、ステット゛等のネットワーク資源を開放し、そのメソット゛がフ゛ロックされている間に、他のメソット゛が使用する技術を提供する。遠隔メソット゛をフ゛ロックする条件がいったん解消すると、遠隔メソット゛は実行を継続する。この技術によって、高容量クライアントサーハ゛・トランサ゛クション・システムは、分散コンヒ゜ューティンク゛環境で、スレット゛および他の資源をより効率的に利用できるようになる。

Description

【発明の詳細な説明】
【0001】 (発明の背景) (産業上の利用分野) この発明は、一般に分散コンピューティング・システムに関するものであって
、特に遠隔処理の中断および継続の方法と装置に関する。
【0002】 (関連出願) 次に示した米国特許出願は、この出願の基となるものであって参考のためにこ
こに示す。 仮米国特許出願番号第60/076,048号、発明の名称「分散コンピュー
ティング・システム」、出願日1998年2月26日。 米国特許出願番号第09/044,923号、発明の名称「リース・ストレー
ジ用の方法とシステム」、代理人整理番号第06502.0011−01000
、出願日同じ。 米国特許出願番号第09/044,838号、発明の名称「分散システム内の
委譲認証をリースする方法、装置、および製品」、代理人整理番号第06502
.0011−02000、出願日同じ。 米国特許出願番号第09/044,834号、発明の名称「分散システム内の
集団の帰属関係をリースする方法、装置、および製品)、代理人整理番号第06
502.0011−03000、出願日同じ。 米国特許出願番号第09/044,916号、発明の名称「故障検出のリース
」、代理人整理番号第06502.0011−04000、出願日同じ。 米国特許出願番号第09/044,933号、発明の名称「イベントベース・
システム内の振舞いを転送する方法」、代理人整理番号第06502.0054
−00000、出願日同じ。 米国特許出願番号第09/044,919号、発明の名称「オブジェクトの据
置き再構成と分散システム内のイベント通知用遠隔ロード」、代理人整理番号第
06502.0062−01000、出願日同じ。 米国特許出願番号第09/044,938号、発明の名称「遠隔メソッド呼び
出し方法と装置」、代理人整理番号第06502.0102−00000、出願
日同じ。 米国特許出願番号第09/045,652号、発明の名称「遠隔メソッドを識
別する決定論的ハッシュ用の方法とシステム」、代理人整理番号第06502.
0103−00000、出願日同じ。 米国特許出願番号第09/044,790号、発明の名称「分散システム内の
遠隔オブジェクトの状態決定方法と装置」、代理人整理番号第06502.01
04−00000、出願日同じ。 米国特許出願番号第09/044,930号、発明の名称「分散システム内の
遠隔手続き呼び出しに関する処理を行うダウンロード可能なスマート・プロキシ
」、代理人整理番号第06502.0105−00000、出願日同じ。 米国特許出願番号第09/044,835号、発明の名称「データベース内に
適合するマルチエントリおよびマルチテンプレート用の方法とシステム」、代理
人整理番号第06502.0107−00000、出願日同じ。 米国特許出願番号第09/044,839号、発明の名称「データベース内の
インプレース修正用の方法とシステム」、代理人整理番号第06502.010
8、出願日同じ。 米国特許出願番号第09/044,945号、発明の名称「データベース内に
適合するタイプセーフ属性用の方法とシステム」、代理人整理番号第06502
.0109−00000、出願日同じ。 米国特許出願番号第09/044,931号、発明の名称「分散システム内の
動的検索サービス」、代理人整理番号第06502.0110−00000、出
願日同じ。 米国特許出願番号第09/044,939号、発明の名称「分散システム内の
機器とのやり取りに使用するダウンロード可能なコードを提供する装置と方法」
、代理人整理番号第06502.0112−00000、出願日同じ。 米国特許出願番号第09/044,826号、発明の名称「検索サービスへの
アクセスを容易にする方法とシステム」、代理人整理番号第06502.011
3−00000、出願日同じ。 米国特許出願番号第09/044,932号、発明の名称「分散システム内の
情報を動的に確認する装置と方法」、代理人整理番号第06502.0114−
00000、出願日同じ。 米国特許出願番号第09/030,840号、発明の名称「ネットワーク上の
動的分散コンピューティング用の方法と装置」、代理人整理番号第06502.
0115−00000、出願日同じ。 米国特許出願番号第09/044,936号、発明の名称「永続的共有メモリ
空間用の対話型設計ツール」、代理人整理番号第06502.0116−000
00、出願日同じ。 米国特許出願番号第09/044,934号、発明の名称「多相型トークンベ
ース制御」、代理人整理番号第06502.0117−00000、出願日同じ
。 米国特許出願番号第09/044,915号、発明の名称「スタックベース・
アクセス制御」、代理人整理番号第06502.0118−00000、出願日
同じ。 米国特許出願番号第09/044,944号、発明の名称「スタックベース・
セキュリティ要件」、代理人整理番号第06502.0119−00000、出
願日同じ。 米国特許出願番号第09/044,837号、発明の名称「セキュリティ要件
のメソッドごとの指定」、代理人整理番号第06502.0120−00000
、出願日同じ。
【0003】 (従来の技術) 一般的な分散コンピューティング・システムは、多くのサーバのサービスや演
算能力を、ネットワーク上の多くの異なるクライアントで利用可能にする。一般
に、クライアントマシンは、遠隔手続き呼び出し(RPC)システムを使って、
サーバマシン上の処理機能にアクセスする。RPCシステムは、遠隔マシン上の
要求を処理し、要求中のクライアントに所望の結果を返す。要求を転送し、結果
を返すために使われるネットワークとしては、構内通信網(LAN)、広域通信
網(WAN)などがあり、インターネットも含まれる。インターネット上の最新
の分散コンピューティング・アプリケーションは、このクライアントサーバ構成
を使って、世界中に、電子商取引(e−コマース)、在宅勤務、および対話型娯
楽サービスを提供する。
【0004】 分散コンピューティング・パラダイムの利用が広がり、人気が高まるにつれて
、クライアント・システムによる要求を実現するために、サーバシステム上の資
源を利用可能にすることがますます重要になっている。クライアントからの各要
求によって、サーバ処理は、一つまたは複数のスレッドを含む資源を指定し、そ
の要求を処理する。スレッド(軽量処理と呼ばれることもある)とは、別個のフ
ロー制御を有する処理内の別個の連続する命令のことである。スレッドは、必要
に応じてシステムから資源を分割し、特定の要求を実現しなければならない。メ
モリやデータ等の資源が利用可能であれば、複数のスレッドを並列に実行し、複
数のタスクを実現することができる。
【0005】 スレッド・スケジューラは、スレッドを発生させる処理で使用され、スレッド
の優先度、実行状態(停止中、有効、無効、実行中など)、および様々なスレッ
ド間の依存関係に基づいて、スレッドの並列実行を調整できる。シングル・プロ
セッサ・システム上のスレッド・スケジューラは、その演算処理装置の演算能力
を、多くのスレッド間で分配し、そのスレッドを実際に並列に実行しているよう
に錯覚させる。使用可能なスケジューリング技術には、先着順サービス、最短ス
レッド優先、優先順位によるスケジューリング、および総当たり制等の横取りス
ケジューリング技術を含む多くの異なる技術がある。特別な実装の場合、必要に
応じてこれらの技術を組み合わせた複合スケジューリング技術を使用することも
できる。マルチプロセッサ・システム上では、スケジューラは、異なるスレッド
を異なる演算処理装置に対応させ、スレッドを並列に実行し、追加された演算能
力を利用する。
【0006】 残念ながら、これらの資源をすぐに利用できない場合、そのスレッドは実行を
継続できず、以降の処理はブロックされる。これらの実行をブロックされたスレ
ッドは、メモリやデータ、およびそのスレッド自体に関する制御構造等のサーバ
資源を開放しない。結果的に、サーバは、次のクライアントの要求を割り当てる
ために、スレッドを停止するかもしれない。次のクライアントの要求が拒絶され
ると、そのサーバは、分散コンピューティング環境から事実上切り離される。こ
のブロッキング・シナリオは、次の呼び出しへのサービスを拒絶するオーバヘッ
ドによって、既存の要求にサービスするサーバ性能も低下させる。
【0007】 現在の分散コンピューティング・システムは、スレッドの割り当てに関するこ
の問題に対処するようには設計されていない。これらのシステムは、資源または
特定のイベントを待って、遠隔サーバ処理がブロックされても、スレッドや関連
する資源を開放しない。その結果、トランザクションが集中する分散コンピュー
ティング環境は、上記のブロッキング・シナリオに苦しむことになる。例えば、
サーバ処理が、複数の要求を受け取り、インターネット上の複数のクライアント
からファイルをダウンロードすると仮定する。このサーバ処理は、サーバのオペ
レーティング・システムから複数のスレッドを受け取り、その要求を並列に処理
するが、要求されたファイルは、別の処理によってロックされ利用不可能になる
。既存のシステムは、各スレッド上の以降の処理をブロックし、ファイルのロッ
クが解除されるのを待つ。他の処理が、そのスレッドの資源を利用して、他のタ
スクを処理できるとしても、サーバ上のスレッドは待機したままである。サーバ
システム上のスレッドの数が激減すると、サーバ処理が、別のクライアントへの
サービスを拒絶する。結局、サーバシステムでは一般的なタスク処理が困難にな
る。
【0008】 多くの分散コンピューティング・システム上で、スレッドおよび他の資源を割
り当てられなくなると、処理のスループット全体にマイナスの影響を与える。ス
レッドおよび他の資源が、サーバシステム上で効率的に割り当てられなければ、
分散コンピューティング・ネットワーク上で利用可能な帯域幅が高速であっても
役に立たない。
【0009】 既存のシステムで見出された上記の限界に基づいて、分散コンピューティング
環境で使われるスレッドおよび他の資源の割り当てを改善することが望まれる。
【0010】 (発明の概要) 本発明によれば、ここに具現化し広く説明しているように、遠隔メソッドが、
処理を中断し、資源をサーバシステムに開放可能にする方法と装置は、クライア
ント・システム上の遠隔メソッド呼び出しから要求を受け取る。遠隔メソッドは
、サーバシステムからシステム資源に割り当てられ、呼び出される。システムレ
ベルの資源の種類の一つとして、スレッドがある。この方法では、遠隔メソッド
を処理するために要求される一般資源が、現時点で利用不可能かどうかを確認す
る。一般資源とは、メモリ、ディスク記憶空間、データ、またはシステム資源が
依存できる他の資源である。遠隔メソッドは、以降の処理から中断され、システ
ム資源は、遠隔メソッドが利用できない一般資源に依存するとき、サーバシステ
ムに開放される。
【0011】 本発明の別の方法では、既に中断されている遠隔メソッドが、サーバシステム
上で処理を継続し、クライアント・アプリケーションへの結果を生成できる。こ
の方法では、中断された遠隔メソッドに関する継続イベントが発生したという指
示を受け取る。システム資源と一般資源は、遠隔メソッドの処理の継続に備えて
、遠隔メソッドに割り当てられる。この遠隔メソッドは、割り当てられた資源を
組み合わせて、実行を継続し、結果を生成する。これらの結果は、遠隔メソッド
呼び出し(RMI)等の遠隔手続き呼び出し(RPC)システムを使って、サー
バシステムからクライアント・システム上のクライアント・アプリケーションに
送られる。
【0012】 (詳細な説明) (緒言) 添付の図面に示されているように、この発明の実施形態について詳しく説明す
る。同一または同様の要素を参照する場合、図面と以降の説明全体で可能な限り
同一の参照番号を使用する。
【0013】 この発明に従って設計されるシステムでは、コンピュータ・システムが、クラ
イアントまたはサーバ機能のどちらか一方を提供できると仮定する。各コンピュ
ータがクライアントサーバ・システム内で想定している役割は、クライアントと
サーバの間で行われる特定の呼び出しに依存する。例えば、クライアント処理は
一般に、リモートマシン上にあるサーバ処理によって生成されたサービスを要求
する。逆に、サーバ処理は、クライアントの要求を受け取り、サービスを行うマ
シン上にある。従って、同じコンピュータ・システムが、サービスを要求すると
きはクライアントとして機能し、サービスに対する要求を実現するときはサーバ
として機能する。
【0014】 この発明のシステムは、従来の技術の欠点に対処し、遠隔処理を中断および継
続する方法と装置を提供する。従来、遠隔手続き呼び出し(RPC)システムで
は、イベントの発生や資源の開放を待つために、遠隔処理がブロックされている
間は、その遠隔処理は資源を開放することができなかった。この技術では、クラ
イアント処理とサーバ処理の間の接続を保持していたが、スレッド、メモリ、お
よび二次記憶装置は待機させたままであった。一方、この発明に従って設計され
たシステムでは、次の処理からブロックされている遠隔サーバ処理は、クライア
ントとサーバシステムの間の接続が中断していなくても、スレッドおよび他の資
源を開放できる。この新規の技術によって、遠隔処理がブロックされていても、
他の処理がサーバ資源を利用できる。特に、このことによって遠隔サーバ処理は
、クライアントのシステムへのアクセスを拒絶しないようになる。従って、この
発明の実施することにより、スレッドおよび他の資源をより効率的に使って、分
散コンピューティング・システムの実質的なスループットが向上する。
【0015】 さらに、この発明のシステムには、既存のクライアントサーバ・システム上の
クライアントとも互換性があるという利点もある。このことは、インターネット
等の異質のネットワークからなるコンピューティング環境で特に重要である。サ
ーバを修正して資源を効率的に割り当てたり、割り当てを解除したりするので、
この発明は、クライアント・システムの設計や動作には影響を与えない。従って
、この設計のシステムと共に機能させるために、クライアントを修正する必要は
ない。
【0016】 (分散システムの概要) この発明の方法とシステムは、ハードウェアとソフトウェアの両方を含む様々
な構成要素と共に、分散システム(「典型的な分散システム」)内で動作する。
典型的な分散システムによって、(1)そのシステムの利用者は、あるネットワ
ークの多くの機器上でサービスや資源を共有でき、(2)プログラマに、堅牢で
安全な分散システムを開発可能なツールやプログラミング様式を提供し、(3)
分散システムを管理するタスクを簡略化する。これらの目的を実現するために、
典型的な分散システムでは、Java(登録商標)プログラミング環境を利用し
て、コードとデータの両方が、機器から機器に継ぎ目なく移動可能にする。従っ
て、典型的な分散システムは、Javaプログラミング環境の上に階層化され、
それによって提供されるセキュリティや強い型付けを含むこの環境の特徴を利用
する。Javaプログラミング環境は、JaworskiのJava1.1 D
eveloper’s Guide,Sams.net(1997)でより明確
に説明されており、参考のためここに示す。
【0017】 典型的な分散システムにおいて、異なるコンピュータと機器は、利用者からは
単一システムと見えるものに統合される。単一システムと見えることによって、
典型的な分散システムは、パーソナル・コンピュータまたはワークステーション
の柔軟性や個別の応答を放棄することなく、単一システムだけが提供可能なアク
セスの簡略化と共有能力を提供する。典型的な分散システムは、地理的には分散
しているが、信頼性、管理、および方針についての基本的な概念に合意している
利用者が操作している数千の機器を含むことができる。
【0018】 典型的な分散システム内には、一つまたは複数の機器によって提供されるサー
ビスの様々な論理グループがあり、このような論理グループは各々、Djinn
として知られている。ある「サービス」は、ある資源、データ、または機能を参
照し、それらは、利用者、プログラム、機器、または他のサービスによってアク
セス可能であって、計算、記憶、通信、または別の利用者へのアクセスに関連付
けることができる。Djinnの一部として提供されるサービスの例としては、
プリンタ、ディスプレイ、およびディスク等の機器、アプリケーションやユーテ
ィリティ等のソフトウェア、データベースやファイル等の情報、およびシステム
利用者がある。
【0019】 利用者と機器の両方が、Djinnに参加できる。Djinnに参加すると、
利用者または機器は、ゼロ以上のサービスをDjinnに追加し、セキュリティ
上の制約の対象となり、含まれるサービスのいずれか一つにアクセスできる。こ
のように、機器と利用者はDjinn内に統合され、そのサービスへのアクセス
を共有する。Djinnのサービスは、プログラム的には、Javaプログラミ
ング環境のオブジェクトとして現れ、他のオブジェクト、異なるプログラミング
言語で書かれたソフトウェア構成要素、またはハードウェア機器を含むことがで
きる。あるサービスは、そのサービスで要求可能な動作を定義するインタフェー
スを有し、そのサービスの種類が、そのサービスを構成するインタフェースを決
定する。
【0020】 図1は、ネットワーク108で相互接続したコンピュータ102、コンピュー
タ104、および機器106を有する典型的な分散システム100を示している
。機器106は、プリンタ、ファックス、記憶装置、コンピュータ、または他の
機器等、複数の機器のいずれであってもよい。ネットワーク108は、構内通信
網、広域通信網、またはインターネットなどである。二つのコンピュータと一つ
の機器が、典型的な分散システム100を構成するように示されているが、当業
者には明らかなように、典型的な分散システム100は、さらに多くのコンピュ
ータまたは機器を有してもよい。
【0021】 図2は、典型的な分散システム100の複数のソフトウェア構成要素を示すた
めに、コンピュータ102をさらに詳しく示している。当業者には明らかなよう
に、コンピュータ104または機器106は同様の構成であってもよい。コンピ
ュータ102は、メモリ202、二次記憶装置204、中央演算処理装置(CP
U)206、入力装置208、および映像表示装置210を有する。メモリ20
2は、検索サービス212、発見サーバ214、およびJava(登録商標)ラ
ンタイム・システム216を有する。Javaランタイム・システム216は、
Java(登録商標)遠隔メソッド呼び出しシステム(RMI)218とJav
a(登録商標)仮想計算機220を有する。二次記憶装置204は、Java(
登録商標)空間222を有する。
【0022】 上記のように、典型的な分散システム100は、Javaプログラミング環境
に基づいて、Javaランタイム・システム216を利用する。Javaランタ
イム・システム216は、Java(登録商標)APIを有し、Javaランタ
イム・システム上で実行するプログラムは、ホストのオペレーティング・システ
ムのウィンドウ機能やネットワーキング機能を含む様々な機能に、プラットフォ
ームに独立な方法でアクセスできる。Java APIは、Javaランタイム
・システム216を移植した全てのオペレーティング・システムに、単一の共通
APIを提供するので、Javaランタイム・システム上で実行するプログラム
は、ホストのプラットフォームのオペレーティング・システムやハードウェア構
成によらず、プラットフォームに独立な方法で実行される。Javaランタイム
・システム216は、カリフォルニア州、マウンテンビューのサンマイクロシス
テムズから入手可能なJava(登録商標)ソフトウェア開発キットの一部とし
て提供されている。
【0023】 Java仮想計算機220もまた、プラットフォームからの独立性を促進する
。Java仮想計算機220は、抽象的な計算機のように機能し、バイトコード
の形式で、プログラムから命令を受け取り、オブジェクトコード等の実行形式に
、それらを動的に変換することによって、これらのバイトコードを翻訳し実行す
る。RMI218は、一つのコンピュータまたは機器上で実行するオブジェクト
が、別のコンピュータまたは機器上のオブジェクトのメソッドを呼び出せるよう
にすることで、遠隔メソッド呼び出しを容易にする。RMIとJava仮想計算
機は両方とも、Javaソフトウェア開発キットの一部として提供されている。
【0024】 検索サービス212は、特定のDjinnで利用可能なサービスを定義する。
つまり、複数のDjinnを有することができ、典型的な分散システム100内
には複数の検索サービスがあってもよい。検索サービス212は、Djinn内
の各サービスについて一つのオブジェクトを有し、各オブジェクトは、対応する
サービスへのアクセスを容易にする様々なメソッドを有する。検索サービス21
2とそのアクセスは、同時係属米国特許出願番号第09/044,826号、発
明の名称「検索サービスへのアクセスを容易にする方法とシステム」で詳しく説
明されているが、この特許は参考として既に示されているものである。
【0025】 発見サーバ214は、ブートや結合または発見として知られる処理中、新しい
機器が典型的な分散システム100に追加された時点を検出し、そのような新し
い機器が検出されると、発見サーバは、新しい機器が検索サービスを使って、そ
のサービスを記録しDjinnの一員になるように、検索サービス212への問
い合わせを新しい機器に送る。記録後、新しい機器はDjinnの一員になり、
結果として、検索サービス212に格納されているサービス全てにアクセスでき
る。ブートや結合の処理は、同時係属米国特許出願番号第09/044,939
号、発明の名称「分散システム内の機器とのやり取りに使用するダウンロード可
能なコードを提供する装置と方法」で詳しく説明されており、この特許は参考と
して既に示されているものである。
【0026】 Java空間222は、オブジェクトを格納するために、典型的な分散システ
ム100内のプログラムが使用するオブジェクト・リポジトリである。プログラ
ムは、Java空間222を使って継続的にオブジェクトを格納し、同時にそれ
らが、典型的な分散システム内の他の機器にアクセスできるようにする。Jav
a空間は、同時係属米国特許出願番号第08/971,529号、発明の名称「
多相型エントリとエントリ・マッチングを用いるデータベース・システム」、共
通譲受人に譲渡、出願日1997年11月17日、この特許は参考のためここに
示す。当業者には明らかなように、典型的な分散システム100は、複数の検索
サービス、発見サーバ、およびJava空間を有することができる。
【0027】 この発明のシステムと方法は、典型的な分散システムとJavaプログラミン
グ環境で動作するものとして説明されているが、当業者には明らかなように、こ
の発明は他のシステムと他のプログラミング環境で実現することもできる。さら
に、この発明の形態はメモリ内に格納されるものとして説明されているが、当業
者には明らかなように、これらの形態はハードディスク、フロッピ・ディスク、
またはCD−ROMのような二次記憶装置、インターネットからの搬送波、また
は他の形式のRAMやROMなど、他の種類のコンピュータ可読媒体に格納、ま
たは読み込むこともできる。Sun、Sun Microsystems、Su
nLogo、Java、およびJavaに基づく商標は、米国および他の国々に
おけるサンマイクロシステムズ インコーポレーテッドの商標または登録商標で
ある。
【0028】 (典型的なクライアントサーバ・システム) 図3は、この発明の典型的なクライアントサーバ・システムと典型的な分散シ
ステム100を示している。従って、クライアントサーバ・システム300は、
クライアント・コンピュータ302(クライアント302とも呼ぶ)、サーバコ
ンピュータ312(サーバ312とも呼ぶ)、およびクライアント302とサー
バ312の間を接続するネットワーク310からなる。この特別なクライアント
サーバ・システムは、Java(登録商標)オブジェクト指向言語を使って、R
MI218への機能強化として実装される。しかし、当業者には明らかなように
、この発明の同様のシステムは、一般的な遠隔手続き呼び出し(RPC)システ
ムと、他のオブジェクト指向および非オブジェクト指向言語を使って実装するこ
ともできる。
【0029】 クライアント302は、遠隔メソッド呼び出し306、リモート・スタブ30
8、および遠隔メソッド・ランタイム309を備えたクライアント・アプリケー
ション304を有する。クライアント・アプリケーション304は、一般に利用
者が開発したソフトウェアであって、サーバ312上の処理を呼び出すための遠
隔メソッド呼び出し306を有する。例えば、クライアント・アプリケーション
304は、Java(登録商標)プログラミング言語で書かれたJava(登録
商標)アプリケーションである。遠隔メソッド呼び出し306は、RMI等のR
PC機構を使って実装される。
【0030】 遠隔メソッド・スタブ308は、遠隔メソッド呼び出し306によって提供さ
れたデータとパラメータを整列させる。そのデータとパラメータは、サーバ31
2上の遠隔メソッド・スケルトン315が復号化可能な所定の形式に配置される
。遠隔メソッド・ランタイム309は、それらがサーバ312で処理されるとき
、遠隔メソッド呼び出し306に関連する処理の状態を追跡する。また、遠隔メ
ソッド・ランタイム309は、クライアント・アプリケーション304とサーバ
312の間の通信リンクが接続されているかどうかを確認する。遠隔メソッド・
ランタイム309は、そのリンクの状態をサーバ312に問い合わせることもで
きる。適切な時間内に応答がなければ、あるいはサーバ312がそのリンクのダ
ウンを示せば、遠隔メソッド・ランタイム309は、クライアント・アプリケー
ション304に遠隔メソッド呼び出しが終了していることを知らせる。
【0031】 ネットワーク310は、クライアント302とサーバ312の間の通信リンク
を提供する。ネットワーク310は、インターネットまたは企業や学内のイント
ラネットであってもよい。ネットワーク310は、TCP/IP、またはNov
ell Netware、Apple Talk、X.25等の他のネットワー
ク・プロトコルを使用することができ、RMI等のRPCシステムをサポート可
能な他のネットワークであってもよい。
【0032】 サーバ312は、対応する遠隔メソッド・ランタイム314と、遠隔メソッド
・スケルトン315を有する。クライアント302とは異なり、サーバ312は
、一般資源管理部316とイベント処理部317、遠隔メソッド資源管理部32
2、遠隔イベント処理部323、および多数の遠隔メソッド資源324も有して
いる。また、サーバ312は、遠隔オブジェクトA318と遠隔オブジェクトB
320を有している。各遠隔オブジェクトは、クライアント・アプリケーション
304が、遠隔メソッド呼び出し306を使って呼び出せる複数のメソッド(図
示せず)に関連付けられる。サーバ312の別の構成では、特定のシステムに必
要な遠隔メソッドを行うための遠隔メソッドをいくつでも有することができる。
【0033】 遠隔メソッド・ランタイム314には、遠隔メソッドが実行状態であることを
クライアント302に知らせる責任がある。遠隔メソッド・ランタイム314は
、クライアント302に情報を提供し、遠隔メソッドがデータを処理しているこ
とを知らせる。この発明によると、遠隔メソッドが中断されても、この処理状態
は中断されない。ただし、遠隔メソッド・ランタイム314は、遠隔メソッドが
要求されたタスクの処理を完了するまで、クライアント302との接続を保持す
る。また、遠隔メソッド・ランタイム314は、遠隔メソッドが異常終了したり
、エラーで終了したときにもクライアント302に知らせる。
【0034】 このメソッドは、遠隔メソッドの処理に必要な一般資源が、現時点で利用でき
ないかどうかを確認する。一般資源としては、メモリ、ディスク記憶空間、デー
タ、またはシステム資源が依存可能な他の資源などがある。
【0035】 遠隔メソッド・スケルトン315には、ネットワーク310上に送られるデー
タとパラメータを復号化する責任がある。このパラメータとデータは、サーバ3
12上で遠隔メソッドを実行するための引数として使われる。
【0036】 一般資源管理部316とイベント処理部317は、個別処理で使われる資源と
、サーバ312上で実行されるメソッドを管理する。サーバ312上で実行され
る個別メソッドは、一般資源管理部316とイベント処理部317を見て、一般
資源の割り当てとその解除を調整する。これらの一般資源には、メモリ等の主記
憶装置、またはディスクやテープドライブ等の二次記憶装置がある。下記に説明
するシステム資源とは異なり、一般資源は遠隔メソッドの要求を実現するために
は通常使われない。イベント処理部317は、個別処理に関連するイベント検出
し、従ってイベント処理部317の詳細は、この明細書には含まれない。基本的
に、一般資源管理部316とイベント処理部317は、クライアント302等の
クライアントから遠隔的に呼び出された処理とメソッドに関する資源の管理に専
念する。
【0037】 一方、遠隔メソッド資源管理部322と遠隔イベント処理部323には、遠隔
メソッドに必要な遠隔メソッド資源324の割り当てとその解除を行う責任があ
る。遠隔メソッド資源324によって、メソッドがネットワークワーキング等の
システムレベルの資源を利用できるようになるので、遠隔メソッド資源324は
システム資源と考えることができる。多くの場合、システム資源は上記の一般資
源に依存している。
【0038】 遠隔メソッド資源管理部322は、遠隔オブジェクト318、遠隔オブジェク
ト320、および他のオブジェクト(図示せず)に関する遠隔メソッドの間で、
遠隔メソッド資源324を転送する。遠隔イベント処理部323は、遠隔メソッ
ドが特定のタスクを処理するために必要な資源が開放された時点を検出する。こ
れらの遠隔メソッド資源の転送は、下記に説明するように、この発明の実施形態
を利用することによって容易になる。
【0039】 (遠隔メソッドの中断と継続) 中断メソッドは、遠隔メソッドがブロックされそうになると呼び出される。こ
れは、資源が利用可能になるのを待つために、遠隔メソッドがブロックされる直
前に一般に発生する。中断メソッドは、その遠隔メソッドに中断されているとい
う目印を付け、遠隔メソッド管理部は、スレッドおよび他の資源をサーバシステ
ムに返す。資源が利用可能になると、遠隔メソッド管理部と継続メソッドが同時
に機能して、スレッドや他の遠隔メソッド資源を、中断された遠隔メソッドに割
り当てる。最後に、遠隔メソッド・ランタイムが、中断された遠隔メソッドを呼
び出して処理を継続する。例えば、書き込み動作を待っている遠隔メソッドがブ
ロック状態の準備に入り、中断動作を呼び出すことによって、スレッドおよび他
の資源を開放する。中断動作は、その遠隔メソッドに中断されているという目印
を付け、遠隔メソッド資源管理部が、サーバシステムに関するスレッドプールに
スレッドを返す。いったん書き込み動作が発生すると、継続メソッドは、中断さ
れた遠隔メソッドに実行可能であるという目印を付け、遠隔メソッド資源管理部
は、中断された元の遠隔メソッドに、スレッドおよび他の資源を割り当てる。遠
隔メソッド・ランタイムは、既に中断されている遠隔メソッドを呼び出し、その
遠隔メソッドをデータ読み込み可能にする。
【0040】 図4は、遠隔メソッドの処理を中断および継続するために使われる基本的なソ
フトウェア・サブシステムを示すブロック図である。これらのソフトウェア・サ
ブシステムは、遠隔メソッド資源324、遠隔メソッド資源管理部322、およ
び典型的な遠隔オブジェクトA318を有し、遠隔オブジェクトA318は、遠
隔メソッド416と実行状態418を有する。
【0041】 図4の遠隔メソッド資源324は、使用中のスレッド404、利用可能なスレ
ッド406、およびRPC状態408を備えたスレッドプール402を有する。
使用中のスレッド404は、遠隔メソッドが現在使用中のスレッドの参照構造を
有し、利用可能なスレッド406は、遠隔メソッドが現在利用可能なスレッドを
有する。RPC状態408は、遠隔メソッド資源324内に保持され、遠隔メソ
ッドが中断されると、RMI等のRPCシステムが使う情報を格納する。この情
報には、RPCシステムが、中断された遠隔メソッドの処理を継続し、結果をク
ライアントに返すための情報が含まれる。別の実施例では、遠隔メソッド資源3
24は、スレッド以外の他の資源を有することもできる。これらの他のネットワ
ーク資源には、主記憶装置、二次記憶装置、および遠隔メソッドの処理と共に使
われる他のいずれの資源も含まれる。
【0042】 遠隔メソッド資源管理部322は、中断メソッド410、継続メソッド412
、および状態格納部414を有する。中断メソッド410は、遠隔メソッド41
6から実行状態418を、遠隔メソッド資源324からRPC状態408を得る
。この状態情報は、遠隔メソッド416が中断される前に、状態格納部414に
格納される。一般に、中断メソッド410は、遠隔メソッド416がブロックさ
れそうであって、スレッドおよび他の資源を有していることを示していれば、遠
隔メソッド416に中断されているという目印を付ける。結果的に、遠隔メソッ
ド資源管理部322は、スレッドおよび他の資源をサーバ312に返し、遠隔メ
ソッド416は、以降の処理から中断される。例えば、遠隔メソッド416が、
一時的に空になる待ち行列からデータを読み込もうとしていると仮定する。待ち
行列が空であることを遠隔メソッド416が検出すると、遠隔メソッド416は
、中断メソッド410を呼び出して中断処理を開始する。
【0043】 継続メソッド412は、中断メソッド410と対の片方である。継続メソッド
412は、資源が利用可能であるが、または特定のイベントが発生したときに一
般に呼び出される。例えば、データを特定の待ち行列に書き込むと、継続メソッ
ド412を呼び出せる継続イベントが発生する。継続メソッド412は、中断さ
れた遠隔メソッドを資源上で待たせて、それに実行可能という目印を付ける。最
終的に、遠隔メソッド資源管理部322は、既に中断されている遠隔メソッドに
、スレッドおよび他の資源を割り当てる。状態格納部414に格納されている実
行状態418とRPC状態408を使うと、遠隔メソッド416が、中断される
前の適切な時点で処理を継続するということが確実になる。
【0044】 動作中、中断および継続メソッドは、サーバシステム312上のスレッドおよ
び他の資源を管理するために合わせて使われる。図5は、この発明の方法とシス
テムに従って、遠隔呼び出しの中断および継続を行う手順を示すフローチャート
である。
【0045】 まず、サーバ312は、クライアント302上の遠隔メソッド呼び出し306
から要求を受け取り、遠隔メソッド416を処理する。次に、遠隔メソッド・ス
ケルトン315は、その要求内に転送されたデータとパラメータを復号化する(
手順506)。データとパラメータは、遠隔メソッド・スケルトン315によっ
て復号化された後、遠隔メソッド416に送られる。
【0046】 サーバ312上の遠隔メソッド・ランタイム314は、サーバ312が、遠隔
メソッド416を呼ぶ出す要求を受け取り、その要求を処理していることを、ク
ライアント302上の遠隔メソッド・ランタイム309に知らせる(手順507
)。クライアント・アプリケーション304は、遠隔メソッド416が中断され
、スレッドおよび他の資源が開放されても、サーバ312が要求の処理中である
ことを示す受け取りを継続する。
【0047】 遠隔メソッド資源管理部322は、呼び出されそうな遠隔メソッド416に、
スレッドおよび他の資源を割り当てる(手順508)。遠隔メソッド416に割
り当てられたスレッドは、スレッドプール402内の利用可能なスレッド406
から選ばれる。複数のスレッドを使って、複数の遠隔メソッドまたはタスクを並
列に処理することもできる。スレッドおよび他の資源が利用可能であれば、遠隔
メソッド・ランタイム314は、クライアント・アプリケーション304の代わ
りに、遠隔メソッド416を呼び出す(手順510)。遠隔メソッド資源管理部
が、スレッドまたは他の資源を遠隔メソッド416に割り当てることができなけ
れば、それは、別の処理からスレッドまたは他の資源を開放することを保留する
実行待ち行列に配置される。
【0048】 遠隔メソッド416は、中断条件が存在するかどうかを確認する命令を有する
(手順512)。これらの命令は、継続条件が存在する時点を確認する情報も有
する。中断条件は、遠隔メソッド416が、利用不可能な資源、またはまだ発生
していないイベントに依存しているときに発生する。一方、継続イベントは、資
源が利用可能であるか、またはイベントが発生したときに発生する。中断条件の
例として、遠隔メソッド416が、データポイントをサンプリングしていて、各
サンプリングの間で長時間中断すると仮定する。この長い中断時間に、遠隔メソ
ッド416は、タイマーイベントを待ってブロックし、次の期間の終わりを示す
かもしれない。
【0049】 中断条件が検出されると、遠隔メソッド416は資源を開放し、遠隔イベント
処理部323を使って継続命令を記録し、所定の資源およびイベントを監視する
(手順516)。次に、遠隔メソッド416は、以降の処理から中断され、処理
を継続するために特定の継続イベント待つ(手順518)。
【0050】 継続イベントが発生すると、資源が遠隔メソッドに割り当てられ、遠隔メソッ
ドが処理を再開する(手順520)。継続イベントは、資源が利用可能になった
ときか、または中断された遠隔メソッドが以降の処理で依存するイベントが発生
したときに生成されるイベントである。遠隔イベント処理部323は、中断され
た遠隔メソッド416によって記録された継続命令を処理する。この遠隔メソッ
ドはタスクを完了し、結果をクライアント・アプリケーション304(手順51
4)に返す。当然のことながら、タスクを完了し、結果をクライアントに返す前
に、遠隔メソッドは何度も中断および継続できる。
【0051】 (遠隔メソッドの中断) 図6は、この発明の方法とシステムに従って、遠隔呼び出しを中断するために
行われる手順のフローチャートである。まず、中断イベントが発生したことを、
遠隔メソッド416が検出し、スレッドおよび他の資源の開放を決定する(手順
602)。遠隔メソッドは、中断メソッド410によって中断されたという目印
を付けられる。中断される前に、遠隔メソッド416は、遠隔メソッド資源管理
部322に実行状態418とRPC状態408を提供し、スレッドおよび他の資
源を開放する(手順604)。遠隔メソッド資源管理部322は、利用可能なス
レッド406にこれらのスレッドを戻す。また、遠隔メソッド416は、スレッ
ドまたは資源を開放することなく処理を中断するように選択できる。
【0052】 実行状態418は、中断された時点で遠隔メソッド416に関する状態情報を
記録するが、この記録には、局所変数、プログラム・カウンタ、および他の遠隔
メソッド416に関するいずれの情報も含まれる。上記のように、RPC状態4
08は、遠隔メソッド416が中断されたとき、RMI等のRPCシステムに関
する状態情報を記録する。RPC状態408によって、RPCシステムはクライ
アントとやり取りし、遠隔メソッド416の実行が継続されたとき結果を返すこ
とができる。
【0053】 次に、遠隔メソッド資源管理部322は、RPC状態408と実行状態418
を格納する(手順608)。遠隔メソッド資源管理部322は、この状態情報を
格納し、中断された遠隔メソッドの処理を将来のいずれかの時点で継続する。ま
た、遠隔メソッド416は、所定の資源とイベントを監視する遠隔イベント処理
部323を使って継続命令を記録する。一般に、継続命令は、データを前処理し
、中断された適切な処理に接触するために使われる。最後に、遠隔メソッド41
6は、以降の処理からブロックされ継続イベントの発生を待つ(手順610)。
【0054】 (遠隔メソッドの継続) 図7は、この発明の方法とシステムにおいて、遠隔メソッド41等の既に中断
されている遠隔メソッドを継続するために行われる手順のフローチャートである
。一般に、この処理の各手順は、特定の条件が満たされると非同期的に発生する
【0055】 まず、遠隔イベント処理部323は、特定の継続イベントが発生したという指
示を受け取る。遠隔イベント処理部323は、その継続イベントを特定の遠隔メ
ソッドに関連付け(手順702)、対応する継続命令を呼び出す。この継続イベ
ントは、資源が利用可能であるか、または中断された遠隔メソッドが以降の処理
で依存するイベントが発生したときに生成されるイベントである。例えば、継続
イベントは、中断された遠隔メソッドが読み込みを待っていたという情報が、待
ち行列に書き込まれたときに発生する。
【0056】 継続命令は、継続メソッド412を呼び出し、中断された遠隔メソッドに実行
可能な処理という目印を付ける。結局、遠隔メソッド資源管理部322は、中断
されたメソッド416の状態を発見し、その遠隔メソッドが現在実行可能で、処
理を継続できるということを知らせる(手順704)。手順704は一般に、遠
隔メソッド資源管理部が、中断された処理上の状態をチェックするときに発生し
、遠隔処理の状態が、実行可能に変更されるときには必ずしも発生しない非同期
処理である。遠隔メソッド資源管理部322は、スレッド等の資源を遠隔メソッ
ド416に割り当てる(手順706)。
【0057】 遠隔メソッド・ランタイム314は、状態格納部414から実行状態418と
RPC状態408をロードする。実行状態418は、遠隔メソッド416に、中
断される前の放出時点で処理を継続するように準備させる(手順708)。これ
をソフトウェア内に実装するために、遠隔メソッド416は、相互に関連付けた
複数のコード片とすることができ、各コードは、前のコード領域が中断される前
に止まった場所で始まる。また、遠隔メソッド416は、単一コード領域として
実装することができ、実行は、そのコード領域の異なる場所で始まる。上記のよ
うに、RPC状態408によって、RMI218等のRPCシステムは処理を継
続し、適切な遠隔メソッド呼び出し306に結果を返すことができる。
【0058】 遠隔メソッド・ランタイム314によって、遠隔メソッド416は実行を継続
できる。次に、遠隔メソッド416は、指定されたスレッドおよび他の資源を使
って、サーバ上の処理を継続する(手順710)。最後に、遠隔メソッド416
によって結果が生成され、遠隔メソッド・スケルトン315に送って、符号化し
パッケージ化する(手順712)。これらの符号化した結果は、ネットワーク3
10上を遠隔メソッド・スタブ308に送られ、そこで復号化され、遠隔メソッ
ド呼び出し306に送られる(手順714)。
【0059】 ここでは、説明のために具体的な実施例について述べてきたが、この発明の精
神と範囲から逸脱することなく、様々な変形を施すことができる。従って、この
発明の技術的範囲は、上記の実施例に限定されることなく、全ての範囲の直接的
且つ一義的に導かれるものを考慮して、特許請求の範囲により定まる。
【図面の簡単な説明】
添付の図面は、この明細書に組み込まれ一部を構成するものであり、この発明
の実施例を説明し、その説明と共にこの発明の利点と原理を説明する。
【図1】 この発明の方法とシステムでの使用に適したネットワークを示す図である。
【図2】 この発明の方法とシステムでの使用に適したコンピュータ・システムのブロッ
ク図である。
【図3】 この発明の方法とシステムでの使用に適したクライアントサーバ・ネットワー
キング環境のブロック図である。
【図4】 この発明の方法とシステムに従って、遠隔メソッド呼び出し処理を中断および
継続するために使われるサブシステムのブロック図である。
【図5】 この発明の方法とシステムに従って、遠隔メソッド呼び出しを中断および継続
するために行われる手順のフローチャートである。
【図6】 この発明の方法とシステムに従って、遠隔メソッド呼び出しを中断するために
行われる手順のフローチャートである。
【図7】 この発明の方法とシステムに従って、遠隔メソッド呼び出しを継続するために
行われる手順のフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (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)発明者 ウォールラス アン エム アメリカ合衆国、01450 マサチューセッ ツ州、グロトン、ノースウッズ ロード 9 Fターム(参考) 5B045 EE01 EE11 GG06 5B098 AA10 GA05 GC01 GC16 GD14 GD22

Claims (39)

    【特許請求の範囲】
  1. 【請求項1】 複数の資源を備えたサーバシステム上で行われ、ネットワー
    ク上のクライアント・システムに動作可能なように接続し、遠隔メソッドが、処
    理を中断し、対応する資源をサーバシステムに開放可能にする方法であって、 遠隔手続き呼び出し(RPC)システムを使って転送された遠隔メソッド呼び
    出しによって、クライアントから要求を受け取りさらに、 サーバシステムが、遠隔メソッドを呼び出すための要求を受け取ったことを、
    クライアント・システムに知らせ、 その遠隔メソッドに資源を割り当て、 その遠隔メソッドを呼び出し、 その遠隔メソッドが、利用不可能ないずれかの資源、またはまだ発生していな
    いイベントに依存しているかどうかを確認し、 以降の処理から遠隔メソッドを中断し、遠隔メソッドが利用不可能な資源、ま
    たはまだ発生していないイベントに依存しているとき、遠隔メソッドから資源を
    開放し、 サーバシステム上の他の処理およびメソッドが使用するために、遠隔メソッド
    ・システムに既に割り当てられている資源を開放し、 その遠隔メソッドに関する実行状態と、遠隔メソッド呼び出しに関する遠隔手
    続き呼び出し(RPC)状態を提供して、次の期間に遠隔メソッドの処理を継続
    し、 利用不可能だった資源が開放され、遠隔メソッドまたは遠隔メソッドを中断さ
    せたイベントにとって利用可能になるまで、以降の処理から遠隔メソッドをブロ
    ックする方法。
  2. 【請求項2】 複数の資源を備えたサーバシステム上で行われ、ネットワー
    ク上のクライアント・システムに動作可能なように接続し、既に中断されている
    遠隔メソッドが、サーバシステム上の処理を継続できるようにする方法であって
    、 その遠隔メソッドにとって必要な資源が利用可能であるか、または既に遠隔メ
    ソッドを中断させているイベントが発生したときに、継続イベントを生成し、中
    断された遠隔メソッドに関する継続イベントが発生したという指示を受け取り、 処理の継続に備えて、遠隔メソッドに資源を割り当て、 その遠隔メソッドが処理を継続できることを、遠隔メソッド資源管理部に知ら
    せ、 遠隔メソッド資源管理部によって制御された資源を、遠隔メソッドに割り当て
    、 割り当てられた資源を利用して、遠隔メソッドの実行を継続し、 実行状態を備えた遠隔メソッドと、RPC状態を備えた遠隔手続き呼び出し(
    RPC)システムを初期化し、前記実行状態が、中断される前の遠隔メソッドに
    関する情報を有し、RPC状態が、遠隔メソッド呼び出しに関する情報を有し、 その遠隔メソッドから結果を生成し、 サーバシステムからの結果を、クライアント・システム上のクライアント・ア
    プリケーションに転送する方法。
  3. 【請求項3】 サーバシステム上で行われ、遠隔メソッドが、処理を中断し
    、ネットワーク上のクライアント・システムに動作可能なように接続したサーバ
    システムに資源を開放可能にする方法であって、 クライアント・システム上の遠隔メソッド呼び出しから要求を受け取り、 そのサーバシステムに関する遠隔メソッドにシステム資源を割り当て、 そのサーバシステムに関する遠隔メソッドを呼び出し、 その遠隔メソッドの処理に必要な一般資源の利用可能性を確認し、 その遠隔メソッドが、利用不可能な一般資源に依存するとき、以降の処理から
    遠隔メソッドを中断する方法。
  4. 【請求項4】 サーバシステムが、演算処理装置、主記憶装置、二次記憶装
    置、表示装置、および入出力機構を有する請求項3に記載の方法。
  5. 【請求項5】 システム資源がスレッドを有する請求項3に記載の方法。
  6. 【請求項6】 一般資源がデータを有する請求項3に記載の方法。
  7. 【請求項7】 遠隔メソッド呼び出し(RMI)システムを使って、要求を
    転送する請求項3に記載の方法。
  8. 【請求項8】 中断する手順でさらに、 システム資源と一般資源をサーバシステムに開放し、 利用不可能な資源が開放され、遠隔メソッドにとって利用可能になるまで、以
    降の処理から遠隔メソッドをブロックする請求項3に記載の方法。
  9. 【請求項9】 中断する手順でさらに、遠隔メソッドに関する実行状態と、
    遠隔メソッド呼び出しに関する遠隔手続き呼び出し(RPC)状態を提供し、次
    の期間に遠隔メソッドの処理を継続する請求項8に記載の方法。
  10. 【請求項10】 サーバシステム上で行われ、既に中断されている遠隔メソ
    ッドが、サーバシステム上の処理を継続し、ネットワーク上でサーバシステムに
    動作可能なように接続したクライアント・システム上のクライアント・アプリケ
    ーションに対する結果を生成する方法であって、 中断された遠隔メソッドに関する継続イベントが発生したという指示を受け取
    り、 処理の継続に備えて、遠隔メソッドにシステム資源と一般資源を割り当て、 割り当てられた資源を利用して、遠隔メソッドの実行を継続し、 その遠隔メソッドから結果を生成し、 クライアント・システム上のクライアント・アプリケーションに、サーバシス
    テムからの結果を転送する方法。
  11. 【請求項11】 サーバシステムが、演算処理装置、主記憶装置、二次記憶
    装置、表示装置、および入出力機構を有する請求項10に記載の方法。
  12. 【請求項12】 システム資源がスレッドを有する請求項10に記載の方法
  13. 【請求項13】 一般資源がデータを有する請求項10に記載の方法。
  14. 【請求項14】 遠隔メソッドの実行を継続する手順でさらに、 実行状態を備えた遠隔メソッドと、RPC状態を備えた遠隔手続き呼び出し(
    RPC)システムを初期化し、 前記実行状態が、中断される前の遠隔メソッドに関する情報を有し、RPC状
    態が、遠隔メソッド呼び出しに関する情報を有し、 その遠隔メソッドから結果を生成する請求項10に記載の方法。
  15. 【請求項15】 転送する手順で、遠隔メソッド呼び出し(RMI)システ
    ムを使う請求項10に記載の方法。
  16. 【請求項16】 コンピュータ・サーバシステム上で実行される遠隔メソッ
    ドが、処理を中断し、コンピュータ・サーバシステムに資源を開放可能にする命
    令を有するコンピュータ可読媒体であって、 クライアント・システム上の遠隔メソッド呼び出しから要求を受け取り、 サーバシステムに関する遠隔メソッドに、システム資源を割り当て、 そのサーバシステムに関する遠隔メソッドを呼び出し、 その遠隔メソッドの処理に必要な一般資源の利用可能性を確認し、 その遠隔メソッドが、利用不可能な一般資源に依存するとき、以降の処理から
    遠隔メソッドを中断するコンピュータ可読媒体。
  17. 【請求項17】 システム資源がスレッドを有する請求項16に記載のコン
    ピュータ可読媒体。
  18. 【請求項18】 一般資源がデータを有する請求項16に記載のコンピュー
    タ可読媒体。
  19. 【請求項19】 遠隔メソッド呼び出し(RMI)システムを使って、要求
    を転送する請求項16に記載のコンピュータ可読媒体。
  20. 【請求項20】 中断する手順がさらに、 システム資源と一般資源をサーバシステムに開放するように構成された開放モ
    ジュールと、 利用不可能な資源が開放され、遠隔メソッドにとって利用可能になるまで、以
    降の処理から遠隔メソッドをブロックするように構成されたブロック・モジュー
    ルによって行われる請求項16に記載のコンピュータ可読媒体。
  21. 【請求項21】 既に中断されている遠隔メソッドが、サーバシステム上の
    処理を継続し、クライアント・システム上のクライアント・アプリケーションへ
    の結果を生成可能にする命令を有するコンピュータ可読媒体であって、 中断された遠隔メソッドに関する継続イベントが発生したという指示を受け取
    り、 処理の継続に備えて、遠隔メソッドにシステム資源と一般資源を割り当て、 割り当てられた資源を利用して、遠隔メソッドの実行を継続し、 その遠隔メソッドから結果を生成し、 サーバシステムからの結果を、クライアント・システム上のクライアント・ア
    プリケーションに転送するコンピュータ可読媒体。
  22. 【請求項22】 システム資源がスレッドを有する請求項21に記載のコン
    ピュータ可読媒体。
  23. 【請求項23】 一般資源がデータを有する請求項21に記載のコンピュー
    タ可読媒体。
  24. 【請求項24】 遠隔メソッド呼び出し(RMI)システムを使って転送す
    る請求項21に記載のコンピュータ可読媒体。
  25. 【請求項25】 遠隔メソッドが処理を中断し、ネットワーク上のクライア
    ント・システムに動作可能なように接続したサーバシステムに資源を開放可能に
    する装置であって、 クライアント・システム上の遠隔メソッド呼び出しから要求を受け取るように
    構成された受け取りモジュールと、 サーバシステムに関する遠隔メソッドに、システム資源を割り当てるように構
    成された割り当てモジュールと、 そのサーバシステムに関する遠隔メソッドを呼び出すように構成された呼び出
    しモジュールと、 その遠隔メソッドの処理に必要な一般資源が、いずれも利用不可能であるかど
    うかを確認するように構成された確認モジュールと、 その遠隔メソッドが、利用不可能な一般資源に依存するとき、以降の処理から
    遠隔メソッドを中断するように構成された中断モジュールを有する装置。
  26. 【請求項26】 サーバシステムが、演算処理装置、主記憶装置、二次記憶
    装置、表示装置、および入出力機構を有する請求項25に記載の装置。
  27. 【請求項27】 システム資源がスレッドを有する請求項25に記載の装置
  28. 【請求項28】 一般資源がデータを有する請求項25に記載の装置。
  29. 【請求項29】 遠隔メソッド呼び出し(RMI)システムを使って、要求
    を転送する請求項25に記載の装置。
  30. 【請求項30】 中断モジュールの手順がさらに、 サーバシステムにシステム資源と一般資源を開放するように構成された開放モ
    ジュールと、 利用不可能な資源が開放され、遠隔メソッドにとって利用可能になるまで、以
    降の処理から遠隔メソッドをブロックするように構成されたブロック・モジュー
    ルを有する請求項25に記載の装置。
  31. 【請求項31】 既に中断されている遠隔メソッドが、サーバシステム上の
    処理を継続し、ネットワーク上でサーバシステムに動作可能なように接続したク
    ライアント・システム上のクライアント・アプリケーションへの結果を生成可能
    にする装置であって、 中断された遠隔メソッドに関する継続イベントが発生したという指示を受け取
    る受け取りモジュールと、 処理の継続に備えて、遠隔メソッドにシステム資源と一般資源を割り当てるよ
    うに構成された割り当てモジュールと、 割り当てられた資源を利用して、遠隔メソッドの実行を継続するように構成さ
    れた継続モジュールと、 その遠隔メソッドから結果を生成するように構成された生成モジュールと、 サーバシステムからの結果を、クライアント・システム上のクライアント・ア
    プリケーションに転送するように構成された転送モジュールを有する装置。
  32. 【請求項32】 サーバシステムが、演算処理装置、主記憶装置、二次記憶
    装置、表示装置、および入出力機構を有する請求項31に記載の装置。
  33. 【請求項33】 システム資源がスレッドを有する請求項31に記載の装置
  34. 【請求項34】 一般資源がデータを有する請求項31に記載の装置。
  35. 【請求項35】 転送モジュールが、遠隔メソッド呼び出し(RMI)シス
    テムを使う請求項31に記載の装置。
  36. 【請求項36】 サーバシステムに接続し、遠隔メソッドが、処理を中断し
    、ネットワーク上のクライアント・システムに動作可能なように接続したサーバ
    システムに資源を割り当て可能にする装置であって、 クライアント・システム上の遠隔メソッド呼び出しから要求を受け取る手段と
    、 サーバシステムに関する遠隔メソッドに、システム資源を割り当てる手段と、 そのサーバシステムに関する遠隔メソッドを呼び出す手段と、 その遠隔メソッドの処理に必要な一般資源の利用可能性を確認する手段と、 その遠隔メソッドが、利用不可能な一般資源に依存するとき、以降の処理から
    遠隔メソッドを中断する手段を有する装置。
  37. 【請求項37】 サーバシステムに動作可能なように接続したクライアント
    ・システムをさらに有する請求項36に記載の装置。
  38. 【請求項38】 サーバシステムに接続し、既に中断されている遠隔メソッ
    ドが、サーバシステム上の処理を継続し、ネットワーク上のサーバシステムに動
    作可能なように接続したクライアント・システム上のクライアント・アプリケー
    ションへの結果を生成可能にする装置であって、 中断された遠隔メソッドに関する継続イベントが発生したという指示を受け取
    る手段と、 処理の継続に備えて、遠隔メソッドにシステム資源と一般資源を割り当てる手
    段と、 割り当てられた資源を利用して、遠隔メソッドの実行を継続する手段と、 その遠隔メソッドから結果を生成する手段と、 サーバシステムからの結果を、クライアント・システム上のクライアント・ア
    プリケーションに転送する手段を有する装置。
  39. 【請求項39】 サーバシステムに動作可能なように接続したクライアント
    ・システムをさらに有する請求項38に記載の装置。
JP2000533815A 1998-02-26 1999-02-18 遠隔処理の中断および継続の方法と装置 Pending JP2002505471A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,917 US6237024B1 (en) 1998-03-20 1998-03-20 Method and apparatus for the suspension and continuation of remote processes
US09/044,917 1998-03-20
PCT/US1999/003520 WO1999044131A1 (en) 1998-02-26 1999-02-18 Method and apparatus for the suspension and continuation of remote processes

Publications (1)

Publication Number Publication Date
JP2002505471A true JP2002505471A (ja) 2002-02-19

Family

ID=26722150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533815A Pending JP2002505471A (ja) 1998-02-26 1999-02-18 遠隔処理の中断および継続の方法と装置

Country Status (6)

Country Link
EP (1) EP1057108A1 (ja)
JP (1) JP2002505471A (ja)
KR (1) KR20010041297A (ja)
CN (1) CN1298502A (ja)
AU (1) AU3300499A (ja)
WO (1) WO1999044131A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005071541A1 (ja) * 2004-01-27 2005-08-04 Matsushita Electric Industrial Co., Ltd. アプリケーション起動調停装置及びシステム
JP2005276175A (ja) * 2004-02-13 2005-10-06 Microsoft Corp 拡張性のあるプリントスプーラ
WO2012008016A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
JP2015226322A (ja) * 2014-05-23 2015-12-14 エスアーペー エスエー オンプレミスとクラウドプラットフォーム間のハイブリッドアプリケーション動作

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1128266A3 (en) * 2000-02-22 2004-02-25 Orsus Solutions Limited Cooperative software application architecture
US7076551B2 (en) 2000-04-03 2006-07-11 Texas Instruments Incorporated Using remote procedure calls to manage co-processor resources
US7493391B2 (en) * 2001-02-12 2009-02-17 International Business Machines Corporation System for automated session resource clean-up by determining whether server resources have been held by client longer than preset thresholds
EP1249758B1 (en) 2001-04-11 2012-03-07 Texas Instruments Incorporated Using remote procedure calls to manage co-processor resources
US7168612B2 (en) * 2001-12-24 2007-01-30 Axalto Inc Method and apparatus for processing transactions in a data processing system
US20030182426A1 (en) * 2002-03-21 2003-09-25 Sun Microsystems, Inc. Apparatus and method of lazy connection transaction enlistment
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US9043194B2 (en) 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
US7953588B2 (en) 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
CN1306403C (zh) * 2003-12-30 2007-03-21 北京金山数字娱乐科技有限公司 一种用于游戏的网络服务器系统
US9323571B2 (en) * 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
JP4208783B2 (ja) * 2004-07-28 2009-01-14 キヤノン株式会社 画像処理装置および設定時刻調整方法およびプログラム
JP4126702B2 (ja) * 2004-12-01 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置、情報処理システム、制御方法、及びプログラム
US20070174655A1 (en) * 2006-01-18 2007-07-26 Brown Kyle G System and method of implementing automatic resource outage handling
CN101414340B (zh) * 2007-10-15 2015-12-02 北京瑞星信息技术有限公司 一种防止远程线程启动的方法
US8473957B2 (en) * 2010-12-13 2013-06-25 Microsoft Corporation Architecture for providing on-demand and background processing
KR101357975B1 (ko) * 2011-10-17 2014-02-03 엔에이치엔엔터테인먼트 주식회사 코루틴을 이용하여 원격 프로시저 호출 서비스를 제공하는 방법 및 장치
CN107092532B (zh) * 2017-03-22 2020-08-04 武汉斗鱼网络科技有限公司 一种远程调用方法及远程调用装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE116456T1 (de) * 1990-10-19 1995-01-15 Cray Research Inc Skalierbares parallel-vektorrechnersystem.
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
GB9414951D0 (en) * 1994-07-25 1994-09-14 British Telecomm Computer system having client-server architecture
JPH0962526A (ja) * 1995-08-28 1997-03-07 Fujitsu Ltd 耐故障型rpcシステムおよび方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005071541A1 (ja) * 2004-01-27 2005-08-04 Matsushita Electric Industrial Co., Ltd. アプリケーション起動調停装置及びシステム
JP2005276175A (ja) * 2004-02-13 2005-10-06 Microsoft Corp 拡張性のあるプリントスプーラ
WO2012008016A1 (ja) * 2010-07-13 2012-01-19 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
JP5408353B2 (ja) * 2010-07-13 2014-02-05 富士通株式会社 マルチスレッド処理装置,マルチスレッド処理システム,マルチスレッド処理プログラム,及びマルチスレッド処理方法
JP2015226322A (ja) * 2014-05-23 2015-12-14 エスアーペー エスエー オンプレミスとクラウドプラットフォーム間のハイブリッドアプリケーション動作

Also Published As

Publication number Publication date
AU3300499A (en) 1999-09-15
CN1298502A (zh) 2001-06-06
WO1999044131A1 (en) 1999-09-02
KR20010041297A (ko) 2001-05-15
EP1057108A1 (en) 2000-12-06

Similar Documents

Publication Publication Date Title
US6237024B1 (en) Method and apparatus for the suspension and continuation of remote processes
JP2002505471A (ja) 遠隔処理の中断および継続の方法と装置
EP0783150B1 (en) System, method, storage medium and computer-readable modules for space efficient object locking
US5452459A (en) Method and apparatus for allocating server access in a distributed computing environment
JP4690437B2 (ja) ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム
KR100898315B1 (ko) 인핸스드 런타임 호스팅
JP4410795B2 (ja) 共有リソースの同時アクセス
US7620953B1 (en) System and method for allocating resources of a core space among a plurality of core virtual machines
US7934220B2 (en) Method and system for optimizing file table usage
EP1025493B1 (en) Queued method invocations on distributed component applications
US7130905B2 (en) System and method for coordinating access to data for a distributed application
US7281050B2 (en) Distributed token manager with transactional properties
US20010010053A1 (en) Service framework for a distributed object network system
US20040122953A1 (en) Communication multiplexor for use with a database system implemented on a data processing system
JP2004530196A (ja) 区分処理環境におけるリソース平衡化
JP2004535615A (ja) 区分処理環境における共有i/o
JP2001522086A (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
KR20060041928A (ko) 프린트 시스템 및 방법
US8181182B1 (en) Resource allocation brokering in nested containers
US7219345B2 (en) System and method for terminating processes in a distributed computing system
EP0695993A2 (en) System and method for interprocess communication
EP1480124B1 (en) Method and system for associating resource pools with operating system partitions
US7669202B1 (en) Resource management
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
US7711721B2 (en) Apparatus, system, and method for suspending a request during file server serialization reinitialization