(57)【要約】【課題】  あるエレメントが、グループのメンバであるか否かを判定するための要求を受け取ることを含む、グループ中におけるメンバシップを判定する方法を提供すること。【解決手段】  この要求は、ソフトウェアアプリケーションによって生成することができ、ここでは、このアプリケーションは、このアプリケーションの外部に存在するスクリプトに対して少なくとも１つのパラメータを提供する。このスクリプトは、アプリケーションが提供する、オプションのパラメータと一緒に評価されて、このグループ中におけるこのエレメントのメンバシップを判定する。一般に、このスクリプトは、このアプリケーションの開発とは独立に、管理者によって柔軟に生成される。評価の後に、応答がこのアプリケーションに返送され、ここではこの応答は、このグループ中におけるこのエレメントのメンバシップの指示となる。【選択図】  図１
2006344198.tif 000002
【特許請求の範囲】
【請求項１】
エレメントがグループのメンバであるか否かを判定するランタイム要求をソフトウェアアプリケーションから受け取るステップであって、前記要求は、前記グループを定義するポリシー規則を有する評価エンジンによって受け取られるステップと、
前記アプリケーションの外部に保持され、前記アプリケーションとは独立に修正するために管理者にとって使用可能である前記ポリシー規則を適用することにより、前記ランタイム要求が受け取られた後に前記グループ中における前記エレメントのメンバシップを評価するステップと、
前記グループ中における前記エレメントのメンバシップの指示である応答を前記アプリケーションに送るステップと
を備えたことを特徴とするグループ中におけるメンバシップを判定する方法。
【請求項２】
前記アプリケーションの外部のデータベースにアクセスして、前記要求を評価するための追加情報を獲得するステップを
さらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記ポリシー規則を適用することにより、前記ランタイム要求が受け取られた後に前記グループ中における前記エレメントのメンバシップを評価するステップは、グループ中におけるエレメントについてのメンバシップ規則を定義する、管理者が保持するスクリプトを使用して前記ランタイム要求を評価するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記スクリプトは、少なくとも１つの宣言的ＩＦ／ＴＨＥＮステートメントを有するスクリプト言語を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記エレメントがグループのメンバであるか否かを判定するランタイム要求を受け取るステップは、前記アプリケーションからの少なくとも１つのパラメータを有するランタイム要求を受け取るステップを含み、前記グループ中における前記エレメントのメンバシップを評価するステップは、前記少なくとも１つのパラメータと一緒に前記ポリシー規則を評価するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記アプリケーションからの少なくとも１つのパラメータを有するランタイム要求を受け取るステップは、ユーザがアクセス許可を有するか否かを判定する要求を前記アプリケーションから受け取り、前記ユーザのパラメータを評価エンジンに渡すステップを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記グループ中における前記エレメントのメンバシップの指示である応答を前記アプリケーションに送るステップは、アクセス判定を要求したアプリケーションに対してユーザに関するアクセス認可およびアクセス拒否のうちの一方を送るステップを含むことを特徴とする請求項１に記載の方法。
【請求項８】
エレメントがグループのメンバであるか否かを判定するランタイム要求をソフトウェアアプリケーションから受け取るステップは、前記アプリケーションが呼び出すアプリケーションプログラミングインターフェースを介して評価エンジンが前記ランタイム要求を受け取るステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
グループ中におけるエレメントのメンバシップを判定するためのシステムであって、
ソフトウェアアプリケーションと、
前記アプリケーションとは別になっているスクリプトについてのストレージ領域と、
前記スクリプトを編集するためのインターフェースと、
前記スクリプトを実行するための評価エンジンと、
実行されるときに、
エレメントがグループのメンバであるか否かを判定する要求を前記ソフトウェアアプリケーションから受け取るステップであって、前記要求は、前記グループを定義するポリシー規則を有する評価エンジンによって受け取られるステップと、
前記スクリプトを実行することにより、前記要求が受け取られた後に前記グループ中における前記エレメントのメンバシップを評価するステップと、
前記アプリケーションに前記グループ中における前記エレメントのメンバシップの指示を提供することにより前記要求に対して応答するステップと
を含む方法を実施する命令を有するメモリに対してアクセスすることができる少なくとも１つのプロセッサと
を備えることを特徴とするシステム。
【請求項１０】
前記アプリケーションがアクセスして前記評価エンジンのファンクションを呼び出すアプリケーションプログラミングインターフェースをさらに備えたことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記評価エンジンがアクセスして、グループ中におけるエレメントのメンバシップの判定のために有用な少なくとも１つの外部パラメータを取り出す外部データソースをさらに備えたことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記スクリプトは、少なくとも１つのＩＦ／ＴＨＥＮステートメントを有するスクリプト言語を含むことを特徴とする請求項９に記載のシステム。
【請求項１３】
エレメントがグループのメンバであるか否かを判定する要求を受け取る前記ステップは、前記アプリケーションからの少なくとも１つのパラメータを有するランタイム要求を受け取るステップを含み、前記グループ中における前記エレメントのメンバシップを評価するステップは、前記少なくとも１つのパラメータと一緒に前記ポリシー規則を評価するステップを含むことを特徴とする請求項９に記載のシステム。
【請求項１４】
前記アプリケーションからの少なくとも１つのパラメータを有する要求を受け取る前記ステップは、ユーザがアクセス許可を有するか否かを判定する要求を前記アプリケーションから受け取り、前記ユーザのパラメータを評価エンジンに渡すステップを含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記グループ中における前記エレメントのメンバシップの指示である応答を前記アプリケーションに送る前記ステップは、アクセス判定を要求したアプリケーションに対してユーザに関するアクセス認定およびアクセス拒否のうちの一方を送るステップを含むことを特徴とする請求項９に記載のシステム。
【請求項１６】
グループ中におけるエレメントのメンバシップを判定する方法を実行する命令を含むコンピュータ読取り可能媒体であって、前記方法は、
エレメントがグループのメンバであるか否かを判定する要求をソフトウェアアプリケーションから受け取るステップであって、前記要求は、前記グループを定義するポリシー規則を有する評価エンジンによって受け取られるステップと、
前記ソフトウェアアプリケーションとは別に保持され、前記ソフトウェアアプリケーションとは独立に修正するために管理者にとって使用可能であるスクリプトを実行することにより、前記要求が受け取られた後に前記グループ中における前記エレメントのメンバシップを評価するステップと、
前記グループ中における前記エレメントのメンバシップの指示である応答を前記ソフトウェアアプリケーションに送るステップと
を備えたことを特徴とするコンピュータ読取り可能媒体。
【請求項１７】
前記アプリケーションの外部のデータベースにアクセスして前記要求を評価するための追加情報を獲得するステップをさらに備えたことを特徴とする請求項１６に記載のコンピュータ読取り可能媒体。
【請求項１８】
前記グループ中における前記エレメントのメンバシップを評価するステップは、少なくとも１つのＩＦ／ＴＨＥＮステートメントを有するスクリプトを評価するステップを含むことを特徴とする請求項１６に記載のコンピュータ読取り可能媒体。
【請求項１９】
エレメントがグループのメンバであるか否かを判定する要求をソフトウェアアプリケーションから受け取る前記ステップは、前記アプリケーションが呼び出すアプリケーションプログラミングインターフェースを介して評価エンジンが前記要求を受け取るステップを含むことを特徴とする請求項１６に記載のコンピュータ読取り可能媒体。
【請求項２０】
前記グループ中における前記エレメントのメンバシップの指示である応答を前記アプリケーションに送る前記ステップは、アクセス判定を要求したアプリケーションに対してユーザに関するアクセス認定およびアクセス拒否のうちの一方を送るステップを含むことを特徴とする請求項１６に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にソフトウェアプログラミングの分野に関し、より詳細にはアプリケーションの外部のスクリプトを使用してグループ中におけるエレメントのメンバシップを判定する分野に関する。
【背景技術】
【０００２】
メンバシップを評価する従来の方法は、リストなどの静的な情報を使用する方法である。１つの標準的なフォーマットにおいては、エレメントのリストは、グループを表すことができる。例えば、ユーザ名のリストは、１つまたは複数のファイルに対するアクセスを認めることができるシステムのユーザを表すことができる。しかし、このリストは変化することもあり、また大規模になってしまうこともある。例えば、ファイルファミリーの認可されたユーザリストは、このユーザのロケーション、他のユーザに関するそのユーザの位置、ユーザの雇用状況、これらのファイルに含まれる情報を知るべき、ユーザの必要性など、いくつかのファクタに応じて変化することもある。ユーザが休暇で外国に行っており、または他のセキュリティに関連した任意の規則に従う場合には、ユーザは、アクセスを拒否されることが望ましいこともある。かかるリストは、状況に応じて日付または時間によって変化することもあり、かかるリストをアップデートすることが困難なこともある。かかるリストは、人々の名前、製品、パラメータ、日付、ロケーション、サービス、時刻、材料、命令、価格など、どのような種類のエレメントのリストとすることもできる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
アプリケーションが、ファイルにアクセスする実施例においてなど、あるエレメントがグループに属するか否かについての評価を必要とする場合には、このアプリケーションは、このプログラムと共に出荷される、グループについての制約条件を用いてプログラムすることができる。例えば、あるアプリケーションは、あるグループが午前９時から午後５時まで有効であるという情報を用いてプログラムすることができる。この場合には、この制約条件に対するどのような変更にも、アップデートするためのプログラマのサービスが必要なこともある。この種の静的なリストまたは固定された制約条件は、アップデートするためには不便であり、変化するメンバシップの実態に対処するためには、まったく柔軟性を欠いている。例えば、プログラマの編集が、グループ中におけるメンバシップ規則に基づいて認可またはアクセス判定における変化する条件に対応することができるようにして出荷済みのソフトウェアアプリケーションを速やかに更新する方法は現在では存在していない。
【０００４】
一部の静的な種類のリストの条件が実行時に変化する可能性があることを仮定すると、開発時にリストを作成することは、不適切なこともある。したがって、グループ中におけるエレメントまたは役割に基づくメンバシップが、実行時にこのアプリケーションのファクタについて存在するか否かを判定するための動的な方法が必要である。本発明は、前述の必要性に対処するものであり、メンバシップの判定のより柔軟な実装を可能にする様々なシステム、方法および技法を用いてこれらの必要性を満たすものである。
【課題を解決するための手段】
【０００５】
本発明は、グループまたは役割におけるエレメントのメンバシップを動的に判定する方法である。エレメントは、人、場所または物事とすることができる。一実施例としてこのエレメントは、グループ中におけるセキュリティプリンシパル（ｓｅｃｕｒｉｔｙ  ｐｒｉｎｃｉｐａｌ）とすることができる。本発明の一態様においては、メンバシップの評価は、このアプリケーションの外側で行われる。この実施態様においては、ソフトウェアアプリケーションは、グループ中における少なくとも１つのエレメントのクエリ関連メンバシップに対する解決を要求する際にアプリケーションプログラミングインターフェースを呼び出すことができる。評価エンジンによるこの要求の解決は、スクリプトの処理を含んでいる。このスクリプトは、管理者が生成する命令のリストであり、問題になっているエレメントのメンバシップの判定を可能にする動的ツールである。このスクリプトは、この判定のために呼び出したアプリケーションとは別になっており、したがってこのスクリプトは、このアプリケーションとは独立している。このスクリプトは、このアプリケーションがもたらすパラメータにアクセスすることができ、これらのパラメータは、実行時にこのメンバシップ結果を定義するのを助ける。メンバシップは、このアプリケーションのランタイムパラメータを使用して実行時に判定することができるので、スクリプトを使用したメンバシップの判定は、非常に柔軟になる。このメンバシップが判定された後に、これらの結果は、この評価エンジンからこのアプリケーションに返して渡される。
【０００６】
別の実施形態においては、このスクリプトは、外部データベースからのシステムデータまたはデータにアクセスして、この評価エンジンがもたらす情報を増やすことができる。この場合には、このスクリプトは、グループに対するエレメントのメンバシップの判定において、アプリケーションパラメータと一緒にデータベース中で使用可能な追加の情報を必要とすることもある。
【０００７】
前述の概要、ならびに以下の好ましい実施形態の詳細な説明については、添付図面を併せ読むときにより良く理解されよう。本発明を例証する目的で、本発明の例示の構成が図面中に示されているが、本発明は、開示の特定の方法および手段だけに限定されるものではない。
【発明を実施するための最良の形態】
【０００８】
（本発明の例示の実施形態）
図１は、本発明の例示の一実施形態１００である。ソフトウェアアプリケーション１２０が、評価エンジン１３０に通信可能に結合されて、グループ中におけるエレメントのメンバシップが判定される。アプリケーション１１０についてのユーザインターフェースにより、ユーザは、このアプリケーション１２０の適切な動作のために有用な一部のランタイムパラメータを入力することができるようになる。動作中に、このソフトウェアアプリケーションは、グループに対するエレメントのメンバシップの判定を必要とすることもある。一実施形態においては、このアプリケーションが妥当性検証ＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍ  ｉｎｔｅｒｆａｃｅ）（図示せず）にアクセスして、メンバシップ判定についての要求を生成することができる。このＡＰＩは、要求１２４を生成し、要求１２４の判定のためのパラメータ１２２を評価エンジン１３０に対して供給する。
【０００９】
評価エンジン１３０は、アプリケーション１２０とは別になっている。この構成にとっての１つの利点は、この評価エンジンコードを開発せずにアプリケーションを開発してリリースすることができることである。これにより、管理者は、スクリプトを開発して、このアプリケーションが存在する環境に対してカスタマイズされるメンバシップの判定を助けることができるようになる。また、評価エンジン１３０が実行するこのスクリプトは、このユーザのシステム内のこのアプリケーションの用途に固有の、このアプリケーションから渡されるランタイムパラメータ１２２を使用することができる。
【００１０】
一実施形態においては、この評価エンジンが使用するスクリプトは、ワシントン州、レッドモンド市のマイクロソフト（登録商標）から入手可能なＶＢＳｃｒｉｐｔ（登録商標）またはＪｓｃｒｉｐｔ（登録商標）とすることができる。このスクリプトは、グループオブジェクトまたは役割オブジェクトに関連づけることができる。このスクリプトは、ソフトウェア管理者またはソフトウェア展開者によってプログラム的に、または管理者ユーザインターフェース１５０を介して生成することができる。このスクリプト、およびこの関連するグループまたは役割は、このユーザインターフェースにリンク１５５した持続する認可ポリシーストア１４０に記憶することができる。一実施形態においては、アプリケーション１２０を開発して、評価エンジン機能を呼び出し、この持続する認可ポリシー１４０を使用してメンバシップ要求の判定を助ける妥当性検証ＡＰＩをサポートすることができる。
【００１１】
一実施形態においては、この要求は、アプリケーション１２０のセキュリティプリンシパルユーザ１１０からのアクセス要求１２４の形式を取ることができる。セキュリティプリンシパル要求１１５が、アプリケーションリソースにアクセスするとき、アプリケーション１２０は、アクセス妥当性検証ＡＰＩを使用して、このセキュリティプリンシパルがこの要求されたアクセス権を有するか否かを判定することができる。これを達成するために、アプリケーション１２０は、このアクセス妥当性検証ＡＰＩコードを呼び出し、このスクリプトコード内で使用することができるリソース、セキュリティプリンシパル、およびアプリケーションデータを識別するデータパラメータを渡す。このアプリケーションリソースは、アクセスを求める対象のアイテムとすることができる。例えば、ファイル、ディレクトリ、データベースまたはコンピュータシステムとすることができる。このアクセス妥当性検証ＡＰＩは、リンク１４５を介して持続する認可ポリシー１４０を検査することができる。このアクセス妥当性検証ＡＰＩは、評価エンジン１３０に関連するこのスクリプトを実行して、このセキュリティプリンシパルがこの関連するグループまたは役割のメンバであるか否かを判定する。この評価は、このアプリケーション特有のパラメータ１２２および／またはルーチンを含むことができる。このスクリプト評価が、このセキュリティプリンシパルがこのグループまたは役割のメンバであると判定する場合には、このアクセス妥当性検証ＡＰＩは、このグループまたは役割に与えられるアクセス権に対応するアプリケーションリソースに対するこのセキュリティプリンシパルのアクセス権を記述する結果情報１２６を返すことになる。管理者が所与のセキュリティプリンシパルについてのアクセス権について問い合わせるときに、このスクリプトに基づいたグループまたは役割は、管理者ユーザインターフェース１５０に関連する管理ＡＰＩによって評価することもできる。したがって、この管理者は、この管理者のスクリプトの有効性をテストし判定することができることもある。
【００１２】
一実施形態においては、妥当性検証ＡＰＩを介して呼び出された後に、このスクリプトは、アプリケーションパラメータ１２２を使用して、この評価エンジン中で実行される。このスクリプトは、管理者によって論理構築および開発の簡略化をするために、ＩＦ／ＴＨＥＮステートメントとして形成することができる。このスクリプトは、オプションのパラメータを有することができる外部データベース１６０にアクセスするインターフェース１２８に対してアクセス権を要求することができる。これらのオプションのパラメータをランタイムアプリケーションパラメータ１２２と共に使用して、グループ中におけるそのメンバシップを判定することができる。
【００１３】
アプリケーションとは別に保持されるメンバシップ判定ファンクションについては多くの用途が存在する。本発明は、クレジットについての動的なチェックにおける応用を見出すこともできる。バンキング用途では、ある人の支払い能力を評価したいと思うこともある。それ自体が、ローンの日歩やリスク評価判断基準などの変数を有するスクリプトを管理者が書くことができる。したがって、あるアプリケーションでは、スクリプトを実行する評価エンジンに、所与の候補が、ローンについて認可することができる人々のグループ中に存在するか否かを判定するように要求することができる。この人についての詳細が、パラメータの形式でこの評価エンジンに渡された後に、このローンの日歩には、外部データベースを介してアクセスすることができる。このクレジットの評価がなされた後に、このクレジットアプリケーションをさらに処理するために、この評価の結果をこのアプリケーションに対して返すことができる。
【００１４】
例示の一実施形態においては、地域図書館は、ユーザが図書を借りることができるか否かを示す外部スクリプトを使用する図書間ソフトウェアアプリケーションを使用したいと思うこともある。最初に図書館員またはユーザは、あるアプリケーションにアクセスすることができ、このアプリケーションは、可能性のある図書の借り手の身元および図書のタイトルを要求する。このユーザの身元は、ユーザの年齢および住所地のような情報を含むことができる。この可能性のある借り手または他のユーザについての許可は、要求されている特定のタイトルについての入手可能性チェック、関連した図書のリスト、およびこの図書を入手する認可を得るために貸し出し手続きのような物事を含むことができる。これらのリソースは、この地域図書館における対象となる図書タイトルまたはビデオタイトルを含んでいる。この図書館のメンバは、この図書館職員やこの図書館の創設者などのある種のレガシーユーザ（ｌｅｇａｃｙ  ｕｓｅｒ）を含むことができるが、可能性のある借り手の大部分については、この図書館員または他の図書館管理者が決定するスクリプトを介して評価することができる。スクリプトベースのメンバシップの評価は、リストを使用するだけとは限らない。その代わりに、これらのスクリプトは、実行時に評価されるメンバシップについての規則を定義する。その結果、メンバシップは、以下のように判定することができる。
メンバシップ：
レガシーメンバ
＜図書＞
＜ビデオ＞
【００１５】
レガシーメンバは、図書館の創設者であり、この図書館が保持する資料に全面的アクセス権限を有するＢｏｂ  ＳｍｉｔｈやＳａｌｌｙ  Ｈａｌｌなどのメンバのデータベースリストとすることができる。これらの可能性のあるユーザに関する要求は、これらのユーザがデータベース中にリストアップされているので、真を返すはずである。しかし、本発明により、他の可能性のある借り手についてのスクリプトの使用が以下のように可能になる。
図書
住所地＝借り手の住所を取得する
住所地＝地域在住の場合には、真を返し、遅滞料はない
住所地＝非地域在住の場合には、真を返し、必須料金を課する
ビデオ
住所地＝借り手の住所を取得する
住所地＝地域在住の場合には真を返す
そうでない場合には、偽を返す
【００１６】
この図書館員または管理者らのスクリプトにより、在住者も非在住者も図書を借り出すことができるようになる。以上に含まれる追加のスクリプトネスティング（ｓｃｒｉｐｔ  ｎｅｓｔｉｎｇ）は、在住者が遅滞料を課されないようにすることを可能にする。地域非在住者も、図書を借り出すことができるが、彼らは、地域在住者ではないので、必須の借用料金を課される。ビデオについてのスクリプトには、異なる規則がある。この借り手が、地域在住者である場合には、このビデオを借り出すことができる。しかし、ビデオの借り手の地域在住者についての遅滞料に対する特別な禁止事項はない。非地域在住者は、ビデオを借りることがまったくできない。この実施例は、本発明におけるスクリプトを介して使用可能なメンバシップ規則の柔軟性を示している。この図書館員管理者が、ビデオを非地域在住者が借りることができると決定する場合、このチェックアウトアプリケーションは、変更する必要はなく、このスクリプトを変更する必要があるだけである。どのようにして、借り出した図書またはビデオについて同様に時間的な規則を適用することができるかについても、当業者なら簡単に理解することができる。また、従来のグループメカニズムは、これらが絶えず変更を受けるので、これらのグループを毎日管理することが必要なはずである。
【００１７】
別の例示の実施例においては、ＳＱＬテーブルにプロジェクトを記憶するプロジェクト管理アプリケーションが、本発明を利用することができる。特定の役割をもつユーザは、各プロジェクト上で特定のアクションを実施することができる。各プロジェクトは、以下の役割を有することができる。すなわち、開発、テストおよびプロジェクト立案であり、このそれぞれは、このプロジェクトオブジェクト上で、特定の機能を有している。この役割メンバシップは、ＳＱＬ中のプロジェクトフィールドのアトリビュート上に記憶される。認可の役割は、開発、テスト、およびプロジェクト立案について作成され、これらのそれぞれは、このプロジェクト管理アプリケーションとは別に開発される使用可能なスクリプトの結果に基づいてメンバシップを割り当てる。この開発メンバシップスクリプトは、プロジェクト識別子をパラメータとして取得し、ＳＱＬ中のオブジェクトに問い合わせることができる。このスクリプトは、このプロジェクトＳＱＬファイルにアクセスして、この呼び出しているユーザがアクセス権を有することができるか否かを評価することができる。この呼び出しているユーザが、このプロジェクト上の開発フィールドにリストアップされている場合、このスクリプトは、真を返す。この適切なプロジェクトファイル上の開発フィールドが、この呼び出しているユーザ名を含まない場合には、この結果は、偽を返すことができる。しかし、このスクリプトが、この呼び出しているユーザの身元を検査することができるアルゴリズムにアクセスし、おそらくこの開発業者は、下請け契約者であり、依然としてある種の検証規則の下でアクセスを認可することができるという評価を行うことができる場合には、このスクリプトによってさらに高い柔軟性をもたらすことさえ可能である。グループ中におけるメンバシップの判定を支援するスクリプトを使用することによる柔軟性は、変化するランタイム条件の下で有用であることが判明している。
【００１８】
図２は、本発明の態様による例示の一方法２００を示している。あるアプリケーションからあるグループ中におけるあるエレメントのメンバシップを判定するための要求を受け取る（ステップ２１０）。一実施形態においては、このアプリケーションによってメンバシップを評価するためにＡＰＩを呼び出すことができる。このアプリケーションは、オプションとして、１つまたは複数のランタイムパラメータをこの評価エンジンに渡す。このアプリケーションは、これらのランタイムパラメータを渡して（ステップ２２０）、この主題のリソース、メンバシップの検証を求めるエレメント、またはメンバシップ判定結果に影響を与える変数をより正確に示す。例えば、このエレメントは、コンピュータリソースへのアクセスを望むユーザ名とすることができ、このパラメータ変数は、ユーザロケーションおよび日時とすることができる。
【００１９】
グループに対するエレメントのメンバシップを規定する規則に対応する、管理者によって書かれるスクリプトを使用して、提供されるリソースに対するアプリケーションデータを評価し、および提供する。一部の実施形態においては、このスクリプトによって評価するために渡されるアプリケーションパラメータは、データベース中で使用可能な他のデータによって補強できることが好ましい。かかる追加データが必要な場合（２３０）には、外部データベースがアクセスされ（２４０）、このスクリプトによる、データの評価を開始することができる。このスクリプトは、このアプリケーションが渡したパラメータおよびオプションの追加情報に従って評価される（ステップ２５０）。このようにして、ランタイム情報を使用して、管理者のスクリプトを使用する所望のコンピュータリソースに対するこの主題のエレメントのメンバシップを動的に評価する。この評価が完了した後に、この評価結果、一般的には真または偽の指示が、もたらされる（ステップ２６０）。
【００２０】
（例示のコンピューティング装置）
図３および以下の説明は、本発明の実施形態を実装することができる適切なコンピューティング環境の簡潔な一般的な説明を提供することを意図している。以下では汎用コンピュータについて説明しているが、これは、１つのプロセッサの実施例にすぎず、ネットワーク／バスのインターオペラビリティおよびインタラクションを有するクライアントなど他のコンピューティング装置を用いて、複数のプロセッサを有する、本発明の実施形態を実装することもできる。したがって、本発明の実施形態は、非常に少ない、または最小限のクライアントリソースが関与しているネットワーク化ホスティングされたサービスの環境中、例えばクライアント装置が単に、家庭用電化器具中に配置されたオブジェクトや、他のコンピューティング装置および同様なオブジェクトなど、ネットワーク／バスに対するインターフェースとしての役割を果たすネットワーク環境中で実装することができる。基本的に、データを記憶することができ、そこからデータを取り出すことができるところならどこでも、動作するのに望ましい、または適切な環境となる。
【００２１】
必要ではないが、本発明の実施形態は、装置またはオブジェクトについてのサービスの開発者が使用するためのオペレーティングシステムを介して実装することもでき、またはアプリケーションソフトウェア内に含め、あるいはその両方を行うこともできる。ソフトウェアは、クライアントワークステーション、サーバ、または他の装置など、１台または複数台のコンピュータが実行するプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、個々のタスクを実施し、または個々の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含んでいる。一般的にこのプログラムモジュールの機能は、様々な実施形態中で必要に応じて結合し、または分散することができる。さらに、本発明の様々な実施形態は、他のコンピュータコンフィギュレーションを用いて実行することもできることが当業者には理解されよう。使用するのに適したものとすることができる他のよく知られているコンピューティングシステム、コンピューティング環境、および／またはコンピューティングコンフィギュレーションには、それだけには限定されないが、ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒパーソナルコンピュータ）、現金自動預け払い機、サーバコンピュータ、ハンドヘルド装置またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブルな市販の電子製品、ネットワークＰＣ、家庭用電化器具、電灯、環境制御エレメント、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明の実施形態はまた、分散コンピューティング環境中でも実行することができ、ここでは、タスクは、通信ネットワーク／バスまたは他のデータ伝送媒体を介してリンクされるリモート処理装置によって実施される。分散コンピューティング環境においては、プログラムモジュールは、メモリストレージ装置を含めて、ローカルコンピュータストレージ媒体中にもリモートコンピュータストレージ媒体中にも配置することができ、クライアントノードは、代わりにサーバノードとして振る舞うこともできる。
【００２２】
したがって、図３は本発明の実施形態を実装することができる適切なコンピューティングシステム環境３００の一実施例を示すが、以上で明らかにされたように、コンピューティングシステム環境３００は、適切なコンピューティング環境の一実施例にすぎず、本発明の一実施形態の用途または機能の範囲についてのどのような限定を示唆することも意図してはいない。また、コンピューティング環境３００は、例示の動作環境３００中に示されるコンポーネントの任意の１つまたは組合せに関連したどのような依存性または要件を有するものとも解釈すべきではない。
【００２３】
図３を参照すると、本発明の一実施形態を実装する例示のシステムは、コンピュータシステム３１０の形態の汎用コンピューティング装置を含んでいる。コンピュータシステム３１０のコンポーネントは、それだけには限定されないが、処理装置３２０、システムメモリ３３０、およびこのシステムメモリを含めて様々なシステムコンポーネントを処理装置３２０に結合するシステムバス３２１を含むことができる。システムバス３２１は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのうちのどれかを使用したローカルバスを含めて、いくつかの型のバス構造のうちのどれにすることもできる。実施例として、限定するものではないが、かかるアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ：業界標準アーキテクチャ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ：マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ拡張ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ：ビデオエレクトロニクス規格協会）ローカルバス、および（メザニン（Ｍｅｚｚａｎｉｎｅ）バスとしても知られている）ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ：ペリフェラルコンポーネント相互接続）バスを含んでいる。
【００２４】
コンピュータシステム３１０は、一般的に様々なコンピュータ読取り可能媒体を含んでいる。コンピュータ読取り可能媒体は、コンピュータシステム３１０がアクセスすることができる使用可能な任意の媒体とすることができ、揮発性媒体および不揮発性媒体、着脱可能媒体および着脱不能媒体を共に含んでいる。実施例として、限定するものではないが、コンピュータ読取り可能媒体は、コンピュータストレージ媒体および通信媒体を含むことができる。コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性媒体および不揮発性媒体、着脱可能媒体および着脱不能媒体を含んでいる。コンピュータストレージ媒体は、それだけには限定されないが、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙランダムアクセスメモリ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ読取り専用メモリ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ電気的に消去可能なプログラマブルな読取り専用メモリ）、フラッシュメモリまたは他のメモリ技術、ＣＤＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙコンパクトディスク読取り専用メモリ）、ＣＤＲＷ（ｃｏｍｐａｃｔ  ｄｉｓｃ−ｒｅｗｒｉｔａｂｌｅ再書込み可能ＣＤ）、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋデジタル多用途ディスク）または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージ装置、あるいは所望の情報を記憶するために使用することができ、コンピュータシステム３１０によってアクセスすることができる他の任意の媒体を含んでいる。通信媒体は、一般的に搬送波や他の搬送メカニズムなどの被変調データ信号の形のコンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータを実施し、任意の情報配信媒体を含んでいる。この用語「被変調データ信号」は、その１つまたは複数の特性が、その信号中の情報を符号化するようにして設定または変更された信号を意味する。実施例として、限定するものではないが、通信媒体は、有線ネットワークや直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、他の無線媒体などの無線媒体を含んでいる。以上のうちの任意の組合せもまた、コンピュータ読取り可能媒体の範囲内に含められるべきである。
【００２５】
システムメモリ３３０は、読取り専用メモリ（ＲＯＭ）３３１やランダムアクセスメモリ（ＲＡＭ）３３２などの揮発性メモリおよび／または不揮発性メモリの形態のコンピュータストレージ媒体を含んでいる。起動中などにコンピュータシステム３１０内のエレメント間で情報を転送する助けをする基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ：基本入出力システム）３３３は、一般的にＲＯＭ３３１に記憶される。ＲＡＭ３３２は一般的に、処理装置３２０にとって直接にアクセス可能であり、または処理装置３２０によって現在動作させられており、あるいはその両方が行われるデータおよび／またはプログラムモジュールを含んでいる。実施例として、限定するものではないが、図３は、オペレーティングシステム３３４、アプリケーションプログラム３３５、他のプログラムモジュール３３６、およびプログラムデータ３３７を示している。
【００２６】
コンピュータシステム３１０は、他の着脱可能／固定の、揮発性／不揮発性コンピュータストレージ媒体を含むこともできる。実施例にすぎないが、図３は、固定の不揮発性磁気媒体から情報を読み取り、それに情報を書き込むハードディスクドライブ３４１、着脱可能な不揮発性磁気ディスク３５２から情報を読み取り、それに情報を書き込む磁気ディスクドライブ３５１、ならびにＣＤＲＯＭ、ＣＤＲＷ、ＤＶＤ、他の光媒体など着脱可能な不揮発性光ディスク３５６から情報を読み取り、またはそれに情報を書き込む光ディスクドライブ３５５を示している。この例示の動作環境中で使用することができる他の着脱可能／固定の、揮発性／不揮発性コンピュータストレージ媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどが含まれる。ハードディスクドライブ３４１は、一般的にインターフェース３４０などの固定のメモリインターフェースを介してシステムバス３２１に接続され、磁気ディスクドライブ３５１および光ディスクドライブ３５５は、一般的にインターフェース３５０などの着脱可能なメモリインターフェースによってシステムバス３２１に接続される。
【００２７】
前述の図３に示すこれらのドライブおよびこれらに関連するコンピュータストレージ媒体は、コンピュータシステム３１０のためのコンピュータ読取り可能命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。図３において、例えばハードディスクドライブ３４１は、オペレーティングシステム３４４、アプリケーションプログラム３４５、他のプログラムモジュール３４６、  およびプログラムデータ３４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム３３４、アプリケーションプログラム３３５、他のプログラムモジュール３３６、およびプログラムデータ３３７と同じまたは異なるものとすることができることに留意されたい。オペレーティングシステム３４４、アプリケーションプログラム３４５、他のプログラムモジュール３４６、およびプログラムデータ３４７には、少なくともこれらが異なるコピーであることを示すためにここでは異なる番号が付与されている。ユーザは、キーボード３６２や、一般的にマウス、トラックボールまたはタッチパッドと呼ばれるポインティング装置３６１などの入力装置を介してコンピュータシステム３１０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含むことができる。これらおよび他の入力装置はしばしば、システムバス３２１に結合されるユーザ入力インターフェース３６０を介して処理装置３２０に接続されるが、これらは、パラレルポート、ゲームポート、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓユニバーサルシリアルバス）など他のインターフェースおよびバス構造によって接続することもできる。モニタ３９１または他のタイプのディスプレイ装置もまた、ビデオインターフェース３９０などのインターフェースを介してシステムバス３２１に接続され、このインターフェースは、同様にビデオメモリ（図示せず）と情報をやりとりすることもできる。モニタ３９１に追加して、コンピュータシステムはまた、スピーカ３９７やプリンタ３９６など他のペリフェラル出力装置を含むこともでき、これらの出力装置は、出力ペリフェラルインターフェース３９５を介して接続することができる。
【００２８】
コンピュータシステム３１０は、リモートコンピュータ３８０など１つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク環境または分散環境中で動作することもできる。リモートコンピュータ３８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の共通ネットワークノードとすることができ、一般的にコンピュータシステム３１０に関連して以上で説明したエレメントの多くまたはすべてを含んでいるが、メモリストレージ装置３８１だけしか、図３には示していない。図３に示す論理接続は、ＬＡＮ（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ローカルエリアネットワーク）３７１およびＷＡＮ（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ワイドエリアネットワーク）３７３を含んでいるが、他のネットワーク／バスを含むこともできる。かかるネットワーキング環境は、家庭、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて、一般的なものである。
【００２９】
ＬＡＮネットワーキング環境中で使用されるときには、コンピュータシステム３１０は、ネットワークインターフェースまたはアダプタ３７０を介してＬＡＮ３７１に接続される。ＷＡＮネットワーキング環境中で使用されるときには、コンピュータシステム３１０は、一般的にインターネットなどのＷＡＮ３７３上で通信を確立するためのモデム３７２または他の手段を含んでいる。モデム３７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース３６０または他の適切なメカニズムを介してシステムバス３２１に接続することができる。ネットワーク環境においては、コンピュータシステム３１０に関連して示すプログラムモジュール、またはその一部分は、このリモートメモリストレージ装置に記憶することもできる。実施例として限定するものではないが、図３は、リモートアプリケーションプログラム３８５をメモリ装置３８１上に存在するものとして示している。図に示すこれらのネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
【００３０】
様々な分散コンピューティングフレームワークは、パーソナルコンピューティングとインターネットとが近づいていくという観点から開発されてきており、また開発されつつある。個人ユーザおよびビジネスユーザには同様に、アプリケーションおよびコンピューティング装置についてのシームレスに相互運用可能なウェブが可能なインターフェースが提供され、コンピューティングアクティビティは、ますますウェブブラウザ指向、またはネットワーク指向になっている。
【００３１】
例えば、マイクロソフトから入手可能なＭＩＣＲＯＳＯＦＴ（登録商標）の．ＮＥＴ（商標）プラットフォームは、サーバと、ウェブベースのデータストレージなどのビルディングブロックサービスと、ダウンロード可能な装置ソフトウェアとを含んでいる。本明細書中の例示の実施形態は、コンピューティング装置上に存在するソフトウェアに関連して説明しているが、本発明の一実施形態の１つまたは複数の部分は、動作を．ＮＥＴ（商標）の言語およびサービスのすべてによって実施し、これらの中でサポートし、またはこれらを介してアクセスすることができるように、また他の分散コンピューティングフレームワークにおいても同様に実施できるようにして、オペレーティングシステム、アプリケーションプログラミングインターフェース（ＡＰＩ）、またはコプロセッサと、ディスプレイ装置と、要求しているオブジェクトのうちのどれかの間の「仲介役（ｍｉｄｄｌｅ  ｍａｎ）」オブジェクトを介して実装することもできる。
【００３２】
前述のように、本発明の例示の実施形態は、様々なコンピューティング装置およびネットワークアーキテクチャに関して説明しているが、この基礎となっている概念は、スクリプトによるメンバシップ判定技法を実装することが望ましい任意のコンピューティング装置またはコンピューティングシステムに対して適用することができる。したがって、本発明の実施形態に関連して説明している方法およびシステムは、様々なアプリケーションおよび装置に対して適用することができる。例示のプログラミング言語、名前、および実施例は、本明細書中では、様々な選択肢のうちの代表例として選択されているが、これらの言語、名前、および実施例は、限定することを意図してはいない。本発明の実施例によって実現される同じ、同様な、または等価なシステムおよび方法を実現するオブジェクトコードを提供する非常に多くの方法が存在することが当業者には理解されよう。
【００３３】
本明細書中で説明している様々な技法は、ハードウェアまたはソフトウェア、あるいは適切な場合にはこれら両者の組合せに関連して実装することができる。したがって、本発明の方法および機器、あるいはそのある種の態様または一部分は、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン読取り可能ストレージ媒体などの有形媒体の形で実施されるプログラムコード（すなわち、命令）の形態を取ることができ、ここで、このプログラムコードがコンピュータなどのマシンにロードされ、このマシンによって実行されるときに、このマシンは、本発明を実行するための機器になる。プログラマブルコンピュータ上でプログラムコードを実行する場合には、このコンピューティング装置は、一般的にプロセッサと、（揮発性および不揮発性のメモリおよび／またはストレージエレメントを含めて）このプロセッサによって読取り可能なストレージ媒体と、少なくとも１つの入力装置と、少なくとも１つの出力装置とを含むことになる。例えば、データ処理ＡＰＩなどの使用を介して、本発明の一実施形態の信号処理サービスを利用することができる１つまたは複数のプログラムは、高レベル手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装されて、コンピュータと情報をやりとりすることが好ましい。しかし、この１つ（または複数）のプログラムは、必要に応じてアセンブリ言語またはマシン語で実装することができる。いずれにしても、この言語は、コンパイラ言語またはインタープリタ言語とすることができ、ハードウェア実装と組み合わせることができる。
【００３４】
本発明の態様は、様々な図面に示す好ましい実施形態に関連して説明してきたが、本発明を逸脱することなく本発明の同じファンクションを実施するために、他の同様な実施形態も使用することができ、またこれら説明した実施形態に対して変更および追加を行うこともできることを理解されたい。さらに、特に無線ネットワーク装置の数が増加し続けるにつれて、ハンドヘルド装置オペレーティングシステムおよび他の特定用途向けオペレーティングシステムを含めて、様々なコンピュータプラットフォームが企図されていることを強調しておくべきである。したがって、請求している本発明は、どのような一実施形態だけにも限定すべきではなく、そうではなくて添付の特許請求の範囲による広がりと範囲で解釈すべきである。
【図面の簡単な説明】
【００３５】
【図１】本発明の態様を有するシステムの例示の一実施形態を示す図である。
【図２】本発明の態様に調和した例示の一方法を示す図である。
【図３】本発明の態様を実装することができる例示のコンピューティング環境を示すブロック図である。
【符号の説明】
【００３６】
１１５  セキュリティプリンシパル要求
１４５、１５５  リンク
３１０  コンピュータシステム
３４１  ハードディスクドライブ
３５１  磁気ディスクドライブ
３５５  光ディスクドライブ
【図１】
2006344198.tif 000003
【図２】
2006344198.tif 000004
【図３】
2006344198.tif 000005