JP4732358B2 - 静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法 - Google Patents

静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法 Download PDF

Info

Publication number
JP4732358B2
JP4732358B2 JP2006536607A JP2006536607A JP4732358B2 JP 4732358 B2 JP4732358 B2 JP 4732358B2 JP 2006536607 A JP2006536607 A JP 2006536607A JP 2006536607 A JP2006536607 A JP 2006536607A JP 4732358 B2 JP4732358 B2 JP 4732358B2
Authority
JP
Japan
Prior art keywords
sharer
item
computer
list
items
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.)
Expired - Lifetime
Application number
JP2006536607A
Other languages
English (en)
Other versions
JP2007509435A5 (ja
JP2007509435A (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
Priority claimed from US10/691,841 external-priority patent/US7526483B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007509435A publication Critical patent/JP2007509435A/ja
Publication of JP2007509435A5 publication Critical patent/JP2007509435A5/ja
Application granted granted Critical
Publication of JP4732358B2 publication Critical patent/JP4732358B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems
    • 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/18File system types
    • G06F16/188Virtual file systems
    • G06F16/192Implementing virtual folder structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明の実施形態は、コンピュータファイルシステムに関し、より詳細には、仮想フォルダおよび項目を共有するシステムおよび方法に関する。
ファイルおよびフォルダの共有は、常に難しいタスクである。公知のシステムでは、ユーザはしばしば、単にフォルダ全体を共有することに制限されている。ユーザは通常、個々のファイルを共有する能力をもたない。ファイルを共有するためには、ユーザは通常、フォルダを作成し、そのフォルダ中に所望のファイルを編成し、次いで、そのフォルダを共有しなければならなかった。
ファイルの共有は、ユーザが、様々な装置上、他のPC上、またはオンラインなど、様々な場所にあるファイルも扱わなければならないことによってさらに複雑にされている。異なる場所から生じたファイルはしばしば、違う方法で編成され、同じやり方で保持されることも同じ場所に保持されることもない。別の例として、企業ネットワークに格納されているファイルは、ユーザが現在のマシン上にもっているファイルからは本質的に隔てられることができる。ユーザは、どのようなファイルデータが格納されているかだけでなく、そのファイルデータがどこに格納されているかも追跡しなければならない。例えば、音楽ファイルの場合、ユーザは、様々なシステム上でコピーを保持し、どの音楽ファイルがどこに置かれているかという追跡を試みることを余儀なくされる。このことは、ファイルがローカルに格納されている場合であっても、ファイルを見つけることを困難にさせ得る。
ファイルの共有は、ユーザがもっているファイルを見つけ、そのファイルに戻ることが困難な場合もあることによっても複雑にされる。ユーザは、特定のファイルをどこにどのようにして格納したかを思い出すことが難しいと思う場合もあり得る。1組のフォルダ、さらに同様のファイルのグループも与えられると、ユーザはしばしば、自分が探しているファイルを素早く見つけることが難しいと感じる。見つけるのが難しい場所に格納されているファイルの場合、突き止めるのはより一層複雑である。ユーザが、ネットワーク上のファイルを見つけ、そのファイルに戻ることが難しい場合もある。ユーザは通常、ネットワーク上でファイルを見つけ、共有するのに必要とする様々なサイトおよび名称を記憶し、または書き写さなければならない。
ファイルの編成および共有は、名前空間が可変であり、このことが、どれが「正しい」かに関して、ユーザを混乱させ得ることによっても複雑にされる。このことは、様々な命名規則、制限などがあるネットワークにおいては特に当てはまる。例えば、あるオペレーティングシステムは、認識可能にするために、スペースのない短い名称を要求し得る。プログラムもしばしば、ファイルをそれ自体のディレクトリまたは他の名前空間に保存し、こうした保存は、ユーザがファイルへ戻る経路を見つけることを困難にさせ得る。プログラムはしばしば、ドキュメントを保存するデフォルトのディレクトリおよび場所を有している。ユーザはしばしば、ハードディスクの中を検索し、ファイルが格納されている場所について推測しなければならない。関連する項目はしばしば、別々の場所にも格納される。ユーザが所有する関連ファイルは、ハードディスクなどの別々の部分に格納されることができる。この問題は、多数の内容タイプ(例えば、画像、音楽、映像)を有するデジタルメディアサービスの開発ではより一般的となる。
本発明の実施形態は、上述および他の欠点を克服するシステムおよび方法に関する。より詳細には、本発明の実施形態は、項目を共有するシステムおよび方法に関する。
静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法が提供される。静的および動的リストは、仮想フォルダタイプとして作成されることができる。本発明の一態様によると、ユーザは、クエリを構築し、項目を見つけ、次いで、その項目を他のユーザと共有することができる。ユーザは、クエリによって発見された項目(静的リスト)のみを共有するための、あるいは、発見された項目、および今後基準を満たす他の項目(動的リスト)を共有するための選択肢を与えられる。こうしたタイプのリストは、ディスク上の実際の物理的な基底ファイルシステム構造でなく、項目のメタデータに基づく様々なビューを用いてユーザに項目を見せるという、仮想フォルダのプロパティを利用する。
本発明の別の態様によると、静的リストとは、特定の順序で並べられ、任意選択的に各項目ごとに注釈をつけることができる項目からなるフォルダを含む。こうした注釈は、項目の一部ではなく、実際のリストに属す。静的リストのいくつかの例は、買物リスト、音楽再生リスト、および画像のスライドショーである。本発明によると、ユーザは、静的リストを他のユーザと共有することができる。静的リストが共有されると、実際の静的リストは、共有者のマシンまたはサーバ上の元の位置に残され、リストおよび参照項目にアクセスするための許可が被共有者(sharee)に与えられる。与えられるアクセス許可は、共有者が共有時に何を指定するかによって決定される。例えば、共有者は、被共有者に、読取りアクセスのみをもたせるか、または読取り/書込みアクセスをもたせてリストを共有させるかなどを決定することができる。共有者が、項目へのアクセス許可を与えることができない(共有者自身が、この操作を行うためのアクセス許可をもっていないため)場合、共有者は、共有時に、被共有者がその項目にアクセスすることができない可能性があると通知される。処理が終了すると、被共有者は、共有者のコンピュータにあるリストおよびその参照項目にリモートアクセスすることができる。共有者が、後になって、項目を追加または削除することによってリストを変更した場合、こうした項目も、被共有者による項目へのアクセスを許可しまたは禁止するように、自動的にアクセス許可がやり直される。一実施形態では、項目が静的リストに出入りするときに、動的に項目へのアクセス許可をやり直すこともできる。というのは、静的リストの実際の定義は、変化するときを監視され得るデータベース中に存在するからである。
本発明の別の態様によると、動的リストとは、スコープおよび1組の基準に基づく1組の項目を含む。例えば、ユーザは、ローカルマシン上のデータストレージすべてとして定義されたスコープ、および作成者=Xという基準を有するクエリを作成することができる。ユーザが動的リストをもっている場合、その動的リストは、共有されることができる。ユーザが動的リストを共有すると、次の動作が実施される。ユーザが、その時点で動的リスト中に現在ある項目のみを共有したいのか、あるいは、今後動的リストに出入りするどの項目も共有したいのかに関して、初期判定が行われる。ユーザが、動的リスト中に現時点で存在する項目のみを共有したい場合、動的リスト中にあるものを表す静的リストが生成され、この静的リストが共有される。そうではなく、ユーザが、真の動的リストを共有させたい場合、動的リストの基準を満たす項目すべてが共有される。このことは、項目は、共有が起こっているマシン上の元の場所に残され、被共有者に項目へのアクセス権をもたせるように項目がアクセス許可されることを意味する。共有者が、項目へのアクセス許可を与えることができない(共有者自身が、この操作を行うためのアクセス許可をもっていないため)場合、共有者は、共有時に、被共有者がその項目にアクセスすることができない可能性があると通知される。処理が終了すると、被共有者は、共有者のコンピュータにあるリストおよびその参照項目にリモートアクセスすることができる。動的リスト中のいずれかの項目が、動的リストの基準を満たさないように項目のプロパティを変更させた場合、こうした項目は、適切にアクセス許可をやり直される。同様にして、動的リストに属さないいずれかの項目が、スコープに該当し、動的リストの基準を満たすように変化した場合、そうした項目も、動的リストが共有されるためのアクセス権をユーザに与えるようにアクセス許可をやり直される。
本発明の別の態様によると、ユーザは、個々の項目を共有することも選ぶことができる。共有処理は、ユーザ(別名共有者)が、共有されるべき項目を選択することで始まる。ユーザは、項目が共有される相手となる被共有者、およびこの被共有者に割り当てられるべきアクセス許可も選択する。アクセス許可の1つのタイプの例は、項目に対して読取りアクセスのみを提供することであろう。
本発明の別の態様によると、共有される項目は、共有者のマシン上の元の場所に残される。言い換えると、共有される項目は移動されず、その代わり被共有者は、共有者のマシン上の項目へのアクセス権を与えられる。処理の一部として、システムは、被共有者が、共有される項目にアクセスできることを検証する。
本発明の別の態様によると、本システムは、共有されている項目を、被共有者によってリモートにアクセス可能なようにする。例えば、ファイル共有が用いられる一実施形態では、システムは、共有される項目がそれによってアクセスされることができるファイル共有が存在することを検証する。システムは最初に、共有される項目に対してファイル共有が既に存在するかどうか調べる。ファイル共有が既にある場合、システムは、そのファイル共有を用いて、項目をリモートアクセス可能にし、ファイル共有におけるアクセス許可が、被共有者がそうした項目にアクセスすることを可能にするように、確実に正しいものにする。
本発明の別の態様によると、本システムは、アクセス制御リスト(ACL)および他のいずれかのアクセス許可が設定されることを検証する。この処理の一部として、ユーザが項目を共有させると、ユーザは、こうした項目を誰と共有したいか尋ねられる。このとき、ユーザは、どのようなアクセス許可を被共有者に与えたいかも尋ねられる。例えば、被共有者は、項目を読み取るだけのアクセス許可を与えられる場合もあり、あるいは、項目を変更するためのアクセス許可を与えられる場合もある。ユーザが被共有者向けに要求したアクセス許可に基づき、それに従って項目に対するセキュリティACLが設定され、ユーザによって要求されたアクセス許可が認められる。
本発明の別の態様によると、本システムは、暗号化ファイルシステム(EFS)およびデジタル著作権管理(DRM)などの保護システムに伴うどの問題も解決する。言い換えると、いくつかの例では、ユーザは、EFSのようなものによって保護される項目を共有している場合がある。この場合、システムは、マシン上のポリシーまたは項目に対するDRMによって共有が許可されると、項目が確実に共有され得るように試みる。
本発明の別の態様によると、本システムは、被共有者が、システムにリモートに接続し、存在するどのセキュリティ層を介しても共有資源に安全にアクセスすることを可能にする。例えば、セキュリティ層の1つがファイアウォールである一実施形態では、システムはファイアウォールを構成する。言い換えると、デフォルトで、ほとんどのコンピュータにおいてファイアウォールが有効にされる。ファイアウォールまたは他のセキュリティ層が有効にされても、ユーザが依然として項目を安全に共有できるようにすることが望ましい。
本発明の別の態様によると、共有トランザクションの詳細が記録される。言い換えると、共有操作が完了すると、システムは、トランザクションについての情報を記録する。追跡される情報は、何が共有されたか、誰と共有されたか、およびいつ共有されたかなどを含み得る。この情報を追跡し記録することによって、共有者は、共有者のマシンから共有されている項目すべてが何であるか、こうした項目を誰と共有しているか、およびこうした被共有者がどのようなアクセス権をもっているかを後で判定することができる。
本発明の別の態様によると、項目を見つけやすくするために、共有者は、システムに、共有者のマシンから共有項目に直接アクセスするためのリンクを被共有者へ送らせることもできる。被共有者は、共有者が被共有者に何を共有させているか調べるために、共有者のマシンに問合せを行うこともできる。
上述された本発明の実施形態は、ユーザが、ドキュメント、連絡先、およびeメールのような個々の項目を共有することを可能にすることが理解されよう。このことは、ユーザがフォルダを共有させることのみを可能にし、個々のファイル、項目、またはリストの共有という概念をもたない公知のシステムとは対照的である。本発明を用いることにより、ユーザは、データを共有するためにフォルダ中にデータを編成する必要がない。ユーザは、項目を選択し、項目を共有すると決定するだけでよい。このことは、ユーザに、セキュリティに関してさらに詳細なレベルを提供する。従来、ユーザは、フォルダを共有することしかできなかった。ユーザは、フォルダを共有するとき、共有しているユーザに対するアクセス許可を、フォルダレベルで設定した。ユーザは、フォルダレベルでアクセス許可を与えられ、フォルダ内に置かれている全項目が、同じアクセス許可をもつようになった。個別の項目共有を用いると、ユーザは、フォルダ内の個々の項目を様々な被共有者に容易に共有させることができ、被共有者それぞれに異なるアクセス許可を与えることができる。さらに、被共有者は、共有者のマシン上のどこに共有項目があるかを心配しなくてよい。共有者は、自分のマシン上の異なる10箇所の場所にある10個の項目を共有させることができるが、被共有者は、この操作に関与させられない。また、被共有者は、共有者のマシンに接続し、被共有者に使用可能な項目すべてのリストを返されることができる。
本発明の態様および利点は、添付の図面と併せ読みながら以下の詳細な説明を参照することによってよりよく理解されるので、本発明の上記の態様およびそれに伴う利点の多くが、より容易に理解されよう。
項目を共有するためのシステムおよび方法が提供される。項目は、個別に共有されることもでき、リストの部分として含められることもできる。静的および動的リストは、仮想フォルダタイプとして作成されることができる。仮想フォルダは、ファイルシステム用に現在使われているのと同じまたは類似したユーザインターフェースを使用する。仮想フォルダは、正規のファイルおよびフォルダ(ディレクトリとしても知られる)を、ディスク上の実際の物理的な基底ファイルシステム構造でなく、ファイルおよびフォルダのメタデータに基づく様々なビューを用いてユーザに見せる。ファイルシステムを管理するのに現在用いられているのと同様の制御を利用してファイルおよびフォルダをユーザが操作することを可能にする場所非依存ビューが作成される。概して、このことは、ユーザが、システムの別個の部分として行われる管理および編成ではなく、ファイル自体の中の固有のプロパティに基づいて自分のファイルを編成し配置し直すことができることを意味する。仮想フォルダは、ファイルまたは項目の1つのビューが、異なる物理的な位置にあるファイルまたは項目を見せることができるように、同じコンピュータ内部、複数のコンピュータ間、または異なるネットワーク上の場所など、複数のディスクドライブにある異なる物理的な位置にあるファイルまたは項目を表すことができる。一実施形態では、異なる項目またはファイルは、含められるために、IPネットワークを介して接続されればよい。
仮想フォルダの構築は、従来通り、非ファイルエンティティ用に用いられることもできる。このようなアプリケーションは、従来の非ファイルエンティティを表示するための、ファイルおよびフォルダ(つまり、オブジェクトおよびコンテナ)に類似した1組のユーザインターフェースを有することになる。このような非ファイルエンティティの一例は、eメールであり、別の例は、連絡先データベースにある連絡先情報であろう。このようにして、仮想フォルダは、表示されているデータがファイルのものであるか、非ファイルエンティティのものであるかにかかわらず作用する、場所非依存の、メタデータに基づくビューシステムを提供する。概して、こうした態様は、ユーザに、共通ユーザインターフェース技術(ドラッグアンドドロップ、ダブルクリックなど)ならびに様々なデータタイプの十分な統合強化両方を用いて、自分のファイルおよびデータを操作させるという点で、一層の柔軟性を可能にする。
図1および以下の説明は、本発明の実施形態を実装することができる適切な計算機環境の、簡潔で一般的な説明を提供することを意図している。そうすることが必要なわけではないが、パーソナルコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的なコンテキストにおいて、本発明が説明される。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データ型を実装するルーチン、プログラム、キャラクタ、コンポーネント、データ構造などを含む。当業者であれば理解するであろうが、本発明は、可搬型装置、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施されることができる。本発明は、通信ネットワークを介してリンクされるリモート処理装置によってタスクが実施される分散型計算機環境でも実施されることができる。分散型計算機環境では、プログラムモジュールは、ローカルおよびリモートメモリ記憶装置両方に配置されることができる。
図1を参照すると、本発明を実装する例示的なシステムは、汎用計算装置を、従来のパーソナルコンピュータ20の形で含み、このコンピュータは、処理ユニット21、システムメモリ22、およびシステムバス23を含む。システムバス23は、システムメモリ22を含む様々なシステムコンポーネントを処理ユニット21に結合する。システムバス23は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかの種類のバス構造のいずれでもよい。システムメモリは、ROM(読出し専用メモリ)24およびRAM(ランダムアクセスメモリ)25を含む。BIOS(基本入出力システム)26は、例えば起動中にパーソナルコンピュータ20内部の要素の間で情報を転送するのを助ける基本ルーチンを含み、ROM24に格納される。パーソナルコンピュータ20は、ハードディスク39からの読出しまたはそこへの書込みを行うハードディスクドライブ27、着脱式磁気ディスク29からの読出しまたはそこへの書込みを行う磁気ディスクドライブ28、および、CD−ROMや他の光学媒体などの着脱式光ディスク31からの読出しまたはそこへの書込みを行う光ディスクドライブ30をさらに含む。ハードディスクドライブ27、磁気ディスクドライブ28、および光ディスクドライブ30は、それぞれハードディスクドライブインターフェース32、磁気ディスクドライブインターフェース33、および光ドライブインターフェース34によって、システムバス23に接続される。ドライブおよびそれに関連するコンピュータ可読媒体は、パーソナルコンピュータ20用に、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発な格納を実現する。本明細書で説明される例示的な環境では、ハードディスク39、着脱式磁気ディスク29、および着脱式光ディスク31を利用しているが、コンピュータによるアクセスが可能なデータを格納することができる他の種類のコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、RAM(ランダムアクセスメモリ)、ROM(読出し専用メモリ)なども例示的な動作環境において使用され得ることが、当業者には理解されよう。
オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38など、いくつかのプログラムモジュールが、ハードディスク39、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納されることができる。ユーザは、キーボード40および指示装置42などの入力装置を介して、コマンドおよび情報をパーソナルコンピュータ20に入力することができる。他の入力装置(図示せず)は、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力装置はしばしば、システムバス23に結合されたシリアルポートインターフェース46を介して処理ユニット21に接続されるが、他のインターフェース、例えばパラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)によって接続されることもできる。モニタ47の形のディスプレイも、ビデオカードまたはアダプタ48などのインターフェースを介してシステムバス23に接続される。1つまたは複数のスピーカ57も、オーディオアダプタ56などのインターフェースを介してシステムバス23に接続されることができる。ディスプレイおよびスピーカに加えて、パーソナルコンピュータは通常、プリンタなど、他の周辺出力装置(図示せず)を含む。
パーソナルコンピュータ20は、リモートコンピュータ49など、1つまたは複数のパーソナルコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ49は、それぞれ別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共通ネットワークノードでよく、通常、パーソナルコンピュータ20に関連して上述された要素の多くまたはすべてを含む。図1に示した論理接続は、LAN(ローカルエリアネットワーク)51およびWAN(ワイドエリアネットワーク)52を含む。LAN51およびWAN52は、有線でも、無線でも、有線および無線の組合せでもよい。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、パーソナルコンピュータ20は、ネットワークインターフェースまたはアダプタ53を介してローカルエリアネットワーク51に接続される。WANネットワーク環境において使われる場合、パーソナルコンピュータ20は通常、モデム54、またはインターネットなどのワイドエリアネットワーク52を介した通信を確立する他の手段を含む。モデム54は、内部にあっても外部にあってもよく、シリアルポートインターフェース46を介してシステムバス23に接続される。ネットワーク接続された環境では、パーソナルコンピュータ20に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納されることができる。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使われ得ることが理解されよう。
後でより詳しく説明されるように、仮想フォルダは、ユーザが、ファイルを共有し、ファイル処理およびフォルダナビゲーション(ブラウジング)に関わる基本タスクを実施し、新規の特徴として利用され得るより高レベルの記憶性能を提供することをより容易にする。仮想フォルダは、ディスク上の実際の物理的な基底ファイルシステム構造でなく、ファイルおよび項目のメタデータに基づく様々なビューを用いて、ユーザにファイルおよび項目を見せる。
図2は、仮想フォルダシステム200のブロック図である。後でより詳しく説明されるように、仮想フォルダは、データが表示される方法を制御する「ピボット」をユーザが変更することを可能にする。一例として、ユーザは、音楽を、歌すべてからなるフラットリストとして見ることができ、こうした歌は、アルバムでグループ化されることができる。あるいは、ユーザは、ジャンル、アーティスト、または年などのみを表示するようにビューを切り換えることもできよう。ユーザは、タスクに適合したオブジェクトのみをすぐに見るようにビューを調整することができる。このことは、フォルダ内をさらにナビゲーションする必要(ダウンおよびバックアップ両方)をなくす、改善されたブラウジング経験を可能にする。同じ教訓および機能が、ファイルとして格納されない他のデータタイプの構築に当てはまる。例えば連絡先が、このようにしてユーザに公開され、使い慣れたインターフェース機能、ならびにそうした機能を操作する、フラットなアドレス帳によって提供されるよりも高品位のインフラストラクチャをユーザに与える。
図2に示されるように、仮想フォルダシステム200は、フォルダプロセッサ210、リレーショナルデータベース230、仮想フォルダ記述データベース232、他のシェルフォルダコンポーネント234、フォルダハンドラコンポーネント236、ならびにシェルブラウザおよびビューコンポーネント240を含む。フォルダプロセッサ210は、固有処理コードコンポーネント212、ハンドラファクトリコンポーネント214、プロパティライタコンポーネント216、行セットパーサコンポーネント218、クエリビルダコンポーネント220、列挙コンポーネント222、およびプロパティファクトリコンポーネント224を含む。
リレーショナルデータベース230は、システム内のすべてのファイルについてのプロパティを格納する。リレーショナルデータベース230は、連絡先(すなわち、非ファイル項目)のようないくつかの項目も、完全に格納する。概して、リレーショナルデータベース230は、それが含むファイルおよび項目のタイプについてのメタデータを格納する。リレーショナルデータベース230は、クエリビルダ220からSQLクエリを受け取る。リレーショナルデータベース230はまた、項目のプロパティである項目列ごとに1行ずつ、SQL行セットを行セットパーサコンポーネント218に送る。
仮想フォルダ記述データベース232は、仮想フォルダの記述を含む。仮想フォルダ記述データベース232は、フォルダ中に表示するタイプのリスト、初期フィルタ、および結果を示すための物理的な場所(スコープ)などのデータを、クエリビルダコンポーネント220に送る。
他のシェルフォルダコンポーネント234に関して、フォルダプロセッサ210は、すべてのファイルを含む多くのタイプの項目から既存のシェルフォルダに、ハンドラまたはプロパティに対する権限を委譲する。他のシェルフォルダコンポーネント234は、他のフォルダからプロパティファクトリ224にプロパティを送る。他のシェルフォルダコンポーネントはまた、ハンドラファクトリ214にハンドラを送る。
フォルダハンドラコンポーネント236は、連絡先のように、データベース中にのみ存在する項目のためのコード動作を提供する。この提供が、非ファイル項目がファイルと同様に動作することを可能にする。フォルダハンドラコンポーネント236は、ハンドラファクトリ214にハンドラを送る。
固有処理コードコンポーネント212のために、フォルダプロセッサ210は、項目のプロパティに基づいて特定のハンドラを直接実装する。固有処理コードコンポーネント212は、ハンドラファクトリ214にハンドラを送る。固有処理コードコンポーネント212およびフォルダハンドラコンポーネント236に対して、すべての名前空間のように、仮想フォルダは、その項目用の1組のハンドラ(コンテキストメニュー、アイコン、サムネイル、インフォチップ、...)を提供しなければならない。こうしたハンドラ(インフォチップ、データオブジェクト、ドラッグ−ドロップハンドラ、バックグラウンドコンテキストメニュー...)のほとんどに対して、仮想フォルダは、それが保有するすべてのタイプのための共通(固有)ハンドラを提供する。ただし、そのタイプの作成者が提供しなければならない他のハンドラ(項目自体に対するコンテキストメニュー、書込み可能プロパティストア、...)がある。デフォルトのハンドラも、オーバーライドされ得る。仮想フォルダは、ファイルに対してデフォルトハンドラを再度使用し、非ファイル項目に同じことを行わせる。
ハンドラファクトリ214は、IDリストを受け取り、コンテキストメニュー、アイコンなどを提供するコード動作を作成する。概して、フォルダプロセッサ210は、固有ハンドラ、外部ハンドラを使用することも、固有処理コードコンポーネント212、他のシェルフォルダコンポーネント234、およびフォルダハンドラコンポーネント236に関連して上述したように、ハンドラの入手を他のシェルフォルダに委任することもできる。ハンドラファクトリコンポーネント214は、ビューによって要求された通り、ビュー内シェルブラウザ240にハンドラを送る。ハンドラファクトリコンポーネント214は、プロパティライタ216にプロパティハンドラを送る。
プロパティライタ216は、カット、コピー、およびペーストなどのユーザの意図を、ファイルまたは項目に対するプロパティ権限に変換する。シェルブラウザおよびビューコンポーネント240は、直接処理(カット/コピー/ペースト)またはメタデータの編集などのデータをプロパティライタ216に送る。概して、仮想フォルダは、項目のプロパティに基づいた編成を提示するので、移動およびコピー(ドラッグ−ドロップ)などの操作は、そうしたプロパティに対する編集となる。例えば、作成者によってスタックされるビューにおいて、作成者1から作成者2へのドキュメントの移動は、作成者の変更を意味する。プロパティライタコンポーネント216は、この機能を実装する。
行セットパーサ218は、データベース行セットを受け取り、すべての項目プロパティをシェルIDリスト構造に格納する。行セットは、仮想フォルダの断片ごとの定義を受け取り、SQL文字列を構築し、このSQL文字列は次いで、データベースに対して発行されることができる。行セットパーサコンポーネント218は、列挙コンポーネント222にIDリストを送る。上述したように、行セットパーサコンポーネント218はまた、SQL行セットなどのデータを項目列ごとに1行ずつ、リレーショナルデータベース230から受け取り、列は項目のプロパティである。
クエリビルダコンポーネント220は、SQLクエリを構築する。クエリビルダコンポーネント220は、ナビゲーションからの新規フィルタなどのデータを、列挙コンポーネント222から受け取る。クエリビルダコンポーネント220はまた、フォルダ中で表示するタイプのリスト、初期フィルタ、および結果を示す物理的な場所(スコープ)などのデータを、仮想フォルダ記述データベース232から受け取る。クエリビルダコンポーネント220は、リレーショナルデータベース230にSQLクエリを送る。
概して、クエリビルダコンポーネント220は、1組の行(言い換えるとテーブル)を含む。これが、クエリの作成を実行する。行セットパーサコンポーネント218は、各行を受け取り、列名を用いて、行をIDリストに変形する。IDリストとは、名前空間において項目を参照するのに用いられる公知のシェル構造である。この変形が、仮想フォルダを、シェルのそれ以外の部分に関して他のどの名前空間とも同じようなものにさせる。このデータをキャッシュすることも、コストのかかり得るデータベースアクセスを最低限に抑えるのを助ける。
列挙コンポーネント222は、仮想フォルダへのナビゲーションに応答して動作する。上述したように、列挙コンポーネント222は、行セットパーサコンポーネント218からIDリストを受け取り、ナビゲーションからの新規フィルタをクエリビルダコンポーネント220に送る。列挙子222はまた、ナビゲーションの後でビューに挿入されるために返されるIDリストなどのデータを、シェルブラウザおよびビューコンポーネント240に送る。
プロパティファクトリコンポーネント224は、IDリストおよびプロパティ識別子を受け取り、そうしたプロパティ用の値を返す。プロパティファクトリコンポーネント224は、プロパティハンドラなどのデータを、ハンドラファクトリコンポーネント214から受け取る。上述したように、プロパティファクトリコンポーネント224はまた、他のフォルダのプロパティなどのデータを、他のシェルフォルダコンポーネント234から受け取る。プロパティファクトリコンポーネント224はまた、ビューによって要求された通り、項目のプロパティなどのデータを、シェルブラウザおよびビューコンポーネント240に送る。
シェルブラウザおよびビューコンポーネント240は、フォルダの内容をウィンドウに表示し、クリック、ドラッグ、およびナビゲーションなど、表示されたファイルまたは項目に伴うユーザ対話すべてを処理する。したがって、シェルブラウザおよびビューコンポーネント240は、ユーザ操作を受け取る。シェルブラウザおよびビューコンポーネント240は、フォルダに対して必要とするコード動作、この場合フォルダプロセッサ210に関するデータも入手する。
上述したように、仮想フォルダは、正規のファイルおよびフォルダ(ディレクトリとしても知られる)を、ディスク上の実際の物理的な基底ファイルシステム構造でなく、ファイルおよびフォルダのメタデータに基づく様々なビューを用いてユーザに公開する。したがって、本システムは、データベースに格納されているプロパティを受け取り、そのプロパティを、フォルダのようなコンテナとして表すことができる。ユーザは、フォルダを用いて作業することに既に慣れているので、同様に仮想フォルダを提示することによって、ユーザは、この新しいシステムにより速く適応することができる。
図3は、ユーザが、選択された項目を引き出すクエリを提供するルーチン300を示すフロー図である。ブロック302で、フォルダプロセッサは、ユーザからクエリを入手する。ブロック304で、フォルダプロセッサは、リレーショナルデータベースにクエリを渡す。ブロック306で、リレーショナルデータベースは、フォルダプロセッサに結果を戻す。ブロック308で、フォルダプロセッサは、仮想フォルダおよび項目の形でユーザに結果を提供する。
図4は、デフォルトのクエリまたはユーザからのクエリのどちらかに従って、仮想フォルダが構成され画面上に表示されるルーチン320を示すフロー図である。ブロック322で、ユーザが初めて仮想フォルダを開くとき、デフォルトのクエリが用いられる。このデフォルトクエリは、レジストリから取り出される。例えば、音楽ライブラリ用のデフォルトクエリは、アルバムでグループ化された歌すべてを示すことができよう。ブロック324で、フォルダプロセッサは、このクエリ用のクエリオブジェクトを構築し、次いで、このクエリをリレーショナルデータベースに渡す。ブロック326で、リレーショナルデータベースは、クエリの結果を生成し、この結果をデータベースの行および列としてフォルダプロセッサに返す。
ブロック328で、フォルダプロセッサは、こうした結果を受け取り、データの行および列から列挙構造に変換し、この構造は、ユーザが相互作用を行うために、フォルダビューによって、結果である仮想フォルダおよび項目を画面に投入するのに用いられる。判断ブロック330で、ユーザは、(異なるクエリまたは「ピボット」を発行することによって)ビューを変更するかどうか決定する。例えば、ユーザは、「すべてのアーティストを表示する」というピボットを発行することができよう。ユーザが、実際にビューの変更を望む場合、ルーチンは、ブロック324に戻り、ここで、フォルダプロセッサは、この新しいクエリをリレーショナルデータベースに渡し、新しい結果行および列を再度受け取り、新しい列挙構造を構築する。処理は次いで、上述したように継続し、フォルダビューがクリアしアップデートし、列挙子を用いて画面に「アーティスト」オブジェクトを描画する。
一例では、ユーザがその中をナビゲートすることができるコンテナを表すアルバムオブジェクトが提供される。例えば、「ビートルズ」というアルバムのダブルクリックは、ビートルズの歌すべてを見るためのビューをナビゲートする。フォルダプロセッサは、「ビートルズのすべての歌を表示する」というクエリをリレーショナルデータベースに発行し、リレーショナルデータベースは、そうした歌に関するデータ行および列を返す。フォルダプロセッサは、こうしたすべての歌の列挙子を作成し、次いで、列挙子が画面に描画される。
ユーザはまた、仮想フォルダをブラウズしているどの時点でも、ビューを選ぶことができる。上記の例から、ビートルズの歌のみを表示するように絞り込んだ後、ユーザは、歌をアルバムとしてのみ表示するようにビューを変更することができる。項目のビューを別の表現に変更する処理は、「スタッキング」と呼ばれる。これは、項目が、その表現に基づく「スタック」に概念的に配列されるからである。この場合、歌は、様々なアルバムそれぞれ向けのスタックに配列し直される。ユーザは次いで、こうしたスタックの1つをナビゲートし、その特定のアルバムにある歌のみを見る。再度、ユーザは、プロパティ(例えば格付け)に基づいて、こうした残りの歌のビューをスタックに配列し直すことができる。格付けプロパティが選択された場合、そのビートルズのアルバムにある歌は、1つ星、2つ星、または3つ星の格付けのスタックに表示されることになる。
各クエリの結果は、どの物理的な場所がスコープに含まれるかに依存する。例えば、スコープは、ユーザの「マイドキュメント」フォルダ中のフォルダのみを含むように作成されることができる。あるいは、スコープは、コンピュータ上のすべてのフォルダ、またはネットワーク接続された複数のコンピュータ上のすべてのフォルダさえも含むことができよう。ユーザは、スコーププロパティシートを介して、スコープを閲覧し変更することができる。一例では、スコーププロパティシートは、仮想フォルダ上で右クリックし、「プロパティ」を選ぶことによって表示されることができる。ユーザは、スコープに新規フォルダを追加することも、以前追加されたフォルダを削除することもできる。
仮想フォルダが特に有用性をもたらすユーザグループは、知識労働者である。仮想フォルダは、知識労働者が、ファイルタイプ、プロジェクト、ケース番号、作成者などによって、ドキュメントの閲覧を容易に切り換えることを可能にする。知識労働者はそれぞれ、ドキュメントを編成する異なる方法をもつ傾向にあるので、こうした異なる嗜好に適合させるのに仮想フォルダが使用されることができる。
図5は、ハードドライブ上の物理的なフォルダ配置によるフォルダ構造のツリー図である。この物理的なフォルダ配置は、NTFSまたは他の既存のファイルシステムに基づき得る、従来のフォルダ実装形態に基づく。このようなフォルダは、その構造が、ディスク上での実際の物理的な基底ファイルシステム構造に基づくので、物理フォルダと呼ばれる。後でより詳しく説明されるように、物理フォルダは、ユーザに、物理フォルダを操作するのに現在用いられているのと同様のやり方でファイルおよびフォルダを操作させる、場所非依存ビューを作成する仮想フォルダとは対照的である。
図5に示されるように、フォルダ400は、「マイドキュメント」フォルダである。第1レベルにおいて、フォルダ400は、それぞれクライアント1、2、および3に対応する、フォルダ410、420、および430を含む。第2レベルにおいて、フォルダ410、420、および430はそれぞれ、選択されたクライアント用のコントラクトにそれぞれ対応するフォルダ411、421、および431をそれぞれ含む。第3レベルにおいて、フォルダ411、421、および431はそれぞれ、2001年にそれぞれ対応するフォルダ412、422、および432をそれぞれ含む。第3レベルにおいて、フォルダ411、421、および431はそれぞれ、2002年にそれぞれ対応するフォルダ413、423、および433もそれぞれ含む。
図5に示されるような物理的なフォルダファイル構造のナビゲートを望むユーザに対して、いくつかの障害が提示されることが理解されよう。例えば、ユーザは、自分が作成したコントラクトすべてを用いて作業したい場合、最初に、クライアント1向けのコントラクトを用いて作業するためにフォルダ411をナビゲートする必要があり、次いで、クライアント2向けのコントラクトに到達するためにフォルダ421をナビゲートし直さなければならず、再度、クライアント3向けのコントラクトを求めてフォルダ431をナビゲートし直さなければならない。この配置は、ユーザが、コントラクトすべてにアクセスすることを困難にし、概して、コントラクトをすべて同時に閲覧し処理することを妨げる。同様に、ユーザは、2001年に作成されたコントラクトをすべて閲覧したい場合、フォルダ412、422、および432をそれぞれナビゲートし、かつナビゲートし直さなければならない。後でより詳しく説明されるように、本発明の実施形態の仮想フォルダは、改良型ファイルシステム構造を提供する。
図6は、仮想フォルダ構造のツリー図である。後でより詳しく説明されるように、仮想フォルダは、ユーザに、自分のファイルおよびフォルダを便利なやり方で操作させる場所非依存ビューを作成する。図6に示すように、仮想フォルダは、スタックとして表される。仮想フォルダ500は、「すべての項目」フォルダである。第1レベルにおいて、仮想フォルダ500は、クライアント、コントラクト、および年にそれぞれ対応する、仮想フォルダ510、520、および530を含む。後でより詳しく説明されるように、この構造は、ユーザが、所望のパラメータに従ってファイルにアクセスすることを可能にする。
図7は、図6の仮想フォルダ構造のツリー図であり、第2レベルにおいて、仮想フォルダ510は、コントラクトおよび年にそれぞれ対応する仮想フォルダ511および512をさらに含む。言い換えると、仮想フォルダ510のクライアントスタックは、コントラクトおよび年によってさらにフィルタリングされる。どのファイルおよび項目が仮想フォルダそれぞれに含まれるか判定する処理は、後でより詳しく説明される。
図8は、図7の仮想フォルダ構造のツリー図であり、第3レベルにおいて、仮想フォルダ511は、年に対応する仮想フォルダ513を含む。言い換えると、仮想フォルダ511のコントラクトスタックは、年によってさらにフィルタリングされる。仮想フォルダ510、511、および513に対する仮想フォルダ構造は、クライアント、コントラクト、および年によって構造化されているが、図9を参照して後でより詳しく説明されるように、仮想フォルダは、他の構造化シーケンスが起こることを可能にすることが理解されよう。
図9は、図6の仮想フォルダ構造のツリー図であり、第2レベルにおいて、仮想フォルダ520は、クライアントおよび年に対応する仮想フォルダ521および522にさらにフィルタリングされている。第3レベルにおいて、仮想フォルダ521は、年に対応する仮想フォルダ523にさらにフィルタリングされている。図8および9の編成構造の間の対比は、仮想フォルダシステムの柔軟性を示すのに役立つ。言い換えると、仮想フォルダシステムにおいて、ユーザは、図5に示されるような物理的ファイル構造の場所依存ビューに依存するのとは反対に、所望のパラメータによって仮想フォルダをナビゲートすることができる。
図10は、ドキュメントライブラリのスタックを表示するスクリーン表示600を示す図である。上述したように、スタックは、仮想フォルダタイプを表すのに使用されることができる。後でより詳しく説明されるように、スクリーン表示600は、クイックリンク要素610〜613、フィルタ要素620〜626、アクティビティ要素630〜633、情報および制御要素640〜645、ならびに仮想フォルダスタック651〜655を含む。
クイックリンク要素は、「すべてのカテゴリ」クイックリンク610を、「すべての作成者」クイックリンク611、「1月の作業」クイックリンク612、および追加クイックリンク613の表示の選択の上に含む。後でより詳しく説明されるように、クイックリンクは、ユーザによって、仮想フォルダの所望のナビゲーションを実施するために選択されることができる。クイックリンクは、システムによって提供されることができ、一部のクイックリンクは、ユーザによって作成され保存されることができる。
フィルタ要素は、「フィルタリング」インジケータ620、入力欄621、「日付でフィルタリング」インジケータ622、「年」セレクタ623、「作成者を選択」セレクタ624、「カテゴリを選択」セレクタ625、および「その他のフィルタ」セレクタ626を含む。「フィルタリング」インジケータ620は、その下の項目が、仮想フォルダまたは項目をフィルタリングするのに使われ得ることをユーザに伝える。入力欄621は、ユーザが、所望の新規フィルタ項をタイプ入力することができる領域を提供する。「日付でフィルタリング」インジケータ622は、「年」セレクタ623から日付を選択することによって、仮想フォルダまたは項目が、選択された年でフィルタリングされることができることをユーザに伝える。「作成者を選択」セレクタ624は、ユーザが、ある特定の作成者によってフィルタリングすることを可能にする。「カテゴリを選択」セレクタ625は、ユーザが、選択されたカテゴリによってフィルタリングすることを可能にする。「その他のフィルタ」セレクタ626は、ユーザが、追加フィルタを表示させることを可能にする。
アクティビティセレクタは、「新規カテゴリの作成」セレクタ630、「アクティビティ」セレクタ631および632、ならびに「その他のアクティビティ」セレクタ633を含む。後でより詳しく説明されるように、提示されるアクティビティは、一般に望ましい機能に関するものでよく、あるいはより具体的には、現在表示されている仮想フォルダタイプに有用なアクティビティを対象としてもよい。例えば、「新規カテゴリの作成」セレクタ630は、新規スタックによって表される新規カテゴリを作成するために、ユーザによって選択されることができる。
上述したように、アクティビティセレクタ631および632は、より具体的には、表示されているフォルダまたは項目のタイプを対象とすることができる。例えば、この表示は、「アクティビティ」セレクタ631および632が、添付書類の編集や作成など、ドキュメント用に特に調整されたアクティビティを対象とし得る、ドキュメントライブラリ向けとなり得る。このライブラリが、写真ライブラリである場合、「アクティビティ」セレクタ631および632は、写真アルバムの形成や他のユーザとの写真の共有など、写真を特に対象としたアクティビティとなることができよう。
情報および制御要素は、情報行640および641、制御行642、後退制御643、ならびに情報行644および645を含む。情報行640および641は、仮想フォルダまたは項目の現在のナビゲーションについての情報を提供する。本例では、情報行640は、現在のナビゲーションがドキュメントライブラリに対するものであることを示し、情報行641は、ドキュメントライブラリが記憶領域内にあることを示す、より完全なナビゲーションを示す。制御行642は、いくつかの標準制御を提供し、後退ボタン643は、ユーザがナビゲーションにおいて後退することを可能にする。情報行644は、現在のナビゲーションの内容についての数値情報を提供する。本例では、情報行644は、ドキュメントライブラリのスタック中に100MBを占める41個の項目があることを示す。情報行645は、付加情報、例えば選択されているファイルについての付加情報を提供するのに利用可能である。
ドキュメントライブラリのスタックは、「ABC Corp.」スタック651、「バックアップスタック」652、「事業計画」スタック653、「XYZ Corp.」スタック654、および「マーケティングリポート」スタック655を含む。スタックそれぞれの上の数字は、何個の項目が各スタック中にあるかを示す。例えば、「ABC Corp.」スタック651は、8個の項目を含むことが示されている。スタックの項目総数は、情報行644に示される項目の数になり、本例では、上述したように41個である。ユーザによって所望の項目を選択するのに使用され得る選択ボックスSBが提供される。「ABC Corp.」スタック651の選択は、図11に関連して後で説明されるように、そのスタックの項目のビューをもたらす。
図11は、図10の「ABC Corp.」スタック651中の項目を表示するスクリーン表示を示す図である。情報行640および641は、今度は、現在のナビゲーションが「ABC Corp.」スタックを表示していることを示すことが留意されるべきである。「ABC Corp.」スタック651は、ドキュメント1〜8にそれぞれ対応する8個のドキュメント751〜758を含むことが示されている。情報行644は、それに応じて、20MBのメモリを占める8個の項目があることを示す。図11のドキュメントは、ABC Corp.スタック中のスタックにさらに配列されることができる。言い換えると、図12〜16に関連して後で説明されるように、ABC Corp.スタック651によって表される仮想フォルダにおいて、ドキュメントを保持するように、追加の仮想フォルダが編成されることができる。
図12は、図11のドキュメントに対してスタック機能が選択されているスクリーン表示を示す図である。図12に示すように、ユーザは、機能ボックス760を引き出すことができる。機能ボックス760は、「ビュー」選択761、「アイコンを配置」選択762、「スタッキング」選択763、「リフレッシュ」選択764、「内容をもつフォルダを開く」選択765、「カット」選択766、「コピー」選択767、「取消し」選択768、「新規」選択769、および「プロパティ」選択770を含む。選択ボックスSBは、「スタッキング」選択763を囲むように表示される。
図13は、図12のスタック機能に対して、「作成者でスタックする」パラメータが選択されているスクリーン表示を示す図である。図13に示すように、様々なスタッキング選択肢を提示するボックス780が表示される。スタッキング選択肢は、「アンスタッキング」選択肢781、「カテゴリでスタックする」選択肢782、「作成者でスタックする」選択肢783、および「ユーザでスタックする」選択肢784を含む。選択ボックスSBは、「作成者でスタックする」選択肢783を囲むように表示される。
図14は、図13のファイルが、作成者によってスタックされているスクリーン表示を示す図である。図14に示すように、スタック791および792は、それぞれ作成者ボブおよびリサに対応する。スタックそれぞれの上の数字によって示されるように、ボブのスタック791は、2つの項目を含み、リサのスタック792は、5つの項目を含む。項目758(ドキュメント8に対応する)は、作成者をもたないので、「作成者」スタックに含まれない。スタック791および792は、スタックが「ABC Corp.」スタック651中などの様々なレベルで編成され得ることを示す。したがって、仮想フォルダは、「リサ」スタック792が、ドキュメントライブラリ中の「ABC Corp.」スタック651中にあるように、複数のレベルで形成され得る。
図15は、図14のファイルをスタックし直すために、「カテゴリでスタックする」選択肢がさらに選択されているスクリーン表示を示す図である。図15に示すように、選択ボックスSBは、「カテゴリでスタックする」選択肢782を囲んでいる。項目のいくつかは既にスタック791および792にスタックされているので、「カテゴリでスタックする」選択肢782の選択は、図16を参照して後でより詳しく説明されるように、項目をスタックし直す。
図16は、図14のファイルが、カテゴリによってスタックし直されたスクリーン表示を示す図である。図16に示すように、スタック793および794は、「XYZ Corp.」および「マーケティングリポート」カテゴリにそれぞれ対応する。ドキュメント1および2に対応する項目751および752は、どの追加カテゴリにも指定されていないので、他のカテゴリのスタックのどれにも入らない。
図17は、物理フォルダに対するクイックリンクが選択されているスクリーン表示を示す図である。選択ボックスSBは、「すべてのフォルダ」クイックリンク616を囲むように表示される。図18に関連して後でより詳しく説明されるように、「すべてのフォルダ」クイックリンク616は、物理フォルダのビューの切換えを可能にする。
図18は、物理フォルダを表示するスクリーン表示を示す図である。図示されている物理フォルダは、図17の仮想フォルダスタックのファイルを含む。言い換えると、図17のスタック651〜655に含まれる項目は、システム内の特定の物理フォルダにも含まれる。こうした物理フォルダは、図18では、このコンピュータに置かれている「マイドキュメント」フォルダ851、このコンピュータに置かれている「デスクトップ」フォルダ852、ハードドライブC:に置かれている「Foo」フォルダ853、サーバに置かれている「マイファイル」フォルダ854、外部ドライブに置かれている「外部ドライブ」フォルダ855、別のコンピュータに置かれている「マイドキュメント」フォルダ856、および別のコンピュータに置かれている「デスクトップ」フォルダ857として示されている。
図18に示すように、ユーザは、図17の仮想ファイル表現から、図18の物理ファイル表現に切り換えることができる。この切換えは、ユーザが、現在のタスク用にどちらが望まれるかに応じて、仮想ファイル表現と物理ファイル表現の間をトグルすることを可能にする。物理フォルダ851〜857のそれぞれ異なる場所は、後でより詳しく説明されるように、仮想ファイルシステムのスコープが比較的広いものであり得ることも示す。
図19は、ユーザが、仮想フォルダを直接操作することができるルーチン880を示すフロー図である。後でより詳しく説明されるように、仮想フォルダの操作のために提供される仕組みは、通常のフォルダを操作するために現在用いられている仕組み(例えば、クリックアンドドラッグ、コピー、ペーストなど)と似ている。図19に示すように、ブロック882で、システムは、表示オブジェクトとして表される仮想フォルダを直接処理するためにユーザが実施することができる規定動作を提供する。ブロック884で、ユーザは、規定動作を実施する。上述したように、規定動作の一例は、内容を別の仮想フォルダにコピーするために、ユーザが仮想フォルダをクリックしドラッグすることであろう。ブロック886で、仮想フォルダおよび/または内容は、ユーザによって実施される動作で指示されたように操作される。
図20は、新規のWest Coastスタック656が図10のスタックに追加されたスクリーン表示を示す図である。West Coastスタック656は、ユーザが「West Coast」という新規カテゴリを作成することによって形成された。最初に作成されたとき、新規West Coastスタック656は空であり、項目をもたない。図20の実施形態では、2つの項目が、West Coastスタック656に追加されている。スタックに項目を追加する1つの方法は、ある特定の項目を選択し、追加カテゴリを変更するか、またはその項目用のカテゴリメタデータに追加カテゴリを追加することであり、例えば図20の実施形態で行われているように、2つの項目にカテゴリ「West Coast」を追加する。この処理は、カテゴリデータは、アドホックプロパティタイプである項目用のメタデータプロパティであることを示す。言い換えると、このタイプのプロパティは、暗示的な意味を何ももたず、ユーザによって任意の値を割り当てられることができる。例えば、「プロパティ」というカテゴリは、どの値ももつことができるが、「作成者」プロパティは、人名であるべきである。図21を参照して後でより詳しく説明されるように、項目は、他のスタックからWest Coastスタック656にコピーされるために、クリックされドラッグされることもできる(この場合、項目のカテゴリは、「West Coast」を含むように自動的にアップデートされる)。これに関して、図20は、内容がコピーされるのに備えて、選択ボックスSBがABC Corp.スタック651を囲んでいることを示す。
図21は、ABC Corp.スタック651からWest Coastスタック656にファイルをコピーするのに、直接処理が用いられるスクリーン表示を示す図である。言い換えると、図20に示したように、ユーザは、ABC Corp.スタック651を選択し、次いで、図21に示すように、ユーザは、West Coastスタック656に、コピーされるスタックをクリックしドラッグしている。したがって、図20で2つの項目を有していたWest Coastスタック656は、ここでは、ABC Corp.スタック65lからの8個の追加項目を含む合計10個の項目を含むことが示される。ABC Corp.スタック651からの項目がWest Coastスタック656にコピーされたとき、このコピーは、8個の項目のカテゴリ記述を、元の「ABC Corp.」カテゴリを含んだ上に「West Coast」カテゴリも含むように修正することによって遂行された。このことは、実施され得る直接処理の1つのタイプを示している。
直接処理の別の例は、項目を右クリックし、消去を選択することである。一実施形態では、ユーザによって消去機能が選択されると、ユーザは、項目が完全に消去されるべきか、または単に現在の仮想フォルダから削除されるべきか、問合せを受ける。項目が、上述したように単に現在の仮想フォルダのカテゴリスタックから削除されることになった場合、項目についてのメタデータから所望のカテゴリを削除することによって遂行されることができる。言い換えると、ABC Corp.スタック651からWest Coastスタック656にコピーされた項目の1つが、次いで、West Coastスタック656から削除されることになった場合、そのファイルのカテゴリデータを、「West Coast」カテゴリを含まないように修正することによって遂行される。
図22は、システムが、新規フィルタ項を動的に生成するルーチン900を示すフロー図である。フィルタ項は、仮想フォルダを操作するのに使用される。フィルタ項は本質的に、1組の項目を絞り込む1組のツールとして使用される。一実施形態では、フィルタは、(ユーザインターフェースにおいて、クリック可能なリンクまたはドロップダウンメニューとしてユーザに提示される)メタデータカテゴリおよびその値からなる。ユーザは、ディスプレイ上の、現在の結果を示す項目の組をフィルタリングするために、フィルタ項をクリックする。
図22は、どのようにしてフィルタが動的に生成され得るかを示す。図22に示すように、ブロック902で、このディスプレイ上のコレクションにある項目の(メタデータの)プロパティが吟味される。ブロック904で、項目の共通プロパティに基づいて、フィルタ項候補が動的に生成される。ブロック906で、フィルタ項候補は、項目をフィルタリングするための可能な選択対象として、ユーザに提示される。この処理の例として、システムは、1組の項目のプロパティを吟味することができ、項目が概して、「作成者」をプロパティとしてもっている場合、フィルタは、フィルタリングを行うための作成者リストを提供することができる。次いで、ある特定の作成者をクリックすることによって、その作成者をもたない項目が、ディスプレイ上の組から削除される。このフィルタリング処理は、ディスプレイ上の項目の組を絞り込む仕組みをユーザに提供する。
図23は、システムが、フィルタ項の選択に基づいて項目をフィルタリングするルーチン920を示すフロー図である。ブロック922で、ユーザは、新たなフィルタ項を入力するか、あるいは、システムによって提示されているフィルタ項の1つを選択する。上述したように、フィルタ項は、システムによって動的に生成されることもでき、予め設定されることもできる。ブロック924で、ディスプレイ上のコレクションにある項目は、選択されたプロパティがフィルタ項と合致するかどうかに関して評価される。例えば、フィルタ項が、「ボブ」によって作成された項目向けである場合、そうした項目は、作成者プロパティが「ボブ」を含むかどうかに従って評価される。ブロック926で、選択されたプロパティがフィルタ項に合致しない項目は、ディスプレイ上のコレクションから削除される。
図24は、図10のスタックが、項「AB」によってフィルタリングされたスクリーン表示を示す図である。図に示すように、フィルタ領域621に、ユーザによって項「AB」がタイプ入力されている。情報行640および641は、ディスプレイ中の項目は現在、項「AB」によってフィルタリングされた項目であることを示す。図に示すように、ABC Corp.スタック651は依然として、8個の項目を含み、バックアップスタック652は現在、3個の項目を含み、XYZ Corp.スタック654も、3個の項目を含む。情報行644はしたがって、合計で14個の項目があり、合計で35MBのメモリを占めることを示す。
図25は、図10のスタックが、項「ABC」によってフィルタリングされたスクリーン表示を示す図である。図24のフィルタ項「AB」に対して、ユーザは、完全なフィルタ項「ABC」を作るために追加文字「C」をタイプ入力しただけである。図25に示すように、情報行640および641はここでは、ディスプレイ上の項目が、項「ABC」を含む項目であることを示す。ABC Corp.スタック651は依然として、8個の項目を含むことが示されるが、バックアップスタック652はここでは、2つの項目のみを含む。情報行644はここでは、ディスプレイ上のスタックに合計で10個の項目があり、合計で25MBのメモリを占めることを示す。このように、図24および25は、どのようにしてユーザが新たなフィルタ項を入力することができ、次いで、どのようにしてそうしたフィルタ項が、ディスプレイ上に表示されている項目をフィルタリングするのに使われるかという例を提供する。
図26は、システムが提供したフィルタ項「2002年」が選択されているスクリーン表示を示す図である。上述したように、日付でフィルタリングするためのインジケータ622の下に、年の選択623は、2000年、2001年、または2002年を含む。選択ボックスSBは、2002年を囲むように表示され、ユーザが、希望するフィルタ項を選択していることを示す。
図27は、フィルタ項「2002年」が適用されたスクリーン表示を示す図である。「月を選択」セレクタ623Aという選択対象もさらに表示される。図27に示すように、フィルタ項「2002年」を適用した後、スタック中の項目の数が削減されている。より具体的には、ABC Corp.スタック651は現在、6個の項目を含み、バックアップスタック652は現在、8個の項目を含み、事業計画スタック653は現在、3個の項目を含み、XYZ Corp.スタック654は現在、5個の項目を含む。情報行644は現在、合計で22個の項目、合計で50MBのメモリを占めることを示す。情報行640および641はここでは、ディスプレイ上の項目がフィルタ項「2002年」を含むようにフィルタリングされている項目であることを示す。
図28は、フィルタリングのための月を選択するリストが提示されるスクリーン表示を示す図である。月のリストを含むボックス950が提供される。ボックス950は、ユーザが「月を選択」セレクタ623Aを選択していることによって、ディスプレイ上に提供されている。選択ボックスSBは、1月を囲むように表示される。
図29は、図28のスタックが、1月という月によってさらにフィルタリングされ、「日付」というフィルタ項をさらに示すスクリーン表示を示す図である。図29に示すように、情報行640および641は現在、ディスプレイ上の項目が、項「1月」でフィルタリングされた項目であることを示す。バックアップスタック652はここでは、2つの項目を含むことが示され、事業計画スタック653も2つの項目を含むことが示される。情報行644は、合計で4つの項目ディスプレイ上にあり、合計で10MBのメモリを占めることを示す。ユーザが、結果をある特定の日付にさらにフィルタリングしたい場合、「日付を選択」セレクタ623Bが提供される。
図30は、新規クイックリンクを作成するルーチン940を示すフロー図である。後でより詳しく説明されるように、クイックリンクは、ユーザが選択した、項目の組のビューを作成するためにユーザによってクリックされ得る、予め定義されたリンクである。一実施形態では、クイックリンクは、一種のピボットとして考えられ得る。クイックリンクは、仮想フォルダを取得する仕組みを提供する。クイックリンクのクリックは、(「お気に入り」のクリックが、ユーザにウェブサイトを見せるのと同じやり方で)ユーザに所望のフォルダを見せることができる。クイックリンクは、システムによって予め定義されることもでき、ユーザによって設定されることもできる。例えば、「すべての作成者」のクリックは、作成者でスタックされたビューを返すことができよう。「すべてのドキュメント」のクリックは、記憶領域すべてに渡るドキュメントすべてのためのフラットビューを返すことができる。ユーザは、独自のクイックリンクを作成することもできる。
図30に示すように、ブロック942で、ユーザは、現在のフィルタ項またはナビゲーションから、新規クイックリンクが形成されるべきであることを示すために、ディスプレイ上で選択を行う。ブロック944で、ユーザは、新規クイックリンク用の新しい名称を与える。ブロック946で、新規クイックリンクが保存され、ディスプレイ上のクイックリンクセクションにおいて新規クイックリンク名が提供される。
図31は、図29のフィルタリングに基づいて、「1月の作業」と呼ばれる新規クイックリンクを作成するスクリーン表示を示す図である。上述したように、図29において、スタックは、1月でフィルタリングされていた。図31において、ユーザは、図29のフィルタリングが新規クイックリンクとして保存されるべきであることを示し、新規クイックリンクに「1月の作業」という名前をつけている。したがって、1月の作業という新しいクイックリンク612が、ディスプレイのクイックリンクセクションに表示される。新規クイックリンクの形成に関して、ユーザは通常、「このコレクションをクイックリンクとして保存」などの選択肢を与えられる。
図32は、「すべての作成者」というクイックリンクが選択されているスクリーン表示を示す図である。図32に示すように、選択ボックスSBは、すべての作成者という選択611を囲んで表示される。クイックリンクによってアクセス可能であろうコレクションの他の例は、「すべての作成者」、「最近使ったドキュメント」、「すべての共有ドキュメント」、「作成したすべてのドキュメント」、「他ユーザによって作成されたすべてのドキュメント」、「デスクトップ」、および「すべてのタイプ」を含む。
図33は、図32の項目すべてからなるリストが提示されるスクリーン表示を示す図である。図33に示すように、項目名、作成者、更新日、タイプ、サイズ、および項目の場所を表示する列を示す情報行950が提供される。作成者1〜4にそれぞれ対応する作成者951〜954のリストが示される。
図34は、図33のリストから、「作成者1」が選択されているスクリーン表示を示す図である。作成者1のドキュメントは、ドキュメント1および2にそれぞれ対応するドキュメント951Aおよび951Bを含む。ドキュメント951Aは、作成者1によって作成され、2001年7月11日に更新され、マイクロソフトエクセルのファイルであり、282Kbのメモリを占め、\\サーバ1\フォルダ2という場所から取得されたことが示される。ドキュメント951Bは、作成者1によって作成され、2002年12月22日に変更され、マイクロソフトワードのファイルであり、206キロバイトのメモリを占め、マイドキュメント\フォルダ1という場所に物理的に格納されていることが示される。ドキュメント951Aおよび951Bの場所は、後でより詳しく説明されるように、本発明の実施形態の仮想フォルダが、異なる物理的な位置にある項目を含み得ることも示す。
図35は、新規ライブラリを作成するルーチン960を示すフロー図である。ライブラリの一例は、図10を参照して上述したドキュメントライブラリである。概して、ライブラリは、互いに関連づけられ得る、使用可能なタイプのファイルの大集団からなる。例えば、写真が1つのライブラリとなり、音楽が別のライブラリとなり、ドキュメントが別のライブラリとなることができる。ライブラリは、特定のタイプの項目に関係するツールおよびアクティビティを提供することができる。例えば、写真ライブラリには、スライドショーの作成や画像の共有など、写真の操作に関するツールおよびフィルタが存在し得る。図35に示すように、ブロック962で、選択された特性を有する項目を含むような新規ライブラリが作成される。ブロック964で、選択された項目が、ライブラリにグループ化される。ブロック966で、項目の、選択された特性に関する、または他の所望の機能に関するツールおよび/またはアクティビティが提供される。
図36は、様々な使用可能ライブラリからなるコレクションが示されるスクリーン表示を示す図である。図36に示すように、ライブラリは、ドキュメントライブラリ971、写真および映像ライブラリ972、音楽ライブラリ973、メッセージライブラリ974、連絡先ライブラリ975、TVおよび映画ライブラリ976、ならびにすべての項目ライブラリ977を含む。すべての項目ライブラリ977は、275項目を含むことが示され、これは、他のライブラリすべてを合わせた項目の総数である。情報行644は、合計で275項目、合計で700MBのメモリを占めることを示す。ドキュメントライブラリ971は、図10に関連して上述されたライブラリであることが留意されるべきである。
図37は、仮想フォルダコレクションのスコープを定義するルーチン990を示すフロー図である。後でより詳しく説明されるように、仮想フォルダシステムは、多数の物理的位置(例えば、様々なハードドライブ、様々なコンピュータ、様々なネットワーク上の場所など)にある項目を表すことができ、そうすることによって、ユーザにとって、項目すべてが容易にアクセス可能になる。例えば、ユーザは、複数の物理的場所にある音楽ファイルをただ一度の表示で提示され、そうしたファイルを一度に操作することができる。
図37に示すように、ブロック992で、項目が引き出されることになる物理的な場所に対するスコープが定められる。ブロック994で、クエリに応答して、項目が、スコープ内に定義された物理的な場所から引き出される。ブロック996で、クエリによって引き出された項目すべてが、ただ一度の表示で提示される。
図38は、仮想フォルダコレクションのスコープを形成することができる様々なソースを示すブロック図である。図38に示すように、システム1000は、このコンピュータ1010、追加コンピュータ1020、外部にあるリムーバブルストレージ1030、およびネットワーク上の場所1040を含み得る。スコープ1001全体は、コレクションを作成するためにユーザの項目が引き出される物理的な場所すべてを含むものとして記述される。スコープは、ユーザによって設定され修正されることができる。上述したように、他の図面は、項目が様々な物理的場所から起こり得ることを示しており、例えば図34は、サーバおよびマイドキュメントフォルダにあった様々なドキュメントをこのコンピュータ上に示し、図18では、複数の場所に物理的に格納されている物理フォルダを示している。
図39は、仮想フォルダコレクションに非ファイル項目を含めるルーチン1080を示すフロー図である。非ファイル項目は、一般に物理的なファイルストレージに配置されるファイル項目と対比される。非ファイル項目の例は、eメールや連絡先のようなものであろう。図39に示すように、ブロック1082で、データベースを使って、クエリによって検索され得るファイル項目とともに非ファイル項目も含める。ブロック1084で、クエリに応答して、クエリに合致する非ファイル項目およびファイル項目両方が引き出される。ブロック1086で、クエリに合致した非ファイル項目およびファイル項目両方が、ディスプレイに提示される。
図40は、様々な非ファイル項目を表示するスクリーン表示を示す図である。図40に示すように、項目は、「ジョン」を含む項目にフィルタリングされている。項目は、連絡先項目1101、eメール項目1102、ならびにドキュメント項目1103および1104を含むことが示される。連絡先項目1101およびeメール項目1102は非ファイル項目である。本システムは、このような非ファイル項目が、ユーザの要望通りに編成され操作され得るように、正規のファイル項目に含められることを可能にする。図2に関連して上述されたように、このような非ファイル項目は、リレーショナルデータベース230に完全に含められることができ、含めることができない場合、データベース230は、ファイルのプロパティについての情報を含む。
後でより詳しく説明されるように、静的でも動的でもよい仮想フォルダは、共有されることができる。静的および動的リストの共有は、ユーザが、選択された項目を共有することを可能にする。被共有者は、リスト中の項目へのアクセス許可が与えられ、リストが変更されると、被共有者がリストの現在の項目へのアクセス権をもち続けることができるように、アクセス許可がアップデートされる。
図41は、静的リストおよび1組の参照項目を含むメモリシステム4100を示すブロック図である。メモリシステム4100は、静的リストを保持するメモリロケーション4110、項目Aを保持するメモリロケーション4120、および項目Bを保持するメモリロケーション4130を含む。メモリロケーション4110にある静的リストは、項目Aへの参照、および項目Aに関する注釈、ならびに項目Bへの参照、および項目Bに関する注釈を含む。こうした注釈は、実際の項目の一部ではなく、リストに属す。静的リストのタイプのいくつかの例は、買物リスト、音楽再生リスト、および画像のスライドショーである。
図42は、静的リストを共有するルーチン4200を示すフロー図である。ブロック4210で、共有者は、静的リストが共有されるべきであることを示す。判断ブロック4220で、共有者が、各項目を共有するためのアクセス許可をもっているかどうかに関して、判定が行われる。項目のいくつかが共有されることができない場合、ルーチンは、ブロック4230へ続き、ここで、共有者は、被共有者が、指定された項目にアクセスできない可能性があることを、共有時に通知される。項目それぞれが共有され得る場合、ルーチンは、判断ブロック4250へ続く。
共有者が、各項目を共有するためのアクセス許可をもっているかどうか判定する処理において、一実施形態では、リスト自体が、アクセス許可が判定される最初の項目である。言い換えると、第1のステップは、共有者が、リスト自体を共有するためのアクセス許可をもっているかどうか判定することである。共有者が、リストを共有するためのアクセス許可をもっていない場合、共有者は、リストを共有するためのアクセス許可をもっていないと通知され、ルーチンが終わる。共有者が、リストを共有するためのアクセス許可をもっている場合、リストによって参照される項目それぞれに対して、共有者が、項目それぞれを共有するためのアクセス許可もっているかどうかに関して、判定が行われる。共有者が、ある特定の項目を共有するためのアクセス許可もっていない場合、共有者は、その項目が共有されることができないと通知される。処理が終了すると、共有者が共有のためのアクセス許可を実際にもっている項目の組に関して、ルーチンは、ブロック4250へ続く。
判断ブロック4250で、共有者が、被共有者は読取りアクセスだけでなく、読取り/書込みアクセスを与えられるべきであると示しているかどうかに関して、判定が行われる。共有者が、読取り/書込みアクセスは与えられるべきでないと示した場合、ルーチンは、ブロック4260へ続き、ここで、被共有者は、読取り許可のみを与えられる。共有者が、被共有者は読取り/書込みアクセスをもつべきであると示した場合、ルーチンは、ブロック4270へ続き、ここで、被共有者は、読取り/書込み許可を与えられる。ブロック4280で、静的リスト自体ならびに静的リスト中で参照されるあらゆる項目への、指定されたアクセス権が、被共有者に認められる。被共有者は次いで、共有者のコンピュータにある静的リストおよびその参照項目にリモートアクセスすることができる。
図43は、静的リストから追加/削除された項目にアクセス許可をし直すルーチン4300を示すフロー図である。ブロック4310で、共有者は、静的リストに項目を追加しまたは削除する。ブロック4320で、項目は、静的リストの被共有者向けのアクセス権を認め又ははずすように、アクセス許可をし直される。一例として、共有者が、リストから画像を削除した場合、被共有者は、この画像へのアクセス許可も失う。あるいは、共有者が、再生リストに歌を追加した場合、被共有者は、この歌へのアクセス権を認められる。代替実装形態では、項目は、静的リストに出入りするときも動的にアクセス許可され得る。というのは、静的リストの実際の定義は、データベース中にあり、変化するときを監視され得るからである。
図44は、動的リストを作成するルーチン4400を示すフロー図である。ブロック4410で、ユーザは、動的リストを作成するスコープおよび1組の基準を提供する。ブロック4420で、プロセッサは、スコープおよび基準の組をリレーショナルデータベースに渡す。ブロック4430で、リレーショナルデータベースは、プロセッサに結果を戻す。ブロック4440で、プロセッサは、動的リスト中の項目として結果を戻す。
図10に関連して上でより詳しく説明したように、ライブラリなど特定の仮想フォルダは、作成のために動的リストに依拠する。例えば、ユーザは通常、仮想フォルダのドキュメントライブラリへ行って、仮想フォルダのドキュメントを見つける。ドキュメントライブラリは、動的リストタイプである。動的リストに対するスコープは、ローカルマシン上で使用可能なデータストレージとなるように設定されることもでき、別の例として、ネットワーク上のマシンすべてに格納されたデータを含むこともできる。
図45は、動的リストおよび1組の参照項目を含むメモリシステム4500を示すブロック図である。メモリシステム4500は、動的リストを保持するメモリロケーション4510と、項目Aを保持するメモリロケーション4520と、項目Bを保持するメモリロケーション4530と、項目Cを保持するメモリロケーション4540とを含む。メモリロケーション4510に格納されている動的リストは、メモリシステム4500すべてを含むスコープをもち、ケース=Xおよびクライアント=100を含む基準をもつ。この基準を満たす参照項目は、項目Aへの参照および項目Bへの参照を含む。メモリロケーション4520に格納されている項目Aは、ケース=Xおよびクライアント=100というプロパティをもち、メモリロケーション4530に格納されている項目Bは、ケース=Xおよびクライアント=100というプロパティをもつ。メモリロケーション4540に格納されている項目Cは、ケース=Xおよびクライアント=99というプロパティをもつ。項目Cの、クライアント=99というプロパティが、メモリロケーション4510に格納されている動的リストの基準に合致しないので、項目Cは、リスト中で参照されない。
図46は、動的リストを共有するルーチン4600を示すフロー図である。ブロック4610で、共有者は、動的リストが共有されるべきであると示す。判断ブロック4620で、共有者が、リストにある項目それぞれを共有するためのアクセス許可をもっているかどうかに関して、判定が行われる。項目のいくつかが共有されることができない場合、ルーチンは、ブロック4630へ続き、ここで、共有者は、被共有者が、指定された項目にアクセスできない可能性があることを、共有時に通知される。項目それぞれが共有され得る場合、ルーチンは、判断ブロック4640へ続く。
共有者が、各項目を共有するためのアクセス許可をもっているかどうか判定する処理において、一実施形態では、リスト自体が、アクセス許可が判定される最初の項目である。言い換えると、第1のステップは、共有者が、リスト自体を共有するためのアクセス許可をもっているかどうか判定することである。共有者が、リストを共有するためのアクセス許可をもっていない場合、共有者は、リストを共有するためのアクセス許可をもっていないと通知され、ルーチンが終わる。共有者が、リストを共有するためのアクセス許可をもっている場合、リストによって参照される項目それぞれに対して、共有者が、項目それぞれを共有するためのアクセス許可をもっているかどうかに関して、判定が行われる。共有者が、ある特定の項目を共有するためのアクセス許可をもっていない場合、共有者は、その項目が共有されることができないと通知される。処理が終了すると、共有者が共有のためのアクセス許可を実際にもっている項目の組に関して、ルーチンは、ブロック4640へ続く。
判断ブロック4640で、共有者が、静的リスト形式の項目のみを共有したいのかどうかに関して、判定が行われる。言い換えると、共有者が、動的リストではなく静的リストの形の現在の項目を共有したいのかどうかに関して、判定が行われる。静的リストが共有されることになった場合、ルーチンは、ブロック4650へ続き、ここで、現時点で動的リストにあるものを表す静的リストが生成され、この静的リストが、図42に関連して上述したように共有される。共有者が、静的リストの形のみを共有したいわけではない場合、ルーチンは、ブロック4660へ続く。
ブロック4660で、動的リストの基準を満たす項目がすべて共有される。このことは、項目は、共有が起こっているマシン上のそれぞれの格納場所に残され、被共有者に項目へのアクセス権をもたせるように項目がアクセス許可されることを意味する。この処理が完了すると、被共有者は、共有者のコンピュータにあるリストおよびその参照項目にリモートアクセスすることができる。
図47は、動的リストから削除され追加される項目をアクセス許可し直すルーチン4700を示すフロー図である。ブロック4710で、項目は、動的リストの基準を満たすようにまたは満たさないようにプロパティ変更を行う。ブロック4720で、項目は、動的リストの被共有者向けのアクセス権を適切に認めまたははずすように、アクセス許可し直される。言い換えると、現時点で動的リストにある項目が、動的リストの基準を満たさないようにプロパティを変更した場合、この項目は、動的リストの被共有者向けのアクセス権をはずすようにアクセス許可し直される。同様にして、以前は動的リストになかったいずれかの項目が、スコープの範囲に入り、動的リストの基準を満たすようにプロパティを変更した場合、こうした項目は、動的リストの被共有者向けのアクセス権を認めるようにアクセス許可し直される。
図48は、項目が削除された動的リストを含むメモリシステム4800を示すブロック図である。メモリシステム4800は、動的リストを保持するメモリロケーション4810と、項目Aを保持するメモリロケーション4820と、項目Bを保持するメモリロケーション4830と、項目Cを保持するメモリロケーション4840とを含む。メモリシステム4800は、図45のメモリシステム4500に類似している。図48の例では、メモリロケーション4830にある項目Bは、クライアントプロパティを、クライアント=99となるように変更している。この変更のせいで、項目Bは、クライアント=100であることを要求する動的リストの基準を満たさない。したがって、項目Bは、メモリロケーション4810に格納されている動的リストから削除されている。動的リストの被共有者は、したがって、項目Bへのアクセス許可をもたなくなる。
図49は、項目が追加された動的リストを含むメモリシステム4900を示すブロック図である。メモリシステム4900は、動的リストを保持するメモリロケーション4910と、項目Aを保持するメモリロケーション4920と、項目Bを保持するメモリロケーション4930と、項目Cを保持するメモリロケーション4940と、新規項目Dを保持するメモリロケーション4950とを含む。図48のメモリロケーション4810にある動的リストと比較して、図49のメモリロケーション4910にある動的リストは、項目CおよびDへの追加参照を有することが示されている。このことは、メモリロケーション4940にある項目C、およびメモリロケーション4950にある新規項目Dが、クライアントプロパティを、クライアント=100となるように変更させまたは設定させたために起こっている。この変更は、項目CおよびDが現在、メモリロケーション4910に格納されている動的リストの基準を満たすようにしており、したがって、動的リストは現在、こうした項目への参照を含む。このことは、動的リストの被共有者が現在、項目CおよびDへのアクセス権を許可されているという結果をもたらす。
図50は、共有APIを呼び出すルーチン5000を示すフロー図である。後でより詳しく説明されるように、リストに加え、個々の項目も共有されることができる。ブロック5010で、リストまたは個々の項目の共有に関して、共有APIが呼び出される。ブロック5020で、呼出しに応答して、個々の項目、またはリストおよびリストの参照項目へのアクセス許可が与えられる。
上述されたようなプログラミングインターフェースは、リストまたは個々の項目の共有処理の一部として使用され得る。図51A〜51Lに関連して後でより詳しく説明されるように、共有処理において使われるようなプログラミングインターフェース(またはより簡単には、インターフェース)は、コードの1つまたは複数のセグメント(群)が、コードの1つまたは複数の他のセグメント(群)によって提供される機能と通信しまたは機能にアクセスすることを可能にする、どの仕組み、処理、プロトコルとしても見なされ得る。あるいは、プログラミングインターフェースは、他のコンポーネント(群)の、1つまたは複数の仕組み(群)、方法(群)、関数呼出し(群)、モジュール(群)などと通信結合することができる、システムのあるコンポーネントの、1つまたは複数の仕組み(群)、方法(群)、関数呼出し(群)、モジュール(群)、オブジェクト(群)などとして見なされ得る。上記の文における「コードのセグメント」という用語は、適用される専門範囲にかかわらず、かつコードセグメントが個別にコンパイルされるかどうか、コードセグメントがソースコード、中間コード、またはオブジェクトコードとして提供されるのか、コードセグメントがランタイムシステムまたは処理において使用されるのか、コードセグメントが同じマシンもしくは異なるマシンに置かれるか、それとも複数のマシンに分散されるか、あるいはコードのセグメントによって表される機能が、完全にソフトウェアとして、完全にハードウェアとして、またはハードウェアおよびソフトウェアの組合せとして実装されるのかにかかわらず、1つまたは複数の命令またはコードの行を含み、例えば、コードモジュール、オブジェクト、サブルーチン、関数などを含むことを意図している。
概念的に、プログラミングインターフェースは、図51Aまたは図51Bに示すように、包括的に見られ得る。図51Aは、第1および第2のコードセグメントが通信するためのルート(conduit)としてのインターフェース1というインターフェースを示す。図51Bは、インターフェースを、インターフェースオブジェクトI1およびI2(第1および第2のコードセグメントの一部であってもなくてもよい)を備えるものとして示し、こうしたインターフェースオブジェクトは、システムの第1および第2のコードセグメントが、媒体Mを介して通信することを可能にする。図51Bを見て、インターフェースオブジェクトI1およびI2を、同一のシステムの別個のインターフェースと見なす人、オブジェクトI1およびI2と媒体Mとがインターフェースを構成すると見なす人がいるかもしれない。図51Aおよび51Bは、双方向の流れ、およびその流れの両端でのインターフェースを示すが、特定の実装形態は、一方向での情報の流れしかもたない(または後で説明されるように情報の流れをもたない)場合もあり、一端でのインターフェースオブジェクトしかもたない場合もある。限定ではなく例として、アプリケーションプログラミングインターフェース(API)、エントリポイント、方法、関数、サブルーチン、リモートプロシージャコール、およびコンポーネントオブジェクトモデル(COM)インターフェースなどの用語は、プログラミングインターフェースの定義範囲に包含される。
このようなプログラミングインターフェースの特徴は、第1のコードセグメントが、第2のコードセグメントに情報(この場合、「情報」は、広い意味で使われており、データ、コマンド、要求などを含む)を送る方法と、第2のコードセグメントが、その情報を受け取る方法と、その情報の構造、シーケンス、シンタクス、編成、スキーマ、計時、および内容とを含み得る。これに関して、情報が、インターフェースによって定義されたやり方で移送される限り、基底の移送媒体自体は、有線でも無線でも、あるいは有線および無線の組合せであっても、インターフェースの動作にとって重要でなくてよい。特定の状況では、情報は、従来の意味での一方向または両方向で渡されることができない。というのは、情報の転送は、あるコードセグメントが、第2のコードセグメントによって実施される機能に単にアクセスするときのように、別の仕組み(例えば、コードセグメントの間の情報の流れとは別に、情報が、バッファ、ファイルなどに置かれる)を介するか、または存在しなくてもよいからである。こうした特徴のいずれかまたは全部は、所与の状況、例えば、コードセグメントが、疎結合構成または密結合構成のシステムの一部であるかに応じて重要となる場合があり、したがって、このリストは、例示であって限定のためではないと見なされるべきである。
このプログラミングインターフェース概念は、当業者に知られており、本発明の上記の詳細な説明から明らかである。しかし、プログラミングインターフェースを実装する他の方法もあり、明示的に除外されない限り、こうした方法も、本明細書に添付され定義される特許請求の範囲に包含されることを意図している。このような他の方法は、図51Aおよび51Bの単純化された概観より高度または複雑に見え得るが、それにもかかわらず、全体として同じ結果を達成する類似した機能を実施する。ここで、プログラミングインターフェースのいくつかの例示的な代替実装形態を簡潔に説明する。
図51Cおよび51Dは、因数分解(factoring)実装形態を示す。因数分解実装形態によると、あるコードセグメントから別のコードセグメントへの通信は、その通信を、複数の別々の通信に分けることによって、間接的に達成されることができる。このことは、図51Cおよび51Dで概略的に示される。図に示すように、いくつかのインターフェースは、機能の分割可能な組として説明されることができる。したがって、図51Aおよび51Bのインターフェース機能は、24または2×2×3×2を数学的にもたらすことができるように、同じ結果を達成するように因数分解されることができる。したがって、図51Cに示されるように、インターフェース1というインターフェースによって提供される機能は、インターフェースの通信をインターフェース1A、インターフェース1B、インターフェース1Cなどの複数のインターフェースに変換するように下位分割され、同じ結果を達成することができる。図51Dに示されるように、インターフェースI1によって提供される機能は、複数のインターフェースI1a、I1b、I1cなどに下位分割され、同じ結果を達成することができる。同様に、第1のコードセグメントから情報を受け取る、第2のコードセグメントのインターフェースI2は、複数のインターフェースI2a、I2b、I2cなどに因数分解されることができる。因数分解するとき、第1のコードセグメントに含まれるインターフェースの数は、第2のコードセグメントに含まれるインターフェースの数と一致しなくてもよい。図51Cおよび51Dのいずれの場合でも、インターフェース1およびI1というインターフェースの機能上の意図は、それぞれ図51Aおよび51Bの場合と同じままである。インターフェースの因数分解は、因数分解が認識困難になり得るように、結合的な、可換な、および他の数学的なプロパティの後に起こることもできる。例えば、動作の順序は重要でなくてよく、したがって、インターフェースによって実現される機能は、インターフェースの遂行に先立って、別のコード部分またはインターフェースによって実現されても、システムの別のコンポーネントによって実施されてもよい。さらに、プログラミング分野の当業者であれば、同じ結果を達成する異なる関数呼出しを行う様々な方法があることを理解できよう。
図51Eおよび51Fは、再定義実装形態を示す。再定義実装形態によると、いくつかの場合において、プログラミングインターフェースの特定の特徴(例えばパラメータ)を無視し、追加し、または再定義し、意図した結果を依然として達成することが可能であり得る。このことは、図51Eおよび51Fに示される。例えば、図51Aのインターフェース1というインターフェースが、Square(input,precision,output)の関数呼出しを含み、この呼出しは、3つのパラメータ、すなわちinput、precision、およびoutputを含み、第1のコードセグメントから第2のコードセグメントに発行されると仮定する。中央のパラメータprecisionは、図51Eに示すように、所与のシナリオに関係しない場合、適切に無視されることも、(この状況において)meaninglessパラメータで置き換えられることもできよう。無関係なadditionalパラメータを追加することもできる。いずれの場合でも、第2のコードセグメントによって入力が二乗された後で出力が返される限り、二乗機能は達成されることができる。precisionは、計算機システムの何らかの下流部分または他の部分にとって有意なパラメータでもよい。ただし、precisionは、二乗計算という狭い目的にとって必要ないと認識されると、置き換えられまたは無視されることができる。例えば、有効なprecision値を渡すのではなく、誕生日などの無意味な値が、結果に悪影響を与えることなく渡されることができよう。同様に、図51Fに示すように、インターフェースI1は、インターフェースI1’で置き換えられ、インターフェースへのパラメータを無視しまたは追加するように再定義される。インターフェースI2は、同様にインターフェースI2’として再定義されることができ、不必要なパラメータまたは他の所で処理されることができるパラメータを無視するように再定義される。ここでのポイントは、いくつかの場合において、プログラミングインターフェースは、何らかの目的には必要とされないパラメータなどの特徴を含む場合があるので、こうした特徴は、無視されまたは再定義され、あるいは他の目的のために他の所で処理されることができることである。
図51Gおよび51Hは、インラインコーディング実装形態を示す。インラインコーディング実装形態によると、2つの別々のコードモジュールの機能の間の「インターフェース」が形を変えるように、そうした機能の一部または全部をマージすることも可能であり得る。例えば、図51Aおよび51Bの機能は、それぞれ図51Gおよび51Hの機能に変換されることができる。図51Gにおいて、図51Aの以前の第1および第2のコードセグメントは、その両方を含むモジュールにマージされる。この場合、コードセグメントは、依然として相互に通信していてもよいが、インターフェースは、単一モジュールにより適した形に適合されることができる。したがって、例えば、正式な呼出しおよび戻りステートメントは不必要になり得るが、インターフェース1というインターフェースに順じた同様の処理または応答(群)は依然として有効であり得る。同様に、図51Hに示してあるが、図51BのインターフェースI2の一部(または全部)は、インターフェースI1にインラインに書き込まれて、インターフェースI1”を形成することができる。図に示すように、インターフェースI2は、I2aおよびI2bに分割され、インターフェース部分I2aは、インターフェースI1とインラインにコーディングされて、インターフェースI1”を形成している。具体的な例として、図51BのインターフェースI1が、関数呼出しsquare(input,output)を実施し、この呼出しが、インターフェースI2によって受け取られ、インターフェースI2は、第2のコードセグメントによる、inputとともに渡された値の(inputを二乗するための)処理の後、二乗された結果をoutputとともに返す場合を考える。このような場合、第2のコードセグメントによって実施される(inputを二乗する)処理は、インターフェースへの呼出しなしで、第1のコードセグメントによって実施されることができる。
図51Iおよび51Jは、分離(divorce)実装形態を示す。分離実装形態によると、一方のコードセグメントから別のコードセグメントへの通信は、その通信を複数の別々の通信に分けることによって間接的に遂行することができる。このことは、図51Iおよび51Jに概略的に示される。図51Iに示すように、ミドルウェアの1つまたは複数の断片(群)(元のインターフェースから全機能および/またはインターフェース機能を分離するので、分離インターフェース(群))が、第1のインターフェース、すなわちインターフェース1上での通信を変換して、異なるインターフェース、この場合インターフェース2A、インターフェース2B、およびインターフェース2Cというインターフェースに通信を準拠させるように提供される。これは、例えば、インターフェース1のプロトコルに従ってオペレーティングシステムと通信するように設計されたアプリケーションのベースがインストールされているが、次いで、オペレーティングシステムが、異なるインターフェース、この場合インターフェース2A、インターフェース2B、およびインターフェース2Cというインターフェースを用いるように変更される場合に行われ得るであろう。重要なのは、第2のコードセグメントに使われていた元のインターフェースは、第1のコードセグメントによって使われるインターフェースとの互換性がなくなるように変更され、したがって、古いおよび新しいインターフェースを互換可能にするのに媒介が用いられる点である。同様に、図51Jに示すように、DI2と共同で作用するように設計し直されているが同じ機能的結果をもたらす、インターフェースI1からの通信を受けるための分離インターフェースDI1、および例えばインターフェースI2aおよび12bにインターフェース機能を送るための分離インターフェースDI2を有する、第3のコードセグメントが導入されることができる。同様に、DI1およびDI2は、図51BのインターフェースI1およびI2の機能を、新しいオペレーティングシステムに翻訳するように共同作用し、同じまたは類似した機能的結果をもたらすことができる。
図51Kおよび51Lは、書換え実装形態を示す。書換え実装形態によると、インターフェース機能を他のもので置き換えるが全体的に同じ結果を達成するようにコードを動的に書き換えることになるさらに別の可変要素が可能である。例えば、実行環境(.Netフレームワーク、Java(登録商標)ランタイム環境、または他の同様のランタイムタイプの環境によって提供されるような)実行環境において、中間言語(例えば、マイクロソフトIL、Java(登録商標)バイトコードなど)の形で示されるコードセグメントが、ジャストインタイム(JIT)コンパイラまたはインタープリタに与えられるシステムがあり得る。JITコンパイラは、第1のコードセグメントから第2のコードセグメントへの通信を動的に変換するように、すなわち、第2のコードセグメント(元のまたは異なる第2のコードセグメントのどちらか)によって要求され得る異なるインターフェースに通信を準拠させるように書かれることができる。このことは、図51Kおよび51Lに示される。図51Kに見られ得るように、この手法は、上述された分離構成と似ている。これは、例えば、インターフェース1のプロトコルに従ってオペレーティングシステムと通信するように設計されたインストール済のアプリケーションのベースが、次いで、オペレーティングシステムが、異なるインターフェースを用いるように変更される場合に行われ得るであろう。JITコンパイラは、インストールベースのアプリケーションからのオンザフライでの通信を、オペレーティングシステムの新しいインターフェースに準拠させるのに用いられることができよう。図51Lに示されるように、インターフェース(群)を動的に書き換えるこの手法は、インターフェース(群)を動的に因数分解し、あるいは作り変えるのにも適用されることができる。
代替実施形態によって、インターフェースと同じまたは類似の結果を達成する上述したシナリオは、様々な方法、すなわち直列および/または並列で、あるいは他の介在コードと組み合わされることもできることにも留意されたい。したがって、上で提示された代替実施形態は、互いに排他的でなく、図51Aおよび51Bに示される汎用的なシナリオと同じまたは等価なシナリオを作り出すように、混合され、調和され、組み合わされることができる。ほとんどのプログラミング構成の場合のように、本明細書では説明されないであろうが、それにもかかわらず本発明の精神および範囲によって表されるインターフェースの同じまたは類似の機能を達成する他の同様の方法があることにも留意されたい。すなわち、インターフェースの価値を決定するのは、少なくとも一部は、インターフェースによって表される機能、およびインターフェースによって可能にされる有利な結果であることに留意されたい。
図52〜59を参照して後でより詳しく説明されるように、静的および動的リストの共有に加え、個々の項目も共有されることができる。ユーザがある1つのファイルを共有したいと思う多くのシナリオがあり、例えば、ユーザがそれについてのフィードバックを得たいと思う大規模なプレゼンテーションがある。このような場合、ユーザは、自分が作成したすべてのファイルを有するフォルダではなく、そのプレゼンテーションを含むただ1つのファイルを共有したいと考え得る。他の例は、ユーザが、歌、連絡先、またはeメールの共有を望む場合であろう。
図52は、項目を共有するルーチン5200を示すフロー図である。ブロック5210で、ユーザは、共有される項目を選択する。ブロック5220で、ユーザは、項目が共有される相手となる被共有者を選択する。ブロック5230で、ユーザは、被共有者に割り当てられるアクセス許可を選択する。アクセス許可の例として、ユーザは、ある特定の被共有者向けに、項目への読取りアクセスのみを与えることを望む場合がある。
図53は、項目を共有するために選択された被共有者が、項目にアクセスすることができるようにするルーチン5300を示すフロー図である。ブロック5310で、項目は、共有者のマシン上の元の場所に残され、システムは、被共有者が項目にアクセスできるようにするための処理を開始する。言い換えると、項目は、共有されることになると、共有者のマシンから移動されるのではなく、被共有者が、共有者のマシンを介した項目へのアクセス権を与えられる。
ブロック5320で、システムは、図54を参照して後でより詳しく説明されるように、項目が被共有者によってアクセスされるためのファイル共有があることを検証する。ブロック5330で、システムは、図55を参照して後でより詳しく説明されるように、アクセス制御リスト(ACL)および他のいずれかのアクセス許可が設定されることを検証する。ブロック5340で、システムは、図56を参照して後でより詳しく説明されるように、暗号化ファイルシステム(EFS)およびデジタル著作権管理(DRM)など、いずれかの保護システムに関わるどの問題も扱う作業を行う。ブロック5350で、図57を参照して後でより詳しく説明されるように、ファイアウォールが構成される。ブロック5360で、図58を参照して後でより詳しく説明されるように、共有トランザクションの詳細が記録される。
図54は、共有される項目がアクセスされ得るようにするためのファイル共有があることを確認するルーチン5400を示すフロー図である。ブロック5410で、システムは、共有されている項目より上位にファイル共有があることを検証する。ブロック5420で、ファイル共有が既に存在する場合、そのファイル共有が、ファイルをリモートに使用可能にするのに用いられる。ブロック5430で、システムは、ファイル共有についてのアクセス許可が正しく、被共有者が共有される項目にアクセスすることを可能にすることを検証する。
図55は、ACLおよび他のいずれかのアクセス許可が設定されていることを検証するルーチン5500を示すフロー図である。ブロック5510で、項目が共有されることになると、ユーザは、その項目を誰と共有したいかを尋ねられる。ブロック5520で、ユーザは、どのようなアクセス許可を被共有者に与えたいかも尋ねられる。アクセス許可の例として、ユーザは、ある特定の被共有者に読取り専用許可を与えたいと思う場合も、あるいは、共有されている項目を変更するためのアクセス許可を与える場合もある。ブロック5530で、被共有者向けに要求されたアクセス許可に基づいて、システムは、被共有者向けに要求されたアクセス許可を反映し、共有者によって要求されたアクセス許可を認めるように、項目についてのセキュリティACLを設定する。
図56は、EFSおよびDRMに伴うどの問題も処理する作業を行うルーチン5600を示すフロー図である。判断ブロック5610で、共有される項目が、暗号化ファイルシステム(EFS)または他の保護によって保護されるかどうかについて判定が行われる。項目に対する保護がない場合、ルーチンは終了する。項目に対する保護がある場合、ルーチンは、判断ブロック5620へ続く。
判断ブロック5620で、共有される項目に関して、マシン上のポリシーまたは項目に対するDRMによって共有が許可されるかどうか判定が行われる。共有が許可されない場合、ルーチンはブロック5630へ進み、ここで、項目は保護されていて共有されることができないという通知が行われる。判断ブロック5620で共有が許可されると判定された場合、ルーチンは、ブロック5640へ進み、ここで、EFSまたは他の保護に伴うどの問題も、項目が共有されることを可能にするように解決される。
図57は、ファイアウォールを構成するルーチン5700を示すフロー図である。判断ブロック5710で、ファイアウォールが有効にされているかどうかについて判定が行われる。デフォルトで、ファイアウォールはほとんどのコンピュータにおいて有効にされ、ユーザが、このような状況の下で依然として安全に共有を行うことができることが望ましい。判断ブロック5710でファイアウォールが有効にされていないと判定された場合、ルーチンは終了する。ファイアウォールが有効にされている場合、ルーチンは、ブロック5720へ進む。ブロック5720で、システムは、ファイアウォールが、共有される項目に被共有者がアクセスすることを可能にするように問題を解決する。
図58は、共有トランザクションの詳細を記録するルーチン5800を示すフロー図である。ブロック5810で、何が共有され、それが誰と共有され、いつそれが共有されたかなどを含む、共有トランザクションの詳細が追跡される。ブロック5820で、共有トランザクションの詳細は、共有者が後で利用するために記録される。言い換えると、この情報の記録は、自分のマシンから共有されている項目すべてが何であるか、こうした項目を誰と共有しているか、こうした被共有者がどのようなアクセス権をもっているかを、共有者が後で調べ、明らかにすることを可能にする。
図53〜58のルーチンは、共有される項目を被共有者にとって使用可能にするのに必要とされるタスクを実施することが理解されよう。一実施形態では、共有される項目を見つけやすくするために、共有者は、システムに、共有者のマシンから共有項目に直接アクセスするためのリンクを被共有者に送らせることもできる。さらに、システムは、被共有者に、共有者が被共有者と何を共有しているかを調べるために、共有者のマシンに問い合わせる能力を与えることもできる。
図59は、項目を共有するためのヘルパルーチン5900のページの間のナビゲーションを示すブロック図である。ブロック5910で、「リストメーカの統合」用のヘルパページ1が提供される。概して、このページは、ユーザが、共有するための複数の項目を選択し、次いで、ヘルパルーチンに入った場合のみ表示される。このページの目的は、ユーザが、共有するために選択されている項目を調べることを可能にし、ユーザが、リストを修正することを可能にすることである。言い換えると、ユーザが、複数の項目を選択し、次いで、共有タスクを選択した場合、共有ヘルパルーチンが起動され、ユーザは、リストメーカ統合共有ページを提示される。このページは、選択されている項目のリストをユーザに示し、ユーザが、追加項目をリストに追加しリストから削除することを可能にする。一実施形態では、リストビューの列は、項目名、順序、サイズ、およびキャプションを示すことができる。ブロック5910のヘルパページ1から、ユーザは、次ページボタン5911を選択して、ブロック5920のヘルパページ2に移ることができる。
ブロック5920で、「EFS/DRMチェック」用のヘルパページ2が提供される。一実施形態では、このページは、ユーザによって選択された項目の1つまたは複数が、EFSまたはDRMによって保護される場合のみ表示される。このページの目的は、ユーザに、共有している内容が、EFSまたはDRMによって保護されていることを知らせ、ユーザに、内容の共有を依然として試みたいかどうか尋ね、どのようにして内容を共有したいかについての選択肢を提供することである。このページにおいて、ファイルがEFSで暗号化されている場合、ユーザは、ファイルをEFSで暗号化されたままにしておくか、ヘルパルーチンに、暗号化されたファイルへのアクセス権を被共有者に与えることを試みさせるか、ヘルパルーチンに、項目から暗号を解除させるか選択することができる。ブロック5920のヘルパページ2から、ユーザは、戻りボタン5921を選択して、ブロック5910のヘルパページ1に戻ることもでき、次ページボタン5922を選択して、ブロック5930のヘルパページ3へ続けることもできる。
ブロック5930で、「人の選択/アクセス許可」用のヘルパページ3が提供される。一実施形態では、このページは、常に表示され、ヘルパルーチンのメインページである。このページから、ユーザは、内容を共有させたい人、共有しているユーザに与えたいアクセス許可を選択することができる。一実施形態では、ただ1つの項目が共有されている場合は、その項目用のアイコンが表示され、複数の項目が共有されている場合は、スタックが表示される。一実施形態では、「名前をタイプ入力し、リストに追加をクリックしてください」で示されるアイコンをユーザがクリックすることによって、ヘルパページ3は入られ得る。ユーザは、名前を行の中にタイプ入力すると、「リストに追加」アイコンをクリックして、項目を共有させたいユーザのリストに被共有者を追加する。一実施形態では、「自動提案」ドロップダウンメニューが、ユーザ用の個人の連絡先ストア、ならびにSIDがある、最近使ったすべての連絡先のキャッシュから、人々を含めることができる。一実施形態では、自身のマシン上にいる他の人々、ならびに自身のドメインまたはキャッスル(castle)にいる他の人々をユーザが選ぶことを可能にする、ボタンによって利用可能なモード方式のアドレス帳がある。ユーザは、1人または複数の人またはグループを選択することができる。一実施形態では、被共有者テーブルの右側の列が、被共有者それぞれに対するアクセス許可を共有者が設定することを可能にする。さらに、様々なアクセス許可の選択肢は、読取り、編集、所有、およびアクセス権削除などのレベルを含み得る。デフォルトのアクセス許可は、読取りレベルでよい。被共有者を削除するために、一実施形態では、ユーザは、選択された被共有者をリストから消去するだけでよい。ブロック5930のヘルパページ3から、ユーザは、戻りボタン5931を選択してブロック5920のヘルパページ2に戻ることもでき、高度な共有ボタン5932を選択してブロック5940のヘルパページ4へ続けることもでき、共有ボタン5933を選択してブロック5950のヘルパページ5へ続けることもできる。
ブロック5940で、「高度な共有」用のヘルパページ4が提供される。一実施形態では、このページは、ユーザが、高度な共有オプションボタン5932を選択した場合のみ表示される。一実施形態では、高度な共有オプションは、使用されているファイル共有の名称の変更、共有対象への接続数の制限の設定、共有対象へのキャッシュ動作の設定、および予め定義されている役割だけでなく、ユーザ向けのカスタムACLの設定などを含み得る。ヘルパページ4から、ユーザは、戻りボタン5941または次ページボタン5942を選択して、ブロック5930のヘルパページ3に戻ることができる。
ブロック5950で、「共有の進行状況」用のヘルパページ5が提供される。一実施形態では、このページは、進行状況ページとして常に表示される。このページの目的は、ユーザのコンピュータが、要求された項目を共有させるための作業を行っている間、進行状況を示す。一実施形態では、このページは、項目を共有するための動作が、指定された時間(例えば2秒)より長くかかる場合のみ表示される。言い換えると、ユーザが、自分の選択内容を確認し、ブロック5930のヘルパページ3から共有ボタン5933を選ぶと、セキュリティサブシステムが、項目に対するセキュリティを設定し、必要な共有を実行する。これは、ほとんどの単純な階層にとっては迅速な処理であるが、より時間のかかる処理に対して、ブロック5950の「共有の進行状況」用のヘルパページ5が表示され得る。概して、このページは、システムは動作中であることを示し、システムに関して起こっていることを具体的に示すことができる視覚的な手がかり(例えばアニメーション)の提供を意図している。ブロック5950のヘルパページ5から、ユーザは、キャンセルボタン5951を選択してブロック5960のヘルパページ6へ進むこともでき、次ページボタン5952を選択してブロック5970のヘルパページ7へ進むこともできる。
ブロック5960で、「共有のキャンセル」用のヘルパページ6が提供される。このページは、ユーザが、共有操作をキャンセルするために、ブロック5950のヘルパページ5においてキャンセルボタン5951をクリックすると表示される。キャンセルボタンのクリックは、要求された項目を共有するための操作を停止させる。一実施形態では、ユーザが、共有処理をキャンセルすると、共有設定の適用が終了しなかったことをユーザに伝えるための確認ダイアログが提供される。
ブロック5970で、「確認/通知」用のヘルパページ7が提供される。一実施形態では、このページは、確認および通知ページとして常に表示される。このページの目的は、項目が正常に共有されたこと、およびエラーがあったかどうかをユーザに伝え、かつユーザが、被共有者に適切な通知を送ることを可能にすることである。一実施形態では、ユーザは、リンクをクリックすることによって、被共有者に勧誘を送ることを選ぶことができる。一実施形態では、勧誘が選択されると、デフォルトのメールクライアントを用いて通知が送られる。一実施形態では、共有が変更されると、共有に追加された新たな人々だけが、eメール通知に予め投入され、共有が削除されると、メッセージは送信されない。eメール通知が送信されるとき、この通知は、受信者が勧誘/通知を理解するのを助けるための共有項目またはフォルダならびにテキストへのパスを含む。例えば、「あなたと項目を共有したので、ネットワークを介して項目にアクセス可能です。共有項目を入手するには、Xをクリックするか、ブラウザでXと入力してください」などである。ヘルパページ7は、システムが、要求された項目を共有することができない場合に起こり得るエラーを表示するのにも使われる。
本発明の好ましい実施形態が例示され説明されたが、本発明の精神および範囲から逸脱することなく、様々な変更が行われ得ることが理解されよう。
本発明の実施形態を実装するのに適した汎用コンピュータシステムを示すブロック図である。 仮想フォルダシステムを示すブロック図である。 ユーザが、選択されたファイルおよびフォルダを引き出すクエリを提供するルーチンを示すフロー図である。 デフォルトのクエリまたはユーザからのクエリのどちらかに従って、仮想フォルダが構成され画面上に表示されるルーチンを示すフロー図である。 ハードドライブ上の物理的なフォルダ配置によるフォルダ構造を示すツリー図である。 仮想フォルダ構造を示すツリー図である。 クライアントスタックが、コントラクトおよび年によってさらにフィルタリングされている、図6の仮想フォルダ構造を示すツリー図である。 クライアントスタックのコントラクトが、年によってさらにフィルタリングされている、図7の仮想フォルダ構造を示すツリー図である。 コントラクトスタックがクライアントおよび年によってさらにフィルタリングされ、クライアントが年によってさらにフィルタリングされている、図6の仮想フォルダ構造を示すツリー図である。 ドキュメントライブラリのスタックを表示するスクリーン表示を示す図である。 図10のABC Corp.スタック中のドキュメントを表示するスクリーン表示を示す図である。 図11のドキュメントに対してスタック機能が選択されているスクリーン表示を示す図である。 図12のスタック機能に対して、「作成者でスタックする」というパラメータが選択されているスクリーン表示を示す図である。 図13のファイルが、作成者によってスタックされているスクリーン表示を示す図である。 図14のファイルをスタックし直すために、スタック機能が選択され、「カテゴリでスタックする」という選択肢がさらに選択されているスクリーン表示を示す図である。 図14のファイルが、カテゴリによってスタックし直されたスクリーン表示を示す図である。 物理フォルダを表示するクイックリンクが選択されているスクリーン表示を示す図である。 図17の仮想フォルダスタックのファイルを含む物理フォルダが選択されているスクリーン表示を示す図である。 ユーザが、仮想フォルダを直接操作することができるルーチンを示すフロー図である。 新規の「West Coast」スタックが図10のスタックに追加されたスクリーン表示を示す図である。 図20の「ABC Corp.」スタックから「West Coast」スタックにファイルをコピーするのに、直接処理が用いられるスクリーン表示を示す図である。 システムが、新規フィルタ項を動的に生成するルーチンを示すフロー図である。 システムが、フィルタ項の選択に基づいて項目をフィルタリングするルーチンを示すフロー図である。 図10のスタックが、項「AB」によってフィルタリングされたスクリーン表示を示す図である。 図10のスタックが、項「ABC」によってフィルタリングされたスクリーン表示を示す図である。 図10のスタックに対して、フィルタ項「2002年」が選択されているスクリーン表示を示す図である。 図10のスタックが、「2002年」によってフィルタリングされ、フィルタ項「月」をさらに選択したスクリーン表示を示す図である。 フィルタリング用の月を選択するリストが提示されるスクリーン表示を示す図である。 図28のスタックが、1月という月によってさらにフィルタリングされ、「日付」というフィルタ項をさらに表示するスクリーン表示を示す図である。 新規クイックリンクを作成するルーチンを示すフロー図である。 図29のフィルタリングに基づいて、「1月の作業」と呼ばれる新規クイックリンクを作成するスクリーン表示を示す図である。 「すべての作成者」というクイックリンクが選択されているスクリーン表示を示す図である。 図32の作成者すべてからなるリストが提示されるスクリーン表示を示す図である。 図33のリストから、「作成者1」が選択され、作成者1のドキュメントすべてが表示されるスクリーン表示を示す図である。 新規ライブラリを作成するルーチンを示すフロー図である。 様々な使用可能ライブラリからなるコレクションが表示されるスクリーン表示を示す図である。 仮想フォルダコレクションのスコープを定義するルーチンを示すフロー図である。 仮想フォルダコレクションのスコープを形成することができる様々なソースを示すブロック図である。 仮想フォルダコレクションに非ファイル項目を含めるルーチンを示すフロー図である。 仮想フォルダに含められた様々な非ファイル項目を表示するスクリーン表示を示す図である。 静的リストおよび1組の参照項目を含むメモリシステムを示すブロック図である。 静的リストを共有するルーチンを示すフロー図である。 静的リストから削除/追加された項目にアクセス許可をし直すルーチンを示すフロー図である。 動的リストを作成するルーチンを示すフロー図である。 動的リストおよび1組の参照項目を含むメモリシステムを示すブロック図である。 動的リストを共有するルーチンを示すフロー図である。 動的リストから削除/追加された項目にアクセス許可をし直すルーチンを示すフロー図である。 項目が削除された動的リストを含むメモリシステムを示すブロック図である。 項目が追加された動的リストを含むメモリシステムを示すブロック図である。 共有APIを呼び出すルーチンを示すフロー図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 ファイル共有システムにおいて使用されるプログラミングインターフェースの様々な実装形態を示すブロック図である。 項目を共有するルーチンを示すフロー図である。 選択された被共有者が、共有されるように選択された項目にアクセスできるようにするルーチンを示すフロー図である。 項目がアクセスされ得るためのファイル共有が存在することを検証するルーチンを示すフロー図である。 ACLおよび他のいずれかのアクセス許可が設定されていることを検証するルーチンを示すフロー図である。 EFSおよびDRMに伴うどの問題も解決するルーチンを示すフロー図である。 ファイアウォールを構成するルーチンを示すフロー図である。 トランザクションデータを記録するルーチンを示すフロー図である。 共有ヘルパルーチンのページの間のナビゲーションを示すブロック図である。

Claims (30)

  1. 項目を利用可能にした共有者と利用可能にされた前記項目を見る被共有者との間で、コンピュータシステム内で共有可能にする項目を指定する方法であって、
    スコープおよび基準を含むクエリを前記共有者のコンピュータにより実行するステップであって、前記スコープと前記基準は前記共有者のコンピュータのユーザにより提供されて、前記スコープは物理的記憶位置の少なくとも一部を定義するステップと、
    前記クエリの結果に基づき、前記共有者のコンピュータにより、複数の参照項目を有する動的リストを作成するステップであって、前記参照項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含むステップと
    前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられるステップと、
    前記動的リストに基づいて前記共有者のコンピュータ上の1つ又は複数の仮想フォルダのコンテンツを前記共有者のコンピュータにより定義するステップであって、前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は前記被共有者と共有することが可能な前記1つ又は複数の仮想フォルダのコンテンツを作成、コピーと貼付け、ドラグの少なくとも1つであり、前記クエリの結果を前記共有者に利用可能であるステップと
    前記被共有者と、前記1つ又は複数の仮想フォルダの少なくとも一部を前記共有者のコンピュータにより共有するステップであって、前記被共有者は前記被共有者のコンピュータから前記参照項目にアクセスすることを与えられているステップと
    を含むことを特徴とする方法。
  2. 前記共有者が項目について被共有者にアクセスを許可できない時、前記共有者に通知が提供されることを特徴とする請求項1記載の方法。
  3. 前記共有者は、前記被共有者が前記項目に対して有するアクセスのタイプを制限することができることを特徴とする請求項1記載の方法。
  4. 前記作成するステップは、前記リスト内で、前記複数の参照項目の順番を定義することを含むことを特徴とする請求項1記載の方法。
  5. 前記作成するステップは、前記リスト内で、前記複数の参照項目の少なくとも1つに対応する注釈を定義することを含むことを特徴とする請求項1記載の方法。
  6. 前記被共有者は、別のコンピュータから前記参照項目への遠隔アクセスを与えられることを特徴とする請求項1記載の方法。
  7. コンピュータシステム上で項目を共有する方法であって、
    参照項目を持つ共有者のコンピュータ上でリストにアクセスする許可を前記共有者のコンピュータにより受信するステップであって、前記参照項目は前記共有者から提供されたスコープおよび基準を含むクエリを前記共有者のコンピュータ上で実行した結果に基づいて、前記リストは前記共有者のコンピュータにより1つ又は複数の仮想フォルダのコンテンツを定義し、前記スコープは物理的記憶位置の少なくとも一部を定義し、前記参照項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含むステップと
    前記リストへアクセスする許可を受信することに応答して、共有フォーマットにおいて前記共有者のコンピュータにより共有することが決定されている前記リストと前記参照項目とに前記共有者のコンピュータによりアクセスするステップであって、前記共有フォーマットは動的リストであり、前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられることと、前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は、コピー、貼付け、ドラグの少なくとも1つであるステップと
    を含むことを特徴とする方法。
  8. 前記共有者が項目について被共有者にアクセスを許可できない時、前記共有者に通知が提供されることを特徴とする請求項7記載の方法。
  9. 前記リストへのアクセスの許可は、前記項目に対して利用可能なアクセスのタイプを指定することができることを特徴とする請求項7記載の方法。
  10. 前記リストは、前記参照項目の所定の順番を含むことを特徴とする請求項7記載の方法。
  11. 前記リストは、前記参照項目の少なくとも1つに対応する注釈を含むことを特徴とする請求項7記載の方法。
  12. 前記リストと前記参照項目へのアクセスは、別のコンピュータから遠隔で実行されることを特徴とする請求項7記載の方法。
  13. コンピュータプログラム・セグメントが1つ以上の他のコンピュータプログラム・セグメントと通信することを可能にするコンピュータ可読記憶媒体であって、該記憶媒体は1組の項目へのアクセスを提供することの要求を、該要求を実行可能な1つ以上の他のコンピュータプログラム・セグメントへ通信させる1組のコンピュータ使用可能命令を備え、
    前記1組の項目は共有者から提供されたスコープおよび基準を含むクエリを前記共有者のコンピュータにより実行した結果を含んでいて、前記結果は前記共有者のコンピュータ上の1つ又は複数の仮想フォルダに包含されていて、前記スコープは物理的記憶位置の少なくとも一部を定義し、前記1組の項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含み、
    前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は、コピー、貼付け、ドラグの少なくとも1つであり、
    参照項目は共有フォーマットにおいて前記共有者のコンピュータにより共有することが決定され、前記共有フォーマットは動的リストであり、
    前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられることを特徴とするコンピュータ可読記憶媒体。
  14. 項目へのアクセスが可能でない時、通知が提供されることを特徴とする請求項13記載のコンピュータ可読記憶媒体。
  15. 前記リストへのアクセスは、読取/書込み又は読取専用の1つに限定することができることを特徴とする請求項13記載のコンピュータ可読記憶媒体。
  16. アクセスを提供することの前記要求は、別のコンピュータからの遠隔アクセスを提供することの要求を含むことを特徴とする請求項13記載のコンピュータ可読記憶媒体。
  17. 動的リストの共有者のコンピュータと被共有者のコンピュータとの間で通信する方法であって、
    前記動的リスト上で参照された項目を共有者のコンピュータ上でアクセスするためのコールを前記被共有者のコンピュータから受信するステップであって、前記リストは前記共有者のコンピュータ上の1つ以上の仮想フォルダ内で参照されて前記共有者から提供されたスコープおよび基準を含むクエリを前記共有者のコンピュータにより実行した結果に基づいていて、前記リストは前記共有者のコンピュータに格納されていて、前記リストは共有フォーマットにおいて前記共有者のコンピュータにより共有することが決定されていて、前記共有フォーマットは動的リストであり、前記共有者項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含むステップと
    前記共有者のコンピュータから受信された認証に応答して、前記被共有者のコンピュータに前記決定された共有フォーマット内の前記項目へのアクセスを提供するステップと、
    前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられるステップと、
    前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は、コピー、貼付け、ドラグの少なくとも1つであるステップと、
    を含むことを特徴とする方法。
  18. 前記リストが共有されている時に前記リスト上の項目へのアクセスが可能でない時、前記共有者に通知が提供されることを特徴とする請求項17記載の方法。
  19. 前記共有者は、項目へのアクセスのタイプを限定することができることを特徴とする請求項17記載の方法。
  20. 前記リストは、前記参照項目の所定の順番を含むことを特徴とする請求項17記載の方法。
  21. 前記リストは、前記参照項目の少なくとも1つに対応する注釈を含むことを特徴とする請求項17記載の方法。
  22. 前記被共有者に前記項目へのアクセスを提供するステップは、前記項目への遠隔アクセスを前記被共有者に提供することを含むことを特徴とする請求項17記載の方法。
  23. 前記受信するステップは、前記コールをAPIを介して受信することを含むことを特徴とする請求項17記載の方法。
  24. リストにおいて参照される1組の項目を共有者が被共有者と共有することを可能にする1つ又は複数のコンピュータ読み取り可能な記録媒体であって、
    前記被共有者のコンピュータに、前記共有者のコンピュータを経由して前記項目に直接アクセスすることを許可する1組のコンピュータ使用可能命令を備え、
    前記項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含み、前記リスト上で参照された前記1組の項目は共有者から提供されたスコープおよび基準を含むクエリを前記共有者のコンピュータにより実行した結果に基づいていて、前記スコープは物理的記憶位置の少なくとも一部を定義し、前記動的リストは前記動的リスト上で参照された前記項目の順番を含み、前記動的リストは前記共有者のコンピュータ上の1つ又は複数の仮想フォルダに参照されていて、前記リストは前記共有者のコンピュータにより被共有者のコンピュータに共有フォーマット内で共有されるべきと決定されていて、前記共有フォーマットは動的リストであり、前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられ、前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は、コピー、貼付け、ドラグの少なくとも1つであることを特徴とするコンピュータ読み取り可能な記録媒体。
  25. 前記項目へ提供されるアクセスのタイプは、読取/書込み又は読取の1つであることを特徴とする請求項24記載のコンピュータ読み取り可能な記憶媒体。
  26. 前記1組のコンピュータ使用可能命令は、前記被共有者が遠隔で前記項目にアクセスすることを可能にすることを特徴とする請求項24記載のコンピュータ読み取り可能な記録媒体。
  27. 共有者と被共有者の間で、コンピュータシステム内の項目を共有する方法であって、
    前記共有者のコンピュータにより前記共有者から提供されたスコープと基準を含むクエリを実行するステップであって、前記スコープは物理的記憶位置の少なくとも一部を定義するステップと
    前記クエリの結果に基づいて複数の参照項目を持つ1つ又は複数の仮想フォルダを前記共有者のコンピュータにより作成するステップであって、前記参照項目はエレクトロニック・ファイルとエレクトロニック・フォルダとを含むステップと
    前記被共有者と共有するための前記リストの共有フォーマットを前記共有者のコンピュータにより決定するステップであって、前記共有フォーマットは動的リストであるステップと
    前記動的リスト上の項目が前記クエリの前記基準にもはや合わないプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストから除去されて、以前は前記動的リスト上になかった項目が前記クエリの前記基準に合うようなプロパティの変化を有する時、前記項目が前記共有者のコンピュータにより前記リストに加えられるステップと、
    被共有者が前記決定された共有フォーマットにおいて前記共有者のコンピュータから前記参照項目へのアクセスを提供されるように、前記被共有者と前記1つ又は複数の仮想フォルダを共有するステップであって、前記1つ又は複数の仮想フォルダは少なくとも前記共有者の行動により操作するように構成されていて、前記操作は、コピー、貼付け、ドラグの少なくとも1つであるステップと、
    を含むことを特徴とする方法。
  28. 前記共有者が前記仮想フォルダから項目を除去した時、前記被共有者は前記項目にもはやアクセスすることを提供されないステップを含むことを特徴とする請求項27記載の方法。
  29. 前記仮想フォルダに項目が追加された時、前記被共有者に前記追加された項目にアクセスすることが提供されるステップを含むことを特徴とする請求項27記載の方法。
  30. 前記共有するステップは、前記被共有者に遠隔アクセスを提供することを含むことを特徴とする請求項27記載の方法。
JP2006536607A 2003-10-23 2004-07-27 静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法 Expired - Lifetime JP4732358B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/691,841 2003-10-23
US10/691,841 US7526483B2 (en) 2003-03-27 2003-10-23 System and method for virtual folder sharing including utilization of static and dynamic lists
US10/729,841 2003-12-05
US10/729,841 US7536386B2 (en) 2003-03-27 2003-12-05 System and method for sharing items in a computer system
PCT/US2004/025548 WO2005045594A2 (en) 2003-10-23 2004-07-27 System and method for virtual folder and sharing items

Publications (3)

Publication Number Publication Date
JP2007509435A JP2007509435A (ja) 2007-04-12
JP2007509435A5 JP2007509435A5 (ja) 2007-09-20
JP4732358B2 true JP4732358B2 (ja) 2011-07-27

Family

ID=34577152

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006536607A Expired - Lifetime JP4732358B2 (ja) 2003-10-23 2004-07-27 静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法

Country Status (5)

Country Link
US (1) US7536386B2 (ja)
EP (1) EP1573959A4 (ja)
JP (1) JP4732358B2 (ja)
KR (1) KR101120755B1 (ja)
WO (1) WO2005045594A2 (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7712034B2 (en) 2003-03-24 2010-05-04 Microsoft Corporation System and method for shell browser
US7823077B2 (en) 2003-03-24 2010-10-26 Microsoft Corporation System and method for user modification of metadata in a shell browser
US7769794B2 (en) * 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7421438B2 (en) 2004-04-29 2008-09-02 Microsoft Corporation Metadata editing control
US7627552B2 (en) 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US7240292B2 (en) 2003-04-17 2007-07-03 Microsoft Corporation Virtual address bar user interface control
US7890960B2 (en) * 2003-03-26 2011-02-15 Microsoft Corporation Extensible user context system for delivery of notifications
US7827561B2 (en) 2003-03-26 2010-11-02 Microsoft Corporation System and method for public consumption of communication events between arbitrary processes
US7650575B2 (en) 2003-03-27 2010-01-19 Microsoft Corporation Rich drag drop user interface
US7925682B2 (en) 2003-03-27 2011-04-12 Microsoft Corporation System and method utilizing virtual folders
US7756750B2 (en) 2003-09-02 2010-07-13 Vinimaya, Inc. Method and system for providing online procurement between a buyer and suppliers over a network
US20050080861A1 (en) * 2003-10-14 2005-04-14 Daniell W. Todd Selectively displaying email folders
US8024335B2 (en) 2004-05-03 2011-09-20 Microsoft Corporation System and method for dynamically generating a selectable search extension
US7181463B2 (en) 2003-10-24 2007-02-20 Microsoft Corporation System and method for managing data using static lists
US8306874B2 (en) 2003-11-26 2012-11-06 Buy.Com, Inc. Method and apparatus for word of mouth selling via a communications network
US20050203801A1 (en) * 2003-11-26 2005-09-15 Jared Morgenstern Method and system for collecting, sharing and tracking user or group associates content via a communications network
US8523571B1 (en) * 2004-03-09 2013-09-03 Avirat, Inc. Family organization and communication tool
US7657846B2 (en) 2004-04-23 2010-02-02 Microsoft Corporation System and method for displaying stack icons
US7694236B2 (en) 2004-04-23 2010-04-06 Microsoft Corporation Stack icons representing multiple objects
US7992103B2 (en) 2004-04-26 2011-08-02 Microsoft Corporation Scaling icons for representing files
US8499248B1 (en) 2004-04-29 2013-07-30 Paul Erich Keel Methods and apparatus for managing and exchanging information using information objects
US8707209B2 (en) 2004-04-29 2014-04-22 Microsoft Corporation Save preview representation of files being created
US8359332B1 (en) 2004-08-02 2013-01-22 Nvidia Corporation Secure content enabled drive digital rights management system and method
US8402283B1 (en) * 2004-08-02 2013-03-19 Nvidia Corporation Secure content enabled drive system and method
US8751825B1 (en) 2004-12-15 2014-06-10 Nvidia Corporation Content server and method of storing content
US8788425B1 (en) 2004-12-15 2014-07-22 Nvidia Corporation Method and system for accessing content on demand
US8875309B1 (en) 2004-12-15 2014-10-28 Nvidia Corporation Content server and method of providing content therefrom
US8346807B1 (en) 2004-12-15 2013-01-01 Nvidia Corporation Method and system for registering and activating content
US20060136286A1 (en) * 2004-12-22 2006-06-22 Microsoft Corporation Method and apparatus for marketing using templates, lists and activities
US7383503B2 (en) * 2005-02-23 2008-06-03 Microsoft Corporation Filtering a collection of items
WO2006108162A2 (en) * 2005-04-06 2006-10-12 Getty Images, Inc. Digital asset management system, including customizable metadata model for asset cataloging and permissioning of digital assets, such as for use with digital images and songs
US8490015B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Task dialog and programming interface for same
US20060241952A1 (en) * 2005-04-20 2006-10-26 Loduha Michael A Online multidisciplinary collaborative divorce system
US7614016B2 (en) * 2005-04-21 2009-11-03 Microsoft Corporation Multiple roots in navigation pane
US7162488B2 (en) * 2005-04-22 2007-01-09 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8893299B1 (en) 2005-04-22 2014-11-18 Nvidia Corporation Content keys for authorizing access to content
US8195646B2 (en) * 2005-04-22 2012-06-05 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US7536410B2 (en) * 2005-04-22 2009-05-19 Microsoft Corporation Dynamic multi-dimensional scrolling
US20060242122A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Systems, methods, and user interfaces for storing, searching, navigating, and retrieving electronic information
US8522154B2 (en) 2005-04-22 2013-08-27 Microsoft Corporation Scenario specialization of file browser
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265396A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US7765229B2 (en) * 2005-07-12 2010-07-27 Microsoft Corporation Single view of data in a networked computer system with distributed storage
US7665028B2 (en) 2005-07-13 2010-02-16 Microsoft Corporation Rich drag drop user interface
US7779004B1 (en) 2006-02-22 2010-08-17 Qurio Holdings, Inc. Methods, systems, and products for characterizing target systems
JP4656428B2 (ja) * 2006-04-26 2011-03-23 ソニー株式会社 コンテンツ処理装置および方法、並びにプログラム
US8321537B1 (en) * 2006-12-27 2012-11-27 Google Inc. Methods and system for sharing gadgets between users
US7840903B1 (en) 2007-02-26 2010-11-23 Qurio Holdings, Inc. Group content representations
US7849420B1 (en) * 2007-02-26 2010-12-07 Qurio Holdings, Inc. Interactive content representations enabling content sharing
US9098167B1 (en) 2007-02-26 2015-08-04 Qurio Holdings, Inc. Layered visualization of content representations
US20080256443A1 (en) * 2007-04-16 2008-10-16 France Telecom System for aggregating and displaying syndicated news feeds
US20080263142A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Meta Data Driven User Interface System and Method
US20080263018A1 (en) * 2007-04-20 2008-10-23 Computer Associates Think, Inc. Method and System for Mapping Business Objects to Relational Database Tables
JP2008276456A (ja) * 2007-04-27 2008-11-13 Hitachi Software Eng Co Ltd ファイル管理システム及び方法、並びに携帯端末装置
US9111285B2 (en) * 2007-08-27 2015-08-18 Qurio Holdings, Inc. System and method for representing content, user presence and interaction within virtual world advertising environments
US20090100109A1 (en) * 2007-10-16 2009-04-16 Microsoft Corporation Automatic determination of item replication and associated replication processes
US8261307B1 (en) 2007-10-25 2012-09-04 Qurio Holdings, Inc. Wireless multimedia content brokerage service for real time selective content provisioning
US20090125837A1 (en) * 2007-11-08 2009-05-14 International Business Machines Corporation Tab control with type ahead and thumbnail images
US7836053B2 (en) * 2007-12-28 2010-11-16 Group Logic, Inc. Apparatus and methods of identifying potentially similar content for data reduction
FR2932048A1 (fr) * 2008-05-27 2009-12-04 France Telecom Procede et systeme d'acces par un utilisateur a au moins un service offert par au moins un autre utilisateur.
US20090313259A1 (en) * 2008-06-17 2009-12-17 Microsoft Corporation Container handlers for sharing and unsharing
US7987202B2 (en) * 2008-06-25 2011-07-26 Microsoft Corporation Contemporaneously sharing resources targeted by a library
US20090327900A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Indicating resources to which there are access rights
US8775548B2 (en) 2008-06-27 2014-07-08 Microsoft Corporation Extending sharing options of local computing resources
JP4569676B2 (ja) * 2008-07-02 2010-10-27 株式会社デンソー ファイル操作装置
US8161055B2 (en) * 2008-09-26 2012-04-17 International Business Machines Corporation Filter extraction in a service registry environment
US8041722B2 (en) * 2008-10-07 2011-10-18 International Business Machines Corporation Refining collections of entities in a service registry environment
US10191982B1 (en) 2009-01-23 2019-01-29 Zakata, LLC Topical search portal
US9607324B1 (en) 2009-01-23 2017-03-28 Zakta, LLC Topical trust network
US10007729B1 (en) * 2009-01-23 2018-06-26 Zakta, LLC Collaboratively finding, organizing and/or accessing information
US9507793B2 (en) * 2009-09-29 2016-11-29 International Business Machines Corporation File resharing management
JP5625634B2 (ja) * 2010-09-01 2014-11-19 富士通株式会社 データ分散プログラム、データ格納プログラム、データ分散装置、データ格納装置、データ分散方法、およびデータ格納方法
US10068266B2 (en) 2010-12-02 2018-09-04 Vinimaya Inc. Methods and systems to maintain, check, report, and audit contract and historical pricing in electronic procurement
CN102043920A (zh) * 2010-12-29 2011-05-04 北京深思洛克软件技术股份有限公司 数据泄密防护系统中的公共文件的访问隔离方法
US8988087B2 (en) 2011-01-24 2015-03-24 Microsoft Technology Licensing, Llc Touchscreen testing
US9965094B2 (en) 2011-01-24 2018-05-08 Microsoft Technology Licensing, Llc Contact geometry tests
US8562444B2 (en) * 2011-09-02 2013-10-22 Zynga Inc. Sharing items between multiple game participants
US20130066975A1 (en) * 2011-09-08 2013-03-14 Microsoft Corporation Group Opt-In Links
US9378389B2 (en) 2011-09-09 2016-06-28 Microsoft Technology Licensing, Llc Shared item account selection
US9785281B2 (en) 2011-11-09 2017-10-10 Microsoft Technology Licensing, Llc. Acoustic touch sensitive testing
US9317147B2 (en) 2012-10-24 2016-04-19 Microsoft Technology Licensing, Llc. Input testing tool
US8819138B2 (en) * 2012-10-29 2014-08-26 Dropbox, Inc. Identifying content items for inclusion in a shared collection
US9396349B1 (en) * 2012-11-02 2016-07-19 Emc Corporation Method and apparatus for sharing data from a secured environment
US9600582B2 (en) 2013-05-23 2017-03-21 Microsoft Technology Licensing, Llc Blocking objectionable content in service provider storage systems
US9645947B2 (en) 2013-05-23 2017-05-09 Microsoft Technology Licensing, Llc Bundling file permissions for sharing files
US9600256B2 (en) * 2013-10-18 2017-03-21 Microsoft Technology Licensing, Llc Incrementally compiling software artifacts from an interactive development environment
US9531722B1 (en) 2013-10-31 2016-12-27 Google Inc. Methods for generating an activity stream
US9614880B1 (en) 2013-11-12 2017-04-04 Google Inc. Methods for real-time notifications in an activity stream
US9614850B2 (en) 2013-11-15 2017-04-04 Microsoft Technology Licensing, Llc Disabling prohibited content and identifying repeat offenders in service provider storage systems
CN103686360A (zh) * 2013-12-04 2014-03-26 康佳集团股份有限公司 一种智能云电视文件分类浏览的方法及智能云电视
US20150193521A1 (en) * 2014-01-09 2015-07-09 Google Inc. Methods for Generating an Activity Stream
US9509772B1 (en) 2014-02-13 2016-11-29 Google Inc. Visualization and control of ongoing ingress actions
US9536199B1 (en) 2014-06-09 2017-01-03 Google Inc. Recommendations based on device usage
US9507791B2 (en) 2014-06-12 2016-11-29 Google Inc. Storage system user interface with floating file collection
US10078781B2 (en) 2014-06-13 2018-09-18 Google Llc Automatically organizing images
US20160140139A1 (en) * 2014-11-17 2016-05-19 Microsoft Technology Licensing, Llc Local representation of shared files in disparate locations
US9870420B2 (en) 2015-01-19 2018-01-16 Google Llc Classification and storage of documents
US10277601B1 (en) 2015-05-11 2019-04-30 Google Llc System and method for recursive propagating application access control
US20180335902A1 (en) * 2017-05-16 2018-11-22 Apple Inc. Techniques for dynamically displaying relevant files for selection
US10643178B1 (en) 2017-06-16 2020-05-05 Coupa Software Incorporated Asynchronous real-time procurement system
US11232078B2 (en) 2019-04-05 2022-01-25 Sap Se Multitenancy using an overlay file system
US10956140B2 (en) 2019-04-05 2021-03-23 Sap Se Software installation through an overlay file system
US10942723B2 (en) 2019-04-05 2021-03-09 Sap Se Format for multi-artefact software packages
US11113249B2 (en) 2019-04-05 2021-09-07 Sap Se Multitenant application server using a union file system
US10809994B1 (en) * 2019-04-05 2020-10-20 Sap Se Declarative multi-artefact software installation
WO2022251130A1 (en) * 2021-05-24 2022-12-01 Equals 3 LLC Linking to a search result
CN114786063B (zh) * 2022-03-11 2023-12-05 北京字跳网络技术有限公司 一种音视频处理方法、装置、设备以及存储介质
US12079166B2 (en) * 2022-04-18 2024-09-03 Microsoft Technology Licensing, Llc File selection user interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162441A (ja) * 2001-11-28 2003-06-06 Oki Electric Ind Co Ltd 分散ファイル共有システムおよびそのファイルアクセス制御方法

Family Cites Families (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4881179A (en) * 1988-03-11 1989-11-14 International Business Machines Corp. Method for providing information security protocols to an electronic calendar
US5241671C1 (en) 1989-10-26 2002-07-02 Encyclopaedia Britannica Educa Multimedia search system using a plurality of entry path means which indicate interrelatedness of information
US5513306A (en) 1990-08-09 1996-04-30 Apple Computer, Inc. Temporal event viewing and editing system
US5388196A (en) 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
US5333315A (en) 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
US5504852A (en) * 1991-09-09 1996-04-02 Apple Computer, Inc. Method for creating a collection of aliases representing computer system files
US5461710A (en) 1992-03-20 1995-10-24 International Business Machines Corporation Method for providing a readily distinguishable template and means of duplication thereof in a computer system graphical user interface
EP0592638B1 (en) * 1992-04-30 2001-02-07 Apple Computer, Inc. Method and apparatus for organizing information in a computer system
DE69328522T2 (de) 1992-08-27 2001-01-11 Sun Microsystems, Inc. Verfahren und Vorrichtung zur Benutzung von Browsern für Sammlungen
US5559948A (en) 1992-12-23 1996-09-24 International Business Machines Corporation Apparatus and method for manipulating an object in a computer system graphical user interface
US5420605A (en) * 1993-02-26 1995-05-30 Binar Graphics, Inc. Method of resetting a computer video display mode
US5598524A (en) 1993-03-03 1997-01-28 Apple Computer, Inc. Method and apparatus for improved manipulation of data between an application program and the files system on a computer-controlled display system
US5499364A (en) 1993-10-14 1996-03-12 Digital Equipment Corporation System and method for optimizing message flows between agents in distributed computations
US6243071B1 (en) 1993-11-03 2001-06-05 Apple Computer, Inc. Tool set for navigating through an electronic book
MX9602952A (es) 1994-01-27 1997-06-28 Minnesota Mining & Mfg Notas de software.
US7106843B1 (en) * 1994-04-19 2006-09-12 T-Netix, Inc. Computer-based method and apparatus for controlling, monitoring, recording and reporting telephone access
US6453311B1 (en) 1994-05-06 2002-09-17 Apple Computer, Inc. System and method for performing context checks
US5680563A (en) 1994-07-25 1997-10-21 Object Technology Licensing Corporation Object-oriented operating system enhancement for filtering items in a window
US5956715A (en) * 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
US5831606A (en) 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5696486A (en) 1995-03-29 1997-12-09 Cabletron Systems, Inc. Method and apparatus for policy-based alarm notification in a distributed network management environment
GB2301912A (en) * 1995-06-09 1996-12-18 Ibm Security for computer system resources
US5838317A (en) 1995-06-30 1998-11-17 Microsoft Corporation Method and apparatus for arranging displayed graphical representations on a computer interface
US6535230B1 (en) 1995-08-07 2003-03-18 Apple Computer, Inc. Graphical user interface providing consistent behavior for the dragging and dropping of content objects
US5929854A (en) 1995-11-30 1999-07-27 Ross; Michael M. Dialog box method and system for arranging document windows
US5867163A (en) 1995-12-01 1999-02-02 Silicon Graphics, Inc. Graphical user interface for defining and invoking user-customized tool shelf execution sequence
US6014137A (en) 1996-02-27 2000-01-11 Multimedia Adventures Electronic kiosk authoring system
US6768999B2 (en) * 1996-06-28 2004-07-27 Mirror Worlds Technologies, Inc. Enterprise, stream-based, information management system
US6021262A (en) 1996-07-12 2000-02-01 Microsoft Corporation System and method for detection of, notification of, and automated repair of problem conditions in a messaging system
US5757925A (en) 1996-07-23 1998-05-26 Faybishenko; Yaroslav Secure platform independent cross-platform remote execution computer system and method
US5923328A (en) 1996-08-07 1999-07-13 Microsoft Corporation Method and system for displaying a hierarchical sub-tree by selection of a user interface element in a sub-tree bar control
US5790121A (en) 1996-09-06 1998-08-04 Sklar; Peter Clustering user interface
US6025843A (en) * 1996-09-06 2000-02-15 Peter Sklar Clustering user interface
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US6037944A (en) 1996-11-07 2000-03-14 Natrificial Llc Method and apparatus for displaying a thought network from a thought's perspective
US6918096B2 (en) * 1996-11-07 2005-07-12 Thebrain Technologies, Corp. Method and apparatus for displaying a network of thoughts from a thought's perspective
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US5935210A (en) 1996-11-27 1999-08-10 Microsoft Corporation Mapping the structure of a collection of computer resources
EP1010076A1 (en) * 1996-11-27 2000-06-21 1Vision Software, L.L.C. File directory and file navigation system
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6023708A (en) * 1997-05-29 2000-02-08 Visto Corporation System and method for using a global translator to synchronize workspace elements across a network
US5835094A (en) * 1996-12-31 1998-11-10 Compaq Computer Corporation Three-dimensional computer environment
US5933139A (en) 1997-01-31 1999-08-03 Microsoft Corporation Method and apparatus for creating help functions
US5875446A (en) * 1997-02-24 1999-02-23 International Business Machines Corporation System and method for hierarchically grouping and ranking a set of objects in a query context based on one or more relationships
US6144968A (en) 1997-03-04 2000-11-07 Zellweger; Paul Method and apparatus for menu access to information objects indexed by hierarchically-coded keywords
US5930801A (en) * 1997-03-07 1999-07-27 Xerox Corporation Shared-data environment in which each file has independent security properties
US6317142B1 (en) 1997-04-04 2001-11-13 Avid Technology, Inc. Taxonomy of objects and a system of non-modal property inspectors
JPH10301938A (ja) 1997-04-22 1998-11-13 Canon Inc 画像処理装置およびその方法、画像処理システム、記憶媒体
US6057844A (en) 1997-04-28 2000-05-02 Adobe Systems Incorporated Drag operation gesture controller
US5987454A (en) 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
US5899995A (en) * 1997-06-30 1999-05-04 Intel Corporation Method and apparatus for automatically organizing information
US6573907B1 (en) * 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US5877766A (en) * 1997-08-15 1999-03-02 International Business Machines Corporation Multi-node user interface component and method thereof for use in accessing a plurality of linked records
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6237011B1 (en) * 1997-10-08 2001-05-22 Caere Corporation Computer-based document management system
US6097389A (en) 1997-10-24 2000-08-01 Pictra, Inc. Methods and apparatuses for presenting a collection of digital media in a media container
US6202061B1 (en) * 1997-10-24 2001-03-13 Pictra, Inc. Methods and apparatuses for creating a collection of media
US6061692A (en) * 1997-11-04 2000-05-09 Microsoft Corporation System and method for administering a meta database as an integral component of an information server
US6275829B1 (en) 1997-11-25 2001-08-14 Microsoft Corporation Representing a graphic image on a web page with a thumbnail-sized image
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6003040A (en) 1998-01-23 1999-12-14 Mital; Vijay Apparatus and method for storing, navigating among and adding links between data items in computer databases
US6401097B1 (en) * 1998-01-23 2002-06-04 Mccotter Thomas M. System and method for integrated document management and related transmission and access
ATE223595T1 (de) * 1998-01-23 2002-09-15 Emc Corp Einkapselung, datendarstellung und übertragung von inhaltsaddressierbaren daten
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6128623A (en) * 1998-04-15 2000-10-03 Inktomi Corporation High performance object cache
US7756892B2 (en) * 2000-05-02 2010-07-13 Digimarc Corporation Using embedded data with file sharing
US6256031B1 (en) 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
US6466238B1 (en) 1998-06-30 2002-10-15 Microsoft Corporation Computer operating system that defines default document folder for application programs
US6181342B1 (en) 1998-07-06 2001-01-30 International Business Machines Corp. Computer file directory system displaying visual summaries of visual data in desktop computer documents for quickly identifying document content
US6363377B1 (en) * 1998-07-30 2002-03-26 Sarnoff Corporation Search data processor
US6466932B1 (en) 1998-08-14 2002-10-15 Microsoft Corporation System and method for implementing group policy
US6324551B1 (en) 1998-08-31 2001-11-27 Xerox Corporation Self-contained document management based on document properties
US6240421B1 (en) 1998-09-08 2001-05-29 Edwin J. Stolarz System, software and apparatus for organizing, storing and retrieving information from a computer database
US6803926B1 (en) 1998-09-18 2004-10-12 Microsoft Corporation System and method for dynamically adjusting data values and enforcing valid combinations of the data in response to remote user input
US8332478B2 (en) * 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
JP2000112797A (ja) * 1998-10-02 2000-04-21 Nippon Telegr & Teleph Corp <Ntt> ビューディレクトリ処理方法および装置とビューディレクトリ処理プログラムを記録した記録媒体
US6341280B1 (en) 1998-10-30 2002-01-22 Netscape Communications Corporation Inline tree filters
US6134568A (en) * 1998-10-30 2000-10-17 Kinko's Ventures, Inc. Previewing an assembled document
US7730089B2 (en) * 1998-11-16 2010-06-01 Punch Networks Corporation Method and system for providing remote access to the facilities of a server computer
US6823344B1 (en) 1998-12-03 2004-11-23 International Business Machines Corporation File manager system providing faster and more efficient interactive user access to files in computer displays
US6571245B2 (en) * 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US6480835B1 (en) 1998-12-31 2002-11-12 Intel Corporation Method and system for searching on integrated metadata
US6762777B2 (en) 1998-12-31 2004-07-13 International Business Machines Corporation System and method for associating popup windows with selective regions of a document
US6147601A (en) 1999-01-09 2000-11-14 Heat - Timer Corp. Electronic message delivery system utilizable in the monitoring of remote equipment and method of same
US6628309B1 (en) 1999-02-05 2003-09-30 International Business Machines Corporation Workspace drag and drop
US6411311B1 (en) * 1999-02-09 2002-06-25 International Business Machines Corporation User interface for transferring items between displayed windows
US6356915B1 (en) * 1999-02-22 2002-03-12 Starbase Corp. Installable file system having virtual file system drive, virtual device driver, and virtual disks
US6369840B1 (en) * 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
US6636238B1 (en) 1999-04-20 2003-10-21 International Business Machines Corporation System and method for linking an audio stream with accompanying text material
JP3284543B2 (ja) 1999-04-23 2002-05-20 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム格納媒体
US6573906B1 (en) * 1999-04-26 2003-06-03 International Business Machines Corporation Method and system for delivering integrated user assistance information and traditional help from the same source
US6539399B1 (en) * 1999-04-29 2003-03-25 Amada Company, Limited Stand alone data management system for facilitating sheet metal part production
US6526399B1 (en) 1999-06-15 2003-02-25 Microsoft Corporation Method and system for grouping and displaying a database
US6535229B1 (en) 1999-06-29 2003-03-18 International Business Machines Corporation Graphical user interface for selection of options within mutually exclusive subsets
IL130972A0 (en) 1999-07-15 2001-01-28 Hotbar Com Israel Ltd Method for the dynamic improvement of internet browser appearance and connectivity
US6448985B1 (en) 1999-08-05 2002-09-10 International Business Machines Corporation Directory tree user interface having scrollable subsections
US6549916B1 (en) * 1999-08-05 2003-04-15 Oracle Corporation Event notification system tied to a file system
US6763388B1 (en) * 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
US6430575B1 (en) 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
US6871348B1 (en) * 1999-09-15 2005-03-22 Intel Corporation Method and apparatus for integrating the user interfaces of multiple applications into one application
US6763458B1 (en) 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US7444390B2 (en) * 1999-10-20 2008-10-28 Cdimensions, Inc. Method and apparatus for providing a web-based active virtual file system
US6583799B1 (en) 1999-11-24 2003-06-24 Shutterfly, Inc. Image uploading
US7917628B2 (en) * 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US6754829B1 (en) * 1999-12-14 2004-06-22 Intel Corporation Certificate-based authentication system for heterogeneous environments
US6606105B1 (en) 1999-12-22 2003-08-12 Adobe Systems Incorporated Layer enhancements in digital illustration system
US6847959B1 (en) * 2000-01-05 2005-01-25 Apple Computer, Inc. Universal interface for retrieval of information in a computer system
EP1259901A1 (en) * 2000-01-27 2002-11-27 Synquiry Technologies, Ltd Software composition using graph types, graphs, and agents
US20020046299A1 (en) * 2000-02-09 2002-04-18 Internet2Anywhere, Ltd. Method and system for location independent and platform independent network signaling and action initiating
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
AU2001235940A1 (en) * 2000-02-23 2001-09-03 Eyal, Yehoshua Systems and methods for generating and providing previews of electronic files such as web files
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20060173873A1 (en) * 2000-03-03 2006-08-03 Michel Prompt System and method for providing access to databases via directories and other hierarchical structures and interfaces
US6757362B1 (en) * 2000-03-06 2004-06-29 Avaya Technology Corp. Personal virtual assistant
US6549217B1 (en) * 2000-03-23 2003-04-15 Koninklijke Philips Electronics N.V. System and method for computer system management using bookmarks
JP2001282813A (ja) * 2000-03-29 2001-10-12 Toshiba Corp マルチメディアデータ検索方法、インデックス情報提供方法、マルチメディアデータ検索装置、インデックスサーバ及びマルチメディアデータ検索サーバ
US6563514B1 (en) * 2000-04-13 2003-05-13 Extensio Software, Inc. System and method for providing contextual and dynamic information retrieval
JP4325075B2 (ja) * 2000-04-21 2009-09-02 ソニー株式会社 データオブジェクト管理装置
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US7043472B2 (en) * 2000-06-05 2006-05-09 International Business Machines Corporation File system with access and retrieval of XML documents
US6745206B2 (en) 2000-06-05 2004-06-01 International Business Machines Corporation File system with access and retrieval of XML documents
US7451099B2 (en) * 2000-08-30 2008-11-11 Kontera Technologies, Inc. Dynamic document context mark-up technique implemented over a computer network
JP2002082745A (ja) 2000-09-07 2002-03-22 Sony Corp 情報処理装置及び方法、並びにプログラム格納媒体
AUPR015700A0 (en) * 2000-09-15 2000-10-12 Filecat Pty Ltd Distributed file-sharing network
US6738770B2 (en) 2000-11-04 2004-05-18 Deep Sky Software, Inc. System and method for filtering and sorting data
US6684222B1 (en) * 2000-11-09 2004-01-27 Accenture Llp Method and system for translating data associated with a relational database
US6762776B2 (en) 2000-11-10 2004-07-13 Microsoft Corporation Mouse input panel windows class list
US7020848B2 (en) * 2000-12-20 2006-03-28 Eastman Kodak Company Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database
US7032182B2 (en) * 2000-12-20 2006-04-18 Eastman Kodak Company Graphical user interface adapted to allow scene content annotation of groups of pictures in a picture database to promote efficient database browsing
US6883146B2 (en) 2000-12-20 2005-04-19 Eastman Kodak Company Picture database graphical user interface utilizing map-based metaphors for efficient browsing and retrieving of pictures
US7028262B2 (en) * 2000-12-29 2006-04-11 International Business Machines Corporation Method and system for designing a theme and associating it with a collaboration space user interface
GB0100753D0 (en) * 2001-01-11 2001-02-21 Bate Matthew Data system
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
CA2335395A1 (en) * 2001-02-09 2002-08-09 Opengraphics Corporation Controlled access system for online communities
US6831655B2 (en) 2001-02-20 2004-12-14 Sun Microsystems, Inc. Method and apparatus for determining display element attribute values
US6828988B2 (en) * 2001-02-27 2004-12-07 Microsoft Corporation Interactive tooltip
US7689711B2 (en) * 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US20020152262A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US6751626B2 (en) * 2001-05-03 2004-06-15 International Business Machines Corporation Method, system, and program for mining data in a personal information manager database
US20020188735A1 (en) * 2001-06-06 2002-12-12 Needham Bradford H. Partially replicated, locally searched peer to peer file sharing system
US6910049B2 (en) * 2001-06-15 2005-06-21 Sony Corporation System and process of managing media content
US7440994B2 (en) * 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
KR20030006734A (ko) * 2001-07-14 2003-01-23 엠텍비젼 주식회사 통신망을 이용한 영상 데이터 관리 방법 및 시스템
US6865568B2 (en) * 2001-07-16 2005-03-08 Microsoft Corporation Method, apparatus, and computer-readable medium for searching and navigating a document database
US6801919B2 (en) 2001-07-27 2004-10-05 Hewlett-Packard Development Company, L.P. Object oriented database interface encapsulation that allows for chronologically overlapping transactions in a multi-threaded environment
US7610218B2 (en) * 2001-07-31 2009-10-27 Lightsurf Technologies, Inc. Integrated shopping cart for sale of third party products and services via the internet
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
US20030028610A1 (en) * 2001-08-03 2003-02-06 Pearson Christopher Joel Peer-to-peer file sharing system and method using user datagram protocol
US6662198B2 (en) * 2001-08-30 2003-12-09 Zoteca Inc. Method and system for asynchronous transmission, backup, distribution of data and file sharing
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US6973482B2 (en) * 2001-10-01 2005-12-06 Microsoft Corporation Remote assistance
GB2380830A (en) * 2001-10-13 2003-04-16 Hewlett Packard Co Automatic file sharing in a peer to peer network by use of constraints between file system domains
US8015204B2 (en) * 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US20030078918A1 (en) * 2001-10-23 2003-04-24 Souvignier Todd J. Method, apparatus and system for file sharing between computers
US20030093580A1 (en) * 2001-11-09 2003-05-15 Koninklijke Philips Electronics N.V. Method and system for information alerts
US6876996B2 (en) * 2001-11-14 2005-04-05 Sun Microsystems, Inc. Method and apparatus for using a shared library mechanism to facilitate sharing of metadata
US20030105745A1 (en) * 2001-12-05 2003-06-05 Davidson Jason A. Text-file based relational database
US7024427B2 (en) * 2001-12-19 2006-04-04 Emc Corporation Virtual file system
JP3778079B2 (ja) * 2001-12-20 2006-05-24 株式会社日立製作所 表示装置
US20030120928A1 (en) * 2001-12-21 2003-06-26 Miles Cato Methods for rights enabled peer-to-peer networking
US20040049547A1 (en) * 2001-12-21 2004-03-11 Matthews W. Donald Methods for providing information over networks responsive to digital device user requests
US7266843B2 (en) * 2001-12-26 2007-09-04 Mcafee, Inc. Malware scanning to create clean storage locations
WO2003063029A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System and method for using virtual directories to service url requests in application servers
AU2003223238A1 (en) * 2002-03-11 2003-09-29 Visionshare, Inc. Method and system for peer-to-peer secure communication
US7107285B2 (en) * 2002-03-16 2006-09-12 Questerra Corporation Method, system, and program for an improved enterprise spatial system
WO2003081483A1 (en) * 2002-03-18 2003-10-02 Daniel Rex Greening Community directory
US20040030731A1 (en) * 2002-04-03 2004-02-12 Liviu Iftode System and method for accessing files in a network
US6938042B2 (en) * 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7010755B2 (en) * 2002-04-05 2006-03-07 Microsoft Corporation Virtual desktop manager
US6816863B2 (en) 2002-05-09 2004-11-09 International Business Machines Corporation Method, system, and computer product for providing a distribution list
US7574488B2 (en) * 2002-05-31 2009-08-11 Hitachi, Ltd. Method and apparatus for peer-to-peer file sharing
US20040001106A1 (en) * 2002-06-26 2004-01-01 John Deutscher System and process for creating an interactive presentation employing multi-media components
US20040002993A1 (en) * 2002-06-26 2004-01-01 Microsoft Corporation User feedback processing of metadata associated with digital media files
WO2004008348A1 (en) * 2002-07-16 2004-01-22 Horn Bruce L Computer system for automatic organization, indexing and viewing of information from multiple sources
JP2004054721A (ja) * 2002-07-23 2004-02-19 Hitachi Ltd ネットワークストレージ仮想化方法
US20040054674A1 (en) * 2002-09-13 2004-03-18 Carpenter Keith A. Enabling a web application to access a protected file on a secured server
US7490313B2 (en) * 2002-09-30 2009-02-10 Microsoft Corporation System and method for making user interface elements known to an application and user
US8935202B2 (en) * 2002-09-30 2015-01-13 Reed Elsevier Inc. Managing changes in a relationship management system
US20040088374A1 (en) * 2002-10-31 2004-05-06 Webb James D. Aggregation and sharing of patient data
GB0226294D0 (en) * 2002-11-12 2002-12-18 Autodesk Canada Inc Image processing
WO2004046957A2 (en) * 2002-11-15 2004-06-03 Creo Inc. Methods and systems for sharing data
CA2506168A1 (en) * 2002-11-15 2004-06-03 Bigchampagne, Llc Monitor file storage and transfer on a peer-to-peer network
TWI221746B (en) * 2002-11-18 2004-10-01 Ulead Systems Inc Preview file generating method applicable on multiple systems and device thereof
US20040098379A1 (en) * 2002-11-19 2004-05-20 Dan Huang Multi-indexed relationship media organization system
US7549047B2 (en) * 2002-11-21 2009-06-16 Xerox Corporation Method and system for securely sharing files
US7769881B2 (en) * 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US7945618B2 (en) * 2003-02-10 2011-05-17 Oren Asher Peer-to-peer service designer
US7769794B2 (en) * 2003-03-24 2010-08-03 Microsoft Corporation User interface for a file system shell
US7627552B2 (en) * 2003-03-27 2009-12-01 Microsoft Corporation System and method for filtering and organizing items based on common elements
US20050015405A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Multi-valued properties
US20050114672A1 (en) * 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162441A (ja) * 2001-11-28 2003-06-06 Oki Electric Ind Co Ltd 分散ファイル共有システムおよびそのファイルアクセス制御方法

Also Published As

Publication number Publication date
KR20060118315A (ko) 2006-11-23
EP1573959A4 (en) 2007-07-25
WO2005045594A3 (en) 2005-07-14
KR101120755B1 (ko) 2012-03-23
JP2007509435A (ja) 2007-04-12
WO2005045594A2 (en) 2005-05-19
US7536386B2 (en) 2009-05-19
EP1573959A2 (en) 2005-09-14
US20040193673A1 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
JP4732358B2 (ja) 静的および動的リストの使用を伴う仮想フォルダおよび項目共有のためのシステムおよび方法
JP4685186B2 (ja) 様々なタイプおよび様々な物理位置からのアイテムを表示するためのファイルシステム
KR100996763B1 (ko) 가상 폴더들을 사용하는 시스템 및 방법
US7526483B2 (en) System and method for virtual folder sharing including utilization of static and dynamic lists
RU2368947C2 (ru) Система и способ фильтрации и организации элементов на основе общих свойств
JP4378292B2 (ja) ファイルシステムシェル
US6397231B1 (en) Virtual documents generated via combined documents or portions of documents retrieved from data repositories
US6308179B1 (en) User level controlled mechanism inter-positioned in a read/write path of a property-based document management system
US6562076B2 (en) Extending application behavior through active properties attached to a document in a document management system
US6370553B1 (en) Atomic and molecular documents
RU2479016C2 (ru) Общая система редактирования моделей
HRP20040440A2 (en) File system shell

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110324

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: 20110415

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110420

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4732358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250