JP2002132739A - スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体 - Google Patents

スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体

Info

Publication number
JP2002132739A
JP2002132739A JP2000322269A JP2000322269A JP2002132739A JP 2002132739 A JP2002132739 A JP 2002132739A JP 2000322269 A JP2000322269 A JP 2000322269A JP 2000322269 A JP2000322269 A JP 2000322269A JP 2002132739 A JP2002132739 A JP 2002132739A
Authority
JP
Japan
Prior art keywords
stub
client
server
name
identifier
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
JP2000322269A
Other languages
English (en)
Inventor
Junji Takagi
淳司 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2000322269A priority Critical patent/JP2002132739A/ja
Priority to US09/982,950 priority patent/US6839897B2/en
Priority to EP01124343A priority patent/EP1202174A3/en
Publication of JP2002132739A publication Critical patent/JP2002132739A/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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 1つのサーバコンピュータから、Java実
行環境の種類が異なる複数のクライアントコンピュータ
に対して、各クライアントコンピュータにおけるリモー
トメソッド呼び出しに使えるスタブクラスをダウンロー
ドできるようにする。 【解決手段】 サーバコンピュータ4には、スタブを実
行環境の異なるクライアント1〜3の種類毎に用意した
スタブクラス26−1〜26−3がある。各クライアン
トコンピュータ1〜3はスタブが必要になったとき、ス
タブ名とクライアント識別子とを指定したスタブ要求を
ネットワーク6経由でサーバコンピュータ4に送出す
る。サーバコンピュータ4のスタブ検索インターフェー
ス27は、指定されたスタブ名とクライアント識別子に
基づいて適切なスタブをスタブクラス26−1〜26−
3から検索して要求元のクライアントに返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、リモートメソッド
呼び出し機構を備えたコンピュータシステムに関し、特
にクライアント側で必要となるスタブをサーバ側からダ
ウンロードして使用するコンピュータシステムにおける
スタブ検索ローディングシステム及びその方法に関す
る。
【0002】
【従来の技術】リモートメソッド呼び出し(Remot
e Method Invocation;以下、RM
Iと称す)は、別のJava仮想マシン上にあるJav
aオブジェクトのメソッドを、同じJava仮想マシン
上にあるオブジェクトのメソッドと同じように呼び出せ
るようにした機構であり、Javaを使って分散システ
ムを構築する際に使われる。
【0003】図10にRMIの仕組みの概要を示す。R
MIは以下の手順で処理される。先ず、クライアントオ
ブジェクトからサーバオブジェクトへの呼び出しは、ク
ライアントに置かれたスタブに送られる((1)) 。スタブ
は、この呼び出しに対してマーシャリング処理などを行
って、サーバのスケルトンに転送する((2)) 。スケルト
ンは、スタブから送られてきた呼び出しに対してアンマ
ーシャリング処理などを行ってサーバオブジェクトへの
呼び出しを生成し、サーバオブジェクトの呼び出しを行
う((3)) 。ここで、マーシャリング処理とは、内部のデ
ータ表現形式を異なるシステム間で交換可能なデータ形
式に変換する処理を言い、アンマーシャリング処理はそ
の逆の処理を言う。
【0004】サーバオブジェクトは、呼び出されたメソ
ッドを実行し、戻り値がある場合はそれをスケルトンに
送る((4)) 。スケルトンは、送られた戻り値に対してマ
ーシャリング処理などを施して、クライアントのスタブ
に送り返す((5)) 。スタブは、送られてきた戻り値に対
しアンマーシャリング処理などを施し、呼び出し元のク
ライアントオブジェクトにメソッド呼び出しの戻り値と
して返す((6)) 。
【0005】このようにクライアントオブジェクトから
サーバオブジェクトの呼び出しは、全てスタブを通じて
行われる。つまり、スタブは、分散環境におけるクライ
アント側にあってサーバオブジェクトの代理人としての
役割を持つ。一般には、1つのサーバオブジェクト毎に
1つのスタブが必要となる。
【0006】スタブとスケルトンは、サーバアプリケー
ションの呼び出しインタフェースを記述したIDL(In
terface Definition Language)ファイルをIDLコンパ
イラでコンパイルすることで、生成することができる。
スタブとスケルトンを実際に利用するときは、クライア
ントアプリケーション、サーバアプリケーションをコン
パイルするときに、スタブ、スケルトンをリンクして一
緒にコンパイルする方式(以下これを静的方式と言う)
が一般的である。しかし、静的方式では、リモート手続
きを呼び出すのに必要な情報はプログラムの実行時でな
くコンパイル時に決定しなければならず、プログラムに
リンクされたスタブと、そのプログラムの実行時に呼び
出されるリモート手続きの要件との間の不一致のために
エラーが発生し、効率が低下する恐れがあった。また、
全てのスタブをクライアント側で記憶するための記憶容
量が必要であった。
【0007】そこで、このような問題点を解消するため
に、クライアントがスタブをサーバから動的にダウンロ
ードして使用する方式(以下これを動的方式と言う)が
提案されている(例えば特開平10−83308号公
報)。以下、従来の動的方式について、図面を参照して
説明する。
【0008】図11に動的方式を採用した従来のコンピ
ュータシステムの一例を示す。この従来のコンピュータ
システムは、クライアントコンピュータ101、10
2、サーバコンピュータ103及びネームサーバコンピ
ュータ104が、ネットワーク105を通じて相互に接
続されている。
【0009】クライアントコンピュータ101には、J
ava実行環境(Java Runtime Enviroment)110が構
築されており、このJava実行環境110の下で、ク
ラス111が実行される。Java実行環境とは、Ja
va仮想マシンを含めて、Javaプログラムを実行さ
せるために必要となるソフトウェアである。また、クラ
ス111は、Javaソースコードをコンパイルして作
成されたクラスファイルであり、Java仮想マシンが
実行するコードで記述されている。図では、スタブクラ
スを含め、クライアントコンピュータ101に存在する
クラスの全てをクラス111で表現している。
【0010】Java実行環境110には、制御部11
2と、スタブ検索部113を有するクラスローダ114
と、インスタンス115とが含まれる。スタブ検索部1
13は、サーバコンピュータ103からスタブクラスを
ダウンロードする手段である。クラスローダ114は、
クラス111及びスタブ検索部113でダウンロードし
たスタブクラスをJava実行環境110にロードする
手段である。インスタンス115は、クラスローダ11
4によってロードされたクラス111及びスタブクラス
をインスタンス化して生成したオブジェクトである。図
では、スタブクラスインスタンスを含め、Java実行
環境110に存在するインスタンスの全てをインスタン
ス115で表現している。個々のインスタンス(オブジ
ェクト)115は、変数(状態)とメソッド(振る舞
い)とを持つ。周知のようにオブジェクト指向プログラ
ミングにおいては、このような複数のオブジェクト(イ
ンスタンス)が互いにメッセージを送受信し合い、その
相互作用によってプログラムが実行される。制御部11
2は、Java実行環境110の制御モジュールであ
り、Java仮想マシン等を含んで構成される。制御部
112は、クラスローダ114によってロードされたク
ラスをインスタンス化してインスタンス115を生成
し、クライアント側のプログラムの実行を制御する。
【0011】他のクライアントコンピュータ102も、
クライアントコンピュータ101と同様な構成を有す
る。
【0012】サーバコンピュータ103にも、Java
実行環境120が構築されており、このJava実行環
境120の下で、クラス121及びスケルトンクラス1
22が実行される。Java実行環境120には、制御
部123と、クラスローダ124と、インスタンス12
5とが含まれる。クラスローダ124は、クラス121
及びスケルトンクラス122をJava実行環境120
にロードする手段である。インスタンス125は、クラ
スローダ124によってロードされたクラス121及び
スケルトンクラス122をインスタンス化して生成した
オブジェクトである。図では、スケルトンクラスインス
タンスを含め、Java実行環境120に存在するイン
スタンスの全てをインスタンス125で表現している。
制御部123は、Java実行環境120の制御モジュ
ールであり、Java仮想マシン等を含んで構成され
る。制御部123は、クラスローダ124によってロー
ドされたクラス及びスケルトンクラスをインスタンス化
してインスタンス125を生成し、サーバ側のプログラ
ムの実行を制御する。
【0013】サーバコンピュータ103には、更に、ス
タブクラス126とスタブ検索インターフェース127
とが設けられている。スタブクラス126とスケルトン
クラス122とは、1対1に対応している。つまり、I
DLファイルをコンパイルして生成されたスケルトンク
ラス122とスタブクラス126のペアが、サーバコン
ピュータ103で保持管理されている。そして、これら
のスタブクラス126は、スタブクラスの名前で検索可
能に保持されている。スタブ検索インターフェース12
7は、クライアントコンピュータ101、102のスタ
ブ検索部113からのスタブクラス名を指定したダウン
ロード要求時に、指定されたスタブクラス名のスタブク
ラス126を検索し、それを要求元のスタブ検索部11
3に送り返す手段である。
【0014】ネームサーバコンピュータ104は、クラ
イアントコンピュータ101、102が、必要とするス
タブクラスをどのサーバコンピュータ103からダウン
ロードして良いか分からない、つまり、必要とするスタ
ブクラスを保持するサーバコンピュータ103をクライ
アントコンピュータ101、102が知らない場合に、
該当するサーバコンピュータ103をクライアントコン
ピュータ101、102に教える機能を持つコンピュー
タである。典型的には、スタブクラス名毎に、そのスタ
ブクラスを保持するサーバコンピュータ103の識別子
を保持するテーブルを保持管理しており、クライアント
コンピュータ101、102からスタブクラス名を指定
した問い合わせがあった際に、そのテーブルを参照し
て、該当するサーバコンピュータ103の識別子を返す
ように構成される。
【0015】次に従来のコンピュータシステムにおける
RMIの処理手順を、図12のフローチャートを参照し
て説明する。
【0016】クライアントコンピュータ101のJav
a実行環境110の制御部112は、或るクラス111
のインスタンス115から、サーバコンピュータ103
における或るクラス121の或るメソッドを呼び出すリ
モートメソッド呼び出しが行われると、その呼び出しに
使うスタブクラス126のインスタンス115がJav
a実行環境110に存在するか否かを判別する(S10
1)。存在した場合には、図10で説明したような手順
に従って、そのスタブクラス126のインスタンス11
5を使って当該リモートメソッド呼び出しを実現する
(S102)。
【0017】今回の呼び出しに使うスタブクラス126
のインスタンス115がJava実行環境110に存在
しなかった場合、制御部112は、今回の呼び出しに使
うスタブクラス126がクライアントコンピュータ10
1のクラス111中に存在するか否かを判別する(S1
03)。存在した場合、制御部112はクラスローダ1
14によって、今回の呼び出しに使うスタブクラスのク
ラス111をJava実行環境110にロードし(S1
04)、それをインスタンス化して、今回の呼び出しに
使うスタブクラス126のインスタンス115を生成す
る(S105)。そして、そのスタブクラス126のイ
ンスタンス115を使って当該リモートメソッド呼び出
しを実現する(S102)。
【0018】今回の呼び出しに使うスタブクラス126
がクライアントコンピュータ101のクラス111中に
存在しなかった場合、今回の呼び出しに使うスタブクラ
ス126の存在場所を、クライアントコンピュータ10
1側で知っているか否かを判別する(S106)。今回
の呼び出しに使うスタブクラス126の存在場所は、例
えばその呼び出し中に含めることができ、またクラスロ
ーダ114で各スタブクラス126の所在を管理するこ
ともできるため、そのような場合にはクライアントコン
ピュータ101側で知っていることになる。他方、クラ
イアントコンピュータ101側が今回の呼び出しに使う
スタブクラス126の存在場所を知らなかった場合、制
御部112は、スタブクラスのクラス名を指定してネー
ムサーバコンピュータ104に問い合わせる(S10
7)。これに応答してネームサーバコンピュータ104
は、指定されたクラス名のスタブクラスの存在場所を通
知する(S108)。
【0019】今回の呼び出しに使うスタブクラス126
の存在場所が明らかになると、制御部112は、スタブ
検索部113によって、前記存在場所で一意に定まるサ
ーバコンピュータ103に対し、クラス名を指定してス
タブクラスを要求する(S109)。サーバコンピュー
タ103のスタブ検索インターフェース127は、指定
されたクラス名のスタブクラスをスタブクラス126か
ら検索し、要求元のクライアントコンピュータ101に
返す(S110、S111)。この返されてきたスタブ
クラスは、クラスローダ114によってJava実行環
境110にロードされ(S104)、制御部112によ
ってそのインスタンスが生成される(S105)。そし
て、そのスタブクラス126のインスタンス115を使
って当該リモートメソッド呼び出しを実現する(S10
2)。なお、スタブ検索インターフェース127による
検索で該当するスタブクラスが見つからなかった場合、
その旨がクライアントコンピュータ101に返される
(S112)。この場合、クライアントコンピュータ1
01側ではスタブクラスのダウンロード要求は失敗に終
わり、例外処理によりリモートメソッド呼び出しはエラ
ー終了する。
【0020】
【発明が解決しようとする課題】スタブクラスはマーシ
ャリング処理等を行うスタブクラスインスタンスのクラ
スであり、実行されるクライアントコンピュータのマシ
ンやOSやJava実行環境などで特定される、スタブ
クラスの実行環境に依存した構成となる。このため、サ
ーバコンピュータ103のJava実行環境120の下
で実行されるインスタンス125のメソッドを呼び出す
のに必要なクライアント側のスタブクラスは、実行され
るJava実行環境110の種類が違えば、そのクラス
名は同じであっても、中身は異なる。
【0021】図11で説明した従来のコンピュータシス
テムでは、クライアントコンピュータ101のスタブ検
索部113はクラス名を指定してスタブクラスを要求
し、サーバコンピュータ103のスタブ検索インターフ
ェース127は指定されたクラス名を持つスタブクラス
を返すようにしている。従って、クライアントコンピュ
ータ101とクライアントコンピュータ102のJav
a実行環境110の種類が同じであれば問題はないが、
相違すれば、サーバコンピュータ103からダウンロー
ドされるスタブクラスに適合するJava実行環境を備
えたクライアントコンピュータだけが正常に動作し、他
のクライアントコンピュータは正常な動作を保証できな
い。これは、Java実行環境の種類が異なるために同
じスタブクラスを使用できない複数のクライアントコン
ピュータ101、102から同じサーバコンピュータ1
03に対して、動的方式によってスタブを獲得してリモ
ートメソッド呼び出しを行うことができないことを意味
する。また、Java実行環境の種類が異なるために同
じスタブクラスを使用できない複数のクライアントコン
ピュータからリモートメソッド呼び出しを行うことがで
きるようにするには、複数のサーバコンピュータを用意
しなければならないことを意味する。
【0022】本発明の目的は、1つのサーバコンピュー
タから、Java実行環境の種類が異なる複数のクライ
アントコンピュータに対して、各クライアントコンピュ
ータにおけるリモートメソッド呼び出しに使えるスタブ
クラスをダウンロードできるようにすることにある。
【0023】本発明の別の目的は、クライアントコンピ
ュータから要求されたスタブクラスがサーバコンピュー
タに存在しない場合、適切なスタブクラスを動的に生成
してダウンロードできるようにすることにある。
【0024】
【課題を解決するための手段】本発明の第1のスタブ検
索ローディングシステムは、クライアントからサーバに
リモートメソッド呼び出しを行う際にクライアント側で
必要となるスタブをサーバ側からダウンロードするスタ
ブ検索ローディングシステムであって、クライアント側
に、スタブ名とクライアント識別子とを指定したスタブ
要求をサーバに送出して、その応答として返されるスタ
ブを受信するスタブ検索部を備え、サーバ側に、クライ
アントからのリモートメソッド呼び出し時にサーバ側で
使うスケルトンと組にして使うスタブを実行環境の異な
るクライアントの種類毎に用意したスタブ集合と、クラ
イアントからのスタブ要求時、指定されたスタブ名とク
ライアント識別子に基づいて前記スタブ集合の中から適
切なスタブを検索して要求元のクライアントに返すスタ
ブ検索インターフェースとを備えている。
【0025】本発明の第2のスタブ検索ローディングシ
ステムは、クライアントからサーバにリモートメソッド
呼び出しを行う際にクライアント側で必要となるスタブ
をサーバ側からダウンロードするスタブ検索ローディン
グシステムであって、クライアント側に、スタブ名とク
ライアント識別子とを指定したスタブ要求をサーバに送
出して、その応答として返されるスタブを受信するスタ
ブ検索部を備え、サーバ側に、クライアントからのリモ
ートメソッド呼び出し時にサーバ側で使うスケルトンと
組にして使うスタブを実行環境の異なるクライアントの
種類毎に生成するスタブ生成部と、クライアントからの
スタブ要求時、指定されたスタブ名とクライアント識別
子に基づいて前記スタブ生成部に要求元のクライアント
の実行環境に適したスタブを生成させ、生成されたスタ
ブを要求元のクライアントに返すスタブ検索インターフ
ェースとを備えている。
【0026】また本発明の第3のスタブ検索ローディン
グシステムは、クライアントからサーバにリモートメソ
ッド呼び出しを行う際にクライアント側で必要となるス
タブをサーバ側からダウンロードするスタブ検索ローデ
ィングシステムであって、クライアント側に、スタブ名
とクライアント識別子とを指定したスタブ要求をサーバ
に送出して、その応答として返されるスタブを受信する
スタブ検索部を備え、サーバ側に、クライアントからの
リモートメソッド呼び出し時にサーバ側で使うスケルト
ンと組にして使うスタブを実行環境の異なるクライアン
トの種類毎に用意したスタブ集合と、前記スケルトンと
組にして使うスタブを実行環境の異なるクライアントの
種類毎に生成するスタブ生成部と、クライアントからの
スタブ要求時、指定されたスタブ名とクライアント識別
子に基づいて前記スタブ集合の中から適切なスタブを検
索して要求元のクライアントに返し、適切なスタブが前
記スタブ集合に存在しなければ指定されたスタブ名とク
ライアント識別子に基づいて前記スタブ生成部に要求元
のクライアントの実行環境に適したスタブを生成させ、
生成されたスタブを要求元のクライアントに返すスタブ
検索インターフェースとを備えている。
【0027】また本発明の第1のスタブ検索ローディン
グ方法は、クライアントからサーバにリモートメソッド
呼び出しを行う際にクライアント側で必要となるスタブ
をサーバ側からダウンロードするスタブ検索ローディン
グ方法であって、(a)クライアントからサーバに、ス
タブ名とクライアント識別子とを指定したスタブ要求を
送出するステップ、(b)サーバにおいて、指定された
クライアント識別子に基づいて、クライアントからのリ
モートメソッド呼び出し時にサーバ側で使うスケルトン
と組にして使うスタブを実行環境の異なるクライアント
の種類毎に用意したスタブ集合の中から1つのスタブ集
合を選択するステップ、(c)サーバにおいて、指定さ
れたスタブ名のスタブを前記選択したスタブ集合の中か
ら選択するステップ、(d)サーバからクライアント
に、前記選択されたスタブを送出するステップ、(e)
クライアントにおいて、サーバから送出された前記スタ
ブを受信するステップを含んでいる。
【0028】本発明の第2のスタブ検索ローディング方
法は、クライアントからサーバにリモートメソッド呼び
出しを行う際にクライアント側で必要となるスタブをサ
ーバ側からダウンロードするスタブ検索ローディング方
法であって、(a)クライアントからサーバに、スタブ
名とクライアント識別子とを指定したスタブ要求を送出
するステップ、(b)サーバにおいて、指定されたスタ
ブ名とクライアント識別子に基づいて、クライアントか
らのリモートメソッド呼び出し時にサーバ側で使うスケ
ルトンと組にして使うスタブを生成するステップ、
(c)サーバからクライアントに、前記生成したスタブ
を送出するステップ、(d)クライアントにおいて、サ
ーバから送出された前記スタブを受信するステップを含
んでいる。
【0029】本発明の第3のスタブ検索ローディング方
法は、クライアントからサーバにリモートメソッド呼び
出しを行う際にクライアント側で必要となるスタブをサ
ーバ側からダウンロードするスタブ検索ローディング方
法であって、(a)クライアントからサーバに、スタブ
名とクライアント識別子とを指定したスタブ要求を送出
するステップ、(b)サーバにおいて、指定されたクラ
イアント識別子に基づいて、クライアントからのリモー
トメソッド呼び出し時にサーバ側で使うスケルトンと組
にして使うスタブを実行環境の異なるクライアントの種
類毎に用意したスタブ集合の中から1つのスタブ集合を
選択し、且つ、該選択したスタブ集合の中から指定され
たスタブ名のスタブを検索するステップ、(c)サーバ
において、ステップbの検索に失敗した場合に、指定さ
れたスタブ名とクライアント識別子に基づいて、クライ
アントからのリモートメソッド呼び出し時にサーバ側で
使うスケルトンと組にして使うスタブを生成するステッ
プ、(d)サーバからクライアントに、ステップbの検
索に成功した場合にはステップbで検索されたスタブ
を、ステップbの検索に失敗した場合にはステップcで
生成されたスタブを送出するステップ、(e)クライア
ントにおいて、サーバから送出された前記スタブを受信
するステップを含んでいる。
【0030】ここで、クライアント識別子は、スタブが
実行されるクライアントの実行環境をサーバ側で特定で
きるものであれば、どのようなものでも良い。例えば、
クライアントコンピュータの機種名、型番、OSの種
類、Java実行環境の種類、ネットワークアドレス
や、これらに限定されずなにかしらのクライアントの情
報、またはこれらの二つ以上を組み合わせたものでも良
い。また、クライアントから明示的に送信される情報で
あっても良いし、ネットワークアドレスのようにスタブ
クラスの要求を送信することによって暗黙的に送信され
るものであっても良い。
【0031】
【作用】本発明の第1のスタブ検索ローディングシステ
ム及びその方法にあっては、スタブを実行環境の異なる
クライアントの種類毎にサーバ側に用意しておき、クラ
イアントからサーバへのスタブ要求時にスタブ名に加え
てそのクライアントの実行環境を特定し得るクライアン
ト識別子を通知し、サーバ側では、指定されたスタブ名
とクライアント識別子に基づいて適切なスタブを検索し
て要求元のクライアントに返すようにしたので、1つの
サーバコンピュータから、実行環境の種類が異なる複数
のクライアントコンピュータに対して適切なスタブをダ
ウンロードすることが可能となる。
【0032】本発明の第2のスタブ検索ローディングシ
ステム及びその方法にあっては、クライアントからのリ
モートメソッド呼び出し時にサーバ側で使うスケルトン
と組にして使うスタブを実行環境の異なるクライアント
の種類毎に生成するスタブ生成部をサーバ側に用意して
おき、クライアントからサーバへのスタブ要求時にスタ
ブ名に加えてそのクライアントの実行環境を特定し得る
クライアント識別子を通知し、サーバ側では、指定され
たクライアント識別子のクライアントの実行環境に適し
たスタブを生成して要求元のクライアントに返すように
したので、1つのサーバコンピュータから、実行環境の
種類が異なる複数のクライアントコンピュータに対して
適切なスタブをダウンロードすることが可能となる。
【0033】本発明の第3のスタブ検索ローディングシ
ステム及びその方法にあっては、スタブを実行環境の異
なるクライアントの種類毎にサーバ側に用意しておくと
共に、スタブを実行環境の異なるクライアントの種類毎
に生成するスタブ生成部をサーバ側に用意しておき、ク
ライアントからサーバへのスタブ要求時にスタブ名に加
えてそのクライアントの実行環境を特定し得るクライア
ント識別子を通知し、サーバ側では、指定されたスタブ
名とクライアント識別子に基づいて適切なスタブを検索
して要求元のクライアントに返すか、若し適切なスタブ
が存在しなければ、指定されたクライアント識別子のク
ライアントの実行環境に適したスタブを生成して要求元
のクライアントに返すようにしたので、1つのサーバコ
ンピュータから、実行環境の種類が異なる複数のクライ
アントコンピュータに対して適切なスタブをダウンロー
ドすることが可能となる。
【0034】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0035】図1を参照すると、本発明の一実施の形態
にかかるコンピュータシステムは、クライアントコンピ
ュータ1〜3、サーバコンピュータ4及びネームサーバ
コンピュータ5が、ネットワーク6を通じて相互に接続
されている。ネットワーク6は、LAN、WAN、公衆
電話網、インターネットなど、コンピュータ間でデジタ
ルデータを送受信できる任意のネットワークであり、そ
の通信媒体も有線、無線或いはそれ以外のどのような媒
体であっても構わない。
【0036】クライアントコンピュータ1には、Jav
a実行環境(1) 10が構築されており、このJava実
行環境10の下で、クラス11が実行される。クラス1
1は、Javaソースコードをコンパイルして作成され
たクラスファイルであり、Java仮想マシンが実行す
るコードで記述されている。図では、スタブクラスを含
め、クライアントコンピュータ1に存在するクラスの全
てをクラス11で表現している。
【0037】Java実行環境10には、制御部12
と、スタブ検索部13を有するクラスローダ14と、イ
ンスタンス15とが含まれる。スタブ検索部13は、サ
ーバコンピュータ4からスタブクラスをダウンロードす
る手段である。クラスローダ14は、クラス11及びス
タブ検索部13でダウンロードしたスタブクラスをJa
va実行環境10にロードする手段である。インスタン
ス15は、クラスローダ14によってロードされたクラ
ス11及びスタブクラスをインスタンス化して生成した
オブジェクトである。図では、スタブクラスインスタン
スを含め、Java実行環境10に存在するインスタン
スの全てをインスタンス15で表現している。制御部1
2は、Java実行環境10の制御モジュールであり、
Java仮想マシン等を含んで構成される。制御部12
は、クラスローダ14によってロードされたクラスをイ
ンスタンス化してインスタンス15を生成し、クライア
ント側のプログラムの実行を制御する。
【0038】他のクライアントコンピュータ2,3も、
クライアントコンピュータ1と同様な構成を有するが、
コンピュータのマシン、OSなどが各クライアントコン
ピュータ1、2、3で異なるため、構築されているJa
va実行環境の種類が相違している。つまり、本例の場
合、Java実行環境(1) 、Java実行環境(2) 、J
ava実行環境(3) の3種類のJava実行環境があ
り、クライアントコンピュータ1にはJava実行環境
(1) 10が、クライアントコンピュータ2にはJava
実行環境(2) 16が、クライアントコンピュータ3には
Java実行環境(3) 17が、それぞれ構築されてい
る。
【0039】サーバコンピュータ4には、Java実行
環境(1) 20が構築されており、このJava実行環境
20の下で、クラス21及びスケルトンクラス22が実
行される。Java実行環境20には、制御部23と、
クラスローダ24と、インスタンス25とが含まれる。
クラスローダ24は、クラス21及びスケルトンクラス
22をJava実行環境20にロードする手段である。
インスタンス25は、クラスローダ24によってロード
されたクラス21及びスケルトンクラス22をインスタ
ンス化して生成したオブジェクトである。図では、スケ
ルトンクラスインスタンスを含め、Java実行環境2
0に存在するインスタンスを全てインスタンス25で表
現している。制御部23は、Java実行環境20の制
御モジュールであり、Java仮想マシン等を含んで構
成される。制御部23は、クラスローダ24によってロ
ードされたクラス及びスケルトンクラスをインスタンス
化してインスタンス25を生成し、サーバ側のプログラ
ムの実行を制御する。
【0040】サーバコンピュータ4には、更に、スタブ
クラス26−1〜26−3の記憶部29と、クライアン
ト識別部28を有するスタブ検索インターフェース27
とが設けられている。スタブクラス26−1は、Jav
a実行環境(1) を有するクライアントコンピュータ1に
おいてリモートメソッド呼び出しを行う際に利用可能な
スタブクラスを集めたものである。同様に、スタブクラ
ス26−2、26−3は、Java実行環境(2) 、(3)
を有するクライアントコンピュータ2、3においてリモ
ートメソッド呼び出しを行う際に利用可能なスタブクラ
スを集めたものである。各スタブクラス26−1〜26
−3中の個々のスタブクラスは、スタブクラスの名前で
検索可能に保持されている。また、同じリモートメソッ
ド呼び出しに使うスタブクラス、つまり、サーバコンピ
ュータ4における同じサーバオブジェクトのメソッドを
呼び出すのに使うスタブクラスには、スタブクラス26
−1〜26−3で同じクラス名が付与されている。
【0041】図2に、サーバコンピュータ4に保持する
スタブクラス26−1〜26−3を生成する構成例を示
す。図2において、50−1〜50−nは、サーバコン
ピュータ4が提供するサービスのインターフェースをJ
avaのインターフェースクラス(メソッドの名前と型
の情報だけを持ち、メソッドの実装コードを持たないク
ラス)で定義したもので、サーバコンピュータ4が提供
するサービス毎に存在する。
【0042】RMIコンパイラ51−1は、Javaの
インターフェースクラスからJava実行環境(1) 用の
スケルトンクラス及びスタブクラスを生成するコンパイ
ラであり、このRMIコンパイラ51−1にインターフ
ェースクラス50−1〜50−nのそれぞれをコンパイ
ルさせると、図1のサーバコンピュータ4に保持すべき
スケルトンクラス22及びスタブクラス26−1が生成
される。また、RMIコンパイラ51−2は、Java
のインターフェースクラスからJava実行環境(2) 用
のスケルトンクラス及びスタブクラスを生成するコンパ
イラであり、このRMIコンパイラ51−2にインター
フェースクラス50−1〜50−nのそれぞれをコンパ
イルさせると、図1のサーバコンピュータ4に保持すべ
きスタブクラス26−2が生成される。同時に生成され
るスケルトンクラス52は使用しない。更に、RMIコ
ンパイラ51−3は、Javaのインターフェースクラ
スからJava実行環境(3) 用のスケルトンクラス及び
スタブクラスを生成するコンパイラであり、このRMI
コンパイラ51−3にインターフェースクラス50−1
〜50−nのそれぞれをコンパイルさせると、図1のサ
ーバコンピュータ4に保持すべきスタブクラス26−3
が生成される。同時に生成されるスケルトンクラス53
は使用しない。RMIコンパイラ51−1〜51−3と
しては、例えばrmicを使用することができる。
【0043】図2の構成例では、1つのRMIコンパイ
ラで1つのJava実行環境用のスタブクラスを生成し
たが、RMIコンパイラの種類によっては、作成するス
タブクラスの種類をコンパイラオプションで指定できる
ものがあり、そのようなRMIコンパイラを使えば、1
つのRMIコンパイラで複数のJava実行環境用のス
タブクラスを生成することができる。例えばrmicで
は、コンパイラオプションの指定により、バージョン1.
1 のJRMPスタブプロトコルバージョンのスタブとス
ケルトン、バージョン1.2 のJRMPスタブプロトコル
バージョンのスタブとスケルトン、バージョン1.1 、1.
2 の両方のJRMPスタブプロトコルバージョンと互換
性のあるスタブとスケルトンを作成することができる。
図3に、そのような機能を持つRMIコンパイラ54を
使って複数のJava実行環境用のスタブクラスを生成
する構成例を示す。
【0044】図3において、RMIコンパイラ54に、
Java実行環境(1) 用のオプション指定(例えばバー
ジョン1.1 、1.2 の両方のJRMPスタブプロトコルバ
ージョンと互換性のあるスタブとスケルトンを作成する
指定)を与えて、インターフェースクラス50−1〜5
0−nのそれぞれをコンパイルさせると、図1のサーバ
コンピュータ4に保持すべきスケルトンクラス22及び
スタブクラス26−1が生成される。また、RMIコン
パイラ54に、Java実行環境(2) 用のオプション指
定(例えばバージョン1.1 のJRMPスタブプロトコル
バージョンのスタブとスケルトンを作成する指定)を与
えて、インターフェースクラス50−1〜50−nのそ
れぞれをコンパイルさせると、図1のサーバコンピュー
タ4に保持すべきスタブクラス26−2が生成される。
同時に生成されるスケルトンクラス52は使用しない。
更に、RMIコンパイラ54に、Java実行環境(3)
用のオプション指定(例えばバージョン1.2 のJRMP
スタブプロトコルバージョンのスタブとスケルトンを作
成する指定)を与えて、インターフェースクラス50−
1〜50−nのそれぞれをコンパイルさせると、図1の
サーバコンピュータ4に保持すべきスタブクラス26−
3が生成される。同時に生成されるスケルトンクラス5
3は使用しない。
【0045】再び図1を参照すると、クライアント識別
部28は、クライアントコンピュータ1〜3からのスタ
ブクラス名を指定したスタブ要求時に、同時に送られて
くるクライアント識別子を識別し、スタブクラス26−
1〜26−3の内、どのスタブクラスの集合を検索対象
とすべきかを決定する部分である。クライアント識別部
28は、例えば、クライアント識別子とスタブクラスの
集合名(スタブクラス26−1〜26−3の名前)との
対応を保持するテーブル(図示せず)を保持しており、
このテーブルをクライアント識別子で検索して該当する
スタブクラスの集合を特定する。スタブ検索インターフ
ェース27は、クライアント識別部28で決定された何
れか1つのスタブクラス26−1〜26−3から、スタ
ブ要求で指定されたスタブクラス名を持つスタブクラス
を検索し、それを要求元のクライアントコンピュータ1
〜3に送り返す手段である。
【0046】ネームサーバコンピュータ5は、クライア
ントコンピュータ1〜3からのスタブクラス名を指定し
た問い合わせに応答して、例えばスタブクラス名毎にそ
のスタブクラスの所在場所情報を保持管理するテーブル
を参照して、そのスタブクラスの所在場所を見つけ、そ
れを問い合わせ元のクライアントコンピュータ1〜3に
返す機能を持つコンピュータである。
【0047】次に、図1に示したコンピュータシステム
におけるRMIの処理手順を、本発明の特徴部分である
スタブクラスのダウンロード動作を中心に図4のフロー
チャートを参照して説明する。
【0048】クライアントコンピュータ1のJava実
行環境10の制御部12は、例えば或るクラス11のイ
ンスタンス15から、サーバコンピュータ4における或
るクラス21の或るメソッドを呼び出すリモートメソッ
ド呼び出しが行われると、その呼び出しに使うスタブク
ラスのインスタンスがJava実行環境10のインスタ
ンス15中に存在するか否かを判別する(S1)。存在
した場合には、図10で説明したような手順に従って、
そのスタブクラスのインスタンス115を使って当該リ
モートメソッド呼び出しを実現する(S2)。
【0049】今回の呼び出しに使うスタブクラスのイン
スタンス15がJava実行環境10に存在しなかった
場合、制御部12は、今回の呼び出しに使うスタブクラ
スがクライアントコンピュータ1のクラス11中に存在
するか否かを判別する(S3)。存在した場合、制御部
12はクラスローダ14によって、今回の呼び出しに使
うスタブクラスのクラス11をJava実行環境10に
ロードし(S4)、それをインスタンス化して、今回の
呼び出しに使うスタブクラスのインスタンス15を生成
する(S5)。そして、そのスタブクラスのインスタン
ス15を使って当該リモートメソッド呼び出しを実現す
る(S2)。
【0050】今回の呼び出しに使うスタブクラスがクラ
イアントコンピュータ1のクラス11中に存在しなかっ
た場合、今回の呼び出しに使うスタブクラスの存在場所
を、クライアントコンピュータ1側で知っているか否か
を従来例で説明したと同様に判別する(S6)。知って
いる場合にはステップS9へ進み、知らなかった場合
は、スタブクラスのクラス名を指定してネームサーバコ
ンピュータ5に問い合わせる(S7)。これに応答して
ネームサーバコンピュータ5は、指定されたクラス名の
スタブクラスの存在場所を通知する(S8)。
【0051】今回の呼び出しに使うスタブクラスの存在
場所が明らかになると、制御部12は、スタブ検索部1
3によって、前記存在場所で一意に定まるサーバコンピ
ュータ4に対し、クラス名及びクライアント識別子を指
定してスタブクラスを要求する(S9)。ここで、クラ
イアント識別子は、クライアントコンピュータ1の機種
または型番またはOSの種類またはJava実行環境
(1) の種類または制御部12の種類またはネットワーク
アドレスまたはこれらに限定されずなにかしらのクライ
アントの情報、またはこれらの二つ以上を組み合わせた
もので、スタブ検索部13によって明示的に送信される
情報であっても、ネットワークアドレスのようにスタブ
クラスの要求を送信することによって暗黙的に送信され
てサーバコンピュータ4のクライアント識別部28がそ
の情報によってクライアントコンピュータを識別するこ
とができる情報であってもよい。要するに、クライアン
ト識別子は、ダウンロードしたスタブが実行される実行
環境を直接的または間接的に特定できるものであれば良
い。
【0052】サーバコンピュータ4のスタブ検索インタ
ーフェース27は、クライアント識別部28によって、
受信したクライアント識別子に基づいてスタブクラス2
6−1〜26−3の内、どのスタブクラスの集合を検索
対象とすべきかを決定し、この決定した何れか1つのス
タブクラス26−1〜26−3から、スタブ要求で指定
されたスタブクラス名を持つスタブクラスを検索する
(S10)。今の場合は、Java実行環境(1) 用のス
タブクラス26−1からスタブクラスが検索される。そ
して、該当するスタブクラスが存在した場合には、それ
を要求元のクライアントコンピュータ1に送り返す(S
11)。また、存在しなかった場合には、クライアント
コンピュータ1に対して該当するスタブクラスを保持し
ていない旨を通知する(S12)。この場合、スタブク
ラスのダウンロード要求は失敗に終わり、クライアント
コンピュータ1では例外処理が実施され、例えばリモー
トメソッド呼び出しがエラー終了する。
【0053】クライアントコンピュータ1のスタブ検索
部13は、要求先のサーバコンピュータ4からスタブク
ラスが送られてくると、これをクラスローダ14に渡
し、クラスローダ14はJava実行環境10にロード
する(S4)。そして、制御部12はこのロードされた
スタブクラスをインスタンス化してインスタンス15を
生成し(S5)、インスタンス15を使って当該リモー
トメソッド呼び出しを実現する(S2)。
【0054】以上は、クライアントコンピュータ1を例
にして動作を説明したが、他のクライアントコンピュー
タ2、3におけるRMIの処理も同様に行われる。但
し、クライアントコンピュータ2、3におけるサーバコ
ンピュータ4へのスタブクラスの要求時には、クライア
ントコンピュータ2、3のクライアント識別子が送られ
るので、サーバコンピュータ4のスタブ検索インターネ
ット27は、クライアントコンピュータ2からのスタブ
クラス要求時にはJava実行環境(2) 用のスタブクラ
ス26−2を検索し、クライアントコンピュータ3から
のスタブクラス要求時にはJava実行環境(3) 用のス
タブクラス26−3を検索する。
【0055】このようにして本実施の形態にかかるコン
ピュータシステムは、1つのサーバコンピュータ4か
ら、Java実行環境の種類が異なる複数のクライアン
トコンピュータ1〜3に対して、各クライアントコンピ
ュータ1〜3におけるリモートメソッド呼び出しに使え
るスタブクラスをダウンロードし、同じサーバオブジェ
クトのメソッドに対するリモートメソッド呼び出しを可
能にしている。このため、構成が様々に異なるクライア
ントコンピュータ1〜3に対して同じ入口のサービスを
一つだけサーバコンピュータに用意しておくだけで済ま
すことができる。
【0056】次に、具体的な実施例を用いて本実施の形
態の動作を補足説明する。クライアントコンピュータ1
上のクライアントFoo がサーバにリモートメソッド呼び
出しを行うにあたってBankService インターフェースを
実装したクラスであるBankServiceImpl クラスのスタブ
クラスが必要になった時、クライアントコンピュータ1
はネームサーバコンピュータ5にBankServiceImpl のス
タブクラスがどこにあるかを問い合わせると、 http://
japan/BankServiceImpl Stub.classと返って来た。
【0057】そこで、クライアントコンピュータ1は、
japan サーバに対して、HTTPプロトコルを使用して、HT
TPヘッダにクライアント識別子として "User-Agent: Fo
o"という文字列を付加して http://japan/BankServiceI
mpl Stub.classを要求する。
【0058】サーバコンピュータ4は、Foo という種類
のクライアント識別子にマッチするものとして http://
japan/client/Foo/BankServerImpl Stub.classを取り出
してクライアントコンピュータ1に返す。
【0059】一方、クライアントコンピュータ2上のク
ライアントBar がサーバにリモートメソッド呼び出しを
行う際は、ネームサーバコンピュータに問い合わせて h
ttp://japan/BankServiceImpl Stub.classとかえって来
る所までは同様である。次に、japan サーバに対して、
HTTP プロトコルを使用して japanサーバに http://ja
pan/BankServiceImpl Stub.classを要求する際、HTTPヘ
ッダにクライアント識別子として "User-Agent: Bar"と
いう文字列を付加する。サーバコンピュータ4は、今度
は Barという種類のクライアント識別子にマッチするも
のとして http://japan/client/Bar/BankServerImpl St
ub.classを取り出してクライアントコンピュータ2に返
す。
【0060】クライアントコンピュータ1及び2にダウ
ンロードされインスタンス化されたスタブクラスは、い
ずれも japanサーバの BankServiceImplのスケルトンと
通信し、リモートメソッド呼び出しを実現する。
【0061】
【発明の他の実施の形態】図5は本発明の別の実施の形
態にかかるコンピュータシステムのブロック図であり、
図1と同一符号は同一部分を示し、30はスタブ生成部
である。本実施の形態が図1に示した実施の形態と相違
するところは、サーバコンピュータ4が、実行環境の異
なるクライアントの種類毎のスタブを生成するスタブ生
成部30を備え、スタブクラスを要求したクライアント
コンピュータ1〜3に返却すべき適切なスタブクラスが
記憶部29内のスタブクラス26−1〜26−3中に存
在しなかった場合、スタブ検索インターフェース27が
スタブクラス名とクライアント識別子とを指定したスタ
ブ生成要求をスタブ生成部30に出し、スタブ生成部3
0が該当するスタブを動的に生成し、スタブ検索インタ
ーフェース27がその生成されたスタブを要求元のクラ
イアントコンピュータ1〜3に返すようにした点にあ
る。また、新たに生成されたスタブクラスを後のスタブ
要求に備えて記憶部29に保存するようにした点にあ
る。
【0062】図6にスタブ生成部30の構成例を示す。
図6において、60−1〜60−mは、サーバコンピュ
ータ4が提供するサービスのインターフェースをJav
aのインターフェースクラス(メソッドの名前と型の情
報だけを持ち、メソッドの実装コードを持たないクラ
ス)で定義したもので、サーバコンピュータ4が提供す
るサービス毎に存在する。61−1〜61−nは、図2
及び図3で説明したものと同様なRMIコンパイラであ
り、それぞれ、Javaのインターフェースクラスから
スケルトンクラス及びスタブクラスを生成する。62
は、スタブ検索インターフェース27から、スタブクラ
ス名とクライアント識別子とを指定したスタブ生成要求
を受け取って各部を制御する制御部である。
【0063】制御部62は、各インターフェースクラス
60−1〜60−mがどのスタブクラス名に対応するも
のであるかを内部のテーブル(図示せず)によって管理
すると共に、クライアント識別子を識別して、そのクラ
イアント識別子のクライアントの実行環境で実行するス
タブを生成するには複数存在するRMIコンパイラ61
−1〜61−nのうち、どれを使用すべきであるか、ま
たどのようなコンパイラオプションを指定すべきである
かを、例えばクライアント識別子とRMIコンパイラ6
1−1〜61−nとの対応表(図示せず)によって管理
している。そして制御部62は、スタブ検索インターフ
ェース27からのスタブ生成要求で指定されたスタブク
ラス名によって選択したインターフェースクラス60−
1〜60−mの1つを、同じくスタブ生成要求で指定さ
れたクライアント識別子によって選択したRMIコンパ
イラ61−1〜61−nの1つに入力して(必要ならば
コンパイラオプションも指定する)、コンパイルを行わ
せ、そのRMIコンパイラで生成されたスケルトンクラ
スとスタブクラスのうち、スタブクラスを要求元のスタ
ブ検索インターフェース27に返却する処理を行う。な
お、制御部62は、該当するインターフェースクラスが
存在しないか、該当するRMIコンパイラが存在しない
ため、該当するスタブを生成することができない場合に
は、その旨をスタブ検索インターフェース27に通知す
る。
【0064】次に、本実施の形態にかかるコンピュータ
システムにおけるRMIの処理手順を、図1の実施の形
態との相違点を中心に説明する。
【0065】図7は本実施の形態にかかるコンピュータ
システムにおけるRMIの処理手順の一例を示すフロー
チャートであり、図4と同一符号は同一ステップを示
す。図4と比較すると分かるように、本実施の形態で
は、スタブ検索インターフェース27によるスタブクラ
スの検索で該当するスタブクラスがスタブクラス26−
1〜26−3中に存在しないと判断された場合(S10
でNO)、スタブ検索インターフェース27からスタブ
クラス名とクライアント識別子とを通知されてスタブ生
成部30が起動され、スタブ生成部30の制御部62
が、インターフェースクラス60−1〜60−m中にス
タブクラス名に対応するインターフェースクラスが存在
するか否か、RMIコンパイラ61−1〜61−n中に
クライアント識別子に対応するRMIコンパイラが存在
するか否かを判定することによって、要求されたスタブ
クラスを生成できるか否かを調べる(S21)。そし
て、生成可能な場合、スタブ生成部30の制御部62の
制御の下に該当するスタブクラスの動的な生成が行わ
れ、生成されたスタブクラスがスタブ検索インターフェ
ース27に戻される(S22)。スタブ検索インターフ
ェース27はそれを要求元のクライアントコンピュータ
1〜3に返すと共に記憶部29に保存する(S11)。
他方、スタブ生成部30で該当するスタブクラスが生成
できない場合、その旨がスタブ生成部30からスタブ検
索インターフェース27に返され、スタブ検索インター
フェース27は要求元のクライアントコンピュータ1〜
3に該当するスタブクラスが存在しない旨を通知する
(S12)。
【0066】このようにして本実施の形態にかかるコン
ピュータシステムは、1つのサーバコンピュータ4か
ら、Java実行環境の種類が異なる複数のクライアン
トコンピュータ1〜3に対して、各クライアントコンピ
ュータ1〜3におけるリモートメソッド呼び出しに使え
るスタブクラスを必要に応じて動的に生成してダウンロ
ードし、同じサーバオブジェクトのメソッドに対するリ
モートメソッド呼び出しを可能にしている。このため、
構成が様々に異なるクライアントコンピュータ1〜3に
対して同じ入口のサービスを一つだけサーバコンピュー
タに用意しておくだけで済ますことができ、また、予め
全ての構成に対応するスタブクラスをサーバコンピュー
タ4に用意しておく必要がなくなる。
【0067】なお、本実施の形態では、記憶部29にス
タブクラスが1つも記憶されない状態でサーバコンピュ
ータ4を立ち上げるようにしても良いし、サーバコンピ
ュータ4の立ち上げ時点で図1の実施の形態と同様に記
憶部29に幾つかのスタブクラスを予め記憶させておく
ようにしても良い。また、スタブ生成部30で生成され
たスタブクラスを記憶部29に保存するようにしたが、
保存しないようにしても良い。
【0068】
【発明の他の実施の形態】図8は本発明の更に別の実施
の形態にかかるコンピュータシステムのブロック図であ
り、図5と同一符号は同一部分を示す。本実施の形態が
図5に示した実施の形態と相違するところは、サーバコ
ンピュータ4が、スタブクラスの集合を一切保持せず
に、クライアントコンピュータ1〜3からダウンロード
要求されたスタブクラスの全てを動的に生成するように
した点にある。そのため、図5のスタブクラス26−1
〜26−3の記憶部29は省略されている。
【0069】スタブ検索インターフェース27は、クラ
イアントコンピュータ1〜3からスタブクラス名及びク
ライアント識別子を指定したスタブ要求を受けた場合、
スタブ生成部30に対してスタブクラス名とクライアン
ト識別子を通知してスタブクラスの生成を指示する。ス
タブ生成部30は図5の実施の形態で説明したものと同
様の方法でスタブクラスを生成してスタブ検索インター
フェース27に返し、スタブ検索インターフェース27
はそれを要求元のクライアントコンピュータ1〜3に送
る。スタブ生成部30が該当するスタブクラスを生成で
きない場合、スタブ検索インターフェース27はスタブ
クラスが見つからない旨を要求元のクライアントコンピ
ュータ1〜3に通知する。
【0070】図9は本実施の形態にかかるコンピュータ
システムにおけるRMIの処理手順の一例を示すフロー
チャートであり、図7と同一符号は同一ステップを示
す。図7と比較すると分かるように、本実施の形態で
は、クライアントコンピュータからスタブ要求を受けた
場合、スタブ検索インターフェース27からスタブ生成
部30が直ちに起動され、スタブ生成部30は、スタブ
クラスを生成できるか否かを調べる(S21)。生成可
能な場合、スタブ生成部30は該当するスタブクラスを
生成してスタブ検索インターフェース27に渡し(S2
2)、スタブ検索インターフェース27はそれを要求元
のクライアントコンピュータ1〜3に返す(S11)。
他方、該当するスタブクラスが生成できない場合、その
旨がスタブ生成部30からスタブ検索インターフェース
27に通知され、スタブ検索インターフェース27は要
求元のクライアントコンピュータ1〜3に該当するスタ
ブクラスが存在しない旨を通知する(S12)。
【0071】このようにして本実施の形態にかかるコン
ピュータシステムは、1つのサーバコンピュータ4か
ら、Java実行環境の種類が異なる複数のクライアン
トコンピュータ1〜3に対して、各クライアントコンピ
ュータ1〜3におけるリモートメソッド呼び出しに使え
るスタブクラスを動的に生成してダウンロードし、同じ
サーバオブジェクトのメソッドに対するリモートメソッ
ド呼び出しを可能にしている。このため、構成が様々に
異なるクライアントコンピュータ1〜3に対して同じ入
口のサービスを一つだけサーバコンピュータに用意して
おくだけで済ますことができ、また、スタブクラスをサ
ーバコンピュータ4に保存しておく必要がなくなる。
【0072】
【発明の効果】以上説明したように本発明によれば、1
つのサーバコンピュータから、実行環境の種類が異なる
複数のクライアントコンピュータに対して適切なスタブ
をダウンロードすることが可能となる。また、スタブ生
成部によってスタブを動的に生成する構成にあっては、
予め全ての構成に対応するスタブをサーバ側に用意して
おく必要がなくなる。
【図面の簡単な説明】
【図1】本発明の一実施の形態にかかるコンピュータシ
ステムのブロック図である。
【図2】サーバコンピュータに保持するスタブクラスを
生成する構成例を示すブロック図である。
【図3】サーバコンピュータに保持するスタブクラスを
生成する別の構成例を示すブロック図である。
【図4】本発明の一実施の形態にかかるコンピュータシ
ステムにおけるRMIの処理手順を示すフローチャート
である。
【図5】本発明の別の実施の形態にかかるコンピュータ
システムのブロック図である。
【図6】スタブ生成部の構成例を示すブロック図であ
る。
【図7】本発明の別の実施の形態にかかるコンピュータ
システムにおけるRMIの処理手順を示すフローチャー
トである。
【図8】本発明の更に別の実施の形態にかかるコンピュ
ータシステムのブロック図である。
【図9】本発明の更に別の実施の形態にかかるコンピュ
ータシステムにおけるRMIの処理手順を示すフローチ
ャートである。
【図10】RMIの仕組みの概要を示す図である。
【図11】従来のコンピュータシステムのブロック図で
ある。
【図12】従来のコンピュータシステムにおけるRMI
の処理手順を示すフローチャートである。
【符号の説明】
1、2、3…クライアントコンピュータ 4…サーバコンピュータ 5…ネームサーバコンピュータ 6…ネットワーク 10、16、17、20…Java実行環境 11、21…クラス 12、23…制御部 13…スタブ検索部 14、24…クラスローダ 15、25…インスタンス 22…スケルトンクラス 26−1〜26−3…スタブクラス 27…スタブ検索インターフェース 28…クライアント識別部 29…記憶部 30…スタブ生成部

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィングシステムであって、 クライアント側に、スタブ名とクライアント識別子とを
    指定したスタブ要求をサーバに送出して、その応答とし
    て返されるスタブを受信するスタブ検索部を備え、 サーバ側に、クライアントからのリモートメソッド呼び
    出し時にサーバ側で使うスケルトンと組にして使うスタ
    ブを実行環境の異なるクライアントの種類毎に用意した
    スタブ集合と、クライアントからのスタブ要求時、指定
    されたスタブ名とクライアント識別子に基づいて前記ス
    タブ集合の中から適切なスタブを検索して要求元のクラ
    イアントに返すスタブ検索インターフェースとを備えた
    スタブ検索ローディングシステム。
  2. 【請求項2】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィングシステムであって、 クライアント側に、スタブ名とクライアント識別子とを
    指定したスタブ要求をサーバに送出して、その応答とし
    て返されるスタブを受信するスタブ検索部を備え、 サーバ側に、クライアントからのリモートメソッド呼び
    出し時にサーバ側で使うスケルトンと組にして使うスタ
    ブを実行環境の異なるクライアントの種類毎に生成する
    スタブ生成部と、クライアントからのスタブ要求時、指
    定されたスタブ名とクライアント識別子に基づいて前記
    スタブ生成部に要求元のクライアントの実行環境に適し
    たスタブを生成させ、生成されたスタブを要求元のクラ
    イアントに返すスタブ検索インターフェースとを備えた
    スタブ検索ローディングシステム。
  3. 【請求項3】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィングシステムであって、 クライアント側に、スタブ名とクライアント識別子とを
    指定したスタブ要求をサーバに送出して、その応答とし
    て返されるスタブを受信するスタブ検索部を備え、 サーバ側に、クライアントからのリモートメソッド呼び
    出し時にサーバ側で使うスケルトンと組にして使うスタ
    ブを実行環境の異なるクライアントの種類毎に用意した
    スタブ集合と、前記スケルトンと組にして使うスタブを
    実行環境の異なるクライアントの種類毎に生成するスタ
    ブ生成部と、クライアントからのスタブ要求時、指定さ
    れたスタブ名とクライアント識別子に基づいて前記スタ
    ブ集合の中から適切なスタブを検索して要求元のクライ
    アントに返し、適切なスタブが前記スタブ集合に存在し
    なければ指定されたスタブ名とクライアント識別子に基
    づいて前記スタブ生成部に要求元のクライアントの実行
    環境に適したスタブを生成させ、生成されたスタブを要
    求元のクライアントに返すスタブ検索インターフェース
    とを備えたスタブ検索ローディングシステム。
  4. 【請求項4】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィング方法であって、(a)クライアントからサーバ
    に、スタブ名とクライアント識別子とを指定したスタブ
    要求を送出するステップ、(b)サーバにおいて、指定
    されたクライアント識別子に基づいて、クライアントか
    らのリモートメソッド呼び出し時にサーバ側で使うスケ
    ルトンと組にして使うスタブを実行環境の異なるクライ
    アントの種類毎に用意したスタブ集合の中から1つのス
    タブ集合を選択するステップ、(c)サーバにおいて、
    指定されたスタブ名のスタブを前記選択したスタブ集合
    の中から選択するステップ、(d)サーバからクライア
    ントに、前記選択されたスタブを送出するステップ、
    (e)クライアントにおいて、サーバから送出された前
    記スタブを受信するステップを含むスタブ検索ローディ
    ング方法。
  5. 【請求項5】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィング方法であって、(a)クライアントからサーバ
    に、スタブ名とクライアント識別子とを指定したスタブ
    要求を送出するステップ、(b)サーバにおいて、指定
    されたスタブ名とクライアント識別子に基づいて、クラ
    イアントからのリモートメソッド呼び出し時にサーバ側
    で使うスケルトンと組にして使うスタブを生成するステ
    ップ、(c)サーバからクライアントに、前記生成した
    スタブを送出するステップ、(d)クライアントにおい
    て、サーバから送出された前記スタブを受信するステッ
    プを含むスタブ検索ローディング方法。
  6. 【請求項6】 クライアントからサーバにリモートメソ
    ッド呼び出しを行う際にクライアント側で必要となるス
    タブをサーバ側からダウンロードするスタブ検索ローデ
    ィング方法であって、(a)クライアントからサーバ
    に、スタブ名とクライアント識別子とを指定したスタブ
    要求を送出するステップ、(b)サーバにおいて、指定
    されたクライアント識別子に基づいて、クライアントか
    らのリモートメソッド呼び出し時にサーバ側で使うスケ
    ルトンと組にして使うスタブを実行環境の異なるクライ
    アントの種類毎に用意したスタブ集合の中から1つのス
    タブ集合を選択し、且つ、該選択したスタブ集合の中か
    ら指定されたスタブ名のスタブを検索するステップ、
    (c)サーバにおいて、ステップbの検索に失敗した場
    合に、指定されたスタブ名とクライアント識別子に基づ
    いて、クライアントからのリモートメソッド呼び出し時
    にサーバ側で使うスケルトンと組にして使うスタブを生
    成するステップ、(d)サーバからクライアントに、ス
    テップbの検索に成功した場合にはステップbで検索さ
    れたスタブを、ステップbの検索に失敗した場合にはス
    テップcで生成されたスタブを送出するステップ、
    (e)クライアントにおいて、サーバから送出された前
    記スタブを受信するステップを含むスタブ検索ローディ
    ング方法。
  7. 【請求項7】 リモートメソッド呼び出しを行う際にク
    ライアント側で必要となるスタブをクライアントからの
    スタブ要求に応じて要求元のクライアントに提供するサ
    ーバ装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合
    と、クライアントからのスタブ名とクライアント識別子
    とを指定したスタブ要求時、指定されたスタブ名とクラ
    イアント識別子に基づいて前記スタブ集合の中から適切
    なスタブを検索して要求元のクライアントに返すスタブ
    検索インターフェースとを備えたサーバ装置。
  8. 【請求項8】 リモートメソッド呼び出しを行う際にク
    ライアント側で必要となるスタブをクライアントからの
    スタブ要求に応じて要求元のクライアントに提供するサ
    ーバ装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に生成するスタブ生成部
    と、クライアントからのスタブ名とクライアント識別子
    とを指定したスタブ要求時、指定されたスタブ名とクラ
    イアント識別子に基づいて前記スタブ生成部に要求元の
    クライアントの実行環境に適したスタブを生成させ、生
    成されたスタブを要求元のクライアントに返すスタブ検
    索インターフェースとを備えたサーバ装置。
  9. 【請求項9】 リモートメソッド呼び出しを行う際にク
    ライアント側で必要となるスタブをクライアントからの
    スタブ要求に応じて要求元のクライアントに提供するサ
    ーバ装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合
    と、前記スケルトンと組にして使うスタブを実行環境の
    異なるクライアントの種類毎に生成するスタブ生成部
    と、クライアントからのスタブ名とクライアント識別子
    とを指定したスタブ要求時、指定されたスタブ名とクラ
    イアント識別子に基づいて前記スタブ集合の中から適切
    なスタブを検索して要求元のクライアントに返し、適切
    なスタブが前記スタブ集合に存在しなければ指定された
    スタブ名とクライアント識別子に基づいて前記スタブ生
    成部に要求元のクライアントの実行環境に適したスタブ
    を生成させ、生成されたスタブを要求元のクライアント
    に返すスタブ検索インターフェースとを備えたサーバ装
    置。
  10. 【請求項10】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合、
    及びクライアントからのスタブ要求時、指定されたスタ
    ブ名とクライアント識別子に基づいて前記スタブ集合の
    中から適切なスタブを検索して要求元のクライアントに
    返すスタブ検索インターフェースとを備えたサーバ装置
    に対して、スタブ名とクライアント識別子とを指定した
    スタブ要求を送出し、その応答として返されるスタブを
    受信するスタブ検索部を備えたクライアント装置。
  11. 【請求項11】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に生成するスタブ生成部
    及び、クライアントからのスタブ要求時、指定されたス
    タブ名とクライアント識別子に基づいて前記スタブ生成
    部に要求元のクライアントの実行環境に適したスタブを
    生成させ、生成されたスタブを要求元のクライアントに
    返すスタブ検索インターフェースとを備えたサーバ装置
    に対して、スタブ名とクライアント識別子とを指定した
    スタブ要求をサーバに送出し、その応答として返される
    スタブを受信するスタブ検索部を備えたクライアント装
    置。
  12. 【請求項12】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置であって、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合、
    前記スケルトンと組にして使うスタブを実行環境の異な
    るクライアントの種類毎に生成するスタブ生成部及び、
    クライアントからのスタブ要求時、指定されたスタブ名
    とクライアント識別子に基づいて前記スタブ集合の中か
    ら適切なスタブを検索して要求元のクライアントに返
    し、適切なスタブが前記スタブ集合に存在しなければ指
    定されたスタブ名とクライアント識別子に基づいて前記
    スタブ生成部に要求元のクライアントの実行環境に適し
    たスタブを生成させ、生成されたスタブを要求元のクラ
    イアントに返すスタブ検索インターフェースとを備えた
    サーバ装置に対して、スタブ名とクライアント識別子と
    を指定したスタブ要求をサーバに送出し、その応答とし
    て返されるスタブを受信するスタブ検索部を備えたクラ
    イアント装置。
  13. 【請求項13】 クライアントからサーバにリモートメ
    ソッド呼び出しを行う際にクライアント側で必要となる
    スタブをサーバ側からダウンロードするスタブ検索ロー
    ディングプログラムを記録したコンピュータ可読記録媒
    体であって、 クライアントを構成するコンピュータを、スタブ名とク
    ライアント識別子とを指定したスタブ要求をサーバに送
    出して、その応答として返されるスタブを受信するスタ
    ブ検索手段として機能させ、 サーバを構成するコンピュータを、クライアントからの
    リモートメソッド呼び出し時にサーバ側で使うスケルト
    ンと組にして使うスタブを実行環境の異なるクライアン
    トの種類毎に用意したスタブ集合の記憶手段、クライア
    ントからのスタブ要求時、指定されたスタブ名とクライ
    アント識別子に基づいて前記スタブ集合の中から適切な
    スタブを検索して要求元のクライアントに返すスタブ検
    索インターフェース手段として機能させるプログラムを
    記録したコンピュータ可読記録媒体。
  14. 【請求項14】 クライアントからサーバにリモートメ
    ソッド呼び出しを行う際にクライアント側で必要となる
    スタブをサーバ側からダウンロードするスタブ検索ロー
    ディングプログラムを記録したコンピュータ可読記録媒
    体であって、 クライアントを構成するコンピュータを、スタブ名とク
    ライアント識別子とを指定したスタブ要求をサーバに送
    出して、その応答として返されるスタブを受信するスタ
    ブ検索手段として機能させ、 サーバを構成するコンピュータを、クライアントからの
    リモートメソッド呼び出し時にサーバ側で使うスケルト
    ンと組にして使うスタブを実行環境の異なるクライアン
    トの種類毎に生成するスタブ生成手段、クライアントか
    らのスタブ要求時、指定されたスタブ名とクライアント
    識別子に基づいて前記スタブ生成部に要求元のクライア
    ントの実行環境に適したスタブを生成させ、生成された
    スタブを要求元のクライアントに返すスタブ検索インタ
    ーフェース手段として機能させるプログラムを記録した
    コンピュータ可読記録媒体。
  15. 【請求項15】 クライアントからサーバにリモートメ
    ソッド呼び出しを行う際にクライアント側で必要となる
    スタブをサーバ側からダウンロードするスタブ検索ロー
    ディングプログラムを記録したコンピュータ可読記録媒
    体であって、 クライアントを構成するコンピュータを、スタブ名とク
    ライアント識別子とを指定したスタブ要求をサーバに送
    出して、その応答として返されるスタブを受信するスタ
    ブ検索手段として機能させ、 サーバを構成するコンピュータを、クライアントからの
    リモートメソッド呼び出し時にサーバ側で使うスケルト
    ンと組にして使うスタブを実行環境の異なるクライアン
    トの種類毎に用意したスタブ集合の記憶手段、前記スケ
    ルトンと組にして使うスタブを実行環境の異なるクライ
    アントの種類毎に生成するスタブ生成手段、クライアン
    トからのスタブ要求時、指定されたスタブ名とクライア
    ント識別子に基づいて前記スタブ集合の中から適切なス
    タブを検索して要求元のクライアントに返し、適切なス
    タブが前記スタブ集合に存在しなければ指定されたスタ
    ブ名とクライアント識別子に基づいて前記スタブ生成部
    に要求元のクライアントの実行環境に適したスタブを生
    成させ、生成されたスタブを要求元のクライアントに返
    すスタブ検索インターフェース手段として機能させるプ
    ログラムを記録したコンピュータ可読記録媒体。
  16. 【請求項16】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをクライアントから
    のスタブ要求に応じて要求元のクライアントに提供する
    サーバ装置を構成するコンピュータを、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合の
    記憶手段、クライアントからのスタブ名とクライアント
    識別子とを指定したスタブ要求時、指定されたスタブ名
    とクライアント識別子に基づいて前記スタブ集合の中か
    ら適切なスタブを検索して要求元のクライアントに返す
    スタブ検索インターフェース手段として機能させるプロ
    グラムを記録したコンピュータ可読記録媒体。
  17. 【請求項17】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをクライアントから
    のスタブ要求に応じて要求元のクライアントに提供する
    サーバ装置を構成するコンピュータを、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に生成するスタブ生成手
    段、クライアントからのスタブ名とクライアント識別子
    とを指定したスタブ要求時、指定されたスタブ名とクラ
    イアント識別子に基づいて前記スタブ生成部に要求元の
    クライアントの実行環境に適したスタブを生成させ、生
    成されたスタブを要求元のクライアントに返すスタブ検
    索インターフェース手段として機能させるプログラムを
    記録したコンピュータ可読記録媒体。
  18. 【請求項18】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをクライアントから
    のスタブ要求に応じて要求元のクライアントに提供する
    サーバ装置を構成するコンピュータを、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合の
    記憶手段、前記スケルトンと組にして使うスタブを実行
    環境の異なるクライアントの種類毎に生成するスタブ生
    成手段、クライアントからのスタブ名とクライアント識
    別子とを指定したスタブ要求時、指定されたスタブ名と
    クライアント識別子に基づいて前記スタブ集合の中から
    適切なスタブを検索して要求元のクライアントに返し、
    適切なスタブが前記スタブ集合に存在しなければ指定さ
    れたスタブ名とクライアント識別子に基づいて前記スタ
    ブ生成部に要求元のクライアントの実行環境に適したス
    タブを生成させ、生成されたスタブを要求元のクライア
    ントに返すスタブ検索インターフェース手段として機能
    させるプログラムを記録したコンピュータ可読記録媒
    体。
  19. 【請求項19】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置を構成するコンピュータ
    を、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合、
    及びクライアントからのスタブ要求時、指定されたスタ
    ブ名とクライアント識別子に基づいて前記スタブ集合の
    中から適切なスタブを検索して要求元のクライアントに
    返すスタブ検索インターフェースとを備えたサーバ装置
    に対して、スタブ名とクライアント識別子とを指定した
    スタブ要求を送出し、その応答として返されるスタブを
    受信するスタブ検索手段として機能させるプログラムを
    記録したコンピュータ可読記録媒体。
  20. 【請求項20】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置を構成するコンピュータ
    を、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に生成するスタブ生成部
    及び、クライアントからのスタブ要求時、指定されたス
    タブ名とクライアント識別子に基づいて前記スタブ生成
    部に要求元のクライアントの実行環境に適したスタブを
    生成させ、生成されたスタブを要求元のクライアントに
    返すスタブ検索インターフェースとを備えたサーバ装置
    に対して、スタブ名とクライアント識別子とを指定した
    スタブ要求をサーバに送出し、その応答として返される
    スタブを受信するスタブ検索手段として機能させるプロ
    グラムを記録したコンピュータ可読記録媒体。
  21. 【請求項21】 リモートメソッド呼び出しを行う際に
    クライアント側で必要となるスタブをサーバ側からダウ
    ンロードするクライアント装置を構成するコンピュータ
    を、 クライアントからのリモートメソッド呼び出し時にサー
    バ側で使うスケルトンと組にして使うスタブを実行環境
    の異なるクライアントの種類毎に用意したスタブ集合、
    前記スケルトンと組にして使うスタブを実行環境の異な
    るクライアントの種類毎に生成するスタブ生成部及び、
    クライアントからのスタブ要求時、指定されたスタブ名
    とクライアント識別子に基づいて前記スタブ集合の中か
    ら適切なスタブを検索して要求元のクライアントに返
    し、適切なスタブが前記スタブ集合に存在しなければ指
    定されたスタブ名とクライアント識別子に基づいて前記
    スタブ生成部に要求元のクライアントの実行環境に適し
    たスタブを生成させ、生成されたスタブを要求元のクラ
    イアントに返すスタブ検索インターフェースとを備えた
    サーバ装置に対して、スタブ名とクライアント識別子と
    を指定したスタブ要求をサーバに送出し、その応答とし
    て返されるスタブを受信するスタブ検索手段として機能
    させるプログラムを記録したコンピュータ可読記録媒
    体。
