JP2002505462A - ネットワーク上における動的分散型計算のための方法及び装置 - Google Patents

ネットワーク上における動的分散型計算のための方法及び装置

Info

Publication number
JP2002505462A
JP2002505462A JP2000533805A JP2000533805A JP2002505462A JP 2002505462 A JP2002505462 A JP 2002505462A JP 2000533805 A JP2000533805 A JP 2000533805A JP 2000533805 A JP2000533805 A JP 2000533805A JP 2002505462 A JP2002505462 A JP 2002505462A
Authority
JP
Japan
Prior art keywords
server
task
client
result
computer
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
JP2000533805A
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/030,840 external-priority patent/US6446070B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505462A publication Critical patent/JP2002505462A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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]
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Abstract

(57)【要約】 【課題】 異質計算環境において容易に実行可能な分散型計算システムを提供すること。 【解決手段】 異質クライアント−サーバーネットワーク内で同質の実行環境を生成するようにする。動的に計算サーバー上にコードをダウンロードし、前記計算サーバー上でコードを実行し、呼び出しているクライアントメソッドにその結果を返信するシステムとする。この手法は、サーバーコードがすべての異なるシステム上で実行可能であり、ダウンロードやコンパイルされるコードの多重コピーを必要とすることがない。一般に、サーバーコードは、クライアント上で局所的にコンパイルされ、そしてバイト−コードとしてサーバーにダウンロードされ、実行される。

Description

