JP2001282561A - 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム - Google Patents

分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム

Info

Publication number
JP2001282561A
JP2001282561A JP2000092681A JP2000092681A JP2001282561A JP 2001282561 A JP2001282561 A JP 2001282561A JP 2000092681 A JP2000092681 A JP 2000092681A JP 2000092681 A JP2000092681 A JP 2000092681A JP 2001282561 A JP2001282561 A JP 2001282561A
Authority
JP
Japan
Prior art keywords
server
server object
supplied
client
class variable
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
JP2000092681A
Other languages
English (en)
Inventor
Takeshi Miyano
剛 宮野
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 JP2000092681A priority Critical patent/JP2001282561A/ja
Publication of JP2001282561A publication Critical patent/JP2001282561A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 Java(登録商標)のRMIを用いた分散
システムにおいてサーバオブジェクトの動的な負荷分散
を行う。 【解決手段】 開示される分散オブジェクト管理方法で
は、サーバ1は、起動時に、サーバオブジェクトがクラ
ス内変数を有するか否かに応じて1個又は複数個のプロ
セスを起動して予め設定された個数のサーバオブジェク
トを生成し、クライアント3〜3から送信されたサ
ーバオブジェクトのメソッド呼び出しメッセージを解析
し、当該サーバオブジェクトがクラス内変数を有する場
合には、対応する1個のプロセスのサーバオブジェクト
のメソッドを実行し、当該サーバオブジェクトがクラス
内変数を有しない場合には、対応する複数個のプロセス
のうち、最も負荷の軽いプロセスのサーバオブジェクト
のメソッドを実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、分散オブジェク
ト管理方法、そのプログラムを記憶した記憶媒体及び分
散システムに関し、詳しくは、各種サービスを提供する
少なくとも1個のサーバとサーバに対して各種サービス
を要求する複数個のクライアントとが接続された分散シ
ステムにおいて、オブジェクト指向言語の1つであるJ
ava(商標名)の1つの機能であり、あるJava仮
想マシンのオブジェクトから別のJava仮想マシン上
のオブジェクトのメソッド(オブジェクトに対し他のプ
ログラムが依頼できる処理)を呼び出すリモートメソッ
ド呼び出し(RMI:RemoteMethod Invocation)を用
いる場合にサーバにおいて生成され分散されている複数
個のオブジェクト(サーバオブジェクト)を管理する分
散オブジェクト管理方法、そのプログラムを記憶した記
憶媒体及び分散オブジェクト管理方法を適用した分散シ
ステムに関する。
【0002】
【従来の技術】従来のJavaのRMIを用いた分散シ
ステムでは、サーバにおいて生成された複数個のサーバ
オブジェクトの定義からスケルトンオブジェクト及びス
タブオブジェクトが生成され、クライアント側において
通常のメソッドを呼び出すことにより、スタブオブジェ
クトを介してスケルトンオブジェクトにアクセスしてサ
ーバ側にサーバオブジェクトのメソッドを実行させるよ
うに構成されている。すなわち、まず、各サーバは、O
Sの制御対象となるものであり、あるひとまとまりの処
理を実行するために呼び集められたユーザ・プログラム
やシステム・プログラム、データであるプロセスを起動
した後、サーバオブジェクトと、それに対応するスケル
トンオブジェクト及びスタブオブジェクトとを生成す
る。次に、各サーバは、サーバオブジェクトをそれぞれ
の物理的な位置とそれぞれに付与された文字列からなる
名前とに基づいて管理しており、名前が指定されること
により、それらに対するアクセスを可能にする機能であ
る名前サービスを提供するサーバである名前サーバに対
して、生成したサーバオブジェクトに対応づけた名前と
スタブオブジェクトとを登録し、サーバ毎に設定された
ポート番号に基づくクライアントからの接続を待機する
待機状態となる。次に、あるクライアントが通常のメソ
ッドを呼び出し、スタブオブジェクトを介してスケルト
ンオブジェクトにアクセスすることにより、クライアン
トからの接続が開始されたサーバは、クライアントから
送信された、メソッドを呼び出すためのひとまとまりの
情報であるメソッド呼び出しメッセージを解析した後、
当該メソッドを実行し、その実行結果をクライアントに
送信する。
【0003】
【発明が解決しようとする課題】ところで、上記した従
来の分散システムにおいては、名前サーバには1個の名
前に対して1個のスタブオブジェクトしか登録できず、
1個のスタブオブジェクトは、それが生成されたサーバ
におけるプロセス内で生成されたサーバオブジェクトし
か取り扱えない。したがって、あるプロセスのサーバオ
ブジェクトの負荷が重くなった場合、他のプロセスにお
いて実行したり、新たにプロセスを起動してサーバオブ
ジェクトに割り当てたりするという動的な負荷分散を行
うことができないという欠点があった。
【0004】この発明は、上述の事情に鑑みてなされた
もので、JavaのRMIを用いた分散システムにおい
てサーバオブジェクトについて動的な負荷分散を行うこ
とができる分散オブジェクト管理方法、そのプログラム
を記憶した記憶媒体及び分散システムを提供することを
目的としている。
【0005】
【課題を解決するための手段】上記課題を解決するため
に、請求項1記載の発明は、少なくとも1個のサーバ
と、少なくとも1個のクライアントとがネットワークを
介して接続された分散システムの上記少なくとも1個の
サーバにおいて生成され分散されている複数個のサーバ
オブジェクトを管理する分散オブジェクト管理方法に係
り、上記少なくとも1個のサーバは、起動時に、サーバ
オブジェクトがクラス内変数を有するか否かに応じてサ
ーバオブジェクトを管理する1個又は複数個のプロセス
を起動して予め設定された個数のサーバオブジェクトを
生成する第1のステップと、上記少なくとも1個のクラ
イアントから送信されたサーバオブジェクトのメソッド
呼び出しメッセージを解析し、当該サーバオブジェクト
がクラス内変数を有する場合には、対応する1個のプロ
セスのサーバオブジェクトのメソッドを実行し、当該サ
ーバオブジェクトがクラス内変数を有しない場合には、
対応する複数個のプロセスのうち、最も負荷の軽いプロ
セスのサーバオブジェクトのメソッドを実行する第2の
ステップとを行うことを特徴としている。
【0006】また、請求項2記載の発明は、請求項1記
載の分散オブジェクト管理方法に係り、上記第2のステ
ップでは、上記少なくとも1個のクライアントから送信
されたサーバオブジェクトのメソッド呼び出しメッセー
ジを解析し、当該サーバオブジェクトがクラス内変数を
有しない場合であって、対応する複数個のプロセスのい
ずれの負荷も重く、上記プロセスの個数が予め設定され
ているプロセスの個数の上限より小さい場合には、新た
なプロセスを起動し、そのプロセスのサーバオブジェク
トのメソッドを実行することを特徴としている。
【0007】また、請求項3記載の発明は、少なくとも
1個のサーバと、少なくとも1個のクライアントと、名
前サービスを上記少なくとも1個のクライアントに提供
する名前サーバとがネットワークを介して接続された分
散システムの上記少なくとも1個のサーバにおいて生成
され分散されている複数個のサーバオブジェクトを管理
する分散オブジェクト管理方法に係り、上記少なくとも
1個のサーバは、起動時に、サーバオブジェクトがクラ
ス内変数を有する場合には、1個のプロセスを起動して
予め設定された個数のサーバオブジェクトを生成し、サ
ーバオブジェクトがクラス内変数を有しない場合には、
予め設定された個数のプロセスを起動して予め設定され
た個数のサーバオブジェクトを生成する第1のステップ
と、上記サーバオブジェクトに関する情報に基づいて、
サーバオブジェクト毎にエントリを作成する第2のステ
ップと、上記エントリの内容に基づいてスタブオブジェ
クトを生成した後、上記名前サーバに生成したスタブオ
ブジェクトと上記サーバオブジェクトの登録すべき名前
とを供給する第3のステップと、上記少なくとも1個の
クライアントから送信されたサーバオブジェクトのメソ
ッド呼び出しメッセージに基づいて検索した上記エント
リの内容に基づいて、当該サーバオブジェクトがクラス
内変数を有すると認識した場合には、対応する1個のプ
ロセスのサーバオブジェクトのメソッドを実行してメソ
ッドの実行結果を上記少なくとも1個のクライアントに
送信し、当該サーバオブジェクトがクラス内変数を有し
ないと認識した場合には、対応する複数個のプロセスの
うち、最も負荷の軽いプロセスのサーバオブジェクトの
メソッドを実行してその実行結果を上記少なくとも1個
のクライアントに送信する第4のステップとを行うこと
を特徴としている。
【0008】また、請求項4記載の発明は、請求項3記
載の分散オブジェクト管理方法に係り、上記第4のステ
ップでは、上記少なくとも1個のクライアントから送信
されたサーバオブジェクトのメソッド呼び出しメッセー
ジに基づいて検索した上記エントリの内容に基づいて当
該サーバオブジェクトがクラス内変数を有しないと認識
した場合であって、対応する複数個のプロセスのいずれ
の負荷も重く、上記プロセスの個数が予め設定されてい
るプロセスの個数の上限より小さい場合には、新たなプ
ロセスを起動し、そのプロセスのサーバオブジェクトの
メソッドを実行することを特徴としている。
【0009】また、請求項5記載の発明は、請求項3又
は4記載の分散オブジェクト管理方法に係り、上記サー
バオブジェクトに関する情報は、上記サーバオブジェク
トがクラス内変数を有する場合には、少なくとも、上記
名前サービスに登録すべき名前と、オブジェクト番号と
しての起動されたプロセスの番号と、上記サーバオブジ
ェクトがクラス内変数を有することを示すフラグとから
なり、上記サーバオブジェクトがクラス内変数を有しな
い場合には、少なくとも、上記名前サービスに登録すべ
き名前と、オブジェクト番号としての上記クラス内変数
を有しないサーバオブジェクト間で一意的な番号と、上
記サーバオブジェクトがクラス内変数を有しないことを
示すフラグと、起動された複数個のプロセスの番号の集
合とからなり、上記第4のステップでは、供給されたメ
ソッド呼び出しメッセージを構成するオブジェクト番号
を当該プロセスにおいて管理している複数個のサーバオ
ブジェクトの中の1個に付与されているオブジェクト番
号に変更することにより新たにメソッド呼び出しメッセ
ージを生成し、そのメソッド呼び出しメッセージに基づ
いて当該プロセスのサーバオブジェクトのメソッドを実
行することを特徴としている。
【0010】また、請求項6記載の発明は、請求項3乃
至5のいずれか1に記載の分散オブジェクト管理方法に
係り、上記スタブオブジェクトには、少なくとも上記オ
ブジェクト番号が含まれることを特徴としている。
【0011】請求項7記載の発明に係る記憶媒体は、コ
ンピュータに請求項1乃至6のいずれか1に記載の機能
を実現させるための分散オブジェクト管理プログラムが
記憶されていることを特徴としている。
【0012】また、請求項8記載の発明は、少なくとも
1個のサーバと、少なくとも1個のクライアントとがネ
ットワークを介して接続された分散システムに係り、上
記少なくとも1個のサーバは、起動時にサーバオブジェ
クトがクラス内変数を有するか否かに応じてサーバオブ
ジェクトを管理する1個又は複数個のプロセスを起動
し、上記少なくとも1個のクライアントから送信された
サーバオブジェクトのメソッド呼び出しメッセージを解
析し、当該サーバオブジェクトがクラス内変数を有する
と認識した場合には、対応する1個のプロセスのサーバ
オブジェクトのメソッドを実行し、当該サーバオブジェ
クトがクラス内変数を有しないと認識した場合には、対
応する複数個のプロセスのうち、最も負荷の軽いプロセ
スのサーバオブジェクトのメソッドを実行することを特
徴としている。
【0013】また、請求項9記載の発明は、請求項8記
載の分散システムに係り、上記少なくとも1個のサーバ
は、上記少なくとも1個のクライアントから送信された
サーバオブジェクトのメソッド呼び出しメッセージを解
析し、当該サーバオブジェクトがクラス内変数を有しな
い場合であって、対応する複数個のプロセスのいずれの
負荷も重く、上記プロセスの個数が予め設定されている
プロセスの個数の上限より小さい場合には、新たなプロ
セスを起動し、そのプロセスのサーバオブジェクトのメ
ソッドを実行することを特徴としている。
【0014】また、請求項10記載の発明は、請求項8
又は9記載の分散システムに係り、名前サービスを上記
少なくとも1個のクライアントに提供する名前サーバが
上記少なくとも1個のサーバ及び上記少なくとも1個の
クライアントとネットワークを介して接続され、上記少
なくとも1個のサーバは、サーバオブジェクト起動手段
と、オブジェクトテーブル管理手段と、クライアント要
求受付手段と、サーバオブジェクト割当手段と、複数個
のサーバオブジェクト管理手段とを備え、上記サーバオ
ブジェクト起動手段は、起動時に、サーバオブジェクト
がクラス内変数を有する場合には、1個のサーバオブジ
ェクト管理手段のプロセスを起動し、サーバオブジェク
トがクラス内変数を有しない場合には、予め設定された
個数のサーバオブジェクト管理手段のプロセスを起動
し、サーバオブジェクトに関する情報を上記オブジェク
トテーブル管理手段に供給し、上記オブジェクトテーブ
ル管理手段は、供給されたサーバオブジェクトに関する
情報に基づいて、サーバオブジェクト毎にエントリを作
成し、上記エントリの内容を上記クライアント要求受付
手段に供給すると共に、上記サーバオブジェクト割当手
段から要求されたエントリの内容を供給し、上記クライ
アント要求受付手段は、供給された上記エントリの内容
に基づいてスタブオブジェクトを生成した後、生成した
スタブオブジェクトと上記サーバオブジェクトの登録す
べき名前とを上記名前サーバに供給すると共に、上記少
なくとも1個のクライアントから送信されたメソッド呼
び出しメッセージをサーバオブジェクト毎に分割して上
記サーバオブジェクト割当手段に供給し、上記サーバオ
ブジェクト割当手段から供給されたメソッドの戻り値を
上記クライアントに送信し、上記サーバオブジェクト割
当手段は、供給されたメソッド呼び出しメッセージに基
づいて上記オブジェクトテーブル管理手段に要求するこ
とにより供給されたエントリの内容に基づいて、サーバ
オブジェクトがクラス内変数を有すると認識した場合に
は、1個のサーバオブジェクト管理手段にメソッド呼び
出しメッセージを供給し、当該サーバオブジェクト管理
手段から供給されたメソッドの戻り値を上記クライアン
ト要求受付手段に供給し、サーバオブジェクトがクラス
内変数を有しないと認識した場合には、最も負荷の軽い
サーバオブジェクト管理手段にメソッド呼び出しメッセ
ージを供給し、当該サーバオブジェクト管理手段から供
給されたメソッドの戻り値を上記クライアント要求受付
手段に供給し、上記複数個のサーバオブジェクト管理手
段は、上記サーバオブジェクト起動手段によりプロセス
が起動された場合には、予め設定された個数のサーバオ
ブジェクトを生成し、供給されたメソッド呼び出しメッ
セージに基づいてメソッドを呼び出して当該メソッドを
実行し、その実行結果を戻り値として上記サーバオブジ
ェクト割当手段に供給することを特徴としている。
【0015】また、請求項11記載の発明は、請求項1
0記載の分散システムに係り、上記サーバオブジェクト
割当手段は、供給されたメソッド呼び出しメッセージに
基づいて上記オブジェクトテーブル管理手段に要求する
ことにより供給されたエントリの内容に基づいて、サー
バオブジェクトがクラス内変数を有しない場合には、上
記複数個のサーバオブジェクト管理手段に現在の状態に
ついて問い合わせた結果、いずれのサーバオブジェクト
管理手段の負荷も重く、上記プロセスの個数が予め設定
されているプロセスの個数の上限より小さい場合には、
上記サーバオブジェクト起動手段に新たなサーバオブジ
ェクト管理手段のプロセスの起動を要求し、その結果起
動されたプロセスのサーバオブジェクト管理手段にメソ
ッド呼び出しメッセージを供給し、上記サーバオブジェ
クト起動手段は、上記サーバオブジェクト割当手段から
新たなサーバオブジェクト管理手段のプロセスの起動を
要求された場合には、新たにサーバオブジェクト管理手
段のプロセスを起動した後、サーバオブジェクトに関す
る情報を上記オブジェクトテーブル管理手段に供給する
ことを特徴としている。
【0016】また、請求項12記載の発明は、請求項1
0又は11記載の分散システムに係り、上記サーバオブ
ジェクトに関する情報は、上記サーバオブジェクトがク
ラス内変数を有する場合には、少なくとも、上記名前サ
ービスに登録すべき名前と、オブジェクト番号としての
起動されたサーバオブジェクト管理手段のプロセス番号
と、上記サーバオブジェクトがクラス内変数を有するこ
とを示すフラグとからなり、上記サーバオブジェクトが
クラス内変数を有しない場合には、少なくとも、上記名
前サービスに登録すべき名前と、オブジェクト番号とし
ての上記クラス内変数を有しないサーバオブジェクト間
で一意的な番号と、上記サーバオブジェクトがクラス内
変数を有しないことを示すフラグと、起動された複数個
のサーバオブジェクト管理手段のプロセス番号の集合と
からなり、上記複数個のサーバオブジェクト管理手段
は、供給されたメソッド呼び出しメッセージを構成する
オブジェクト番号を自己のプロセスにおいて管理してい
る複数個のサーバオブジェクトの中の1個に付与されて
いるオブジェクト番号に変更することにより新たにメソ
ッド呼び出しメッセージを生成し、そのメソッド呼び出
しメッセージに基づいてメソッドを呼び出して当該メソ
ッドを実行することを特徴としている。
【0017】また、請求項13記載の発明は、請求項1
0乃至12のいずれか1に6記載の分散システムに係
り、上記スタブオブジェクトには、少なくとも上記オブ
ジェクト番号が含まれることを特徴としている。
【0018】
【作用】この発明の構成によれば、JavaのRMIを
用いた分散システムにおいて、サーバオブジェクトにつ
いて動的な負荷分散を行うことができる。
【0019】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。図1は、この発明の一実施例である分
散オブジェクト管理方法を適用した分散システムの構成
を示すブロック図である。この例の分散システムは、サ
ーバ1と、名前サーバ2と、j個(jは自然数)のクラ
イアント3〜3とから構成されており、互いにネッ
トワークを介して直接接続されている。サーバ1は、起
動時に、サーバオブジェクトを生成しそれがクラス内変
数を有するか否かに応じて1個又は複数個のプロセスを
起動した後、起動した1個又は複数個のプロセス及びサ
ーバオブジェクトに関する情報を登録し、それに対応す
るスタブオブジェクトを生成すると共に、サーバオブジ
ェクトがクラス内変数を有するか否かに応じてスタブオ
ブジェクトのオブジェクト番号を設定する。次に、サー
バ1は、名前サーバ2に対して、生成したサーバオブジ
ェクトに対応づけた文字列からなる名前とスタブオブジ
ェクトとを登録した後、あるクライアント3から送信さ
れたサーバオブジェクトのメソッド呼び出しメッセージ
を受け付けると、それを解析し、サーバオブジェクトが
クラス内変数を有する場合には、対応する1個のプロセ
スのサーバオブジェクトのメソッドを実行し、サーバオ
ブジェクトがクラス内変数を有しない場合には、対応す
る複数個のプロセスのうち、最も負荷の軽いプロセスの
サーバオブジェクトのメソッドを実行し、その実行結果
を当該クライアント3に送信する。
【0020】サーバ1は、サーバオブジェクト起動手段
11と、オブジェクトテーブル管理手段12と、クライ
アント要求受付手段13と、サーバオブジェクト割当手
段14と、k個(kは自然数)のサーバオブジェクト管
理手段15〜15と、k個のサーバオブジェクト記
憶手段16〜16とから構成されている。サーバオ
ブジェクト起動手段11は、サーバ1が起動された場合
には、サーバ管理者がサーバオブジェクトを登録する際
に提供した当該サーバオブジェクトがクラス内変数を有
するか否かに関する情報を参照して、登録されているサ
ーバオブジェクトがクラス内変数を有する場合には、サ
ーバオブジェクト管理手段15 〜15のうち、現在
クライアント3から供給されているメソッド呼び出しメ
ッセージに対応したメソッドを実行していない1個のサ
ーバオブジェクト管理手段15のプロセスを起動し、登
録されているサーバオブジェクトがクラス内変数を有し
ない場合には、サーバオブジェクト管理手段15〜1
のうち、現在クライアント3から供給されているメ
ソッド呼び出しメッセージに対応したメソッドを実行し
ていないものであって、サーバ管理者によって設定され
た個数のサーバオブジェクト管理手段15のプロセスを
起動した後、起動したプロセスとサーバオブジェクトに
関する情報をオブジェクトテーブル管理手段12に供給
してサーバオブジェクトの登録を要求する。
【0021】また、サーバオブジェクト起動手段11
は、登録されているサーバオブジェクトがクラス内変数
を有しない場合であって、現在起動されている複数個の
サーバオブジェクト管理手段15のいずれの負荷も重
く、かつ、現在起動されているサーバオブジェクト管理
手段15のプロセスの個数(プロセス数)がサーバ管理
者によって設定されたプロセスの個数の上限値(最大プ
ロセス数)より小さいため、サーバオブジェクト割当手
段14から新たなサーバオブジェクト管理手段15のプ
ロセスの起動を要求された場合には、サーバ管理者がサ
ーバオブジェクトを登録する際に提供した当該サーバオ
ブジェクトがクラス内変数を有するか否かに関する情報
を参照して、サーバオブジェクト管理手段15〜15
のうち、現在クライアント3から供給されている他の
メソッド呼び出しメッセージに対応したメソッドを実行
していないサーバオブジェクト管理手段15のプロセス
を起動した後、起動したプロセスとサーバオブジェクト
に関する情報をオブジェクトテーブル管理手段12に供
給してサーバオブジェクトの登録を要求する。
【0022】サーバオブジェクトに関する情報は、サー
バオブジェクトがクラス内変数を有する場合には、名前
サービス2に登録すべき名前と、スタブオブジェクトの
オブジェクト番号として使用される、起動されたサーバ
オブジェクト管理手段15のプロセス番号と、サーバオ
ブジェクトのクラス名と、サーバオブジェクトのハッシ
ュ値(データを重複せずに記憶するために記憶領域を決
定するハッシングに関する値)と、サーバオブジェクト
がクラス内変数を有することを示すフラグとからなる。
一方、サーバオブジェクトがクラス内変数を有しない場
合には、サーバオブジェクトに関する情報は、名前サー
ビス2に登録すべき名前と、オブジェクト番号としてク
ラス内変数を有しないサーバオブジェクト間で一意的な
番号と、サーバオブジェクトのクラス名と、サーバオブ
ジェクトのハッシュ値と、サーバオブジェクトがクラス
内変数を有しないことを示すフラグと、起動された複数
個のサーバオブジェクト管理手段15のプロセス番号の
集合とからなる。
【0023】オブジェクトテーブル管理手段12は、サ
ーバオブジェクト起動手段11からサーバオブジェクト
の登録を要求されると、内部で管理するオブジェクトテ
ーブルに、供給されたサーバオブジェクトに関する情報
に基づいて、サーバオブジェクト毎に、データの1単位
であるエントリを作成した後、エントリの内容をクライ
アント要求受付手段13に供給して名前サーバ2への登
録を要求する。また、オブジェクトテーブル管理手段1
2は、サーバオブジェクト割当手段14からオブジェク
ト番号を引数としてオブジェクトテーブルの検索を要求
されると、そのオブジェクト番号に基づいてオブジェク
トテーブルを検索して対応するエントリの内容をサーバ
オブジェクト割当手段14に供給する。
【0024】クライアント要求受付手段13は、オブジ
ェクトテーブル管理手段12から名前サーバ2への登録
が要求されると、クライアント3〜3側でメソッド
呼び出しを代行するスタブオブジェクトをRMIの仕様
に基づいて生成した後、名前サーバ2に対し、生成した
スタブオブジェクトと登録されたサーバオブジェクトの
名前サーバ2に登録すべき名前との登録を要求する。ス
タブオブジェクトは、オブジェクト番号と、ホスト名
と、ポート番号と、ハッシュ値とから構成されている。
このうち、オブジェクト番号としては、オブジェクトテ
ーブル管理手段12から供給されたオブジェクト番号、
すなわち、サーバオブジェクトがクラス内変数を有する
場合には、起動されたサーバオブジェクト管理手段15
のプロセス番号が、サーバオブジェクトがクラス内変数
を有しない場合には、クラス内変数を有しないサーバオ
ブジェクト間で一意的な番号がそれぞれ設定され、後者
についてはRMIの仕様に基づいていない。また、ホス
ト名としてはサーバ1のホスト名が、ポート番号として
はクライアント要求受付手段13がデータ通信時に指定
するTCP/IP(Transmission Control Protocol/In
ternet Protocol)プロトコルにおいて規定されている
ポート番号が、ハッシュ値としてはオブジェクトテーブ
ル管理手段12から供給されたハッシュ値がそれぞれ設
定される。
【0025】また、クライアント要求受付手段13は、
クライアント3〜3のいずれかからのサーバオブジ
ェクトのメソッド呼び出しメッセージを受信すると、そ
のメソッド呼び出しメッセージを解析してある特定のサ
ーバオブジェクトに対するメソッド呼び出しメッセージ
であると認識し、そのメソッド呼び出しメッセージをサ
ーバオブジェクト毎に分割し、サーバオブジェクト割当
手段14とデータ通信するためのソケット(TCP/I
Pプロトコルにおいて使用するネットワークのデータ通
信において使用されるデータの形式)を生成すると共
に、サーバオブジェクト毎のメソッド呼び出しメッセー
ジをサーバオブジェクト割当手段14に供給する。そし
て、クライアント要求受付手段13は、サーバオブジェ
クト管理手段15からサーバオブジェクト割当手段14
を介してメソッドの戻り値が供給されると、そのメソッ
ドの戻り値を当該クライアント3に送信する。
【0026】サーバオブジェクト割当手段14は、クラ
イアント要求受付手段13からサーバオブジェクトのメ
ソッド呼び出しメッセージが供給されると、メソッド呼
び出しメッセージに含まれているオブジェクト番号を引
数としてオブジェクトテーブル管理手段12にオブジェ
クトテーブルの検索を要求し、検索の結果オブジェクト
テーブル管理手段12から供給されたエントリの内容に
基づいて、サーバオブジェクトがクラス内変数を有する
と認識した場合には、オブジェクト番号に対応したプロ
セス番号を有するサーバオブジェクト管理手段15にメ
ソッド呼び出しメッセージを供給し、当該サーバオブジ
ェクト管理手段15から供給されたメソッドの戻り値を
クライアント要求受付手段13に供給する。
【0027】一方、オブジェクトテーブル管理手段12
から供給されたエントリの内容に基づいて、サーバオブ
ジェクトがクラス内変数を有しないと認識した場合に
は、サーバオブジェクト割当手段14は、エントリの内
容を構成するプロセス番号に対応する複数個のサーバオ
ブジェクト管理手段15に対して、現在いずれかのクラ
イアント3から供給されているメソッド呼び出しメッセ
ージに対応したメソッドを実行しているか否か、実行中
である場合のプロセスのサーバオブジェクト管理手段1
5を構成するCPU(中央処理装置)の専有率等の状態
について問い合わせ、その結果最も負荷の軽いサーバオ
ブジェクト管理手段15にメソッド呼び出しメッセージ
を供給し、当該サーバオブジェクト管理手段15から供
給されたメソッドの戻り値をクライアント要求受付手段
13に供給する。
【0028】複数個のサーバオブジェクト管理手段15
に現在の状態について問い合わせた結果、いずれのサー
バオブジェクト管理手段15の負荷も重く、プロセス数
が最大プロセス数より小さい場合には、サーバオブジェ
クト割当手段14は、サーバオブジェクト起動手段11
に新たなサーバオブジェクト管理手段15のプロセスの
起動を要求し、その結果起動されたプロセスのプロセス
番号を有するサーバオブジェクト管理手段15にメソッ
ド呼び出しメッセージを供給し、当該サーバオブジェク
ト管理手段15から供給されたメソッドの戻り値をクラ
イアント要求受付手段13に供給する。
【0029】サーバオブジェクト管理手段15〜15
は、サーバオブジェクト起動手段11によって対応す
るプロセス番号のプロセスが起動されると、そのプロセ
ス内のデータとして、サーバ管理者によって設定された
個数のサーバオブジェクトを生成して対応するサーバオ
ブジェクト記憶手段16に記憶すると共に、生成したサ
ーバオブジェクトとそれに付与されたオブジェクト番号
との対象表を生成する。また、サーバオブジェクト管理
手段15〜15は、サーバオブジェクト割当手段1
4からメソッド呼び出しメッセージが供給されると、メ
ソッド呼び出しメッセージを構成するオブジェクト番号
のフィールド(クラス内変数)を自己のプロセスにおい
て管理している複数個のサーバオブジェクトの中の1個
に付与されているオブジェクト番号に変更することによ
り新たにメソッド呼び出しメッセージを生成した後、そ
のメソッド呼び出しメッセージを用いて上記対応表を参
照して、自己が管理するサーバオブジェクト記憶手段1
6に記憶されている当該オブジェクト番号のサーバオブ
ジェクトに対し、通常のRMIの仕様に基づいてメソッ
ドを呼び出して当該メソッドを実行し、その実行結果を
戻り値としてサーバオブジェクト割当手段14を介して
クライアント要求受付手段13に供給する。サーバオブ
ジェクト記憶手段16〜16は、それぞれRAM等
の半導体メモリ、あるいはFD(フロッピー(登録商
標)・ディスク)、HD(ハード・ディスク)等の記憶
媒体が装着されるFDD(フロッピー・ディスク・ドラ
イバ)、HD(ハード・ディスク・ドライバ)等の記憶
装置によって構成されている。
【0030】名前サーバ2は、クライアント要求受付手
段13から供給されたスタブオブジェクトと名前とを登
録してサーバオブジェクトをそれぞれの物理的な位置と
それぞれに付与された名前とに基づいて管理しており、
クライアント3〜3によって名前が指定されること
により、その名前に対応したスタブオブジェクトをクラ
イアント3〜3に送信して登録された名前を有する
サーバオブジェクトに対するアクセスを可能にする機能
である名前サービスをJNDI(Java Namingand Direc
tory Interface)(商標名)を用いてクライアント3
〜3に対して提供する。
【0031】クライアント3〜3は、CPUと、R
OMやRAM等の内部記憶装置と、FD、HD、CD−
ROMが装着されるFDD、HD、CD−ROMドライ
バ等の外部記憶装置と、CRTディスプレイや液晶ディ
スプレイ等の出力手段と、キーボードやマウス等の入力
手段と、ネットワークを介してサーバ1及び名前サーバ
2とデータ通信を行うための通信手段とを有するコンピ
ュータによって構成されている。クライアント3〜3
は、名前サーバ2にアクセスして登録されている名前
を参照して、その中の1個の名前を指定してその名前に
対応したスタブオブジェクトを名前サーバ2から受信
し、受信したスタブオブジェクトの通常のメソッド呼び
出しを行った後、それに応じたサーバオブジェクトのメ
ソッド呼び出しメッセージを生成してRMIを用いてク
ライアント要求受付手段13に送信することにより、サ
ーバ1に上記名前を有するサーバオブジェクトのメソッ
ドを実行させ、サーバ1から戻り値として送信されたメ
ソッドの実行結果を受信する。
【0032】次に、上記構成の分散システムの動作につ
いて、図2〜図4に示す概念図を参照して説明する。こ
こで、オブジェクトテーブル管理手段12に登録される
サーバオブジェクトは、名前サーバ2に登録すべき名前
が「servename」であり、クラス名が「nam
e」であり、ハッシュ値が「hash」であり、クラス
内変数を有しないものであるとし、プロセス数がn個
(nは自然数)であり、最大プロセス数がm個(mは自
然数)であって、プロセス数n<最大プロセス数mであ
るとする。また、クラス内変数を有しないサーバオブジ
ェクト間で一意的な番号として「id」が選択され、サ
ーバ1のホスト名が「host」であり、クライアント
要求受付手段13が使用するポート番号が「a」であ
り、起動されるサーバオブジェクト管理手段15のプロ
セス番号が「p1〜pn」であるとする。
【0033】まず、サーバオブジェクト起動手段11
は、サーバ1が起動されると、各サーバオブジェクトが
クラス内変数を有するか否かに関する情報を参照し、今
の場合、サーバオブジェクトはクラス内変数を有しない
ものであるので、図2に示すように、n個のサーバオブ
ジェクト管理手段15〜15(n<k)のプロセス
を起動する。これにより、サーバオブジェクト管理手段
15〜15は、起動されたプロセス内のデータとし
て、サーバ管理者によって設定された個数のサーバオブ
ジェクトを生成して対応するサーバオブジェクト記憶手
段16〜16に記憶すると共に、生成したサーバオ
ブジェクトとそれに付与されたオブジェクト番号との対
象表を生成する。
【0034】次に、サーバオブジェクト起動手段11
は、起動したn個のプロセスとサーバオブジェクトに関
する情報、すなわち、名前サービス2に登録すべき名前
「servename」と、オブジェクト番号としてク
ラス内変数を有しないサーバオブジェクト間で一意的な
番号「id」と、サーバオブジェクトのクラス名「na
me」と、サーバオブジェクトのハッシュ値「has
h」と、サーバオブジェクトがクラス内変数を有しない
ことを示すフラグ「ture」と、起動されたサーバオ
ブジェクト管理手段15〜15のプロセス番号「p
1〜pn」とをオブジェクトテーブル管理手段12に供
給してサーバオブジェクトの登録を要求する。これによ
り、オブジェクトテーブル管理手段12は、図2に示す
ように、オブジェクトテーブル12aに、供給されたサ
ーバオブジェクトに関する情報に基づいて、サーバオブ
ジェクト毎に、エントリを作成した後、エントリの内容
をクライアント要求受付手段13に供給して名前サーバ
2への登録を要求する。
【0035】したがって、クライアント要求受付手段1
3は、図2に示すように、オブジェクト番号「id」
と、ホスト名「host」と、ポート番号「a」と、ハ
ッシュ値「hash」とから構成されるスタブオブジェ
クト21を生成した後、名前サーバ2に対し、生成した
スタブオブジェクトと名前「servename」との
登録を要求する。名前サーバ2は、クライアント要求受
付手段13から供給されたスタブオブジェクトと名前
「servename」とを登録した後、名前「ser
vename」に関する名前サービスを開始する。
【0036】そして、例えば、クライアント3が、名
前サーバ2にアクセスして登録されている名前を参照し
て、その中の1個の名前(今の場合、「servena
me」)を指定してその名前「servename」に
対応したスタブオブジェクト21(図2参照)を名前サ
ーバ2から受信し、受信したスタブオブジェクト21の
通常のメソッド呼び出しを行った後、図3に示すよう
に、それに応じたサーバオブジェクトの、メッセージヘ
ッダ「head」と、オブジェクト番号「id」と、メ
ソッド番号「num」と、ハッシュ値「hash」と、
引数「args」とから構成されるメソッド呼び出しメ
ッセージ22を生成してRMIを用いてクライアント要
求受付手段13に送信するとする。これにより、クライ
アント要求受付手段13は、受信したメソッド呼び出し
メッセージ22を解析してある特定のサーバオブジェク
トに対するメソッド呼び出しメッセージであると認識
し、そのメソッド呼び出しメッセージをサーバオブジェ
クト毎に分割し、サーバオブジェクト割当手段14とデ
ータ通信するためのソケットを生成すると共に、サーバ
オブジェクト割当手段14とデータ通信するためのソケ
ットを生成すると共に、サーバオブジェクト毎のメソッ
ド呼び出しメッセージ22をサーバオブジェクト割当手
段14に供給する。
【0037】したがって、図3に示すように、サーバオ
ブジェクト割当手段14が供給されたメソッド呼び出し
メッセージ22に含まれているオブジェクト番号(今の
場合、番号「id」)を引数としてオブジェクトテーブ
ル管理手段12にオブジェクトテーブルの検索を要求す
るので、オブジェクトテーブル管理手段12は、そのオ
ブジェクト番号「id」に基づいてオブジェクトテーブ
ル12a(図2参照)を検索して、対応するエントリの
内容(今の場合、名前「servename」、クラス
名「name」、ハッシュ値「hash」、フラグ「t
ure」及びプロセス番号「p1〜pn」)をサーバオ
ブジェクト割当手段14に供給する。
【0038】これにより、サーバオブジェクト割当手段
14は、オブジェクトテーブル管理手段12から供給さ
れたエントリの内容に基づいて、当該サーバオブジェク
トがクラス内変数を有しないと認識し、エントリの内容
を構成するプロセス番号「p1〜pn」に対応するn個
のサーバオブジェクト管理手段15〜15に対し
て、現在いずれかのクライアント3から供給されている
メソッド呼び出しメッセージに対応したメソッドを実行
しているか否か、実行中である場合にはプロセスのサー
バオブジェクト管理手段15を構成するCPUの専有率
等の状態について問い合わせる。そして、サーバオブジ
ェクト管理手段15〜15にそれぞれの状態を問い
合わせた結果、例えば、サーバオブジェクト管理手段1
が最も負荷の軽かったとすると、サーバオブジェク
ト割当手段14は、図3に示すように、プロセス番号p
1のサーバオブジェクト管理手段15にメソッド呼び
出しメッセージ22を供給する。
【0039】これにより、サーバオブジェクト管理手段
15は、図3に示すように、メソッド呼び出しメッセ
ージ22を構成するオブジェクト番号(今の場合、番号
「id」)のフィールドを自己のプロセスにおいて管理
している複数個のサーバオブジェクトの中の1個に付与
されているオブジェクト番号(例えば、番号「id
2」)に変更することによりメソッド呼び出しメッセー
ジ23を生成した後、そのメソッド呼び出しメッセージ
23を用いて上記対応表を参照して、自己が管理するサ
ーバオブジェクト記憶手段16に記憶されている当該
オブジェクト番号「id2」のサーバオブジェクトに対
し、通常のRMIの仕様に基づいてメソッドを呼び出し
て当該メソッドを実行し、その実行結果を戻り値として
サーバオブジェクト割当手段14を介してクライアント
要求受付手段13に供給する。したがって、クライアン
ト要求受付手段13がサーバオブジェクト割当手段14
を介して供給されたメソッドの戻り値をクライアント3
に供給すると、クライアント3は、送信されたメソ
ッドの戻り値を受信する。
【0040】一方、サーバオブジェクト管理手段15
〜15にそれぞれの状態を問い合わせた結果、いずれ
のサーバオブジェクト管理手段15〜15の負荷も
重い場合には、プロセス数nが最大プロセス数mより小
さいので、サーバオブジェクト割当手段14は、図4に
示すように、サーバオブジェクト起動手段11に新たな
サーバオブジェクト管理手段15のプロセスの起動を要
求する。これにより、サーバオブジェクト起動手段11
は、各サーバオブジェクトがクラス内変数を有するか否
かに関する情報を参照し、今の場合、サーバオブジェク
トはクラス内変数を有しないものであるので、図4に示
すように、例えば、サーバオブジェクト管理手段15
のプロセスを起動する。したがって、サーバオブジェク
ト管理手段15は、起動されたプロセス内のデータと
して、1個のサーバオブジェクトを生成して対応するサ
ーバオブジェクト記憶手段16に記憶すると共に、生
成したサーバオブジェクトとそれに付与されたオブジェ
クト番号との対象表を生成する。
【0041】次に、サーバオブジェクト起動手段11
は、起動したプロセスとサーバオブジェクトに関する情
報、すなわち、名前サービス2に登録すべき名前「se
rvename」と、オブジェクト番号としてクラス内
変数を有しないサーバオブジェクト間で一意的な番号
「id」と、サーバオブジェクトのクラス名「nam
e」と、サーバオブジェクトのハッシュ値「hash」
と、サーバオブジェクトがクラス内変数を有しないこと
を示すフラグ「ture」と、起動されたサーバオブジ
ェクト管理手段15のプロセス番号「px」とをオブ
ジェクトテーブル管理手段12に供給してサーバオブジ
ェクトの登録を要求する。これにより、オブジェクトテ
ーブル管理手段12は、供給されたサーバオブジェクト
に関する情報に基づいて、図2に示すオブジェクトテー
ブル12aの既に作成されているエントリにプロセス番
号「px」を追加する。
【0042】したがって、サーバオブジェクト割当手段
14は、図4に示すように、新たに起動されたプロセス
のプロセス番号「px」を有するサーバオブジェクト管
理手段15にメソッド呼び出しメッセージ22を供給
する。これにより、サーバオブジェクト管理手段15
は、図4に示すように、メソッド呼び出しメッセージ2
2を構成するオブジェクト番号(今の場合、番号「i
d」)のフィールドを自己のプロセスにおいて管理して
いる複数個のサーバオブジェクトの中の1個に付与され
ているオブジェクト番号(例えば、番号「id2」)に
変更することによりメソッド呼び出しメッセージ23を
生成した後、そのメソッド呼び出しメッセージ23を用
いて上記対応表を参照して、自己が管理するサーバオブ
ジェクト記憶手段16に記憶されている当該オブジェ
クト番号「id2」のサーバオブジェクトに対し、通常
のRMIの仕様に基づいてメソッドを呼び出して当該メ
ソッドを実行し、その実行結果を戻り値としてサーバオ
ブジェクト割当手段14を介してクライアント要求受付
手段13に供給する。したがって、クライアント要求受
付手段13がサーバオブジェクト割当手段14を介して
供給されたメソッドの戻り値をクライアント3に供給
すると、クライアント3は、送信されたメソッドの戻
り値を受信する。
【0043】このように、この例の構成によれば、サー
バ1は、起動時に、サーバオブジェクトがクラス内変数
を有しない場合、所定個数のサーバオブジェクト管理手
段15のプロセスを起動した後、名前サーバ2に登録す
べき名前とクラス内変数を有しないサーバオブジェクト
間で一意的な番号からなるオブジェクト番号とを含んだ
情報をオブジェクトテーブル12aに登録すると共に、
生成したスタブオブジェクトと登録すべき名前とを名前
サーバ2に登録する。次に、あるクライアント3からの
メソッド呼び出しメッセージを受信すると、サーバ1
は、そのメソッド呼び出しメッセージに含まれているオ
ブジェクト番号に基づいてプロセスが起動されている所
定個数のサーバオブジェクト管理手段15の状態を確認
して最も負荷の軽いサーバオブジェクト管理手段15に
おいてメソッドを実行し、いずれのサーバオブジェクト
管理手段15の負荷も重く、プロセス数が最大プロセス
数より小さい場合には、新たなサーバオブジェクト管理
手段15のプロセスを起動してサーバオブジェクトを生
成し、メソッドを実行する。したがって、サーバオブジ
ェクトがクラス内変数を有しない場合には、サーバオブ
ジェクトの動的な負荷分散を行うことができる。
【0044】以上、この発明の実施例を図面を参照して
詳述してきたが、具体的な構成はこの実施例に限られる
ものではなく、この発明の要旨を逸脱しない範囲の設計
の変更等があってもこの発明に含まれる。例えば、上述
の実施例においては、サーバ1全体が1個の装置によっ
て構成されている例を示したが、これに限定されず、サ
ーバオブジェクト起動手段11と、オブジェクトテーブ
ル管理手段12と、クライアント要求受付手段13と、
サーバオブジェクト割当手段14と、サーバオブジェク
ト管理手段15〜15とがイントラネット等のネッ
トワークを介して接続されていると構成しても良い。ま
た、上述の実施例においては、サーバ1を1個設ける例
を示したが、これに限定されず、複数個設けても良い。
また、上述の実施例においては、サーバ1をハードウェ
アで構成した例を示したが、これに限定されない。すな
わち、上記サーバ1を、CPUと、ROMやRAM等の
内部記憶装置と、FDD、HDD、CD−ROMドライ
バ等の外部記憶装置と、出力手段と、入力手段とを有す
るコンピュータによって構成し、上記サーバオブジェク
ト起動手段11、上記オブジェクトテーブル管理手段1
2、上記クライアント要求受付手段13、上記サーバオ
ブジェクト割当手段14、上記サーバオブジェクト管理
手段15〜15がCPUによって構成され、これら
の機能が分散オブジェクト管理プログラムとして、RO
M等の半導体メモリや、FD、HDやCD−ROM等の
記憶媒体に記憶されていると構成しても良い。この場
合、上記内部記憶装置、あるいは外部記憶装置がサーバ
オブジェクト記憶手段16〜16となり、分散オブ
ジェクト管理プログラムは、記憶媒体からCPUに読み
込まれ、CPUの動作を制御する。CPUは、分散オブ
ジェクト管理プログラムが起動されると、上記サーバオ
ブジェクト起動手段11、上記オブジェクトテーブル管
理手段12、上記クライアント要求受付手段13、上記
サーバオブジェクト割当手段14、上記サーバオブジェ
クト管理手段15〜15として機能し、分散オブジ
ェクト管理プログラムの制御により、上記した処理を実
行するのである。
【0045】
【発明の効果】以上説明したように、この発明の構成に
よれば、JavaのRMIを用いた分散システムにおい
て、サーバオブジェクトについて動的な負荷分散を行う
ことができる。
【図面の簡単な説明】
【図1】この発明の一実施例である分散オブジェクト管
理方法を適用した分散システムの構成を示すブロック図
である。
【図2】同システムの動作の一例を表す概念図である。
【図3】同システムの動作の一例を表す概念図である。
【図4】同システムの動作の一例を表す概念図である。
【符号の説明】
1 サーバ 2 名前サーバ 3〜3 クライアント 11 サーバオブジェクト起動手段 12 オブジェクトテーブル管理手段 12a オブジェクトテーブル 13 クライアント要求受付手段 14 サーバオブジェクト割当手段 15〜15 サーバオブジェクト管理手段 16〜16 サーバオブジェクト記憶手段 21 スタブオブジェクト 22,23 メソッド呼び出しメッセージ

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 少なくとも1個のサーバと、少なくとも
    1個のクライアントとがネットワークを介して接続され
    た分散システムの前記少なくとも1個のサーバにおいて
    生成され分散されている複数個のサーバオブジェクトを
    管理する分散オブジェクト管理方法であって、 前記少なくとも1個のサーバは、 起動時に、サーバオブジェクトがクラス内変数を有する
    か否かに応じてサーバオブジェクトを管理する1個又は
    複数個のプロセスを起動して予め設定された個数のサー
    バオブジェクトを生成する第1のステップと、 前記少なくとも1個のクライアントから送信されたサー
    バオブジェクトのメソッド呼び出しメッセージを解析
    し、当該サーバオブジェクトがクラス内変数を有する場
    合には、対応する1個のプロセスのサーバオブジェクト
    のメソッドを実行し、当該サーバオブジェクトがクラス
    内変数を有しない場合には、対応する複数個のプロセス
    のうち、最も負荷の軽いプロセスのサーバオブジェクト
    のメソッドを実行する第2のステップとを行うことを特
    徴とする分散オブジェクト管理方法。
  2. 【請求項2】 前記第2のステップでは、前記少なくと
    も1個のクライアントから送信されたサーバオブジェク
    トのメソッド呼び出しメッセージを解析し、当該サーバ
    オブジェクトがクラス内変数を有しない場合であって、
    対応する複数個のプロセスのいずれの負荷も重く、前記
    プロセスの個数が予め設定されているプロセスの個数の
    上限より小さい場合には、新たなプロセスを起動し、そ
    のプロセスのサーバオブジェクトのメソッドを実行する
    ことを特徴とする請求項1記載の分散オブジェクト管理
    方法。
  3. 【請求項3】 少なくとも1個のサーバと、少なくとも
    1個のクライアントと、名前サービスを前記少なくとも
    1個のクライアントに提供する名前サーバとがネットワ
    ークを介して接続された分散システムの前記少なくとも
    1個のサーバにおいて生成され分散されている複数個の
    サーバオブジェクトを管理する分散オブジェクト管理方
    法であって、 前記少なくとも1個のサーバは、 起動時に、サーバオブジェクトがクラス内変数を有する
    場合には、1個のプロセスを起動して予め設定された個
    数のサーバオブジェクトを生成し、サーバオブジェクト
    がクラス内変数を有しない場合には、予め設定された個
    数のプロセスを起動して予め設定された個数のサーバオ
    ブジェクトを生成する第1のステップと、 前記サーバオブジェクトに関する情報に基づいて、サー
    バオブジェクト毎にエントリを作成する第2のステップ
    と、 前記エントリの内容に基づいてスタブオブジェクトを生
    成した後、前記名前サーバに生成したスタブオブジェク
    トと前記サーバオブジェクトの登録すべき名前とを供給
    する第3のステップと、 前記少なくとも1個のクライアントから送信されたサー
    バオブジェクトのメソッド呼び出しメッセージに基づい
    て検索した前記エントリの内容に基づいて、当該サーバ
    オブジェクトがクラス内変数を有すると認識した場合に
    は、対応する1個のプロセスのサーバオブジェクトのメ
    ソッドを実行してメソッドの実行結果を前記少なくとも
    1個のクライアントに送信し、当該サーバオブジェクト
    がクラス内変数を有しないと認識した場合には、対応す
    る複数個のプロセスのうち、最も負荷の軽いプロセスの
    サーバオブジェクトのメソッドを実行してその実行結果
    を前記少なくとも1個のクライアントに送信する第4の
    ステップとを行うことを特徴とする分散オブジェクト管
    理方法。
  4. 【請求項4】 前記第4のステップでは、前記少なくと
    も1個のクライアントから送信されたサーバオブジェク
    トのメソッド呼び出しメッセージに基づいて検索した前
    記エントリの内容に基づいて当該サーバオブジェクトが
    クラス内変数を有しないと認識した場合であって、対応
    する複数個のプロセスのいずれの負荷も重く、前記プロ
    セスの個数が予め設定されているプロセスの個数の上限
    より小さい場合には、新たなプロセスを起動し、そのプ
    ロセスのサーバオブジェクトのメソッドを実行すること
    を特徴とする請求項3記載の分散オブジェクト管理方
    法。
  5. 【請求項5】 前記サーバオブジェクトに関する情報
    は、前記サーバオブジェクトがクラス内変数を有する場
    合には、少なくとも、前記名前サービスに登録すべき名
    前と、オブジェクト番号としての起動されたプロセスの
    番号と、前記サーバオブジェクトがクラス内変数を有す
    ることを示すフラグとからなり、前記サーバオブジェク
    トがクラス内変数を有しない場合には、少なくとも、前
    記名前サービスに登録すべき名前と、オブジェクト番号
    としての前記クラス内変数を有しないサーバオブジェク
    ト間で一意的な番号と、前記サーバオブジェクトがクラ
    ス内変数を有しないことを示すフラグと、起動された複
    数個のプロセスの番号の集合とからなり、 前記第4のステップでは、供給されたメソッド呼び出し
    メッセージを構成するオブジェクト番号を当該プロセス
    において管理している複数個のサーバオブジェクトの中
    の1個に付与されているオブジェクト番号に変更するこ
    とにより新たにメソッド呼び出しメッセージを生成し、
    そのメソッド呼び出しメッセージに基づいて当該プロセ
    スのサーバオブジェクトのメソッドを実行することを特
    徴とする請求項3又は4記載の分散オブジェクト管理方
    法。
  6. 【請求項6】 前記スタブオブジェクトには、少なくと
    も前記オブジェクト番号が含まれることを特徴とする請
    求項3乃至5のいずれか1に記載の分散オブジェクト管
    理方法。
  7. 【請求項7】 コンピュータに請求項1乃至6のいずれ
    か1に記載の機能を実現させるための分散オブジェクト
    管理プログラムを記憶した記憶媒体。
  8. 【請求項8】 少なくとも1個のサーバと、少なくとも
    1個のクライアントとがネットワークを介して接続され
    た分散システムであって、 前記少なくとも1個のサーバは、起動時にサーバオブジ
    ェクトがクラス内変数を有するか否かに応じてサーバオ
    ブジェクトを管理する1個又は複数個のプロセスを起動
    し、前記少なくとも1個のクライアントから送信された
    サーバオブジェクトのメソッド呼び出しメッセージを解
    析し、当該サーバオブジェクトがクラス内変数を有する
    と認識した場合には、対応する1個のプロセスのサーバ
    オブジェクトのメソッドを実行し、当該サーバオブジェ
    クトがクラス内変数を有しないと認識した場合には、対
    応する複数個のプロセスのうち、最も負荷の軽いプロセ
    スのサーバオブジェクトのメソッドを実行することを特
    徴とする分散システム。
  9. 【請求項9】 前記少なくとも1個のサーバは、前記少
    なくとも1個のクライアントから送信されたサーバオブ
    ジェクトのメソッド呼び出しメッセージを解析し、当該
    サーバオブジェクトがクラス内変数を有しない場合であ
    って、対応する複数個のプロセスのいずれの負荷も重
    く、前記プロセスの個数が予め設定されているプロセス
    の個数の上限より小さい場合には、新たなプロセスを起
    動し、そのプロセスのサーバオブジェクトのメソッドを
    実行することを特徴とする請求項8記載の分散システ
    ム。
  10. 【請求項10】 名前サービスを前記少なくとも1個の
    クライアントに提供する名前サーバが前記少なくとも1
    個のサーバ及び前記少なくとも1個のクライアントとネ
    ットワークを介して接続され、 前記少なくとも1個のサーバは、サーバオブジェクト起
    動手段と、オブジェクトテーブル管理手段と、クライア
    ント要求受付手段と、サーバオブジェクト割当手段と、
    複数個のサーバオブジェクト管理手段とを備え、 前記サーバオブジェクト起動手段は、起動時に、サーバ
    オブジェクトがクラス内変数を有する場合には、1個の
    サーバオブジェクト管理手段のプロセスを起動し、サー
    バオブジェクトがクラス内変数を有しない場合には、予
    め設定された個数のサーバオブジェクト管理手段のプロ
    セスを起動し、サーバオブジェクトに関する情報を前記
    オブジェクトテーブル管理手段に供給し、 前記オブジェクトテーブル管理手段は、供給されたサー
    バオブジェクトに関する情報に基づいて、サーバオブジ
    ェクト毎にエントリを作成し、前記エントリの内容を前
    記クライアント要求受付手段に供給すると共に、前記サ
    ーバオブジェクト割当手段から要求されたエントリの内
    容を供給し、 前記クライアント要求受付手段は、供給された前記エン
    トリの内容に基づいてスタブオブジェクトを生成した
    後、生成したスタブオブジェクトと前記サーバオブジェ
    クトの登録すべき名前とを前記名前サーバに供給すると
    共に、前記少なくとも1個のクライアントから送信され
    たメソッド呼び出しメッセージをサーバオブジェクト毎
    に分割して前記サーバオブジェクト割当手段に供給し、
    前記サーバオブジェクト割当手段から供給されたメソッ
    ドの戻り値を前記クライアントに送信し、 前記サーバオブジェクト割当手段は、供給されたメソッ
    ド呼び出しメッセージに基づいて前記オブジェクトテー
    ブル管理手段に要求することにより供給されたエントリ
    の内容に基づいて、サーバオブジェクトがクラス内変数
    を有すると認識した場合には、1個のサーバオブジェク
    ト管理手段にメソッド呼び出しメッセージを供給し、当
    該サーバオブジェクト管理手段から供給されたメソッド
    の戻り値を前記クライアント要求受付手段に供給し、サ
    ーバオブジェクトがクラス内変数を有しないと認識した
    場合には、最も負荷の軽いサーバオブジェクト管理手段
    にメソッド呼び出しメッセージを供給し、当該サーバオ
    ブジェクト管理手段から供給されたメソッドの戻り値を
    前記クライアント要求受付手段に供給し、 前記複数個のサーバオブジェクト管理手段は、前記サー
    バオブジェクト起動手段によりプロセスが起動された場
    合には、予め設定された個数のサーバオブジェクトを生
    成し、供給されたメソッド呼び出しメッセージに基づい
    てメソッドを呼び出して当該メソッドを実行し、その実
    行結果を戻り値として前記サーバオブジェクト割当手段
    に供給することを特徴とする請求項8又は9記載の分散
    システム。
  11. 【請求項11】 前記サーバオブジェクト割当手段は、
    供給されたメソッド呼び出しメッセージに基づいて前記
    オブジェクトテーブル管理手段に要求することにより供
    給されたエントリの内容に基づいて、サーバオブジェク
    トがクラス内変数を有しない場合には、前記複数個のサ
    ーバオブジェクト管理手段に現在の状態について問い合
    わせた結果、いずれのサーバオブジェクト管理手段の負
    荷も重く、前記プロセスの個数が予め設定されているプ
    ロセスの個数の上限より小さい場合には、前記サーバオ
    ブジェクト起動手段に新たなサーバオブジェクト管理手
    段のプロセスの起動を要求し、その結果起動されたプロ
    セスのサーバオブジェクト管理手段にメソッド呼び出し
    メッセージを供給し、前記サーバオブジェクト起動手段
    は、前記サーバオブジェクト割当手段から新たなサーバ
    オブジェクト管理手段のプロセスの起動を要求された場
    合には、新たにサーバオブジェクト管理手段のプロセス
    を起動した後、サーバオブジェクトに関する情報を前記
    オブジェクトテーブル管理手段に供給することを特徴と
    する請求項10記載の分散システム。
  12. 【請求項12】 前記サーバオブジェクトに関する情報
    は、前記サーバオブジェクトがクラス内変数を有する場
    合には、少なくとも、前記名前サービスに登録すべき名
    前と、オブジェクト番号としての起動されたサーバオブ
    ジェクト管理手段のプロセス番号と、前記サーバオブジ
    ェクトがクラス内変数を有することを示すフラグとから
    なり、前記サーバオブジェクトがクラス内変数を有しな
    い場合には、少なくとも、前記名前サービスに登録すべ
    き名前と、オブジェクト番号としての前記クラス内変数
    を有しないサーバオブジェクト間で一意的な番号と、前
    記サーバオブジェクトがクラス内変数を有しないことを
    示すフラグと、起動された複数個のサーバオブジェクト
    管理手段のプロセス番号の集合とからなり、 前記複数個のサーバオブジェクト管理手段は、供給され
    たメソッド呼び出しメッセージを構成するオブジェクト
    番号を自己のプロセスにおいて管理している複数個のサ
    ーバオブジェクトの中の1個に付与されているオブジェ
    クト番号に変更することにより新たにメソッド呼び出し
    メッセージを生成し、そのメソッド呼び出しメッセージ
    に基づいてメソッドを呼び出して当該メソッドを実行す
    ることを特徴とする請求項10又は11記載の分散シス
    テム。
  13. 【請求項13】 前記スタブオブジェクトには、少なく
    とも前記オブジェクト番号が含まれることを特徴とする
    請求項10乃至12のいずれか1に記載の分散システ
    ム。
