JP2002505474A - ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム - Google Patents

ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム

Info

Publication number
JP2002505474A
JP2002505474A JP2000533818A JP2000533818A JP2002505474A JP 2002505474 A JP2002505474 A JP 2002505474A JP 2000533818 A JP2000533818 A JP 2000533818A JP 2000533818 A JP2000533818 A JP 2000533818A JP 2002505474 A JP2002505474 A JP 2002505474A
Authority
JP
Japan
Prior art keywords
service
stub
access
computer
services
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
JP2000533818A
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,826 external-priority patent/US6832223B1/en
Application filed by サンマイクロシステムズ インコーポレーテッド filed Critical サンマイクロシステムズ インコーポレーテッド
Publication of JP2002505474A publication Critical patent/JP2002505474A/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5015Service provider selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】ルックアップ・サービスを介したサービスへのアクセスを容易にする方法及びシステムが得られる。 【解決手段】ルックアップ・サービスは、ネットワークのサービス・ディレクトリを定義し、これらのサービスに対する参照を記憶する。ネットワークにおけるサービスの利用を所望するクライアントは、ルックアップ・サービスにアクセスし、ルックアップ・サービスは、ユーザによるサービスへのアクセスを容易にするスタブ情報を返送する。クライアントは、このスタブ情報を利用して、サービスにアクセスする。

Description

