JP2002505478A - 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング - Google Patents

分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング

Info

Publication number
JP2002505478A
JP2002505478A JP2000533822A JP2000533822A JP2002505478A JP 2002505478 A JP2002505478 A JP 2002505478A JP 2000533822 A JP2000533822 A JP 2000533822A JP 2000533822 A JP2000533822 A JP 2000533822A JP 2002505478 A JP2002505478 A JP 2002505478A
Authority
JP
Japan
Prior art keywords
stream
machine
event
notification
request
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
JP2000533822A
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,919 external-priority patent/US6272559B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505478A publication Critical patent/JP2002505478A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/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
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/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/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/542Event management; Broadcasting; Multicasting; Notifications
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 分散形システムにおいて、そのオブジェクトを全く使用しない中間機械上でのバイトストリームからオブジェクトへの不必要な変換を行うことなく、あるいは、受信機械上のプロセスが、オブジェクトへのアクセスを要求する前に、バイトストリームが先走って変換されることなく、オブジェクトをより効率よく転送すること。 【解決手段】 マーシャルドオブジェクトと呼ばれる、直列化された形式を保持するオブジェクトを用いた分散処理システムにおけるイベントの通知。イベント通知のために、機械は、ネットワーク内にある、特定のイベントの通知を受信するための装置を登録し、マーシャルドオブジェクトは、登録要求と共に転送される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、分散形システムにおける機械間でのオブジェクトの転送のためのシ
ステム及び方法に関し、特に、分散形システムにおけるイベント通知のためのオ
ブジェクトの据置き復元に関する。
【0002】
【従来技術】
(関連出願の引用) この出願は、1997年10月15日に提出された米国特許出願第08/95
0,756号、発明の名称「分散形システムにおけるオブジェクトの据置き復元
及び遠隔ローディング」の一部係属出願であり、参照により本出願に援用する。
【0003】 以下に示す米国特許出願は、本出願が依拠し、かつ、参照により本出願に援用
するものである。 1998年2月26日に提出された米国仮特許出願第60/076,048号
、発明の名称「分散形コンピューティングシステム」。 同日に提出された米国特許出願第09/044,923号、発明の名称「記憶
装置のリーシングのための方法及びシステム」、代理人整理番号06502.0
011−01000。 同日に提出された米国特許出願第09/044,838号、発明の名称「分散
形システムにおける委託証明のリーシングのための方法、装置及び生産物」、代
理人整理番号06502.0011−02000。 同日に提出された米国特許出願第09/044,834号、発明の名称「分散
形システムにおけるグループ会員資格のリーシングのための方法、装置、及び生
産物」、代理人整理番号06502.0011−03000。 同日に提出された米国特許出願第09/044,916号、発明の名称「故障
検知のためのリーシング」、代理人整理番号06502.0011−04000
。 同日に提出された米国特許出願第09/044,933号、発明の名称「イベ
ントベースドシステムにおける移送挙動のための方法」、代理人整理番号065
02.0054−00000。 同日に提出された米国特許出願第09/044,938号、発明の名称「遠隔
方法呼び出しのための方法及び装置」、代理人整理番号06502.0102−
00000。 同日に提出された米国特許出願第09/045,652号、発明の名称「遠隔
方法を識別するための決定性ハッシュのための方法及びシステム」、代理人整理
番号06502.0103−00000。 同日に提出された米国特許出願第09/044,790号、発明の名称「分散
形システムにおける遠隔オブジェクトの状態を決定するための方法及び装置」、
代理人整理番号06502.0104−00000。 同日に提出された米国特許出願第09/044,930号、発明の名称「分散
形システムにおける遠隔手順呼び出しに関連する処理を実行するためのダウンロ
ード可能なスマートプロキシ」、代理人整理番号06502.0105−000
00。 同日に提出された米国特許出願第09/044,917号、発明の名称「遠隔
方法の中断及び続行」、代理人整理番号06502.0106−00000。 同日に提出された米国特許出願第09/044,835号、発明の名称「デー
タベースにおけるマルチエントリー及びマルチテンプレート整合のための方法及
びシステム」、代理人整理番号06502.0107−00000。 同日に提出された米国特許出願第09/044,839号、発明の名称「デー
タベースにおけるインプレース修正のための方法及びシステム」、代理人整理番
号06502.0108。 同日に提出された米国特許出願第09/044,945号、発明の名称「デー
タベースにおけるタイプフェース属性の整合のための方法及びシステム」、代理
人整理番号06502.0109−00000。 同日に提出された米国特許出願第09/044,931号、発明の名称「分散
形システムにおける動的ルックアップサービス」、代理人整理番号06502.
0110−00000。 同日に提出された米国特許出願第09/044,939号、発明の名称「分散
形システムにおいて装置と通信する際に用いられるダウンロード可能なコードを
提供するための装置及び方法」、代理人整理番号06502.0112−000
00。 同日に提出された米国特許出願第09/044,826号、発明の名称「ルッ
クアップサービスへのアクセスを容易化するための方法及びシステム」、代理人
整理番号06502.0113−00000。 同日に提出された米国特許出願第09/044,932号、発明の名称「分散
形システムにおける動的情報証明のための装置及び方法」、代理人整理番号06
502.0114−00000。 1998年2月26日に提出された米国特許出願第09/030,840号、
発明の名称「ネットワークを超えた動的分散形コンピューティングのための方法
及び装置」、代理人整理番号06502.0115−00000。 同日に提出された米国特許出願第09/044,936号、発明の名称「永続
的な共用記憶領域のための会話形設計ツール」、代理人整理番号06502.0
116−00000。 同日に提出された米国特許出願第09/044,934号、発明の名称「多様
トークンベースドコントロール」、代理人整理番号06502.0117−00
000。 同日に提出された米国特許出願第09/044,915号、発明の名称「スタ
ックベースドアクセスコントロール」、代理人整理番号06502.0118−
00000。 同日に提出された米国特許出願第09/044,944号、発明の名称「スタ
ックベースド機密条件」、代理人整理番号06502.0119−00000。 同日に提出された米国特許出願第09/044,837号、発明の名称「機密
条件のプリメソッド指示」、代理人整理番号06502.0120−00000
【0004】 (発明の背景) 二地点間データ転送に集中する分散形プログラムは、遠隔端末アクセスとファ
イル転送のための特殊目的プロトコルを使用することによって、適切かつ効率的
に処理することができる。そのようなプロトコルは、1つのプログラムのために
特別に作られ、様々な分散形プログラム(例えば、分散処理システム、電子メー
ルシステム、コンピュータ会議システムなど)を構築するための基礎を提供する
ものではない。
【0005】 一方、慣用の転送サービスは、分散形プログラムを構築するための基礎として
用いることができるが、これらのサービスは、異なる機械において異なるタイプ
のデータの使用、同期の容易性の欠如、及び単純プログラミングパラダイムのた
めの規定がないこと、のような多くの構成上の問題を示している。
【0006】 分散形システムは、通常、通信ネットワークによって相互に接続された異なる
タイプの多くの機械を含んでいる。各機械は、固有の内部データタイプ、固有の
アドレス配列規則、及び固有のオペレーティングシステムを有している。この異
質性が、分散形システムを構築するときに問題を引き起こす。その結果、プログ
ラム開発者は、そのような異質の分散形システムのために開発されたプログラム
の中に、情報が異なる機械において処理されかつ矛盾無く解釈されることを保証
する処理を行う機能を含めなければならない。
【0007】 しかしながら、プログラムの大部分は、プロセス間での要求と応答の会話を使
用しており、そこでは、開始プログラム(すなわち、通信を開始するプログラム
)は、応答が返されるまで待ちながらブロックされ、従って、この期間、アイド
ル状態となるということに注目することによって、1つの単純化が与えられる。
これは、プロセス間の手続呼び出し機構によってモデル化することができる。そ
の種の機構の1つは、遠隔手続呼び出し(RPC)と呼ばれているものである。
【0008】 RPCは、同一機械又は異なる機械上で作動している2つのプロセス(例えば
、プログラム、アプレットなど)間の同期通信を提供するための機構である。単
純なケースにおいては、1つのプロセス、例えば、クライアントプログラムは、
他のプロセス、例えば、サーバープログラムにメッセージを送信する。この場合
、プロセスにとっては、メッセージの送信又は受信のいずれかの時に同期してい
ることは必要ではない。クライアントプログラムにとっては、メッセージを転送
し、次いで新たな動作を始めることが可能であり、サーバープログラムの環境に
とっては、サーバープログラムが新たなメッセージを処理する準備ができるまで
、入ってくるメッセージをバッファに入れることが可能である。
【0009】 しかしながら、RPCは、一方向にパラメータをパスすること、サーバプログ
ラムのコールされた手続が完了するまでコーリングプロセス(すなわち、クライ
アントプログラム)をブロックすること、及び、その後に応答を返送することを
要求するローカルな手続呼び出しをもっぱらモデル化しているので、同期に制約
を課している。従って、RPCは、2つのメッセージ転送と、コールの持続時間
のための2つのプロセスの同期とを含んでいる。
【0010】 RPC機構は、通常、ローカル手続呼び出しパラダイムを使用して2つのプロ
セッシング部分において実施され、1つの部分はクライアントサイドであり、ま
た他の部分はサーバーサイドである。これらの部分の双方については、図1を参
照しながら、以下に説明する。
【0011】 図1は、RPC機構を使用したコール情報の流れを表す図である。図1に示す
ように、クライアントプログラム100は、コールを発する(ステップ102)
。次に、RPC機構101は、そのコールを、コールパケットの引数としてパッ
クし(ステップ103)、RPC機構101は、次いでこれをサーバープログラ
ム109に転送する(ステップ104)。コールパケットは、また、最初にコー
ルを送信したクライアントプログラム100を識別するための情報も含んでいる
。コールパケットが転送された後(ステップ104)、RPC機構101は、サ
ーバープログラム109からの応答を待つ間、待ち状態に入る。
【0012】 サーバープログラム109のためのRPC機構108(サーバープログラム1
09がクライアントプログラム100と同一のプラットフォーム上にある時には
、RPC機構101と同一のRPC機構であっても良い。)は、コールパケット
を受信し(ステップ110)、コールパケットからそのコールの引数をアンパッ
クし(ステップ111)、コール情報を用いて、そのコールがアドレスされたサ
ーバープログラム109を識別し、サーバープログラム109に対してコールの
引数を提供する。
【0013】 サーバープログラムは、コールを受信し(ステップ112)、適切な手続を呼
び出すことによってそのコールを処理し(ステップ115)、RPC機構108
に応答を返送する(ステップ116)。次に、RPC機構108は、応答パケッ
トにその応答をパックし(ステップ114)、これをクライアントプログラム1
00に転送する(ステップ113)。
【0014】 応答パケットの受信(ステップ107)は、RPC機構101に、待ち状態か
ら出ること及び応答パケットから応答をアンパックすることを誘発させる(ステ
ップ106)。次に、RPC101は、そのコールに応えて、クライアントプロ
グラム100に対して応答を供給する(ステップ105)。これが、ローカル手
続呼び出しパラダイムにならって作られる典型的なRPC機構のプロセスフロー
である。RPC機構は、ローカル手続呼び出しパラダイムを使用するので、クラ
イアントプログラム100は、コールがあったときに応答が返送されるまでブロ
ックされる。すなわち、クライアントプログラム100は、サーバプログラム1
09からの応答を待つというよりも、むしろ、コールを送信した後、その固有の
処理を続行することができない。
【0015】 ジャバ(商標)プログラミング言語は、典型的には、プラットフォームに依存
しないフォーマットでコンパイルされ、バイトコード命令集合を使用するオブジ
ェクト指向プログラミング言語であり、ジャバ仮想計算機(JVM)をサポート
しているいかなるプラットフォーム上においても実行することができる。この言
語は、例えば、”ジャバ言語仕様”、ジェームス ゴスリング、ビル ジョイ及
びガイ スティール共著、アディソン−ウェスレイ、1996年、に記載されて
おり、参照によって本出願に引用する。JVMは、例えば、”ジャバ仮想計算機
仕様”、ティム リンドホルム及びフランク イェリン共著、アディソン ウェ
スレイ、1996年に記載されており、参照によって本出願に引用する。ジャバ
及びジャバを基礎とする商標は、米国及び他の国において、サンマイクロシステ
ムズ社の商標又は登録商標である。
【0016】 JVMは、いかなるタイプのプラットフォーム上においても実行することがで
きるので、JVMを用いた分散形プログラムの実施は、異質な分散形システムの
ためのプログラムの開発に関連する困難性を著しく減少させる。さらに、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は、オブジェクト
を、転送されるオブジェクトのタイプ及びオブジェクトを構成するデータの識別
を含むバイトストリーム207に変換することによって、オブジェクト203の
ためのコールに対して応答するためにRMI205を使用する。機械201が、
オブジェクト203のためのコールに対して応答している間、システム200内
にある同一又は他の機器上で作動しているプロセスは、その要求に対する応答を
待つことなく、処理を続行することができる。
【0018】 機械202は、バイトストリーム207を受信する。RMI206を用いて、
機械202は、自動的に、これを対応するオブジェクト204に変換する。これ
は、オブジェクト203のコピーであり、オブジェクトを、機械202上で実行
しているプログラムによって使用可能なものにする。機械202は、また、最初
にこのオブジェクトをバイトストリームに変換し、次いで3番目の機械に対して
これを送信することにより、このオブジェクトを他の機械に転送することもでき
る。3番目の機械もまた、自動的に、バイトストリームを対応するオブジェクト
に変換する。
【0019】
【発明が解決しようとする課題】
このような方法によるバイトストリームからオブジェクトへの自動的な復元は
、時々、不必要な処理を必要とする。例えば、コールがなされたときに、オブジ
ェクトとの実際の又は直接の会話を要求しない時間があり、両者は、バイトスト
リームからオブジェクト形式への変換を要求する。その代わりに、コールは、そ
のオブジェクトを他のコールにパスすること、又は、後で使用するためにそれを
記憶することを要求してもよい。このような状況においては、中間機械上におけ
るオブジェクトの復元、特に、そのオブジェクトが他の機械に転送されるべきも
のである場合におけるオブジェクトの復元は、不要である。そのような状況の例
には、分散形システムにおけるイベントの通知のためのオブジェクトの転送が含
まれている。従って、分散形システムにおいては、そのオブジェクトを全く使用
しない中間機械上でのバイトストリームからオブジェクトへの不必要な変換を行
うことなく、あるいは、受信機械上のプロセスが、オブジェクトへのアクセスを
要求する前に、バイトストリームが先走って変換されることなく、オブジェクト
をより効率よく転送することが望ましい。
【0020】
【課題を解決するための手段】
本発明に係る方法は、分散形システム内において特定のイベントの通知のため
の要求に関連するオブジェクトを指定する。このオブジェクトは、そのオブジェ
クトの自己記述形式を含むストリームに変換され、そのストリームは、イベント
の発生に基づくストリームの中で識別されたプログラムコードにアクセスするこ
とによって、オブジェクトが復元される機械に選択的な転送のために提供される
【0021】 本発明に係る他の方法は、第1の機械において、分散形システム内における特
定のイベントの通知のための要求に関連するオブジェクトの自己記述形式を含む
ストリームを受信する。この方法は、そのストリームを第2の機械に送信するか
どうかを決定すること、及び、ストリームの中で識別されたプログラムコードに
アクセスすることによって、そのオブジェクトを復元するための第2の機械にス
トリームを選択的に送信し、第1の機械がイベントの通知を供給することを含む
【0022】 本発明に係る装置は、分散形システム内において特定のイベントの通知のため
の要求に関連するオブジェクトを指定する。この装置は、そのオブジェクトを、
そのオブジェクトの自己記述形式を含むストリームに変換し、そのストリームを
、選択的な転送のために、イベントの発生に基づくストリームの中で識別される
プログラムコードにアクセスすることによって、そのオブジェクトが復元される
機械に供給する。
【0023】 本発明に係る他の装置は、第1の機械において、分散形システム内における特
定のイベントの通知のための要求に関連するオブジェクトの自己記述形式を含む
ストリームを受信する。この装置は、そのストリームを第2の機械に送信するか
どうかを決定し、及び、ストリームの中で識別されたプログラムコードにアクセ
スすることによって、そのオブジェクトを復元するための第2の機械にそのスト
リームを選択的に送信し、第1の機械がイベントの通知を供給する。
【0024】
【発明の実施の形態】 添付された図面は、この明細書に取り入れられ、かつ、この明細書の一部を構
成し、その記述と共に、本発明の利点及び概念を説明するものである。
【0025】 (概要) 本発明に係るシステムは、RPC又はRMIの変形を用いて、引数及び返却値
をパスしながら、1つのプロセスから他のプロセスに効率的にオブジェクトを転
送するものであり、各プロセスは、異なる機械上にあってもよい。そのような場
合には、プログラムによって必要とされない限り、オブジェクトの復元、及び、
そのようなオブジェクトの復元に関連するコードのダウンロードを据え置くこと
が望ましい。「機械」の用語は、この文脈においては、物理機械又は仮想機械を
指すために用いられる。多数の仮想機械は、同一の物理機械上に存在していても
よい。RPCシステムの例には、分散形計算方式環境(DCE)RPC、及びマ
イクロソフト分散形共通オブジェクトモデル(DCOM)RPCが含まれる。
【0026】 これがどのように達成されるかの一例は、自己記述ストリームをシステム内に
おけるファーストクラスエンティティにすることであり、これは、プログラミン
グ言語の1つのタイプのシステム内に存在し、その言語で書かれた指示によって
アクセス及び操作できることを意味している。ストリームは、典型的には、ビッ
トパターンのような転送可能な文字列であり、かつ、自己記述バイトストリーム
は、対応するオブジェクトに逆変換できるような十分な情報を含むバイトストリ
ームである。
【0027】 ”マーシャルドオブジェクト”と呼ばれるオブジェクトは、自己記述ストリー
ムを備えている。そのようなマーシャルドオブジェクトは、典型的には、1つの
アドレス空間から他のアドレス空間にパスすることができる、いかなるオブジェ
クトからでも作ることができ、それらは、記憶され、他のオブジェクトにパスさ
れ、又は、要求に応じてオリジナルタイプのオブジェクトに復元するために使用
されることができる。マーシャルドオブジェクトを使用する利点は、マーシャル
ドオブジェクトにアクセスするプロセスが、直接、マーシャルドオブジェクトを
用いたオブジェクトの創造を呼び出すまで、オブジェクトの復元が据え置かれる
ことである。マーシャルドオブジェクトが、そのマーシャルドオブジェクトを作
るために前に使用されたオリジナルオブジェクトのコピーを創造するために用い
られるまで、オブジェクト上で操作するために必要ないかなるコードのダウンロ
ードも、据え置かれる。
【0028】 従って、オブジェクトは使用されないが、後で検索するために記憶され、又は
、他のプロセスに沿ってパスされる場合においては、RMIは、オブジェクトを
復元するために要求されるコードをダウンロードしない。これは、時間及びコー
ドの記憶スペースの双方の点において、著しい効率化をもたらす。
【0029】 イベント通知は、例えば、マーシャルドオブジェクトの使用を通じて発生する
場合がある。イベント通知のために、機械は、分散形ネットワーク内において特
定のイベントの通知を受信するための装置を登録する。この装置は、登録のため
の要求をマーシャルドオブジェクトと共にイベントジェネレータに転送し、イベ
ントジェネレータは、後の転送を可能にするためにマーシャルドオブジェクトを
記憶する。もし、イベントが発生した場合には、イベントジェネレータは、マー
シャルドオブジェクトを含むイベントの通知をイベントリスナー送信する。イベ
ントリスナーは、そのイベントに関連する情報を含むマーシャルオブジェクトを
復元してもよい。イベントリスナーは、通知を要求している装置と同一であって
も良い。イベントには、例えば、状態の変化あるいはオブジェクトの発生が含ま
れる。分散形システムにおけるより特別なイベントの例には、以下のもの、すな
わち、キー又はカーソル制御装置によるクリック、ディスプレイ装置上のウイン
ドウのオーバーラッピング、デバイスのネットワークへの接続、ユーザのネット
ワークへのログオン、及び特別のユーザアクションが含まれるが、これに限定さ
れるものではない。
【0030】 (分散処理システム) 図3は、本発明を実施する際に用いられる典型的な分散処理システム300を
図示したものである。図3において、分散処理システム300は、ネットワーク
雲319で表現されるネットワーク配置において連結された3つの独立した、か
つ、異質のプラットフォーム301、302及び303を含んでいる。雲319
で表現されるネットワーク配置の構成及びプロトコルは、それがプラットフォー
ム301、302及び303間における情報の通信を許す限り、重要ではない。
加えて、3個のプラットフォームを使用することは、単なる例示であり、本発明
の実施を、特定の数のプラットフォームを使用することに限定するものではない
。さらに、特定のネットワーク体系は、本発明の実施例にとって重要ではない。
例えば、本発明の実施に用いることができる他のネットワーク体系としては、他
のすべてのプラットフォームが連結されるネットワークコントローラとして1つ
のプラットフォームを用いるものがある。
【0031】 分散処理システム300を実施する場合において、各プラットフォーム301
、302及び303は、それぞれ、プロセッサ316、317及び318、並び
に、メモリ304、305及び306を含んでいる。各メモリ304、305及
び306に含まれているものは、それぞれ、アプリケーション307、308及
び309、オペレーティングシステム310、311及び312、並びに、RM
Iコンポーネント313、314及び315である。
【0032】 アプリケーション307、308及び309は、本発明の実施によって提供さ
れるサービスを対象として仕事をするために以前に書かれ、かつ修正されたもの
、あるいは、本発明の実施によって提供されるサービスを利用するために特別に
書かれたもののいずれかのアプリケーション又はプログラムであってもよい。ア
プリケーション307、308及び309は、本発明の実施に従って実行される
オペレーションを呼び出す。
【0033】 オペレーティングシステム310、311及び312は、それぞれ、対応する
プロセッサ316、317及び318に結びつけられた典型的な基本オペレーテ
ィングシステムである。プラットフォーム301、302及び303は、異質な
ものであっても良い。例えば、プラットフォーム301は、サンマイクロシステ
ムズ社によって製造されたウルトラスパーク(登録商標)マイクロプロセッサを
プロセッサ316として有し、ソラリス(登録商標)をオペレーティングシステ
ム310として使用する。プラットフォーム302は、シリコングラフィクス社
によって製造されたMIPSマイクロプロセッサをプロセッサ317として有し
、ユニックスをオペレーティングシステム311として使用する。最後に、プラ
ットフォーム303は、インテル社によって製造されたペンティアムマイクロプ
ロセッサをプロセッサ318として有し、マイクロソフトウィンドウズ95をオ
ペレーティングシステム312として使用する。本発明の実施は、これに限定さ
れるものではなく、同質のプラットフォームでも同様に適応することができる。
【0034】 サン、サンマイクロシステムズ、ソラリス、ジャバ、及びサンロゴは、米国及
び他の国におけるサンマイクロシステムズ社の商標又は登録商標である。ウルト
ラスパーク及び他のすべてのスパーク商標は、許諾を得て使用されており、米国
及び他の国において、スパークインターナショナル社の商標である。スパーク商
標が付された生産物は、サンマイクロシステムズ社によって開発された体系に基
づいている。
【0035】 メモリ304、305及び306は、関連するプラットフォームのための一般
的な記憶のようないくつかの機能を提供する。他の機能は、各プロセッサ316
、317及び318によって実行されている間に、それぞれ、アプリケーション
307、308及び309、RMIコンポーネント313、314及び315、
並びにオペレーティングシステム310、311及び312を記憶することであ
る。加えて、メモリ304、305及び306の一部は、ネットワーク319中
のすべてのプラットフォーム301、302及び303が利用可能な共用記憶域
を構成してもよい。RMIコンポーネント313、314及び315は、図を単
純化するために図示されていないJVMと関連して作動することを特筆しておく
【0036】 (分散形システムインフラストラクチャ) 本発明に係るシステム及び方法は、特別な分散形システム400内においても
また作動することができる。これについては、図4及び図5を参照しながら説明
する。分散形システム400は、(1)システムのユーザに、多くの装置のネッ
トワークを超えてサービス及び資源を共用することを許すため、(2)プログラ
マーに、強く安全な分散形システムの開発を可能とするツール及びプログラミン
グパターンを提供するため、並びに、(3)分散形システムを管理する作業を単
純化するために、ハードウェア及びソフトウェアを含む様々なコンポーネントを
備えている。この目的を達成するために、分散形システム400は、シームレス
な形式で、コード及びデータの双方が装置から装置に移動することを許容するジ
ャバプログラミング環境を利用している。従って、分散形システム400は、ジ
ャバプログラミング環境のトップにレイヤされ、これによって生じる安全性と、
これによって提供される強いタイピングとを含むこの環境の特性を利用する。
【0037】 図4及び図5に示す分散形システムにおいて、異なるコンピュータ及び装置は
、ユーザには単一のシステムにいるように見えるものに連合される。単一のシス
テムのように見えることによって、分散形システム400は、パーソナルコンピ
ュータあるいはワークステーションの柔軟性及び個別化された応答性を放棄する
ことなく、単一システムによって提供可能なアクセスの単純性と共用の力を提供
する。分散形システム400は、地理的に分散しているが、信用、運営及びポリ
シィの基本的な考えに同意しているユーザによって操作される数千の装置を含ん
でいても良い。
【0038】 典型的な分散形システムの内部には、1又はそれ以上の装置によって提供され
るサービスの様々な論理的グルーピングがあり、そのような各論理的グルーピン
グは、Djinnとして知られている。”サービス”とは、ユーザ、プログラム
、装置又は、他のサービスがアクセス可能であり、かつ、計算でき、記憶に関係
し、通信に関係し、及び他のユーザにアクセスを供給することに関係がある資源
、データ又は機能を言いう。Djinnの一部として提供されるサービスの例に
は、プリンタ、ディスプレイ及びディスクのような装置、プログラム又はユーテ
ィリティのようなソフトウェア、データベース及びファイルのような情報、並び
に、システムのユーザが含まれる。
【0039】 ユーザ及び装置の双方とも、Djinnに結合することができる。Djinn
に結合したとき、ユーザ又は装置は、0又はそれ以上サービスをDjinnに加
え、セキュリティの制約を条件として、それに含まれるサービスのいずれにもア
クセスすることができる。すなわち、装置とユーザは、Djinnと連合し、そ
のサービスへのアクセスを共用する。Djinnのサービスは、プログラム的に
は、他のオブジェクト、異なるプログラミング言語で書かれたソフトウェアコン
ポーネント、又はハードウェア装置を含むジャバプログラミング環境のオブジェ
クトのように見える。サービスは、そのサービスに要求されるオペレーションを
定義するインターフェースを有し、サービスのタイプは、そのサービスを構成す
るインターフェースを決定する。
【0040】 分散形システム400は、ネットワーク408で相互に接続されたコンピュー
タ402、コンピュータ404及び装置406を備えている。装置406は、プ
リンタ、ファックス機械、記憶装置、コンピュータ、あるいは他の装置のような
多くの装置のいずれであっても良い。ネットワーク408は、ローカルエリアネ
ットワーク、ワイドエリアネットワーク、あるいは、インターネットのいずれで
あっても良い。わずか2つのコンピュータと1つの装置が分散形システム400
に備えられているものとして図示されているが、当業者であれば、分散形システ
ム400は、追加のコンピュータ又は装置を含んでいても良いことがわかるであ
ろう。
【0041】 図5は、分散形システム400の多くのソフトウェアコンポーネントを示すた
めに、コンピュータ402を詳細に図示したものである。当業者であれば、コン
ピュータ404又は装置406が同様に配置されていても良いことがわかるであ
ろう。コンピュータ402は、メモリ502、第2記憶装置504、中央演算ユ
ニット(CPU)506、入力装置508、及びビデオディスプレイ510を含
んでいる。メモリ502は、ルックアップサービス512、ディスカバリィサー
バ514、及びジャバランタイムシステム516を含んでいる。ジャバランタイ
ムシステム516は、ジャバRMIシステム518及びJVM520を含んでい
る。第2記憶装置504は、ジャバスペース522を含んでいる。
【0042】 上述したように、分散形システム400は、ジャバプログラミング環境に基づ
いており、従って、ジャバランタイムシステム516を利用する。ジャバランタ
イムシステム516は、ジャバランタイムシステムのトップで作動しているプロ
グラムが、プラットフォームに依存しない方法で、ホストオペレーティングシス
テムのウィンドウイング機能及びネットワーキング機能を含む様々なシステム機
能にアクセスすることを許容するジャバAPIライブラリィズを含んでいる。ジ
ャバAPIライブラリィズは、ジャバランタイムシステムがポートされるすべて
のオペレーティングシステムを通って単一の共用APIを供給するので、ジャバ
ランタイムシステムのトップで作動しているプログラムは、ホストプラットフォ
ームのオペレーティングシステムやハードウェア配置にかかわらず、プラットフ
ォームに依存しない方法で作動する。ジャバランタイムシステム516は、カリ
フォルニア州、マウンテンビューのサンマイクロシステムズ社から入手可能なジ
ャバソフトウェア開発キットの一部として供給される。
【0043】 JVM520もまた、プラットフォーム独立性を容易化する。JVM520は
、バイトコードの形式でプログラムから指示を受信し、それらをオブジェクトコ
ードのような実行のための形式に動的に変換することによって、これらのバイト
コードを解釈し、これらを実行する抽象的なコンピュータのように機能する。R
MI518は、1つのコンピュータ又は装置上で実行しているオブジェクトに、
他のコンピュータ又は装置上にあるオブジェクトの方法を呼び出すことを許容す
ることによって遠隔方法呼び出しを容易化する。RMI及びJVMの双方とも、
ジャバソフトウェア開発キットの一部として提供される。
【0044】 ルックアップサービス512は、特定のDjinnにとって入手可能なサービ
スを定義する。すなわち、分散形システム400内部に、1より多いDjinn
があり、その結果として、1より多いルックアップサービスがある。ルックアッ
プサービス512は、Djinn内部に各サービスのための1つのオブジェクト
を含んでおり、各オブジェクトは、対応するサービスにアクセスすることを容易
化する様々な方法を含んでいる。ルックアップサービス512は、先に参照によ
って本出願に引用した米国特許出願、発明の名称「ルックアップサービスへのア
クセスを容易化するための方法及びシステム」に記載されている。
【0045】 ディスカバリサーバ514は、ブートアンドジョイン(又はディスカバリィ)
として知られるプロセスの間に、新たな装置が分散形システム400に付加され
た時、及び、そのような新しい装置が発見された時を検出し、このディスカバリ
サーバは、ルックアップサービス512に対するリファレンスを新たな装置にパ
スし、これによって、新たな装置は、ルックアップサービスにそのサービスを登
録し、Djinnのメンバーとなる。登録の後、新たな装置は、Djinnのメ
ンバーとなり、その結果として、その装置は、ルックアップサービス512に含
まれるすべてのサービスにアクセスすることができる。ブートアンドジョインの
プロセスは、前に参照により本出願に引用した米国特許出願、発明の名称「分散
形システムにおいて装置と通信する際に使用するダウンロード可能なコードを供
給するための装置及び方法」に記載されている。
【0046】 ジャバスペース522は、オブジェクトを記憶するために、分散形システム4
00内のプログラムによって使用されるオブジェクトリポジトリィである。プロ
グラムは、分散形システム400内の他の装置がオブジェクトにアクセス可能と
するだけでなく、オブジェクトを永続的に記憶するためにジャバスペース522
を使用する。ジャバスペースは、共通譲受人に譲受され、1997年11月17
日に提出された米国特許出願第08/971,529号、発明の名称「多様なエ
ントリー及びエントリー整合に用いられるデータベースシステム」に記載されて
おり、参照によって本出願に引用する。当業者であれば、典型的な分散形システ
ム400は、多くのルックアップサービス、ディスカバリィサーバ、及びジャバ
スペースを含んでいても良いことがわかるであろう。
【0047】 (分散処理システム内におけるデータフロー) 図6は、コンピュータもしくは1以上のコンピュータに存在する仮想機械、又
は図3を参照して記述された機械、のような機械601、602及び603が接
続されたオブジェクト指向分散形システム600の図である。転送機械601は
、オブジェクト605及び606のようなオブジェクトを記憶するメモリ604
と、そのオブジェクトに基づいて処理を実行するRMI607を含んでいる。ネ
ットワーク600を超えてオブジェクトを転送するために、RMI607は、オ
ブジェクト605を、バイトストリーム608として機械602に転送されるマ
ーシャルドオブジェクトに変換するためにコード609を使用する。ジャバプロ
グラミング言語で使用される、インプットストリーム及びアウトプットストリー
ムを含むストリームは、この分野において知られており、参照によって本出願に
引用する説明としては、例えば、”ジャバチュートリアル:インターネットのた
めのオブジェクト指向プログラミング”、pp.325−53、メアリー カン
ピオン及びキャシー ウォルラス共著、アディソン−ウェスレイ、1996年に
記載されている。
【0048】 この変換の一部には、受信機械602がそのオブジェクトを復元できるような
情報の付加が含まれている。1組のオブジェクトタイプが限定されており、かつ
、すべての機械601、602及び603において同一である時には、受信機械
は、典型的には、オブジェクトの状態とそのタイプに関する記述を要求する。こ
れは、そのオブジェクトコードは、すでにすべてのネットワーク機械上に存在し
ているためである。代わりに、機械601は、必要なときに、情報又はオブジェ
クトの状態及びタイプと同時にコードが移動することを許容する、よりすぐれた
柔軟性を提供するために、RMI607を使用する。加えて、転送機械は、マー
シャルドオブジェクトの中に、転送されたオブジェクトのタイプの識別、オブジ
ェクトの状態を構成するデータ、及び、そのオブジェクトに関連するコードのた
めのURL形式でのネットワークでアクセス可能なロケーションを含める。UR
Lは、この分野において知られており、参照によって本出願に引用する説明とし
ては、例えば、”ジャバチュートリアル:インターネットのためのオブジェクト
指向プログラミング”、pp494−507、メアリー カンピオン及びキャシ
ー ウォルラス共著、アディソン−ウェスレイ、1996年、に記載されている
【0049】 受信機械602は、バイトストリーム608を受信したときに、転送されたオ
ブジェクトのタイプを識別する。機械602は、オブジェクトを処理するための
固有のRMI610及びコード611を含んでいる。もし、バイトストリーム6
08が、マーシャルドオブジェクトを含んでいる場合には、機械602は、マー
シャルドオブジェクトにおいて識別されたオブジェクトタイプ、状態情報、及び
、オブジェクトのコードを使用して、新たなオブジェクト614を生成してもよ
い。オブジェクト614は、オブジェクト605のコピーであり、機械602の
メモリー613内に記憶される。もし、コード612が、機械602において存
在せず又は利用できず、かつ、マーシャルドオブジェクトが、そのコードを含ん
でいない場合には、RMI610は、コードの位置付けをし、コードのコピーを
機械602に転送するために、マーシャルドオブジェクトからのURLを使用す
る。コード612は、一般的には、そのオブジェクトがアンマーシャルドである
場合にのみ要求される。コードは、バイトコード形式であり、そのためにポータ
ブルであるので、受信機械は、オブジェクトを復元するために、RMI610に
コードをロードすることができる。すなわち、機械602は、その種のオブジェ
クトが、それ以前にその機械上に存在していなかった場合であっても、適切なタ
イプのオブジェクトを復元することができる。
【0050】 機械602は、また、3番目の機械603に転送するために、オブジェクト6
14をバイトストリーム615に変換してもよく、3番目の機械603は、オブ
ジェクトを処理するための固有のRMI618及びコード619を持っている。
RMI618は、オブジェクトのためのコード620を使用して、バイトストリ
ーム615を対応するオブジェクト616に変換し、これをメモリ617に記憶
する。オブジェクト616は、オブジェクト605のコピーである。もし、オブ
ジェクトのためのコード620が、存在しない場合又は利用できない場合には、
機械603は、上述したように、URLを用いて他の機械からコードを要求する
【0051】 機械602は、代わりに、マーシャルドオブジェクトを、オブジェクトに復元
することなく、バイトストリームとして記憶してもよい。次いで、機械602は
、そのバイトストリームを機械603に転送してもよい。
【0052】 (マーシャルドオブジェクト) マーシャルドオブジェクトは、そのオブジェクトがRMIコール中のパラメー
タとしてパスされることを許容するが、受信機械上で実行しているプログラムが
、マーシャルドオブジェクトに対するコールを経由して、明白にオブジェクトを
要求するまで、受信機械においてマーシャルドオブジェクトの変換を延期するオ
ブジェクトのためのコンテナである。コンテナは、データ並びにコード又はオブ
ジェクトのためのコードに対する参照のいずれかを含み、かつ、転送のためのオ
ブジェクトを保持する封筒である。マーシャルドオブジェクトに含まれる直列化
可能なオブジェクトは、典型的には直列化されており、RMIコールの中でパス
されたパラメータと同一の意味が要求されたときに、非直列化される。直列化は
、オブジェクトのイン−メモリ表現を対応する自己記述バイトストリームに変換
するプロセスである。非直列化は、自己記述形式のバイトストリームを対応する
オブジェクトに変換するプロセスである。
【0053】 オブジェクトをマーシャルドオブジェクトに変換するために、そのオブジェク
トは、マーシャルドオブジェクトのコンテナ内部に置かれ、URLがそのオブジ
ェクトのためのコードを位置付けるために使用されたときには、そのURLが、
コンテナに付加される。すなわち、その含まれるオブジェクトが、マーシャルド
オブジェクトのコンテナから回収されたときに、そのオブジェクトのコードが居
所的に利用できない場合には、コンテナに付加されたURLは、そのオブジェク
トのクラスのためのバイトコード形式でのコードを位置付け、かつ、ロードする
ために使用される。
【0054】 表1は、本発明に係るマーシャルドオブジェクトのためのジャバプログラミン
グ言語による典型的なクラス定義である。
【0055】
【表1】 package java.rmi; public final class MarshalledObject implements java.io.Serializable { public MarshalledObject(Object obj) throws java.io.IOException; public Object get() throws java.io.IOExeception, ClassNotFoundException; public int hashCode(); public boolean equals(); }
【0056】 マーシャルドオブジェクトは、コンピュータで読み取り可能な記憶媒体に記憶
されたオブジェクトの表現を指定している製造物の中で具体化されてもよい。
【0057】 マーシャルドオブジェクトのコンストラクタは、その単一の引数として直列化
可能なオブジェクト(obj)を用い、バイトストリーム中でオブジェクトのマ
ーシャルド表現を保持する。オブジェクトのマーシャルド表現は、RMIコール
の中でパスされるオブジェクトの意味を保持する。ストリーム中の各クラスは、
典型的には、オブジェクトがコールによって「ゲット」方法に復元されるときに
、各クラスのためのバイトコードが、配置され、かつ、ロードされるように、オ
ブジェクトコード又はコードに対するURLに注釈が付けられ、遠隔オブジェク
トは、そのプロキシスタブに置き換わる。「ゲット」方法は、アンマーシャリン
グのプロセスを実行するためのプログラムによってコールされた方法であり、こ
れは、自己記述バイトストリーム(マーシャルドオブジェクト)を用いたマーシ
ャルドオブジェクトからのオブジェクトの復元、及び、そのプロセスのための必
要なコードを取得するためのプロセスである。プロキシスタブは、オブジェクト
の復元に使用するための遠隔オブジェクトに対する参照である。
【0058】 クラスマーシャルドオブジェクトの例が、”java.io.ObjectOutputStream,” に書き込まれているときは、コンストラクションの間に作られた、含まれている
オブジェクトのマーシャルド形式は、ストリームに書き込まれる。すなわち、バ
イトストリームのみが、直列化される。
【0059】 マーシャルドオブジェクトが、”java.io.ObjectInputStream,”から読み込ま
れるときは、含まれているオブジェクトは、非直列化されて新たなオブジェクト
となることはない。むしろ、オブジェクトは、マーシャルドオブジェクトのゲッ
ト方法がコールされるまで、そのマーシャルド表現のまま残る。
【0060】 「ゲット」方法は、好ましくは、常に、含まれるオブジェクトの新たなコピー
をそのマーシャルド形式から復元する。内部表現は、RMIコールのためのアン
マーシャリングパラメータを使用して、同一の意味に非直列化される。すなわち
、オブジェクトの表現の非直列化は、局所的に利用できない場合には、オブジェ
クトの直列化されたストリームの中に埋め込まれたURL注釈を使用して、クラ
スコードをロードする。
【0061】 マーシャルドオブジェクトのクラス定義において示したように、オブジェクト
のマーシャルド表現のハッシュコードは、オブジェクト自身のハッシュコードと
等価であることと定義される。一般に、ハッシュコードは、情報の迅速なルック
アップを実行するために、ハッシュテーブルの中で使用され、この点は、この分
野では知られている。イコール方法は、比較されるオブジェクトのマーシャルド
表現が等価である場合には、真を返す。イコール方法は、復元されたオブジェク
トが、オリジナルオブジェクトと同一であるかどうかを決定することによって復
元を証明するものであり、そのような方法は、ジャバプログラミング言語におい
て知られている。
【0062】 (マーシャルドオブジェクトの転送) 図7は、本発明に係る分散形システムにおけるオブジェクトの転送において好
適に実行されるステップ700のフロー図である。機械は、バイトストリームを
受信し(ステップ701)、そのバイトストリームには、オブジェクトのための
データ、オブジェクトのタイプを識別する情報、及び、付随的にオブジェクトに
関連するコードのURLが含まれる。受信機械は、オブジェクトのコードが存在
しているか、あるいは利用可能であるかどうかを決定する(ステップ702)。
もし、利用可能である場合には、機械は、好ましくはRMIを使用して、バイト
ストリーム及びレジデントコードからオブジェクトを復元する(ステップ704
)。もし、コードが存在していない場合には、機械は、バイトストリームからの
URLを使用して、ネットワークのアクセス可能な位置に配置された他の機械か
らコードを要求し、その機械は、コードのコピーを返す(ステップ703)。オ
ブジェクトは、また、バイトストリームの形式で、他の機械に転送される(ステ
ップ705)。
【0063】 図8は、本発明に係る分散形システムにおいてマーシャルドオブジェクトを転
送する時に、コードローディング及びオブジェクトの構成を据え置くために好適
に実行されるステップ800のフロー図である。機械は、バイトストリームを受
信し(ステップ801)、そのバイトストリームには、オブジェクトのためのデ
ータ、オブジェクトのタイプを識別する情報、及び、付随的にオブジェクトに関
連するコードのためのURLが含まれている。
【0064】 機械は、バイトストリームが、マーシャルドオブジェクトかどうかを決定する
(ステップ802)。もし、そのようなオブジェクトでない場合には、機械は、
バイトストリームの通常の処理を実行する(ステップ803)。一方、受信され
たバイトストリームが、マーシャルドオブジェクトを表している場合には、機械
は、受信機械上のプロセスによって呼び出されたゲット方法に応じて後で使用す
るためにマーシャルドオブジェクトを保持する。もし、そのオブジェクトが他の
機械に転送されるべきであることを、受信機械が決定した場合(ステップ804
)には、オブジェクトを復元することなく、単にバイトストリームを転送する。
もし、機械がオブジェクトを使用する場合には、そのRMI及び関連するコード
を使用して、オブジェクトの復元を実行する(ステップ805)。もし、オブジ
ェクトの復元コードが、機械上に存在していない場合には、上述したように、U
RLを使用して、コードを要求しかつ取得する(ステップ806)。機械は、そ
のオブジェクトを他の機械に転送することが必要かどうかを決定する(ステップ
807)。もし、オブジェクトが他の機械に転送されることが予定されている場
合には、そのオブジェクトは、バイトストリームとして転送される(ステップ8
08)。
【0065】 従って、マーシャルドオブジェクトは、分散形システムにおけるオブジェクト
のより効率的な転送を供給する。もし、オブジェクトが機械によって必要とされ
る場合には、そのオブジェクトは復元され、もし、機械がそのオブジェクトを使
用することを必要としない場合には、機械は、そのオブジェクトを復元すること
なく、マーシャルドオブジェクトを転送することができる。
【0066】 (イベント通知におけるマーシャルドオブジェクトの使用) 分散形のシステム又はネットワークは、システム内におけるイベントの通知の
ための登録と関連して、マーシャルドオブジェクトを使用することができる。図
9は、イベント通知を図示した分散形ネットワーク900の図である。ネットワ
ーク900は、図3、4及び5を参照して記述された機械を使用しても良い。ネ
ットワーク900には、イベント通知を提供するために、RMI902及びオブ
ジェクト903を有する遠隔イベントリスナー901、RMI905及びオブジ
ェクト906を有する機械904、並びに、RMI908及びオブジェクト90
9を有するイベントジェネレータ907が含まれる。機械904は、点線によっ
て示されるように、遠隔イベントリスナー901と同一であってもよく、あるい
は、これらは、別個の機械であっても良い。
【0067】 機械904は、特定のネットワークイベントの通知を要求しているが、マーシ
ャルドオブジェクト912を含み、あるいはこれに関連しているイベント通知の
ための要求を転送することによって、RMI908を登録する。イベントジェネ
レータ907は、後で転送することを可能とするために、マーシャルドオブジェ
クトを記憶する。RMI908が、イベントの発生を検出したときには、RMI
908は、マーシャルドオブジェクト913と共に、遠隔イベントリスナー90
1にイベントの通知を転送する。遠隔イベントリスナー901は、イベントに関
する情報を含むマーシャルドオブジェクトを復元するためのコード911を取得
するために、コードサーバ910にコールすることができる。コードサーバは、
コードにアクセスし、及び、オブジェクトの特別のタイプ又はクラスのための要
求に応答し、並びに、そのオブジェクトのためのコードを返すエンティティ及び
プロセスである。コードサーバは、機械901の内部に配置されていても良く、
あるいは、他の機械上に配置されていても良い。また、コードは、コードサーバ
と同一プラットフォーム上に存在していても良く、あるいは、別個のプラットフ
ォーム上に存在していても良い。登録後、遠隔イベントリスナー901は、発見
されたときに、特定のイベントの指示を提供しても良い。
【0068】 図10は、プロセス1000又はネットワーク900のような分散形ネットワ
ーク内におけるイベント通知のフローチャートである。機械は、マーシャルオブ
ジェクトを含む登録要求を遠隔イベントジェネレータに送信し(ステップ100
1)、遠隔イベントジェネレータは、後で転送することを可能とするために、マ
ーシャルドオブジェクトを記憶する(ステップ1002)。イベントジェネレー
タは、イベントが発生したかどうかを決定し(ステップ1003)、もし、その
ような発生を検出した場合には、記憶されたマーシャルドオブジェクトを含むイ
ベントの通知をイベントリスナーの機械に送信する(ステップ1004)。イベ
ントジェネレータは、特定の基準又はシステムの要件に基づいて、イベント発生
の通知の提供を続行すべきかどうかを決定する(ステップ1005)。もし、そ
うである場合には、イベントが発生するかどうかを決定することを続行する。こ
れらのステップは、例えば、この明細書の表1−5に示すジャバプログラミング
言語で書かれたインターフェースやクラス定義を使用することができる。
【0069】 表2は、遠隔イベントリスナーを実施するための、ジャバプログラミング言語
によるインターフェースの例を示す。
【0070】
【表2】 public interface RemoteEventListener extends Remote, java.util.EventListener { void notify(RemoteEvent theEvent) throws EventUnknownException, RemoteException; }
【0071】 表2に示すインタフェースにおいて、通知方法は、”RemoteEvent”タイプの 単一パラメータを持ち、このパラメータは、処理の間に通知の一部としてパスさ
れた情報を密閉するために使用される。表3は、”RemoteEvent”クラス定義の パブリックパートのための定義の例を示す。
【0072】
【表3】 public class RemoteEvent extends EventObject { public RemoteEvent(Object evSource, long evIdNo, long evSeqNo) public Object getSource(); public long getID(); public long getSeqNo(); public MarshalledObject getRegistrationObject(); }
【0073】 表3に示す定義において、”RemoteEvent”オブジェクトの中に含まれるアブ ストラクト状態は、イベントが発生したオブジェクトに対する参照、イベントが
発生したオブジェクトに関連するイベントの種類を示す”long”、及び、イベン
ト種類の例のシーケンス番号(”SeqNo”)を示す”long”を含む。”RemoteEve
nt”オブジェクトから得られるシーケンス番号は、増加する値であり、これは、
先のシーケンス番号に関連するイベントの発生回数に関連する指示を与える。
【0074】 表4は、ジャバプログラミング言語によるイベントジェネレータのためのイン
タフェースの例を示す。
【0075】
【表4】 public interface EventGenerator extends Remote { public EventRegistration register(long evId, MarshalledObject handback, RemoteEventListener toInform, long leasePeriod) throws EventUnknownException, RemoteException; }
【0076】 図4に示すレジスタ方法は、オブジェクトの内部においてイベント発生の権利
を登録することを許容する。この方法を実行している間、JVMは、イベントの
クラスを識別するために使用される長整数である”evId”、通知の一部として逆
転送されるオブジェクト、”RemoteEventListener”オブジェクトに対する参照 、及び、権利登録のためのリース期間を示す長整数を受信する。もし、”evId”
が、イベントジェネレータオブジェクトによって認識されないコールに対して提
供された場合には、JVMは、エラーを発する。ジャバプログラミング言語にお
いて、JVMは、そのエラーを発するために、”EventUnknownException”を” 投げる(throw)”という。レジスタ方法の第2の引数は、適切なタイプのイベ ントが発生したときに生成される通知の一部として逆転送されるべきマーシャル
ドオブジェクトである。レジスタ方法の第3の引数は、発生しているイベント種
類の例のいかなる通知も受信する遠隔イベントリスナーオブジェクトである。こ
の引数は、権利を登録しているオブジェクトであっても良く、あるいは、第3パ
ーティイベントハンドラ、又は、”mailbox”の通知のような他の遠隔イベント リスナーであっても良い。レジスタ方法に対する最後の引数は、”lease”と呼 ばれる、登録の要求期間を示す”long”である。
【0077】 レジスタ方法の返却値は、イベント登録クラス定義のオブジェクトである。こ
のオブジェクトは、権利が、登録を与えたオブジェクト、登録を与えたオブジェ
クトに対する参照、及び、リース期間に関連する情報を含むリースオブジェクト
に関連して登録されたイベントの種類を識別する”long”を含んでいる。
【0078】 表5は、ジャバプログラミング言語によるイベント登録のためのクラス定義の
例を示す。
【0079】
【表5】 public class EventRegistration implements java.io.Serializable{ public EventRegistration(long eventNum, Remote registerWith, Lease eventLease, long currentSeqNum); public long getEventID(); public Object getEventSource(); public Lease getLease(); public long currentSeqNum(); }
【0080】 表5に示すクラス定義において、”getEventID”方法は、権利が登録されたイ
ベントの識別子を返し、”getEventSource”方法の返却値と結合された識別子は
、イベントの種類を一意に識別する。情報は、そのイベントを認識し、これを正
確に発送すること許容するために、第3パーティリポジトリィに提供される。J
VM内で処理されている間、”getLease”方法は、登録のためにリースオブジェ
クトを返し、リースメンテナンスにおいて使用される。”currentSeqNo”方法は
、次に続く通知のシーケンス番号との比較を許容しながら、登録が付与されたと
きに通用していたイベント種類に基づくシーケンス番号の値を返す。”toString
”方法は、オブジェクトの状態を形作る情報を含むヒューマンリーダブルストリ
ングを返すために、クラス定義と共に使用される。
【0081】 図7、8及び10に示すステップを実施する機械は、図3、4及び5に示すよ
うに、機能を実行するためのコンピュータプロセッサを含んでいても良い。これ
らは、プロセッサに上述した機能を実行させるように配置されたモジュール又は
プログラムを含んでいても良い。それらは、また、メモリに記憶されたコンピュ
ータプログラム生産物を含んでいても良い。コンピュータプログラム生産物は、
機械に上述した機能を実行させるために具体化されたコンピュータで読み取り可
能な媒体又はコンピュータで読み取り可能なコードを有する媒体を含んでいても
良い。媒体は、搬送波に一体化されたコンピュータデータシグナル、及び、プロ
セッサによって実行されるときには、この明細書に記載された方法を実行するこ
とによって、プロセッサを、絶対アドレスにある周辺機器に確実にアドレスさせ
るための指示の代表的なシーケンスを含んでいても良い。媒体は、また、この明
細書に記載された方法を実行する際に使用するためのデータ構造が含まれていて
も良い。
【0082】 本発明に係るシステムの図示された実施例は、JVM仕様に基づくジャバプロ
グラミング言語を実行するコンピュータシステムに関連して記述されているが、
本発明は、異なるプログラミング言語からのコードを処理する他のコンピュータ
システムに対しても同様に適用可能である。特に、本発明は、オブジェクト指向
プログラミングシステム及び非オブジェクト指向プログラミングシステムの双方
で実施しても良い。加えて、本発明に係る実施例は、ジャバプログラミング環境
において処理するように記載されているが、当業者であれば、本発明が他のプロ
グラミング環境においても同様に使用できることがわかるであろう。
【0083】 本発明は、典型的な実施例に関連して説明されているが、多くの修正は、当業
者にとって直ちに明白となることがわかるであろう。また、本出願は、いかなる
改良又は変形もカバーすることが意図されている。例えば、マーシャルドオブジ
ェクトのための異なるラベル又は定義は、本発明の範囲から逸脱することなく使
用することができる。本発明は、クレーム及びその均等物にのみ限定される。
【0084】
【発明の効果】
本発明によれば、プログラムによって必要とされない限り、オブジェクトの復
元、及び、そのようなオブジェクトの復元に関連するコードのダウンロードが据
え置かれるので、時間及びコードの記憶スペースの双方の点において、著しい効
率化をもたらすという効果がある。
【図面の簡単な説明】
【図1】 RPC機構を用いたコール情報の流れを示す図である。
【図2】 オブジェクト指向分散形システムにおけるオブジェクトの転送を
示す図である。
【図3】 本発明を実施する際に使用できる典型的な分散処理システムの図
である。
【図4】 典型的な分散形システムインフラストラクチャの図である。
【図5】 図4に示す分散形システムインフラストラクチャ内にあるコンピ
ュータの図である。
【図6】 本発明に係る分散処理システム内部におけるオブジェクトのフロ
ー図である。
【図7】 本発明を実施する際に、オブジェクトを構成するための遠隔コー
ドのローディングを用いて、分散形システムにおいてオブジェクトを転送する際
に実行されるステップのフロー図である。
【図8】 本発明に係る分散形システムにおいてオブジェクトを転送する時
に、コードローディング及びオブジェクトの構成を据え置くために実行されるス
テップのフロー図である。
【図9】 イベントの通知を模式的に表した分散形ネットワークの図である
【図10】 分散形ネットワーク内におけるイベント通知のためのプロセス
のフローチャートである。
【符号の説明】
900 分散形ネットワー 901 イベントリスナー 902 RMI 903 オブジェクト 904 機械 905 RMI 906 オブジェクト 907 イベントジェネレータ 908 RMI 909 オブジェクト 910 コードサーバー 911 コード 912 登録(マーシャルドオブジェクト) 913 通知(マーシャルドオブジェクト)
───────────────────────────────────────────────────── フロントページの続き (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 (72)発明者 ウォルド ジェイムズ エイチ アメリカ合衆国、01826 マサチューセッ ツ州、ドラカット、ルビィ ロード 155 (72)発明者 アーノルド ケネス シー アール シー アメリカ合衆国、02173 マサチューセッ ツ州、レキシントン、ムーン ヒル ロー ド 7 Fターム(参考) 5B045 BB31 GG01

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 多数の機械を備えた分散形システムにおけるオブジェクトの
    転送のための方法であって、 前記システム内における特定のイベントの通知のための要求に関連するオブジ
    ェクトを指定し、 前記オブジェクトを、前記オブジェクトの自己記述形式を含むストリームに変
    換し、及び、 前記ストリームを、選択的な転送のために、イベントの発生に基づく前記スト
    リームの中で識別されたプログラムコードにアクセスすることによって、前記オ
    ブジェクトが復元される機械に提供することを備えた方法。
  2. 【請求項2】 前記提供には、選択的な転送の前に前記ストリームを記憶す
    ることが含まれる請求項1に記載の方法。
  3. 【請求項3】 前記変換には、前記オブジェクトの復元のための前記プログ
    ラムコードの参照を含む復元されないパッケージの中に前記オブジェクトをパッ
    ケージングすることが含まれる請求項1に記載の方法。
  4. 【請求項4】 多数の機械を備えた分散形システムにおけるオブジェクトを
    処理するための方法であって、 第1の機械において、前記システム内における特定のイベントの通知のための
    要求に関連するオブジェクトの自己記述形式を含むストリームを受信し、 前記ストリームを第2の機械に送信するかどうかを決定し、及び、 前記ストリームの中で識別されたプログラムコードにアクセスすることによっ
    て、前記オブジェクトを復元するための前記第2の機械に前記ストリームを選択
    的に送信し、前記第1の機械が前記イベントの通知を提供することを備えた方法
  5. 【請求項5】 多数の機械を備えた分散形システムにおけるオブジェクトを
    転送するための装置であって、 前記システム内における特定のイベントの通知のための要求に関連するオブジ
    ェクトを指定するために配置されたモジュールと、 前記オブジェクトを、前記オブジェクトの自己記述形式を含むストリームに変
    換するために配置されたモジュールと、 前記ストリームを、選択的な転送のために、前記イベントの発生に基づく前記
    ストリームの中で識別されるプログラムコードにアクセスすることによって、前
    記オブジェクトが復元される機械に供給するために配置されたモジュールとを備
    えた装置。
  6. 【請求項6】 前記供給モジュールには、選択的な転送の前に前記ストリー
    ムを記憶するために配置されたモジュールが含まれる請求項5に記載の装置。
  7. 【請求項7】 前記変換モジュールには、前記オブジェクトの復元のための
    前記プログラムコードの参照を含む復元されないパッケージの中に前記オブジェ
    クトをパッケージするために配置されたモジュールが含まれる請求項5に記載の
    装置。
  8. 【請求項8】 多数の機械を備えた分散形システムにおけるオブジェクトを
    処理するための装置であって、 第1の機械において、前記システム内における特定のイベントの通知のための
    要求に関連するオブジェクトの自己記述形式を含むストリームを受信するために
    配置されたモジュールと、 前記ストリームを第2の機械に送信するかどうかを決定するために配置された
    モジュールと、 前記ストリームの中で識別されたプログラムコードにアクセスすることによっ
    て、前記オブジェクトを復元するための前記第2の機械に前記ストリームを選択
    的に送信し、前記第1の機械が前記イベントの通知を提供するために配置された
    モジュールとを備えた装置。
  9. 【請求項9】 多数の機械を備えた分散形システムにおけるオブジェクトを
    転送するためのシステムであって、 第1の機械と、 第2の機械と、 前記第1の機械と前記第2の機械とを連結するネットワークと、 前記システムにオブジェクトを転送するための装置とを備え、 該装置は、前記システム内における特定のイベントの通知のための要求に関連
    するオブジェクトを指定するために配置されたモジュールと、 前記オブジェクトを、前記オブジェクトの自己記述形式を含むストリームに変
    換するために配置されたモジュールと、 前記ストリームを、選択的な転送のために、前記イベントの発生に基づく前記
    ストリームの中で識別されたプログラムコードにアクセスすることによって、前
    記オブジェクトが復元される機械に供給するために配置されたモジュールとを備
    えたシステム。
  10. 【請求項10】 前記提供モジュールは、前記選択的な転送の前に前記スト
    リームを記憶するために配置されたモジュールが含まれる請求項9に記載のシス
    テム。
  11. 【請求項11】 前記変換モジュールは、前記オブジェクトの復元のための
    プログラムコードの参照を含む復元されないパッケージに前記オブジェクトをパ
    ッケージするために配置されたモジュールが含まれる請求項9に記載のシステム
  12. 【請求項12】 多数の機械を備えた分散形システムにおけるオブジェクト
    を転送するためのシステムであって、 第1の機械と、 第2の機械と、 前記第1の機械と前記第2の機械とを連結するネットワークと、 前記システムにオブジェクトを転送するための装置とを備え、 該装置は、前記第1の機械において、前記システムの内における特定のイベン
    トの通知のための要求に関連するオブジェクトの自己記述形式を含むストリーム
    を受信するために配置されたモジュールと、 前記ストリームを前記第2の機械に送信するかどうかを決定するために配置さ
    れたモジュールと、 前記ストリームの中で識別されたプログラムコードにアクセスすることによっ
    て、前記オブジェクトを復元するための前記第2の機械に前記ストリームを選択
    的に送信し、前記第1の機械が前記イベントの通知を供給するために配置された
    モジュールとを備えているシステム。
  13. 【請求項13】 方法を実行するためのコンピュータシステムを制御するた
    めの指示を含むコンピュータで読み取り可能な媒体を備えたコンピュータプログ
    ラム生産物であって、 前記方法は、前記システム内における特定のイベントの通知のための要求に関
    連するオブジェクトを指定し、 前記オブジェクトを、前記オブジェクトの自己記述形式を含むストリームに変
    換し、及び、 前記ストリームを、選択的な転送のために、前記イベントの発生に基づく前記
    ストリームの中で識別されたプログラムコードにアクセスすることによって、前
    記オブジェクトが復元される機械に供給することを備えたコンピュータプログラ
    ム生産物。
  14. 【請求項14】 前記供給することには、前記選択的な転送の前に前記スト
    リームを記憶することが含まれる請求項13に記載のコンピュータプログラム生
    産物。
  15. 【請求項15】 前記変換することには、前記オブジェクトの復元のための
    プログラムコードの参照を含む復元されないパッケージに前記オブジェクトをパ
    ッケージすることが含まれる請求項13に記載のコンピュータプログラム生産物
  16. 【請求項16】 方法を実行するためのコンピュータシステムを制御するた
    めの指示を含むコンピュータで読み取り可能な媒体を備えたコンピュータプログ
    ラム生産物であって、 前記方法は、第1の機械において、前記システム内における特定のイベントの
    通知のための要求に関連するオブジェクトの自己記述形式を含むストリームを受
    信し、 前記ストリームを第2の機械に送信するかどうかを決定し、 前記ストリームの中で識別されたプログラムコードにアクセスすることによっ
    て、前記オブジェクトを復元するための前記第2の機械に前記ストリームを選択
    的に送信し、前記第1の機械が前記イベントの通知を供給することを含むコンピ
    ュータプログラム生産物。
  17. 【請求項17】 コンピュータで読み取り可能な記憶媒体に記憶され、分散
    形システム内の機械間で電子的に転送可能なオブジェクトの表現を指定する製造
    物であって、 前記製造物は、コンピュータで読み取り可能な記憶媒体において記憶された自
    己記述ストリームを備えた第1オブジェクトを備え、前記第1オブジェクトは、
    前記システムにおいてイベントの通知のための要求を指定する第2オブジェクト
    と関連し、前記第1オブジェクトは、前記イベントの発生が検出されない限り、
    前記第1オブジェクトが前記システムの機械間で転送される時に前記第1オブジ
    ェクトが前記ストリームとして保持されるべきであることを示す性質を有してい
    る製造物。
  18. 【請求項18】 前記ストリームは、前記第2オブジェクトの復元に使用す
    るためのコンピュータで読み取り可能な指示が含まれている請求項17に記載の
    製造物。
  19. 【請求項19】 前記ストリームは、前記第2オブジェクトの復元に使用す
    るためのコンピュータで読み取り可能な指示の記憶位置が含まれている請求項1
    7に記載の製造物。
  20. 【請求項20】 多数の機械を備えた分散形システムにおけるオブジェクト
    を転送するための装置であって、 前記システム内における特定のイベントの通知のための要求に関連するオブジ
    ェクトを指定するための手段と、 前記オブジェクトを、前記オブジェクトの自己記述形式を含むストリームに変
    換するための手段と、 前記ストリームを、選択的な転送のために、前記イベントの発生に基づく前記
    ストリームの中で識別されたプログラムコードにアクセスすることによって、前
    記オブジェクトが復元される機械に供給する手段とを備えた装置。
JP2000533822A 1998-02-26 1999-02-16 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング Pending JP2002505478A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US09/044,919 US6272559B1 (en) 1997-10-15 1998-03-20 Deferred reconstruction of objects and remote loading for event notification in a distributed system
US09/044,919 1998-03-20
US60/076,048 1998-03-20
PCT/US1999/003224 WO1999044139A2 (en) 1998-02-26 1999-02-16 Deferred reconstruction of objects and remote loading for event notification in a distributed system

Publications (1)

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

Family

ID=26722153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533822A Pending JP2002505478A (ja) 1998-02-26 1999-02-16 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング

Country Status (7)

Country Link
EP (1) EP1057113B1 (ja)
JP (1) JP2002505478A (ja)
KR (1) KR20010040971A (ja)
CN (1) CN1298504A (ja)
AU (1) AU2766199A (ja)
DE (1) DE69903711T2 (ja)
WO (1) WO1999044139A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268123A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd 情報共有装置
WO2015015574A1 (ja) 2013-07-30 2015-02-05 富士通株式会社 処理プログラム、処理システムおよび処理方法
JP2015219593A (ja) * 2014-05-14 2015-12-07 富士通株式会社 処理プログラム、処理システムおよび処理方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002001356A1 (en) * 2000-06-23 2002-01-03 Aladdin Knowledge Systems, Ltd. Type conversion technique facilitating remote service invocation
US20040019465A1 (en) * 2002-05-13 2004-01-29 Kerr James W. Event router and method for handling events in distributing computing applications
DE10332360B4 (de) 2003-07-17 2023-06-29 Abb Schweiz Ag Verfahren und System zur Verwaltung und Übertragung von Ereignissen einer zu überwachenden technischen Anlage in einer web-basierten Client-Server-Umgebung

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2118169A1 (en) * 1993-10-27 1995-04-28 Michael R.C. Seaman Event architecture for system management in an operating system
US6044409A (en) * 1996-06-26 2000-03-28 Sun Microsystems, Inc. Framework for marshaling and unmarshaling argument object references
US6347342B1 (en) * 1996-07-15 2002-02-12 Next Software, Inc. Method and apparatus for dynamically brokering object messages among object models

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006268123A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd 情報共有装置
WO2015015574A1 (ja) 2013-07-30 2015-02-05 富士通株式会社 処理プログラム、処理システムおよび処理方法
US10467242B2 (en) 2013-07-30 2019-11-05 Fujitsu Limited Computer product, processing system, and processing method
JP2015219593A (ja) * 2014-05-14 2015-12-07 富士通株式会社 処理プログラム、処理システムおよび処理方法

Also Published As

Publication number Publication date
AU2766199A (en) 1999-09-15
EP1057113A2 (en) 2000-12-06
WO1999044139A3 (en) 1999-10-21
DE69903711D1 (de) 2002-12-05
CN1298504A (zh) 2001-06-06
KR20010040971A (ko) 2001-05-15
DE69903711T2 (de) 2003-06-26
EP1057113B1 (en) 2002-10-30
WO1999044139A2 (en) 1999-09-02

Similar Documents

Publication Publication Date Title
US6272559B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6487607B1 (en) Methods and apparatus for remote method invocation
US6393497B1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6983285B2 (en) Apparatus and method for dynamically verifying information 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
US6560656B1 (en) Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6629154B1 (en) Method and system for deterministic hashes to identify remote methods
JP2001522086A (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
JP2001522113A (ja) 分散ウェブアプリケーションサーバ
US20020029297A1 (en) Method and apparatus for efficient representation of variable length identifiers in a distributed object system
EP1405185B1 (en) Method and system for passing objects in a distributed system using serialization contexts
US7089263B2 (en) Apparatus and method for dynamically verifying information in a distributed system
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
EP1058880A1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
JP2002505474A (ja) ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム
EP1235149A2 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
Diehl et al. Implementing Multi-User Worlds with CORBA