情報処理装置、情報処理方法、記録媒体およびプログラム
【課題】 並列処理を行いながら効率的に排他予約管理を含むリソース管理を実行する情報処理装置、情報処理方法、記録媒体、およびプログラムを提供する。
【解決手段】 本発明の情報処理装置10は、セッションごとにアプリケーションの実行を調停し、アプリケーションが共用データを使用して作業する領域をシステム・メモリに生成させ、アプリケーションを実行させるアプリケーション調停手段40と、アプリケーションが割当てられたセッションの終了と同期するまで共用データの排他制御を行う排他制御手段46とを備えている。情報処理装置10は、クライアントからの要求、セッションの有効期限、またはチケット有効期限の満了に応答して、排他予約を外部指令またはセッションの終了に同期して共用データの排他制御を行う。
【解決手段】 本発明の情報処理装置10は、セッションごとにアプリケーションの実行を調停し、アプリケーションが共用データを使用して作業する領域をシステム・メモリに生成させ、アプリケーションを実行させるアプリケーション調停手段40と、アプリケーションが割当てられたセッションの終了と同期するまで共用データの排他制御を行う排他制御手段46とを備えている。情報処理装置10は、クライアントからの要求、セッションの有効期限、またはチケット有効期限の満了に応答して、排他予約を外部指令またはセッションの終了に同期して共用データの排他制御を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、並列処理を行いながら効率的に排他予約管理を含むリソース管理を実行する情報処理装置、情報処理方法、記録媒体、およびプログラムに関する。
【背景技術】
【0002】
近年、コンピュータなどの情報処理装置の高性能化、およびオブジェクト・プログラミングの高度化に伴い、複数のタスクを並列処理することが可能となっている。上述した並列処理は、ネットワークに接続され、種々のサービスを提供する情報処理装置で多く用いられている。並列処理を行う情報処理装置は、ネットワークに接続された複数のクライアント・コンピュータ(以下、クライアントとして参照する。)からの同時的な要求を受付けるので、各クライアントからの要求を並列処理することにより、高効率な処理を行う必要がある。
【0003】
この目的から並列処理を行う情報処理装置では、所謂CGI(Common
Gateway Interface)として参照される処理を採用し、C++、Java(登録商標)、サーブレット、アプレット、Perl、Rubyなどの高級言語で記述されたCGIプログラムを実装して、クライアントからの要求に対応している。また、クライアントからのRMI(Remote
Method Invocation)などに応答して所定の処理を実行して、その実行結果をクライアントに返すなどの処理によってクライアントからの要求に対応する場合もある。
【0004】
並列処理は、複数のクライアントからの要求に応答してオブジェクト・クラスのインスタンスを生成し、それらを「セッション」として参照される実行単位として処理を行う実行形式を採用する場合が多い。セッションは、独立した実行単位として管理されているので、それぞれのクライアントからの個別的な要求に対応した処理を実行することが可能となる。この場合、情報処理装置は、特定のクライアントに返される実行結果を生成するために、情報処理装置が管理する共用データを提供する。共用データは、各セッションまたはスレッド単位でそれぞれ種々のアプリケーションにより個別的にアクセスされ、種々の目的のために操作が加えられる。上述した、共用データとしては、データベース・オブジェクト、マルチメディア・オブジェクト、イメージ・オブジェクト、テキスト・オブジェクト、ブラウザ・ヒストリ、アクセス・ログ、実行ログ、SGML、HTML、XMLなどの構造化言語で記述された構造化オブジェクト、または画像処理を行うための共用メモリ空間に格納されたデータなどを挙げることができる。
【0005】
上述したように近年における情報処理装置は、オブジェクト指向プログラミングを利用したオブジェクト(以下、本発明においては、オブジェクト・クラスのインスタンスを含むものとして定義する。)が必要に応じてオブジェクト呼出しなどにより呼出され、実行される。この場合、オブジェクトの実行状態は、情報処理装置内で、種々の状態を取る。図14は、情報処理装置内でのオブジェクトの状態遷移を示した図である。
【0006】
オブジェクトは、情報処理装置内においてクライアントの要求を受付けて生成されるセッションごとに生成され、クライアントからの要求に応答した処理を実行する。この場合のオブジェクトの状態は、大きく分けて3状態に分類することができる。図14に示すように、オブジェクトの状態には、永続化状態と、活性状態と、不活性状態とに分類でき、オブジェクトの処理状況に対応して、各状態を遷移する。
【0007】
図14を使用してより具体的に各状態の遷移を説明する。ハードディスクなどに格納されたオブジェクトの実行ファイルは、オブジェクト呼出しまたはメソッド呼出しに応答して、システム・メモリに展開され、処理を実際に実行するオブジェクトが生成され、クライアントからの要求に応じた処理を実行する。実行が終了すると、オブジェクトはメモリ領域にオブジェクト自体またはオブジェクトが使用するデータまたはネットワーク・データなどのデータを含んだまま休止状態として残される。これは、メソッド呼出しのたびに、オブジェクトのメモリへの展開・処理終了後のオブジェクト状態の保存・メモリの解放を繰り返すことを避け、連続した呼出しに対応する応答性能を向上するためである。
【0008】
しかし、このように利用済みオブジェクトをメモリ上に休止状態として残しておくと、メモリ領域が枯渇してしまう。このため、不要と判断されたオブジェクトは、ユーザからの明示的な指示、または情報処理装置に設定される管理ルール(利用されていないオブジェクトのアイドル時間の長さなど)に基づき不活性化され、アンロードなどの処理を受けて割当てられていたリソースが回収される。
【0009】
上述した並列処理を行う情報処理装置では、また、並列的に共用データがアクセスを受けるので、共用データについてデータ・コンシステンシを確保する必要がある。この目的のため、従来から、同期化またはファイル・ロックなどの処理方式、所謂、排他制御方法が知られている。同期化またはファイル・ロック処理は、処理を行うオブジェクトが要求する限り、共用データへの少なくとも書込みを排他制御することにより、他のインスタンスによるデータ更新アクセスを排除する共用データ管理方法である。
【0010】
上述した排他制御方法は、適切に実装されるとデッド・ロックまたはライブ・ロックなどの実行を阻害する不都合を発生させることなく、適切な並列処理の管理を可能とする。この目的から、通常、排他制御は、オブジェクト単位で行われ、オブジェクトが終了した時点で共用データの排他制御を解放する。このため、従来の排他制御方法では、共用データの排他制御がオブジェクトの活性期間を超えて制御することができないという場合が多かった。
【0011】
図15には、従来の排他制御方式の排他制御期間を概略的に示す。オブジェクトの活性化されている期間は、デッド・ロックやライブ・ロックなどの発生をできるだけさせるように、通常では、オブジェクトの活性化期間を超えないうちに排他制御が終了する。したがって、オブジェクトの活性期間は、オブジェクトによる共用データの排他期間以上の期間とする必要がある。このことは、逆に、オブジェクトの活性化期間を超えて排他制御を行うことができないという不都合があることを示す。また、セッションの期間中に、クライアント・プロセスからの外部指令または外部要求を受付ける場合も発生する。
【0012】
上述した不都合を回避する目的として、オブジェクトを頻繁に活性化−不活性化の遷移を繰り返すことも考えられる。しかしながら、オブジェクトの種類によっては、所定のオブジェクトを初期化し、排他制御を設定し、排他制御やオブジェクトを終了させる処理は、情報処理装置に対し、処理時間および処理オーバヘッドを要求し、処理効率を低下させることがある。加えて、上述のような頻繁なオブジェクトの初期化−終了処理は、情報処理装置のスループットに対して著しい影響を与えることも想定される。
【0013】
一方、クライアントからの要求に応答して、同一セッションにおいて再度オブジェクトを活性化させる場合も考えられる。この場合には、セッションの期間中、排他予約を行うことで、データのコンシステンシを与えることが好ましいということができる。このような場合としては、同一セッション内で、オフライン処理に切換え、作成していたドキュメントなどをHTTP、FTP、またはTelnetなどにより情報処理装置に伝送するような場合である。このような場合、以前に使用していたデータが他のオブジェクトにより変更されている場合には、同一セッション内で再度アクセスしたクライアント・ユーザに対して重大な作業性の低下を生じさせる。しかしながら、クライアントにより確立されたセッションの有効期間は、概ね、所定のオブジェクトの活性化期間よりも長い。このため、不用意にセッション全期間にわたり排他制御を行うと、他のセッションの作業効率を低下させることにもつながり、好ましい制御であると言うことができない。
【0014】
すなわち、従来の排他制御方式では、所定のオブジェクト・クラスが活性化されることを予測して共用データの排他状態を予約しておくことができないという問題がある。また、従来の排他制御方法では、オブジェクトの不活性化と同時に排他制御も同時に消滅してしまい、セッション・タイムアウトまでの時間を充分に有効に利用することができないという問題がある。また、仮にセッション全体にわたって排他制御を行う場合には、クライアントの作業状態に拘わらず、常に排他制御が行われる。このため、当該共用データがアンロックされるまでブロック状態またはビジー状態で待機しなければならず、所謂、デッド・ロックやライブ・ロックなどの問題が発生し情報処理装置に無用なオーバヘッドを生じさせるという不都合があった。
【0015】
これまで、排他制御を使用する情報処理装置は種々提案されており、例えば特開2004−246873号公報(特許文献1)では、機能要求に応じたトランザクションをクライアントごとに管理し、タイムアウト前にトランザクションを終了させるため、クライアントからの管理開始要求または管理開始要求以外の要求に基づき排他制御を管理する情報処理装置が開示されている。
【0016】
特許文献1では、所定の要求に応答して排他制御を開始させる情報処理装置は、開示されているものの、セッションの全期間にわたり共用データの排他制御を行う点を課題とするものではない。また、排他制御の開始を他のインスタンスに対するデッド・ロックまたはライブ・ロックの発生を最低限としつつ、情報処理装置の並列処理スケーラビリティを保証することを課題とするものではない。
【0017】
また、特開平11−272543号公報(特許文献2)では、複数のサーバ間において同一のドキュメントを共有し、同一のドキュメントの複製を各サーバに配布し、あるドキュメントの更新を開始するサーバが他のサーバに対して更新開始通知を送り、更新が終了したときに更新終了通知を送り、他のサーバは、更新開始通知を受取ったときに該当するドキュメントに対する更新をロックし、更新終了通知を受取ったときにロックを解除するドキュメント分散処理方法が開示されている。
【0018】
特許文献2に開示されたドキュメント分散処理方法では、所定のサーバによるオブジェクトの更新開始通知を他のサーバに通信し、終了時に更新終了通知を他のサーバに通信することにより、複数のサーバにおけるドキュメントの共有を行う。この方法は、複数のサーバにおけるデータ共有を可能とするものの、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御するものではない。
【0019】
さらに、特開平9−026923号公報(特許文献3)では、中央処理ユニットと、プロセスに割当てられたメモリと、メモリ内に存在し、前記プロセス内で活性しているオブジェクトを識別する活性オブジェクト・リストを備え、選択オブジェクトに関連して、オブジェクトが活性状態にあるとき、不活性の期間を表示するオブジェクト不活性指定期間値を格納するオブジェクト・タイムアウト変数を使用して、不活性期間経過後にオブジェクトを非活性化させるコンピュータ・システムが開示されている。特許文献3に開示された方法は、オブジェクトの活性化状態から非活性状態への遷移を効率的に行うことを目的とするものであり、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御することを目的とするものではない。
【特許文献1】特開2004−246873号公報
【特許文献2】特開平11−272543号公報
【特許文献3】特開平9−026923号公報
【発明の開示】
【発明が解決しようとする課題】
【0020】
すなわち、デッド・ロックやライブ・ロックなどの不都合が発生する可能性を最小限としつつ、排他予約を行うことにより、共用データのコンシステンシを向上することが必要とされていた。さらに、クライアントによる処理の状態に応答して、排他制御を解除して、他のオブジェクトによる共用データの利用を可能とすることにより、並列処理性を向上させることが望まれていた。
【0021】
さらに、排他制御の目的のためだけにオブジェクトをセッション・タイムアウトが満了するまで生存または活性化状態で待機させておくことによるハードウェア資源の浪費による処理効率の低下を改善することが望まれていた。
【0022】
本発明は、上記従来技術に鑑みてなされたものであり、並列処理を実行する情報処理装置においてデッド・ロックやライブ・ロックなどの不都合の発生を最低限としつつ、共用データのコンシステンシを高め、同時に有効利用することが可能な情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【0023】
また、本発明の他の目的は、オブジェクトの活性期間を超えて排他状態を継続させる、すなわち、排他制御の予約を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【0024】
本発明のさらに他の目的は、共用データのコンシステンシを向上させつつ、排他制御の予約管理によるデッド・ロックまたはライブ・ロックの発生を最小限とし、クライアントからの排他制御の開始または終了の指令に柔軟に対応でき、ハードウェア資源のより効率的な使用を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0025】
本発明は、上記課題を解決するために、排他予約制御を開始し、クライアントからの指令またはセッション終了に同期して排他予約制御を終了させる排他制御手段を採用する。本発明の実施の形態では、排他制御手段は、外部からの明示的な要求を受付けてアプリケーションの実行終了後にも使用する共用オブジェクトの排他予約を行うための予約データを設定する。排他制御手段は、アプリケーションの実行が終了した時点で、予約フラグなどの予約データの状態を参照し、該当する共用オブジェクトを使用する他のアプリケーションが少なくとも書込み操作を行おうとする場合に、アプリケーションを終了させるか、または当該アプリケーションの書込みオブジェクトを実行が可能となるまでキューに待機させる。
【0026】
また、本発明の他の実施の形態では、クライアントからの外部指令に応答して、登録されている予約データをルックアップすることにより、排他権を排他制御手段に譲渡し、予約データが設定された共用データにつき、排他予約制御を開始する。リソース管理手段は、排他制御手段とは独立して、不要になったアプリケーションのリソースを回収して、他のアプリケーションのために提供する。さらに排他制御手段は、クライアントからの外部指令またはセッション終了条件の満了に応答して、排他予約のための予約データを解除して、共用データの排他予約制御を終了させることにより、他のオブジェクトによる共用データの利用を可能とする。本発明の排他制御手段は、情報処理装置のリソースを最大限に有効利用しつつ、共用オブジェクトの排他予約を、外部指令およびセッションの終了と同期して管理することを可能とする。
【0027】
すなわち、本発明によれば、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置が提供できる。
【0028】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える。前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。
【0029】
本発明の第2の構成では、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了時から前記共用データの排他制御を開始し、前記アプリケーションが割当てられた前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置が提供される。
【0030】
本発明の前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える。前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える。前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える。
【0031】
本発明の第3の構成によれば、
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法が提供される。
【0032】
本発明では、さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む。さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む。さらに、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含むことができる。
【0033】
本発明の第4の構成によれば上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体が提供される。また、本発明の第5の構成によれば、上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムが提供される。
【発明を実施するための最良の形態】
【0034】
以下、本発明を図面に示した具体的な実施の形態を使用して詳細に説明する。
[用語の定義]
本発明において使用する用語は、それぞれ以下の意味を有するものとして参照される。
(1)活性状態:オブジェクトがメモリ上に展開されており、利用者からのオブジェクトへの参照、機能呼出しに速やかに応答可能な状態を意味する。
(2)不活性状態:オブジェクトは、メモリ上に展開されているとは限らず、その場合、利用者からのオブジェクトへの参照、機能呼出しが発生した時点で、活性化の手続が行われ、活性化完了後に要求に対応する処理を実行する。なお、本発明では、オブジェクトの実行が終了し、リソースを解放し、メモリ領域に最小のオブジェクト実行単位を占有しているだけの状態を含む。
(3)永続化状態:オブジェクトの属性や状態がハードディスクなどに保存されており、それ以外のサーバ上のリソースを占有していない状態。不活性状態のオブジェクトのうち、実際にメモリ上から削除された状態を言う。
(4)アプリケーション:クライアントからの要求に応答してオブジェクト呼出しまたはメソッド呼出しなどを介して並列処理を行い、情報処理装置に対して一定の結果を与えその結果をクライアントに返す、単数または複数の構成オブジェクトからなるプログラム構造を言う。
(5)構成オブジェクト:アプリケーションを構成するプログラム・モジュール群を言う。
(6)共用データ:複数のクライアントからアクセスされ、書込み・読出し操作が可能であって、情報処理装置が管理するディジタル・データを言う。
(7)排他制御:共用データに対するアクセスの排他的なアクセス制御を意味する。本発明では、少なくとも書込み制御を目的とし、読取り制御については、排他制御に含めても良いし、含めずとも良い。
(8)ロック:共用データに対するアクセスを制御することを意味する。本発明においては、所謂、排他ロックおよび共有ロックのいずれのロック方式でも採用することができる。
(9)予約データ:排他制御手段が、参照し、予約を行うべき、または予約を解除するべき共用データを参照するためのデータを言う。
(10)排他制御解除の識別値:排他制御手段が受取り、排他制御を解除するために使用する識別値であり、クライアントによる要求、セッションの有効期限満了またはチケット有効期限の満了のいずれかにより、適切な機能手段により生成されるデータ・パケット自体またはデータ・パケットに含まれるデータを言う。
【0035】
以下、さらに、本発明の詳細な説明を行う。
[サーバ・インプリメンテーション]
図1は、本発明の情報処理装置10の概略的な構成を示したブロック図である。本発明の情報処理装置10は、概ねパーソナル・コンピュータまたはワークステーションなどを用いることができる。情報処理装置10は、概ね、中央処理装置(CPU)12と、CPU12が使用するデータの高速アクセスを可能とするキャッシュ・メモリ14と、CPU12の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるシステム・メモリ16とを備える。CPU12、キャッシュ・メモリ14、およびシステム・メモリ16は、システム・バス18を介して、情報処理装置10の他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ20およびネットワーク・デバイス(NIC)22へと接続されている。グラフィックス・ドライバ20は、バスを介してディスプレイ装置24に接続されて、CPU12による処理結果をディスプレイ画面上に表示させている。また、ネットワーク・デバイス22は、トランスポート層レベルおよび物理層レベルで情報処理装置10をネットワークへと接続して、クライアント(図示せず)とのセッションを確立させている。
【0036】
システム・バス18には、さらにI/Oバス・ブリッジ26が接続されている。I/Oバス・ブリッジの下流側には、PCIなどのI/Oバス28を介して、IDE、ATA、ATAPI、シリアルATA、SCSI、USBなどにより、ハードディスクなどの記憶装置30が接続されている。また、I/Oバス28には、USBなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置32が接続され、システム管理者などのオペレータによる入力および指令を受付けている。
【0037】
さらに、本発明の特定の実施の形態において、本発明をプリンタ・サーバなどとして使用する場合、または複合型の画像形成装置として使用する場合には、情報処理装置10は、システム・バス18に接続された画像処理ドライバ34および画像処理デバイス36を備えていても良い。画像処理ドライバ34および画像処理デバイス36は、図示しないADFおよび電子写真法を使用した画像形成エンジンを駆動して、画像処理・画像出力を行う場合に用いることができる。
【0038】
情報処理装置10が使用するCPUとしては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標) IV、PENTIUM(登録商標)互換CPU、POWER PC(登録商標)、MIPSなどを挙げることができる。
【0039】
また、使用するオペレーティング・システム(OS)としては、MacOS(商標)、Windows(登録商標)、Windows(登録商標)200X Server、UNIX(登録商標)、AIX(登録商標)、LINUX(登録商標)またはそれ以外の適切なOSを挙げることができる。さらに、情報処理装置10は、上述したOS上で動作する、C++、Visual C++、VisualBasic、Java(登録商標)、Perl、Rubyなどのオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行する。
【0040】
図2は、本発明の情報処理装置10の機能手段構成およびクライアントPCの機能手段の構成を示したブロック図である。情報処理装置10(以下、説明の便宜上、サーバ10として参照する。)は、所謂、サーバ機能を提供する。サーバ10は、その機能手段として、アプリケーション調停手段40と、リソース管理手段42とを含んでいる。アプリケーション調停手段40は、サーブレット、RPC(Remote
Procedure Call)、RMI(Remote Method Invocation)、COBRAなどのクライアント−サーバ機能を提供するアプリケーションを構成する構成オブジェクトの実行管理を行っている。また、リソース管理手段42は、アプリケーションを構成する構成オブジェクトの実行状態を監視して、メモリ消費状態を監視しており、最適な実行環境を提供するために、不要と判断されたアプリケーションの構成オブジェクトのリソースを回収する。
【0041】
サーバ10は、さらに、複数のクライアントからのセッションを管理するセッション管理手段44と、クライアントからの要求に応答して共用データの内容のコンシステンシを保証するための排他制御手段46とを備えている。この他、サーバ10は、ユーザ認証手段48を備えている。ユーザ認証手段48は、各クライアントに割当てられたパスワードおよびユーザ識別子などを使用してユーザ認証を行う。また、ユーザ認証手段48は、ユーザID、チケット有効期限などを記録していて、ユーザ認証チケット(以下、単にチケットとして参照する。)の正当性を検査する。さらに、サーバ10は、クライアントごとのトランザクションごとにセッション管理を実行している。
【0042】
サーバ10は、ネットワーク・デバイスなどのハードウェアに通信ソフトウェアなどのソフトアウェアから構成されるネットワーク・ドライバ50を備えており、TCP/IPプロトコルまたはUDP/IPプロトコル、ネットワークBIOSを使用する、所謂、NETBUIプロトコルなどを使用して、インターネット、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)などのネットワーク52へと接続されている。
【0043】
サーバ10は、上述した通信インフラ基盤に基づいて、クライアント−サーバ型のサービス、CGIなどを使用したウェブ・サーバ、FTPサーバなどの機能を提供する。また、図2には例示的に一台のみを示しているが、ネットワーク52には、サーバ10に対して処理要求を行い、サーバ10による処理結果を受取って処理を実行する複数のクライアントPC54が接続されている。
【0044】
クライアント54は、概ねパーソナル・コンピュータを使用することができ、PENTIUM(登録商標)〜PENTIUM(登録商標)IV、CELERON(登録商標)、ATHRON(登録商標)などのCPUを含み、Windows(登録商標)2000、Windows(登録商標)NT、Windows(登録商標)XPなどのOSをプラットフォームとする。クライアント54は、上述したOSの下でオブジェクト指向プログラムを実行して、オペレータに対して処理結果を提示する。なお、クライアント54は、インターネット・イクスプローラ、ネットスケープ・ナビゲータ、Mozilla、Operaなどのブラウザ・ソフトウェア58を実装していて、サーバ10に対してネットワーク・ドライバ60を介して、HTTPリクエストまたはFTPリクエストを送信し、対応するそれぞれのレスポンスを受信することが可能とされていても良い。また、RPCまたはRMI、COBRA、Telnetなどのプロトコルにしたがい、サーバ10に対する処理を依頼視、それレスポンスを受信することもできる。以下さらに、サーバ10の機能手段を詳細に説明する。
【0045】
[アプリケーション調停手段]
アプリケーション調停手段40は、クライアントからの要求に応答して、要求されるアプリケーションの構成オブジェクトの呼出しを指令して、システム・メモリなどのリソースを確保させ、構成オブジェクトの実行を可能としている。また、アプリケーションによる実行結果は、実行終了に応答して、図示しないバスなどを経由してネットワーク・ドライバ60へと送られ、TCP/IPなどの適切なトランザクション・プロトコルの下でクライアントへとデータ伝送される。
【0046】
[リソース管理手段]
リソース管理手段42は、例えば、リソース占有に対するタイムアウト・タイマを設定し、デーモン・プロセスまたはバックグラウンド・ジョブとしてタイムアウト経過以前に当該構成オブジェクトの実行がない場合には、destructor ()またはfinalize ()またはガーベージ・コレクタ呼出しなどのコマンドを実行する。この時点でオブジェクトの主要なリソース解放され、アプリケーションの構成オブジェクトは、ネットワーク・リソースなどのリソースを解放し、メモリ領域のみを占有する状態とされる。また、リソース管理手段42は、さらに一定時間クライアント54からの要求のないセッション自体をタイムアウトさせ、該当する構成オブジェクトに関してdelete
()またはdestroy ()などを実行させ、オブジェクトの状態を永続化状態へと戻し、メモリ上からアンロードさせ、リソースのさらなる有効利用を可能とする。
【0047】
[ユーザ認証手段]
ユーザ認証手段48は、クライアント54から送信されるユーザIDやパスワードなどのデータ、およびサーバ10へのユーザによるアクセス権原を示したチケットなどのクライアント情報に基づいてクライアントのアクセス権原を制御し、クライアント54が正当なアクセス権原を保有していると判断した場合には、その制御をセッション管理手段に渡して、スレッド生成およびセッション確立などの処理を行わせる。また、クライアントが認証、アクセス権原を表示させるためのデータを含むチケットを送信する場合には、チケットのデータを使用して、セッションの開始・終了およびセッションの終了に同期して排他予約制御の解除などを指令する。
【0048】
[セッション管理手段]
セッション管理手段44は、クライアント54からの新規かつ正当な要求を受付けると、新たなスレッドを生成するなどの方法により、セッションを確立させ、セッションごとの構成オブジェクトによる実行を可能とする。セッション管理手段44は、セッション・タイムアウト・タイマを管理しており、セッション・タイムアウトの経過以前にアプリケーションの呼出し、または参照がない場合には、リソース管理手段に対してリソース解放を指令し、後述する排他制御手段に対して排他予約解除の通知を発行して、不要となった共用データに不当なロック状態が残されないようにする機能を備えている。
【0049】
[排他制御手段]
排他制御手段46は、セッション管理手段44またはユーザ認証手段48からの通知またはリソース管理手段44によるタイムアウトなどによる構成オブジェクトの実行状況に応答し、セッション有効期間内に外部からの排他制御指令があった場合、予約データを設定して本発明の排他制御を行う。すなわち、排他制御手段は、データベース・オブジェクトなどを含むデータ・コンシステンシが必要とされる共用データや、画像形成エンジンなど同時に複数の処理要求に応答できない機能を利用する場合、セッション期間にわたり共用データのコンシステンシを確保する処理を実行する。また、各機能手段からの通知または外部指令に応答して、排他予約を解除する処理を実行する。
【0050】
排他制御手段46は、本発明においては、アプリケーション自体またはアプリケーションに含まれる構成オブジェクトが、使用している共用データの排他制御権を失った場合にでも、当該構成オブジェクトがセッション期間内に活性化されることを予定して、共用データの排他制御状態をセッション期間にわたり維持させる。本発明では、排他制御手段46は、以下の条件が満たされるまでの間、共用データを、少なくとも他のセッションに対応したアプリケーションの構成オブジェクトによる共用データへの書込み操作からロックし、データ・コンシステンシを保持させる。
・クライアントからの排他予約解除の通知の受領、
・セッションの有効期限満了に伴う排他予約解除の通知の受領、
・チケット有効期限満了に伴う排他予約解除の通知の受領。
【0051】
[排他制御を含むリソース管理方法の実施の形態]
図3に、本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移を示す。図3(a)がサーバにおけるアプリケーションの構成オブジェクトの状態を示し、図3(b)が排他制御手段46が行う予約状態(ロック)および予約解除状態(アンロック)の状態遷移を示した図である。なお、図3においては、状態遷移を発生させるオブジェクト指向プログラミング言語のコマンド(上側がC++、下側がJAVA(登録商標))を示している。なお、本発明では、C++およびJAVA(登録商標)以外のPerl、Rubyなどにおいて同等の機能を提供する予約語および予約語のシーケンスを使用することができる。
【0052】
図3(a)に示すように、構成オブジェクトは、永続化状態からオブジェクト呼出し、またはメソッド呼出し、または参照呼出しを受けて活性化状態へと遷移して、各種の処理を実行する。構成オブジェクトは、実行終了後、リソースの効率的使用の点から第2のタイムアウトが経過した後に、destructor ()またはfinalize()などのコマンドにより関連リソースの解放処理が行われ、メモリ領域上にシステム・メモリ上にメモリ領域だけが確保された状態となる。
【0053】
さらに、その後、構成オブジェクトは、リソース管理手段が含むスケジューラなどの判断に応答して、delete ()またはdestroy ()、またはJAVA(登録商標)、PerlなどのOS場合には、デーモン・プロセスとして機能するガーベージ・コレクタなどの機能によりメモリ上からも削除され、再度永続化状態へと遷移する。
【0054】
図3(b)は、本発明による排他制御を実行する構成オブジェクトの状態を概略的に示した図である。本発明の排他制御手段46は、外部指令された共用データについて、外部指令を受付けた後、予約データに応答してセッションが終了するか、または排他制御終了の外部指令がなされるまでの最も早いタイミングまで共用データについて柔軟な排他制御を行う。すなわち、本発明は、構成オブジェクトの状態、すなわち、活性状態、不活性状態、または永続化状態などの状態に拘わらず、構成オブジェクトが使用していた共用オブジェクトの排他制御を持続させ、共用オブジェクトまたは共用データのコンシステンシを改善する。
【0055】
排他制御手段の状態は、本発明では、
(1)セッション・タイムアウト経過(有効期限経過)などによるセッション終了、
(2)チケット有効期限の破棄または期限切れによるセッション終了、
(3)クライアントからの排他予約解除の通知または排他予約開始通知、
(4)当該セッション内におけるクライアントからの要求受領、
のいずれかにより遷移する。
【0056】
本発明において、排他予約およびその解除の条件を満たすイベントは、排他予約手段の共用データのロック/アンロックについての状態遷移を生じさせる。本発明の排他制御手段46は、本発明の第1の実施の形態では、セッション管理手段が、共用データに対して操作を行っていたアプリケーションの割当てられていたセッションが有効な期間、他のアプリケーションのインスタンスが、排他予約の対象となっている共用データに対して少なくとも書込み操作を実行しようとするかをモニタする。他の構成オブジェクトのインスタンスが排他予約されている共用データを変更しようとする場合、当該インスタンスを終了させるか、キューに登録する。一方、排他制御手段46は、アプリケーション調停手段に対してその旨を通知し、アプリケーション調停手段に対して、例えば「要求されたオブジェクトが使用中なので、しばらくお待ち下さい。」などの通知をクライアントに対して送信させ、セッション自体を終了させる処理を行うこともできる。
【0057】
また、本発明の第2の実施の形態では、セッションの有効期間内にアプリケーション調停手段が共用オブジェクトについて排他予約要求を受付けると、排他制御手段46は、共用データに対するセマフォ操作またはFilelock ()オブジェクトまたはflock/unlockオブジェクトなどを使用して、共用オブジェクトの明示的な排他予約制御を実行する。
【0058】
排他予約解除状態への遷移は、上記(1)〜(3)の条件に基づき、クライアントからの予約解除要求を受付けた時点、セッション管理手段44またはユーザ認証手段48がセッション終了と判断した時点で実行される。すなわち、本発明では、排他制御状態は、セッションが原則的には終了するまで、またはクライアント54の要求に応答する時点まで、その遷移タイミングを柔軟に対応させつつ、かつ構成オブジェクトの状態に拘わらずにオブジェクトの排他制御を可能とする。
【0059】
図4は、本発明のサーバが実行する情報処理方法のフローチャートを示す。図4に示した情報処理は、ステップS100においてクライアントからの要求に応答してセッションが生成された後に開始される。ステップS101では、共用データに対してすでに予約データが登録されているかを判断する。この判断は、後述するリソース管理手段が管理するリソース管理テーブルの予約フィールドまたは排他管理テーブルのエントリのルックアップにより実行される。ルックアップの結果、リソース管理テーブルまたは排他管理テーブルに予約データがある場合(yes)、ステップS102へと処理を進める。
【0060】
ステップS102では、クライアントからの排他予約要求に基づき、排他制御手段による排他予約制御を実行させる。ステップS103で、要求された処理に対応した構成オブジェクトのためのリソースを確保し、メソッド呼出しなどを実行して、構成オブジェクトの実行を開始させる。
【0061】
また、ステップS101で予約データがないと判断された場合には、ステップS110へと進み、その時点までに排他予約要求があるか否かを判断する。その時点までに排他予約要求がない場合(no)には、ステップS111で通常処理を実行させる。また、ステップS110で、その時点までに排他予約要求がなされた場合(yes)には、ステップS112で予約データを登録し、ステップS102へと処理を分岐させ、排他制御手段による制御を開始させる。
【0062】
また、排他予約を行っていないクライアントから予約データが登録された共用データを利用する要求があった場合には、本発明においては、リソース管理手段は、当該アプリケーションの要求する構成オブジェクトのリソースを一旦確保した後、活性化処理を実行する。しかしながら、本発明による排他予約処理により、アプリケーションは、終了するか、または共用データを変更使用とする構成オブジェクトがキューに登録されて待機状態とされるので、排他予約を維持できる。
その後、ステップS104でアプリケーション(構成オブジェクト)の実行が終了する。本発明では、実行処理の終了は、例えば、以下の基準を使用することができる。
【0063】
さらに処理は、ステップS105へと進み、アプリケーションがセッション有効期間内に、再度オブジェクト呼出しまたはオブジェクトを参照するプロセスがあったか、または設定されたリソース確保のためのタイムアウト時間が経過したか否かを判断する。
【0064】
セッション有効期間内またはタイムアウト経過前にオブジェクト呼出しまたは構成オブジェクトを参照するプロセスからの呼出しがない場合(no)には、再度ステップS105へと処理を戻し、オブジェクト呼出しや、参照に応答させつつ、セッション有効期限内、またはタイムアウト時間の経過までリソースの確保を継続させる。
【0065】
一方、ステップS105でセッション有効期限が満了するか、またはタイムアウト時間が経過した場合(yes)には、本発明のリソース管理手段は、ステップS106において、destruct ()またはfinalize ()などのオブジェクトを起動してリソースを解放し、さらにその後、所定のタイムアウト経過までに構成オブジェクトの呼出しがない場合には、delete()、destroy()またはガーベージ・コレクタを呼出してオブジェクトを不活性状態とする。
【0066】
さらにその後、リソース管理手段は、ステップS107でセッション有効期限内に当該セッション内で、アプリケーション(構成オブジェクト)の活性化指令が行われたか否かを判断する。ステップS107で、活性化指令があった場合(yes)には、ステップS101へと処理を戻し、再度、予約データがあるか否かを、予約データのルックアップにより判断し、判断に応答して通常処理、または本発明の排他制御処理を実行するかを判断する。この段階で、クライアントから予約解除要求がなされ、予約データが削除されている場合には、ステップS102〜S108の処理を経ないステップS111で示される通常処理へと変更する。また、前回までのループにおいて予約データが見出されず排他予約を行わない構成オブジェクトの場合でも、クライアントからの予約要求があった時点で、適切な手段により更新された予約データをルックアップすることにより、外部指令に応答して排他予約制御を行うことができる。
【0067】
また、セッション有効期限内に活性化指令が行われなかった場合(no)には、ステップS108で、排他制御解除の識別値を参照して当該オブジェクトについての排他制御解除を判断する。排他制御解除の識別値は、排他制御手段の状態を遷移させるためのデータであり、適切な機能手段が、クライアントからのセッション終了通知、セッション管理手段により通知されたセッション有効期限経過、またはユーザ認証手段により通知されたチケット有効期限経過、またはセッション異常終了などを検出して生成される。識別値を使用したステップS108の判断の結果、排他制御を解除させると判断した場合(yes)には、ステップS109で、排他制御手段に対して排他制御条件満了を示す通知を発行し、共用データを他の構成オブジェクトまたはプロセスに解放する。
【0068】
図4に示した処理は、排他制御が終了するまでデッド・ロックまたはライブ・ロックなどの発生を最小限としつつ、外部からの排他予約の解除指令がない限り、セッション終了時まで共用オブジェクトの排他予約制御を可能とする。また、図4に示した処理は、ユーザによる共用データの排他予約を、予測不能なクライアントからのセッション終了要求や、チケット有効期限満了、排他予約要求、排他予約解除要求に柔軟に対応させつつ、セッションの開始および終了と関連づけて管理することを可能とする。
【0069】
図5は、ステップS102で示した本発明の排他制御手段が実行する排他予約処理のフローチャートを示す。図5に示した処理を実行する排他制御手段は、ステップS200で当該要求のセッションIDが、予約データが関連するセッションのセッションIDと一致するか否かを判断する。ステップS200の判断の結果、予約データの登録されたセッションのセッションIDと一致する場合(yes)には、ステップS205へと進み、ステップS103へと処理を分岐させて構成オブジェクトの処理を開始させる。一方、ステップS200の判断において、セッションIDが一致しないと判断された場合(no)、ステップS201へと進んで、予約データに関連する共用オブジェクトについて書込み操作が要求されるか否かを、繰り返し判断する。
【0070】
ステップS201で書込み操作が要求された場合(yes)、ステップS202へと進んで、当該アプリケーションを終了させるかまたはキューに待機させる。当該アプリケーションを終了させる場合には、該当する構成オブジェクトがそのコード内に排他制御コードを含む場合には、排他制御コードを非ブロックモードとし、排他権が獲得できない場合には、IOExceptionerrorを通知させることができる。また、キューに待機させる場合には、排他制御コードを、ブロックモードとすることができる。その後、ステップS203で、排他制御条件終了の通知を受領したか否かを判断する。ステップS203で排他制御終了条件の満了の通知を受取ると(yes)、当該排他予約制御を終了させ当該共用データに対する操作を許可する。
【0071】
図6に、本発明における排他制御手段の第2の実施の形態を示す。図6に示した排他制御手段は、ステップS300で、セッションIDは、予約データが関連するセッションのセッションIDと一致するか否かを判断する。ステップS300の判断の結果、予約データの登録されたセッションのセッションIDと一致する場合(yes)には、ステップS305へと進んで排他制御手段を待機させて排他権を移転するか、またはセマフォ・メモリに対してV操作を行わせ排他権を解放し、ステップS306で図4のステップS103へと処理を分岐させて実行処理を開始させる。
【0072】
一方、ステップS300の判断において、セッションIDが一致しないと判断された場合(no)、ステップS301へと進んで、予約データに関連する共用データについて排他制御手段の待機状態を停止させるか、排他制御手段は、セマフォ・メモリに対してP操作を施して、共用データの排他権を取得する。ステップS302では、当該アプリケーションを終了させるかまたはキューに待機させ、共用オブジェクトに対するアクセスを管理させる。第2の実施の形態でのロック処理の実施の形態としては、排他制御手段の待機状態を処理状態に遷移させてロック権原を取得させるか、または排他制御手段を、例えば、CSemaphoreなどの同期クラスのセマフォを使用して構成する実施の形態では、セマフォに対してP操作を行い、排他権を与えることにより行われる。
【0073】
本発明では図6に示した排他制御手段を構成するために、種々のコードまたは処理を使用することができる。例えば、本発明で、プログラミング・コードとしてJAVA(登録商標)を使用している場合には、コードNotify ()などを使用して、ステップS300の判断が否定的な値を返す場合に、ロック・オブジェクトの待機状態を解消して排他権を獲得させて使用することもできる。この実施の形態のインプリメンテーションは、例えば、Filelock
()などを使用して記述したロック・オブジェクトを、例えばwait ()コードにより待機させておき、Notify ()の通知によりFilelock ()オブジェクトの待機状態を解放することによって排他予約を開始させることができる。また、ステップS300の判断に応答して、CCriticalSection
クラスなどとして提供されるlock/unlockといった同期クラスのメソッドを実行させて排他権を獲得させることもできる。
【0074】
再度図6を使用して説明すると、ステップS303では、ステップS109において発行される排他予約制御を解除する排他制御条件満了の通知を待機する。ステップS303で排他制御条件が満了して排他予約制御を終了させると判断される場合(yes)、ステップS304で排他制御手段を再度、待機状態に設定するか、またはファイルをアンロックするか、またはセマフォにV操作を行い、排他予約制御を終了させる。また、ステップS303の処理は、排他制御条件満了の通知を受領するまで、ステップS302へと分岐して、処理を繰り返す。
【0075】
本発明では、排他制御手段を採用することにより、構成オブジェクトの活性化状態に拘わらず、セッションの開始から、セッションの終了まで共用データの排他予約制御を可能とする。このため、本発明では、構成オブジェクトの活性化状態と分離して共用データの排他制御を行うことが可能となり、情報処理装置の排他予約に対して柔軟性を提供することが可能となる。
【0076】
また、本発明においてFilerock ()オブジェクトまたはflock()オブジェクトを使用する場合には、オプションとして、共有ロックまたは排他ロックのいずれのオプションを設定することができる。本発明では、専ら書込みを排除し、読取りは妨げることなく並列処理性を保証する点では、共有ロックを使用することが好ましい。また、セマフォを使用する場合、書込みオブジェクトと読取りオブジェクトに対して別々のセマフォを設定することにより、それぞれの構成オブジェクトが使用する共用データに関して、排他的書込み動作を実現する。また、本発明で排他権を共有ロックとして提供することにより、他のプロセスまたは構成オブジェクトに対しては並列的な読出し動作を可能として、処理性を向上させることもできる。
【0077】
図7は、本発明のサーバが実行するリソース管理方法に使用されるデータ構造を示した図である。図7に示すように、セッションは、クライアントなどからの接続要求に応答して生成される。セッションの確立処理は、概略的に以下の処理を含む。まず接続要求の正当性がユーザ認証手段により確認されると、セッション管理手段が、セッションID82を割当てる。その後、セッション管理手段は、当該セッションに対してそれぞれユーザID84を割当て、さらにセッション・タイムアウト時間や、セッションの特殊性に対応した有効期限86を設定して、セッション管理テーブル80にエントリする。セッション有効期限は、通常では、サーバによるリソース管理の点から、サーバが設定する期限が設定されるが、ユーザ要求を受付けて設定することもできるし、要求されるアプリケーションごとに異なるセッションについて異なるタイムアウト時間に対応した有効期限を割当てることもできる。さらに、セッション管理テーブル80には、複数のセッションを管理できるように、複数のクライアント要求に対応したセッションがエントリされていて、それぞれ固有のユーザIDおよび有効期限がエントリされている。
【0078】
各セッションには、各セッションに対応したリソース管理テーブル88が参照可能に、またはリンクされ、例えばセッションIDなどをキーとして、各セッションが要求するプロセスがルックアップ可能とされている。リソース管理テーブル88は、一時ファイル、共用データ、構成オブジェクト、ネットワーク・コネクションなどのリソース管理手段が管理するべきオブジェクトの種類を示す種別データ90と、当該共用データの識別値(ID)92をエントリしている。リソース管理テーブル88には、活性化フィールドおよび予約フィールドが形成されている。活性化フィールドには、さらに、構成オブジェクトが活性化状態にあることを示すフラグ(active_flag)94がエントリされ、予約フィールドには、排他制御を行うための予約データとして利用される予約フラグ96がエントリされている。
【0079】
リソース管理手段は、アプリケーションに含まれる構成オブジェクトが活性化状態に遷移すると、図7に示したリソース管理テーブル88の構成オブジェクトの活性化フィールドに、active_flagを設定する。図7に示した実施の形態では、オブジェクトIDが0x7725A0で指定された共用データは、実行終了していることが示され、同時に本発明による排他制御による予約管理を実行するため予約フラグが設定されているのが示されている。
【0080】
一方、図7に示した実施の形態では、オブジェクトIDが0x773384で指定される構成オブジェクトは、実行状態であり、当該構成オブジェクトは、その時点では、排他予約を行わないことが示されている。また、複数の予約待ちセッションが存在する場合には、図7に示したリソース管理テーブル88をオブジェクト・スプールなどとして構成し、予約待ちのセッションIDまたはオブジェクトIDまたはアプリケーションのプロセスIDなどを先入れ・先出し方式で管理させることもできる。
【0081】
また、構成オブジェクトとは別に、リソース管理テーブル88には、使用中の一時ファイルがそのIDと共にリストされていて、セッションIDにより指定されたセッションにおけるファイルが管理できるようにされている。
【0082】
また、排他予約を要求した例えば、オブジェクトIDが0x7725A0で指定された共用データを利用していたアプリケーションは、そのセッション中に構成オブジェクトの実行が終了した後、セッション有効期間内に再度、排他予約の予約データを使用するアプリケーションを要求する。この場合、セッション管理手段は、クライアントの要求からセッションIDを取得し、当該セッションIDに関連した予約データをルックアップし、その後、セッション管理手段は、予約データが設定されているセッションIDとクライアントの要求に含まれるセッションIDとが一致するか否かを判断する。予約データが設定されているセッションIDとクライアントの要求に含まれるセッションIDとが一致する場合には、図5および図6に示した排他予約条件満了を示す識別値を生成し、排他処理を終了させる。この段階で、当該クライアントからのアプリケーション要求は、共用オブジェクトの排他予約に制限を受けず、共用オブジェクトを利用したアプリケーションの実行が可能となる。
【0083】
図8は、本発明のサーバが実行するリソース管理方法で使用されるデータ構成の別の実施の形態を示した図である。図8に示した実施の形態では、セッション管理手段は、セッションの確立と同時にセッション管理テーブル80にチケット情報100をエントリする。チケット情報100は、ユーザの正当性を保証し、かつサーバなどが発行した有効期限内でのサーバ・アクセスを許可するため、サーバが予めクライアントへと発行し、接続要求と同時クライアントがサーバに伝送してユーザ認証およびセッション・リソース管理のために用いられる情報である。チケット情報100には、チケットID98の他、対応するユーザのユーザID102、およびチケット有効期限104が含まれていて、チケット有効期限を使用して、セッションの有効期限とは独立して、チケットによるセッション・リソース管理を可能としている。
【0084】
また、図8に示したデータ構成では、チケット有効期限内での排他予約を行うべき共用データをリストした排他管理テーブル106が与えられている。排他管理テーブル106は、図8に示したようにセッション管理テーブル80のように記述されていても良いし、またリンクによるルックアップが可能となるように構成されていても良い。さらに、図8に示した排他管理テーブル106には、排他予約されている共用データID108がエントリされている。排他管理テーブル106内のように記述されたオブジェクトIDまたはプロセスIDにより全データが識別される場合には、オブジェクトID、またはプロセスIDを参照して予約データとすることができる。
【0085】
図9は、本発明のサーバが実行するリソース管理方法により使用されるデータ構成のさらに他の実施の形態を示した図である。図9では、セッション管理テーブル80と、排他管理テーブル106とを、独立してルックアップできるように、別の構成とした実施の形態である。図9に示した実施の形態では、排他管理テーブル106は、チケットID110と、セッションID112と、オブジェクトID108とをエントリする。図9に示した実施の形態では、セッション管理手段は、クライアントのセッションの正当性を、セッションの有効期限とシステム・タイマとを比較してデーモン・プロセスまたはバックグラウンド・ジョブとしてモニタしている。
【0086】
まず、ユーザ認証手段の処理から説明すると、ユーザ認証手段は、同様にデーモン・プロセスまたはバックグラウンド・ジョブとして実行され、クライアントのセッション正当性を、チケット有効期限をキーとして、システム・タイマと比較して継続的にモニタする。ユーザ認証手段は、チケット有効期間が満了する場合には、排他制御解除の識別値を生成し、排他管理テーブル106にエントリされ、排他予約を解除するべきオブジェクトIDまたはプロセスIDの値と共に返す。排他制御解除の肯定的な値が返されると、排他制御手段は、排他管理テーブル106にエントリされたオブジェクトIDやプロセスIDの値を引数として、対応する共用オブジェクトの排他制御を終了させる処理を実行する。なお、排他制御手段は、オブジェクトID、プロセスID、およびセッションIDの値を、プロセス間通信、または直接的な対応するテーブルのルックアップを使用して引数として取得することができる。
【0087】
なお、リソース管理手段は、この実施の形態の場合でも、図9に示したと同様にリソース管理テーブルを使用して、セッションに関連する構成オブジェクトのリソースの解放を行う点では同様の処理を実行する。
【0088】
図10は、本発明の情報処理方法の各モジュールによる処理を示したシーケンス図である。図10に示したシーケンスは、クライアントから明示的なセッション終了処理が送付された場合(異常終了を含む。)の実施の形態である。アプリケーション調停手段が、クライアントからセッション終了要求を受付けると、アプリケーション調停手段は、セッション管理手段に対してセッション終了通知を発行する。セッション管理手段は、当該通知を受取ると、セッション終了通知に対応する関連リソースの解放を、リソース管理手段へと指令する。
【0089】
リソース管理手段は、通知を受取ると、排他制御手段に対して、排他制御解除を示す識別値を含む通知を送付して、排他制御による予約管理を終了させる。また、排他予約の解除は、適切な機能手段によるテーブル内のエントリを削除するだけで済む。また、排他制御手段は、排他制御解除の通知を受けた時点で排他権を放棄し、他の構成オブジェクトに対して共用データを空け渡す。一方、リソース管理手段によるリソース解放処理は、リソース管理テーブルにエントリされた当該セッションに関連する構成オブジェクトのオブジェクトIDまたはプロセスIDを検索する。次いで、検索された構成オブジェクトについて、構成オブジェクトの活性化状態または不活性化状態に拘わらず、実行停止およびアンマウント処理(destroy ()、delete()、またはガーベージ・コレクタの起動)を実行する。なお、排他制御手段に対する通知を、リソース解放処理の実行以前に行うとして説明したのは、ロック状態が残ったまま、リソースが回収されてしまうと、デッド・ロックやライブ・ロックの発生する可能性があるためである。なお、本発明の他の実施の形態では、排他制御手段とは別に、定期的に予約データを強制回収する回収手段を設け、セッション有効期限に応答して予約データを回収することで、不要な予約データを残留させない処理を用いることができる。
【0090】
なお、この際に使用される排他制御解除の識別値は、排他制御解除を完了させるためデータ・パケットまたはフラグであれば、その形式には制限されない。例えば、上述した識別値は、グローバル変数として構成されたリストに登録したフラグでも良いし、構成オブジェクトIDなどの処理上必要される他のデータを含むTCPまたはUDPなどのデータ・パケットの適切なデータ・ビットに割り当てられたフラグとすることができる。また、本発明では、さらに、他のマルチビット・コードとして生成することができる。
【0091】
また、同様な機能を有するいかなる形式のデータ構造であっても、プロセス適合性がある限り本発明で排他予約を解除する通知として使用することができる。リソース管理手段は、リソース解放処理が終了すると、セッション管理手段へとリソース解放処理の終了を通知する。その後、セッション管理手段は、セッションID削除、ハードウェア・リソース割当て解放などのセッション解放処理を行い、アプリケーション調停手段に対してセッション終了を通知して、クライアントからの要求に対応してリソース解放およびセッション終了処理を完了させる。
【0092】
セッション管理手段は、さらに、デーモン・プロセスまたはバックグラウンド・ジョブとしてセッションの有効期限満了またはチケット有効期限満了のセッションを検索する。検索の結果、有効期限が満了したセッションが見出されると、セッション管理手段は、当該構成オブジェクトが実行中、または排他予約中であるか不活性状態にあるかに拘わらず、リソース管理手段に通知を行う。リソース管理手段は、当該通知を受取ると、排他制御解除を示す識別値を生成して、排他制御手段へと通知する。排他制御手段は、予約状態にあるリソースの排他制御を終了させ、リソース管理手段は、当該セッションが管理する構成オブジェクトの関連リソースを解放させる。
【0093】
当該セッションのすべての関連リソースの解放が終了するとリソース管理手段は、セッション管理手段へとセッション解放処理の終了を通知する。セッション管理手段は、関連リソースの解放の通知を受領すると、リソース解放処理を実行して期限切れのセッションを終了させ、リソースの有効利用を行う。同様の処理は、期限切れのセッションがある限り実行され、継続的なリソース管理が行われる。
【0094】
図11は、図8に示したデータ構造を使用する本発明の情報処理方法の第2の実施の形態を示す。図11に示す実施の形態では、ユーザ認証手段が、チケット有効期限満了と判断すると、ユーザ認証手段は、リソース管理手段へとチケット破棄通知を発行する。リソース管理手段は、チケット破棄通知を受取ると、チケット破棄に対応する排他予約の解除の通知を発行する。また、リソース管理手段は、セッションIDに関連する構成オブジェクトの終了および関連リソースの解放処理を実行する。
【0095】
図11に示された実施の形態では、排他予約を解除する処理は、予約データをルックアップして行われ、また、排他予約の解除は、予約データのエントリを削除することにより実行できる。本発明の別の実施の形態では、予約データの削除は、リソース管理手段またはセッション管理手段またはユーザ認証手段または排他制御手段のうち、プログラミングまたはソフトウェア・インプリメンテーション上、適切な機能手段が行うことができる。
【0096】
排他予約の解放処理が終了すると、排他制御手段は、リソース管理手段へと通知を行い、その後、リソース管理手段は、ユーザ認証手段およびセッション管理手段およびアプリケーション調停手段へとチケット失効処理の完了を通知して、一連のセッション終了処理を完了する。
【0097】
ユーザ認証手段は、上述したと同様に、定期的にチケット有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および予約解除処理を、図10で説明したと同様の処理を適用して、リソースの有効利用を可能とする。
【0098】
図12は、図9に示したデータ構造を使用する本発明の情報処理方法の第3の実施の形態を示す。図12に示した実施の形態では、セッション管理手段は、セッションの有効期限が満了したセッションを検索し、リソース管理手段へと、検索されたセッションIDを含むセッションが使用するリソースのリソース解放通知を送付する。同時に、ユーザ認証手段は、ユーザ認証チケットに記述されたデータに基づいてチケット有効期限を判断し、チケット有効期限が経過したユーザのセッションを検索し、リソース解放通知をリソース管理手段へと通知する。リソース管理手段は、排他制御手段へと排他制御解除の識別値を送付し、図12で説明した実施の形態では、排他制御手段の機能を上述した処理によって停止させ、また予約データを削除して予約の解除を完了させる。
【0099】
リソース管理手段は、指定されたセッションが管理する構成オブジェクトを終了させ、関連リソースを回収する処理を実行する。図12では、図8または図9に示した排他管理テーブル106を参照して予約の解除を行うもののとして説明するが、予約の解除は、リソース管理テーブル88の予約フラグをルックアップして予約解除を行うこともできる。
【0100】
図12に示す実施の形態では、指定されたセッションに関連する構成オブジェクトの解放処理および排他予約の解除処理がすべて完了すると、リソース解放処理が終了したことをセッション管理手段へと通知する。セッション管理手段は、セッション解放処理を実行し、セッションが解放された通知をアプリケーション調停手段に通知して、セッションの終了を完了する。
【0101】
セッション管理手段は、さらに、上述したと同様に、定期的に有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および排他予約の解除処理を、図10および図11で説明したと同様の処理を適用して実行する。
【0102】
図13は、本発明の排他制御を含む情報処理方法の作用を説明した図である。図13に示すように、アプリケーション調停手段からのセッション開始通知があると、セッション管理手段は、ユーザ認証によりその正当性を認証した後、セッションを確立してセッションIDを付与し、セッション確立通知をアプリケーション調停手段へと通知する。アプリケーション調停手段は、セッション管理手段に対してセッションIDを指令してオブジェクト活性化要求を通知する。
【0103】
セッション管理手段は、オブジェクト活性化要求を受取ると、リソース管理手段に対して、セッションIDと共に要求された構成オブジェクトに関連するリソースの割当てなどを行い、構成オブジェクトを初期化させる。また、active_flagまたは必要に応じて予約データまたは予約に関連する共用データID(または、アドレス値)などが、適切な手段により、リソース管理テーブルまたは排他管理テーブルに設定・記入される。リソース管理手段は、リソース初期化が終了すると、リソース初期化完了通知をセッション管理手段に通知する。
【0104】
セッション管理手段では、リソース管理手段からのリソース初期化終了通知を受取り、アプリケーション調停手段に実行可能通知を発行する。アプリケーション調停手段は、構成オブジェクトの初期化が終了した通知を受取って、構成オブジェクトを含むアプリケーションの処理を開始させる。この段階では、各構成オブジェクトの排他制御は、当該構成オブジェクト自体が含む排他制御コードFilerock()、lock()、またはセマフォなどを使用して管理されても良い。一方、構成オブジェクト自体が同期クラスなどの排他制御機構を含まない場合でも、本発明によれば、予約要求に応答して排他制御手段による排他予約が実行される。
【0105】
その後、共用データにつき、クライアントからの明示的な予約要求またはオブジェクト予約解除要求をアプリケーション調停手段が受付けると、アプリケーション調停手段は、適切な手段、例えば排他制御手段へと通知を行い、セッション管理テーブルの予約データを更新する。なお、当該処理は、例示的なものであり、排他制御手段以外の、セッション管理手段、ユーザ認証手段またはリソース管理手段のいずれの手段が上述した予約フラグの設定・解除、エントリへの記入・削除を行っても良い。
【0106】
このタイミング以後に構成オブジェクトの実行が終了すると、本発明の情報処理方法では、予約データをルックアップさせ、そのまま排他予約状態を継続させるか、または排他予約をさせずに当該構成オブジェクトを実行させることが可能となる。すなわち、本発明では、クライアントによるセッション中の予約データの更新に応答して、排他予約状態、または排他予約解除状態を遷移させることができ、排他制御処理の選択に対する柔軟性を提供することができる。
【0107】
図13には、また、本発明の排他予約処理の状態遷移のタイミングを示す。従来の排他制御処理では、構成オブジェクトにより排他制御が行われる場合には、構成オブジェクトが初期化され実行開始されると、構成オブジェクトに含まれるロック・コードにより排他制御が開始される。その後、構成オブジェクトの実行が終了すると、区間Aで示されるように構成オブジェクト自体のコードによる排他制御は行われない。
【0108】
しかしながら、本発明の排他予約処理では、区間Bでクライアントからの外部指令に応答して排他制御手段が排他予約制御を実行し、構成オブジェクトの活性化状態に拘わらず、排他制御条件が満了するまで、本発明の排他制御手段による排他制御が開始される。
【0109】
区間Bの間には、元のクライアントからの要求や、他のクライアントからの共用データを利用するアプリケーションの要求がなされる可能性があるものの、本発明で使用する排他制御手段により、コンシステンシを維持しなければならない共用データは排他予約された状態に維持されている。このため、排他予約された共用データに関していえば、構成オブジェクトの状態とは独立して、他のプロセスは少なくとも書込みが禁止され、コンシステンシを維持することが可能となる。
【0110】
この処理において、排他予約が存在するセッション内で他のクライアントから新たな接続要求があった場合には、排他予約されていない共用データを使用するアプリケーションの実行要求については、その実行が問題なく初期化できる。
【0111】
一方、排他予約状態にある共用データを使用するアプリケーションの実行については、当該セッションが維持され、かつ排他予約が継続している間、その実行ができないか、またはキューに待機される。この場合、アプリケーション調停手段は、クライアントに対し、「オブジェクトが使用中なので、「○○○」オブジェクトは、yyyy/mm/dd/aa:bbまで利用できない可能性があります。」などの通知または表示を、例えば、ブラウザ・ソフトウェアを介したHTTPレスポンス、FTPレスポンス、またはRMIコールバックなどとして返すことにより、クライアントを介してユーザに状況を通知することができる。
【0112】
また、本発明の上記機能は、C、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
【0113】
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0114】
【図1】本発明の情報処理装置の概略的な構成を示したブロック図。
【図2】本発明の情報処理装置の機能手段の構成およびクライアントPCのモジュール構成を示したブロック図。
【図3】本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移および排他予約が行われる状態を示した図。
【図4】本発明のサーバが実行するリソース管理方法のフローチャート。
【図5】本発明における排他制御手段の第1の実施の形態を示した図。
【図6】本発明における排他制御手段の第2の実施の形態を示した図。
【図7】本発明のサーバが実行するリソース管理方法に使用されるデータ構成を示した図。
【図8】本発明のサーバが実行するリソース管理方法が使用するデータ構成の別の実施の形態を示した図。
【図9】本発明のサーバが実行するリソース管理方法が使用するデータ構成のさらに別の実施の形態を示した図。
【図10】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図11】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図12】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図13】本発明の排他予約管理を含むリソース管理方法による機能を作用を説明した図。
【図14】オブジェクト指向プログラムにおける状態遷移を示した図。
【図15】従来でのオブジェクトの活性化状態と排他制御とセッションおよびチケット有効期限との関係を示した図。
【符号の説明】
【0115】
10…情報処理装置、12…CPU、14…キャッシュ・メモリ、16…システム・メモリ、18…システム・バス、20…グラフィックス・ドライバ、22…ネットワーク・デバイス、24…ディスプレイ、26…I/Oバスブリッジ、28…I/Oバス、30…記憶装置(ハードディスク装置)、32…キーボード/ポインティング・デバイス、34…画像処理ドライバ、36…画像処理デバイス、40…アプリケーション調停手段、42…リソース管理手段、44…セッション管理手段、46…排他制御手段、48…ユーザ認証手段、50…ネットワーク・ドライバ、52…ネットワーク、54…クライアント、56…クライアント・アプリケーション、58…ブラウザ・ソフトウェア、60…ネットワーク・ドライバ(ハード+ドライバ・ソフトウェア)、80…セッション管理テーブル、88…リソース管理テーブル、106…排他管理テーブル
【技術分野】
【0001】
本発明は、並列処理を行いながら効率的に排他予約管理を含むリソース管理を実行する情報処理装置、情報処理方法、記録媒体、およびプログラムに関する。
【背景技術】
【0002】
近年、コンピュータなどの情報処理装置の高性能化、およびオブジェクト・プログラミングの高度化に伴い、複数のタスクを並列処理することが可能となっている。上述した並列処理は、ネットワークに接続され、種々のサービスを提供する情報処理装置で多く用いられている。並列処理を行う情報処理装置は、ネットワークに接続された複数のクライアント・コンピュータ(以下、クライアントとして参照する。)からの同時的な要求を受付けるので、各クライアントからの要求を並列処理することにより、高効率な処理を行う必要がある。
【0003】
この目的から並列処理を行う情報処理装置では、所謂CGI(Common
Gateway Interface)として参照される処理を採用し、C++、Java(登録商標)、サーブレット、アプレット、Perl、Rubyなどの高級言語で記述されたCGIプログラムを実装して、クライアントからの要求に対応している。また、クライアントからのRMI(Remote
Method Invocation)などに応答して所定の処理を実行して、その実行結果をクライアントに返すなどの処理によってクライアントからの要求に対応する場合もある。
【0004】
並列処理は、複数のクライアントからの要求に応答してオブジェクト・クラスのインスタンスを生成し、それらを「セッション」として参照される実行単位として処理を行う実行形式を採用する場合が多い。セッションは、独立した実行単位として管理されているので、それぞれのクライアントからの個別的な要求に対応した処理を実行することが可能となる。この場合、情報処理装置は、特定のクライアントに返される実行結果を生成するために、情報処理装置が管理する共用データを提供する。共用データは、各セッションまたはスレッド単位でそれぞれ種々のアプリケーションにより個別的にアクセスされ、種々の目的のために操作が加えられる。上述した、共用データとしては、データベース・オブジェクト、マルチメディア・オブジェクト、イメージ・オブジェクト、テキスト・オブジェクト、ブラウザ・ヒストリ、アクセス・ログ、実行ログ、SGML、HTML、XMLなどの構造化言語で記述された構造化オブジェクト、または画像処理を行うための共用メモリ空間に格納されたデータなどを挙げることができる。
【0005】
上述したように近年における情報処理装置は、オブジェクト指向プログラミングを利用したオブジェクト(以下、本発明においては、オブジェクト・クラスのインスタンスを含むものとして定義する。)が必要に応じてオブジェクト呼出しなどにより呼出され、実行される。この場合、オブジェクトの実行状態は、情報処理装置内で、種々の状態を取る。図14は、情報処理装置内でのオブジェクトの状態遷移を示した図である。
【0006】
オブジェクトは、情報処理装置内においてクライアントの要求を受付けて生成されるセッションごとに生成され、クライアントからの要求に応答した処理を実行する。この場合のオブジェクトの状態は、大きく分けて3状態に分類することができる。図14に示すように、オブジェクトの状態には、永続化状態と、活性状態と、不活性状態とに分類でき、オブジェクトの処理状況に対応して、各状態を遷移する。
【0007】
図14を使用してより具体的に各状態の遷移を説明する。ハードディスクなどに格納されたオブジェクトの実行ファイルは、オブジェクト呼出しまたはメソッド呼出しに応答して、システム・メモリに展開され、処理を実際に実行するオブジェクトが生成され、クライアントからの要求に応じた処理を実行する。実行が終了すると、オブジェクトはメモリ領域にオブジェクト自体またはオブジェクトが使用するデータまたはネットワーク・データなどのデータを含んだまま休止状態として残される。これは、メソッド呼出しのたびに、オブジェクトのメモリへの展開・処理終了後のオブジェクト状態の保存・メモリの解放を繰り返すことを避け、連続した呼出しに対応する応答性能を向上するためである。
【0008】
しかし、このように利用済みオブジェクトをメモリ上に休止状態として残しておくと、メモリ領域が枯渇してしまう。このため、不要と判断されたオブジェクトは、ユーザからの明示的な指示、または情報処理装置に設定される管理ルール(利用されていないオブジェクトのアイドル時間の長さなど)に基づき不活性化され、アンロードなどの処理を受けて割当てられていたリソースが回収される。
【0009】
上述した並列処理を行う情報処理装置では、また、並列的に共用データがアクセスを受けるので、共用データについてデータ・コンシステンシを確保する必要がある。この目的のため、従来から、同期化またはファイル・ロックなどの処理方式、所謂、排他制御方法が知られている。同期化またはファイル・ロック処理は、処理を行うオブジェクトが要求する限り、共用データへの少なくとも書込みを排他制御することにより、他のインスタンスによるデータ更新アクセスを排除する共用データ管理方法である。
【0010】
上述した排他制御方法は、適切に実装されるとデッド・ロックまたはライブ・ロックなどの実行を阻害する不都合を発生させることなく、適切な並列処理の管理を可能とする。この目的から、通常、排他制御は、オブジェクト単位で行われ、オブジェクトが終了した時点で共用データの排他制御を解放する。このため、従来の排他制御方法では、共用データの排他制御がオブジェクトの活性期間を超えて制御することができないという場合が多かった。
【0011】
図15には、従来の排他制御方式の排他制御期間を概略的に示す。オブジェクトの活性化されている期間は、デッド・ロックやライブ・ロックなどの発生をできるだけさせるように、通常では、オブジェクトの活性化期間を超えないうちに排他制御が終了する。したがって、オブジェクトの活性期間は、オブジェクトによる共用データの排他期間以上の期間とする必要がある。このことは、逆に、オブジェクトの活性化期間を超えて排他制御を行うことができないという不都合があることを示す。また、セッションの期間中に、クライアント・プロセスからの外部指令または外部要求を受付ける場合も発生する。
【0012】
上述した不都合を回避する目的として、オブジェクトを頻繁に活性化−不活性化の遷移を繰り返すことも考えられる。しかしながら、オブジェクトの種類によっては、所定のオブジェクトを初期化し、排他制御を設定し、排他制御やオブジェクトを終了させる処理は、情報処理装置に対し、処理時間および処理オーバヘッドを要求し、処理効率を低下させることがある。加えて、上述のような頻繁なオブジェクトの初期化−終了処理は、情報処理装置のスループットに対して著しい影響を与えることも想定される。
【0013】
一方、クライアントからの要求に応答して、同一セッションにおいて再度オブジェクトを活性化させる場合も考えられる。この場合には、セッションの期間中、排他予約を行うことで、データのコンシステンシを与えることが好ましいということができる。このような場合としては、同一セッション内で、オフライン処理に切換え、作成していたドキュメントなどをHTTP、FTP、またはTelnetなどにより情報処理装置に伝送するような場合である。このような場合、以前に使用していたデータが他のオブジェクトにより変更されている場合には、同一セッション内で再度アクセスしたクライアント・ユーザに対して重大な作業性の低下を生じさせる。しかしながら、クライアントにより確立されたセッションの有効期間は、概ね、所定のオブジェクトの活性化期間よりも長い。このため、不用意にセッション全期間にわたり排他制御を行うと、他のセッションの作業効率を低下させることにもつながり、好ましい制御であると言うことができない。
【0014】
すなわち、従来の排他制御方式では、所定のオブジェクト・クラスが活性化されることを予測して共用データの排他状態を予約しておくことができないという問題がある。また、従来の排他制御方法では、オブジェクトの不活性化と同時に排他制御も同時に消滅してしまい、セッション・タイムアウトまでの時間を充分に有効に利用することができないという問題がある。また、仮にセッション全体にわたって排他制御を行う場合には、クライアントの作業状態に拘わらず、常に排他制御が行われる。このため、当該共用データがアンロックされるまでブロック状態またはビジー状態で待機しなければならず、所謂、デッド・ロックやライブ・ロックなどの問題が発生し情報処理装置に無用なオーバヘッドを生じさせるという不都合があった。
【0015】
これまで、排他制御を使用する情報処理装置は種々提案されており、例えば特開2004−246873号公報(特許文献1)では、機能要求に応じたトランザクションをクライアントごとに管理し、タイムアウト前にトランザクションを終了させるため、クライアントからの管理開始要求または管理開始要求以外の要求に基づき排他制御を管理する情報処理装置が開示されている。
【0016】
特許文献1では、所定の要求に応答して排他制御を開始させる情報処理装置は、開示されているものの、セッションの全期間にわたり共用データの排他制御を行う点を課題とするものではない。また、排他制御の開始を他のインスタンスに対するデッド・ロックまたはライブ・ロックの発生を最低限としつつ、情報処理装置の並列処理スケーラビリティを保証することを課題とするものではない。
【0017】
また、特開平11−272543号公報(特許文献2)では、複数のサーバ間において同一のドキュメントを共有し、同一のドキュメントの複製を各サーバに配布し、あるドキュメントの更新を開始するサーバが他のサーバに対して更新開始通知を送り、更新が終了したときに更新終了通知を送り、他のサーバは、更新開始通知を受取ったときに該当するドキュメントに対する更新をロックし、更新終了通知を受取ったときにロックを解除するドキュメント分散処理方法が開示されている。
【0018】
特許文献2に開示されたドキュメント分散処理方法では、所定のサーバによるオブジェクトの更新開始通知を他のサーバに通信し、終了時に更新終了通知を他のサーバに通信することにより、複数のサーバにおけるドキュメントの共有を行う。この方法は、複数のサーバにおけるデータ共有を可能とするものの、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御するものではない。
【0019】
さらに、特開平9−026923号公報(特許文献3)では、中央処理ユニットと、プロセスに割当てられたメモリと、メモリ内に存在し、前記プロセス内で活性しているオブジェクトを識別する活性オブジェクト・リストを備え、選択オブジェクトに関連して、オブジェクトが活性状態にあるとき、不活性の期間を表示するオブジェクト不活性指定期間値を格納するオブジェクト・タイムアウト変数を使用して、不活性期間経過後にオブジェクトを非活性化させるコンピュータ・システムが開示されている。特許文献3に開示された方法は、オブジェクトの活性化状態から非活性状態への遷移を効率的に行うことを目的とするものであり、ロックの開始・終了と、当該ロックを必要とするオブジェクトとの間の関係を制御することを目的とするものではない。
【特許文献1】特開2004−246873号公報
【特許文献2】特開平11−272543号公報
【特許文献3】特開平9−026923号公報
【発明の開示】
【発明が解決しようとする課題】
【0020】
すなわち、デッド・ロックやライブ・ロックなどの不都合が発生する可能性を最小限としつつ、排他予約を行うことにより、共用データのコンシステンシを向上することが必要とされていた。さらに、クライアントによる処理の状態に応答して、排他制御を解除して、他のオブジェクトによる共用データの利用を可能とすることにより、並列処理性を向上させることが望まれていた。
【0021】
さらに、排他制御の目的のためだけにオブジェクトをセッション・タイムアウトが満了するまで生存または活性化状態で待機させておくことによるハードウェア資源の浪費による処理効率の低下を改善することが望まれていた。
【0022】
本発明は、上記従来技術に鑑みてなされたものであり、並列処理を実行する情報処理装置においてデッド・ロックやライブ・ロックなどの不都合の発生を最低限としつつ、共用データのコンシステンシを高め、同時に有効利用することが可能な情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【0023】
また、本発明の他の目的は、オブジェクトの活性期間を超えて排他状態を継続させる、すなわち、排他制御の予約を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【0024】
本発明のさらに他の目的は、共用データのコンシステンシを向上させつつ、排他制御の予約管理によるデッド・ロックまたはライブ・ロックの発生を最小限とし、クライアントからの排他制御の開始または終了の指令に柔軟に対応でき、ハードウェア資源のより効率的な使用を可能とする情報処理装置、情報処理方法、記録媒体およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0025】
本発明は、上記課題を解決するために、排他予約制御を開始し、クライアントからの指令またはセッション終了に同期して排他予約制御を終了させる排他制御手段を採用する。本発明の実施の形態では、排他制御手段は、外部からの明示的な要求を受付けてアプリケーションの実行終了後にも使用する共用オブジェクトの排他予約を行うための予約データを設定する。排他制御手段は、アプリケーションの実行が終了した時点で、予約フラグなどの予約データの状態を参照し、該当する共用オブジェクトを使用する他のアプリケーションが少なくとも書込み操作を行おうとする場合に、アプリケーションを終了させるか、または当該アプリケーションの書込みオブジェクトを実行が可能となるまでキューに待機させる。
【0026】
また、本発明の他の実施の形態では、クライアントからの外部指令に応答して、登録されている予約データをルックアップすることにより、排他権を排他制御手段に譲渡し、予約データが設定された共用データにつき、排他予約制御を開始する。リソース管理手段は、排他制御手段とは独立して、不要になったアプリケーションのリソースを回収して、他のアプリケーションのために提供する。さらに排他制御手段は、クライアントからの外部指令またはセッション終了条件の満了に応答して、排他予約のための予約データを解除して、共用データの排他予約制御を終了させることにより、他のオブジェクトによる共用データの利用を可能とする。本発明の排他制御手段は、情報処理装置のリソースを最大限に有効利用しつつ、共用オブジェクトの排他予約を、外部指令およびセッションの終了と同期して管理することを可能とする。
【0027】
すなわち、本発明によれば、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置が提供できる。
【0028】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える。前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる。
【0029】
本発明の第2の構成では、
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションの実行終了時から前記共用データの排他制御を開始し、前記アプリケーションが割当てられた前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置が提供される。
【0030】
本発明の前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える。前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える。前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える。
【0031】
本発明の第3の構成によれば、
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションの実行終了後、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法が提供される。
【0032】
本発明では、さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む。さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む。さらに、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含むことができる。
【0033】
本発明の第4の構成によれば上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体が提供される。また、本発明の第5の構成によれば、上記いずれかに記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムが提供される。
【発明を実施するための最良の形態】
【0034】
以下、本発明を図面に示した具体的な実施の形態を使用して詳細に説明する。
[用語の定義]
本発明において使用する用語は、それぞれ以下の意味を有するものとして参照される。
(1)活性状態:オブジェクトがメモリ上に展開されており、利用者からのオブジェクトへの参照、機能呼出しに速やかに応答可能な状態を意味する。
(2)不活性状態:オブジェクトは、メモリ上に展開されているとは限らず、その場合、利用者からのオブジェクトへの参照、機能呼出しが発生した時点で、活性化の手続が行われ、活性化完了後に要求に対応する処理を実行する。なお、本発明では、オブジェクトの実行が終了し、リソースを解放し、メモリ領域に最小のオブジェクト実行単位を占有しているだけの状態を含む。
(3)永続化状態:オブジェクトの属性や状態がハードディスクなどに保存されており、それ以外のサーバ上のリソースを占有していない状態。不活性状態のオブジェクトのうち、実際にメモリ上から削除された状態を言う。
(4)アプリケーション:クライアントからの要求に応答してオブジェクト呼出しまたはメソッド呼出しなどを介して並列処理を行い、情報処理装置に対して一定の結果を与えその結果をクライアントに返す、単数または複数の構成オブジェクトからなるプログラム構造を言う。
(5)構成オブジェクト:アプリケーションを構成するプログラム・モジュール群を言う。
(6)共用データ:複数のクライアントからアクセスされ、書込み・読出し操作が可能であって、情報処理装置が管理するディジタル・データを言う。
(7)排他制御:共用データに対するアクセスの排他的なアクセス制御を意味する。本発明では、少なくとも書込み制御を目的とし、読取り制御については、排他制御に含めても良いし、含めずとも良い。
(8)ロック:共用データに対するアクセスを制御することを意味する。本発明においては、所謂、排他ロックおよび共有ロックのいずれのロック方式でも採用することができる。
(9)予約データ:排他制御手段が、参照し、予約を行うべき、または予約を解除するべき共用データを参照するためのデータを言う。
(10)排他制御解除の識別値:排他制御手段が受取り、排他制御を解除するために使用する識別値であり、クライアントによる要求、セッションの有効期限満了またはチケット有効期限の満了のいずれかにより、適切な機能手段により生成されるデータ・パケット自体またはデータ・パケットに含まれるデータを言う。
【0035】
以下、さらに、本発明の詳細な説明を行う。
[サーバ・インプリメンテーション]
図1は、本発明の情報処理装置10の概略的な構成を示したブロック図である。本発明の情報処理装置10は、概ねパーソナル・コンピュータまたはワークステーションなどを用いることができる。情報処理装置10は、概ね、中央処理装置(CPU)12と、CPU12が使用するデータの高速アクセスを可能とするキャッシュ・メモリ14と、CPU12の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるシステム・メモリ16とを備える。CPU12、キャッシュ・メモリ14、およびシステム・メモリ16は、システム・バス18を介して、情報処理装置10の他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ20およびネットワーク・デバイス(NIC)22へと接続されている。グラフィックス・ドライバ20は、バスを介してディスプレイ装置24に接続されて、CPU12による処理結果をディスプレイ画面上に表示させている。また、ネットワーク・デバイス22は、トランスポート層レベルおよび物理層レベルで情報処理装置10をネットワークへと接続して、クライアント(図示せず)とのセッションを確立させている。
【0036】
システム・バス18には、さらにI/Oバス・ブリッジ26が接続されている。I/Oバス・ブリッジの下流側には、PCIなどのI/Oバス28を介して、IDE、ATA、ATAPI、シリアルATA、SCSI、USBなどにより、ハードディスクなどの記憶装置30が接続されている。また、I/Oバス28には、USBなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置32が接続され、システム管理者などのオペレータによる入力および指令を受付けている。
【0037】
さらに、本発明の特定の実施の形態において、本発明をプリンタ・サーバなどとして使用する場合、または複合型の画像形成装置として使用する場合には、情報処理装置10は、システム・バス18に接続された画像処理ドライバ34および画像処理デバイス36を備えていても良い。画像処理ドライバ34および画像処理デバイス36は、図示しないADFおよび電子写真法を使用した画像形成エンジンを駆動して、画像処理・画像出力を行う場合に用いることができる。
【0038】
情報処理装置10が使用するCPUとしては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標) IV、PENTIUM(登録商標)互換CPU、POWER PC(登録商標)、MIPSなどを挙げることができる。
【0039】
また、使用するオペレーティング・システム(OS)としては、MacOS(商標)、Windows(登録商標)、Windows(登録商標)200X Server、UNIX(登録商標)、AIX(登録商標)、LINUX(登録商標)またはそれ以外の適切なOSを挙げることができる。さらに、情報処理装置10は、上述したOS上で動作する、C++、Visual C++、VisualBasic、Java(登録商標)、Perl、Rubyなどのオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行する。
【0040】
図2は、本発明の情報処理装置10の機能手段構成およびクライアントPCの機能手段の構成を示したブロック図である。情報処理装置10(以下、説明の便宜上、サーバ10として参照する。)は、所謂、サーバ機能を提供する。サーバ10は、その機能手段として、アプリケーション調停手段40と、リソース管理手段42とを含んでいる。アプリケーション調停手段40は、サーブレット、RPC(Remote
Procedure Call)、RMI(Remote Method Invocation)、COBRAなどのクライアント−サーバ機能を提供するアプリケーションを構成する構成オブジェクトの実行管理を行っている。また、リソース管理手段42は、アプリケーションを構成する構成オブジェクトの実行状態を監視して、メモリ消費状態を監視しており、最適な実行環境を提供するために、不要と判断されたアプリケーションの構成オブジェクトのリソースを回収する。
【0041】
サーバ10は、さらに、複数のクライアントからのセッションを管理するセッション管理手段44と、クライアントからの要求に応答して共用データの内容のコンシステンシを保証するための排他制御手段46とを備えている。この他、サーバ10は、ユーザ認証手段48を備えている。ユーザ認証手段48は、各クライアントに割当てられたパスワードおよびユーザ識別子などを使用してユーザ認証を行う。また、ユーザ認証手段48は、ユーザID、チケット有効期限などを記録していて、ユーザ認証チケット(以下、単にチケットとして参照する。)の正当性を検査する。さらに、サーバ10は、クライアントごとのトランザクションごとにセッション管理を実行している。
【0042】
サーバ10は、ネットワーク・デバイスなどのハードウェアに通信ソフトウェアなどのソフトアウェアから構成されるネットワーク・ドライバ50を備えており、TCP/IPプロトコルまたはUDP/IPプロトコル、ネットワークBIOSを使用する、所謂、NETBUIプロトコルなどを使用して、インターネット、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)などのネットワーク52へと接続されている。
【0043】
サーバ10は、上述した通信インフラ基盤に基づいて、クライアント−サーバ型のサービス、CGIなどを使用したウェブ・サーバ、FTPサーバなどの機能を提供する。また、図2には例示的に一台のみを示しているが、ネットワーク52には、サーバ10に対して処理要求を行い、サーバ10による処理結果を受取って処理を実行する複数のクライアントPC54が接続されている。
【0044】
クライアント54は、概ねパーソナル・コンピュータを使用することができ、PENTIUM(登録商標)〜PENTIUM(登録商標)IV、CELERON(登録商標)、ATHRON(登録商標)などのCPUを含み、Windows(登録商標)2000、Windows(登録商標)NT、Windows(登録商標)XPなどのOSをプラットフォームとする。クライアント54は、上述したOSの下でオブジェクト指向プログラムを実行して、オペレータに対して処理結果を提示する。なお、クライアント54は、インターネット・イクスプローラ、ネットスケープ・ナビゲータ、Mozilla、Operaなどのブラウザ・ソフトウェア58を実装していて、サーバ10に対してネットワーク・ドライバ60を介して、HTTPリクエストまたはFTPリクエストを送信し、対応するそれぞれのレスポンスを受信することが可能とされていても良い。また、RPCまたはRMI、COBRA、Telnetなどのプロトコルにしたがい、サーバ10に対する処理を依頼視、それレスポンスを受信することもできる。以下さらに、サーバ10の機能手段を詳細に説明する。
【0045】
[アプリケーション調停手段]
アプリケーション調停手段40は、クライアントからの要求に応答して、要求されるアプリケーションの構成オブジェクトの呼出しを指令して、システム・メモリなどのリソースを確保させ、構成オブジェクトの実行を可能としている。また、アプリケーションによる実行結果は、実行終了に応答して、図示しないバスなどを経由してネットワーク・ドライバ60へと送られ、TCP/IPなどの適切なトランザクション・プロトコルの下でクライアントへとデータ伝送される。
【0046】
[リソース管理手段]
リソース管理手段42は、例えば、リソース占有に対するタイムアウト・タイマを設定し、デーモン・プロセスまたはバックグラウンド・ジョブとしてタイムアウト経過以前に当該構成オブジェクトの実行がない場合には、destructor ()またはfinalize ()またはガーベージ・コレクタ呼出しなどのコマンドを実行する。この時点でオブジェクトの主要なリソース解放され、アプリケーションの構成オブジェクトは、ネットワーク・リソースなどのリソースを解放し、メモリ領域のみを占有する状態とされる。また、リソース管理手段42は、さらに一定時間クライアント54からの要求のないセッション自体をタイムアウトさせ、該当する構成オブジェクトに関してdelete
()またはdestroy ()などを実行させ、オブジェクトの状態を永続化状態へと戻し、メモリ上からアンロードさせ、リソースのさらなる有効利用を可能とする。
【0047】
[ユーザ認証手段]
ユーザ認証手段48は、クライアント54から送信されるユーザIDやパスワードなどのデータ、およびサーバ10へのユーザによるアクセス権原を示したチケットなどのクライアント情報に基づいてクライアントのアクセス権原を制御し、クライアント54が正当なアクセス権原を保有していると判断した場合には、その制御をセッション管理手段に渡して、スレッド生成およびセッション確立などの処理を行わせる。また、クライアントが認証、アクセス権原を表示させるためのデータを含むチケットを送信する場合には、チケットのデータを使用して、セッションの開始・終了およびセッションの終了に同期して排他予約制御の解除などを指令する。
【0048】
[セッション管理手段]
セッション管理手段44は、クライアント54からの新規かつ正当な要求を受付けると、新たなスレッドを生成するなどの方法により、セッションを確立させ、セッションごとの構成オブジェクトによる実行を可能とする。セッション管理手段44は、セッション・タイムアウト・タイマを管理しており、セッション・タイムアウトの経過以前にアプリケーションの呼出し、または参照がない場合には、リソース管理手段に対してリソース解放を指令し、後述する排他制御手段に対して排他予約解除の通知を発行して、不要となった共用データに不当なロック状態が残されないようにする機能を備えている。
【0049】
[排他制御手段]
排他制御手段46は、セッション管理手段44またはユーザ認証手段48からの通知またはリソース管理手段44によるタイムアウトなどによる構成オブジェクトの実行状況に応答し、セッション有効期間内に外部からの排他制御指令があった場合、予約データを設定して本発明の排他制御を行う。すなわち、排他制御手段は、データベース・オブジェクトなどを含むデータ・コンシステンシが必要とされる共用データや、画像形成エンジンなど同時に複数の処理要求に応答できない機能を利用する場合、セッション期間にわたり共用データのコンシステンシを確保する処理を実行する。また、各機能手段からの通知または外部指令に応答して、排他予約を解除する処理を実行する。
【0050】
排他制御手段46は、本発明においては、アプリケーション自体またはアプリケーションに含まれる構成オブジェクトが、使用している共用データの排他制御権を失った場合にでも、当該構成オブジェクトがセッション期間内に活性化されることを予定して、共用データの排他制御状態をセッション期間にわたり維持させる。本発明では、排他制御手段46は、以下の条件が満たされるまでの間、共用データを、少なくとも他のセッションに対応したアプリケーションの構成オブジェクトによる共用データへの書込み操作からロックし、データ・コンシステンシを保持させる。
・クライアントからの排他予約解除の通知の受領、
・セッションの有効期限満了に伴う排他予約解除の通知の受領、
・チケット有効期限満了に伴う排他予約解除の通知の受領。
【0051】
[排他制御を含むリソース管理方法の実施の形態]
図3に、本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移を示す。図3(a)がサーバにおけるアプリケーションの構成オブジェクトの状態を示し、図3(b)が排他制御手段46が行う予約状態(ロック)および予約解除状態(アンロック)の状態遷移を示した図である。なお、図3においては、状態遷移を発生させるオブジェクト指向プログラミング言語のコマンド(上側がC++、下側がJAVA(登録商標))を示している。なお、本発明では、C++およびJAVA(登録商標)以外のPerl、Rubyなどにおいて同等の機能を提供する予約語および予約語のシーケンスを使用することができる。
【0052】
図3(a)に示すように、構成オブジェクトは、永続化状態からオブジェクト呼出し、またはメソッド呼出し、または参照呼出しを受けて活性化状態へと遷移して、各種の処理を実行する。構成オブジェクトは、実行終了後、リソースの効率的使用の点から第2のタイムアウトが経過した後に、destructor ()またはfinalize()などのコマンドにより関連リソースの解放処理が行われ、メモリ領域上にシステム・メモリ上にメモリ領域だけが確保された状態となる。
【0053】
さらに、その後、構成オブジェクトは、リソース管理手段が含むスケジューラなどの判断に応答して、delete ()またはdestroy ()、またはJAVA(登録商標)、PerlなどのOS場合には、デーモン・プロセスとして機能するガーベージ・コレクタなどの機能によりメモリ上からも削除され、再度永続化状態へと遷移する。
【0054】
図3(b)は、本発明による排他制御を実行する構成オブジェクトの状態を概略的に示した図である。本発明の排他制御手段46は、外部指令された共用データについて、外部指令を受付けた後、予約データに応答してセッションが終了するか、または排他制御終了の外部指令がなされるまでの最も早いタイミングまで共用データについて柔軟な排他制御を行う。すなわち、本発明は、構成オブジェクトの状態、すなわち、活性状態、不活性状態、または永続化状態などの状態に拘わらず、構成オブジェクトが使用していた共用オブジェクトの排他制御を持続させ、共用オブジェクトまたは共用データのコンシステンシを改善する。
【0055】
排他制御手段の状態は、本発明では、
(1)セッション・タイムアウト経過(有効期限経過)などによるセッション終了、
(2)チケット有効期限の破棄または期限切れによるセッション終了、
(3)クライアントからの排他予約解除の通知または排他予約開始通知、
(4)当該セッション内におけるクライアントからの要求受領、
のいずれかにより遷移する。
【0056】
本発明において、排他予約およびその解除の条件を満たすイベントは、排他予約手段の共用データのロック/アンロックについての状態遷移を生じさせる。本発明の排他制御手段46は、本発明の第1の実施の形態では、セッション管理手段が、共用データに対して操作を行っていたアプリケーションの割当てられていたセッションが有効な期間、他のアプリケーションのインスタンスが、排他予約の対象となっている共用データに対して少なくとも書込み操作を実行しようとするかをモニタする。他の構成オブジェクトのインスタンスが排他予約されている共用データを変更しようとする場合、当該インスタンスを終了させるか、キューに登録する。一方、排他制御手段46は、アプリケーション調停手段に対してその旨を通知し、アプリケーション調停手段に対して、例えば「要求されたオブジェクトが使用中なので、しばらくお待ち下さい。」などの通知をクライアントに対して送信させ、セッション自体を終了させる処理を行うこともできる。
【0057】
また、本発明の第2の実施の形態では、セッションの有効期間内にアプリケーション調停手段が共用オブジェクトについて排他予約要求を受付けると、排他制御手段46は、共用データに対するセマフォ操作またはFilelock ()オブジェクトまたはflock/unlockオブジェクトなどを使用して、共用オブジェクトの明示的な排他予約制御を実行する。
【0058】
排他予約解除状態への遷移は、上記(1)〜(3)の条件に基づき、クライアントからの予約解除要求を受付けた時点、セッション管理手段44またはユーザ認証手段48がセッション終了と判断した時点で実行される。すなわち、本発明では、排他制御状態は、セッションが原則的には終了するまで、またはクライアント54の要求に応答する時点まで、その遷移タイミングを柔軟に対応させつつ、かつ構成オブジェクトの状態に拘わらずにオブジェクトの排他制御を可能とする。
【0059】
図4は、本発明のサーバが実行する情報処理方法のフローチャートを示す。図4に示した情報処理は、ステップS100においてクライアントからの要求に応答してセッションが生成された後に開始される。ステップS101では、共用データに対してすでに予約データが登録されているかを判断する。この判断は、後述するリソース管理手段が管理するリソース管理テーブルの予約フィールドまたは排他管理テーブルのエントリのルックアップにより実行される。ルックアップの結果、リソース管理テーブルまたは排他管理テーブルに予約データがある場合(yes)、ステップS102へと処理を進める。
【0060】
ステップS102では、クライアントからの排他予約要求に基づき、排他制御手段による排他予約制御を実行させる。ステップS103で、要求された処理に対応した構成オブジェクトのためのリソースを確保し、メソッド呼出しなどを実行して、構成オブジェクトの実行を開始させる。
【0061】
また、ステップS101で予約データがないと判断された場合には、ステップS110へと進み、その時点までに排他予約要求があるか否かを判断する。その時点までに排他予約要求がない場合(no)には、ステップS111で通常処理を実行させる。また、ステップS110で、その時点までに排他予約要求がなされた場合(yes)には、ステップS112で予約データを登録し、ステップS102へと処理を分岐させ、排他制御手段による制御を開始させる。
【0062】
また、排他予約を行っていないクライアントから予約データが登録された共用データを利用する要求があった場合には、本発明においては、リソース管理手段は、当該アプリケーションの要求する構成オブジェクトのリソースを一旦確保した後、活性化処理を実行する。しかしながら、本発明による排他予約処理により、アプリケーションは、終了するか、または共用データを変更使用とする構成オブジェクトがキューに登録されて待機状態とされるので、排他予約を維持できる。
その後、ステップS104でアプリケーション(構成オブジェクト)の実行が終了する。本発明では、実行処理の終了は、例えば、以下の基準を使用することができる。
【0063】
さらに処理は、ステップS105へと進み、アプリケーションがセッション有効期間内に、再度オブジェクト呼出しまたはオブジェクトを参照するプロセスがあったか、または設定されたリソース確保のためのタイムアウト時間が経過したか否かを判断する。
【0064】
セッション有効期間内またはタイムアウト経過前にオブジェクト呼出しまたは構成オブジェクトを参照するプロセスからの呼出しがない場合(no)には、再度ステップS105へと処理を戻し、オブジェクト呼出しや、参照に応答させつつ、セッション有効期限内、またはタイムアウト時間の経過までリソースの確保を継続させる。
【0065】
一方、ステップS105でセッション有効期限が満了するか、またはタイムアウト時間が経過した場合(yes)には、本発明のリソース管理手段は、ステップS106において、destruct ()またはfinalize ()などのオブジェクトを起動してリソースを解放し、さらにその後、所定のタイムアウト経過までに構成オブジェクトの呼出しがない場合には、delete()、destroy()またはガーベージ・コレクタを呼出してオブジェクトを不活性状態とする。
【0066】
さらにその後、リソース管理手段は、ステップS107でセッション有効期限内に当該セッション内で、アプリケーション(構成オブジェクト)の活性化指令が行われたか否かを判断する。ステップS107で、活性化指令があった場合(yes)には、ステップS101へと処理を戻し、再度、予約データがあるか否かを、予約データのルックアップにより判断し、判断に応答して通常処理、または本発明の排他制御処理を実行するかを判断する。この段階で、クライアントから予約解除要求がなされ、予約データが削除されている場合には、ステップS102〜S108の処理を経ないステップS111で示される通常処理へと変更する。また、前回までのループにおいて予約データが見出されず排他予約を行わない構成オブジェクトの場合でも、クライアントからの予約要求があった時点で、適切な手段により更新された予約データをルックアップすることにより、外部指令に応答して排他予約制御を行うことができる。
【0067】
また、セッション有効期限内に活性化指令が行われなかった場合(no)には、ステップS108で、排他制御解除の識別値を参照して当該オブジェクトについての排他制御解除を判断する。排他制御解除の識別値は、排他制御手段の状態を遷移させるためのデータであり、適切な機能手段が、クライアントからのセッション終了通知、セッション管理手段により通知されたセッション有効期限経過、またはユーザ認証手段により通知されたチケット有効期限経過、またはセッション異常終了などを検出して生成される。識別値を使用したステップS108の判断の結果、排他制御を解除させると判断した場合(yes)には、ステップS109で、排他制御手段に対して排他制御条件満了を示す通知を発行し、共用データを他の構成オブジェクトまたはプロセスに解放する。
【0068】
図4に示した処理は、排他制御が終了するまでデッド・ロックまたはライブ・ロックなどの発生を最小限としつつ、外部からの排他予約の解除指令がない限り、セッション終了時まで共用オブジェクトの排他予約制御を可能とする。また、図4に示した処理は、ユーザによる共用データの排他予約を、予測不能なクライアントからのセッション終了要求や、チケット有効期限満了、排他予約要求、排他予約解除要求に柔軟に対応させつつ、セッションの開始および終了と関連づけて管理することを可能とする。
【0069】
図5は、ステップS102で示した本発明の排他制御手段が実行する排他予約処理のフローチャートを示す。図5に示した処理を実行する排他制御手段は、ステップS200で当該要求のセッションIDが、予約データが関連するセッションのセッションIDと一致するか否かを判断する。ステップS200の判断の結果、予約データの登録されたセッションのセッションIDと一致する場合(yes)には、ステップS205へと進み、ステップS103へと処理を分岐させて構成オブジェクトの処理を開始させる。一方、ステップS200の判断において、セッションIDが一致しないと判断された場合(no)、ステップS201へと進んで、予約データに関連する共用オブジェクトについて書込み操作が要求されるか否かを、繰り返し判断する。
【0070】
ステップS201で書込み操作が要求された場合(yes)、ステップS202へと進んで、当該アプリケーションを終了させるかまたはキューに待機させる。当該アプリケーションを終了させる場合には、該当する構成オブジェクトがそのコード内に排他制御コードを含む場合には、排他制御コードを非ブロックモードとし、排他権が獲得できない場合には、IOExceptionerrorを通知させることができる。また、キューに待機させる場合には、排他制御コードを、ブロックモードとすることができる。その後、ステップS203で、排他制御条件終了の通知を受領したか否かを判断する。ステップS203で排他制御終了条件の満了の通知を受取ると(yes)、当該排他予約制御を終了させ当該共用データに対する操作を許可する。
【0071】
図6に、本発明における排他制御手段の第2の実施の形態を示す。図6に示した排他制御手段は、ステップS300で、セッションIDは、予約データが関連するセッションのセッションIDと一致するか否かを判断する。ステップS300の判断の結果、予約データの登録されたセッションのセッションIDと一致する場合(yes)には、ステップS305へと進んで排他制御手段を待機させて排他権を移転するか、またはセマフォ・メモリに対してV操作を行わせ排他権を解放し、ステップS306で図4のステップS103へと処理を分岐させて実行処理を開始させる。
【0072】
一方、ステップS300の判断において、セッションIDが一致しないと判断された場合(no)、ステップS301へと進んで、予約データに関連する共用データについて排他制御手段の待機状態を停止させるか、排他制御手段は、セマフォ・メモリに対してP操作を施して、共用データの排他権を取得する。ステップS302では、当該アプリケーションを終了させるかまたはキューに待機させ、共用オブジェクトに対するアクセスを管理させる。第2の実施の形態でのロック処理の実施の形態としては、排他制御手段の待機状態を処理状態に遷移させてロック権原を取得させるか、または排他制御手段を、例えば、CSemaphoreなどの同期クラスのセマフォを使用して構成する実施の形態では、セマフォに対してP操作を行い、排他権を与えることにより行われる。
【0073】
本発明では図6に示した排他制御手段を構成するために、種々のコードまたは処理を使用することができる。例えば、本発明で、プログラミング・コードとしてJAVA(登録商標)を使用している場合には、コードNotify ()などを使用して、ステップS300の判断が否定的な値を返す場合に、ロック・オブジェクトの待機状態を解消して排他権を獲得させて使用することもできる。この実施の形態のインプリメンテーションは、例えば、Filelock
()などを使用して記述したロック・オブジェクトを、例えばwait ()コードにより待機させておき、Notify ()の通知によりFilelock ()オブジェクトの待機状態を解放することによって排他予約を開始させることができる。また、ステップS300の判断に応答して、CCriticalSection
クラスなどとして提供されるlock/unlockといった同期クラスのメソッドを実行させて排他権を獲得させることもできる。
【0074】
再度図6を使用して説明すると、ステップS303では、ステップS109において発行される排他予約制御を解除する排他制御条件満了の通知を待機する。ステップS303で排他制御条件が満了して排他予約制御を終了させると判断される場合(yes)、ステップS304で排他制御手段を再度、待機状態に設定するか、またはファイルをアンロックするか、またはセマフォにV操作を行い、排他予約制御を終了させる。また、ステップS303の処理は、排他制御条件満了の通知を受領するまで、ステップS302へと分岐して、処理を繰り返す。
【0075】
本発明では、排他制御手段を採用することにより、構成オブジェクトの活性化状態に拘わらず、セッションの開始から、セッションの終了まで共用データの排他予約制御を可能とする。このため、本発明では、構成オブジェクトの活性化状態と分離して共用データの排他制御を行うことが可能となり、情報処理装置の排他予約に対して柔軟性を提供することが可能となる。
【0076】
また、本発明においてFilerock ()オブジェクトまたはflock()オブジェクトを使用する場合には、オプションとして、共有ロックまたは排他ロックのいずれのオプションを設定することができる。本発明では、専ら書込みを排除し、読取りは妨げることなく並列処理性を保証する点では、共有ロックを使用することが好ましい。また、セマフォを使用する場合、書込みオブジェクトと読取りオブジェクトに対して別々のセマフォを設定することにより、それぞれの構成オブジェクトが使用する共用データに関して、排他的書込み動作を実現する。また、本発明で排他権を共有ロックとして提供することにより、他のプロセスまたは構成オブジェクトに対しては並列的な読出し動作を可能として、処理性を向上させることもできる。
【0077】
図7は、本発明のサーバが実行するリソース管理方法に使用されるデータ構造を示した図である。図7に示すように、セッションは、クライアントなどからの接続要求に応答して生成される。セッションの確立処理は、概略的に以下の処理を含む。まず接続要求の正当性がユーザ認証手段により確認されると、セッション管理手段が、セッションID82を割当てる。その後、セッション管理手段は、当該セッションに対してそれぞれユーザID84を割当て、さらにセッション・タイムアウト時間や、セッションの特殊性に対応した有効期限86を設定して、セッション管理テーブル80にエントリする。セッション有効期限は、通常では、サーバによるリソース管理の点から、サーバが設定する期限が設定されるが、ユーザ要求を受付けて設定することもできるし、要求されるアプリケーションごとに異なるセッションについて異なるタイムアウト時間に対応した有効期限を割当てることもできる。さらに、セッション管理テーブル80には、複数のセッションを管理できるように、複数のクライアント要求に対応したセッションがエントリされていて、それぞれ固有のユーザIDおよび有効期限がエントリされている。
【0078】
各セッションには、各セッションに対応したリソース管理テーブル88が参照可能に、またはリンクされ、例えばセッションIDなどをキーとして、各セッションが要求するプロセスがルックアップ可能とされている。リソース管理テーブル88は、一時ファイル、共用データ、構成オブジェクト、ネットワーク・コネクションなどのリソース管理手段が管理するべきオブジェクトの種類を示す種別データ90と、当該共用データの識別値(ID)92をエントリしている。リソース管理テーブル88には、活性化フィールドおよび予約フィールドが形成されている。活性化フィールドには、さらに、構成オブジェクトが活性化状態にあることを示すフラグ(active_flag)94がエントリされ、予約フィールドには、排他制御を行うための予約データとして利用される予約フラグ96がエントリされている。
【0079】
リソース管理手段は、アプリケーションに含まれる構成オブジェクトが活性化状態に遷移すると、図7に示したリソース管理テーブル88の構成オブジェクトの活性化フィールドに、active_flagを設定する。図7に示した実施の形態では、オブジェクトIDが0x7725A0で指定された共用データは、実行終了していることが示され、同時に本発明による排他制御による予約管理を実行するため予約フラグが設定されているのが示されている。
【0080】
一方、図7に示した実施の形態では、オブジェクトIDが0x773384で指定される構成オブジェクトは、実行状態であり、当該構成オブジェクトは、その時点では、排他予約を行わないことが示されている。また、複数の予約待ちセッションが存在する場合には、図7に示したリソース管理テーブル88をオブジェクト・スプールなどとして構成し、予約待ちのセッションIDまたはオブジェクトIDまたはアプリケーションのプロセスIDなどを先入れ・先出し方式で管理させることもできる。
【0081】
また、構成オブジェクトとは別に、リソース管理テーブル88には、使用中の一時ファイルがそのIDと共にリストされていて、セッションIDにより指定されたセッションにおけるファイルが管理できるようにされている。
【0082】
また、排他予約を要求した例えば、オブジェクトIDが0x7725A0で指定された共用データを利用していたアプリケーションは、そのセッション中に構成オブジェクトの実行が終了した後、セッション有効期間内に再度、排他予約の予約データを使用するアプリケーションを要求する。この場合、セッション管理手段は、クライアントの要求からセッションIDを取得し、当該セッションIDに関連した予約データをルックアップし、その後、セッション管理手段は、予約データが設定されているセッションIDとクライアントの要求に含まれるセッションIDとが一致するか否かを判断する。予約データが設定されているセッションIDとクライアントの要求に含まれるセッションIDとが一致する場合には、図5および図6に示した排他予約条件満了を示す識別値を生成し、排他処理を終了させる。この段階で、当該クライアントからのアプリケーション要求は、共用オブジェクトの排他予約に制限を受けず、共用オブジェクトを利用したアプリケーションの実行が可能となる。
【0083】
図8は、本発明のサーバが実行するリソース管理方法で使用されるデータ構成の別の実施の形態を示した図である。図8に示した実施の形態では、セッション管理手段は、セッションの確立と同時にセッション管理テーブル80にチケット情報100をエントリする。チケット情報100は、ユーザの正当性を保証し、かつサーバなどが発行した有効期限内でのサーバ・アクセスを許可するため、サーバが予めクライアントへと発行し、接続要求と同時クライアントがサーバに伝送してユーザ認証およびセッション・リソース管理のために用いられる情報である。チケット情報100には、チケットID98の他、対応するユーザのユーザID102、およびチケット有効期限104が含まれていて、チケット有効期限を使用して、セッションの有効期限とは独立して、チケットによるセッション・リソース管理を可能としている。
【0084】
また、図8に示したデータ構成では、チケット有効期限内での排他予約を行うべき共用データをリストした排他管理テーブル106が与えられている。排他管理テーブル106は、図8に示したようにセッション管理テーブル80のように記述されていても良いし、またリンクによるルックアップが可能となるように構成されていても良い。さらに、図8に示した排他管理テーブル106には、排他予約されている共用データID108がエントリされている。排他管理テーブル106内のように記述されたオブジェクトIDまたはプロセスIDにより全データが識別される場合には、オブジェクトID、またはプロセスIDを参照して予約データとすることができる。
【0085】
図9は、本発明のサーバが実行するリソース管理方法により使用されるデータ構成のさらに他の実施の形態を示した図である。図9では、セッション管理テーブル80と、排他管理テーブル106とを、独立してルックアップできるように、別の構成とした実施の形態である。図9に示した実施の形態では、排他管理テーブル106は、チケットID110と、セッションID112と、オブジェクトID108とをエントリする。図9に示した実施の形態では、セッション管理手段は、クライアントのセッションの正当性を、セッションの有効期限とシステム・タイマとを比較してデーモン・プロセスまたはバックグラウンド・ジョブとしてモニタしている。
【0086】
まず、ユーザ認証手段の処理から説明すると、ユーザ認証手段は、同様にデーモン・プロセスまたはバックグラウンド・ジョブとして実行され、クライアントのセッション正当性を、チケット有効期限をキーとして、システム・タイマと比較して継続的にモニタする。ユーザ認証手段は、チケット有効期間が満了する場合には、排他制御解除の識別値を生成し、排他管理テーブル106にエントリされ、排他予約を解除するべきオブジェクトIDまたはプロセスIDの値と共に返す。排他制御解除の肯定的な値が返されると、排他制御手段は、排他管理テーブル106にエントリされたオブジェクトIDやプロセスIDの値を引数として、対応する共用オブジェクトの排他制御を終了させる処理を実行する。なお、排他制御手段は、オブジェクトID、プロセスID、およびセッションIDの値を、プロセス間通信、または直接的な対応するテーブルのルックアップを使用して引数として取得することができる。
【0087】
なお、リソース管理手段は、この実施の形態の場合でも、図9に示したと同様にリソース管理テーブルを使用して、セッションに関連する構成オブジェクトのリソースの解放を行う点では同様の処理を実行する。
【0088】
図10は、本発明の情報処理方法の各モジュールによる処理を示したシーケンス図である。図10に示したシーケンスは、クライアントから明示的なセッション終了処理が送付された場合(異常終了を含む。)の実施の形態である。アプリケーション調停手段が、クライアントからセッション終了要求を受付けると、アプリケーション調停手段は、セッション管理手段に対してセッション終了通知を発行する。セッション管理手段は、当該通知を受取ると、セッション終了通知に対応する関連リソースの解放を、リソース管理手段へと指令する。
【0089】
リソース管理手段は、通知を受取ると、排他制御手段に対して、排他制御解除を示す識別値を含む通知を送付して、排他制御による予約管理を終了させる。また、排他予約の解除は、適切な機能手段によるテーブル内のエントリを削除するだけで済む。また、排他制御手段は、排他制御解除の通知を受けた時点で排他権を放棄し、他の構成オブジェクトに対して共用データを空け渡す。一方、リソース管理手段によるリソース解放処理は、リソース管理テーブルにエントリされた当該セッションに関連する構成オブジェクトのオブジェクトIDまたはプロセスIDを検索する。次いで、検索された構成オブジェクトについて、構成オブジェクトの活性化状態または不活性化状態に拘わらず、実行停止およびアンマウント処理(destroy ()、delete()、またはガーベージ・コレクタの起動)を実行する。なお、排他制御手段に対する通知を、リソース解放処理の実行以前に行うとして説明したのは、ロック状態が残ったまま、リソースが回収されてしまうと、デッド・ロックやライブ・ロックの発生する可能性があるためである。なお、本発明の他の実施の形態では、排他制御手段とは別に、定期的に予約データを強制回収する回収手段を設け、セッション有効期限に応答して予約データを回収することで、不要な予約データを残留させない処理を用いることができる。
【0090】
なお、この際に使用される排他制御解除の識別値は、排他制御解除を完了させるためデータ・パケットまたはフラグであれば、その形式には制限されない。例えば、上述した識別値は、グローバル変数として構成されたリストに登録したフラグでも良いし、構成オブジェクトIDなどの処理上必要される他のデータを含むTCPまたはUDPなどのデータ・パケットの適切なデータ・ビットに割り当てられたフラグとすることができる。また、本発明では、さらに、他のマルチビット・コードとして生成することができる。
【0091】
また、同様な機能を有するいかなる形式のデータ構造であっても、プロセス適合性がある限り本発明で排他予約を解除する通知として使用することができる。リソース管理手段は、リソース解放処理が終了すると、セッション管理手段へとリソース解放処理の終了を通知する。その後、セッション管理手段は、セッションID削除、ハードウェア・リソース割当て解放などのセッション解放処理を行い、アプリケーション調停手段に対してセッション終了を通知して、クライアントからの要求に対応してリソース解放およびセッション終了処理を完了させる。
【0092】
セッション管理手段は、さらに、デーモン・プロセスまたはバックグラウンド・ジョブとしてセッションの有効期限満了またはチケット有効期限満了のセッションを検索する。検索の結果、有効期限が満了したセッションが見出されると、セッション管理手段は、当該構成オブジェクトが実行中、または排他予約中であるか不活性状態にあるかに拘わらず、リソース管理手段に通知を行う。リソース管理手段は、当該通知を受取ると、排他制御解除を示す識別値を生成して、排他制御手段へと通知する。排他制御手段は、予約状態にあるリソースの排他制御を終了させ、リソース管理手段は、当該セッションが管理する構成オブジェクトの関連リソースを解放させる。
【0093】
当該セッションのすべての関連リソースの解放が終了するとリソース管理手段は、セッション管理手段へとセッション解放処理の終了を通知する。セッション管理手段は、関連リソースの解放の通知を受領すると、リソース解放処理を実行して期限切れのセッションを終了させ、リソースの有効利用を行う。同様の処理は、期限切れのセッションがある限り実行され、継続的なリソース管理が行われる。
【0094】
図11は、図8に示したデータ構造を使用する本発明の情報処理方法の第2の実施の形態を示す。図11に示す実施の形態では、ユーザ認証手段が、チケット有効期限満了と判断すると、ユーザ認証手段は、リソース管理手段へとチケット破棄通知を発行する。リソース管理手段は、チケット破棄通知を受取ると、チケット破棄に対応する排他予約の解除の通知を発行する。また、リソース管理手段は、セッションIDに関連する構成オブジェクトの終了および関連リソースの解放処理を実行する。
【0095】
図11に示された実施の形態では、排他予約を解除する処理は、予約データをルックアップして行われ、また、排他予約の解除は、予約データのエントリを削除することにより実行できる。本発明の別の実施の形態では、予約データの削除は、リソース管理手段またはセッション管理手段またはユーザ認証手段または排他制御手段のうち、プログラミングまたはソフトウェア・インプリメンテーション上、適切な機能手段が行うことができる。
【0096】
排他予約の解放処理が終了すると、排他制御手段は、リソース管理手段へと通知を行い、その後、リソース管理手段は、ユーザ認証手段およびセッション管理手段およびアプリケーション調停手段へとチケット失効処理の完了を通知して、一連のセッション終了処理を完了する。
【0097】
ユーザ認証手段は、上述したと同様に、定期的にチケット有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および予約解除処理を、図10で説明したと同様の処理を適用して、リソースの有効利用を可能とする。
【0098】
図12は、図9に示したデータ構造を使用する本発明の情報処理方法の第3の実施の形態を示す。図12に示した実施の形態では、セッション管理手段は、セッションの有効期限が満了したセッションを検索し、リソース管理手段へと、検索されたセッションIDを含むセッションが使用するリソースのリソース解放通知を送付する。同時に、ユーザ認証手段は、ユーザ認証チケットに記述されたデータに基づいてチケット有効期限を判断し、チケット有効期限が経過したユーザのセッションを検索し、リソース解放通知をリソース管理手段へと通知する。リソース管理手段は、排他制御手段へと排他制御解除の識別値を送付し、図12で説明した実施の形態では、排他制御手段の機能を上述した処理によって停止させ、また予約データを削除して予約の解除を完了させる。
【0099】
リソース管理手段は、指定されたセッションが管理する構成オブジェクトを終了させ、関連リソースを回収する処理を実行する。図12では、図8または図9に示した排他管理テーブル106を参照して予約の解除を行うもののとして説明するが、予約の解除は、リソース管理テーブル88の予約フラグをルックアップして予約解除を行うこともできる。
【0100】
図12に示す実施の形態では、指定されたセッションに関連する構成オブジェクトの解放処理および排他予約の解除処理がすべて完了すると、リソース解放処理が終了したことをセッション管理手段へと通知する。セッション管理手段は、セッション解放処理を実行し、セッションが解放された通知をアプリケーション調停手段に通知して、セッションの終了を完了する。
【0101】
セッション管理手段は、さらに、上述したと同様に、定期的に有効期限の満了したセッションを監視し、各有効期限の満了したセッションに関連する関連リソースの解放および排他予約の解除処理を、図10および図11で説明したと同様の処理を適用して実行する。
【0102】
図13は、本発明の排他制御を含む情報処理方法の作用を説明した図である。図13に示すように、アプリケーション調停手段からのセッション開始通知があると、セッション管理手段は、ユーザ認証によりその正当性を認証した後、セッションを確立してセッションIDを付与し、セッション確立通知をアプリケーション調停手段へと通知する。アプリケーション調停手段は、セッション管理手段に対してセッションIDを指令してオブジェクト活性化要求を通知する。
【0103】
セッション管理手段は、オブジェクト活性化要求を受取ると、リソース管理手段に対して、セッションIDと共に要求された構成オブジェクトに関連するリソースの割当てなどを行い、構成オブジェクトを初期化させる。また、active_flagまたは必要に応じて予約データまたは予約に関連する共用データID(または、アドレス値)などが、適切な手段により、リソース管理テーブルまたは排他管理テーブルに設定・記入される。リソース管理手段は、リソース初期化が終了すると、リソース初期化完了通知をセッション管理手段に通知する。
【0104】
セッション管理手段では、リソース管理手段からのリソース初期化終了通知を受取り、アプリケーション調停手段に実行可能通知を発行する。アプリケーション調停手段は、構成オブジェクトの初期化が終了した通知を受取って、構成オブジェクトを含むアプリケーションの処理を開始させる。この段階では、各構成オブジェクトの排他制御は、当該構成オブジェクト自体が含む排他制御コードFilerock()、lock()、またはセマフォなどを使用して管理されても良い。一方、構成オブジェクト自体が同期クラスなどの排他制御機構を含まない場合でも、本発明によれば、予約要求に応答して排他制御手段による排他予約が実行される。
【0105】
その後、共用データにつき、クライアントからの明示的な予約要求またはオブジェクト予約解除要求をアプリケーション調停手段が受付けると、アプリケーション調停手段は、適切な手段、例えば排他制御手段へと通知を行い、セッション管理テーブルの予約データを更新する。なお、当該処理は、例示的なものであり、排他制御手段以外の、セッション管理手段、ユーザ認証手段またはリソース管理手段のいずれの手段が上述した予約フラグの設定・解除、エントリへの記入・削除を行っても良い。
【0106】
このタイミング以後に構成オブジェクトの実行が終了すると、本発明の情報処理方法では、予約データをルックアップさせ、そのまま排他予約状態を継続させるか、または排他予約をさせずに当該構成オブジェクトを実行させることが可能となる。すなわち、本発明では、クライアントによるセッション中の予約データの更新に応答して、排他予約状態、または排他予約解除状態を遷移させることができ、排他制御処理の選択に対する柔軟性を提供することができる。
【0107】
図13には、また、本発明の排他予約処理の状態遷移のタイミングを示す。従来の排他制御処理では、構成オブジェクトにより排他制御が行われる場合には、構成オブジェクトが初期化され実行開始されると、構成オブジェクトに含まれるロック・コードにより排他制御が開始される。その後、構成オブジェクトの実行が終了すると、区間Aで示されるように構成オブジェクト自体のコードによる排他制御は行われない。
【0108】
しかしながら、本発明の排他予約処理では、区間Bでクライアントからの外部指令に応答して排他制御手段が排他予約制御を実行し、構成オブジェクトの活性化状態に拘わらず、排他制御条件が満了するまで、本発明の排他制御手段による排他制御が開始される。
【0109】
区間Bの間には、元のクライアントからの要求や、他のクライアントからの共用データを利用するアプリケーションの要求がなされる可能性があるものの、本発明で使用する排他制御手段により、コンシステンシを維持しなければならない共用データは排他予約された状態に維持されている。このため、排他予約された共用データに関していえば、構成オブジェクトの状態とは独立して、他のプロセスは少なくとも書込みが禁止され、コンシステンシを維持することが可能となる。
【0110】
この処理において、排他予約が存在するセッション内で他のクライアントから新たな接続要求があった場合には、排他予約されていない共用データを使用するアプリケーションの実行要求については、その実行が問題なく初期化できる。
【0111】
一方、排他予約状態にある共用データを使用するアプリケーションの実行については、当該セッションが維持され、かつ排他予約が継続している間、その実行ができないか、またはキューに待機される。この場合、アプリケーション調停手段は、クライアントに対し、「オブジェクトが使用中なので、「○○○」オブジェクトは、yyyy/mm/dd/aa:bbまで利用できない可能性があります。」などの通知または表示を、例えば、ブラウザ・ソフトウェアを介したHTTPレスポンス、FTPレスポンス、またはRMIコールバックなどとして返すことにより、クライアントを介してユーザに状況を通知することができる。
【0112】
また、本発明の上記機能は、C、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
【0113】
これまで本発明を図面に示した実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【0114】
【図1】本発明の情報処理装置の概略的な構成を示したブロック図。
【図2】本発明の情報処理装置の機能手段の構成およびクライアントPCのモジュール構成を示したブロック図。
【図3】本発明の排他制御を含むリソース管理におけるアプリケーションの構成オブジェクトの状態遷移および排他予約が行われる状態を示した図。
【図4】本発明のサーバが実行するリソース管理方法のフローチャート。
【図5】本発明における排他制御手段の第1の実施の形態を示した図。
【図6】本発明における排他制御手段の第2の実施の形態を示した図。
【図7】本発明のサーバが実行するリソース管理方法に使用されるデータ構成を示した図。
【図8】本発明のサーバが実行するリソース管理方法が使用するデータ構成の別の実施の形態を示した図。
【図9】本発明のサーバが実行するリソース管理方法が使用するデータ構成のさらに別の実施の形態を示した図。
【図10】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図11】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図12】本発明のリソース管理方法の各機能手段による処理を示したシーケンス図。
【図13】本発明の排他予約管理を含むリソース管理方法による機能を作用を説明した図。
【図14】オブジェクト指向プログラムにおける状態遷移を示した図。
【図15】従来でのオブジェクトの活性化状態と排他制御とセッションおよびチケット有効期限との関係を示した図。
【符号の説明】
【0115】
10…情報処理装置、12…CPU、14…キャッシュ・メモリ、16…システム・メモリ、18…システム・バス、20…グラフィックス・ドライバ、22…ネットワーク・デバイス、24…ディスプレイ、26…I/Oバスブリッジ、28…I/Oバス、30…記憶装置(ハードディスク装置)、32…キーボード/ポインティング・デバイス、34…画像処理ドライバ、36…画像処理デバイス、40…アプリケーション調停手段、42…リソース管理手段、44…セッション管理手段、46…排他制御手段、48…ユーザ認証手段、50…ネットワーク・ドライバ、52…ネットワーク、54…クライアント、56…クライアント・アプリケーション、58…ブラウザ・ソフトウェア、60…ネットワーク・ドライバ(ハード+ドライバ・ソフトウェア)、80…セッション管理テーブル、88…リソース管理テーブル、106…排他管理テーブル
【特許請求の範囲】
【請求項1】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置。
【請求項2】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える、請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項1または2に記載の情報処理装置。
【請求項4】
前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項1〜3のいずれかに記載の情報処理装置。
【請求項5】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記セッション内で前記共用データの排他制御を開始し、前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置。
【請求項6】
前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える、請求項5に記載の情報処理装置。
【請求項7】
前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える、請求項5または6のいずれか1項に記載の情報処理装置。
【請求項8】
前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える、請求項5〜7のいずれか1項に記載の情報処理装置。
【請求項9】
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法。
【請求項10】
さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む、請求項9に記載の情報処理方法。
【請求項11】
さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項9または10に記載の情報処理方法。
【請求項12】
ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項9〜11のいずれかに記載の情報処理方法。
【請求項13】
請求項9〜12のいずれか1項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体。
【請求項14】
請求項9〜12のいずれか1項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラム。
【請求項1】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御を行う排他制御手段と、
を備える、情報処理装置。
【請求項2】
前記情報処理装置は、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させる遷移手段を備える、請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置は、さらに、セッション管理手段を備え、セッション管理手段は、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項1または2に記載の情報処理装置。
【請求項4】
前記情報処理装置は、さらにユーザ認証手段を備え、ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させる、請求項1〜3のいずれかに記載の情報処理装置。
【請求項5】
システム・メモリを備える情報処理装置であって、
セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるアプリケーション調停手段と、
前記セッション内で前記共用データの排他制御を開始し、前記セッション内で排他予約を解除する通知を受取った時またはセッションの有効期限またはチケット有効期限から選択される最も早いタイミングまで前記共用データの排他制御を継続する排他制御手段と、
を備える、情報処理装置。
【請求項6】
前記情報処理装置は、前記セッション内において排他予約状態と排他予約解除状態との間で遷移させる遷移手段を備える、請求項5に記載の情報処理装置。
【請求項7】
前記排他制御手段は、排他予約された前記共用データの読出しを許可する許可手段を備える、請求項5または6のいずれか1項に記載の情報処理装置。
【請求項8】
前記情報処理装置での前記アプリケーションの実行状態に応答して前記アプリケーションが占有するハードウェア資源を回収するリソース回収手段を備える、請求項5〜7のいずれか1項に記載の情報処理装置。
【請求項9】
システム・メモリを備える情報処理装置において実行される情報処理方法であって、前記情報処理方法は、前記情報処理装置に対して、
アプリケーション調停手段により、セッションごとにアプリケーションの実行を調停し、前記アプリケーションが共用データを使用して作業する領域を前記システム・メモリに生成させ、前記アプリケーションを実行させるステップと、
排他制御手段により、前記アプリケーションが割当てられた前記セッションの終了と同期して前記共用データの排他制御するステップと、
を実行させる、情報処理方法。
【請求項10】
さらに、外部指令に応答して前記排他制御手段の状態を前記セッション内で遷移させるステップを含む、請求項9に記載の情報処理方法。
【請求項11】
さらに、セッションの有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項9または10に記載の情報処理方法。
【請求項12】
ユーザによるアクセス権原の期限を示すチケット有効期限に同期して、前記排他制御手段による前記共用データの排他制御を終了させるステップを含む、請求項9〜11のいずれかに記載の情報処理方法。
【請求項13】
請求項9〜12のいずれか1項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラムを格納した装置可読な記録媒体。
【請求項14】
請求項9〜12のいずれか1項に記載の情報処理方法を、情報処理装置に対して実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−219741(P2007−219741A)
【公開日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願番号】特願2006−38310(P2006−38310)
【出願日】平成18年2月15日(2006.2.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成19年8月30日(2007.8.30)
【国際特許分類】
【出願日】平成18年2月15日(2006.2.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]