JP2000259581A - 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム - Google Patents

計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム

Info

Publication number
JP2000259581A
JP2000259581A JP11062063A JP6206399A JP2000259581A JP 2000259581 A JP2000259581 A JP 2000259581A JP 11062063 A JP11062063 A JP 11062063A JP 6206399 A JP6206399 A JP 6206399A JP 2000259581 A JP2000259581 A JP 2000259581A
Authority
JP
Japan
Prior art keywords
internal processing
message
transfer
computer
processing object
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
JP11062063A
Other languages
English (en)
Inventor
Yasushi Ono
泰志 小野
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP11062063A priority Critical patent/JP2000259581A/ja
Publication of JP2000259581A publication Critical patent/JP2000259581A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】オブジェクトの動的移動時におけるオブジェク
ト間相互接続性を確保する。 【解決手段】複数の計算機がネットワークを介して接続
された計算機システムを制御するプログラムを、少なく
とも一つの内部処理オブジェクト10と当該内部処理オ
ブジェクト10にそれぞれ関係付けされている少なくと
も一つの転送オブジェクト11により構築する。ここ
で、内部処理オブジェクト10は、メッセージに基づい
て実体的な処理を実行する動的配置可能なオブジェクト
である。また、転送オブジェクト11は、外部からのメ
ッセージを受け付けて自己に関係付けされている内部処
理オブジェクト10に転送するオブジェクトであり、固
定的に配置される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、分散させたオブジ
ェクトの動的配置が容易に可能となる計算機システムの
制御プログラム及びオブジェクト生成プログラムを記憶
したコンピュータ読み取り可能な記憶媒体並びに計算機
システムに関する。
【0002】
【従来の技術】分散オブジェクト環境は、ネットワーク
で接続された複数の計算機上に配置されるオブジェクト
群により実現されるものであり、ネットワーク上の計算
機の資源を有効に活用可能であり、負荷の分散にも有効
である。
【0003】また、分散オブジェクト環境を実現する計
算機システムにおいては、ネットワーク上の任意の計算
機上に配置されたオブジェクトを他の計算機上に移動さ
せることも可能とされている。
【0004】例えばJavaやCORBAなどによる分
散オブジェクト環境では、オブジェクトの内容を保存す
るシリアライズ機能やオブジェクトの内容を任意の計算
機のメモリ上に読み込ますクラスローダ機能を用いて、
ネットワーク上の任意の計算機にオブジェクトを配置し
たり、計算機間をオブジェクトが移動する技術が実現さ
れる。
【0005】図10は、従来の分散オブジェクト環境を
実現する計算機システムの状態を示す図であり、この計
算機システム1はネットワーク2を介して接続された計
算機3、4によって構成されている。
【0006】図10(a)は、オブジェクト移動前の計
算機システム1の状態を示しており、オブジェクト5〜
8によって構成されるプログラムは計算機3上に配置さ
れ、所定の処理を連携して実行している。
【0007】この各オブジェクト5〜8は、おのおのが
参照しているオブジェクトのハンドルを持っている。ハ
ンドルは、メッセージを参照対象のオブジェクトに送信
し、このメッセージに関する応答(リプライ)等の情報
を受け取るルーチンである。
【0008】具体的には、オブジェクト5はそれぞれオ
ブジェクト6、7を参照するためのハンドル6h、7h
を内部に有しており、オブジェクト6はそれぞれオブジ
ェクト5、8を参照するためのハンドル5h、8hを有
している。また、オブジェクト7はそれぞれオブジェク
ト5、8を参照するためのハンドル5h、8hを有して
おり、オブジェクト8はそれぞれオブジェクト6、7を
参照するためのハンドル6h、7hを有している。な
お、図10中の矢印は送出されるメッセージの方向を示
しており、このメッセージに関する応答については図示
することを省略している。
【0009】図10(b)は、オブジェクト移動後の計
算機システム1の状態を示しており、ここでは計算機3
の負荷が増大したことにより、オブジェクト8の内容が
計算機4上に移動してオブジェクト8aとして動作して
いる場合を例示している。
【0010】このオブジェクト移動に伴い、移動前のオ
ブジェクト5を参照していた全てのオブジェクト(移動
したオブジェクト8の参照用ハンドル8hを有する全て
のオブジェクト)6、7は、オブジェクト8が移動して
オブジェクト8aとなるタイミングで、新たに移動後の
オブジェクト8aの参照用ハンドル8ahを取得し、移
動前のオブジェクト8の参照用ハンドル8hをこの参照
用ハンドル8ahで書き換える。
【0011】このように、計算機システム1において分
散オブジェクト環境を実現することで、ネットワーク接
続された計算機3、4の資源を有効に活用可能であり、
負荷を分散させる点で有効である。
【0012】
【発明が解決しようとする課題】以上のようにオブジェ
クトの内容が移動可能なアプリケーションを開発するた
めには、アプリケーションが独自で、動的移動時のオブ
ジェクト間の相互接続性を保証するように開発する必要
がある。このために、移動するオブジェクトを参照して
いる全てのオブジェクトが、移動のタイミングを考慮し
て、個別にオブジェクトの移動に対処可能となるように
開発しなければならないなど、煩雑で複雑な処理を必要
とする。
【0013】したがって、アプリケーション開発者の負
担が大きくなるという問題が生じる。
【0014】また、開発されるオブジェクトは、動的移
動部分がアプリケーションに依存する仕様となるため、
オブジェクトの部品化、再利用化が困難である。
【0015】本発明は、以上のような実情に鑑みてなさ
れたもので、オブジェクト間の相互接続性を保ちながら
オブジェクトの内容の動的な移動を容易に実現可能とす
る計算機システムの制御プログラム及びオブジェクト生
成プログラムを記憶したコンピュータ読み取り可能な記
憶媒体並びに計算機システムを提供することを目的とす
る。
【0016】
【課題を解決するための手段】本発明の骨子は、実体的
な処理を実行する内部処理オブジェクトと、主に外部と
のインタフェースを担当する転送オブジェクトとの組み
合わせによって、通常のオブジェクトと同様の処理を実
現させる点にある。
【0017】以下、本発明を実現するにあたって講じた
具体的手段について説明する。
【0018】第1の発明は、複数の計算機がネットワー
クを介して接続された計算機システムを制御するプログ
ラムであって、メッセージに基づいて実体的な処理を実
行する動的配置可能な少なくとも一つの内部処理オブジ
ェクトと、少なくとも一つの内部処理オブジェクトに関
係付けされており、外部からのメッセージを受け付けて
自己に関係付けされている内部処理オブジェクトに転送
するオブジェクトであって固定的に配置される少なくと
も一つの転送オブジェクトとから構成されるプログラム
を記憶したコンピュータ読み取り可能な記憶媒体であ
る。
【0019】この第1の発明の記憶媒体に記憶されてい
るプログラムが適用される計算機システムにおいては、
内部処理オブジェクトが移動した場合であっても、外部
から内部処理オブジェクトへ送られるメッセージを中継
する転送オブジェクトは固定されている。したがって、
内部処理オブジェクトが移動しても、この内部処理オブ
ジェクトに外部からのメッセージを転送する転送オブジ
ェクトの処理を書き換えるのみで移動後の処理も実現可
能である。
【0020】したがって、動的に移動する部分(内部処
理オブジェクト)がアプリケーションに依存せず、オブ
ジェクトの部品化、再利用化が容易となる。
【0021】また、当該内部処理オブジェクトと転送オ
ブジェクトによってプログラムを構築すれば、このプロ
グラム開発者が動的移動時のオブジェクト間の相互接続
性を保証するように開発を行う必要がないため、開発時
の煩雑で複雑な処理を簡素化させることができる。
【0022】第2の発明は、第1の発明のプログラムで
あって、内部処理オブジェクトは、外部との間でやり取
りされるメッセージの全てを、自己に関係付けされてい
る転送オブジェクトを介してやり取りし、転送オブジェ
クトは、自己に関係付けされている内部処理オブジェク
トと外部との間でやり取りされるメッセージの全てを受
け付けて転送するプログラムを記憶したコンピュータ読
み取り可能な記憶媒体である。
【0023】この第2の発明の記憶媒体に記憶されてい
るプログラムにおいては、第1の発明と同様の作用効果
を実現可能であり、さらに内部処理オブジェクトとのメ
ッセージのやり取りは、全て関係付けされている転送オ
ブジェクトを介して行われる。すなわち、内部処理オブ
ジェクトは、自己と関係付けされている転送オブジェク
ト以外から直接参照されない。
【0024】したがって、内部処理オブジェクトのモジ
ュール結合度を最低にすることができる。
【0025】第3の発明は、第1の発明のプログラムで
あって、内部処理オブジェクトは、外部との間でやり取
りされるメッセージのうち外部から受け付けるメッセー
ジのみを、自己に関係付けされている転送オブジェクト
を介して受け付け、転送オブジェクトは、外部との間で
やり取りされるメッセージのうち外部から自己に関係付
けされている内部処理オブジェクトへのメッセージのみ
を受け付けて転送するプログラムを記憶したコンピュー
タ読み取り可能な記憶媒体である。
【0026】この第3の発明の記憶媒体に記載されてい
るプログラムでは、内部処理オブジェクトから外部への
メッセージは転送オブジェクトで中継されることなく直
接送出される。このような場合であっても、メッセージ
送信先の外部が移動しない場合には、内部処理オブジェ
クトの書き換えは必要ないため、第1の発明と同様の効
果を得ることができる。
【0027】第4の発明は、第1乃至第3の発明のプロ
グラムであって、外部と内部処理オブジェクトとの間で
やり取りされるメッセージの逆の方向で、当該メッセー
ジに関する応答がやり取りされるプログラムを記憶した
コンピュータ読み取り可能な記憶媒体である。
【0028】通常、オブジェクトにメッセージが受け付
けられると、処理が実行されて応答が送出されるが、こ
の第4の発明では、この応答がメッセージと逆の状態で
オブジェクト間を伝搬されるとしている。
【0029】第5の発明は、第1乃至第4の発明のプロ
グラムが動作するシステムであり複数の計算機がネット
ワークを介して接続された計算機システムを制御するプ
ログラムであって、複数の計算機の動作負荷の偏りを検
出させる監視機能と、監視機能によって動作負荷の偏り
が検出された場合に、動作負荷の大きい計算機に配置さ
れているいずれかの内部処理オブジェクトを、動作負荷
の小さい計算機に再配置して動作させる再配置機能とを
実現させるプログラムを記憶したコンピュータ読み取り
可能な記憶媒体である。
【0030】この第5の発明の記憶媒体に記憶されてい
るプログラムの適用された計算機システムでは、各計算
機間の負荷の分散が可能であり、このために必要なオブ
ジェクトの移動が容易に実行できる。
【0031】第6の発明は、コンピュータに、オブジェ
クトの内容を読み込んで解析させる解析機能と、メッセ
ージに基づいて実体的な処理を実行する動的配置可能な
内部処理オブジェクトを、解析機能による解析結果に基
づいて生成させる内部処理オブジェクト生成機能と、内
部処理オブジェクトに関係付けされており、外部からの
メッセージを受け付けて自己に関係付けされている内部
処理オブジェクトに転送するオブジェクトであって固定
的に配置される転送オブジェクトを、解析機能による解
析結果に基づいて生成させる転送オブジェクト生成機能
とを実現させるプログラムを記憶したコンピュータ読み
取り可能な記憶媒体である。
【0032】この第6の発明を適用すると、通常のオブ
ジェクトで構成されるプログラムの内容を、外部インタ
フェースを担当する固定的な転送オブジェクトと実体的
な処理を担当する動的配置可能な内部処理オブジェクト
との組み合わせに変換可能である。
【0033】したがって、上記第1の発明の記憶媒体に
記憶されているプログラムを容易に開発することができ
る。
【0034】第7の発明は、第6の発明のプログラムで
あって、内部処理オブジェクト生成機能は、外部との間
でやり取りされるメッセージの全てを、自己に関係付け
されている転送オブジェクトを介してやり取りする内部
処理オブジェクトを生成させ、転送オブジェクト生成機
能は、自己に関係付けされている内部処理オブジェクト
と外部との間でやり取りされるメッセージの全てを受け
付けて転送する転送オブジェクトを生成させるプログラ
ムを記憶したコンピュータ読み取り可能な記憶媒体であ
る。
【0035】この第7の発明を適用すると、通常のオブ
ジェクトで構成されるプログラムのの内容を、第2の発
明の記憶媒体に記憶されているプログラムに容易に変換
可能である。
【0036】したがって、上記の第2の発明の記憶媒体
に記憶されているプログラムを容易に開発することがで
きる。
【0037】第8の発明は、請求項6記載のプログラム
であって、内部処理オブジェクト生成機能は、外部との
間でやり取りされるメッセージのうち外部から受け付け
るメッセージのみを、自己に関係付けされている転送オ
ブジェクトを介して受け付ける内部処理オブジェクトを
生成させ、転送オブジェクト生成機能は、外部との間で
やり取りされるメッセージのうち外部から自己に関係付
けされている内部処理オブジェクトへのメッセージのみ
を受け付けて転送する転送オブジェクトを生成させるプ
ログラムを記憶したコンピュータ読み取り可能な記憶媒
体である。
【0038】この第8の発明を適用すると、通常のオブ
ジェクトで構成されるプログラムのの内容を、第3の発
明の記憶媒体に記憶されているプログラムに変換可能で
あり、このプログラムを容易に開発することができる。
【0039】第9の発明は、第6乃至第8の発明のプロ
グラムであって、内部処理オブジェクト生成機能は、受
け付けたメッセージの送出元に、当該メッセージに関す
る応答を送出する内部処理オブジェクトを生成させ、転
送オブジェクト生成機能は、受け付けたメッセージの送
信元に、当該メッセージに関する応答を送出する転送オ
ブジェクトを生成させるプログラムを記憶したコンピュ
ータ読み取り可能な記憶媒体である。
【0040】この第9の発明を適用すると、通常のオブ
ジェクトで構成されるプログラムの内容を、第4の発明
の記憶媒体に記憶されているプログラムに変更可能であ
り、このプログラムを容易に開発することができる。
【0041】第10の発明は、複数の計算機がネットワ
ークを介して接続された計算機システムであって、メッ
セージに基づいて実体的な処理を実行する動的配置可能
な少なくとも一つの内部処理オブジェクトと、少なくと
も一つの内部処理オブジェクトに関係付けされており、
外部からのメッセージを受け付けて自己に関係付けされ
ている内部処理オブジェクトに転送するオブジェクトで
あって固定的に配置される少なくとも一つの転送オブジ
ェクトと、複数の計算機の動作負荷の偏りを検出する監
視手段と、監視手段によって動作負荷の偏りが検出され
た場合に、動作負荷の大きい計算機に配置されているい
ずれかの内部処理オブジェクトを、動作負荷の小さい計
算機に再配置して動作させる再配置手段とを具備した計
算機システムである。
【0042】この第10の発明の計算機システムにおい
て、いずれかの内部処理オブジェクトの移動に伴って処
理の変更が必要となる部分は、移動した内部処理オブジ
ェクトに関係付けされている転送オブジェクトの有する
処理であって、外部から内部処理オブジェクトにメッセ
ージを転送する処理のみでよい。
【0043】したがって、各計算機間の負荷分散が容易
に実現される。
【0044】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態について説明する。
【0045】(第1の実施の形態)本実施の形態におい
ては、従来の一つのオブジェクトと同様の機能を有し、
内部処理オブジェクトと転送オブジェクトとの組み合わ
せにより構成されるオブジェクト複合体について説明す
る。
【0046】図1は、本実施の形態に係るオブジェクト
複合体を示す構成図であり、図1(a)に移動前の状
態、図1(b)に移動後の状態を示している。
【0047】まず、図1(a)に示す移動前のオブジェ
クト複合体9の構成について説明する。
【0048】図1(a)に示す移動前のオブジェクト複
合体9は、実体的な処理を実行する内部処理オブジェク
ト10と外部12とのインタフェースを主に処理する転
送オブジェクト11との組み合わせで構成されている。
【0049】このオブジェクト複合体9は、従来の一つ
のオブジェクトと同様の機能を内部処理オブジェクト1
0と転送オブジェクト11との連携で実現する。
【0050】内部処理オブジェクト10と転送オブジェ
クト11の間のメッセージ交換は通信で実現され、ネッ
トワーク透過である。このように、内部処理オブジェク
ト10と転送オブジェクト11は、通信可能に接続され
ているため、おのおのがネットワーク接続された別の計
算機上で動作することも可能である。
【0051】外部12から参照される(外部12からメ
ッセージを受け付ける)オブジェクトは転送オブジェク
ト11であり、内部処理オブジェクト10は転送オブジ
ェクト11以外からは直接参照されない。
【0052】転送オブジェクト11は、内部処理オブジ
ェクト10の代理人(Proxy)であり、実体的な処理自
体は全て内部処理オブジェクト10が行う。
【0053】また、本実施の形態における転送オブジェ
クト11は、外部12から内部処理オブジェクト10へ
のメッセージと、内部処理オブジェクト10から外部1
2へのメッセージの双方を中継する。
【0054】この図1においては、外部12の例として
オブジェクトが適用されている場合を示しているが、こ
の外部には固定的に配置される任意のオブジェクトとす
ることができる。
【0055】なお、各オブジェクト10〜12は、メッ
セージを受け付けた場合の処理結果である応答(リプラ
イ:REPLY)を、メッセージ送出元のオブジェクトに送
出する。以下で説明する各種のオブジェクトにおいても
同様とする。
【0056】内部処理オブジェクト10及び外部12
は、それぞれ転送オブジェクト参照用のハンドル11h
を有している。
【0057】転送オブジェクト11は、内部処理オブジ
ェクト10参照用のハンドル10hと外部12参照用の
ハンドル12hとを有しており、受け付けたメッセージ
をこのハンドル10h、12hを用いて転送するメッセ
ージ転送処理13を含んでいる。
【0058】また、この転送オブジェクト11は、内部
処理オブジェクト10の移動中にメッセージを受け付け
た場合には、内部処理オブジェクト10の移動が終了す
るまで、このメッセージを保留し、移動が終了すると、
更新されたハンドルを用いてメッセージ転送処理13を
実行する。
【0059】また、転送オブジェクト11は、内部処理
オブジェクト10参照用のハンドル10hを書き換え可
能であり、内部処理オブジェクト10が移動した場合に
は移動後の内部処理オブジェクトを参照するハンドルに
より書き換える。
【0060】次に、図1(b)に示す移動後のオブジェ
クト複合体9aの構成について説明する。
【0061】図1(b)に示す移動前のオブジェクト複
合体9aは、内部処理オブジェクト10が移動されたも
のである内部処理オブジェクト10aと固定的に配置さ
れている転送オブジェクト11とによって構成されてい
る。
【0062】移動後の内部処理オブジェクト10aは、
移動前の内部処理オブジェクト10と全く同一の機能を
有しており、同一のハンドラ11hを有している。
【0063】移動後の転送オブジェクト11は、移動前
の転送オブジェクト11と同一のものであり同一の機能
を有するが、移動前の内部オブジェクト10参照用のハ
ンドル10hが移動後の内部オブジェクト10a参照用
のハンドル10ahに書き換えられている点が異なる。
【0064】上記のような構成を有するオブジェクト複
合体9、9aに関する動作について以下に説明する。
【0065】まず、初期状態において、外部12からハ
ンドル11hによってメッセージが送出されると、転送
オブジェクト11に受け付けられる。転送オブジェクト
11では、メッセージの受け付けによりメッセージ転送
処理13が実行され、受け付けたメッセージが外部12
から内部処理オブジェクト10へのものである旨の判定
がなされ、ハンドル10hによってメッセージが内部処
理オブジェクト10に送出される。
【0066】一方、内部オブジェクト10からハンドル
11hによってメッセージが送出されると、転送オブジ
ェクト11に受け付けられる。転送オブジェクト11で
は、メッセージの受け付けによりメッセージ転送処理1
3が実行され、受け付けたメッセージが内部処理オブジ
ェクト10から外部12へのものである旨の判定がなさ
れ、ハンドル12hによってメッセージが外部に出力さ
れる。
【0067】ここで、内部処理オブジェクト10が移動
されて内部処理オブジェクト10aとなったとする。な
お、オブジェクトの移動とは、まず内部処理オブジェク
トの内容がサスペンド機能により一時停止され、次にこ
の一時停止された内容がシリアライズ機能により保存さ
れ、次にこの保存された内容が他の計算機上に送られ、
そしてこの他の計算機に送られた内容がオブジェクト生
成機能によって再生され、レジューム機能により活性化
されることをいう。
【0068】転送オブジェクト11の有する移動前の内
部処理オブジェクト10参照用のハンドル10hが、移
動後の内部処理オブジェクト10aを参照するためのハ
ンドル10ahに書き換えられる。
【0069】これにより、移動前と同様の状態で、内部
処理オブジェクト10aと外部12との間でメッセージ
のやり取りがなされる。
【0070】以上説明したように、本実施の形態に係る
オブジェクト複合体9においては、内部処理オブジェク
ト10を移動させたとしても、この内部処理オブジェク
ト10における外部インタフェースを担当する転送オブ
ジェクト11は固定的に配置されている。
【0071】これにより、内部処理オブジェクト10の
移動に伴うハンドラの書き換えは、転送オブジェクト1
1の有する内部処理オブジェクト10参照用のハンドラ
10hのみでよい。
【0072】したがって、内部処理オブジェクト10の
部品化、再利用化が可能となり、アプリケーション、O
S等のプログラム開発に有効である。
【0073】また、このようなオブジェクト複合体9を
利用してプログラムを構築することで、プログラム開発
者がオブジェクト移動時におけるオブジェクト間の相互
接続性を保証するように開発を行わなくても、オブジェ
クト間の相互接続性が保証される。加えて、内部処理オ
ブジェクト10の移動中のメッセージが転送オブジェク
ト11によって保留状態にされるため、外部12の開発
においては内部処理オブジェクト10の移動及び移動の
タイミングを考慮しなくてもよい。
【0074】したがって、オブジェクトの動的移動可能
なプログラムの開発に必要とされる労力を低減させるこ
とができる。
【0075】また、本実施の形態に係るオブジェクト複
合体9においては、外部12から内部処理オブジェクト
10へのメッセージ及び内部処理オブジェクト10から
外部12へのメッセージの双方が、転送オブジェクト1
1を介してやり取りされる。
【0076】これにより、内部処理オブジェクト10が
転送オブジェクト11によって完全に外部から遮断され
る。
【0077】したがって、内部処理オブジェクト10の
モジュール結合度を最低とすることができる。
【0078】(第2の実施の形態)本実施の形態におい
ては、外部から内部処理オブジェクトへ送出されるメッ
セージは転送オブジェクトを介してやり取りされるが、
内部処理オブジェクトから外部へ送出されるメッセージ
は転送オブジェクトを介することなくやり取りされるオ
ブジェクト複合体について説明する。
【0079】図2は、本実施の形態に係るオブジェクト
複合体を示す構成図であり、図2(a)に移動前の状
態、図1(b)に移動後の状態を示している。
【0080】このオブジェクト複合体14は、先の第1
の実施の形態で説明したオブジェクト複合体9と同様の
機能を有するものであるが、内部処理オブジェクト15
から外部17へのメッセージは転送オブジェクト16を
介することなく、直接外部17に送出される点が異な
る。
【0081】内部処理オブジェクト15は外部17参照
用のハンドル17hを有し、自己からのメッセージを直
接外部17に送出するが、この自己からのメッセージの
送出先となる外部17が固定的に配置される場合には、
ハンドル17hを書き換える必要がない。この内部処理
オブジェクト15は移動後に内部処理オブジェクト15
aとなる。
【0082】転送処理オブジェクト16のメッセージ転
送処理18は、外部17から内部処理オブジェクト15
へのメッセージを受け付け、内部処理オブジェクト15
参照用のハンドル15hを用いてメッセージを転送す
る。内部処理オブジェクト15が移動されると、転送処
理オブジェクト16の有するハンドル15hは、移動後
の内部処理オブジェクト15a参照用のハンドル15a
hに書き換えられる。
【0083】例えば、通常のオブジェクトを本実施の形
態に係るオブジェクト複合体14に変形させる場合に
は、メッセージを外部17に送出する処理はそのまま内
部処理オブジェクト15に含めたままでよく、外部17
からメッセージを受け取る処理を転送オブジェクト16
により実現すればよい。
【0084】以上のようなオブジェクト複合体14にお
いては、外部17は移動可能な内部処理オブジェクト1
5を参照するためのハンドルを保持していないため、た
とえ内部処理オブジェクト15が移動しても外部17の
変更は必要ない。
【0085】また、外部17が固定的に配置されていれ
ば、内部処理オブジェクト15の移動によって書き換え
が必要となるのは転送オブジェクト16の有するハンド
ル15hのみである。
【0086】したがって、内部処理オブジェクト15の
部品化、再利用化が可能となり、アプリケーション、O
S等のプログラム開発に有効である。
【0087】また、オブジェクトの動的移動可能なプロ
グラムの開発に必要とされる労力を低減させることがで
きる。
【0088】また、転送オブジェクト16は、外部17
から内部処理オブジェクト15へのメッセージのみを転
送するため、メッセージ転送処理18の簡略化がなさ
れ、保持するハンドル数を減少させることができる。
【0089】ゆえに、転送オブジェクト16の処理を簡
略化させることができ、通常のオブジェクトを変形して
オブジェクト複合体14を生成する作業を簡略化させる
ことができる。
【0090】(第3の実施の形態)本実施の形態におい
ては、第1の実施の形態で説明したオブジェクト構造体
で構成させるプログラムが動作する計算機システムにつ
いて説明する。
【0091】図3は、本実施の形態に係る計算機システ
ムにおける内部処理オブジェクト移動前の状態を示すブ
ロック図である。
【0092】また、図4は、本実施の形態に係る計算機
システムにおける内部処理オブジェクト移動後の状態を
示すブロック図である。
【0093】なお、この図3、4中の矢印はメッセージ
の伝達方向を示している。各メッセージに関するリプラ
イに関しては省略しているが、メッセージと逆の伝達方
向である。以下の各図において同様とする。
【0094】まず、図3に示す内部オブジェクト移動前
の計算機システム19の構成について説明する。
【0095】計算機システム19は、計算機20と計算
機21とがネットワーク22を介して接続されている。
【0096】内部オブジェクト移動前における計算機2
0上では、マネージャプロセス23、活性化オブジェク
ト24、オブジェクト複合体25〜28が動作してい
る。
【0097】マネージャプロセス23は、計算機20と
計算機21の間における負荷バランスを監視する。そし
て、この監視の結果、負荷の差が許容範囲を超えたと判
断した場合に、負荷の大きい計算機で動作する任意のオ
ブジェクト複合体を構成している転送オブジェクトに移
動命令を出力する。
【0098】活性化オブジェクト24は、計算機20に
常駐されており、この計算機20に移動される内部処理
オブジェクトの内容を受け取って活性化(レジューム)
する。
【0099】各オブジェクト複合体25〜28は、連携
動作することで例えばOSやアプリケーションソフトウ
ェアとしての機能を実現する。ここでは、例としてオブ
ジェクト複合体25はオブジェクト複合体26,27を
参照し、オブジェクト複合体26はオブジェクト複合体
25、28を参照し、オブジェクト複合体27はオブジ
ェクト複合体25、27を参照し、オブジェクト複合体
28はオブジェクト複合体26、27を参照する場合を
示している。
【0100】内部オブジェクト移動前における計算機2
1は、活性化オブジェクト29を常駐している。この活
性化オブジェクト29は、計算機21上で先述の活性化
オブジェクト24と同様に機能する。
【0101】以下において、各オブジェクト複合体25
〜28に関し、オブジェクト複合体28を例に挙げて詳
しく説明するが、他のオブジェクト25〜27の場合も
内部処理オブジェクトで実行される実体的な処理が異な
るのみで、他の動作はほぼ同様であるため説明を省略す
る。
【0102】オブジェクト複合体28は、内部処理オブ
ジェクト36と転送オブジェクト37とが互いに関係付
けされて構成されている。
【0103】オブジェクト複合体28は、外部(他のオ
ブジェクト複合体)からのメッセージの受け付け及び外
部へのメッセージの送出を全て転送オブジェクト37で
行う。
【0104】内部処理オブジェクト36は、先にも述べ
たように実体的な処理を実行し、メッセージのやり取り
は自己に関係付けされている転送オブジェクト37とし
か行わず、そのために自己に関係付けされている転送オ
ブジェクト37参照用のハンドル37hを備えている。
【0105】転送オブジェクト37は、参照対象となっ
ているオブジェクト複合体26、27を構成している転
送オブジェクト33、35参照用のハンドル33h、3
5hを有し、また自己に関係付けされている内部処理オ
ブジェクト36参照用のハンドル36hも有する。
【0106】また、この転送オブジェクト37は移動処
理を有しており、マネージャプロセス23から移動命令
を入力すると、自己に関係付けされている内部処理オブ
ジェクト36をシリアライズ(保存)する(サスペンド
(一時停止)し、シリアライズするとしてもよい)。そ
して、このシリアライズされた内容を、負荷の少ない計
算機上の活性化オブジェクトに引き渡す。
【0107】次に、図4に示す内部オブジェクト移動後
の計算機システム19の構成について説明する。
【0108】計算機21上の内部処理オブジェクト36
aは、移動前の内部処理オブジェクト365の移動後の
オブジェクトであり、活性化オブジェクト29が転送オ
ブジェクト37から受け取ったオブジェクト内容にした
がって活性化した結果により得られるものである。
【0109】この移動後の内部処理オブジェクト36a
は、移動前の内部処理オブジェクト36と同様の転送オ
ブジェクト37に関係付けされてオブジェクト複合体2
8aを構成する。
【0110】転送オブジェクト37は、移動前の内部処
理オブジェクト36参照用のハンドル36hを、移動後
の内部処理オブジェクト36ahで書き換える。
【0111】上記のような構成を有する計算機システム
19においては、計算機20、21間の負荷の差が許容
範囲を超えたために計算機20の負荷を計算機21に分
散させる場合に、計算機20上の内部処理オブジェクト
36の内容が計算機21の活性化オブジェクト29に受
け渡され活性化されて内部処理オブジェクト36aとな
る。また、この際に、この移動した内部処理オブジェク
ト36に関係付けされていた転送オブジェクト37のハ
ンドル36hが移動後の内部処理オブジェクト36a参
照用のハンドル36ahに書き換えられる。
【0112】他のオブジェクト30〜35に関しては、
内部処理オブジェクト36が移動しても、この移動した
内部処理オブジェクト36に関係付けされている転送オ
ブジェクト37が移動しないため、オブジェクト間の相
互接続関係は保持されたままとなる。
【0113】すなわち、上記の移動の際に書き換えられ
るのは、移動した内部処理オブジェクト36に関係付け
されている転送オブジェクト37の所定のハンドル36
hのみである。
【0114】以上説明したように、本実施の形態に係る
計算機システム19においては、計算機20、21間の
負荷調整、負荷分散が容易に実現できる。
【0115】また、オブジェクト移動時における処理の
変更が低減されるため、オブジェクト移動処理の負荷量
を低減させることができる。
【0116】(第4の実施の形態)本実施の形態におい
ては、第2の実施の形態で説明したオブジェクト構造体
で構成させるプログラムが動作する計算機システムにつ
いて説明する。
【0117】図5は、本実施の形態に係る計算機システ
ムにおける内部処理オブジェクト移動前の状態を示すブ
ロック図である。
【0118】また、図6は、本実施の形態に係る計算機
システムにおける内部処理オブジェクト移動後の状態を
示すブロック図である。
【0119】この図5に示す計算機システム38と上記
第3の実施の形態で説明した図3の計算機システム19
との相違点は、この計算機システムを制御するプログラ
ム(OS、アプリケーション等)を構成するオブジェク
ト複合体39〜42の性質にあり、他の性質は同様であ
るため同一の符号を付して説明を省略する。
【0120】本実施の形態に係る計算機システム38で
動作するプログラムは、先で述べたように第2の実施の
形態で説明したオブジェクト構造体を利用している。
【0121】この各オブジェクト複合体39〜42は、
連携動作して所定の機能を実現する。ここでは、例とし
てオブジェクト複合体39はオブジェクト複合体40、
41を参照し、オブジェクト複合体40はオブジェクト
複合体39、42を参照し、オブジェクト複合体41は
オブジェクト複合体39、42を参照し、オブジェクト
複合体42はオブジェクト複合体40、41を参照する
場合を示している。
【0122】各転送オブジェクト44、46、48、5
0は、自己に関係付けされている内部処理オブジェクト
43、45、47、49の移動処理を実行可能であり、
また外部から受け付けられるメッセージのみを自己の関
係付けされている内部処理オブジェクト43、45、4
7、49に中継する。したがって、各転送オブジェクト
44、46、48、50には、この転送オブジェクトが
関係付けされている内部処理オブジェクト43、45、
47、49へのハンドル43h、45h、47h、49
hが備えられている。
【0123】内部処理オブジェクト43、45、47、
49は、実体処理の実行に伴って送出されるメッセージ
を直接外部に送出するハンドルを保持する。すなわち、
各内部処理オブジェクト43、45、47、49は、参
照対象のオブジェクト複合体を構成する転送オブジェク
トにメッセージを直接送出するハンドルを保持してい
る。
【0124】そして、図6で示すように、例えば内部処
理オブジェクト49が移動して内部処理オブジェクト4
9aとなった場合には、この移動前の内部処理オブジェ
クト49と関係付けされていた転送オブジェクト50の
有するハンドル49hが、移動後の内部処理オブジェク
ト49a参照用のハンドル49ahに書き換えられる。
そして、このハンドル書き換え後の転送オブジェクト5
0と移動後の内部処理オブジェクト49aによってオブ
ジェクト複合体42aが構成される。
【0125】このようなプログラムの動作する計算機シ
ステム38においては、いずれかの内部処理オブジェク
トが移動しても、影響を受けるのはその移動した内部処
理オブジェクトに関係付けされている転送オブジェクト
のみでよい。
【0126】したがって、上記第3の実施の形態と同様
の作用効果を得ることができる。
【0127】また、この計算機システムで動作するプロ
グラムは、変更部分が少なくとよいため、通常のオブジ
ェクトにより構成されているプログラムから容易に生成
可能である。
【0128】(第5の実施の形態)本実施の形態におい
ては、上記第4の実施の形態に係る計算機システムの具
体例である給与計算帳票出力システムについて説明す
る。
【0129】図7は、本実施の形態に係る給与計算帳票
出力システムにおける内部処理オブジェクト移動前の状
態を示すブロック図である。
【0130】また、図8は、本実施の形態に係る計算機
システムにおける内部処理オブジェクト移動後の状態を
示すブロック図である。
【0131】なお、この図7、8において上記図5、6
と同一の部分については同一の符号を付してその説明を
省略する。
【0132】オブジェクトの移動前の給与計算帳票出力
システム51では、オブジェクト複合体52が各オブジ
ェクト複合体53〜55を参照する。以下、各オブジェ
クト複合体51〜55について詳しく説明する。
【0133】オブジェクト複合体52は、内部処理オブ
ジェクトとして給与計算処理を実行する給与計算処理オ
ブジェクト56と、この給与計算処理オブジェクト56
に関係付けされている転送オブジェクト57とから構成
される。
【0134】この給与計算処理オブジェクト56は、給
与計算処理実行に伴って各オブジェクト複合体53〜5
5の有する転送オブジェクト58〜60へメッセージを
送出するため、各転送オブジェクト58〜60参照用の
ハンドル58h〜60hを保持し、加えて自己に関係付
けされている転送オブジェクト57参照用のハンドル5
7hを保持する。
【0135】転送オブジェクト57は、受け付けたメッ
セージを自己に関係付けされている給与計算処理オブジ
ェクト56に転送する。また、マネージャプロセス23
から移動命令を入力すると、自己に関係付けされている
給与計算処理オブジェクト56の内容をシリアライズし
て活性化オブジェクト29に引き渡す。
【0136】オブジェクト複合体53は、内部処理オブ
ジェクトとして社員管理処理を実行する社員管理オブジ
ェクト61と、この社員管理オブジェクト61に関係付
けされている転送オブジェクト58とから構成される。
【0137】この社員管理オブジェクト61は、受け付
けたメッセージに基づく社員管理処理実行に伴ってオブ
ジェクト複合体52の有する転送オブジェクト57へメ
ッセージを送出するため、転送オブジェクト57参照用
のハンドル57hを保持し、加えて自己に関係付けされ
ている転送オブジェクト58参照用のハンドル58hを
保持する。
【0138】転送オブジェクト58は、自己に関係付け
されている社員管理オブジェクト61に受け付けたメッ
セージを転送するためのハンドル61hを有する。ま
た、この転送オブジェクト58は、移動命令を入力する
と、自己に関係付けされている社員管理オブジェクト6
1をサスペンドし、その内容をシリアライズして活性化
オブジェクトに引き渡す。
【0139】オブジェクト複合体54は、内部処理オブ
ジェクトとして出勤簿処理を実行する出勤簿オブジェク
ト62と、この出勤簿オブジェクト62に関係付けされ
ている転送オブジェクト59とから構成される。
【0140】この出勤簿オブジェクト62は、受け付け
たメッセージに基づいて出勤簿処理を実行し、その結果
であるリプライを送出する。なお、リプライは、メッセ
ージの逆方向に送出されるため、この図8、9では給与
計算オブジェクト56と出勤簿オブジェクト62の間を
双方向の矢印で示している。また、出勤簿オブジェクト
62は、自己に関係付けされている転送オブジェクト5
9参照用のハンドル59hを保持する。
【0141】転送オブジェクト59は、受け付けたメッ
セージを自己に関係付けされている出勤簿オブジェクト
62に転送するためのハンドル62hを有し、また中継
するメッセージに関する応答も中継する。
【0142】オブジェクト複合体55は、内部処理オブ
ジェクトとして印刷処理を実行するプリンタオブジェク
ト63と、このプリンタオブジェクト63に関係付けさ
れている転送オブジェクト60とから構成される。
【0143】プリンタオブジェクト63は、受け付けた
メッセージに基づいて印刷処理を実行し、この印刷処理
の正常又は異常を示すリプライを送出する。ここでは、
メッセージとリプライの関係を双方向の矢印で示してい
る。また、このプリンタオブジェクト63は、印刷処理
が異常な場合にエラーの発生した部分を指定するメッセ
ージをオブジェクト複合体52の有する転送オブジェク
ト57に送出するため、転送オブジェクト57参照用の
ハンドル57hを保持し、加えて自己に関係付けされて
いる転送オブジェクト60参照用のハンドル60hを保
持する。
【0144】転送オブジェクト60は、受け付けたメッ
セージを自己に関係付けされているプリンタオブジェク
ト63に転送するためのハンドル63hを有する。ま
た、この転送オブジェクト60は、移動命令を入力する
と、自己に関係付けされているプリンタオブジェクト6
3をサスペンドし、その内容をシリアライズして活性化
オブジェクトに引き渡す。
【0145】オブジェクトの移動後の給与計算帳票出力
システム51では、移動前のオブジェクト複合体52a
に変わって、オブジェクト複合体52aが動作する。
【0146】このオブジェクト複合体52aのうち、転
送オブジェクト57は、移動前とほぼ同じものである
が、移動後の給与計算処理オブジェクト56aに関係付
けされており、ハンドラがこの移動後の給与計算処理オ
ブジェクト56ah参照用のハンドラ56ahに書き換
えられている点が異なる。
【0147】移動後の給与計算処理オブジェクト56a
は、移動前の給与計算処理オブジェクト56と同様の内
容が活性化オブジェクト29によって活性化されたもの
である。
【0148】上記のようなプログラムを有する計算機シ
ステム51における動作の概略を以下に示す。
【0149】移動前の給与計算処理オブジェクト56に
よって給与計算処理が実行されると、社員番号順にID
と時給情報とを要求する旨の依頼メッセージ64が、ハ
ンドル58hを用いて送出される。この送出されたメッ
セージは、給与計算処理オブジェクト56から転送オブ
ジェクト58を中継して社員管理オブジェクト61に受
け付けられる。
【0150】依頼メッセージ64を受け付けた社員管理
オブジェクト61においては、要求にしたがい社員管理
ファイル65から順番に社員IDと時給情報との読み出
しがなされ、この読み出された情報が、メッセージ66
としてハンドル57hを用いて送出される(社員管理処
理)。この送出されたメッセージ66は、社員管理オブ
ジェクト61から転送オブジェクト57を中継して給与
計算処理オブジェクト56に受け付けられる。
【0151】メッセージ66を受け付けた給与計算処理
オブジェクト56においては、受け付けたメッセージ6
6に含まれている社員IDに対応する社員の勤務時間を
要求する旨の依頼メッセージ67が、ハンドル59hを
用いて送出される。この送出された依頼メッセージ67
は、給与計算処理オブジェクト56から転送オブジェク
ト59を中継して出勤簿オブジェクト62に受け付けら
れる。
【0152】依頼メッセージ67を受け付けた出勤簿オ
ブジェクト62においては、この依頼メッセージ67の
含む社員IDに対応する勤務時間情報が出勤簿ファイル
68から読み出され、この読み出された勤務時間情報が
リプライ69として返信される(出勤簿処理)。
【0153】リプライ69を受け付けた給与計算処理オ
ブジェクト56においては、リプライ69で示される勤
務時間情報と先に得た時給情報との積が社員ID毎に計
算され、この値が給与とされる。得られた給与は、社員
IDと共に印刷要求メッセージ70に含まれ、ハンドル
60hを用いて送出される。この送出された印刷要求メ
ッセージ70は、給与計算処理オブジェクト56から転
送オブジェクト60を中継してプリンタオブジェクト6
3に受け付けられる。
【0154】印刷要求メッセージ70を受け付けたプリ
ンタオブジェクト63においては、受け付けた印刷要求
メッセージ70の内容にしたがって印刷要求がプリンタ
71に送出され、印刷がなされる。
【0155】この印刷が正常になされた場合には、正常
信号がリプライ72として返信される。一方、印刷にエ
ラーが発生した場合には、印刷が異常となった社員ID
がメッセージ73としてハンドル57hを用いて送出さ
れ、異常信号がリプライ72として返信される(印刷処
理)。
【0156】送出されたメッセージ73は、プリンタオ
ブジェクト63から転送オブジェクト57を中継して給
料計算処理オブジェクト56に受け付けられる。また、
リプライ72は、印刷要求メッセージ70と逆の伝搬方
向で伝送される。
【0157】ここで、計算機20の負荷が高くなってき
たので、マネージャプロセス23によってオブジェクト
複合体52の転送オブジェクト57に移動命令が入力さ
れたとする。すると、この転送オブジェクト57によっ
て給与計算処理オブジェクト56がサスペンドされ、そ
の内容がシリアライズされ、活性化オブジェクト29に
送信される。
【0158】この活性化オブジェクト29では、受信し
た内容をレジーム機能により活性化し、処理が継続され
る。
【0159】以上説明したように、本実施の形態に係る
給与計算帳票出力システム51においては、各オブジェ
クト複合体52〜55の構成要素のうち、実体的な処理
を実行する内部処理オブジェクト56、61〜63を移
動可能とし、メッセージのやり取りを担当する転送オブ
ジェクト57〜60を固定的に配置する。
【0160】これにより、負荷の分散が容易に可能とな
り、移動時の書き換え処理を減少させることができる。
【0161】また、通常のプログラムを本実施の形態で
述べているオブジェクト複合体で構成されるプログラム
に容易に変更可能である。
【0162】(第6の実施の形態)本実施の形態におい
ては、上記第2実施の形態で説明したオブジェクト複合
体を自動的に生成するコンパイラについて説明する。
【0163】図9は、本実施の形態に係るコンパイラに
よる内部処理オブジェクトと転送オブジェクトの生成状
態を示す図である。
【0164】プログラム開発者は、従来と同じようにオ
ブジェクトを設計し、オリジナルのソースコード(バイ
ナリコードでもよい)74を生成する。この際、プログ
ラム開発者は、開発するオブジェクトが移動可能かどう
か、または開発するオブジェクトの参照相手が移動可能
かどうかを意識する必要はない。
【0165】ただし、ここでは、オリジナルのソースコ
ードで定義されるオブジェクトのクラスは、シリアライ
ズ機能を実装するためのシリアライザブルインタフェー
ス75を継承しており、さらに独立したスレッドとして
サスペンド、活性化を可能とするための機能を実装す
る。例えば、Javaでは、Runnableインタフェース7
6を継承することで、独立したスレッドとしてシリアラ
イズ、サスペンド、活性化が可能となる。
【0166】コンパイラ77は、ソースコード74をコ
ンパイルする際に、このソースコード74の内容を解析
機能78によって解析し、転送オブジェクト生成機能7
9によって生成される転送オブジェクト80と内部処理
オブジェクト生成機能81によって生成される内部処理
オブジェクト82とから構成されるオブジェクト複合体
を自動的に生成する。
【0167】まず、コンパイラ77による転送オブジェ
クト80の生成手法について説明する。
【0168】コンパイラ77は、ソースコード74にお
いてプログラム開発者によって定義されたクラスの名前
やメソッド(処理)の名前等を、コンパイル後に、転送
オブジェクト80の定義に適用し、これにより外部との
接続関係を確保する。また、コンパイラ77は、コンパ
イル時に、ソースコード74のメソッド名を抽出し、こ
の抽出されたメソッド名を転送オブジェクト80の有す
るメソッド名として適用するが、この際にメソッドの処
理内容を内部処理オブジェクト82の有するメソッドを
コールするものに変更する。これにより、外部からのメ
ソッドのコールにしたがって、転送オブジェクト80が
内部処理オブジェクト82のメソッドをコールすること
が可能となり、メッセージの中継がなされる。
【0169】また、コンパイラ77は、コンパイル時
に、外部からの移動命令を受け付けた場合に、内部処理
オブジェクト82をサスペンドし、このサスペンドした
内容を別計算機の分散オブジェクト実行環境に送信する
処理を、転送オブジェクト80に加える。なお、この処
理は、分散オブジェクト環境に依存するものとする。
【0170】なお、図9では図示していないが、計算機
システムにはオブジェクトの位置等を管理する例えばO
RB(Object Request Broaker)等の機能が備えられて
いる。
【0171】コンパイラ77は、移動後の内部処理オブ
ジェクトの位置を上記のORB機能により入手し、移動
後の内部処理オブジェクト参照用のハンドルをこの内容
を用いて書き換えるための処理を、コンパイル時に転送
オブジェクト80に加える。
【0172】次に、コンパイラ77による内部処理オブ
ジェクト82の生成手法について説明する。
【0173】内部処理オブジェクト82の生成に関して
は、基本的に、ソースコード74で定義されているオリ
ジナルのオブジェクトに少しの変更を加えるのみでよ
い。
【0174】まず、コンパイラ77は、ソースコード7
4で定義されているクラス名を変更して内部処理オブジ
ェクト82のクラス名に用いる。この理由としては、先
で述べたように、外部から参照されるのは転送オブジェ
クト80であり、この転送オブジェクト80の定義にソ
ースコード74の定義が利用されるためである。
【0175】このように、クラス名を変更することで、
内部処理オブジェクト82を外部から直接参照されない
ように生成することが可能となる。
【0176】コンパイラ77は、内部処理オブジェクト
82を分散オブジェクト環境で利用可能とするために、
サーバオブジェクトとして生成する。
【0177】また、コンパイラ77は、内部処理オブジ
ェクト82に、オリジナルのオブジェクトと同様にシリ
アライズ機能、サスペンド機能、レジューム機能を実装
させる。これらの機能の具体的な実装手段は、内部処理
オブジェクト82を定義するクラスが、オリジナルのオ
ブジェクトを定義するクラスと同様に、シリアライズイ
ンタフェース75とRunnableインタフェース76を実装
すればよい。
【0178】上記の機能を有するコンパイラ77によっ
てソースコード74からどのような転送オブジェクト8
0と内部処理オブジェクト82が生成されるかについて
図9の内容に基づいて説明する。
【0179】従来のオブジェクトのソースコード74の
クラス名は、「sample」であるとし、この「sample」ク
ラスは「Interface Runnable」インタフェースと「Seri
arizable」インタフェースを実装している。なお、「Ru
nnable」インタフェースは生成されたオブジェクトを独
立動作可能とするものであり、このインタフェースを実
装することでオブジェクトのサスペンド、レジームが可
能となる。また「Seriarizable」インタフェースはオブ
ジェクトの内容を保存可能とするものである。
【0180】また、この従来のオブジェクトのソースコ
ード74は、パブリックメソッドとして、ファイルを開
く処理である「open()」、開いたファイルの内容を読み
出す処理である「read()」、ファイルへの書き込みを行
う処理である「write()」、独立して動作を行うスレッ
ドメソッド「run()」を含んでいる。
【0181】コンパイル後に生成される転送オブジェク
ト80は、ソースコード80で利用されている「sampl
e」クラスによるものである。
【0182】この転送オブジェクト80は、それぞれ処
理名「open()」、「read()」、「write()」のパブリッ
クメソッドを含んでいるが、これらの処理内容はそれぞ
れ「open_core()をコール」、「read_core()をコー
ル」、「write_core()をコール」に変更されている。す
なわち、転送オブジェクト80の処理名「open()」、
「read()」、「write()」がコールされると、この転送
オブジェクト80は、それぞれ「open_core()」「read_
core()」、「write_core()」をコールする。
【0183】また、この転送オブジェクト80には、内
部処理オブジェクト82に対する移動処理「move()」が
追加されている。
【0184】コンパイル後に生成される内部処理オブジ
ェクト82は、クラス名「sample_core」クラスによる
ものであり、この「sample_core」クラスにも「Runnabl
e」インタフェースと「Seriarizable」インタフェース
とが実装されている。
【0185】この内部処理オブジェクトは、処理名「op
en_core()」、「read_core()」、「write_core()」のパ
ブリックメソッドを含んでいる。これらのパブリックメ
ソッドは転送オブジェクト80からのみコール可能であ
る。
【0186】この内部処理オブジェクト82の有する
「open_core()」メソッドの処理内容は、ソースコード
74における「open()」メソッドと同様の処理内容であ
り、ファイルを開く処理を行う。また、「read_cor
e()」メソッドの処理内容は、ソースコード74におけ
る「read()」メソッドと同様の処理内容であり、ファイ
ルの内容を読み出す処理を行う。さらに、「write_core
()」メソッドの処理内容は、ソースコード74における
「write()」メソッドと同様の処理内容であり、ファイ
ルへの書き込みを行う。
【0187】加えて、この内部処理オブジェクト82
は、スレッドメソッド「run()」を含んでいる。
【0188】以上のように、本実施の形態に係るコンパ
イラ77を利用すると、従来の形式で記述されたオブジ
ェクトのソースコード74に基づいて、転送オブジェク
ト80と内部処理オブジェクト82とから構成されるオ
ブジェクト複合体が自動的に生成される。
【0189】したがって、分散オブジェクト環境を実現
する計算機システムを容易に構築することができる。
【0190】また、計算機間の負荷分散を容易に実現す
ることができる。
【0191】なお、本実施の形態においては外部からの
メッセージのみを転送オブジェクトで中継するオブジェ
クト複合体を生成するコンパイラについて説明している
が、内部処理オブジェクトから外部に送出されるメッセ
ージもこの転送オブジェクトで中継されるとしてもよ
い。この場合には、上記に加えて、ソースコードで示さ
れているクラスが保持する外部参照用のハンドルを転送
オブジェクトに保持させ、この内部処理オブジェクトの
外部参照用ハンドルの内容を転送オブジェクトの有する
ハンドルにアクセスするものに変更する。そして、転送
オブジェクトに保持させた外部参照用ハンドルの内容
を、内部処理オブジェクトから受け付けたメッセージを
外部へ送出するメッセージに変更する処理に変更する。
【0192】
【発明の効果】以上詳記したように本発明では、従来の
オブジェクトと同様の機能を有するオブジェクト複合体
によりプログラムが構成される。
【0193】なお、このオブジェクト複合体の有する内
部処理オブジェクトは自由に移動可能であり実体的な処
理を実行する。また、転送オブジェクトは固定的に配置
されるオブジェクトであって外部から内部処理オブジェ
クトへのメッセージを中継する。
【0194】このようなオブジェクト複合体において
は、内部処理オブジェクトが移動した場合であっても、
外部からのメッセージが固定配置されている転送オブジ
ェクトで受け付けられるため、当該メッセージ送出側の
処理を変更する必要がない。
【0195】ゆえに、動的に移動する部分が作成される
プログラムに依存せず、オブジェクトの部品化、再利用
化が容易となる。
【0196】また、この内部処理オブジェクトと転送オ
ブジェクトによってプログラムを構築すれば、このプロ
グラム開発者が動的移動時のオブジェクト間の相互接続
性を保証するように開発を行う必要がないため、プログ
ラム開発時の煩雑で複雑な処理を簡素化させることがで
きる。さらに、オブジェクトの動的移動時におけるオブ
ジェクト間相互接続性を確保することが確実にできる。
【0197】また、プログラム実行に伴って発生する負
荷を容易に分散させることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るオブジェクト
複合体を示す構成図。
【図2】本発明の第2の実施の形態に係るオブジェクト
複合体を示す構成図。
【図3】本発明の第3の実施の形態に係る計算機システ
ムにおける内部処理オブジェクト移動前の状態を示すブ
ロック図。
【図4】同実施の形態に係る計算機システムにおける内
部処理オブジェクト移動後の状態を示すブロック図。
【図5】本発明の第4の実施の形態に係る計算機システ
ムにおける内部処理オブジェクト移動前の状態を示すブ
ロック図。
【図6】同実施の形態に係る計算機システムにおける内
部処理オブジェクト移動後の状態を示すブロック図。
【図7】本発明の第5の実施の形態に係る給与計算帳票
出力システムにおける内部処理オブジェクト移動前の状
態を示すブロック図。
【図8】同実施の形態に係る給与計算帳票出力システム
における内部処理オブジェクト移動後の状態を示すブロ
ック図。
【図9】本発明の第6の実施の形態に係るコンパイラに
よる内部処理オブジェクトと転送オブジェクトの生成状
態を示す図。
【図10】従来の分散オブジェクト環境を実現する計算
機システムの状態を示す図。
【符号の説明】
1、19、38…計算機システム 2、22…ネットワーク 3、4、20、21…計算機 5〜8…従来のオブジェクト 5h〜8h、8ah…ハンドル 9、9a…オブジェクト複合体 10、10a、15、15a…内部処理オブジェクト 11、16…転送オブジェクト 10h〜12h、10ah、15h〜17h、15ah
…ハンドル 12、17…外部 13、18…メッセージ転送処理 23…マネージャプロセス 24、29…活性化オブジェクト 25〜28、28a…オブジェクト複合体 30、32、34、36、36a…内部処理オブジェク
ト 31、33、35、37…転送オブジェクト 30h〜37h、36ah…ハンドル 39〜42、42a…オブジェクト複合体 43、45、47、49、49a…内部処理オブジェク
ト 44、46、48、50…転送オブジェクト 43h〜50h、49ah…ハンドル 51…給与計算帳票出力システム 52〜55…オブジェクト複合体 56、56a…給与計算処理オブジェクト 57〜60…転送オブジェクト 61…社員管理オブジェクト 62…出勤簿オブジェクト 63…プリンタオブジェクト 56h〜63h、56ah…ハンドル 65…社員管理ファイル 68…出勤簿ファイル 71…プリンタ 74…従来のオブジェクトのソースコード 77…コンパイラ 80…転送オブジェクト 82…内部処理オブジェクト

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数の計算機がネットワークを介して接
    続された計算機システムを制御するプログラムであっ
    て、 メッセージに基づいて実体的な処理を実行する動的配置
    可能な少なくとも一つの内部処理オブジェクトと、 前記少なくとも一つの内部処理オブジェクトに関係付け
    されており、外部からのメッセージを受け付けて自己に
    関係付けされている内部処理オブジェクトに転送するオ
    ブジェクトであって固定的に配置される少なくとも一つ
    の転送オブジェクトとから構成されるプログラムを記憶
    したコンピュータ読み取り可能な記憶媒体。
  2. 【請求項2】 請求項1記載のプログラムであって、 前記内部処理オブジェクトは、外部との間でやり取りさ
    れるメッセージの全てを、自己に関係付けされている転
    送オブジェクトを介してやり取りし、 前記転送オブジェクトは、自己に関係付けされている内
    部処理オブジェクトと外部との間でやり取りされるメッ
    セージの全てを受け付けて転送することを特徴とするプ
    ログラムを記憶したコンピュータ読み取り可能な記憶媒
    体。
  3. 【請求項3】 請求項1記載のプログラムであって、 前記内部処理オブジェクトは、外部との間でやり取りさ
    れるメッセージのうち外部から受け付けるメッセージの
    みを、自己に関係付けされている転送オブジェクトを介
    して受け付け、 前記転送オブジェクトは、外部との間でやり取りされる
    メッセージのうち外部から自己に関係付けされている内
    部処理オブジェクトへのメッセージのみを受け付けて転
    送することを特徴とするプログラムを記憶したコンピュ
    ータ読み取り可能な記憶媒体。
  4. 【請求項4】 請求項1乃至請求項3のいずれか1項に
    記載したプログラムであって、 外部と前記内部処理オブジェクトとの間でやり取りされ
    るメッセージの逆の方向で、当該メッセージに関する応
    答がやり取りされることを特徴とするプログラムを記憶
    したコンピュータ読み取り可能な記憶媒体。
  5. 【請求項5】 請求項1乃至請求項4のいずれか1項に
    記載したプログラムが動作するシステムであり複数の計
    算機がネットワークを介して接続された計算機システム
    を制御するプログラムであって、 前記複数の計算機の動作負荷の偏りを検出させる監視機
    能と、 前記監視機能によって動作負荷の偏りが検出された場合
    に、動作負荷の大きい計算機に配置されているいずれか
    の内部処理オブジェクトを、動作負荷の小さい計算機に
    再配置して動作させる再配置機能とを実現させるための
    プログラムを記憶したコンピュータ読み取り可能な記憶
    媒体。
  6. 【請求項6】 コンピュータに、 オブジェクトの内容を読み込んで解析させる解析機能
    と、 メッセージに基づいて実体的な処理を実行する動的配置
    可能な内部処理オブジェクトを、前記解析機能による解
    析結果に基づいて生成させる内部処理オブジェクト生成
    機能と、 前記内部処理オブジェクトに関係付けされており、外部
    からのメッセージを受け付けて自己に関係付けされてい
    る内部処理オブジェクトに転送するオブジェクトであっ
    て固定的に配置される転送オブジェクトを、前記解析機
    能による解析結果に基づいて生成させる転送オブジェク
    ト生成機能とを実現させるためのプログラムを記憶した
    コンピュータ読み取り可能な記憶媒体。
  7. 【請求項7】 請求項6記載のプログラムであって、 前記内部処理オブジェクト生成機能は、外部との間でや
    り取りされるメッセージの全てを、自己に関係付けされ
    ている転送オブジェクトを介してやり取りする内部処理
    オブジェクトを生成させ、 前記転送オブジェクト生成機能は、自己に関係付けされ
    ている内部処理オブジェクトと外部との間でやり取りさ
    れるメッセージの全てを受け付けて転送する転送オブジ
    ェクトを生成させることを特徴とするプログラムを記憶
    したコンピュータ読み取り可能な記憶媒体。
  8. 【請求項8】 請求項6記載のプログラムであって、 前記内部処理オブジェクト生成機能は、外部との間でや
    り取りされるメッセージのうち外部から受け付けるメッ
    セージのみを、自己に関係付けされている転送オブジェ
    クトを介して受け付ける内部処理オブジェクトを生成さ
    せ、 前記転送オブジェクト生成機能は、外部との間でやり取
    りされるメッセージのうち外部から自己に関係付けされ
    ている内部処理オブジェクトへのメッセージのみを受け
    付けて転送する転送オブジェクトを生成させることを特
    徴とするプログラムを記憶したコンピュータ読み取り可
    能な記憶媒体。
  9. 【請求項9】 請求項6乃至請求項8のいずれか1項に
    記載したプログラムであって、 前記内部処理オブジェクト生成機能は、受け付けたメッ
    セージの送出元に、当該メッセージに関する応答を送出
    する内部処理オブジェクトを生成させ、 前記転送オブジェクト生成機能は、受け付けたメッセー
    ジの送信元に、当該メッセージに関する応答を送出する
    転送オブジェクトを生成させることを特徴とするプログ
    ラムを記憶したコンピュータ読み取り可能な記憶媒体。
  10. 【請求項10】 複数の計算機がネットワークを介して
    接続された計算機システムであって、 メッセージに基づいて実体的な処理を実行する動的配置
    可能な少なくとも一つの内部処理オブジェクトと、 前記少なくとも一つの内部処理オブジェクトに関係付け
    されており、外部からのメッセージを受け付けて自己に
    関係付けされている内部処理オブジェクトに転送するオ
    ブジェクトであって固定的に配置される少なくとも一つ
    の転送オブジェクトと、 前記複数の計算機の動作負荷の偏りを検出する監視手段
    と、 前記監視手段によって動作負荷の偏りが検出された場合
    に、動作負荷の大きい計算機に配置されているいずれか
    の内部処理オブジェクトを、動作負荷の小さい計算機に
    再配置して動作させる再配置手段とを具備したことを特
    徴とする計算機システム。