【発明の詳細な説明】
(発明の背景)
【0001】 (発明の分野) この発明は、概して、分散型計算システムに関し、更に詳しくは、ネットワー
ク上における動的分散型計算を実行するための方法及び装置に関するものである
【0002】 (関連技術の説明) 分散型計算ネットワークにおいて、ユーザーは、ネットワークに接続された多
くのコンピュータの処理能力を利用することができる。ネットワーク上の異なる
コンピュータ間にその処理を分割することにより、多くの異なる独立した計算を
含んだ複数のタスクを迅速に並列処理することができる。更に、データ処理に最
も適したコンピュータをネットワーク上に設置することにより、特化した複数の
タスクをより迅速に計算することができる。
【0003】 例えば、クライアントシステム上において実行され、複雑な浮動小数点計算の
処理を行うタスクは、特定の計算に適した専門の浮動小数点ハードウェアを有し
たネットワークに接続されたサーバーシステム上において、迅速に計算を実行す
ることができる。
【0004】 しかしながら、分散型計算に用いられている従来技術は、通常の異質計算環境
において容易に実現することができない。一般に、ネットワーク上の各コンピュ
ータは、異なるプロセッサとオペレーティングシステムの結合を含んだ異質なも
のであり、その実行に際して、異なるオブジェクトモジュールが必要となるため
である。
【0005】 クライアント側では、オブジェクトモジュールが異なることにより、ユーザー
は、各異なるプラットフォームのための異なるタスクのバージョンをコンパイル
したり、各クライアントに必要記憶量を追加し、ポートを要求し、同じタスクを
多重回コンパイルするのに対応したプラットフォーム上へモジュールをロードし
たりすることが必要となる。更に従来技術では、コードが実行される前に、コン
ピュータ上でコードを分散させる必要がある。従来システムでは、分散型計算を
実行するために多くの準備が必要であり、この技術の利用を抑止させてしまうも
のである。
【0006】 スクリプト言語を基にした分散型計算システムは、幾つかの従来の分散型計算
システムを改良したものである。しかしながら、システムを基にしたスクリプト
は、コードを再コンパイルする必要性を排除し、また、非常に効率が悪い。分散
型システムを基にしたスクリプトは、各システム上に置かれたインタプリタによ
って言語が翻訳されるので、多重プラットフォーム上で同じ命令を実行すること
ができる。
【0007】 しかしながら、多くのスクリプト言語は、高レベルスクリプト命令を低レベル
ネイティブ命令にリアルタイムで翻訳しなければならないので処理速度が遅くな
るという問題がある。そのうえ、スクリプト言語は、最適化するのが困難であり
、一般に、圧縮することができないので記憶容量を浪費してしまうという問題が
ある。
【0008】 従来技術に見られる上記限界を鑑み、分散型計算システムを改良することが望
まれている。
【0009】 (発明の概要) クライアントコンピュータと関連した本発明の一面によれば、動的分散型計算
のための方法及び装置を提供することができる。初めに、クライアントは、タス
クを処理するために、ネットワークからサーバーを選択する。この選択は、サー
バーの稼働率又はサーバーの特化した処理能力に基づいて行われる。次に、クラ
イアントスタブがタスク要求中のパラメータ及びデータを整列させる。クライア
ントは、包括的計算メソッドを呼び出すサーバーに対して、そのタスク要求を送
信する。
【0010】 サーバーは自動的にタスクに関連した型が、サーバー上で入手可能かどうかを
決定し、そして必要であれば、ネットワークからそのタスク型をダウンロードす
る。タスク型の情報は、特定のタスク要求に記憶されたパラメータ及びデータを
抽出するために使用される。包括的計算メソッドは、選択されたサーバー上でそ
のタスク要求を実行するために使用される。サーバーがそのタスク要求を処理し
た後、クライアントは、その結果又は計算されたタスクを選択されたサーバーか
ら受信する。
【0011】 サーバーコンピュータに関連した本発明の他の面によれば、動的分散型計算の
ための方法及び装置を提供することができる。初めに、サーバーは、自動的にタ
スク型がサーバー上で入手可能かどうかを決定し、そして、必要であれば、ネッ
トワークからタスク型をダウンロードする。これらのタスク型により、サーバー
は、タスク要求からのパラメータ及びデータを非整列化し、局所的タスクを生成
することができる。
【0012】 次に、サーバーは、計算タスクのすべての型又は計算タスクの部分型を処理可
能な包括的計算メソッドを呼び出す。包括的計算メソッドは、選択されたサーバ
ー上で、タスク要求を実行するために使用される。その次のタスクがその結果を
使用する場合には、サーバーは、計算されたタスクからの結果をローカルキャッ
シュメモリーに記憶する。そして、一旦タスクが完了すると、サーバーは、その
結果又は計算されたタスクをクライアントに返信する。
【0013】 本明細書に援用され、本明細書の一部を為す添付図面は、本発明の実施例を図
示し、本発明の詳細な説明と共に本発明の利点と原理を説明するものである。
【0014】 (序文) 以下、添付図面に示す本発明の一実施形態について詳細に説明する。尚、図面
及び以下の説明において、同一若しくは類似の部分については同一の符号を用い
て参照する。
【0015】 本発明に係るシステムによれば、従来技術の欠点を解決し、ネットワーク上の
サーバーコンピュータで使用される動的分散型計算システムを提供することがで
きるようになる。この動的分散型計算システムは、異なるプロセッサ、異なるオ
ペレーティングシステム、それらの結合したコンピュータを有する異質コンピュ
ータネットワークにおいて、特に有用なものである。そのようなシステムによれ
ば、実行時にサーバーコンピュータを選択するためのクライアントアプリケーシ
ョンは、特定のタスクを実行することが可能となる。
【0016】 本発明に係る方法及びシステムにおいて、タスクは、特定の型又はクラス定義
を有するオブジェクトである。一般に、サーバーは、オブジェクトタスクに関係
するパラメータ及びデータが、サーバー上に受信されるまで、実際のクラス定義
を知ることを延期することができる。そのため、サーバー上で特定の型を入手す
ることができなくても、サーバーにより、特定の型がダウンロードされる。
【0017】 例えば、未知クラスのオブジェクトインスタンスがサーバーに送信されると、
サーバーは未知クラスをダウンロードする。その際、サーバーは、オブジェクト
を処理するために、このクラスを使用する。オブジェクトのクラス定義の待ち割
り当てによれば、サーバーコンピュータのネットワーク上における複雑なタスク
を処理するための柔軟性を増加させることが可能となる。
【0018】 更に、本設計によれば、カリフォルニア州、マウンテンビューのサンマイクロ
システムズ インコーポレーテッドによって開発された遠隔メソッド呼び出し(
RMI)サブシステムのような、サブシステムを呼び出す遠隔手続き呼び出しを
有する特徴を利用することにより、最小の追加オーバーヘッドで柔軟性を促進す
ることが可能となる。
【0019】 遠隔メソッド呼び出し(RMI)についてより詳しくは、本発明の指定代理人
に指定されたアン エム ウォルラス、ジェームス ワルド、ロジャー リッジ
ズらによって1996年4月23日に出願された米国特許出願08/636,7
06号の「一つのアドレス空間のプログラム操作が、他のアドレス空間の遠隔メ
ソッド又は手続きの処理を呼び出すことを可能にする「スタブ」情報のローディ
ングを容易化するためのシステム及び方法」を参照することにより、本願に引用
する。また、RMIについては、下記に示したJavaソフト ウェブページに
より詳細に記述されており、こちらも参照することにより本願に引用する(FTP:
//ftp.javasoft.com/docs/jdk1.2/rmi-spec-jdk1.2.ps)。
【0020】 従来のシステムと異なり、本発明に係る動的分散型システムのタスクは、一旦
記録され、そしてネットワーク上の他のサーバーコンピュータ上で実行される。
この機能によれば、タスクが、実行される前にすべてのプラットフォームに移植
されないので、異質ネットワークにおいて特に有利なものとなる。そしてその代
わりに、本発明に関連して設計された包括的計算タスクは、各システム上にロー
ドされる。この包括的計算タスクにより、実行時にクライアントにより指定され
た広範囲の様々なタスクを実行することが可能となる。
【0021】 例えば、いわゆる「計算」型と、Javaのようなオブジェクト指向言語の「
計算」型を受け付ける包括的計算タスクとを開発することが可能となる。Jav
aは多くのテキストにより記述されており、具体的には、1996年にジェーム
ス ゴスリング、ビル ジョイ、ガイ スティール、アディソン ウェスレイら
により書かれた「Java言語仕様」を参照することにより本願に引用する。ク
ライアントは、「計算」型の部分型を有するタスクを生成し、タスクに対応した
オブジェクトを、サーバー上の包括的計算タスクに渡す。そして、遠隔手続き呼
び出し機構は、サーバーに対するオブジェクトとタスクを実行する包括的計算タ
スクとをダウンロードする。
【0022】 Javaでは、クライアントにより送信されるタスクは、実際にはバイトコー
ド配列を含んだオブジェクトである。サーバーがJava仮想マシン(以下、J
VMと言う)を実行しさえすれば、これらのバイトコードは直ちに実行されるの
である。JVMは、ハードウェアで直接実行するか、又は、ネイティブオペレー
ションシステム上で動作するソフトウェア層で効果的にシミュレートすることが
できる。
【0023】 Java言語は、Java仮想マシン(JVM)仕様により特定される特性を
有する計算システム上で動作するように設計されたものである。JVM仕様につ
いては、アディソン ウェスレイによる「Java仮想マシン仕様」に詳細が記
述されており、こちらを参照することにより本願に引用する。この一様なJVM
環境により、コンピュータシステムが異質であり、異なるプロセッサや異なるオ
ペレーティングシステムやこれらの結合を有していても、同質にタスクを実行す
ることができるのである。本発明に関連して設計され、強力な遠隔手続き呼び出
しサブシステムと、サーバー上の包括的計算タスクとを結合させることにより、
強力な動的分散型計算環境とするに至ったのである。
【0024】 バイトコードを使用する計算サーバーは、スクリプト言語を基にした従来のテ
キストを使用するシステムや言語を基にした他の文字を使用するシステムに比べ
て、より迅速にタスクを処理することができる。各バイトコードは、(8ビット
に)圧縮されており、数値書式になっている。従って、サーバーコンピュータは
、実行時に文字や変数の構文解析のために計算サイクルを消費することはない。
また、バイトコードは、サーバーに送られる前に、クライアント側で最適化され
ている。
【0025】 サーバーは、ジャストインタイム(JIT)コンパイラーのような処理機構を
使用するハードウェア上で、実行時にバイトコードを実行するためのネイティブ
命令に、直接変換することができる。ジャストインタイム(JIT)コンパイラ
ーの詳細については、「Java仮想マシン仕様」に詳細が記述されているので
こちらを参照することができる。
【0026】 本発明に係り設計されたシステムによれば、各クライアントは、TCP/IP
のような共通のネットワークプロトコル上で各サーバーに通信することができる
ことは勿論のことである。また、クライアント及びサーバー上に、クライアント
からの遠隔要求を受信して、サーバー上でそれらを実行可能な遠隔手続き呼び出
し(RPC)サブシステムがあることは勿論のことである。また、このRPCシ
ステムは、コード及び実行時にタスクを実行するために必要とされる関連した情
報をダウンロードすることができるものである。
【0027】 サンマイクロシステムズ インコーポレーテッドにより開発されたRMIは、
これらの機能を与えるRPCサブシステムに適したものである。しかしながら、
その技術スキルとして、RMIの代わりに、マイクロソフト インコーポレーテ
ッドのDCOM/COMのような他のRPCサブシステムを用いても、識別する
ことができるものである。
【0028】 (コンピュータ ネットワーク) 図1は、本発明の一実施形態を実現するためのネットワーク100を示したも
のである。ネットワーク100は、ローカルエリアネットワーク(以下、LAN
と表す)101、幹線、又は、ワイドエリアネットワーク(以下、WANと表す
)112、ローカルエリアネットワーク(LAN)116をその必須構成要件と
して含んでいる。LAN101は、一連のワークステーションと、サーバーコン
ピュータ102、104、106、108とを含んでいる。
【0029】 LAN116は、一連のワークステーションと、サーバーコンピュータ118
、120、122、124とを含んでいる。これらのコンピュータシステム10
2〜108及び118〜124は、情報を共有し、データを送信し、計算能力を
共有することができるよう一体的に接続されている。LAN101は、ネットワ
ーク相互接続デバイス110を介して、より大きな総合的ネットワークに接続さ
れている。ネットワーク相互接続デバイスの特定の型としては、特別のネットワ
ーク機器構成に依存したルーター、スイッチ、ハブなどを用いることができる。
【0030】 一般に、ネットワーク相互接続デバイス110は、ルーター、スイッチ、ハブ
、又は総合ネットワーク中にユーザーターミナルを備えたLAN101、WAN
112、LAN116に一体的に接続可能な他のネットワーク相互接続デバイス
等を含むものである。ネットワーク相互接続デバイス114もまた、ルーター、
スイッチ、ハブ、総合ネットワーク中にユーザーターミナルを備えたLAN11
6上の複数のコンピュータ等に接続可能な他のネットワーク相互接続デバイス等
を含むものである。
【0031】 一般に、本発明に係り設計された動的分散型計算システムは、ネットワーク1
00に接続された各コンピュータシステム上に配置されている。それ故、各コン
ピュータは、特定の要求がなされ、そして、サービスが提供されることに依存す
るクライアント又はサーバーのどちらかとして操作されることとなる。一般に、
クライアントは、タスクがサーバー上で計算されるように要求し、サーバーコン
ピュータがタスクの処理を行うものである。
【0032】 (コンピュータシステム) 図2は、本発明に係る方法及びシステムを実行するのに好適なコンピュータシ
ステムのためのシステム体系を示した図である。具体例としてのコンピュータシ
ステムは、記述用のみのものである。記述としては、IBM PS/2パーソナ
ルコンピュータのような特定のコンピュータシステムの記述に共通して使用され
る項に言及したが、その記述及び概念は、他のコンピュータシステムにも等しく
適用できるものである。そのようなコンピュータシステムとしては、例えば、ネ
ットワークコンピュータ、ワークステーション、図1と異なる体系を有した大型
コンピュータなどが挙げられ、これらに適用できるものである。
【0033】 更に、具体例としては、Javaプログラミング言語及びJava仮想マシン
仕様を実行可能なコンピュータシステムに言及して記述したが、本発明は、類似
の要求を有する他のコンピュータシステムにも等しく適用できるものであり、特
に限定されるものではない。すなわち、本発明は、オブジェクト指向及び非オブ
ジェクト指向のプログラミングシステムの両方に適用することができるものであ
る。
【0034】 コンピュータシステム200は、中央演算処理装置(以下、CPUと表す)1
05を備え、そして、汎用マイクロプロセッサと、情報を一次的に記憶するラン
ダムアクセスメモリ(以下、RAMと表す)210と、情報を永続的に記憶する
読み出し専用メモリ(以下、ROMと表す)215とを備えている。メモリコン
トローラ220は、RAM210をコントロールするためのものである。
【0035】 バス230は、コンピュータシステム200の構成要素を相互接続するための
ものである。バスコントローラ225は、バス230をコントロールするための
ものである。割り込みコントローラ235は、システム構成要素からの種々の割
り込み信号を受信して、処理するために使用されるものである。
【0036】 大容量記憶装置は、ディスケット242、CD−ROM247又はハードドラ
イブ252からなる。データ及びソフトウェアは、ディスケット242及びCD
−ROM247のような取り外し可能媒体を介して、コンピュータシステム20
0とやり取りされる。ディスケット242は、ディスケットドライブ241に挿
入され、コントローラ240により順にバス230に接続される。同様に、CD
−ROM247は、CD−ROMドライブ246に挿入され、コントローラ24
5により順にバス230に接続される。ハードディスク252は、固定ディスク
ドライブ251の一部分であり、コントローラ250により、バス230に接続
される。
【0037】 コンピュータシステム200に入力するユーザーは、デバイスの数により決定
される。例えば、キーボード256及びマウス257は、コントローラ255に
よりバス230に接続されている。これらは例えば、バス230に接続されたペ
ンやタブレットのようなデバイスでも良く、要求に応じてコントローラ及びソフ
トウェアを実行可能であれば、他の入力デバイスを用いることができることは勿
論のことである。DMAコントローラ260は、RAM210に直接記憶呼び出
しを行うためのもので、表示ディスプレイは、ビデオディスプレイ270をコン
トロールするビデオコントローラ265により表示されるものである。
【0038】 また、コンピュータシステム200は、通信アダプタ290を備えており、シ
ステムは、概略的に示したバス291及びネットワーク295により、LAN又
はWANに相互接続することができるようになっている。
【0039】 コンピュータシステム200の操作は、一般に、オペレーティングシステムソ
フトウェアにより、コントロール及び統合されるようになっている。オペレーテ
ィングシステムは、システム資源の割り振りをコントロールし、スケジューリン
グ処理、メモリ管理、ネットワーク化、サービス等のタスクを処理するものであ
る。
【0040】 (動的分散型計算) 一般に、動的分散型計算は、クライアントサーバー処理である。クライアント
−サーバーの関係は、各々が呼び出されることにより確立され、その役割は一般
的に変化するものである。一般に、クライアントは、サーバーにより位置づけら
れ、又は、コントロールされる資源を要求するための呼び出しといった処理を行
うものとして定義される。このような関係において、要求している処理を実行す
るコンピュータ又はプロセッサは、クライアントとして適用される。しかしなが
ら、これらの役割は、情報及び発生した特定の処理との関係に依存して変化する
ものである。
【0041】 図3は、本発明に係る一実施例に使用されるクライアント−サーバーネットワ
ーク環境を表すブロック図である。この図は、本発明の一実施例を強調するため
に本発明と密接に関係したサブシステムを備えている。追加サブシステムは、実
際の実行においては必要となる場合もあるが、図3においては除外してある。
【0042】 それ故、図3は、クライアント302、サーバー316及びオブジェクト/メ
ソッドリポジトリ314を含んでおり、それらは、すべて機能的にネットワーク
312に接続されている。クライアント302は、遠隔サーバーコンピュータ上
でタスクを処理する遠隔計算呼び出し306からなるアプリケーション304を
備えている。一般に、遠隔スタブ310は、RMI仕様で記述される遠隔手続き
呼び出しサブシステムの使用により生成され、特定の遠隔計算呼び出し306に
関連したパラメータ及びデータのパッケージするために使用される。
【0043】 一般的なクライアントは、クライアント302が遠隔計算呼び出し306を呼
び出して実行するためのタスク型を含んだ局所的オブジェクト/メソッド308
のコレクションを備えている。そして代わりに、タスクは、オブジェクトメソッ
ドリポジトリ314に置かれ、計算メソッド320により必要に応じてアクセス
される。サーバー316は、クライアントから送信されたパラメータ及びデータ
を非整列化するための遠隔スケルトン322を備えている。この遠隔スケルトン
322は、計算メソッド320により使用するための情報を準備するためのもの
である。また、局所的オブジェクト/メソッド324は、クライアント302が
サーバー316に処理を要求することができるようなタスクを備えている。
【0044】 操作において、遠隔計算呼び出し306は、特定のタスクを処理するため、計
算メソッド320に呼び出しを行う。遠隔スタブ310は、呼び出したメソッド
上の情報を整列するので、サーバー316上の計算メソッド320は、タスクを
実行することができるようになる。また、遠隔スタブ310によれば、サーバー
302上の計算メソッド320により変数として使用される基本パラメータを整
列させることができる。
【0045】 遠隔スケルトン322は、タスクを受信して、ネットワーク上で受信したデー
タ及びパラメータを非整列化し、計算メソッド320にデータ及びパラメータの
供給を行う。タスク及び関連した型が、サーバー316上で入手することができ
ない場合には、スケルトンは、クライアント302からの型又はオブジェクト/
メソッドリポジトリ314又はその他安全かつ確実なそこにない型の資源をダウ
ンロードする。
【0046】 型情報は、オブジェクトのデータ位置にマップされるので、遠隔スケルトンは
、完全にオブジェクトを実行することができるようになる。RMI(図示しない
)は、遠隔スタブ310及び遠隔スケルトン322を供給可能な一つの遠隔手続
き呼び出し(RPC)システムである。一旦、オブジェクトがスケルトンにより
処理されると、計算メソッド320は、タスクを実行し、計算されたタスク又は
計算されたタスク結果をクライアント302に返信する。
【0047】 図4は、本発明に係る動的分散型計算システム及び方法を利用する際、クライ
アントにより処理されるステップを示したフローチャートである。初めに、クラ
イアントは、タスクを処理するために、ネットワークから適したサーバーを選択
する(ステップ402)。この選択基準は、サーバーコンピュータのコレクショ
ンの中で処理負荷を全体的に分散させること又は各サーバーコンピュータの特定
の計算能力に基づいている。
【0048】 例えば、負荷バランシング技術は、与えられた瞬間に、最も少ない負荷を持つ
コンピュータを自動的に決定するために使用されるものである。更には、タスク
が3次元ワイヤフレームレンダリングのような高負荷のグラフィック計算を有し
ていたり、多くの浮動小数点計算を実行しなければならない場合に、グラフィッ
クアクセラレータや数値計算コプロセッサのような特定のハードウェアを有する
コンピュータがクライアントにより選択されるものである。
【0049】 一旦サーバーが選択されると、クライアントは、選択されたサーバー上に遠隔
計算メソッドを呼び出す(ステップ404)。RMIのようなRPCシステムに
よれば、サーバーコンピュータ上に遠隔計算メソッドを呼び出すことが容易にな
る。一般に、クライアントは、遠隔計算メソッドが遠隔コンピュータ上で特定の
タスクを処理するためのコンジットとして用いられるということさえ分かれば良
い。
【0050】 例えば、Javaにおいて、クライアント上で実行される「Server.run Task(
new PI(1000))」という遠隔命令により、遠隔メソッドである「run Task」は、 「ComputeServer」型の「Server」である遠隔サーバー上に呼び出される。この ステップにより、遠隔メソッドである「run Task」を介して、包括的計算メソッ
ドにパラメータとしてタスク(この場合、タスクは、「new PI(1000))」により
インスタンス生成したタスクオブジェクト型である)が供給される。
【0051】 サーバー上の「run Task」メソッドにより、計算遠隔インターフェイスが実行
される。随意に、この命令は、計算されたタスクからの結果を選択されたサーバ
ー上の結果キャッシュメモリーに記憶するようサーバーに指示するようにしても
良い。これにより、その次のタスクは、反復の間、その結果を共有することがで
きるようになる。例えば、計算する「PI」の結果は、ボリューム範囲を計算する
か、又は、「PI」のボリュームを使用して他の正確な計算を実行するために、後
で他の遠隔計算メソッドにより使用される。
【0052】 次に、スタブは、タスク要求の中のパラメータ及びデータを整列させるために
使用されるものである。そのタスク要求は、選択されたサーバーに供給される。
一般に、タスク要求は、サーバー上にない場合の型又はクラスのためのネットワ
ーク位置ばかりでなく、そのタスクのためのデータ及びパラメータを含んでいる
。サーバー上のスケルトンは、オブジェクトを処理するため、型又はクラス情報
を使用し、データ及びパラメータを非整列化する。
【0053】 Java及びRMIを使用するシステムにおいて、タスク要求はオブジェクト
であり、クラス位置情報は、コードベースURL(ユニバーサル レコード ロ
ケータ)パラメータに含まれている。これについての詳細は、RMI仕様の中に
説明されている。サーバーは、直ちに実行するためのタスクをスケジュールする
か、または、タスクを計算するために適した時間を探索する。サーバーが計算を
処理した後、クライアントは、計算されたタスクからその結果を受信する(ステ
ップ408)。
【0054】 図5は、本発明に係る動的分散型計算システム及び方法により処理されるステ
ップを示したフローチャートである。初めに、サーバー上のスケルトンは、タス
ク要求からのパラメータ及びデータを非整列化して、送信されたときのオリジナ
ルタスクを再生成する(ステップ504)。これらのパラメータの非整列化は、
いくつかの追加型をダウンロードすることを含んでいる。スケルトンは、タスク
要求に関係した型が、サーバー上で入手可能かどうかを決定する(ステップ50
6)。
【0055】 タスク要求に関連した型が入手不可能な場合には、スケルトンは、ネットワー
ク上のある一つの領域からタスクをダウンロードしなければならない(ステップ
509)。例えば、「PI()」クラスがサーバー上にない場合には、スケルトン
サーバーは、クライアントからこの型をダウンロードする。型又はクラスはオブ
ジェクトの中のデータをマップするためにスケルトンにより使用され、そしてパ
ラメータ及びデータを整列する。
【0056】 一般に、クライアントは、特定の型が配置されている要求パッケージ中に指示
を行う。スケルトンは、オブジェクト/メソッドリポジトリから要求された型を
ダウンロードすることができ、そして、来るべきサーバーの要求のために型を一
時記憶することができるものである。また、要求された型は、クライアント上に
配置することができる。例えば、Java及びRMIにおいて、特定の型を含ん
だクラスは、クライアントにより送信される与えられたコードベースURLに配
置される。
【0057】 RMIの機能をロードする動的クラスによれば、コードベースを使用するクラ
スを自動的にダウンロードすることが容易になる。これらの型によれば、スケル
トンは、タスク要求を解析することが可能となり、適切なデータ及びパラメータ
を抽出することが可能になる。上記概略ステップによれば、処理のためのパラメ
ータ及びデータが一層入手し易くなる。
【0058】 一旦適当な型が入手されると、スケルトンは、包括的計算メソッドを呼び出す
(ステップ508)。そしてサーバー上の包括的計算メソッドは、クライアント
により要求された特定のタスクを実行する(ステップ510)。例えば、クライ
アントが「ComputeSever.runTask(newPI(1000))」を呼び出すと仮定する。その 場合、スケルトンは、サーバー上に包括的計算メソッド「runTask」を呼び出す 。その「runTask」メソッドは、クライアントにより呼び出されたタスクの中に 埋め込まれた「run()」メソッドを呼び出す。
【0059】 更に「runTask」メソッドは、クライアントと遠隔接続されたままの遠隔イン ターフェイスである「Compute」を実行する。クライアントの選択に応じて又は サーバー上で予め決定されたセッティングで、スケルトンは、その次のタスクが
結果を使用する場合に備えて、キャッシュメモリの中に計算されたタスクからの
結果を記憶する。サーバー上での最終ステップとして、計算されたタスク又は結
果は、サーバー上で「return t.run()」を実行することによりクライアントに返
信される(ステップ512)。
【0060】 (実施例) 本発明に係るコード例として、以下の一実施例が挙げられる。この具体例にお
いては、オブジェクト指向Javaプログラミング言語を用いて示したが、他の
プログラミング言語も適用可能なものである。例えば、サーバーは以下の表1〜
3に示されるようなJavaコードを含んでいる。
【0061】
【表1】
【0062】
【表2】
【0063】
【表3】
【0064】 以下の表4のJavaコードの実施例は、本発明に係る動的分散型計算を実行
するクライアント上で使用されるものである。
【0065】
【表4】
【0066】 特定の実施例について、ここに図示の目的で記述したが、本発明の意図及び目
的を逸脱しない範囲で種々改変できることは勿論のことである。本発明は、様々
なハードウェア及びソフトウェアプラットフォームに適用できるものであり、上
記にて説明した汎用のルータやスイッチ、インテリジェントハブデバイス等に限
定されるものではない。それ故、本発明は、上記にて説明した実施例に特に限定
されるものではない。その代わりとして、同等物の目的を有するものを全て考慮
して特許請求の範囲に定義されるものである。
【0067】
【図面の簡単な説明】
【図1】 本発明に係る方法及びシステムの利用に適当なネットワークを示す図である。
【図2】 本発明に係る方法及びシステムの利用に適当なコンピュータシステムのブロッ
ク図である。
【図3】 本発明に係る方法及びシステムの利用に適当なクライアント−サーバーネット
ワーク環境を表すブロック図である。
【図4】 本発明に係る方法及びシステムに従って、クライアントが処理するステップを
示したフローチャートである。
【図5】 本発明に係る方法及びシステムに従って、サーバーにより処理されるステップ
を示したフローチャートである。
【符号の説明】
302 クライアント 304 アプリケーション 306 遠隔計算呼び出し 308 局所的オブジェクト/メソッド 310 遠隔スタブ 312 ネットワーク 314 オブジェクト/メソッドリポジトリ 316 サーバー 320 計算メソッド 322 遠隔スケルトン 324 局所的オブジェクト/メソッド
───────────────────────────────────────────────────── フロントページの続き (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,SL,SZ,UG,ZW),E A(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,DK,EE,ES,FI,GB,GD,GE,G H,GM,HR,HU,ID,IL,IN,IS,JP ,KE,KG,KP,KR,KZ,LC,LK,LR, LS,LT,LU,LV,MD,MG,MK,MN,M W,MX,NO,NZ,PL,PT,RO,RU,SD ,SE,SG,SI,SK,SL,TJ,TM,TR, TT,UA,UG,UZ,VN,YU,ZW (72)発明者 ウォルド ジェイムズ エイチ アメリカ合衆国、01826 マサチューセッ ツ州、ドラカット、ルビー ロード 155 (72)発明者 ウォールラス アン エム アメリカ合衆国、01450 マサチューセッ ツ州、グロトン、ノースウッズ ロード 9 (72)発明者 ジョーンズ ピーター シー アメリカ合衆国、01890 マサチューセッ ツ州、ウィンチェスター、ベーコン スト リート 85 Fターム(参考) 5B045 BB22 BB42 GG02 GG06 HH02 5B098 AA10 GA04 GC11 GC14 GC16 GD14

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 主記憶装置と、補助記憶装置と、表示装置と、入出力装置と
    を備えたコンピュータシステム上で処理され、クライアントが各サーバーコンピ
    ュータと互換性を有するプログラミング言語で開発されたタスクを前記サーバー
    コンピュータのコレクション中のサーバーコンピュータに動的に分散することを
    可能にする方法であって、該方法は、 前記サーバーコンピュータのコレクションの中で処理負荷を全体的に分散させ
    ることと各サーバーコンピュータの特定の計算能力とに基づいてタスクを処理す
    るために複数の異質サーバーのうちからサーバーを選択する選択ステップと、 タスク要求の中にパラメータ及びデータを整列させる整列ステップとを含み、 該整列ステップは、更に、 前記要求されたタスクに関連したコード及びデータ型が前記選択されたサーバ
    ー上に存在するかどうかを決定する決定サブステップと、 前記コード又はデータ型が前記選択されたサーバー上に存在しない場合に前記
    選択されたサーバー上に前記コード及び関連したデータ型をダウンロードするダ
    ウンロードサブステップとを含み、 前記方法は、更に、前記タスクを実行する前記選択されたサーバーに関係した
    包括的計算メソッドを呼び出す呼び出しステップを含み、 該呼び出しステップは、更に、 前記包括的計算メソッドにパラメータとして前記タスクを供給する供給サブス
    テップと、 その次のタスクが使用するために、前記選択されたサーバー上の結果キャッシ
    ュメモリーに計算されたタスクからの結果が記憶されるよう前記サーバーに指示
    する指示サブステップとを含み、 前記方法は、更に、前記クライアント上で更に処理するために前記選択された
    サーバーから前記計算されたタスクを受信する受信ステップとを含む。
  2. 【請求項2】 主記憶装置と、補助記憶装置と、表示装置と、入出力装置と
    を備えたコンピュータシステムの中に含まれるプロセッサ上で処理され、サーバ
    ーのコレクションに関連付けられたサーバーが、クライアントコンピュータから
    のタスクを動的に受信及び処理することを可能にする方法であって、前記タスク
    は、各サーバーコンピュータと互換性を有する実行可能なプログラミング言語か
    らなり、前記方法は、 タスク中のタスク要求からパラメータ及びデータを非整列化させる非整列ステ
    ップを含み、 該非整列ステップは、更に、 前記タスクに関連した型がサーバー上で入手可能かどうかを決定する決定サブ
    ステップと、 前記タスクに関連した型がサーバー上で入手不可能な場合に、前記クライアン
    トにより供給される前記パラメータにより指示される位置から前記サーバー上に
    前記型をダウンロードするダウンロードサブステップとを含み、 前記方法は、更に、 結果を生成するタスクのすべての型を処理可能な包括的計算メソッドであり、
    前記タスクを実行するものを呼び出す呼び出しステップと、 その次のタスクが前記結果を使用する場合にキャッシュメモリーに前記実行さ
    れたタスクからの結果を記憶する記憶ステップと、 前記実行されたタスクからの結果を前記クライアントに返信する返信ステップ
    とを含む。
  3. 【請求項3】 サーバーのコレクションに機能的に接続されたプロセッサ上
    で処理され、前記プロセッサに関連したクライアントがサーバーにタスクを動的
    に分散可能な方法であって、該方法は、 前記タスクを処理するためのサーバーを選択する選択ステップと、 前記パラメータ及びデータからタスク要求を形成する形成ステップと、 前記選択されたサーバー上で前記タスク要求を実行可能な包括的計算手法を呼
    び出すとともに、結果を生成する前記選択されたサーバーに、前記タスク要求を
    送信する送信ステップと、 前記選択されたサーバーから前記結果を受信する受信ステップとを含む。
  4. 【請求項4】 前記プロセッサが、主記憶装置、補助記憶装置、表示装置及
    び入出力装置を備えたコンピュータシステムに機能的に接続されていることを特
    徴とする請求項3に記載の方法。
  5. 【請求項5】 前記タスクが、前記各サーバーコンピュータと互換性を有す
    るプログラミング言語及び環境で開発されることを特徴とする請求項3に記載の
    方法。
  6. 【請求項6】 前記サーバーが、複数の異質コンピュータシステムのうちか
    ら選択されることを特徴とする請求項3に記載の方法。
  7. 【請求項7】 前記環境が、遠隔手続き呼び出しサブシステムを含むことを
    特徴とする請求項5に記載の方法。
  8. 【請求項8】 前記遠隔手続き呼び出しサブシステムが、遠隔メソッド呼び
    出し(RMI)システムであることを特徴とする請求項7に記載の方法。
  9. 【請求項9】 前記サーバーを選択するための基準が、前記サーバーコンピ
    ュータのコレクションの中で処理負荷を全体的に分散させることを含むことを特
    徴とする請求項3に記載の方法。
  10. 【請求項10】 前記選択されたサーバーが、予め定められた時間中前記複
    数サーバーに関し、最低位の負荷特性を平均負荷特性と比較することを特徴とす
    る請求項6に記載の方法。
  11. 【請求項11】 前記サーバーを選択するための基準が、各サーバーコンピ
    ュータの特定の計算能力を含むことを特徴とする請求項3に記載の方法。
  12. 【請求項12】 前記特定の計算能力が、画像のレンダリングを含むことを
    特徴とする請求項11に記載の方法。
  13. 【請求項13】 前記送信ステップは、更に、 前記要求されたタスクに関連したコードが前記選択されたサーバー上にあるかど
    うかを決定する決定サブステップと、 前記選択されたサーバー上に前記コードがない場合に前記選択されたサーバー
    上に前記コードをダウンロードするダウンロードサブステップとを含むことを特
    徴とする請求項3に記載の方法。
  14. 【請求項14】 前記送信ステップは、更に、前記包括的計算メソッドにパ
    ラメータとして前記タスクを供給する供給ステップを含むことを特徴とする請求
    項3に記載の方法。
  15. 【請求項15】 計算されたタスクからの結果は、その次のタスクが使用す
    るために、前記選択されたサーバー上の結果キャッシュメモリーに記憶するよう
    前記サーバーに指示する指示ステップを更に含むことを特徴とする請求項3に記
    載の方法。
  16. 【請求項16】 前記結果が、前記クライアント上で更に処理するために使
    用されることを特徴とする請求項3に記載の方法。
  17. 【請求項17】 前記結果が、オブジェクトであることを特徴とする請求項
    3に記載の方法。
  18. 【請求項18】 サーバーのコレクションに機能的に接続されたプロセッサ
    上で処理され、実行可能なプログラミング言語からなるクライアントコンピュー
    タからのタスクを、前記プロセッサに関連したサーバーが動的に受信して処理す
    ることを可能にする方法であって、前記タスクは各サーバーコンピュータと互換
    性を有し、前記方法は、 タスク要求からパラメータ及びデータを取り出してタスクへ送る取り出しステ
    ップと、 前記タスクを実行し結果を生成し、複数の型のタスクを処理可能である包括的
    計算メソッドを、前記サーバー上に呼び出す呼び出しステップと、 前記クライアントに結果を返信する返信ステップとを含む。
  19. 【請求項19】 前記プロセッサが、主記憶装置、補助記憶装置、表示装置
    及び入出力装置を備えたコンピュータシステムに機能的に接続されていることを
    特徴とする請求項18に記載の方法。
  20. 【請求項20】 前記タスクが、前記サーバーコンピュータの夫々と互換性
    を有するプログラミング言語で開発されていることを特徴とする請求項18に記
    載の方法。
  21. 【請求項21】 前記タスクが、Javaプログラミング言語及び環境を使
    用して開発されていることを特徴とする請求項18に記載の方法。
  22. 【請求項22】 前記環境が、遠隔手続き呼び出しシステムを含むことを特
    徴とする請求項21に記載の方法。
  23. 【請求項23】 前記遠隔手続き呼び出しサブシステムが、遠隔メソッド呼
    び出し(RMI)システムであることを特徴とする請求項22に記載の方法。
  24. 【請求項24】 前記取り出しステップは、更に、 前記タスクに関連した型が前記サーバー上で入手可能かどうかを決定する決定
    ステップと、 前記型がサーバー上で入手不可能な場合に、前記クライアントにより供給され
    た前記パラメータにより指示される位置から前記サーバー上に前記型をダウンロ
    ードするダウンロードステップと、 前記クライアントにより供給された前記データ及びパラメータに基づいて前記
    タスクを実行する実行ステップとを 含むことを特徴とする請求項18に記載の方法。
  25. 【請求項25】 前記決定ステップ及び前記ダウンロードステップは、遠隔
    手続き呼び出し(RPC)サブシステムにより実行されることを特徴とする請求
    項24に記載の方法。
  26. 【請求項26】 前記決定ステップは、遠隔手続き呼び出しサブステップの
    遠隔メソッド呼び出し(RMI)により実行されることを特徴とする請求項25
    に記載の方法。
  27. 【請求項27】 その次のタスクが前記結果を使用する場合に、キャッシュ
    メモリーに前記タスクからの前記結果を記憶する記憶サブステップを含むことを
    特徴とする請求項18に記載の方法。
JP2000533805A 1998-02-26 1999-02-25 ネットワーク上における動的分散型計算のための方法及び装置 Pending JP2002505462A (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/030,840 1998-02-26
US09/030,840 US6446070B1 (en) 1998-02-26 1998-02-26 Method and apparatus for dynamic distributed computing over a network
PCT/US1999/004064 WO1999044121A2 (en) 1998-02-26 1999-02-25 Method and apparatus for dynamic distributed computing over a network

Publications (1)

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

Family

ID=26706519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533805A Pending JP2002505462A (ja) 1998-02-26 1999-02-25 ネットワーク上における動的分散型計算のための方法及び装置

Country Status (6)

Country Link
EP (1) EP1057101A2 (ja)
JP (1) JP2002505462A (ja)
KR (1) KR20010034542A (ja)
CN (1) CN1292118A (ja)
AU (1) AU2787699A (ja)
WO (1) WO1999044121A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017506373A (ja) * 2013-11-26 2017-03-02 アビニシオ テクノロジー エルエルシー 分散ファイルシステム内のデータへの並列アクセス

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6460082B1 (en) 1999-06-17 2002-10-01 International Business Machines Corporation Management of service-oriented resources across heterogeneous media servers using homogenous service units and service signatures to configure the media servers
US7783695B1 (en) * 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
DE60121605T2 (de) * 2000-05-09 2006-12-07 Sun Microsystems, Inc., Santa Clara Aufruf einer entfernten funktion mit nachrichten in einer verteilten rechnerumgebung
JP2001344199A (ja) * 2000-06-02 2001-12-14 Nec Corp 分散型処理システム及び方法並びに記録媒体
JP2002095071A (ja) * 2000-09-13 2002-03-29 Sanyo Electric Co Ltd ネットワークシステム及び機器制御方法
DE60135200D1 (de) 2001-01-31 2008-09-18 Hewlett Packard Co Verfahren und Gerät um Dokumente zu erstellen
KR20030021114A (ko) * 2001-09-05 2003-03-12 주식회사 미리텍 부하분산기
GB2380911B (en) 2001-10-13 2004-09-08 Hewlett Packard Co Performance of a multi-stage service within an information technology network
KR100497353B1 (ko) * 2002-03-26 2005-06-23 삼성전자주식회사 영상 처리 장치 및 처리된 영상을 수신하는 장치 및 방법
CN100450256C (zh) * 2002-10-28 2009-01-07 中兴通讯股份有限公司 移动通信网络规划中小区覆盖文件的分布式处理方法
SE0203297D0 (sv) * 2002-11-05 2002-11-05 Ericsson Telefon Ab L M Remote service execution in an heterogenous network
US20040122950A1 (en) * 2002-12-20 2004-06-24 Morgan Stephen Paul Method for managing workloads in an autonomic computer system for improved performance
US7975270B2 (en) * 2004-03-10 2011-07-05 International Business Machines Corporation Facilitating allocation of resources in a heterogeneous computing environment
JP2006004008A (ja) * 2004-06-15 2006-01-05 Sony Computer Entertainment Inc 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム
WO2006096919A1 (en) * 2005-03-16 2006-09-21 Airscape Technology Pty. Limited Method for distributing computing between server and client
CN101146116B (zh) * 2006-09-11 2010-11-10 河南科技大学 一种基于网络的cad图形处理系统
JP5368687B2 (ja) * 2007-09-26 2013-12-18 キヤノン株式会社 演算処理装置および方法
CN101140525B (zh) * 2007-10-17 2010-12-08 中兴通讯股份有限公司 分布式编译方法
CN101849224B (zh) * 2007-10-20 2016-04-27 思杰系统有限公司 用于远程处理三维图像数据的方法和系统
EP2245536B1 (en) * 2008-01-27 2018-10-24 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US8751844B2 (en) 2009-09-24 2014-06-10 Citrix Systems, Inc. Systems and methods for attributing an amount of power consumption to a workload
US8539080B1 (en) * 2012-12-18 2013-09-17 Microsoft Corporation Application intelligent request management based on server health and client information
CN104794095B (zh) * 2014-01-16 2018-09-07 华为技术有限公司 分布式计算处理方法及装置
CN107194490B (zh) * 2016-03-14 2022-08-12 商业对象软件有限公司 预测建模优化

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0384339B1 (en) * 1989-02-24 1997-04-02 Digital Equipment Corporation Broker for computer network server selection
US5515536A (en) * 1992-11-13 1996-05-07 Microsoft Corporation Method and system for invoking methods of an object through a dispatching interface
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
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US6360256B1 (en) * 1996-07-01 2002-03-19 Sun Microsystems, Inc. Name service for a redundant array of internet servers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017506373A (ja) * 2013-11-26 2017-03-02 アビニシオ テクノロジー エルエルシー 分散ファイルシステム内のデータへの並列アクセス
US10776325B2 (en) 2013-11-26 2020-09-15 Ab Initio Technology Llc Parallel access to data in a distributed file system
US11599509B2 (en) 2013-11-26 2023-03-07 Ab Initio Technology Llc Parallel access to data in a distributed file system

Also Published As

Publication number Publication date
EP1057101A2 (en) 2000-12-06
CN1292118A (zh) 2001-04-18
WO1999044121A3 (en) 1999-10-21
KR20010034542A (ko) 2001-04-25
WO1999044121A2 (en) 1999-09-02
AU2787699A (en) 1999-09-15

Similar Documents

Publication Publication Date Title
US6446070B1 (en) Method and apparatus for dynamic distributed computing over a network
JP2002505462A (ja) ネットワーク上における動的分散型計算のための方法及び装置
JP3251800B2 (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
US7490330B2 (en) Using a virtual machine instance as the basic unit of user execution in a server environment
CA2165893C (en) Visual application partitioning for creating distributed object oriented applications
US6393497B1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6253252B1 (en) Method and apparatus for asynchronously calling and implementing objects
US8359570B2 (en) Adaptive scripting tool
US6549955B2 (en) System and method for dynamic generation of remote proxies
US7130891B2 (en) Score-based scheduling of service requests in a grid services computing platform
US6453362B1 (en) Systems, methods and computer program products for invoking server applications using tickets registered in client-side remote object registries
US7971210B2 (en) Interface for processing client-server method calls within a single virtual machine
US6877163B1 (en) Method and system for dynamic proxy classes
JP2000155686A (ja) 分散システム中におけるプログラム実行方法及びその装置、分散システム中におけるプログラム実行手順を記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム
JPH0283627A (ja) インタプリタ
JP2000029714A (ja) 分散システム中における実行用プログラムコンポ―ネントのパッケ―ジ方法、実行用プログラムコンポ―ネントのパッケ―ジプログラムを記憶したコンピュ―タ読み書き可能な記憶媒体及びコンピュ―タシステム
EP1076290A2 (en) Method for on-demand network application download and execution
WO1993016437A1 (en) A programming model for a coprocessor on a computer system
JP2003509761A (ja) オブジェクト指向コンピュータプログラムのロード
JPH0991143A (ja) データ処理方法および装置
EP1088264A2 (en) Method and system for delayed class loading using interface stubs
CN113986466A (zh) 一种面向云计算的gpu虚拟化系统和方法
JP2003509767A (ja) オブジェクト指向コンピュータプログラムのロード
Bouraqadi-Saâdani et al. A reflective infrastructure for coarse-grained strong mobility and its tool-based implementation
González‐Castaño et al. A Java/CORBA virtual machine architecture for remote execution of optimization solvers in heterogeneous networks