(57)【要約】【課題】Ｗｅｂアプリケーションに手を加えることなく、Ｗｅｂアプリケーション内部の処理の実行を制御することができる新しい枠組みを提供する。【解決手段】本発明の情報処理システムは、Ｗｅｂアプリケーションの実行を制御する機能を有する。具体的には、Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を、ポリシ記憶部に記憶されている、該ユーザの識別情報と該ユーザについて実行が許可されるＷｅｂアプリケーションに含まれる内部関数の処理とを対応付けたポリシ情報と照合することにより、Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定する。そして、実行可の場合には、前記実行対象となる処理が実行されるように制御し、実行不可の場合には、前記実行対象となる処理が実行されないように制御する。【選択図】図５
2011175457.tif 000002
【特許請求の範囲】
【請求項１】
Ｗｅｂアプリケーションを実行するアプリケーション実行部と、
ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報を記憶するポリシ記憶部と、
前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を前記ポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように、前記アプリケーション実行部を制御する実行可否決定部と、
を備えることを特徴とする情報処理システム。
【請求項２】
前記実行可否決定部は、前記ユーザが操作するクライアント端末からのアクセスに基づいて生成されるセッション情報から前記ユーザの識別情報を取得する、ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記実行可否決定部は、
前記取得したユーザの識別情報を前記ポリシ情報と照合することにより、前記実行対象となる処理の実行可否を決定するポリシ決定部と、
前記実行対象となる処理に対応するアスペクトに基づいて、前記ポリシ決定部に対し、該実行対象となる処理の実行可否の決定処理を実行させ、該処理の実行可否に関する決定結果に基づいて前記アプリケーション実行部を制御するアスペクト指向制御部と、
を含む、ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
Ｗｅｂアプリケーションの実行を制御するアプリケーション実行制御方法であって、
前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を、ポリシ記憶部に記憶されている、該ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように制御し、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように制御する、ことを特徴とするアプリケーション実行制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションの実行を制御する技術に関する。
【背景技術】
【０００２】
従来、Ｗｅｂアプリケーションの実行制御は、ユーザがＷｅｂアプリケーションにアクセスする前やアクセスの際に行っていた。かかる制御方式を強化し、Ｗｅｂアプリケーション内部の処理を詳細に実行制御する「エンタイトルマネジメント」と呼ばれる方式が用いられ始めている。エンタイトルメントマネジメントでは、Ｗｅｂアプリケーションのプログラムから、ユーザのアクセス権の有無を管理するポリシ決定部に対して、制御対象となる処理の実行可否を問い合わせ、実行不可の場合、処理を中止したり、特定の処理（例えば、エラー処理など）を実行する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、既存のＷｅｂアプリケーションにおいてエンタイトルメントマネジメントを用いるためには、Ｗｅｂアプリケーション開発者は、ポリシ決定部が提供するポリシ判断関数を理解したうえで、Ｗｅｂアプリケーションのプログラムを改造しなければならないという問題がある。
【０００４】
本発明は、Ｗｅｂアプリケーションに手を加えることなく、Ｗｅｂアプリケーション内部の処理の実行を制御することができる新しい枠組みを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理システムは、Ｗｅｂアプリケーションを実行するアプリケーション実行部と、ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報を記憶するポリシ記憶部と、前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を前記ポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように、前記アプリケーション実行部を制御する実行可否決定部と、を備えることを特徴とする。
【０００６】
本発明のアプリケーション実行制御方法は、Ｗｅｂアプリケーションの実行を制御する方法であって、前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を、ポリシ記憶部に記憶されている、該ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように制御し、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように制御する、ことを特徴とする。
【０００７】
なお、本発明において、部とは、単に物理的手段を意味するものではなく、その部が有する機能をソフトウェアによって実現する場合も含む。また、１つの部や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の部や装置の機能が１つの物理的手段や装置により実現されても良い。
【発明の効果】
【０００８】
本発明によれば、Ｗｅｂアプリケーションになんら変更を加えることなく、該Ｗｅｂアプリケーション内部の処理（内部関数に基づく処理や、クラスに基づく処理など）についての実行を制御することができる枠組みが実現される。これにより、Ｗｅｂシステムの新規開発において、Ｗｅｂアプリケーション開発者による内部関数のアクセス制限のためのプログラミング作業を簡素化することができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態の情報処理システムの全体構成を示す図である。
【図２】Ｗｅｂアプリケーションに含まれる内部関数の例を示す図である。
【図３】アスペクト指向制御部によって実行されるアスペクトの例を示す図である。
【図４】ポリシ情報の例を示す図である。
【図５】情報処理システムによるＷｅｂアプリケーションの実行制御処理の大まかな流れを示すフローチャート。
【図６】Ｗｅｂアプリケーションの実行制御処理の具体的な流れを示す図である。
【図７】Ｗｅｂアプリケーションの実行制御処理におけるユーザの識別情報の流れを示す図である。
【図８】情報処理システムの別の構成を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態として、Ｗｅｂアプリケーションの実行を制御するための枠組みについて、図面を参照して説明する。
【００１１】
図１は、第１実施形態の情報処理システム１の全体構成を示す。
【００１２】
情報処理システム１は、クライアント端末２と、インターネット等の周知の通信回線を介してクライアント端末２に接続されるＷｅｂサーバ３とを含んで構成される。クライアント端末２とＷｅｂサーバ３としては、例えばＣＰＵ、ＲＯＭ，ＲＡＭ、ハードディスク（ＨＤＤ）、ディスプレイ、マウス、キーボード、及び通信装置等の構成要素を備えるパーソナルコンピュータやサーバコンピュータを用いることができる。
【００１３】
クライアント端末２は、ＣＰＵがＨＤＤに記憶されているプログラム（例えばＷｅｂブラウザのプログラム）をＲＡＭ上に読み出して実行することにより機能的に実現されるＷｅｂ閲覧部４を備える。
【００１４】
Ｗｅｂ閲覧部４は、ユーザによる操作に基づいて、Ｗｅｂサーバ３に対してＷｅｂアプリケーションの実行を要求し、処理結果をディスプレイに表示するなど、周知のＷｅｂブラウザと同様の機能を有する。
【００１５】
Ｗｅｂサーバ３は、アプリケーション記憶部５、アスペクト記憶部６、アプリケーション実行部７、及び実行可否決定部８を備えるとともに、外部に設けられたポリシ記憶部（以下、「ポリシＤＢ」を称する）９にアクセス可能に構成されている。アプリケーション記憶部５及びアスペクト記憶部６は、ＨＤＤ等の記憶装置によって機能的に実現され、アプリケーション実行部７及び実行可否決定部８は、ＣＰＵがＨＤＤ等の記憶装置に記憶されている所定のプログラムをＲＡＭ上に読み出して実行することにより機能的に実現される。ポリシＤＢ９は、Ｗｅｂサーバ３と通信可能に接続されるＤＢサーバ等の情報処理装置（図示省略）のＨＤＤ等によって機能的に実現されるものとする。以下、各機能部について説明する。
【００１６】
アプリケーション記憶部５は、図２に示すような、処理内容を規定する複数の内部関数１０ａ，１０ｂを含むＷｅｂアプリケーション１１のプログラムを格納する。この例では、内部関数１０ａ，１０ｂは、いずれも、引数として与えられたＡｒｒａｙＬｉｓｔを返却することを規定しているが、より複雑な処理の内容を規定していもよい。また、ここではＷｅｂアプリケーション１１の内部関数１０ａ，１０ｂを２つ示したが、Ｗｅｂアプリケーション１１は３つ以上の内部関数を含んでいてもよい。
【００１７】
アスペクト記憶部６は、図３に示すような、Ｗｅｂアプリケーション１１のプログラムに含まれる内部関数１０ａ，１０ｂのいずれかに対応する複数のアスペクト１３ａ，１３ｂのプログラムを記憶する。アスペクト１３ａ，１３ｂは、例えば、オープンソースとして一般に提供されるアスペクト指向フレームワーク（例えばＡｓｐｅｃｔＪ）において用いられる、アスペクト記述言語で記述されるプログラムである。具体的には、図３に示すように、各アスペクト１３ａ，１３ｂは、実行中のプログラムのコード中においてアスペクトを追加（ウィーブ）する１以上の位置を示すジョインポイント３０１と、１以上のジョインポイント３０１をまとめて定義するポイントカット３０２と、ポイントカット３０２で定義される１以上のジョインポイントにおいて実行されるそれぞれの処理の内容を示すアドバイス３０３とを含む。この例では、アスペクト１３ａは、ジョインポイント３０１で指定されたコード中の位置（"com.nec.test.BusinessLogic.getSalesData_ot(*)"が呼び出されるタイミング）の直前（before）に、アドバイス３０３で指定された処理を実行することを示す。
【００１８】
より詳細には、アスペクト１３ａは、「ＩＤＣｈｅｃｋ．ｃｈｅｃｋ」で特定される後述のポリシ決定部１７による関数（内部関数１０ａの処理の実行可否を決定するための関数）を呼び出し、該関数の処理結果として不許可を示す「Ｄｅｎｙ」が返された場合に、内部関数１０ａの呼出元である上位関数に対し、「ＡｓｐｅｃｔＪＲｕｎｔｉｍｅ．Ｅｘｃｅｐｔｉｏｎ」で特定される例外を返す（例えば、エラー割り込みを発生させる）ことを規定している。アスペクト１３ｂも同様に、Ｗｅｂアプリケーション１１の内部関数１０ｂの処理が実行される際に実行され、後述のポリシ決定部１７による処理に対応する関数を呼び出し、処理結果が「Ｄｅｎｙ」の場合に、内部関数１０ｂの呼出元である上位関数に対して例外を返すことを規定する。なお、これらアスペクト１３ａ，１３ｂは、１つのソースコード中にまとめて記述されていてもよいし、個別のソースコードであってもよい。
【００１９】
ポリシＤＢ９は、図４に示すように、ユーザの識別情報と該ユーザについて実行が許可されるＷｅｂアプリケーション１１に含まれる内部関数１０ａ，１０ｂの識別情報とを対応付けたポリシ情報を記憶する。より詳細には、図示の例におけるポリシ情報は、ＸＡＣＭＬ(eXtensible Access Control Markup Language)などの汎用の形式で記述することができ、主体（例えば、Ｗｅｂアプリケーション１１の実行を要求するユーザ）に関する第１の記述４００と、資源（該ユーザについて処理の実行が許可されるＷｅｂアプリケーション１１中の内部関数１０ａ，１１ｂなど）に関する第２の記述４０１とを含む。なお、ＸＡＣＭＬは、標準化団体ＯＡＳＩＳ(Organization for the Advancement of Structured Information Standards)いよって標準化されている、情報アクセスに関するポリシ情報の形式である。
【００２０】
また、この例では、ポリシ情報は、第１の記述４００中でユーザ指定位置４０３（図では、｛ユーザＩＤ｝で示す位置）に記述される識別情報に対応するユーザについて、第２の記述４０１中で資源指定位置４０４（図では、｛リソースＩＤ｝で示す位置）に記述される識別情報に対応する資源（例えば、Ｗｅｂアプリケーション１１の内部関数１０ａなど）に関する処理の実行が許可され、それ以外の資源に関する処理の実行が拒否されることを示す。なお、ユーザ指定位置４０３には、ユーザの識別情報として、ユーザＩＤや、該ユーザが操作するクライアント端末２がＷｅｂサーバ３にアクセスした際に生成されるセッション情報に含まれるセッションＩＤなど、ユーザを識別可能な任意の情報を指定することができる。また、資源指定位置４０４には、処理実行が許可される資源の識別情報として、例えばＷｅｂアプリケーション１１に含まれる内部関数１０ａ，１０ｂの名称などを指定することができる。なお、ポリシ情報において、処理実行が許可される資源として、内部関数だけでなく、クラスなどを指定することもできる。
【００２１】
アプリケーション実行部７は、例えばサーブレットの実行環境を提供する所謂Ｗｅｂコンテナを用いて実現することができ、クライアント端末２からＷｅｂアプリケーション１１の実行要求を受信した場合にセッション情報を生成したり、受信した実行要求に応じてＷｅｂアプリケーション１１を実行したり、所定の条件を満たす場合（例えば、前述のエラー割り込みが発生した場合など）には、対応するＷｅｂアプリケーション１１に含まれる内部関数１０ａ，１０ｂのエラー処理（例えば、エラーメッセージの表示や、Ｗｅｂアプリケーション１１に関する処理の終了など）を実行する。
【００２２】
実行可否決定部８は、Ｗｅｂアプリケーション１１の実行を要求するユーザの識別情報をポリシＤＢ９に記憶されているポリシ情報と照合することにより、Ｗｅｂアプリケーション１１に含まれる内部関数１０ａ，１０ｂそれぞれの処理のうち実行対象となる関数の処理の実行可否を決定する。
【００２３】
また、決定結果が実行可の場合、実行対象となる内部関数１０ａ，１０ｂの処理が実行されるようにアプリケーション実行部７を制御し（例えば、単に処理をアプリケーション実行部７に移行し）、決定結果が実行不可の場合、エラー割り込みにより、実行対象となる内部関数１０ａ，１０ｂの処理が実行されないようにアプリケーション実行部７を制御する。実行可否決定部８は、かかる機能を実現するために、識別情報取得部１５、アスペクト指向制御部１６、及びポリシ決定部１７を備える。以下、各機能部について説明する。
【００２４】
識別情報取得部１５は、ユーザが操作するクライアント端末２からＷｅｂアプリケーション１１へのアクセスに基づいて生成されるセッション情報から該ユーザの識別情報（例えば、セッションＩＤなど）を取得し、Ｗｅｂアプリケーション１１の実行要求に応じてアプリケーション実行部７が生成するスレッドと、前記取得したユーザの識別情報とを対応付ける。
【００２５】
アスペクト指向制御部１６は、実行対象となる内部関数１０ａ，１０ｂの処理に対応するアスペクト１３ａ，１３ｂに基づいて、後述のポリシ決定部１７に対し、該実行対象となる処理の実行可否の決定処理を実行させ、該処理の実行可否に基づいてアプリケーション実行部７を制御する。
【００２６】
より詳細には、アスペクト指向制御部１６は、アプリケーション実行部７が内部関数１０ａの処理を実行しようとする際に、該内部関数１０ａの処理に対応するアスペクト１３ａ（図３）のアドバイス３０３で指定された処理を実行することにより、ポリシ決定部１７を呼び出し、内部関数１０ａの処理について実行可否を決定する処理を実行させ、決定結果を受け取り、該決定結果に基づいてアプリケーション実行部７を制御する。なお、ポリシ決定部１７として単なる関数を用いる場合、アスペクト指向制御部１６が、アスペクト１３ａを介して該関数を呼び出して実行してもよい。
【００２７】
ポリシ決定部１７は、アスペクト１３ａ，１３ｂを介してアスペクト指向制御部１６から呼び出された場合に、識別情報取得部１５が取得したユーザの識別情報をポリシＤＢ９に記憶されているポリシ情報と照合することにより、実行対象となるＷｅｂアプリケーション１１の内部関数１０ａ，１０ｂの処理についての実行可否を決定し、決定結果をアスペクト指向制御部１６へ渡す。
【００２８】
図５は、情報処理システム１によるＷｅｂアプリケーション１１の実行制御処理の大まかな流れを示すフローチャートである。以下、図５等を参照して、かかる処理の内容を説明する。なお、本明細書において、フローチャート等に示す各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００２９】
なお、かかる処理の前提として、アプリケーション実行部７は、Ｗｅｂサーバ３がクライアント端末２のＷｅｂ閲覧部４からＷｅｂアプリケーション１１の実行要求を受信したときに、ユーザの識別情報を含むセッション情報を生成するものとする。また、識別情報取得部１５は、前記生成されたセッション情報からユーザの識別情報を抽出し、アプリケーション実行部７が生成するスレッド上で実行されるアスペクト１３ａ，１３ｂ中で参照され得るように、前記抽出した識別情報を該スレッドに対応づけているものとする。また、アスペクト指向制御部１６は、アスペクト記憶部６から全てのアスペクト１３ａ，１３ｂを読み出し、ジョインポイント３０１（図３参照）で指定された位置（ここでは、内部関数１０ａ，１０ｂが実行される直前）でアスペクト１３ａ，１３ｂを実行できるように、アプリケーション実行部７による処理を監視しているものとする。
【００３０】
上記のような前提のもとで、まず、アスペクト指向制御部１６は、例えば内部関数１０ａが実行される直前に、内部関数１０ａに対応するアスペクト１３ａのアドバイス３０３（図３参照）で指定された処理を実行することにより、ポリシ決定部１７に対し、内部関数１０ａの実行可否を問い合わせる（Ｓ５０１）。具体的には、内部関数１０ａの実行可否を決定するための関数を呼び出す。
【００３１】
上記呼び出しに基づき、ポリシ決定部１７は、ポリシ情報をポリシＤＢ９内で検索し、ポリシ情報が見つかった場合（Ｓ５０２の判断がＹｅｓの場合）、Ｗｅｂアプリケーション１１の実行要求者であるユーザについて、実行対象となる内部関数１０ａの実行可否を決定（判断）する（Ｓ５０３）。
【００３２】
具体的には、ポリシ決定部１７は、スレッドに対応付けられているユーザの識別情報を識別情報取得部１５から取得し、該取得した識別情報を、検索により見つかったポリシ情報と照合することにより、かかるユーザの識別情報と、実行対象となる内部関数１０ａの識別情報とが対応付けられている場合には、実行可能であると決定し、決定結果をアスペクト指向制御部１６へ出力する。
【００３３】
アスペクト指向制御部１６は、実行不可を示す決定結果を受け取った場合（Ｓ５０３の判断がＮｏの場合）、内部関数１０ａの呼出元である上位関数に対してエラー割り込みを行うことにより、実行対象となる内部関数１０ａの処理が実行されないようにアプリケーション実行部７を制御する（Ｓ５０４）。
【００３４】
アプリケーション実行部７は、実行不可を示す決定結果を受け取った場合、実行対象となる内部関数１０ａの処理を実行せず、例えば、アスペクト指向制御部１６によるエラー割り込みが発生した場合、エラー処理を実行する（例えば、エラーメッセージを出力する。Ｓ５０５）。
【００３５】
一方、検索によりポリシＤＢ９内にポリシ情報が見つからなかった場合（Ｓ５０２の判断がＮｏの場合）、又は実行対象となる内部関数１０ａについて実行不可と決定された場合（Ｓ５０３の判断がＹｅｓの場合）、アスペクト指向制御部１６は、実行対象となる内部関数１０ａの処理が実行されるようにアプリケーション実行部７を制御する（第１実施形態では、単に処理をアプリケーション実行部７に移行する。Ｓ５０６）。アスペクト指向制御部１６からアプリケーション実行部７に処理が移行すると、アプリケーション実行部７は、実行対象となる内部関数１０ａの処理を実行する（Ｓ５０７）。
【００３６】
以上の処理は、内部関数１０ａに限らず、Ｗｅｂアプリケーション１１に含まれる全ての関数（内部関数１１ｂなど）に対しても同様に適用することができる。
【００３７】
以下、図６を参照し、Ｗｅｂアプリケーション１１の実行制御処理の具体的な流れを説明する。
【００３８】
クライアント端末２のＷｅｂ閲覧部４は、ユーザの識別情報（例えば、識別子「ＪＳＥＳＳＩＯＮＩＤ」で特定されるセッションＩＤなど）を含むリクエストデータＤ１をＷｅｂサーバ３へ送信する。
【００３９】
識別情報情報保持部１５は、アプリケーション実行部７が生成するセッション情報から、ユーザの識別情報（ここでは、「ＩＤ情報Ｄ５」と表記する）を取得し、スレッドに関連付ける。
【００４０】
アスペクト指向制御部１６は、内部関数１０ａに対応するアスペクト１３ａ（ここでは、「アスペクトＤ２」と表記する）、及び内部関数１０ｂに対応するアスペクト１３ｂ（ここでは、「アスペクトＤ３」と表記する）をアスペクト記憶部６からそれぞれ読み込み、内部関数１０ａ，１０ｂが実行される直前に、対応するアスペクトＤ２，Ｄ３のアドバイス３０３（図３参照）で指定された処理を実行可能な状態にする。より詳細には、かかるタイミングでアスペクトＤ２，Ｄ３のアドバイス３０３で指定された処理を実行できるように、アプリケーション実行部７の動作を監視する。
【００４１】
そして、アスペクト指向制御部１６は、例えば、内部関数１０ａが実行される直前に、アスペクトＤ２のアドバイス３０３で指定された処理を実行することにより、ポリシ決定部１７に対し、内部関数１０ａの実行可否決定処理６００を実行させる。
【００４２】
ポリシ検索部１７は、ポリシＤＢ９に記憶されているポリシ情報（ここでは、「ポリシデータＤ４」と表記する）と、識別情報取得部１５が保持するＩＤ情報Ｄ５とを用いて、図４を参照して説明した実行可否決定処理６００を実行する。
【００４３】
実行可否決定処理６００の結果、実行可を示す決定結果が出力された場合、アプリケーション実行部７は、内部関数１０ａの処理を実行し、実行不可を示す決定結果が出力された場合、アスペクト指向制御部１６によるエラー割り込みに基づき、内部関数１０ａのエラー処理を実行する。
【００４４】
次に、アスペクト指向制御部１６は、内部関数１０ｂが実行される直前に、アスペクトＤ３のプログラムを実行することにより、ポリシ決定部１７に対し、実行可否決定処理６０１を実行させる。実行可否決定処理６０１に用いるパラメータ及び処理内容は、実行可否決定処理６００と同様である。また、出力される実行可否の決定結果に基くアプリケーション実行部７の動作についても前述と同様である。
【００４５】
図７は、Ｗｅｂアプリケーション１１の内部関数それぞれについての実行可否決定処理において、ＩＤ情報Ｄ５が、どのようにして横断的に使用されるのかを示す。
【００４６】
まず、ユーザがクライアント端末２を操作することにより、Ｗｅｂ閲覧部４は、Ｗｅｂサーバ３（より詳細には、アプリケーション実行部７）に対し、Ｗｅｂアプリケーション１１の実行要求（以下、「リクエスト」と称する）を送信する（ＳＴＥＰ１）。なお、アプリケーション実行部７は、そのリクエストに対して一つのスレッド９を割り当て（生成し）、セッション情報を生成する。なお、セッション情報は、リクエストを初めて受信した際に生成すれば足り、繰り返し生成しなくてもよい。
【００４７】
識別情報取得部１５は、アプリケーション実行部７がＷｅｂアプリケーション１１を実行する前に、セッション情報からＩＤ情報Ｄ５を抽出し（ＳＴＥＰ２）、該抽出したＩＤ情報Ｄ５をスレッド９に対応付ける（ＳＴＥＰ３）。より詳細には、例えばＪａｖａ(登録商標)実行環境が有するＴｈｒｅａｄＬｏｃａｌ機能を使用し、ＩＤ情報Ｄ５への参照をスレッド９に対して設定する。そして、識別情報保持部１５は、処理をアプリケーション実行部７に返す（ＳＴＥＰ４）。
【００４８】
続いて、アプリケーション実行部７は、Ｗｅｂアプリケーション１１を実行し、これにより、例えば内部関数１０ａの実行が要求される。
【００４９】
ここで、アスペクト指向制御部１６は、内部関数１０ａに対応するアスペクト１３ａを実行することにより、ポリシ決定部１７を呼び出し、内部関数１０ａについての実行可否決定処理を実行させる（ＳＴＥＰ５）。
【００５０】
ポリシ決定部１７は、実行中のスレッド９を参照し、ＴｈｒｅａｄＬｏｃａｌ機能に設定されたＩＤ情報Ｄ５への参照に基づいて、識別情報取得部１５からＩＤ情報Ｄ５を取得する（ＳＴＥＰ６）。そして、内部関数１０ａの実行可否を決定し、実行可であると決定した場合にのみ、内部関数１０ａが実行される（ＳＴＥＰ７）。
【００５１】
以上のように、本発明によれば、Ｗｅｂアプリケーションになんら変更を加えることなく、該Ｗｅｂアプリケーションに含まれる処理（内部関数に基づく処理や、クラスに基づく処理など）についての実行可否を決定し、該決定結果に応じてＷｅｂアプリケーションを実行する枠組みが実現される。例えば、周知のプログラム（フレームワークなど）によってアプリケーション実行部７及び実行可否決定部８を機能的に実現する場合、ポリシ情報と、Ｗｅｂアプリケーションに含まれる処理のうち実行可否を制御したい処理に対応するアスペクトとを作成するだけで、いわゆる「エンタイトルメントマネジメント」によるセキュリティ強化を容易に実現することができる。かかる枠組みが実現されることにより、Ｗｅｂシステムの新規開発においても、Ｗｅｂアプリケーション開発者による内部関数のアクセス制限のためのプログラミング作業を簡素化することができる。
【００５２】
以上、本発明の実施形態を説明したが、本発明は、上記実施形態に限定されることなく種々に変形して適用することが可能である。
【００５３】
［変形例］
例えば、第１実施形態で説明した情報処理システム１の構成を、図８に示すような構成の情報処理システム８０に変更してもよい。この図において、第１実施形態で用いたのと同じ符号を付してある構成要素は、第１実施形態で説明したのと同様の機能を有する。
【００５４】
情報処理システム８０が情報処理システム１と異なる点は、アクセス制限の実施対象が、Ｗｅｂアプリケーション１１の内部関数の処理ではなく、複数の内部クラス１８ａ，１８ｂの処理である点と、該内部クラス１８ａ，１８ｂに対応するアスペクト１９ａ，１９ｂがアスペクト記憶部６に記憶されている点と、ポリシ決定部１７が、Ｗｅｂサーバ３の外側（例えば、サーバコンピュータを用いて構成されるポリシ検索装置８１）に設けられる点が異なる。この場合、ポリシ情報中の第２の記述４０１には、処理実行が許可される資源として、内部クラス１８ａ，１８ｂの識別情報を指定しておくのがよい。なお、情報処理システム８０によるＷｅｂアプリケーション１１の実行制御方法は、第１実施形態で説明したのと同様である。
【００５５】
また例えば、実施形態では、ポリシＤＢ９は、Ｗｅｂサーバ３と通信可能に接続されるＤＢサーバ等の情報処理装置（図示省略）のＨＤＤ等によって機能的に実現されているが、第１実施形態におけるＷｅｂサーバ３や、上記変形例におけるポリシ決定装置８１が備えるＨＤＤ等の記憶装置によって機能的に実現されてもよい。
【００５６】
また例えば、図４に示すポリシ情報では、あるユーザについて実行を許可する資源が指定されている（例えば、第２の記述４０１において指定している）が、さらに「動作」を指定するようにしてもよい。
【００５７】
また例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限定されない。
【００５８】
（付記１）
Ｗｅｂアプリケーションを実行するアプリケーション実行部と、
ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報を記憶するポリシ記憶部と、
前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を前記ポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように、前記アプリケーション実行部を制御する実行可否決定部と、
を備えることを特徴とする情報処理システム。
【００５９】
（付記２）
前記実行可否決定部は、前記ユーザが操作するクライアント端末からのアクセスに基づいて生成されるセッション情報から前記ユーザの識別情報を取得する、ことを特徴とする付記１に記載の情報処理システム。
【００６０】
（付記３）
前記実行可否決定部は、
前記取得したユーザの識別情報を前記ポリシ情報と照合することにより、前記実行対象となる処理の実行可否を決定するポリシ決定部と、
前記実行対象となる処理に対応するアスペクトに基づいて、前記ポリシ決定部に対し、該実行対象となる処理の実行可否の決定処理を実行させ、該処理の実行可否に関する決定結果に基づいて前記アプリケーション実行部を制御するアスペクト指向制御部と、
を含む、ことを特徴とする付記２に記載の情報処理システム。
【００６１】
（付記４）
Ｗｅｂアプリケーションの実行を制御するアプリケーション実行制御方法であって、
前記Ｗｅｂアプリケーションの実行を要求するユーザの識別情報を、ポリシ記憶部に記憶されている、該ユーザの識別情報と該ユーザについて実行が許可される前記Ｗｅｂアプリケーションに含まれる処理とを対応付けたポリシ情報と照合することにより、前記Ｗｅｂアプリケーションに含まれる処理のうち実行対象となる処理の実行可否を決定し、実行可の場合には、前記実行対象となる処理が実行されるように制御し、実行不可の場合には、エラー割り込みにより、前記実行対象となる処理が実行されないように制御する、ことを特徴とするアプリケーション実行制御方法。
【符号の説明】
【００６２】
１…情報処理システム、２…クライアント端末、３…Ｗｅｂサーバ、４…Ｗｅｂ閲覧部、５…アプリケーション記憶部、６…アスペクト記憶部、７…アプリケーション実行部、８…実行可否決定部、９…ポリシＤＢ、１０ａ，１０ｂ…内部関数、１１…Ｗｅｂアプリケーション、１３ａ，１３ｂ…アスペクト、１５…識別情報取得部、１６…アスペクト指向制御部、１７…ポリシ決定部
【図１】
2011175457.tif 000003
【図２】
2011175457.tif 000004
【図３】
2011175457.tif 000005
【図４】
2011175457.tif 000006
【図５】
2011175457.tif 000007
【図６】
2011175457.tif 000008
【図７】
2011175457.tif 000009
【図８】
2011175457.tif 000010