(57)【要約】【課題】オーバーヘッドの大きなオブジェクトの実体への操作を最小限にする。【解決手段】オブジェクト生成、オブジェクトの内部状態の状態遷移が発生すると、オブジェクト状態保持装置４０がオブジェクト状態管理テーブル５０を更新する。この状態遷移は、イベント転送装置３０にイベントとしてオブジェクト状態再現装置１０に通知される。オブジェクト状態再現装置１０はイベントを受信すると、ヒープ２０上にイベントに関連するオブジェクト２１を再現し、そのオブジェクト２１からのイベントとしてアプリケーション６０に通知する。その後、アプリケーション６０はオブジェクト２１のメソッドを実行する。そのメソッドの実行にオブジェクト２１が保持する情報で十分な場合は、オブジェクト２１がそのままメソッドを実行し、不十分な場合は、オブジェクト状態保持装置４０まで要求を転送し、オブジェクト状態保持装置４０にて要求が処理される。【選択図】      図１
2004287944.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のオブジェクトを蓄積するヒープと、前記オブジェクトを操作するアプリケーションを含む情報処理システムにおいて、
オブジェクトの生成、オブジェクトの内部状態の状態遷移が発生すると、オブジェクト状態管理テーブルを更新するとともに、イベント通知時に、状態遷移の情報から前記ヒープ内にオブジェクトを再現し、状態遷移の情報を前記アプリケーションに通知するオブジェクト要求転送最小化方法。
【請求項２】
前記オブジェクト状態管理テーブルからイベントに関連するオブジェクトに関連する情報を取得し、関連するオブジェクトも前記ヒープ内に再現する、請求項１に記載の方法。
【請求項３】
１つまたは複数のオブジェクトを蓄積するヒープと、
イベントの通知を受けると、メソッドを実行するアプリケーションと、
オブジェクトの状態を管理するオブジェクト管理テーブルと、
イベントを転送するイベント転送装置と、
前記オブジェクトの内部状態の状態遷移が発生すると、前記オブジェクト状態管理テーブルを更新し、該状態遷移をイベントとして前記イベント転送装置によって転送するオブジェクト状態保持装置と、
前記イベント転送装置から前記イベントが転送されてくると、前記ヒープ上に該イベントに関連するオブジェクトを再現し、該オブジェクトからのイベントとして前記アプリケーションに通知するオブジェクト状態再現装置を有する情報処理システム。
【請求項４】
前記オブジェクト状態保持装置は、状態遷移したオブジェクトに関連する情報を前記オブジェクト状態管理テーブルから取得し、該情報を前記オブジェクト状態再現装置に転送し、前記オブジェクト状態再現装置は該情報から前記ヒープ内にオブジェクトを再現する、請求項３に記載の情報処理システム。
【請求項５】
請求項３または４に記載の情報処理システムの機能をコンピュータで実行するためのプログラム。
【請求項６】
請求項５に記載のプログラムを記録した、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はオブジェクト状態再現装置と、１つまたは複数のオブジェクトを蓄積するヒープと、イベント転送装置と、オブジェクト状態保持装置と、オブジェクト状態管理テーブルからなる情報処理システムに関し、特に、オブジェクトの実体へのアクセスを最小化する方法に関する。
【０００２】
【従来の技術】
オブジェクトとそれを操作するアプリケーションが存在するシステムでは、通常、アプリケーションが直接、オブジェクトの実体そのものにメソッドを発行することにより、オブジェクト内部の状態を取得したり、オブジェクトに何らかの行為を行わせていた（非特許文献１）。
【０００３】
【非特許文献１】
「オブジェクト指向における再利用のためのデザインパターン」
ＩＳＢＮ４―７９７３―１１１２―６  ｐｐ．２２１〜２３２
【０００４】
【発明が解決しようとする課題】
この手法では、アプリケーションとオブジェクトの実体が異なるホストにある場合など、アプリケーションとオブジェクト間のインタラクションに大きなオーバーヘッドがかかる状況では、システム全体の動作に大きなオーバーヘッドが発生していた。また、アプリケーションから大きなオーバーヘッドがかからないところにそのオブジェクトに対応したプロキシオブジェクトを生成し、そのプロキシオブジェクトがオブジェクトの実体の情報をキャッシュすることにより、実体へのアクセスを低減していたが、従来は、一度読まれた情報のみをキャッシュしていたため、更新された新しい情報を取得する場合は、オーバーヘッドは変わらず、問題となっていた。
【０００５】
本発明の目的は、上記の問題を解決し、オーバーヘッドの大きなオブジェクトの実体への操作を最小限にするオブジェクト要求転送最小化方法、情報処理システム、プログラム、および記録媒体を提供することにある。
【０００６】
【課題を解決するための手段】
本発明のオブジェクト要求転送最小化方法は、オブジェクトの生成、オブジェクトの内部状態の状態遷移が発生すると、オブジェクト状態管理テーブルを更新するとともに、イベント通知時に、状態遷移の情報からヒープ内にオブジェクトを再現し、状態遷移の情報をアプリケーションに通知する。
【０００７】
本発明は、オブジェクトとそれを操作するアプリケーションが存在するシステムにおいて、オブジェクトの状態が遷移した場合に、アプリケーションからのオブジェクトのメソッドの呼び出し以前に、状態遷移後のオブジェクト状態を予め再現しておくことにより、イベント通知後に、そのオブジェクトに対するメソッドの呼出しの一部に関して、オブジェクトの実体まで問合せが行くことなく、再現されたオブジェクトのみで対応可能となるため、オブジェクト状態管理テーブルとオブジェクト状態再現装置間で転送される情報量および頻度を最小化できる。
【０００８】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
【０００９】
図１は本発明の一実施形態の情報処理システムの構成図である。
【００１０】
本情報処理システムは、オブジェクト状態再現装置１０とヒープ２０とイベント転送装置３０とオブジェクト状態保持装置４０とオブジェクト状態管理テーブル５０から構成される。
【００１１】
ヒープ２０はオブジェクト２１から構成される。オブジェクト状態管理テーブル５０は、各オブジェクト２１の実体の状態（オブジェクトＩＤ、状態ＩＤ、アドレス、リンクオブジェクト）を保持している。オブジェクト状態保持装置４０は外部的要因によりオブジェクト生成、オブジェクトの内部状態の状態遷移が発生すると、オブジェクト状態管理テーブル５０を更新し、この状態遷移をイベントとしてイベント転送装置３０によりオブジェクト状態再現装置１０に通知する。オブジェクト状態再現装置１０はイベントを受信すると、ヒープ２０上にイベントに関連するオブジェクト２１を再現し、そのオブジェクト２１からのイベントとしてアプリケーション６０に通知する。その後、アプリケーション６０はオブジェクト２１のメソッドを実行する。そのメソッドの実行にオブジェクト２１が保持する情報で十分な場合は、オブジェクト２１がそのままメソッドを実行し、不十分な場合は、オブジェクト状態保持装置４０まで要求を転送し、オブジェクト状態保持装置４０にて要求が処理される。
【００１２】
次に、本実施形態におけるイベント通知の手順を図２により説明する。
【００１３】
ステップ１０１に、外部要因によりオブジェクトの状態が遷移すると、オブジェクト状態保持装置４０がオブジェクト状態管理テーブル５０を更新する。さらに、オブジェクト状態保持装置４０は、その状態遷移をイベントとし、オブジェクト状態管理テーブル５０から関連する情報を取得する。ステップ１０２に、オブジェクト状態保持装置４０は、状態遷移の情報および関連するオブジェクトの情報をイベントとしてイベント転送装置３０に通知すると、イベント転送装置３０がオブジェクト状態再現装置１０にそのイベントを通知する。ステップ１０３に、オブジェクト状態再現装置１０がイベントを受信すると、イベントの情報である、状態遷移の情報および関連するオブジェクトの情報から、ヒープ２０内にオブジェクト２１を再現する。ステップ１０４に、オブジェクト状態再現装置１０は、状態遷移の情報をアプリケーション６０に通知する。ステップ１０５に、アプリケーション６０は、オブジェクト２１のメソッドを発行する。ステップ１０６に、オブジェクト２１は発行されたメソッドが自分の保持する情報で十分かどうかを判定する。十分な場合は、ステップ１０７にメソッドを実行する。不十分な場合、ステップ１０８にオブジェクト状態保持装置４０に要求（どのメソッドが実行されたか）を転送する。ステップ１０９に、オブジェクト状態保持装置４０にて要求が処理される。
【００１４】
次に、イベント受信時の手順を具体例により説明する。
【００１５】
この実施形態の初期状態は、オブジェクトが、コールＡ、コネクションＡ１、コネクションＡ２の３つがあり、それぞれの内部状態が、「接続」、「ルーティング中」「アイドル」となっている。アプリケーション６０は、イベントの通知を受けるためのインターフェイスを保持している。
【００１６】
外部装置（不図示）から、コネクションＡ２の内部状態を「アイドル」から「呼出し中」に状態遷移させる信号をオブジェクト状態保持装置４０が受ける。ステップ１０１に、オブジェクト状態保持装置４０がコネクションＡ２の遷移後の内部状態である「呼出し中」をオブジェクト状態管理テーブル５０に保存する。オブジェクト状態保持装置４０が、コネクションＡ２のオブジェクトＩＤ（オブジェクトＩＤは、型ごとに割り振られる）と「呼出し中」の状態ＩＤをイベントとしてイベント転送装置３０に通知する。オブジェクト状態保持装置４０は、オブジェクト状態管理テーブル５０を読み、コネクションＡ２のリンクオブジェクトであるコールＡとコネクションＡ１のオブジェクトＩＤ、状態ＩＤとアドレス情報、およびコネクションＡ２のアドレス情報をイベントに付与する。ステップ１０２に、このイベントはイベント転送装置３０により、ネットワークを経由してオブジェクト状態再現装置１０に転送される。ステップ１０３に、オブジェクト状態再現装置１０が、受け取ったイベントに含まれる情報を元に、ヒープ２０上にコールＡ、コネクションＡ１、コネクションＡ２のオブジェクトＩＤに対応した型でオブジェクトを生成し、イベントに付与された情報をそれぞれに設定する。ステップ１０４に、オブジェクト状態再現装置１０はアプリケーション６０にイベントとステップ１０３で生成したヒープ２０上のオブジェクト２１のリファレンス（保存場所）を通知する。その後、ステップ１０５に、アプリケーション６０はオブジェクト２１のメソッドを随時呼び出すことが可能である。
【００１７】
次に、アプリケーション６０がオブジェクト２１に対しメソッドを実行する場合の手順を説明する。
【００１８】
ステップ１０５に、メソッドが呼び出されたとき、ステップ１０６にてイベントに付与した情報で十分な値を返却することが可能、かつ情報の更新が発生しないメソッドはステップ１０７にヒープ２０上のオブジェクト２１が直接処理し、値を返却する。また、例えば、ルーティング先アドレスの変更など、オブジェクト状態を更新させるようなメソッドが実行された場合は、オブジェクト２１は、ステップ１０８にそのメソッドの種類および引数をオブジェクト状態保持装置４０に通知する。ステップ１０９に、オブジェクト状態保持装置４０にて、ルーティング先の変更など、オブジェクト状態管理テーブル５０への操作が行われ、結果がオブジェクト２１まで返却される。オブジェクト２１が結果をアプリケーション６０に通知する。
【００１９】
なお、本発明は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【００２０】
【発明の効果】
以上説明したように、本発明によれば、オブジェクトからイベントが発行され、そのイベントを受けてアプリケーションが動作するモデルにおいて、アプリケーションからオブジェクトの実体への通信にオーバーヘッドが大きい場合に、そのオーバヘッドを最小化することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態の情報処理システムの構成図である。
【図２】図１の実施形態におけるイベント通知の処理を示すフローチャートである。
【符号の説明】
１０    オブジェクト状態再現装置
２０    ヒープ
２１    オブジェクト
３０    イベント転送装置
４０    オブジェクト状態保持装置
５０    オブジェクト状態管理テーブル
６０    アプリケーション
１０１〜１０９    ステップ
【図１】
2004287944.tif 000003
【図２】
2004287944.tif 000004