(57)【要約】【課題】効率的なキャッシュ管理を行うことを目的とする。【解決手段】オブジェクトからの問い合わせを受け、キャッシュ保持手段に、問い合わせに係るオブジェクトに係る情報が登録されていない場合、問い合わせに係るオブジェクトのオブジェクト名を用いてネームサービス装置に問い合わせを行い、問い合わせ結果として受け取ったオブジェクト名、及びオブジェクト識別情報をキャッシュ保持手段に登録すると共に、オブジェクト名に基づいて、被参照コンポーネント保持手段より取得した参照オブジェクト数を用いて、オブジェクトの残参照回数の初期値をキャッシュ保持手段に登録し、オブジェクト識別情報を問い合わせ元のオブジェクトに通知することによって上記課題を解決する。【選択図】図２
2007213235.tif 000002
【特許請求の範囲】
【請求項１】
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置であって、
コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、
コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、
を有し、
前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とするネームサービスキャッシュ装置。
【請求項２】
前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていた場合、前記問い合わせに係るコンポーネントオブジェクトの前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知すると共に、前記問い合わせに係るコンポーネントオブジェクトの残参照回数を１、デクリメントすることを特徴とする請求項１に記載のネームサービスキャッシュ装置。
【請求項３】
前記問い合わせ対応手段は、前記問い合わせに係るコンポーネントオブジェクトの残参照回数を１、デクリメントした結果、前記残参照回数が０になった場合、前記キャッシュ保持手段に登録されている前記問い合わせに係るコンポーネントオブジェクトに係る情報を削除することを特徴とする請求項２に記載のネームサービスキャッシュ装置。
【請求項４】
前記問い合わせ対応手段は、コンポーネントオブジェクトからの、前記ネームサービス装置への登録通知に応じた処理も更に行い、
前記問い合わせ手段は、コンポーネントオブジェクトからの前記登録通知を受け、前記コンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録することを特徴とする請求項１乃至３の何れか１項に記載のネームサービスキャッシュ装置。
【請求項５】
ネームサービスキャッシュ装置内のプロセス、及びプロセスに含まれるコンポーネントオブジェクトの起動を管理するライフサイクル管理手段を更に有し、
前記ライフサイクル管理手段は、前記キャッシュ保持手段に係るメモリ使用状況を確認し、前記メモリ使用状況が予め定められた閾値以上の場合は、前記メモリ使用情報が前記閾値より小さくなるまで前記プロセス、及び前記プロセスに含まれるコンポーネントオブジェクトを起動しないことを特徴とする請求項１乃至４の何れか１項に記載のネームサービスキャッシュ装置。
【請求項６】
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置におけるネームサービスキャッシュ方法であって、
前記ネームサービス装置は、
コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、
コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、
コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、
を有し、
前記問い合わせ対応手段が、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とするネームサービスキャッシュ方法。
【請求項７】
請求項６に記載のネームサービスキャッシュ方法をコンピュータに実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネームサービスキャッシュ装置、及びネームサービスキャッシュ方法に関する。
【背景技術】
【０００２】
従来、一般的なネットワーク上の分散したコンポーネントオブジェクト（コンポ）について、ネームサービスは、コンポ名と、ｈａｎｄｌｅ（マシン名、ＩＰアドレス、ポート番号等）との対応関係を管理していた。
【０００３】
コンポ名をキーにネームサービスに問い合わせを行うと、ｈａｎｄｌｅを得ることができ、クライアントは、ｈａｎｄｌｅに対してサービスを要求することができる。
【０００４】
ＤＮＳ（ネームサーバ）の様にネットワークが膨大で、複数のネームサーバを階層化させ、ネームサービスを管理している場合は、クライアントからの問い合わせを自サーバで解決できない時、他サーバに問い合わせを転送する。そして、他サーバの返答を受けた自サーバは、返答をクライアントに返すと共に、自サーバのキャッシュテーブルに返答を保存する。以降、同じ問い合わせを受け取ると、自サーバは、キャッシュテーブルのデータをクライアントに返すといった仕組みになっていた。
【０００５】
しかし、どのデータがどのネームサーバでキャッシュされているかを管理し、元データが変更された際の更新を随時確実に反映させることは困難である。このため元データを保持しているサーバは、データ毎にキャッシュ有効期限（ＴＴＬ：Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）という属性を付加している。
【０００６】
ＴＴＬを用いることでキャッシュ有効期限になると、元データを参照してキャッシュしたサーバ側で責任を持って、元データを保持しているサーバからデータを再取得する。よって、随時ではないにしろ、ＴＴＬに示された時間内に更新を反映させることが可能になっていた。
【０００７】
しかし、組み込みシステム機器に要求されるメモリ制限については、ＤＮＳでは考慮されていなかった。
【０００８】
ネームサービスではないが、特許文献１には、ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）の実行方法を対象に、キャッシュのリフレッシュ回数の削減、使用するメモリ占有時間の削減方法が開示されている。
【０００９】
特許文献１では、クライアント（１台）、サーバ（複数）、ネストサーバ（１台）の３階層以上の階層構造を前提としている。そして、クライアントから複数のサーバに対し同じＲＰＣを実行する際、ＲＰＣ要求メッセージ内にネストサーバ内のＲＰＣが呼ばれる回数を指定（プログラミング）しておく。複数のサーバから１台のネストサーバに対し、複数の同じＲＰＣ要求が来るので、最初のＲＰＣのみ実行し実行結果返すと共にネストサーバでキャッシュし、以降のＲＰＣ要求については引数が全て一致したなら、キャッシュされている実行結果を返す。特許文献１では、予め定められた呼ばれる回数に達したら、即キャッシュクリアを行うことで、キャッシュのリフレッシュ回数の削減、メモリ占有時間削減を可能としている。
【００１０】
また、特許文献２では、キャッシュテーブルに常に最新データを保持するような仕組みが提案されている。
【００１１】
特許文献２は、分散オブジェクトの管理方法において、各サーバ間で問い合わせた情報を各サーバ内にキャッシュし、元データ更新に際し効率的に最新の情報を維持する方法である。キャッシュの更新方法については、問い合わせがあったデータが実在するサーバに変更があった場合、該当データの存在するキャッシュテーブルを保持しているマシンに、能動的にデータを送信してキャッシュテーブルを更新する。
【００１２】
【特許文献１】特開平１０−１０５４２０号公報
【特許文献２】特開２０００−２９８０８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記の方法では、以下のような問題点があった。
【００１４】
ａ）  特許文献１については、対象がクライアント（１台）、サーバ（複数）、ネストサーバ（１台）の３階層以上の階層構造という限定された環境が前提である問題があった。また、多重化されたＲＰＣの実行には、ユーザプログラミングによるＲＰＣ実行回数の指定が必要であるといった制限がある問題があった。
【００１５】
ｂ）  特許文献２については、サーバへの問い合わせ負荷の削減には効果があるが、問い合わせがあったデータが実在するサーバは、該当データの存在するキャッシュテーブルを保持しているマシンを常に把握しておく必要がある問題があった。
【００１６】
ｃ）  また、特許文献１、及び特許文献２は、キャッシュの使用するメモリの削減（メモリの上限指定等）は、考慮されていない問題があった。
【００１７】
本発明は上記の問題点に鑑みなされたもので、効率的なキャッシュ管理を行うことを目的とする。
【課題を解決するための手段】
【００１８】
そこで、上記問題を解決するため、本発明は、コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、を対応付けて管理するネームサービス装置と通信を行うネームサービスキャッシュ装置であって、コンポーネントオブジェクト名と、前記コンポーネントオブジェクト名のコンポーネントオブジェクトを参照している参照コンポーネントオブジェクト数と、を対応付けて保持する被参照コンポーネント保持手段と、コンポーネントオブジェクト名と、コンポーネントオブジェクトを識別するコンポーネントオブジェクト識別情報と、コンポーネントオブジェクトの残参照回数と、を対応付けて保持するキャッシュ保持手段と、コンポーネントオブジェクトからの問い合わせ要求に応じた処理を行う問い合わせ対応手段と、を有し、前記問い合わせ対応手段は、コンポーネントオブジェクトからの問い合わせを受け、前記キャッシュ保持手段に、前記問い合わせに係るコンポーネントオブジェクトに係る情報が登録されていない場合、前記問い合わせに係るコンポーネントオブジェクトのコンポーネントオブジェクト名を用いて前記ネームサービス装置に問い合わせを行い、問い合わせ結果として受け取った前記コンポーネントオブジェクト名、及び前記コンポーネントオブジェクト識別情報を前記キャッシュ保持手段に登録すると共に、前記コンポーネントオブジェクト名に基づいて、前記被参照コンポーネント保持手段より取得した前記参照コンポーネントオブジェクト数を用いて、前記コンポーネントオブジェクトの残参照回数の初期値を前記キャッシュ保持手段に登録し、前記コンポーネントオブジェクト識別情報を問い合わせ元のコンポーネントオブジェクトに通知することを特徴とする。
【００１９】
係る構成とすることにより、ネームサービスキャッシュ装置は、キャッシュ保持手段に問い合わせ要求に係る情報が登録されていない場合は、ネームサービス装置より情報を取得し、登録する。また、それと共に、ネームサービスキャッシュ装置は、参照コンポーネントオブジェクト数を用いて、情報のキャッシュに係る残参照回数の初期値をキャッシュ保持手段に登録する。そして、ネームサービスキャッシュ装置は、問い合わせ要求に係る情報を要求元に通知する。よって、効率的なキャッシュ管理を行うことができる。
【００２０】
また、上記問題を解決するため、本発明は、ネームサービスキャッシュ方法、プログラム、及び記憶媒体としてもよい。
【発明の効果】
【００２１】
本発明によれば、効率的なキャッシュ管理を行うことができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施例について図面に基づいて説明する。
【実施例１】
【００２３】
図１は、マシンのハードウェア構成の一例を示す図である。後述するマシンの機能又は後述するフローチャートは、プログラムがハードディスク等の外部補助記憶装置１６より記憶装置（ＲＡＭ）１３にロードされ、中央処理装置（ＣＰＵ）１２によって実行されることにより実現される。また、マシンがネームサービスキャッシュ装置の場合、プログラムと共に、後述するマニフェスト、キャッシュ管理テーブル、被参照コンポテーブル等も外部補助記憶装置１６に格納されている。
【００２４】
入力装置１１は、操作者が必要な操作をするための装置であり、一般にはキーボードやポインティングデバイス（マウス）等を示している。表示装置１５は、画面等を表示する装置であり、一般にはＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）や液晶表示装置等を示している。なお、入力装置１１や、表示装置１５は、マシンのハードウェア構成として必ずしも必要なハードウェアではない。
【００２５】
Ｉ／Ｏインタフェース装置１７は、マシンを、ネットワークやプリンタ等の外部装置に接続するインタフェース装置である。Ｉ／Ｏバス１４は、上述した各ユニット間を接続するバス（アドレスバス、又はデータバス、又は制御バス）である。
【００２６】
図２は、システム構成の一例を示す図である。マシン１（１００）、マシン２（７００）、及びマシン３（６００）がイーサネット（登録商標）等のネットワーク１２０を介し存在する。
【００２７】
マシン１（１００）には、プロセス１−１（１５０）、及びプロセス１−２（１６０）が存在する。プロセス１−１（１５０）には、コンポＡ１５１、コンポＢ１５２、及びコンポＣ１５３が存在する。プロセス１−２（１６０）には、コンポＤ１６１、及びコンポＥ１６２が存在する。マシン２（７００）には、プロセス２−１（７１０）が存在する。プロセス２−１（７１０）には、コンポＦ７１１、及びコンポＧ７１２が存在する。
【００２８】
プロセス毎に、コンポの依存関係（あるコンポは、他のどのコンポを参照（使用）しているか）を記述したマニフェスト（マニフェスト情報）が存在する。プロセス１−１（１５０）、プロセス１−２（１６０）、プロセス２−１（７１０）には、それぞれマニフェスト１−１（１７０）、マニフェスト１−２（１９０）、マニフェスト２−１（７２０）が対応している。
【００２９】
マシン３（６００）には、ＰＮＳ（ポートネームサービス）６１０が存在する。ＰＮＳ６１０は、コンポ名と、ｈａｎｄｌｅと、を対応付けて管理する。
【００３０】
次に、ネームサービスキャッシュ装置の立ち上がり動作順序に従って、処理を説明する。
立ち上がり動作順序は、大きく１）,２）,３）,４）の４段階に分けられる。
【００３１】
１）  マニフェストの読み込み（プロセス毎マニフェストの集計を被参照コンポテーブル３００に登録）
マシン毎にライフサイクル管理機構２００、８００が起動される。
マシン１（１００）について見ると、ライフサイクル管理機構２００は、マニフェスト１−１（１７０）、及びマニフェスト１−２（１９０）を読み込み、被参照コンポ別集計１０１、及び１０２を行い、合計結果を被参照コンポテーブル３００に保存（１０３）する。
被参照コンポテーブル３００において、例えば、コンポＢ１５２の参照コンポ数は３なので、３回だけ他のコンポから参照（使用）される事を示している。
【００３２】
２）  プロセス初期化（プロセス毎の各コンポをマシン３（６００）のＰＮＳ６１０にコンポ登録）
ライフサイクル管理機構２００、８００によりプロセス毎に初期化１０５、１０６、７０３を行う。このことにより、各プロセスに含まれるコンポ（Ａ１５１,Ｂ１５２,Ｃ１５３,Ｄ１６１,Ｅ１６２,Ｆ７１１,Ｇ７１２）は、マシン３（６００）のＰＮＳ６１０に対し、コンポ登録（１０７,７０４,７０５,他のコンポは省略）を行う。そして、マシン３においてコンポ毎にｈａｎｄｌｅが割り当てられる。
【００３３】
３）  プロセス起動（プロセス毎に起動された各参照コンポをキャッシュ管理テーブル５００に保存）
ライフサイクル管理機構２００、８００により各プロセスが起動１０５、１０６、７０３されると、各コンポは参照（使用）したいコンポについてコンポ問い合わせ機構４００（マシン２（７００）では省略）に問い合わせ要求を行う。
以降、マシン１（１００）について見ると、コンポＤ１６１がコンポＢ１５２についてコンポ問い合わせ機構４００に対して問い合わせ（１０９）を行っている。
コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００にコンポＢ１５２があるか否か検索する（１１０）。初回はヒットしない（１１１）ので、コンポ問い合わせ機構４００は、マシン３（６００）のＰＮＳ６１０にコンポＢ１５２を検索しに行き、検索結果を取得する（１１２,１１３）。
そして、コンポ問い合わせ機構４００は、被参照コンポテーブル３００のコンポＢ１５２のエントリについて「参照コンポ数［３個］−１」の値が１以上か否かを判定する。コンポ問い合わせ機構４００は、１以上であると判定すると、キャッシュ管理テーブル５００に該当コンポＢ１５２の検索結果のエントリ（ｈａｎｄｌｅ，残参照カウンタ＝参照コンポ数−１＝２）を追加する（１１４,１１５）。最後に、コンポ問い合わせ機構４００は、検索結果（ｈａｎｄｌｅ）をコンポＤ１６１に返す（１１６）。
マシン２（７００）でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
【００３４】
４）  キャッシュ動作（マシン毎にキャッシュ管理テーブル５００の各コンポ情報を参照、削除）
マシン１（１００）内で、再び同一のコンポＢ１５２についての問い合わせが、コンポ問い合わせ機構４００にあった場合、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００内を検索し（１１０,１１１）、情報（ｈａｎｄｌｅ）を、問い合わせ元コンポＡ１５１又はコンポＣ１５３に返し、残参照カウンタを１、デクリメントする。
残参照カウンタが０になったときは、コンポ問い合わせ機構４００は、該当コンポＢ１５２のエントリをキャッシュ管理テーブル５００から削除する。
マシン２（７００）でも、コンポ問い合わせ機構、及びキャッシュ管理テーブルを搭載することで、同様に動作することは自明なので説明を省略する。
【００３５】
以上の処理の結果、コンポ情報は、ＰＮＳ６１０に対してコンポ登録１０７後、初回の問い合わせ１０９時にキャッシュされる（１１４）。その後、同コンポに対する問い合わせ（１１０，１１１）が残参照カウンタに示される回数された後で直ぐに、キャッシュから削除される。
【００３６】
これにより、キャッシュのリフレッシュはコンポ登録後１回に削減される。また、使用するメモリの占有時間を最小限にとどめる事でメモリの削減が可能となる。
【００３７】
図３は、図２に示したマニフェスト１−１（１７０）、マニフェスト１−２（１９０）を示す図である。
マニフェスト１−１（１７０）は、図２のプロセス１−１（１５０）に含まれるコンポＡ１５１、コンポＢ１５２、及びコンポＣ１５３が参照する（使用する）コンポの情報を保持している。
【００３８】
図３において、マニフェスト１−１（１７０）は、コンポＡ１７３は、コンポＢ１７４、及びコンポＦ１７５を参照する（使用する）ことを被参照コンポ１７２カラムに示す。同様に、コンポＢ１７６はコンポＦ１７７を参照する（使用する）ことを被参照コンポ１７２カラムに示す。同様に、コンポＣ１７８は、コンポＢ１７９、コンポＥ１８０、及びコンポＤ１８１を参照する（使用する）ことを被参照コンポ１７２カラムに示す。
【００３９】
マニフェスト１−２（１９０）は、図２中のプロセス１−２（１６０）に含まれるコンポＤ１６１、及びコンポＥ１６２が参照する（使用する）コンポの情報を保持している。
【００４０】
図３において、マニフェスト１−２（１９０）は、コンポＤ１９３は、コンポＢ１９４を参照する（使用する）ことを被参照コンポ１９２カラムに示す。同様に、コンポＥ１９５は、コンポＤ１９６を参照する（使用する）ことを被参照コンポ１９２カラムに示す。
【００４１】
図３のマニフェスト１−１（１７０）の被参照コンポ１７２カラムにおいて、コンポＦ１７５、及び１７７は、マシン２（７００）上に存在している。このように、自身のマシン１（１００）内に存在しないコンポについても参照する（使用する）場合は、マニフェストに記述することが可能である。
【００４２】
図４は、図２に示した被参照コンポテーブル３００を示す図である。被参照コンポテーブル３００は、マシン毎に存在する。
【００４３】
マシン１（１００）においては、例えばライフサイクル機構２００が立ち上がり時に、マニフェスト１−１（１７０）の被参照コンポ１７２カラム、及びマニフェスト１−２（１９０）の被参照コンポ１９２カラムに含まれるコンポをコンポ毎計数する。
【００４４】
被参照コンポテーブル３００は、計数した値をｎａｍｅ３０１毎に参照コンポ数３０２に保存した物である。例えば、図４において、被参照コンポテーブル３００内の、コンポＢ３０５の参照コンポ数３０２は、３（３０６）であり、３回だけ他のコンポから参照（使用）される事を示している。
【００４５】
図５は、プロセスの初期化、起動処理の一例を示すフローチャートである。以下、マシン１（１００）における動作を、ステップを追って説明する。
【００４６】
ライフサイクル管理機構２００は、システムの立ち上がり時、マシン内で集計していないマニフェストが存在するか否かを判断する（ステップ２０１）。まだ、集計していないマニフェスト（１７０又は１９０）が存在すれば、ライフサイクル管理機構２００は、被参照コンポ（１７２又は１９２）カラムを読み込んで、被参照テーブル３００のｎａｍｅ３０１毎に参照コンポ数３０２に加算する（ステップ２０２）。そして、ライフサイクル管理機構２００は、再びステップ２０１に戻る。
【００４７】
ステップ２０１においてマシン内で集計していないマニフェストが存在しなければ、ライフサイクル管理機構２００は、初期化していないプロセスが存在するか否かを判断する（ステップ２０３）。
【００４８】
まだ、初期化していないプロセスがあれば、ライフサイクル管理機構２００は、プロセスの初期化を行い（ステップ２０４）、再びステップ２０３に戻る。なお、プロセスが初期化されると、プロセスに含まれるコンポも初期化されるものとする。初期化されたコンポ（Ａ１５１,Ｂ１５２,Ｃ１５３,Ｄ１６１,Ｅ１６２）は、マシン３（６００）のＰＮＳ６１０に、コンポ登録する。ＰＮＳ６１０は、該当コンポｎａｍｅ６１１のエントリを追加して、対応するｈａｎｄｌｅ６１２を割り当てる。なお、ＰＮＳ６１０の詳細は、後述する図８で説明する。
【００４９】
ステップ２０３において初期化していないプロセスがなければ、ライフサイクル管理機構２００は、起動していないプロセスが存在するか否かを判断する（ステップ２０５）。
【００５０】
まだ、起動していないプロセスが存在すれば、ライフサイクル管理機構２００は、プロセスを起動し、再びステップ２０５に戻る。なお、プロセスが起動されると、プロセスに含まれるコンポも起動されるものとする。起動されたコンポ（Ａ１５１,Ｂ１５２,Ｃ１５３,Ｄ１６１,Ｅ１６２）は、参照（使用）したいコンポについてコンポ問い合わせ機構４００に問い合わせを行う（ステップ２０６）。ステップ２０５において起動していないプロセスが無ければ、ライフサイクル管理機構２００は、図５に示す処理を終了する。
【００５１】
図６は、コンポ問い合わせ機構４００における処理の一例を示すフローチャートである。なお、図６中の点線で表された部分は、実施例２でのみ使用し、実施例１では使用しない。
【００５２】
コンポ問い合わせ機構４００は、ライフサイクル管理機構２００により起動されたコンポ（Ａ１５１,Ｂ１５２,Ｃ１５３,Ｄ１６１,Ｅ１６２）から、参照（使用）したいコンポについて問い合わせを受け付けることで起動される。
【００５３】
以下マシン１（１００）における動作を、ステップを追って説明する。コンポ問い合わせ機構４００は起動されて最初に、キャッシュ管理テーブル５００のｎａｍｅ５０１カラムに参照（使用）したいコンポ（＝該当コンポ）が存在するか否かを判断する（ステップ４０１）。なお、キャッシュ管理テーブル５００の詳細は、後述する図７で説明する。
【００５４】
キャッシュ管理テーブル５００のｎａｍｅ５０１カラムに参照（使用）したいコンポが存在すると判断した場合、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００のｎａｍｅ５０１カラム中の該当コンポに対応するｈａｎｄｌｅ５０２を取得する。そして、コンポ問い合わせ機構４００は、取得したｈａｎｄｌｅ５０２を問い合わせ元コンポに返す（ステップ４０２）。
【００５５】
続いて、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００のｎａｍｅ５０１カラム中の該当コンポに対応する残参照カウンタ５０３を１、デクリメントする（ステップ４０３）。
【００５６】
続いて、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００のｎａｍｅ５０１カラム中の該当コンポに対応する残参照カウンタ５０３が０と等しいか判断する（ステップ４０４）。該当コンポに対応する残参照カウンタ５０３が０と等しいと判断した場合、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００から該当コンポｎａｍｅ５０１のエントリ（行）を削除して（ステップ４０５）、図６に示す処理を終了する。
【００５７】
ステップ４０４において、該当コンポに対応する残参照カウンタ５０３が０でないと判断した場合、コンポ問い合わせ機構４００は、図６に示す処理を終了する。
【００５８】
ステップ４０１においてキャッシュ管理テーブル５００のｎａｍｅ５０１カラムに参照（使用）したいコンポ（＝該当コンポ）がないと判断した場合、コンポ問い合わせ機構４００は、マシン３（６００）のＰＮＳ６１０に検索要求を送信する。そして、コンポ問い合わせ機構４００は、ＰＮＳ６１０より、ｎａｍｅ６１１カラム中の該当コンポに対応するｈａｎｄｌｅ６１２を得る（ステップ４０６）。
【００５９】
続いて、コンポ問い合わせ機構４００は、被参照コンポテーブル３００のｎａｍｅ３０１カラム中の該当コンポに対応する参照コンポ数３０２の値を得る（ステップ４０７）。続いて、コンポ問い合わせ機構４００は、ステップ４０７で得た参照コンポ数３０２の値−１が１以上の値になるか否か判断する（ステップ４０８）。
【００６０】
ステップ４０８において１以上の値になると判断すると、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００に、該当コンポｎａｍｅ５０１のエントリ（行）を追加し、対応するｈａｎｄｌｅ５０２にステップ４０６で得た値を代入する。そして、コンポ問い合わせ機構４００は、対応する残参照カウンタ５０３にステップ４０７で得た値−１を代入する（ステップ４０９）。ステップ４０８において１以上の値にならないと判断すると、コンポ問い合わせ機構４００は、ステップ４０９を実行しない。
【００６１】
コンポ問い合わせ機構４００は、ステップ４０６で得た値ｈａｎｄｌｅ６１２を問い合わせ元コンポに返す（ステップ４１０）。
【００６２】
図７は、図２に示したキャッシュ管理テーブル５００を示す図である。
キャッシュ管理テーブル５００は、マシン毎に存在し、ＰＮＳ６１０に問い合わせた結果がキャッシュされる。マシン１（１００）においては、例えばコンポ問い合わせ機構４００が、マシン３（６００）のＰＮＳ６１０のｎａｍｅ６１１カラム中の該当コンポに対応するｈａｎｄｌｅ６１２を得る。そして、コンポ問い合わせ機構４００が、キャッシュ管理テーブル５００に、該当コンポｎａｍｅ５０１と、ｈａｎｄｌｅ５０２と、残参照カウンタ５０３と、が対応付けたエントリを追加する。
【００６３】
エントリ追加の際の残参照カウンタ５０３の初期値は、被参照コンポテーブル３００のｎａｍｅ３０１カラム中の該当コンポに対応する参照コンポ数３０２の値−１である。
【００６４】
例えば、キャッシュ管理テーブル５００において、コンポＢ５０４の残参照カウンタ５０３は、２（５０６）である。これは、被参照コンポテーブル３００におけるコンポＢ３０５の参照コンポ数３０２の値が３（３０６）であり、その値から１を引くことで初期値２がセットされている。以降、コンポ問い合わせ機構４００から、参照（使用）したいコンポの問い合わせがあれば、該当コンポ名をキーにｎａｍｅ５０１を検索し、対応するｈａｎｄｌｅ５０２を返す毎に、残参照カウンタ５０３は１、デクリメントされる。そして、該当コンポに対応する残参照カウンタ５０３が０と等しい場合、キャッシュ管理テーブル５００から該当コンポｎａｍｅ５０１のエントリ（行）が削除される。
【００６５】
図８は、図２に示したＰＮＳ（ポートネームサービス）６１０（又はＰＮＳ６１０が保持するテーブル）を示す図である。ＰＮＳ６１０は、マシン３に存在し、コンポ名ｎａｍｅ６１１と、ｈａｎｄｌｅ６１２との対応を管理する。
【００６６】
コンポからコンポ登録の要求があれば、マシン３（６００）のＰＮＳ６１０は、コンポ登録処理を行い、該当コンポｎａｍｅ６１１のエントリを追加して、対応するｈａｎｄｌｅ６１２を割り当てる。
【００６７】
以降、コンポ問い合わせ機構４００から、参照（使用）したいコンポの問い合わせがあれば、ＰＮＳ６１０は、該当コンポ名をキーにｎａｍｅ６１１を検索し、対応するｈａｎｄｌｅ６１２を返す。
【実施例２】
【００６８】
実施例２では、実施例１の方法を用いて、図２に示したコンポＢ１５２からコンポ問い合わせ機構４００に対する、コンポＢ登録時キャッシュ１０８のイベントを追加した例を示す。
更に、図６に示したコンポ問い合わせ機構４００における、点線で表記したステップ４１１,４１２,４１３の処理を追加し、ステップ４０１を削除し、ステップ４０８と、ステップ４０９との処理を変更する（ステップ４０８改、ステップ４０９改とする）。
【００６９】
以下、図６用いて、マシン１（１００）における動作を、ステップを追って説明する。
【００７０】
コンポ問い合わせ機構４００は、起動されて最初に、コンポからの要求が、コンポからの問い合わせか、又はコンポ登録時キャッシュ１０８かを判断する（ステップ４１１）。コンポ問い合わせ機構４００は、コンポからの要求が、コンポ登録時キャッシュ１０８であると判断すると、登録要求元のコンポを該当コンポとする（ステップ４１２）。
【００７１】
続いて、コンポ問い合わせ機構４００は、マシン３（６００）のＰＮＳ６１０に検索要求を送信する。そして、コンポ問い合わせ機構４００は、ＰＮＳ６１０より、ｎａｍｅ６１１カラム中の該当コンポに対応するｈａｎｄｌｅ６１２を得る（ステップ４０６）。
【００７２】
続いて、コンポ問い合わせ機構４００は、被参照コンポテーブル３００のｎａｍｅ３０１カラム中の該当コンポに対応する参照コンポ数３０２の値を得る（ステップ４０７）。
【００７３】
続いて、コンポ問い合わせ機構４００は、ステップ４０７で得た参照コンポ数３０２の値が１以上か否かを判断する（ステップ４０８改）。
【００７４】
ステップ４０８改において１以上の値であると判断すると、コンポ問い合わせ機構４００は、キャッシュ管理テーブル５００に、該当コンポｎａｍｅ５０１のエントリ（行）を追加し、対応するｈａｎｄｌｅ５０２にステップ４０６で得た値を代入する。そして、コンポ問い合わせ機構４００は、対応する残参照カウンタ５０３にステップ４０７で得た値を代入する（ステップ４０９改）。ステップ４０８改において１以上の値でないと判断すると、コンポ問い合わせ機構４００は、ステップ４０９改を実行しない。
【００７５】
コンポ問い合わせ機構４００は、ステップ４１１においてコンポからの問い合わせと判断したか否かを判断し、コンポからの問い合わせと判断していないと判断すると、図６に示す処理を終了する。
【００７６】
以上のようにコンポ問い合わせ機構４００の処理を変更することで、問い合わせ時ではなく各コンポの初期化時に該当コンポをＰＮＳ６１０に登録する。また該当コンポ自身が存在するマシン１（１００）のキャッシュ管理テーブル５００に、該当コンポのエントリを追加することが可能となる。
【００７７】
これにより、問い合わせがあったデータが実在するサーバ（ＰＮＳ６１０に相当）は、該当データの存在するキャッシュ管理テーブル５００を保持しているマシンを常に把握しておく必要がない。組み込みシステム機器等に搭載されるＰＮＳ（ポートネームサービス）に問い合わせを行うネームサービスキャッシュ装置について、ＰＮＳに対する問い合わせの効率化が可能となる。
【実施例３】
【００７８】
実施例３では、実施例１の方法を用いて、図２に示したライフサイクル管理機構２００における、キャッシュ管理テーブル５００からのメモリ空き容量チェック１０４のための読み込み処理を追加した例を示す。
更に、図５に示したライフサイクル管理機構２００における、ステップ２０６の処理を変更し、ステップ２０６改とする。
【００７９】
以下、図５を用いて、マシン１（１００）における動作を、ステップを追って説明する。
【００８０】
ライフサイクル管理機構２００は、起動されると、ステップ２０１からステップ２０５までの処理を実施例１と同様に実行する。
【００８１】
ステップ２０５において、まだ起動していないプロセスが存在すると判断すると、ライフサイクル管理機構２００は、キャッシュ管理テーブル５００のメモリ容量をチェックする。ライフサイクル管理機構２００は、キャッシュ管理テーブル５００のメモリ容量が予め定められた閾値より大きいと判断すると、前記メモリ容量が前記閾値以下になるまで待った後、まだ起動していないプロセスを起動し、再びステップ２０５に戻る。起動されたコンポ（Ａ１５１,Ｂ１５２,Ｃ１５３,Ｄ１６１,Ｅ１６２）は、参照（使用）したいコンポについてコンポ問い合わせ機構４００に問い合わせを行う（ステップ２０６改）。ステップ２０５において起動していないプロセスが無ければ、ライフサイクル管理機構２００は、図５に示す処理を終了する。
【００８２】
以上のように、ライフサイクル管理機構２００の処理を変更し、キャッシュ管理テーブル５００のメモリ使用量が閾値以下になるまで、新たなプロセス及びプロセスに含まれるコンポの起動を待たせるようにする。
【００８３】
これにより、組み込みシステム機器等に搭載されるＰＮＳ（ポートネームサービス）に問い合わせを行うネームサービスキャッシュ装置について、キャッシュの使用するメモリの削減（メモリの上限指定）が可能となる。
【００８４】
以上、説明した様に、上述した実施例によれば、効率的なキャッシュ管理を行うことができる。
また、組み込みシステム機器等に搭載されるＰＮＳ（ポートネームサービス）に問い合わせを行うネームサービスキャッシュ装置において、ＰＮＳに対するキャッシュのリフレッシュ回数の削減、キャッシュの使用するメモリ占有時間の削減、キャッシュの使用するメモリの削減（メモリの上限指定等）、ＰＮＳに対する問い合わせの効率化も可能となる。
【００８５】
これにより、本実施形態を組み込みシステム機器製品に搭載することで、性能が向上すると同時に少メモリ化を達成することが出来るため、省電力化及び低コスト化を実現できる。
【００８６】
また、本実施形態を実装するために、専用のハードウェアを新規に開発する必要はなく、既存の組み込み機器内のＯＳに簡単に組込むことが可能であるので、既存システムであっても低コストで性能を向上させることができる。
【００８７】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００８８】
【図１】マシンのハードウェア構成の一例を示す図である。
【図２】システム構成の一例を示す図である。
【図３】図２に示したマニフェスト１−１（１７０）、マニフェスト１−２（１９０）を示す図である。
【図４】図２に示した被参照コンポテーブル３００を示す図である。
【図５】プロセスの初期化、起動処理の一例を示すフローチャートである。
【図６】コンポ問い合わせ機構４００における処理の一例を示すフローチャートである。
【図７】図２に示したキャッシュ管理テーブル５００を示す図である。
【図８】図２に示したＰＮＳ（ポートネームサービス）６１０を示す図である。
【符号の説明】
【００８９】
１１  入力装置
１２  中央処理装置
１３  記憶装置
１５  表示装置
１６  外部補助記憶装置
１７  ＩＯ  Ｉ／Ｆ装置
【図１】
2007213235.tif 000003
【図２】
2007213235.tif 000004
【図３】
2007213235.tif 000005
【図４】
2007213235.tif 000006
【図５】
2007213235.tif 000007
【図６】
2007213235.tif 000008
【図７】
2007213235.tif 000009
【図８】
2007213235.tif 000010