(58)【調査した分野】(Int.Cl.,DB名)
前記コメントインタフェースが、前記コンテンツアイテムとは独立してスクロール可能であるか、または、各コメントが前記コンテンツアイテム内のロケーションとリンク可能であるかの少なくとも1つであることを特徴とする請求項1から4のいずれか1項に記載のコンピュータで実施される方法。
前記コンテンツアイテムは、ワードプロセッシングドキュメント、スプレッドシート、プレゼンテーション、ビデオ、ストリーミングコンテンツ、または画像のうちの少なくとも1つであることを特徴とする請求項1から5のいずれか1項に記載のコンピュータで実施される方法。
前記コンテンツアイテムとともに表示されるように、または前記コンテンツアイテムとの同時表示から隠されるように、前記コメントインタフェースを選択的に提供する工程を更に含むことを特徴とする請求項1から6のいずれか1項に記載のコンピュータで実施される方法。
前記コメントは、異なる複数のコンピューティングデバイス・タイプ間、及び異なる複数のコンテンツアイテム・タイプについての異なる複数のプラットフォーム・タイプ間で、前記コンテンツアイテムとともに表示可能であることを特徴とする請求項8から13のいずれか1項に記載のプログラム。
【発明を実施するための形態】
【0019】
本開示の種々の実施形態について以下で詳しく議論する。具体的な実施形態について議論するものの、これは例示のみを目的として行われていると理解されるべきである。当業者であれば、本開示の精神及び範囲を逸脱せずに他の構成要素及び構成が使用されうることを理解するであろう。
【0020】
開示した技術は、当該技術分野における、複数のコンピューティングデバイス、プラットフォーム、及びファイルタイプにわたる複数のユーザが閲覧可能であるコンテンツアイテムに対して、コメントまたはメタデータ等の情報をユーザが提供できるようにする必要性に対処する。特に、ユーザは、オンラインコンテンツ管理システムを通じて閲覧及び/または編集するために利用可能なコンテンツアイテム(ドキュメントまたは画像等)と関連付けられたコメントインタフェースに、コメントを提供できる。一例として、コメントインタフェースは、コンテンツ管理システムと関連付けられ、かつ、場合によってはコンテンツアイテムのネイティブアプリケーションとは関連付けられていない、アプリケーション、プラグインまたは他のインタフェースを通じて提供されうる。
【0021】
更に、コメントは、メタデータを介してコンテンツアイテムに対して提供されうる。一例として、オンラインコンテンツ管理システムは、アプリケーションプログラミングインタフェース(API)を通じて、メタデータまたは他の何らかの機能をサードパーティ・ディベロッパに対して公開しうる。本明細書で使用されるように、APIは、Webベースのソフトウェア・アプリケーションまたはソフトウェア・ツールにアクセスするためのプログラミング命令及びプログラミング標準のセットである。本例では、オンラインコンテンツ管理システムは、当該オンラインコンテンツ管理システムが提供するサービスによって動作する製品をソフトウェア・ディベロッパが設計可能となるように、APIを公衆に公表しうる。したがって、サードパーティ・ディベロッパは、当該APIを使用して、ローファイルデータを変更することなく、コメント、コンテンツアイテム用のコメントインタフェース、または他の何らかの情報若しくはアプリケーションを、コンテンツアイテムに添付しうる。
【0022】
図1は、少なくとも1つの実施形態に係る、ブラウザ102に表示されるドキュメント100の例を示す。種々の実施形態では、ドキュメント100は、クラウドストレージ、ファイル同期、及び他の種々のタイプのクライアントソフトウェア等のサービスを提供しうるオンラインコンテンツ管理システムからの取り出しのために利用可能な、多くのコンテンツアイテムまたはファイルのうちの1つである。例えば、このようなシステムによって、ユーザは、スマートフォン、タブレット型コンピュータ、デスクトップ型コンピュータ、及びラップトップ等のコンピューティングデバイスのそれぞれにフォルダを作成できるようになりうる。フォルダのコンテンツが、変更または更新された場合に、デバイスまたはプラットフォームのタイプによらずに、あらゆるデバイス間で閲覧されたときに同一に見えるように、フォルダはあらゆるデバイス間で同期されうる。そのようなフォルダに入れられたファイルは、1つ以上のデバイスと関連付けられたウェブサイトまたはモバイルアプリケーションを通じてアクセス可能でありうるとともに、他のユーザのデバイスとの共有も行われうる。
【0023】
少なくとも1つの実施形態によれば、オンラインコンテンツ管理システムは、コンテンツアイテムに対してユーザがコメントを提供できるようにするための機能を公開しうる。一例として、ユーザは、アイコン104を選択することによって、ドキュメント100にコメントを提供することを選択でき、当該選択アイコンは、一例では、コメントインタフェースまたはセクション106を展開する。この例では、コメントセクション106は、オンラインコンテンツ管理システムによって提供されるメタデータまたはAPIを通じてコンテンツアイテムと通信またはインタフェースするサードパーティ・サービスプロバイダによって提供されるアプリケーションであってもよい。したがって、この例では、コメントセクション106は、ユーザがコメントを提供するためのテキストフィールド108と、他のユーザとドキュメント100を共有するための共有アイコン110と、ユーザ及びアカウント・プリファレンスを変更するための設定アイコン112とを含む。
【0024】
少なくとも1つの実施形態では、ユーザは、例えば、ドキュメント100を編集して当該ドキュメントを他のユーザと共有した後に、1つ以上のコメントをテキストフィールド108に提供しうる。したがって、この例では、ドキュメント100は、他のユーザと共有されているとともに他のユーザによって閲覧されている。この例では、3ユーザが存在し、それぞれが、セクション106の最上部の第1のユーザによって提示された最初の質問に対してコメントを提供している。この例では、第1のユーザが、ドキュメント100を作成し、ドキュメント100を第2及び第3のユーザと共有し、第2及び第3のユーザにそのフィードバックを求めており、第2及び第3のユーザが、その考えをセクション106に提供している。
【0025】
一例として、各ユーザは、ドキュメント100に対する編集、及びその編集についての説明を提供しうる。一例として、複数のコメントのそれぞれは、例えばコンテンツの言い換えまたは特定の段落へのコンテンツの付加のために、ドキュメント内の特定のロケーションにリンクされうる。あるいは、コメントは、ドキュメント100の背景色について等の、全般的な、文書全体についてのものでありうる。更に、リンクされたコメント及び全般的なコメントの両方は、コメントセクション106に同時に提供されうる。例えば、特定のロケーションまたはセクションへのコメントは、ユーザがそれぞれのコメントを選択した際に、ドキュメント100内の、それぞれのコメントと関連付けられたロケーションに導かれるように、ドキュメント100内の当該特定のロケーションにリンクされうる。したがって、全般的なコメントは、いずれの特定のロケーションとも関連付けられていないため、選択された際にユーザをロケーションに誘導しないであろう。
【0026】
したがって、APIを通じて受け取られるコメントを各ユーザが提供した後、ドキュメント100に関連付けられたファイルは、全ての共有ユーザからの最新のコメントを含む、ドキュメント100の最新バージョンに各ユーザがアクセスするために、ユーザのコンピューティングデバイスのそれぞれにわたって同期されうる。それぞれのユーザがドキュメントを保存するかまたは閉じた際に「プッシュ型」として同期が実行され、その結果、ユーザに関連付けられた各デバイスへ最新バージョンが配信されてもよいし、または、それぞれのユーザがドキュメント100へのアクセスを要求した際に、ドキュメント100及び/またはコメントセクション106への変更を、全ての関連付けられたコンピューティングデバイスにわたって確実に反映するために、「プル型」として同期が実行されてもよい。
【0027】
更に、本明細書で議論される種々の実施形態の範囲内で、ローカル・ピアツーピア同期も利用されうる。例えば、同一のユーザに関連付けられた、または同一の共有フォルダへアクセスできる複数のデバイスは、同一のローカルエリアネットワーク上にあるかどうかを判定しうるとともに、そうである場合に、(例えば、SSLを介して)セキュア接続を確立し、かつ、ファイルのピアツーピア転送を通じて同期を達成しうる。同期されたファイルは、典型的には、ファイルを提供したユーザと関連付けられているコンピューティングデバイスにのみ提供されうる。例えば、特定のユーザが自分のタブレット型コンピュータ、ラップトップ及びスマートフォンをコンテンツ管理システムに登録していれば、それら3つのデバイスは、それらのデバイスとファイルを同期させ、さもなければ、ユーザ・ログインを介して(例えば、ウェブベースまたはアプリケーションベースのインタフェースを介して)当該ユーザがファイルを利用できるようにする。したがって、コンテンツ管理システムは、デフォルトで、またはファイルを提供したユーザのログイン以外のログインを介して、他のユーザのデバイスがファイルを利用できるようにすることはない。
【0028】
本明細書内の他の場所で議論したように、コメントセクション106は、複数のデバイス、複数のプラットフォーム及び複数のファイルタイプにわたって提供されうる。例えば、コンテンツ管理システムは、ワードプロセッシングドキュメント、スプレッドシート、プレゼンテーション、ビデオ、ストリーミングコンテンツ、画像、及び他の何らかのコンテンツ若しくはファイルタイプ等のコンテンツアイテムに対して、ストレージ、取り出し、編集及びコメンティングのサービスを提供しうる。したがって、
図2は、少なくとも1つの実施形態に係る、ブラウザ202に表示される画像200の例を示す。この例では、画像200は、ユーザの友人及び家族の間で共有される写真アルバムの一部であってもよく、それ故に、ユーザの友人及び家族は、
図1に関して上述したように共有ユーザ間で共有されることになるコメントセクション206のテキストフィールド208内にメッセージを打ち込むことによって、コメントを提供しうる。加えて、ユーザは、個人的なストレージ及び保管のために、オンラインコンテンツ管理システムに画像200をアップロードしうるとともに、画像200と関連付けられた、特定の思い出及び場所等についての覚書を書き留めるためにコメントセクション206に対してコメントを提供しうるか、特定のアルバムに対して全般的にコメントを提供しうる。
【0029】
少なくとも1つの実施形態では、コメントセクションは、それぞれのコンテンツアイテムと関連付けられたネイティブアプリケーションとは異なるインタフェース上で提供される。例えば、コメントセクションは、表示中のそれぞれのファイルタイプのネイティブアプリケーションから独立したアプリケーションレイヤ、または当該ネイティブアプリケーションの上に重ねられたアプリケーションレイヤであってもよい。一例として、当該レイヤは、サードパーティ・サービスプロバイダによって提供される、またはウェブブラウザを通じて閲覧される場合にはサードパーティ・サービスプロバイダと関連付けられたブラウザ・プラグインによって提供されるアプリケーションと関連付けられていてもよい。一例として、これは、提供されたアプリケーションによる読み取りが可能な各コンテンツアイテムにメタデータを付加することによって達成されてもよいし、または、当該メタデータは、コンテンツ管理システムによるサードパーティ・サービスプロバイダからの取り出しが可能であるコメントデータを有するロケーションを指し示してもよい。
【0030】
したがって、第2のタイプのコメントが、ユーザによって作成されうる。例えば、ユーザは、ドキュメント、画像またはプレゼンテーション等のファイル内のロケーションを、コメントのために選び、その後、その特定のロケーションにテキストを付加しうる。例えば、ファイル「コメンティング・スクリーンショット1」内で、Aとラベル付けされたポイントにおいて、(ドキュメント、画像またはプレゼンテーションの)それぞれのスライドに、単一のコメントが、コメントセクションに表示された対応するコメントとともに付加されうる。コメントは、更に、コメントが提供された日時とともに当該コメントを残した特定のユーザを識別しうる。
【0031】
図3は、種々の実施形態が実施されうる環境の例300を示す。この例では、オンラインコンテンツ管理システム302は、コンテンツアイテム(304a,304b,304c,304d)を格納しうるとともに、当該コンテンツアイテムを、ネットワークを通じた要求に応じて第1のコンピューティングデバイス312及び第2のコンピューティングデバイス316での表示用にコンテンツアイテムを提供することによって取り出しに利用できるようにしうる。この例では、オンラインコンテンツ管理システム302は、コンテンツアイテム(304a,304b,304c,304d)の1つと関連付けられたネイティブアプリケーションを通じては利用できない情報または追加機能を、サードパーティ・サービスプロバイダまたはディベロッパ308がコンテンツアイテム(304a,304b,304c,304d)に対して付加/提供できるようにするために、API306を提供または公開する。
【0032】
例えば、ディベロッパ308は、コンテンツアイテム(304a,304b,304c,304d)に対して、または当該コンテンツアイテムと並べて、ユーザ310及び/またはユーザ314がコメントを提供できるようにする、本明細書内の他の場所で議論したようなコメントインタフェースを開発できる。この例では、コメントインタフェースは、API306を通じてコンテンツアイテム(304a,304b,304c,304d)と通信またはインタフェースするとともに、当該コメントインタフェースは、コンテンツアイテム(304a,304b,304c,304d)のそれぞれと関連付けられたネイティブアプリケーションの上のレイヤであるために、コンテンツアイテム(304a,304b,304c,304d)のそれぞれのローファイルデータを変更することなく、当該コメントインタフェースに対してコメントが提供されうる。
【0033】
したがって、この例では、ユーザ310及びユーザ314の両方は、各々(または少なくともユーザ310)がオンラインコンテンツ管理システム302にアカウントを有し、当該アカウントによって、両ユーザは、ストレージ及び取り出しのためにコンテンツアイテム(304a,304b,304c,304d)のようなコンテンツアイテムをアップロードできるようになる。この例では、コンテンツアイテム304bは、
図1に関して議論したように、コンピューティングデバイス312を通じてユーザ310が最初にアップロードした協調ワードプロセッシングドキュメントであってもよい。この例では、ディベロッパ308によって提供されるコメントインタフェースを利用するユーザ310は、最終的にフィードバックのためのコンテンツアイテム304bの提示先となる同僚(ユーザ314)に対して質問またはコンテンツアイテム304bの説明部分をもたらす1つ以上のコメントを挿入しうる。一例として、コメントインタフェースを通じて(複数の)コメントが受け取られ、かつ、各コメントのデータがオンラインコンテンツ管理システム302に格納されるか、あるいは、コメントがディベロッパ308に格納され、かつ、ディベロッパ308に格納されたそれぞれのコメントのロケーションを指し示すデータがオンラインコンテンツ管理システム302に格納されてもよい。
【0034】
したがって、ユーザ310は、例えば、ユーザ310と関連付けられたアカウントを通じて利用可能なコンテンツアイテム304bへのリンクの形式のインビテーションを送ることによって、コンテンツアイテム304bをユーザ314と共有できる。ユーザ314は、当該インビテーションを受け付けた後に、コメントインタフェース326(または他のデバイス)上でコンテンツアイテム304bを閲覧すること、及び1つ以上のコメントをコメントインタフェースに提供することができる。ユーザ314が(複数の)コメントを提供した後、オンラインコンテンツ管理システム302は、提供した(複数の)コメント、及び第2のコンピューティングデバイス316(または他のデバイス)を介してコンテンツアイテム304bに対して行ったあらゆる変更を、オンラインコンテンツ管理システム302に格納されたコンテンツアイテム304bのコピー、及び/またはコンピューティングデバイス312に局所的に格納されたコピーと同期させる。したがって、同期が実行された後、ユーザ310は、コンピューティングデバイス312を通じてコンテンツアイテム304bにアクセスすることによって、ユーザ314によって提供された(複数の)コメントを閲覧することができる。
【0035】
図4は、種々の実施形態が実施されうる環境の例400を示す。この例では、オンラインコンテンツ管理システム410は、コンテンツアイテム(406a,406b,406c)を格納しうるとともに、当該コンテンツアイテムを、ネットワークを通じた要求に応じて第1のコンピューティングデバイス404及び第2のコンピューティングデバイス414での表示用にコンテンツアイテムを提供することによって取り出しに利用できるようにしうる。この例では、オンラインコンテンツ管理システム410は、コンテンツアイテム(406a,406b,406c)の1つと関連付けられたネイティブアプリケーションを通じては利用できない追加のサービスを提供するために、サードパーティ・サービスプロバイダ408がコンテンツアイテム(406a,406b,406c)を利用またはさもなければインタフェースすることができるよう、API412を公開する。
【0036】
この例では、サードパーティ・サービスプロバイダ408は、
図2に関して議論したような、オンラインコンテンツ管理システム410に格納されたアルバムに対してアップロードされる画像をユーザが414が自動的に共有できるようにするためのAPI412をオンラインコンテンツ管理システム410が公開する、ソーシャルネットワークまたはファイル共有アプリケーション若しくはウェブサイトであってもよい。一例として、コンテンツアイテム406aは画像であってよく、ユーザ414は、コンピューティングデバイス416を介して当該画像をオンラインコンテンツ管理システム410へアップロードすることによって当該画像をユーザ402と共有でき、当該画像は、その後にサードパーティ・サービスプロバイダ408を通じて利用可能になる。この例では、コンピューティングデバイス404を介してユーザ402は、例えば、フィルタの適用、テキストの挿入、ペイント機能を使用した画像への描画によって画像を編集しうるか、ユーザは、画像等に対してコメントしうる。
【0037】
したがって、ユーザ402が画像(コンテンツアイテム406a)に対して編集及び/またはコメントを行った後に、オンラインコンテンツ管理システム410は、当該画像を、オンラインコンテンツ管理システム410に格納されたコンテンツアイテム406aのコピー、及び/またはコンピューティングデバイス416に局所的に格納されたコピーと同期させうる。したがって、同期が実行された後、ユーザ414は、コンピューティングデバイス416を通じてコンテンツアイテム406bにアクセスすることによって、ユーザ402によって提供された編集及び/またはコメントを閲覧することができる。
【0038】
図5は、種々の実施形態に係る、コンテンツ管理システムを通じて共有されるドキュメントにユーザがコメントを提供できるようにするための方法の例500を示す。本明細書で議論したあらゆる方法について、特に明記しない限り、種々の実施形態の範囲内で、同様の若しくは代替の順序でまたは並列に実行される、追加の、より少ないまたは代替のステップが存在しうることが理解されるべきである。
【0039】
この例では、オンラインコンテンツ管理システムのアカウントに対してアップロードされるコンテンツアイテムを受け取る(502)。この例では、コンテンツアイテムは、ワードプロセッシングドキュメント、スプレッドシート、プレゼンテーションファイル、ビデオ、ストリーミングコンテンツ、画像、及び類似のディジタルコンテンツであってもよい。この例では、オンラインコンテンツ管理システムは、コンテンツアイテムと関連付けられたコメントをユーザが挿入するためのコメントセクションを提供するために、コンテンツアイテムのメタデータをサードパーティに公開する(504)。一例として、APIを通じてメタデータをサードパーティに利用可能にし、当該APIは、それぞれのコンテンツアイテムに関連付けられた種々のアプリケーションに対して異なるかまたは同一でありうる。この例では、第1のコンピューティングデバイスでの表示のためにコンテンツアイテムを提供する(506)。したがって、サードパーティによって提供されるコメントセクションに対して、第1のコンピューティングデバイスのユーザからコメントを受け取る(508)。コンテンツアイテムへの変更の識別に応じて、またはコメントの受け取りに応じて、当該コンテンツアイテムを、オンラインコンテンツ管理システム及び/または第2のコンピューティングデバイスに格納されたコンテンツアイテムのコピーと同期させる(510)。したがって、第2のコンピューティングデバイスでの表示のためにコンテンツアイテム及びコメントを提供しうる(512)。
【0040】
図6は、ドキュメントを共有するとともに、共有されたドキュメントに対してユーザ間で同期されたコメントを提供するための、例示的なシステム構成600を示しており、同図において、コンピューティングデバイスは、コンテンツ及び他のデータをやりとりするために、ネットワークを介して通信する。当該システムは、
図6に示されるようなワイドエリアネットワークで使用されるように構成されうる。しかし、本原理は、電子機器の相互通信を促進する多くの種類のネットワーク構成に適用可能である。例えば、
図6のシステム600の各コンポーネントは、ネットワーク内で局所的または分散的な方法で実現されうる。
【0041】
システム600において、ユーザは、直接及び/または間接の通信によりネットワーク604に接続されたコンピューティングデバイス602
1,602
2,...,602
n(まとめて「602」)を通じて、コンテンツ管理システム606とのインタラクションが可能である。コンテンツ管理システム606は、デスクトップコンピュータ、モバイル通信デバイス(例えば、携帯電話、スマートフォン、タブレット)、セットトップボックス、及び/または他の任意のネットワーク使用可能なコンピューティングデバイスといった、種々の異なるコンピューティングデバイスからの接続をサポート可能である。コンピューティングデバイス602は、様々なタイプ、能力、オペレーティングシステム等のものであってよい。更には、コンテンツ管理システム606は、複数のコンピューティングデバイス602からの接続を同時に受け付けることが可能であるとともに、複数のコンピューティングデバイス602と同時にインタラクションを行うことが可能である。
【0042】
ユーザは、コンピューティングデバイス602
iにインストールされたクライアントサイド・アプリケーションを介して、コンテンツ管理システム606とのインタラクションを行うことが可能である。いくつかの実施形態では、クライアントサイド・アプリケーションは、コンテンツ管理システム固有のコンポーネントを含みうる。例えば、当該コンポーネントは、スタンドアロン・アプリケーション、一つ以上のアプリケーション・プラグイン、及び/またはブラウザ拡張であってもよい。しかし、ユーザは、コンピューティングデバイス602
iに存在し、かつ、コンテンツ管理システム606と通信するよう構成された、ウェブブラウザ等のサードパーティ・アプリケーションを介して、コンテンツ管理システム606とのインタラクションを行うことも可能である。それぞれのケースにおいて、クライアントサイド・アプリケーションは、コンテンツ管理システム606とのインタラクションをユーザが行うためのユーザインタフェース(UI)を提示しうる。例えば、ユーザは、ファイルシステムと一体化したクライアントサイド・アプリケーションを介して、または、ウェブブラウザ・アプリケーションを用いて表示されるウェブページを介して、コンテンツ管理システム606とのインタラクションを行うことが可能である。
【0043】
コンテンツ管理システム606は、ユーザがコンテンツを保存するのを可能にしうるとともに、コンテンツの取り出し、変更、ブラウジング及び/または共有といった種々のコンテンツ管理タスクをユーザが実行することを可能にうる。更には、コンテンツ管理システム606は、ユーザが複数のクライアントデバイス602からコンテンツにアクセスすることを可能にしうる。例えば、コンピューティングデバイス602
iは、ネットワーク604を介してコンテンツ管理システム606へコンテンツをアップロード可能である。当該コンテンツは、その後、同一コンピューティングデバイス602
iまたは他の何らかのコンピューティングデバイス602
jを使用して、コンテンツ管理システム606から取り出し可能である。
【0044】
種々のコンテンツ管理サービスを促進するために、ユーザは、コンテンツ管理システム606のアカウントを作成できる。アカウント情報は、ユーザアカウント・データベース650に保持されうる。ユーザアカウント・データベース650には、登録されたユーザについてのプロファイル情報を保存できる。場合によっては、ユーザプロファイルの個人情報のみは、ユーザ名及び/または電子メールアドレスであってもよい。しかし、コンテンツ管理システム606は、追加のユーザ情報を受け付けるように構成されてもよい。
【0045】
ユーザアカウント・データベース650は、アカウントタイプ(例えば、フリーまたは有料)、利用情報(例えば、ファイル編集履歴)、権限を与えられた最大ストレージスペース、使用済みのストレージスペース、コンテンツ格納先、セキュリティ設定、個人コンフィギュレーション設定、コンテンツ共有データ等の、アカウント管理情報を含むことも可能である。アカウント管理モジュール624は、ユーザアカウント・データベース650内のユーザアカウントの詳細を更新及び/または取得するように構成されうる。アカウント管理モジュール624は、コンテンツ管理システム606内の任意の数の他のモジュールとのインタラクションを行うように構成されうる。
【0046】
アカウントは、当該アカウントに対して権限付与された一つ以上のコンピューティングデバイス602から、デジタルデータ、ドキュメント、テキストファイル、音声ファイル、映像ファイル等のコンテンツを保存するために使用されうる。コンテンツは、更に、異なる挙動を有する種々のタイプのフォルダを含みうるか、または、コンテンツアイテムを一緒にグループ化する他のメカニズムを含みうる。例えば、アカウントは、あらゆるユーザがアクセス可能なパブリックフォルダを含みうる。パブリックフォルダは、ウェブアクセス可能なアドレスを割り当てられうる。パブリックフォルダのコンテンツにアクセスするために、ウェブアクセス可能なアドレスへのリンクが使用されうる。他の例では、アカウントは、写真を対象とし、かつ、写真に合った特有の属性及び動作を提供する写真フォルダ、音声ファイルを再生し、かつ、他の音声関連動作を実行する能力を提供する音声フォルダ、または、他の特殊用途フォルダを含みうる。アカウントは、複数のユーザアカウントとリンクされ、かつ、複数のユーザアカウントが利用可能な共有フォルダまたはグループフォルダも含みうる。複数のユーザへの許可は、共有フォルダによって異なっていてもよい。
【0047】
コンテンツは、コンテンツストレージ660に保存されうる。コンテンツストレージ660は、ストレージデバイスであってもよいし、複数のストレージデバイスであってもよいし、またはサーバであってもよい。あるいは、コンテンツストレージ660は、一つ以上の通信ネットワークを介してアクセス可能なクラウドストレージ・プロバイダまたはネットワークストレージであってもよい。コンテンツ管理システム606は、コンテンツアイテムがコンテンツ管理システム606によってどこに保存されているかをコンピューティングデバイス602が正確に知る必要がないように、コンピューティングデバイス602に複雑度及び詳細を隠しうる。一つの変形において、コンテンツ管理システム606は、コンテンツアイテムを、クライアントデバイス602
i上に現れるのと同じフォルダ階層で保存しうる。しかし、コンテンツ管理システム606は、コンテンツアイテムを、それ独自の順序、配置または階層で保存しうる。コンテンツ管理システム606は、コンテンツアイテムを、ネットワークアクセス可能ストレージ(SAN)デバイス、複数の個別ディスクから成る冗長アレイ(RAID)等に保存しうる。コンテンツストレージ660は、コンテンツアイテムを、一つ以上のパーティションタイプ(FAT、FAT32、NTFS、EXT2、EXT3、EXT4、ReiserFS、BTRFS等)を使用して保存しうる。
【0048】
コンテンツストレージ660は、コンテンツアイテムを記述したメタデータ、コンテンツアイテムのタイプ、及び、種々のアカウント、フォルダまたはグループに対するコンテンツアイテムの関係の保存もしうる。コンテンツアイテム用のメタデータは、当該コンテンツアイテムの一部として保存されうるか、または個別に保存されうる。一つの変形において、コンテンツストレージ660に保存されるコンテンツアイテムは、システム全体で固有の識別子を割り当てられうる。
【0049】
コンテンツストレージ660は、重複ファイルまたはファイルの重複セグメントを識別することで、必要となるストレージスペースの量を低減しうる。複数のコピーを保存することに代えて、コンテンツストレージ660は、単一のコピーを保存しうるとともに、その後に、当該単一のコピーに複製をリンクさせるポインタまたは他のメカニズムを使用しうる。同様に、コンテンツストレージ660は、より効率的にファイルを保存しうるとともに、ファイルに対する変更を追跡するファイルバージョン制御、(分岐バージョンツリーを含む)ファイルの異なるバージョン、及び変更履歴を使用することによって、動作を取り消す能力を提供しうる。変更履歴は、最初のファイルバージョンに適用された際に変更ファイルバージョンを生成する変更のセットを含みうる。
【0050】
コンテンツ管理システム606は、一つ以上のコンピューティングデバイス602からのコンテンツの自動同期をサポートするように構成されうる。当該同期は、プラットフォーム非依存型であってもよい。即ち、様々なタイプ、能力、オペレーティングシステム等の複数のコンピューティングデバイス602にわたってコンテンツが同期化されうる。例えば、クライアントデバイス602
iは、クライアントデバイス602
iのファイルシステムのコンテンツを、関連付けられたユーザアカウントのコンテンツと、コンテンツ管理システム606の同期モジュール632を介して同期化するクライアントソフトウェアを含みうる。場合によっては、クライアントソフトウェアは、新しい、削除された、変更された、コピーされた、または移動されたファイルまたはフォルダといった、指定されたフォルダ及びそのフォルダ内のコンテンツに対するあらゆる変更を同期化しうる。クライアントソフトウェアは、個別のソフトウェアアプリケーションであってもよいし、オペレーティングシステム既存のコンテンツ管理アプリケーションと一体化されてもよいし、または、それらの何らかの組み合わせであってもよい。既存のコンテンツ管理アプリケーションと一体化したクライアントソフトウェアの一例では、ユーザは、ローカルフォルダ内で直接的にコンテンツを操作可能である一方で、バックグラウンドプロセスは、変更に関して当該ローカルフォルダを監視し、かつ、それらの変更をコンテンツ管理システム606に同期化する。逆に、当該バックグラウンドプロセスは、コンテンツ管理システム606において更新されているコンテンツを識別し、かつ、それらの変更をローカルフォルダに同期化しうる。クライアントソフトウェアは、同期動作の通知を提供しうるとともに、コンテンツ管理アプリケーション内で直接的にコンテンツ状況の指標を提供しうる。時には、クライアントデバイス602
iは、利用可能なネットワーク接続を有していないことがある。このシナリオでは、クライアントソフトウェアは、リンクされたフォルダをファイル変更に関して監視しうるとともに、ネットワーク接続が利用可能となった際の、コンテンツ管理システム606へのその後の同期のために、それらの変更をキューイングしうる。同様に、ユーザは、コンテンツ管理システム606との同期を手動で停止または中断できる。
【0051】
ユーザは、ユーザインタフェースモジュール622によって生成及びサービスされるウェブインタフェースを介して、コンテンツを閲覧または操作することも可能である。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム606によって提供されるウェブアドレスに対して誘導できる。ファイルの新しいバージョンのアップロード等の、ウェブインタフェースを通じて行われるコンテンツストレージ660内のコンテンツの変更または更新は、ユーザアカウントに関連付けられた他のクライアントデバイス602のもとへ伝えられうる。例えば、複数のコンピューティングデバイス602は、それぞれが独自のクライアントソフトウェアを有し、単一のアカウントと関連付けられうるとともに、当該アカウント内のファイルは、複数のコンピューティングデバイス602のそれぞれの間で同期化されうる。
【0052】
コンテンツ管理システム606は、種々のコンピューティングデバイス602とインタフェースする通信インタフェース620を含みうるとともに、アプリケーションプログラミングインタフェース(API)を介して他のコンテンツプロバイダ及び/またはサービスプロバイダ609
1,609
2,...,609
n(まとめて「609」)とのインタラクションを行いうる。特定のソフトウェアアプリケーションは、ユーザの代わりにAPIを介してコンテンツストレージ660にアクセスしうる。例えば、スマートフォンまたはタブレット型コンピューティングデバイス上のアプリのようなソフトウェアパッケージは、コンテンツの読み取り、書き込み、作成、削除、共有またはその他の操作を行うためにユーザがクレデンシャルを提供する際に、コンテンツ管理システム606にプログラムで直接的に発呼しうる。同様に、APIは、ユーザがウェブサイトを介してコンテンツストレージ660の全てまたは一部にアクセスすることを可能にする。
【0053】
コンテンツ管理システム606は、権限付与されたクライアント及びユーザのみファイルにアクセスすることを確保するために、ユーザ・クレデンシャル、セキュリティトークン、API呼、特定のクライアントデバイス等を検証しうる認証モジュール626も含みうる。更に、コンテンツ管理システム606は、アグリゲートファイル操作、ユーザ動作、ネットワーク利用、使用済みの全ストレージスペースと、他の技術、利用またはビジネスメトリックとについての追跡及び報告をしうる分析モジュール634を含みうる。プライバシー及び/またはセキュリティポリシーは、コンテンツ管理システム606に保存されたユーザデータへの権限のないアクセスを防止しうる。
【0054】
コンテンツ管理システム606は、コンテンツの公開または非公開による共有を管理する共有モジュール630を含みうる。公開によるコンテンツの共有は、コンテンツアイテムを、コンテンツ管理システム606とネットワーク通信するあらゆるコンピューティングデバイスからアクセス可能にすることを含みうる。非公開によるコンテンツの共有は、各ユーザアカウントがコンテンツアイテムにアクセス可能になるように、コンテンツストレージ660内の当該コンテンツアイテムを、二つ以上のユーザアカウントとリンクさせることを含みうる。この共有は、プラットフォーム非依存で実行されうる。即ち、様々なタイプ、能力、オペレーティングシステム等の複数のコンピューティングデバイス602にわたってコンテンツが共有されうる。コンテンツは更に、様々なタイプのユーザアカウント間で共有されうる。
【0055】
いくつかの実施形態では、コンテンツ管理システム606は、コンテンツディレクトリを維持するためのコンテンツアイテム管理モジュール628を含みうる。コンテンツディレクトリは、コンテンツストレージ660内の各コンテンツアイテムのロケーションを識別しうる。コンテンツディレクトリは、コンテンツストレージに保存されているコンテンツアイテムごとに固有のコンテンツエントリを含みうる。
【0056】
コンテンツエントリは、コンテンツ管理システム内のコンテンツアイテムのロケーションを識別するために使用されうるコンテンツパスを含みうる。例えば、コンテンツパスは、コンテンツアイテム名と、当該コンテンツアイテムに関連付けられたフォルダ階層とを含みうる。例えば、コンテンツパスは、コンテンツアイテムが配置されたフォルダまたはフォルダのパスとコンテンツアイテム名とを含みうる。コンテンツ管理システム606は、コンテンツパスを使用して、適切なフォルダ階層内にコンテンツアイテムを提示しうる。
【0057】
コンテンツエントリは、コンテンツストレージ660内のコンテンツアイテムのロケーションを識別するコンテンツポインタも含みうる。例えば、コンテンツポインタは、メモリ内のコンテンツアイテムの正確なストレージアドレスを含みうる。いくつかの実施形態では、コンテンツポインタは、それぞれがコンテンツアイテムの一部を含む複数の場所を指し示しうる。
【0058】
コンテンツパス及びコンテンツポインタに加えて、コンテンツエントリは、コンテンツアイテムへのアクセスをアクセス可能なユーザアカウントを識別するユーザアカウント識別子も含みうる。いくつかの実施形態では、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントによる共有アクセスが可能であることを示す単一のコンテンツエントリと関連付けられうる。
【0059】
非公開によりコンテンツアイテムを共有するために、共有モジュール630は、コンテンツアイテムと関連付けられたコンテンツエントリにユーザアカウント識別子を追加するように構成されてもよく、これにより、コンテンツアイテムへのアクセスが、追加されたユーザアカウントに許可される。共有モジュール630は更に、コンテンツアイテムへのユーザアカウントのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を削除するように構成されうる。
【0060】
公開によりコンテンツを共有するために、共有モジュール630は、あらゆるブラウザが認証なしでコンテンツ管理システム606へアクセスすることを可能にする、ユニフォームリソースロケータ(URL)等のカスタムネットワークアドレスを生成するように構成されうる。これを実現するために、共有モジュール630は、要求されたコンテンツアイテムを適切に識別して返送するために後で用いられうるコンテンツ識別子を、生成されたURLに含めるように構成されうる。例えば、共有モジュール630は、生成されたURLに、ユーザアカウント識別子及びコンテンツパスを含めるように構成されうる。URLの選択に応じて、当該URLに含まれるコンテンツ識別子データは、受信したコンテンツ識別子データを使用して適切なコンテンツエントリを識別し、かつ、当該コンテンツエントリに関連付けられたコンテンツアイテムを返送しうるコンテンツ管理システム606へ送信されうる。
【0061】
URLの生成に加えて、共有モジュール630は更に、コンテンツアイテムへのURLが作成されたことを記録するように構成されうる。いくつかの実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのURLが作成されたかどうかを示すURLフラグを含みうる。例えば、URLフラグは、コンテンツアイテムへのURLが作成されていないことを示しうる0または偽に最初に設定されるブール値であってもよい。共有モジュール630は、コンテンツアイテムへのURLが生成された後にフラグの値を6または真に変更するように構成されうる。
【0062】
いくつかの実施形態では、共有モジュール630は更に、生成されたURLを非アクティブ化するように構成されうる。例えば、各コンテンツエントリは更に、生成されたURLからの要求に応じてコンテンツを返送すべきかどうかを示すURLアクティブフラグを含みうる。例えば、共有モジュール630は、URLアクティブフラグが6または真に設定されている場合に生成されたリンクによって要求されたコンテンツアイテムのみを返送するように構成されうる。このようにして、URLが生成されているコンテンツアイテムへのアクセスを、URLアクティブフラグの値を変更することによって容易に制限できる。これにより、ユーザが、コンテンツアイテムを移動させたり生成されたURLを削除したりすることなく、共有コンテンツへのアクセスを制限することが可能になる。同様に、共有モジュール630は、URLアクティブフラグの値を6または真に再び変更することによってURLを再アクティブ化できる。このため、ユーザは、新たなURLを生成する必要なくコンテンツアイテムへのアクセスを容易に復元できる。
【0063】
コンテンツ管理システム606は、特定のコンポーネントを与えられて示されているものの、当業者は、システム606の構造上の構成が単に一つの可能性のある構成であること、及び、多少のコンポーネントが与えられた他の構成も可能であることを理解すべきである。
【0064】
図7A及び
図7Bは、可能性のある例示的なシステムの実施形態を示す。より適切な実施形態は、本技術を実施した際に当業者に明らかになるであろう。当業者は更に、他のシステムの実施形態が可能であることを容易に理解するであろう。
【0065】
図7Aは、従来のシステムバス型のコンピューティングシステム・アーキテクチャ700を示しており、当該システムのコンポーネントは、バス705を使用して互いに電気的な通信を行う。例示的なシステム700は、処理ユニット(CPUまたはプロセッサ)710と、読み取り専用メモリ(ROM)720及びランダムアクセスメモリ(RAM)725等のシステムメモリ715を含む種々のシステムコンポーネントを、プロセッサ710と結合するシステムバス705と、を備える。システム700は、プロセッサ710に直接接続された、プロセッサ710に近接した、またはプロセッサ710の一部として統合された高速メモリのキャッシュを備える。システム700は、プロセッサ710による迅速なアクセスのために、メモリ715及び/またはストレージデバイス730からキャッシュ712へデータをコピーしうる。このようにして、キャッシュは、データを待っている間のプロセッサ710の遅延を回避するパフォーマンス向上を提供しうる。これらのモジュール及び他のモジュールは、種々の動作を実行するようプロセッサ710を制御しうる、または制御するよう構成されうる。他のシステムメモリ715は、同様に使用可能であってよい。メモリ715は、異なるパフォーマンス特性を有する、異なる複数のタイプのメモリを備えうる。プロセッサ710は、任意の汎用プロセッサと、プロセッサ710を制御するよう構成された、ストレージデバイス730内に格納されたモジュール1 732、モジュール2 734及びモジュール3 736等のハードウェアモジュールまたはソフトウェアモジュールの他に、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを備えうる。プロセッサ710は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含む、完全内蔵型のコンピューティングシステムであってよい。マルチコアプロセッサは、対称型でもよいし非対称型でもよい。
【0066】
コンピューティングデバイス700とのユーザ・インタラクションを可能にするために、入力デバイス745は、通話用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンサ式スクリーン、キーボード、マウス、モーション入力、スピーチ等の、任意の数の入力メカニズムを表しうる。出力デバイス735も、当業者に既知の一つ以上の数の出力メカニズムでありうる。場合によっては、マルチモーダル・システムは、コンピューティングデバイス700と通信するためにユーザが複数のタイプの入力を提供することを可能にしうる。通信インタフェース740は、概して、ユーザ入力及びシステム出力を支配及び管理しうる。いかなる特定のハードウェア構成の動作に対する制限はなく、それ故に、本明細書における基本的な特徴は、改善されたハードウェアまたはファームウェア構成に、その開発につれて容易に置き換えられうる。
【0067】
ストレージデバイス730は、不揮発性メモリであり、ハードディスク、または、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)725、読み取り専用メモリ(ROM)720、及びそれらのハイブリッド等の、コンピュータがアクセスできるデータを格納可能な他のタイプのコンピュータ読み取り可能媒体でありうる。
【0068】
ストレージデバイス730は、プロセッサ710の制御用のソフトウェアモジュール732,734,736を含みうる。他のハードウェアまたはソフトウェアモジュールが考慮される。ストレージデバイス730は、システムバス705に接続されうる。一態様において、特定の機能を実行するハードウェアモジュールは、機能を実行するためにプロセッサ710、バス705、ディスプレイ735等の必要なハードウェアコンポーネントと関連する、コンピュータ読み取り可能媒体に格納されたソフトウェアコンポーネントを含みうる。
【0069】
図7Bは、説明された方法の実行と、グラフィカルユーザインタフェース(GUI)の生成及び表示とに使用可能なチップセット・アーキテクチャを有するコンピュータシステム750を示す。コンピュータシステム750は、開示した技術の実施に使用可能なコンピュータハードウェア、ソフトウェア及びファームウェアの一例である。システム750は、特定される計算を実行するように構成されたソフトウェア、ファームウェア及びハードウェアを達成する能力を有する、任意の数の物理的及び/または論理的に区別されるリソースを代表する、プロセッサ755を備えうる。プロセッサ755は、プロセッサ755からの入力及びプロセッサ755への出力を制御可能なチップセット760と通信しうる。本例では、チップセット760は、ディスプレイ等の出力デバイス765へ情報を出力し、例えば磁気媒体、固体媒体を含みうるストレージデバイス770に対する情報の読み取り及び書き込みを行いうる。チップセット760は更に、RAM775からのデータの読み取り、及びRAM775へのデータの書き込みを行いうる。種々のユーザインタフェース・コンポーネント785とインタフェースするブリッジ780は、チップセット760とのインタフェースのために設けられうる。このようなユーザインタフェース・コンポーネント785は、キーボード、マイクロフォン、タッチ検出及び処理回路、マウスのようなポインティングデバイス等を含みうる。一般に、システム750への入力は、マシーン生成またはヒューマン生成の種々のソースのいずれかからもたらされうる。
【0070】
チップセット760は更に、異なる物理インタフェースを有しうる一つ以上の通信インタフェース790とインタフェースしうる。このような通信インタフェースは、有線及び無線のローカルエリアネットワーク用、広帯域無線通信ネットワーク用、及びパーソナルエリアネットワーク用のインタフェースを含みうる。本明細書で開示されたGUIを生成、表示及び使用するための本方法のいくつかのアプリケーションは、物理インタフェースを介して順序付けられたデータセットを受信することを含みうるか、ストレージ770または775に格納されたデータをプロセッサ755が解析することでマシーン自体によって生成されうる。更に、マシーンは、ユーザインタフェース・コンポーネント785を介してユーザからの入力を受け取って、プロセッサ755を用いてそれらの入力を解釈することでブラウジング機能等の適切な機能を実行しうる。
【0071】
例示的なシステム700及び750が、より優れた処理能力を提供するために、二つ以上のプロセッサ710を有してもよいし、ネットワークで共に結ばれたコンピューティングデバイスのグループまたはクラスタの一部であってもよいことが理解されうる。
【0072】
説明の簡単化のため、場合によっては、本技術は、デバイス、デバイスコンポーネント、ソフトウェアまたはハードウェア及びソフトウェアの組み合わせによって具体化される方法におけるステップまたはルーティンを含む、個別の機能ブロックを含むものとして示されうる。
【0073】
いくつかの実施形態では、コンピュータ読み取り可能ストレージデバイス、媒体及びメモリは、ケーブル、またはビットストリーム等を含む無線信号を含みうる。しかし、言及される場合、非一時的なコンピュータ読み取り可能ストレージ媒体は、エネルギー、キャリア信号、電磁波、及び信号それ自体を、明示的に除外する。
【0074】
上述の例に従った方法は、コンピュータ読み取り可能媒体に格納された、またはさもなければコンピュータ読み取り可能媒体から利用可能な、コンピュータで実行可能な命令を使用して実施されうる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、専用処理デバイス、命令及びデータに、特定の機能または機能のグループを実行させるか、さもなければ実行するよう設定する、命令及びデータを含みうる。使用されるコンピュータリソースの一部は、ネットワークを介してアクセス可能であってもよい。コンピュータで実行可能な命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマットの命令、ファームウェア、またはソースコードであってよい。命令、使用される情報、及び/または説明された例に従った方法の実行中に作成された情報を格納するために使用されうるコンピュータ読み取り可能媒体の例には、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリが設けられたUSBデバイス、ネットワークで結ばれたストレージデバイス等が含まれる。
【0075】
これらの開示に従った方法を実施するデバイスは、ハードウェア、ファームウェア及び/またはソフトウェアを備えうるとともに、種々のフォームファクタのいずれかを取りうる。そのようなフォームファクタの典型例には、ラップトップ、スマートフォン、スモールフォームファクタ・パーソナルコンピュータ、パーソナル・デジタル・アシスタント等が含まれる。本明細書で説明された機能は、周辺機器またはアドイン・カードにおいても具体化されうる。そのような機能は、更なる例として、単一のデバイスで達成する異なるチップ間または異なるプロセス間の回路ボードでも実施されうる。
【0076】
命令、そのような命令を搬送するメディア、それらを実行するコンピューティングリソース、及びそのようなコンピューティングリソースをサポートする他の構成は、これらの開示において説明された機能を提供する手段である。
【0077】
種々の例及び他の情報が、添付の請求項の範囲内の態様を説明するために使用されたが、当業者であれば多種多様な実施を導くためにこれらの例を使用できるため、そのような例における具体的な特徴または構成に基づいて請求項が限定されてはならない。更には、構造的な特徴及び/または方法のステップの例に特有の表現で主題が説明されているが、添付の請求項に規定された手段は、それらの説明された特徴または動作に必ずしも限定されないことが理解される。例えば、そのような機能は、別々に分散されてもよいし、本明細書で特定したコンポーネントと異なるコンポーネントで実行されてもよい。むしろ、上述の特徴及びステップは、添付の請求項の範囲内のシステム及び方法のコンポーネントの例として説明されている。