JP2000322269A 2000-10-23 2000-10-23 スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体 Pending JP2002132739A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2000322269A JP2002132739A (ja) 2000-10-23 2000-10-23 スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
US09/982,950 US6839897B2 (en) 2000-10-23 2001-10-22 Stub search loading system and method, server apparatus, client apparatus, and computer-readable recording medium
EP01124343A EP1202174A3 (en) 2000-10-23 2001-10-22 Stub search loading system and method, server apparatus, client apparatus, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000322269A JP2002132739A (ja) 2000-10-23 2000-10-23 スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体

Publications (1)

Publication Number Publication Date
JP2002132739A true JP2002132739A (ja) 2002-05-10

Family

ID=18800176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000322269A Pending JP2002132739A (ja) 2000-10-23 2000-10-23 スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体

Country Status (3)

Country Link
US (1) US6839897B2 (ja)
EP (1) EP1202174A3 (ja)
JP (1) JP2002132739A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527039A (ja) * 2002-05-23 2005-09-08 アルカテル Corba環境でumlモデルとその実装との間のリンクを確保するソフトウェア開発ツール
WO2006040991A1 (ja) * 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha 端末装置、サーバ装置、及びWebサービス提供システム
WO2006049276A1 (ja) * 2004-11-08 2006-05-11 iWaveDesign, Inc. データ伝送システム
US9112701B2 (en) 2007-02-14 2015-08-18 Sony Corporation Wearable device, authentication method, and recording medium

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6272559B1 (en) * 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
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
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
WO1999044296A2 (en) 1998-02-26 1999-09-02 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
WO1999044127A1 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Dynamic lookup service in a distributed system
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7296275B2 (en) * 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US7434234B2 (en) * 2001-05-04 2008-10-07 Outlooksoft Corporation Method and system for facilitating communications in a network using on demand distribution
CN1682186A (zh) * 2001-09-05 2005-10-12 斯文·约翰·贝林 技术无关的信息管理
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US20030051029A1 (en) * 2001-09-07 2003-03-13 Reedy Dennis G. Dynamic provisioning of sevice components in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US8473922B2 (en) * 2001-09-19 2013-06-25 Hewlett-Packard Development Company, L.P. Runtime monitoring in component-based systems
US7290267B2 (en) * 2002-01-23 2007-10-30 International Business Machines Corporation Multi-protocol object distribution
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US20050246677A1 (en) * 2004-04-30 2005-11-03 Intel Corporation. Native method invocation (NMI) custom marshalling stub service
US7917913B2 (en) * 2006-09-15 2011-03-29 Telefonaktiebolaget L M Ericsson (Publ) Injecting proxy components using blueprints
US9152401B2 (en) * 2009-05-02 2015-10-06 Citrix Systems, Inc. Methods and systems for generating and delivering an interactive application delivery store
US10250625B2 (en) * 2014-05-22 2019-04-02 Nec Corporation Information processing device, communication history analysis method, and medium
US9894185B2 (en) * 2014-12-16 2018-02-13 Software Ag System and method for condition-based application logic shifting between a client and a server
US11550571B2 (en) * 2020-09-17 2023-01-10 International Business Machines Corporation Generation of equivalent microservices to replace existing object-oriented application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JPH1083308A (ja) * 1996-04-23 1998-03-31 Sun Microsyst Inc スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体
JPH1165832A (ja) * 1997-08-21 1999-03-09 Sony Corp ソースコード変換方法及び記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708171B1 (en) * 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6487607B1 (en) * 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US5999988A (en) * 1997-03-31 1999-12-07 Sun Microsystems, Inc. Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems
WO1999044134A1 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6385661B1 (en) * 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991143A (ja) * 1995-07-14 1997-04-04 Sony Corp データ処理方法および装置
JPH1083308A (ja) * 1996-04-23 1998-03-31 Sun Microsyst Inc スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体
JPH1165832A (ja) * 1997-08-21 1999-03-09 Sony Corp ソースコード変換方法及び記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005527039A (ja) * 2002-05-23 2005-09-08 アルカテル Corba環境でumlモデルとその実装との間のリンクを確保するソフトウェア開発ツール
WO2006040991A1 (ja) * 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha 端末装置、サーバ装置、及びWebサービス提供システム
JPWO2006040991A1 (ja) * 2004-10-08 2008-05-15 シャープ株式会社 端末装置、サーバ装置、及びWebサービス提供システム
WO2006049276A1 (ja) * 2004-11-08 2006-05-11 iWaveDesign, Inc. データ伝送システム
US9112701B2 (en) 2007-02-14 2015-08-18 Sony Corporation Wearable device, authentication method, and recording medium