JP2000092681A 2000-03-30 2000-03-30 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム Pending JP2001282561A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000092681A JP2001282561A (ja) 2000-03-30 2000-03-30 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000092681A JP2001282561A (ja) 2000-03-30 2000-03-30 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム

Publications (1)

Publication Number Publication Date
JP2001282561A true JP2001282561A (ja) 2001-10-12

Family

ID=18607975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000092681A Pending JP2001282561A (ja) 2000-03-30 2000-03-30 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム

Country Status (1)

Country Link
JP (1) JP2001282561A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350790B2 (en) 2010-02-04 2016-05-24 International Business Machines Corporation Utilization of target browsers
US9678814B2 (en) 2011-10-04 2017-06-13 International Business Machines Corporation Implementing a java method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332833A (ja) * 1993-05-25 1994-12-02 Nec Corp サーバ運用方式
JPH08335211A (ja) * 1995-06-07 1996-12-17 Oki Electric Ind Co Ltd 分散オブジェクト環境実現システム
JPH1040118A (ja) * 1996-07-26 1998-02-13 Nec Corp クライアント/サーバシステム及びクライアント端末装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332833A (ja) * 1993-05-25 1994-12-02 Nec Corp サーバ運用方式
JPH08335211A (ja) * 1995-06-07 1996-12-17 Oki Electric Ind Co Ltd 分散オブジェクト環境実現システム
JPH1040118A (ja) * 1996-07-26 1998-02-13 Nec Corp クライアント/サーバシステム及びクライアント端末装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350790B2 (en) 2010-02-04 2016-05-24 International Business Machines Corporation Utilization of target browsers
US9473558B2 (en) 2010-02-04 2016-10-18 International Business Machines Corporation Utilization of target browsers
US9678814B2 (en) 2011-10-04 2017-06-13 International Business Machines Corporation Implementing a java method
US9973563B2 (en) 2011-10-04 2018-05-15 International Business Machines Corporation Implementing a java method

