(57)【要約】【課題】  並行して同じ資源にアクセスする可能性のあるポリシの集合を発見すること。【解決手段】  ポリシの制御対象となる資源毎に、当該資源にて作動可能なポリシによる制御指令を表す命令情報と、当該各制御指令が資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と、が予め関連付けられて記憶された資源情報記憶手段２２を備えると共に、解析対象となるポリシと資源情報記憶手段内の情報とに基づいて、各ポリシが対象とする資源と当該資源に対するポリシによる制御指令の命令種類とを判別する命令検査手段１２と、この判別結果に基づいて、同一の資源を対象とする２以上のポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査手段１４と、を備えた。【選択図】図１
2005250688.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを解析して検出するポリシ解析システムであって、
前記ポリシの制御対象となる資源毎に、当該資源にて作動可能な前記ポリシによる制御指令を表す命令情報と、当該各制御指令が前記資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と、が予め関連付けられて記憶された資源情報記憶手段を備えると共に、
解析対象となる前記ポリシと前記資源情報記憶手段内の情報とに基づいて、前記各ポリシが対象とする資源と当該資源に対するポリシによる制御指令の命令種類とを判別する命令検査手段と、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査手段と、
を備えたことを特徴とするポリシ解析システム。
【請求項２】
オペレータあるいは外部接続された他の機器に対して所定の情報を出力する出力手段を有すると共に、
前記重複検査手段は、前記検出された２以上のポリシに関する情報を前記出力手段を介して外部に出力する機能を有する、ことを特徴とする請求項１記載のポリシ解析システム。
【請求項３】
前記ポリシは、当該ポリシが作動する条件である作動条件情報を含むと共に、
この作動条件情報に基づいて、前記重複検査手段にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査手段を備えた、ことを特徴とする請求項１記載のポリシ解析システム。
【請求項４】
前記ポリシは、当該ポリシが作動する条件である作動条件情報を含むと共に、
この作動条件情報に基づいて、前記重複検査手段にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査手段を備えた、ことを特徴とする請求項１記載のポリシ解析システム。
【請求項５】
オペレータあるいは外部接続された他の機器に対して所定の情報を出力する出力手段を有すると共に、
前記条件検査手段は、前記検出したポリシに関する情報を前記出力手段を介して外部に出力する機能を有する、ことを特徴とする請求項３又は４記載のポリシ解析システム。
【請求項６】
制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを、コンピュータにて解析して検出するポリシ解析方法であって、
予め前記資源毎に関連付けられて記憶部に記憶された、当該資源にて作動可能な制御指令を表す命令情報及び当該制御指令によって前記資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と解析対象となる前記ポリシとに基づいて、前記各ポリシが対象とする資源と当該ポリシの制御指令の命令種類とを判別する命令検査工程と、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシを抽出するポリシ抽出工程と、
これら抽出されたポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査工程と、
を備えたことを特徴とするポリシ解析方法。
【請求項７】
前記ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、前記重複検査工程にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査工程を備えた、ことを特徴とする請求項６記載のポリシ解析方法。
【請求項８】
前記ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、前記重複検査工程にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査工程を備えた、ことを特徴とする請求項６記載のポリシ解析方法。
【請求項９】
制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを解析して検出するコンピュータに、
前記ポリシの制御対象となる資源毎に、当該資源にて作動可能な前記ポリシによる制御指令を表す命令情報と、当該各制御指令が前記資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と、が予め関連付けて記憶する資源情報記憶手段、
解析対象となる前記ポリシと前記資源情報記憶手段内の情報とに基づいて、前記各ポリシが対象とする資源と当該資源に対するポリシによる制御指令の命令種類とを判別する命令検査手段、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査手段、
とを実現するためのポリシ解析用プログラム。
【請求項１０】
前記ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、前記重複検査手段にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査手段、
を前記コンピュータに実現するための請求項９記載のポリシ解析用プログラム。
【請求項１１】
前記ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、前記重複検査手段にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査手段、
を前記コンピュータに実現するための請求項９記載のポリシ解析用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はポリシ解析システム、ポリシ解析方法およびポリシ解析用プログラムに関し、特に同一の資源に対して同時にアクセスを行う可能性のあるポリシの集合を検出することのできるポリシ解析システム、ポリシ解析方法およびポリシ解析用プログラムに関する。
【背景技術】
【０００２】
従来のポリシ解析システムの一例が、非特許文献１に記載されている。従来より、ネットワークとコンピュータにより構成される分散システムを、ある条件が成り立つときにとるべき動作が記述されたルールから成るポリシを用いて管理・制御する手法が採られているが、これらポリシを管理するためのポリシ解析システムが用いられる。ポリシ管理では、複数のポリシに従って分散システムの挙動を監視し、制御を行う。この時、システムを制御するポリシに誤りがある可能性があるが、このような誤りは分散システムの異常な振る舞いを導く原因となる可能性があるため、早期に発見することが望ましい。このような誤りのあるポリシを検出するためにポリシ解析システムが利用されている。
【０００３】
ここで、図８に、ポリシ制御を伴う分散システムの構成の概略を示し、また、従来のポリシ解析システムの構成を図９に示す。図８に示すように、ネットワーク１０５（バックボーン１０５ａ、サーバネットワーク１０５ｂ、アクセスネットワーク１０５ｃを含む）を介して接続されたサーバコンピュータ１０２、装置１０３（ネットワーク機器など）、クライアント端末１０４からなる分散システムには、ポリシが蓄積されたポリシサーバ１０１が接続されており、このポリシサーバ１０１から各サーバ等の装置を制御するポリシが提供される。そして、このポリシサーバ自体が、ポリシを解析するポリシ解析システムとなっている。そして、ポリシ解析システムは、図９に示すように、入力装置１３０と、ＣＰＵ内に構築されるポリシ衝突解析装置１１０と、記憶装置１２０と、出力装置１４０とから構成されている。ポリシ衝突解析装置１１０は、各処理を実現するポリシ管理器１１１と、ドメイン重複検査器１１２と、衝突検査器１１３とから構成されている。また、記憶装置１２０には、ポリシ記憶部１２１が形成されている。
【０００４】
ここで、入力装置１３０は、解析対象となるポリシの集合を各処理部が形成されたポリシ衝突解析装置１１０に与えるために用いられる。例えば、コンピュータのキーボードなどの入力装置１３０を用いて、人間が従来のポリシ解析システムを起動し、解析対象を指定する。ポリシ管理器１１１は、記憶部１２０より解析対象として指定されたポリシを取得する。そして、取得するポリシは、図１０（ａ）に示すような構造を持っている（符号Ｄ１０１）。また、ドメイン重複検査器１１２は、ポリシ管理器１１１が取得した全ポリシの集合をもらいうけると、そのドメインが重複していないか検査を行う。そして、ドメイン重複検査器１１２は、検査の結果として、ドメインが重複しているポリシの集合を記録した中間結果管理表Ｄ１０３（図１０（ｃ））を生成し、衝突検査器１１３に渡す。この衝突検査器１１３は、中間結果管理表Ｄ１０３の各行で指定されたドメインの重複するポリシを対象に、衝突が発生するか否かを検査し、ポリシ衝突が発生するポリシの集合を格納した結果管理表Ｄ１０４（図１０（ｄ）参照）を生成し、出力装置１４０に渡す。出力装置１４０は、例えば、コンピュータのモニタなどであり、ポリシ衝突解析の結果として結果管理表Ｄ１０４を出力する。
【０００５】
続いて、ポリシＤ１０１の構成について詳細に説明する。ポリシＤ１０１は、ポリシを識別するために割り当てられる識別子と、ポリシの種類と、ポリシが発火する条件を記述した条件節と、命令節で指定された命令を行うべき動作主と、命令節の命令の対象と、ポリシが発火した場合に行うべき命令節とより構成される。また、ポリシの種類は、義務ポリシ、禁止義務ポリシ、許可ポリシ、禁止ポリシの４種類である。義務ポリシは、対象が、命令節で指定された命令を行う義務があることを示すために用いられる。禁止義務ポリシは、対象が命令節で指定された命令を行ってはならないということを示すために用いられる。許可ポリシは、対象が命令節で指定された命令を行ってもよいことを示すために用いられる。禁止ポリシは、対象が命令節で指定された命令を行ってはならないことを示すために用いられる。一般に、許可ポリシと禁止ポリシはアクセス制御に利用され、義務ポリシと禁止義務ポリシは障害監視や対応などの監視・管理系に利用される。なお、禁止ポリシと禁止義務ポリシは概念は似ているが、用途が異なるため、ポリシを解釈・実行する処理系の扱いが禁止ポリシと禁止義務ポリシで異なる。また、動作主、及び、対象はドメイン名と呼ばれる文字列により指定される。ドメイン名に関しては次に詳しく説明する。なお、より一般的なポリシの構成が非特許文献２に記載されており、当該文献では、ポリシは条件節と命令節により構成される。
【０００６】
また、上述したドメイン名は、ポリシの動作主や対象をあらわすオブジェクトを集合として指定するための文字列であり、ファイルシステムのディレクトリ名と類似している。ドメイン名は、ルートノードを一つだけ持つ非循環有効グラフ構造のデータと関連付けられている。図９（ｂ）にそのデータの一例を示す。非循環有効グラフ構造のデータは、ルートノードとノードと有効辺とから構成され、ノードには動作主や対象をあらわすオブジェクトへの参照が格納されている。例えば、あるポリシにおいて、”／Ａ／Ｄ”というドメイン名が動作主として与えられ、かつ、ドメイン名が、図９（ｂ）で示したデータと関連付けられている場合、／Ａ／Ｄで示されるノードＤが持つオブジェクトの参照が、動作主をあらわすオブジェクトの集合として処理される。また別の例として、あるポリシにおいて、“／Ｂ”というドメイン名が動作主として与えられたとする。図９（ｂ）に示すデータより、“／Ｂ”はノードＣを参照していることがわかる。従って、“／Ｂ”というドメイン名があらわす動作主のオブジェクトの集合は、ノードＢとノードＣが持つオブジェクトの参照の和により得られる。このように、ドメインは、階層化された構造を持ったオブジェクトの集合を表す。
【０００７】
このような構成を有する従来のポリシ解析システムの動作を、上述した図９（ａ）と、図１０のデータ構造図と、図１１のシステム全体の動作を示すフローチャートと、を参照して説明する。
【０００８】
まず、入力装置１３０により、ポリシ衝突解析装置１１０が解析するべきポリシの集合が与えられる。ポリシ管理器１１１は指定されたポリシの集合であるポリシ表Ｄ１０２（図１０（ｂ）参照）を、ポリシデータを記憶しているポリシ記憶部１２１より読み込むと、ドメイン重複検査器１１２にポリシ表Ｄ１０２を渡す（ステップＳ１０１）。ドメイン重複検査器１１２は、ポリシ表Ｄ１０２に含まれる全てのポリシの中から、次に示す条件を満たす全てのポリシの集合を算出し、中間結果管理表Ｄ１０３を作成し、ポリシ表Ｄ１０２とともに衝突検査器１１３に渡す（ステップＳ１０２）。求めるポリシの集合において成立する条件は、当該ポリシの集合に含まれる全てのポリシの動作主のドメイン名が指定するオブジェクトの集合の積集合が空ではなく、かつ、当該ポリシの集合に含まれる全ての対象のドメイン名が指定するオブジェクトの集合の積集合が空ではなく、かつ、当該ポリシの集合に含まれる全ての命令節に最低一つ以上の同じ名前を持つ命令が含まれている、というものである。このような性質を満たすポリシの集合とは、「動作主」と「対象」と「命令」との３つが重複する可能性があるポリシの集合である。
【０００９】
そして、中間結果管理表Ｄ１０３を受け取った衝突検査器１１３は、中間結果管理表Ｄ１０３の各行それぞれに対して、各行で指定されたポリシの集合を対象に、ポリシの種類の組み合わせが、（１）義務ポリシと禁止義務ポリシ、（２）許可ポリシと禁止ポリシ（３）義務ポリシと禁止ポリシ、のいずれかに相当する場合、そのような組み合わせとなるポリシの集合を発見し、そのようなポリシの識別子の集合を結果管理表Ｄ１０４に追加し、最終的に得られた結果管理表Ｄ１０４を出力装置１４０に渡し、当該出力装置１４０はその結果をモニタなどに出力する（ステップＳ１０３）。なお、ポリシの種類は、ポリシ表Ｄ１０２を用いて識別子からポリシを特定することで判明する。
【００１０】
このようにして得られた結果管理表Ｄ１０４は、同時に解釈することの不可能なポリシの集合を表しており、実際にそのようなポリシを処理して、ポリシ管理システムが不正な振る舞いを起こす前に、オペレータなどが不正なポリシを検出し排除することが可能となる。
【００１１】
【非特許文献１】エミール・ルピュ（Emil C. Lupu）、モリス・スローマン(Morris Sloman)著、コンフリクツ・イン・ポリシーベースド・ディストリビューテッド・システムズ・マネージメント（Conflicts in Policy-Based Distributed Systems Management）、アイ・イー・イー・イー・トランザクションズ・オン・ソフトウェア・エンジニアリング（IEEE Transanctionson Software Engineering）、米国、１９９９年、第２５巻、第６号、８５２〜８６９頁
【非特許文献２】ビー・ムーア（B. Moore）、他著、ポリシ・コア・インフォメーション・モデル(Policy Core Information Model)、アールエフシー3060(RFC3060)、インターネット・エンジニアリング・タスクフォース(Internet Engineering Task Force)、２００１年
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記従来例に示すポリシ解析システムでは、以下のような不都合があった。まず、第１の問題点は、並行して同じ資源にアクセスする可能性があるようなポリシの集合を発見できないということである。すなわち、上記従来例では、（１）義務ポリシと禁止義務ポリシ、（２）許可ポリシと禁止ポリシ（３）義務ポリシと禁止ポリシ、のいずれかに相当する複数のポリシのみを検出しているだけであり、単に相反する制御指令を伴うポリシを検出しているにすぎず、複数のポリシが同じ対象に対してアクセスするか否かに関してなんら考慮を行っていない。このため、その他、並行して同じ資源にアクセスするポリシの集合を検出することができず、ポリシ管理システムの管理対象であるシステムに問題を引き起こす原因となるポリシを有効に排除することができず、ポリシ管理の対象となるシステムの安定化を図ることができない、という問題が生じる。例えば、非特許文献１において、資源へのアクセスが発生するポリシは義務ポリシであるが、当該文献においては、義務ポリシとまた別の義務ポリシが同じ資源にアクセスするか否かに関しては、なんら考慮を行っていない。かかる場合に、並行して同じ資源にアクセスするポリシの集合は、ポリシ管理システムの管理対象であるシステムに問題を引き起こす原因となるため、ポリシ解析により、そのようなポリシの集合を検出する必要がある。
【００１３】
また、第２の問題点は、並行して同じ資源にアクセスする可能性のあるポリシの集合を発見したとして、その得られた集合が、実際には安全に動作する可能性のあるポリシの集合を多く含んでいる可能性が高く、不必要にポリシを検出してしまい、正常なポリシをも排除しかねない、という問題が生じる。これは、ポリシ解析の際にポリシの条件節を考慮していないためである。従って、条件節に記述されている条件より、並行して（ほぼ同時に）同じ資源にアクセスすることがないことが明らかなポリシは危険ではないため、解析結果のポリシの集合から除外されるべきである。
【００１４】
このような問題点を解消すべく、本発明では、並行して同じ資源にアクセスする可能性のあるポリシの集合を発見できるポリシ解析システムを提供すること、をその目的とする。また、本発明の他の目的は、条件節を解析し、並行して同じ資源にアクセスすることがないことが明らかなポリシを検出し除外することのできるポリシ解析システムを提供すること、をその目的とする。
【課題を解決するための手段】
【００１５】
そこで、本発明では、制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを解析して検出するポリシ解析システムであって、
ポリシの制御対象となる資源毎に、当該資源にて作動可能なポリシによる制御指令を表す命令情報と、当該各制御指令が資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と、が予め関連付けられて記憶された資源情報記憶手段を備えると共に、
解析対象となるポリシと資源情報記憶手段内の情報とに基づいて、各ポリシが対象とする資源と当該資源に対するポリシによる制御指令の命令種類とを判別する命令検査手段と、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査手段と、
を備えた、という構成を採っている。
【００１６】
このとき、上記構成に加えて、オペレータあるいは外部接続された他の機器に対して所定の情報を出力する出力手段を有すると共に、
重複検査手段は、前記検出された２以上のポリシに関する情報を前記出力手段を介して外部に出力する、という構成にすると望ましい。
【００１７】
このような構成にすることにより、まず、ポリシが対象とする資源と、その命令を抽出する。そして、各資源に対して、各命令が資源の状態を変化させるか否かを表す命令種別情報を参照して、同一資源に対してアクセスされるポリシであって、かつ、資源の状態を変化させるポリシの集合が検出される。これにより、並行して同一の資源にアクセスする可能性を持つポリシを見つけだすことができ、これらを出力してオペレータなどの通知することが可能となる。このため、そのようなポリシを修正したり、削除するなどの対策を取ることができ、ポリシ制御が組み込まれた分散システムなどの安定化を図ることができる。
【００１８】
また、上記構成に加えて、ポリシは当該ポリシが作動する条件である作動条件情報を含むと共に、この作動条件情報に基づいて、重複検査手段にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査手段を備えた、という構成にすると望ましい。そして、同様に、ポリシは当該ポリシが作動する条件である作動条件情報を含むと共に、この作動条件情報に基づいて、重複検査手段にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査手段を備えた、という構成にすると望ましい。
【００１９】
このとき、オペレータあるいは外部接続された他の機器に対して所定の情報を出力する出力手段を有すると共に、条件検査手段は、検出したポリシに関する情報を出力手段を介して外部に出力する、という構成にしてもよい。
【００２０】
このような構成にすることにより、ポリシが作動する条件が検査され、同一資源に対して同時にアクセスされうるポリシを有効に検出することができ、より精度よく危険なポリシを検出することができる。従って、削除する必要なないポリシを削除してしまうなど、不必要な作業を排除でき、ポリシ制御が組み込まれたシステムのより安定した作動状態を維持することができる。
【００２１】
また、本発明では、制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを、コンピュータにて解析して検出するポリシ解析方法であって、
予め前記資源毎に関連付けられて記憶部に記憶された、当該資源にて作動可能な制御指令を表す命令情報及び当該制御指令によって資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と解析対象となるポリシとに基づいて、各ポリシが対象とする資源と当該ポリシの制御指令の命令種類とを判別する命令検査工程と、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシを抽出するポリシ抽出工程と、
これら抽出されたポリシのうち少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査工程と、
を備えた、という構成のポリシ解析方法をも提供している。
【００２２】
そして、上記重複検査工程の後に、ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、重複検査工程にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査工程を備えた、という構成の方法にすると望ましい。同様に、上記重複検査工程の後に、前記ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、重複検査工程にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査工程を備えた、という構成の方法にすると望ましい。
【００２３】
さらに、本発明では、制御対象となる資源を指定する資源指定情報と当該資源に対する制御指令を表す制御指令情報とにより構成された複数のポリシのうち、同一資源に対してアクセスされうるポリシを解析して検出するコンピュータに、
ポリシの制御対象となる資源毎に、当該資源にて作動可能なポリシによる制御指令を表す命令情報と、当該各制御指令が資源の状態に変化を与えるか否かという命令種類を表す命令種類情報と、が予め関連付けて記憶する資源情報記憶手段、
解析対象となるポリシと資源情報記憶手段内の情報とに基づいて、各ポリシが対象とする資源と当該資源に対するポリシによる制御指令の命令種類とを判別する命令検査手段、
この判別結果に基づいて、同一の資源を対象とする２以上のポリシのうち、少なくとも一つのポリシに含まれる制御指令の少なくとも一つが対象となる資源の状態に変化を与える、という条件を満たす２以上のポリシの検出する重複検査手段、
とを実現するためのポリシ解析用プログラムをも提供している。
【００２４】
そして、上記プログラムは、さらにコンピュータに、ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、重複検査手段にて検出された２以上のポリシのうち、ほぼ同時に作動するポリシを検出する条件検査手段、を実現するためのポリシ解析用プログラムでもある。また、同様に、ポリシに含められた当該ポリシが作動する条件である作動条件情報に基づいて、重複検査手段にて検出された２以上のポリシのうち、作動条件が同一であるポリシを検出する条件検査手段、をコンピュータに実現するためのポリシ解析用プログラムでもある。
【００２５】
このような構成にしても、上述同様に機能するため、上記目的を達成することができる。
【発明の効果】
【００２６】
本発明は、以上のように構成され機能するので、これによると、並行して同一の資源にアクセスする可能性を持つポリシを見つけだすことができ、これらを出力してオペレータなどの通知することが可能となる。このため、そのようなポリシを修正したり、削除するなどの対策を取ることができ、ポリシ制御が組み込まれた分散システムなどの安定化を図ることができる。
【発明を実施するための最良の形態】
【００２７】
本発明であるポリシ解析システムは、ネットワークにコンピュータや各機器が接続されたネットワークを用いた分散システムをはじめとした所定のシステム（例えば、図８参照）において、ポリシサーバが設置されてポリシ管理が行われている場合に、これらのポリシの衝突を回避するためにポリシを解析するためのポリシ解析システムである。従って、ポリシ解析システムは、分散システムなどに設置されたポリシサーバ内に設置されていてもよく、あるいは、別途、ポリシサーバ内のポリシを参照できるよう接続されたコンピュータにて構成されていてもよい。なお、本発明におけるポリシとは、ある条件が成り立つときにとるべき動作が記述されたルールから成るものであり、例えば、上記分散システム内のサーバや機器に対する制御指令が記述されたデータである。
【００２８】
そして、ポリシ解析システムは、複数のポリシが同一の資源に対してアクセスし、かつ、そのうちのいずれかの制御指令が資源の状態を変更するようなものである場合に、そのようなポリシの集合を検出する、というものである。これにより、これら検出されたポリシを変更したり排除するなどすることにより、ポリシ制御の対象となるシステムの安定化を図る、というものである。以下、ポリシ解析システムの構成、動作について、各実施例を通じて説明する。
【実施例１】
【００２９】
本発明の第一の実施例について、図１乃至６を参照して説明する。図１は、ポリシ解析システムの構成を示す機能ブロック図である。図２乃至図３は、本システムで用いられるデータの構造を示す説明図である。図４乃至図６は、本システムの動作を示すフローチャートである。
【００３０】
（構成）
図１に示すように、本実施例におけるポリシ解析システムは、解析対象のポリシの集合を指定するために利用されるコンピュータのキーボード等の入力装置３０と、与えられたポリシの集合の中から並行に同じ資源にアクセスする可能性のある全てのポリシの集合を算出する機能を備えたポリシ並行アクセス解析装置１０と、コンピュータに内蔵されている揮発性、または不揮発性の記憶領域である記憶装置２０と、コンピュータのモニタ等の出力装置４０とから構成されている。ここで、ポリシ並行アクセス解析装置１０は、コンピュータのＣＰＵ内に、予め用意されたポリシ解析用プログラムが組み込まれることで実現される。すなわち、プログラムにより、以下に示す各処理部（各機器）がＣＰＵ内に構築されることとなる。以下、各構成について詳述する。
【００３１】
まず、記憶装置２０は、ポリシ管理に利用されるポリシを格納したポリシ記憶部２１と、ポリシを記述するために利用される型の情報を格納した型情報記憶部２２と、が形成されている。そして、図２（ａ）に示すポリシＤ１は、ポリシの構成の一例である。この図に示すように、ポリシＤ１は、識別子と、条件節と、命令節とからなる。識別子は、ポリシを他のポリシと区別するために利用される整数や文字列である。条件節は、当該のポリシが発火するための条件式が記述される。すなわち、ポリシを解釈処理するポリシ実行系では、イベントが発生すると全てのポリシを評価し、条件式が真ならばポリシの持つ命令節を実行する。命令節には、ポリシの制御対象となる資源に対する制御指令である命令と、その命令を適用する対象となる資源の列が記述されている。例えば、“t1.invoke1(param1);”という命令は、対象t1に対して、引数がparam1で命令invoke1を適用すると解釈される。なおt1は、あらかじめポリシを管理するサーバ内やポリシ記憶部内、さらにはポリシデータ内で定義されているものとし、ｔ１などの対象を示す変数にはあらかじめ後述する「型」が割り当てられているものとする。なお、本発明では、ポリシ解析システム内でも定義されているものとする。
【００３２】
また、上記記憶装置２０に形成された型情報記憶部２２に記憶されている型情報管理表Ｄ６（図３（ｃ）参照）は、ポリシ制御の対象となる各資源に関する情報を表している。すなわち、各資源は「型」名にて表されており、各型において作動可能なポリシによる制御指令を表す命令情報と、その命令の種別を表す命令種別情報と、が関連付けられている。従って、型情報は、型を示すための文字列である「型名」毎に、ポリシが提供することの出来る「命令」と、その命令の「種別」と、の二つ組の列より構成される。なお、「種別」とは、命令が対象（資源、型）に対してどのような影響を与えるものかを示す情報であり、具体的には、対象である機器の状態を変化させる命令であるか否かを区別して表す命令種別情報である。ここでは、対象の状態を変化させる命令であることを示す種別をここでは「Ｗ」と呼び、機器の状態を変化させない命令であることを示す種別を「Ｒ」と呼ぶ。なお、属性不明のものを「Ｕ」として種別に含めても良い。但し、属性不明のものは「Ｗ」と同等に扱えばよいため、ここでは「Ｗ」と「Ｒ」のみを扱うこととする。具体的には、管理対象の機器をＷｅｂサーバとし、型名をWebServerと名づけたとする。Webサーバが提供する命令として、今の稼働率を示す”getPerformance”という命令と、Webサーバがコンテンツを公開してよい要求元を追加する”addAccessList”を持っているとする。getPerformaceは、機器の状態を読み込むだけなので、機器の状態に変化を与えない。従って、getPerformaceには種別として「Ｗ」が割り当てられる。一方、addAccessListはアクセスリストを更新するため、種別として「Ｗ」が割り当てられる。この情報を、図３（ｃ）に示す型情報管理表Ｄ６を用いて前記型情報を示すと、｛WebServer | (getPerformance, R), (addAccessList, W)｝のようになる。このように、あらかじめ管理対象の機器に対応する型情報が与えられ、型情報記憶部２２に格納されているものとする。
【００３３】
そして、上述したポリシ並行アクセス解析装置１０は、ポリシ管理器１１と、命令検査器１２と、型情報管理器１３と、ターゲット重複検査器１４とを含む。ポリシ管理器１１は、解析対象として指定されたポリシをポリシ記憶部２１より読み込み、読み込んだデータを命令検査器１２に渡す。この時、ポリシ記憶部２１から読み込まれ命令検査器１２に渡されるデータであるポリシ表Ｄ２の構成の一例を、図２（ｂ）に示す。命令検査器１２は、ポリシ表Ｄ２を受け取ると、ポリシの中で登場する対象となる資源に対応する「型」の情報を、型情報管理器１３より取得し、各ポリシを解析して図２（ｃ）に示す中間結果管理表Ｄ３を生成して、生成した中間結果管理表Ｄ３とポリシ表Ｄ２をターゲット重複検査器１４に渡す。このとき、命令検査器１２は、予めポリシ制御の対象となる資源の変数（ドメイン名など）と、型と、の対応関係が予め記憶された処理部を構成している。従って、ポリシ表Ｄ２内の命令節に含まれる制御対象の変数から型名を取得することができる。そして、型情報管理器１３は、命令検査器１２より型情報取得要求を受け付けると、指定された型の情報を型情報記憶部２２から読み込み、要求された型情報全てを含んだ型情報管理表Ｄ６を命令検査器１２に渡す。そして、ターゲット重複検査器１４は、命令検査器１２から中間結果管理表Ｄ３を受け取ると、命令の対象が重複していないかを検査し、最終的に並行して同じ資源にアクセスする可能性のあるポリシの集合の表である結果管理表Ｄ５（図３（ｂ）参照）を生成すると出力装置４０に渡して結果を出力する。以上の各処理部である機器１１，１２，１３，１４の詳細な機能については、以下の動作説明と共に説明する。
【００３４】
（動作）
次に、上記構成のポリシ解析システムの動作を、図４乃至図６を参照して説明する。図４は、システム全体の動作概要を示すフローチャートである。図５は、図４のステップＳ４の詳細な動作を示すフローチャートである。図６は、図４のステップＳ５の詳細は動作を示すフローチャートである。
【００３５】
まず、人間または他システムは、入力装置３０を用いて、解析対象であるポリシの集合を指定する。ポリシ管理器１１は解析対象として指定されたポリシを含んだポリシ表Ｄ２を、ポリシ記憶部２１より読み出し、ポリシ表Ｄ２を命令検査器１２に渡す（ステップＳ１）。
【００３６】
続いて、命令検査器１２はポリシ表Ｄ２に含まれるポリシで利用されている全ての型名を求める（ステップＳ２）。すなわち、命令節に含まれる命令の対象となる各資源を表す変数に対応する型名を求める。このとき、例えば、各資源に対して型名は予め設定されており、かかる情報が命令検査器１２にてプログラム化されている。
【００３７】
続いて、命令検査器１２は型情報管理器１３から型名を用いて型情報管理表Ｄ６を取得する。型情報管理器１３は、命令検査器１２から取得したい型名の集合を渡されると、その型名に相当する型情報を型情報記憶部２２より読み込み、その結果を型情報管理表Ｄ６として命令検査器１２に渡す（ステップＳ３）。そして、命令検査器１２は型情報管理表Ｄ６を用いて、ポリシ表Ｄ２の各ポリシを解析し、解析結果をまとめた中間結果管理表Ｄ３を作成し、ポリシ表Ｄ２と中間結果管理表Ｄ３をターゲット衝突検査器１４に渡す（ステップＳ４）。
【００３８】
続いて、ターゲット重複検査器１４は、ポリシ表Ｄ２と中間結果管理表Ｄ３を受け取ると、制御対象である資源（型）の重複しているポリシの集合を算出し、結果管理表Ｄ５を作成し、出力装置４０に渡す（ステップＳ５）。ここで、結果管理表Ｄ５の各行は、それぞれ並行して同じ資源にアクセスする可能性のあるポリシの識別子の集合を表している。出力表示４０は、結果管理表Ｄ５を解析結果としてモニタの画面やプリンタなどに出力する（ステップＳ６）。なお、出力装置４０は、ポリシ管理器１１よりポリシ表Ｄ２を取得し、結果管理表Ｄ５で示される識別子で示されるポリシを求め、解析結果として、識別子ではなく、ポリシそのものを表示しても良い。
【００３９】
次に、上述した図４に示すステップＳ４の命令検査器１２により処理の動作について図５を参照して詳細に説明する。命令検査器１２は、ステップＳ４の時点で、解析対象であるポリシのデータを含んだポリシ表Ｄ２と、当該ポリシ表の各ポリシに登場する型の情報を含んだ型情報管理表Ｄ６を持っている。
【００４０】
まず、命令検査器１２はポリシ表Ｄ２に含まれるポリシからまだ検査していないポリシを一つ取り出す（ステップＡ１にて否定判断、ステップＡ２）。なお、全てのポリシを検査したら処理を終え（ステップＡ１にて肯定判断）、ステップＳ５のターゲット重複検査処理に進む。次に、命令検査器１２は、図３（ａ）に示す命令検査表Ｄ４を初期化する（ステップＡ３）。命令検査表Ｄ４は、型名と種別の二つ組からなる表であり、命令検査器１２内に構築されるデータである。この命令検査表Ｄ４の初期化では、ステップＡ２で選択したポリシに登場する全ての型名を左の項の要素として埋め込み、右の項の種別は全てnullにしておく。そして、命令検査器１２は、ステップＡ２で選択したポリシに登場する、全ての命令を検査する。すでに、全ての命令を検査していたら（ステップＡ４にて肯定判断）、後述するステップＡ１０に移る。
【００４１】
そして、全ての命令の検査が済んでいない場合には（ステップＡ４にて否定判断）、検査していない命令を一つ選択する（ステップＡ５）。このとき、ポリシ内に登場する命令は、全てその命令の適用対象である機器を表す型と関連付けられているものとする。そして、選択した命令と、その適用対象である型から、型情報管理表Ｄ６を用いて、その命令の種別を求める。ここで、種別が「Ｗ」（対象の資源の状態を変化させる命令）であればステップＡ９に移る（ステップＡ６にて肯定判断）。一方、種別が「Ｗ」ではない場合、命令検査表Ｄ４を用いて、型の型名に対応付けられた種別を調べ、種別が「Ｗ」の場合は（ステップＡ７にて肯定判断）、ステップＡ４に移る。また、ステップＡ７にて型名の種別が「Ｗ」ではない場合（ステップＡ７にて否定判断）、命令検査表Ｄ４の当該型名の種別を「Ｒ」にする（ステップステップＡ８）。ここで、上述したステップＡ６にて求めた種別が「Ｗ」の場合、命令検査表Ｄ４の型の型名の種別を「Ｗ」にする（ステップＡ９）。
【００４２】
そして、ステップＡ２で選択したポリシに登場する全ての命令を検査したら（ステップＡ４にて肯定判断）、命令検査表Ｄ４の中から種別がnullとなっている型名を削除し、ステップＡ２で選択したポリシの識別子を左の項、命令検査表Ｄ４の結果を右の項として中間結果管理表Ｄ３に新しい行として追加し（ステップＡ１０）、ステップＡ１に戻る。このようにして、命令検査器１２は、調査対象の各ポリシに登場する型に対して種別を割り当てた中間結果管理表Ｄ４を生成すると、ポリシ表Ｄ２と共にターゲット重複検査器１４に渡す。
【００４３】
次に、図４のステップＳ５に示すターゲット重複検査器１４による処理動作について、図６を参照して詳細に説明する。はじめに、ターゲット重複検査器１４は、図４のステップＳ５の時点で、ポリシ表Ｄ２と中間結果管理表Ｄ３を持っている。
【００４４】
まず、ターゲット重複検査器１４は、中間結果管理表Ｄ３の右の項に登場する全ての型を対象に検査を行う（ステップＢ１）。まだ検査していない型が存在する場合（ステップＢ１にて否定判断）、未検査の型を一つ選択し、TrueがFalseの値のいずれかを持つフラグを一つ作成し、フラグの値をFalseに設定し、空のリストを一つ作成する（ステップＢ２）。次に、選択した型を用いて、全てのポリシの検査を行う（ステップＢ３）。もし、全てのポリシを検査し終えていたら（ステップＢ３にて肯定判断）、ステップＢ９に移る。まだ検査していないポリシが存在する場合、未検査のポリシを一つ選択する（ステップＢ４）。
【００４５】
そして、ステップＢ４にて選択したポリシの識別子より、中間結果管理表Ｄ３を調べ、対応する右側の項にステップＢ２で選択した型名が含まれていない場合（ステップＢ５にて否定判断）、ステップＢ３に戻る。型名が含まれている場合（ステップＢ５にて肯定判断）、中間結果管理表Ｄ３より、その種別を調べ（ステップＢ６）、種別が「Ｗ」であればステップＢ７に進む（ステップＢ６にて肯定判断）。それ以外の場合は（ステップＢ６にて否定判断）、ステップＢ８に進む。そして、ステップＢ７では、種別が「Ｗ」の場合にフラグをTrueにセットする（ステップＢ７）。その後、ステップＢ２で用意したリストにポリシの識別子を追加し（ステップＢ８）、ステップＢ３に戻る。
【００４６】
そして、ステップＢ３で、全てのポリシを検査し終えたら（ステップＢ３にて肯定判断）、フラグを検査し（ステップＢ９）、TrueでなければステップＢ１に戻る（ステップＢ９にて否定判断）。フラグがTrueで（ステップＢ９にて肯定判断）、リストの要素数が二つ以上であれば（ステップＢ１０にて肯定判断）、ステップＢ１１に進み、そうでない場合（ステップＢ１０にて否定判断）、ステップＢ１に戻る。ステップＢ１１では、ポリシの識別子が含まれたリストを結果管理表Ｄ５に新しい行として追加し、ステップＢ１に戻る。
【００４７】
そして、全ての型を検査し終えると（ステップＢ１にて肯定判断）、結果管理表Ｄ５を出力装置４０に送信する。このとき、結果管理表の各行は、並行して同じ対象にアクセスし、かつアクセスが発生する命令のいずれかが「Ｗ」属性、つまり、対象の状態を変更する可能性があるものであるようなポリシの識別子のリストとなっている。
【００４８】
このようにすることにより、本実施例では、各ポリシに登場する型とその命令の属性情報を解析することにより、同じ対象を表す型に対して複数のポリシが並行してアクセスし、かつ、そのうちの一つ以上のアクセスに対応する命令が対象の状態を変更するようなものであるポリシの識別子の集合を全て算出するように構成されているため、並行して同じ資源にアクセスする可能性のあるポリシの集合を求めることができる。そして、かかる結果を出力することにより、オペレータがそのようなポリシの条件や制御指令の内容を変更したり、削除するなどの対応を採ることができ、ポリシが与えられるシステムの安定化を図ることができる。なお、検出されたポリシは、コンピュータにてポリシサーバから自動的に削除されるなどの対処が行われてもよい。あるいは、その作動を一時的に停止するようにしてもよい。
【実施例２】
【００４９】
次に、本発明の第二の実施例について、図７を参照して説明する。図７（ａ）は、本実施例におけるポリシ解析システムの構成を示す機能ブロック図であり、図７（ｂ）は、当該システムで用いられるデータの構造を示す図である。
【００５０】
（構成）
本実施例におけるポリシ解析システムは、上述した実施例１におけるシステムとほぼ同様の構成を採っているが、ポリシ並行アクセス解析装置１０’が条件検査器１５を備えている点で異なる。これに伴い、ターゲット重複検査器１４’と、出力装置４０’が若干異なる。以下、これを詳述する。
【００５１】
本実施例におけるターゲット重複検査器１４’は、条件検査器１５に結果管理表Ｄ３とポリシ表Ｄ２を送信する。また、出力装置４０’は、条件解析表Ｄ７（図７（ｂ）参照）を条件検査器１５より受け取る。なお、これら機器１４’、装置４０’の他の基本的な動作は、上記実施例１の場合と同様である。
【００５２】
そして、条件検査器１５は、ターゲット重複検査器１４’より結果管理表Ｄ３とポリシ表Ｄ２を受信すると、識別子で指定された各ポリシの条件節を解析し、並行してアクセスすることがないポリシ群を結果管理表Ｄ５から取り除き、図７（ｂ）に示す条件解析表Ｄ７を作成する。そして、この作成した条件解析表Ｄ７を、出力装置４０’に送信する。条件検査器１５は、各ポリシの条件節を解析することにより、実際には条件節の定義により並行してアクセスすることがないと保証することのできるポリシ群を取り除いた、第１の実施の形態により得られる結果管理表Ｄ５より精度の高い解析結果を求める機能をもつ。なお、精度が高いとは、得られた解析結果の中に、実際に並行して同じ資源にアクセスするポリシ集合が含まれる率が高いことを意味する。
【００５３】
（動作）
次に、本実施の形態の動作について詳細に説明する。なお、ここでは、条件検査器１５の動作を中心に説明する。本動作は、図４のステップＳ５とＳ６の間に挟まれる処理であり、他の処理は実施例１の場合と同様であるため省略する。
【００５４】
まず、条件検査器１５は、ターゲット重複検査器１４’より結果管理表Ｄ５とポリシ表Ｄ２を受け取る。この時の結果管理表Ｄ５は、条件節の条件を考慮していないため、条件節の定義により実際には並行してアクセスすることのないポリシの集合が含まれている。
【００５５】
続いて、条件検査器１５は、結果管理表Ｄ５の各行に含まれるポリシの識別子の集合を取り出して検査する。全ての行を検査し終えたら処理を終える。検査していない行がある場合、未検査の行を結果管理表Ｄ５より選択する。そして、選択した行に含まれる各識別子が指定するポリシをポリシ表Ｄ２より取り出し、それぞれのポリシの条件節を取得する。このとき、条件節は、当該ポリシが受理するイベントの型を表す名前を含む。そして、ポリシを解釈・処理する実行系があるイベントを受け付けると、当該イベントの型の名前と同様のイベントの名前を含む条件節を持つポリシを発火させる。従って、同時に発火する可能性があるポリシの集合は、条件節に同じ名前のイベントを含むという条件を満たす。
【００５６】
従って、ポリシ表Ｄ２より取り出したポリシの中から、各条件節を調べ、同じ名前のイベントを含む条件節を持つポリシの集合を全て求め、その各集合のポリシの識別子を、条件解析表Ｄ７にそれぞれ追加する。このとき、条件節に、受理するイベントの型の名前だけでなく、イベントに含まれる属性値に対して、さらに詳細に受理条件を規定する場合もある。例えば、“SomeEvent”という名前のイベントがあり、その名前の型は属性として、“someValue”を持っているとする。このようなイベントを用いて、例えば、条件節に“on SomeEvent{ someValue > 10 }”のような記述があり、この条件節はSomeEventを受理し、かつ、SomeEventに含まれるsomeValueの値が１０より大きければ発火すると解釈される。このように、さらに詳細な条件が条件節に記述されている場合、条件節に登場する属性名と比較演算子、及び、複数の条件が存在する場合は、その条件を結合する論理演算子を解析することにより、明らかに同時に発火しないポリシの組み合わせを発見し、そのような組み合わせを解析結果から除外することが可能である。例えば、二つの条件節があり、それぞれの条件節が受理するイベント名は同一であり、そのイベント名を”E1”、E1が持つ属性名を”param”とする。このとき、片方の条件節が”on E1{ param > 10 }”であり、もう一方の条件節が“on E1{ param < 10  }”とする。このようなポリシは明らかに同時に発火することはない。このように明らかに同時に発火することのない条件式を求めていくことで、より精度の高い、同時に発火する可能性のある条件節の集合を求めることが可能である。
【００５７】
そして、条件検査器１５は、結果管理表Ｄ７の全ての行を検査し終えたら処理を終え、出力装置４０’に条件解析表Ｄ７を渡す。検査していない行がある場合、未検査の行を結果管理表Ｄ５より選択し、上記と同様の検査を繰り返し行う。
【００５８】
このように、ポリシの条件節が同時に真になる可能性があるか否かを判定する条件検査器１５を備えることにより、上述した実施例１により得られる並行して同じ資源にアクセスする可能性があるポリシの集合から、ポリシの条件節の定義により、並行して同じ資源にアクセスすることがないと判明したポリシの集合を取り除き、より精度の高い解析結果を算出することができる。従って、制御対象において不適切なポリシを検出する確率の向上を図ることができ、かかるポリシのみを削除や変更するなどの対策を取ることができ、ポリシ制御の対象となる分散システムなどのさらなる安定化を図ることができる。
【産業上の利用可能性】
【００５９】
本発明であるポリシ解析システムは、ポリシ制御されているネットワークシステムなどに組み込むことで、当該ネットワークシステムなどの安定化を図ることができ、産業上利用可能である。
【図面の簡単な説明】
【００６０】
【図１】実施例１におけるポリシ解析システムの構成を示す機能ブロック図である。
【図２】図１に開示したポリシ解析システムにて用いられるデータの構造を示す図である。図２（ａ）はポリシのデータ構造、図２（ｂ）はポリシの集合のデータ構造、図２（ｃ）は中間結果管理表のデータ構造を示す。
【図３】図１に開示したポリシ解析システムにて用いられるデータの構造を示す図である。図３（ａ）は命令検査表のデータ構造、図３（ｂ）は結果管理表のデータ構造、図３（ｃ）は型情報管理表のデータ構造を示す。
【図４】図１に開示したポリシ解析システムの動作の概要を示すフローチャートである。
【図５】図４に開示した命令検査処理の詳細な動作を示すフローチャートである。
【図６】図４に開示したターゲット重複検査の詳細な動作を示すフローチャートである。
【図７】図７（ａ）は、実施例２におけるポリシ解析システムの構成を示す機能ブロック図である。図７（ｂ）は、当該システムで用いられるデータである条件解析表のデータ構造を示す図である。
【図８】従来例におけるポリシ制御を伴う分散システムの構成の概略を示したブロック図である。
【図９】図９（ａ）は、従来のポリシ解析システムの構成を示す機能ブロック図である。図９（ｂ）は、ポリシの対処を説明する説明図である。
【図１０】図１０（ａ）〜（ｄ）は、従来例におけるポリシ解析システムにて用いられるデータの構造を示す図である。
【図１１】従来例におけるポリシ解析システムの動作を示すフローチャートである。
【符号の説明】
【００６１】
１０  ポリシ並行アクセス解析装置
１１  ポリシ管理器
１２  命令検査器（命令検査手段）
１３  型情報管理器
１４  ターゲット重複検査器（重複検査手段）
１５  条件検査器（条件検査手段）
２０  記憶装置
２１  ポリシ記憶部
２２  型情報記憶部（資源情報記憶手段）
３０  入力装置
４０  出力装置（出力手段）
【図１】
2005250688.tif 000003
【図２】
2005250688.tif 000004
【図３】
2005250688.tif 000005
【図４】
2005250688.tif 000006
【図５】
2005250688.tif 000007
【図６】
2005250688.tif 000008
【図７】
2005250688.tif 000009
【図８】
2005250688.tif 000010
【図９】
2005250688.tif 000011
【図１０】
2005250688.tif 000012
【図１１】
2005250688.tif 000013