JP5437238B2 - リソースにアクセスするための方法 - Google Patents

リソースにアクセスするための方法 Download PDF

Info

Publication number
JP5437238B2
JP5437238B2 JP2010514943A JP2010514943A JP5437238B2 JP 5437238 B2 JP5437238 B2 JP 5437238B2 JP 2010514943 A JP2010514943 A JP 2010514943A JP 2010514943 A JP2010514943 A JP 2010514943A JP 5437238 B2 JP5437238 B2 JP 5437238B2
Authority
JP
Japan
Prior art keywords
namespace
resource
name
names
resources
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010514943A
Other languages
English (en)
Other versions
JP2010532523A (ja
Inventor
エム.シーハン ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010532523A publication Critical patent/JP2010532523A/ja
Application granted granted Critical
Publication of JP5437238B2 publication Critical patent/JP5437238B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata

Description

本発明は、名前空間のマージに関する。
コンピュータアプリケーションは一般に、オペレーティングシステムを介してコンピュータまたはシステムリソースにアクセスする。リソースは、ファイル、ライブラリ、システムサービス(たとえばカット&ペースト、プリンタ)、レジストリまたは構成情報、その他であり得る。仮想化環境またはコンポーネントは、アプリケーションによるシステムリソースへのアクセスを仮想化し、アプリケーションがあたかも直接オペレーティングシステムを相手にしているかのように、アプリケーションによるシステムリソースへのアクセスを透過的に処理する。
仮想化環境は、複数のシステムリソースのセットへのアクセスを管理することができ、それらのリソースの一部は重複しまたは競合し得る。ネイティブオペレーティングシステムは、「/somepath/someFileName」などのファイル名を有するファイルを含めて、1組のファイルリソースを有し得る。アプリケーション仮想化パッケージ(または1組のシャドウリソース)は、同じファイル名、たとえば「/path/someFileName」を使用する異なるファイルインスタンスを有し得る。仮想化環境は、アプリケーションによる「/path/someFileName」へのアクセスを、アプリケーションに透過的なやり方で管理する。アプリケーションは、「/path/someFileName」に書き込むことがあり、仮想化環境は、ファイル「/path/someFileName」のどのインスタンスがネイティブオペレーティングシステムファイルまたは仮想化パッケージファイルに書き込まれるか決定する。
リソースへのアクセスの管理に関連する技術について、以下に論じられる。
以下の要約は、下記の発明を実施するための形態において論じられるいくつかの概念について述べるためだけに含まれている。この要約は、包括的なものではなく、また最後に提示される特許請求の範囲によって示される特許請求された主題の範囲を定めるためのものではない。
アプリケーションは、第1の名前空間および第2の名前空間内で名付けられた、コンピュータ上のリソースへの仮想化されたアクセスを有する。第1の名前空間は、リソース名の第1のリストを備え、第2の名前空間は、リソース名の第2のリストを備える。それぞれの名前空間は、コンピュータ上のリソースの異なるセットに対応し、このコンピュータ上のリソースの一部は、それぞれ異なるセット内にあるが、両方の名前空間内で名付けられている。すなわち、偶然同じ名前を有するそれぞれ異なるリソースが、それぞれの名前空間内に存在することがある。アプリケーションは、第1の名前のリソースを要求し、それに応答して、第1の名前空間および第2の名前空間にアクセスすることによって、第1の名前空間で名付けられたリソースのセットからリソースが取得される。アプリケーションは第2の名前のリソースを要求し、それに応答して、第1の名前空間および第2の名前空間にアクセスすることによって、リソースが第2の名前空間で名付けられたリソースのセットから取得される。
付随する特徴の多くは、添付の図面に関連して考慮された下記の詳細な説明を参照して以下に説明される。
この説明は、添付の図面を考慮して読まれる下記の詳細な説明からよりよく理解される。図面では、付随する説明における同様の部分を指定するために、同じ参照符号が用いられている。
コンピュータ上の仮想化環境を示す図である。 重複するリソースの複数のセットへのアクセスを管理する仮想化層を示す図である。 リソース名前空間を1回限りマージする技術を示す図である。 リソース名前空間を動的にマージする技術を示す図である。 論理リソース名前空間を列挙するときの操作シーケンスを示す図である。 動的な論理名前空間マージのプロセスを示す図である。 完了時、リソース名前空間から動的に生成されている論理リソース名前空間を示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。 図7に示された論理リソース名前空間をもたらす動的マージアルゴリズムの操作シーケンスを示す図である。
概要
以下に論じられた実施形態は、コンピュータシステム上のリソースへの仮想アクセスの管理に関する。まず、仮想環境について論じられる。次いで、リソース名前空間の静的マージの技術について説明される。次いで、静的マージとは対照的に、リソース名前空間の動的マージについて述べられ、また、動的マージの様々な方法が説明される。そして、例示的な問題を、動的マージのための諸実施形態のうちの1つによってそれが処理されるところで順を追って確認してゆく(walk through)。
仮想環境
図1は、コンピュータ102上の仮想化環境100を示している。コンピュータ102上で実行されるアプリケーション104は、仮想化環境100を介して様々なシステムリソース106、108および110にアクセスする。仮想化環境100は、アプリケーション104によるシステムリソース106、108、110へのアクセスを管理する。システムリソース106、108および110は、コンピュータ上で使用可能な任意のタイプのリソースであり得る。たとえば、システムリソース106は、システムファイル、レジストリまたはデータベースエントリ、初期化または設定ファイル、動的にロードされたライブラリなどであり得る。システムリソース108は、オブジェクト通信サービス、印刷サービス、カット&ペーストサービスなどのシステムサービスであり得る。システムリソース110は、プロファイルデータ、TCP/IPアドレスおよび/またはポート、ミューテック、セマフォ、名前付きパイプ、COMオブジェクト、フォントであり得る。
システムリソース106、108および110は、コンピュータ102上のそれぞれ異なる可視性の範囲を有し得る。一部のリソース106、108、110は、コンピュータ102上のすべてのアプリケーションから見えるグローバルなネイティブリソースであり得る。一部のシステムリソース106、108および110は、アプリケーション104だけから見える、またはアクセス可能なローカルリソースであり得る。たとえば、アプリケーション仮想化パッケージは、ファイル、レジストリエントリ、構成設定、またはアプリケーション104だけが使用する他のリソースのインスタンスを含み得る。仮想化環境100を使用している特定のユーザまたはアプリケーションだけに使用可能な他の半ローカル(semi-local)のリソースもあり得る。特に、これらのローカルまたは半ローカルリソースのうちのいずれかが、同じ名前を有する対応するネイティブリソースインスタンス(すなわちコンピュータ102上のグローバルリソース)を有し得る。すなわち、背景技術において示唆されたように、リソース名について考慮すると、その名前を有するグローバルリソースのインスタンス、その名前を有するローカルリソースのインスタンス、および/または同じ名前を有する半ローカルリソースのインスタンスがあり得る。重複するこうしたリソースをマージし、それにアクセスする技術について、以下で詳細に論じられる。
仮想化環境100によって、リソース106、108、110は、1つの仮想リソースセット112として現れるようになる。アプリケーション104が、あたかもシステムリソース106、108および110に直接アクセスするかのように読出しおよび/または書込み操作を実施し得る間、仮想化環境100は、それらの操作の間に介在する。一般に、アプリケーション104は、コンピュータ102上に仮想化環境100が存在しない場合の動作と異なる動作をしない。しかし、以下に論じられた、(システムリソース106、108および110などの)リソースの名前空間をマージするための実施形態は、仮想化環境の存在下でアプリケーションがその振舞いを変更するかどうかに関係なく適用することができる。
図2は、重複する複数のリソースセット152と154および156へのアクセスを管理する仮想化層150を示している。アプリケーション158は、仮想化環境150を介してリソース152、154および156に透過的にアクセスする。リソースセット152、154および156は、それぞれ異なる優先順位(precedence)および目的を有する。ユーザセット152は、アプリケーション158だけを範囲としており、パッケージセット154は、仮想化層150下で同じユーザによって実行されているアプリケーションを範囲とし、グローバルセット156はグローバル範囲を有しており、ホストコンピュータ上のどんなアプリケーションまたはユーザ識別も、リソースセット156に潜在的にアクセスすることができる。他のタイプのリソースが使用されてもよい。別の実施形態では、セット152は、仮想環境内で実行されるすべてのアプリケーション用とすることができ、セット154は、アプリケーションを実行しているすべてのユーザにわたるすべての仮想環境用とすることができる。リソースセット152、154および156はタイプ別にカテゴリ160、162および164に分けて示されているが、これは、必要ではなく、特定のコンピューティングプラットフォーム上でリソースがどのようにアクセスされるかに依存し得る。一実施形態では、リソースセット152、154または156は、同じ範囲を有するすべてのタイプのリソース、たとえばグローバルファイル、レジストリエントリ、ネットワーク接続、またはローカルファイルおよびシステムサービスなどを含むコンテナである。
リソースセット152、154および156は、上記に論じられたように、あるリソースセットが、別のセット内の別のリソースインスタンスと同じ名前を有するリソースインスタンスを有し得るという点で重複し得る。図2の例では、リソースのインスタンス「c:\dir\file1」は、リソースセットのそれぞれに存在する。これらのインスタンスは、それぞれ異なるコンテンツ、異なるサイズなどを有する。「c:\dir1\file4」などの別のリソースは、グローバルリソースセット156内だけにある。仮想化層150は、「c:\dir1\file2」という名前のファイルを開くことを求める、アプリケーション158の要求を処理する。恐らくユーザリソースのセット152に優先権を与える仮想化層150は、使用リソース152内の「c:\dir1\file2」のインスタンスを開き、対応するファイルハンドルまたはファイルオブジェクトをアプリケーション158に返し、したがってアプリケーション158に、ユーザリソースセット152内のインスタンスを使用させ得る。アプリケーションが「c:\dir1\file4」という名前のファイルにアクセスするとき、リソースは、リソースセット154、すなわちそのリソースを有する唯一のセットから取得される。
リソース名前空間のマージ
図3は、リソース名前空間180、182および184を1回限りマージ(one-time merging)する技術を示している。リソース名前空間180、182および184内の文字は、一部の任意リソースインスタンスの名前を表しており、それぞれ異なるリソース名前空間内の同じ文字は、同じ名前が付けられたリソースのそれぞれ異なるインスタンス(それぞれ異なるコンテンツを有するそれぞれ異なるインスタンス)を表す。リソース180、182および184への一貫性のある論理的なアクセスを提供するために、リソースはマージされて185、マージされたリソース名前空間188が作成される。このマージ185は、アプリケーション186がリソース名前空間180、182および184内の様々なリソースにアクセスする前に実施される。必要とするリソースの名前のリストを有するアプリケーション188は、リストを調べ始め、リソースA、リソースB、リソースGなどを要求する。アプリケーション188は、リソース、たとえばリソースAを必要とするとき、完全にマージされた名前空間186からリソースを取得する。マージされた名前空間は、名前またはリソースを含むものとして論じられ得るが、実際には、こうしたマージは、(アプリケーションによって見られる名前以外の)名前、一意の識別子、参照など、グローバルに明白な何らかの情報を含む。リソースが、名前空間から取得されるものとして述べられる場合、これは、リソースへのアクセスを可能にするいずれかの情報、たとえばポインタ、一意の識別子またはアドレス、オブジェクトなどにアクセスするためのデータ構造体またはオブジェクトなどを取得することを含む。
図3の静的マージ手法に関する複数の問題がある。たとえば、1度限りのマージ185の後にベースであったリソース名前空間180、182および184のうちの1つの構成が変化する場合、マージされたリソース名前空間188は不正確になり、アプリケーション188に不正確なリソースを供給することがあり、あるいはリソース名前空間180、182および184は、再びマージされる必要がある。また、名前空間が前もってマージされる場合、パフォーマンスの犠牲を伴うことになる。
動的なリソース名前空間マージ
図4は、リソース名前空間を動的にマージする技術を示している。この手法では、アプリケーションは、2つ以上の構成(constituent)リソース名前空間、たとえばローカルリソース名前空間、グローバルリソース名前空間から、必要に応じてリソースを取得する。リソースが必要であると判断された場合200、構成リソース名前空間を動的にマージすることによって論理名前空間が提供される202。論理名前空間は、集合(名前の集合)を完全に列挙するメソッドを有するオブジェクトインターフェースを介してアクセスすることができる。論理名前空間は、その一部が必要とされるときに、(構成リソース名前空間の動的マージによって)生成される。したがって、アプリケーションから見て論理名前空間が正確な名前空間のようになる。アプリケーションが、リソースAなどのリソースを必要とする場合204、動的マージの論理は、リソースAを有する構成リソース名前空間を見つけることによってそれを取得し206、アプリケーションにそれを返す。リソースAは、ローカル名前空間など、構成名前空間のうちのいずれかから生じ得る。アプリケーションが、リソースBなどの別のリソースを必要とする場合208、動的マージ論理は、構成名前空間を見て、どの名前空間がリソースBを提供するか決定し、このリソースBは、構成名前空間から取得され210、アプリケーションに返される。リソースBは、グローバル名前空間など、構成リソース名前空間のうちのいずれかから生じ得る。両方の名前空間は、Aという名前のそれぞれ異なるリソースのインスタンスを有することがあり、また両方が、Bという名前のそれぞれ異なるリソースのインスタンスを有し得る。
図5は、論理リソース名前空間220を列挙するときの操作シーケンスを示している。アプリケーション222は、Aという名前のリソースを必要とする場合224、たとえば、enumerate()、next()、nonempty()、first()など、列挙インターフェースのメソッドを使用して、論理名前空間220からのリソースを要求する。動的マージコンポーネント226は、ベースリソース名前空間228、230および232内のマージされていないリソース名(unmerged names of resources)を見る。動的マージコンポーネント226は、ベースリソース名前空間228、230および232を調べ、ベースリソース名前空間228からのリソースAを返し、このリソースAは、論理リソース名前空間220内の第1のリソースとしてアプリケーション222に返される。アプリケーション222がリソースBを必要とする場合234、同様のプロセスが行われ、動的マージコンポーネント226は、ベースリソース名前空間228、230および232内のリソースのマージされていない名前を見て、リソースBが、ベースリソース名前空間228および230内で得られるが、ベースリソース名前空間280から生じるべきであると決定する。ベースリソース名前空間228からのリソースBが、アプリケーションに返される。リソースGが必要な場合、それがベースリソース名前空間230から返される、以下同様である。
図6は、動的論理リソース名前空間マージのプロセスを示している。言及されたように、集合(名前空間内のリソースの集合など)の列挙は、以前にアクセスされていない集合のメンバが、すべてのメンバがアクセスされるまで(好ましくは何らかの論理順序で)連続的にアクセスされるように、集合のメンバにアクセスすることを伴う。図6のプロセスで、アプリケーションまたは他の何らかのプログラムは、論理リソース名前空間の列挙を開始する250。候補リストは、各候補リソース名前空間からの次の未使用の(マージされていない)名前が取り込まれ(populated)、またはそれで埋められる(filled)252。論理リソース名前空間の次々出てくる(rolling)次の名前が、候補リストから返され254、空きスロットに増分される。候補リストは、たとえば、返された254候補の名前を候補リストから取り除くことによって最新の情報に更新される256。図6のプロセスが繰り返される間、空の候補リストエントリは、それぞれの候補リソース名前空間からの次の未使用の名で再び埋められる。論理名前空間内の次の名前は、候補リストを介して、様々な候補リソース名前空間のうちの1つから連続的に来る。
一部の実施形態から理解されるように、重複する候補リソース名前空間からのリソースは、アプリケーションによる求めに応じて、それらの名前空間から次々(in a rolling fashion)返される。様々な任意のリソースが必要とされる場合、基になる名前空間(underlying namespaces)を使用して、列挙なしに名前を直接検索することができ、その場合、検索は、各名前空間で実施され、第1のヒットが返される。動的なマージでは、候補リソース名前空間のうちの1つが変化する場合、その変化は、アプリケーションに対して明確なものとなる。さらに、アプリケーションが名前順に(たとえばアルファベットの昇順に)リソースを要求する場合、および候補リソース名前空間がそれに応じて事前にソートされる場合、アプリケーションは、完全なマージを完了する必要がないので、要求されるときに迅速にリソースを取得することができる。これは、図7〜18について論じられるとき、より明らかになる。
図7は、例示的なリソース名前空間282、284および286から動的に生成され完了した時の論理リソース名前空間288を示している。図8〜18は、リソース名前空間282、284および286に適用されるとき、図7に示された論理リソース名前空間288をもたらす、動的マージアルゴリズム280のマージ操作のシーケンスを示している。例示的なリソース名前空間282、284および286は、それぞれ異なる範囲および優先順位を有するリソース名前空間である。この実施例では、リソース名前空間282、284および286のうち、リソース名前空間282は、最も高い優先順位を有しており、リソース名前空間286は、最も低い優先順位を有している。一実施形態では、リソース名前空間282、284および286の優先順位は、名前によって異なることがある。換言すると、ある名前ではリソース名前空間282が最も高い優先順位を有することがあるが、別の名前では、リソース名前空間284が、より高い優先順位を有することがある。図8に空の初期論理名前空間288は示されており、完了時の論理名前空間288は、図18(ならびに図7)に示されている。
図8に示されるように、何らかのソフトウェアが論理名前空間288を列挙し始めるときに恐らく要求されるように、最初、次の名前が、論理名前空間288から求められる。ソフトウェアは、仮想化環境または他の何らかの仮想化または疑似仮想化されたソフトウェアで実行されるアプリケーションであり得る。次いで、候補リスト290内の空きスロットは、各々の候補名前空間からの次の名前;名前空間282からのA、名前空間284からのBおよび名前空間286からのOで埋められる280.1。これらのリソースは、候補名前空間282、284および286内の「×」によって表されるように、各々の名前空間内で使用されたものとしてマークされる。図9で、候補リスト290内で最も小さいエントリ、Aが検索され280.2、その名前を有する候補リスト290内のすべてのエントリ(名前空間282からのA)が削除され280.3、検索された280.2エントリ、Aが、論理名前空間288の列挙の次の名前として返される280.5。
図10で、論理名前空間288から次の名前が求められる場合、プロセス280が繰り返される。リソース名前空間282の空の候補は、その中の次のリソース、B282で埋められる。B282は、リソース名前空間282に使用されたものとしてマークされる。図11で、候補リスト290内の最も小さいエントリ、Bが検索される280.2。280.2.bは、名前空間282と284の両方に存在する最小のリソース名である(候補リスト290内に2つの「B」のエントリがある)ので、候補リスト内の最も早いエントリ(最優先のリソース名前空間からのもの)が選択される。その名前を有する候補リスト290内のすべてのエントリ(名前空間282からのB282、および名前空間284からのおよびB284)が取り除かれる280.3。検索された280.2エントリ、B282が、論理名前空間288内の次の名前として返される280.5。
図12で、論理名前空間288から次の名前が求められる場合、プロセス280が繰り返される。リソース名前空間282の空の候補は、その中の次のリソース、I(削除済み)で埋められ、Iは、リソース名前空間282内で、論理的に削除済みであるとマークされる。リソース名前空間284の空の候補は、その中の次のリソース、Gで埋められる。これらの両方が、対応するリソース名前空間282および284内で使用されたものとしてマークされる。図13で、候補リスト290内で最も小さいエントリ、Gが検索され280.2、候補リスト290から取り除かれ280.3、論理名前空間288内の次の名前として返される280.5。
図14で、論理名前空間288から次の名前が求められる場合、プロセス280が繰り返される。リソース名前空間284の空の候補は、その中の次のリソース、Iで埋められる。このエントリは、リソース名前空間284内で使用されたものとしてマークされる。図15で、候補リスト290内の最小のエントリ、I(削除済み)が検索される280.2。すべてのIのエントリが、候補リスト290から取り除かれる280.3。しかし、論理的に削除済みとしてマークされるIエントリ(リソース名前空間282からのエントリ)があるので、Iを返す280.5のではなく、プロセス280が繰り返され、Iは、論理名前空間288のメンバとして返されない(名前が別の名前空間ではなく、ある名前空間内で論理的に削除済みとマークされている場合、より高い優先順位の名前空間からの名前が、削除を行うべきかどうか制御することに留意されたい)。図16で、Iエントリによって空にされた候補リスト290スロットは、リソース名前空間からの名前;リソース名前空間282からのL、およびリソース名前空間284からのKで埋められる280.1。図17で、最小の候補リソース、Kが検索され280.2、候補リスト290から取り除かれ280.3、論理名前空間288内の次のエントリとして返される280.5。図18は、プロセス280をさらに数回繰り返した後の完了した論理名前空間288を示している。
論理名前空間のエントリまたは要素は、様々な形をとることができる。好ましくは、エントリは、アプリケーションがそれを使用して、対応する正確なリソース名前空間からのリソースにアクセスすることを可能にするのに十分な情報を有する。エントリは単に、リソース名、またはリソース名への参照、およびそれがどのリソース名前空間に属するかの表示を有し得る。たとえば、エントリは、ファイルの名前を示す情報、およびファイルが特定のリソース名前空間内にあることを示す情報を含み得る。名前空間の識別子が含まれ得る。エントリは、リソースオブジェクト、またはそれへの参照を含み得る。こうしたエントリは、動的マージの間、リソースが論理名前空間に追加されるべき場合に生成され得る。リソース名は、対応するベースリソース名前空間内のリソースを開くために使用される。リソースが開くことからオブジェクト、参照、ファイルハンドルなどが返され、論理名前空間に追加される。
上記のパラグラフで論じられた論理的削除は、リソース名前空間の間の整合性を保証するのに有用であり得る。アプリケーションは、リソースを削除する必要がある場合、あるリソース名前空間からのリソースを、他の名前空間からリソースを削除する必要なしに論理的に削除することができる。削除は、論理的マージによって達成される。論理名前空間が生成されるとき、論理的に削除されたリソースの名前を有するリソースは、論理名前空間内に含まれない。有用ではあるが、論理的削除は必要ない。
上記に論じられた実施形態によれば、論理リソース名前空間は、アプリケーションが論理名前空間のメンバを列挙すべきとき、アプリケーションによって有効に使用され得る。すなわち、アプリケーションが1組のリソースにアクセスする必要があり、アクセスされるリソースの名前が順序付けられる場合、リソースは、候補名前空間から効率的に取得することができる。図7の例を参照すると、アプリケーションがA、B、G、K、LおよびOにその順序でアクセスするとき、リソース(または名前/名前への参照)は、計算上のオーバーヘッドをほとんど伴わずにリソース名前空間282、284および286から取得することができる。同時に、競合するリソースは、高い優先度のリソースが、同じ名前の低い優先度のリソースよりも使用されるように、一貫したやり方で解決することができる。しかし、低い優先度の名前空間からのリソースが、高い優先度の名前空間内でそのリソースが検索されない場合には依然として使用され得る。
結論
上記に論じられた名前空間マージの諸技術は、それだけに限らないが、仮想化の設定に有用である。諸技術は、名前空間の重複を有するそれぞれ異なるリソースセットが必要なときに使用されてもよい。諸技術の一部は、リソース名前空間が順序付けられるときに効率的に働くが、これは必須ではない。同様に、論理名前空間は、順番に、たとえばアルファベット順に列挙される場合に効率的に使用され得る。しかし、これは必須ではなく、また、論理名前空間内の要素もランダムにアクセスすることができる。
上記に論じられた実施形態および特徴は、揮発性または不揮発性コンピュータまたは装置読取り可能媒体内に格納された情報の形で実現することができる。これは、光学記憶装置(たとえばCD−ROM)、磁気媒体、フラッシュROM、またはデジタル情報を格納する現在または将来の任意の手段など、少なくとも媒体を含むと見なされる。格納された情報は、マシン実行可能命令(たとえばコンパイルされた実行可能なバイナリコード)、ソースコード、バイトコード、あるいはコンピューティング装置が上記に論じられた様々な実施形態を実施することを可能にし、またはコンピューティング装置をそのように構成するために使用され得る他の任意の情報の形であり得る。これは、少なくともRAMなどの揮発性メモリ、および/または実施形態を実施するプログラムの実行時にCPU命令などの情報を格納する仮想メモリ、ならびにプログラムまたは実行可能物をロードし実行することを可能にする情報を格納する不揮発性媒体を含むとも見なされる。諸実施形態および諸特徴は、携帯用装置、ワークステーション、サーバ、モバイル無線装置などを含めて、任意のタイプのコンピューティング装置上で実施することができる。

Claims (21)

  1. コンピュータ上のリソースの第1の名前空間および前記コンピュータ上のリソースの第2の名前空間を使用して前記コンピュータ上のリソースへのアクセスを提供するための方法であって、前記名前空間の前記リソースは順序付けされており、1つまたは複数の名前は双方の名前空間で共通しており、前記1つまたは複数の名前は、それぞれ異なる各々のリソースインスタンスを参照しており、第1の名前空間は第2の名前空間が有する優先度よりも高い優先度を有し、前記方法は、
    アプリケーションによるリソースの要求を受け取ることと、
    前記受ることに応答して、第1の名前空間と第2の名前空間を動的にマージして論理名前空間を形成することであって、前記動的にマージすることは、第1の名前空間についての現在の候補および第2の名前空間についての第2の候補が候補リストにおいて共通するときに、第1の名前空間についての現在の候補を前記論理名前空間のために選択し、第2の名前空間についての第2の候補を前記候補リストから取り除くことを含む、ことと、
    前記論理名前空間を使用して前記リソースを取得することと
    を含む方法。
  2. 前記動的マージすることは、
    第1の名前空間について現在の候補および第2の名前空間について第2の候補を探し出し、前記候補から前記論理名前空間のための名前を選択することを含むことを特徴とする請求項1に記載の方法。
  3. 前記論理名前空間のための前記名前は、現在の候補の相対順序に基づいて選択されることを特徴とする請求項2に記載の方法。
  4. 第1の現在の候補が前記論理名前空間のための名前として選択されている場合、第1の現在の候補を第1の名前空間内の次の名前に合わせることをさらに含むことを特徴とする請求項3に記載の方法。
  5. 第2の現在の候補が、前記論理名前空間のための名前として選択されている第1の現在の候補と同じである場合、第2の現在の候補を第2の名前空間内の次の名前に合わせることをさらに含むことを特徴とする請求項4に記載の方法。
  6. 前記リソースは、第1の名前空間及び第2の名前空間論理的に動的にマージすることが完了する前に前記論理名前空間から取得されることを特徴とする請求項1に記載の方法。
  7. 前記名前空間は、前記現在の候補が同じである場合、高い優先度の現在の候補が選択されるように優先度によって順位付けられていることを特徴とする請求項1に記載の方法。
  8. コンピュータ上のリソースへの仮想化されたアクセスをアプリケーションに提供する方法であって、前記リソースは第1の名前空間および第2の名前空間内で名付けられ、前記第1の名前空間は、第1のリソース名リストを備え、前記第2の名前空間は、第2のリソース名リストを備え、それぞれの名前空間は、前記コンピュータ上のリソースのそれぞれ異なるセットに対応し、前記リソースの一部は、それぞれ異なるセット内にあるが、双方の名前空間内で同じ名前で名付けられており、第1の名前空間は、第2の名前空間が有する優先度よりも高い優先度を有し、前記方法は、
    前記アプリケーションが第1の名前のリソースを要求し、それに応答して、第1の名前空間および第2の名前空間にアクセスすることによって、第1の名前空間で名付けられたリソースのセットからの前記リソースを取得することであって、第1の名前空間で名付けされたリソースおよび第2の名前空間で名付けされたリソースの名前が共通するときに、前記アプリケーションによる第1の名前のリソースの前記要求に応答して、前記第1の名前空間で名付けられたリソースのセットからの前記リソースを取得し、取得したリソースへの仮想化されたアクセスが前記アプリケーションに提供される、ことと
    前記アプリケーションが第2の名前のリソースを要求し、それに応答して、第1の名前空間および第2の名前空間にアクセスすることによって、第2の名前空間で名付けられたリソースのセットからの前記リソースを取得することであって、第1の名前空間で名付けされたリソースのセットが第2の名前のリソースを含まず且つ第2の名前空間で名付けされたリソースのセットが第2の名前のリソースを含むときに、前記アプリケーションによる第2の名前のリソースの前記要求に応答して、前記第2の名前空間で名付けられたリソースのセットからの第2の名前のリソースを取得し、取得したリソースへの仮想化されたアクセスが前記アプリケーションに提供される、ことと
    を含む方法。
  9. 第1の名前空間の名前は順序付けられ、第2の名前空間の名前は順序付けられ、第1の名前のリソースが、第2の名前空間内の同じ名前に対する相対的な前記第1の名前空間内のその名前の順序に基づいて取得されることを特徴とする請求項8に記載の方法。
  10. 第1の名前空間の名前は順序付けられ、第2の名前空間の名前は順序付けられ、前記取得は、
    名前による後続のリソースの要求により、前記名前空間から名前が昇順に返されるように前記名前空間を動的にマージすることを含むことを特徴とする請求項8に記載の方法。
  11. 第1の名前空間の名前は順序付けられ、第2の名前空間の名前は順序付けられ、前記第1および第2のリソースは、第1および第2の名前空間を先へ移動する候補ウィンドウからそれらの名前を選択することによって取得され、前記第1および第2のリソースの前記名前は前記ウィンドウ内にあり、前記第2の名前の前記リソースが、前記第1のリソースの名前に対して低い順序を有する前記第2のリソースの名前に基づいて前記第1の名前の前記リソースの前に取得されることを特徴とする請求項8に記載の方法。
  12. 名前空間の相対優先度に基づいて、ある名前空間の名前が、別の名前空間の同じ名前よりも優先されることを特徴とする請求項8に記載の方法。
  13. 前記第1の名前空間内で名前が論理的に削除されるとき、前記第1の名前空間の対応するリソースと前記第2の名前空間の対応するリソースの両方は、前記アプリケーションから使用できなくなることを特徴とする請求項8に記載の方法。
  14. 前記要求および前記取得は、前記名前空間の双方の内の名前から順序付けられたリソース名リストが取得されるように繰り返し実施されることを特徴とする請求項8に記載の方法。
  15. アプリケーションによって必要とされるリソースにアクセスする方法であって、前記アプリケーションは、名前の昇順(または降順)で複数のリソースにアクセスし、前記リソースは潜在的に、コンピュータ上の複数のリソースコンテナのいずれか1つから生じることができ、前記コンテナは、互いに対して異なるおよび/または変化する優先度を有しており、前記方法は、
    それぞれのコンテナについて、リソースの対応する名前リストを昇順(または降順)に提供することと、
    論理マージ内の新しい名前が必要なとき、前記名前が順序付けられたリストから動的に選ばれるように、前記順序付けられた名前リストの前記論理マージ内の名前を列挙することによって、前記アプリケーションによって必要とされる前記リソースにアクセスすることであって、前記名前が順序付けられたリストから動的に選ばれる際に、前記順序付けられたリスト内の名前が論理的削除済みとマーク付けされている場合、順序付けられた別のリスト内の同じ名前を論理的削除済みとして扱い、前記順序付けられたリストの前記論理マージから前記名前を省かせる、こと
    を含む方法。
  16. 前記名前が順序付けられたリストから動的に選ばれる際に、
    以前に選ばれていない同じ名前が、順序付けられた2つのリストに現れる場合、高い優先度の対応する前記コンテナを有する前記リストから前記名前を選ぶことを含むことを特徴とする請求項15に記載の方法。
  17. 前記論理マージの新しい名前は、前記順序付けられたリスト内の以前に選ばれていない名前のうちから順番に選ばれることを特徴とする請求項15に記載の方法。
  18. 前記名前が順序付けられたリストから動的に選ばれる際に、
    順序付けられた2つのリスト内に以前選ばれていない名前がある場合、前記論理マージ内の前記新しい名前に最も低い名前を選ぶことを含むことを特徴とする請求項17に記載の方法。
  19. 前記リソースは、前記順序付けられたリストの前記論理マージが不完全なときにアクセスされることを特徴とする請求項15に記載の方法。
  20. コンピュータ上のリソースの第1の名前空間および前記コンピュータ上のリソースの第2の名前空間を使用して前記コンピュータ上のリソースへのアクセスを提供するための方法であって、前記名前空間の前記リソースは順序付けされており、1つまたは複数の名前は双方の名前空間で共通しており、前記1つまたは複数の名前は、それぞれ異なる各々のリソースインスタンスを参照しており、前記方法は、
    アプリケーションによるリソースの要求を受け取ることと、
    前記受ることに応答して、第1の名前空間と第2の名前空間を動的にマージして論理名前空間を形成することと、
    前記論理名前空間を使用して前記リソースを取得することと
    を含み、第1の名前空間は、第2の名前空間が有する優先度よりも高い優先度を有し、
    前記動的にマージすることは、第1の名前空間についての現在の候補および第2の名前空間についての第2の候補の名前が候補リストにおいて共通し且つ第1の名前空間内で現在の候補が論理的に削除されるときに、第1の名前空間についての現在の候補および第2の名前空間についての第2の候補の名前を前記候補リストから取り除くことを含む方法。
  21. 第1の名前空間および第2の名前空間によりリソースが共通の第2の名前で名付けされ且つ第1の名前空間内で第2の名前のリソースが論理的に削除されるときに、前記アプリケーションによる第2の名前のリソースの前記要求に応答して、第1の名前空間で名付けられたリソースのセットおよび第2の名前空間で名付けられたリソースのセットから第2の名前のリソースが取得されない、請求項に記載の方法。
JP2010514943A 2007-06-29 2008-06-11 リソースにアクセスするための方法 Active JP5437238B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/770,768 US7886301B2 (en) 2007-06-29 2007-06-29 Namespace merger
US11/770,768 2007-06-29
PCT/US2008/066543 WO2009005979A1 (en) 2007-06-29 2008-06-11 Namespace merger

Publications (2)

Publication Number Publication Date
JP2010532523A JP2010532523A (ja) 2010-10-07
JP5437238B2 true JP5437238B2 (ja) 2014-03-12

Family

ID=40162406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514943A Active JP5437238B2 (ja) 2007-06-29 2008-06-11 リソースにアクセスするための方法

Country Status (5)

Country Link
US (2) US7886301B2 (ja)
EP (1) EP2176781B1 (ja)
JP (1) JP5437238B2 (ja)
CN (1) CN101755262B (ja)
WO (1) WO2009005979A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399818B2 (ja) 2020-08-11 2023-12-18 株式会社東芝 情報処理装置、情報処理方法、およびプログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger
EP2274674A1 (en) * 2008-04-25 2011-01-19 VMWare, Inc. Linking virtualized application namespaces at runtime
US20140157324A1 (en) * 2012-11-30 2014-06-05 Comcast Cable Communications, Llc Content Identification and Management
US9984083B1 (en) 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
CA2820492A1 (en) * 2013-06-18 2014-12-18 El Fresko Technologies Limited Namespace transformations
US10067949B1 (en) 2013-12-23 2018-09-04 EMC IP Holding Company LLC Acquired namespace metadata service for controlling access to distributed file system
US9992236B2 (en) * 2015-06-22 2018-06-05 Dell Products L.P. Systems and methods for providing protocol independent disjoint port names
KR102614697B1 (ko) * 2016-12-08 2023-12-18 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 채널 정보 획득 방법
CN107329808B (zh) * 2017-06-29 2020-12-18 联想(北京)有限公司 一种信息处理方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724512A (en) 1995-04-17 1998-03-03 Lucent Technologies Inc. Methods and apparatus for storage and retrieval of name space information in a distributed computing system
JP3738787B2 (ja) * 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
JPH09190465A (ja) * 1996-01-11 1997-07-22 Yamaha Corp 分類格納された情報の参照方法
US5890011A (en) 1997-01-27 1999-03-30 International Business Machines Corporation Method and system for dynamically translating bus addresses within a computer system
US6678724B2 (en) 1997-03-12 2004-01-13 Microsoft Corporation Common namespace for internet and local filesystem objects
US6038677A (en) * 1997-03-31 2000-03-14 International Business Machines Corporation Automatic resource group formation and maintenance in a high availability cluster configuration
US6061743A (en) 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6256031B1 (en) 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US6865576B1 (en) * 1999-05-21 2005-03-08 International Business Machines Corporation Efficient schema for storing multi-value attributes in a directory service backing store
US6408298B1 (en) 1999-12-15 2002-06-18 Microsoft Corporation Methods and systems for copying and moving across virtual namespaces
US6816907B1 (en) * 2000-08-24 2004-11-09 International Business Machines Corporation System and method for providing differentiated services on the web
US6915507B1 (en) 2000-11-21 2005-07-05 Microsoft Corporation Extensible architecture for project-development systems
US6687701B2 (en) 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
US6947940B2 (en) * 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
JP2004110624A (ja) 2002-09-20 2004-04-08 Fuji Xerox Co Ltd 計算機リソース管理装置および方法
US7444376B2 (en) * 2003-05-22 2008-10-28 Hewlett-Packard Development Company, L.P. Techniques for creating an activation solution for providing commercial network services
US7949682B2 (en) * 2003-11-05 2011-05-24 Novell, Inc. Method for providing a flat view of a hierarchical namespace without requiring unique leaf names
CN100481013C (zh) * 2004-08-03 2009-04-22 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
US7690033B2 (en) * 2004-09-28 2010-03-30 Exobox Technologies Corp. Electronic computer system secured from unauthorized access to and manipulation of data
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7725601B2 (en) * 2004-10-12 2010-05-25 International Business Machines Corporation Apparatus, system, and method for presenting a mapping between a namespace and a set of computing resources
US7512957B2 (en) 2004-12-03 2009-03-31 Microsoft Corporation Interface infrastructure for creating and interacting with web services
US20060265508A1 (en) 2005-05-02 2006-11-23 Angel Franklin J System for administering a multiplicity of namespaces containing state information and services
US20070028215A1 (en) 2005-07-26 2007-02-01 Invensys Systems, Inc. Method and system for hierarchical namespace synchronization
US8977657B2 (en) * 2005-07-28 2015-03-10 International Business Machines Corporation Finding lost objects in a file system having a namespace
US9286595B2 (en) * 2006-08-02 2016-03-15 Emc Corporation System and method for collecting and normalizing entitlement data within an enterprise
US7886301B2 (en) * 2007-06-29 2011-02-08 Microsoft Corporation Namespace merger

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7399818B2 (ja) 2020-08-11 2023-12-18 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US11868814B2 (en) 2020-08-11 2024-01-09 Kabushiki Kaisha Toshiba Information processing apparatus

Also Published As

Publication number Publication date
EP2176781A1 (en) 2010-04-21
CN101755262A (zh) 2010-06-23
EP2176781A4 (en) 2012-11-14
JP2010532523A (ja) 2010-10-07
US20090007161A1 (en) 2009-01-01
US8255918B2 (en) 2012-08-28
EP2176781B1 (en) 2019-04-24
CN101755262B (zh) 2013-04-24
US7886301B2 (en) 2011-02-08
WO2009005979A1 (en) 2009-01-08
US20110088040A1 (en) 2011-04-14

Similar Documents

Publication Publication Date Title
JP5437238B2 (ja) リソースにアクセスするための方法
US8862590B2 (en) Flexible namespace prioritization
US6714949B1 (en) Dynamic file system configurations
US8832697B2 (en) Parallel filesystem traversal for transparent mirroring of directories and files
US10140461B2 (en) Reducing resource consumption associated with storage and operation of containers
US7849112B2 (en) Using a file handle for associating the file with a tree quota in a file server
CN111801661A (zh) 多主机分布式数据管理系统中的事务操作
JP7228321B2 (ja) 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム
US20190377809A1 (en) Resolving versions in an append-only large-scale data store in distributed data management systems
US10838872B2 (en) System, method, and recording medium for common memory programming
US10956378B2 (en) Hierarchical file transfer using KDE-optimized filesize probability densities
US20220092049A1 (en) Workload-driven database reorganization
US20160275100A1 (en) Multiple hierarchical trees stored within a single flat file
EP3985506A1 (en) Utilizing models for concurrently discovering network resources of a network
US20240037017A1 (en) Verification of core file debugging resources
CN112486400A (zh) 管理存储系统的索引的方法、设备和计算机程序产品
JP2022187999A (ja) クラスタ化されたコンピューティング環境内の処理を容易にするためのコンピュータプログラム、コンピュータシステムおよびコンピュータ実装方法(クラスタ化されたコンピューティング環境にわたるリソースロック所有権の識別)
CN113127140A (zh) 资源管理方法、装置和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130621

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131018

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20131025

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131211

R150 Certificate of patent or registration of utility model

Ref document number: 5437238

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250