(57)【要約】【課題】  並列処理を行いながら効率的に排他予約管理を含むリソース管理を実行する情報処理装置、情報処理方法、記録媒体、およびプログラムを提供する。【解決手段】  本発明の情報処理装置１０は、セッションごとにアプリケーションの実行を調停し、アプリケーションが共用データを使用して作業する領域をシステム・メモリに生成させ、アプリケーションを実行させるアプリケーション調停手段４０と、アプリケーションが割当てられたセッションの終了と同期するまで共用データの排他制御を行う排他制御手段４６とを備えている。情報処理装置１０は、クライアントからの要求、セッションの有効期限、またはチケット有効期限の満了に応答して、排他予約を外部指令またはセッションの終了に同期して共用データの排他制御を行う。【選択図】  図２
2007219741.tif 000002
【特許請求の範囲】
【請求項１】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置。
【請求項２】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える、請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項１〜３のいずれかに記載の情報処理装置。
【請求項５】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記セッション内で前記共用データの排他制御を開始し、前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置。
【請求項６】
前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える、請求項５に記載の情報処理装置。
【請求項７】
前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える、請求項５または６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える、請求項５〜７のいずれか１項に記載の情報処理装置。
【請求項９】
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法。
【請求項１０】
さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む、請求項９に記載の情報処理方法。
【請求項１１】
さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項９または１０に記載の情報処理方法。
【請求項１２】
ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項９〜１１のいずれかに記載の情報処理方法。
【請求項１３】
請求項９〜１２のいずれか１項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体。
【請求項１４】
請求項９〜１２のいずれか１項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理を行いながら効率的に排他予約管理を含むリソース管理を実行する情報処理装置、情報処理方法、記録媒体、およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータなどの情報処理装置の高性能化、およびオブジェクト・プログラミングの高度化に伴い、複数のタスクを並列処理することが可能となっている。上述した並列処理は、ネットワークに接続され、種々のサービスを提供する情報処理装置で多く用いられている。並列処理を行う情報処理装置は、ネットワークに接続された複数のクライアント・コンピュータ(以下、クライアントとして参照する。）からの同時的な要求を受付けるので、各クライアントからの要求を並列処理することにより、高効率な処理を行う必要がある。
【０００３】
この目的から並列処理を行う情報処理装置では、所謂ＣＧＩ（Common
Gateway Interface)として参照される処理を採用し、Ｃ＋＋、Ｊａｖａ（登録商標）、サーブレット、アプレット、Ｐｅｒｌ、Ｒｕｂｙなどの高級言語で記述されたＣＧＩプログラムを実装して、クライアントからの要求に対応している。また、クライアントからのＲＭＩ(Remote
Method Invocation)などに応答して所定の処理を実行して、その実行結果をクライアントに返すなどの処理によってクライアントからの要求に対応する場合もある。
【０００４】
並列処理は、複数のクライアントからの要求に応答してオブジェクト・クラスのインスタンスを生成し、それらを「セッション」として参照される実行単位として処理を行う実行形式を採用する場合が多い。セッションは、独立した実行単位として管理されているので、それぞれのクライアントからの個別的な要求に対応した処理を実行することが可能となる。この場合、情報処理装置は、特定のクライアントに返される実行結果を生成するために、情報処理装置が管理する共用データを提供する。共用データは、各セッションまたはスレッド単位でそれぞれ種々のアプリケーションにより個別的にアクセスされ、種々の目的のために操作が加えられる。上述した、共用データとしては、データベース・オブジェクト、マルチメディア・オブジェクト、イメージ・オブジェクト、テキスト・オブジェクト、ブラウザ・ヒストリ、アクセス・ログ、実行ログ、ＳＧＭＬ、ＨＴＭＬ、ＸＭＬなどの構造化言語で記述された構造化オブジェクト、または画像処理を行うための共用メモリ空間に格納されたデータなどを挙げることができる。
【０００５】
上述したように近年における情報処理装置は、オブジェクト指向プログラミングを利用したオブジェクト（以下、本発明においては、オブジェクト・クラスのインスタンスを含むものとして定義する。）が必要に応じてオブジェクト呼出しなどにより呼出され、実行される。この場合、オブジェクトの実行状態は、情報処理装置内で、種々の状態を取る。図１４は、情報処理装置内でのオブジェクトの状態遷移を示した図である。
【０００６】
オブジェクトは、情報処理装置内においてクライアントの要求を受付けて生成されるセッションごとに生成され、クライアントからの要求に応答した処理を実行する。この場合のオブジェクトの状態は、大きく分けて３状態に分類することができる。図１４に示すように、オブジェクトの状態には、永続化状態と、活性状態と、不活性状態とに分類でき、オブジェクトの処理状況に対応して、各状態を遷移する。
【０００７】
図１４を使用してより具体的に各状態の遷移を説明する。ハードディスクなどに格納されたオブジェクトの実行ファイルは、オブジェクト呼出しまたはメソッド呼出しに応答して、システム・メモリに展開され、処理を実際に実行するオブジェクトが生成され、クライアントからの要求に応じた処理を実行する。実行が終了すると、オブジェクトはメモリ領域にオブジェクト自体またはオブジェクトが使用するデータまたはネットワーク・データなどのデータを含んだまま休止状態として残される。これは、メソッド呼出しのたびに、オブジェクトのメモリへの展開・処理終了後のオブジェクト状態の保存・メモリの解放を繰り返すことを避け、連続した呼出しに対応する応答性能を向上するためである。
【０００８】
しかし、このように利用済みオブジェクトをメモリ上に休止状態として残しておくと、メモリ領域が枯渇してしまう。このため、不要と判断されたオブジェクトは、ユーザからの明示的な指示、または情報処理装置に設定される管理ルール（利用されていないオブジェクトのアイドル時間の長さなど）に基づき不活性化され、アンロードなどの処理を受けて割当てられていたリソースが回収される。
【０００９】
上述した並列処理を行う情報処理装置では、また、並列的に共用データがアクセスを受けるので、共用データについてデータ・コンシステンシを確保する必要がある。この目的のため、従来から、同期化またはファイル・ロックなどの処理方式、所謂、排他制御方法が知られている。同期化またはファイル・ロック処理は、処理を行うオブジェクトが要求する限り、共用データへの少なくとも書込みを排他制御することにより、他のインスタンスによるデータ更新アクセスを排除する共用データ管理方法である。
【００１０】
上述した排他制御方法は、適切に実装されるとデッド・ロックまたはライブ・ロックなどの実行を阻害する不都合を発生させることなく、適切な並列処理の管理を可能とする。この目的から、通常、排他制御は、オブジェクト単位で行われ、オブジェクトが終了した時点で共用データの排他制御を解放する。このため、従来の排他制御方法では、共用データの排他制御がオブジェクトの活性期間を超えて制御することができないという場合が多かった。
【００１１】
図１５には、従来の排他制御方式の排他制御期間を概略的に示す。オブジェクトの活性化されている期間は、デッド・ロックやライブ・ロックなどの発生をできるだけさせるように、通常では、オブジェクトの活性化期間を超えないうちに排他制御が終了する。したがって、オブジェクトの活性期間は、オブジェクトによる共用データの排他期間以上の期間とする必要がある。このことは、逆に、オブジェクトの活性化期間を超えて排他制御を行うことができないという不都合があることを示す。また、セッションの期間中に、クライアント・プロセスからの外部指令または外部要求を受付ける場合も発生する。
【００１２】
上述した不都合を回避する目的として、オブジェクトを頻繁に活性化−不活性化の遷移を繰り返すことも考えられる。しかしながら、オブジェクトの種類によっては、所定のオブジェクトを初期化し、排他制御を設定し、排他制御やオブジェクトを終了させる処理は、情報処理装置に対し、処理時間および処理オーバヘッドを要求し、処理効率を低下させることがある。加えて、上述のような頻繁なオブジェクトの初期化−終了処理は、情報処理装置のスループットに対して著しい影響を与えることも想定される。
【００１３】
一方、クライアントからの要求に応答して、同一セッションにおいて再度オブジェクトを活性化させる場合も考えられる。この場合には、セッションの期間中、排他予約を行うことで、データのコンシステンシを与えることが好ましいということができる。このような場合としては、同一セッション内で、オフライン処理に切換え、作成していたドキュメントなどをＨＴＴＰ、ＦＴＰ、またはＴｅｌｎｅｔなどにより情報処理装置に伝送するような場合である。このような場合、以前に使用していたデータが他のオブジェクトにより変更されている場合には、同一セッション内で再度アクセスしたクライアント・ユーザに対して重大な作業性の低下を生じさせる。しかしながら、クライアントにより確立されたセッションの有効期間は、概ね、所定のオブジェクトの活性化期間よりも長い。このため、不用意にセッション全期間にわたり排他制御を行うと、他のセッションの作業効率を低下させることにもつながり、好ましい制御であると言うことができない。
【００１４】
すなわち、従来の排他制御方式では、所定のオブジェクト・クラスが活性化されることを予測して共用データの排他状態を予約しておくことができないという問題がある。また、従来の排他制御方法では、オブジェクトの不活性化と同時に排他制御も同時に消滅してしまい、セッション・タイムアウトまでの時間を充分に有効に利用することができないという問題がある。また、仮にセッション全体にわたって排他制御を行う場合には、クライアントの作業状態に拘わらず、常に排他制御が行われる。このため、当該共用データがアンロックされるまでブロック状態またはビジー状態で待機しなければならず、所謂、デッド・ロックやライブ・ロックなどの問題が発生し情報処理装置に無用なオーバヘッドを生じさせるという不都合があった。
【００１５】
これまで、排他制御を使用する情報処理装置は種々提案されており、例えば特開２００４−２４６８７３号公報(特許文献１）では、機能要求に応じたトランザクションをクライアントごとに管理し、タイムアウト前にトランザクションを終了させるため、クライアントからの管理開始要求または管理開始要求以外の要求に基づき排他制御を管理する情報処理装置が開示されている。
【００１６】
特許文献１では、所定の要求に応答して排他制御を開始させる情報処理装置は、開示されているものの、セッションの全期間にわたり共用データの排他制御を行う点を課題とするものではない。また、排他制御の開始を他のインスタンスに対するデッド・ロックまたはライブ・ロックの発生を最低限としつつ、情報処理装置の並列処理スケーラビリティを保証することを課題とするものではない。
【００１７】
また、特開平１１−２７２５４３号公報（特許文献２）では、複数のサーバ間において同一のドキュメントを共有し、同一のドキュメントの複製を各サーバに配布し、あるドキュメントの更新を開始するサーバが他のサーバに対して更新開始通知を送り、更新が終了したときに更新終了通知を送り、他のサーバは、更新開始通知を受取ったときに該当するドキュメントに対する更新をロックし、更新終了通知を受取ったときにロックを解除するドキュメント分散処理方法が開示されている。
【００１８】
特許文献２に開示されたドキュメント分散処理方法では、所定のサーバによるオブジェクトの更新開始通知を他のサーバに通信し、終了時に更新終了通知を他のサーバに通信することにより、複数のサーバにおけるドキュメントの共有を行う。この方法は、複数のサーバにおけるデータ共有を可能とするものの、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御するものではない。
【００１９】
さらに、特開平９−０２６９２３号公報（特許文献３）では、中央処理ユニットと、プロセスに割当てられたメモリと、メモリ内に存在し、前記プロセス内で活性しているオブジェクトを識別する活性オブジェクト・リストを備え、選択オブジェクトに関連して、オブジェクトが活性状態にあるとき、不活性の期間を表示するオブジェクト不活性指定期間値を格納するオブジェクト・タイムアウト変数を使用して、不活性期間経過後にオブジェクトを非活性化させるコンピュータ・システムが開示されている。特許文献３に開示された方法は、オブジェクトの活性化状態から非活性状態への遷移を効率的に行うことを目的とするものであり、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御することを目的とするものではない。
【特許文献１】特開２００４−２４６８７３号公報
【特許文献２】特開平１１−２７２５４３号公報
【特許文献３】特開平９−０２６９２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
すなわち、デッド・ロックやライブ・ロックなどの不都合が発生する可能性を最小限としつつ、排他予約を行うことにより、共用データのコンシステンシを向上することが必要とされていた。さらに、クライアントによる処理の状態に応答して、排他制御を解除して、他のオブジェクトによる共用データの利用を可能とすることにより、並列処理性を向上させることが望まれていた。
【００２１】
さらに、排他制御の目的のためだけにオブジェクトをセッション・タイムアウトが満了するまで生存または活性化状態で待機させておくことによるハードウェア資源の浪費による処理効率の低下を改善することが望まれていた。
【００２２】
本発明は、上記従来技術に鑑みてなされたものであり、並列処理を実行する情報処理装置においてデッド・ロックやライブ・ロックなどの不都合の発生を最低限としつつ、共用データのコンシステンシを高め、同時に有効利用することが可能な情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【００２３】
また、本発明の他の目的は、オブジェクトの活性期間を超えて排他状態を継続させる、すなわち、排他制御の予約を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【００２４】
本発明のさらに他の目的は、共用データのコンシステンシを向上させつつ、排他制御の予約管理によるデッド・ロックまたはライブ・ロックの発生を最小限とし、クライアントからの排他制御の開始または終了の指令に柔軟に対応でき、ハードウェア資源のより効率的な使用を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明は、上記課題を解決するために、排他予約制御を開始し、クライアントからの指令またはセッション終了に同期して排他予約制御を終了させる排他制御手段を採用する。本発明の実施の形態では、排他制御手段は、外部からの明示的な要求を受付けてアプリケーションの実行終了後にも使用する共用オブジェクトの排他予約を行うための予約データを設定する。排他制御手段は、アプリケーションの実行が終了した時点で、予約フラグなどの予約データの状態を参照し、該当する共用オブジェクトを使用する他のアプリケーションが少なくとも書込み操作を行おうとする場合に、アプリケーションを終了させるか、または当該アプリケーションの書込みオブジェクトを実行が可能となるまでキューに待機させる。
【００２６】
また、本発明の他の実施の形態では、クライアントからの外部指令に応答して、登録されている予約データをルックアップすることにより、排他権を排他制御手段に譲渡し、予約データが設定された共用データにつき、排他予約制御を開始する。リソース管理手段は、排他制御手段とは独立して、不要になったアプリケーションのリソースを回収して、他のアプリケーションのために提供する。さらに排他制御手段は、クライアントからの外部指令またはセッション終了条件の満了に応答して、排他予約のための予約データを解除して、共用データの排他予約制御を終了させることにより、他のオブジェクトによる共用データの利用を可能とする。本発明の排他制御手段は、情報処理装置のリソースを最大限に有効利用しつつ、共用オブジェクトの排他予約を、外部指令およびセッションの終了と同期して管理することを可能とする。
【００２７】
すなわち、本発明によれば、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置が提供できる。
【００２８】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える。前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。
【００２９】
本発明の第２の構成では、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了時から前記共用データの排他制御を開始し、前記アプリケーションが割当てられた前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置が提供される。
【００３０】
本発明の前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える。前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える。前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える。
【００３１】
本発明の第３の構成によれば、
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法が提供される。
【００３２】
本発明では、さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む。さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む。さらに、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含むことができる。
【００３３】
本発明の第４の構成によれば上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体が提供される。また、本発明の第５の構成によれば、上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムが提供される。
【発明を実施するための最良の形態】
【００３４】
以下、本発明を図面に示した具体的な実施の形態を使用して詳細に説明する。
[用語の定義]
本発明において使用する用語は、それぞれ以下の意味を有するものとして参照される。
（１）活性状態：オブジェクトがメモリ上に展開されており、利用者からのオブジェクトへの参照、機能呼出しに速やかに応答可能な状態を意味する。
（２）不活性状態：オブジェクトは、メモリ上に展開されているとは限らず、その場合、利用者からのオブジェクトへの参照、機能呼出しが発生した時点で、活性化の手続が行われ、活性化完了後に要求に対応する処理を実行する。なお、本発明では、オブジェクトの実行が終了し、リソースを解放し、メモリ領域に最小のオブジェクト実行単位を占有しているだけの状態を含む。
（３）永続化状態：オブジェクトの属性や状態がハードディスクなどに保存されており、それ以外のサーバ上のリソースを占有していない状態。不活性状態のオブジェクトのうち、実際にメモリ上から削除された状態を言う。
（４）アプリケーション：クライアントからの要求に応答してオブジェクト呼出しまたはメソッド呼出しなどを介して並列処理を行い、情報処理装置に対して一定の結果を与えその結果をクライアントに返す、単数または複数の構成オブジェクトからなるプログラム構造を言う。
（５）構成オブジェクト：アプリケーションを構成するプログラム・モジュール群を言う。
（６）共用データ：複数のクライアントからアクセスされ、書込み・読出し操作が可能であって、情報処理装置が管理するディジタル・データを言う。
（７）排他制御：共用データに対するアクセスの排他的なアクセス制御を意味する。本発明では、少なくとも書込み制御を目的とし、読取り制御については、排他制御に含めても良いし、含めずとも良い。
（８）ロック：共用データに対するアクセスを制御することを意味する。本発明においては、所謂、排他ロックおよび共有ロックのいずれのロック方式でも採用することができる。
（９）予約データ：排他制御手段が、参照し、予約を行うべき、または予約を解除するべき共用データを参照するためのデータを言う。
（１０）排他制御解除の識別値：排他制御手段が受取り、排他制御を解除するために使用する識別値であり、クライアントによる要求、セッションの有効期限満了またはチケット有効期限の満了のいずれかにより、適切な機能手段により生成されるデータ・パケット自体またはデータ・パケットに含まれるデータを言う。
【００３５】
以下、さらに、本発明の詳細な説明を行う。
[サーバ・インプリメンテーション]
図１は、本発明の情報処理装置１０の概略的な構成を示したブロック図である。本発明の情報処理装置１０は、概ねパーソナル・コンピュータまたはワークステーションなどを用いることができる。情報処理装置１０は、概ね、中央処理装置（ＣＰＵ）１２と、ＣＰＵ１２が使用するデータの高速アクセスを可能とするキャッシュ・メモリ１４と、ＣＰＵ１２の処理を可能とするＲＡＭ、ＤＲＡＭなどの固体メモリ素子から形成されるシステム・メモリ１６とを備える。ＣＰＵ１２、キャッシュ・メモリ１４、およびシステム・メモリ１６は、システム・バス１８を介して、情報処理装置１０の他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ２０およびネットワーク・デバイス（ＮＩＣ）２２へと接続されている。グラフィックス・ドライバ２０は、バスを介してディスプレイ装置２４に接続されて、ＣＰＵ１２による処理結果をディスプレイ画面上に表示させている。また、ネットワーク・デバイス２２は、トランスポート層レベルおよび物理層レベルで情報処理装置１０をネットワークへと接続して、クライアント（図示せず）とのセッションを確立させている。
【００３６】
システム・バス１８には、さらにＩ／Ｏバス・ブリッジ２６が接続されている。Ｉ／Ｏバス・ブリッジの下流側には、ＰＣＩなどのＩ／Ｏバス２８を介して、ＩＤＥ、ＡＴＡ、ＡＴＡＰＩ、シリアルＡＴＡ、ＳＣＳＩ、ＵＳＢなどにより、ハードディスクなどの記憶装置３０が接続されている。また、Ｉ／Ｏバス２８には、ＵＳＢなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置３２が接続され、システム管理者などのオペレータによる入力および指令を受付けている。
【００３７】
さらに、本発明の特定の実施の形態において、本発明をプリンタ・サーバなどとして使用する場合、または複合型の画像形成装置として使用する場合には、情報処理装置１０は、システム・バス１８に接続された画像処理ドライバ３４および画像処理デバイス３６を備えていても良い。画像処理ドライバ３４および画像処理デバイス３６は、図示しないＡＤＦおよび電子写真法を使用した画像形成エンジンを駆動して、画像処理・画像出力を行う場合に用いることができる。
【００３８】
情報処理装置１０が使用するＣＰＵとしては、より具体的には、例えば、ＰＥＮＴＩＵＭ（登録商標）〜ＰＥＮＴＩＵＭ（登録商標）  ＩＶ、ＰＥＮＴＩＵＭ（登録商標）互換ＣＰＵ、ＰＯＷＥＲ  ＰＣ（登録商標）、ＭＩＰＳなどを挙げることができる。
【００３９】
また、使用するオペレーティング・システム（ＯＳ）としては、ＭａｃＯＳ（商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘ  Ｓｅｒｖｅｒ、ＵＮＩＸ（登録商標）、ＡＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）またはそれ以外の適切なＯＳを挙げることができる。さらに、情報処理装置１０は、上述したＯＳ上で動作する、Ｃ＋＋、Ｖｉｓｕａｌ  Ｃ＋＋、ＶｉｓｕａｌＢａｓｉｃ、Ｊａｖａ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行する。
【００４０】
図２は、本発明の情報処理装置１０の機能手段構成およびクライアントＰＣの機能手段の構成を示したブロック図である。情報処理装置１０(以下、説明の便宜上、サーバ１０として参照する。）は、所謂、サーバ機能を提供する。サーバ１０は、その機能手段として、アプリケーション調停手段４０と、リソース管理手段４２とを含んでいる。アプリケーション調停手段４０は、サーブレット、ＲＰＣ(Remote
Procedure Call)、ＲＭＩ(Remote Method Invocation)、ＣＯＢＲＡなどのクライアント−サーバ機能を提供するアプリケーションを構成する構成オブジェクトの実行管理を行っている。また、リソース管理手段４２は、アプリケーションを構成する構成オブジェクトの実行状態を監視して、メモリ消費状態を監視しており、最適な実行環境を提供するために、不要と判断されたアプリケーションの構成オブジェクトのリソースを回収する。
【００４１】
サーバ１０は、さらに、複数のクライアントからのセッションを管理するセッション管理手段４４と、クライアントからの要求に応答して共用データの内容のコンシステンシを保証するための排他制御手段４６とを備えている。この他、サーバ１０は、ユーザ認証手段４８を備えている。ユーザ認証手段４８は、各クライアントに割当てられたパスワードおよびユーザ識別子などを使用してユーザ認証を行う。また、ユーザ認証手段４８は、ユーザＩＤ、チケット有効期限などを記録していて、ユーザ認証チケット（以下、単にチケットとして参照する。）の正当性を検査する。さらに、サーバ１０は、クライアントごとのトランザクションごとにセッション管理を実行している。
【００４２】
サーバ１０は、ネットワーク・デバイスなどのハードウェアに通信ソフトウェアなどのソフトアウェアから構成されるネットワーク・ドライバ５０を備えており、ＴＣＰ／ＩＰプロトコルまたはＵＤＰ／ＩＰプロトコル、ネットワークＢＩＯＳを使用する、所謂、ＮＥＴＢＵＩプロトコルなどを使用して、インターネット、ワイド・エリア・ネットワーク（ＷＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）などのネットワーク５２へと接続されている。
【００４３】
サーバ１０は、上述した通信インフラ基盤に基づいて、クライアント−サーバ型のサービス、ＣＧＩなどを使用したウェブ・サーバ、ＦＴＰサーバなどの機能を提供する。また、図２には例示的に一台のみを示しているが、ネットワーク５２には、サーバ１０に対して処理要求を行い、サーバ１０による処理結果を受取って処理を実行する複数のクライアントＰＣ５４が接続されている。
【００４４】
クライアント５４は、概ねパーソナル・コンピュータを使用することができ、ＰＥＮＴＩＵＭ（登録商標）〜ＰＥＮＴＩＵＭ（登録商標）ＩＶ、ＣＥＬＥＲＯＮ（登録商標）、ＡＴＨＲＯＮ（登録商標）などのＣＰＵを含み、Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｗｉｎｄｏｗｓ（登録商標）ＸＰなどのＯＳをプラットフォームとする。クライアント５４は、上述したＯＳの下でオブジェクト指向プログラムを実行して、オペレータに対して処理結果を提示する。なお、クライアント５４は、インターネット・イクスプローラ、ネットスケープ・ナビゲータ、Ｍｏｚｉｌｌａ、Ｏｐｅｒａなどのブラウザ・ソフトウェア５８を実装していて、サーバ１０に対してネットワーク・ドライバ６０を介して、ＨＴＴＰリクエストまたはＦＴＰリクエストを送信し、対応するそれぞれのレスポンスを受信することが可能とされていても良い。また、ＲＰＣまたはＲＭＩ、ＣＯＢＲＡ、Ｔｅｌｎｅｔなどのプロトコルにしたがい、サーバ１０に対する処理を依頼視、それレスポンスを受信することもできる。以下さらに、サーバ１０の機能手段を詳細に説明する。
【００４５】
[アプリケーション調停手段]
アプリケーション調停手段４０は、クライアントからの要求に応答して、要求されるアプリケーションの構成オブジェクトの呼出しを指令して、システム・メモリなどのリソースを確保させ、構成オブジェクトの実行を可能としている。また、アプリケーションによる実行結果は、実行終了に応答して、図示しないバスなどを経由してネットワーク・ドライバ６０へと送られ、ＴＣＰ／ＩＰなどの適切なトランザクション・プロトコルの下でクライアントへとデータ伝送される。
【００４６】
[リソース管理手段]
リソース管理手段４２は、例えば、リソース占有に対するタイムアウト・タイマを設定し、デーモン・プロセスまたはバックグラウンド・ジョブとしてタイムアウト経過以前に当該構成オブジェクトの実行がない場合には、destructor ()またはfinalize ()またはガーベージ・コレクタ呼出しなどのコマンドを実行する。この時点でオブジェクトの主要なリソース解放され、アプリケーションの構成オブジェクトは、ネットワーク・リソースなどのリソースを解放し、メモリ領域のみを占有する状態とされる。また、リソース管理手段４２は、さらに一定時間クライアント５４からの要求のないセッション自体をタイムアウトさせ、該当する構成オブジェクトに関してdelete
()またはdestroy ()などを実行させ、オブジェクトの状態を永続化状態へと戻し、メモリ上からアンロードさせ、リソースのさらなる有効利用を可能とする。
【００４７】
[ユーザ認証手段]
ユーザ認証手段４８は、クライアント５４から送信されるユーザＩＤやパスワードなどのデータ、およびサーバ１０へのユーザによるアクセス権原を示したチケットなどのクライアント情報に基づいてクライアントのアクセス権原を制御し、クライアント５４が正当なアクセス権原を保有していると判断した場合には、その制御をセッション管理手段に渡して、スレッド生成およびセッション確立などの処理を行わせる。また、クライアントが認証、アクセス権原を表示させるためのデータを含むチケットを送信する場合には、チケットのデータを使用して、セッションの開始・終了およびセッションの終了に同期して排他予約制御の解除などを指令する。
【００４８】
[セッション管理手段]
セッション管理手段４４は、クライアント５４からの新規かつ正当な要求を受付けると、新たなスレッドを生成するなどの方法により、セッションを確立させ、セッションごとの構成オブジェクトによる実行を可能とする。セッション管理手段４４は、セッション・タイムアウト・タイマを管理しており、セッション・タイムアウトの経過以前にアプリケーションの呼出し、または参照がない場合には、リソース管理手段に対してリソース解放を指令し、後述する排他制御手段に対して排他予約解除の通知を発行して、不要となった共用データに不当なロック状態が残されないようにする機能を備えている。
【００４９】
[排他制御手段]
排他制御手段４６は、セッション管理手段４４またはユーザ認証手段４８からの通知またはリソース管理手段４４によるタイムアウトなどによる構成オブジェクトの実行状況に応答し、セッション有効期間内に外部からの排他制御指令があった場合、予約データを設定して本発明の排他制御を行う。すなわち、排他制御手段は、データベース・オブジェクトなどを含むデータ・コンシステンシが必要とされる共用データや、画像形成エンジンなど同時に複数の処理要求に応答できない機能を利用する場合、セッション期間にわたり共用データのコンシステンシを確保する処理を実行する。また、各機能手段からの通知または外部指令に応答して、排他予約を解除する処理を実行する。
【００５０】
排他制御手段４６は、本発明においては、アプリケーション自体またはアプリケーションに含まれる構成オブジェクトが、使用している共用データの排他制御権を失った場合にでも、当該構成オブジェクトがセッション期間内に活性化されることを予定して、共用データの排他制御状態をセッション期間にわたり維持させる。本発明では、排他制御手段４６は、以下の条件が満たされるまでの間、共用データを、少なくとも他のセッションに対応したアプリケーションの構成オブジェクトによる共用データへの書込み操作からロックし、データ・コンシステンシを保持させる。
・クライアントからの排他予約解除の通知の受領、
・セッションの有効期限満了に伴う排他予約解除の通知の受領、
・チケット有効期限満了に伴う排他予約解除の通知の受領。
【００５１】
[排他制御を含むリソース管理方法の実施の形態]
図３に、本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移を示す。図３（ａ）がサーバにおけるアプリケーションの構成オブジェクトの状態を示し、図３（ｂ）が排他制御手段４６が行う予約状態（ロック）および予約解除状態（アンロック）の状態遷移を示した図である。なお、図３においては、状態遷移を発生させるオブジェクト指向プログラミング言語のコマンド（上側がＣ＋＋、下側がＪＡＶＡ（登録商標））を示している。なお、本発明では、Ｃ＋＋およびＪＡＶＡ（登録商標）以外のＰｅｒｌ、Ｒｕｂｙなどにおいて同等の機能を提供する予約語および予約語のシーケンスを使用することができる。
【００５２】
図３（ａ）に示すように、構成オブジェクトは、永続化状態からオブジェクト呼出し、またはメソッド呼出し、または参照呼出しを受けて活性化状態へと遷移して、各種の処理を実行する。構成オブジェクトは、実行終了後、リソースの効率的使用の点から第２のタイムアウトが経過した後に、destructor ()またはfinalize()などのコマンドにより関連リソースの解放処理が行われ、メモリ領域上にシステム・メモリ上にメモリ領域だけが確保された状態となる。
【００５３】
さらに、その後、構成オブジェクトは、リソース管理手段が含むスケジューラなどの判断に応答して、delete ()またはdestroy ()、またはＪＡＶＡ（登録商標）、ＰｅｒｌなどのＯＳ場合には、デーモン・プロセスとして機能するガーベージ・コレクタなどの機能によりメモリ上からも削除され、再度永続化状態へと遷移する。
【００５４】
図３（ｂ）は、本発明による排他制御を実行する構成オブジェクトの状態を概略的に示した図である。本発明の排他制御手段４６は、外部指令された共用データについて、外部指令を受付けた後、予約データに応答してセッションが終了するか、または排他制御終了の外部指令がなされるまでの最も早いタイミングまで共用データについて柔軟な排他制御を行う。すなわち、本発明は、構成オブジェクトの状態、すなわち、活性状態、不活性状態、または永続化状態などの状態に拘わらず、構成オブジェクトが使用していた共用オブジェクトの排他制御を持続させ、共用オブジェクトまたは共用データのコンシステンシを改善する。
【００５５】
排他制御手段の状態は、本発明では、
（１）セッション・タイムアウト経過（有効期限経過）などによるセッション終了、
（２）チケット有効期限の破棄または期限切れによるセッション終了、
（３）クライアントからの排他予約解除の通知または排他予約開始通知、
（４）当該セッション内におけるクライアントからの要求受領、
のいずれかにより遷移する。
【００５６】
本発明において、排他予約およびその解除の条件を満たすイベントは、排他予約手段の共用データのロック／アンロックについての状態遷移を生じさせる。本発明の排他制御手段４６は、本発明の第１の実施の形態では、セッション管理手段が、共用データに対して操作を行っていたアプリケーションの割当てられていたセッションが有効な期間、他のアプリケーションのインスタンスが、排他予約の対象となっている共用データに対して少なくとも書込み操作を実行しようとするかをモニタする。他の構成オブジェクトのインスタンスが排他予約されている共用データを変更しようとする場合、当該インスタンスを終了させるか、キューに登録する。一方、排他制御手段４６は、アプリケーション調停手段に対してその旨を通知し、アプリケーション調停手段に対して、例えば「要求されたオブジェクトが使用中なので、しばらくお待ち下さい。」などの通知をクライアントに対して送信させ、セッション自体を終了させる処理を行うこともできる。
【００５７】
また、本発明の第２の実施の形態では、セッションの有効期間内にアプリケーション調停手段が共用オブジェクトについて排他予約要求を受付けると、排他制御手段４６は、共用データに対するセマフォ操作またはFilelock ()オブジェクトまたはflock/unlockオブジェクトなどを使用して、共用オブジェクトの明示的な排他予約制御を実行する。
【００５８】
排他予約解除状態への遷移は、上記（１）〜（３）の条件に基づき、クライアントからの予約解除要求を受付けた時点、セッション管理手段４４またはユーザ認証手段４８がセッション終了と判断した時点で実行される。すなわち、本発明では、排他制御状態は、セッションが原則的には終了するまで、またはクライアント５４の要求に応答する時点まで、その遷移タイミングを柔軟に対応させつつ、かつ構成オブジェクトの状態に拘わらずにオブジェクトの排他制御を可能とする。
【００５９】
図４は、本発明のサーバが実行する情報処理方法のフローチャートを示す。図４に示した情報処理は、ステップＳ１００においてクライアントからの要求に応答してセッションが生成された後に開始される。ステップＳ１０１では、共用データに対してすでに予約データが登録されているかを判断する。この判断は、後述するリソース管理手段が管理するリソース管理テーブルの予約フィールドまたは排他管理テーブルのエントリのルックアップにより実行される。ルックアップの結果、リソース管理テーブルまたは排他管理テーブルに予約データがある場合（ｙｅｓ）、ステップＳ１０２へと処理を進める。
【００６０】
ステップＳ１０２では、クライアントからの排他予約要求に基づき、排他制御手段による排他予約制御を実行させる。ステップＳ１０３で、要求された処理に対応した構成オブジェクトのためのリソースを確保し、メソッド呼出しなどを実行して、構成オブジェクトの実行を開始させる。
【００６１】
また、ステップＳ１０１で予約データがないと判断された場合には、ステップＳ１１０へと進み、その時点までに排他予約要求があるか否かを判断する。その時点までに排他予約要求がない場合（ｎｏ）には、ステップＳ１１１で通常処理を実行させる。また、ステップＳ１１０で、その時点までに排他予約要求がなされた場合（ｙｅｓ）には、ステップＳ１１２で予約データを登録し、ステップＳ１０２へと処理を分岐させ、排他制御手段による制御を開始させる。
【００６２】
また、排他予約を行っていないクライアントから予約データが登録された共用データを利用する要求があった場合には、本発明においては、リソース管理手段は、当該アプリケーションの要求する構成オブジェクトのリソースを一旦確保した後、活性化処理を実行する。しかしながら、本発明による排他予約処理により、アプリケーションは、終了するか、または共用データを変更使用とする構成オブジェクトがキューに登録されて待機状態とされるので、排他予約を維持できる。
その後、ステップＳ１０４でアプリケーション（構成オブジェクト）の実行が終了する。本発明では、実行処理の終了は、例えば、以下の基準を使用することができる。
【００６３】
さらに処理は、ステップＳ１０５へと進み、アプリケーションがセッション有効期間内に、再度オブジェクト呼出しまたはオブジェクトを参照するプロセスがあったか、または設定されたリソース確保のためのタイムアウト時間が経過したか否かを判断する。
【００６４】
セッション有効期間内またはタイムアウト経過前にオブジェクト呼出しまたは構成オブジェクトを参照するプロセスからの呼出しがない場合（ｎｏ）には、再度ステップＳ１０５へと処理を戻し、オブジェクト呼出しや、参照に応答させつつ、セッション有効期限内、またはタイムアウト時間の経過までリソースの確保を継続させる。
【００６５】
一方、ステップＳ１０５でセッション有効期限が満了するか、またはタイムアウト時間が経過した場合（ｙｅｓ）には、本発明のリソース管理手段は、ステップＳ１０６において、destruct ()またはfinalize ()などのオブジェクトを起動してリソースを解放し、さらにその後、所定のタイムアウト経過までに構成オブジェクトの呼出しがない場合には、delete()、destroy()またはガーベージ・コレクタを呼出してオブジェクトを不活性状態とする。
【００６６】
さらにその後、リソース管理手段は、ステップＳ１０７でセッション有効期限内に当該セッション内で、アプリケーション（構成オブジェクト）の活性化指令が行われたか否かを判断する。ステップＳ１０７で、活性化指令があった場合（ｙｅｓ）には、ステップＳ１０１へと処理を戻し、再度、予約データがあるか否かを、予約データのルックアップにより判断し、判断に応答して通常処理、または本発明の排他制御処理を実行するかを判断する。この段階で、クライアントから予約解除要求がなされ、予約データが削除されている場合には、ステップＳ１０２〜Ｓ１０８の処理を経ないステップＳ１１１で示される通常処理へと変更する。また、前回までのループにおいて予約データが見出されず排他予約を行わない構成オブジェクトの場合でも、クライアントからの予約要求があった時点で、適切な手段により更新された予約データをルックアップすることにより、外部指令に応答して排他予約制御を行うことができる。
【００６７】
また、セッション有効期限内に活性化指令が行われなかった場合（ｎｏ）には、ステップＳ１０８で、排他制御解除の識別値を参照して当該オブジェクトについての排他制御解除を判断する。排他制御解除の識別値は、排他制御手段の状態を遷移させるためのデータであり、適切な機能手段が、クライアントからのセッション終了通知、セッション管理手段により通知されたセッション有効期限経過、またはユーザ認証手段により通知されたチケット有効期限経過、またはセッション異常終了などを検出して生成される。識別値を使用したステップＳ１０８の判断の結果、排他制御を解除させると判断した場合（ｙｅｓ）には、ステップＳ１０９で、排他制御手段に対して排他制御条件満了を示す通知を発行し、共用データを他の構成オブジェクトまたはプロセスに解放する。
【００６８】
図４に示した処理は、排他制御が終了するまでデッド・ロックまたはライブ・ロックなどの発生を最小限としつつ、外部からの排他予約の解除指令がない限り、セッション終了時まで共用オブジェクトの排他予約制御を可能とする。また、図４に示した処理は、ユーザによる共用データの排他予約を、予測不能なクライアントからのセッション終了要求や、チケット有効期限満了、排他予約要求、排他予約解除要求に柔軟に対応させつつ、セッションの開始および終了と関連づけて管理することを可能とする。
【００６９】
図５は、ステップＳ１０２で示した本発明の排他制御手段が実行する排他予約処理のフローチャートを示す。図５に示した処理を実行する排他制御手段は、ステップＳ２００で当該要求のセッションＩＤが、予約データが関連するセッションのセッションＩＤと一致するか否かを判断する。ステップＳ２００の判断の結果、予約データの登録されたセッションのセッションＩＤと一致する場合（ｙｅｓ）には、ステップＳ２０５へと進み、ステップＳ１０３へと処理を分岐させて構成オブジェクトの処理を開始させる。一方、ステップＳ２００の判断において、セッションＩＤが一致しないと判断された場合（ｎｏ）、ステップＳ２０１へと進んで、予約データに関連する共用オブジェクトについて書込み操作が要求されるか否かを、繰り返し判断する。
【００７０】
ステップＳ２０１で書込み操作が要求された場合（ｙｅｓ）、ステップＳ２０２へと進んで、当該アプリケーションを終了させるかまたはキューに待機させる。当該アプリケーションを終了させる場合には、該当する構成オブジェクトがそのコード内に排他制御コードを含む場合には、排他制御コードを非ブロックモードとし、排他権が獲得できない場合には、IOExceptionerrorを通知させることができる。また、キューに待機させる場合には、排他制御コードを、ブロックモードとすることができる。その後、ステップＳ２０３で、排他制御条件終了の通知を受領したか否かを判断する。ステップＳ２０３で排他制御終了条件の満了の通知を受取ると（ｙｅｓ）、当該排他予約制御を終了させ当該共用データに対する操作を許可する。
【００７１】
図６に、本発明における排他制御手段の第２の実施の形態を示す。図６に示した排他制御手段は、ステップＳ３００で、セッションＩＤは、予約データが関連するセッションのセッションＩＤと一致するか否かを判断する。ステップＳ３００の判断の結果、予約データの登録されたセッションのセッションＩＤと一致する場合（ｙｅｓ）には、ステップＳ３０５へと進んで排他制御手段を待機させて排他権を移転するか、またはセマフォ・メモリに対してＶ操作を行わせ排他権を解放し、ステップＳ３０６で図４のステップＳ１０３へと処理を分岐させて実行処理を開始させる。
【００７２】
一方、ステップＳ３００の判断において、セッションＩＤが一致しないと判断された場合（ｎｏ）、ステップＳ３０１へと進んで、予約データに関連する共用データについて排他制御手段の待機状態を停止させるか、排他制御手段は、セマフォ・メモリに対してＰ操作を施して、共用データの排他権を取得する。ステップＳ３０２では、当該アプリケーションを終了させるかまたはキューに待機させ、共用オブジェクトに対するアクセスを管理させる。第２の実施の形態でのロック処理の実施の形態としては、排他制御手段の待機状態を処理状態に遷移させてロック権原を取得させるか、または排他制御手段を、例えば、CSemaphoreなどの同期クラスのセマフォを使用して構成する実施の形態では、セマフォに対してＰ操作を行い、排他権を与えることにより行われる。
【００７３】
本発明では図６に示した排他制御手段を構成するために、種々のコードまたは処理を使用することができる。例えば、本発明で、プログラミング・コードとしてＪＡＶＡ（登録商標）を使用している場合には、コードNotify ()などを使用して、ステップＳ３００の判断が否定的な値を返す場合に、ロック・オブジェクトの待機状態を解消して排他権を獲得させて使用することもできる。この実施の形態のインプリメンテーションは、例えば、Filelock
()などを使用して記述したロック・オブジェクトを、例えばwait (）コードにより待機させておき、Notify ()の通知によりFilelock ()オブジェクトの待機状態を解放することによって排他予約を開始させることができる。また、ステップＳ３００の判断に応答して、CCriticalSection
クラスなどとして提供されるlock/unlockといった同期クラスのメソッドを実行させて排他権を獲得させることもできる。
【００７４】
再度図６を使用して説明すると、ステップＳ３０３では、ステップＳ１０９において発行される排他予約制御を解除する排他制御条件満了の通知を待機する。ステップＳ３０３で排他制御条件が満了して排他予約制御を終了させると判断される場合（ｙｅｓ）、ステップＳ３０４で排他制御手段を再度、待機状態に設定するか、またはファイルをアンロックするか、またはセマフォにＶ操作を行い、排他予約制御を終了させる。また、ステップＳ３０３の処理は、排他制御条件満了の通知を受領するまで、ステップＳ３０２へと分岐して、処理を繰り返す。
【００７５】
本発明では、排他制御手段を採用することにより、構成オブジェクトの活性化状態に拘わらず、セッションの開始から、セッションの終了まで共用データの排他予約制御を可能とする。このため、本発明では、構成オブジェクトの活性化状態と分離して共用データの排他制御を行うことが可能となり、情報処理装置の排他予約に対して柔軟性を提供することが可能となる。
【００７６】
また、本発明においてFilerock ()オブジェクトまたはflock()オブジェクトを使用する場合には、オプションとして、共有ロックまたは排他ロックのいずれのオプションを設定することができる。本発明では、専ら書込みを排除し、読取りは妨げることなく並列処理性を保証する点では、共有ロックを使用することが好ましい。また、セマフォを使用する場合、書込みオブジェクトと読取りオブジェクトに対して別々のセマフォを設定することにより、それぞれの構成オブジェクトが使用する共用データに関して、排他的書込み動作を実現する。また、本発明で排他権を共有ロックとして提供することにより、他のプロセスまたは構成オブジェクトに対しては並列的な読出し動作を可能として、処理性を向上させることもできる。
【００７７】
図７は、本発明のサーバが実行するリソース管理方法に使用されるデータ構造を示した図である。図７に示すように、セッションは、クライアントなどからの接続要求に応答して生成される。セッションの確立処理は、概略的に以下の処理を含む。まず接続要求の正当性がユーザ認証手段により確認されると、セッション管理手段が、セッションＩＤ８２を割当てる。その後、セッション管理手段は、当該セッションに対してそれぞれユーザＩＤ８４を割当て、さらにセッション・タイムアウト時間や、セッションの特殊性に対応した有効期限８６を設定して、セッション管理テーブル８０にエントリする。セッション有効期限は、通常では、サーバによるリソース管理の点から、サーバが設定する期限が設定されるが、ユーザ要求を受付けて設定することもできるし、要求されるアプリケーションごとに異なるセッションについて異なるタイムアウト時間に対応した有効期限を割当てることもできる。さらに、セッション管理テーブル８０には、複数のセッションを管理できるように、複数のクライアント要求に対応したセッションがエントリされていて、それぞれ固有のユーザＩＤおよび有効期限がエントリされている。
【００７８】
各セッションには、各セッションに対応したリソース管理テーブル８８が参照可能に、またはリンクされ、例えばセッションＩＤなどをキーとして、各セッションが要求するプロセスがルックアップ可能とされている。リソース管理テーブル８８は、一時ファイル、共用データ、構成オブジェクト、ネットワーク・コネクションなどのリソース管理手段が管理するべきオブジェクトの種類を示す種別データ９０と、当該共用データの識別値（ＩＤ）９２をエントリしている。リソース管理テーブル８８には、活性化フィールドおよび予約フィールドが形成されている。活性化フィールドには、さらに、構成オブジェクトが活性化状態にあることを示すフラグ(active_flag)９４がエントリされ、予約フィールドには、排他制御を行うための予約データとして利用される予約フラグ９６がエントリされている。
【００７９】
リソース管理手段は、アプリケーションに含まれる構成オブジェクトが活性化状態に遷移すると、図７に示したリソース管理テーブル８８の構成オブジェクトの活性化フィールドに、active_flagを設定する。図７に示した実施の形態では、オブジェクトＩＤが0x7725A0で指定された共用データは、実行終了していることが示され、同時に本発明による排他制御による予約管理を実行するため予約フラグが設定されているのが示されている。
【００８０】
一方、図７に示した実施の形態では、オブジェクトＩＤが0x773384で指定される構成オブジェクトは、実行状態であり、当該構成オブジェクトは、その時点では、排他予約を行わないことが示されている。また、複数の予約待ちセッションが存在する場合には、図７に示したリソース管理テーブル８８をオブジェクト・スプールなどとして構成し、予約待ちのセッションＩＤまたはオブジェクトＩＤまたはアプリケーションのプロセスＩＤなどを先入れ・先出し方式で管理させることもできる。
【００８１】
また、構成オブジェクトとは別に、リソース管理テーブル８８には、使用中の一時ファイルがそのＩＤと共にリストされていて、セッションＩＤにより指定されたセッションにおけるファイルが管理できるようにされている。
【００８２】
また、排他予約を要求した例えば、オブジェクトＩＤが0x7725A0で指定された共用データを利用していたアプリケーションは、そのセッション中に構成オブジェクトの実行が終了した後、セッション有効期間内に再度、排他予約の予約データを使用するアプリケーションを要求する。この場合、セッション管理手段は、クライアントの要求からセッションＩＤを取得し、当該セッションＩＤに関連した予約データをルックアップし、その後、セッション管理手段は、予約データが設定されているセッションＩＤとクライアントの要求に含まれるセッションＩＤとが一致するか否かを判断する。予約データが設定されているセッションＩＤとクライアントの要求に含まれるセッションＩＤとが一致する場合には、図５および図６に示した排他予約条件満了を示す識別値を生成し、排他処理を終了させる。この段階で、当該クライアントからのアプリケーション要求は、共用オブジェクトの排他予約に制限を受けず、共用オブジェクトを利用したアプリケーションの実行が可能となる。
【００８３】
図８は、本発明のサーバが実行するリソース管理方法で使用されるデータ構成の別の実施の形態を示した図である。図８に示した実施の形態では、セッション管理手段は、セッションの確立と同時にセッション管理テーブル８０にチケット情報１００をエントリする。チケット情報１００は、ユーザの正当性を保証し、かつサーバなどが発行した有効期限内でのサーバ・アクセスを許可するため、サーバが予めクライアントへと発行し、接続要求と同時クライアントがサーバに伝送してユーザ認証およびセッション・リソース管理のために用いられる情報である。チケット情報１００には、チケットＩＤ９８の他、対応するユーザのユーザＩＤ１０２、およびチケット有効期限１０４が含まれていて、チケット有効期限を使用して、セッションの有効期限とは独立して、チケットによるセッション・リソース管理を可能としている。
【００８４】
また、図８に示したデータ構成では、チケット有効期限内での排他予約を行うべき共用データをリストした排他管理テーブル１０６が与えられている。排他管理テーブル１０６は、図８に示したようにセッション管理テーブル８０のように記述されていても良いし、またリンクによるルックアップが可能となるように構成されていても良い。さらに、図８に示した排他管理テーブル１０６には、排他予約されている共用データＩＤ１０８がエントリされている。排他管理テーブル１０６内のように記述されたオブジェクトＩＤまたはプロセスＩＤにより全データが識別される場合には、オブジェクトＩＤ、またはプロセスＩＤを参照して予約データとすることができる。
【００８５】
図９は、本発明のサーバが実行するリソース管理方法により使用されるデータ構成のさらに他の実施の形態を示した図である。図９では、セッション管理テーブル８０と、排他管理テーブル１０６とを、独立してルックアップできるように、別の構成とした実施の形態である。図９に示した実施の形態では、排他管理テーブル１０６は、チケットＩＤ１１０と、セッションＩＤ１１２と、オブジェクトＩＤ１０８とをエントリする。図９に示した実施の形態では、セッション管理手段は、クライアントのセッションの正当性を、セッションの有効期限とシステム・タイマとを比較してデーモン・プロセスまたはバックグラウンド・ジョブとしてモニタしている。
【００８６】
まず、ユーザ認証手段の処理から説明すると、ユーザ認証手段は、同様にデーモン・プロセスまたはバックグラウンド・ジョブとして実行され、クライアントのセッション正当性を、チケット有効期限をキーとして、システム・タイマと比較して継続的にモニタする。ユーザ認証手段は、チケット有効期間が満了する場合には、排他制御解除の識別値を生成し、排他管理テーブル１０６にエントリされ、排他予約を解除するべきオブジェクトＩＤまたはプロセスＩＤの値と共に返す。排他制御解除の肯定的な値が返されると、排他制御手段は、排他管理テーブル１０６にエントリされたオブジェクトＩＤやプロセスＩＤの値を引数として、対応する共用オブジェクトの排他制御を終了させる処理を実行する。なお、排他制御手段は、オブジェクトＩＤ、プロセスＩＤ、およびセッションＩＤの値を、プロセス間通信、または直接的な対応するテーブルのルックアップを使用して引数として取得することができる。
【００８７】
なお、リソース管理手段は、この実施の形態の場合でも、図９に示したと同様にリソース管理テーブルを使用して、セッションに関連する構成オブジェクトのリソースの解放を行う点では同様の処理を実行する。
【００８８】
図１０は、本発明の情報処理方法の各モジュールによる処理を示したシーケンス図である。図１０に示したシーケンスは、クライアントから明示的なセッション終了処理が送付された場合(異常終了を含む。）の実施の形態である。アプリケーション調停手段が、クライアントからセッション終了要求を受付けると、アプリケーション調停手段は、セッション管理手段に対してセッション終了通知を発行する。セッション管理手段は、当該通知を受取ると、セッション終了通知に対応する関連リソースの解放を、リソース管理手段へと指令する。
【００８９】
リソース管理手段は、通知を受取ると、排他制御手段に対して、排他制御解除を示す識別値を含む通知を送付して、排他制御による予約管理を終了させる。また、排他予約の解除は、適切な機能手段によるテーブル内のエントリを削除するだけで済む。また、排他制御手段は、排他制御解除の通知を受けた時点で排他権を放棄し、他の構成オブジェクトに対して共用データを空け渡す。一方、リソース管理手段によるリソース解放処理は、リソース管理テーブルにエントリされた当該セッションに関連する構成オブジェクトのオブジェクトＩＤまたはプロセスＩＤを検索する。次いで、検索された構成オブジェクトについて、構成オブジェクトの活性化状態または不活性化状態に拘わらず、実行停止およびアンマウント処理（destroy ()、delete（）、またはガーベージ・コレクタの起動）を実行する。なお、排他制御手段に対する通知を、リソース解放処理の実行以前に行うとして説明したのは、ロック状態が残ったまま、リソースが回収されてしまうと、デッド・ロックやライブ・ロックの発生する可能性があるためである。なお、本発明の他の実施の形態では、排他制御手段とは別に、定期的に予約データを強制回収する回収手段を設け、セッション有効期限に応答して予約データを回収することで、不要な予約データを残留させない処理を用いることができる。
【００９０】
なお、この際に使用される排他制御解除の識別値は、排他制御解除を完了させるためデータ・パケットまたはフラグであれば、その形式には制限されない。例えば、上述した識別値は、グローバル変数として構成されたリストに登録したフラグでも良いし、構成オブジェクトＩＤなどの処理上必要される他のデータを含むＴＣＰまたはＵＤＰなどのデータ・パケットの適切なデータ・ビットに割り当てられたフラグとすることができる。また、本発明では、さらに、他のマルチビット・コードとして生成することができる。
【００９１】
また、同様な機能を有するいかなる形式のデータ構造であっても、プロセス適合性がある限り本発明で排他予約を解除する通知として使用することができる。リソース管理手段は、リソース解放処理が終了すると、セッション管理手段へとリソース解放処理の終了を通知する。その後、セッション管理手段は、セッションＩＤ削除、ハードウェア・リソース割当て解放などのセッション解放処理を行い、アプリケーション調停手段に対してセッション終了を通知して、クライアントからの要求に対応してリソース解放およびセッション終了処理を完了させる。
【００９２】
セッション管理手段は、さらに、デーモン・プロセスまたはバックグラウンド・ジョブとしてセッションの有効期限満了またはチケット有効期限満了のセッションを検索する。検索の結果、有効期限が満了したセッションが見出されると、セッション管理手段は、当該構成オブジェクトが実行中、または排他予約中であるか不活性状態にあるかに拘わらず、リソース管理手段に通知を行う。リソース管理手段は、当該通知を受取ると、排他制御解除を示す識別値を生成して、排他制御手段へと通知する。排他制御手段は、予約状態にあるリソースの排他制御を終了させ、リソース管理手段は、当該セッションが管理する構成オブジェクトの関連リソースを解放させる。
【００９３】
当該セッションのすべての関連リソースの解放が終了するとリソース管理手段は、セッション管理手段へとセッション解放処理の終了を通知する。セッション管理手段は、関連リソースの解放の通知を受領すると、リソース解放処理を実行して期限切れのセッションを終了させ、リソースの有効利用を行う。同様の処理は、期限切れのセッションがある限り実行され、継続的なリソース管理が行われる。
【００９４】
図１１は、図８に示したデータ構造を使用する本発明の情報処理方法の第２の実施の形態を示す。図１１に示す実施の形態では、ユーザ認証手段が、チケット有効期限満了と判断すると、ユーザ認証手段は、リソース管理手段へとチケット破棄通知を発行する。リソース管理手段は、チケット破棄通知を受取ると、チケット破棄に対応する排他予約の解除の通知を発行する。また、リソース管理手段は、セッションＩＤに関連する構成オブジェクトの終了および関連リソースの解放処理を実行する。
【００９５】
図１１に示された実施の形態では、排他予約を解除する処理は、予約データをルックアップして行われ、また、排他予約の解除は、予約データのエントリを削除することにより実行できる。本発明の別の実施の形態では、予約データの削除は、リソース管理手段またはセッション管理手段またはユーザ認証手段または排他制御手段のうち、プログラミングまたはソフトウェア・インプリメンテーション上、適切な機能手段が行うことができる。
【００９６】
排他予約の解放処理が終了すると、排他制御手段は、リソース管理手段へと通知を行い、その後、リソース管理手段は、ユーザ認証手段およびセッション管理手段およびアプリケーション調停手段へとチケット失効処理の完了を通知して、一連のセッション終了処理を完了する。
【００９７】
ユーザ認証手段は、上述したと同様に、定期的にチケット有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および予約解除処理を、図１０で説明したと同様の処理を適用して、リソースの有効利用を可能とする。
【００９８】
図１２は、図９に示したデータ構造を使用する本発明の情報処理方法の第３の実施の形態を示す。図１２に示した実施の形態では、セッション管理手段は、セッションの有効期限が満了したセッションを検索し、リソース管理手段へと、検索されたセッションＩＤを含むセッションが使用するリソースのリソース解放通知を送付する。同時に、ユーザ認証手段は、ユーザ認証チケットに記述されたデータに基づいてチケット有効期限を判断し、チケット有効期限が経過したユーザのセッションを検索し、リソース解放通知をリソース管理手段へと通知する。リソース管理手段は、排他制御手段へと排他制御解除の識別値を送付し、図１２で説明した実施の形態では、排他制御手段の機能を上述した処理によって停止させ、また予約データを削除して予約の解除を完了させる。
【００９９】
リソース管理手段は、指定されたセッションが管理する構成オブジェクトを終了させ、関連リソースを回収する処理を実行する。図１２では、図８または図９に示した排他管理テーブル１０６を参照して予約の解除を行うもののとして説明するが、予約の解除は、リソース管理テーブル８８の予約フラグをルックアップして予約解除を行うこともできる。
【０１００】
図１２に示す実施の形態では、指定されたセッションに関連する構成オブジェクトの解放処理および排他予約の解除処理がすべて完了すると、リソース解放処理が終了したことをセッション管理手段へと通知する。セッション管理手段は、セッション解放処理を実行し、セッションが解放された通知をアプリケーション調停手段に通知して、セッションの終了を完了する。
【０１０１】
セッション管理手段は、さらに、上述したと同様に、定期的に有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および排他予約の解除処理を、図１０および図１１で説明したと同様の処理を適用して実行する。
【０１０２】
図１３は、本発明の排他制御を含む情報処理方法の作用を説明した図である。図１３に示すように、アプリケーション調停手段からのセッション開始通知があると、セッション管理手段は、ユーザ認証によりその正当性を認証した後、セッションを確立してセッションＩＤを付与し、セッション確立通知をアプリケーション調停手段へと通知する。アプリケーション調停手段は、セッション管理手段に対してセッションＩＤを指令してオブジェクト活性化要求を通知する。
【０１０３】
セッション管理手段は、オブジェクト活性化要求を受取ると、リソース管理手段に対して、セッションＩＤと共に要求された構成オブジェクトに関連するリソースの割当てなどを行い、構成オブジェクトを初期化させる。また、active_flagまたは必要に応じて予約データまたは予約に関連する共用データＩＤ（または、アドレス値）などが、適切な手段により、リソース管理テーブルまたは排他管理テーブルに設定・記入される。リソース管理手段は、リソース初期化が終了すると、リソース初期化完了通知をセッション管理手段に通知する。
【０１０４】
セッション管理手段では、リソース管理手段からのリソース初期化終了通知を受取り、アプリケーション調停手段に実行可能通知を発行する。アプリケーション調停手段は、構成オブジェクトの初期化が終了した通知を受取って、構成オブジェクトを含むアプリケーションの処理を開始させる。この段階では、各構成オブジェクトの排他制御は、当該構成オブジェクト自体が含む排他制御コードFilerock()、lock()、またはセマフォなどを使用して管理されても良い。一方、構成オブジェクト自体が同期クラスなどの排他制御機構を含まない場合でも、本発明によれば、予約要求に応答して排他制御手段による排他予約が実行される。
【０１０５】
その後、共用データにつき、クライアントからの明示的な予約要求またはオブジェクト予約解除要求をアプリケーション調停手段が受付けると、アプリケーション調停手段は、適切な手段、例えば排他制御手段へと通知を行い、セッション管理テーブルの予約データを更新する。なお、当該処理は、例示的なものであり、排他制御手段以外の、セッション管理手段、ユーザ認証手段またはリソース管理手段のいずれの手段が上述した予約フラグの設定・解除、エントリへの記入・削除を行っても良い。
【０１０６】
このタイミング以後に構成オブジェクトの実行が終了すると、本発明の情報処理方法では、予約データをルックアップさせ、そのまま排他予約状態を継続させるか、または排他予約をさせずに当該構成オブジェクトを実行させることが可能となる。すなわち、本発明では、クライアントによるセッション中の予約データの更新に応答して、排他予約状態、または排他予約解除状態を遷移させることができ、排他制御処理の選択に対する柔軟性を提供することができる。
【０１０７】
図１３には、また、本発明の排他予約処理の状態遷移のタイミングを示す。従来の排他制御処理では、構成オブジェクトにより排他制御が行われる場合には、構成オブジェクトが初期化され実行開始されると、構成オブジェクトに含まれるロック・コードにより排他制御が開始される。その後、構成オブジェクトの実行が終了すると、区間Ａで示されるように構成オブジェクト自体のコードによる排他制御は行われない。
【０１０８】
しかしながら、本発明の排他予約処理では、区間Ｂでクライアントからの外部指令に応答して排他制御手段が排他予約制御を実行し、構成オブジェクトの活性化状態に拘わらず、排他制御条件が満了するまで、本発明の排他制御手段による排他制御が開始される。
【０１０９】
区間Ｂの間には、元のクライアントからの要求や、他のクライアントからの共用データを利用するアプリケーションの要求がなされる可能性があるものの、本発明で使用する排他制御手段により、コンシステンシを維持しなければならない共用データは排他予約された状態に維持されている。このため、排他予約された共用データに関していえば、構成オブジェクトの状態とは独立して、他のプロセスは少なくとも書込みが禁止され、コンシステンシを維持することが可能となる。
【０１１０】
この処理において、排他予約が存在するセッション内で他のクライアントから新たな接続要求があった場合には、排他予約されていない共用データを使用するアプリケーションの実行要求については、その実行が問題なく初期化できる。
【０１１１】
一方、排他予約状態にある共用データを使用するアプリケーションの実行については、当該セッションが維持され、かつ排他予約が継続している間、その実行ができないか、またはキューに待機される。この場合、アプリケーション調停手段は、クライアントに対し、「オブジェクトが使用中なので、「○○○」オブジェクトは、yyyy/mm/dd/aa:bbまで利用できない可能性があります。」などの通知または表示を、例えば、ブラウザ・ソフトウェアを介したＨＴＴＰレスポンス、ＦＴＰレスポンス、またはＲＭＩコールバックなどとして返すことにより、クライアントを介してユーザに状況を通知することができる。
【０１１２】
また、本発明の上記機能は、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
【０１１３】
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【０１１４】
【図１】本発明の情報処理装置の概略的な構成を示したブロック図。
【図２】本発明の情報処理装置の機能手段の構成およびクライアントＰＣのモジュール構成を示したブロック図。
【図３】本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移および排他予約が行われる状態を示した図。
【図４】本発明のサーバが実行するリソース管理方法のフローチャート。
【図５】本発明における排他制御手段の第１の実施の形態を示した図。
【図６】本発明における排他制御手段の第２の実施の形態を示した図。
【図７】本発明のサーバが実行するリソース管理方法に使用されるデータ構成を示した図。
【図８】本発明のサーバが実行するリソース管理方法が使用するデータ構成の別の実施の形態を示した図。
【図９】本発明のサーバが実行するリソース管理方法が使用するデータ構成のさらに別の実施の形態を示した図。
【図１０】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図１１】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図１２】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図１３】本発明の排他予約管理を含むリソース管理方法による機能を作用を説明した図。
【図１４】オブジェクト指向プログラムにおける状態遷移を示した図。
【図１５】従来でのオブジェクトの活性化状態と排他制御とセッションおよびチケット有効期限との関係を示した図。
【符号の説明】
【０１１５】
１０…情報処理装置、１２…ＣＰＵ、１４…キャッシュ・メモリ、１６…システム・メモリ、１８…システム・バス、２０…グラフィックス・ドライバ、２２…ネットワーク・デバイス、２４…ディスプレイ、２６…Ｉ／Ｏバスブリッジ、２８…Ｉ／Ｏバス、３０…記憶装置（ハードディスク装置）、３２…キーボード／ポインティング・デバイス、３４…画像処理ドライバ、３６…画像処理デバイス、４０…アプリケーション調停手段、４２…リソース管理手段、４４…セッション管理手段、４６…排他制御手段、４８…ユーザ認証手段、５０…ネットワーク・ドライバ、５２…ネットワーク、５４…クライアント、５６…クライアント・アプリケーション、５８…ブラウザ・ソフトウェア、６０…ネットワーク・ドライバ（ハード＋ドライバ・ソフトウェア）、８０…セッション管理テーブル、８８…リソース管理テーブル、１０６…排他管理テーブル
【図１】
2007219741.tif 000003
【図２】
2007219741.tif 000004
【図３】
2007219741.tif 000005
【図４】
2007219741.tif 000006
【図５】
2007219741.tif 000007
【図６】
2007219741.tif 000008
【図７】
2007219741.tif 000009
【図８】
2007219741.tif 000010
【図９】
2007219741.tif 000011
【図１０】
2007219741.tif 000012
【図１１】
2007219741.tif 000013
【図１２】
2007219741.tif 000014
【図１３】
2007219741.tif 000015
【図１４】
2007219741.tif 000016
【図１５】
2007219741.tif 000017