(57)【特許請求の範囲】
【請求項１】
保護されたメモリシステム内のサービスへのアクセスを制御する方法であって、
該保護されたメモリシステムは、プロセッサと、メモリに格納された複数のアプリケーションとを含み、該複数のアプリケーションは、第１のアプリケーションと、第２のアプリケーションとを含み、
該方法は、
該第１のアプリケーションが、該プロセッサに、該第２のアプリケーションから提供されるサービスを要求させることであって、該第１のアプリケーションは、該サービスへのアクセスを制御するための第１のオブジェクトを有し、該要求は、該第１のオブジェクトのメソッドを実行することによりなされ、該第１のオブジェクトのデータは、該メモリの領域であって、該第１のアプリケーションによるアクセスから保護されている領域に格納されている、ことと、
該要求に応答して、該第２のアプリケーションが、該プロセッサに、該サービスへのアクセスが該第２のアプリケーションによって許可されているか否かを決定させることと、
該アクセスが該第２のアプリケーションによって許可されていると決定された場合には、該第１のアプリケーションが、該プロセッサに、サービスを提供するための第２のオブジェクトのメソッドを実行することによって該サービスにアクセスさせることであって、該第２のオブジェクトは、該第２のアプリケーションによって制御されている、ことと
を含み、
該アクセスが該第２のアプリケーションによって許可されていないと決定された場合には、該サービスは該第１のアプリケーションから保護され、
該第１のオブジェクトのデータは、該第２のオブジェクトへのポインタを含み、
該第１のアプリケーションが、該プロセッサに、該第２のオブジェクトのメソッドを実行することによって該サービスにアクセスさせることは、該ポインタを介して該第２のオブジェクトにアクセスすることによって実行される、方法。
【請求項２】
前記アクセスが前記第２のアプリケーションによって許可されていないと決定された場合には、前記方法は、前記プロセッサが、前記第１のアプリケーションに、該サービスへのアクセスが該第２のアプリケーションによって許可されていないことを通知することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のオブジェクトは、Ｊａｖａ（登録商標）プログラミング言語によって規定される、請求項１に記載の方法。
【請求項４】
前記第１のオブジェクトのデータは、該第１のオブジェクトのメソッドを実行することを介してのみアクセス可能である、請求項１に記載の方法。
【請求項５】
前記第１のアプリケーションが、プロセッサに、第２のアプリケーションから提供されるサービスを要求させることの前に、第１のオブジェクト発行権限において、該第１のアプリケーションからの前記第１のオブジェクトの発行の要求を受信することと、
該要求が有効権限情報を含む場合に、該第１のオブジェクト発行権限が、該第１のオブジェクトを該第１のアプリケーションに発行することと
をさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のアプリケーションが、前記プロセッサに、前記第１のオブジェクトのコピーを生成させることと、
該第１のアプリケーションが、該プロセッサに、前記サービスへのアクセスを要求する第３のアプリケーションへと該コピーを転送させることと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記第１のオブジェクトの前記コピーは、コピーの元となった該第１のオブジェクトよりも少ない数のサービスへのアクセスを許可する、請求項６に記載の方法。
【請求項８】
前記第１のアプリケーションが、プロセッサに、サービスを要求させることの後に、該第１のアプリケーションが、該プロセッサに、前記第１のオブジェクトに関連するログ内にアクセス要求を記録させることをさらに含む、請求項１に記載の方法。
【請求項９】
前記第２のアプリケーションが、プロセッサに、サービスへのアクセスが第２のアプリケーションによって許可されているか否かを決定させることは、前記第１のオブジェクトが依然として有効であるか否かを決定することを含む、請求項１に記載の方法。
【請求項１０】
前記第１のオブジェクトのデータは、実行されて前記サービスを提供する前記メソッドに関連する変数を含み、該変数は、前記アクセスが前記第２のアプリケーションによって許可されているか否かを示す、請求項１に記載の方法。
【請求項１１】
命令を格納するコンピュータ読み出し可能記憶媒体であって、該命令は、プロセッサによって実行される場合に、該プロセッサに、保護されたメモリシステム内のサービスへのアクセスを制御する方法を実行させ、該保護されたメモリシステムは、該プロセッサと、該コンピュータ読み出し可能記憶媒体とを含み、該命令は、第１のアプリケーションと、第２のアプリケーションとを含み、
該方法は、
該第１のアプリケーションが、該プロセッサに、該第２のアプリケーションから提供されるサービスを要求させることであって、該第１のアプリケーションは、該サービスへのアクセスを制御するための第１のオブジェクトを有し、該要求は、該第１のオブジェクトのメソッドを実行することによりなされ、該第１のオブジェクトのデータは、該コンピュータ読み出し可能記憶媒体の領域であって、該第１のアプリケーションによるアクセスから保護されている領域に格納されている、ことと、
該要求に応答して、該第２のアプリケーションが、該プロセッサに、該サービスへのアクセスが該第２のアプリケーションによって許可されているか否かを決定させることと、
該アクセスが該第２のアプリケーションによって許可されていると決定された場合には、該第１のアプリケーションが、該プロセッサに、サービスを提供するための第２のオブジェクトのメソッドを実行することによって該サービスにアクセスさせることであって、該第２のオブジェクトは、該第２のアプリケーションによって制御されている、ことと
を含み、
該アクセスが該第２のアプリケーションによって許可されていないと決定された場合には、該サービスは該第１のアプリケーションから保護され、
該第１のオブジェクトのデータは、該第２のオブジェクトへのポインタを含み、
該第１のアプリケーションが、該プロセッサに、該第２のオブジェクトのメソッドを実行することによって該サービスにアクセスさせることは、該ポインタを介して該第２のオブジェクトにアクセスすることによって実行される、コンピュータ読み出し可能記憶媒体。
【請求項１２】
保護されたメモリシステム内のサービスへのアクセスを制御する方法であって、
該保護されたメモリシステムは、プロセッサと、メモリに格納された複数のアプリケーションとを含み、該複数のアプリケーションは、第１のアプリケーションと、第２のアプリケーションとを含み、
該方法は、
該第１のアプリケーションが、該プロセッサに、該第２のアプリケーションから提供されるサービスを要求させることであって、該第１のアプリケーションは、該サービスへのアクセスを制御するための第１のオブジェクトを有し、該要求は、該第１のオブジェクトのメソッドを実行することによりなされ、該第１のオブジェクトのデータは、該メモリの領域であって、該第１のアプリケーションによるアクセスから保護されている領域に格納されている、ことと、
該要求に応答して、該第２のアプリケーションが、該プロセッサに、該サービスへのアクセスが該第２のアプリケーションによって許可されているか否かを決定させることと、
該アクセスが該第２のアプリケーションによって許可されていると決定された場合には、該第１のアプリケーションが、該プロセッサに、該サービスにアクセスさせることと
を含み、
該第１のオブジェクトのデータは、該第２のアプリケーションによって制御される第２のオブジェクトへのポインタを含み、
該第１のアプリケーションが、該プロセッサに、該サービスにアクセスさせることは、該ポインタを介して該第２のオブジェクトにアクセスすることによって実行される、方法。
【請求項１３】
サービスへのアクセスを制御するシステムであって、
該システムは、
プロセッサと、
複数のアプリケーションを格納するメモリと
を含み、該複数のアプリケーションは、第１のアプリケーションと、第２のアプリケーションとを含み、
該第１のアプリケーションは、該プロセッサに、該第２のアプリケーションから提供されるサービスを要求させ、該第１のアプリケーションは、該サービスへのアクセスを制御するための第１のオブジェクトを有し、該要求は、該第１のオブジェクトのメソッドを実行することによりなされ、該第１のオブジェクトのデータは、該メモリの領域であって、アクセスから保護されている領域に格納されており、
該要求に応答して、該第２のアプリケーションは、該プロセッサに、該サービスへのアクセスが該第２のアプリケーションによって許可されているか否かを決定させ、
該アクセスが該第２のアプリケーションによって許可されていると決定された場合には、該第１のアプリケーションは、該プロセッサに、該サービスにアクセスさせ、
該第１のオブジェクトのデータは、該第２のアプリケーションの第２のオブジェクトへのポインタを含み、
該第１のアプリケーションが、該プロセッサに、該サービスにアクセスさせることは、該ポインタを介して該第２のオブジェクトにアクセスすることによって実行される、システム。
【請求項１４】
前記アクセスが前記第２のアプリケーションによって許可されていないと決定された場合には、前記サービスは前記第１のアプリケーションから保護される、請求項１３に記載のシステム。
【請求項１５】
前記アクセスが前記第２のアプリケーションによって許可されていないと決定された場合には、前記プロセッサが、前記第１のアプリケーションに、前記サービスへの該アクセスが該第２のアプリケーションによって許可されていないことを通知する、請求項１３に記載のシステム。
【請求項１６】
前記第１のオブジェクトは、Ｊａｖａ（登録商標）プログラミング言語によって規定される、請求項１３に記載のシステム。
【請求項１７】
前記第１のオブジェクトのデータは、該第１のオブジェクトのメソッドを実行することを介してのみアクセス可能である、請求項１３に記載のシステム。
【請求項１８】
前記第１のアプリケーションが、プロセッサに、第２のアプリケーションから提供されるサービスを要求させる前に、第１のオブジェクト発行権限が、該第１のアプリケーションからの前記第１のオブジェクトの発行の要求を受信し、該要求が有効権限情報を含む場合に、該第１のオブジェクト発行権限が、該第１のアプリケーションに該第１のオブジェクトを発行する、請求項１３に記載のシステム。
【請求項１９】
前記第１のアプリケーションは、前記プロセッサに、前記第１のオブジェクトのコピーを生成させ、前記サービスへのアクセスを要求する第３のアプリケーションへと該コピーを転送させる、請求項１３に記載のシステム。
【請求項２０】
前記第１のオブジェクトの前記コピーは、コピーの元となった該第１のオブジェクトよりも少ない数のサービスへのアクセスを許可する、請求項１９に記載のシステム。
【請求項２１】
前記第１のアプリケーションが、前記プロセッサに、前記サービスを要求させた後に、該第１のアプリケーションは、該プロセッサに、前記第１のオブジェクトに関連するログ内にアクセス要求を記録させる、請求項１３に記載のシステム。
【請求項２２】
前記第２のアプリケーションが、プロセッサに、サービスへのアクセスが第２のアプリケーションによって許可されているか否かを決定させることは、前記第１のオブジェクトが依然として有効であるか否かを決定することを含む、請求項１３に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムにおける保護メカニズムに関する。より詳細には、本発明は、保護されたメモリシステム内の他のアプリケーションによって提供されたサービスへのアクセスを制御する方法および装置に関する。
【０００２】
【従来の技術】
ＪａｖａTMプログラミング言語（カリフォルニア州Ｐａｌｏ  Ａｌｔｏのサンマイクロシステムズ社により開発）等のプログラミング言語および関連するサポーティングインターフェースが、現在、コンピュータネットワークに亘るアプリケーションの転送をサポートし、且つ、広い範囲のコンピュータプラットフォーム上でアプリケーションを実行する、信頼できる安全なインフラストラクチャを提供している。Ｊａｖａ等の開発のために、遠隔サーバからローカルマシン上にＪａｖａアプレット等のアプリケーションを搭載し、ローカルマシン上でアプリケーションを実行することが次第に一般的になりつつある。
【０００３】
【発明が解決しようとする課題】
しかし、現在のコンピュータシステムは、製造元が異なるコンピュータアプリケーションが一緒に機能して所定のタスクを達成できるように、制御された手段でアプリケーションが相互作用できるように設計されていない。アプリケーションの相互作用を達成する上での１つの問題は、通常、アプリケーションの製造元が、これらの相互作用を行う手段を制御することを望むという点にある。例えば、家屋仲介業務アプリケーションから得られるキャピタルゲイン情報にアクセスすることは、課税アプリケーションに役立ち得る。しかし、家屋仲介業務アプリケーションは顧客のポートフォリオのプライバシーを保護する必要がある。従って、課税アプリケーションは、家屋仲介業務アプリケーションから得られるポートフォリオデータに無制限にアクセスさせることはできない。
【０００４】
歴史的に、コンピュータシステム内のサービスへのアクセスを制御するタスクは、ハードウェア性能システム等のハードウェアメカニズムを介して操作されてきた。しかし、このような特殊目的ハードウェアは、全てのコンピュータシステムには存在しない。結果的に、広い範囲のコンピュータプラットフォームを渡って動作するように設計されたＪａｖａTMアプレット等の移植可能アプリケーションのために、サービスへのアクセスを制御するこのようなハードウェアを用いることは実用的ではない。
【０００５】
【課題を解決するための手段】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御する方法は、許可を介してサービスに対する要求を受け取るステップであって、許可がオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含むステップと、要求に応答して許可内のアクセス制御メカニズムを作動するステップであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するステップと、アクセスが許可されると、制御されたオブジェクト上での呼び出しを実行することによってサービスにアクセスするステップであって、制御されたオブジェクトはサービスを実行するメソッドを含み、メソッドを含まない場合には許可のユーザから保護されるステップとを含み、そのことにより上記目的が達成される。
【０００６】
本発明の方法は、アクセスが拒否された場合に、サービスを要求するエンティティに対して、サービスへのアクセスが拒否されたことを示すステップを更に含んでもよい。
【０００７】
許可がＪａｖａTMプログラミング言語およびサポーティングインターフェース内に規定されてもよい。
【０００８】
許可によって保護されたデータが、許可上に呼び出されたメソッドを介してのみアクセスされ得てもよい。
【０００９】
本発明の方法は、許可発行権限において、サービスへのアクセスを要求するエンティティから許可に対する要求を受け取るステップと、要求が有効権限情報を含む場合、許可をエンティティに発行するステップとを更に含んでもよい。
【００１０】
本発明の方法は、許可のコピーを生成するステップと、サービスへのアクセスを要求するエンティティにコピーを転送するステップとを更に含んでもよい。
【００１１】
許可のコピーによってアクセス可能になるサービスの数が、コピーの元となった許可によってアクセス可能になるサービスの数よりも少なくてもよい。
【００１２】
本発明の方法は、サービスにアクセスする前に許可が取り消しにされたかどうかを判定するステップと、許可が取り消しにされた場合に、アクセスが拒否された旨を示すステップとを更に含んでもよい。
【００１３】
本発明の方法は、許可に関連するログ内にアクセス要求を記録するステップを含んでもよい。
【００１４】
アクセス制御メカニズムを作動するステップが、許可が失効したかどうかを判定するステップを含んでもよい。
【００１５】
アクセス制御メカニズムが制御されたオブジェクトへのポインタを含み、ポインタが許可のユーザから保護されたメモリ空間内に存在してもよい。
【００１６】
アクセス制御メカニズムが、呼び出されてサービスを実行するメソッドを含み、アクセスが拒否された場合に、メソッドがサービスを実行せず、その代わりにサービスへのアクセスが許可されないことを示してもよい。
【００１７】
アクセス制御メカニズムが、呼び出されてサービスを実行するメソッドに関連する変数を有し、変数は、アクセスが許可されたかどうかを示してもよい。
【００１８】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御する方法は、許可を介してサービスに対する要求を受け取るステップであって、許可がオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含むステップと、要求に応答して許可内のアクセス制御メカニズムを作動するステップであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するステップと、アクセスが許可されると、制御されたオブジェクト上での呼び出しを実行することによってサービスにアクセスするステップであって、制御されたオブジェクトはサービスを実行するメソッドを含み、メソッドを含まない場合には許可のユーザから保護されるステップと、アクセスが拒否された場合に、サービスへのアクセスが拒否された旨をサービスを要求するエンティティに対して示すステップと、を含み、アクセス制御メカニズムが、呼び出されてサービスを実行するメソッドを含み、アクセスが拒否された場合に、メソッドがサービスを実行せず、その代わりにサービスへのアクセスが拒否された旨を示すことによって、上記目的が達成される。
【００１９】
本発明による、コンピュータによって実行される場合に、保護されたメモリシステム内のサービスへのアクセスを制御するためのメソッドをコンピュータに実行させる命令を格納するコンピュータ読み出し可能記憶媒体は、許可を介してサービスに対する要求を受け取るステップであって、許可がオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含むステップと、要求に応答して許可内のアクセス制御メカニズムを作動するステップであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するステップと、アクセスが許可されると、制御されたオブジェクト上での呼び出しを実行することによってサービスにアクセスするステップであって、制御されたオブジェクトはサービスを実行するメソッドを含み、メソッドを含まない場合には許可のユーザから保護されるステップとを含み、そのことにより上記目的が達成される。
【００２０】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御するための装置は、サービスにアクセスすることができるユーザを介する許可であって、許可がオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含む許可と、許可内のアクセス制御メカニズムであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するアクセス制御メカニズムと、要求処理メカニズムであって、許可と通信し、許可を介してサービスに対するアクセス要求を受け取り、且つ、アクセス制御メカニズムを作動するように構成された要求処理メカニズムとを含み、そのことにより上記目的が達成される。
【００２１】
アクセス制御メカニズムが、制御されたオブジェクト上への呼び出しを実行することによってサービスへのアクセスを提供するように構成され、制御されたオブジェクトはサービスを実行するメソッドを含み、メソッドを含まない場合には許可のユーザから保護されてもよい。
【００２２】
要求処理メカニズムは、アクセスが拒否されたと要求処理メカニズムが判定した場合に、サービスへのアクセスが拒否された旨を示すように構成されてもよい。
【００２３】
アクセス制御メカニズムが、呼び出されてサービスを実行する少なくとも１つのメソッドを含んでもよい。
【００２４】
許可がＪａｖａTMプログラミング言語およびサポーティングインターフェース内に規定されてもよい。
【００２５】
許可によって保護されたデータが、許可上に呼び出されたメソッドを介してのみアクセスされ得てもよい。
【００２６】
本発明の装置は、サービスへのアクセスを要求するエンティティから許可に対する要求を受け取り、要求が有効権限情報を含む場合に、エンティティに許可を発行する許可生成メカニズムを更に含んでもよい。
【００２７】
本発明の装置は、許可のコピーを生成し、サービスへのアクセスを要求するエンティティに許可のコピーを転送するように構成された許可コピーメカニズムを更に含んでもよい。
【００２８】
許可コピーメカニズムが、コピーの元となった許可によってアクセス可能になるサービスの数よりも少ない許可のコピーを生成するように構成されてもよい。
【００２９】
要求処理メカニズムが、サービスにアクセスする前に、許可が取り消しにされたかどうかを判定するように構成されてもよい。
【００３０】
本発明の装置は、許可に関連し、アクセス要求を記録するログを更に含んでもよい。
【００３１】
要求処理メカニズムが、許可が失効したかどうかを判定するように構成されてもよい。
【００３２】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御する装置は、許可手段であって、許可手段を介してユーザがサービスにアクセスできる許可手段と、アクセス制御手段であって、許可手段上のメソッドを呼び出すことによってアクセス制御手段がトリガされるように、許可手段内で、アクセス制御手段がサービスへのアクセスを制御し、且つ、許可手段のユーザから保護されたメモリ空間内に存在する、アクセス制御手段と、要求処理手段であって、許可手段と連絡し、許可手段を介してサービスに対するアクセス要求を受け取り、且つ、アクセス制御手段を作動するように構成された要求処理手段とを含み、そのことにより上記目的が達成される。
【００３３】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御するためのデータ構造を含むコンピュータ読み出し可能記憶媒体は、データ構造が、データ構造内のアクセス制御メカニズムであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するアクセス制御メカニズムと、データ構造内のアクセス制御インジケータであって、アクセス制御インジケータがユーザがアクセスできるサービスを特定し、アクセス制御インジケータがユーザによる変更から保護されるアクセス制御インジケータとを含み、そのことにより上記目的が達成される。
【００３４】
アクセス制御メカニズムが、サービスを実行するコードへのポインタを含み、ポインタがユーザから保護されたメモリ空間内に存在してもよい。
【００３５】
アクセス制御インジケータがサービスに関連する変数を含み、変数が、対応するサービスへのアクセスが許可されるかどうかを示してもよい。
【００３６】
本発明による保護されたメモリシステム内のサービスへのアクセスを制御する方法は、許可を介してサービスに対する要求を受け取るステップであって、許可がオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含むステップと、要求に応答して許可内のアクセス制御メカニズムを作動するステップであって、許可上のメソッドを呼び出すことによってアクセス制御メカニズムがトリガされるように、アクセス制御メカニズムがサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在するステップと、アクセスが許可された場合に、サービスにアクセスするステップとを含み、そのことにより上記目的が達成される。
【００３７】
本発明のある実施形態は、他のアプリケーションによって提供されるサービスへのアクセスを制御するための方法および装置を提供する。本発明の方法は許可を利用する。許可は、許可のユーザから保護されたメモリ空間内に存在するアクセス制御メカニズムを含む。本発明の方法は、許可を介してサービスに対する要求を受け取ることを含む。許可は、オブジェクト指向プログラミングシステム内に規定されたオブジェクトを含む。要求に応答して、本発明の方法は、許可内のアクセス制御メカニズムを作動する。アクセス制御メカニズムが許可上のメソッドを呼び出すことによってトリガされるように、このアクセス制御メカニズムはサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在する。アクセスが許可された場合、メソッドは、制御されたオブジェクト上への呼び出しを実行することによってサービスにアクセスする。この制御されたオブジェクトはサービスを実行するメソッドを含み、含まない場合には、許可のユーザから保護される。上記実施形態の別の改変例は、許可発行権限(permit issuing authority)において、サービスへのアクセスを要求するエンティティ（人物、コンピュータプログラムまたはコンピュータプロセス等）から許可についての要求を受け取ることを含む。要求が有効権限情報(valid authorization information)を含む場合、許可がエンティティに対して発行される。上記実施形態の更なる改変例は、許可のコピーを生成すること、およびサービスへのアクセスを要求するエンティティにコピーを転送することを含む。
【００３８】
従って、本発明は別のアプリケーションによって提供されるサービスへのアクセスを制御する方法を提供する。この方法はハードウェアアクセス制御メカニズムに依存しないので、広い範囲のコンピュータプラットフォームに亘る移植可能アプリケーションによって使用することができる。
【００３９】
【発明の実施の形態】
以下の説明は、当業者であれば誰でも本発明を為し、且つ、本発明を用いることができるように提示され、特定のアプリケーションおよびその要件の文脈内で提供される。開示された実施形態の様々な変更が当業者には容易に明らかになり、本明細書中で規定される一般原理が、本発明の精神および範囲から逸れることなく他の実施形態およびアプリケーションに応用され得る。従って、本発明は例示する実施形態に限定されることは意図されておらず、本明細書中で開示される原理および特徴と矛盾することのない最も広い範囲が与えられる。
【００４０】
分散コンピュータシステム
図１Ａは、本発明のある実施形態に従ってコンピュータシステム１００内で一緒に動作するコードモジュール１０２および１０４を示す。コードモジュール１０４と共に動作するために、コードモジュール１０２はコードモジュール１０４からサービスを要求する。同様に、コードモジュール１０２と共に動作するために、コードモジュール１０４はコードモジュール１０２からサービスを要求する。モジュール１０２とモジュール１０４との間のアクセスサービスは、以下に図３から図５を参照してより詳細に説明する許可構造を介して制御される。
【００４１】
この発明の実施の形態で、サービスは、第１のアプリケーションによって他のアプリケーションへと利用できる機能である。この機能は、第１のアプリケーションからのデータへのまたは計算リソースへのアクセスを他のアプリケーションに提供し得る。保護されたメモリシステムにより、メモリの選択された領域をシステム上で実行されるアプリケーションから容易に保護できる。
【００４２】
図１Ｂは、本発明の実施形態に従って、複数のコンピュータノードがネットワーク１３０を介して一緒に結合されたクライアントサーバコンピュータコンテキストにおいて、本発明が使用され得る様子を示す。図１Ｂにおいて、サーバ１１０および１２０は、ネットワーク１３０を介してサードパーティシステム１４０に結合される。通常、ネットワーク１３０は任意のタイプのコンピュータ間の有線または無線のリンクであり、ローカルエリアネットワーク、広域ネットワークまたはネットワークの組み合わせを含むが、これらに限定されない。本発明のある実施形態において、ネットワーク１３０はインターネットを含む。サーバ１１０および１２０は、計算リソースまたはデータ記憶リソースのためにクライアントからの要求に対してサービスを行うメカニズムを含むコンピュータネットワーク上の任意のノードであり得る。サードパーティシステム１４０は、サーバ１１０および１２０からのコードおよび／またはデータをダウンロードすることができる、サーバ１１０および１２０と通信するコンピュータネットワークの任意のノードであり得る。
【００４３】
図１Ｂに示す実施形態において、サーバ１１０はサーバコードモジュール１１２を含み、サーバ１２０はクライアントコードモジュール１２２を含む。サーバコードモジュール１１２およびクライアントコードモジュール１２２は、サードパーティシステム１４０上で一緒に動作し得るコードのモジュラーピースを含む。図１Ｂの破線は、ネットワーク１３０を渡ってサードパーティシステム１４０上にダウンロードされているサーバコードモジュール１１２およびクライアントコードモジュール１２２を示す。このダウンロードプロセスは複数の方法で行われ得る。本発明のある実施形態において、サーバ１１０は、サーバコードモジュール１１２をサードパーティシステム１４０内にダウンロードするために、サードパーティシステム１４０上のユーザによってアクセスされ得るウェブサイトを含む。それに対応して、サーバ１２０は、クライアントコードモジュール１２２をサードパーティシステム１４０内にダウンロードするために、サードパーティシステム１４０上のユーザによってアクセスされ得るウェブサイトを含む。別の実施形態において、サーバコードモジュール１１２およびクライアントコードモジュール１２２は、ネットワーク１３０を渡ってダウンロードされない。その代わりに、サーバコードモジュール１１２およびクライアントコードモジュール１２２は、コンピュータディスク等のコンピュータ記憶媒体によって、それぞれサーバ１１０および１２０からサードパーティシステム１４０へと転送される。
【００４４】
サーバコードモジュール１１２およびクライアントコードモジュール１２２は、一旦サードパーティシステム１４０上に配置されると、図１Ｂに示すように一緒に動作するように一体化され得る。例えば、サービスをクライアントコードモジュール１２２に提供する際に、サーバコードモジュール１１２は、クライアントコードモジュール１２２のためにデータベースからデータを取り出し得る。あるいは、サーバコードモジュール１１２は、クライアントコードモジュール１２２についての計算動作を実行し得る。この一体化プロセスは、クライアントコードモジュール１２２がサーバコードモジュール１１２からサービスにアクセスする権利を与えたられたかどうかを判定する工程を含み得る。逆の方向を考えると、このプロセスは、サーバコードモジュール１１２がクライアントコードモジュール１２２からサービスにアクセスする権利を与えたられたかどうかを判定する工程を含み得る。
【００４５】
サービスにアクセスするプロセス
図２Ａは、本発明のある実施形態に従ってサービスにアクセスするプロセスを示す。図２Ａは、サーバゲート２０２、システム２０４およびクライアントコードモジュール１２２（図１Ｂ）の間の相互作用を示す。図２Ａに示したサービスにアクセスするプロセスは、サービスへのアクセスを獲得する方法として考えられるもののうちの１つを示すことに留意されたい。一般に、本発明は、コンピュータシステム内で一緒に動作する任意のピースのコードに応用される。サーバゲート２０２は、適切に権限を与えられた要求に許可を提供するメカニズムである。
【００４６】
この発明の実施の形態で、許可はエンティティによって保持されるトークンであり、これにより、エンティティがサービスにアクセスできる。本発明のある実施形態において、許可は、サービスの集合へのアクセスを容易にするオブジェクト指向プログラミングシステム内に規定されたオブジェクトを含む。
【００４７】
サーバゲート２０２は、サーバコードモジュール１１２（図１Ｂ）によって提供されるサービスへのアクセスを制御するアクセス制御メカニズムを含む。このアクセス制御メカニズムは、許可の要求者から様々に異なるレベルの権限を要求し得る。本発明のある実施形態において、サーバゲート２０２はサードパーティシステム１４０上のサーバコードモジュール１１２内に配置される。別の実施形態において、サーバゲート２０２はサーバ１１０自体の中に配置され、ネットワーク１３０に亘る通信を介してアクセスされる。システム２０４は、クライアントコードモジュール１２２が、サーバコードモジュール１１２によって提供されるサービスにアクセスする権限を適切に与えられることを確立するためのメカニズムを含む。これを目的として、システム２０４は複数の方法で実行される。ある実施形態において、システム２０４はサードパーティシステム１４０の一部であるコードによって実行される。別の実施形態において、システム２０４は、サードパーティシステム１４０内のサーバコードモジュール１１２の一部として実行され得る。
【００４８】
図２Ａに示すプロセスは以下のように動作する。クライアントコードモジュール１２２は、サードパーティシステム１４０内に既に存在するものとする。所望のサービスにアクセスするために、クライアントコードモジュール１２２は、サーバコードモジュール１２２からのサービスの集合にアクセスする「役割」のための「チケット」を要求する。役割は、サーバコードモジュール１１２によって実行される１組の動作を規定する。所定の役割は、他の役割よりも制限され得る。例えば、サーバコードモジュール１１２がコンピュータファイルシステムを維持する場合、ある役割はファイルシステムからのファイルを読み出す動作のみを含み得る。より広い範囲の権利を有する役割は、ファイルシステムからのファイルの読み出し、書き込みおよび消去を行う動作を含み得る。
【００４９】
要求に応答して、システム２０４がクライアントコードモジュール１２２を検査し、クライアントコードモジュール１２２が役割に対する適切な権限を含んでいるかどうかを判定する。本発明のある実施形態において、この検査は証明書鎖を検査することを含む。このプロセスは、同時係属出願である"Controlling Access to Services Between Modular Applications"（米国出願第０９／１０６，５６７号）という名称の本出願と同一の発明人による米国特許出願において、より詳細に説明される。このプロセスを説明するために、この出願を本明細書中で参考として援用する。
【００５０】
クライアントコードモジュール１２２が役割についての権限を適切に付与された場合、システム２０４は役割のためのチケットを発行し、このチケットはクライアントコードモジュール１２２に与えられる。次に、クライアントコードモジュール１２２は、チケットをサーバゲート２０２に渡す。サーバゲート２０２はチケットをチェックして、チケットが有効であることを確実にする。チケットが有効である場合、サーバゲート２０２はサービスについての許可をクライアントコードモジュール１２２に送信する。この許可により、クライアントコードモジュール１２２が役割によって規定されるサービスにアクセスすることができる。本発明のある実施形態において、この許可は、オブジェクト指向プログラミングシステム内に規定されたオブジェクトである。このオブジェクトにより、クライアントコードモジュール１２２が役割を含む１組のメソッドを実行することができる。許可を送信した後に、サーバゲート２０２は、チケットを再び使用できないように取り消しにする。クライアントコードモジュール１２２は許可を所持したままなので、クライアントコードモジュール１２２は許可を用いてサービスにアクセスすることができ、従って、チケットはもはや必要でない。
【００５１】
クライアントコードモジュール
図２Ｂは本発明の一実施形態による図１Ｂのクライアントコードモジュール１２２の構造の一部を示す。クライアントコードモジュール１２２は証明書鎖２１０およびクライアントコード２２０を含む。証明書鎖２１０はサービスの権限の鎖を確立する証明書の鎖を含む。鎖における第１の証明書は本来サービスに対するアクセスを与える権限を有するエンティティによって署名され、鎖における次の証明書は鎖における前のエンティティからのサービスに対するアクセスを与える権限を委任されてきたエンティティにより署名される。
【００５２】
この詳細な開示で、証明書はあるものが真実であることを証明する署名された電子文書である。証明書は一般的に、ある人が公開鍵の保有権を有することを示す。本発明において、証明書はエンティティが鍵によって表現されるサービスへアクセスできることを示す。証明書は（対応する公開鍵を確証できる）秘密鍵を生成するデジタルサインと同様に権限署名のアイデンティティを含み得る。例えば、ある証明書形式はＸ.５０９規格下で規定される。
【００５３】
この詳細な開示で、デジタルサインはシークレットを用いたファイルから導かれる値であり、シークレットを用いて導かれた値を立証し得る。ここで、シークレットは署名者に対してのみ知られている。デジタルサインは鍵によって生成され、且つファイルに対して付加されるメッセージダイジェストの形をとり得、または鍵を用いてファイル内でデータの変換の形をとり得る。デジタルサインはまた、公開鍵秘密鍵暗号化システムの秘密鍵によって暗号化されたメッセージダイジェストの形をとり得る。
【００５４】
例えば、例示した実施形態において、証明書鎖２１０は証明書−１  ２１２、証明書−２  ２１４および証明書−Ｎ  ２１６を含む。サーバコード保有者は最初は公開鍵０から始まる。役割について権限を伝えるために、サーバコード保有者は証明書−１  ２１２および関連する公開鍵秘密鍵対を生成し、秘密鍵は秘密鍵１である。サーバコード保有者は秘密鍵０で証明書−１  ２１２に署名し、証明書−１  ２１２を第１の媒介に対して対応する秘密鍵と共に伝える。第１の媒介は秘密鍵２を含む対応する公開鍵秘密鍵対とともに証明書−２  ２１４を生成する。第１の媒介は公開鍵１で証明書−２  ２１４に署名し、証明書−２  ２１４を関連する秘密鍵２および鎖における全ての先の証明書とともに次の媒介に対して伝える。最終の媒介が秘密鍵Ｎ−１で証明書−Ｎ  ２１６を署名し、証明書−Ｎ  ２１６をクライアントコード保有者に対して対応する秘密鍵Ｎおよび鎖における全ての先の証明書と共に伝えるまで、このパターンは鎖に継続する。クライアントコード保有者は公開鍵Ｎを用いてクライアントコード２２０に署名し、次いで証明書鎖２１０およびクライアントコード２２０を含むクライアントコードモジュール１２２を生成する。
【００５５】
従って、クライアントコードモジュール１２２はサーバコード保有者から最終的なクライアントコード保有者までの媒介によって署名される証明可能な証明書鎖２１０を含む。証明書鎖２１０は鎖における証明書が対応する秘密鍵で適切に署名されることを証明する公開鍵を用いて証明され得る。
【００５６】
許可オブジェクト
図３は、本発明の実施形態による許可オブジェクト３００および制御されたオブジェクト３２０の構造を示す。通常、許可オブジェクト３００は、クライアントコードモジュール１２２（図１Ｂ）等のクライアントコードモジュールによって保持される。クライアントコードモジュールは、サーバコードモジュール１１２（図１Ｂ）等のサーバコードモジュールによって提供されるサービスへのアクセスを要求する。サーバコードモジュール１１２は制御されたオブジェクト３２０を維持する。制御されたオブジェクト３２０は、サービスを実行するのに用いられるコードおよびデータを含む。図３に示す実施形態が、オブジェクト指向プログラミングシステム内に規定されたオブジェクトを介して実行されることに留意されたい。しかし、本発明はオブジェクト指向プログラミングシステムに限定されない。
【００５７】
許可オブジェクト３００は、制御されたオブジェクトポインタ３０２、ブールベクトル(boolean vector)３０４、メソッド−０ポインタ３０６、メソッド−１ポインタ３０８、メソッド−Ｎポインタ３１０、許可生成メソッド３１２、許可失効情報３１４および許可ログ３１６を含む複数の要素を有する。
【００５８】
制御されたポインタ３０２が、サーバコードモジュール１１２によって維持される制御されたオブジェクト３２０を指示することによって、許可オブジェクト３００の保有者はサーバコードモジュール１１２内の制御されたオブジェクト３２０に関連するサービスにアクセスできる。制御されたオブジェクトポインタ３０２は、クライアントコードモジュール１２２によるアクセスから保護された領域であるメモリ内に格納される。クライアントコードモジュール１２２は、制御されたオブジェクトポインタ３０２を直接に読み出すこと、または変更することができない。クライアントコードモジュール１２２は、制御されたオブジェクト３２０に直接アクセスすることができない。制御されたオブジェクト３２０にアクセスするために、クライアントコードモジュール１２２は、制御されたオブジェクトポインタ３０２を介して制御されたオブジェクト３２０へアクセスすることをシステムに依頼する必要がある。同様に、許可オブジェクト３００内の他のデータ項目は保護されているので、それらをクライアントコードモジュール１２２によって直接読み出すこと、または変更することができない。このメモリ保護が、サービスへのアクセスをシステムに頼むことによってクライアントコードモジュール１２２が制御されたオブジェクト３２０と関連するサービスにアクセスせねばならないことを確実にする。このことにより、システムは、許可によって特定される様態でサービスへのアクセスを制限することができる。
【００５９】
上述のように、このタイプのメモリ保護は、ＪａｖａTMプログラミング言語およびサポーティングインターフェースを使用することによって提供され得る。ＪａｖａTMプログラミング言語はオブジェクトレベルまでのメモリ保護をサポートする。Ｊａｖａモデルの下で、オブジェクト内のデータにアクセスする唯一の方法は、オブジェクトによってサポートされたメソッドを呼び出すことである。そのメソッドが呼び出されない場合には、オブジェクト内のデータは、例えば漂遊ポインタを介してメモリリファレンスから保護される。ＪａｖａTMプログラミング言語は、広い範囲のコンピュータプラットフォームを渡って移送され得るので、このオブジェクトレベルメモリ保護は、広い範囲のコンピュータプラットフォームを渡って提供され得る。しかし、Ｊａｖａプログラミング言語と特定のコンピュータプラットフォーム上の動作システムとの間のインターフェースを攻撃することによって、保護メカニズムの裏をかくことが可能となり得ることに留意されたい。このタイプの攻撃を防止するために、ＪａｖａTMメモリ保護スキームがコンピュータプラットフォームのハードウェア内に拡大され得る。
【００６０】
ブールベクトル３０４は、制御されたオブジェクト３２０によって提供されたメソッドに対応するエントリを含む。これらのメソッドは制御されたオブジェクト３２０に関連するサービスを実行する。エントリが「ＡＬＬＯＷＥＤ」値を含む場合、これは、許可オブジェクト３００の保有者が、制御されたオブジェクト３２０からのサービスを実行する対応したメソッドにアクセスすることを可能にする。エントリが「ＮＯＴ  ＡＬＬＯＷＥＤ」値を含む場合、これは、許可の保有者が対応するメソッドにアクセスできないことを示す。このようにして、許可オブジェクト３００は、許可の保有者がどのサービスにアクセスできるのかを特定する。ブールベクトル３０４は保護されたメモリ内に配置されるので、許可オブジェクト３００の保有者はブールベクトル３０４を変更することができず、権限の与えられていないサービスへのアクセスを得ることになる。特定のメソッドが拒否されることを示すメソッドは複数考えられることに留意されたい。別の実施形態において、許可オブジェクト３００内のメソッドは、制御されたオブジェクト３２０内の対応するメソッドを呼び出すためにコード化される。さもなければ、メソッドが認められていないと示すようにコード化される。
【００６１】
制御されたオブジェクト３２０内に特定されるメソッドは、許可オブジェクト３００内のメソッドポインタを介してアクセス可能である。これらのメソッドポインタは、メソッド−０ポインタ３０６、メソッド−１ポインタ３０８およびメソッド−Ｎポインタ３１０を含む。クライアントコードモジュール１２２は、これらのメソッドポインタ３０６、３０８および３１０を介して、メソッド３２４、３２６および３２８にアクセスせねばならない。メソッド０−ポインタ３０６は、制御されたオブジェクト３２０内のメソッド−０  ３２４を指示する。メソッド−１ポインタ３０８は、制御されたオブジェクト３２０内のメソッド−１  ３２６を指示する。メソッド−Ｎポインタ３１０は、制御されたオブジェクト３２０内のメソッド−Ｎ  ３２８を指示する。これらのメソッドポインタは保護されたメモリ内に存在するので、クライアントコードモジュール１２２はシステムを介してメソッドにアクセスする必要がある。
【００６２】
例示した実施形態において、許可オブジェクト３００は、許可生成メソッド３１２を追加的に含む。許可生成メソッド３１２により、許可オブジェクト３００の保有者は許可オブジェクト３００のコピーを生成し、コピーを他のアプリケーションに転送することができる。このことにより、クライアントコードモジュール１２２は、制御されたオブジェクト３２０から別のモジュールへサービスを要求するサブタスクを委託することができる。許可生成メソッド３１２によって許可オブジェクト３００のより権利範囲の狭いコピーを生成することができることに留意されたい。言い換えると、許可オブジェクト３００のコピーは、制御されたオブジェクト３２０からの、最大でも同数のメソッドにアクセスすることができる程度であり、どうあっても、アクセスできるメソッドの数はより少ない。
【００６３】
許可オブジェクト３００は許可失効情報を追加的に含む。許可失効情報は、許可について複数のタイプの寿命制限を特定する。ある実施形態において、許可が有効である所定の期間を特定することによって、このことが達成される。別の実施形態において、許可がまだ有効であることを確認するために、システムがまず中央データベース内をチェックするように要求を行うことによって、このことが達成される。
【００６４】
許可オブジェクト３００はまた、許可ログ３１６を含む。許可ログ３１６は許可３００へのアクセス要求のログを記録する。このログは、許可オブジェクト３００が使用されている様子を監視するセキュリティ目的のために使用され得る。あるいは、アクセス要求のログは、制御されたオブジェクト３２０内に維持され得る。
【００６５】
制御されたオブジェクト３２０はデータ３２２を含む。データ３２２は、制御されたオブジェクト３２０と関連するサービスを実行するために、メソッド３２４、３２６および３２８によって使用される。例えば、データ３２２はファイルシステムデータを含み、メソッド３２４、３２６および３２８はファイルシステム動作を特定し得る。
【００６６】
許可生成
図４は、本発明のある実施形態に従って許可オブジェクトを生成するプロセスを示すフローチャートである。このフローチャートは、サーバゲート２０２によって実行される動作をより詳細に説明する。サーバゲート２０２については、上記図２Ａを参照して既に説明した。システムは状態４００で開始し、状態４０２に進む。状態４０２において、クライアントコードモジュール１２２はサーバゲート２０２上で呼び出しを実行し、新たな許可を生成する。上述のように、この呼び出しはパラメータとしての役割のためのチケットを含む。次に、システムは状態４０４に進む。状態４０４において、サーバゲート２０２はチケットを確証し、チケットが有効である場合、サーバゲート２０２は新たな許可オブジェクト３００を生成する。このプロセスは、制御されたオブジェクト３２０を許可オブジェクト３００と関連するように位置決めすることを含み、必要な場合には、サーバコードモジュール１１２内で新たな制御されたオブジェクト３２０を生成することを含み得る。次に、システムは状態４０８に進む。状態４０８において、制御されたオブジェクトポインタ３０２（図３）は制御されたオブジェクト３２０をポイントするように割り当てられる。次に、システムは状態４１０に進む。状態４１０において、システムは、許可の保有者がどのメソッドを呼び出すことができるかを特定するようにアクセス制御フラッグ（ブールベクトル３０４内のエントリ）を設定する。次に、システムは状態４１２に進む。状態４１２において、許可オブジェクト３００はクライアントコードモジュール１２２に戻される。次に、システムは状態４１４に進むが、これが終了の状態である。
【００６７】
許可オブジェクトの使用
図５は、本発明の実施形態に従って、許可オブジェクトを用いてサービスにアクセスするプロセスを示すフローチャートである。システムは状態５００で開始し、状態５０２に進む。状態５０２において、クライアントコードモジュール１２２（図１Ｂ）は許可オブジェクト３００（図３）上のメソッドを呼び出す。次に、システムは状態５０４に進む。状態５０４において、システムはメソッドに対応するアクセス制御フラッグをチェックする。これには、呼び出されたメソッドに対応するブールベクトル３０４内のエントリを調べることが含まれる。このアクセス制御フラッグが、メソッドが許可されていると示す場合、システムは状態５０６に進む。拒否される場合には、システムは状態５１０に進む。
【００６８】
状態５０６においてアクセスが許可され、システムは許可オブジェクト３００上の適切なメソッドを呼び出し、これにより、対応するメソッドが適切なパラメータで制御されたオブジェクト３２０上に呼び出される。次に、システムは状態５０８に進む。状態５０８において、システムは呼び出しが完了するのを待ち、それに続いて、結果をクライアントコードモジュール１２２に戻す。次に、システムは状態５１２に進むが、これが終了の状態である。
【００６９】
状態５１０において、メソッドは拒否される。この場合、システムはクライアントコードモジュール１２２に対して、メソッドが拒否された旨を示す。このことは、複数の方法で為し得る。本発明のある実施形態において、システムは、メソッド呼び出しを実行するプロセッサの実行ストリーム内に例外を発生させる。別の実施形態において、システムは、許可オブジェクト３００を使用する試みが失敗したことを示すようにグローバル変数を設定する。更に別の実施形態において、許可オブジェクト３００の呼び出しは、ＮＵＬＬ値に戻る。許可オブジェクト３００上での連続的な呼び出しの間、上記プロセスが繰り返される。
【００７０】
これまでに述べた本発明の実施形態の説明は、例示および説明のみを目的として提示したものである。上記説明は、網羅することを意図したものでなく、また、開示した形態に本発明を限定するものでもない。従って、複数の変更および改変が当業者には明らかである。更に、上記開示は本発明を限定するものではない。本発明の範囲は添付した請求の範囲によってのみ限定される。
【００７１】
本発明のある実施形態は、保護されたメモリシステム内のサービスへのアクセスを制御するための方法および装置を提供する。本発明の方法は許可を利用する。許可は、許可のユーザから保護されたメモリ空間内に存在するアクセス制御メカニズムを含む。本発明の方法は、許可を介してサービスに対する要求を受け取ることを含む。許可は、オブジェクト指向プログラミングシステム内に規定されたオブジェクトを含む。要求に応答して、本発明の方法は、許可内のアクセス制御メカニズムを作動する。アクセス制御メカニズムが許可上のメソッドを呼び出すことによってトリガされるように、このアクセス制御メカニズムはサービスへのアクセスを制御し、且つ、許可のユーザから保護されたメモリ空間内に存在する。アクセスが許可された場合、メソッドは、制御されたオブジェクト上への呼び出しを実行することによってサービスにアクセスする。この制御されたオブジェクトはサービスを実行するメソッドを含み、含まない場合には、許可のユーザから保護される。上記実施形態の別の改変例は、許可発行権限(permit issuing authority)において、サービスへのアクセスを要求するエンティティ（人物、コンピュータプログラムまたはコンピュータプロセス等）から許可についての要求を受け取ることを含む。要求が有効権限情報(valid authorization information)を含む場合、許可がエンティティに対して発行される。上記実施形態の更なる改変例は、許可のコピーを生成すること、およびサービスへのアクセスを要求するエンティティにコピーを転送することを含む。
【００７２】
【発明の効果】
本発明は別のアプリケーションによって提供されるサービスへのアクセスを制御する方法を提供する。この方法はハードウェアアクセス制御メカニズムに依存しないので、広い範囲のコンピュータプラットフォームに亘る移植可能アプリケーションによって使用することができる。
【図面の簡単な説明】
【図１Ａ】本発明の実施形態による、コンピュータシステム内で一緒に機能するコードモジュールを示す図である。
【図１Ｂ】本発明の実施形態による、ネットワークを介して一緒に結合された複数のコンピュータノードを示す図である。
【図２Ａ】本発明の実施形態による、サービスにアクセスするプロセスを示す図である。
【図２Ｂ】図２Ａの説明を補足する図である。
【図３】本発明の実施形態による、許可オブジェクトおよび制御されたオブジェクト３２０の構造を示す図である。
【図４】本発明の実施形態による、許可オブジェクトを生成するプロセスを示すフローチャートである。
【図５】本発明の実施形態による、許可オブジェクトを用いてサービスにアクセスするプロセスを示すフローチャートである。
【符号の説明】
１１０、１２０  サーバ
１１２  サーバコードモジュール
１２２  クライアントコードモジュール
１３０  ネットワーク
１４０  サードパーティシステム
２０２  サーバゲート
２０４  システム
２２０  クライアントコード
３００  許可オブジェクト
３０２  制御されたオブジェクトポインタ
３０４  ブールベクトル(boolean vector)
３０６  メソッド−０ポインタ
３０８  メソッド−１ポインタ
３１０  メソッド−Ｎポインタ
３１２  許可生成メソッド
３１４  許可失効情報
３１６  許可ログ
３２０  制御されたオブジェクト
３２２  データ
３２４  メソッド−０
３２６  メソッド−１
３２８  メソッド−Ｎ
【図１Ａ】
0004390911.tif 000002
【図１Ｂ】
0004390911.tif 000003
【図２Ａ】
0004390911.tif 000004
【図２Ｂ】
0004390911.tif 000005
【図３】
0004390911.tif 000006
【図４】
0004390911.tif 000007
【図５】
0004390911.tif 000008