Also Published As

Publication number Publication date
US20020059212A1 (en) 2002-05-16
EP1202174A3 (en) 2004-07-21
US6839897B2 (en) 2005-01-04
EP1202174A2 (en) 2002-05-02

Similar Documents

Publication Publication Date Title
JP2002132739A (ja) スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
US20220070122A1 (en) Method and Apparatus for Composite User Interface Generation
CN103283209B (zh) 一种应用服务平台系统及其实现方法
KR100614266B1 (ko) 안전 분산 처리 시스템에서의 클러스터형 엔터프라이즈java™
JP3967806B2 (ja) リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構
KR100768959B1 (ko) 분산 처리 시스템의 스마트 스터브 또는 엔터프라이즈 java™ 빈
US7533389B2 (en) Dynamic loading of remote classes
US6408342B1 (en) Communications framework for supporting multiple simultaneous communications protocols in a distributed object environment
KR100673627B1 (ko) 분산 처리 시스템에서 메세지 통과 커널을 갖는클러스터형 엔터프라이즈 java™
US6845505B1 (en) Web request broker controlling multiple processes
US7499983B2 (en) Web dispatch service
JPH1083308A (ja) スタブ検索及びローディング・サブシステム、スタブ検索及びローディング方法並びにスタブ検索及びローディング用記録媒体
JPH08504975A (ja) 分散型コンピュータシステムにおける遠隔手続き呼出しを実行するための方法およびシステム
US20030055862A1 (en) Methods, systems, and articles of manufacture for managing systems using operation objects
EP1974498A1 (en) Method, system and computer program product for automatically cloning it resource structures
US20100100894A1 (en) System and Method for Asynchronously Invoking Dynamic Proxy Interface Using Supplemental Interfaces
CN110231956A (zh) 应用程序版本构建的方法、系统及装置
CN112035122A (zh) 一种接口部署方法、系统及存储介质
Kapitza et al. DLS: a CORBA service for dynamic loading of code
Evans et al. The pervasiveness of evolution in GRUMPS software
Rolland et al. A framework for encapsulating best business practices for electricity supply industry into generic patterns
JP2001337935A (ja) 分散オブジェクト環境におけるアプリケーションのラッピング方法、その通信管理装置及び記録媒体
JPH10232780A (ja) インタフェース定義記述の変換方法およびオブジェクト間通信方法
US20020199032A1 (en) Deferred response component manager
CN116389221A (zh) 基于OGC API-Processes的云原生空间信息处理服务方法及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051115