JP11062063A 1999-03-09 1999-03-09 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム Pending JP2000259581A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11062063A JP2000259581A (ja) 1999-03-09 1999-03-09 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11062063A JP2000259581A (ja) 1999-03-09 1999-03-09 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム

Publications (1)

Publication Number Publication Date
JP2000259581A true JP2000259581A (ja) 2000-09-22

Family

ID=13189295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11062063A Pending JP2000259581A (ja) 1999-03-09 1999-03-09 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム

Country Status (1)

Country Link
JP (1) JP2000259581A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003016044A (ja) * 2001-06-29 2003-01-17 Olympus Optical Co Ltd 負荷分散システム及び負荷分散方法及びプログラム
JP2007519110A (ja) * 2004-01-21 2007-07-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 可動オブジェクトを有するグリッド対応仮想マシンのための方法およびシステム
JP2010272076A (ja) * 2009-05-25 2010-12-02 Toshiba Corp マルチプロセッサシステム
JP2016522946A (ja) * 2013-05-20 2016-08-04 パックサイズ,エルエルシー ローカルまたは分散型コンピュータ・システムにおける柔軟なノード構成方法およびシステム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003016044A (ja) * 2001-06-29 2003-01-17 Olympus Optical Co Ltd 負荷分散システム及び負荷分散方法及びプログラム
JP2007519110A (ja) * 2004-01-21 2007-07-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 可動オブジェクトを有するグリッド対応仮想マシンのための方法およびシステム
JP2010272076A (ja) * 2009-05-25 2010-12-02 Toshiba Corp マルチプロセッサシステム
JP2016522946A (ja) * 2013-05-20 2016-08-04 パックサイズ,エルエルシー ローカルまたは分散型コンピュータ・システムにおける柔軟なノード構成方法およびシステム
US10491687B2 (en) 2013-05-20 2019-11-26 Packsize Llc Method and system for flexible node composition on local or distributed computer systems

