JP6175181B2 - 同期したオンラインコンテンツ管理システムのためのローカルサーバ - Google Patents

同期したオンラインコンテンツ管理システムのためのローカルサーバ Download PDF

Info

Publication number
JP6175181B2
JP6175181B2 JP2016504388A JP2016504388A JP6175181B2 JP 6175181 B2 JP6175181 B2 JP 6175181B2 JP 2016504388 A JP2016504388 A JP 2016504388A JP 2016504388 A JP2016504388 A JP 2016504388A JP 6175181 B2 JP6175181 B2 JP 6175181B2
Authority
JP
Japan
Prior art keywords
management system
content management
local
online content
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016504388A
Other languages
English (en)
Other versions
JP2016518653A (ja
Inventor
ジガ マフコヴェック,
ジガ マフコヴェック,
ラジーヴ ナヤク,
ラジーヴ ナヤク,
Original Assignee
ドロップボックス, インコーポレイテッド
ドロップボックス, インコーポレイテッド
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 ドロップボックス, インコーポレイテッド, ドロップボックス, インコーポレイテッド filed Critical ドロップボックス, インコーポレイテッド
Publication of JP2016518653A publication Critical patent/JP2016518653A/ja
Application granted granted Critical
Publication of JP6175181B2 publication Critical patent/JP6175181B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles

Description

本技術は同期したデータへのアクセスに関し、特にローカルウェブサーバを使用して、同期したデータを読み出し、それにアクセスし、またはそうでなければそれと相互作用することに関する。
関連出願へのクロスリファレンス
本願は、2013年3月22日に出願された米国特許出願第13/849,165号の優先権の利益を享受する。この出願は、参照によりその全体が本明細書に組み入れられる。
計算デバイスやアプリケーションはよりありふれたものとなってきている。日々、人々は計算デバイス上のアプリケーションを使用してデータにアクセスしたりデータと相互作用したりする。これは特にモバイル計算デバイスやアプリケーションが数の上でも機能の上でも増えるにつれてそうである。ナビゲートしたり種々のデータにアクセスしたりするために、よくブラウザアプリケーションが使用される。ある人はサーバ上のオンラインとデバイス上のローカルとで同期したデータを有する。ユーザはオンラインサーバに彼のデータを格納し、かつ、そのデータを彼の計算デバイス上のローカルデータと同期させることができる。例えば、ユーザの電子メールはオンラインで保持され、かつ、彼の計算デバイス上にローカルで保持されうる。ユーザがオンラインで保持される電子メールを削除すると、同じローカルバージョンの電子メールが彼の計算デバイスから削除されうる。同様に、ユーザが彼のデバイスからローカル電子メールを削除すると、オンラインバージョンの電子メールもまた削除されうる。
ある場合には、ナビゲートしたりデータと相互作用したりするために、上記の例ではオンラインバージョンの電子メールを読むために、ブラウザアプリケーションを使用すると便利となりうる。しかしながら、ブラウザアプリケーションを介したオンラインデータへのアクセスは、オンラインデータへのネットワーク接続に依存して、遅いかまたは信頼できないものとなりうる。ネットワーク接続が遅いか、断続的か、そうでなければ信頼できない場合、データと相互作用するためにブラウザアプリケーションを使用することに関する全体的なユーザ体験は減少しうる。
本開示の追加的な特徴および利点は以下に説明されるであろうし、また部分的にはその説明から明らかであろうし、また本明細書で開示された原理の実施により学習されるであろう。本開示の特徴および利点は、添付の請求項において具体的に示す機器および組み合わせによって実現され、得られうるものである。本開示のこれらの特徴およびその他の特徴は、以下の記述および添付の請求項からさらに十分に明らかになるか、または本明細書で述べた原理の実施によっても分かるものである。
同期したオンラインコンテンツ管理システムと共に動作可能なローカルサーバのためのシステム、方法、および非一時的なコンピュータ可読保持媒体が開示される。本開示の種々の実施の形態は、データが、ローカル計算デバイスおよびオンラインコンテンツ管理システムの両方に保持され、かつそれらの間で同期されることを可能とする。
ある実施の形態では、クライアント計算デバイスは、オンラインコンテンツ管理システムに対応するクライアントアプリケーションを実行してもよい。クライアントアプリケーションは、クライアント計算デバイスにローカルで保持される選択されたデータ(例えば、コンテンツアイテムやファイルやフォルダなど)が、オンラインコンテンツ管理システムで保持され、かつ、同期することを可能としてもよい。ローカルで保持されるデータ(すなわち、ローカルデータ)とオンラインコンテンツ管理システムで保持されるデータ(すなわち、オンラインデータ)との間の同期処理は、1以上の指定された時に(例えば、定時に、同期コマンドに応じて、データが変更された場合、など)、生じてもよい。
一例では、クライアント計算デバイスはウェブブラウザを作動させていてもよい。この例では、ウェブブラウザのユーザはウェブブラウザを使用してインターネットを閲覧してもよい。閲覧の途中または閲覧後に、ユーザは、オンラインコンテンツ管理システムに保持される彼のコンテンツアイテム(例えば、ファイル)のひとつ以上にアクセスするのにウェブブラウザを使用すると決定してもよい。ブラウザは既に開いており、ユーザにより使用されているので、そのブラウザを使用してオンラインデータにアクセスする方が、(オンラインデータに同期した)ローカルデータにアクセスするコンテンツナビゲーション(例えば、ファイルナビゲーション)アプリケーションへと切り替えるよりも、よりユーザ利便性が高くなりうる。しかしながら、ウェブブラウザを使用したオンラインデータへのアクセスに関するユーザ体験は、ネットワーク接続のスピードおよび/または信頼性(例えば、インターネットスピードおよび/または利用可能性)によって変わりうる。
開示される技術は、クライアント計算デバイスにおいて作動するローカルサーバを実現してもよい。ローカルサーバはクライアントアプリケーションと連携して、ローカルで保持されるデータにアクセスするようおよび/またはそのデータと作用し合うよう動作してもよい。そのデータはコンテンツ管理システムのオンラインデータと同期している。ある実施の形態では、ローカルサーバは、クライアント計算デバイス上でのクライアントアプリケーションの実行に含まれていてもよい。ローカルサーバを介して、ブラウザなどのナビゲーションアプリケーションは、オンラインデータと同期したローカルで保持されるデータにアクセスしたり、そのデータと相互作用したりしてもよい。ローカルサーバを介してナビゲーションアプリケーションを使用して同期データにローカルでアクセスすることの利点は、性能の向上、データへのオフラインアクセス、およびデータとの相互作用のためのネイティブクライアントアプリケーションの利用を含む(がそれに限定されない)。
本開示の上記およびその他の利点および特徴は、添付の図面に示す特定の実施の形態を参照することにより明らかになるであろう。これらの図面は、本開示の例示的な実施の形態を示しているだけであり、それゆえ、本開示の範囲を限定しているとみなされてはならないことを理解した上で、添付の図面を用いてさらに具体的かつ詳細に本明細書の原理を記述して説明する。
図1は、本発明に係る、デバイスおよびネットワークの例示的な構成を示す。 図2は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバについての例示的なシステムの実施の形態を示す。 図3は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバについての例示的なシステムの実施の形態を示す。 図4は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用してデータにアクセスすることについての例示的なシステムの実施の形態を示す。 図5は、クライアント計算デバイスが同期オンラインコンテンツ管理システムと通信できない場合に、ローカルウェブサーバを使用してデータにアクセスすることについての例示的なシステムの実施の形態を示す。 図6は、データで動作するよう構成されたアプリケーションを実行するためにローカルウェブサーバを使用してそのデータにアクセスすることについての例示的なシステムの実施の形態を示す。 図7は、ローカルウェブサーバとクライアント計算デバイスと同期オンラインコンテンツ管理システムとの間で安全に通信することについての例示的なシステムの実施の形態を示す。 図8は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用することについての例示的な方法の実施の形態を示す。 図9は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用することについての例示的な方法の実施の形態を示す。 図10Aおよび図10Bは、例示的なシステムの実施の形態を示す。 図10Aおよび図10Bは、例示的なシステムの実施の形態を示す。
本開示のさまざまな実施の形態について、以下に詳しく論じる特定の実装について論じているが、これは説明のみを目的として行われていることを理解されたい。当業者は、本開示の趣旨および範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
開示される技術は、ローカル計算デバイスおよびオンラインコンテンツ管理システムについて同期されるデータにアクセスするかまたはそのデータと相互作用することへの当該技術分野における要求を満たす。開示される技術は、クライアントデバイスがクライアント側アプリケーションをサーバ側オンラインコンテンツ管理システムのために実行することを可能としてもよい。クライアント側アプリケーションはサーバ側オンラインコンテンツ管理システムと通信し、クライアント側にローカルで保持されるデータをサーバ側に保持されるデータと同期させてもよい。ローカルウェブサーバは、クライアント側アプリケーションと協働するように、クライアントデバイス上で実装されてもよい。その結果、ローカルウェブサーバはローカルで保持されるデータにアクセスしてもよい。クライアントデバイスは、ローカルウェブサーバと通信するウェブブラウザを作動させてもよい。クライアントデバイスのユーザは、ウェブブラウザを使用してローカルウェブサーバに接続し、クライアント側にローカルで保持される同期データにアクセスすることができる。ローカルウェブサーバを介してウェブブラウザを使用してローカルで保持されるデータにアクセスすることの利点は、性能の向上、データへのオフラインアクセス、およびデータとの相互作用のためのネイティブクライアントアプリケーションの利用を含む。
図1には、例示的なシステム構成100が示される。このシステム構成100では、複数の電子デバイスが、コンテンツや他のデータを交換する目的でネットワークを介して通信する。システムは、図1に示されるように、ワイドエリアネットワーク上で使用されるよう構成されてもよい。しかしながら、本原理は、電子デバイス間の通信を促進する様々な種類のネットワーク構成に適用可能である。例えば、図1のシステム100の各コンポーネントは、ネットワークにおいて局在的または分散的に実装されてもよい。
システム100では、直接および/または間接通信によりネットワーク104と接続された複数のクライアントデバイス102、102、…、102(「102」と総称する)を通じて、ユーザはコンテンツ管理システム106と相互に作用してもよい。コンテンツ管理システム106は、デスクトップコンピュータや、モバイルコンピュータや、携帯電話、スマートフォン、タブレットなどのモバイル通信デバイスや、スマートテレビジョンや、セットトップボックスや、他の任意のネットワーク可能な計算デバイスなどの多種多様なクライアントデバイスからの接続をサポートしてもよい。クライアントデバイス102のタイプや性能やオペレーティングシステムなどはいろいろであってよい。さらにコンテンツ管理システム106は、複数のクライアントデバイス102からの接続を同時に受け付けて相互作用を行ってもよい。
クライアントデバイス102にインストールされたクライアント側アプリケーションを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。ある実施の形態では、クライアント側アプリケーションはコンテンツ管理システム用のコンポーネントを含んでもよい。例えば、コンポーネントはスタンドアローンアプリケーションやひとつ以上のアプリケーションプラグインやブラウザエクステンションであってもよい。しかしながら、クライアントデバイス102に存在しコンテンツ管理システム106と通信するよう構成されたウェブブラウザなどの第3者アプリケーションを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。いずれの場合でも、クライアント側アプリケーションは、ユーザがコンテンツ管理システム106と相互作用するためのユーザインタフェース(UI)を提供してもよい。例えば、ファイルシステムと統合されたクライアント側アプリケーションを介して、またはウェブブラウザアプリケーションを使用して表示されたウェブページを介して、ユーザはコンテンツ管理システム106と相互に作用してもよい。
コンテンツ管理システム106は、ユーザによるコンテンツの格納や、コンテンツの取得、変更、ブラウズ、および/または共有などの種々のコンテンツ管理タスクの実行を可能としてもよい。さらにコンテンツ管理システム106は、ユーザが複数のクライアントデバイス102からコンテンツにアクセスすることを可能としてもよい。例えば、クライアントデバイス102はネットワーク104を介してコンテンツ管理システム106にコンテンツをアップロードしてもよい。そのコンテンツは後に、同じクライアントデバイス102または他のクライアントデバイス102を使用してコンテンツ管理システム106から取得されてもよい。
種々のコンテンツ管理サービスをより容易にするために、ユーザはコンテンツ管理システム106にアカウントを生成してもよい。アカウント情報はユーザアカウントデータベース150に維持されてもよい。ユーザアカウントデータベース150は、登録ユーザについてのプロファイル情報を保持してもよい。ある場合には、ユーザプロファイルの個人情報はユーザ名および/または電子メールアドレスのみであってもよい。しかしながら、コンテンツ管理システム106は追加的なユーザ情報を受け入れるよう構成されてもよい。
ユーザアカウントデータベース150は、有料/無料の別などのアカウントタイプや、ファイル編集履歴などの利用情報や、許されている最大ストレージスペースや、利用されているストレージスペースや、コンテンツストレージ位置や、セキュリティ設定や、個人構成設定や、コンテンツ共有データなどのアカウント管理情報を含んでもよい。アカウント管理モジュール124は、ユーザアカウントデータベース150におけるユーザアカウントの詳細を更新および/または取得するよう構成されてもよい。アカウント管理モジュール124は、コンテンツ管理システム106の他の任意の数のモジュールと相互に作用するよう構成されてもよい。
アカウントは、そのアカウントで認証されたひとつ以上のクライアントデバイス102から、デジタルデータやドキュメントやテキストファイルや音声ファイルやビデオファイルなどのコンテンツを格納するために使用されてもよい。コンテンツは、異なる振る舞いを伴う種々のタイプのフォルダやコンテンツアイテムをグループ化する他のメカニズムを含んでもよい。例えば、アカウントは、任意のユーザからアクセス可能なパブリックフォルダを含んでもよい。パブリックフォルダにはウェブアクセス可能なアドレスが割り当てられてもよい。ウェブアクセス可能なアドレスへのリンクを使用してパブリックフォルダのコンテンツにアクセスしてもよい。他の例では、アカウントは、写真に適する特定の属性やアクションを提供する写真用の写真フォルダや、音声ファイルを再生する能力を提供し他の音声関連アクションを実行する音声フォルダや、他の特殊用途フォルダを含んでもよい。アカウントは、複数のユーザアカウントとリンクされそれらのアカウントから利用可能な共有フォルダまたはグループフォルダを含んでもよい。ある共有フォルダについての複数のユーザに対する複数のパーミッションは異なっていてもよい。
コンテンツはコンテンツストレージ160に保持されてもよい。コンテンツストレージ160は、ストレージデバイスや、複数のストレージデバイスや、サーバであってもよい。あるいはまた、コンテンツストレージ160は、ひとつ以上の通信ネットワークを介してアクセス可能なクラウドストレージプロバイダまたはネットワークストレージであってもよい。コンテンツ管理システム106がクライアントデバイス102に対して複雑さと詳細とを隠すことで、クライアントデバイス102は、コンテンツアイテムがコンテンツ管理システム106によって正確にどこに保持されているのかを知る必要はない。ある変形例では、コンテンツ管理システム106は、クライアントデバイス102上に現れるフォルダ階層と同じフォルダ階層でコンテンツアイテムを保持してもよい。しかしながら、コンテンツ管理システム106は自身の順序や構成や階層でコンテンツアイテムを保持してもよい。コンテンツ管理システム106は、ネットワークアクセス可能ストレージ(SAN)デバイスや、廉価ディスクの冗長アレイ(RAID)などにコンテンツアイテムを保持してもよい。コンテンツストレージ160は、FAT、FAT32、NTFS、EXT2、EXT3、EXT4、ReiserFS、BTRFSなどのひとつ以上のパーティションタイプを使用して、コンテンツアイテムを保持してもよい。
コンテンツストレージ160は、コンテンツアイテムおよびコンテンツアイテムタイプおよびコンテンツアイテムと種々のアカウントやフォルダやグループとの関係を説明するメタデータを保持してもよい。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として保持されてもよいし、別個に保持されてもよい。ある変形例では、コンテンツストレージ160に保持される各コンテンツアイテムには、システム全体で一意の識別子が割り当てられてもよい。
コンテンツストレージ160は、重複したコンテンツアイテムやコンテンツアイテムの重複セグメントを特定することによって、要求されるストレージスペースの量を低減することができる。複数の複製を保持する代わりに、コンテンツストレージ160は単一の複製を保持し、ポインタや他のメカニズムを使用して、重複しているものをその単一の複製にリンクさせてもよい。同様に、コンテンツストレージ160はファイルをより効率的に保持できるだけでなく、ファイルへの変更や異なるバージョンのコンテンツアイテム(分岐バージョンツリーを含む)や変更履歴を追うコンテンツアイテムバージョン制御を使用することで、操作をやり直す能力を提供してもよい。変更履歴は、元のコンテンツアイテムバージョンに適用された場合、変更後のコンテンツアイテムバージョンを生成する一組の変更を含んでもよい。
コンテンツ管理システム106はひとつ以上のクライアントデバイス102からのコンテンツの自動同期をサポートするよう構成されてもよい。同期はプラットフォーム不可知的であってもよい。すなわち、コンテンツは、種々のタイプや能力やオペレーティングシステムなどを有する複数のクライアントデバイス102に亘って同期されてもよい。例えば、クライアントデバイス102はクライアントソフトウエアを含んでもよい。このソフトウエアは、コンテンツ管理システム106の同期モジュール132を介して、クライアントデバイス102のファイルシステムのなかのコンテンツを関連するユーザアカウントの下のコンテンツと同期させる。ある場合では、クライアントソフトウエアは、新たな、削除された、変更された、複製された、または移動されたファイルやフォルダなどの、指定されたフォルダおよびそのサブフォルダのコンテンツに対する任意の変更を同期させてもよい。クライアントソフトウエアは別個のソフトウエアアプリケーションであってもよく、またはオペレーティングシステム中の既存のコンテンツ管理アプリケーションに統合されていてもよく、またはそれらの組み合わせであってもよい。既存のコンテンツ管理アプリケーションに統合されるクライアントソフトウエアの一例では、ユーザはローカルフォルダ内で直接コンテンツを操作し、その間、バックグラウンド処理は変更がないかローカルフォルダを監視し、そのような変更の同期をコンテンツ管理システム106に対して実行する。逆に、バックグラウンド処理はコンテンツ管理システム106において更新されたコンテンツを特定し、そのような変更の同期をローカルフォルダに対して実行してもよい。クライアントソフトウエアは同期操作の通知を提供してもよく、コンテンツ管理アプリケーションの中で直接、コンテンツ状態の表示を提供してもよい。クライアントデバイス102が利用可能なネットワーク接続を有さない場合がある。このシナリオでは、クライアントソフトウエアはファイル変更がないかリンクされたフォルダを監視し、後にネットワーク接続が利用可能となったときにコンテンツ管理システム106に対して同期を実行するべくそのような変更をキューに入れてもよい。同様に、ユーザは、コンテンツ管理システム106との同期を手動で止めるか一時停止してもよい。
ユーザは、ユーザインタフェースモジュール122によって生成され提供されるウェブインタフェースを介して、コンテンツを視たり操作したりしてもよい。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム106によって提供されるウェブアドレスへと辿り着いてもよい。コンテンツアイテムの新たなバージョンのアップロードのように、ウェブインタフェースを通じてなされたコンテンツストレージ160のコンテンツへの変更や更新は、ユーザのアカウントに関連する他のクライアントデバイス102へと伝搬されてもよい。例えば、それぞれが自身のクライアントソフトウエアを有する複数のクライアントデバイス102は単一のアカウントと関連付けられていてもよく、そのアカウントのコンテンツアイテムは複数のクライアントデバイス102のそれぞれの間で同期されてもよい。
コンテンツ管理システム106は、アプリケーションプログラミングインタフェース(API)を介して他のコンテンツおよび/またはサービスプロバイダ109、109、…、109(「109」と総称する)と相互に作用可能な通信インタフェース120であって種々のクライアントデバイス102とのインタフェースとしての通信インタフェース120を含んでもよい。所定のソフトウエアアプリケーションは、ユーザの代わりに、APIを介してコンテンツストレージ160にアクセスしてもよい。例えば、スマートフォンやタブレット計算デバイス上のアプリケーションなどのソフトウエアパッケージはプログラム上、ユーザが資格証明を提供する場合、コンテンツ管理システム106を直接呼び出し、コンテンツを読み取り、書き込み、生成し、消去し、共有し、またはそうでなければ操作してもよい。同様に、APIは、ウェブサイトを通じてユーザがコンテンツストレージ160の全てまたは一部にアクセスすることを可能としてもよい。
コンテンツ管理システム106は認証モジュール126を含んでもよい。この認証モジュール126は、ユーザの資格証明やセキュリティトークンやAPIコールや特定のクライアントデバイスなどを検証し、認証されたクライアントおよびユーザのみがコンテンツアイテムにアクセスできることを確実なものとしてもよい。さらに、コンテンツ管理システム106は解析モジュール134モジュールを含んでもよい。この解析モジュール134は集合的コンテンツアイテム操作やユーザアクションやネットワーク利用状況や使用されているトータルのストレージスペースや、他の技術的、利用状況的またはビジネス上の指標を追い、それについて報告してもよい。プライバシーおよび/またはセキュリティポリシーは、コンテンツ管理システム106に保持されるユーザデータへの許可を得ないアクセスを防止してもよい。
コンテンツ管理システム106は、公にまたは私的にコンテンツを共有することを管理するための共有モジュール130を含んでもよい。公にコンテンツを共有することは、コンテンツアイテムを、コンテンツ管理システム106とネットワーク通信可能な任意の計算デバイスからアクセス可能とすることを含んでもよい。私的にコンテンツを共有することは、コンテンツストレージ160のコンテンツアイテムを2以上のユーザアカウントとリンクさせ、それにより各ユーザアカウントがそのコンテンツアイテムへのアクセスを有することを含んでもよい。共有は、プラットフォーム不可知的態様でなされてもよい。すなわち、コンテンツは、種々のタイプや能力やオペレーティングシステムなどを有する複数のクライアントデバイス102に亘って共有されてもよい。コンテンツは、種々のタイプのユーザアカウントに亘って共有されてもよい。
ある実施の形態では、コンテンツ管理システム106は、コンテンツストレージ160における各コンテンツアイテムの位置を特定するコンテンツディレクトリを維持するよう構成されてもよい。コンテンツディレクトリは、コンテンツストレージに保持される各コンテンツアイテムに対して一意のコンテンツエントリを含んでもよい。
コンテンツエントリは、コンテンツ管理システムにおけるコンテンツアイテムの位置を特定するために使用されるコンテンツパスを含んでもよい。例えば、コンテンツパスはコンテンツアイテムの名前とコンテンツアイテムに関連するフォルダ階層とを含んでもよい。例えば、コンテンツパスは、コンテンツアイテムの名前に加えて、そのコンテンツアイテムが置かれているフォルダまたはフォルダのパスを含んでもよい。コンテンツ管理システム106はコンテンツパスを使用して、コンテンツアイテムを適切なフォルダ階層の中で提示してもよい。
コンテンツエントリは、コンテンツストレージ160におけるコンテンツアイテムの位置を特定するコンテンツポインタを含んでもよい。例えば、コンテンツポインタはメモリにおけるコンテンツアイテムの正確なストレージアドレスを含んでもよい。ある実施の形態では、コンテンツポインタは複数の位置を指してもよく、複数の位置のそれぞれはコンテンツアイテムの一部を含む。
コンテンツパスおよびコンテンツポインタに加えて、コンテンツエントリはコンテンツアイテムへのアクセスを有するユーザアカウントを特定するユーザアカウント識別子を含んでもよい。ある実施の形態では、複数のユーザアカウント識別子が単一のコンテンツエントリに関連付けられてもよく、これは、そのコンテンツアイテムが複数のユーザアカウントによる共有アクセスを有することを示す。
私的にコンテンツアイテムを共有するために、共有モジュール130は、ユーザアカウント識別子をコンテンツアイテムに関連付けられたコンテンツエントリに追加し、それにより追加されたユーザアカウントにコンテンツアイテムへのアクセスを与えるよう構成される。共有モジュール130は、ユーザアカウントのコンテンツアイテムへのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を除くよう構成されてもよい。
公にコンテンツを共有するために、共有モジュール130はユニフォームリソースロケータ(URL)などのカスタムネットワークアドレスを生成するよう構成されてもよい。このカスタムネットワークアドレスにより、任意のウェブブラウザが、コンテンツ管理システム106のコンテンツに認証なしでアクセスすることが可能となる。これを達成するために、共有モジュール130は生成されるURLにコンテンツ特定データを含めるよう構成されてもよい。コンテンツ特定データは、後に、要求されたコンテンツアイテムを適切に特定して返すために使用されてもよい。例えば、共有モジュール130は、生成されるURLにユーザアカウント識別子とコンテンツパスとを含めるよう構成されてもよい。URLが選択されると、URLに含まれるコンテンツ特定データはコンテンツ管理システム106に送信されてもよい。コンテンツ管理システム106は受信したコンテンツ特定データを使用して適切なコンテンツエントリを特定し、そのコンテンツエントリに関連付けられたコンテンツアイテムを返してもよい。
URLを生成することに加えて、共有モジュール130はコンテンツアイテムへのURLが生成されたことを記録するよう構成されてもよい。ある実施の形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、そのコンテンツアイテムへのURLが生成されたか否かを示すURLフラグを含んでもよい。例えば、URLフラグは、コンテンツアイテムへのURLがまだ生成されていないことを示すために最初に0またはfalseに設定されるブール値であってもよい。共有モジュール130は、コンテンツアイテムへのURLを生成した後はフラグの値を1またはtrueに変更するよう構成されてもよい。
ある実施の形態では、共有モジュール130は生成されたURLを非活性化するよう構成されてもよい。例えば、各コンテンツエントリは、要求に応じて生成されたURLからコンテンツが返されるべきか否かを示すURLアクティブフラグを含んでもよい。例えば、共有モジュール130は、URLアクティブフラグが1またはtrueに設定されている場合にのみ、生成されたリンクによって要求されるコンテンツアイテムを返すよう構成されてもよい。したがって、URLが既に生成されたコンテンツアイテムへのアクセスは、URLアクティブフラグの値を変更することにより、容易に制限されうる。これにより、ユーザは、コンテンツアイテムを移動したり生成されたURLを削除したりしなくても、共有コンテンツアイテムへのアクセスを制限できる。同様に、共有モジュール130は、URLアクティブフラグの値を1またはtrueに変えることでURLを再活性化してもよい。したがって、ユーザは、新たなURLを生成する必要なしにコンテンツアイテムへのアクセスを容易に復活させることができる。
具体的なコンポーネントを有するコンテンツ管理システム106が提示されたが、システム106のアーキテクチャ構成は単なる可能なひとつの構成であり、より多いまたはより少ないコンポーネントを有する他の構成もまた可能であることは、当業者には理解されるべきである。
図2を参照すると、図2は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバについての例示的なシステムの実施の形態を示す。例示的なシステム200は、クライアント計算デバイス202(すなわち、クライアントデバイスやクライアントなど)と、クライアント計算デバイス202の外部にあるひとつ以上のサーバ220と、を含んでもよい。クライアントデバイス202はクライアント側アプリケーション204(すなわち、クライアントアプリケーション)を作動させていてもよい。クライアントデバイス202はローカルウェブサーバ206を作動させていてもよい。ローカルウェブサーバ206はクライアントアプリケーション204に含まれていてもよいし、クライアントアプリケーション204と連携して動作してもよい。さらに、クライアント計算デバイス202は、コンテンツ/ファイルナビゲーションアプリケーションすなわちウェブブラウザ208などのナビゲーションアプリケーションを作動させていてもよい。
ある実施の形態では、クライアントアプリケーション204は、ひとつ以上のサーバ220上で作動しているオンラインコンテンツ管理システム222(例えば、図1のコンテンツ管理システム106)と通信するよう構成されてもよい。クライアントアプリケーション204は、インターネットなどのネットワークを介して、コンテンツ管理システム222と通信してもよい。クライアントアプリケーション204はコンテンツ管理システム222と通信し、クライアントデバイス202においてローカルで保持されるデータ(すなわち、ローカルデータ)をコンテンツ管理システム222に保持されるデータ(すなわち、オンラインデータ)と同期させてもよい。例えば、クライアント202においてローカルで保持されるデータのある一片や一部は、コンテンツ管理システム222に保持されるデータの対応する一片や一部と同期してもよい。したがって、コンテンツ管理システム222およびクライアントデバイス202の両方において、コンテンツアイテム(例えば、ファイル)および/または他の情報が保持され、かつ、同期される。ある実施の形態では、クライアント202においてローカルで保持されるデータとコンテンツ管理システム222で保持されるデータとの間の同期は、毎日決められた時刻や同期ポリシー(例えば、しきい値パーセンテージ分のデータが変更された場合はいつでもなど)により決められた時刻などの1以上の指定された時に生じてもよい。
図3は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバについての例示的なシステムの実施の形態を示す。例示的なシステムの実施の形態300は、クライアント302と少なくともひとつのサーバ320とを含んでもよい。クライアント302はクライアントアプリケーション304とローカルウェブサーバ306とを作動させていてもよい。クライアント302はブラウザ308などのナビゲーションアプリケーションを作動させていてもよい。オンラインコンテンツ管理システム322をホストするためにサーバ320などのひとつ以上のサーバが使用されてもよい。
ある実施の形態では、オンラインコンテンツ管理システム322はユーザまたは他の主体に関連付けられたデータを保持してもよい。例えば、オンラインコンテンツ管理システム322は複数のユーザのアカウントを含むよう構成されてもよい。各アカウントは対応するユーザ(例えば、ユーザA)のデータを保持する。図3に示されるように、オンラインコンテンツ管理システム322でのユーザAのアカウント330は、コンテンツアイテムX332(例えば、ファイルX)やコンテンツアイテムY334やコンテンツアイテムZ336などのデータを含んでもよい。
ユーザAはオンラインコンテンツ管理システム322と互換性のあるクライアント側アプリケーション304を作動させてもよい。クライアントアプリケーション304は、コンテンツ管理システム322と通信342するよう構成されてもよい。通信342を介して、クライアントアプリケーション304はユーザAのローカルアカウント310に関連付けられたローカルデータと、コンテンツ管理システム322でユーザAのアカウント330の下で保持されるデータと、を同期させてもよい。例えば、ローカルコンテンツアイテム(例えば、ファイル)X312、Y314およびZ316はそれぞれ、コンテンツ管理システム322に保持されるコンテンツアイテムX332、コンテンツアイテムY334およびコンテンツアイテムZ336と同期してもよい。ある実施の形態では、ユーザAのローカルアカウント310はクライアントデバイス302におけるディレクトリであってもよい。クライアント302におけるユーザAのローカルアカウント310のディレクトリに置かれたコンテンツアイテム、ファイル、および/または他のデータは、コンテンツ管理システム322におけるユーザAのアカウント330に含まれるデータと同期してもよい。
図3に示されるように、クライアントアプリケーション304はユーザAのアカウント310の下でローカルで保持されるデータ(例えば、コンテンツアイテムX312、コンテンツアイテムY314、コンテンツアイテムZ316など)と相互作用してもよい。ある実施の形態では、ローカルウェブサーバ306は、例えばクライアントアプリケーション304を介してローカルデータと相互作用することにより、ローカルで保持されるデータと相互作用してもよい。
ブラウザ308は、ローカルウェブサーバ306にアクセスし、ローカルで保持されるデータ(例えば、コンテンツアイテムX312、コンテンツアイテムY314、コンテンツアイテムZ316など)と相互作用してもよい。ブラウザ308は、ローカルデータ(例えば、コンテンツアイテムX312、コンテンツアイテムY314、コンテンツアイテムZ316など)を閲覧し、読み出し、ブラウズし、またはそうでなければ相互作用するためのナビゲーションツールとして機能してもよい。図3に示されるように、ブラウザ308は通信346を通じてローカルウェブサーバ306にアクセスし、ローカルデータと相互作用してもよい。
ある実施の形態では、接続344を介したコンテンツ管理システム322のデータ(例えば、332、334、336)へのアクセスは、ローカルウェブサーバ306および接続346を介したローカルデータ(例えば、312、314、316)へのアクセスのバックアップまたは代替として役立つ。ローカルウェブサーバ306を介してローカルで保持される(コンテンツ管理システム322のデータと同期している)データにアクセスすることは、接続344(例えば、インターネット接続)を使用してコンテンツ管理システム322のデータにアクセスすることよりもいくつかの点で有利となり得る。これらの利点は、性能の向上、データへのオフラインアクセス、および所定のデータとの相互作用のためにネイティブアプリケーションを用いることができる能力を含む(がそれに限定されない)。
図4は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用してデータにアクセスすることについての例示的なシステムの実施の形態を示す。例示的なシステムの実施の形態400は、クライアント402と、サーバ420などのひとつ以上のサーバと、を含んでもよい。図4では、クライアントアプリケーション404およびローカルウェブサーバ406はクライアントデバイス402において作動しており、ローカルで保持されるデータ(例えば、412、414、416)と相互作用してもよい。ブラウザ408もまたクライアントデバイス402において作動しており、ローカルウェブサーバ406にアクセスして接続446を介してローカルデータ(例えば、412、414、416)と相互作用してもよい。さらに、クライアントアプリケーション404はコンテンツ管理システム422と通信442し、ローカルデータをコンテンツ管理システム422のデータと同期させてもよい。例えば、ローカルコンテンツアイテム412、414および416はそれぞれ、コンテンツ管理システム422のコンテンツアイテム432、434および436と同期してもよい。
上述の通り、ローカルウェブサーバ406を介して同期したローカルデータにアクセスすることの利点のひとつは、性能の改善である。性能の改善は、ローカルデータとのより速い相互作用および/または操作を含んでもよい。例えば、ウェブ接続444を介してブラウザ408から(コンテンツアイテム414と同期した)コンテンツアイテム434を開く場合と比較して、ローカルウェブサーバ406およびクライアントアプリケーション404を介してブラウザ408からコンテンツアイテム414を開く場合のコンテンツアイテム414を開くスピードはかなり向上しうる。図4に示されるように、コンテンツアイテム414(同期したコンテンツアイテム434も同様に)は画像ファイルであってもよい。ローカルウェブサーバ406を介して画像コンテンツアイテム414のフル解像度バージョン418をローカルで開くほうが、オンラインコンテンツ管理システム422から画像コンテンツアイテム434を開くよりもかなり速くなりうる。ローカル接続(例えば、446)のレイテンシ問題は、他のネットワーク接続(例えば442、444)のそれよりもかなり小さい。
他の例では、性能の改善はデータのプレビューを生成することを含んでもよい。図4に示されるように、コンテンツアイテム412、414および416は画像ファイルであってもよい。この場合、画像ファイル412、414および416についてサムネイルが生成されてもよい。オンラインコンテンツ管理システム422でプレビューを生成してそれからそのプレビューを表示のためにコンテンツ管理システム422からクライアント402へ送信する場合と比較して、クライアントデバイス202においてプレビュー(例えば、サムネイル)を生成して表示するほうがより効率的であり得る。ローカルデータのサムネイルの生成は、クライアント計算デバイス402の計算リソースを使用して実行されてもよい。
図5は、クライアント計算デバイスが同期オンラインコンテンツ管理システムと通信できない場合に、ローカルウェブサーバを使用してデータにアクセスすることについての例示的なシステムの実施の形態を示す。例示的なシステムの実施の形態500において、クライアント502は、クライアントアプリケーション504と、ローカルウェブサーバ506と、ブラウザ508と、を実装してもよい。サーバ520は、コンテンツ管理システム522をホストしてもよい。
上述の通り、ローカルデータにアクセスすることの他の利点は、コンテンツ管理システム522へのネットワーク接続(例えば、542、544)がない場合でも、ユーザはデータへのアクセスを有しうる点である。言い換えると、コンテンツ管理システム522に保持されるデータ(例えば、532、534、536)へのアクセスは、クライアント502がコンテンツ管理システム522に接続可能な場合にのみ生じうる。ローカルデータにアクセスすることの利点は、インターネット(例えば、542、544)が利用不可である場合や無効化されている場合でも、データにアクセス可能である点である。一例では、ユーザは無線インターネットを提供しない飛行機に搭乗してもよい。フライト中に、ユーザはドキュメント(例えば、クライアント502上の512やコンテンツ管理システム522上の532)を読むと決めてもよい。ブラウザ508を使用してローカルウェブサーバ506にアクセスすることで、ユーザは、フライト中はインターネットが利用不可であるにもかかわらず、ドキュメント(例えば、クライアント502上の512)を読むことができる。
(図5では不図示の)他の例では、ユーザは、クライアント502上ではファイル516として、コンテンツ管理システム522上ではファイル536として、同期されている音楽ファイルを聴いていてもよい。ユーザがブラウザ508を介してコンテンツ管理システム522上のファイル536を再生する場合、かつ、ブラウザ508とコンテンツ管理システム522との間の接続544が失われる場合、ファイル536の再生は中断されうる。対して、ユーザがローカルウェブサーバ506を介してブラウザ508上でローカルファイル516を再生する場合、コンテンツ管理システム522との接続(例えば、542、544)がない場合でも、ファイル516の再生を続けることができる。
図6は、データで動作するよう構成されたアプリケーション(すなわち、ネイティブアプリケーション)を実行するためにローカルウェブサーバを使用してデータにアクセスすることについての例示的なシステムの実施の形態を示す。典型的には、ウェブアプリケーションはデバイスのオペレーティングシステムと通信できない。したがって、オンラインコンテンツ管理システム622のファイル(例えば、634)などのコンテンツアイテムを開くことは、典型的には、ネイティブアプリケーションを使用してそのコンテンツアイテムを開くというよりむしろ、所定のウェブアプリケーションを使用してそのコンテンツアイテムを開くことのみに制限される。例えば、ブラウザ608を使用してコンテンツ管理システム622の画像ファイル634を開くことは、ブラウザ608に含まれるか埋め込まれている画像ビューワを実行して画像ファイル634を開くことに制限されうる。
例示的なシステムの実施の形態600では、ローカルウェブサーバ606およびクライアントアプリケーション604は、ローカルウェブサーバ606および/またはクライアントアプリケーション604がクライアント602のオペレーティングシステムと通信可能なようにクライアントデバイス602上で実装されてもよい。続いて、ブラウザ608はローカルウェブサーバ606および/またはクライアントアプリケーション604にアクセスし、クライアント602のオペレーティングシステムと通信してもよい。ローカルウェブサーバ606および/またはクライアントアプリケーション604は、特定のデータ片についてどのアプリケーションがネイティブかをオペレーティングシステムに尋ねてもよい。したがって、同期データにローカルでアクセスすることの他の利点は、データで動作するよう構成されたネイティブアプリケーションまたは複数のアプリケーションを使用して、そのデータと相互作用するおよび/またはそのデータを操作することができることである。
一例では、ブラウザ608はローカルウェブサーバ606を介して画像ファイル614に辿り着いてもよい。ブラウザ608から、画像614を開くのにどのネイティブアプリケーションを使用するかを選択するためのインストラクション(例えば、ファイル614についての「Open With …」のオプション)をローカルウェブサーバ606を介して送ってもよい。例えば、そのインストラクションは、ファイル614を表すアイコンに対するマウスの右クリックに対応してもよい。クライアント602にインストールされているネイティブアプリケーションのなかに、画像エディタ618が含まれてもよい。ブラウザ608から開始されたコマンドは、画像エディタ618(すなわち、ネイティブアプリケーション、ファイル614用に構成されたアプリケーション、またはファイル614に関するファイルタイプ用に構成されたアプリケーション)にファイル614を開かせてもよい。画像エディタ618を使用して画像ファイル614を開くことは、より単純なウェブ画像ビューワアプリケーションでコンテンツ管理システム622の画像634を開く場合と比較して、より豊かなまたはそうでなければよりよい体験を提供できる。
図7は、ローカルウェブサーバとクライアント計算デバイスと同期オンラインコンテンツ管理システムとの間で安全に通信することについての例示的なシステムの実施の形態を示す。例示的なシステムの実施の形態700において示されるように、ローカルウェブサーバ706とブラウザ708とコンテンツ管理システム722との間の通信は、例えば、ハイパーテキストトランスファプロトコルセキュア(HTTPS)接続(例えば、742、744、746)に対応してもよい。しかしながら、HTTPSスキームに起因して、ブラウザ708はターゲットアドレス「https://localhost」に行くことでローカルウェブサーバ706にアクセスすることができない。HTTPSスキームは、セキュアソケットレイヤ(SSL)証明書などのセキュリティキーを必要としうるからである。
ある実施の形態では、「https://www.onlinecontentmanagementsystemlocalhost.com」718などのオンラインコンテンツ管理システム722のドメイン名が生成されてもよい。ローカルウェブサーバ708がHTTPS接続を受け入れるために、ローカルウェブサーバ708のための公開鍵証明書が必要である。ブラウザ708が警告なしに証明書を受け入れるためには、その証明書は信頼された認証局730によって署名されなくてはならない。認証局730は、証明書の持ち主(例えば、ドメイン718)が確かに証明書を提供するウェブサーバ(例えばローカルウェブサーバ708)のオペレータであることを証明または認証してもよい。
図7では、ローカルウェブサーバ706はSSL証明書710を備えてもよい。SSL証明書710は例えばコンテンツ管理システム722の管理者によって準備されてもよい。SSL証明書710は認証局730で検証可能であってもよい。一例では、ローカルウェブサーバ706にアクセスするために、ブラウザ708はドメイン「https://www.onlinecontentmanagementsystemlocalhost.com」718(これもまたコンテンツ管理システム722の管理者によって準備されるか設定されてもよい)に行ってもよい。ドメイン名「https://www.onlinecontentmanagementsystemlocalhost.com」718は、名前解決されてインターネットプロトコル(IP)アドレス(例えば、127.0.0.1)をループバックするよう構成されてもよい。そのアドレスはローカルウェブサーバ706を指す。ブラウザ708は、ローカルウェブサーバ706のSSL証明書710が正しいことを認証局730で検証してもよい。そして、ブラウザ708がドメイン名「https://www.onlinecontentmanagementsystemlocalhost.com」を介してローカルウェブサーバ706にアクセスできるように、HTTPS接続746が確立されてもよい。
ある実施の形態では、ドメイン名718のエントリはローカルドメイン名サービス(DNS)712に保持されてもよい。これにより、ブラウザ708はインターネット接続がない場合でもドメイン名718を名前解決してループバックされたIPアドレスを得ることができる。一例では、ブラウザ708がドメイン名718を名前解決してループバックされたIPアドレスを得ることができる蓋然性をさらに確保するか増大させるために、ドメイン名718のエントリは長い残り寿命(TTL)を有するように構成されてもよい。
さらに、ある実施の形態では、クライアントアプリケーション704は、ドメイン718がどこに名前解決されるかをブラウザ708に対して指定するコンテンツアイテム(例えば、ファイル)を含んでもよい。例えば、クライアントアプリケーション704は、ドメイン名718がローカルウェブサーバ706を指すループバックIPアドレス(例えば、127.0.0.1)に名前解決されることを指定するASCIIファイルを含むよう構成されてもよい。
図8は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用することについての例示的な方法の実施の形態800を示す。そうでないと宣言されない限り、種々の実施の形態の範囲内において、追加の、より少ない、または代替のステップが同様のまたは代替的な順序でまたは並列に実行されうることは理解されるべきである。方法の実施の形態800は、ステップ802において、オンラインコンテンツ管理システムと通信するクライアント側アプリケーションの実行で始まってもよい。クライアント側アプリケーションはクライアント計算デバイスで実行されてもよい。クライアント側アプリケーションはコンテンツ管理システムと通信し、クライアント計算デバイスにおいてローカルで保持されるデータをオンラインコンテンツ管理システムに保持されるデータと同期させてもよい。
ステップ804において、方法800は、クライアント計算デバイスにおいてローカルウェブサーバを作動させてもよい。ローカルウェブサーバは、クライアント側アプリケーションと通信し、ローカルで保持されるデータの少なくとも一部と相互作用するよう構成されてもよい。上述の通り、ローカルで保持されるデータはオンラインコンテンツ管理システムに保持されるデータと同期してもよい。ステップ806は、クライアント計算デバイスにおいてウェブブラウザを作動させることを含んでもよい。ある実施の形態では、ウェブをブラウズする能力のある任意のアプリケーションが用いられてもよい。ある実施の形態では、コンテンツ/ファイルナビゲーション能力のあるアプリケーションが用いられてもよい。
方法800は、ステップ808において、ウェブブラウザを介して、クライアント計算デバイスにおいて作動しているローカルウェブサーバにアクセスしてもよい。ステップ810は、ローカルで保持されるデータの少なくとも一部と相互作用することを含んでもよい。ローカルで保持されるデータの少なくとも一部との相互作用は、ローカルウェブサーバへのウェブブラウザを介したアクセスに少なくとも部分的に基づいてもよい。例えば、ウェブブラウザがオンラインコンテンツ管理システムのコンテンツアイテムの同期オンラインバージョンを開く場合よりも、ウェブブラウザがローカルウェブサーバにアクセスしてローカルで保持されるコンテンツアイテム(例えば、ファイル)を開くほうが、かなり効率的でありうる。
図9は、同期オンラインコンテンツ管理システムと互換性のあるローカルウェブサーバを使用することについての例示的な方法の実施の形態900を示す。再び、そうでないと宣言されない限り、種々の実施の形態の範囲内において、追加の、より少ない、または代替のステップが同様のまたは代替的な順序でまたは並列に実行されうることは理解されるべきである。ステップ902において、例示的な方法の実施の形態900は、クライアントデバイス上のローカルデータをオンラインコンテンツ管理システム上のデータと同期させるよう構成されたクライアントアプリケーションを作動させてもよい。クライアントアプリケーションはクライアントデバイス上で実行されてもよい。ステップ904において、例示的な方法の実施の形態900は、クライアントアプリケーションと通信してローカルデータと相互作用するよう構成されたローカルサーバを作動させてもよい。ローカルサーバはクライアントデバイス上で実行されてもよい。1以上の指定された時に、ローカルデータはオンラインコンテンツ管理システムのオンラインデータと同期してもよい。
例示的な方法900は、ステップ906において、クライアントデバイスからローカルサーバにアクセスしてもよい。ある実施の形態では、ローカルサーバは、クライアントデバイス上で作動しているブラウザアプリケーションなどのナビゲーションアプリケーションからアクセスされてもよい。ステップ908は、ローカルデータの少なくとも一部と相互作用することを含んでもよい。相互作用は、クライアントデバイスからの(例えば、クライアントデバイス上で作動するナビゲーションアプリケーションからの)ローカルサーバへのアクセスに少なくとも部分的に基づいてもよい。
ある実施の形態では、同期データ(ローカルデータまたはオンラインデータ)片へのアクセスまたはそれとの相互作用の要求は、ローカルウェブサーバおよびオンラインコンテンツ管理システムについて同時に開始されてもよい。最初に応答したソース(たいていはローカルウェブサーバ)がいずれであってもそのソースによって要求が満たされてもよい。
上述の通り、ローカルデータとオンラインデータとの同期は1以上の指定された時に生じてもよい。ある実施の形態では、同期期間中に、ブラウザはオンラインコンテンツ管理システムに保持されるオンラインデータにアクセスしてもよい。一例では、ブラウザはクライアントデバイスからコンテンツアイテムを要求してもよい。クライアントデバイスは、ブラウザに、そのコンテンツアイテムは同期(例えば、更新)処理中であると知らせてもよい。すると、ブラウザはオンラインコンテンツ管理システムからコンテンツアイテムにアクセスしてもよい。
ある実施の形態では、本開示の種々の実施の形態は、ひとつ以上の設定やオプションやプリファレンスをブラウザを介して変更可能としてもよい。例えば、ブラウザはクライアントアプリケーションについての選択同期オプションに関する設定を変更してもよい。そのオプションは、クライアントデバイスについてどのコンテンツアイテム、ファイル、および/またはフォルダが同期されるべきかを指定する。他の例では、ブラウザはクライアントアプリケーションおよびオンラインコンテンツ管理システムについて統一されたインタフェースに関する設定を変更してもよい。
ある実施の形態では、本開示の種々の実施の形態は、ローカルウェブサーバおよび/またはクライアントアプリケーションがコンテンツデリバリネットワーク(CDN)として機能することを可能としてもよい。一例では、オンラインコンテンツ管理システムについてのウェブサイトデータ(例えば、HTMLファイル、CSSファイル、ジャバスクリプトファイル、ウェブページ画像など)がクライアントアプリケーションに含まれてもよい。ブラウザがローカルウェブサーバにアクセスする場合、ブラウザにおいて、オンラインコンテンツ管理システムのウェブサイトと同様のインタフェースが提供されてもよい。さらに、ブラウザがオンラインコンテンツ管理システムのウェブサイトにアクセスする必要がある場合、ウェブサイトのデータはローカルで保持されているので、ブラウザはより速くウェブサイトをロードできる。加えて、オンラインコンテンツ管理システムのウェブサイトのデータが変更された場合はいつでも、更新されたウェブサイトのデータがクライアントアプリケーションに(例えば、クライアントアプリケーションの更新として)含まれてもよい。
ある実施の形態では、ローカルウェブサーバを介したローカルデータとの相互作用は、コンテンツアイテム(例えば、ファイル)を閲覧することおよび再生することなどの「読み取り専用」相互作用を含んでもよい。ある実施の形態では、コンテンツアイテムの共有やファイルコンテンツの変更などのローカルデータに対する「書き込み」相互作用は、オンラインコンテンツ管理システムとのネットワーク接続を使用して達成されうる。一例では、クライアントアプリケーションは、ファイルを共有するためのオンラインコンテンツ管理システムでのリンクをブラウザで開くことによってのみ、そのファイルを共有することができる。しかしながら、本開示によると、ブラウザは、ファイルを共有するためのオンラインコンテンツ管理システムへのアクセスを、同期データにローカルでアクセスすることの利点に吸収することができる。
本開示の種々の実施の形態は、クライアント側対応物を有する種々のオンラインサービス/システムにおいて実現されてもよい。例えば、オンラインメディアストリーミングサービスはクライアント側アプリケーションを有してもよい。オンラインでおよびローカルで保持されるメディア(例えば、音楽やビデオなど)は同期してもよい。ローカルウェブサーバを使用してローカルで保持されるメディア(これはオンラインメディアと同期していてもよい)にアクセスすることは上述のものと同様の種々の利点を提供しうる。
当業者であれば本開示の範囲と矛盾しないように実現されうる他のアプローチや変形例を認識しうることが想定される。例えば、ある実施の形態では、ローカルウェブサーバおよび/またはクライアントアプリケーションはウェブブラウザのエクステンションとして実装されてもよい。他の例では、ローカルウェブサーバおよび/またはクライアントアプリケーションは、クライアントデバイスの計算リソースを使用してひとつ以上の計算タスクが実行されることを可能としてもよく、それによりオンラインコンテンツ管理システムにより必要とされるリソースが低減される。
図10Aおよび図10Bを参照すると、図10Aおよび図10Bは、例示的なありうるシステムの実施の形態を示す。本技術を実施する場合に、より好適な実施の形態は当業者には明らかであろう。他のシステムの実施の形態が可能であることは、当業者には容易に理解されるであろう。
図10Aは、通常のシステムバス計算システムアーキテクチャ1000を示す。システムのコンポーネントはバス1005を使用して互いに電気的に通信可能となっている。例示的なシステム1000は、処理ユニット(CPUすなわちプロセッサ)1010と、読み取り専用メモリ(ROM)1020やランダムアクセスメモリ(RAM)1025などのシステムメモリ1015を含む各種のシステムコンポーネントをプロセッサ1010に接続するシステムバス1005と、を含む。システム1000は、プロセッサ1010に直接接続されているか、近接しているか、あるいはその一部として統合されている高速メモリのキャッシュを含んでもよい。システム1000は、データをメモリ1015および/またはストレージデバイス1030からキャッシュ1012へコピーして、プロセッサ1010が高速でアクセスできるようにしてもよい。このようにして、キャッシュは、データを待っている間のプロセッサ1010の遅延を回避するパフォーマンスブーストを提供してもよい。これらおよびその他のモジュールは、各種の動作を行うようにプロセッサ1010を制御するか、または制御するように構成されてもよい。その他のシステムメモリ1015が同様に使用可能であってもよい。メモリ1015は、異なる性能特性を持つ複数の異なるタイプのメモリを含んでもよい。プロセッサ1010は、いかなる汎用プロセッサを含んでもよいし、プロセッサ1010を制御するように構成されたハードウエアモジュールまたはソフトウエアモジュール、例えばストレージデバイス1030の中に格納されたモジュール1 1032、モジュール2 1034、モジュール3 1036を含んでもよいし、実際のプロセッサ設計の中にソフトウエアインストラクションが組み込まれている専用プロセッサを含んでもよい。プロセッサ1010は本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含んでいる、完全に自己完結型のコンピュータシステムであってもよい。マルチコアプロセッサは、対称でも非対称でもよい。
ユーザと計算デバイス1000との対話を可能にするため、入力デバイス1045は、音声用マイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンシティブスクリーン、キーボード、マウス、動作入力、音声等、いくつもの入力メカニズムを表してもよい。出力デバイス1035は、当業者には公知の複数の出力メカニズムのうちの1つ以上であってもよい。場合によっては、マルチモーダルシステムによって、ユーザが、計算デバイス1000と通信するための複数のタイプの入力を行うことが可能になる。通常、通信インタフェース1040が、ユーザ入力とシステム出力とを管理してもよい。特定のハードウェア構成上で動作することについての制限はなく、従って、本明細書での基本的な特徴は、改良型のハードウェア構成やファームウェア構成が開発されれば、それらと容易に置き換わりうる。
ストレージデバイス1030は不揮発性メモリである。ストレージデバイス1030はハードディスクや、コンピュータによってアクセス可能でありかつデータを保持可能な他のタイプのコンピュータ可読媒体、例えば、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタルバーサタイルディスク、カートリッジ、ランダムアクセスメモリ(RAMs)1025、読み取り専用メモリ(ROM)1020、それらのハイブリッド、等であってもよい。
ストレージデバイス1030は、プロセッサ1010を制御するためのソフトウエアモジュール1032、1034、1036を含んでいてもよい。その他のハードウエアモジュールやソフトウエアモジュールも考えられる。ストレージデバイス1030は、システムバス1005に接続されていてもよい。一態様では、或る機能を行うハードウエアモジュールは、プロセッサ1010、バス1005、ディスプレイ1035等のような、その機能を実行するのに必要なハードウエアコンポーネントと関連してコンピュータ可読媒体の中に格納されたソフトウエアコンポーネントを含んでもよい。
図10Bは、説明された方法を実行したりグラフィカルユーザインタフェース(GUI)を生成して表示したりする際に使用可能なチップセットアーキテクチャを有するコンピュータシステム1050を示す。コンピュータシステム1050は、開示された技術を実施するのに使用可能なコンピュータハードウエア、ソフトウエアおよびファームウエアの一例である。システム1050はプロセッサ1055を含んでもよい。プロセッサ1055は、ソフトウエア、ファームウエアおよび特定された計算を行うよう構成されたハードウエアを実行可能な、任意の数の物理的および/または論理的に別個のリソースを表す。プロセッサ1055は、プロセッサ1055への入力およびプロセッサ1055からの出力を制御可能なチップセット1060と通信してもよい。本例では、チップセット1060はディスプレイなどの出力1065へ情報を出力し、ストレージデバイス1070に対して情報の読み書きを行ってもよい。ストレージデバイス1070は例えば磁気媒体やソリッドステート媒体を含んでもよい。チップセット1060はまた、RAM1075からデータを読み出し、RAM1075へデータを書き込んでもよい。チップセット1060とのインタフェースのために、種々のユーザインタフェースコンポーネント1085とのインタフェースとなるブリッジ1080が提供されてもよい。そのようなユーザインタフェースコンポーネント1085は、キーボードやマイクロフォンやタッチ検出および処理回路やマウスなどのポインティングデバイスなどを含んでもよい。一般に、システム1050への入力は種々のソースのうちの任意のものから来てもよく、または機械により生成されおよび/または人により生成されてもよい。
チップセット1060は、異なる複数の物理的インタフェースを有しうるひとつ以上の通信インタフェース1090と連結されてもよい。そのような通信インタフェースは、有線および無線ローカルエリアネットワークとのインタフェースと、ブロードバンド無線ネットワークとのインタフェースと、パーソナルエリアネットワークとのインタフェースと、を含んでもよい。本明細書で開示されるGUIを生成し表示し使用する方法のいくつかの応用は、物理的なインタフェースを介して順序付けられたデータセットを受けること、または順序付けられたデータセットがプロセッサ1055がストレージ1070または1075に保持されるデータを解析することで機械そのものにより生成されることを含んでもよい。さらに、機械はユーザインタフェースコンポーネント1085を介してユーザから入力を受け、プロセッサ1055を使用してこれらの入力を解釈することで、ブラウズ機能などの適切な機能を実行してもよい。
例示的なシステム1000および1050はひとつ以上のプロセッサ1010を有してもよく、または処理能力を高めるためにネットワーク化された計算デバイスのグループまたはクラスタの一部であってもよいことは理解されるであろう。
説明の明確化のため、ある例では、本技術はデバイスやデバイスコンポーネントやソフトウエアで実施される方法のステップまたはルーチンやハードウエアとソフトウエアとの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示されてもよい。
ある実施の形態では、コンピュータ可読保持デバイス、媒体およびメモリは、ビットストリームを含むケーブルや無線信号などを含んでもよい。しかしながら、言及される場合、非一時的コンピュータ可読保持媒体は、エネルギやキャリア信号や電磁波や信号そのものなどの媒体を明示的に除外する。
上述の例に係る方法は、コンピュータ可読媒体に保持されるかそうでなければその媒体から利用可能なコンピュータ実行可能インストラクションを使用して実装されてもよい。そのようなインストラクションは、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに所定の機能もしくは機能のグループを実行させるかそうでなければ実行するよう設定するインストラクションおよびデータを含んでもよい。使用されるコンピュータリソースの一部はネットワークを介してアクセス可能であってもよい。コンピュータ実行可能インストラクションは、例えば、バイナリや、アセンブリ言語などの中間フォーマットインストラクションや、ファームウエアや、ソースコードであってもよい。インストラクション、使用される情報、および/または説明された例に係る方法中に生成される情報を保持するのに使用されうるコンピュータ可読媒体の例は、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリを備えるUSBデバイス、ネットワークストレージデバイスなどを含む。
本開示に係る方法を実装するデバイスはハードウエア、ファームウエアおよび/またはソフトウエアを含んでもよく、種々の形状ファクタのうちの任意のものをとりうる。そのような形状ファクタの典型的な例は、ラップトップや、スマートフォンや、小さい形状ファクタのパーソナルコンピュータや、パーソナルデジタルアシスタントなどを含む。本明細書で説明される機能は周辺機器やアドインカードにおいて実現されてもよい。さらなる例として、そのような機能は回路基板上で異なる複数のチップの間でまたは単一デバイスで実行される異なる複数の処理の間で実現されてもよい。
インストラクション、そのようなインストラクションを運ぶための媒体、そのようなインストラクションを実行するための計算リソース、およびそのような計算リソースをサポートするための他の構成は、本開示で説明される機能を提供するための手段である。
添付の請求項の範囲内の態様を説明するために様々な例および他の情報が使用されたが、そのような例における特定の特徴や構成に基づくいかなる請求項の限定も暗示されてはならない。当業者であれば、これらの例を使用して多種多様な実装を導くことができるであろう。さらに、いくつかの主題が構造的特徴および/または方法ステップの例に特有の言語で記述されたかもしれないが、添付の請求項で規定される主題はこれらの記述された特徴や行為に限定される必要はないことは理解されるべきである。例えば、そのような機能は異なるように分散されてもよいし、本明細書で特定されたもの以外のコンポーネントで実行されてもよい。むしろ、記述された特徴およびステップは、添付の請求項の範囲内のシステムおよび方法のコンポーネントの例として開示される。

Claims (27)

  1. クライアント計算デバイスにローカルで保持されるデータとオンラインコンテンツ管理システムに保持されるデータとを同期させるために前記オンラインコンテンツ管理システムと通信するクライアント側アプリケーションを、前記クライアント計算デバイスにおいて、実行することと、
    前記クライアント計算デバイスにおいてローカルウェブサーバを作動させることであって、前記ローカルウェブサーバはローカルで保持されかつ前記オンラインコンテンツ管理システムに保持される同期データと相互作用するために前記クライアント側アプリケーションと通信するよう構成されることと、
    前記クライアント計算デバイスにおいてウェブブラウザを作動させることと、
    前記クライアント計算デバイスにおいて作動する前記ローカルウェブサーバに、前記ウェブブラウザを介してアクセスすることと
    前記オンラインコンテンツ管理システムに保持される同期データへのアクセスを前記オンラインコンテンツ管理システムに要求する第1要求と、前記クライアント計算デバイスにローカルで保持される同期データへのアクセスを前記ローカルウェブサーバに要求する第2要求と、を送信することと、
    前記オンラインコンテンツ管理システムが、前記ローカルウェブサーバが前記第2要求に応答するよりも前に前記第1要求に応答した場合、
    前記オンラインコンテンツ管理システムに保持される前記同期データの少なくとも一部に、前記クライアント側アプリケーションを介して、アクセスすることと、
    前記オンラインコンテンツ管理システムに保持される前記同期データの前記少なくとも一部を、前記クライアント側アプリケーションを介して、表示することと、
    前記ローカルウェブサーバが、前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、
    前記クライアント計算デバイスにローカルで保持される前記同期データの少なくとも一部に、前記ウェブブラウザを介して、アクセスすることと、
    前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部を、前記ウェブブラウザを介して、表示することと、を含むことを特徴とするコンピュータにより実施される方法。
  2. 前記ウェブブラウザから前記オンラインコンテンツ管理システムに通信情報を送信することと、
    前記オンラインコンテンツ管理システムに保持される前記同期データの少なくとも一部を、前記通信情報に少なくとも部分的に基づき変更することと、をさらに含むことを特徴とする請求項1に記載のコンピュータにより実施される方法。
  3. 前記クライアント側アプリケーションは第1の安全なウェブ接続を介して前記オンラインコンテンツ管理システムと通信し、前記ウェブブラウザは第2の安全なウェブ接続を介して前記ローカルウェブサーバにアクセスし、前記ウェブブラウザから前記オンラインコンテンツ管理システムへの前記通信は第3の安全なウェブ接続を介して生じることを特徴とする請求項2に記載のコンピュータにより実施される方法。
  4. 前記第1の安全なウェブ接続、前記第2の安全なウェブ接続および前記第3の安全なウェブ接続のそれぞれは安全なハイパーテキストトランスファプロトコル接続を有することを特徴とする請求項3に記載のコンピュータにより実施される方法。
  5. 前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部のプレビューを生成することをさらに含み、
    前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部にアクセスすることは、前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部の前記プレビューを提示することを含むことを特徴とする請求項1から4のいずれか一項に記載のコンピュータにより実施される方法。
  6. 前記ローカルウェブサーバに前記ウェブブラウザを介してアクセスすることおよび前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部にアクセスすることのうちの少なくともひとつは、前記クライアント側アプリケーションが前記オンラインコンテンツ管理システムと通信できない間に生じることを特徴とする請求項1から5のいずれか一項に記載のコンピュータにより実施される方法。
  7. 前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部にアクセスすることはさらに、前記クライアント計算デバイスにインストールされたアプリケーションであって前記クライアント計算デバイスにローカルで保持される前記同期データの前記少なくとも一部に関連付けられた特定のデータタイプに関して動作するよう構成されたアプリケーションを実行することを含むことを特徴とする請求項1から6のいずれか一項に記載のコンピュータにより実施される方法。
  8. 少なくともひとつのプロセッサと、
    少なくともひとつのコンピュータ可読媒体と、
    前記少なくともひとつのコンピュータ可読媒体に保持されるコンピュータ可読インストラクションと、を備えるシステムであって、
    前記コンピュータ可読インストラクションは、前記少なくともひとつのプロセッサによって実行された場合、前記システムに、
    前記システム上のローカルデータとオンラインコンテンツ管理システム上のデータとを同期させるよう構成されたクライアントアプリケーションを作動させ、
    1以上の指定された時に前記オンラインコンテンツ管理システム上の前記データと同期する前記ローカルデータと相互作用するために前記クライアントアプリケーションと通信するよう構成されたローカルサーバを作動させ、
    前記システムのウェブブラウザから前記ローカルサーバにアクセスさせ、
    前記オンラインコンテンツ管理システムに保持される前記データへのアクセスを前記オンラインコンテンツ管理システムに要求する第1要求と、前記システム上の前記ローカルデータへのアクセスを前記ローカルサーバに要求する第2要求と、を送信させ、
    前記オンラインコンテンツ管理システムが、前記ローカルサーバが前記第2要求に応答するよりも前に前記第1要求に応答した場合、
    前記オンラインコンテンツ管理システムに保持される前記データの少なくとも一部に、前記クライアントアプリケーションから、アクセスさせ、
    前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部を、前記クライアントアプリケーションを介して、表示させ、
    前記ローカルサーバが、前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、
    前記ローカルデータの少なくとも一部に、前記ローカルサーバを介して、アクセスさせ、
    前記ローカルデータの前記少なくとも一部を、前記ウェブブラウザを介して、表示させることを特徴とするシステム。
  9. 前記インストラクションは前記システムにさらに、前記オンラインコンテンツ管理システムに保持される前記データの少なくとも一部を操作するために前記オンラインコンテンツ管理システムに通信情報を送信させることを特徴とする請求項8に記載のシステム。
  10. 前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部を操作することは、前記データの前記少なくとも一部を変更することおよび1以上のユーザに前記データの前記少なくとも一部へのアクセスを付与することのうちの少なくともひとつを含むことを特徴とする請求項9に記載のシステム。
  11. 前記ローカルデータの前記少なくとも一部にアクセスすることは、前記ローカルデータの前記少なくとも一部を再生すること、開くこと、実行すること、および操作することのうちの少なくともひとつを含むことを特徴とする請求項8から10のいずれか一項に記載のシステム。
  12. 少なくとも前記ローカルサーバが前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、前記ローカルサーバから前記ローカルデータの前記少なくとも一部にアクセスすることにかかる時間は、前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部にアクセスすることにかかる時間よりも短いことを特徴とする請求項8から11のいずれか一項に記載のシステム。
  13. 前記ローカルデータの前記少なくとも一部にアクセスすることは、前記クライアントアプリケーションが前記オンラインコンテンツ管理システムと通信できない間に行われることを特徴とする請求項8から12のいずれか一項に記載のシステム。
  14. 前記インストラクションは前記システムにさらに、前記システムにインストールされたアプリケーションを実行させ、
    前記アプリケーションは前記ローカルデータの前記少なくとも一部で動作可能であり、
    前記ローカルデータの前記少なくとも一部にアクセスすることは、前記アプリケーションを使用して前記ローカルデータの前記少なくとも一部と相互作用することを含むことを特徴とする請求項8から13のいずれか一項に記載のシステム。
  15. 前記ローカルデータの前記少なくとも一部にアクセスすることは、前記システムで作動する前記クライアントアプリケーションのひとつ以上の設定を変更することを含むことを特徴とする請求項8から14のいずれか一項に記載のシステム。
  16. 前記ローカルデータは前記オンラインコンテンツ管理システムのウェブページを描画するための情報を含むことを特徴とする請求項8から15のいずれか一項に記載のシステム。
  17. コンピュータ実行可能インストラクションを保持するコンピュータプログラムであって、
    前記コンピュータ実行可能インストラクションは、
    クライアント計算デバイス上のローカルデータとオンラインコンテンツ管理システム上のデータとを同期させるよう構成されたクライアントアプリケーションを作動させることと、
    1以上の指定された時に前記オンラインコンテンツ管理システム上の前記データと同期する前記ローカルデータと相互作用するために前記クライアントアプリケーションと通信するよう構成されたローカルサーバを作動させることと、
    記クライアント計算デバイスのウェブブラウザから前記ローカルサーバにアクセスすることと、
    前記オンラインコンテンツ管理システムに保持される前記データへのアクセスを前記オンラインコンテンツ管理システムに要求する第1要求と、前記クライアント計算デバイス上の前記ローカルデータへのアクセスを前記ローカルサーバに要求する第2要求と、を送信することと、
    前記オンラインコンテンツ管理システムが、前記ローカルサーバが前記第2要求に応答するよりも前に前記第1要求に応答した場合、
    前記オンラインコンテンツ管理システムに保持される前記データの少なくとも一部に、前記クライアントアプリケーションから、アクセスすることと、
    前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部を、前記クライアントアプリケーションを介して、表示することと、
    前記ローカルサーバが、前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、
    前記ローカルデータの少なくとも一部に、前記ウェブブラウザおよびローカルサーバを介して、アクセスすることと、
    前記ローカルデータの前記少なくとも一部を、前記ウェブブラウザを介して、表示することとを前記クライアント計算デバイスに行わせるためのものであることを特徴とするコンピュータプログラム
  18. 少なくとも前記ローカルサーバが前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、前記ウェブブラウザを介して前記ローカルデータの前記少なくとも一部と相互作用することにかかる時間は、前記クライアントアプリケーションから前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部にアクセスすることにかかる時間よりも短いことを特徴とする請求項17に記載のコンピュータプログラム
  19. 前記ローカルデータの前記少なくとも一部にアクセスすることは、前記クライアントアプリケーションが前記オンラインコンテンツ管理システムと通信できない間に行われることを特徴とする請求項17または18に記載のコンピュータプログラム
  20. 前記インストラクションは前記クライアント計算デバイスにさらに、前記クライアント計算デバイスにインストールされたアプリケーションを実行させ、
    前記アプリケーションは前記ローカルデータの前記少なくとも一部で動作可能であり、
    前記ローカルデータの前記少なくとも一部にアクセスすることは、前記アプリケーションを使用して前記ローカルデータの前記少なくとも一部と相互作用することを含むことを特徴とする請求項17から19のいずれか一項に記載のコンピュータプログラム
  21. クライアント計算デバイスにローカルで保持されるデータとオンラインコンテンツ管理システムに保持されるデータとを同期させるために前記オンラインコンテンツ管理システムと通信するクライアント側アプリケーションを、前記クライアント計算デバイスにおいて、実行する手段と、
    前記クライアント計算デバイスにおいてローカルウェブサーバを作動させる手段であって、前記ローカルウェブサーバはローカルで保持される前記データと相互作用するために前記クライアント側アプリケーションと通信するよう、かつ、前記オンラインコンテンツ管理システムに保持される前記データと相互作用するよう構成され、ローカルで保持される前記データ前記オンラインコンテンツ管理システムに保持される前記データとは同期される手段と、
    前記クライアント計算デバイスにおいて、ウェブブラウザを作動させる手段と、
    前記クライアント計算デバイスにおいて作動する前記ローカルウェブサーバに、前記ウェブブラウザを介してアクセスし、かつ、前記クライアント側アプリケーションを介して前記オンラインコンテンツ管理システムにアクセスする手段と、
    前記オンラインコンテンツ管理システムに保持される前記データへのアクセスを前記オンラインコンテンツ管理システムに要求する第1要求と、前記クライアント計算デバイスにローカルで保持される前記データへのアクセスを前記ローカルウェブサーバに要求する第2要求と、を送信する手段と、
    前記オンラインコンテンツ管理システムが、前記ローカルウェブサーバが前記第2要求に応答するよりも前に前記第1要求に応答した場合、
    前記オンラインコンテンツ管理システムに保持される前記データの少なくとも一部に、前記クライアント側アプリケーションを介して、アクセスし、
    前記オンラインコンテンツ管理システムに保持される前記データの前記少なくとも一部を、前記クライアント側アプリケーションを介して、表示する手段と、
    前記ローカルウェブサーバが、前記オンラインコンテンツ管理システムが前記第1要求に応答するよりも前に前記第2要求に応答した場合、
    前記ローカルで保持されるデータの少なくとも一部に、前記ウェブブラウザを介して、アクセスし、
    前記ローカルで保持される前記データの前記少なくとも一部を、前記ウェブブラウザを介して、表示する手段と、を備えることを特徴とするシステム。
  22. 前記ウェブブラウザから前記オンラインコンテンツ管理システムに通信情報を送信する手段と、
    前記オンラインコンテンツ管理システムに保持される前記データの少なくとも一部を、前記通信情報に少なくとも部分的に基づき変更する手段と、をさらに備えることを特徴とする請求項21に記載のシステム。
  23. 前記クライアント側アプリケーションは第1の安全なウェブ接続を介して前記オンラインコンテンツ管理システムと通信し、前記ウェブブラウザは第2の安全なウェブ接続を介して前記ローカルウェブサーバにアクセスし、前記ウェブブラウザから前記オンラインコンテンツ管理システムへの前記通信は第3の安全なウェブ接続を介して生じることを特徴とする請求項22に記載のシステム。
  24. 前記第1の安全なウェブ接続、前記第2の安全なウェブ接続および前記第3の安全なウェブ接続のそれぞれは安全なハイパーテキストトランスファプロトコル接続を有することを特徴とする請求項23に記載のシステム。
  25. ローカルで保持される前記データの前記少なくとも一部のプレビューを生成する手段をさらに備え、
    前記ローカルで保持される前記データの前記少なくとも一部にアクセスすることは、ローカルで保持される前記データの前記少なくとも一部の前記プレビューを提示することを含むことを特徴とする請求項21から24のいずれか一項に記載のシステム。
  26. 前記ローカルウェブサーバに前記ウェブブラウザを介してアクセスすることおよび前記ローカルで保持される前記データの前記少なくとも一部にアクセスすることのうちの少なくともひとつは、前記クライアント側アプリケーションが前記オンラインコンテンツ管理システムと通信できない間に生じることを特徴とする請求項21から25のいずれか一項に記載のシステム。
  27. 前記ローカルで保持される前記データの前記少なくとも一部にアクセスすることはさらに、前記クライアント計算デバイスにインストールされたアプリケーションであってローカルで保持される前記データの前記少なくとも一部に関連付けられた特定のデータタイプに関して動作するよう構成されたアプリケーションを実行することを含むことを特徴とする請求項21から26のいずれか一項に記載のシステム。
JP2016504388A 2013-03-22 2014-03-21 同期したオンラインコンテンツ管理システムのためのローカルサーバ Active JP6175181B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/849,165 2013-03-22
US13/849,165 US9088573B2 (en) 2013-03-22 2013-03-22 Local server for synced online content management system
PCT/US2014/031500 WO2014153540A1 (en) 2013-03-22 2014-03-21 Local server for synced online content management system

Publications (2)

Publication Number Publication Date
JP2016518653A JP2016518653A (ja) 2016-06-23
JP6175181B2 true JP6175181B2 (ja) 2017-08-02

Family

ID=50687679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016504388A Active JP6175181B2 (ja) 2013-03-22 2014-03-21 同期したオンラインコンテンツ管理システムのためのローカルサーバ

Country Status (5)

Country Link
US (3) US9088573B2 (ja)
EP (1) EP2976871B1 (ja)
JP (1) JP6175181B2 (ja)
AU (2) AU2014235853B2 (ja)
WO (1) WO2014153540A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460118B2 (en) 2014-09-30 2016-10-04 Duelight Llc System, method, and computer program product for exchanging images
US9508133B2 (en) 2014-11-18 2016-11-29 Duelight Llc System and method for generating an image result based on availability of a network resource
US9218662B1 (en) * 2014-11-06 2015-12-22 Duelight Llc System, method, and computer program product for exchanging images
US9361319B2 (en) 2013-09-30 2016-06-07 Duelight Llc Systems, methods, and computer program products for digital photography
US9448771B2 (en) 2014-10-17 2016-09-20 Duelight Llc System, computer program product, and method for generating a lightweight source code for implementing an image processing pipeline
JP6303730B2 (ja) * 2014-03-31 2018-04-04 富士通株式会社 情報処理装置、情報処理システム、プログラムおよび処理方法
US10140309B2 (en) * 2014-06-10 2018-11-27 Alfresco Software, Inc. File tracking on client machines synchronized with a content management system repository
US10101983B2 (en) 2014-11-07 2018-10-16 Open Text Sa Ulc Client application with embedded server
EP3070619B1 (en) * 2015-03-16 2023-08-16 Canon Kabushiki Kaisha Information processing apparatuses performing synchronization of data and data synchronization methods
US9715534B2 (en) 2015-03-23 2017-07-25 Dropbox, Inc. Shared folder backed integrated workspaces
US9760459B2 (en) * 2015-06-10 2017-09-12 International Business Machines Corporation Synchronization policies among nodes
US20170041392A1 (en) * 2015-08-04 2017-02-09 Smart Technologies Ulc Method of distributing a file and a computing system employing same
US20170091253A1 (en) * 2015-09-29 2017-03-30 Dropbox, Inc. Interrupted synchronization detection and recovery
CN114756520A (zh) 2015-10-02 2022-07-15 谷歌有限责任公司 用于在计算系统中同步离线数据的方法和系统
EP3561711A1 (en) 2015-10-02 2019-10-30 Google LLC Signatures of updates exchanged in a binary data synchronization protocol
US10296608B2 (en) 2015-10-02 2019-05-21 Google Llc Single table multi-schema data store in a key value store
US9804834B1 (en) 2016-04-19 2017-10-31 Dropbox, Inc. Automatically updating a hybrid application
JP6596597B2 (ja) 2016-11-30 2019-10-30 キヤノン電子株式会社 情報処理装置およびその制御方法、並びにプログラム
US10970656B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Automatically suggesting project affiliations
US10970679B2 (en) 2016-12-29 2021-04-06 Dropbox, Inc. Presenting project data managed by a content management system
US10402786B2 (en) 2016-12-30 2019-09-03 Dropbox, Inc. Managing projects in a content management system
US10268460B2 (en) * 2017-01-25 2019-04-23 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage
US10404789B2 (en) 2017-01-25 2019-09-03 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage
US10437570B2 (en) 2017-01-25 2019-10-08 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage
US10839041B2 (en) 2017-01-25 2020-11-17 Walmart Apollo, Llc Systems, method, and non-transitory computer-readable storage media for a partial-render operation generating code for displaying a webpage
EP3631718A4 (en) * 2017-06-02 2020-12-16 Bluefin Payment Systems, LLC SYSTEMS AND METHODS FOR MANAGING A PAYMENT TERMINAL USING A WEB BROWSER
US11226939B2 (en) 2017-12-29 2022-01-18 Dropbox, Inc. Synchronizing changes within a collaborative content management system
US11172013B2 (en) 2019-01-31 2021-11-09 Open Text Corporation System and method for launching and connecting to a local server from a webpage
US11245537B2 (en) * 2019-06-07 2022-02-08 Open Text Corporation System and method for a local server with self-signed certificates
US11172014B2 (en) * 2019-08-21 2021-11-09 Open Text Sa Ulc Smart URL integration using serverless service
US11321275B2 (en) * 2019-12-02 2022-05-03 Dropbox, Inc. Technologies for migrating content items from a server on a network to an online content management system
CN112579326A (zh) * 2020-12-29 2021-03-30 北京五八信息技术有限公司 离线数据处理方法、装置、电子设备和计算机可读介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206806B2 (en) * 2001-05-30 2007-04-17 Pineau Richard A Method and system for remote utilizing a mobile device to share data objects
CA2411294C (en) * 2001-11-06 2011-01-04 Everyware Solutions Inc. A method and system for access to automatically synchronized remote files
US7596807B2 (en) * 2003-07-03 2009-09-29 Arbor Networks, Inc. Method and system for reducing scope of self-propagating attack code in network
US8458033B2 (en) * 2003-08-11 2013-06-04 Dropbox, Inc. Determining the relevance of offers
US9811603B2 (en) * 2003-09-03 2017-11-07 International Business Machines Corporation Transport and administration model for offline browsing
JP2006139632A (ja) * 2004-11-15 2006-06-01 Canon Inc 画像データ処理方法、画像処理装置、画像処理プログラム
US7596594B2 (en) 2004-09-02 2009-09-29 Yahoo! Inc. System and method for displaying and acting upon email conversations across folders
WO2006053019A2 (en) * 2004-11-08 2006-05-18 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US8601475B2 (en) * 2005-08-02 2013-12-03 Aol Inc. Download and upload of email messages using control commands in a client/server web application
US20070033155A1 (en) * 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
US8015319B2 (en) * 2005-10-27 2011-09-06 Huawei Technologies Co., Ltd. Method, system, client and server for implementing data sync
US8706799B2 (en) * 2006-05-29 2014-04-22 Sandisk Il Ltd. Method and apparatus to exchange information with a local storage device
US8060486B2 (en) * 2007-05-07 2011-11-15 Hewlett-Packard Development Company, L.P. Automatic conversion schema for cached web requests
WO2009054047A1 (ja) * 2007-10-23 2009-04-30 Netstar, Inc. ウェブサイトの閲覧を管理するシステム
US20100153948A1 (en) 2008-12-11 2010-06-17 Ghost, Inc. Combined web and local computing environment
US8291036B2 (en) * 2009-03-16 2012-10-16 Microsoft Corporation Datacenter synchronization
JP5984355B2 (ja) * 2010-10-22 2016-09-06 株式会社インテック 分散型データベースシステムおよび分散型データ処理システム
US20130232121A1 (en) * 2012-03-01 2013-09-05 Filetrek Inc. Method and system for remote storage of data
US9317709B2 (en) * 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
KR20140037476A (ko) * 2012-09-19 2014-03-27 브레인즈스퀘어(주) 파일의 외부 유출 방지를 위한 시스템 및 그 방법
US9934241B2 (en) * 2013-03-05 2018-04-03 Hightail, Inc. System and method for cloud-based read-only folder synchronization

Also Published As

Publication number Publication date
AU2016225864B2 (en) 2018-06-28
AU2014235853A1 (en) 2015-08-13
US20150281353A1 (en) 2015-10-01
AU2016225864A1 (en) 2016-09-29
US20140289360A1 (en) 2014-09-25
AU2014235853B2 (en) 2016-06-09
US20160366222A1 (en) 2016-12-15
WO2014153540A4 (en) 2014-11-20
JP2016518653A (ja) 2016-06-23
EP2976871B1 (en) 2019-07-03
US9451022B2 (en) 2016-09-20
EP2976871A1 (en) 2016-01-27
US10277673B2 (en) 2019-04-30
US9088573B2 (en) 2015-07-21
WO2014153540A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
JP6175181B2 (ja) 同期したオンラインコンテンツ管理システムのためのローカルサーバ
US10484456B2 (en) Sharing a content item
JP6276388B2 (ja) 共有コンテンツのアクセス許可
JP6198964B2 (ja) ファイルレベル・コメンティング
JP6381776B2 (ja) コンテンツアイテムの共有のための未登録ユーザアカウントの生成
JP6475716B2 (ja) 共有に基づくコンテンツアイテム同期の優先付け
JP2016529599A (ja) コンテンツクリップボードの同期
JP5976258B1 (ja) ライトインストーラ
JP6161827B2 (ja) クライアントアプリケーションがコンテンツ管理システム上のユーザアカウントにアクセスすることの予備認証
JP6178867B2 (ja) コンテンツプレビューの提供
US10348821B2 (en) Prioritizing structural operations and distributing changes in a synced online content management system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170707

R150 Certificate of patent or registration of utility model

Ref document number: 6175181

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