Similar Documents

Publication Publication Date Title
US20220070122A1 (en) Method and Apparatus for Composite User Interface Generation
US6604127B2 (en) Dynamic lookup service in distributed system
US8713089B2 (en) Dynamic lookup service in a distributed system
US10057189B2 (en) Virtual computing services deployment network
US8151281B2 (en) Method and system of mapping at least one web service to at least one OSGi service
EP1116112B1 (en) Load balancing in a network environment
US20040236726A1 (en) System and method for query result caching
US6708171B1 (en) Network proxy
US20020107939A1 (en) System and method for accessing software components in a distributed network environment
US20020147652A1 (en) System and method for distruibuted client state management across a plurality of server computers
US20040205162A1 (en) Method of executing an edge-enabled application in a content delivery network (CDN)
US6832223B1 (en) Method and system for facilitating access to a lookup service
US20020046228A1 (en) Method and system for facilitating access to a lookup service
US6957427B1 (en) Remote object activation in a distributed system
US7593917B2 (en) Implementation of application management operations
US20040139144A1 (en) Using web services to access computational grids by non-members of the grid
EP1058884A1 (en) Method and system for facilitating access to a lookup service
JP2001282561A (ja) 分散オブジェクト管理方法、そのプログラムを記憶した記憶媒体及び分散システム
US20040181530A1 (en) Distributed networking system for resource-constrained computing devices
JP2002073578A (ja) 分散オブジェクトシステム
Takahashi et al. Interoperability between KODAMA and JADE using agent platform protocol
WO2000077619A2 (en) Dynamic lookup service in a distributed system
Ravi Service discovery in mobile environments
KR20010034515A (ko) 룩업 서비스에의 액세스를 용이하게 하는 방법 및 시스템
JP2009187542A (ja) 要求処理システム、要求処理方法、および要求処理プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050524