JP2015502607A - クライアントアプリケーションのファイル・アクセス - Google Patents

クライアントアプリケーションのファイル・アクセス Download PDF

Info

Publication number
JP2015502607A
JP2015502607A JP2014542485A JP2014542485A JP2015502607A JP 2015502607 A JP2015502607 A JP 2015502607A JP 2014542485 A JP2014542485 A JP 2014542485A JP 2014542485 A JP2014542485 A JP 2014542485A JP 2015502607 A JP2015502607 A JP 2015502607A
Authority
JP
Japan
Prior art keywords
file
client application
version
web
local
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.)
Granted
Application number
JP2014542485A
Other languages
English (en)
Other versions
JP2015502607A5 (ja
JP6272771B2 (ja
Inventor
ガルシア−アスカニオ,フランシスコ
アダム アルパーン ベーム,ジョシュア
アダム アルパーン ベーム,ジョシュア
ディフェンバー,デイヴィッド
ヴィンセント フィオーダリス,ダニエル
ヴィンセント フィオーダリス,ダニエル
ウィッグズ,ジョーゼフ
アーウィン,アリッサ
エリザベス シグナー,デニーズ
エリザベス シグナー,デニーズ
リンコン,アダム
オマホニー,アリソン
アクマル,モナ
アレン リューダー,ロジャー
アレン リューダー,ロジャー
アルナブ サッキヤ シンハ ボセ,ミコ
アルナブ サッキヤ シンハ ボセ,ミコ
バラスブラマニヤン,バラジ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015502607A publication Critical patent/JP2015502607A/ja
Publication of JP2015502607A5 publication Critical patent/JP2015502607A5/ja
Application granted granted Critical
Publication of JP6272771B2 publication Critical patent/JP6272771B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/172Caching, prefetching or hoarding of files
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ファイルのローカル・オフライン・バージョン及び/又はファイルのウェブ・オンライン・バージョンに基づいて、クライアントアプリケーションにファイルへのアクセスを提供する、1つ又は複数の技法及び/又はシステムが開示される。すなわち、ファイルは、ウェブ・ストレージ・サービスなどのリモート・ソースから共有/同期される。ファイルのウェブ・オンライン・バージョンは、ウェブ・ストレージ・サービスによって保持され、ファイルのローカル・オフライン・バージョンは、クライアントデバイスに格納される。ファイルのローカル・バージョン及び/又はウェブ・バージョンの知識を備える同期モジュールは、ファイルのローカル・バージョン及び/又はウェブ・バージョンに基づいて、クライアントアプリケーションにそのファイルへのアクセスを提供し得る。同期モジュールはまた、クライアントアプリケーションが洗練されたファイル取り扱い機能を備えている場合、クライアントアプリケーションに同期権限を委譲してもよい。

Description

本発明は、クライアントアプリケーションのファイル・アクセスに関する。
多くのユーザは、ラップトップ、デスクトップ、スマートフォンなどの様々なコンピューティングデバイス、及び/又は他のデバイスを所有する。このようなデバイス間において、データの共有が望ましい可能性がある。一例において、ウェブ・ストレージ・サービスは、ユーザがオンライン・ストレージにファイルをアップロードし、様々なデバイス間でこのようなファイルを同期させることを許容することがある。特に、同期(sync)モジュールなどの同期サービスが、ユーザデバイスにインストールされることがある。共有すべきファイルが利用可能であるとき(例えばクライアントアプリケーションによって現在アクセスされていない)、同期サービスは、共有されるファイルをウェブ・ストレージ・サービスにアップロードすることができる。残念ながら、同期サービスは、少なくともクライアントアプリケーションと比べて、非効率及び/又は不十分なファイル取り扱い能力しか有さない可能性がある。例えば同期サービスは、特定のタイプのファイルに対して調整されない可能性がある、汎用のアップロード/ダウンロードの機能性を有することがある(これに対して、例えばワード処理のクライアントアプリケーションは、テキスト文書に対する変更を、例えば所望の効率的な様式等で保存することができる可能性がある)。それでも、クライアントアプリケーションは、洗練されたファイル取り扱い機能を有し得るものの、クライアントアプリケーションは(同期サービスとは異なり)、整備されている可能性がある同期サービス、同期技法の存在、及び/又はオフライン・アクセスの利用可能性を認識していない可能性がある。
この「発明の概要」の記載は、「発明を実施するための形態」において以下にさらに記載される概念の選択を、簡略化された形式で紹介するために提供される。この「発明の概要」の記載は、特許請求に係る主題の手法な要因又は本質的特徴を特定するようには意図されておらず、特許請求に係る主題の範囲を限定するのに用いられるようにも意図されていない。
特に、クライアントアプリケーションにファイルへのアクセスを提供し、クライアントアプリケーションに同期権限を委譲し、及び/又はクライアントアプリケーションにファイルへのオフライン・アクセスを提供する、1つ又は複数のシステム及び/又は技法を本明細書において開示する。クライアントアプリケーションをホストするクライアントデバイスを、オンライン・ストレージをホストするウェブ・ストレージ・サービスにアクセスするように構成された同期モジュールに関連付けることができる。オンライン・ストレージは、共有されるファイルのウェブ・オンライン・バージョンを格納するように構成される。同期モジュールは、ウェブ・ストレージ・サービスから共有ファイルのウェブ・オンライン・バージョンに関して通知(例えばファイルのウェブ・オンライン・バージョンが追加、除去及び/又は修正されたという通知)を受信するように構成される。同期モジュールは、共有ファイルのローカル・オフライン・バージョンを管理するように構成される(例えば同期モジュールは、ウェブ・ストレージ・サービスを経由して共有されるファイルのローカルコピーを追加、除去、及び/又は修正することができる)。このようにして、同期モジュールは、ファイルのローカル・オフライン・バージョン、及び/又はファイルのウェブ・オンライン・バージョンに関連付けられる同期情報などの知識を有し得る(例えばこの場合、クライアントアプリケーションは、そのような知識を保有しない)。したがって、同期モジュールは、同期情報(例えばファイルのウェブ・オンライン・バージョンのURL、ファイルのローカル・オフライン・バージョンのローカル・ファイルのパス、同期権限等)をクライアントアプリケーションに提供することができ、その結果、クライアントアプリケーションは、ファイルの同期を実施すること、ファイルのローカル・オフライン・バージョン及び/又はファイルのウェブ・オンライン・バージョンに基づいてファイルにアクセスすること、並びに/あるいはウェブ・ストレージ・サービス及び/又はクライアントデバイスがオフラインであったとしても、共有ファイルにアクセスすることが可能になり得る(例えば以前に同期されたファイルに対するオフライン・アクセスが提供され得る)。クライアントアプリケーションによって実行されるファイルの同期は、単にファイルデータを転送すること(例えばファイルをオンライン・ストレージに上り方向に転送するか、及び/又はオンライン・ストレージから下り方向に転送すること)から、洗練された同期の機能性を実施すること(例えばファイル間でコンテンツを同期させること)にまで及ぶ可能性があることが認識される。すなわち、同期及び/又は同様のものは、データ・ファイルを同期させることとは対照的に、データを転送することを単に含み得るが、当然ながら、同期させることも含み得る。
クライアントアプリケーションにファイルへのアクセスを提供する一例では、クライアントアプリケーションから、ファイルへアクセスするための要求が受信され得る。例えばワード・プロセッサは、共有されるテキストファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイルのパス、共有されるテキストファイルのウェブ・オンライン・バージョンに関連付けられたURL、及び/又は共有されたテキストファイルの列挙を要求する一般問合せを含む要求を生成することができる。ファイルのローカル・オフライン・バージョンがローカルに格納されている場合、クライアントアプリケーションに、ファイルとして、ローカル・オフライン・バージョンへのアクセスを提供することができる(例えばワード・プロセッサに、少なくとも部分的にテキストファイルのローカル・オフライン・バージョンから導出される、テキストファイルへのアクセスを提供することができる)。一例において、ファイルのウェブ・オンライン・バージョンが利用不可能である(例えばオフラインである)場合であっても、ファイルのローカル・オフライン・バージョンに対するアクセスを提供することができる。ファイルのウェブ・オンライン・バージョンがリモートに格納されている場合、クライアントアプリケーションに、ファイルとして、ファイルのウェブ・オンライン・バージョンへのアクセスを提供することができる(例えばワード・プロセッサに、少なくとも部分的にテキストファイルのウェブ・オンライン・バージョンから導出されたテキストファイルへのアクセスを提供することができる)。
一例において、クライアントアプリケーションには、ファイルとして、当該ファイルのローカル・オフライン・バージョンと当該ファイルのウェブ・オンライン・バージョンとの双方に対するアクセスを提供することができる(例えばワード・プロセッサには、テキストファイルのローカル・オフライン・バージョンの少なくとも一部と、テキストファイルのウェブ・オンライン・バージョンの少なくとも一部とから導出されたテキストファイルへのアクセスを提供することができ、その結果、ワード・プロセッサによってアクセスされるテキストファイルは、テキストファイルのローカル・オフライン・バージョンとテキストファイルのウェブ・オンライン・バージョンとの双方に関連付けられることになる)。このようにして、クライアントアプリケーションによるファイルとの対話及び/又はファイルへの修正を、クライアントアプリケーションによってアクセスされたファイル、該ファイルのローカル・オフライン・バージョン、及び/又は該ファイルのウェブ・オンライン・バージョンの間で同期することができる。例えば同期は、クライアントアプリケーションがファイルにアクセスしている間に、リアルタイムで実施されることがある。このようなリアルタイムの同期により、ファイルと、リモートのクライアントアプリケーションによってアクセスされる、対応するファイルとの間の共同オーサリングが可能になる。例えばファイル及び/又は対応するファイルを、クライアントアプリケーション及び/又はリモートのクライアントアプリケーションに対してアクセス可能なファイルのウェブ・オンライン・バージョンに基づいて、リアルタイムで更新することができる。
クライアントアプリケーションに同期権限を委譲する一例において、ファイルがフォーマットされる、特定のファイル・タイプと対話するように構成されたクライアントアプリケーションを識別することができる(例えばワード・プロセッサは.txtファイル・タイプとしてフォーマットされるテキストファイルと対話するように構成される)。クライアントアプリケーションは、ファイル・タイプに関して、洗練されたファイル取り扱い機能性を備えることができる。例えばワード・プロセッサは、テキストファイルの全体を再保存するのとは対照的に、既存のテキストファイルに対して行われた変更のみを保存するように構成され得る。大量の異なるファイル・タイプ(例えば.txtテキストファイル、.bmp画像ファイル、.zip圧縮ファイル、.xlsスプレッドシート・ファイル等)がウェブ・ストレージ・サービスによって共有される可能性があるため、同期モジュールは、その様々なファイル・タイプに関して適切なファイル取り扱い機能を備えていないことがある(例えば同期モジュールは、汎用のダウンロード/アップロードの機能性しか備えていないことがある)。したがって、同期モジュールにとって、クライアントアプリケーションに同期権限を委譲し、その結果、クライアントアプリケーションが、該クライアントアプリケーションによってアクセスされたファイル、該ファイルのローカル・オフライン・バージョン、及び/又はファイルのウェブ・オンライン・バージョンを同期させることができるようにすることが効率のよい可能性がある。本明細書における態様は、概して、例えば同期サービス及びクライアントアプリケーションに関連する弱点、欠点等を緩和、回避等しつつも、例えば同期サービス及びクライアントアプリケーションに関連する強み、利点等を促進、活用等することを認識されたい。一例において、(例えばファイルへの許可されたアクセスを与える広範なセキュリティ機能を実施するのとは対照的に)同期権限の委譲は、単に同期のタスク(例えばファイル転送)をクライアントアプリケーションに委譲することを含むことを認識されたい。すなわち(逆のことが示されない限り)、同期「権限」の委譲及び/又は同様の文言が、本明細書の全体にわたって使用されるとしても、本出願は、添付の特許請求の範囲の範囲を含め、認証動作(例えば認証情報の要求及び/又は検証など)に限定するようには意図されておらず、及び/又は認証動作を必要とするようにも企図されていない。
上記の目的及び関連する目的を達成するために、以下の説明及び添付された図面では、ある特定の例示的な態様及び実装を説明する。これらは、1つ又は複数の態様を用いることができる様々な方法のうちの一部のみを示すものにすぎない。本開示の他の態様、利点及び新規の特徴は、添付の図面とともに考察されるときに、以下の詳細な説明から明らかになるであろう。
クライアントアプリケーションにファイルへのアクセスを提供する例示的方法を示すフローチャートである。 同期権限をクライアントアプリケーションに委譲する例示的方法を示すフローチャートである。 クライアントアプリケーションにファイルへのオフライン・アクセスを提供する例示的方法を示すフローチャートである。 同期権限をクライアントアプリケーションに委譲する例示的システムを示すコンポーネント・ブロック図である。 クライアントアプリケーションにファイルへのアクセスを提供する例示的システムを示すコンポーネント・ブロック図である。 クライアントアプリケーションにファイルへのオフライン・アクセスを提供する例示的システムを示すコンポーネント・ブロック図である。 文書の共同オーサリングを可能にする例を示す図である。 本明細書で説明されるプロビジョンのうちの1つ又は複数を具現化するように構成されたプロセッサ実行可能な命令を備え得る、例示的コンピュータ読取可能媒体を示す図である。 本明細書で説明されるプロビジョンのうちの1つ又は複数が実装され得る、例示的コンピューティング環境を示す図である。
次に、特許請求に係る主題を、図面を参照しながら説明する。図面では一般に、同じ参照番号が、全体にわたって同じ要素を指すのに使用される。以下の記述では、説明の目的で、特許請求に係る主題の完全な理解をもたらすために、多数の具体的な詳細が説明される。しかしながら、特許請求に係る主題が、これらの具体的な詳細を用いずに実施されてもよいことは明らかであろう。他の場合において、構造及びデバイスが、主題の記載を容易にするためにブロック図の形式で図示される。
今日、データはよくコンピューティングデバイス間で共有される。例えばユーザは、ウェブ・ストレージ・サービスによってホストされるオンライン・ストレージを使用して、デスクトップ・デバイスとスマートフォンとの間で写真を共有することができる。共有した写真の同期は、そのデスクトップ・デバイス及びスマートフォン上の同期モジュールによって提供され得る。残念ながら、ウェブ・ストレージ・サービスが利用不可能の場合(例えばオフライン)、ユーザは、オンライン・ストレージ内に格納された、共有した写真に、デスクトップ・デバイス及び/又はスマートフォンからアクセスすることができないことがある。加えて、同期モジュールは、共有した写真に関連付けられたファイル・タイプに精通していない可能性がある(例えば同期モジュールは、汎用のアップロード/ダウンロード機能しか備えていない可能性がある)のに対して、デスクトップ・デバイス及び/又はスマートフォン上の写真クライアントアプリケーションは、共有された写真に関連付けられた、格納/同期の機能を取り扱うのにより適している可能性がある。しかしながら、写真クライアントアプリケーションは、実施されている可能性があるウェブ・ストレージ・サービス及び/又は同期ポリシーについて、認識していない可能性がある。したがって、同期モジュールは、写真クライアントアプリケーションの洗練されたファイルの取り扱い機能を用いずに、共有された写真を同期させることにおいて、非効率である可能性がある。
したがって、他のものの中でも特に、クライアントアプリケーションにファイルへのアクセスを提供し、クライアントアプリケーションに同期権限を委譲し、及び/又はクライアントアプリケーションにファイルへのオフライン・アクセスを提供するための、1つ又は複数のシステム及び/又は技法が本明細書において提供される。
図1の例示的方法100によって、クライアントアプリケーションにファイルへのアクセスを提供する一実施形態が示される。この方法は、102において開始する。104において、クライアントアプリケーションから、ファイルへアクセスするよう求める要求を受信する。要求を受信する一例において、この要求は、ウェブ・ストレージ・サービスによって共有された利用可能なファイルについての、同期モジュールへの問合せを含み得る。同期モジュールは、クライアントアプリケーションが理解することが可能な、及び/又は対話することが可能な1つ又は複数のファイル・タイプを判断することができる(例えばクライアントアプリケーションが、ファイル・タイプの互換性情報を同期モジュールに提供することがある)。このようにして、クライアントアプリケーションに、識別されたファイル・タイプに対応するファイル・タイプに従ってフォーマットされた、1つ又は複数のファイルへのアクセスを提供することができる。要求を受信する別の例において、要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたローカル・ファイル・パスを含むことがある。別の例において、この要求は、ウェブ・ストレージ・サービスによって共有されたファイルに関連付けられたURLを含むことがある。別の例において、この要求は、ファイルを識別するリソースIDを含むことがある(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。一例において、同期モジュールが、ウェブ・ストレージ・サービスによって共有されたファイルに関する知識、及び/又は共有されたファイルのローカルに格納されたバージョンに関する知識を備えることがあり、一方、クライアントアプリケーションは、このような知識を有していないことがあることが認識される。
106において、ファイルのローカル・オフライン・バージョンが、ローカルに格納されている場合、クライアントアプリケーションに、ファイルとして、ローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる(例えば同期モジュールは、ローカル・ファイル・パスを、クライアントアプリケーションによる要求で指定され得るウェブ・オンライン・バージョンに関連付けられたURLに基づいて導出することができる)。このようにして、クライアントアプリケーションは、ローカル・ファイル・パスを使用して、ローカル・オフライン・バージョンからファイルを開くことができる。一例において、このファイルがローカルに格納されるように指定されているものの、まだローカルに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなローカル・オフライン・バージョンが作成されるべきローカル・パスを、クライアントアプリケーションに提供してもよい。108において、ファイルのウェブ・オンライン・バージョンが、リモートに(例えばウェブ・ストレージ・サービスによってホストされるオンライン・ストレージ内に)格納されている場合、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンへのアクセスをファイルとして提供することができる。例えばファイルのウェブ・オンライン・バージョンに関連付けられたURLを、クライアントアプリケーションに提供することができる(例えば同期モジュールは、クライアントアプリケーションによる要求内で指定され得るローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスに基づいて、URLを導出することができる)。このようにして、クライアントアプリケーションは、そのURLを使用して、ウェブ・オンライン・バージョンからファイルを開くことができる。一例において、このファイルが、リモートに格納されるように指定されているものの、まだリモートに格納されていない場合、同期コンポーネントは、クライアントアプリケーションによってファイルの新たなリモート・バージョンが作成されるべきリモート・パスを、クライアントアプリケーションに提供することができる。
一例において、クライアントアプリケーションに、ローカル・オフライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ファイルのウェブ・オンライン・バージョンが利用可能ではない(例えばオフライン)か、及び/又はクライアントアプリケーションにとって、アクセスすることが非効率であり得るためである。別の例において、クライアントアプリケーションに、ウェブ・オンライン・バージョンへのアクセスのみがファイルとして提供されることがある。これは、ウェブ・オンライン・バージョンが、ファイルの最新のバージョンであるか、及び/又はファイルのローカル・オフライン・バージョンが利用不可能であり得るためである。別の例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンとファイルのウェブ・オンライン・バージョンとの双方へのアクセスがファイルとして提供されることがある。すなわち、クライアントアプリケーションによってアクセスされたファイルは、ファイルのローカル・オフライン・バージョンの少なくとも一部と、ファイルのウェブ・オンライン・バージョンの少なくとも一部とから導出されるか、及び/又はそれらの部分に同期的に関連付けられることがある。このようにして、クライアントアプリケーションによってアクセスされるファイル、ファイルのローカル・オフライン・バージョン、及び/又はファイルのウェブ・オンライン・バージョンを同期することができる。このような同期は、例えばクライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間のファイルの共同オーサリングを可能にすることができる。例えばファイル及び対応するファイルは、ファイルのウェブ・オンライン・バージョンを経由して同期され得る(例えばリモートのクライアントアプリケーションによってファイルのウェブ・オンライン・バージョンに対して行われた修正が、同期モジュールによって検出されることがあり、同期モジュールは、クライアントアプリケーションに、ファイルを、当該ファイルのウェブ・オンライン・バージョンと同期させるように指示することができる)。
クライアントアプリケーションは、あるファイル・タイプを取り扱うための洗練された機能を備えることがあり、一方、同期モジュールは、このような高度な機能を備えていないことがある(例えば同期モジュールは、共有されたファイルに関連付けられている可能性がある広範なファイル・タイプに起因して、汎用のアップロード/ダウンロードの機能しか備えていないことがある)。したがって、同期権限が、クライアントアプリケーションに委譲されることがある。一例において、クライアントアプリケーションに対して、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、このローカル・ファイル・パスを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを提供し、このURLを使用して、クライアントアプリケーションによってアクセスされたファイルを当該ファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このように、クライアントアプリケーションによって提供されるファイル取り扱い機能を用いて、より向上した同期を提供することができる。
同期モジュールは、ウェブ・ストレージ・サービスから通知を規則的に受け取るので、同期モジュールは、ファイルのウェブ・オンライン・バージョンが修正されたという通知をクライアントアプリケーションに提供し、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのウェブ・オンライン・バージョンとを同期させるように指示することができる。同期モジュールは、共有されたローカル・ファイルのローカル・ストレージをモニタリングし得るため、同期モジュールは、クライアントアプリケーションに、該クライアントアプリケーションがアクセスしたファイルと、そのファイルのローカル・オフライン・バージョンとを同期させるように指示し得る。110において、この方法は終了する。
図2の例示的方法200によって、クライアントアプリケーションに同期権限を委譲する一実施形態が示される。この方法は、202において開始する。204において、ファイルがフォーマットされる特定のファイル・タイプと対話するように構成されたクライアントアプリケーションを識別することができる。例えばオペレーティング・システム・レジストリを調べて、クライアントアプリケーションが、そのファイル・タイプに従ってフォーマットされたファイルを開くことができるかどうかを判断することができる(例えばレジストリ・キーは、ワード・プロセッサが.txtファイルを開くことができることを示すことがある)。別の例において、クライアントアプリケーションのインストール、クライアントアプリケーションのアンインストール、クライアントアプリケーションに対する修正、及び/又はクライアントアプリケーションに関連付けられたファイル・タイプ(例えば.txt及び.docx(しかし例えば.jpgではない))を、オペレーティング・システム・レジストリ内の1つ又は複数のレジストリ・キーを使用して識別することができる。206において、同期権限をクライアントアプリケーションに委譲して、クライアントアプリケーションによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させることができる。一例において、ファイルをリソースIDによって識別することができる(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。
一例において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供し、該ローカル・ファイル・パスを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのローカル・オフライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを提供し、このURLを使用して、クライアントアプリケーションがアクセスしたファイルを、そのファイルのウェブ・オンライン・バージョンと同期させる同期権限を委譲することができる。別の例において、クライアントアプリケーションに、クライアントによってアクセスされたファイル、当該ファイルのローカル・オフライン・バージョン、及び/又は当該ファイルのウェブ・オンライン・バージョンを同期させる同期権限を委譲することができる。このようにして、クライアントアプリケーションによって提供されるファイルの取り扱い機能を用いて、より向上した同期を提供することができる。208において、この方法は終了する。
図3の例示的方法300によって、クライアントアプリケーションにファイルへのオフライン・アクセスを提供する一実施形態が示される。この方法は、302において開始する。304において、ファイルへアクセスする要求が、クライアントアプリケーションから受信され得る。一例において、この要求は、ファイルを識別するリソースIDを含み得る(例えばリソースIDは、ファイルと、同期モジュール、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーションとを一意に結び付ける)。任意選択により、306において、ファイルのウェブ・オンライン・バージョンの利用不可能性が判断され得る(例えばファイルのウェブ・オンライン・バージョンを含むオンライン・ストレージのホストするウェブ・ストレージ・サービスが、アクセス不可能であることがある)。一例において、同期モジュールが、ファイルのローカル・オフライン・バージョンを事前に格納している可能性がある(例えば同期モジュールが、ファイルのウェブ・オンライン・バージョンを、クライアントアプリケーションに対してローカルに格納されたファイルのローカル・オフライン・バージョンとしてダウンロードしている可能性がある)ことが認められ得る。308において、クライアントアプリケーションに、ファイルのローカル・オフライン・バージョンへのアクセスを提供することができる。例えばファイルのローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを、クライアントアプリケーションに提供することができる(例えば要求が、ファイルのウェブ・オンライン・バージョンに関連付けられたURLを含むことがあり、当該URLに基づいて、ローカル・ファイル・パスを特定することができる(これは、例えばオンライン・バージョンが利用可能ではないためである))。310においてこの方法は終了する。
図4は、同期権限をクライアントアプリケーション410に委譲するために構成されたシステム400の例を図示している。システム400は、同期モジュール416を含み得る。同期モジュール416は、共有されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース402から、通知408を規則的に受け取るように構成されることができる。同期モジュール416は、ファイルのウェブ・オンライン・バージョン404が作成、修正及び/又は削除されたという通知など、共有/同期されたファイルに関連付けられる様々な情報を含む通知408を受信することができる。同期モジュール416は、ファイルのローカル・オフライン・バージョン424などの共有/同期されたファイルのローカル・ストレージ422(例えばクライアントアプリケーション410を含むコンピューティングデバイスに関連付けられたストレージ)に関連付けられたトポロジ・イベント(例えば作成、修正、削除等)のモニタリング及び/又は実行420を行うように構成され得る。一例において、ファイル404はリソースIDによって識別され得る(例えばリソースIDは、ファイル404と、同期モジュール416、ウェブ・ストレージ・サービス、及び/又はクライアントアプリケーション410とを一意に結び付け得る)。
同期モジュール416が、特定のタイプのファイルを取り扱う洗練させた機能(例えばファイル内のどのデータを同期すべきかを判断するために使用される機能)を備えていない可能性があるため、同期モジュール406は、同期情報414をクライアントアプリケーション410に提供するように構成されることがある。クライアントアプリケーション410は、特定のファイル・タイプに従ってフォーマットされたファイルを取り扱うための洗練された機能を備えることができる。このようにして、クライアントアプリケーション410は、当該クライアントアプリケーション410によってアクセスされたファイル412、ファイルのウェブ・オンライン・バージョン404、及び/又はファイルのローカル・オフライン・バージョン424の間において、同期406及び/又は418などの同期を実施し得る。同期モジュール416は、同期情報(例えば同期モジュール416の存在、ファイルのローカル・オフライン・バージョンがどこに格納されているか等に関する情報)をクライアントアプリケーション410に提供し得る。一例において、同期モジュール416は、ファイルのウェブ・オンライン・バージョン404に関連付けられたURLと、同期権限とを同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、例えばファイル412とファイルのウェブ・オンライン・バージョン404とを同期406させることが可能になる。別の例において、同期モジュール416は、ファイルのローカル・オフライン・バージョン424に関連付けられたローカル・ファイル・パスと、同期権限とを同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、ファイル412とファイルのローカル・オフライン・バージョン424とを同期418させることが可能になる。別の例において、同期モジュール416は、ローカル・ファイル・パス、URL、及び/又は同期権限を同期情報414内で提供することがあり、それによってクライアントアプリケーション410が、ファイル412、ファイルのローカル・オフライン・バージョン424、及び/又はファイルのウェブ・オンライン・バージョン404を同期させることが可能になる。同期モジュール416は、同期の進捗状況、成功、及び/又は失敗に関する情報を求めて、クライアントアプリケーション410をポーリングし得る(例えばクライアントアプリケーション410は、同期モジュール416に対し、ポーリングに利用可能な新たな同期イベントを通知する可能性があり、これにより特に、例えば追加のオーバーヘッドをほとんど又は全く伴わずに、同期モジュールのUI更新の増加をもたらすことができる)。このようにして、クライアントアプリケーション410は、同期モジュール416に代わってロバストな同期を実施することができる(なぜなら、例えば同期モジュール416は、洗練された同期を取り扱うように装備又は構成等されていない可能性があるためである)。
図5は、クライアントアプリケーション508にファイル514へのアクセスを提供するために構成されたシステム500の例を図示している。システム500は、同期モジュール510を含み得る。同期モジュール510は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース502からの通知を規則的に受け取るように構成され得る。同期モジュール510は、ファイルのウェブ・オンライン・バージョン504に関する通知(例えばファイルのウェブ・オンライン・バージョン504の作成、修正、及び/又は削除に関する情報を含む通知)などの、共有/同期されたファイルに関する情報を受信し得る。同期モジュール510は、ファイルのローカル・オフライン・バージョン518などの共有/同期されたファイルのローカル・ストレージ516(例えばクライアントアプリケーション508を含むコンピューティングデバイスに関連付けられたストレージ)に関連付けられたトポロジ・イベント(例えば作成、修正、削除等)をモニタリング及び/又は実施するように構成され得る。
同期モジュール510は、ファイルのウェブ・オンライン・バージョン504に関連付けられたURL、及び/又はファイルのローカル・オフライン・バージョン518に関連付けられたローカル・ファイル・パスのような同期情報512を、クライアントアプリケーション508に提供するように構成され得る。このようにして、同期モジュール510は、ファイルのローカル・オフライン・バージョン518へのアクセス520をファイル514として、及び/又はファイルのウェブ・オンライン・バージョン504へのアクセス506をファイル514として、クライアントアプリケーション508に提供し得る。クライアントアプリケーション508は、ファイル514にアクセスするときに、同期情報512を用いてよい。例えばファイル514は、クライアントアプリケーション508によって、ファイルのウェブ・オンライン・バージョン504の少なくとも一部、及び/又はファイルのローカル・オフライン・バージョン518の少なくとも一部を用いて開かれることがある。
図6は、クライアントアプリケーション608にファイル614へのオフライン・アクセスを提供するために構成されたシステム600の例を図示している。システム600は、同期モジュール610を含み得る。同期モジュール610は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース602から、通知を規則的に受け取るように構成され得る。同期モジュール610は、ファイルのウェブ・オンライン・バージョン604に関する通知(例えばファイルのウェブ・オンライン・バージョン604の作成、修正、及び/又は削除に関する情報を含む通知)などの、共有/同期されたファイルに関する情報を受信し得る。同期モジュール610は、ローカル・ストレージ616(例えばクライアントアプリケーション608からローカルにアクセス可能なストレージ)内に共有/同期されたファイルのバージョンを、ローカルに格納するように構成され得る。例えば同期モジュール610は、ファイルのウェブ・オンライン・バージョン604を、ローカル・ストレージ616内にファイルのローカル・オフライン・バージョン618として格納し得る。このようにして、同期モジュール610は、ファイルのローカル・オフライン・バージョン618に基づいて、クライアントアプリケーション608に、ファイル614へのオフライン・アクセスを提供することができる。
一例において、同期モジュール610は、クライアントアプリケーション608から、ファイル614へアクセスする要求を受信し得る。同期モジュール610は、クライアントアプリケーション608に、ファイルのローカル・オフライン・バージョン618に関連付けられたローカル・ファイル・パス612を提供し得る。リモート・ソース602及び/又はファイルのウェブ・オンライン・バージョン604が、オフライン606である(例えばクライアントアプリケーション608にとって利用不可能である)可能性があるため、同期モジュール610は、ローカル・ファイル・パス612を、クライアントアプリケーション608に単に提供してもよい。したがって、クライアントアプリケーション608は、ローカル・ファイル・パス610を使用して、ファイル614として、ファイルのローカル・オフライン・バージョン618にアクセス620し得る。このようにして、クライアントアプリケーション608に、ファイル614へのオフライン・アクセスを提供することができる。
図7は、文書の共同オーサリングを可能にする例700を図示している。テキストファイルなどの文書は、共有/同期されたファイルのオンライン・ストレージのホストするウェブ・ストレージ・サービスなどのリモート・ソース702へ、ファイルのウェブ・オンライン・バージョン704としてアップロードされ得る。ファイルのウェブ・オンライン・バージョン704は、クライアントアプリケーション710、リモートのクライアントアプリケーション712、並びに/あるいは他のクライアントアプリケーション及び/又はデバイス(図示せず)の間で共有/同期され得る。ファイルのウェブ・オンライン・バージョン704は、クライアントアプリケーション710のホストするクライアントデバイスに同期706されるか、及び/又はリモートのクライアントアプリケーション712のホストするリモートクライアントデバイスに同期708され得る。クライアントアプリケーション710は、ファイル714として、ファイルのウェブ・オンライン・バージョン704(例えばファイルのウェブ・オンライン・バージョン704のインスタンス)にアクセスし得る。リモートのクライアントアプリケーション712は、対応するファイル716として、ファイルのウェブ・オンライン・バージョン704(例えばファイルのウェブ・オンライン・バージョン704のインスタンス)にアクセスし得る。ファイル714及び対応するファイル718が、クライアントアプリケーション710及び/又はリモートのクライアントアプリケーション712によってアクセスされている間に、ファイルのウェブ・オンライン・バージョン704と同期され得るため、共同オーサリングが可能になり得る。例えばクライアントアプリケーション710のユーザは、ファイル714と対話している間、リモートのクライアントアプリケーション712のリモートユーザによって行われた対応するファイル716との対話を視認することが可能である。同様に、リモートのクライアントアプリケーション712のリモートユーザは、対応するファイル716と対話している間、クライアントアプリケーション710のユーザによって行われたファイル714との対話を視認することが可能である。このようにして、ファイルのウェブ・オンライン・バージョン704の同期706及び/又は同期708に基づいて、共同オーサリングが可能になり得る。
更に別の実施形態は、本明細書に提示される技法のうちの1つ又は複数を実装するように構成されたプロセッサ実行可能な命令を含む、コンピュータ読取可能媒体を含む。図8に、これらの方法で考案され得る例示的コンピュータ読取可能媒体が図示されている。実装例800は、コンピュータ読取可能データ814が符号化されるコンピュータ読取可能媒体816(例えばCD−R、DVD−R又はハード・ディスク・ドライブのプラッタ)を備える。このコンピュータ読取可能データ814は、本明細書で説明される原理のうちの1つ又は複数に従って動作するように構成されるコンピュータ命令812のセットを含む。1つのこのような実施形態800において、プロセッサ実行可能なコンピュータ命令812は、例えば図1の例示的方法100の少なくとも一部、図2の例示的方法200の少なくとも一部、及び/又は図3の例示的方法300の少なくとも一部のような、方法810を実行するように構成され得る。別のこのような実施形態において、プロセッサ実行可能な命令812は、例えば図4の例示的システム400の少なくとも一部、図5の例示的システム500の少なくとも一部、及び/又は図6の例示的システム600の少なくとも一部のようなシステムを実装するように構成され得る。本明細書に提示される技法に従って動作するように構成される多くのこのようなコンピュータ読取可能媒体が、当業者によって考案され得る。
本主題を、構造的特徴及び/又は方法的動作に特有の言語で説明してきたが、添付の特許請求の範囲において定義される主題は、必ずしも上記の具体的な特徴又は動作に限定されないことを理解されたい。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実装する、例示的形式として開示されている。
本出願において使用されるとき、「コンポーネント」、「モジュール」、「システム」、「インタフェース」及び同様の用語は、一般に、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、又は実行中のソフトウェアのいずれかのコンピュータ関連エンティティを指すように意図される。例えばコンポーネントは、限定ではないが、プロセッサ上で稼動するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム及び/又はコンピュータであってよい。例として、コントローラ上で稼動するアプリケーションと、そのコントローラとの双方がコンポーネントであってよい。1つ又は複数のコンポーネントが、プロセス及び/又は実行スレッド内に存在することがあり、1つのコンポーネントが、1つのコンピュータ上に配置されてもよく、及び/又は2つ若しくはそれ以上のコンピュータ間において分散されてもよい。
さらに、特許請求に係る主題は、ソフトウェア、ファームウェア、ハードウェア又はそれらの任意の組み合わせを作成し、開示された主題を実装するようコンピュータを制御する、標準的なプログラミング及び/又はエンジニアリング技法を使用して、方法、装置又は製品として実装されてもよい。本明細書において使用されるとき、「製品」という用語は、任意のコンピュータ読取可能デバイス、キャリア又は媒体からアクセス可能なコンピュータ・プログラムを包含することが意図される。当然ながら、特許請求に係る主題の範囲又は精神から逸脱することなく、この構成に対して多くの修正が行われ得ることが、当業者には認識されよう。
図9及び以下の議論では、本明細書で説明される対応策のうちの1つ又は複数の実施形態を実装するのに適したコンピューティング環境の簡潔かつ一般的な説明を提供する。図9の動作環境は、適切な動作環境の一例に過ぎず、動作環境の使用又は機能性の範囲に関していかなる限定を示唆するようにも意図されていない。例示のコンピューティングデバイスには、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、モバイルデバイス(モバイルフォン、パーソナル・デジタル・アシスタント(PDA)、メディアプレーヤ等)、マルチプロセッサシステム、家庭用電子機器、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境等が含まれる。
必ずではないが、諸実施形態は、1つ又は複数のコンピューティングデバイスによって「コンピュータ読取可能命令」が実行されるという一般的な文脈で説明される。コンピュータ読取可能命令は、コンピュータ読取可能媒体により分散され得る(以下に論じる)。コンピュータ読取可能命令は、特定のタスクを実行するか、又は特定の抽象データ型を実装する、関数、オブジェクト、アプリケーション・プログラミング・インタフェース(API)、データ構造等のプログラム・モジュールとして実装され得る。典型的に、コンピュータ読取可能命令の機能性は、様々な環境において所望の通りに組み合わされるか、又は分散される可能性がある。
図9は、本明細書において提供される1つ又は複数の実施形態を実装するように構成されたコンピューティングデバイス912を備えるシステム910の例を図示している。一構成において、コンピューティングデバイス912は、少なくとも1つの処理ユニット916及びメモリ918を含む。コンピューティングデバイスの厳密な構成及びタイプに依存して、メモリ918は、揮発性(例えばRAM等)、不揮発性(例えばROM、フラッシュメモリ等)又は両者の何らかの組み合わせであり得る。図9には、この構成が、破線914によって図示されている。
他の実施形態において、デバイス912は、付加的な特徴及び/又は機能性を含み得る。例えばデバイス912は、これらに限定されないが、磁気ストレージ、光学ストレージ等を含め、付加的なストレージ(例えば取り外し可能及び/又は取り外し不可能なストレージ)も含んでよい。このような付加的なストレージは、図9において、ストレージ920によって図示されている。一実施形態では、本明細書において提供される1つ又は複数の実施形態を実装するコンピュータ読取可能命令が、ストレージ920内に存在してよい。ストレージ920は、オペレーティングシステム、アプリケーション・プログラム等を実装する他のコンピュータ読取可能命令も格納してよい。コンピュータ読取可能命令は、例えば処理ユニット916による実行のために、メモリ918にロードされ得る。
本明細書において使用されるとき、「コンピュータ読取可能媒体」という用語はコンピュータ記憶媒体を含む。コンピュータ記憶媒体は、コンピュータ読取可能命令又は他のデータ等の情報を格納するために、任意の方法又は技術で実装される、揮発性及び不揮発性の、取り外し可能及び取り外し不可能な媒体を含む。メモリ918及びストレージ920はコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、これらに限定されないが、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ若しくは他の磁気ストレージ・デバイス、又は所望の情報を格納するために使用可能であって、デバイス912によってアクセス可能な任意の他の媒体を含む。任意のこのようなコンピュータ記憶媒体がデバイス912の一部であってもよい。
デバイス912は、当該デバイス912が他のデバイスと通信することを許容する通信接続(複数可)926も含み得る。通信接続926は、これらに限定されないが、モデム、ネットワーク・インタフェース・カード(NIC)、統合ネットワーク・インタフェース、無線周波送信機/受信機、赤外線ポート、USB接続、又はコンピューティングデバイス912を他のコンピューティングデバイスに接続するための他のインタフェースを含み得る。通信接続(複数可)926は、有線接続又は無線接続を含み得る。通信接続926は、通信媒体を送信及び/又は受信し得る。
「コンピュータ読取可能媒体」という用語は、通信媒体を含むことがある。通信媒体は典型的に、コンピュータ読取可能命令又は他のデータを、搬送波又は他の移送機構などの「変調されたデータ信号」内に具現化し、任意の情報伝送媒体を含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するような手法で、その特性のうちの1つ又は複数を設定又は変更させた信号を含み得る。
デバイス912は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、及び/又は任意の他の入力デバイスのような入力デバイス(複数可)924を含むことがある。1つ若しくは複数のディスプレイ、スピーカ、プリンタ、及び/又は任意の他の出力デバイス等の出力デバイス(複数可)922も、デバイス912に含まれてよい。入力デバイス(複数可)924及び出力デバイス922は、有線接続、無線接続又はこれらの任意の組み合わせを介して、デバイス912に接続され得る。一実施形態では、別のコンピューティングデバイスからの入力デバイス又は出力デバイスを、コンピューティングデバイス912用の入力デバイス924又は出力デバイス922として使用してよい。
コンピューティングデバイス912のコンポーネントは、バスなどの様々な相互接続によって接続され得る。このような相互接続は、PCI ExpressのようなPCI(周辺コンポーネント相互接続)、ユニバーサルシリアルバス(USB)、ファイアワイヤ(登録商標)(IEEE1394)、光学バス構造等を含み得る。別の実施形態において、コンピューティングデバイス912のコンポーネントを、ネットワークによって相互接続することができる。例えばメモリ918は、ネットワークによって相互接続された異なる物理的位置に配置された複数の物理的なメモリユニットで構成されてよい。
本技術分野の当業者には、コンピュータ読取可能命令を格納するのに使用されるストレージ・デバイスを、ネットワーク全体に分散させてもよいことが認識されよう。例えばネットワーク928を介してアクセス可能なコンピューティングデバイス930が、本明細書において提供される1つ又は複数の実施形態を実装するコンピュータ読取可能命令を格納してもよい。コンピューティングデバイス912は、コンピューティングデバイス930にアクセスして、コンピュータ読取可能命令の一部分又は全てを、実行のためにダウンロードすることができる。あるいは、コンピューティングデバイス912は、必要に応じて、コンピュータ読取可能命令の一部をダウンロードしてもよく、あるいは一部の命令をコンピューティングデバイス912において実行し、別の一部をコンピューティングデバイス930において実行してもよい。
諸実施形態の様々な動作が本明細書において提供される。一実施形態では、説明される動作のうちの1つ又は複数が、1つ又は複数のコンピュータ読取可能媒体に格納されたコンピュータ読取可能命令を構成してもよく、コンピュータ読取可能命令は、コンピューティングデバイスによって実行されると、該コンピューティングデバイスに、説明された動作を実行させる。動作の一部又は全てが記載される順序は、これらの動作が必ずしも順序依存であることを暗示するものとして解釈されるべきではない。この説明の利益を享受する本技術分野の当業者によって、代替的な順序が認識されるであろう。さらに、必ずしも全ての動作が、本明細書において提供される各実施形態において存在するとは限らないことが理解されよう。
さらに、本明細書において「例示的」という語は、例、実例又は例示として機能することを意味するように使用されている。本明細書において「例示的」として説明される任意の態様又は設計が、必ずしも他の態様又は設計よりも有利であると解釈されるべきではない。むしろ、例示的という語の使用は、具体的様式で概念を提示するように意図されている。本出願において使用されるとき、「又は(若しくは/あるいは)」という用語は、排他的な「又は(若しくは/あるいは)」ではなく、包含的な「又は(若しくは/あるいは)」を意味することが意図される。すなわち、特に指定されない限り、又は文脈から明らかである場合を除いて、「XがA又はBを用いる」は、自然な包含的順列の全てを意味することが意図される。すなわち、XがAを用いる場合、XがBを用いる場合、XがAとBの双方を用いる場合、「XはA又はBを用いる」は、上記の実例のいずれの下においても満たされる。加えて、本出願及び添付の特許請求の範囲で使用される冠詞「ある(a及びan)」は、一般に、特に指定されない限り、又は文脈から単数形を対象とすることが明らかである場合を除いて、「1つ又は複数」を意味するように解釈され得る。また、「A及びBのうちの少なくとも1つ」及び/又は同様の語は一般に、「A又はB」、「AとBとの双方」を意味する。
また、本開示は、1つ又は複数の実装に関して示され、説明されているが、本明細書及び添付の図面の読解及び理解に基づいて、均等な変更及び修正が当技術分野の他の当業者には想起されよう。本開示は、このような修正及び変更の全てを含み、特許請求の範囲によってのみ限定される。特に、上記のコンポーネント(例えば要素、リソース等)によって実行される様々な機能に関して、このようなコンポーネントを説明するのに使用される用語は、特に指定されない限り、本開示の本明細書で図示された例示的実装において機能を実施する、開示された構造と構造的に等価ではない場合であっても、説明されるコンポーネントの指定された機能を実行する任意の(例えば機能的に等価な)コンポーネントに対応することが意図される。加えて、本開示の特定の特徴が、いくつかの実装のうちの1つのみに関して開示されていることがあるが、このような特徴を、任意の所与の用途又は特定の用途にとって望まれ、有利であるように、他の実装の1つ又は複数の他の特徴と組み合わせてもよい。さらに、「含む(includes)」、「有する(having)」、「有する(has)」、「有する(with)」という用語又はそれらの変形体が詳細な説明又は特許請求の範囲のいずれかで使用される限りにおいて、このような用語は、「備える(comprising)」という用語と同様に包含的であることが意図される。

Claims (10)

  1. クライアントアプリケーションにファイルへのアクセスを提供する方法であって、
    クライアントアプリケーションから、ファイルへアクセスする要求を受信するステップと、
    前記ファイルのローカル・オフライン・バージョンがローカルに格納されている場合、前記クライアントアプリケーションに、前記ファイルとして、前記ローカル・オフライン・バージョンへのアクセスを提供するステップと、
    前記ファイルのウェブ・オンライン・バージョンがリモートに格納されている場合、前記クライアントアプリケーションに、前記ファイルとして、前記ファイルの前記ウェブ・オンライン・バージョンへのアクセスを提供するステップと
    を含む、方法。
  2. 前記クライアントアプリケーションに、前記ローカル・オフライン・バージョンへのアクセスを提供するステップは、前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供することを含み、
    前記クライアントアプリケーションに、前記ウェブ・オンライン・バージョンへのアクセスを提供するステップは、前記クライアントアプリケーションに、前記ウェブ・オンライン・バージョンに関連付けられたURLを提供することを含む、請求項1に記載の方法。
  3. 前記クライアントアプリケーションに、前記ファイルとして、前記ファイルの前記ローカル・オフライン・バージョンと前記ファイルの前記ウェブ・オンライン・バージョンとの双方へのアクセスを提供するステップ
    を含む、請求項1に記載の方法。
  4. 前記クライアントアプリケーションが前記ファイルにアクセスしている間に、前記ファイル、前記ファイルの前記ローカル・オフライン・バージョン、及び前記ファイルの前記ウェブ・オンライン・バージョンを同期させるステップ
    を含む、請求項3に記載の方法。
  5. 前記クライアントアプリケーションと、対応するファイルにアクセスするリモートのクライアントアプリケーションとの間で、前記ファイルの共同オーサリングを可能にするステップを含み、前記ファイルと前記対応するファイルとが、前記ファイルの前記ウェブ・オンライン・バージョンを経由して同期される、請求項3に記載の方法。
  6. 前記クライアントアプリケーションに、前記ファイルの前記ウェブ・オンライン・バージョンに対する修正についての通知を提供するステップと、
    前記クライアントアプリケーションに、前記ファイルと前記ファイルの前記ウェブ・オンライン・バージョンとを同期させるように指示するステップと
    を含む、請求項5に記載の方法。
  7. 前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供するステップと、
    前記クライアントアプリケーションに、前記ローカル・ファイル・パスを使用して前記ファイルと前記ファイルの前記ローカル・オフライン・バージョンとを同期させる同期権限を委譲するステップと
    を含む、請求項1に記載の方法。
  8. 前記クライアントアプリケーションに、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられたURLを提供するステップと、
    前記クライアントアプリケーションに、前記URLを使用して前記ファイルと前記ファイルの前記ウェブ・オンライン・バージョンとを同期させる同期権限を委譲するステップと
    を含む、請求項1に記載の方法。
  9. クライアントアプリケーションに、ファイルへのオフライン・アクセスを提供するシステムであって、
    クライアントアプリケーションから、ファイルへアクセスする要求を受信し、
    前記ファイルのウェブ・オンライン・バージョンが利用可能ではないと判断し、
    前記クライアントアプリケーションに、前記ファイルのローカル・オフライン・バージョンへのアクセスを提供する
    ように構成された同期モジュールを備える、システム。
  10. 前記要求が、前記ファイルの前記ウェブ・オンライン・バージョンに関連付けられたURLを含み、前記同期モジュールが、前記クライアントアプリケーションに、前記ファイルの前記ローカル・オフライン・バージョンに関連付けられたローカル・ファイル・パスを提供するように構成され、前記ローカル・ファイル・パスが、前記URLに基づいて特定される、請求項9に記載のシステム。
JP2014542485A 2011-11-21 2012-11-16 クライアントアプリケーションのファイル・アクセス Active JP6272771B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/301,039 2011-11-21
US13/301,039 US9355115B2 (en) 2011-11-21 2011-11-21 Client application file access
PCT/US2012/065468 WO2013078082A1 (en) 2011-11-21 2012-11-16 Client application file access

Publications (3)

Publication Number Publication Date
JP2015502607A true JP2015502607A (ja) 2015-01-22
JP2015502607A5 JP2015502607A5 (ja) 2015-12-10
JP6272771B2 JP6272771B2 (ja) 2018-01-31

Family

ID=48427982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014542485A Active JP6272771B2 (ja) 2011-11-21 2012-11-16 クライアントアプリケーションのファイル・アクセス

Country Status (12)

Country Link
US (1) US9355115B2 (ja)
EP (1) EP2783294A4 (ja)
JP (1) JP6272771B2 (ja)
KR (1) KR101985042B1 (ja)
CN (1) CN103946845B (ja)
AU (1) AU2012340908B2 (ja)
BR (1) BR112014012075B1 (ja)
CA (1) CA2856081C (ja)
IN (1) IN2014CN03323A (ja)
MX (1) MX342077B (ja)
RU (1) RU2620721C2 (ja)
WO (1) WO2013078082A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898742B2 (en) * 2011-10-11 2014-11-25 Paramount Pictures Corporation Systems and methods for controlling access to content distributed over a network
US9594686B2 (en) * 2012-05-05 2017-03-14 Google Inc. File handling within a cloud-based file system
TW201445497A (zh) * 2013-05-16 2014-12-01 Fong-Yuan Chang 檔案於不同裝置間的同步方法
WO2014209304A1 (en) * 2013-06-26 2014-12-31 Hewlett-Packard Development Company, L.P. Thin client computing device taskbar and widgets
US9398111B1 (en) 2013-08-30 2016-07-19 hopTo Inc. File caching upon disconnection
US9904720B2 (en) * 2013-09-18 2018-02-27 Facebook, Inc. Generating offline content
US20150106478A1 (en) * 2013-10-15 2015-04-16 Microsoft Corporation File handlers supporting dynamic data streams
WO2015094195A1 (en) 2013-12-17 2015-06-25 Hitachi Data Systems Corporation Transaction query engine
US9817987B2 (en) * 2013-12-23 2017-11-14 Dropbox, Inc. Restricting access to content
KR102221100B1 (ko) * 2014-06-02 2021-02-26 삼성전자주식회사 클라우드 서비스를 이용한 데이터 저장 방법 및 이를 위한 장치
US20150365469A1 (en) * 2014-06-17 2015-12-17 Google Inc. System and method for integrating web and native applications from web-based contexts
US9876849B2 (en) 2014-11-05 2018-01-23 Google Llc Opening local applications from browsers
US10554664B2 (en) * 2016-05-02 2020-02-04 Microsoft Technology Licensing, Llc Activity feed for hosted files
US10609116B2 (en) * 2016-10-25 2020-03-31 Leapfrog Enterprises, Inc. Local synchronization of web-based interaction
US10783010B2 (en) * 2018-09-24 2020-09-22 Salesforce.Com, Inc. Offline briefcase synchronization
US11048504B2 (en) * 2019-06-21 2021-06-29 Sap Se Providing offline mode for mobile applications
CN114584736B (zh) * 2020-03-13 2023-08-22 抖音视界有限公司 基于视频会议的共享方法、装置、电子设备和计算机介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249948A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムで使用されるファイルリソース切り替え方法および記録媒体
JP2008287350A (ja) * 2007-05-15 2008-11-27 Fuji Xerox Co Ltd 文書管理システム及び文書管理方法、並びにコンピュータ・プログラム
JP2011519105A (ja) * 2008-04-28 2011-06-30 マイクロソフト コーポレーション 競合の解決

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
EP1117049A1 (en) * 2000-01-14 2001-07-18 Sun Microsystems, Inc. Dynamic conversion of data
US6907546B1 (en) * 2000-03-27 2005-06-14 Accenture Llp Language-driven interface for an automated testing framework
EP1563389A4 (en) * 2001-08-01 2008-06-25 Actona Technologies Ltd VIRTUAL DATA DISTRIBUTION NETWORK
US7275105B2 (en) 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
US7552189B2 (en) 2002-01-18 2009-06-23 Bea Systems, Inc. System and method for using virtual directories to service URL requests URL requests in application servers
US6979438B2 (en) 2002-01-25 2005-12-27 The Procter & Gamble Company Antiperspirant compositions containing petrolatum
US6938042B2 (en) 2002-04-03 2005-08-30 Laplink Software Inc. Peer-to-peer file sharing
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
JP2005044104A (ja) 2003-07-28 2005-02-17 Toshiba Corp コンテンツ管理装置及びコンテンツ管理方法
US7930757B2 (en) * 2003-10-31 2011-04-19 Adobe Systems Incorporated Offline access in a document control system
EP1751745B1 (en) * 2003-11-14 2019-07-10 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9083765B2 (en) * 2004-07-02 2015-07-14 Oracle International Corporation Systems and methods of offline processing
US7596594B2 (en) * 2004-09-02 2009-09-29 Yahoo! Inc. System and method for displaying and acting upon email conversations across folders
US20060101064A1 (en) * 2004-11-08 2006-05-11 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US7593943B2 (en) * 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US20060224687A1 (en) * 2005-03-31 2006-10-05 Popkin Laird A Method and apparatus for offline cooperative file distribution using cache nodes
US7607582B2 (en) 2005-04-22 2009-10-27 Microsoft Corporation Aggregation and synchronization of nearby media
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
US7356767B2 (en) * 2005-10-27 2008-04-08 International Business Machines Corporation Extensible resource resolution framework
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
US20070239725A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Active cache offline access and management of project files
US7526530B2 (en) 2006-05-05 2009-04-28 Adobe Systems Incorporated System and method for cacheing web files
KR101496185B1 (ko) * 2006-08-24 2015-03-26 지멘스 인더스트리 인코포레이티드 프로그램 가능 논리 제어기를 구성하기 위한 디바이스들, 시스템들, 및 방법들
US20080086540A1 (en) * 2006-10-06 2008-04-10 James Scott Method and system for executing a normally online application in an offline mode
US7966426B2 (en) 2006-11-14 2011-06-21 Microsoft Corporation Offline synchronization capability for client application
US8015581B2 (en) * 2007-01-05 2011-09-06 Verizon Patent And Licensing Inc. Resource data configuration for media content access systems and methods
US8452853B2 (en) * 2007-03-05 2013-05-28 International Business Machines Corporation Browser with offline web-application architecture
KR101525220B1 (ko) * 2007-09-28 2015-06-10 엑세리온 악티에볼라그 네트워크 오퍼레이팅 시스템
US20090125526A1 (en) * 2007-11-13 2009-05-14 Brent Neufeld System and method for providing automated non-volatile offline access to relational data
US8037110B2 (en) 2007-12-27 2011-10-11 Microsoft Corporation Business data access client for online/offline client use
US9003059B2 (en) * 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
US20100262582A1 (en) * 2009-04-10 2010-10-14 Microsoft Corporation Content synchronization across multiple computers
US9330191B2 (en) * 2009-06-15 2016-05-03 Microsoft Technology Licensing, Llc Identifying changes for online documents
KR101090469B1 (ko) 2009-07-31 2011-12-06 주식회사 하이닉스반도체 데이터제어회로
US9111287B2 (en) * 2009-09-30 2015-08-18 Microsoft Technology Licensing, Llc Video content-aware advertisement placement
WO2011117461A1 (en) * 2010-03-23 2011-09-29 Nokia Corporation Method and apparatus for managing files in an online account
KR101482150B1 (ko) 2010-05-10 2015-01-14 에스케이플래닛 주식회사 웹 어플리케이션 실행 장치 및 그의 웹 어플리케이션 관리 방법
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US9202196B2 (en) * 2011-05-06 2015-12-01 Verizon Patent And Licensing Inc. Rule-based tracking of products based on intelligent identifiers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249948A (ja) * 1998-02-27 1999-09-17 Toshiba Corp コンピュータシステム、同システムで使用されるファイルリソース切り替え方法および記録媒体
JP2008287350A (ja) * 2007-05-15 2008-11-27 Fuji Xerox Co Ltd 文書管理システム及び文書管理方法、並びにコンピュータ・プログラム
JP2011519105A (ja) * 2008-04-28 2011-06-30 マイクロソフト コーポレーション 競合の解決

Also Published As

Publication number Publication date
RU2014120423A (ru) 2015-11-27
MX2014006095A (es) 2014-06-23
RU2620721C2 (ru) 2017-05-29
AU2012340908B2 (en) 2017-08-31
BR112014012075A2 (pt) 2017-06-13
BR112014012075B1 (pt) 2021-08-24
CA2856081A1 (en) 2013-05-30
KR101985042B1 (ko) 2019-05-31
WO2013078082A1 (en) 2013-05-30
CN103946845B (zh) 2018-01-02
AU2012340908A1 (en) 2014-05-29
BR112014012075A8 (pt) 2017-12-12
US20130132463A1 (en) 2013-05-23
US9355115B2 (en) 2016-05-31
KR20140095502A (ko) 2014-08-01
EP2783294A4 (en) 2015-08-26
CA2856081C (en) 2019-08-06
JP6272771B2 (ja) 2018-01-31
EP2783294A1 (en) 2014-10-01
MX342077B (es) 2016-09-13
IN2014CN03323A (ja) 2015-07-03
CN103946845A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
JP6272771B2 (ja) クライアントアプリケーションのファイル・アクセス
US10268835B2 (en) Hosted application gateway architecture with multi-level security policy and rule promulgations
US10277673B2 (en) Local server for synced online content management system
AU2015289740B2 (en) Unregistered user account generation for content item sharing
EP2851833B1 (en) Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations
US9817987B2 (en) Restricting access to content
US9680964B2 (en) Programming model for installing and distributing occasionally connected applications
EP3005080B1 (en) Synchronizing device association data among computing devices
US10824756B2 (en) Hosted application gateway architecture with multi-level security policy and rule promulgations
US10348821B2 (en) Prioritizing structural operations and distributing changes in a synced online content management system
TW201314571A (zh) 外部服務應用程式探索方法
US10209976B2 (en) Automated application installation
US11360788B2 (en) Transfer of control of configuration sources
JP2017199108A (ja) 情報処理システム、情報処理装置及びプログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171027

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180104

R150 Certificate of patent or registration of utility model

Ref document number: 6272771

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250