(57)【要約】【課題】処理の挙動を制御するための様々なポリシの評価と実行をアプリケーションに設定することなく適用し、アプリケーションの品質、ポリシの評価、アクションの実行に係るパフォーマンスを損なうことなく、ポリシの適用を実現するシステムを提供すること。【解決手段】アプリケーション処理制御システムにおいて、環境監視部は、システム構成インフラストラクチャが動作する環境を表すシステム環境情報を収集する。ポリシ評価構成部は、実行される処理の内容を表すアクションを有する第１のポリシが与えられ、システム環境情報に基づいて、アプリケーションに適した第１のポリシを第２のポリシとして生成する。ポリロジック生成実行部は、第２のポリシのアクションに該当する実行ロジックを生成し、実行ロジックをポリシロジックとして出力する。処理割込部は、アプリケーションに対するリクエスト処理時にポリシロジックを実行する。【選択図】図１
2010237935.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションが搭載されるハードウェア、前記アプリケーションが搭載される装置上のソフトウェアを表すシステム構成インフラストラクチャと、
前記システム構成インフラストラクチャが動作する環境を表すシステム環境情報を収集する環境監視部と、
実行される処理の内容を表すアクションを有する第１のポリシが与えられ、前記システム環境情報に基づいて、前記アプリケーションに適した前記第１のポリシを第２のポリシとして生成するポリシ評価構成部と、
前記第２のポリシの前記アクションに該当する実行ロジックを生成し、前記実行ロジックを前記ポリシロジックとして出力するポリロジック生成実行部と、
前記アプリケーションに対するリクエスト処理時に前記ポリシロジックを実行する処理割込部と
を具備するアプリケーション処理制御システム。
【請求項２】
前記第１のポリシは、
前記アプリケーションが動作する所望の環境を表す環境条件を含むコンディション
を更に有し、
前記ポリシ評価構成部は、
前記システム環境情報により前記第１のポリシの前記コンディションを評価し、
前記評価の結果、前記システム環境情報が表す環境と前記コンディションの前記環境条件が表す環境とが合致し、前記コンディションに更に実行時の条件が含まれている場合、前記第１のポリシの前記コンディションから前記環境条件を除去したポリシを前記第２のポリシとして生成する
請求項１に記載のアプリケーション処理制御システム。
【請求項３】
前記ポリロジック生成実行部は、
前記第２のポリシの前記コンディションを評価するための条件評価文を生成し、
前記条件評価文と前記実行ロジックを合成した前記ポリシロジックを生成する
請求項２に記載のアプリケーション処理制御システム。
【請求項４】
前記第１、２のポリシは、
前記アプリケーション内でポリシ評価を実行する位置を表すポリシ適用部位
を更に含み、
前記処理割込部は、
自身へコールバックを実行するためのロジックであるコールバックロジックを生成し、
前記第２のポリシの前記ポリシ適用部位が表す位置で前記コールバックロジックを実行するためのロジックである割り込みアスペクトを生成し、
前記割り込みアスペクトを前記アプリケーションに適用し、
前記アプリケーションに対するリクエスト処理が発生したときに、前記割り込みアスペクトが前記リクエスト処理に割り込み、前記コールバックロジックが実行された場合、前記ポリシロジックを実行する
請求項１〜３のいずれかに記載のアプリケーション処理制御システム。
【請求項５】
前記第１、２のポリシは、
自己を識別するポリシ識別子
を更に含み、
前記ポリロジック生成実行部は、
前記ポリシロジックを前記第２のポリシの前記ポリシ識別子と共に記録装置に保存し、
前記コールバックロジックは、前記第２のポリシの前記ポリシ識別子を含み、
前記処理割込部は、
前記アプリケーションに対する前記リクエスト処理が発生したときに、前記割り込みアスペクトが前記リクエスト処理に割り込み、前記コールバックロジックが実行された場合、前記コールバックロジックに含まれる前記ポリシ識別子に従って、前記記録装置から前記ポリシロジックを読み出し、前記ポリシロジックを実行する
請求項４に記載のアプリケーション処理制御システム。
【請求項６】
前記環境監視部及び前記ポリシ評価構成部を備えた管理装置と、
前記ポリロジック生成実行部及び前記処理割込部を備えたサーバ装置と
を更に具備する請求項１〜５のいずれかに記載のアプリケーション処理制御システム。
【請求項７】
請求項１又は２に記載のアプリケーション処理制御システムに適用される前記ポリシ評価構成部であるポリシ評価構成装置。
【請求項８】
請求項１〜５のいずれかに記載のアプリケーション処理制御システムに適用される前記ポリロジック生成実行部であるポリロジック生成実行装置。
【請求項９】
請求項１〜５のいずれかに記載のアプリケーション処理制御システムに適用される前記処理割込部である処理割込装置。
【請求項１０】
請求項１〜５のいずれかに記載のアプリケーション処理制御システムに適用される前記環境監視部及び前記ポリシ評価構成部を具備する管理装置。
【請求項１１】
請求項１〜５のいずれかに記載のアプリケーション処理制御システムに適用される前記ポリロジック生成実行部及び前記処理割込部を具備するサーバ装置。
【請求項１２】
システム構成インフラストラクチャが動作する環境を表すシステム環境情報を収集するステップと、前記システム構成インフラストラクチャは、アプリケーションが搭載されるハードウェア、前記アプリケーションが搭載される装置上のソフトウェアを表し、
実行される処理の内容を表すアクションを有する第１のポリシを入力するステップと、
前記システム環境情報に基づいて、前記アプリケーションに適した前記第１のポリシを第２のポリシとして生成するステップと、
前記第２のポリシの前記アクションに該当する実行ロジックを生成するステップと、
前記実行ロジックを前記ポリシロジックとして出力するステップと、
前記アプリケーションに対するリクエスト処理時に前記ポリシロジックを実行するステップと
を具備するアプリケーション処理制御方法。
【請求項１３】
前記第１のポリシは、
前記アプリケーションが動作する所望の環境を表す環境条件を含むコンディション
を更に有し、
前記第２のポリシを生成するステップは、
前記システム環境情報により前記第１のポリシの前記コンディションを評価するステップと、
前記評価の結果、前記システム環境情報が表す環境と前記コンディションの前記環境条件が表す環境とが合致し、前記コンディションに更に実行時の条件が含まれている場合、前記第１のポリシの前記コンディションから前記環境条件を除去したポリシを前記第２のポリシとして生成するステップと
を含む請求項１２に記載のアプリケーション処理制御方法。
【請求項１４】
前記ポリシロジックを出力するステップは、
前記第２のポリシの前記コンディションを評価するための条件評価文を生成するステップと、
前記条件評価文と前記実行ロジックを合成した前記ポリシロジックを生成するステップと
を含む請求項１３に記載のアプリケーション処理制御方法。
【請求項１５】
前記第１、２のポリシは、
前記アプリケーション内でポリシ評価を実行する位置を表すポリシ適用部位
を更に含み、
前記ポリシロジックを実行するステップは、
自身へコールバックを実行するためのロジックであるコールバックロジックを生成するステップと、
前記第２のポリシの前記ポリシ適用部位が表す位置で前記コールバックロジックを実行するためのロジックである割り込みアスペクトを生成するステップと、
前記割り込みアスペクトを前記アプリケーションに適用するステップと、
前記アプリケーションに対するリクエスト処理が発生したときに、前記割り込みアスペクトが前記リクエスト処理に割り込み、前記コールバックロジックが実行された場合、前記ポリシロジックを実行するステップと
を含む請求項１２〜１４のいずれかに記載のアプリケーション処理制御方法。
【請求項１６】
前記第１、２のポリシは、
自己を識別するポリシ識別子
を更に含み、
前記ポリシロジックを出力するステップは、
前記ポリシロジックを前記第２のポリシの前記ポリシ識別子と共に記録装置に保存するステップ
を更に含み、
前記コールバックロジックは、前記第２のポリシの前記ポリシ識別子を含み、
前記ポリシロジックを実行するステップは、
前記アプリケーションに対する前記リクエスト処理が発生したときに、前記割り込みアスペクトが前記リクエスト処理に割り込み、前記コールバックロジックが実行された場合、
前記コールバックロジックに含まれる前記ポリシ識別子に従って、前記記録装置から前記ポリシロジックを読み出すステップと、
前記ポリシロジックを実行するステップと
を更に含む請求項１５に記載のアプリケーション処理制御システム。
【請求項１７】
請求項１２〜１６のいずれかに記載のアプリケーション処理制御方法の各ステップをコンピュータに実行させるコンピュータプログラム。
【請求項１８】
請求項１２又は１３に記載のアプリケーション処理制御方法に適用され、前記第１のポリシを入力するステップと、前記第２のポリシを生成するステップとの各ステップをコンピュータであるポリシ評価構成装置に実行させるコンピュータプログラム。
【請求項１９】
請求項１２〜１６のいずれかに記載のアプリケーション処理制御方法に適用され、前記実行ロジックを生成するステップと、前記ポリシロジックを出力するステップとの各ステップをコンピュータであるポリロジック生成実行装置に実行させるコンピュータプログラム。
【請求項２０】
請求項１２〜１６のいずれかに記載のアプリケーション処理制御方法に適用され、前記ポリシロジックを実行するステップをコンピュータである処理割込装置に実行させるコンピュータプログラム。
【請求項２１】
請求項１２〜１６のいずれかに記載のアプリケーション処理制御方法に適用され、前記システム環境情報を収集するステップと、前記第１のポリシを入力するステップと、前記第２のポリシを生成するステップとの各ステップをコンピュータである管理装置に実行させるコンピュータプログラム。
【請求項２２】
請求項１２〜１６のいずれかに記載のアプリケーション処理制御方法に適用され、前記実行ロジックを生成するステップと、前記ポリシロジックを出力するステップと、前記ポリシロジックを実行するステップとの各ステップをコンピュータであるサーバ装置に実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムモジュールのセットにより構成されるアプリケーションの処理フロー、挙動のポリシに従った制御、ポリシの管理を行うシステムに関する。
【背景技術】
【０００２】
従来のシステムの一例が、特許文献１に記載されている。このシステムは、ポリシ管理装置、サービス層を具備し、サービス層は、解析手段、要求手段、制御手段を備えている。ポリシ管理装置は、ポリシを管理し、サービス層からの要求に応じてポリシを提供する。アプリケーションが終了し外部に通信をする際、解析手段は、アプリケーションのパラメタを解析し、要求手段は、ポリシ管理装置へポリシを要求し、制御手段は、そのポリシに従ってアクションを実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３５８２０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のシステムは、次のような問題点がある。
【０００５】
まず、第１の問題点として、従来のシステムでは、アプリケーションの再利用性に制約が生じることである。
【０００６】
その理由として、アプリケーションをポリシに基づいて処理のフローをコントロールするためには、ポリシの評価と実行のトリガとなるロジックをアプリケーションに設定しておく必要があり、それが他のシステムへの流用、品質維持の妨げになることがある。このようなポリシの評価、実行に係る一連の処理は本来、非機能要件であり、システム構成やシステム運用者の運用ポリシにより変化し得るものである。従って、システムによりアプリケーションの設定に手を加えるといった必要性が生じ、その結果、アプリケーションのテストのやり直し等の品質評価を再度実施する必要性が生じる。つまり、ソフトウェア品質管理、コスト面に悪影響がある。このようなアプリケーションの処理中の制御が困難であるため、特許文献１では、アプリケーション終了時にポリシを評価、実行する手法を提案している。
【０００７】
次に、第２の問題点として、従来のシステムでは、ポリシの評価とアクションの実行に係るオーバーヘッドが大きいということである。
【０００８】
その理由として、これまでの技術のアプローチはポリシを管理するアプリケーションが動作している装置とは異なる装置へポリシの評価とアクションの実行を依頼し、評価、実行する形態であるため、実行までに時間が費やされ、それによる通信コストが高くなる。
【０００９】
本発明の目的は、処理の挙動を制御するための様々なポリシの評価と実行をアプリケーションに設定することなく適用し、アプリケーションの品質、ポリシの評価、アクションの実行に係るパフォーマンスを損なうことなく、ポリシの適用を実現することができるアプリケーション処理制御システムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明のアプリケーション処理制御システムは、システム構成インフラストラクチャと、環境監視部と、ポリシ評価構成部と、ポリロジック生成実行部と、処理割込部とを具備している。システム構成インフラストラクチャは、アプリケーションが搭載されるハードウェア、アプリケーションが搭載される装置上のソフトウェアを表している。環境監視部は、システム構成インフラストラクチャが動作する環境を表すシステム環境情報を収集する。ポリシ評価構成部は、実行される処理の内容を表すアクションを有する第１のポリシが与えられ、システム環境情報に基づいて、アプリケーションに適した第１のポリシを第２のポリシとして生成する。ポリロジック生成実行部は、第２のポリシのアクションに該当する実行ロジックを生成し、実行ロジックをポリシロジックとして出力する。処理割込部は、アプリケーションに対するリクエスト処理時にポリシロジックを実行する。
【発明の効果】
【００１１】
本発明のアプリケーション処理制御システムは、次のような効果がある。
【００１２】
まず、第１の効果として、アプリケーションの品質の観点において、品質に影響を与えることなく、柔軟に適用できるポリシによりアプリケーションのコントロールが可能となることにある。
【００１３】
その理由として、アプリケーションに変更を加えることなく、アプリケーション外部から挙動をコントロールする技術と組み合わせてポリシの適用を行うことにより、品質に関わるアプリケーションの変更を施すことなく、ポリシを適用できるためである。これは、アプリケーション２００の保守の面において非常に重要な要素である。
【００１４】
次に、第２の効果として、ポリシの評価、アクションの実行に際して、実行時間などのパフォーマンスを向上させることにある。
【００１５】
その理由として、ポリシをロジック化し実行するので、従来のコンピュータシステムのようなポリシの取得、評価、アクションの実行に係る一連の通信処理などを実施しないためである。即ち、ポリシの評価とアクションの実行に係るオーバーヘッドを削減することができる。
【００１６】
このように、本発明のアプリケーション処理制御システムは、処理の挙動を制御するための様々なポリシの評価と実行をアプリケーションに実装することなく適用し、アプリケーションの品質、ポリシの評価、アクションの実行に係るパフォーマンスを損なうことなく、ポリシの適用を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明の実施形態によるアプリケーション処理制御システムの構成を示すブロック図である。
【図２】図２は、本発明の実施形態によるアプリケーション処理制御システムにおけるポリシの構成要素を示している。
【図３】図３は、本発明の実施形態によるアプリケーション処理制御システムの動作として、環境監視部１０１及びポリシ評価構成部１０２の動作を示すフローチャートである。
【図４】図４は、本発明の実施形態によるアプリケーション処理制御システムの動作として、ポリシロジック生成実行部１０３の動作を示すフローチャートである。
【図５】図５は、本発明の実施形態によるアプリケーション処理制御システムの動作として、処理割込部１０４の動作を示すフローチャートである。
【図６】図６は、本発明の実施形態によるアプリケーション処理制御システムの動作として、アプリケーション実行時（リクエスト処理時）の処理割込部１０４の動作を示すフローチャートである。
【図７】図７は、本発明の実施形態によるアプリケーション処理制御システムの構成を示している（具体例）。
【図８】図８は、本発明の実施形態によるアプリケーション処理制御システムの動作において、ポリシ評価構成部１０２に入力されるポリシの構成要素を示している（具体例）。
【図９】図９は、本発明の実施形態によるアプリケーション処理制御システムの動作において、ポリシ評価構成部１０２に出力されるポリシの構成要素を示している（具体例）。
【図１０】図１０は、本発明の実施形態によるアプリケーション処理制御システムの動作において、図９のポリシの実行時の条件のロジックを示している（具体例）。
【図１１】図１１は、本発明の実施形態によるアプリケーション処理制御システムの動作において、図９のポリシの実行時の条件及びアクションのロジックを示している（具体例）。
【図１２】図１２は、本発明の実施形態によるアプリケーション処理制御システムの動作において、コールバックロジックを示している（具体例）。
【図１３】図１３は、本発明の実施形態によるアプリケーション処理制御システムの動作において、割り込みアスペクトを示している（具体例）。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、本発明の実施形態によるアプリケーション処理制御システムについて詳細に説明する。
【００１９】
［構成］
図１は、本発明の実施形態によるアプリケーション処理制御システムの構成を示すブロック図である。アプリケーション処理制御システムは、システム構成インフラストラクチャ１００（以下、システム構成インフラ１００と称する）、環境監視部１０１、ポリシ評価構成部１０２、ポリロジック生成実行部１０３、処理割込部１０４、アプリケーション２００を具備している。
【００２０】
アプリケーション処理制御システムは、更に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）（図示しない）と、ハードディスク、メモリ等の記録媒体である記録装置（図示しない）と、を具備している。記憶装置には、コンピュータに実行させるためのコンピュータプログラムが記憶されている。ＣＰＵは、起動時などに記憶装置からコンピュータプログラムを読み取って実行する。コンピュータプログラムは、環境監視部１０１、ポリシ評価構成部１０２、ポリロジック生成実行部１０３、処理割込部１０４を含んでいる。また、環境監視部１０１、ポリシ評価構成部１０２、ポリロジック生成実行部１０３、処理割込部１０４は個別に設けられた装置でもよい。
【００２１】
システム構成インフラ１００は、アプリケーション２００が搭載される装置、ルータ、ハブなどシステムを構成するために必要なネットワーク機器などのハードウェア、又は、アプリケーション２００が搭載される装置上のソフトウェア（オペレーティングシステム、ミドルウェア等）を表している。
【００２２】
環境監視部１０１は、システム構成インフラ１００が動作する環境を表すシステム環境情報（システムの利用状況を表すリソース情報）を収集する。
【００２３】
ポリシ評価構成部１０２には、システム管理者により第１のポリシが与えられる。ポリシ評価構成部１０２は、例えばデータベースなどの保持部を備え、第１のポリシを入力したときに、保持部により保存する。
【００２４】
図２は、ポリシの構成要素を示している。第１のポリシは、ポリシ識別子、ポリシ適用部位、コンディション、アクションを含んでいる。
【００２５】
ポリシ識別子は、自己のポリシを識別する一意な名前である。
【００２６】
ポリシ適用部位とは、アプリケーション２００内でポリシ評価を実行する位置を表す情報である。これは、例えば、特定のメソッドの実行時、特定のパラメタへの参照時、設定時などであり、メソッドシグネチャの形式やアノテーションなどのマーキングによって表現される。
【００２７】
コンディションとは、後述するアクションを実行するための条件を表し、環境条件を含み、更に、実行時の条件を含む場合もある。
【００２８】
環境条件は、アプリケーション２００が動作する所望の環境を表す情報であり、コンピュータのメモリ搭載量、ＣＰＵの種別、クロック周波数、ハードディスクの搭載量などの条件である。例えば、メモリ搭載量が１ＧＢ以下、ハードディスクの搭載量が５００ＧＢ以下といった条件である。
【００２９】
実行時の条件は、アプリケーション２００の利用者、つまりリクエストを送信したユーザＩＤ、ユーザが属するロールなどのリクエストに付帯する情報についての条件である。例えば、ユーザＩＤがＵＳＥＲ−Ａである、ユーザが属するロールが管理者である、などの条件である。
【００３０】
アクションは、コンディションに適合するリクエストがあった場合に実行される処理の内容を表している。これは、例えば処理Ｂを実行する、処理を中断するなどである。
【００３１】
そこで、ポリシ評価構成部１０２は、システム環境情報により第１のポリシのコンディションを評価する。評価の結果、システム環境情報が表す環境とコンディションの環境条件が表す環境とが合致し、コンディションに更に実行時の条件が含まれている場合、ポリシ評価構成部１０２は、第１のポリシのコンディションから環境条件を除去した新たなポリシを第２のポリシとして生成する。このように、ポリシ評価構成部１０２と、システム環境情報に基づいて、アプリケーション２００に適した第１のポリシを第２のポリシとして生成する。ポリシ評価構成部１０２は、第２のポリシをポリロジック生成実行部１０３に送信する。
【００３２】
ポリロジック生成実行部１０３は、ポリシ評価構成部１０２から送信された第２のポリシを受信する。ポリロジック生成実行部１０３は、第２のポリシのコンディションを評価するための条件評価文を生成し、第２のポリシのアクションに該当する実行ロジックを生成する。ポリロジック生成実行部１０３は、上記の条件評価文と上記の実行ロジックを合成したものをポリシロジックである生成する。ポリロジック生成実行部１０３は、ポリシロジックを第２のポリシのポリシ識別子と共に記録装置に保存し、第２のポリシのポリシ識別子とポリシ適用部位とを処理割込部１０４に送信する。
【００３３】
処理割込部１０４は、ポリロジック生成実行部１０３から送信された第２のポリシのポリシ識別子とポリシ適用部位とを受信する。このとき、処理割込部１０４は、自身へコールバックを実行するためのロジックであるコールバックロジックを生成する。コールバックロジックは、第２のポリシのポリシ識別子を含んでいる。処理割込部１０４は、第２のポリシのポリシ適用部位が表す位置でコールバックロジックを実行するためのロジックである割り込みアスペクトを生成する。処理割込部１０４は、この割り込みアスペクトをアプリケーション２００に適用する。アプリケーション２００に対するリクエスト処理が発生したときに、割り込みアスペクトがリクエスト処理に割り込み、コールバックロジックが実行される。この場合、処理割込部１０４は、コールバックロジックに含まれるポリシ識別子に従って、記録装置からポリシロジックを読み出し、そのポリシロジックを実行する。
【００３４】
［動作］
次に、本発明の実施形態によるアプリケーション処理制御システムの動作について詳細に説明する。
【００３５】
図３は、環境監視部１０１及びポリシ評価構成部１０２の動作を示すフローチャートである。
【００３６】
まず、環境監視部１０１は、システムの環境情報を受信、収集する（ステップＡ２０１）。このシステムの環境情報は、システム管理者によって環境監視部１０１に入力されることもある。
【００３７】
次に、ポリシ評価部１０２は、システムの環境情報により第１のポリシのコンディションを評価する。ここで評価するコンディションは、環境条件である。環境条件が複数存在する場合、その全てを評価する（ステップＡ２０２）。
【００３８】
次に、ポリシ評価部１０２は、上記の第１のポリシに対して、合致しなかった環境条件があるか否かを判定する（ステップＡ２０３）。
【００３９】
合致しない環境条件があった場合（ステップＡ２０３−Ｙ）、ポリシ評価部１０２は、処理を終了する。
【００４０】
合致する環境条件があった場合（ステップＡ２０３−Ｎ）、ポリシ評価部１０２は、第１のポリシに実行時の条件が含まれるかを判定する（ステップＡ２０４）。
【００４１】
第１のポリシに実行時の条件が含まれない場合（ステップＡ２０４−Ｎ）、ポリシ評価部１０２は、直ちに第１のポリシの実行する処理内容に定義されている処理を実行する（ステップＡ２０５）。
【００４２】
第１のポリシに実行時の条件が含まれる場合（ステップＡ２０４−Ｙ）、ポリシ評価部１０２は、第１のポリシのコンディションから環境条件を除去した新たなポリシを第２のポリシとして生成する（ステップＡ２０６）。
【００４３】
次に、ポリシ評価部１０２は、生成した第２のポリシをポリシロジック生成実行部１０３に送信する。
【００４４】
図４は、ポリシロジック生成実行部１０３の動作を示すフローチャートである。
【００４５】
まず、ポリシロジック生成実行部１０３は、ポリシ評価部１０２から送信された第２のポリシを受信する（ステップＡ３０１）。
【００４６】
次に、ポリシロジック生成実行部１０３は、第２のポリシのコンディションを評価するための条件評価文を生成する（ステップＡ３０２）。条件評価文は、一般的なｉｆ−ｔｈｅｎルールにより表現される。
【００４７】
次に、ポリシロジック生成実行部１０３は、第２のポリシのアクションに該当する実行ロジックを生成する（ステップＡ３０３）。実行ロジックは、例えば、あるメソッドの呼び出しや、ある別のアプリケーション２００の呼び出しや異常終了などを表すロジックである。
【００４８】
次に、ポリシロジック生成実行部１０３は、条件評価文と実行ロジックとを合成したポリシロジックを生成し、第２のポリシのポリシ識別子とセットで記録装置に保存する（ステップＡ３０４）。
【００４９】
次に、ポリシロジック生成実行部１０３は、第２のポリシのポリシ識別子及びポリシ適用部位を処理割込部１０４に送信する（ステップＡ３０５）。
【００５０】
図５は、処理割込部１０４の動作を示すフローチャートである。
【００５１】
まず、処理割込部１０４は、ポリシロジック生成実行部１０３から送信された第２のポリシのポリシ識別子及びポリシ適用部位を受信し、記録装置に保存する（ステップＡ４０１）。
【００５２】
次に、処理割込部１０４は、ポリシ識別子を指定し、且つ、自身へコールバックを実行するロジックであるコールバックロジックを生成する（ステップＡ４０２）。これは、一般的には処理割込部１０４のＡＰＩとして定義されたメソッドへの呼び出しロジックである表現される。
【００５３】
次に、処理割込部１０４は、第２のポリシのポリシ適用部位が表す位置でコールバックロジックを実行するためのロジックである割り込みアスペクトを生成する（ステップＡ４０３）。割り込みアスペクトは、アプリケーション２００の実装アーキテクチャにより異なるロジック形式となる。本発明では、このロジック形式については言及しないものとするが、Ｊａｖａ（登録商標）言語であるならば、ＥｃｌｉｐｓｅプロジェクトのＡｓｐｅｃｔＪなどにより定義された形式である。
【００５４】
次に、処理割込部１０４は、上述の割り込みアスペクトをアプリケーション２００に適用する（ステップＡ４０４）。これは、例えばＪａｖａ（登録商標）言語であるならば、クラスロードをコントロールするＪａｖａ（登録商標）エージェントに設定する。
【００５５】
図６は、アプリケーション実行時（リクエスト処理時）の処理割込部１０４の動作を示すフローチャートである。
【００５６】
まず、アプリケーション２００に対するリクエスト処理が発生したときに、上述の割り込みアスペクトが処理に割り込み、上述のコールバックロジックが実行される（ステップＡ４１１）。これにより、アプリケーション２００の処理が一時中断され、処理割込部１０４が呼び出される。
【００５７】
次に、処理割込部１０４は、上述のコールバックロジックに指定されているポリシ識別子に従って、記録装置からポリシロジックを読み出し、それを取得する（ステップＡ４１２）。
【００５８】
次に、処理割込部１０４は、上述のポリシロジックを実行する（ステップＡ４１３）。これにより、アプリケーション２００の処理がポリシロジックに従ってコントロールされることになる。
【００５９】
［効果］
本発明の実施形態によるアプリケーション処理制御システムは、次のような効果がある。
【００６０】
まず、第１の効果として、アプリケーションの品質の観点において、品質に影響を与えることなく、柔軟に適用できるポリシによりアプリケーションのコントロールが可能となることにある。
【００６１】
その理由として、アプリケーションに変更を加えることなく、アプリケーション外部から挙動をコントロールする技術と組み合わせてポリシの適用を行うことにより、品質に関わるアプリケーションの変更を施すことなく、ポリシを適用できるためである。これは、アプリケーション２００の保守の面において非常に重要な要素である。
【００６２】
次に、第２の効果として、ポリシの評価、アクションの実行に際して、実行時間などのパフォーマンスを向上させることにある。
【００６３】
その理由として、ポリシをロジック化しポリシ適用部位で実行するので、従来のシステムのようなポリシの取得、評価、アクションの実行に係る一連の通信処理などを実施しないためである。即ち、ポリシの評価とアクションの実行に係るオーバーヘッドを削減することができる。
【００６４】
このように、本発明の実施形態によるアプリケーション処理制御システムは、処理の挙動を制御するための様々なポリシの評価と実行をアプリケーションに設定することなく適用し、アプリケーションの品質、ポリシの評価、アクションの実行に係るパフォーマンスを損なうことなく、ポリシの適用を実現することができる。
【００６５】
（具体例）
次に、具体的な例を用いて、本発明の実施形態によるアプリケーション処理制御システムを説明する。
【００６６】
［構成］
図７に示されるように、本発明の実施形態によるアプリケーション処理制御システムは、更に、サーバ装置３００、管理装置３０１を具備している。
【００６７】
サーバ装置３００、管理装置３０１の各々は、ＣＰＵ（図示しない）と、ハードディスク、メモリ等の記録媒体である記録装置（図示しない）とを具備している。記憶装置には、コンピュータに実行させるためのコンピュータプログラムが記憶されている。ＣＰＵは、起動時などに記憶装置からコンピュータプログラムを読み取って実行する。管理装置３０１内のコンピュータプログラムは、環境監視部１０１、ポリシ評価構成部１０２を含み、サーバ装置３００内のコンピュータプログラムは、ポリロジック生成実行部１０３、処理割込部１０４を含んでいる。サーバ装置３００の記憶装置は、０．８ＧＢｙｔｅのメモリであるものとする。
【００６８】
［動作］
まず、システム管理者は、第１のポリシの登録を行う。具体例では図８に示されるような第１のポリシを登録するものとする。第１のポリシのポリシ識別子をＰ１０００とし、第１のポリシのポリシ適用部位を「Ｂｅｆｏｒｅ（ｅｎｔｅｒＡｐｐｌｉｃａｔｉｏｎ（））」、つまりアプリケーション２００の入口となるメソッドが呼びだされる直前とする。第１のポリシが有効となるコンディションは、環境条件として該当アプケーションが動作している装置のメモリ搭載量が１ＧＢｙｔｅ以下であること、実行時の条件としてアプリケーション２００へ入力されるデータの量が０．５ＭＢｙｔｅ以上であることを指定している。第１のポリシのアクションとして「Ｔｈｒｏｗ  Ｅｘｃｅｐｔｉｏｎ」つまり異常終了することを指定している。
【００６９】
このような第１のポリシが入力されている前提で各部の動作を以下に説明する。
【００７０】
まず、環境監視部１０１はサーバ装置３００のメモリ積載量を取得する。これは、一般的にはオペレーティングシステムのシステム情報を取得するツール等によって行う。こうしてメモリ積載量として０．８ＧＢｙｔｅという値を得る。次に、ポリシ評価構成部１０２は、環境監視部１０１からサーバ装置３００のメモリ積載量を取得する。
【００７１】
次に、ポリシ評価構成部１０２は、入力された第１のポリシを評価する。コンディションの環境条件として「該当アプケーションが動作している装置のメモリ搭載量が１ＧＢｙｔｅ以下であること」があるためこれを評価すると、サーバ装置３００のメモリ搭載量は０．８ＧＢｙｔｅであるためこのコンディションに合致する。次に、第１のポリシに合致しなかった環境条件があるかを判定すると、上記で述べた通り全ての環境に合致しているため処理を続行する。次に、コンディションに実行時の条件があるか判定すると、「アプリケーション２００へ入力されるデータの量が０．５ＭＢｙｔｅ以上」という条件があるため、これは真となる。次に、第１のポリシのコンディションから環境条件を削除したポリシを新たに構成し直す。その結果、図９に示されるような第２のポリシが得られる。これをサーバ装置３００上のポリシロジック生成実行部１０３に送信する。
【００７２】
次に、ポリシロジック生成実行部１０３は、ポリシ評価構成部１０２から送信された第２のポリシを受信する。次に、ポリシロジック生成実行部１０３は、受信した第２のポリシからコンディションの実行時の条件を抽出し、条件評価文を生成する。Ｊａｖａ（登録商標）言語を想定した場合、これは、例えば図１０に示されるような条件評価文となる。次に、ポリシロジック生成実行部１０３は、第２のポリシのアクションを抽出し、該当アクションを実行するロジックを生成する。同じく、Ｊａｖａ（登録商標）言語を想定した場合、これは上記の条件評価文と結合して、例えば図１１に示されるような実行ロジックとなる。次に、ポリシロジック生成実行部１０３は、生成した条件評価文及び実行ロジックを合成したものをポリシロジックである生成し、第２のポリシのポリシ識別子Ｐ１０００と共に記録装置に保存する。次に、ポリシロジック生成実行部１０３は、第２のポリシのポリシ識別子Ｐ１０００及びポリシ適用部位「Ｂｅｆｏｒｅ（ｅｎｔｅｒＡｐｐｌｉｃａｔｉｏｎ（））」を処理割込部１０４に送信する。
【００７３】
次に、処理割込部１０４は、ポリシロジック生成実行部１０３から送信された第２のポリシのポリシ識別子Ｐ１０００及びポリシ適用部位を受信する。次に、処理割込部１０４は、第２のポリシの識別子を含み、且つ、自身へのコールバックを実行するためのロジックであるコールバックロジックを生成する。これは、Ｊａｖａ（登録商標）言語を想定するならば、例えば図１２に示されるようなロジックとなる。次に、処理割込部１０４は、第２のポリシのポリシ適用部位が表す位置でコールバックロジックを実行するためのロジックである割り込みアスペクトを生成する。これは、Ｊａｖａ（登録商標）言語用に提供されているＡｓｐｅｃｔＪの利用を想定すると、図１３に示されるような定義となる。次に、処理割込部１０４は、割り込みアスペクトをアプリケーション２００に適用する。これは、Ｊａｖａ（登録商標）言語用のＡｓｐｅｃｔＪを想定するならば、ＡｓｐｅｃｔＪのアスペクト適用ＡＰＩに上述の割り込みアスペクトを入力することである。
【００７４】
次に、アプリケーション２００に対して入力、つまりリクエストがあった際の動作について説明する。アプリケーション２００がポリシ適用部位に到達した際、上述の割り込みアスペクトが実行され、処理割込部１０４への上述のコールバックロジックが実行される。このとき、コールバックロジックには、第２のポリシのポリシ識別子Ｐ１０００及びコールバックロジックそのもののデータが含まれている。このため、処理割込部１０４は、ポリシ識別子Ｐ１０００に該当するポリシロジックを記録装置から読み出し、そのポリシロジックを実行する。この場合、図１１に示されるようなポリシロジックが実行される。具体例では、入力つまりｉｎｐｕｔが０．６ＧＢｙｔｅであったとすると、上述のポリシロジックの条件判定は真となり、例外を送出する処理が実行され、処理が異常終了される。
【００７５】
以上により、アプリケーション２００へのポリシの適用と実行が完了する。
【００７６】
［効果］
本発明の実施形態によるアプリケーション処理制御システムでは、具体例において上述のような構成を想定した場合に、アプリケーション２００の実行をポリシに従ってコントロールする。これにより、本発明の実施形態によるアプリケーション処理制御システムは、アプリケーション２００の動作をポリシに従い外部からコントロールし、アプリケーション２００の変更を伴わず、品質を維持したまま挙動を制御できる。
【符号の説明】
【００７７】
１００    システム構成インフラ、
１０１    環境監視部、
１０２    ポリシ評価構成部、
１０３    ポリロジック生成実行部、
１０４    処理割込部、
２００    アプリケーション、
３００    サーバ装置、
３０１    管理装置
【図１】
2010237935.tif 000003
【図２】
2010237935.tif 000004
【図３】
2010237935.tif 000005
【図４】
2010237935.tif 000006
【図５】
2010237935.tif 000007
【図６】
2010237935.tif 000008
【図７】
2010237935.tif 000009
【図８】
2010237935.tif 000010
【図９】
2010237935.tif 000011
【図１０】
2010237935.tif 000012
【図１１】
2010237935.tif 000013
【図１２】
2010237935.tif 000014
【図１３】
2010237935.tif 000015