Similar Documents

Publication Publication Date Title
US6496871B1 (en) Distributed agent software system and method having enhanced process mobility and communication in a computer network
JP4837660B2 (ja) ランタイムシステムにおけるオブジェクトを共有するためのプログラム、方法、装置
US7707583B2 (en) Robust sharing of runtime systems
JP4791461B2 (ja) ランタイムシステムにおけるオブジェクトを共有するためのプログラム、方法、装置
US10620988B2 (en) Distributed computing architecture
US6941561B1 (en) Method and apparatus for remotely running objects using data streams and/or complex parameters
GB2272085A (en) Data processing system and operating system.
JPH04229357A (ja) 異種ネットワーク環境における適用業務プログラムの統合システム
JP2007534063A (ja) オブジェクトの初期化を伴う改良型コンピュータアーキテクチャ
US6345311B1 (en) Method and system of dynamically moving objects between heterogeneous execution environments
US8266201B2 (en) System and method for distributing processing of a single-process application having first and second objects in a network having local and remote processes
JP2000259581A (ja) 計算機システムの制御プログラム及びオブジェクト生成プログラムを記憶したコンピュータ読み取り可能な記憶媒体並びに計算機システム
Zozulya et al. Algorithmization of the software testing system based on finite automata.
JPH09330243A (ja) 計算機システム
Back et al. Time-stamp generation for optimistic parallel computing
Sloman et al. The Conic toolkit for building distributed systems
WO2023081634A1 (en) Method of creating self-assembling, transient analytic and learning agents in a message-driven architecture
Zigman et al. dJVM-A distributed JVM on a Cluster
Bor Effective interprocess communication (IPC) in a real-time transputer network
Behr et al. A distributed abstract object machine for the office
Humphris Integrating Ada into a distributed systems environment
Damonte et al. Project 2: Specification
Weyns et al. Run-time Repartitioning of Distributed Java Applications
King The HELIOS Distributed Operating System
Silberman Software portability: a case of the multi-backended database system.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060303

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080527