【発明の詳細な説明】
【0001】 (関連出願) 本出願は、参考までに本明細書において援用されている、1996年4月23
日に提出された米国特許出願第08/636,706号の一部継続出願である。 以下に示される米国特許出願は、信頼をおけるものであり、参考までに、本明
細書において、そっくりそのままの記載であるかのように、援用されている。 1998年2月26日に出願の「分散コンピューティングシステム」と題する
米国仮特許出願第60/076,048号。 代理人整理番号が第06502.0011−01000号であり、上記と同日
出願の「記憶装置をリースする方法とシステム」と題する米国特許出願第09/
044,923号。 代理人整理番号が第06502.0011−02000号であり、上記と同日
出願の「分散システムにおいて代表団認証をリースする方法、装置、製品」と題
する米国特許出願第09/044,838号。 代理人整理番号が第06502.0011−03000号であり、上記と同日
出願の「分散システムにおいてグループ会員資格をリースする方法、装置、製品
」と題する米国特許出願第09/044,834号。 代理人整理番号が第06502.0011−04000号であり、上記と同日
出願の「障害検出用のリース」と題する米国特許出願第09/044,916号
。 代理人整理番号が第06502.0054−00000号であり、上記と同日
出願の「イベントベース・システムにおいてビヘービア(振舞い)を移送する方
法」と題する米国特許出願第09/044,933号。 代理人整理番号が第06502.0062−01000号であり、上記と同日
出願の「分散システムにおけるオブジェクトの据置き復元とイベント通知用のリ
モートロード」と題する米国特許出願第09/044,919号。 代理人整理番号が第06502.0102−00000号であり、上記と同日
出願の「リモートメソッド呼出しを行う方法と装置」と題する米国特許出願第0
9/044,938号。 代理人整理番号が第06502.0103−00000であり、上記と同日出
願の「リモートメソッドを識別するための決定論的ハッシュのための方法及び装
置」と題する米国特許出願第09/045,652号。 代理人整理番号が第06502.0104−00000号であり、上記と同日
出願の「分散システムにおいてリモートオブジェクトのステータスを決定する方
法と装置」と題する米国特許出願第09/044,790号。 代理人整理番号が第06502.0105−00000号であり、上記と同日
出願の「分散システムにおいて、リモート・プロシージャ呼出しと関係のある処
理を実行するダウンロード可能なスマートプロキシ」と題する米国特許出願第0
9/044,930号。 代理人整理番号が第06502.0106−00000号であり、上記と同日
出願の「リモートメソッドの一時停止と継続」と題する米国特許出願第09/0
44,917号。 代理人整理番号が第06502.0107−00000号であり、上記と同日
出願の「データベースにおけるマルチエントリとマルチテンプレートの照合のた
めの方法とシステム」と題する米国特許出願第09/044,835号。 代理人整理番号が第06502.0108号であり、上記と同日出願の「デー
タベースにおいて、所定の場所で修正する方法とシステム」と題する米国特許出
願第09/044,839号。 代理人整理番号が第06502.0109−00000号であり、上記と同日
出願の「データベースにおけるタイプセーフ属性照合のための方法とシステム」
と題する米国特許出願第09/044,945号。 代理人整理番号が第06502.0110−00000号であり、上記と同日
出願の「分散システムにおける動的ルックアップ・サービス」と題する米国特許
出願第09/044,931号。 代理人整理番号が第06502.0112−00000号であり、上記と同日
出願の「分散システムにおいて、装置とのやり取りに用いられるダウンロード可
能なコードを提供する装置と方法」と題する米国特許出願第09/044,93
9号。 代理人整理番号が第06502.0114−00000号であり、上記と同日
出願の「分散システムにおいて情報を動的にベリファイするための装置及び方法
」と題する米国特許出願第09/044,932号。 1998年2月26日に提出された、「ネットワーク上の動的分散処理用の方
法及び装置」と題する米国特許出願第09/030,840号。 代理人整理番号が第06502.0116−00000号であり、上記と同日
出願の「固定共用メモリ空間用の対話形設計ツール」と題する米国特許出願第0
9/044,936号。 代理人整理番号が第06502.0117−00000号であり、上記と同日
出願の「多相性トークン・ベースの制御」と題する米国特許出願第09/044
,934号。 代理人整理番号が第06502.0118−00000号であり、上記と同日
出願の「スタック・ベースのアクセス制御」と題する米国特許出願第09/04
4,915号。 代理人整理番号が第06502.0119−00000号であり、上記と同日
出願の「スタック・ベースのセキュリティ要件」と題する米国特許出願第09/
044,944号。 代理人整理番号が第06502.0120−00000号であり、上記と同日
出願の「セキュリティ要件のメソッドごとの指定」と題する米国特許出願第09
/044,837号。
【0002】 (技術分野) 本発明は、データ処理システムに関し、更に詳しくは、ルックアップ・サービ
スへのアクセスを容易にするための方法及びシステムに関するものである。
【0003】 (背景技術) 最新の「エンタープライズ」計算では、いくつかのパーソナル・コンピュータ
、ワークステーション、及び、大容量記憶サブシステム、ネットワーク・プリン
タ、及び、公衆電話システムに対するインターフェイスといった他の装置が、一
般に、1つ以上のコンピュータ・ネットワークに相互接続されている。パーソナ
ル・コンピュータ及びワークステーションは、個々のユーザによって、ネットワ
ーク大容量記憶サブシステムに記憶することが可能なデータ及びプログラムに関
連した処理を実施するために利用される。こうした構成の場合、クライアントと
しての働きをするパーソナル・コンピュータ/ワークステーションは、一般に、
ネットワーク大容量記憶サブシステムからデータ及びプログラムをダウンロード
して、処理を行う。さらに、パーソナル・コンピュータまたはワークステーショ
ンによって、処理済みのデータをネットワーク大容量記憶サブシステムにアップ
ロードして、記憶させ、ネットワーク・プリンタにアップロードして、印刷させ
、電話インターフェイスにアップロードして、公衆電話システムで伝送させると
いったことが可能になる。こうした構成の場合、ネットワーク大容量記憶装置、
ネットワーク・プリンタ、及び、電話インターフェイスは、ネットワークの全て
のクライアントからのサービス要求に利用可能であるので、サーバの働きをする
。ネットワークをこのように編成することによって、サーバは、ネットワークの
全てのパーソナル・コンピュータ/ワークステーションによる使用に容易に利用
可能になる。こうしたネットワークは、かなりの広域にわたって拡散することが
可能であり、パーソナル・コンピュータ/ワークステーションは、電線または光
ファイバのような通信リンクによって相互接続される。
【0004】 サーバから情報をダウンロードして、処理する以外に、プログラムを処理しな
がら、クライアントは、クライアントによって提供される所定の「パラメータ」
情報に関連した、特定のルーチン及び手順(一般に「手順」)のサーバ・コンピ
ュータによる処理を遠隔地において開始させることが可能である。サーバは、手
順の処理を済ますと、その処理結果をクライアントに提供し、クライアントは、
その後、その処理操作にそれを利用することができる。一般に、こうした「遠隔
手順呼び出し」の場合、プログラムは、呼び出されると、特定の手順を実施する
要求をサーバに転送し、その結果を受信して、プログラムに供給するローカル・
「スタブ」を利用する。一般に、スタブは、プログラムと共にコンパイルしなけ
ればならないが、その場合、遠隔手順の呼び出しに必要な情報は、プログラムの
実行時ではなく、コンパイル時に決定しなければならない。クライアントのプロ
グラムに利用可能なスタブは、静的であるため、おそらく、その(プログラムの
)コンパイル時に、決定することが可能な最も近いものをプログラムに提供する
のがせいぜいである。従って、プログラムに提供されるスタブと、プログラムの
実行時に呼び出される遠隔手順の要件との不整合のために、エラー及び無効果が
生じる可能性がある。
【0005】 (発明の開示) あるアドレス空間で働くプログラムが、別のアドレス空間における方法または
手順の処理を遠隔地から呼び出すことができるようにするため、スタブの取得及
び動的ローディングを容易にするための新規の改良されたシステム及び方法が提
供され、この結果、スタブは、プログラムのコンパイル時に、静的に決定される
のではなく、その実行時、及び、それが必要とされる時に、プログラムによって
ロードすることができるようになる。実際、ロードされるスタブは、遠隔方法ま
たは手順を提供する資源から取得することが可能であり、従って、それ(スタブ
)によって、遠隔方法または手順の呼び出し要件を正確に定義することが可能に
なる。スタブは、プログラムのコンパイル時に、静的に決定されるのではなく、
プログラムの実行中に突き止められ、動的にロードされるので、提供されるスタ
ブと、呼び出される遠隔方法または手順の要件との不整合から生じる可能性のあ
る実行時エラー及び無効果を最小限に抑えることができる。本発明の他の実施形
態の場合、スタブは、ルックアップ・サービスにおいて定義されたサービスに対
するアクセスを可能にする、ルックアップ・サービスから得られる。
【0006】 要するに、本発明の他の実施形態に合わせた方法及びシステムは、ルックアッ
プ・サービスを介してサービスへのアクセスを容易にする。ルックアップ・サー
ビスは、サービスに関するネットワークのディレクトリを定義し、これらのサー
ビスに対する参照を記憶する。ネットワークにおけるあるサービスの利用を望む
クライアントは、ルックアップ・サービスにアクセスし、ルックアップ・サービ
スは、ユーザによるそのサービスへのアクセスを容易にするスタブ情報を返信す
る。クライアントは、そのスタブ情報を利用して、そのサービスにアクセスする
【0007】 (発明を実施するための最良の形態) 図1は、あるアドレス空間で働くプログラムが、別のアドレス空間における方
法または手順の処理を遠隔地から呼び出すことができるようにするため、「スタ
ブ」情報の動的ローディングを容易にするための構成を含むコンピュータ・ネッ
トワーク10の概略図であり、ここで、この方法または手順は、ネットワーク・
サービスに相当する。図1に関連して、コンピュータ・ネットワーク10には、
複数のクライアント・コンピュータ11(1)〜11(N)(一般に、参照番号
11(n)によって識別される)と、複数のサーバ・コンピュータ12(1)〜
12(M)(一般に、参照番号12(m)によって識別される)が含まれており
、その全てが、通信リンク14によって表されたネットワークによって相互接続
されている。さらに、ネットワーク10には、やはり、通信リンク14に接続す
ることが可能であり、その目的については、後述することにする、少なくとも1
つのネーム・サーバ・コンピュータ13を含むことが可能である。従来通り、ク
ライアント・コンピュータ11(n)の少なくともいくつかは、パーソナル・コ
ンピュータまたはコンピュータ・ワークステーションの形をとり、そのそれぞれ
に、システム・ユニット、ビデオ・ディスプレイ装置、及び、キーボード及びマ
ウスのようなオペレータ入力装置が含まれている(全て、個別には図示されてい
ない)。サーバ・コンピュータ12(m)及びネーム・サーバ・コンピュータ1
3には、システム・ユニット(やはり、個別には図示されていない)を含むこと
も可能であり、ビデオ・ディスプレイ・ユニット及びオペレータ入力装置を含む
ことも可能である。
【0008】 クライアント・コンピュータ11(n)、サーバ・コンピュータ12(m)、
及び、ネーム・サーバ・コンピュータ13は、全て、従来のプログラム記憶方式
コンピュータ・アーキテクチャを備えている。システム・ユニットには、一般に
、処理装置、メモリ装置、ディスク及び/またはテープ記憶素子のような大容量
記憶装置、及び、それぞれのコンピュータと通信リンク14のインターフェイス
をとるためのネットワーク・インターフェイス装置15(n)、16(m)を含
む他の構成要素(個別には図示されていない)が含まれている。ビデオ・ディス
プレイ装置によって、コンピュータは、オペレータに処理済みデータ及び処理状
況を表示することが可能になり、オペレータ入力装置によって、オペレータは、
データを入力し、コンピュータによる処理を制御することが可能になる。コンピ
ュータ11(n)及び12(m)及び13は、それぞれのネットワーク・インタ
ーフェイス装置15(n)、16(m)を介して、通信リンク14によって、互
いにメッセージの形をとる情報を転送する。
【0009】 実施形態の1つでは、ネットワーク10は、図1にコンピュータ12(m)と
して示された1つ以上のコンピュータがサーバの働きをし、図1にコンピュータ
11(n)として示された他のコンピュータがクライアントの働きをする、「ク
ライアント・サーバ」構成をなすように編成される。ある態様の場合、1つ以上
のサーバ・コンピュータ12(m)が、「ファイル・サーバ」として、クライア
ントが、その処理操作に用いるため、通信リンク13を介して行う検索に利用可
能なプログラム及びデータのコピーを記憶することができる大容量記憶装置を含
むことが可能である。時には、クライアント・コンピュータ11(n)も、その
処理操作のため、それ(そのデータを記憶したクライアント・コンピュータ)ま
たは他のクライアント・コンピュータによって後で検索される可能性のあるデー
タをサーバ・コンピュータ12に記憶しておく場合がある。さらに、1つ以上の
サーバ・コンピュータ12(m)が、「計算サーバ」として、クライアント・コ
ンピュータ11(n)からの遠隔要求に応答して、所定の処理操作を実施し、そ
の処理結果を要求クライアント・コンピュータ11(n)に返信し、それら(す
なわち、要求クライアント・コンピュータ11(n))によってその後続処理に
用いられるようにすることが可能である。いずれにせよ、サーバ・コンピュータ
は、一般に、システム・ユニット、ビデオ・ディスプレイ装置、及び、オペレー
タ入力装置を含むクライアント・コンピュータ11(n)と同様にすることが可
能であり、クライアント・コンピュータと同様に、オペレータがデータ処理操作
に利用することが可能である。代替案として、サーバ・コンピュータの少なくと
もいくつかに、クライアント・コンピュータからの検索、記憶、または、遠隔処
理要求を受信して、それに対する応答を生成するための処理、記憶、大容量記憶
、及び、ネットワーク・インターフェイス素子だけを含むことも可能である。明
らかに、クライアント・コンピュータ11(n)も、サーバ・コンピュータ12
(m)によって実施される、本明細書に記載の操作を実施することが可能であり
、同様に、サーバ・コンピュータ12(m)も、クライアント・コンピュータ1
1(n)によって実施される、本明細書に記載の操作を実施することが可能であ
る。
【0010】 通信リンク14によって表されたネットワークは、例えば、一般に、個々の企
業内で保守されるローカル・エリア・ネットワーク(LAN)及び広域ネットワ
ーク(WAN)、公衆電話システム、インターネット、及び、さまざまなコンピ
ュータ間におけるデジタル・データの転送を可能にする他のネットワークを含め
て、クライアント・コンピュータ11(n)、サーバ・コンピュータ12(m)
、及び、ネーム・サーバ・コンピュータ13の通信を可能にする、いくつかのタ
イプのネットワークのうち任意のものを含むことが可能である。ネットワークは
、例えば、図1に描かれたさまざまなコンピュータ間において情報を表す信号を
伝送するための電線、光ファイバ、無線リンク、及び/または、他の媒体を含め
て、いくつかの通信媒体のうち任意のものを利用して実施することが可能である
。上述のように、コンピュータのそれぞれには、一般に、それぞれのコンピュー
タを通信リンク14に接続して、それを介した情報の送信/受信を可能にするネ
ットワーク・インターフェイスが含まれている。
【0011】 本発明に合わせたシステムは、あるアドレス空間において働くプログラムが、
呼び出しプログラムとして同じコンピュータに、または、異なるコンピュータに
配置することが可能な、別のアドレス空間における遠隔方法または手順の処理を
呼び出すことができるようにするため、「スタブ」情報の取得及び動的ローディ
ングを容易にする。Java仮想マシンによって得られる実行環境に関連して処
理される、参考までに本明細書において援用されている、1996年にAddi
son−Wesleyから刊行された、James Gosling、Bill
Joy、Guy Steeleによる「The JavaTM Langua
ge Specification」と題する文献(今後は「Java言語仕様
」と呼ぶことにする)に解説されたJavaTMプログラミング言語によって得
られるプログラムについて、言及することにする。Java仮想マシンについて
は、さらに、参考までに本明細書において援用されている、1996年にAdd
ison−Wesleyから刊行された、Lindholm及びYellinに
よる「The Java Virtual Machine Specific
ation」と題する文献に記載がある。Java言語仕様に解説のように、J
avaプログラミング言語によるプログラムは、「クラス」と「インターフェイ
ス」を定義する。クラスは、それぞれ、インターフェイスに対する参照によって
呼び出すことが可能な、1つ以上の方法または手順を定義する。クラスは、「ス
ーパ・クラス」と関連づけられて、スーパ・クラスを拡張することが可能であり
、それに関して、スーパ・クラスのインターフェイス及び方法の全てを組み込む
ことができ、さらに、追加インターフェイス及び/または方法を含むことも可能
である。クラスは、1つ以上のサブクラスを備えることも可能であり(従って、
そのサブクラスのそれぞれのスーパ・クラスを含むことになる)、各サブクラス
は、それぞれのスーパ・クラスを組み込んで、おそらく、それらを拡張すること
になる。
【0012】 インターフェイスによって、1組の方法を宣言することが可能なメカニズムが
得られる。それに関連して、インターフェイスは、インターフェイスによって宣
言される各方法を、例えば、名前によって識別し、方法に関して与えれられるべ
き引数のデータ・タイプ、方法によって返送されることになる返送値のデータ・
タイプ、及び、方法の処理中に放棄することが可能な例外に関する識別子を識別
する。クラスは、それが特定のインターフェイスを実施することを表示すること
が可能であり、それに関連して、インターフェイスにおいて宣言される全ての方
法の処理に用いられることになるプログラム・コードを含んでいる。さらに、異
なるクラスが、同じインターフェイスを実施することを表示することが可能であ
り、それぞれ、インターフェイスにおいて宣言される全ての方法の処理に用いら
れることになるプログラム・コードを含んでいるが、方法の処理に用いるため各
クラスにおいて得られるプログラム・コードは、同じ方法の処理に用いられる他
のクラスにおいて得られるプログラム・コードとは異なる可能性があり、従って
、インターフェイスは、どの方法の処理に用いられることになる手順の表示も行
わずに、1組の方法を宣言することが可能なメカニズムをもたらす。インターフ
ェイスは、インターフェイスを用いて呼び出すことが可能な方法を実施する特定
のクラスとは別個に、宣言することが可能である。それに関して、方法を呼び出
すクラス、及び、方法を実際に実施するクラスは、共通のスーパ・クラスを共用
する必要がない。
【0013】 Java仮想マシン仕様に記載のJavaプログラムの処理中に、クライアン
ト・コンピュータ11(n)は、Javaプログラムを解釈するための実行環境
20を提供する。Java仮想マシンには、制御モジュール19の制御下におい
て、プログラムの実行中に、図1において、全体が参照番号22によって識別さ
れるクラスのインスタンスを、実行プログラムの実行環境に動的にリンクさせる
ことが可能なクラス・ローダ21が含まれている。その操作時、制御モジュール
19によって、クラス・ローダは、全体が参照番号23によって識別される非イ
ンスタンス生成クラスを検索し、それらのインスタンス生成を行い、それぞれの
クラス23が実施する方法が呼び出される、Javaプログラムの実行時に、ク
ラス・インスタンス22として、実行環境のアドレス空間にリンクすることが可
能になる。さらに、クラス・ローダ21は、必要とされないか、または、メモリ
を節約して使用すべき場合には、クラス・インスタンス22のいくつかを廃棄す
ることも可能である。もちろん、クラス・インスタンス22が廃棄された場合、
必要が生じると、クラス・ローダ21によって後で再ロードすることが可能であ
る。
【0014】 本発明に合わせたシステムによれば、サーバ・コンピュータ12(m)のクラ
スによって実施される方法の、クライアント・コンピュータ11(n)によって
実行環境20において実行されるプログラムによる、遠隔呼び出しを容易にする
構成が得られる。方法の実行時、サーバ・コンピュータ12(m)によって、制
御モジュール28の制御下において、Java法を処理するための実行環境24
が提供される。その操作時、実行環境21を提供するJava仮想マシンには、
制御モジュール28の制御下において、クラス26のインスタンスを動的にリン
クさせて、実行環境24における方法の処理を可能にすることが可能なクラス・
ローダ25(クラス・ローダ21と同様のものとすることが可能である)と、遠
隔呼び出しされる方法の処理に必要となる可能性のある他のクラスのインスタン
ス(やはり、全体が参照番号26によって表されている)が含まれている。その
操作時、制御モジュール28によって、クラス・ローダ25は、全体が参照番号
127によって識別される複数の非インスタンス生成クラスから、呼び出される
方法に関する非インスタンス生成クラスを検索し、その(すなわち、呼び出され
る方法を提供する非インスタンス生成クラスの)インスタンス生成を行い、実行
環境にクラス・インスタンス26としてリンクさせることが有効に行えるように
なる。さらに、クラス・ローダ25は、方法の処理が終了すると、クラス・イン
スタンス26を廃棄することができる。もちろん、クラス・インスタンス26が
廃棄された場合、必要が生じると、クラス・ローダ25によって後で再ロードす
ることが可能である。
【0015】 設けられる場合、ネーム・サーバ・コンピュータ13の構造は、サーバ・コン
ピュータ12(m)の構造とほぼ同じであり、別個の説明は控えることにする。
【0016】 方法の呼び出しを容易にするため、クライアント・コンピュータの実行環境2
1の制御モジュール19は、遠隔方法を呼び出しているクラス・インスタンスを
含むさまざまなクラス・インスタンス22が処理を受けている実行環境21の一
部として提供される、全体が参照番号30によって識別される1つ以上のスタブ
・クラス・インスタンスを利用する。各スタブ・クラス・インスタンス30は、
サーバ・コンピュータ12(m)がさまざまなクラス・インスタンス26のため
に保守することが可能な非インスタンス生成スタブ・クラス31のインスタンス
であり、サーバ・コンピュータ12(m)が「エクスポート」した、すなわち、
サーバ・コンピュータ12(m)が、それによって可能になる方法の遠隔呼び出
しに用いるため、クライアント11(n)が利用できるようにする非インスタン
ス生成クラス27のインスタンスである。非インスタンス生成スタブ・クラス3
1は、呼び出される遠隔方法を実施する特定の遠隔非生成クラス27のための完
全なインターフェイス・セットに関する宣言を含んでおり、さらに、遠隔クラス
によって実施される遠隔方法へのアクセスを容易にする方法を提供するか、また
は、呼び出す。非インスタンス・スタブ・クラス31は、そのインスタンス生成
が行われて、スタブ・クラス・インターフェイス30として、クライアント・コ
ンピュータ11(n)の実行環境20に供給されると、呼び出しJavaプログ
ラムの実行環境20の制御モジュール19によって必要とされる情報を有効に提
供するので、その関連クラスによって実施される遠隔方法が、特定の実行環境に
おいて実行されるJavaプログラムによって呼び出されると、遠隔方法が処理
され、その返送値が呼び出しJavaプログラムに供給される。実施形態の1つ
では、実行環境20にスタブ・クラス・インスタンスを供給可能にする構成は、
前述のWaldo他による特許出願に記載のものと同様である。
【0017】 さらに、サーバ・コンピュータ12(m)は、サーバ・コンピュータ12(m
)によってエクスポートされた特定のクラス及び方法、及び、それが(すなわち
、サーバ・コンピュータ12(m)が)、それぞれのクラスをロードして、それ
によって得られる特定の方法の処理を開始することができる方法に関する情報を
定義する、スケルトン32を供給する。さらに、サーバ・コンピュータ12(m
)には、サービスをネットワークに登録するためのルック・アップ・サービス4
00が含まれている。ルックアップ・サービス400については、後述すること
にする。
【0018】 クラス・インスタンスは、サーバ・コンピュータ12(m)によって保守され
る遠隔方法を呼び出す場合、遠隔方法に関するスタブ・クラス・インスタンス3
0にさまざまなパラメータの値を供給し、これらの値は、遠隔方法によってその
処理に利用されることになる。遠隔方法が、呼び出しJavaプログラムと同じ
コンピュータで実施される場合、呼び出しJavaプログラムが、遠隔方法を呼
び出すと、コンピュータは、実行環境20と同様の実行環境を確立して、実行環
境のクラス・ローダが、遠隔方法を実施するクラスをロードして、クラス・イン
スタンス22と同様のクラス・インスタンスとしてそのインスタンス生成を行え
るようにし、遠隔呼び出しにおいて呼び出しクラス・インスタンスによって提供
されるパラメータ値を利用して、遠隔方法を処理することが可能である。方法の
処理が完了すると、遠隔方法の処理が実施された実行環境によって、呼び出され
た遠隔方法に関するスタブ・インスタンス30にその結果が供給され、そこから
、さらに、遠隔方法を呼び出した特定のクラス・インスタンス22に供給される
【0019】 クライアント・コンピュータ11(n)及びサーバ・コンピュータ12(m)
が異なる物理的コンピュータにおいて実施される場合、同様の操作が実施される
ことになる。その場合、遠隔呼び出しに応答して、呼び出しクラス・インスタン
ス22のための実行環境20に関する制御モジュール19の制御下において、呼
び出しクラス・インスタンス22の処理を行っているクライアント・コンピュー
タ11(n)は、適合するスタブ・クラス・インスタンス30を利用し、通信リ
ンク14によって表されたネットワークを介して、遠隔方法を利用して、それが
(すなわち、サーバ・コンピュータ12(m)が)、遠隔方法を実施するクラス
に関する実行環境を確立し、クラス・ローダ25を利用して、クラスのインスタ
ンスをクラス・インスタンス26としてロードできるようにするサーバ・コンピ
ュータ12(m)との通信を行う。さらに、クライアント・コンピュータ11(
n)は、やはり、適合するスタブ・クラス・インスタンス30を利用し、ネット
ワーク14を介して、任意の必要とされるパラメータ値をサーバ・コンピュータ
12(m)に供給する。その後、サーバ・コンピュータ12(m)は、そうして
得られたパラメータ値を利用して、遠隔方法の処理を行い、ネットワークを介し
て、クライアント・コンピュータ11(n)に、とりわけ、適合するスタブ・ク
ラス・インスタンス30に転送される結果値を発生する。クライアント・コンピ
ュータ11(n)は、ネットワークから結果値を受信すると、その処理のため、
呼び出しクラス・インスタンス22に供給する。
【0020】 いずれにせよ、クライアント・コンピュータの実行環境20の制御モジュール
19は、遠隔オブジェクトに対する参照が受信されたことを確認すると、その参
照の受信時に、スタブ・クラス・インスタンス30が存在しないと判定した場合
、例えば、遠隔方法を実施するサーバ・コンピュータ12(m)からスタブ・ク
ラス・インスタンス30を取得しようとして、呼び出しクラス・インスタンス2
2に関する実行環境20にスタブ・クラス・インスタンス30を動的にロードで
きるようにする。遠隔オブジェクトに対する参照は、例えば、別の遠隔方法呼び
出しの返送値として、または、別の遠隔方法呼び出し中に受信されるパラメータ
として、受信することが可能である。スタブ・クラス・インスタンスは、実行環
境22にクラス・インスタンス22をロードするために用いられるものと同様の
やりかたで、実行環境20に動的にロードすることが可能である。実行環境20
には、制御モジュール19の制御下において、実行環境において処理されるクラ
ス・インスタンス22が必要とするスタブ・クラス・インスタンス30を見つけ
出して、ロードしようとするスタブ・クラス・ローダ33が設けられている。遠
隔地から呼び出される方法を実施するクラスの保守を行う特定のサーバ・コンピ
ュータ12(m)の位置は、呼び出しクラス・インスタンスからの呼び出しに含
むこともできるし、あるいは、クライアント・コンピュータ11(n)によって
保守される別のメカニズム(不図示)を介してスタブ・クラス・ローダ33に知
らせることも可能である。
【0021】 しかし、スタブ・クラス・ローダ33は、遠隔地から呼び出される可能性のあ
る方法を実施するクラスを保守するのが、どのサーバ・コンピュータ12(m)
であるかについて別段の通知を受けない場合、ネーム・サーバ・コンピュータ1
3を利用して、その識別名が得られるようにすることが可能である。識別名には
、サーバ・コンピュータ12(m)、または、ネットワーク14において利用可
能であり、サーバ・コンピュータ12(m)が応答することができる他の資源の
識別に利用可能な任意の識別子を含むことが可能である。例証となる識別子には
、例えば、サーバ・コンピュータ及び/または資源を識別するネットワーク・ア
ドレス、または、ネットワーク14が、インターネットであるか、または、イン
ターネットに含まれている場合、例えば、インターネットを介して利用可能な資
源を識別するための一様なメカニズムを提供する、識別名または「ユニフォーム
・リソース・ロケータ」(「URL」)を供給することが可能なワールド・ワイ
ド・ウェブ資源に対する識別子が含まれる。遠隔方法を実施するサーバ・コンピ
ュータ12(m)は、クライアント・コンピュータ11(n)からの要求に応答
して、クライアント・コンピュータ11(n)が実行環境21にロードすること
が可能なスタブ・クラス・インスタンス30を供給し、その後、遠隔呼び出しの
開始を可能にする。
【0022】 上述のように、スタブ・クラス・ローダ33は、どのサーバ・コンピュータ1
2(m)が、呼び出される可能性のある遠隔方法を実施するのか分からない(従
って、どのコンピュータが、遠隔呼び出しに関するサブ・クラス・コードを提供
することになるのか分からない)場合、制御モジュール19の制御下において、
ネーム・サーバ・コンピュータ13から識別名を得ることが可能である。その操
作において、スタブ・クラス・ローダ33は、こうした場合に用いるために用意
される、あらかじめ定められた省略時スタブ・クラスを利用することが可能であ
る。呼び出しJavaプログラムによって利用される場合、省略時クラス・スタ
ブによって、呼び出しJavaプログラムを処理しているコンピュータは、ネー
ム・サーバ・コンピュータ13と通信して、遠隔方法の呼び出しに利用可能な情
報を取得することが可能になる。この操作は、ネーム・サーバ・コンピュータ1
3によって処理される遠隔方法の呼び出しとほぼ同じであり、遠隔方法には、遠
隔地から呼び出されるクラス及び方法を識別し、ネーム・サーバ・コンピュータ
13が、遠隔方法を処理可能なサーバ・コンピュータ12(m)の識別名を要求
クライアント・コンピュータ11(n)に提供できるようにするパラメータ、サ
ーバ・コンピュータ12(m)との通信及び特定の方法の呼び出しに役立つ可能
性のある他の情報が含まれている。ネーム・サーバ・コンピュータ13が、「エ
クスポートされる」資源、すなわち、ネットワーク14に接続されたクライアン
ト・コンピュータ11(n)に利用可能なクラス及び方法のような資源、及び、
そのエクスポートされる資源の利用において、クライアント・コンピュータにと
って役立つことになる、それらの資源を提供する特定のサーバ・コンピュータ1
2(m)の識別名のような情報のテーブル(別個には図示されていない)を保守
することになるのは明らかである。
【0023】 ネーム・サーバ・コンピュータ13が、当該技術において既知のいくつかのや
り方でエクスポートされる資源テーブルを生成し、保守することができるのは明
らかである。例えば、ネーム・サーバ・コンピュータ13は、ネットワーク14
を介して、エクスポートされる資源を保守するさまざまなサーバ・コンピュータ
12(m)が応答することが可能な、エクスポートされる資源情報の要求を定期
的に同報通信することが可能であり、その場合、ネーム・サーバ・コンピュータ
13は、サーバ・コンピュータ12(m)からの応答に基づいて、そのエクスポ
ートされる資源テーブルを作成することが可能である。あるいはまた、エクスポ
ートされる資源を保守するさまざまなサーバ・コンピュータ12(m)のそれぞ
れが、それが保守しているエクスポートされる資源に関する情報を定期的に同報
通信することが可能であり、ネーム・サーバ・コンピュータ13は、サーバ・コ
ンピュータからの同報通信に基づいて、そのエクスポートされる資源テーブルを
更新することができる。さらに、ネーム・サーバ・コンピュータのエクスポート
される資源テーブルは、システム・オペレータによる作成が可能であり、システ
ム・オペレータが更新するまで、固定することが可能である。
【0024】 いずれにせよ、省略時スタブによって開始される要求に応答して、ネーム・サ
ーバ・コンピュータ13によって提供される情報には、例えば、呼び出される遠
隔方法を実施するクラスを提供することが可能なコンピュータ12(m)の識別
子、及び、コンピュータ(すなわち、遠隔方法を実施するコンピュータ)が、必
要なスタブ・クラス・コードを供給するのに必要とする特定の情報等のような情
報が含まれる。ネーム・サーバ・コンピュータ13から情報を受信した後、呼び
出しJavaプログラムを処理しているコンピュータ11(n)は、制御モジュ
ール19の制御下において、コンピュータ(すなわち、遠隔方法を実施するコン
ピュータ)との情報通信を利用して、スタブ・クラスを取得し、その後、上述の
ように遠隔方法を呼び出すことが可能になる。
【0025】 この背景に関して、遠隔方法に対する参照を受信すると、スタブ・クラス・イ
ンスタンスの取得及び動的ローディングに関連して、クライアント・コンピュー
タ11(n)、サーバ・コンピュータ12(m)、及び、必要であれば、ネーム
・サーバ・コンピュータ13によって実施される操作について、図2(図2、図
2A、図2B)に描かれたフローチャートに関連して説明することにする。さら
に、スタブ・クラス・インスタンスを用いて、方法の遠隔呼び出しに関連したク
ライアント・コンピュータ11(n)及びサーバ・コンピュータによって実施さ
れる操作について、に描かれたフローチャートに関連して説明することにする。
まず図2を参照すると、実行環境制御モジュール19は、遠隔方法に対する参照
を受信すると、まず、実行環境20に、遠隔方法の呼び出しを容易にするのに適
したスタブ・クラス・インスタンスが、存在するか否かを判定する(ステップ1
00)。制御モジュール19は、遠隔方法に関するこうしたスタブ・クラス・イ
ンスタンス30が、実行環境に存在すると判定すると、他の操作を続行すること
ができる(ステップ101)。しかし、制御モジュール19は、ステップ101
において、こうしたスタブ・クラス・インスタンスが、遠隔方法に関する実行環
境2に存在しないと判定すると、スタブ・クラス・ローダ33を利用して、クラ
スが遠隔方法を処理するため、スタブ・クラス・インスタンス30を突き止め、
ロードしようとする。その場合、制御モジュール19は、まず、クラス・インス
タンス22からの呼び出しに、サーバ・コンピュータ12(m)、または、呼び
出される方法に関するクラスを保守する他の資源を識別する資源ロケータが含ま
れていたか、あるいは、それ(すなわち、制御モジュール19)またはスタブ・
クラス・ローダ33に、別様にこうした資源ロケータが設けられているかを判定
する(ステップ102)。制御モジュール19は、そのステップにおいて肯定判
定を行うと、ステップ103に進み、スタブ・クラス・ローダ33が、識別され
たサーバ・コンピュータ12(m)との通信を開始して、呼び出されるクラス及
び方法に関するスタブ・クラス・インスタンスを取得できるようにする(ステッ
プ103)。スタブ・クラス・ローダ33は、サーバ・コンピュータ12(m)
からスタブ・クラス・インスタンス30を受信すると、ステップ100において
遠隔方法呼び出しを開始したクラス・インスタンス22に関する実行環境20に
、スタブ・クラス・インスタンス30をロードする(ステップ104)。参照さ
れた遠隔方法に関するスタブ・クラス・インスタンス30が、実行環境にロード
された後、図3に関連して後述するように、その方法を呼び出すことが可能にな
る。
【0026】 ステップ102に戻ると、制御モジュール19によって、クラス・インスタン
ス22からの呼び出しに、サーバ・コンピュータ12(m)、または、呼び出さ
れる方法に関するクラスを保守する他の資源を識別する資源ロケータが含まれて
いなかったと判定され、さらに、それ(すなわち、制御モジュール19)または
スタブ・クラス・ローダ33に、別様にこうした資源ロケータが設けられていな
いと判定されると、「クラスが見つからない」例外を表示することが可能であり
、この時点で、制御モジュール19は、例外ハンドラを呼び出すことが可能であ
る。例外ハンドラは、例えば、ただ単に、遠隔方法を突き止めることができない
ことを制御モジュール19に通知して、制御モジュール19に後続操作の決定を
させるだけといったものを含めて、いくつかの回復操作の任意の1つを実施する
ことが可能である。
【0027】 あるいはまた、制御モジュール19は、例えば、省略時スタブ・クラス・イン
スタンス30の呼び出しを利用して、ネーム・サーバ・コンピュータ13または
ネットワーク14によって得られる他の資源(図1に、全体がネーム・サーバ・
コンピュータ13によって表されている)から資源ロケータを得ようとすること
が可能である。省略時スタブ・クラス・インスタンス30に対する呼び出しには
、呼び出されるクラス及び方法識別名、及び、ネーム・サーバ・コンピュータ1
3の名前が含まれている。省略時スタブ・クラス・インスタンス30を利用する
と、制御モジュール19によって、コンピュータ11(n)は、ネーム・サーバ
・コンピュータ13との通信を開始して、呼び出されるクラス及び方法を保守す
るサーバ・コンピュータ12(m)に関する識別子を求めることが可能になる(
ステップ110)。省略時スタブ・クラス・インスタンス30からの通信は、遠
隔方法の呼び出しにほぼ一致しており、遠隔方法によって、ネーム・サーバ・コ
ンピュータは、遠隔地から呼び出されるクラス及び方法に関連したサーバ・コン
ピュータが存在する場合、サーバ・コンピュータ12(m)に関する識別名を提
供することが可能になるし、あるいはまた、そのクラス及び方法に関連したサー
バ・コンピュータ12(m)が識別されない旨の表示を行うことも可能である。
ステップ110の通信ステップの間、省略時スタブ・クラス・インターフェイス
30は、パラメータ値として、呼び出されるクラス及び方法の識別名を提供する
【0028】 省略時スタブ・クラス・インスタンス30からの通信に応答して、ネーム・サ
ーバ・コンピュータ13は、遠隔方法としてその要求を処理するが(ステップ1
11)、遠隔地から呼び出されるクラス及び方法に関連したサーバ・コンピュー
タが存在する場合、結果得られる情報には、サーバ・コンピュータ12(m)に
関する識別名が含まれることになるし、あるいはまた、そのクラス及び方法に関
連したサーバ・コンピュータ12(m)が識別されない旨の表示がなされること
もある。遠隔方法を終了すると、ネーム・サーバ・コンピュータ13は、省略時
スタブ・クラス・インスタンス30との通信を開始し、結果得られた情報を省略
時スタブ・クラス・インスタンス30に供給する(ステップ112)。
【0029】 ネーム・サーバ・コンピュータ13から結果情報を受信すると、省略時スタブ
・クラス・インスタンスは、制御モジュール19の制御下において、結果情報報
をスタブ・クラス・ローダ33に渡す(ステップ113)。その後、スタブ・ク
ラス・ローダ33は、ネーム・サーバ・コンピュータからの結果情報に、サーバ
・コンピュータ12(m)の識別名、または、そのクラスに関連したサーバ・コ
ンピュータ12(m)が識別されない旨の表示が含まれているか判定する(ステ
ップ114)。スタブ・クラス・ローダ33は、結果情報に、サーバ・コンピュ
ータ12(m)の識別名が含まれていると判定すると、それ(すなわち、スタブ
・クラス・ローダ33)は、ステップ101に戻り、識別されたサーバ・コンピ
ュータ12(m)との通信を開始して、呼び出される可能性のあるクラス及び方
法に関するスタブ・クラス・インスタンスを取得する。一方、スタブ・クラス・
ローダ33が、ステップ114において、ネーム・サーバ・コンピュータ13が
、呼び出される可能性のあるクラス及び方法に関連したサーバ・コンピュータ1
2(m)が識別されない旨の表示を行ったものと判定すると、上述のように、「
クラスが見つからない」例外を表示し(ステップ115)、例外ハンドラを呼び
出すことが可能である。
【0030】 上述のように、図2に関連して上述のように検索され、ロードされるスタブ・
クラス・インスタンス30は、方法の遠隔呼び出しに利用することが可能である
。方法の遠隔呼び出しに関連してクライアント・コンピュータ11(n)によっ
て実施される操作については、図3(図3A、図3B)のフローチャートに関連
して説明することにする。図3に示されるように、クラス・インスタンス22が
方法を呼び出す場合、制御モジュール19は、まず、スタブ・クラス・インスタ
ンス30が、呼び出される遠隔方法に関する実行環境に存在するか確認すること
ができる(ステップ120)。ステップ120において、肯定の判定がなされる
と、スタブ・クラス・インスタンス30は、遠隔呼び出しに利用され、遠隔呼び
出しにおいて、遠隔方法の処理に用いられることになるパラメータ値を提供する
(ステップ121)。その後、呼び出される可能性のある遠隔方法に関するスタ
ブ・クラス・インターフェイス30を用いて、遠隔方法に関するクラスを保守す
るサーバ・コンピュータ12(m)との通信を開始し(ステップ122)、その
プロセスにおいて、遠隔方法の処理に用いられることになる受け渡しパラメータ
値が渡されることになる。方法を処理することになるサーバ・コンピュータ12
(m)が、方法を呼び出しているクライアント・コンピュータ11(n)と同じ
物理的コンピュータである場合、その通信は、物理的コンピュータ内で処理され
ている実行環境間で実施可能であることは明らかである。一方、方法の処理を行
うことになるサーバ・コンピュータ12(m)が、方法を呼び出しているクライ
アント・コンピュータ11(n)とは異なる物理的コンピュータである場合、通
信は、クライアント・コンピュータ及びサーバ・コンピュータのそれぞれのネッ
トワーク・インターフェイス15(n)及び16(m)を介して、ネットワーク
14で実施されることになる。
【0031】 ステップ122におけるスタブ・クラス・インスタンスからの通信に応答して
、サーバ・コンピュータ12(m)は、必要があれば、呼び出される可能性のあ
る方法を保守するクラスに関する実行環境24を確立し、スケルトン32によっ
て提供される情報を用いて、そのクラスに関するクラス・インスタンス26を生
成する(ステップ123)。その後、サーバ・コンピュータ12(m)は、制御
モジュール28の制御下において、スタブ・クラス・インスタンス30によって
提供されたパラメータ値に関して方法に処理を施す(ステップ124)。方法の
処理が完了すると、サーバ・コンピュータ12(m)は、制御モジュール28の
制御下において、クライアントのスタブ・クラス・インスタンス30との通信を
開始し、結果情報をスタブ・クラス・インスタンスに提供する(ステップ125
)。ステップ102に関連して上述のところと同様に、方法を処理したサーバ・
コンピュータ12(m)が、方法を呼び出したクライアント・コンピュータ11
(n)と同じ物理的コンピュータである場合、その通信は、物理的コンピュータ
内で処理されている実行環境24及び20間で実施することが可能である。一方
、方法を処理したサーバ・コンピュータ12(m)が、方法を呼び出しているク
ライアント・コンピュータ11(n)とは異なる物理的コンピュータである場合
、通信は、サーバ・コンピュータ及びクライアント・コンピュータのそれぞれの
ネットワーク・インターフェイス16(m)及び15(n)を介して、ネットワ
ーク14で実施されることになる。スタブ・クラス・インスタンス30は、サー
バ・コンピュータから結果情報を受信すると、遠隔方法の呼び出しを開始したク
ラス・インスタンス22に結果情報を供給することが可能になり(ステップ12
6)、そのクラス・インスタンス22は、制御モジュール19の制御下において
処理を続行することができる。
【0032】 ステップ120に戻ると、制御モジュール19は、そのステップにおいて、呼
び出される可能性のある遠隔方法に適合するスタブ・クラス・インスタンス30
がないと判定すると、その時点で、例外ハンドラを呼び出し(ステップ127)
、選択されたエラー回復操作を実施することができる。
【0033】 本発明に係る方法及びシステムによれば、いくつかの利点が得られる。すなわ
ち、ある実行環境において働いているプログラムが、別の実行環境における方法
の処理を遠隔地から呼び出すことを可能にする、スタブの動的ローディングを容
易にする新規のシステム及び方法が得られるので、それが実行される時、及び、
それが必要になると、プログラムによるスタブのローディングが可能になる。ス
タブが、プログラムと共にコンパイルされる、従って、プログラムのコンパイル
時に、静的に決定されるシステムの場合、それら(スタブ)は、プログラムが受
信する遠隔参照によって支援される、実際の遠隔インターフェイス・セットのサ
ブセットを実施する可能性があり、このため、プログラムに提供されるスタブと
、プログラムの実行時に呼び出される遠隔手順の要件との不整合によって、エラ
ー及び無効果を生じる可能性がある。しかし、動的スタブ・ローディング・シス
テム及び方法の場合には、遠隔方法を提供する特定の資源から、ロードされるス
タブを取得することができるので、それ(スタブ)は、実行時に呼び出しプログ
ラムに提供されるそっくりそのままのインターフェイス・セットを定義すること
ができ、従って、提供されるスタブと、呼び出される遠隔方法の要件との不整合
から生じる可能性のある実行時非互換性が回避される。
【0034】 上述の構成に対していくつかの改良を加えることができるのは明らかである。
例えば、実行環境20については、遠隔方法に対する参照の受信時に、遠隔方法
の呼び出しを容易にするためのスタブ・クラス・インスタンスの取得及びローデ
ィングが行われるように解説してきたが、そうする代わりに、遠隔方法が最初に
呼び出された時点において、スタブ・クラス・インスタンスを取得し、ロードす
ることも可能であるのは明らかである。参照の受信時における遠隔方法に関する
スタブ・クラス・インスタンスの取得及びローディングには、(i)遠隔方法が
実際に呼び出される時に、スタブ・クラス・インスタンスが実行環境に存在する
という利点と、(ii)適合するスタブ・クラス・インスタンスを突き止めるこ
とができない場合、プログラムまたはオペレータに早い時点で通知することがで
きるという利点がある。一方、遠隔方法が呼び出されることになる時点において
、遠隔方法に関するスタブ・クラス・インスタンスの取得及びローディングを行
うと、正しいスタブ・クラス・インスタンスを見つけることができるまで、呼び
出しの遅延を生じる可能性があるが、たとえ参照を受信しても、その方法が実際
に呼び出されない場合には、スタブ・クラス・インスタンスを突き止めて、ロー
ドしなくてもよい。
【0035】 本発明によるシステムは、全体として、または、部分的に、その任意の部分を
適合するプログラムによって制御することが可能な、専用ハードウェアまたは汎
用コンピュータ・システム、または、その任意の組み合わせから構成することが
可能である。任意のプログラムは、全体として、または、部分的に、従来のやり
方で、システムの一部を構成するか、またはシステムに記憶することもできるし
、あるいは、全体として、または、部分的に、ネットワーク、または、従来のや
り方で情報を転送する他のメカニズムを介して、システムに供給することも可能
である。さらに、明らかなことではあるが、システムには、直接システムに接続
することが可能な、または、ネットワーク、または、従来のやり方で情報を転送
する他のメカニズムを介して、システムに情報を転送することが可能なオペレー
タ入力素子(図示省略)を用いて、オペレータが提供する情報によって、操作及
び/または別様の制御を加えることが可能である。
【0036】本発明の他の実施形態 これまで、動的にスタブを検索し、ロードする本発明に合わせた実施形態につ
いて説明してきたが、やはり、本発明に合わせた他の実施形態の1つでは、ルッ
クアップ・サービスにオブジェクトをロードし、検索を行うが、この場合、オブ
ジェクトには、特定のサービスとの通信を容易にするためのコード(スタブ情報
)が含まれるか、または、サービスを実施するコードが含まれている。この他の
実施形態は、スタブを表すオブジェクトをルックアップ・サービスからダウンロ
ードするものとして後述されるが、以下で述べるその技法は、実際にサービスを
実施するオブジェクトのダウンロードにも等しく適用可能である。ルックアップ
・テーブルは、ネットワークのサービス・ディレクトリを定義し、これらのサー
ビスに対する参照を記憶する。ネットワークにおけるサービスの利用を所望する
ユーザは、ルックアップ・サービスにアクセスし、ルックアップ・サービスは、
ユーザによるサービスへのアクセスを容易にするスタブ情報を返送する。
【0037】 ルックアップ・サービスには、参考までに本明細書において援用されている、
本出願と共に同じ日に提出され、同じ譲受人に譲渡された、「分散システムの動
的ルックアップサービス」と題する同時係属の米国特許出願第 号に解説
されている、「Djinn」と呼ばれる、ネットワークで利用可能な全サービス
のサブセットを納めることが可能である。「Djinn」は、ネットワークによ
って供給される1つ以上のサービスまたは資源の論理的グループ化を表している
。ネットワークに接続された装置は、Djinnにそれら自体を動的に追加する
こともできるし、あるいは、Djinnからそれら自体を動的に除去することも
可能である。追加の場合、装置は、ゼロ以上のそのサービスをDjinnに提供
し、Djinnによって現在得られる全てのサービスを利用できるようになる。
Djinnによって提供されるサービスは、ルックアップ・サービスによって定
義され、これによって、Djiinに関するサービスを見つけ出し、かつ、利用
するための共通手段が得られる。
【0038】 ルックアップ・サービスは、Djinnまたはある範囲のサービスを提供する
コンピュータ・ネットワークに関するインフラストラクチャの基本部分である。
それは、プログラムが、Djinn内において利用可能なサービスを見つけ出す
ための主たる手段であり、ユーザ及びアドミニストレータが、Djinnのサー
ビスを発見し、それと対話することを可能にするスタブを提供するための基礎で
ある。
【0039】 次に図4を参照すると、ルックアップ・サービス400がさらに詳細に示され
ている。サーバ・コンピュータ12(m)には、さらに後述するルックアップ・
サービス400も含まれている。図1に示すサーバ12(m)に配置されたルッ
クアップ・サービス400は、「サービス項目」410〜418の集合を保守し
ている。各サービス項目410〜418は、Djinn内で利用可能なサービス
のインスタンスを表しており、各サービス項目410には、サービス項目を一意
的に識別するサービスID402、プログラムがサービスにアクセスするために
利用するスタブ404、及び、サービスを記述する属性406の集合が納められ
ている。
【0040】 ルックアップ・サービス400に新規サービスを登録すると、ルックアップ・
サービスは、その新規サービス項目410に、一般には番号である一意性サービ
スID402を与える。このサービスID402を後で利用して、特定のサービ
スにアクセスすることにより、照会時におけるいくつかの照合サービス項目の不
必要な探索または発見を回避することが可能になる。
【0041】 新規のサービスが生成されると(例えば、新規の装置がDjinnに追加され
ると)、そのサービスは、ルックアップ・サービス400にそれ自体の登録を行
い、クライアントがサービスにアクセスために利用するスタブ404、及び、サ
ービスに関連した属性406の初期集合を提供する。例えば、プリンタには、速
度(ページ/秒)、解像度(ドット/インチ)、カラー、及び、両面印刷が支援
されるか否かを表示する属性が含まれている可能性がある。ルックアップ・サー
ビス・アドミニストレータ(不図示)は、やはり、サービスの物理的場所及びそ
の一般名といった新規の属性を追加することが可能である。さらに、サービスは
、トナーを使い果たしたプリンタといった、アドミニストレータの対応処置を必
要とする問題に遭遇すると、どんな問題であるかを表示する属性を追加すること
が可能である。本発明に合わせた実施形態の1つでは、属性は、複数項目として
記憶され、属性の追加、修正、及び、削除は、本明細書において既に援用された
、「データベースのインプレイスモディフィケーション用の方法及び装置」と題
する同時係属の米国特許出願第 号に解説されたマルチ・テンプレート及
び技法を利用して実施することが可能である。
【0042】 個々の属性セットは、クラスのインスタンスとして表され、各属性は、そのク
ラスのフィールドである。プリンタのための属性セットの例は、次の通りである
: public class Printer{ Integer ppm; // page per minute integer dpi; // resolution in dots per inch Boolean dupulex; // supports two-sided printing Boolean color; // color or black-only } このクラスによって、属性セットと個々の属性の両方の強力な型付けが可能にな
る。
【0043】 サービス項目410の属性406は、1組の属性セットとして表すことも可能
である。サービス項目410の属性406は、属性値の異なる、同じクラスの複
数インスタンス、並びに、異なるクラスの複数インスタンスを含むことが可能で
ある。例えば、サービス項目410の属性406は、それぞれ、異なる言語によ
るサービスの一般名を与える名前クラスの複数インスタンスと、さらに、場所ク
ラス、型クラス、または、他の各種サービス固有のクラスを備えることが可能で
ある。プリンタを記述するために追加される属性の例には、名前、型、または、
場所があり得る: public class Name implements Entry { String name; // the user-friendly name of the service String description; // free-form description of the service String language; // language(e.g.,English,French)used the ab
ove } public class Type implemnts Entry { String Type; // model number/name of product String vendor; // vendor of product that implements the se
rvice String model; // model number/name of product String version; // version number of product } public class Location implements Entry { Integer floor; // what foor the service is on String building; // what building it'in String room; // what room it'in } この例の場合、このサービス項目410に関する属性406は、それぞれ、それ
自体の個別属性を含んでいる、プリンタ、名前、型、及び、場所クラス・インス
タンスを含む属性セットである。しかし、留意すべきは、属性に用いられる方式
は、これらの例による制約を受けないという点である。
【0044】 特定のタイプのサービスを必要とするプログラム(他のサービスを含む)は、
ルックアップ・サービス400を利用して、そのサービスにアクセスすために利
用可能なスタブを見つけ出すことができる。突き合わせは、サービスのタイプ、
並びに、サービスに付随する特定の属性に基づいて行うことが可能である。例え
ば、クライアントは、所望のサービスに対応するスタブ・タイプを要求するか、
または、特定の場所または印刷速度のような所定の属性を要求することによって
、プリンタを探索することが可能である。本発明に合わせた実施例の1つでは、
属性は、複数項目として記憶され、属性の突き合わせは、本明細書において既に
援用された、「データベースのマルチエントリ及びマルチテンプレートマッチン
グ用の方法及びシステム」と題する同時係属の米国特許出願第 号に解説
されているように、マルチテンプレートを利用して実施することが可能である。
【0045】 もう一度図4を参照すると、あるサービスに対応するスタブ404は、ルック
アップ・サービス400に登録され、クライアント・コンピュータ11(n)に
よって、遠隔地からサービス方法にアクセスするために利用される。このスタブ
404は、「スマート・プロキシ」とすることも可能である。スタブがそれに埋
め込まれたコードである、スマート・プロキシは、クライアントが、遠隔地から
呼び出されるスタブ及び方法をより有効に実施するのに役立つ。スマート・プロ
キシは、その実際のスタブ呼び出しの前または後に、効率をよくするため、多少
のローカル計算を実施する場合が多い。例えば、スマート・プロキシは、キャッ
シュ情報に対するコードを含むことが可能であり、従って、クライアントが、サ
ーバに戻って、その情報を取得せずに、それをもう一度要求する場合、スマート
・プロキシは、その応答をキャッシュに納めておいて、すぐに返送することが可
能である。それに関する状況が呼び出されると、スマート・プロキシは、クライ
アントから受信したパラメータを他のタイプに変換し、それから、変換されたタ
イプを送信することも可能である。スマート・プロキシの概念については、参考
までに本明細書において援用されている、本出願と同じ日に提出され、同じ譲受
人に譲渡された、「分散システムのリモート手続き呼出に関連づけられる処理を
実行するためのダウンロード可能なスマートプロキシ」と題する同時係属の米国
特許出願第 号においてさらなる説明がある。
【0046】 図5には、本発明に合わせたシステムによって用いられる、サービス・スタブ
をルックアップ・サービスに追加するためのステップを例示したフローチャート
が描かれている。装置がネットワークに加入する場合、装置は、ルックアップ・
サービスにサービスを登録する(ステップ500)。ルックアップ・サービス4
00への登録と同時に、装置は、ルックアップ・サービスにスタブ404を供給
し、さらに、ルックアップ・サービスに関連属性406を提供することも可能で
ある(ステップ502)。これに応答して、ルックアップ・サービス400は、
一般には、前述のように番号である、一意性のサービスID402をルックアッ
プ・サービスに登録されたサービスに割り当てる(ステップ504)。装置が、
ルックアップ・サービス400にスタブ404及び属性406を供給し、ルック
アップ・サービスが、一意性のサービスID402を割り当ててしまうと、装置
は、ルックアップ・サービスへのサービスの登録を完了したことになる(ステッ
プ506)。ルックアップ・サービスにサービスが登録されると、クライアント
は、ルックアップ・サービスを利用して、登録されたサービスへのアクセスに必
要なスタブ情報を取得することができる。
【0047】 図6には、本発明に合わせたシステム及び方法によって用いられる、ルックア
ップ・サービスからサービス項目をダウンロードするためのステップを例示した
フローチャートが描かれている。実施例の1つでは、クライアント・コンピュー
タ11(n)が、サーバ12(m)にルックアップ・サービス400に関するサ
ービスの要求を送信する(ステップ600)。その要求は、クライアント・コン
ピュータ11(n)におけるクラス・インスタンス22の遠隔方法呼び出しから
生じるものであり、要求されたサービスは、典型的なサービス38がサーバ12
(I)に常駐するように、遠隔サーバに常駐することが可能である。本発明に合
わせた実施例の1つでは、クライアント・コンピュータ11(n)は、ルックア
ップ・サービス400からのサービスを1つ以上要求することが可能である。ク
ライアントの要求は、特定のサービスID402、あるタイプのスタブ404、
または、属性406のセット、または、その任意の組み合わせの形をとることに
なる(ステップ602)。要求に応答して、制御モジュール19は、スタブ・ク
ラス・ローダ33に命じて、サーバ12(m)から対応するスタブ404を突き
止めさせる。そうするために、制御モジュール19は、スタブ・クラス・ローダ
33が、サーバ12(m)との通信を開始して、取得すべきサービスに関するス
タブ404を取得できるようにする。
【0048】 クライアント・コンピュータ11(n)からの要求を受信すると、サーバ12
(m)の制御モジュール28は、要求されたサービスに対応するスタブ404を
求めて、ルックアップ・サービス400を探索する(ステップ604)。一致が
見つからなければ、制御モジュール28は、ヌル値を返送する(ステップ606
及び608)。そうではなく、制御モジュール28が、クライアント・コンピュ
ータ11(n)がアクセスしようとしているサービスに対応するスタブ404を
突き止めた場合には、サーバ12(m)は、クライアント・コンピュータ伸すタ
ブ・クラス・ローダ33にそのスタブを返送する(ステップ612)。クライア
ントの要求に一致する2つ以上のスタブを突き止めた場合(ステップ610)、
本発明に合わせた実施形態の1つでは、スタブの任意の1つが返送される(ステ
ップ616)。クライアントが2つ以上のサービスを要求するもう1つの実施例
では、サーバ12(m)は、属性と共に要求された数のスタブを返送する(ステ
ップ614及び618)。
【0049】 スタブ404がスタブ・クラス・ローダ33によって受信されると、スタブ・
クラス・ローダは、それを実行環境20にロードする。そのロードが済むと、遠
隔地からサービス38を呼び出すことが可能になる。図3に関連して既述のとこ
ろと同じやり方で、スタブ情報を利用して、サービス38の遠隔処理が呼び出さ
れる。
【0050】 一般に、クラス・インスタンス22は、スタブ404を利用して、サーバ12
(I)のサービス38にアクセスすることが可能である。クラス・インスタンス
22が、返送スタブ404に対応するサービス38の利用を必要とする場合、制
御モジュール19は、スタブ404が実行環境内に存在することを確認する。も
し存在すれば、クラス・インスタンス22は、スタブ404を利用して、サービ
ス38を保守するサーバ12(I)との通信を開始し、パラメータが、実施のた
めサービス38に渡される。
【0051】 このルックアップ・サービスの実施は、あるアドレス空間において働いている
プログラムが、別のアドレス空間における手順の処理を呼び出すことができるよ
うにする、スタブ情報の動的ローディング及び検索の応用例の1つである。ルッ
クアップ・サービスにおける動的スタブ・ローディングの利用に関するこの実施
例によって、クライアントは、そのサービスの直接利用を容易にするスタブ情報
を受信することが可能になる。前述のルックアップ・サービスとは異なり、本発
明に合わせたこのルックアップ・サービスは、サービスへの直接アクセスに必要
なコードを返送する。こうして、スタブ情報の動的ローディングを利用すること
によって、クライアントは、遠隔サーバにおけるサービスの利用を容易にするの
に必要な全てのコードを受信することが可能になる。
【0052】 以上の説明は、本発明の特定の実施形態に制限された。しかし、さまざまな変
更及び修正を加えることができるのは明らかである。特許請求の範囲には、本発
明の真の精神及び範囲内に含まれるこれらの及び他のこうした変更及び修正が包
含されている。
【図面の簡単な説明】
【図1】 あるアドレス空間において働いているプログラムが、別のアドレス空間におけ
る遠隔方法または手順の処理を呼び出すことができるようにする、「スタブ」情
報の取得、動的ローディング、及び、利用を容易にするための、本発明に従って
構成された構成を含むコンピュータ・ネットワークの機能ブロック図である。
【図2】 図1に示す構成によって、スタブ情報の取得及び動的ローディングに関連して
実施される操作を表したフローチャートである。
【図2A】 同じく、図1に示す構成によって、スタブ情報の取得及び動的ローディングに
関連して実施される操作を表したフローチャートである。
【図2B】 同じく、図1に示す構成によって、スタブ情報の取得及び動的ローディングに
関連して実施される操作を表したフローチャートである。
【図3A】 図1に示す構成によって、遠隔方法または手順の処理を呼び出すためのスタブ
情報の利用に関連して実施される操作を表したフローチャートである。
【図3B】 同じく、図1に示す構成によって、遠隔方法または手順の処理を呼び出すため
のスタブ情報の利用に関連して実施される操作を表したフローチャートである。
【図4】 本発明に合わせたルックアップ・サービスを例示したダイアグラムである。
【図5】 本発明に合わせたルックアップ・サービスにスタブを追加する方法を例示した
フローチャートである。
【図6】 本発明に合わせたシステムによってルックアップ・サービスからスタブを検索
するための方法を例示したフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (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)発明者 ウォールラス アン エム アメリカ合衆国、01450 マサチューセッ ツ州、グロトン、ノースウッズ ロード 9 (72)発明者 ウォルド ジェイムズ エイチ アメリカ合衆国、01826 マサチューセッ ツ州、ドラカット、ルビー ロード 155 Fターム(参考) 5B045 BB42 BB43 GG06 5B098 AA10 GA04 GC16

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システムにおけるルックアップ・サービスに関連
    したネットワーク・サービスにアクセスするための方法であって、 ルックアップ・サービスによる、ネットワーク・サービスの1つに対するアク
    セス要求を受信するステップと、 コードを返送して、前記ネットワーク・サービスの1つへのアクセスを容易に
    するステップとが含まれていることを特徴とするサービスアクセス方法。
  2. 【請求項2】 さらに、前記返送されたコードを利用して、前記ネットワー
    ク・サービスにアクセスするステップが含まれることを特徴とする請求項1に記
    載のサービスアクセス方法。
  3. 【請求項3】 前記コードの返送ステップに、スタブを返送するステップが
    含まれることを特徴とする請求項1に記載のサービスアクセス方法。
  4. 【請求項4】 前記コードの返送ステップに、スマート・プロキシを返送す
    るステップが含まれることを特徴とする請求項1に記載のサービスアクセス方法
  5. 【請求項5】 前記受信ステップに、前記ネットワーク・サービスの1つが
    サービス・タイプによって識別されるように、前記ネットワーク・サービスの1
    つにアクセスする要求を受信するステップが含まれることを特徴とする請求項1
    に記載のサービスアクセス方法。
  6. 【請求項6】 前記受信ステップに、前記ネットワーク・サービスの1つが
    サービス識別番号によって識別されるように、前記ネットワーク・サービスの1
    つにアクセスする要求を受信するステップが含まれることを特徴とする請求項1
    に記載のサービスアクセス方法。
  7. 【請求項7】 前記受信ステップに、前記ネットワーク・サービスの1つが
    前記ネットワーク・サービスの1つの属性によって識別されるように、前記ネッ
    トワーク・サービスの1つにアクセスする要求を受信するステップが含まれるこ
    とを特徴とする請求項1に記載のサービスアクセス方法。
  8. 【請求項8】 前記コードの返信ステップに、前記要求に一致する複数のネ
    ットワーク・サービスに関連した複数のスタブを返信するステップが含まれるこ
    とを特徴とする請求項1に記載のサービスアクセス方法。
  9. 【請求項9】 前記複数のスタブの返信ステップに、各スタブに関連した属
    性を返信するステップが含まれることを特徴とする請求項1に記載のサービスア
    クセス方法。
  10. 【請求項10】 複数のサービスに関するルックアップ・サービスを備えた
    データ処理システムの方法であって、 前記サービスの1つにアクセスする要求を前記ルックアップ・サービスに送信
    するステップと、 前記要求に応答して、前記サービスの1つの利用を容易にするコードを受信す
    るステップとが含まれていることを特徴とするデータ処理方法。
  11. 【請求項11】 さらに、前記受信したコードを利用して、前記サービスの
    1つにアクセスするステップが含まれることを特徴とする請求項10に記載のデ
    ータ処理方法。
  12. 【請求項12】 前記コードの受信ステップに、前記サービスの1つへのア
    クセスを容易にするスタブを受信するステップが含まれることを特徴とする請求
    項10に記載のデータ処理方法。
  13. 【請求項13】 前記コードの受信ステップに、前記サービスの1つへのア
    クセスを容易にするスマート・プロキシ受信するステップが含まれることを特徴
    とする、請求項10に記載のデータ処理方法。
  14. 【請求項14】 クライアントに関する第1のコンピュータと、関連サービ
    スに対するアクセスに用いられるサービス・スタブを含むルックアップ・サービ
    スに関する第2のコンピュータを備えるデータ処理システムにおける方法であっ
    て、 前記クライアントが、前記ルックアップ・サービスに対して、アクセスすべき
    前記関連サービスの1つを識別する要求を送信するステップと、 前記ルックアップ・サービスが前記要求を受信するステップと、 前記識別されるサービスを求めて、前記ルックアップ・サービスを探索するス
    テップと、 前記識別されたサービスに関連するサービス・スタブを前記クライアントに返
    信するステップと、 前記クライアントが前記サービス・スタブを受信するステップと、 前記クライアントのアドレス空間に前記サービス・スタブをロードして、前記
    サービス・スタブを前記識別されたサービスの呼び出しに用いるために利用し得
    るようにするステップと、 前記クライアントが、前記スタブを利用して、前記識別されたサービスにアク
    セスするステップとが含まれていることを特徴とするデータ処理方法。
  15. 【請求項15】 前記送信ステップに、2つ以上のサービスの返信要求を送
    信するステップが含まれることと、前記返信ステップに、さらに、前記要求に応
    答して前記クライアントに2つ以上のスタブを返信するステップが含まれること
    を特徴とする請求項14に記載のデータ処理方法。
  16. 【請求項16】 前記探索ステップに、要求に一致するサービスが見つから
    なければ、ヌル値を返信するステップが含まれることを特徴とする請求項14に
    記載のデータ処理方法。
  17. 【請求項17】 複数のネットワーク・サービスを備えた分散システムであ
    って、 前記ネットワークに対するアクセスを容易にするためのスタブを備えるルック
    アップ・サービスが設けられたサーバ・コンピュータと、 前記ネットワーク・サービスの1つに対応する前記スタブの1つに対する要求
    をルックアップ・サービスに送信し、前記スタブを受信し、前記受信スタブを利
    用して、前記ネットワーク・サービスの1つにアクセスするプログラムを備えた
    クライアント・コンピュータが含まれていることを特徴とする分散システム。
  18. 【請求項18】 前記クライアント・コンピュータが、遠隔手順呼び出し機
    構を利用して、前記スタブを受信することを特徴とする請求項17に記載の分散
    システム。
  19. 【請求項19】 クライアントに関する第1のコンピュータと、関連するサ
    ービスにアクセスするために用いられるサービス・スタブを納めたルックアップ
    ・サービスに関する第2のコンピュータを備えたシステムであって、 前記クライアントによるアクセスすべき関連サービスの1つを識別する要求を
    前記ルックアップ・サービスに送信するための手段と、 前記ルックアップ・サービスが前記要求を受信するための手段と、 前記識別されるサービスを求めて、前記ルックアップ・サービスを探索するた
    めの手段と、 前記識別されたサービスに関連するサービス・スタブを前記クライアントに返
    信するための手段と、 前記クライアントが前記サービス・スタブを受信するための手段と、 前記サービス・スタブを前記クライアントのアドレス空間にロードして、前記
    サービス・スタブを前記識別されたサービスの呼び出しに用いるために利用し得
    るようにするための手段と、 前記クライアントが前記スタブを利用して、前記識別されたサービスにアクセ
    スするための手段が含まれていることを特徴とするコンピュータシステム。
  20. 【請求項20】 データ処理システムを制御して、ルックアップ・サービス
    に納められたネットワーク・サービスにアクセスするための方法を実施させる命
    令を納めたコンピュータ可読媒体であって、前記方法に、 前記ルックアップ・サービスが、前記ネットワーク・サービスの1つにアクセ
    スする要求を受信するステップと、 前記ネットワーク・サービスの1つへのアクセスを容易にするコードを返信す
    るステップが含まれていることを特徴とするコンピュータ可読媒体。
  21. 【請求項21】 前記方法に、さらに、前記返信コードを利用して、前記ネ
    ットワーク・サービスにアクセスするステップが含まれることを特徴とする、請
    求項20に記載のコンピュータ可読媒体。
  22. 【請求項22】 前記返信ステップに、スタブを返信するステップが含まれ
    ることを特徴とする請求項20に記載のコンピュータ可読媒体。
  23. 【請求項23】 前記返信ステップに、スマート・プロキシを返信するステ
    ップが含まれることを特徴とする請求項20に記載のコンピュータ可読媒体。
  24. 【請求項24】 データ処理システムを制御して、ルックアップ・サービス
    に納められたネットワーク・サービスにアクセスするための方法を実施させる命
    令を納めたコンピュータ可読媒体であって、前記方法に、 前記ルックアップ・サービスが、前記サービスの1つにアクセスする要求を送
    信するステップと、 前記要求に応答して、前記サービスの1つへのアクセスを容易にするコードを
    受信するステップが含まれていることを特徴とするコンピュータ可読媒体。
  25. 【請求項25】 前記方法に、さらに、前記受信したコードを利用して、前
    記サービスの1つにアクセスするステップが含まれることを特徴とする請求項2
    4に記載のコンピュータ可読媒体。
  26. 【請求項26】 前記コードを受信するステップに、前記サービスの1つへ
    のアクセス容易にするスタブを受信するステップが含まれることを特徴とする請
    求項24に記載のコンピュータ可読媒体。
  27. 【請求項27】 前記コードを受信するステップに、前記サービスの1つへ
    のアクセス容易にするスマート・プロキシを受信するステップが含まれることを
    特徴とする請求項24に記載のコンピュータ可読媒体。
JP2000533818A 1998-02-26 1999-02-25 ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム Pending JP2002505474A (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,826 US6832223B1 (en) 1996-04-23 1998-03-20 Method and system for facilitating access to a lookup service
US09/044,826 1998-03-20
PCT/US1999/004066 WO1999044134A1 (en) 1998-02-26 1999-02-25 Method and system for facilitating access to a lookup service

Publications (1)

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

Family

ID=26722037

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000533818A Pending JP2002505474A (ja) 1998-02-26 1999-02-25 ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム

Country Status (5)

Country Link
EP (1) EP1058884A1 (ja)
JP (1) JP2002505474A (ja)
CN (1) CN1298506A (ja)
AU (1) AU2787899A (ja)
WO (1) WO1999044134A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280814A (ja) * 2003-03-12 2004-10-07 Microsoft Corp ソフトウェアシステム内での処理ロジックのカスタマイズ方法
JP2008287357A (ja) * 2007-05-15 2008-11-27 Toshiba Corp サービス提供システム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757729B1 (en) * 1996-10-07 2004-06-29 International Business Machines Corporation Virtual environment manager for network computers
US6711157B1 (en) * 1999-08-24 2004-03-23 Telefonaktiebolaget L M Ericsson (Publ) System and method of creating subscriber services in an IP-based telecommunications network
JP2002132739A (ja) 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
US7002559B2 (en) 2000-11-13 2006-02-21 Anoto Ab Method, system and product for information management
SE523112C2 (sv) * 2001-07-05 2004-03-30 Anoto Ab Förfaringssätt för kommunikation mellan en användarenhet som har möjlighet att läsa information från en yta, och servrar som exekverar tjänster som stöder användarenheten
US6907444B2 (en) * 2001-09-12 2005-06-14 Hewlett-Packard Development Company, L.P. System and method to automatically obtain a service
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US7720953B2 (en) * 2005-04-18 2010-05-18 Research In Motion Limited System and method of data source detection

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US6938263B2 (en) * 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US5991823A (en) * 1996-06-26 1999-11-23 Sun Microsystems, Inc. Low overhead object adaptor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280814A (ja) * 2003-03-12 2004-10-07 Microsoft Corp ソフトウェアシステム内での処理ロジックのカスタマイズ方法
JP2008287357A (ja) * 2007-05-15 2008-11-27 Toshiba Corp サービス提供システム

Also Published As

Publication number Publication date
WO1999044134A1 (en) 1999-09-02
AU2787899A (en) 1999-09-15
CN1298506A (zh) 2001-06-06
EP1058884A1 (en) 2000-12-13

Similar Documents

Publication Publication Date Title
US9838474B2 (en) Distributing and synchronizing objects
US8713089B2 (en) Dynamic lookup service in a distributed system
US6654793B1 (en) System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6708171B1 (en) Network proxy
US6983285B2 (en) Apparatus and method for dynamically verifying information in a distributed system
US6604127B2 (en) Dynamic lookup service in distributed system
JP4729172B2 (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
US9183066B2 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6832223B1 (en) Method and system for facilitating access to a lookup service
JP2002505464A (ja) 分散システムの装置との通信に用いられるダウンロード可能なコードを供給するための装置及び方法
JP2002505467A (ja) 分散システムにおける動的参照サービス
US20020046228A1 (en) Method and system for facilitating access to a lookup service
JP2002505473A (ja) 決定性ハッシュでリモートメソッドを識別する方法とシステム
JP2002505553A (ja) 多様性トークン・ベース・コントロール
JP2002505474A (ja) ルックアップ・サービスに対するアクセスを容易にするための方法及びシステム
US20020198895A1 (en) Apparatus and method for dynamically verifying information in a distributed system
JP2002505463A (ja) 分散システム内の遠隔処理呼出に関連する処理をおこなうためのダウンロード可能なスマートプロキシ
JP2002505478A (ja) 分散形システムにおけるイベント通知のためのオブジェクトの据置き復元及び遠隔ローディング
JP2002505472A (ja) 分散システムにおいてリモート・オブジェクトの状態を判断するための方法および装置
KR20010034515A (ko) 룩업 서비스에의 액세스를 용이하게 하는 방법 및 시스템
EP1194837A2 (en) Dynamic lookup service in a distributed system