(57)【特許請求の範囲】
【請求項１】
各クライアントからの要求に応じて必要なリソースを割り当てる処理を実行する情報処理装置において、
各クライアントがグループを生成する権限を有しているか否かを記憶するグループ生成権限記憶手段を参照し、グループを生成する権限を有するクライアントからのグループ化の要求に応じてリソースをグループ化し、新たにグループ化した前記リソースの識別情報を新グループの識別情報に対応付けてグループ管理テーブルに登録するとともに、前記新グループに含まれる前記リソースを既にグループ化しているグループを前記グループ管理テーブルから抽出し、関連グループとして前記新グループの識別情報に対応付けて前記グループ管理テーブルに登録するグループ化手段と、
前記グループ化手段によって生成されたグループを管理するグループ管理手段と、
前記グループ化の要求を行ったクライアントから該グループの識別情報を指定してグループに対する使用要求がなされた場合には、前記グループ管理テーブルから前記グループの識別情報に対応する前記関連グループを特定し、クライアントが使用している前記グループと、該グループを参照だけの状態または変更を伴う状態で使用しているのかを登録する管理テーブルに基づいて、前記関連グループが他のクライアントによって使用されているか否かを検出する検出手段と、
前記検出手段により、前記関連グループが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かを判定する判定手段と、
前記検出手段によって前記関連グループが使用中でないことが検出された場合、または、前記判定手段によって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求を行ったクライアントによる前記使用要求がなされたグループの使用もリソースの変更を伴わない使用である場合には、前記使用要求がなされたグループの使用を許可する許可手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記グループ化は、既存のグループに対するリソースの追加または削除を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記グループ管理手段は、各グループの有効期限も同時に管理し、前記有効期限が経過したグループは自動的に削除することを特徴とする請求項１記載の情報処理装置。
【請求項４】
各クライアントからの要求に応じて必要なリソースを割り当てる処理を実行するプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
各クライアントがグループを生成する権限を有しているか否かを記憶するグループ生成権限記憶手段を参照し、グループを生成する権限を有するクライアントからのグループ化の要求に応じてリソースをグループ化し、新たにグループ化した前記リソースの識別情報を該グループの識別情報に対応付けてグループ管理テーブルに登録するとともに、前記新グループに含まれる前記リソースを既にグループ化しているグループを前記グループ管理テーブルから抽出し、関連グループとして前記新グループの識別情報に対応付けて前記グループ管理テーブルに登録するグループ化手段、
前記グループ化手段によって生成されたグループを管理するグループ管理手段、
前記グループ化の要求を行ったクライアントから該グループの識別情報を指定してグループに対する使用要求がなされた場合には、前記グループ管理テーブルから前記グループの識別情報に対応する前記関連グループを特定し、クライアントが使用している前記グループと、該グループを参照だけの状態または変更を伴う状態で使用しているのかを登録する管理テーブルに基づいて、前記関連グループが他のクライアントによって使用されているか否かを検出する検出手段、
前記検出手段により、前記関連グループが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かを判定する判定手段、
前記検出手段によって前記関連グループが使用中でないことが検出された場合、または、前記判定手段によって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求を行ったクライアントによる前記使用要求がなされたグループの使用もリソースの変更を伴わない使用である場合には、前記使用要求がなされたグループの使用を許可する許可手段、
として機能させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置に関し、特に、各クライアントからの要求に応じて必要なリソースを割り当てる処理を実行する情報処理装置に関する。
【０００２】
【従来の技術】
近年では、ネットワーク技術の進歩により、コンピュータ資源をネットワーク上に分散して管理する方法が一般的になりつつある。
【０００３】
このような分散環境においては、ファイルやオブジェクト等のリソースの有効利用を図るため、同一のリソースが複数のクライアントから利用可能な構成がとられる場合が少なくない。ここで、クライアントとは、コンピュータ等の装置だけでなく、アプリケーションソフトウエアも含むものとする。
【０００４】
【発明が解決しようとする課題】
ところで、リソースを複数のクライアントが共用するためには、リソースの管理が必要となるが、従来においては、リソースを管理する管理プログラムにより、各リソースを別個独立に管理する方法が多用されていた。従って、複数のリソースに対する使用を要求する場合には、クライアントは前述の管理プログラムに対してリソースの数だけ使用要求を行う必要があり、煩雑であるという問題点があった。
【０００５】
また、リソースを複数のクライアントで共用する場合には、リソースの同一性を確保するために排他制御が必要になるが、前述のように複数のリソースをクライアントが使用する際には個々のリソースに対する排他制御を行う必要があり煩雑であるという問題点もあった。
【０００６】
本発明はこのような点に鑑みてなされたものであり、クライアントが複数のリソースを使用する際の要求が煩雑ではなく、また、排他制御も容易な情報処理装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示す、各クライアントからの要求に応じて必要なリソースを割り当てる処理を実行する情報処理装置１において、前記リソースをグループ化するグループ化手段１ａと、前記グループ化手段１ａによって生成されたグループを管理するグループ管理手段１ｂと、クライアントから所定のグループに対する使用要求がなされた場合には、そのグループを構成する個々のリソースが他のクライアントによって使用されているか否かを検出する検出手段１ｃと、前記検出手段１ｃにより、グループを構成する何れかのリソースが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かを判定する判定手段１ｄと、前記検出手段１ｃによって使用中でないことが検出された場合、または、前記判定手段１ｄによって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求を行ったクライアントによる前記グループの使用もリソースの変更を伴わない使用である場合には、前記グループの使用を許可する許可手段１ｅと、を有することを特徴とする情報処理装置が提供される。
【０００８】
ここで、グループ化手段１ａは、リソースをグループ化する。グループ管理手段１ｂは、グループ化手段１ａによって生成されたグループを管理する。検出手段１ｃは、クライアントから所定のグループに対する使用要求がなされた場合には、そのグループを構成する個々のリソースが他のクライアントによって使用されているか否かを検出する。判定手段１ｄは、検出手段１ｃにより、グループを構成する何れかのリソースが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かを判定する。許可手段１ｅは、検出手段１ｃによって使用中でないことが検出された場合、または、判定手段１ｄによって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求を行ったクライアントによるグループの使用もリソースの変更を伴わない使用である場合には、グループの使用を許可する。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明の動作原理を説明する原理図である。この図に示すように、本発明に係る情報処理装置１は、グループ化手段１ａ、グループ管理手段１ｂ、検出手段１ｃ、判定手段１ｄ、および、許可手段１ｅから構成されており、ネットワーク２を介して情報処理装置３−１〜３−３との間で情報を授受する。
【００１０】
ここで、グループ化手段１ａは、自己または他の情報処理装置が有するリソースをグループ化する。なお、グループとは、その構成要素であるリソースが１個だけの場合も含むものとする。
【００１１】
グループ管理手段１ｂは、グループ化手段１ａによって生成されたグループを管理する。
検出手段１ｃは、クライアントから所定のグループに対する使用要求がなされた場合には、そのグループを構成する個々のリソースが他のクライアントによって使用されているか否かを検出する。ここで、クライアントとは、自己を含めた情報処理装置またはこれらにインストールされているアプリケーションソフトウエアをいう。
【００１２】
判定手段１ｄは、検出手段１ｃにより、要求されたグループの何れかのリソースが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かを判定する。
【００１３】
許可手段１ｅは、検出手段１ｃによって要求されたグループのリソースが使用中でないことが検出された場合、または、判定手段１ｄによって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求されたグループの使用もリソースの変更を伴わない使用である場合には、そのグループの使用を許可する。
【００１４】
また、ネットワーク２は、例えば、ＬＡＮ（Local Area Network）またはＷＡＮ（Wide Area Network）等であり、情報処理装置１および情報処理装置３−１〜３−３の間で情報を伝送する。
【００１５】
情報処理装置３−１〜３−３は、例えば、パーソナルコンピュータによって構成されており、情報処理装置１に対してリソースの使用の要求を行い、使用が許可された場合にはこれらのリソースを使用して種々の処理を実行する。
【００１６】
次に、以上の原理図の動作について説明する。
グループ化手段１ａは、クライアント等の要求に応じて自己または他の情報処理装置が有するリソースをグループ化し、グループ管理手段１ｂにグループ化したリソースに関する情報を供給する。いま、リソースＡ、リソースＢ、および、リソースＣをグループ化する要求がなされた場合にはグループ化手段１ａはこれらのリソースから新たなグループＡを生成するとともに、新たなグループが生成された旨を示す情報をグループ管理手段１ｂに対して供給する。
【００１７】
グループ管理手段１ｂは、供給された新たなグループに関する情報を記憶する。なお、グループ管理手段１ｂには、リソースＡ、リソースＤ、リソースＥからなるグループＢが既に登録されているとする。
【００１８】
このような状態において、情報処理装置３−１が新たに登録されたグループＡに対する使用要求を行ったとすると、この要求はネットワーク２を介して情報処理装置１に伝送される。
【００１９】
情報処理装置１では、検出手段１ｃがこの要求を受信し、グループＡに対する使用要求がなされたことを認知する。そして、検出手段１ｃは、グループＡに含まれているリソースが他のクライアントによって現在使用されているか否かを検出する。例えば、いまの例では、グループＢが情報処理装置３−２によって使用中であるとすると、グループＡとグループＢに共通に含まれるリソースＡが情報処理装置３−２によって使用中であるので、検出手段１ｃはリソースが使用中である旨を判定手段１ｄに通知する。
【００２０】
判定手段１ｄは、情報処理装置３−２によるリソースＡの使用が、リソースＡを変更する（例えば、書き換える）ものであるか否かを判定し、判定結果を許可手段１ｅに通知する。いま、情報処理装置３−２によるリソースＡの使用が、リソースＡを変更するものでない場合には、その旨が許可手段１ｅに通知される。
【００２１】
許可手段１ｅは、（１）検出手段１ｃによって要求されたグループに含まれているリソースが使用中でないことが検出された場合、または、（２）判定手段１ｄによって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求されたグループの使用もリソースの変更を伴わない使用である場合には、使用要求がなされたグループの使用を許可する。いまの例では、検出手段１ｃによってリソースＡが使用中であることが検出され、また、判定手段１ｄによってその使用がリソースＡを変更するものでないと判定されているので、許可手段１ｅは、情報処理装置３−１の使用もリソースの変更を伴わないか否かを判定し、伴わない場合にはグループＡの使用許可を情報処理装置３−１に対して送信する。
【００２２】
その結果、情報処理装置３−１では、グループＡに含まれるリソースＡ、リソースＢ、リソースＣを使用可能な状態となる。
以上に説明したように、本発明に係る情報処理装置１によれば、クライアントが複数のリソースを獲得しようとする場合には、グループを指定するだけで、そのグループに含まれているリソースを全て使用することが可能となるので、指定の際の処理を簡易化することが可能となる。
【００２３】
次に、本発明の実施の形態について説明する。
図２は、本発明の実施の形態の構成例を示すブロック図である。この図に示すように、本発明に係る情報処理装置１０は、ＣＰＵ（Central Processing Unit）１０ａ、ＲＯＭ（Read Only Memory）１０ｂ、ＲＡＭ（Random Access Memory）１０ｃ、ＨＤＤ（Hard Disk Drive）１０ｄ、および、Ｉ／Ｆ（Interface）１０ｅによって構成されており、ネットワーク２を介して情報処理装置３−１〜３−３との間で情報を授受する。
【００２４】
ここで、ＣＰＵ１０ａは、装置の各部を制御するとともに、ＨＤＤ１０ｄに格納されているプログラムやデータに従って種々の処理を実行する。
ＲＯＭ１０ｂは、ＣＰＵ１０ａが実行する基本的なプログラムやデータを格納している。
【００２５】
ＲＡＭ１０ｃは、ＣＰＵ１０ａが実行途中のプログラムや演算途中のデータを一時的に格納する。
ＨＤＤ１０ｄは、ＣＰＵ１０ａが実行するプログラムやデータを格納している。
【００２６】
Ｉ／Ｆ１０ｅは、ネットワーク２に対応するプロトコル変換を実行し、情報処理装置３−１〜３−３との間でデータの授受を可能にする。
ネットワーク２は、ＬＡＮまたはＷＡＮによって構成され、クライアント３−１〜３−３と、情報処理装置１０との間で情報を伝送する。
【００２７】
情報処理装置３−１〜３−３は、例えば、パーソナルコンピュータによって構成されており、ネットワーク２を介して情報処理装置１０に対してリソースの使用要求を行い、得られたリソースを用いて種々の処理を実行する。
【００２８】
次に、以上の実施の形態の動作について説明する。
本実施の形態では、クライアントが情報処理装置１０に対して処理（以下、適宜ジョブと称す）の要求を行う場合には、そのクライアントと情報処理装置１０の間でセッションを確立し、そのセッションの下でジョブを実行する。
【００２９】
そこで、先ず、図３を参照して、クライアントが情報処理装置１０との間でセッションを確立し、確立したセッションの下で種々のジョブを実行する際の典型的な処理の流れを説明する。
［Ｓ１］ＣＰＵ１０ａは、セッションを確立する処理である「セッション確立処理」を実行する。なお、この処理の詳細は、図４を参照して後述する。
［Ｓ２］ＣＰＵ１０ａは、クライアントから要求された各種ジョブを実行する。
【００３０】
なお、この「ジョブ」には、図９以降に示す「グルーピング処理」や「グループ獲得処理」等が該当する。
［Ｓ３］ＣＰＵ１０ａは、セッションを終了する処理である「セッション終了処理」を実行する。なお、この処理の詳細は図５を参照して後述する。
【００３１】
次に、図４を参照して、図１に示す「セッション確立処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ１０］ＣＰＵ１０ａは、クライアントの正当性を確認する。なお、クライアントの正当性は、情報処理装置１０に対してログインが発生した場合に供給されるパスワードその他を用いて確認する。
［Ｓ１１］ＣＰＵ１０ａは、確認の結果正当なクライアントであると判定した場合には、ステップＳ１２に進み、それ以外の場合には処理を終了する。
［Ｓ１２］ＣＰＵ１０ａは、セッション毎に付与されるユニークな識別符号であるセッションＩＤを生成する。
［Ｓ１３］ＣＰＵ１０ａは、ＨＤＤ１０ｄに格納されている該当するクライアントの権限情報を取得する。
【００３２】
図５は、クライアントの権限を管理するクライアント管理テーブルの一例を示す図である。この例において、クライアントＩＤは、各クライアントに付与されたユニークな識別符号である。グルーピング権限は、各クライアントがグループを構成する権限を有しているか否かを示す。グループ獲得権限は、各クライアントが獲得可能なグループのＩＤの一覧である。例えば、ＩＤが「Ｃ００１」のクライアントの場合では、グループＩＤが「Ｇ００１」および「Ｇ００３」のグループに対する獲得の権限を有している。グループ解放権限は、使用したグループを解放する権限である。なお、通常の場合は、グループ獲得権限を有していればグループ解放権限も同時に有している。リソース登録権限は、リソースを新たに登録する権限の有無である。リソース削除権限およびリソース解放権限は、リソースの登録および解放の権限の有無を示す。
［Ｓ１４］ＣＰＵ１０ａは、ステップＳ１２で生成したセッションＩＤと、ステップＳ１３で取得したクライアントの権限とをセッション管理テーブルに新たなセッションとして登録する。
【００３３】
図６は、セッション管理テーブルの一例を示す図である。この例において、セッションＩＤは、図４のステップＳ１２において発生したＩＤである。クライアントＩＤは、セッションを確立した主体となるクライアントのＩＤである。グルーピング権限、グループ獲得権限、グループ解放権限、リソース登録権限、リソース削除権限、および、リソース解放権限は、図４のステップＳ１３において取得された権限である。
【００３４】
獲得中グループは、そのセッションが獲得しているグループである。また、Ｒ／Ｗは、獲得しているグループをＲ（Read）の状態（参照するだけの状態）で獲得しているか、もしくは、Ｗ（Write）の状態（変更可能な状態）で獲得しているかを示す。この図の例では、セッションＩＤ「Ｓ００１」の場合はＲの状態で、また、セッションＩＤ「Ｓ００２」の場合はＷの状態でグループを獲得している。
【００３５】
以上のようにしてセッションが確立されると、クライアントは情報処理装置１０に対して種々の処理を要求することが可能となる。
次に、以上のようにして確立されたセッションを終了する場合の処理について図７を参照して説明する。セッションを終了する場合には以下の処理が実行されることになる。
［Ｓ２０］ＣＰＵ１０ａは、対象となるセッションが有効であるか否かを判定し、有効である場合にはステップＳ２１に進み、それ以外の場合には処理を終了する。
［Ｓ２１］ＣＰＵ１０ａは、未解放のリソースが存在するか否かを判定し、未解放のリソースが存在する場合にはステップＳ２１に進み、それ以外の場合にはステップＳ２３に進む。
［Ｓ２２］ＣＰＵ１０ａは、未解放のリソースを解放する。
［Ｓ２３］ＣＰＵ１０ａは、セッション管理テーブルから該当する項目を削除する。
【００３６】
次に、情報処理装置１０がクライアントからの要求に応じてグループを形成する処理と、形成されたグループを確保する場合の処理について説明する。
いま、セッションが確立された状態であるとし、情報処理装置３−１がクライアントとして情報処理装置１０に対して、リソースＩＤが「Ｒ００１」、「Ｒ００５」、「Ｒ００６」である３つのリソースのグルーピングを要請したとする。なお、リソースＩＤとは、各リソースに対して付与されたユニークな識別符号である。
【００３７】
このような要求がなされると、情報処理装置１０のＣＰＵ１０ａは、ＨＤＤ１０ｄに格納されているセッション管理テーブル（図６参照）を参照して、要求がなされたセッションのクライアントがグルーピング権限を有しているか否かを判定する。いま、要求がなされたセッションのセッションＩＤが「Ｓ００１」であるとすると、このクライアントはグルーピング権限を有しているので、ＣＰＵ１０ａは、グルーピングは可能であると判断して、グルーピング処理を実行する。
【００３８】
いまの例では、リソースＩＤが「Ｒ００１」、「Ｒ００５」、「Ｒ００６」である３つのリソースに対するグルーピングが要求されているので、ＣＰＵ１０ａは、これらのＩＤを図８に示すグループ管理テーブルに登録する。
【００３９】
ここで、グループ管理テーブルとは、生成されたグループに関する情報が格納されたテーブルである。図８の例において、グループＩＤは、グループに付与されたユニークな識別符号である。有効期限は、そのグループの有効期限であり、この期限を過ぎるとＣＰＵ１０ａは、これを自動的に削除する。なお、このように有効期限を定めてグループを削除するのは、不要となったグループがＨＤＤ１０ｄにとどまり続けるのを防止するためである。リソースＩＤは、グループを構成するリソースのＩＤである。関連グループは、そのグループと共通のリソースを含むグループのＩＤである。例えば、Ｇ００２は、Ｇ００１と共通のリソースであるＲ００１を含むので、Ｇ００１が関連グループとなる。
【００４０】
ＣＰＵ１０ａは、リソースＩＤが「Ｒ００１」、「Ｒ００５」、「Ｒ００６」をグループ管理テーブルに登録するとともに、ＩＤを生成してグループＩＤとして登録する。また、リソースの重要度等に応じて有効期限を設定するとともに、既に登録されているグループの中から関連グループに該当するものを検索して登録する。
【００４１】
以上のような処理により、例えば、図８に示す「Ｇ００１」のような登録がなされることになる。
次に、以上のようにして形成されたグループをクライアントが獲得する場合の処理について実例を挙げながら説明する。
【００４２】
いま、情報処理装置３−１がグループＩＤが「Ｇ００１」のグループを獲得する要求を行ったとすると、情報処理装置１０のＣＰＵ１０ａは、セッションＩＤを参照して、要求を行ったクライアントがグループ獲得権限を有しているか否かを判定する。例えば、このセッションＩＤが「Ｓ００１」であり、クライアントＩＤが「Ｃ００２」であるとすると、図６の第１番目に示す項目に該当するので、このクライアントはグループ獲得権限を有しているとして、ＣＰＵ１０ａは、グループの獲得処理を実行する。
【００４３】
ＣＰＵ１０ａは、先ず、獲得しようとするグループの関連グループが他のクライアントによってＷの状態で獲得されているか否かを判定する。その結果、Ｗの状態で獲得されている場合には、取得しようとするグループに含まれているリソースが、関連グループを獲得している他のクライアントによって変更されるおそれがあることから、この要求を却下する。なお、却下せずに、要求を保留状態としておき、該当する関連グループの使用が終了した後に、再度獲得処理を実行するようにしてもよい。
【００４４】
関連グループがＷの状態で獲得されていない場合には、要求を行ったクライアントがグループをＷの状態で獲得するのか否かを判定し、Ｗの状態で獲得する場合には更に関連グループが獲得されているか否かを判定し、獲得されている場合には要求を却下または保留し、関連グループが獲得されていない場合には、グループに含まれるリソースの獲得処理を実行する。
【００４５】
そして、ＣＰＵ１０ａは、図８に示すグループ管理テーブルを参照して、要求されたグループに含まれるリソースを逐次獲得し、全てのリソースの獲得が完了した場合には、図６に示すセッション管理テーブルに対して、獲得中のグループと獲得の状態を登録する。いまの例では、第１番目の項目に対して、獲得グループとして「Ｇ００１」を、また、獲得状態として例えば「Ｒ」を登録する。
【００４６】
このようにしてグループが獲得されると、情報処理装置３−１は、これらのリソースを自由に使用して、種々の処理を実行することが可能となる。
リソースの使用が完了すると、情報処理装置３−１は、情報処理装置１０に対してグループの解放を要求する。
【００４７】
グループの解放が要求されると、情報処理装置１０のＣＰＵ１０ａは、先ず、要求を行ったクライアントのセッションＩＤを参照し、そのクライアントがグループ解放権限を有しているか否かを判定し、有していない場合にはこの要求を却下する。
【００４８】
いまの例では、このクライアント（ＩＤがＣ００１のクライアント）は、図５に示すように、グループ解放権限を有しているので、解放処理が実行されることになる。
【００４９】
解放処理が実行されると、ＣＰＵ１０ａは、図８に示すグループ管理テーブルを参照し、要求されたグループに含まれているリソースを逐次解放する処理を実行する。
【００５０】
そして、全てのリソースが解放された場合には、図６に示す、セッション管理テーブルの「獲得中グループ」と「Ｒ／Ｗ」の内容をヌル（ＮＵＬＬ）にする。その結果、解放されたリソースを構成要素とするグループの使用が可能となる。
【００５１】
以上に説明したように、本発明の実施の形態によれば、リソースをグループ化し、グループ単位でリソースの獲得を行うようにしたので、クライアント側が行う要求を簡易にすることが可能となる。
【００５２】
また、グループ単位でリソースの排他制御を実行するようにしたので、リソースを個別に監視するという煩雑さを解消することが可能となる。なお、グループ単位ではなく、リソース単位で排他制御を行うことも可能である。
【００５３】
次に、図９〜１２を参照して、以上の機能を実現するための処理の一例について説明する。
先ず、図９を参照して、リソースをグルーピングするグルーピング処理について説明する。この処理は、例えば、ユーザがマニュアル操作でグループを生成する場合や、アプリケーションプログラムがグループを生成する要求を行った場合に実行される処理である。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ３０］ＣＰＵ１０ａは、クライアントからの要求に含まれているセッションＩＤが図６に示すセッション管理テーブルに含まれているか否かを判定することにより、セッションが有効であるか否かを判定し、有効である場合にはステップＳ３１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ３１］ＣＰＵ１０ａは、セッション管理テーブルから、要求を行ったクライアントのグルーピング権限情報を取得する。
［Ｓ３２］ＣＰＵ１０ａは、ステップＳ３１において取得したグルーピング権限情報を参照し、このクライアントがグルーピング権限を有している場合にはステップＳ３３に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ３３］ＣＰＵ１０ａは、新たに生成するグループに付与するグループＩＤを発生する。
［Ｓ３４］ＣＰＵ１０ａは、新たなグループを生成する。
［Ｓ３５］ＣＰＵ１０ａは、生成された新たなグループに含まれているリソースを共有する他のグループである関連グループをグループ管理テーブルから検索する。
［Ｓ３６］ＣＰＵ１０ａは、新たに生成されたグループの有効期限を決定する。例えば、リソースの重要度等に応じて、有効期限を決定する。
［Ｓ３７］ＣＰＵ１０ａは、図８に示すグループ管理テーブルに対して、新たに生成されたグループを登録する。
【００５４】
以上の処理によれば、新たなグループを生成して、図８に示すグループ管理テーブルに登録することが可能となる。
次に、図１０を参照して、クライアントがグループを獲得する際に実行される処理の一例について説明する。この処理が開始されると、以下の処理が実行される。
［Ｓ４０］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ４１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ４１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルから要求を行ったクライアントのグループ獲得権限情報を取得する。
［Ｓ４２］ＣＰＵ１０ａは、ステップＳ４１で取得したグループ獲得権限情報を参照し、グループ獲得権限があるか否かを判定し、権限がある場合にはステップＳ４３に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ４３］ＣＰＵ１０ａは、獲得しようとするグループの関連グループを図８に示すグループ管理テーブルから特定し、特定した関連グループが獲得中グループであって、かつ、Ｗの状態で獲得されているか否かを図６に示すセッション管理テーブルを参照して判断する。その結果、獲得中グループであってＷの状態で獲得されている場合にはグループを獲得できないとして処理を終了し、それ以外の場合にはステップＳ４４に進む。
［Ｓ４４］ＣＰＵ１０ａは、要求を行ったクライアントがグループをＷの状態で獲得するのか否かを判定し、Ｗの状態で獲得する場合にはステップＳ４５に進み、それ以外の場合にはステップＳ４６に進む。
［Ｓ４５］ＣＰＵ１０ａは、図６に示すセッション管理テーブルを参照し、関連グループがＲまたはＷの何れかの状態で獲得されているか否かを判定し、獲得されている場合にはグループは獲得できないとして処理を終了し、それ以外の場合にはステップＳ４６に進む。
［Ｓ４６］ＣＰＵ１０ａは、図８に示すグループ管理テーブルを参照し、獲得しようとするグループに含まれているリソースを１つ獲得する。
［Ｓ４７］ＣＰＵ１０ａは、グループを構成する全てのリソースの獲得が完了したか否かを判定し、獲得が完了していない場合にはステップＳ４６に戻って同様の処理を繰り返し、それ以外の場合にはステップＳ４８に進む。
［Ｓ４８］ＣＰＵ１０ａは、目的のグループを獲得したとして、図６に示すセッション管理テーブルに対して、獲得したグループＩＤとその状態を登録する。
【００５５】
以上の処理によれば、クライアントから所定のグループに対する獲得要求があった場合にはそのグループを獲得し、獲得した場合にはセッション管理テーブルにその旨が登録されることになる。なお、獲得要求を行ってもグループが獲得できなかった場合には、例えば、セッション管理テーブルを参照して該当する関連グループの使用が終了したことを検知し、情報処理装置１０が獲得処理を再度実行するようにしてもよい。
【００５６】
次に、図１１を参照して、クライアントが獲得したグループを解放する際に実行される処理の一例について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ６０］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ６１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ６１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからグループ解放権限情報を取得する。
［Ｓ６２］ＣＰＵ１０ａは、ステップＳ６１で取得したグループ解放権限情報を参照し、グループ解放権限を有するか否かを判定し、有しない場合には要求を受け付けないとして処理を終了し、それ以外の場合にはステップＳ６３に進む。
［Ｓ６３］ＣＰＵ１０ａは、解放しようとするグループに含まれているリソースを解放する処理を実行する。なお、この処理の詳細は、図１２を参照して後述する。
［Ｓ６４］ＣＰＵ１０ａは、解放しようとするグループを構成する全てのリソースの解放が完了したか否かを判定し、完了した場合にはステップＳ６５に進み、それ以外の場合にはステップＳ６３に戻って同様の処理を繰り返す。
［Ｓ６５］ＣＰＵ１０ａは、セッション管理テーブルに対して、グループを解放した旨を登録する。具体的には、セッション管理テーブルに格納されている獲得中グループとＲ／Ｗの内容をヌルにする。
【００５７】
次に、図１２を参照して、図１１に示す「リソース解放処理」の詳細について説明する。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ７０］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからリソース解放権限情報を取得する。
［Ｓ７１］ＣＰＵ１０ａは、ステップＳ７０で取得したリソース解放権限情報を参照し、このクライアントがリソース解放権限を有している場合にはステップＳ７２に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ７２］ＣＰＵ１０ａは、対象となるリソースを解放する。即ち、リソースを他のクライアントによって使用可能の状態とする。
［Ｓ７３］ＣＰＵ１０ａは、何れかのクライアントが、リソースが解放されたことを示す割り込みの発生を希望している場合にはステップＳ７４に進み、それ以外の場合にはもとの処理へ復帰する。
【００５８】
なお、リソース解放割り込みとは、そのリソースが解放されることを待っているクライアントに対して、リソースが解放されたことを通知するための割り込みである。なお、この割り込みは、後述する図１６において使用される。
［Ｓ７４］ＣＰＵ１０ａは、リソース解放割り込みを発生する。
【００５９】
以上に示したように、図１１および図１２の処理によれば、獲得したグループを解放することが可能となる。
次に、図１３を参照して、グループに対してメンバ（リソース）を新たに追加する場合の処理について説明する。この処理は、例えば、ユーザがマニュアル操作によって、所定のグループに対して新たなメンバを追加する操作を行った場合に実行される。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ８０］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ８１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ８１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからグルーピング権限情報を取得する。
［Ｓ８２］ＣＰＵ１０ａは、ステップＳ８１において取得したグルーピング権限情報を参照し、グルーピング権限が存在するか否かを判定し、権限が存在する場合にはステップＳ８３に進み、それ以外の場合には処理を終了する。
［Ｓ８３］ＣＰＵ１０ａは、新たなリソースをグループに対して追加する。具体的には、図８に示すグループ管理テーブルに対して新たなメンバであるリソースＩＤを追加する。
［Ｓ８４］ＣＰＵ１０ａは、関連グループを検索する。即ち、新たなメンバの追加に伴って関連グループが変化するので、新たに関連グループとなるグループを検索する。
［Ｓ８５］ＣＰＵ１０ａは、関連グループを修正する。即ち、ＣＰＵ１０ａは、ステップＳ８４で取得した新たな関連グループを図８に示すグループ管理テーブルに対して追加登録するとともに、追加の対象となった関連グループのそれぞれについて、必要に応じて当該グループ（メンバが追加されたグループ）を関連グループとして追加する。
【００６０】
以上の処理によれば、既存のグループに対して新たなメンバを追加することが可能となる。
ところで、グループに新たなメンバを追加する場合には、いままで登録されていなかった新たなリソースをシステムに登録する必要が生ずる場合があるが、図１４はそのような場合の処理の一例である。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ９０］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ９１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ９１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからリソース登録権限情報を取得する。
［Ｓ９２］ＣＰＵ１０ａは、ステップＳ９１において取得したリソース登録権限情報を参照し、クライアントが登録権限を有するか否かを判定し、権限を有する場合にはステップＳ９３に進み、それ以外の場合には処理を終了する。
［Ｓ９３］ＣＰＵ１０ａは、対象となるリソースを新たなリソースとして登録する。
【００６１】
以上の処理によれば、新たなリソースをシステムに登録することが可能となる。
次に、既存のグループに含まれている所定のメンバを削除する場合の処理について説明する。この処理は、例えば、ユーザが所定のグループを構成する所定のリソースを削除する操作を行った場合に実行される。このフローチャートが開始されると、以下の処理が実行されることになる。
［Ｓ１００］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ１０１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ１０１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからグルーピング権限情報を取得する。
［Ｓ１０２］ＣＰＵ１０ａは、ステップＳ１０１において取得したグルーピング権限情報を参照し、クライアントがグルーピング権限を有するか否かを判定し、権限を有する場合にはステップＳ１０３に進み、それ以外の場合には処理を終了する。
［Ｓ１０３］ＣＰＵ１０ａは、グループから所定のメンバを削除する。具体的には、ＣＰＵ１０ａが、図８に示すグループ管理テーブルから対象となるリソースＩＤを削除する。
［Ｓ１０４］ＣＰＵ１０ａは、関連グループを検索する。即ち、メンバの削除に伴って関連グループが変化するので、ＣＰＵ１０ａは、メンバが削除されたグループに関連する関連グループを再度検索する。
［Ｓ１０５］ＣＰＵ１０ａは、ステップＳ１０４で取得した関連グループにより図８に示すグループ管理テーブルの内容を更新する。また、今回の検索により関連グループから除外されたグループのそれぞれに関しては、その関連グループから当該グループ（メンバが除外されたグループ）を除外する。
【００６２】
以上の処理によれば、既存のグループから所定のメンバを削除することが可能となる。
ところで、グループからメンバを削除する場合には、システムからリソースを削除する必要が生ずるが、図１６はそのような場合の処理の一例である。このフローチャートが開始されると、以下の処理が実行される。
［Ｓ１１０］ＣＰＵ１０ａは、要求を行ったクライアントのセッションが有効であるか否かを判定し、有効である場合にはステップＳ１１１に進み、それ以外の場合には要求を受け付けないとして処理を終了する。
［Ｓ１１１］ＣＰＵ１０ａは、図６に示すセッション管理テーブルからリソース削除権限情報を取得する。
［Ｓ１１２］ＣＰＵ１０ａは、ステップＳ１１１において取得したリソース削除権限情報を参照し、クライアントがリソース削除権限を有するか否かを判定し、権限を有する場合にはステップＳ１１３に進み、それ以外の場合には処理を終了する。
［Ｓ１１３］ＣＰＵ１０ａは、対象となるリソースがビジー状態であるか否かを判定し、ビジーである場合にはステップＳ１１４に進み、それ以外の場合にはステップＳ１１５に進む。具体的には、解放割り込みの発生の有無によりリソースがビジーであるか否かを判定する。
【００６３】
なお、それ以外にも、例えば、図８に示すグループ管理テーブルを参照し、対象となるリソースを含むグループが存在するか否かを判定し、存在している場合にはそのグループが獲得中であるか否かを図６に示すセッション管理テーブルを参照して判断する。そして、獲得中である場合にはビジーであると判定することができる。
［Ｓ１１４］ＣＰＵ１０ａは、リソースから解放割り込みが発生したか否かを判定し、解放割り込みが発生した場合にはリソースがビジーでなくなったと判定し、ステップＳ１１５に進み、それ以外の場合にはステップＳ１１４に戻って同様の処理を繰り返す。
【００６４】
なお、リソース解放割り込みを使用しない場合には、図６に示すセッション管理テーブルを参照し、該当する獲得中グループがテーブル上から削除されたことを手がかりとして、リソースのビジー状態を判定する。
［Ｓ１１５］ＣＰＵ１０ａは、対象となるリソースを削除する。
［Ｓ１１６］ＣＰＵ１０ａは、グループ関連テーブルの更新処理を行う。
【００６５】
以上の処理によれば、クライアントの使用の有無を判定しつつ、不要なリソースをシステムから削除することが可能となる。
なお、以上の実施の形態では、分散環境下における実施形態について説明したが、単一の情報処理装置に対して本発明を適用することも可能である。その場合には、クライアントはアプリケーションプログラムと同意になる。
【００６６】
また、以上の実施の形態では、グループ単位で排他制御を行うようにしたが、リソース単位で排他制御を行うことも可能である。その場合には、獲得要求がなされたグループに含まれているリソースの各々について図１０に示す場合と同様のチェックを行い、全てのリソースが獲得できた場合にはグループが獲得できたとすることも可能である。
【００６７】
最後に、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置が有すべき機能の処理内容は、コンピュータで読み取り可能な記録媒体に記録されたプログラムに記述されており、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読み取り可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場へ流通させる場合には、ＣＤ−ＲＯＭ(Compact Disk Read Only Memory)やフロッピーディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【００６８】
【発明の効果】
以上説明したように本発明では、各クライアントからの要求に応じて必要なリソースを割り当てる処理を実行する情報処理装置において、各クライアントがグループを生成する権限を有しているか否かを記憶するグループ生成権限記憶手段を参照し、グループを生成する権限を有するクライアントからのグループ化の要求に応じてリソースをグループ化するグループ化手段と、グループ化手段によって生成されたグループを管理するグループ管理手段と、クライアントから所定のグループに対する使用要求がなされた場合には、そのグループを構成する個々のリソースが他のクライアントによって使用されているか否かをグループ単位で検出する検出手段と、検出手段により、グループを構成する何れかのリソースが他のクライアントによって使用中であることが検出された場合には、その使用がリソースの変更を伴うものであるか否かをグループ単位で判定する判定手段と、検出手段によって使用要求がなされたグループが使用中でないことが検出された場合、または、判定手段によって他のクライアントによる使用がリソースの変更を伴わない使用であると判定され、かつ、要求を行ったクライアントによる使用要求がなされたグループの使用もリソースの変更を伴わない使用である場合には、使用要求がなされたグループの使用を許可する許可手段と、を有するようにしたので、クライアントによるリソースの取得手続きを簡易化することが可能となる。また、例えば、ユーザがマニュアル操作によって、所定のグループに対して新たなメンバを追加する操作やメンバを削除する操作を行った場合、グループのメンバを任意に変更することができる。
【図面の簡単な説明】
【図１】本発明の動作原理を説明する原理図である。
【図２】本発明の実施の形態の構成例を示すブロック図である。
【図３】クライアントが情報処理装置との間でセッションを確立し、確立したセッションの下で種々のジョブを実行する際の典型的な処理の流れを説明する。
【図４】図３に示す「セッション確立処理」の詳細を説明するフローチャートである。
【図５】クライアント管理テーブルの一例を説明する図である。
【図６】セッション管理テーブルの一例を説明する図である。
【図７】図３に示す「セッション終了処理」の詳細を説明するフローチャートである。
【図８】グループ管理テーブルの一例を説明する図である。
【図９】グルーピング処理の一例を説明するフローチャートである。
【図１０】グループ獲得処理の一例を説明するフローチャートである。
【図１１】グループ解放処理の一例を説明するフローチャートである。
【図１２】図１１に示す「リソース解放処理」の詳細を説明するフローチャートである。
【図１３】グループメンバ追加処理の一例を説明するフローチャートである。
【図１４】リソース登録処理の一例を説明するフローチャートである。
【図１５】グループメンバ削除処理の一例を説明するフローチャートである。
【図１６】リソース削除処理の一例を説明するフローチャートである。
【符号の説明】
１  情報処理装置
１ａ  グループ化手段
１ｂ  グループ管理手段
１ｃ  検出手段
１ｄ  判定手段
１ｅ  許可手段
２  ネットワーク
３−１〜３−３  情報処理装置
１０  情報処理装置
１０ａ  ＣＰＵ
１０ｂ  ＲＯＭ
１０ｃ  ＲＡＭ
１０ｄ  ＨＤＤ
１０ｅ  Ｉ／Ｆ
【図１】
0004434408.tif 000002
【図２】
0004434408.tif 000003
【図３】
0004434408.tif 000004
【図４】
0004434408.tif 000005
【図５】
0004434408.tif 000006
【図６】
0004434408.tif 000007
【図７】
0004434408.tif 000008
【図８】
0004434408.tif 000009
【図９】
0004434408.tif 000010
【図１０】
0004434408.tif 000011
【図１１】
0004434408.tif 000012
【図１２】
0004434408.tif 000013
【図１３】
0004434408.tif 000014
【図１４】
0004434408.tif 000015
【図１５】
0004434408.tif 000016
【図１６】
0004434408.tif 000017