本開示の様々な実施形態が以下に詳細に議論される。特定の実装例が議論されるが、これは説明の目的でのみなされていることを理解すべきである。当業者は、本開示の精神及び範囲から離れることなく、他の構成要素及び構成が用いられてもよいことを理解するだろう。
ここに開示された技術は、技術における、メッセージングサービス内でコンテンツ管理機能を提供することについての要求を扱っている。一般的には、オンラインのメッセージングサービス及びコンテンツ管理サービスは、別のサービス提供者によって別のサービスとして提供されている。これらの別のサービスは、別の物理プラットフォーム上において提供されているかもしれず、それぞれはサービス自身の手順、基盤、アクセスゲートウェイ、などを有している。結果として、コンテンツ管理サービスによって可能とされている幅広い機能をメッセージングサービス内に提供する試みは、コンピュータ技術、特にインターネットに根差した膨大な技術的障害に直面してきた。例えば、いくつかのメッセージングサービスは、メッセージ及びメッセージへのアクセスがメッセージングプラットフォームによって管理されているために、メッセージの配信及び/又はメッセージが受信者に見られたかどうかを追跡することができる。しかし、このメッセージングサービスは、そのコンテンツへのアクセスはそのメッセージングプラットフォームによって管理されていないために、メッセージによって配信された底に潜むコンテンツ(例えば添付されたコンテンツ)が見られたかどうか、いつ見られたのか、又は誰がそのコンテンツを見たのかを、追跡することができない。
この技術的障害は、メッセージングサービスが更なるコンテンツ管理機能を提供することも制限してきた。コンテンツ管理機能をメッセージングサービスに統合しようとするいくつかの最初の試みは、ユーザがコンテンツ管理システムにアクセスし、コンテンツ管理システム上に保存されたコンテンツ項目へリンクを添付することを可能にする、メッセージングクライアントのインターフェースを提供することを含む。ここに開示された技術は、これらの技術的障害の多くを乗り越え、及び共有オプション及び共有状態情報のようなコンテンツ管理機能のメッセージングサービスへの更なる統合を可能にする。
いくつかの実施形態では、ここに開示された技術は、他の中でも、コンテンツ項目の同期能力及び協力機能を持つコンテンツ管理システムという文脈で展開される。例示的なシステム構成100が図1に示されており、この図はクライアント機器150と相互作用するコンテンツ管理システム110を含む。
アカウント
コンテンツ管理システム110は、アカウントに関連付けてコンテンツ項目を保存することも、コンテンツ項目の取得、変更、ブラウズ及び/又は共有のような様々なコンテンツ項目管理タスクを行うこともできる。さらには、コンテンツ管理システム110は、アカウントが複数のクライアント機器からコンテンツ項目にアクセスすることを可能にする。
コンテンツ管理システム110は複数のアカウントをサポートする。エンティティ(ユーザ、ユーザグループ、会社など)はコンテンツ管理システムでアカウントを作ることができ、アカウントの詳細はアカウントデータベース145に保存されることができる。アカウントデータベース140は登録されたエンティティのプロフィール情報を保存できる。いくつかの例では、登録されたエンティティのプロフィール情報は、ユーザ名及び/又はeメールアドレスを含むことができる。アカウントデータベース140は、アカウントの種類(例えば無料又は有料アカウントの様々な層)、割り当てられた記憶領域、使われている記憶領域、機器に存在しているコンテンツ管理クライアントアプリケーション152を持つクライアント機器150、セキュリティ設定、個人の構成設定などのようなアカウント管理情報を含むことができる。
アカウントデータベース140はエンティティと関連付けられたアカウント群を保存することができる。グループは、グループポリシ及び/又はアクセス管理リストに基づくパーミッションを有することができ、及びグループのメンバーはそのパーミッションを承継することができる。例えば、販売グループが一組のコンテンツ項目にアクセスでき、一方で技術グループは別の組のコンテンツ項目にアクセスすることができる。管理者グループはグループの変更、ユーザアカウントの変更などができる。
コンテンツ項目記憶装置
コンテンツ管理システム110の特徴はコンテンツ項目の記憶装置であり、コンテンツ項目はコンテンツ記憶装置142に保存されることができる。コンテンツ項目は、文書、協働コンテンツ項目、テキストファイル、音声ファイル、画像ファイル、映像ファイル、ウェブページ、実行ファイル、バイナリファイルなどのような任意のデジタルデータでありうる。コンテンツ項目は、コレクションも含むことができ、又は、フォルダ、Zipファイル、プレイリスト、アルバムなどのようなコンテンツ項目を異なる挙動で共にグループ化する他のメカニズムも含むことができる。コレクションは、フォルダ、又は関連する若しくは共通の属性でグループ化された複数のコンテンツ項目を指すことができる。いくつかの実施形態では、コンテンツ記憶装置142は特定の機能を扱うために他の種類の記憶装置又はデータベースと組み合わせられることができる。コンテンツ記憶装置142はコンテンツ項目を保存でき、一方でコンテンツ項目に関するメタデータはメタデータデータベース146に保存されることができる。同様に、コンテンツ項目がコンテンツ記憶装置142内のどこに保存されているかに関するデータはコンテンツディレクトリ144に保存されることができる。加えて、変更、アクセスなどに関するデータはサーバファイルジャーナル148に保存されることができる。コンテンツ記憶装置142、コンテンツディレクトリ144、サーバファイルジャーナル148、及びメタデータデータベース146のような様々な記憶装置/データベースのそれぞれは、1つより多いこのような記憶装置又はデータベースで構成されることができ、及び、多くの機器及び場所に分散されることができる。他の構成もまた可能である。例えば、コンテンツ記憶装置142、コンテンツディレクトリ144、サーバファイルジャーナル148、及び/又はメタデータデータベース146からのデータは、一つ又は複数のコンテンツ記憶装置若しくはデータベースに組み込まれてもよいし、又は追加のコンテンツ記憶装置若しくはデータベースへとさらに区分けされてもよい。このように、コンテンツ管理システム110は、図1に示されているよりも多い又は少ない記憶装置及び/又はデータベースを含んでいてもよい。
いくつかの実施形態において、コンテンツ記憶装置142は少なくとも1つのコンテンツ管理サービス116と関連付けられており、これは、記憶のためのコンテンツ項目の受信、記憶のためのコンテンツ項目の用意、コンテンツ項目用の記憶場所の選択、記憶装置からのコンテンツ項目の検索などを含むが、これらには限定されない、コンテンツ項目の保存を管理するためのソフトウェア又は他のプロセッサが実行可能な命令を含む。いくつかの実施形態において、コンテンツ管理サービス116は、コンテンツ記憶装置142における保存部のためにコンテンツ項目をより小さいデータブロックに分割することができる。コンテンツ項目を構成するデータブロックのそれぞれの位置は、コンテンツディレクトリ144に記録されることができる。コンテンツディレクトリ144は、コンテンツ記憶装置142内に保存されたコンテンツ項目のそれぞれについてのコンテンツ登録を含むことができる。コンテンツ登録は固有IDに関連付られることができ、これはコンテンツ項目を識別する。
いくつかの実施形態において、コンテンツディレクトリ144内のコンテンツ項目を識別する固有IDは、決定的ハッシュ関数から得られるものであることができる。コンテンツ項目の固有IDを得るこの方法は、決定的ハッシュ関数が一般的に同じコンテンツ項目のコピーのそれぞれについて同じ識別子を出力するだろうが、異なるコンテンツ項目については異なる識別子を出力するであろうために、コンテンツ項目の複製がそのように認識されることをほとんど常に保障することができる。この方法論を用いることで、コンテンツ管理サービス116はそれぞれのコンテンツ項目について固有IDを出力することができる。
コンテンツ管理サービス116はコンテンツ項目についてのコンテンツパスを指定し又は記録することもできる。コンテンツパスは、コンテンツ項目の名前及び/又はコンテンツ項目に関連付けられたフォルダの階層を含んでいてもよい。例えば、コンテンツパスは、クライアント機器上のローカルファイルシステム内でコンテンツ項目が保存されているフォルダ又はフォルダパスを含み得る。コンテンツ管理サービス116は、ツリー状ディレクトリ構造のような適切なフォルダ階層の中のコンテンツ項目を示すためにコンテンツパスを利用することができる。コンテンツ項目はコンテンツ記憶装置142にブロックとして保存され、ツリー状ディレクトリ構造の下には保存されないかもしれない一方で、そういったディレクトリ構造はユーザにとっては快適なナビゲーション構造である。コンテンツ管理サービス116は、ディレクトリ構造の「ルート」ノードがそれぞれのアカウントについての名前空間となることができるように、コンテンツ項目用のコンテンツパスを定義又は記録することができる。名前空間の中では、ディレクトリ構造はアカウントのユーザ及び/又はコンテンツ管理サービス116によって定義されることができる。コンテンツディレクトリ144はコンテンツ登録の一部としてコンテンツ項目のそれぞれについてのコンテンツパスを保存することができる。
いくつかの実施形態において、この名前空間は、ルートノード内に保存されているかのようにディレクトリ構造内に現れる追加の名前空間を含むことができる。これはアカウントが共有されたコレクションへのアクセスを有しているときに発生することができる。共有されたコレクションはコンテンツ管理システム110内のコレクション自身の名前空間を割り当てられている可能性がある。共有されたコレクションが実際にはそのコレクションについてのルートノードであっても、それらはユーザアカウントの名前空間の下位に配置され、そのユーザアカウントについてのフォルダ内のフォルダのように現れることができる。上で述べたように、このディレクトリ構造はユーザにとって快適なナビゲーション構造であることができるが、必ずしもコンテンツ記憶装置142内のコンテンツ項目の記憶場所と関係があるわけではない。
アカウントがコンテンツ項目を見るディレクトリ構造は、必ずしもコンテンツ管理システム110にある記憶場所と関係があるわけではない一方で、ディレクトリ構造は一般的にクライアント機器150によって使用されるファイルシステムに依存してクライアント機器150上の記憶場所と関係がある可能性がある。
上で述べたように、コンテンツディレクトリ144内のコンテンツ登録は、コンテンツ項目を構成するデータブロックのそれぞれの位置もまた含むことができる。より具体的には、そのコンテンツ登録は、そのコンテンツ項目を構成するデータブロックのコンテンツ記憶装置142内の位置を識別するコンテンツポインタを含むことができる。
コンテンツパス及びコンテンツポインタに加え、コンテンツディレクトリ144内のコンテンツ登録もまた、コンテンツ項目に対するアクセスを有するユーザアカウントを識別するユーザアカウント識別子及び/又はこのコンテンツ項目へのアクセスを持つグループを識別するグループ識別子も含むことができる。いくつかの実施形態において、複数のユーザアカウント識別子は、そのコンテンツ項目が複数のユーザアカウントによる共有アクセスを有することを示す単一のコンテンツ登録と関連付けられることができる。いくつかの実施形態において、単一のコンテンツ登録と関連付けられたユーザアカウント識別子は、関連付けられたコンテンツ項目についての異なるパーミッションを特定することができる。いくつかの実施形態において、コンテンツディレクトリ144はユーザアカウントに関連付けられたコンテンツ項目の階層構造を記述することができ、ここでその階層構造はユーザアカウントに特有のものである。
コンテンツ管理サービス116は、複製コンテンツ項目、又はコンテンツ項目若しくはコンテンツ項目のバージョンを構成する複製ブロックの識別によって、要求される記憶領域の量を削減することができる。複数のコピーを保存する代わりに、コンテンツ記憶装置142はコンテンツ項目又はコンテンツ項目のブロックの単一のコピーを保存することができ、コンテンツディレクトリ144は、ポインタ、又は複製をこの単一のコピーへとリンクする他の機構を含むことができる。
コンテンツ管理サービス116は、コンテンツ項目、コンテンツ項目の形式、フォルダ、ファイルパス、及び/又は、コンテンツ項目と様々なアカウント、コレクション、若しくはグループとの関連性を記すメタデータも、コンテンツ項目の固有IDに関連付けて、メタデータデータベース146に保存することができる。
コンテンツ管理サービス116は、サーバファイルジャーナル148に、変更、アクセスなどに関するデータのログを保存することもできる。サーバファイルジャーナル148は、コンテンツ項目の固有ID並びに変更若しくはアクセス動作の記述を、タイムスタンプ又はバージョン番号及び任意の他の関連するデータとともに含むことができる。サーバファイルジャーナル148は、この変更又はコンテンツ項目のアクセスに影響を受けたブロックへのポインタも含むことができる。コンテンツ管理サービスは、コンテンツ項目の変更を追跡するコンテンツ項目バージョン制御システム、コンテンツ項目の異なるバージョン(分岐したバージョンツリーを含む)、及びサーバファイルジャーナル148から取得されることができる変更履歴を用いることで、操作を取り消す能力を提供することができる。その変更歴は、元のコンテンツ項目バージョンに適用されたときに変更後のコンテンツ項目バージョンを生成した、変更のセットを含むことができる。
コンテンツ項目の同期
コンテンツ管理システム110の他の特徴は、少なくとも1つのクライアント機器150とのコンテンツ項目の同期である。クライアント機器は異なる形態を取ることができ、また異なる能力を持つことができる。例えば、クライアント機器170は、この機器上で実行される複数のアプリケーションによってアクセス可能なローカルファイルシステムを持つコンピューティング機器である。クライアント機器172は、コンテンツ項目が、特定のアプリケーションによって、又は特定のアプリケーションによるパーミッションによってのみアクセス可能であるコンピューティング機器であり、及び、コンテンツ項目はアプリケーションに特有の領域及び/又はリモートネットワーク内に保存されることが出来る。クライアント機器174は、ウェブブラウザを介してコンテンツ管理システム110へアクセスし、及びウェブインターフェースを介してコンテンツ項目へアクセスする、任意のクライアント機器である。例示的なクライアント機器170、172及び174は、ラップトップ、携帯機器又はウェブブラウザのようなフォームファクタで描写されている一方で、これらの説明はクライアント機器をこのようなフォームファクタに制限するものではないことを理解すべきである。例えば、クライアント機器172のような携帯機器は、クライアント機器172上で実行される複数のアプリケーションによってアクセス可能なローカルファイルシステムを持っていてもよく、又はウェブブラウザを介してコンテンツ管理システム110にアクセスしてもよい。このように、クライアント機器150の能力について考える際、そのフォームファクタは限定的に考えられるべきではない。クライアント機器150に関して本開示で説明される一つ又は複数の機能は、その機器の特有の能力に基づいて、すべてのクライアント機器が利用可能かもしれず、又は利用不可能かもしれない。ファイルへのアクセス様式はそのような能力の一つである。
多くの実施形態において、クライアント機器はコンテンツ管理システム110のアカウントと関連付けられているが、いくつかの実施形態においてクライアント機器は共有リンクを用いてコンテンツにアクセスすることができ、アカウントを必要としない。
上で記したように、いくつかのクライアント機器はウェブブラウザを用いてコンテンツ管理システム110にアクセスできる。しかしながら、クライアント機器は、クライアント機器150上に保存され、そこで稼働しているクライアントアプリケーション152を用いてコンテンツ管理システムにアクセスすることもできる。クライアントアプリケーション152はコンテンツ項目同期サービス156を含むことができる。
コンテンツ項目同期サービス156は、クライアント機器150及びコンテンツ管理システム110間でコンテンツ項目の変更を同期できるよう、コンテンツ管理サービス116と通信することが出来る。
クライアント機器150は、コンテンツ同期サービス156を介して、コンテンツをコンテンツ管理システム110と同期することが出来る。この同期はプラットフォームにとらわれずにあることができる。つまり、コンテンツは、異なる種類、能力、オペレーティングシステムなどを持つ複数のクライアント機器にまたがって同期されることができる。コンテンツ同期サービス156はクライアント機器150のファイルシステムの指定された位置にあるコンテンツ項目のあらゆる変更(新しい、消去された、修正された、コピーされた、又は移動されたコンテンツ項目)を同期できる。
コンテンツ項目はクライアント機器150からコンテンツ管理システム110へと同期されることができ、並びに逆もまた同様である。クライアント機器150がコンテンツ管理システム110とのコンテンツ項目の同期を始める実施形態では、ユーザはクライアント機器150のファイルシステムから直接コンテンツ項目を操作することができ、一方でファイルシステム拡張156(ローカルファイルシステム又はオペレーティングシステムカーネルとさえも統合されることができる)は、クライアント機器150のファイルシステムの指定された場所にあるコンテンツ項目と関連のあるリード、ライト、コピー、ムーブ、デリートコマンドを捕らえることができる。
ファイルシステム拡張156がライト、ムーブ、コピー、又はデリートコマンドを指示するとき、ファイルシステム拡張156はコンテンツ項目同期サービス156に通知をすることができ、これはコンテンツ管理システムサービス116へと変更を同期することができる。いくつかの実施形態では、コンテンツ項目同期サービス156は、コンテンツ項目をブロックに分割する、固有の識別子を生成するためにコンテンツ項目をハッシュするなどのような、上で述べられている機能を含むコンテンツ管理システムサービス116のいくつかの機能を行うことができる。コンテンツ同期サービス156はクライアント記憶装置索引164にコンテンツの索引をつけることができ、及びその結果を記憶装置索引164に保存することができる。索引をつけることはコンテンツ項目それぞれについて固有の識別子を生成することを含むことができる。いくつかの実施形態では、コンテンツ同期サービス156はハッシュ機能を通るようにコンテンツ項目のデータ(例えばファイルネーム及び/又は他のメタデータを除く)を入れることによってこの固有の識別子を生成し、上で述べたように、コンテンツ管理システムはコンテンツ管理システム110上のコンテンツに識別子を提供するために、同様のプロセスを使用することができる。コンテンツ同期サービス156は、コンテンツ管理システム110上のユーザアカウントと関連付けられたコンテンツとの、クライアント記憶装置内のコンテンツの少なくとも一部分の同期を容易にするために、記憶装置索引164を使用することができる。例えば、コンテンツ同期サービス156はコンテンツ管理システム110と記憶装置索引164を比較することができ、並びにクライアント記憶装置上のコンテンツとコンテンツ管理システム110上のユーザアカウントに関連付けられたコンテンツとの間の違いを検知することができる。コンテンツ同期サービス156は、それから、クライアント記憶装置上のコンテンツを適切にアップロード、ダウンロード、修正及び/又は削除することで、差異の調整を試みることができる。コンテンツ管理サービス116は、コンテンツ項目の変更された又は新しいブロックを保存することができ、並びにサーバファイルジャーナル148、メタデータデータベース146、コンテンツディレクトリ144、コンテンツ記憶装置142、アカウントデータベース140などを適切に更新することができる。
コンテンツ管理システム110からクライアント機器150へとコンテンツを同期するとき、サーバファイルジャーナル148に記録されたコンテンツ項目の修正、付加、削除及び/又は移動は、通知サービス117を用いてクライアント機器150へと通知の伝達を引き起こすことができる。クライアント機器150がサーバファイルジャーナル148の変更の通知を受信するとき、クライアント機器150は、変更のタイムスタンプが最後の同期からの間に生じたかどうかを判断するため、又は特定の変更が同期されていたかどうかを判断するために記憶装置索引164を確認することができる。クライアント機器150がそれがコンテンツ管理システム110との同期がなされていないと判断したとき、コンテンツ項目同期サービス156はその変更を含むコンテンツ項目ブロックを要求することができ、並びにクライアント機器150は変更されたコンテンツ項目の自身のローカルコピーを更新することができる。いくつかの実施形態では、通知サービス117は、通知のためのより多くの状況を得るため、通知が別の通知と一括されうるかどうかを判断するため、又は通知を補うなどのために、サーバファイルジャーナル148のようなコンテンツ管理システム110の他のサービス又はデータベースに尋ねることができる。
クライアント機器150が利用できるネットワーク接続を持たないときもあるかもしれない。このシナリオでは、コンテンツ項目同期サービス156は、コンテンツ項目変更についてのリンクされたコレクションをモニターすることができ、及びネットワーク接続が利用可能であるときのコンテンツ管理システム110への後の同期のためにそれらの変更を待ち行列に入れることができる。同様に、ユーザは、コンテンツ管理システム110との同期の開始、停止、一時停止、又は再開を手動で行うことができる。
コンテンツ項目同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントと関連付けられたすべてのコンテンツを同期することができる。あるいは、コンテンツ項目同期サービス156は、コンテンツ管理システム110上の特定のユーザアカウントと関連付けられた総コンテンツの一部コンテンツを選択的に同期することができる。コンテンツの一部のみの選択的同期は、選択的同期を行わなければ全コンテンツを同期することで消費されてしまうであろうプロセッシング、メモリ、記憶装置、及びネットワークリソースを減らすことにより、クライアント機器150の領域を維持することができ、並びにクライアント機器150及びコンテンツ管理システム110のパフォーマンスを向上させることができる。
いくつかの実施形態では、コンテンツ項目同期サービス156は、特定のユーザアカウントに関連付けられたコンテンツの一部を選択的に保存し、並びにコンテンツのその余りの部分についてクライアント記憶装置内にプレースホルダコンテンツ項目を保存する。例えば、コンテンツ項目同期サービス156は、コンテンツ管理システム110上のそのそれぞれの完全なコンテンツ項目の、同じファイル名、パス、拡張子、及びメタデータを持つが、しかしその完全なコンテンツ項目のデータは欠如している、プレースホルダコンテンツ項目を保存することができる。このプレースホルダコンテンツ項目は数キロバイトか又はそれ未満のサイズである可能性があり、一方でそのそれぞれの完全なコンテンツ項目は実質的により大きいのかもしれない。クライアント機器150がそのコンテンツ項目にアクセスを試みた後、コンテンツ項目同期サービス156は、コンテンツ管理システム110からコンテンツ項目のデータを取得することができ、並びにその完全なコンテンツ項目をアクセスしているクライアント機器150に提供することができる。この手法はかなりの領域と帯域幅の節約を提供できるが、一方でコンテンツ管理システム110上のユーザコンテンツへのフルアクセスを依然として提供している。
協働機能
コンテンツ管理システム110の別の機能はユーザ間の協働を容易にすることである。協働機能はコンテンツ項目の共有、コンテンツ項目へのコメント、コンテンツ項目についての共同作業、インスタントメッセージング、プレゼンス及びコンテンツ項目に関する閲覧状態情報を提供することなどを含む。
共有
コンテンツ管理システム110は共有サービス128を介してコンテンツの共有を管理することができる。コンテンツ管理システム110のアカウントはコンテンツへのリンクを提供することでお互いにコンテンツを共有することができる。それから、共有サービス128は、コンテンツ管理システム110とのネットワーク通信を持つ任意のコンピューティング機器から、その共有されたコンテンツ項目へのアクセスを提供することができる。しかしながら、いくつかの実施例において、リンクはコンテンツ管理システム110によって実施されたアクセス制限と関連付けられることができる。共有サービス128は、コンテンツ項目にそれぞれのユーザアカウントがアクセスを持つように、共有されたコンテンツを少なくとも一つの追加ユーザアカウント(そのコンテンツ項目と関連付けられたオリジナルのユーザアカウントに加えて)と共有することをアカウントに可能にすることで、コンテンツ管理システム110内でのコンテンツの間接的な共有を容易にすることもできる。その追加ユーザアカウントは、コンテンツを受け入れることでそのコンテンツへのアクセスを獲得することができ、このコンテンツはそれからウェブインターフェースサービス124、又はクライアント機器150上の追加ユーザアカウントに関連付けられたディレクトリ構造を介してアクセス可能になるだろう。この共有はプラットフォームにとらわれない方式で実行されることができる。すなわち、そのコンテンツは、異なる種類、能力、オペレーティングシステムなどを持つ複数のクライアント機器150を跨いで共有されることができる。そのコンテンツはユーザアカウントの異なる型を跨いで共有されることもできる。
コンテンツ管理システム110内でコンテンツ項目を共有するため、共有サービス128は、そのコンテンツ項目と関連付けられたアクセス制御リストデータベース145内のコンテンツ登録へとユーザアカウント識別子を加えることができ、このようにして追加されたユーザアカウントにコンテンツ項目へのアクセスを許可している。共有サービス128は、そのコンテンツ項目へのユーザアカウントのアクセスを制限するために、コンテンツ登録からユーザアカウント識別子を削除することもできる。共有サービス128はコンテンツ項目識別子、コンテンツ項目へのアクセスを与えられたユーザアカウント識別子、並びにアクセス制御リストデータベース145内のアクセスレベルを記録することができる。
コンテンツ管理システム110外でコンテンツ項目を共有するため、共有サービス128は、ユニフォームリソースロケータ(URL)のようなカスタムネットワークアドレスを生成してもよく、それは任意のウェブブラウザにコンテンツ管理システム110内のコンテンツ項目又はコレクションに認証なしでアクセスさせることができる。これを達成するため、共有サービス128は生成されたURL内にコンテンツ識別データを含むことができ、それは後に要求されたコンテンツ項目を適切に識別し及び返すことに使われることができる。例えば、共有サービス128は、アカウント識別子と、コンテンツパス又はコンテンツ項目識別コードを、生成されたURL内に含むことができる。このURLを選択すると、そのURL内に含まれるコンテンツ識別データは、コンテンツ管理システム110へと送信されることができる。コンテンツ管理システム110は、それから、適切なコンテンツ項目を識別するため、並びにそのコンテンツ項目を返すために、その受信されたコンテンツ識別データを使うことができる。
URLの生成に加えて、共有サービス128は、アクセス制御リストデータベース145内にそのURLを記録することもできる。いくつかの実施形態では、コンテンツ項目と関連付けられたコンテンツ登録は、そのコンテンツ項目へのURLが作られているかどうかを示すURLフラグを含むことができる。例えば、そのURLフラグは、コンテンツ項目へのURLが作られていないことを示すために0又は偽に初期設定されるブール値になることができる。共有サービス128は、コンテンツ項目へのURLが作成された後にフラグの値を1又は真に変更することができる。
いくつかの実施形態では、共有サービス128はパーミッションのセットをコンテンツ項目のためのURLに関連付けることができる。例えば、もしユーザがURLを介してコンテンツ項目にアクセスしようと試みるのであれば、共有サービス128はコンテンツ項目のためのパーミッションの制限されたセットを提供することができる。制限されたパーミッションの例は、そのユーザがコンテンツ項目のダウンロード、コンテンツ項目の保存、コンテンツ項目の複製、コンテンツ項目の修正などをすることができないという制限を含む。いくつかの実施形態では、制限されたパーミッションは、特定のドメイン、例えば法人のネットワークドメインの内からの、又は特定のドメインと関連付けられたアカウント、例えば会社のアカウント(例えば@acme.com)と関連付けられたアカウントによってコンテンツ項目がアクセスされることを許可を出すことのみをするという制限を含む。
いくつかの実施形態では、共有サービス128は、生成されたURLを非アクティブにすることもできるし、又は別の方法でコンテンツ項目を共有解除することもできる。例えば、それぞれのコンテンツ登録は、コンテンツが依然として共有されているかどうかを示すアクティブ共有フラグも含むことができるし、並びに共有サービス128は、アクティブ共有フラグが1か真に設定されているのであれば、要求されたコンテンツ項目を返すことのみをしてもよい。このように、以前に共有されたコンテンツ項目へのアクセスは、アクティブ共有フラグの値を変更することによって制限されることができる。これは、ユーザが、コンテンツ項目の移動、生成されたURLの削除などをする必要無しに、共有されたコンテンツ項目へのアクセスを制限することを可能にし得る。同様に、共有サービス128は、アクティブ共有フラグの値を再び1又は真に変更することで、共有を再び有効にすることができる。ユーザはこのように、新しい共有機構、例えば新しいURLを生成する必要なしに、コンテンツ項目へのアクセスを容易に回復することができる。
いくつかの実施形態では、コンテンツ管理システム110はコンテンツ項目をアップロードするために、URLのような場所を指定することができる。例えば、最初のユーザアカウントは、共有サービス128からのアップロード場所を要求することができ、アップロード場所を第2のユーザアカウントに(又はいくつかの場合にはほかのユーザに)提供することができる。第2のユーザアカウント又は他のユーザは、アップロード場所を使っている最初のユーザアカウントにコンテンツ項目をアップロードすることができる。
共有されたコンテンツ項目との相互作用のモニタリング
いくつかの実施形態では、コンテンツ管理システム110は、共有されたコンテンツ項目とのユーザ相互作用についての情報を提供することができる。いくつかの実施形態では、コンテンツ管理システム110は、現在ユーザが共有されたコンテンツ項目を見ているということを報告することができる。例えば、クライアント協働サービス160は、通知サービス117に、任意の一つのクライアント機器が共有されたコンテンツ項目にアクセスした時に、共有されたコンテンツ項目へのアクセスを持っている他のクライアント機器へと通知を送ることを要求することができる。それから、通知サービス117は、共有されたコンテンツ項目へのその一つのクライアント機器によるアクセスに関して、すべてのクライアント機器に通知をすることができる。いくつかの実施形態では、その相互作用データは、ユーザがその一つのクライアント機器を所持している及び/又は操作しているというプレゼンスのプロキシとして働くこともできる。
いくつかの実施形態では、コンテンツ管理システム110は、共有されたコンテンツ項目とのユーザ相互作用の履歴を報告することができる。協働サービス126は、ユーザアカウントがそのコンテンツ項目を保存しているか、ユーザアカウントがまだコンテンツ項目へのアクセスを持っていないかどうかなどを判断するため、メタデータデータベース146及びサーバファイルジャーナル148のようなデータソースに尋ねることができ、並びに、どのユーザアカウントがその共有されたコンテンツ項目と相互作用した(又はしていない)のかを判断するために、通知サービス117を用いてこの情報を他のユーザアカウントへと拡散することができる。
いくつかの実施形態では、協働サービス126は、仮にコンテンツ項目が元々はコメント機能に対応していないのだとしても、コンテンツへのコメントを容易にすることができる。そのようなコメントはメタデータデータベース146内に保存されることができる。
いくつかの実施形態では、協働サービス126は、ユーザのための通知を始め、及び送信することができる。例えば、最初のユーザはコメントで第2のユーザの名前を挙げることができるし、並びに協働サービス126は第2のユーザへ、第2のユーザがコメントで名前を挙げられていたという通知を送ることができる。様々な他のコンテンツ項目イベントは通知を引き起こすことができ、そのイベントにはコンテンツ項目を削除すること、コンテンツ項目を共有することなどを含む。
概して、協働サービス126は、ユーザがインスタントメッセージ、ボイスコール、eメールなどを送る及び受け取るところであるメッセージングプラットフォームを提供できる。
プレゼンス及び閲覧状態
いくつかの実施形態では、コンテンツ管理システムは、コンテンツ項目が共有されているユーザがそのコンテンツ項目とどれだけ相互作用をしているのか、又は相互作用したのかについての情報を提供できる。いくつかの実施形態では、コンテンツ管理システム110は、コンテンツ項目が共有されているユーザが現在そのコンテンツ項目を見ていることを報告できる。例えば、クライアント協働サービス160は、クライアント機器150がコンテンツ項目にアクセスしている時に通知サービス117に通知をすることができる。それから、通知サービス117は、コンテンツ項目に関して、クライアント機器150のユーザのプレゼンスを、同じコンテンツ項目へのアクセスを持っている他のユーザのすべてのクライアント機器に通知することができる。
いくつかの実施形態では、コンテンツ管理システム110は、共有されたコンテンツ項目とのユーザ相互作用の履歴を報告することができる。協働サービス126は、ユーザがそのコンテンツ項目を保存しているか、ユーザがまだコンテンツ項目を見ていないかどうかなどを判断するため、メタデータデータベース146及びサーバファイルジャーナル148のようなデータソースに尋ねることができ、並びに、誰がコンテンツ項目を現在、又は既に見たのか、若しくは修正したのかを知ることができるように、通知サービス117を用いてこのステータス情報を他のユーザへと拡散することができる。
協働サービス126は、仮にコンテンツ項目が元々はコメント機能に対応していないのだとしても、コンテンツと関連付けられたコメントを容易にすることができる。そのようなコメントはメタデータデータベース146内に保存されることができる。いくつかの実施形態では、そのようなコメントの記憶は、閲覧状態情報からは分けて保存されることができる。
協働サービス126は、ユーザのための通知を始め、及び送信することができる。例えば、ユーザはコメントで別のユーザの名前を挙げることができるし、並びに協働サービス126はそのユーザへ、そのユーザがコメントで名前を挙げられていたという通知を送ることができる。様々な他のコンテンツ項目イベントは通知を引き起こすことができ、そのイベントにはコンテンツ項目を削除すること、コンテンツ項目を共有することなどを含む。
協働サービス126は、ユーザがインスタントメッセージ、ボイスコール、eメールなどを送る及び受け取るところであるメッセージングプラットフォームを提供できる。
コンテンツ項目の協働
協働サービス126は、ユーザが共有されたコンテンツ項目の変更を同時に行うことができ、共有されたコンテンツ項目に関するコメントを提供でき、共有されたコンテンツ項目と関連付けられたタスクを管理するなどできるところである、インタラクティブなコンテンツ項目協働プラットフォームを提供することもできる。これらの共有されたコンテンツ項目は、ユーザアカウントがコンテンツ項目エディタを用いることで作成及び編集が可能なファイルであることができ、並びに協働を可能にする要素を含むことができる。これらの協働要素は、協働識別子、一つ以上の著者及び/又は編集者識別子、協働テキスト、協働属性、相互作用情報、コメント、共有しているユーザなどを含んでいてもよい。その協働要素は、共有されたコンテンツ項目の調査及び検索を可能にするためにデータベース登録内に保存されてもよい。複数のユーザアカウントが、同時又は別の時間に、共有されたコンテンツ項目にアクセスし、見て、編集し、及び別の方法で協働してもよい。いくつかの実施形態において、これは二人のユーザが共有されたコンテンツ項目の同じ複製上で同時に作業をすることを可能にするウェブインターフェースを通して管理されることができる。
協働クライアントインターフェース
いくつかの実施形態において、クライアント協働サービス160は、クライアント機器150上に示されているコンテンツ項目に関わる情報を表示するという目的でネイティブアプリケーションインターフェースを提供することができる。いくつかの実施形態において、ネイティブアプリケーションに関連付けられたあるコンテンツ項目は、上で述べられた協働データを示すことができない可能性がある。いくつかの実施形態において、クライアント協働サービス160は、ユーザがコンテンツ項目を開いたことを示すことができ、並びに、協働データのような、コンテンツ項目のための追加の情報のオーバレイを提供できる。例えば、この追加の情報は、そのコンテンツ項目のためのコメント、コンテンツ項目のステータス、他のユーザによるコンテンツ項目との相互作用などを含むことができる。そのようなオーバレイは、現在別のユーザがコンテンツ項目を編集しているので変更が消えてしまう可能性があるということを、ユーザに警告することができる。
いくつかの実施形態において、上で議論されていた一つ以上のサービス又は記憶装置/データベースは、公開の又は私的アプリケーションプログラムインターフェースを用いることでアクセスされることができる。
あるソフトウェアアプリケーションは、ユーザアカウントの代わりにAPIを経由してコンテンツ記憶装置142にアクセスできる。例えば、コンテンツを読む、書く、作る、消す、共有する、又は他の方法で操作するためにユーザアカウントが認証クレデンシャルを提供するとき、クライアント機器150上で実行しているアプリケーションのようなソフトウェアパッケージは、プログラムに従ってAPIにコンテンツ管理システム110を直接コールさせることができる。
ユーザは、ウェブインターフェースサービス124によって生成及び提供されるウェブインターフェースを経由して、コンテンツを見る又は操作するためにユーザアカウントを利用することができる。例えば、そのユーザは、コンテンツ管理システム110によって提供されるユーザアカウントと関連付けられたウェブアドレスへと、ウェブブラウザをナビゲートすることができる。コンテンツ項目の新しいバージョンのアップロードのような、ウェブインターフェース124を通してなされるコンテンツ記憶装置160内のコンテンツの変更又は更新は、そのユーザアカウントと関連付けられた他のクライアント機器へと逆向きに伝えられることができる。例えば、それぞれがそれ自身のクライアントソフトウェアを持つ複数のクライアント機器は単一のアカウントと関連付けられることができ、及び、そのアカウントのコンテンツ項目は複数のクライアント機器それぞれの間で同期されることができる。
クライアント機器150はユーザアカウントに代わってコンテンツ管理システム110に接続することができる。そのユーザアカウントのユーザはクライアント機器150と直接相互作用を持つことができ、それは例えば、クライアント機器150がデスクトップ又はラップトップコンピュータ、電話、テレビ、モノのインターネット機器などである時である。代わりに又は加えて、クライアント機器150は、ユーザがクライアント機器150への物理的なアクセスを持つことなしにユーザアカウントに代わって動作することができ、それは例えばクライアント機器150がサーバであるときである。
クライアント機器150のいくつかの機能は、クライアント機器150上にインストールされたアプリケーションによって可能となる。いくつかの実施形態において、そのアプリケーションはコンテンツ管理システム特有の構成要素を含むことができる。例えば、そのコンテンツ管理システム特有の構成要素は、スタンドアロンのアプリケーション152、一つ以上のアプリケーションプラグイン、及び/又はブラウザ拡張であることができる。しかしながら、そのユーザは、ウェブブラウザ、ワードプロセッサ、スプレッドシートプログラム、プレゼンテーションプログラム、ソースコード制御ツールなどのような、クライアント機器150に属し及びコンテンツ管理システム110と通信可能なサードパーティアプリケーションを経由して、コンテンツ管理システム110と相互作用を持つこともできる。様々な実装例において、クライアント側のアプリケーション152は、ユーザがコンテンツ管理システム110と相互作用を持つためのユーザインターフェース(UI)を提示することができる。例えば、ユーザは、ファイルシステムと統合されたファイルシステム拡張153を介して、又はウェブブラウザアプリケーションを用いて表示されるウェブページを介して、コンテンツ管理システム110と相互作用を持つことができる。
いくつかの実施形態において、クライアントアプリケーション152はコンテンツ管理システム110の一つより多くのアカウントを管理及び同期することができる。いくつかの実施形態において、クライアントアプリケーション152は多数のアカウントにログインし続けることができ、及び多数のアカウントのために通常のサービスを提供することができる。いくつかの実施形態において、それぞれのアカウントはファイルシステム内のフォルダとして現れることができ、及びそのフォルダ内部のすべてのコンテンツ項目はコンテンツ管理システム110と同期されることができる。いくつかの実施形態において、クライアントアプリケーション152は、複数のアカウントのうち一つが主アカウント又はデフォルトアカウントになるかを選択するセレクターを含むことができる。
本開示は特定の構成要素を持つコンテンツ管理システム110を提示しているが、一方でシステム100の構築構成は単に可能な構成の一つであり、及びより多い又は少ない構成要素を持つ他の構成が可能であるということは当業者によって理解されるであろう。さらには、サービスはより多くの又はより少ない機能性を持つことができ、それは別のサービスと関連付けられているものとして記されている機能性でさえも含む。そのうえ、本開示で特定の実施形態に関して記されている機能は、別の実施形態に関して記されている機能と結合されることができる。
システム100は特有の構成要素とともに示されているが、一方でシステム100のアーキテクチャ構成は単に可能な構成の一つであり、並びにさらに多い又は少ない構成要素での他の構成が可能であるということは当業者によって理解されるであろう。
図2は、いくつかの実施形態に従う、クライアント機器上でのメッセージングクライアントのグラフィカルユーザインターフェース200の一例を示す。説明の目的で、図2のグラフィカルユーザインターフェース200はコンテンツ管理システム110及びeメールサービスと相互作用するよう構成されたウェブブラウザである。しかしながら、他の実施形態において、グラフィカルユーザインターフェースは、他の一つ以上のメッセージングサービスと相互作用するよう構成された他のメッセージングアプリケーションのために設計されてもよい。これらのメッセージングアプリケーションは、例えばeメールアプリケーション、インスタントメッセージ(IM)アプリケーション、ソーシャルネットワーキングアプリケーション、他クライアント側のサービスアプリケーション、又は他の種類のメッセージングサービスにアクセスするよう構成された他のウェブブラウザインターフェースを含んでもよい。
グラフィカルユーザインターフェース200はクライアント機器上に表示されるかもしれず、ユーザがメッセージを見、メッセージを作成し並びにメッセージのステータスを確認することを可能にするかもしれない。例えば、ユーザは、メッセージングサービスを介して受信者に送信される新しいメッセージ(例えばeメール)を作るために、グラフィカルユーザインターフェース要素202を選択してもよい。ユーザからの入力、又はグラフィカルユーザインタフェース要素202を介したユーザからの新しいメッセージを作成するという他の指示に応じて、そのクライアント機器のメッセージングクライアントは、図3に示されるグラフィカルユーザインターフェースのようなメッセージ作成用のグラフィカルユーザインターフェースを生成及び表示してもよい。
図3は、いくつかの実施形態に従う、メッセージを作成するためのグラフィカルユーザインターフェース300の一例を示す。グラフィカルユーザインターフェース300は、他の中でも、メッセージの受信者を加え、メッセージの件名を加え、メッセージのコンテンツを加え、メッセージのコンテンツを様式設定し、又はクライアント機器上に位置するファイルを添付するよう構成された構成要素を含んでもよい。グラフィカルユーザインターフェース300はメッセージングクライアント環境内のコンテンツ管理システムによって提供されるコンテンツ管理機能を提供するよう構成されたコンテンツ管理アイコン304を含む。例えば、クライアント機器上のメッセージングクライアントが(図3で示されているように)コンテンツ管理アイコン304のユーザ選択の指示を受け取った時、メッセージングクライアントはコンテンツ管理構成要素を開いて表示してもよい。
図4は、いくつかの実施形態に従う、コンテンツ管理構成要素406を含むグラフィカルユーザインターフェース400の一例を示す。グラフィカルユーザインターフェース400はコンテンツ管理アイコン304のユーザ選択(例えばユーザのクリック)の指示の受け取りに応じて、コンテンツ管理構成要素406を表示してもよい。
グラフィカルユーザインターフェース400のコンテンツ管理構成要素406は、コンテンツ管理システム110によってメッセージングクライアント環境内から提供されたコンテンツ管理機能へ、ユーザがアクセスするための場所を提供してもよい。例えば、コンテンツ管理構成要素406は、ユーザが、コンテンツ管理システム110によって保存されたコンテンツ項目へアクセスし、一つ以上の保存されたコンテンツ項目を選択し、その選択されたコンテンツ項目へのリンクを作成し、及び作成されているメッセージへのリンクを添付することを可能にするかもしれない。
コンテンツ管理構成要素406は、コレクション選択インターフェース408、及びコンテンツ項目選択インターフェース410を含んでもよい。コンテンツ管理システム110によって保存されたコンテンツ項目は、コンテンツ項目のコレクション内で編成されてもよい。コンテンツ項目のこれらのコレクションは、共通の特徴に基づいて自動的にグループ化されてもよく、又はユーザによってグループ化されてもよい。いくつかの実施形態において、コンテンツ項目のコレクションは、階層的なファイルシステムと類似していてもよく、及びコンテンツ選択インターフェース408は、ユーザが、所望のコンテンツ項目が発見されてもよいように、ファイルシステム内の場所へとナビゲートすることを可能にする。コンテンツ項目選択インターフェース410は、現在位置に位置しているコンテンツ項目を表示し、及び、作成されているメッセージへリンクされた一つ又は複数のコンテンツ項目をユーザが選択することを可能にする。
図4に示されるグラフィカルユーザインターフェース400で、コンテンツ項目選択インターフェース410は、ユーザが「文書」と題されたコレクション内の両方のコンテンツ項目(「image1.jpg」及び「image2.png」)を選択したということを示している。一度コンテンツ項目が選ばれれば、ユーザはグラフィカルユーザインターフェース要素412を選択することによってえらばれたコンテンツ項目を添付することを要求してもよい。インターフェース要素412の選択に応じて、メッセージングクライアントは一つ又は複数の選択されたコンテンツ項目を添付するよう要求を生成し、コンテンツ管理システム110へとその要求を送信する。
要求が受け取られたとき、コンテンツ管理システム110はユーザとメッセージングクライアントを認証し、及び、ユーザとメッセージングクライアントがそれぞれの選択されたコンテンツ項目のためのリンクを受け取ることを許可されているかどうかを判断する。メッセージングクライアントとユーザが認証及び許可されたのならば、コンテンツ管理システム110はそれぞれの選択されたコンテンツ項目のためのリンクを生成し、並びに生成されたリンクをクライアント機器上のメッセージングクライアントへと送信する。それから、メッセージングクライアントは、コンテンツ管理システム110によって生成された一つ又は複数のリンクを、作成されているメッセージへと添付してもよい。
図5は、いくつかの実施形態に従う、コンテンツ管理システム110からのリンクを添付されているメッセージを作成するためのグラフィカルユーザインターフェース500の一例を示す。グラフィカルユーザインターフェース500は、図4のコンテンツ項目選択インターフェース410内で選択されたリンクを、メッセージングクライアントが作成されているメッセージに添付することの結果を示している。グラフィカルユーザインターフェース500は、コンテンツ管理システム110に保存されたコンテンツ項目のどれがそのメッセージへと添付されたリンクを持つのかを、コンテンツ項目それぞれのプレビューに加えて示すプレビュー区域514及び516を含む。例えば、そのメッセージングクライアントは、作成されているメッセージがコンテンツ管理システム上に保存されているコンテンツ項目と関連付けられている添付リンクを含み、並びにコンテンツ管理システム110からのそれぞれのコンテンツ項目のプレビューを要求すると判断してもよい。コンテンツ項目のプレビューが受け取られた時、そのメッセージングクライアントはプレビュー区域514並びに516のようなプレビュー区域にそのプレビューを表示してもよい。
グラフィカルユーザインターフェース500は、メッセージングクライアント環境の内から、コンテンツ管理システム110によって提供された追加のコンテンツ管理機能へとユーザがアクセスするための場所を提供するコンテンツ管理構成要素506をさらに含む。例えば、コンテンツ管理構成要素506は、リンクのつけられたファイルのインターフェース518及び最近に共有されたリンクのインターフェース520を含む。
リンクのつけられたファイルのインターフェース518は、メッセージ内にリンクされた一つ又は複数のコンテンツ項目を表示し、及び、表示されたコンテンツ項目の一つ以上を選択することで、メッセージ内にリンクされたコンテンツ項目の共有オプションを見る又は更新することをユーザに可能にもする。例えば、図5はリンクされたコンテンツ項目「image2.png」のユーザ選択を示している。リンクされたコンテンツ項目「image2.png」のユーザ選択を受け取ったことに応じて、メッセージングクライアントは「image2.png」コンテンツ項目と関連付けられた共有オプションの要求を生成し、コンテンツ管理システム110へとその要求を送信する。
コンテンツ管理システム110は、コンテンツ管理システム110を介して最近ユーザが共有した、コンテンツ管理システム110によって保存されたコンテンツ項目のリストを識別してもよい。いくつかの実施形態において、そのリストはメッセージングクライアントからの問い合わせに応じて生成されてもよい。コンテンツ管理システム110は、最近共有されたリンクのインターフェース520にリストが表示されることができる場所であるメッセージングクライアントへとそのリストを送信する。最近共有されたリンクのインターフェース520は、ユーザが、最近共有されたリンクのインターフェース520においてコンテンツ項目を選択することで、最近共有された一つ又は複数のコンテンツ項目へのリンクを加えることをさらに可能にするかもしれない。
図5に明示的に示されているわけではないが、いくつかの実施形態において、最近共有されたリンクのインターフェース520は、ユーザが、例えばコンテンツ要素「Presentation.doc」のインターフェース要素522を選択することで、共有オプションを見る又は更新することをさらに可能にするかもしれない。コンテンツ項目「Presentation.doc」のユーザ選択を受け取ったことに応じて、メッセージングクライアントは「Presentation.doc」コンテンツ項目と関連付けられた共有オプションの要求を生成し、コンテンツ管理システム110へとその要求を送信する。
図6は、いくつかの実施形態に従う、メッセージを作成するための、共有オプションを有するグラフィカルユーザインターフェース600の一例を示す。グラフィカルユーザインターフェース600は、図6で示されているようなリンクされたコンテンツ項目「image2.png」のユーザ選択を受け取ったこと、及び「image2.png」コンテンツ項目と関連付けられた共有オプションの要求をメッセージングクライアントがコンテンツ管理システム110へと送信することに応じて表示されてもよい。いくつかの実施形態において、最近共有されたリンクの共有オプションを持つ類似のグラフィカルユーザインターフェースが、例えば図5でコンテンツ項目「Presentation.doc」のインターフェース要素522を選択することで、ユーザが最近共有されたリンクの共有オプションを要求することに基づいて表示されてもよい。
共有オプションの要求がコンテンツ管理システム110によって受け取られた時、コンテンツ管理システム110は、現在選ばれている共有オプションを含んでいてもよい、参照されたコンテンツ項目の利用可能な共有オプションを決定し、及び、クライアント機器上のメッセージングクライアントにその共有オプションを返す。それから、メッセージングクライアントはグラフィカルユーザインターフェース600を表示してもよく、それは、メッセージングクライアント環境の内から、コンテンツ管理システム110によって提供された追加のコンテンツ管理機能へとユーザがアクセスするための場所を提供するコンテンツ管理構成要素606を含む。
いくつかの実施形態に従い、コンテンツ管理構成要素606は、選択されたコンテンツ項目の共有オプションを表示するリンクパーミッション設定インターフェース624を含む。他の実施形態では、表示された共有オプションは、コンテンツ管理システム110によってメッセージに添付されたリンクと共に保存されたすべてのコンテンツ項目に対するものであってもよい。この共有オプションは、誰がコンテンツ項目へのリンクを見ることができるのかのパーミッション626、コンテンツ項目へのリンクの有効期限630、及びコンテンツ項目へのリンクを見るパーミッションがあるユーザがコンテンツ管理システム110からクライアント機器へとコンテンツ項目をダウンロードすることを可能にされているかどうか632を含んでいてもよいが、これらには限定されない。いくつかの実施形態において、この共有オプションは、さらに又は代わりに、選択されたコンテンツ項目上にコンテンツ管理システム110によって生成された透かしを含めるオプションを含んでもよい。
誰がコンテンツ項目へのリンクを見ることができるのかのパーミッション626は、数ある中でも、リンクを持つ任意の人、チームメンバーのみ、特定グループの指定されたメンバーのみ、メッセージの受信者のみ、受信者の承認リストのメンバーのみ、正しいパスワードを持つ人のみ、指定されたドメインに関連付けられたアカウントによってのみ、などを含んでいてもよい。コンテンツ管理構成要素606は、コンテンツ項目へのアクセスを制御するパスワードをユーザが作るための欄628を含んでいてもよく、又は、いくつかの実施例において、そのユーザはデフォルト若しくは以前から存在するパスワードを使うように決めることができる。
そのユーザは、リンクパーミッション設定インターフェース624内の選択されたコンテンツ項目の共有オプションを見る及び更新することができ、並びに設定634を保存することができる。いくつかの実施形態において、そのユーザが設定634を明示的に保存する必要はない。代わりに、共有オプションは、ユーザによってそれらのオプションが更新若しくは変更されたときに、又はユーザがメッセージ636を送信したときに、保存されてもよい。メッセージングクライアントはユーザに選ばれた共有オプションを受信し、その選択された共有オプションをコンテンツ管理システム110へと送信する。コンテンツ管理システム110は、それから、選択されたコンテンツ項目へと選択された共有オプションを適用してもよい。この方法で、コンテンツ管理システム110上に保存された選択されたコンテンツ項目への今後のアクセス全てが、メッセージングクライアント環境の中からユーザによって選ばれた共有オプションにより管理されてもよい。
ユーザがメッセージを作成し、コンテンツ管理システム110上に保存されたコンテンツ項目へのリンクを添付し、及び添付されたリンクの共有オプションを更新することを完了した時に、そのユーザはメッセージ636を送信してもよい。メッセージングクライアントはそれから、一人又は複数人の指定された受信者へと配信するために、コンテンツ管理システム110上に保存されたコンテンツ項目への添付されたリンクのついたメッセージを、メッセージングサービス(例えばメッセージングプラットフォーム/サービスと関連付けられたサーバ)へと送信してもよい。
図7は、いくつかの実施形態に従う、メッセージング環境内でコンテンツ管理機能を提供するための方法の一例700を示す。ここで説明される方法及びプロセスは、特定の順序のある工程及び動作でもって示されているが、類似の又は代わりの順序で、若しくは並列して実行される、追加の、より少ない、若しくは代わりの工程及び動作は、そうでないように述べられていない限り、様々な実施形態の範囲内にある。
方法700はクライアント機器上のメッセージングクライアントによって実装されてもよい。クライアント機器は、例えばデスクトップコンピュータ、携帯型コンピュータ、携帯電話やスマートフォン、タブレットなどの携帯通信機器、着用できる機器、スマートテレビ、セットトップボックス及び/又は他の任意のネットワーク対応コンピューティング機器を含んでいてもよい。そのメッセージングクライアントは、eメールサービス、インスタントメッセージング(IM)サービス、又はソーシャルネットワーキングプラットフォームのようなメッセージングサービスと通信するよう構成されるクライアント機器上にインストールされたクライアント側のメッセージングアプリケーションであってもよい。このメッセージングアプリケーションは、専用のアプリケーション(例えばeメールアプリケーション又はインスタントメッセージアプリケーション)、若しくはウェブブラウザのような非専用のアプリケーションであってもよい。そのメッセージングクライアントは、コンテンツ管理システム110と相互作用し及びコンテンツ管理機能がメッセージングクライアント内に供給されることを可能にするコンテンツ管理構成要素を含んでいてもよい。そのコンテンツ管理構成要素は、メッセージングクライアント内へと構築されていてもよく、又は一つ若しくは複数のアプリケーションプラグイン、アドイン、コードスニペット、ブラウザ拡張、又はそれらの組み合わせを含んでいてもよい。
動作705では、クライアント機器上のメッセージングクライアントはメッセージに添付するコンテンツ項目への参照を受信してもよい。他の代替物は本開示の主旨の範囲内であるが、いくつかの実施例によれば、このコンテンツ項目への参照は、(例えば図5に描かれているように)共有オプションを見る又は更新するためにユーザがコンテンツ項目を選択することから、又は(例えば図4に描かれているように)メッセージに添付するコンテンツ項目をユーザが選択することから来るものである。
動作710では、そのメッセージングクライアントはコンテンツ項目への参照をコンテンツ管理システム110へと送信してもよい。コンテンツ項目への参照に基づいて、コンテンツ管理システム110は、参照されたコンテンツ項目についてのコンテンツ管理選択オプションのセットを取得してもよく、並びにそのコンテンツ管理共有オプションのセットをクライアント機器上のメッセージングクライアントへと送信してもよい。
動作715では、メッセージングクライアントは、その参照されたコンテンツ項目のコンテンツ管理共有オプションのセットを受信し、並びに動作720では、そのコンテンツ管理共有オプションのセットをユーザに示している。例えば、メッセージングクライアントは、図6のコンテンツ管理構成要素606のようなグラフィカルユーザインターフェース内のコンテンツ管理構成要素に、そのコンテンツ管理共有オプションのセットを表示していてもよい。図6のグラフィカルユーザインターフェース600内で描かれているように、ユーザは、そのコンテンツ管理共有オプションのセットをレビューし、あるオプションを選択し、オプションを更新し、又は既に選択されている選択肢をそのままに維持することを選んでもよい。
動作725では、メッセージングクライアントはそのコンテンツ管理共有オプションのセットからの共有オプションのユーザ選択を受信し、動作730では、コンテンツ管理システム110へと共有オプションの選択を送信する。その共有オプションの選択を受信すると、コンテンツ管理システム110は、コンテンツ管理システム110によって保存された参照されたコンテンツ項目にアクセスするための今後の要求が、選択された共有オプションによって管理されるよう、共有オプションの選択を参照されたコンテンツ項目へと適用してもよい。
動作735では、メッセージングクライアントは、メッセージングサーバへと、添付されたコンテンツ項目へのリンクのついたメッセージを送信する。上で議論されたように、メッセージングサーバは、eメールサービス、IMサービス、ソーシャルネットワーキングプラットフォーム又は他のメッセージングサービスと関連付けられてもよい。メッセージングサービスはそれからメッセージを意図された受信者へと送信してもよい。受信者がメッセージングサービスからメッセージを取得するとき、受信者のクライアント機器上のメッセージングクライアントにおいて、コンテンツ項目への添付されたリンクのついたメッセージを見るかもしれない。コンテンツ項目へとアクセスするため、その受信者は、コンテンツ項目へのリンクを選択し及びコンテンツ管理システム110からのコンテンツ項目へのアクセスを要求する必要があるだろうし、コンテンツ管理システム110は、動作730でコンテンツ管理システム110へと送信された共有オプションのユーザ選択に基づいて、リンクされたコンテンツ項目へのアクセスを認めるだろう。
いくつかの実施形態によれば、クライアント機器上のメッセージングクライアントは、クライアント機器上でも実行しているコンテンツ管理クライアントと協調し、又はこれを統合してもよい。例えば、メッセージングクライアントは、クライアント機器上のローカルファイルシステムと共に、ユーザと関連付けられたコンテンツ管理システム110上のファイルシステムをユーザがナビゲートすることを可能にする、コンテンツ管理構成要素を含むグラフィカルユーザインターフェースを表示してもよい。メッセージングクライアントは、コンテンツ管理システム110によって保存されたコンテンツ項目へのリンクと同じように、クライアント機器上のローカルコンテンツ項目を添付するユーザ指示を受信するかもしれない。
上で述べられたように、コンテンツ管理システム110は、コンテンツの、クライアント機器上で実行している一つ又は複数のコンテンツ管理クライアントとの同期に対応するように構成されることができる。コンテンツ参照番号又はIDは、クライアント機器上及びコンテンツ管理システム110上のコンテンツ項目の同期を容易にする。いくつかの実施形態によれば、メッセージングクライアントは、メッセージに添付する同期されたコンテンツ項目を選択するためにローカルファイルシステムをユーザがナビゲートすることができるようにする、クライアント機器上で実行されているコンテンツ管理クライアントと協調してもよい。クライアント機器上のコンテンツ項目は、コンテンツ管理システム110によって保存されている対応したコンテンツ項目と同期しているので、メッセージングクライアントは、添付されたコンテンツをアップロード及び送信するために追加の帯域幅を使用する必要はない。代わりに、メッセージングクライアントは、選択されたコンテンツ項目のコンテンツIDに基づいて、コンテンツ管理システム110からの選択されたコンテンツ項目へのリンクを要求してもよく、及び選択されたコンテンツ項目へのリンクをメッセージに添付してもよい。ローカルに保存されたコンテンツ項目のコピーを添付する代わりに、コンテンツ管理システム110によって保存されているコンテンツ項目へのリンクを提供することで、ユーザに、コンテンツ項目の共有オプション及び共有状態情報のような追加のコンテンツ管理機能が提供される。
いくつかの実施形態によれば、クライアント機器上で実行しているコンテンツ管理クライアントは、コンテンツとコンテンツ管理システム110によって保存されているコンテンツとの同期を補助するために、ファイルプレースホルダを作成してもよい。ファイルプレースホルダは、クライアント機器上のオペレーティングシステム又は他のアプリケーションに対して、コンテンツ項目のように現れてもよいが、しかしコンテンツ項目のデータを保存する代わりに、ファイルプレースホルダはコンテンツ管理システム110によって保存されている対応するコンテンツ項目へのポインタを保存する。従って、メッセージングクライアントは、コンテンツ管理システム110によって保存されたコンテンツ項目と関連付けられたファイルプレースホルダを選択するために、ローカルファイルシステムをユーザがナビゲートすることができるようにする、クライアント機器上で実行されているコンテンツ管理クライアントをと協調してもよく、並びにファイルプレースホルダをメッセージに添付してもよい。一度メッセージが送られると、そのメッセージの受信者はそのファイルプレースホルダをダウンロードすることが可能になり、並びにコンテンツ管理システム110によって保存されたコンテンツ項目へとアクセスを試みることが可能になる。コンテンツ管理システム110によって保存されたコンテンツ項目に関連するそのファイルプレースホルダを提供することは、コンテンツ項目の共有オプション及び共有状態情報のようないくつかの追加のコンテンツ管理機能を可能とする。
様々な実施形態において、メッセージングクライアントは、コンテンツ管理システム110と相互作用し及び追加の又は代わりのコンテンツ管理機能がメッセージングクライアント内に提供されることを可能にするコンテンツ管理構成要素を含んでいてもよい。例えば、コンテンツ管理構成要素は、コンテンツ管理システム110によって保存されたコンテンツ項目への添付されたリンクのついたメッセージの送信者が、そのコンテンツ項目の共有状態情報を見ることを可能にしてもよい。
図8は、いくつかの実施形態に従う、クライアント機器上でのメッセージングクライアントのグラフィカルユーザインターフェース800の一例を示す。説明の目的で、図8のグラフィカルユーザインターフェース800はコンテンツ管理システム110及びeメールサービスと相互作用するよう構成されたウェブブラウザである。しかしながら、他の実施形態において、グラフィカルユーザインターフェースは、他の一つ又は複数のメッセージングサービスと相互作用するよう構成された他のメッセージングアプリケーションのために設計されてもよい。これらのメッセージングアプリケーションは、例えばeメールアプリケーション、インスタントメッセージ(IM)アプリケーション、ソーシャルネットワーキングアプリケーション、他クライアント側のサービスアプリケーション、又は他の種類のメッセージングサービスにアクセスするよう構成された他のウェブブラウザインターフェースを含んでもよい。
グラフィカルユーザインターフェース800はクライアント機器上に表示されてもよく、ユーザがメッセージを見、メッセージを作成し並びにメッセージのステータスを確認することを可能にするかもしれない。例えば、ユーザは送信されたメッセージ(例えば送信されたeメール)のリストを見るために、グラフィカルユーザインターフェース要素840を選択してもよい。そのユーザは、送信されたメッセージのコンテンツ及びそのメッセージに関連付けられた詳細を見るために、一つの送信されたメッセージ845を選択してもよい。詳細は、受信者のリスト、添付物、又はメッセージが送信された時についてのタイムスタンプを含んでもよい。
いくつかの実施形態では、メッセージングクライアントは、メッセージが受信者に見られたときについてのタイムスタンプのような、メッセージングサービスからの追加の詳細を受信してもよい。加えて、様々な実施形態は、メッセージに添付されたコンテンツ項目が見られたかどうかをメッセージの送信者が判断することを可能にするようなコンテンツ管理機能を提供することに向けられている。例えば、ユーザはコンテンツ管理アイコンまたはオプション850を選んでもよい。コンテンツ管理アイコンまたはオプション850を介したユーザからの入力の受信に応じて、クライアント機器上のメッセージングクライアントは、ユーザに共有状態情報を示すためにコンテンツ管理構成要素を生成及び表示してもよい。
図9は、いくつかの実施形態に従う、コンテンツ管理システム110からのリンクが添付されている送信済みメッセージの詳細を表示するためのグラフィカルユーザインターフェース900の一例を示す。グラフィカルユーザインターフェース900は、送信された選択メッセージ内の添付されたリンクの共有状態情報を見るための、図8のコンテンツ管理アイコン又はオプション850をユーザが選択した結果を示す。
特に、グラフィカルユーザインターフェース900は、メッセージングクライアント環境の内から、コンテンツ管理システム110によって提供された追加のコンテンツ管理機能へとユーザがアクセスするための場所を提供するコンテンツ管理構成要素955を含む。例えば、コンテンツ管理構成要素955は、それぞれのリンクされたコンテンツ項目の共有状態情報960及び965と共に、送信されたメッセージにリンクされたコンテンツ項目のリストを含む。
図8の共有状態情報960及び965は、それぞれのアイコンが送信されたメッセージに添付されたリンクと関連付けられたコンテンツ項目にアクセスしたユーザを示す、アイコンリストとして示されているが、他の種類の共有状態情報が示されてもよい。共有状態情報は、コンテンツ項目にアクセスしたユーザのリスト、それぞれのユーザが初めてコンテンツ項目にアクセスしたときのタイムスタンプ、それぞれのユーザがもっとも最近コンテンツ項目にアクセスしたときのタイムスタンプ、コンテンツ管理システム110によって記録されているならば追加タイムスタンプ、ユーザによってなされた行動の種類(例えば見る、編集する、印刷する、クライアントマシンにダウンロードする、受信者ユーザアカウントに複製するなど)、又はコンテンツ項目のプレゼンス状態を含んでいてもよい。プレゼンス状態はコンテンツ管理システム上に保存されたコンテンツ項目へと現在アクセスしているユーザのリストを含んでいてもよい。
加えて、共有状態情報を提示する他の手段もまた、様々な実施形態の範囲内にある。例えば、スプレッドシート、リスト、チャート又は他の共有状態情報の視覚化が表示されてもよい。特定の情報は、メッセージングクライアント内の別個のインターフェースに表示されてもよく、又はユーザのアクションに応じて表示されてもよい。いくつかの実施形態では、ユーザは、追加の共有状態情報を見るために、共有状態情報960内の特定の受信者に対応するアイコンの一つの上にカーソルを動かしてもよく、又はこのアイコンをクリックしてもよい。例えば、ポップアップウィンドウが、リンクされたコンテンツ項目「image1.jpg」へのその特定の受信者のアクセスと関連付けられたタイムスタンプ並びにアクションの種類の情報とともに現れてもよい。
いくつかの実施形態は送信されたメッセージを見るという文脈において提供されたコンテンツ管理機能に関係するが、追加の実施形態は、コンテンツ管理システム110によって保存されたコンテンツ項目へのリンクが、一人又は複数人の受信者に(同じメッセージにおいて又は別のメッセージにおいてのいずれかで)送信される際の、受信者の受信ボックスである受信ボックスインターフェース内のような、メッセージングクライアント内の他のインターフェースに関係してもよい。
図10は、いくつかの実施形態に従う、メッセージング環境内でコンテンツ管理機能を提供するための方法の一例1000を示す。方法1000はクライアント機器上のメッセージングクライアントによって実装されてもよい。クライアント機器はメッセージングサービス及びコンテンツ管理システム110とは別のネットワーク対応コンピューティング機器を含んでいてもよい。メッセージングクライアントは、メッセージングサービスと通信するよう構成されたクライアント機器にインストールされたクライアント側のメッセージングアプリケーションであってもよいし、コンテンツ管理システム110と相互作用し及びコンテンツ管理機能がメッセージングクライアント内に提供されることを可能にするコンテンツ管理構成要素を含んでいてもよい。
動作1005では、クライアント機器上のメッセージングクライアントはメッセージングサービスによって送信されるメッセージへの参照を受信してもよい。他の代替物も本開示の範囲内であるが、いくつかの実施例によれば、この送信されたメッセージへの参照は、図8に描かれているように、ユーザがコンテンツ管理アイコン又はオプション850を選択することからの、送信されたメッセージの詳細を見るために、送信されたメッセージ845をユーザが選択することから来てもよい。
メッセージングクライアントは、動作1010では、コンテンツ管理システム110によって保存されたコンテンツ項目と関連付けられた添付されたリンクを、その参照されたメッセージが含むかどうかを判断する。コンテンツ管理システム110に保存されたコンテンツ項目への添付されたリンクがない場合は、方法1000は動作1015で終了する。少なくとも一つの添付されたリンクが存在するのであれば、メッセージングクライアントは、動作1020で、コンテンツ管理システム110へと、一つ又は複数のリンクされたコンテンツ項目と関連付けられた共有状態情報の要求を送る。
その要求を受信すると、コンテンツ管理システム110は一つ又は複数のリンクされたコンテンツ項目と関連付けられた共有状態情報を取得し、クライアント機器上のメッセージングクライアントへと共有情報を送信する。動作1025では、メッセージングクライアントが、コンテンツ項目と関連付けられた共有状態情報を受信し、並びに動作1030では、一つ又は複数のリンクされたコンテンツ項目と関連付けられた共有状態情報を提示する。図9のグラフィカルユーザインターフェース900の説明例を参照すると、一つ又は複数のリンクされたコンテンツ項目と関連付けられた共有状態情報がコンテンツ管理構成要素955に表示されてもよい。
様々な実施形態によれば、コンテンツ管理構成要素955は、リンク有効期限の延長、一つ又は複数のユーザへのアクセスの取り消し、又はアクセス種類の制限のような共有オプションの変更をユーザが行うことも可能にしてもよい。例えば、クライアント機器上のメッセージングクライアントは、リンクされたコンテンツ項目の共有オプションを見る又は更新するというユーザからの命令を受信してもよく、及びそれに応じて、リンクされたコンテンツ項目に関連付けられた共有オプションの要求をコンテンツ管理システム110に送信してもよい。コンテンツ管理システム110は、参照されたコンテンツ項目のコンテンツ選択オプションのセットを取得してもよく、並びにその共有オプションのセットをクライアント機器上のメッセージングクライアントへと送信してもよい。
メッセージングクライアントは、参照されたコンテンツ項目のそのコンテンツ管理共有オプションのセットを受信し、その共有オプションのセットを、例えばコンテンツ管理構成要素955内で、ユーザに提示する。ユーザは、その共有オプションのセットをレビューし、あるオプションを選択し、オプションを更新し、又は既に選択されている選択肢をそのままに維持することができる。参照されたコンテンツ項目の任意の共有オプションをユーザが変更する場合、メッセージングクライアントは共有オプションのユーザ選択をコンテンツ管理システム110へと送信する。その共有オプションの選択を受信すると、コンテンツ管理システム110は、コンテンツ管理システム110によって保存された参照されたコンテンツ項目にアクセスするための今後の要求が選択された共有オプションによって管理されるよう、共有オプションの選択を参照されたコンテンツ項目へと適用してもよい。
いくつかの実施形態によれば、メッセンジャークライアントの又はアプリケーションのコンテンツ管理機能は、コンテンツ管理プラグインを介して提供されてもよい。このコンテンツ管理プラグインは、コンテンツ管理構成要素の又はインターフェース(例えばウェブブラウザフレーム)の提示がメッセージングクライアント内に表示されることを可能にする。コンテンツ項目がメッセージに添付されるように選択されるとき、メッセージングクライアントは、コンテンツ管理システム110からコンテンツ項目へのリンクを要求する。コンテンツ管理システム110はリンク(共有モジュール130を介する)及びリンクプレビュー(例えばそのコンテンツ項目を表す画像又はサムネイル)を作り、並びにそのリンク及びリンクプレビューをメッセージングクライアントへと送信する。それから、このメッセージングクライアントは、リンクをメッセージに添付し及びリンクプレビューを適切なインターフェース又はウェブフレームに描画することができる。
図11A及び図11Bはありうるシステム実施形態の例を示す。適切な実施形態は、本技術を実践するときに当業者にとって明らかなものだろう。当業者は、その他のシステム実施形態が可能であることもまた容易に理解するであろう。
図11Aは定型的なシステムバスコンピューティングシステム構成1100を図示しており、そこではそのシステムの構成要素がバス1105を用いてお互いに電気通信を行っている。システム例1100は、処理装置(CPU又はプロセッサ)1100、及び、リードオンリーメモリ(ROM)1120並びにランダムアクセスメモリ(RAM)1125のようなシステムメモリ1115を含む様々なシステム構成要素をプロセッサ1110と結ぶシステムバス1105を含む。このシステム1100は、プロセッサ1110と直接接続された、近接して接続された、又はプロセッサ1110の一部として組み込まれた、高速メモリキャッシュを含むことができる。このシステム1100は、プロセッサ1110による素早いアクセスのために、メモリ1115及び/又は記憶装置機器1130からキャッシュ1112へとデータをコピーすることができる。この方法で、キャッシュは、データの待機中におけるプロセッサ1110の遅延を防ぐ性能の向上を提供することができる。これらの及び他のモジュールは、様々なアクションを実行するためにプロセッサ1110を制御する、又は制御するように構成されることができる。他のシステムメモリ1115が同様に使用可能であってもよい。このメモリ1115は、異なる性能特性を持つ複数の異なる種類のメモリを含むことができる。このプロセッサ1110は、任意の汎用プロセッサ、並びに、プロセッサ1110を制御するように構成された、ハードウェアモジュール、若しくは記憶装置機器1130に保存されたモジュール1 1132、モジュール2 1134、及びモジュール3 1136のようなソフトウェアモジュール、さらには、ソフトウェア命令が実際のプロセッサ設計に組み込まれている特定用途プロセッサを、含むことができる。プロセッサ1110は、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを持つ、実質的に完全自己充足型のコンピューティングシステムであってもよい。マルチコアのプロセッサは対称又は非対称であってもよい。
コンピューティング機器1100とのユーザ相互作用を可能にするため、入力機器1145は、音声のためのマイクロフォン、ジェスチャ又は図画での入力のための接触感知スクリーン、キーボード、マウス、動作入力、音声などのような、任意の数の入力機構を表すことができる。出力機器1135もまた、当業者に知られる、複数の出力機構のうちの1つ又は複数となることができる。いくつかの例では、マルチモーダルシステムは、コンピューティング機器1100とやりとりするための複数の種類の入力をユーザが提供することを可能にすることができる。通信インターフェース1140は、概してユーザ入力とシステム出力を運営し管理することができる。何らかの特定のハードウェア構成において動作することについて制限はなく、及びそれ故に、この基本的な特徴は、ハードウェア又はファームウェア構成が発展させられたときに、改良されたそれらによって容易に置き換えられるかもしれない。
記憶装置機器1130は不揮発性メモリであり、及びハードディスクであってもよく、又は磁気カセット、フラッシュメモリカード、固体メモリ機器、デジタル多目的ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1125、リードオンリーメモリ(ROM)1120及びそれらの混成物のような、コンピュータによってアクセスできるデータを保存することができる、他の種類のコンピュータ可読媒体であってもよい。
記憶装置機器1130は、プロセッサ1110の制御のためにソフトウェアモジュール1132、1134、1136を含む。他のハードウェア又はソフトウェアモジュールも考えられる。記憶装置機器1130はシステムバス1105と接続することができる。ある態様において、ある機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ1110、バス1105、ディスプレイ1135などのような必要なハードウェア構成要素と接続する、コンピュータ可読媒体に保存されたソフトウェア構成要素を含むことができる。
図11Bは、説明された方法を実行する及びグラフィカルユーザインターフェース(GUI)を生成並びに表示する際に使用されることができるチップセット構成を持っているコンピュータシステム1150を示す。コンピュータシステム1150はここに開示された技術を実装するために使われることができるコンピュータハードウェア、ソフトウェア、及びファームウェアの一例である。システム1150はプロセッサ1155を含むことができ、これは識別された演算を実行するよう構成された、ソフトウェア、ファームウェア、及びハードウェアを実行可能な任意の数の物理的及び/又は論理的に異なったリソースを表す。プロセッサ1155は、プロセッサ1155への入力及びそこからの出力を制御できるチップセット1160と通信を行うことができる。この例では、チップセット1160は、ディスプレイのような出力1165へと情報を出力し、及び例えば磁気媒体及び固体メディアを含むことができる記憶領域1170と、情報を読み書きすることができる。チップセット1160は、データをRAM1175から読み込み及びそこに書き込むこともできる。様々なインターフェース構成要素1185と接続するためのブリッジ1180は、チップセット1160と接続するために提供されることができる。そのようなユーザインターフェース構成要素1185は、キーボード、マイクロフォン、接触検出及び処理回路、マウスのようなポインティング機器などを含むことができる概して、システム1150への入力は、機械及び/又は人間が生成した様々なソースのいずれかから生じることができる。
チップセット1160は異なる物理的インターフェースを持つことができる一つ又は複数の通信インターフェース1190と接続することもできる。そのような通信インターフェースは、有線及び無線ローカルエリアネットワーク、広帯域無線ネットワーク、並びにパーソナルエリアネットワーク用のインターフェースを含むことができる。本明細書で開示されたGUIを生成、表示及び使用するための方法のいくつかの応用例は、物理的なインターフェースを介して順序付けられたデータセットを受信することを含んでもよく、又は、記憶装置1170又は1175に保存されたデータをプロセッサ1155が解析することによって機械自身により生成されてもよい。さらには、その機械はユーザインターフェース構成要素1185を介してユーザから入力を受信でき、及びプロセッサ1155を用いてこれらの入力を解釈することによる閲覧機能のような、適切な機能を実行できる。
システム例1100及び1150は一つより多くのプロセッサ1110を持つことができ、又はより高い処理能力を提供するために共にネットワーク化されたコンピューティング機器のグループ若しくはクラスタの一部になることができる。
説明を明確にするために、いくつかの例では、本技術は、ソフトウェアとして、又はハードウェア及びソフトウェアの組み合わせとして実現された方法における、機器、機器構成要素、工程又は手順を含む機能ブロックを含む、個別の機能ブロックを含むものとして提示されたかもしれない。
本明細書で示されている工程、動作、機能又は処理のいずれも、それ単独で又は他の機器との組み合わせで、ハードウェア及びソフトウェアモジュールの組み合わせにより実行される又は実装されてもよい。ある実施形態で、ソフトウェアモジュールは、クライアント機器の及び/又はコンテンツ管理システムの一つ若しくは複数のサーバのメモリ内に存在するソフトウェアであってもよく、並びにモジュールと関連付けられたソフトウェアをプロセッサが実行する時に、一つ又は複数の機能を実行することもできる。メモリは非一時的コンピュータ可読媒体であることができる。
いくつかの実施形態では、コンピュータ可読記憶装置、媒体及びメモリは、ケーブル、又はビットストリームなどを持つ無線信号を含むことができる。しかしながら、言及された時には、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波及びシグナルそれ自体のような媒体を明示的に除外する。
上で述べられた例に従う方法は、保存されている又はそうでない形でコンピュータ可読媒体から利用できるコンピュータが実行可能な命令を用いることで実装されてもよい。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理機器に、ある機能または一群の機能を実行させる、又はそうでなければ実行するよう設定する、命令及びデータを含むことができる。使用されるコンピュータリソースの一部は、ネットワーク上でアクセス可能であることができる。コンピュータが実行可能な命令は、例えば、バイナリ、アセンブリ言語のような中間形式の命令、ファームウェア又はソースコードであってもよい。命令、使用された情報、及び/又は示された実施例に従う方法の間に作られた情報を保存するために使われてもよいコンピュータ可読媒体の例は、磁気又は光ディスク、フラッシュメモリ、不揮発性メモリを備えるUSB機器、ネットワーク化された記憶装置機器などを含む。
これらの開示に従う方法を実装する機器は、ハードウェア、ファームウェア及び/又はソフトウェアを含むことができるし、及び様々なフォームファクタのいずれかをとることができる。そのようなフォームファクタの典型的な例は、ラップトップ、スマートフォン、小型フォームファクタのパーソナルコンピュータ、パーソナルデジタルアシスタントなどを含む。本明細書で述べられた機能は、周辺機器又はアドインカードとして実現されることもできる。そのような機能は、さらなる例として、回路基板上において異なるチップ間で、又は単一機器内で実行している異なる処理において、実装されることもできる。
この命令、そのような命令を運ぶ媒体、命令を実行するコンピューティングリソース、及びそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示内で説明される機能を提供するための手段である。
本明細書において用いられる際に、閾値を超えるということは、比較対象となっている項目の値が特定の他の値を超えること、比較対象となっている項目が最大の値を有するある特定の数の項目の中にあること、又は比較対象となっている項目が特定の上位パーセンテージ量内の値を持つことを意味する。本明細書において用いられる際に、閾値より低いということは、比較対象となっている項目の値が特定の他の値より低いこと、比較対象となっている項目が最小の値を有するある特定の数の項目の中にあること、又は比較対象となっている項目が特定の下位パーセンテージ量内の値を持つことを意味する。本明細書において用いられる際に、閾値内にあるということは、比較対象となっている項目の値が他の2つの特定の値の間にあること、比較対象となっている項目が中位の特定の数の中にあること、又は比較対象となっている項目が特定の中位のパーセンテージ範囲内の値を持つことを意味する。高い又は重要でないというような相対的な用語は、そうでないようには定義されていないとき、値を割り当てるものとして、及びこの値がどのように確立された閾値と比べられるのかを決定するものとして理解されることができる。例えば、「速い接続を選択する」という句は、閾値を超える接続速度に対応して割り当てられた値を持つ接続を選択することを意味するとして理解されることができる。
本明細書において用いられる際に、「又は」という単語は、項目のセットのうちの任意の並べ替えを示している。例えば、「A、B又はC」という句は、A、B、Cの内の少なくとも1つ、又は、それらの任意の組み合わせ、例えば、A、B、C、A及びB、A及びC、B及びC、A及びB及びC、又は、A及びA、B及びB及びC、A及びA及びB及びC及びCなどのような任意項目が複数あるもののうちの任意のもの、を指す。
様々な実施例及び他の情報が、添付の請求の範囲内にある態様を説明するために使われたが、当業者の一人であれば広く様々な実装例を導き出すためにこれらの実施例を使うことができるので、このような実施例における特定の特徴及び構成に基づいて請求の範囲を制限することが暗示されているはずがない。さらに、及びいくつかの主題が、構造的特徴及び/又は方法工程の例に特有の言葉で説明されていたかもしれないが、添付される請求の範囲内で定義される主題が、これらの説明された特徴又は動作に制限される必要がないことは理解されるべきである。例えば、そのような機能は、異なって分散されることができるし、又は本明細書で特定された構成要素とは別の構成要素で実行されることができる。むしろ、この説明された特徴及び工程は、添付の請求の範囲内のシステム構成要素及び方法の例として開示されるものである。