(57)【要約】要求元の位置に基づくファイル・システム・エンティティのアクセス制御。ファイル・システム・エンティティおよび位置データーが原子的に一緒に動かされるまたはコピーされるように、位置データーをファイル・システム・エンティティ（例えば、ファイル、ディレクトリー、パーティション、ディスク）と関連付ける。ファイル・システム・エンティティにおいて動作を実行する要求を受けると、システムは要求元の位置を識別し、ファイル・システム・エンティティと関連付けられた位置データーにアクセスする。次いで、位置データーおよび要求元の位置を使用して、要求されたファイル動作を実行するか否か判定する。【選択図】図５
2017538998.tif 000002
【特許請求の範囲】
【請求項１】
要求元の位置に基づいてデーターへのアクセスを制御するコンピューター実装方法であって、前記コンピューター実装方法が、該コンピューター実装方法のためのコンピューター実行可能命令を実行する１つ以上のプロセッサーによって実行され、前記コンピューター実装方法が、
位置データーおよびファイル・システム・エンティティが原子的に一緒に動かされるまたはコピーされるように、前記位置データーを前記ファイル・システム・エンティティと関連付け、
前記ファイル・システム・エンティティにおいて動作を実行する要求を受け、
前記要求の要求元に関連する位置ステータスを識別し、
前記ファイル・システム・エンティティの前記位置データーと前記要求元の前記位置ステータスとを使用して、前記要求された動作が前記ファイル・システム・エンティティにおいて許可されているか否か判定する、
ことを含む、コンピューター実装方法。
【請求項２】
請求項１記載のコンピューター実装方法において、位置データーを前記ファイル・システム・エンティティと関連付けることが、前記位置データーを前記ファイル・システム・エンティティの代替のデーター・ストリームに含ませることを含む、コンピューター実装方法。
【請求項３】
請求項１記載のコンピューター実装方法において、位置データーを前記ファイル・システム・エンティティと関連付けることが、前記位置データーを前記ファイル・システム・エンティティの１つ以上のプロパティとして含ませることを含む、コンピューター実装方法。
【請求項４】
請求項１記載のコンピューター実装方法において、前記ファイル・システム・エンティティの位置データーと前記要求元の位置ステータスとを使用して、前記要求された動作が前記ファイル・システム・エンティティにおいて許可されているか否か判定することが、
前記要求元の位置ステータスが未知であると決定し、
前記要求元の位置ステータスが未知であると決定したことに応答して、前記要求された動作を実行してもよいか否か定めるデフォルト規則にアクセスし、
前記デフォルト規則に基づいて、前記要求された動作を実行してもよいか否か判定する、
ことを含む、コンピューター実装方法。
【請求項５】
請求項１記載のコンピューター実装方法において、前記要求元の前記位置ステータスが前記要求元の位置であり、前記ファイル・システム・エンティティの位置データーと前記要求元の位置ステータスとを使用して、前記要求された動作が前記ファイル・システム・エンティティにおいて許可されているか否か判定することが、更に、
許可された１つ以上の動作タイプに各々関連付けられた、１組の１つ以上の許可地域にアクセスし、
前記要求元の位置が、前記要求された動作が明示的に許可されている許可地域内にあると決定し、
前記要求された動作が、対応する前記１組の１つ以上の許可地域のいずれかに前記要求元の位置が入る動作タイプであると決定した場合、前記要求された動作を承認する、
ことを含む、コンピューター実装方法。
【請求項６】
請求項１記載のコンピューター実装方法において、前記要求元の前記位置ステータスが前記要求元の位置であり、前記ファイル・システム・エンティティの位置データーと前記要求元の位置ステータスとを使用して、前記要求された動作が前記ファイル・システム・エンティティにおいて許可されているか否か判定することが、更に、
禁止された１つ以上の動作タイプに各々関連付けられた、１組の１つ以上の禁止地域にアクセスし、
前記要求元の位置が、前記要求された動作が明示的に禁止されている禁止地域内にあると決定し、
前記要求された動作が、対応する前記１組の１つ以上の禁止地域のいずれかに前記要求元の位置が入る動作タイプであると決定した場合、前記要求された動作を拒否する、
ことを含む、コンピューター実装方法。
【請求項７】
請求項１記載のコンピューター実装方法において、前記要求された動作が許可されていないと決定した場合、前記コンピューター実装方法が、更に、前記要求された動作を防止することを含む、コンピューター実装方法。
【請求項８】
請求項１記載のコンピューター実装方法において、前記要求された動作が許可されていると決定した場合、前記コンピューター実装方法が、更に、前記要求された動作を実行させることを含む、コンピューター実装方法。
【請求項９】
請求項１記載のコンピューター実装方法において、前記ファイル・システム・エンティティがファイルである、コンピューター実装方法。
【請求項１０】
計算システムであって、
１つ以上のプロセッサーと、
実行可能命令を含む１つ以上のコンピューター読み取り可能記憶媒体と、
を含み、
前記実行可能命令が前記１つ以上のプロセッサーによって実行されると、前記計算システムのオペレーティング・システムによって管理された複数のファイル・システム・エンティティを含むアーキテクチャを前記計算システムに構成させ、前記複数のファイルの内少なくとも特定のファイル・システム・エンティティが、関連位置データーを有し、前記位置データーおよび前記特定のファイル・システム・エンティティが原子的に一緒に動かされるまたはコピーされるように、前記位置データーが前記特定のファイル・システム・エンティティに関連付けられ、
前記１つ以上のプロセッサーによって実行される前記コンピューター実行可能命令が、更に、前記特定のファイル・システム位置において動作を実行する要求を受けたことに応答して、
前記要求の要求元に関連する位置を識別し、
前記位置データーを使用して、前記要求されたファイル動作が前記特定のファイル・システム・エンティティにおいて許可されているか否か判定する、
ように、前記計算システムの構成されたアーキテクチャを制御する、計算システム。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  計算システムおよび関連するネットワークは、人が仕事する方法、遊ぶ方法、そして伝達する方法に革命をもたらした。我々の生活の殆どあらゆる面が何らかの形で計算システムの影響を受けている。ネットワークの普及は、計算システムがデーターを共有し通信することを可能にし、情報アクセスを大幅に増やした。この理由のため、現世代を「情報世代」と呼ぶことが多い。
【０００２】
[0002]  しかしながら、場合によっては、データーへのアクセスを制限することが望ましい。例えば、データーが一定の個人にだけアクセス可能になるように、制限されることが多い。したがって、これらの個人は、データーにアクセスする前に、認証しなければならない。他の状況では、位置に基づいてデーターが制限されることもある。例えば、あるデーターが一定の地理的地域(geographical territory)内に制限されることがある。データーの特定の地理的領域への制限は、法的、規制、税金、および安全性の理由というような種々の理由のために行われる場合もある。
【０００３】
[0003]  本願において特許請求する主題は、あらゆる欠点を解決する実施形態にも、以上で説明したような環境のみで動作する実施形態にも限定されない。逆に、この背景は、本明細書において説明する実施形態を実施することができる例証的な１つの技術分野を例示するために設けられたに過ぎない。
【発明の概要】
【０００４】
[0004]  本明細書において説明する少なくともいくつかの実施形態は、要求元の位置に基づくデーター・アクセスの制御に関する。ファイル・システム・エンティティおよび位置データーが原子的に一緒に動かされるまたはコピーされるように、位置データーがファイル・システム・エンティティ（例えば、ファイル、ディレクトリー、パーティション、またはディスク）と関連付けられる。ファイル・システム・エンティティにおいて動作を実行する要求を受けると、システムは要求元の位置を識別し、ファイル・システム・エンティティに関連する位置データーにアクセスする。次いで、位置データーおよび要求元位置は、要求されたファイル動作を実行すべきか否か決定するために使用される。
【０００５】
[0005]  この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するときに補助として使用されることを意図するのでもない。
【図面の簡単な説明】
【０００６】
[0006]  以上で列挙した利点および特徴ならびにその他の利点および特徴を得ることができる方法を説明するために、添付図面を参照して、種々の実施形態について更に特定的に説明する。これらの図面は実施形態の見本を図示するに過ぎず、したがって本発明の範囲を限定するように解釈してはならないことを理解した上で、添付図面の使用によって、更に具体的および詳細に、実施形態について説明する。図面において、
【図１】図１は、本明細書において説明する実施形態を採用することができる計算システムを抽象的に示す。
【図２】図２は、要求元システムが、ソース・システムのファイル・システム内部にあるファイル・システム・エンティティにおいて動作を実行することを要求するシステムを示す。
【図３】図３は、ファイル・システム・エンティティがコピーされるまたは動かされる場合、対応する位置データーもそれぞれ原子的にコピーされるまたは動かされるように、ファイル・システム・エンティティおよび対応する位置データーが関連付けられるファイル・システム・エンティティ環境を示す。
【図４】図４は、図３の位置データーの例を表す位置データーを示す。
【図５】図５は、要求元の位置に基づいてデーターへのアクセスを制御する方法のフローチャートを示す。
【図６】図６は、要求された動作を許可するか否か決定するために位置データーを使用する方法のフローチャートを示す。
【発明を実施するための形態】
【０００７】
[0013]  本明細書において説明する少なくとも一部の実施形態は、要求元の位置に基づくデーター・アクセスの制御に関する。ファイル・システム・エンティティおよび位置データーが原子的に一緒に動かされるまたはコピーされるように、位置データーがファイル・システム・エンティティ（例えば、ファイル、ディレクトリー、パーティション、またはディスク）と関連付けられる。ファイル・システム・エンティティにおいて動作を実行する要求を受けると、システムは要求元の位置を識別し、ファイル・システム・エンティティに関連する位置データーにアクセスする。次いで、位置データーおよび要求元位置は、要求されたファイル動作を実行すべきか否か決定するために使用される。計算システムの序論的説明を、図１に関して行う。次いで、アクセス制御の構造および使用について、以後の図に関して説明する。
【０００８】
[0014]  現在、計算システムは増々多種多様な形態を取りつつある。計算システムは、例えば、ハンドヘルド・デバイス、アプライアンス、ラップトップ・コンピューター、デスクトップ・コンピューター、メインフレーム、分散型計算システム、データーセンター、またはウェアラブル（例えば、めがね）のような、従来では計算システムとは見なされなかったデバイスでもよい。この説明および特許請求の範囲において、「計算システム」という用語は、少なくとも１つの物理的および有形プロセッサーと、プロセッサーによって実行することができるコンピューター実行可能命令を有することができる物理的および有形メモリーとを含む任意のデバイスまたはシステム（またはその組み合わせ）を含むように、広く定められる。メモリーは、任意の形態を取ることができ、更に計算システムの性質および形態に依存する場合もある。計算システムは、ネットワーク環境を介して分散されてもよく、複数の要素計算システムを含んでもよい。
【０００９】
[0015]  図１に示すように、その最も基本的な構成では、計算システム１００は、通例、少なくとも１つのハードウェア処理ユニット１０２とメモリー１０４とを含む。メモリー１０４は、物理システム・メモリーであればよく、揮発性、不揮発性、またはこれら２つの何らかの組み合わせでもよい。また、「メモリー」という用語は、本明細書では、物理記憶媒体のような、不揮発性大容量ストレージを指すために使用されることもある。計算システムが分散型である場合、処理、メモリー、および／または格納能力も同様に分散することができる。本明細書において使用する場合、「実行可能モジュール」または「実行可能コンポーネント」という用語は、計算システムにおいて実行することができるソフトウェア・オブジェクト、ルーティン、またはメソッドを指すことができる。本明細書において説明する異なるコンポーネント、モジュール、エンジン、およびサービスは、計算システムにおいて実行するオブジェクトまたはプロセスとして実装することができる（例えば、別個のスレッドとして）。
【００１０】
[0016]  以下に続く説明では、１つ以上の計算システムによって実行されるアクションを参照して、実施形態について説明する。このようなアクションがソフトウェアで実現される場合、１つ以上のプロセッサー（アクションを実行する関連計算システムのプロセッサー）は、コンピューター実行可能命令を実行したことに応答して、計算システムの動作を指令する。例えば、このようなコンピューター実行可能命令は、コンピューター・プログラム製品を形成する１つ以上のコンピューター読み取り可能媒体において具体化されてもよい。このような動作の一例は、データーの操作を伴う。コンピューター実行可能命令（および操作されたデーター）は、計算システム１００のメモリー１０４に格納することができる。また、計算システム１００は通信チャネル１０８も内蔵することができ、通信チャネル１０８は計算システム１００が、例えば、ネットワーク１１０を介して他の計算システムと通信することを可能にする。また、計算システム１００はディスプレイも含み、ディスプレイは、視覚的表現をユーザーに表示するために使用することができる。
【００１１】
[0017]  本明細書において説明する実施形態は、例えば、以下で更に詳しく説明するような１つ以上のプロセッサーおよびシステム・メモリーのような、コンピューター・ハードウェアを含む汎用または特殊目的計算システムを含むまたは利用することができる。また、本明細書において説明する実施形態は、コンピューター実行可能命令および／またはデーター構造を搬送あるいは格納するために物理および他のコンピューター読み取り可能媒体も含む。このようなコンピューター読み取り可能媒体は、汎用または特殊目的計算システムによってアクセス可能な、任意の入手可能な媒体とすることができる。コンピューター実行可能命令を格納するコンピューター読み取り可能媒体は、物理記憶媒体である。コンピューター実行可能命令を搬送するコンピューター読み取り可能媒体は、送信媒体である。つまり、一例として、そして限定ではなく、本発明の実施形態は、少なくとも２つの全く異なる種類のコンピューター読み取り可能媒体、即ち、記憶媒体および送信媒体を含むことができる。
【００１２】
[0018]  コンピューター読み取り可能記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク・ストレージ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望のプログラム・コード手段をコンピューター実行可能命令の形態で、またはデーター構造を格納するために使用することができ、更に汎用または特殊目的コンピューター・システムによってアクセスすることができる任意の他の物理および有形記憶媒体が含まれる。
【００１３】
[0019]  「ネットワーク」とは、コンピューター・システムおよび／またはモジュールおよび／または他の電子デバイス間における電子データーの移送を可能にする１つ以上のデーター・リンクと定められる。ネットワークまたは他の通信接続（ハードワイヤ、ワイヤレス、またはハードワイヤおよびワイヤレスの組み合わせのいずれか）を介して情報が計算システムに転送または提供されるとき、計算システムは、この接続を正しく送信媒体と見なす。送信媒体は、所望のプログラム・コード手段をコンピューター実行可能命令の形態で、またはデーター構造を搬送するために使用することができ、汎用または特殊目的コンピューターによってアクセスすることができるネットワークおよび／またはデーター・リンクを含むことができる。また、以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれる。
【００１４】
[0020]  更に、種々の計算システム・コンポーネントに達すると、コンピューター実行可能命令の形態であるプログラム・コード手段またはデーター構造を自動的に送信媒体から、記憶媒体に（またはその逆に）転送することができる。例えば、ネットワークまたはデーター・リンクを介して受信されたコンピューター実行可能命令またはデーター構造を、ネットワーク・インターフェース・モジュール（例えば、「ＮＩＣ」）内部のＲＡＭにバッファし、最終的に計算システムにおける計算システムＲＡＭおよび／またはそれよりも揮発性が低い記憶媒体に転送することができる。つまり、送信媒体も利用する計算システム・コンポーネントに（または主にこれを利用する計算システム・コンポーネントであっても）、記憶媒体を含めることができる。
【００１５】
[0021]  コンピューター実行可能命令は、例えば、命令およびデーターを含み、プロセッサーにおいて実行されると、汎用計算システム、特殊目的計算システム、または特殊目的処理デバイスに、一定の機能または機能の集合を実行させる。コンピューター実行可能命令は、例えば、バイナリー、あるいはアセンブリー言語のような中間フォーマット命令、またはソース・コードのような、プロセッサーによる直接実行の前に何らかの変換（コンパイルのような）を受ける命令であってもよい。本主題は、構造的特徴および／または方法論的アクションに特定の文言で説明されてきたが、添付する特許請求の範囲において定められる主題は、以上で説明した特徴やアクションに必ずしも限定されないことは理解されよう。逆に、以上で説明した特徴およびアクションは、特許請求の範囲を実現する形態例として開示したまでである。
【００１６】
[0022]  尚、本発明は、多くのタイプの計算システム構成を有するネットワーク計算環境においても実現できることは当業者には認められよう。計算システム構成には、パーソナル・コンピューター、デスクトップ・コンピューター、ラップトップ・コンピューター、メッセージ・プロセッサー、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー・ベースまたはプログラマブル消費者用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター、移動体電話機、ＰＤＡ、ページャ、ルーター、スイッチ、データーセンター、ウェアラブル（めがねのような）等が含まれる。また、 本発明は分散型システム環境においても実施することができ、ネットワークを介して（ハードワイヤ接続データー・リンク、ワイヤレス・データー・リンク、またはハードワイヤ接続およびワイヤレス・データー・リンクのいずれかによって）リンクされたローカルおよびリモートの計算システムの双方がタスクを実行する。分散型システム環境では、プログラム・モジュールはローカルおよびリモート双方のメモリー記憶デバイス内に配置されてもよい。
【００１７】
[0023]  図２は、要求元システム２０１とソース・システム２０２とを含むシステム２００を示す。具体的には、要求元システム２０１が、ソース・システム２０２のファイル・システム・エンティティにおいて動作を実行する要求２３１をソース・システム２０２に提出する。このような動作の例には、例えば、読み取り動作、更新動作、コピー動作、および削除動作を含むことができる。ファイル・システム・エンティティは、例えば、ディスク、パーティション、ディレクトリー、または最も基本的なファイル・システム・エンティティ、即ち、ファイルであってもよい。
【００１８】
[0024]  要求元システム２０１は計算システムであってもよく、この場合、要求元システム２０１は、図１の計算システム１００について先に説明したような構造にすればよい。計算システムである場合、要求元システム２０１はオペレーティング・システム２１０を動作させる。ソース・システム２０２は、複数のファイル・システム・エンティティ２２２を構成するフィアル・システム２２１を維持するオペレーティング・システム２２０を含む。例えば、ファイル・システム２２１は、複数のファイル・システム・エンティティ２２２を含むように示されており、ファイル・システム・エンティティ２２２Ａ、ファイル・システム・エンティティ２２２Ｂ、ファイル・システム・エンティティ２２２Ｃを含み、楕円２２２Ｄによって表されているように、多くの他のファイル・システム・エンティティも含むことが可能である(amongst potentially)。
【００１９】
[0025]  図３は、ファイル・システム・エンティティ環境３００を示す。ファイル・システム・エンティティ環境３００は、ファイル・システム・エンティティ３０１と位置データー３０２とを含む。更に、位置データー３０２は、破線のボックス３０３によって表されるように、ファイル・システム・エンティティと関連付けられている。この関連付け３０３は、ファイル・システム・エンティティ３０１および位置データー３０２が原子的に一緒に動かされるまたはコピーされるようになっている。一例として、ファイル・システム・エンティティ３０１は、図２のファイル・システム・エンティティ２２２の内任意のものであってもよい。同様のファイル・システム・エンティティ環境３００は、複数のファイル・システム・エンティティの各々に設けられて、ファイル・システム・エンティティが関連位置データーを有し、ファイル・システム・エンティティが動かされるまたはコピーされる場合、位置データーが原子的にファイル・システム・エンティティと共に動かされるまたはコピーされるようにすることができる。
【００２０】
[0026]  関連付け３０３は、ファイル・システムに依存して異なってもよい。ファイル・システム・エンティティがファイルである一例では、関連付け３０３は、位置データーをファイルの代替データー・ストリーム(alternate data stream)内に含めることによって行われる。このようなことは、例えば、新技術ファイル・システム（ＮＴＦＳ）ベースのファイル・システムにおいて、該当することがある。他の例として、関連付け３０３は、位置データーをファイル・システム・エンティティの１つ以上のプロパティとして含めることによって行うこともできる。例えば、ＸＦＳ、ＺＦＳ、およびＲｅｉｓｅｒ４のようなｉノード・ベースのファイル・システムでは、この位置データーは、拡張ファイル・プロパティを使用するファイルと対照して(against)格納することができる。
【００２１】
[0027]  所与のファイル・システム・エンティティのエンティティのコンテンツ(given file system entity entry's content)に拡張を与えないファイル・システム（ＦＡＴ１６、ＦＡＴ３２、およびＥｘＦＡＴのような）では、フォールバック手法(fallback approach)を使用することができ、位置データーは同じディレクトリー内の別のファイルにファイル・システム・エンティティとして書き込まれる（例えば、しかるべき拡張を使用して）。これは他の手法程ロバストではないが、旧来のシステムのためにあるレベルの相互動作可能性を提供する。とは言え、位置ベースのデーター・アクセスの施行(data access enforcement)は、消費する側のオペレーティング・システムの意のままとなる。
【００２２】
[0028]  本明細書において説明する原理にとって、関連付け３０３がファイル・システム・エンティティ３０１と位置データー３０２との間においてどのようにして作られるかは重要ではない。関連付けがどのように作られるかには関係なく、関連付けは基礎のファイル・システムまたは環境と協調し(compatible) 、ファイル・システム・エンティティ３０１が動かされるまたはコピーされる場合、位置データー３０２もそうされるように関連付けが行われることを言えば十分である。
【００２３】
[0029]  図４は、図３の位置データー３０２の例を表す位置データー４００を示す。位置データー４００は、種々の実施形態において含まれるとよいものの例である種々のフィールドを含む。本明細書において説明する位置データーが、位置データー４００について説明するフィールドの全て、または一部でも含む必要性はない。
【００２４】
[0030]  位置データー４００は、恐らく、メタデーターを、時間制約アクセスに関連するとして識別することを可能にするシグネチャ(signature)４０１を含む。バージョン４０２フィールドは、本明細書において説明する原理の進展を可能にするように、バージョン番号を識別する(identify)ことができる。位置起源フィールド(location origin field)４０３は、ファイル・システム・エンティティが作られた(originated)領域を識別することができる。これは、要求元の位置が、ファイル・システム・エンティティを作ったのと同じ領域であるか否かにアクセスが依存する可能性がある状況において有用であろう。
【００２５】
[0031]  また、位置データー４００は、デフォルト・アクション・フィールド４１０も含む。デフォルト・アクション・フィールド４１０は、要求元の位置を判定できないときに、あるいは、要求された動作が許可地域リスト４１１において明示的に許可されていない、または禁止地域リスト４１２において明示的に禁止されている場合に、ファイル・システム・エンティティにおいてどんなアクションを行えばよいか定める。一例として、デフォルト・アクション・フィールド４１０は、単に、０から１５までの値を有するのでもよい（４ビットを構成する。「ニブル」とも呼ばれる）。４ビットの全てが０である場合、許可されるデフォルト・アクションはない。最下位ビットがセットされている場合（例えば、ニブルが１、３、５、７、９、１１、１３、または１５の値を有する）、コピー動作がデフォルト動作として許可される。下から２番目のビットがセットされている場合（例えば、ニブルが２、３、６、７、１０、１１、１４、または１５の値を有する）、読み取り動作がデフォルト動作として許可される。上から２番目のビットがセットされている場合（例えば、ニブルが４、５、６、７、１２、１３、１４、または１５の値を有する）、更新動作がデフォルト動作として許可される。最上位ビットがセットされている場合（例えば、ニブルが８から１５までの値を有する）、削除動作がデフォルト動作として許可される。これを以下では「ニブル方式」と呼ぶ。
【００２６】
[0032]  また、位置データー４００は許可地域リスト４１１も含み、各許可地域は、以上で説明したニブル方式に従う対応ニブルを有する。つまり、その地域内に位置する要求元に対して、少なくとも１つの許可動作を有する地域はいずれも、許可地域リスト４１１内にある。地域に対する許可動作は、許可地域に対応するニブルに対するニブル方式にしたがってセットされたビットによって定められる。
【００２７】
[0033]  また、位置データー４００は、禁止地域リスト４１２も含み、各禁止地域は、以上で説明したニブル方式に従う対応ニブルを有する。つまり、その地域内に位置する要求元に対して、少なくとも１つの禁止動作を有する地域はいずれも、禁止地域リスト４１２内にある。地域に対する禁止動作は、禁止地域に対応するニブルに対するニブル方式にしたがってセットされたビットによって定められる。
【００２８】
[0034]  図５は、要求元の位置に基づいてデーターへのアクセスを制御する方法５００のフローチャートを示す。方法５００は、ソース・システム２０２のファイル・システム２２１内にあるファイル・システム・エンティティ２２２の１つ以上へのアクセスを制御するために、例えば、ソース・システム２０２によって実行することができる。したがって、方法５００について、一例として図２を頻繁に参照しながら説明するとよい。
【００２９】
[0035]  方法５００は、ソース・システムが、ファイル・システム・エンティティにおいて動作を実行する要求を受けたときに開始される（アクション５０１）。例えば、図２において、ソース・システム２０２が要求元システム２０１から要求２３１を受ける。例えば、要求２３１は、ファイル・システム・エンティティ２２２Ａにおいて読み取り動作を実行するためであると仮定する。
【００３０】
[0036]  次いで、ソース・システムは、要求を出した要求元に関連する位置ステータスを識別する（アクション５０２）。例えば、図２において、ソース・システム２０２は要求元エンティティ２０１の位置ステータスを判定する。要求元の位置を判定できない場合、位置ステータスは「未知」にすることができる。また、位置ステータスは、要求元が現在位置する特定の位置または地域であってもよい。
【００３１】
[0037]  次いで、ソース・システムはファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定する。例えば、図２参照して、ファイル・システム・エンティティ２２２Ａがファイル・システム・エンティティ環境３００を含み、ファイル・システム・エンティティ２２２Ａ（またはファイル・システム・エンティティ３０１）が対応する位置データー３０２を有すると仮定する。したがって、ソース・システムは位置データー３０２にアクセスする（例えば、デシリアライズする）ことができる。
【００３２】
[0038]  例えば、ソース・システムは要求元の位置ステータス（アクション５０２において識別された）を、要求の目標であるファイル・システム・エンティティの位置データーと比較することができる（アクション５０３）。次いで、ソース・システムは、この比較の結果に基づいて、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定することができる（判断ブロック５０４）。許可されている場合（判断ブロック５０４における「承認」）、ソース・システムは、要求された動作を実行させることができる（アクション５０５）。許可されていない場合（判断ブロック５０４における「拒否」）、ソース・システムは要求された動作を防止する（アクション５０６）。
【００３３】
[0039]  要求された動作が実行される場合、ソース・システムは、要求元システム２０１のオペレーティング・システム２１０との互換性を有するように、ファイル・システム・エンティティをトランスコードすべきか否か判定する場合もある（判断ブロック５０７）。ファイル・システム動作が削除、読み取り、または更新動作である場合、恐らくトランスコードは不要であり（判断ブロック５０７において「Ｎｏ」）、本方法は終了する（アクション５０９）。
【００３４】
[0040]  しかしながら、コピー動作の場合、ファイル・システム・エンティティ環境３００がオペレーティング・システム２１０および２２０間で同一か否かに依存して、ファイル・システム・エンティティのコピーされたバージョンをトランスコードする場合もある。これらが同一でない場合、位置データー３０２およびファイル・システム・エンティティ３０１が、要求元エンティティのオペレーティング・システム２１０、または要求元がファイル・システム・エンティティを使用することになる最終的なオペレーティング・システムに適したやり方で関連付けられるように、トランスコードを実行する（３０３）。例えば、ファイル・システム・エンティティのコピーは、代替データー・ストリーム（オペレーティング・システム２１０によって認識されない場合）からファイル・プロパティにコピーされた位置データーを有することもある。加えて、シリアル化フォーマットが変更されることもある。ファイル・システム・エンティティが、要求元オペレーティング・システム２１０によって認識されないソース・オペレーティング・システム２２０（または要求元がファイル・システム・エンティティを使用することを意図するオペレーティング・システム）においてあるやり方でシリアル化される場合、形式または再シリアル化のトランスコードを実行することができる。
【００３５】
[0041]  図６は、位置データーを使用して、要求された動作が許可されているか否か判定する方法６００のフローチャートを示す。方法６００は、図５のアクション５０３および判断ブロック５０４の例を表す。方法６００は、判断をどのように行えばよいかの一例に過ぎない。本明細書において説明する原理は、この例に限定されるのではない。
【００３６】
[0042]  最初に、要求元の位置ステータスが未知か否か判定する（判断ブロック６０１）。要求元の位置ステータスが未知である場合（判断ブロック６０１において「Ｙｅｓ」）、要求された動作を行ってもよいか否か定めるデフォルト規則にアクセスすることができる（アクション６１１）。例えば、このようなデフォルト規則は、図４における位置データーのデフォルト・アクション・フィールド４１０に対応してもよい。次いで、デフォルト規則を参照して、このデフォルト規則に基づいて、要求された動作を実行してもよいか否か判定する（判断ブロック６１２）。実行することができる場合（判断ブロック６１２において「Ｙｅｓ」）、動作を承認し（アクション６３１）、それ以外の場合（判断ブロックにおいて「Ｎｏ」）、動作を拒否する（アクション６３２）。
【００３７】
[0043]  一方、判断ブロック６０１における結果が、位置ステータスが要求元の位置であるという判定である場合（即ち、要求元の位置ステータスが未知ではない。判断ブロック６０１において「Ｎｏ」）、許可地域（または「許可位置」）のリストにアクセスする（アクション６２１）。例えば、ソース・システムは、ファイル・システム・エンティティに対応する位置データー４００の許可地域フィールド４１１にアクセスするのでもよい。次いで、ソース・システムは、要求された動作が、要求元の位置が含まれる(is or is within)許可地域のいずれかによって明示的に許可されているか否か判定する（判断ブロック６２２）。例えば、動作が読み取り動作である場合、ソース・システムは、（要求元の位置に対応する所与の許可地域について）読み取り動作が許可されていると示されているか否か判定する。この動作が許可されていると示されている場合（判断ブロック６２２における「Ｙｅｓ」）、この動作は許可される（アクション６３１）。
【００３８】
[0044]  許可地域を使用して動作が明示的に許可されていない場合（判断ブロック６２２において「Ｎｏ」）、拒否地域（または「拒否位置」）のリストにアクセスする（アクション６２３）。例えば、ソース・システムは、ファイル・システム・エンティティに対応する位置データー４００の拒否地域フィールド４１２にアクセスすればよい。次いで、ソース・システムは、要求された動作が、要求元の位置が含まれる許可地域のいずれかによって明示的に禁止されているか否か判定する（判断ブロック６２４）。例えば、動作が読み取り動作である場合、ソース・システムは、（要求元の位置に対応する所与の許可地域について）読み取り動作が禁止として示されているか否か判定する。動作が禁止として示されている場合（判断ブロック６２４において「Ｙｅｓ」）、動作は拒否される（アクション６３２）。そうでない場合（判断ブロック６２４において「Ｎｏ」）、本方法はアクション６１１に戻り、デフォルト規則を参照することができる。次いで、要求された動作の許可可能性を、デフォルト規則にしたがって判定する（判断ブロック６１２）。
【００３９】
[0045]  このように、本明細書において説明する原理は、ファイル・システム・エンティティ（例えば、ファイル）に対する動作を要求元の位置によって制限できるように、データー主権(sovereignty)を尊重することを可能にする。更に、動作が許可され、ファイル・システムのコピーが入手可能にされようとするとき、要求元システムも位置データーにアクセスできるように、ファイル・システム・エンティティ環境をトランスコードすることによって、更にデーター主権規則を施行することができる。
【００４０】
[0046]  以上、図４に関して位置データーの構造例について説明したので、これより、３つの具体的なシリアル化の実現例について、それぞれ、表１から３に関して説明する。以下の表１Ａおよび表１Ｂは、位置データーのバイナリー・ファイル・フォーマットを示す。表１Ａはファイル・ヘッダ・フォーマットの例を示す。表１Ｂは対応データー構造の例を示す。
【００４１】
【表１Ａ】
2017538998.tif 000003
【００４２】
【表１Ｂ】
2017538998.tif 000004
【００４３】
[0047]  表２は、Ｊａｖａ（登録商標）−Ｓｃｒｉｐｔオブジェクト表記（ＪＳＯＮ）を使用した、位置データーの更に移植可能な実施形態を示す。
【００４４】
【表２】
2017538998.tif 000005
【００４５】
[0048]  以下の表３は、拡張可能マークアップ言語（ＸＭＬ）文書を使用した位置データーの移植可能な例を示す。
【００４６】
【表３−１】
2017538998.tif 000006
【００４７】
【表３−２】
2017538998.tif 000007
【００４８】
[0049]  以上のように、データーの主権を保存するメカニズムについて説明した。
請求項をサポートする章
[0050]  ここに記載するのは、要求元の位置に基づいてデーターへのアクセスを制御する方法である。位置データーおよびファイル・システム・エンティティが原子的に一緒に動かされるまたはコピーされるように、位置データーはファイル・システム・エンティティに関連付けられる。ファイル・システム・エンティティにおいて動作を実行する要求を受ける。要求の要求元に関連する位置ステータスを識別する。ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定する。
【００４９】
[0051]  位置データーをファイル・システム・エンティティと関連付けるアクションは、位置データーをファイル・システム・エンティティの代替データー・ストリームに含ませるアクションを含んでもよい。位置データーをファイル・システム・エンティティと関連付けるアクションは、位置データーをファイル・システム・エンティティの１つ以上のプロパティとして含ませるアクションを含んでもよい。
【００５０】
[0052]  ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションは、要求元の位置ステータスが未知であると判定するアクションと、要求元の位置ステータスが未知であると判定したことに応答して、要求された動作を実行してもよいか否か定めるデフォルト規則にアクセスするアクションと、デフォルト規則に基づいて、要求された動作を実行してもよいか否か判定するアクションとを含んでもよい。
【００５１】
[0053]  要求元の位置ステータスは、要求元の位置でもよい。この場合、ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションは、更に、許可されている１つ以上の動作タイプに各々関連付けられた１組の１つ以上の許可地域にアクセスするアクションと、要求された動作が明示的に許可されている許可地域内に、要求元の位置があると判定するアクションと、要求された動作が、対応する１組の１つ以上の許可位置の内いずれかに、要求元の位置が入る動作タイプであると判定された場合、要求された動作を承認するアクションとを含んでもよい。
【００５２】
[0054]  要求元の位置ステータスは、要求元の位置でもよい。この場合、ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションは、更に、禁止されている１つ以上の動作タイプに各々関連付けられた１組の１つ以上の禁止地域にアクセスするアクションと、要求された動作が明示的に禁止されている禁止地域内に、要求元の位置があると判定するアクションと、要求元の位置が対応する１組の１つ以上の禁止位置の内いずれかに、アクション要求動作(act requested operation)が入る動作タイプであると判定された場合、要求された動作を拒否するアクションとを含んでもよい。
【００５３】
[0055]  要求元の位置ステータスは、要求元の位置でもよい。この場合、ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションは、要求元の位置は、要求された動作が明示的に許可されている許可地域内ではないと判定するアクションと、要求元の位置は、要求された動作が明示的に禁止されている禁止地域内ではないと判定するアクションと、要求された動作を実行してもよいか否か定めるデフォルト規則にアクセスするアクションと、デフォルト規則に基づいて、要求された動作を実行してもよいか否か判定するアクションとを含んでもよい。
【００５４】
[0056]  この方法は、更に、要求された動作が許可されていないと判定した場合、要求された動作を防止するアクションを含んでも良い。この方法は、更に、要求された動作が許可されていると判定した場合、要求された動作を実行させるアクションを含んでも良い。後者の場合、要求された動作を実行させるアクションは、ファイル・システム・エンティティを、要求元のオペレーティング・システムに適したトランスコード・ファイル・システム・エンティティにトランスコードするアクション、および／または要求元のオペレーティング・システムによって実行されるシリアル化の実施になるように、ファイル・システム・エンティティをトランスコードするアクションを含んでもよい。
【００５５】
[0057]  また、ここに記載するのは、１つ以上のコンピューター実行可能命令を有する１つ以上のコンピューター読み取り可能記憶媒体を含むコンピューター・プログラム製品であり、コンピューター実行可能命令は、計算システムの１つ以上のプロセッサーによって実行されると、オペレーティング・システムによって管理されるファイル・システム・エンティティにおける動作を実行する要求を受けたことに応答して、計算システムに以下のアクションを実行させるように構造化される。ファイル・システム・エンティティは、位置データーおよびファイル・システム・エンティティが原子的に一緒に動かされるまたはコピーされるように、ファイル・システム・エンティティに関連付けられた位置データーを有する。以下のアクションとは、要求の要求元に関連する位置ステータスを識別するアクション、要求元の位置ステータスをファイル・システム・エンティティの位置データーと比較するアクション、および比較するアクションの結果に基づいて、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションである。
【００５６】
[0058]  要求元の位置ステータスは、要求元の位置でもよい。この場合、ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作がファイル・システム・エンティティにおいて許可されているか否か判定するアクションは、更に、許可されている１つ以上の動作タイプに各々関連付けられた１組の１つ以上の許可地域にアクセスするアクションと、要求された動作が明示的に許可されている許可地域内に、要求元の位置があると判定するアクションと、要求元の位置が、対応する１組の１つ以上の許可位置の内いずれかに、要求された動作が入る動作タイプであると判定された場合、要求された動作を承認するアクションとを含んでもよい。
【００５７】
[0059]  要求元の位置ステータスは、要求元の位置でもよい。この場合、ファイル・システム・エンティティの位置データーおよび要求元の位置ステータスを使用して、要求された動作が許可されているか否か判定するアクションは、更に、禁止されている１つ以上の動作タイプに各々関連付けられた１組の１つ以上の禁止地域にアクセスするアクションと、要求された動作が明示的に禁止されている禁止地域内に、要求元の位置があると判定するアクションと、要求元の位置が対応する１組の１つ以上の禁止位置の内いずれかに、アクション要求動作(act requested operation)が入る動作タイプであると判定された場合、要求された動作を拒否するアクションとを含んでもよい。
【００５８】
[0060]  このコンピューター・プログラム製品は、更に、１つ以上のプロセッサーによって実行されると、更に、計算システムに、ファイル・システム・エンティティを、要求元のオペレーティング・システムに適したトランスコード・ファイル・システム・エンティティにトランスコードするアクションを更に実行させるように更に構造化されたコンピューター実行可能命令を含んでもよい。
【００５９】
[0061]  またここに記載するのは、計算システムであって、この計算システムのオペレーティング・システムによって管理される複数のファイル・システム・エンティティを有する１つ以上のコンピューター読み取り可能記憶媒体であって、複数のファイルの内少なくとも特定のファイル・システム・エンティティが、位置データーおよびこの特定のファイル・システム・エンティティが原子的に一緒に動かされるまたはコピーされるように、特定のファイル・システム・エンティティに関連する関連位置データーを有する、１つ以上のコンピューター読み取り可能記憶媒体と、１つ以上のプロセッサーとを含む。１つ以上のコンピューター読み取り可能記憶媒体は、１つ以上のプロセッサーによって実行されると、特定のファイル・システム位置において動作を実行する要求を受けたことに応答して、要求の要求元に関連する位置を識別するアクションと、位置データーを使用して要求されたファイル動作が特定のファイル・システム・エンティティにおいて許可されているか否か判定するアクションとを、計算システムに実行させるように構成されたコンピューター実行可能命令を有してもよい。
【００６０】
[0062]  本発明は、その主旨や本質的な特徴から逸脱することなく、他の具体的な形態において具体化することもできる。以上で説明した実施形態は、あらゆる観点において、限定的ではなく、例示的に過ぎないと考えられるものとする。したがって、本発明の範囲は、以上の説明ではなく、添付する特許請求の範囲によって示される。請求項の均等の意味および範囲に該当するあらゆる変更は、それらの範囲内に包含されるものとする。
【図１】
2017538998.tif 000008
【図２】
2017538998.tif 000009
【図３】
2017538998.tif 000010
【図４】
2017538998.tif 000011
【図５】
2017538998.tif 000012
【図６】
2017538998.tif 000013
【国際調査報告】
2017538998.tif 000014
2017538998.tif 000015
2017538998.tif 000016