(57)【特許請求の範囲】
【請求項１】
プロセッサが、クライアントデバイスから、クライアントサイド・アプリケーションを当該クライアントデバイスにインストールするためのインストール要求を受信する工程と、
前記プロセッサが、前記クライアントデバイスから前記インストール要求が受信された場合に前記クライアントデバイスがユーザアカウントにログインしているかどうかを判定し、前記クライアントデバイスがユーザアカウントに現在ログインしていれば、当該ユーザアカウントは前記クライアントデバイスと関連付けられた既存のユーザアカウントであると判定することによって、前記クライアントデバイスが既存のユーザアカウントと関連付けられているかどうかを判定する工程と、
前記クライアントデバイスが既存のユーザアカウントと関連付けられていれば、前記プロセッサが、前記クライアントデバイスに関連付けられた前記既存のユーザアカウントを識別するアカウント識別子をライトインストーラにタグ付けするとともに、前記プロセッサが、前記クライアントデバイスを識別するデバイス識別子をタグ付けする工程であって、前記ライトインストーラが、
前記クライアントサイド・アプリケーションのインストールを完了させるために必要なユーザデータ及び権限付与をユーザに求め、かつ、
前記クライアントサイド・アプリケーションを前記クライアントデバイスにダウンロード及びインストールするよう構成されている、前記タグ付けする工程と、
前記プロセッサが、前記アカウント識別子及び前記デバイス識別子がタグ付けされた前記ライトインストーラを前記クライアントデバイスへ送信する工程と、
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む事前権限付与要求を、要求クライアントデバイスから受信する工程と、
前記ライトインストーラにタグ付けされた前記デバイス識別子を、前記要求クライアントデバイスを識別する第２のデバイス識別子と比較し、前記ライトインストーラにタグ付けされた前記デバイス識別子が、前記要求クライアントデバイスを識別する前記第２のデバイス識別子と一致すれば、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであると判定することによって、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであるかどうかを判定する工程と、
前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであれば、前記事前権限付与要求を許可する工程と、
を含むことを特徴とする方法。
【請求項２】
前記クライアントサイド・アプリケーションのインストールに必要なデータをダウンロードするためのダウンロード要求であって、前記クライアントデバイスで実行される前記ライトインストーラによって送信される前記ダウンロード要求を、前記クライアントデバイスから受信する工程と、
前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスへ送信する工程と、を更に含み、前記クライアントサイド・アプリケーションのインストールに必要な前記データは、前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスが受信することに応じて、前記クライアントサイド・アプリケーションをインストールするために前記ライトインストーラによって使用される
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む進捗報告メッセージであって、前記クライアントデバイスへの前記クライアントサイド・アプリケーションのインストールについての現在の状態を示す前記進捗報告メッセージを、前記クライアントデバイスから受信する工程と、
前記進捗報告メッセージを、前記アカウント識別子によって識別される前記ユーザアカウントと関連付ける工程と、を更に含む
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記事前権限付与要求を許可する工程は、前記アカウント識別子によって識別される前記ユーザアカウントにアクセスすることを前記要求クライアントデバイスに許可する工程を含む
ことを特徴とする請求項１に記載の方法。
【請求項５】
システムであって、
プロセッサと、
命令を含むメモリであって、当該命令は、実行されたときに前記プロセッサに、
クライアントデバイスから、クライアントサイド・アプリケーションを当該クライアントデバイスにインストールするためのインストール要求を受信すること、
前記クライアントデバイスから前記インストール要求が受信された場合に前記クライアントデバイスがユーザアカウントにログインしているかどうかを判定し、前記クライアントデバイスがユーザアカウントに現在ログインしていれば、当該ユーザアカウントは前記クライアントデバイスと関連付けられた既存のユーザアカウントであると判定することによって、前記クライアントデバイスが既存のユーザアカウントと関連付けられているかどうかを判定すること、
前記クライアントデバイスが既存のユーザアカウントと関連付けられていれば、前記クライアントデバイスに関連付けられた前記既存のユーザアカウントを識別するアカウント識別子をライトインストーラにタグ付けするとともに、前記クライアントデバイスを識別するデバイス識別子をタグ付けすることであって、前記ライトインストーラが、
前記クライアントサイド・アプリケーションのインストールを完了させるために必要なユーザデータ及び権限付与をユーザに求め、かつ、
前記クライアントサイド・アプリケーションを前記クライアントデバイスにダウンロード及びインストールするよう構成されている、前記タグ付けすること、
前記アカウント識別子がタグ付けされた前記ライトインストーラを前記クライアントデバイスへ送信すること、
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む事前権限付与要求を、要求クライアントデバイスから受信すること、
前記ライトインストーラにタグ付けされた前記デバイス識別子を、前記要求クライアントデバイスを識別する第２のデバイス識別子と比較し、前記ライトインストーラにタグ付けされた前記デバイス識別子が、前記要求クライアントデバイスを識別する前記第２のデバイス識別子と一致すれば、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであると判定することによって、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであるかどうかを判定すること、並びに
前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであれば、前記事前権限付与要求を許可すること、
を行わせることを特徴とするシステム。
【請求項６】
前記命令は更に、前記プロセッサに、
前記クライアントサイド・アプリケーションのインストールに必要なデータをダウンロードするためのダウンロード要求であって、前記クライアントデバイスで実行される前記ライトインストーラによって送信される前記ダウンロード要求を受信すること、及び
前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスへ送信すること、を行わせ、前記クライアントサイド・アプリケーションのインストールに必要な前記データは、前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスが受信することに応じて、前記クライアントサイド・アプリケーションをインストールするために前記ライトインストーラによって使用される
ことを特徴とする請求項５に記載のシステム。
【請求項７】
前記命令は更に、前記プロセッサに、
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む進捗報告メッセージであって、前記クライアントデバイスへの前記クライアントサイド・アプリケーションのインストールについての現在の状態を示す前記進捗報告メッセージを、前記クライアントデバイスから受信すること、及び
前記進捗報告メッセージを、前記アカウント識別子によって識別される前記ユーザアカウントと関連付けること、を行わせる
ことを特徴とする請求項５に記載のシステム。
【請求項８】
前記事前権限付与要求を許可することは、前記アカウント識別子によって識別される前記ユーザアカウントにアクセスすることを前記要求クライアントデバイスに許可することを含む
ことを特徴とする請求項５に記載のシステム。
【請求項９】
コンピューティングデバイスによって実行されたときに当該コンピューティングデバイスに、
クライアントデバイスから、クライアントサイド・アプリケーションを当該クライアントデバイスにインストールするためのインストール要求を受信すること、
前記クライアントデバイスから前記インストール要求が受信された場合に前記クライアントデバイスがユーザアカウントにログインしているかどうかを判定し、前記クライアントデバイスがユーザアカウントに現在ログインしていれば、当該ユーザアカウントは前記クライアントデバイスと関連付けられた既存のユーザアカウントであると判定することによって、前記クライアントデバイスが既存のユーザアカウントと関連付けられているかどうかを判定すること、
前記クライアントデバイスが既存のユーザアカウントと関連付けられていれば、前記クライアントデバイスに関連付けられた前記既存のユーザアカウントを識別するアカウント識別子をライトインストーラにタグ付けするとともに、前記クライアントデバイスを識別するデバイス識別子をタグ付けすることであって、前記ライトインストーラが、
前記クライアントサイド・アプリケーションのインストールを完了させるために必要なユーザデータ及び権限付与をユーザに求め、かつ、
前記クライアントサイド・アプリケーションを前記クライアントデバイスにダウンロード及びインストールするよう構成されている、前記タグ付けすること、
前記アカウント識別子及び前記デバイス識別子がタグ付けされた前記ライトインストーラを前記クライアントデバイスへ送信すること、
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む事前権限付与要求を、要求クライアントデバイスから受信すること、
前記ライトインストーラにタグ付けされた前記デバイス識別子を、前記要求クライアントデバイスを識別する第２のデバイス識別子と比較し、前記ライトインストーラにタグ付けされた前記デバイス識別子が、前記要求クライアントデバイスを識別する前記第２のデバイス識別子と一致すれば、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであると判定することによって、前記事前権限付与要求の送信元の前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであるかどうかを判定すること、並びに
前記要求クライアントデバイスが、前記ライトインストーラを元々受信した前記クライアントデバイスであれば、前記事前権限付与要求を許可すること、
を行わせる命令を含むことを特徴とするプログラム。
【請求項１０】
前記命令は更に、前記コンピューティングデバイスに、
前記クライアントサイド・アプリケーションのインストールに必要なデータをダウンロードするためのダウンロード要求であって、前記クライアントデバイスで実行される前記ライトインストーラによって送信される前記ダウンロード要求を、前記クライアントデバイスから受信すること、及び
前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスへ送信すること、を行わせ、前記クライアントサイド・アプリケーションのインストールに必要な前記データは、前記クライアントサイド・アプリケーションのインストールに必要な前記データを前記クライアントデバイスが受信することに応じて、前記クライアントサイド・アプリケーションをインストールするために前記ライトインストーラによって使用される
ことを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記命令は更に、前記コンピューティングデバイスに、
前記ライトインストーラにタグ付けされた前記アカウント識別子を含む進捗報告メッセージであって、前記クライアントデバイスへの前記クライアントサイド・アプリケーションのインストールについての現在の状態を示す前記進捗報告メッセージを、前記クライアントデバイスから受信すること、及び
前記進捗報告メッセージを、前記アカウント識別子によって識別される前記ユーザアカウントと関連付けること、を行わせる
ことを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年7月16日に提出された米国仮出願番号第61/846,968号の利益を主張する、2013年12月11日に提出された米国非仮出願第14/103,378号の優先権を主張し、それらの両方は、全体として本明細書に参照により明示的に援用される。
【０００２】
本技術は、クライアントサイド・アプリケーションのインストールに関するものであり、より具体的には、クライアントサイド・アプリケーションをインストールするためのライトインストーラの利用に関するものである。
【背景技術】
【０００３】
ウェブブラウザまたはクラウドサービスに関連するクライアントサイド・アプリケーションを使用して、クライアントデバイスから多くのクラウドサービスにアクセス可能である。クライアントサイド・アプリケーションは追加の機能を提供可能であるものの、多くの場合、ユーザはウェブブラウザを使用することを選択し、これは、クライアントサイド・アプリケーションはクライアントデバイスにダウンロードされてインストールされなければならないのに対して、多くの場合、ウェブブラウザ・アプリケーションは既にユーザが使用可能であるためである。クライアントサイド・アプリケーションのダウンロードは、ユーザにとって面倒でありうる。例えば、ダウンロード及びインストールのプロセスは、長ったらしいことがあるとともに、クライアントデバイスにとどまって、ダウンロード及びインストールのプロセスを継続するための断続的な入力を与えることを、ユーザに求めることがある。
【０００４】
その結果、多くのユーザは、プロセスに時間がかかり過ぎることを理由として、ダウンロード及びインストールのプロセスを完遂することがなくなる。ユーザは、ダウンロード及びイントールのプロセスを早期に終了するか、興味を失うか、またはダウンロード及びインストールが実行中であることを忘れることがある。起こりうる更なる問題は、場合によっては、ユーザが、ウェブブラウザを通じてサービスにアクセスする際に使用されるアカウント・クレデンシャル（account credentials）を使用するのではなく、クライアントサイド・アプリケーションのインストールの際に新しいアカウントを作成してしまうことである。
【０００５】
クライアントサイド・アプリケーションのダウンロード及びインストールに関連する、これらの可能性のある問題に加えて、ユーザが直面する問題を識別するデータは、多くの場合、利用不可能である。例えば、ダウンロードプロセスは、多くの場合、任意のユーザログイン情報を受け取る前に開始され、それ故に、何れのユーザが問題を有しているのかを見分けることができないことがある。更には、ユーザがダウンロード及びインストールのプロセスにおける所定のマイルストーンに達したことを示すデータも利用可能ではないことがある。したがって、改善したシステムが必要とされる。
【発明の概要】
【０００６】
本開示の更なる特徴及び利点は、以下の説明において記述されるとともに、当該説明からある程度明らかになるか、または本明細書で開示される原理の実施により理解されうる。本開示の特徴及び利点は、添付の請求項において具体的に示される機器及び組み合わせによって実現及び取得されうる。本開示のこれらの特徴及び他の特徴は、以下の説明及び添付の請求項から十分に明らかになるか、または本明細書に記述された原理の実施によって理解されうる。
【０００７】
ライトインストーラを利用してクライアントサイド・アプリケーションをクライアントデバイスにインストールするための、システム、方法及び非一時的なコンピュータ読取可能な記憶媒体が開示される。ライトインストーラは、必要となるデータ及び権限付与をユーザに求め、コンテンツ管理システムと通信し、追加のリソースをダウンロードし、かつ、クライアントサイド・アプリケーションをインストールするのに必要な情報等の、インストールプロセスを開始するのに必要な情報のみを含むインストーラでありうる。ライトインストーラのサイズを最小限にすることによって、ライトインストーラが迅速にダウンロード可能になり、その後に短時間でクライアントサイド・アプリケーションのインストールが開始可能になる。
【０００８】
更に、ライトインストーラは、インストールプロセスに伴うユーザ・インタラクション時間を最小限にするよう構成されうる。例えば、ライトインストーラは、インストールプロセスの初期に、任意の必要な情報及び権限付与をユーザに求めるように構成されうる。更に、ライトインストーラは、ユーザからの更なる権限付与なしでクライアントサイド・アプリケーションの全コンポーネントをライトインストーラがインストールできるようにする、管理権限付与を要求しうる。迅速なダウンロード時間の組み合わせ、インストールプロセスにおいて早期に全てのユーザ・インタラクションを進めること、及び管理権限付与を取得することによって、クライアントサイド・アプリケーションのインストールをユーザが要求してから、インストールのための全ての必要な入力を当該ユーザが提供するまでの時間を、大いに最小限に抑える結果となりうる。これにより、クライアントサイド・アプリケーションのインストールをユーザが完遂する可能性を増加させることができる。
【０００９】
いくつかの実施形態では、コンテンツ管理システムは、インストールプロセスの間に使用されるデータをライトインストーラにタグ付けしうる。例えば、ライトインストーラには、クライアントデバイスに関連付けられたユーザアカウントを識別するデータがタグ付けされうる。タグ付けされたデータは、報告、インストールプロセスの間のデータの事前設定、インストールプロセスのカスタマイズ等のために使用されうる。
【００１０】
更に、いくつかの実施形態では、タグ付けされたデータは、インストールプロセスの完遂に応じた、クライアントサイド・アプリケーションへの事前権限付与のために使用されうる。クライアントサイド・アプリケーションへの事前権限付与は、当該クライアントサイド・アプリケーションを、クライアントデバイスに関連付けられたアカウントへ自動的にログインさせることを含みうる。これは、コンテンツ管理システム上のアカウントへのクライアントサイド・アプリケーションのアクセスを許可することを含みうる。
【図面の簡単な説明】
【００１１】
本開示についての上述の及び他の利点及び特徴は、添付の図面に示されるそれらの具体的な実施形態を参照することによって明らかになる。それらの図面が本開示の例示的な実施形態のみを図示しており、かつ、それ故にその範囲を限定するものとみなされるべきではないことを理解することで、本明細書の原理は、以下の図面の使用を通して追加的な具体度及び詳細度で記載及び説明される。
【００１２】
【図１】本発明に係るデバイス及びネットワークの例示的な構成を示す図。
【００１３】
【図２】ライトインストーラへタグ付けする例示的な方法の実施形態を示す図。
【００１４】
【図３】ライトインストーラを使用してクライアントサイド・アプリケーションをインストールする例示的な方法の実施形態を示す図。
【００１５】
【図４】クライアントサイド・アプリケーションに、ユーザアカウントにアクセスする権限を事前に付与する例示的な方法の実施形態を示す図。
【００１６】
【図５Ａ】、
【図５Ｂ】可能性のある例示的なシステムの実施形態を示す図。
【発明を実施するための形態】
【００１７】
本開示の種々の実施形態について以下で詳しく議論する。具体的な実施形態について議論するものの、これは例示のみを目的として行われていると理解されるべきである。当業者であれば、本開示の精神及び範囲を逸脱せずに他の構成要素及び構成が使用されうることを理解するであろう。
【００１８】
開示した技術は、当該技術分野における、ライトインストーラを利用してクライアントサイド・アプリケーションをクライアントデバイスにインストールする必要性に対処する。ライトインストーラは、必要となるデータ及び権限付与をユーザに求め、コンテンツ管理システムと通信し、追加のリソースをダウンロードし、かつ、クライアントサイド・アプリケーションをインストールするのに必要な情報等の、インストールプロセスを開始するのに必要な情報のみを含むインストーラでありうる。ライトインストーラのサイズを最小限にすることによって、ライトインストーラが迅速にダウンロード可能になり、その後に短時間でクライアントサイド・アプリケーションのインストールが開始可能になる。
【００１９】
更に、ライトインストーラは、インストールプロセスに伴うユーザ・インタラクション時間を最小限にするよう構成されうる。例えば、ライトインストーラは、インストールプロセスの初期に、任意の必要な情報及び権限付与をユーザに求めるように構成されうる。更に、ライトインストーラは、ユーザからの更なる権限付与なしでクライアントサイド・アプリケーションの全コンポーネントをライトインストーラがインストールできるようにする、管理権限付与を要求しうる。迅速なダウンロード時間の組み合わせ、インストールプロセスにおいて早期に全てのユーザ・インタラクションを進めること、及び管理権限付与を取得することによって、クライアントサイド・アプリケーションのインストールをユーザが要求してから、インストールのための全ての必要な入力を当該ユーザが提供するまでの時間を、大いに最小限に抑える結果となりうる。これにより、クライアントサイド・アプリケーションのインストールをユーザが完遂する可能性を増加させることができる。
【００２０】
いくつかの実施形態では、コンテンツ管理システムは、インストールプロセスの間に使用されるデータをライトインストーラにタグ付けしうる。例えば、ライトインストーラには、クライアントデバイスに関連付けられたユーザアカウントを識別するデータがタグ付けされうる。タグ付けされたデータは、報告、インストールプロセスの間のデータの事前設定、インストールプロセスのカスタマイズ等のために使用されうる。
【００２１】
更に、いくつかの実施形態では、タグ付けされたデータは、インストールプロセスの完遂に応じた、クライアントサイド・アプリケーションへの事前権限付与のために使用されうる。クライアントサイド・アプリケーションへの事前権限付与は、ユーザアカウント・クレデンシャルを事前設定することを含みうる。あるいは、事前権限付与は、クライアントサイド・アプリケーションを、クライアントデバイスに関連付けられたアカウントへ自動的にログインさせることを含みうる。これは、コンテンツ管理システム上のアカウントへのクライアントサイド・アプリケーションのアクセスを許可することを含みうる。
【００２２】
図１は、例示的なシステム構成１００を示しており、同図において、電子機器は、コンテンツ及び他のデータをやりとりするために、ネットワークを介して通信する。当該システムは、図１に示されるようなワイドエリアネットワークで使用されるように構成されうる。しかし、本原理は、電子機器の相互通信を促進する多くの種類のネットワーク構成に適用可能である。例えば、図１のシステム１００の各コンポーネントは、ネットワーク内で局所的または分散的な方法で実現されうる。
【００２３】
システム１００において、ユーザは、直接及び／または間接の通信によりネットワーク１０４に接続されたクライアントデバイス１０２1，１０２2，...，１０２n（まとめて「１０２」）を通じて、コンテンツ管理システム１０６とのインタラクションが可能である。コンテンツ管理システム１０６は、デスクトップコンピュータ、モバイル通信デバイス（例えば、携帯電話、スマートフォン、タブレット）、セットトップボックス、及び／または他の任意のネットワーク使用可能なコンピューティングデバイスといった、種々の異なるクライアントデバイスからの接続をサポート可能である。クライアントデバイス１０２は、様々なタイプ、能力、オペレーティングシステム等のものであってよい。更には、コンテンツ管理システム１０６は、複数のクライアントデバイス１０２からの接続を同時に受け付けることが可能であるとともに、複数のクライアントデバイス１０２と同時にインタラクションを行うことが可能である。
【００２４】
ユーザは、クライアントデバイス１０２iにインストールされたクライアントサイド・アプリケーションを介して、コンテンツ管理システム１０６とのインタラクションを行うことが可能である。いくつかの実施形態では、クライアントサイド・アプリケーションは、コンテンツ管理システム固有のコンポーネントを含みうる。例えば、当該コンポーネントは、スタンドアロン・アプリケーション、一つ以上のアプリケーション・プラグイン、及び／またはブラウザ拡張であってもよい。しかし、ユーザは、クライアントデバイス１０２iに存在し、かつ、コンテンツ管理システム１０６と通信するよう構成された、ウェブブラウザ等のサードパーティ・アプリケーションを介して、コンテンツ管理システム１０６とのインタラクションを行うことも可能である。それぞれのケースにおいて、クライアントサイド・アプリケーションは、コンテンツ管理システム１０６とのインタラクションをユーザが行うためのユーザインタフェース（ＵＩ）を提示しうる。例えば、ユーザは、ファイルシステムと一体化したクライアントサイド・アプリケーションを介して、または、ウェブブラウザ・アプリケーションを用いて表示されるウェブページを介して、コンテンツ管理システム１０６とのインタラクションを行うことが可能である。
【００２５】
コンテンツ管理システム１０６は、ユーザがコンテンツを保存するのを可能にしうるとともに、コンテンツの取り出し、変更、ブラウジング及び／または共有といった種々のコンテンツ管理タスクをユーザが実行することを可能にうる。更には、コンテンツ管理システム１０６は、ユーザが複数のクライアントデバイス１０２からコンテンツにアクセスすることを可能にしうる。例えば、クライアントデバイス１０２iは、ネットワーク１０４を介してコンテンツ管理システム１０６へコンテンツをアップロード可能である。当該コンテンツは、その後、同一のクライアントデバイス１０２iまたは他の何らかのクライアントデバイス１０２jを使用して、コンテンツ管理システム１０６から取り出し可能である。
【００２６】
種々のコンテンツ管理サービスを促進するために、ユーザは、コンテンツ管理システム１０６のアカウントを作成できる。アカウント情報は、ユーザアカウント・データベース１５０に保持されうる。ユーザアカウント・データベース１５０には、登録されたユーザについてのプロファイル情報を保存できる。場合によっては、ユーザプロファイルの個人情報のみは、ユーザ名及び／または電子メールアドレスであってもよい。しかし、コンテンツ管理システム１０６は、追加のユーザ情報を受け付けるように構成されてもよい。
【００２７】
ユーザアカウント・データベース１５０は、アカウントタイプ（例えば、フリーまたは有料）、利用情報（例えば、ファイル編集履歴）、権限を与えられた最大ストレージスペース、使用済みのストレージスペース、コンテンツ格納先、セキュリティ設定、個人コンフィギュレーション設定、コンテンツ共有データ等の、アカウント管理情報を含むことも可能である。アカウント管理モジュール１２４は、ユーザアカウント・データベース１５０内のユーザアカウントの詳細を更新及び／または取得するように構成されうる。アカウント管理モジュール１２４は、コンテンツ管理システム１０６内の任意の数の他のモジュールとのインタラクションを行うように構成されうる。
【００２８】
アカウントは、当該アカウントに対して権限付与された一つ以上のクライアントデバイス１０２から、デジタルデータ、ドキュメント、テキストファイル、音声ファイル、映像ファイル等のコンテンツを保存するために使用されうる。コンテンツは、更に、異なる挙動を有する種々のタイプのフォルダを含みうるか、または、コレクション、プレイリスト、アルバム等の、コンテンツアイテムを一緒にグループ化する他のメカニズムを含みうる。例えば、アカウントは、あらゆるユーザがアクセス可能なパブリックフォルダを含みうる。パブリックフォルダは、ウェブアクセス可能なアドレスを割り当てられうる。パブリックフォルダのコンテンツにアクセスするために、ウェブアクセス可能なアドレスへのリンクが使用されうる。他の例では、アカウントは、写真を対象とし、かつ、写真に合った特有の属性及び動作を提供する写真フォルダ、音声ファイルを再生し、かつ、他の音声関連動作を実行する能力を提供する音声フォルダ、または、他の特殊用途フォルダを含みうる。アカウントは、複数のユーザアカウントとリンクされ、かつ、複数のユーザアカウントが利用可能な共有フォルダまたはグループフォルダも含みうる。複数のユーザへの許可は、共有フォルダによって異なっていてもよい。
【００２９】
コンテンツは、コンテンツストレージ１６０に保存されうる。コンテンツストレージ１６０は、ストレージデバイスであってもよいし、複数のストレージデバイスであってもよいし、またはサーバであってもよい。あるいは、コンテンツストレージ１６０は、一つ以上の通信ネットワークを介してアクセス可能なクラウドストレージ・プロバイダまたはネットワークストレージであってもよい。コンテンツ管理システム１０６は、コンテンツアイテムがコンテンツ管理システム１０６によってどこに保存されているかをクライアントデバイス１０２が正確に知る必要がないように、クライアントデバイス１０２に複雑度及び詳細を隠しうる。一つの変形において、コンテンツ管理システム１０６は、コンテンツアイテムを、クライアントデバイス１０２上に現れるのと同じフォルダ階層で保存しうる。しかし、コンテンツ管理システム１０６は、コンテンツアイテムを、それ独自の順序、配置または階層で保存しうる。コンテンツ管理システム１０６は、コンテンツアイテムを、ネットワークアクセス可能ストレージ（ＳＡＮ）デバイス、複数の個別ディスクから成る冗長アレイ（ＲＡＩＤ）等に保存しうる。コンテンツストレージ１６０は、コンテンツアイテムを、一つ以上のパーティションタイプ（ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＲｅｉｓｅｒＦＳ、ＢＴＲＦＳ等）を使用して保存しうる。
【００３０】
コンテンツストレージ１６０は、コンテンツアイテムを記述したメタデータ、コンテンツアイテムのタイプ、及び、種々のアカウント、フォルダまたはグループに対するコンテンツアイテムの関係の保存もしうる。コンテンツアイテム用のメタデータは、当該コンテンツアイテムの一部として保存されうるか、または個別に保存されうる。一つの変形において、コンテンツストレージ１６０に保存されるコンテンツアイテムは、システム全体で固有の識別子を割り当てられうる。
【００３１】
コンテンツストレージ１６０は、重複ファイルまたはファイルの重複セグメントを識別することで、必要となるストレージスペースの量を低減しうる。複数のコピーを保存することに代えて、コンテンツストレージ１６０は、単一のコピーを保存しうるとともに、その後に、当該単一のコピーに複製をリンクさせるポインタまたは他のメカニズムを使用しうる。同様に、コンテンツストレージ１６０は、より効率的にファイルを保存しうるとともに、ファイルに対する変更を追跡するファイルバージョン制御、（分岐バージョンツリーを含む）ファイルの異なるバージョン、及び変更履歴を使用することによって、動作を取り消す能力を提供しうる。変更履歴は、最初のファイルバージョンに適用された際に変更ファイルバージョンを生成する変更のセットを含みうる。
【００３２】
コンテンツ管理システム１０６は、一つ以上のクライアントデバイス１０２からのコンテンツの自動同期をサポートするように構成されうる。当該同期は、プラットフォーム非依存型であってもよい。即ち、様々なタイプ、能力、オペレーティングシステム等の複数のクライアントデバイス１０２にわたってコンテンツが同期化されうる。例えば、クライアントデバイス１０２iは、クライアントデバイス１０２iのファイルシステムのコンテンツを、関連付けられたユーザアカウントのコンテンツと、コンテンツ管理システム１０６の同期モジュール１３２を介して同期化するクライアントソフトウェアを含みうる。場合によっては、クライアントソフトウェアは、新しい、削除された、変更された、コピーされた、または移動されたファイルまたはフォルダといった、指定されたフォルダ及びそのフォルダ内のコンテンツに対するあらゆる変更を同期化しうる。クライアントソフトウェアは、個別のソフトウェアアプリケーションであってもよいし、オペレーティングシステム既存のコンテンツ管理アプリケーションと一体化されてもよいし、または、それらの何らかの組み合わせであってもよい。既存のコンテンツ管理アプリケーションと一体化したクライアントソフトウェアの一例では、ユーザは、ローカルフォルダ内で直接的にコンテンツを操作可能である一方で、バックグラウンドプロセスは、変更に関して当該ローカルフォルダを監視し、かつ、それらの変更をコンテンツ管理システム１０６に同期化する。逆に、当該バックグラウンドプロセスは、コンテンツ管理システム１０６において更新されているコンテンツを識別し、かつ、それらの変更をローカルフォルダに同期化しうる。クライアントソフトウェアは、同期動作の通知を提供しうるとともに、コンテンツ管理アプリケーション内で直接的にコンテンツ状況の指標を提供しうる。時には、クライアントデバイス１０２は、利用可能なネットワーク接続を有していないことがある。このシナリオでは、クライアントソフトウェアは、リンクされたフォルダをファイル変更に関して監視しうるとともに、ネットワーク接続が利用可能となった際の、コンテンツ管理システム１０６へのその後の同期のために、それらの変更をキューイングしうる。同様に、ユーザは、コンテンツ管理システム１０６との同期を手動で停止または中断できる。
【００３３】
ユーザは、ユーザインタフェースモジュール１２２によって生成及びサービスされるウェブインタフェースを介して、コンテンツを見る、または操作することも可能である。例えば、ユーザは、ウェブブラウザ内で、コンテンツ管理システム１０６によって提供されるウェブアドレスに対してナビゲートできる。ファイルの新しいバージョンのアップロード等の、ウェブインタフェースを通じて行われるコンテンツストレージ１６０内のコンテンツの変更または更新は、ユーザアカウントに関連付けられた他のクライアントデバイス１０２のもとへ伝えられうる。例えば、複数のクライアントデバイス１０２は、それぞれが独自のクライアントソフトウェアを有し、単一のアカウントと関連付けられうるとともに、当該アカウント内のファイルは、複数のクライアントデバイス１０２のそれぞれの間で同期化されうる。
【００３４】
コンテンツ管理システム１０６は、種々のクライアントデバイス１０２とインタフェースする通信インタフェース１２０を含みうるとともに、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して他のコンテンツプロバイダ及び／またはサービスプロバイダ１０９1，１０９2，...，１０９n（まとめて「１０９」）とのインタラクションを行いうる。特定のソフトウェアアプリケーションは、ユーザの代わりにＡＰＩを介してコンテンツストレージ１６０にアクセスしうる。例えば、スマートフォンまたはタブレット型コンピューティングデバイス上のアプリのようなソフトウェアパッケージは、コンテンツの読み取り、書き込み、作成、削除、共有またはその他の操作を行うためにユーザがクレデンシャルを提供する際に、コンテンツ管理システム１０６にプログラムで直接的に発呼しうる。同様に、ＡＰＩは、ユーザがウェブサイトを介してコンテンツストレージ１６０の全てまたは一部にアクセスすることを可能にする。
【００３５】
コンテンツ管理システム１０６は、権限付与されたクライアント及びユーザのみファイルにアクセスすることを確保するために、ユーザ・クレデンシャル、セキュリティトークン、ＡＰＩ呼、特定のクライアントデバイス等を検証しうる認証モジュール１２６も含みうる。更に、コンテンツ管理システム１０６は、アグリゲートファイル操作、ユーザ動作、ネットワーク利用、使用済みの全ストレージスペースと、他の技術、利用またはビジネスメトリックとについての追跡及び報告をしうる分析モジュール１３４を含みうる。プライバシー及び／またはセキュリティポリシーは、コンテンツ管理システム１０６に保存されたユーザデータへの権限のないアクセスを防止しうる。
【００３６】
コンテンツ管理システム１０６は、コンテンツの公開または非公開による共有を管理する共有モジュール１３０を含みうる。公開によるコンテンツの共有は、コンテンツアイテムを、コンテンツ管理システム１０６とネットワーク通信するあらゆるコンピューティングデバイスからアクセス可能にすることを含みうる。非公開によるコンテンツの共有は、各ユーザアカウントがコンテンツアイテムにアクセス可能になるように、コンテンツストレージ１６０内の当該コンテンツアイテムを、二つ以上のユーザアカウントとリンクさせることを含みうる。この共有は、プラットフォーム非依存で実行されうる。即ち、コンテンツは、様々なタイプ、能力、オペレーティングシステム等の複数のクライアントデバイス１０２間で共有されうる。コンテンツは更に、様々なタイプのユーザアカウント間で共有されうる。
【００３７】
いくつかの実施形態では、コンテンツ管理システム１０６は、コンテンツストレージ１６０内の各コンテンツアイテムの場所を識別するコンテンツディレクトリを維持するように構成されうる。コンテンツディレクトリは、コンテンツストレージに保存されているコンテンツアイテムごとに固有のコンテンツエントリを含みうる。
【００３８】
コンテンツエントリは、コンテンツ管理システム内のコンテンツアイテムの場所を識別するために使用されうるコンテンツパスを含みうる。例えば、コンテンツパスは、コンテンツアイテム名と、当該コンテンツアイテムに関連付けられたフォルダ階層とを含みうる。例えば、コンテンツパスは、コンテンツアイテムが配置されたフォルダまたはフォルダのパスとコンテンツアイテム名とを含みうる。コンテンツ管理システム１０６は、コンテンツパスを使用して、適切なフォルダ階層内にコンテンツアイテムを提示しうる。
【００３９】
コンテンツエントリは、コンテンツストレージ１６０内のコンテンツアイテムの場所を識別するコンテンツポインタも含みうる。例えば、コンテンツポインタは、メモリ内のコンテンツアイテムの正確なストレージアドレスを含みうる。いくつかの実施形態では、コンテンツポインタは、それぞれがコンテンツアイテムの一部を含む複数の場所を指し示しうる。
【００４０】
コンテンツパス及びコンテンツポインタに加えて、コンテンツエントリは、コンテンツアイテムへのアクセスをアクセス可能なユーザアカウントを識別するユーザアカウント識別子も含みうる。いくつかの実施形態では、複数のユーザアカウント識別子は、コンテンツアイテムが複数のユーザアカウントによる共有アクセスが可能であることを示す単一のコンテンツエントリと関連付けられうる。
【００４１】
非公開によりコンテンツアイテムを共有するために、共有モジュール１３０は、コンテンツアイテムと関連付けられたコンテンツエントリにユーザアカウント識別子を追加するように構成されてもよく、これにより、コンテンツアイテムへのアクセスが、追加されたユーザアカウントに許可される。共有モジュール１３０は更に、コンテンツアイテムへのユーザアカウントのアクセスを制限するために、コンテンツエントリからユーザアカウント識別子を削除するように構成されうる。
【００４２】
公開によりコンテンツを共有するために、共有モジュール１３０は、あらゆるブラウザが認証なしでコンテンツ管理システム１０６へアクセスすることを可能にする、ユニフォームリソースロケータ（ＵＲＬ）等のカスタムネットワークアドレスを生成するように構成されうる。これを実現するために、共有モジュール１３０は、要求されたコンテンツアイテムを適切に識別して返送するために後で用いられうるコンテンツ識別子を、生成されたＵＲＬに含めるように構成されうる。例えば、共有モジュール１３０は、生成されたＵＲＬに、ユーザアカウント識別子及びコンテンツパスを含めるように構成されうる。ＵＲＬの選択に応じて、当該ＵＲＬに含まれるコンテンツ識別子データは、受信したコンテンツ識別子データを使用して適切なコンテンツエントリを識別し、かつ、当該コンテンツエントリに関連付けられたコンテンツアイテムを返送しうるコンテンツ管理システム１０６へ送信されうる。
【００４３】
ＵＲＬの生成に加えて、共有モジュール１３０は更に、コンテンツアイテムへのＵＲＬが作成されたことを記録するように構成されうる。いくつかの実施形態では、コンテンツアイテムに関連付けられたコンテンツエントリは、コンテンツアイテムへのＵＲＬが作成されたかどうかを示すＵＲＬフラグを含みうる。例えば、ＵＲＬフラグは、コンテンツアイテムへのＵＲＬが作成されていないことを示しうる０又は偽に最初に設定されるブール値であってもよい。共有モジュール１３０は、コンテンツアイテムへのＵＲＬが生成された後にフラグの値を１又は真に変更するように構成されうる。
【００４４】
いくつかの実施形態では、共有モジュール１３０は更に、生成されたＵＲＬを非アクティブ化するように構成されうる。例えば、各コンテンツエントリは更に、生成されたＵＲＬからの要求に応じてコンテンツを返送すべきかどうかを示すＵＲＬアクティブフラグを含みうる。例えば、共有モジュール１３０は、ＵＲＬアクティブフラグが１又は真に設定されている場合に生成されたリンクによって要求されたコンテンツアイテムのみを返送するように構成されうる。このようにして、ＵＲＬが生成されているコンテンツアイテムへのアクセスを、ＵＲＬアクティブフラグの値を変更することによって容易に制限できる。これにより、ユーザが、コンテンツアイテムを移動させたり生成されたＵＲＬを削除したりすることなく、共有コンテンツへのアクセスを制限することが可能になる。同様に、共有モジュール１３０は、ＵＲＬアクティブフラグの値を１又は真に再び変更することによってＵＲＬを再アクティブ化できる。このため、ユーザは、新たなＵＲＬを生成する必要なくコンテンツアイテムへのアクセスを容易に復元できる。
【００４５】
コンテンツ管理システム１０６は、特定のコンポーネントを与えられて示されているものの、当業者は、システム１０６の構造上の構成が単に一つの可能性のある構成であること、及び、多少のコンポーネントが与えられた他の構成も可能であることを理解すべきである。例えば、いくつかの実施形態では、コンテンツ管理システム１０６は、クライアントデバイス１０２iがコンテンツ管理システム１０６とインタラクションを行うことを可能にするクライアントサイド・アプリケーションをインストールするように構成されたクライアントデバイス１０２iに、ライトインストーラを提供しうる。ライトインストーラは、クライアントデバイス１０２iにクライアントサイド・アプリケーションをインストールするのに必要なユーザ時間及びインタラクションを最小限にするよう構成されたアプリケーションであってよく、それにより、クライアントサイド・アプリケーションのインストールが完遂される可能性が増加する。
【００４６】
これを実現するために、コンテンツ管理システム１０６は、クライアントデバイス１０２iにライトインストーラを提供し、かつ、クライアントデバイス１０２iに対するクライアントサイド・アプリケーションのインストールを支援するライトイントーラと通信するように構成されたクライアントインストールモジュール１３６を含みうる。クライアントサイド・アプリケーションのインストールに必要なユーザ時間及びインタラクションの量を最小限にするために、ライトインストーラは、クライアントサイド・アプリケーションのインストールを開始するために必要なデータのみを含みうる。例えば、ライトインストーラは、インストールプロセスを開始するためにクライアントデバイス１０２iがコンテンツ管理システム１０６とのインタラクションを行えるようにするとともに、必要となる任意の情報及び／または権限付与をユーザに求めるのに必要なデータだけを含みうる。
【００４７】
クライアントサイド・アプリケーションのインストールを開始するのに必要なデータのみを含むようにライトインストーラのサイズを低減することによって、ライトインストーラのインストールを開始するのに必要なダウンロード時間を大幅に低減できる。これにより、クライアントサイド・アプリケーションのダウンロードを要求後に可能な限り早くにユーザがクライアントサイド・アプリケーションのインストールプロセスを開始させることが可能になり、その結果、ユーザが当該プロセスを完遂するのを忘れるか当該プロセスを中止する可能性が最小限になる。
【００４８】
更に、ライトインストーラは、クライアントサイド・アプリケーションのインストールに必要なユーザ・インタラクション時間を最小限にするよう構成されうる。例えば、インストールプロセスは、ユーザ名、パスワード、連絡先情報等の、必要な情報を入力することをユーザに要求しうる。更に、インストールプロセスは、クライアントデバイス１０２iにクライアントサイド・アプリケーションをインストールする権限をライトインストーラに付与することをユーザに要求しうる。これは、ライトインストーラの任意の更なるコンポーネントを自由にインストールするための管理権を、ライトインストーラに与えることを含みうる。ユーザ・インタラクション時間を最小限にするために、ライトインストーラは、インストールプロセスの初期に、任意の必要な情報をユーザに求めるように構成されうる。更に、ライトインストーラは、クライアントサイド・アプリケーションの任意の更なるコンポーネントをインストールすることをライトインストーラに許可することを、ユーザに求めるように構成されうる。必要な情報及び権限付与をユーザからインストールプロセスの初期に取得することによって、ユーザは、インストールについてユーザが興味を失うまたは忘れることにつながる、長時間待機すること及び繰り返しインストーラに戻る必要なしで、必要なインタラクションを迅速に行うことができる。
【００４９】
クライアントデバイス１０２iにライトインストーラを提供するために、クライアントインストールモジュール１３６は、クライアントデバイス１０２iがクライアントサイド・アプリケーションのインストールを要求したことに応じて、ライトインストーラをクライアントデバイス１０２iに送信するように構成されうる。例えば、ユーザは、クライアントデバイス１０２iへのクライアントサイド・アプリケーションのインストールを要求するために、ウェブブラウザやアップストア・アプリケーション等の異なるアプリケーションを使用してコンテンツ管理システム１０６とのインタラクションを行いうる。クライアントインストールモジュール１３６は、当該要求の受信に応じて、クライアントデバイス１０２iにライトインストーラを送信するように構成されうる。
【００５０】
一度ライトインストーラがクライアントデバイス１０２iへダウンロードされると、ライトインストーラは、クライアントサイド・アプリケーションのインストールを開始しうる。これは、必要なデータ及び権限付与をユーザに求めること、クライアントデバイス１０２i上にアプリケーションフォルダを作成すること、集められたデータをコンテンツ管理システム１０６へ送信すること、及び、クライアントサイド・アプリケーションのインストールを完遂するために必要とされるリソースを要求することを含みうる。
【００５１】
いくつかの実施形態では、クライアントインストールモジュール１３６は、クライアントデバイス１０２iにライトインストーラを送信する前に、当該ライトインストーラに情報をタグ付けするように構成されうる。ライトインストーラへの情報のタグ付けは、ライトインストーラ内にデータを埋め込むことを含みうる。
【００５２】
いくつかの実施形態では、クライアントインストールモジュール１３６は、ライトインストーラをコンテンツ管理システム１０６上の既存のユーザアカウントと関連付けるデータを、当該ライトインストーラにタグ付けするように構成されうる。例えば、ウェブブラウザ・アプリケーションを使用してユーザアカウントを作成したユーザが、クライアントサイド・アプリケーションをインストールすることを望む可能性がある。クライアントインストールモジュール１３６は、要求ユーザが既存のアカウントを有していることを判定し、当該既存のアカウントに基づいてライトインストーラにデータをタグ付けするように構成されうる。例えば、当該データは、既存のユーザアカウントを識別するために使用される固有のアカウント識別子を含みうる。
【００５３】
要求ユーザが既存のユーザアカウントを有しているかどうかを判定するために、いくつかの実施形態では、クライアントインストールモジュール１３６は、クライアントサイド・アプリケーションのダウンロード要求が行われた際に、要求ユーザが現在、ユーザアカウントにログインしているかどうかを検出するように構成されうる。例えば、ユーザは、ウェブブラウザ・アプリケーションを使用してユーザアカウントにログインし、その後、ウェブブラウザ・アプリケーションを介してクライアントサイド・アプリケーションのダウンロードを要求しうる。要求ユーザが現在、既存のユーザアカウントにログインしていることをクライアントインストールモジュール１３６が検出した場合、クライアントインストールモジュール１３６は、要求ユーザが既存のユーザアカウントを有していると判定しうる。
【００５４】
あるいは、いくつかの実施形態では、クライアントインストールモジュール１３６は、要求ユーザが既存のユーザアカウントを有していることをクライアントデバイス１０２iに基づいて検出するように構成されうる。例えば、いくつかの実施形態では、クライアントインストールモジュール１３６は、クライアントデバイス１０２iを識別する固有の識別子を集め、その後、当該固有の識別子を使用してクライアントデバイス１０２iで権限付与された任意のユーザアカウントを検索するように構成されうる。いくつかの実施形態では、クライアントインストールモジュール１３６は、当該固有の識別子を、クライアントサイド・アプリケーションのダウンロードの要求の一部としてクライアントデバイス１０２iから受信しうる。あるいは、クライアントインストールモジュール１３６は、当該固有の識別子を要求及び受信するためにクライアントデバイス１０２iと通信するように構成されうる。
【００５５】
ライトインストーラにタグ付けされたデータは、多数の目的のために使用されうる。いくつかの実施形態では、タグ付けされたデータは、報告目的のために使用されうる。例えば、ライトインストーラは、クライアントサイド・アプリケーションのインストールの進捗についてコンテンツ管理システム１０６に通知する情報を、コンテンツ管理システム１０６へ定期的に送信するように構成されうる。この定期的な報告は、ユーザアカウントを識別する埋め込みデータを含んでもよく、それにより、コンテンツ管理システムが進捗報告を既存のアカウントと関連付けることが可能になる。ユーザがインストールの完遂に失敗した場合、コンテンツ管理システム１０６は、当該ユーザにリマインダまたはインセンティブを送りうる。
【００５６】
ライトインストーラは、ユーザが要求されたデータを入力したこと、ユーザが権限付与を提供したこと、規定の割合のデータがダウンロードされたこと、ダウンロードが完了したこと等の、所定のマイルストーンにインストールプロセスが達した際に、報告メッセージを送信するように構成されうる。更に、ライトインストーラは、インストールプロセスの間にエラーまたは問題が生じた場合に、あるいはインストールプロセスがキャンセルされた場合に、報告メッセージを送信するように構成されうる。
【００５７】
報告に加えて、タグ付けされたデータは更に、ユーザが、新しいアカウントを作成するのではなく、その既存のアカウントを使用してクライアントサイド・アプリケーションをインストールすることを確保するために使用されうる。場合によっては、ユーザは、クライアントサイド・アプリケーションをインストールする際にうっかりまたは知らずに新しいログイン情報を入力し、その結果、二つの個別のユーザアカウントがコンテンツ管理システム１０６上に生じることになりうる。これは、ユーザのコンテンツが当該二つのアカウントにわたって分割されてユーザの混乱を生み出すため、または、ユーザが最初のアカウントを放棄してコンテンツ管理システム１０６内で多数の未使用のユーザアカウントが生じることにつながりうるため、望ましくない。
【００５８】
クライアントサイド・アプリケーションのインストール時にユーザが新しいアカウントを作成するのを阻止するために、いくつかの実施形態では、ライトインストーラにタグ付けされたデータは、ユーザ・クレデンシャル等のユーザアカウントデータを事前設定（pre-populate）するために使用されうる。例えば、ライトインストーラにタグ付けされたデータは、ユーザの既存ユーザアカウントと関連付けられた電子メールアドレスまたはユーザ名を含みうる。このデータは、インストール中に適切なフィールドに事前設定され、それにより、当該ユーザアカウントに関連付けられた適切なパスワードの入力がユーザに求められうる。
【００５９】
あるいは、いくつかの実施形態では、ライトインストーラは、当該ライトインストーラにタグ付けされたデータに基づいて、ユーザに別の求めを行うように構成されうる。例えば、既存のユーザアカウントを識別するデータがライトインストーラにタグ付けされている場合に、当該ライトインストーラは、既存のユーザアカウント用のユーザ名及びパスワードを入力することを求めるように構成されうる。あるいは、ライトインストーラにデータがタグ付けされていないか、要求ユーザと関連付けられた既存のユーザアカウントが存在しないことを示すデータがタグ付けされている場合に、ライトインストーラは、新しいアカウントを作成するためのデータの入力をユーザに求めうる。
【００６０】
更には、いくつかの実施形態では、ライトインストーラにタグ付けされたデータは、インストールの完了に応じてクライアントサイド・アカウントに事前権限付与を行うために使用されうる。クライアントサイド・アプリケーションへの事前権限付与は、ユーザアカウント・クレデンシャルを事前設定することを含みうる。あるいは、事前権限付与は、ユーザがそのアカウントに自動的にログインすることを含みうる。これを実現するために、ウェブブラウザを介して提供されたユーザ・クレデンシャルが、例えばセキュアトークンのやりとりを通じて、同じユーザアカウントにアクセスする権限を付与するためにクライアントサイド・アプリケーションへ提供されうる。ウェブブラウザ・アプリケーションを使用してアカウントにログインし、その後、当該アカウントにまだログインしている間にクライアントサイド・アプリケーションのインストールを開始させたユーザは、インストールプロセスの一部としてクライアントサイド・アプリケーション上のアカウントに自動的にログインされうる。
【００６１】
このタイプの実施形態では、クライアントインストールモジュール１３６は、クライアントサイド・アプリケーションのインストールの要求をクライアントデバイス１０２iから受信すると、要求ユーザが現在、ユーザアカウントにログインしているかどうかを判定するように構成されうる。例えば、クライアントインストールモジュール１３６は、例えばウェブブラウザ・アプリケーションを使用してクライアントデバイス１０２iがユーザアカウントにログインしているかどうかを判定しうる。クライアントインストールモジュール１３６は、クライアントデバイス１０２iがユーザアカウントにログインしていると判定した場合、クライアントインストールモジュール１３６は、当該ユーザアカウントを識別するデータをライトインストーラにタグ付けしうる。ライトインストーラは、その後、ユーザアカウントを識別する、タグ付けされたデータを、クライアントサイド・アプリケーションのインストールの完了に応じてコンテンツ管理システム１０６へ送信しうるとともに、コンテンツ管理システム１０６は、その後、クライアントサイド・アプリケーションに、識別されたアカウントにログインする権限を付与しうる。
【００６２】
いくつかの実施形態では、コンテンツ管理システム１０６は、タグ付けされたデータに加えて、ユーザアカウントにアクセスする権限をクライアントサイド・アプリケーションに事前付与するためのデータを要求しうる。例えば、ユーザが、クライアントデバイス１０２iにダウンロードされたライトインストーラを友人と共有する場合には、当該ユーザは、当該ユーザのユーザアカウントに当該友人がアクセスする権限を事前付与されることを望まないであろう。したがって、コンテンツ管理システム１０６は、クライアントサイド・アプリケーションが適切なユーザのクライアントデバイスにインストールされたことを判定するための追加の情報を要求しうる。
【００６３】
いくつかの実施形態では、コンテンツ管理システム１０６は、クライアントサイド・アプリケーションをインストールするクライアントデバイスが、ライトインストーラが元々ダウンロードされたクライアントデバイスと同じクライアントデバイスであることの権限付与を要求しうる。例えば、クライアントインストールモジュール１３６は、要求クライアントデバイスを識別するデータをライトインストーラにタグ付けするように構成されうる。これにより、クライアントデバイス１０２iから要求が受信された場合に、クライアントインストールモジュール１３６は、クライアントデバイス１０２iとユーザアカウントとを識別するデータをライトインストーラにタグ付けしうる。ライトインストーラは、その後、クライアントサイド・アプリケーションのインストールの完了時に、クライアントデバイス１０２iを識別するデータをコンテンツ管理システム１０６へ送信しうる。コンテンツ管理システム１０６は、その後、クライアントサイド・アプリケーションをインストールしたクライアントデバイスが、タグ付けされたデータによって識別されるクライアントデバイスと一致するかどうかに基づいて、事前権限付与を条件付ける。
【００６４】
図２は、コンテンツ管理システムが要求クライアントデバイス用のライトインストーラにタグ付けする、例示的な方法の実施形態を示す。図示するように、本方法は、ブロック２０５において始まり、当該ブロックで、コンテンツ管理システムは、クライアントデバイスからインストール要求を受信する。当該インストール要求は、クライアントサイド・アプリケーションをクライアントデバイスにインストールするための要求であってよい。例えば、当該要求は、コンテンツ管理システムと通信するためにウェブブラウザまたはアップストア・アプリケーションを使用して、クライアントサイド・アプリケーションのインストールをユーザが選択した結果として受信されうる。
【００６５】
インストール要求の受信に応じて、本方法はブロック２１０へ続き、当該ブロックで、コンテンツ管理システムは、要求クライアントデバイスが、コンテンツ管理システム上の既存のユーザアカウントと関連付けられているかどうかを判定する。いくつかの実施形態では、コンテンツ管理システムは、例えばウェブブラウザ・アプリケーションを通じてクライアントデバイスが現在、ユーザアカウントにログインしているかどうかを判定しうる。あるいは、いくつかの実施形態では、クライアントデバイスを識別する識別子が、当該クライアントデバイスで権限付与された任意のユーザアカウントを検索するために使用されうる。
【００６６】
ブロック２１０においてユーザアカウントが要求クライアントデバイスと関連付けられていると判定された場合、本方法は、ブロック２１５へ続き、当該ブロックで、クライアントサイド・アプリケーションをインストールするように構成されたライトインストーラは、コンテンツ管理システムによってタグ付けされる。ライトインストーラへのタグ付けは、ライトインストーラ内にデータを埋め込むことを含みうる。例えば、ライトインストーラは、固有のアカウント識別子等の、クライアントデバイスと関連付けられたユーザアカウントを識別するデータをタグ付けされうる。あるいは、ユーザのログイン等の、アカウントと関連付けられたログインデータが、ライトインストーラ内に埋め込まれうる。
【００６７】
ユーザアカウントを識別するデータに加えて、ライトインストーラは、クライアントデバイスを識別するデータをタグ付けされうる。例えば、当該クライアントデバイス用の固有のデバイス識別子が、ライトインストーラ内に埋め込まれうる。
【００６８】
その後、本方法はブロック２２０へ続き、当該ブロックで、コンテンツ管理システムは、タグ付けされたライトインストーラを要求デバイスへ送信する。ブロック２１０においてユーザアカウントがクライアントデバイスと関連付けられていない、または当該クライアントデバイスを有するユーザアカウントを識別できないと判定された場合、本方法は、ブロック２２０へ続き、当該ブロックで、ライトインストーラは、タグ付けされたデータなしでクライアントデバイスへ送信される。あるいは、いくつかの実施形態では、ライトインストーラには、クライアントデバイスに関連付けられていないユーザアカウントを示すデータがタグ付けされうる。その後、本方法は終了する。
【００６９】
図３は、ライトインストーラを使用してコンテンツ管理システムからクライアントサイド・アプリケーションをインストールするクライアントデバイスの例示的な方法の実施形態を示す。図示するように、本方法は、ブロック３０５において始まり、当該ブロックで、インストール要求がコンテンツ管理システムへ送信される。当該インストール要求は、ユーザによる、クライアントサイド・アプリケーションのダウンロードの選択に応じて送信されうる。いくつかの実施形態では、当該インストール要求は、クライアントデバイスを識別する固有のデバイス識別子またはアカウント・クレデンシャル等のデータを含みうる。
【００７０】
インストール要求の送信に応じて、本方法はブロック３１０へ続き、当該ブロックで、ライトインストーラが、コンテンツ管理システムから受信される。当該ライトインストーラは、クライアントサイド・アプリケーションをクライアントデバイスにインストールするように構成されたアプリケーションであってよい。
【００７１】
その後、本方法はブロック３１５へ続き、当該ブロックで、クライアントデバイスは、ライトインストーラを実行する。本方法はその後、ブロック３２０へ進み、当該ブロックで、ライトインストーラは、当該ライトインストーラにタグ付けされた任意のデータに基づいてデータをユーザに求める。データをユーザに求めることは、要求されたデータをユーザが入力可能なユーザインタフェースをユーザに提供することを含みうる。場合によっては、提示される当該ユーザインタフェースは、タグ付けされたデータに基づいて変更されうる。例えば、クライアントデバイスに関連するユーザアカウントと関連付けられたユーザログインまたは電子メールアドレス等の、タグ付けされたデータが、データインタフェースのいくつかのフィールドに事前設定されうる。他の例では、クライアントデバイスが既存のユーザアカウントと関連付けられていることを示すデータがライトインストーラにタグ付けされている場合に、ユーザは、既存のユーザアカウントについてのユーザ名及びパスワードの入力を求められうる。あるいは、既存のユーザアカウントを識別できないことを示すデータがライトインストーラにタグ付けされている場合に、ユーザは、新しいユーザアカウントの作成を求められうる。
【００７２】
その後、本方法はブロック３２５へ続き、当該ブロックで、要求されたユーザデータがユーザから受け取られる。その後、本方法はブロック３３０へ続き、当該ブロックで、クライアントデバイスは、クライアントサイド・アプリケーションをインストールするための権限付与をユーザに求めるインタフェースを提示する。これは、ユーザからの更なる権限付与なしでライトインストーラがクライアントサイド・アプリケーションをインストールすることを可能にできる、ライトインストーラ用の管理権を要求することを含みうる。
【００７３】
ブロック３３５で、要求された権限付与を受けたかどうかが判定される。要求された権限付与を受けなかった場合には、クライアントデバイスにクライアントサイド・アプリケーションがインストールされることなく、本方法は終了する。あるいは、ブロック３３５において要求された権限付与を受けた場合には、本方法はブロック３４０へ続き、当該ブロックで、クライアントサイド・アプリケーションがインストールされる。これは、コンテンツ管理システムにデータを要求すること、クライアントデバイス上にアプリケーションディレクトリを作成すること、及び、クライアントデバイスにクライアントサイド・アプリケーションをインストールすることを含みうる。
【００７４】
クライアントサイド・アプリケーションがインストールされた後、本方法はブロック３４５へ続き、当該ブロックで、クライアントサイド・アプリケーションが実行される。その後、本方法はブロック３５０へ続き、当該ブロックで、クライアントサイド・アプリケーションが事前権限付与されうるかどうかが判定される。例えば、ユーザアカウントを識別するデータがライトインストーラにタグ付けされた場合には、クライアントサイド・アプリケーションは事前権限付与されてよく、その結果、クライアントサイド・アプリケーションが当該ユーザアカウントに自動的にログインされることになる。
【００７５】
ブロック３５０においてクライアントサイド・アプリケーションが事前権限付与されえないと判定された場合には、本方法はブロック３５５へ続き、当該ブロックで、ユーザは、ユーザ名及びログインを求められ、本方法は終了する。あるいは、ブロック３５０においてクライアントサイド・アプリケーションが事前権限付与されうると判定された場合には、本方法はブロック３６０へ続き、当該ブロックで、事前権限付与要求がコンテンツ管理システムへ送信される。事前権限付与要求は、ライトインストーラへタグ付けされたデータと、クライアントデバイスを識別するデバイス識別子等の追加のデータとを含みうる。
【００７６】
ブロック３６５において事前権限付与要求が許可されたと判定された場合、本方法はブロック３７０へ続き、当該ブロックで、クライアントサイド・アプリケーションはログインされ、かつ、ユーザアカウントへのアクセスを与えられ、その後、本方法は終了する。あるいは、ブロック３６５において事前権限付与要求が拒否されたと判定された場合には、本方法はブロック３５５へ続き、当該ブロックで、ユーザは、ユーザ名及びパスワードを求められ、その後、本方法は終了する。
【００７７】
図４は、コンテンツ管理システムが、ユーザアカウントへの事前権限付与をクライアントサイド・アプリケーションに許可する、例示的な方法の実施形態を示している。図示するように、本方法は、ブロック４０５において始まり、当該ブロックで、事前権限付与要求がクライアントデバイスから受信される。事前権限付与要求は、ログイン・クレデンシャルの入力をユーザに要求することなくコンテンツ管理システム上のユーザアカウントにログイン及びアクセスする権限を、クライアントデバイスにインストールされたクライアントサイド・アプリケーションに事前付与するための要求であってよい。
【００７８】
事前権限付与要求は、デバイス識別子等の、要求クライアントデバイスを識別するデータを含みうる。更に、事前権限付与要求は、クライアントデバイスにクライアントサイド・アプリケーションをインストールするために使用されるライトインストーラ内にタグ付けされたデータを含みうる。これは、コンテンツ管理システムからライトインストーラを元々ダウンロードしたクライアントデバイスと関連付けられたユーザアカウントを識別するアカウント識別子と、ライトインストーラを元々ダウンロードしたクライアントデバイスを識別するデバイス識別子とを含みうる。
【００７９】
ブロック４１０で、事前権限付与要求の送信元のクライアントデバイスが、ライトインストーラを元々ダウンロードしたクライアントデバイスと一致するかどうかが判定される。ブロック４１０において事前権限付与要求の送信元のクライアントデバイスが、ライトインストーラを元々ダウンロードしたクライアントデバイスと一致すると判定された場合には、本方法はブロック４１５へ続き、当該ブロックで、事前権限付与要求が承認され、本方法は終了する。あるいは、ブロック４１０において事前権限付与要求の送信元のクライアントデバイスが、ライトインストーラを元々ダウンロードしたクライアントデバイスと一致しないと判定された場合には、本方法はブロック４２０へ続き、当該ブロックで、事前権限付与要求が拒否され、本方法は終了する。
【００８０】
図５Ａ及び図５Ｂは、可能性のある例示的なシステムの実施形態を示す。より適切な実施形態は、本技術を実施した際に当業者に明らかになるであろう。当業者は更に、他のシステムの実施形態が可能であることを容易に理解するであろう。
【００８１】
図５Ａは、従来のシステムバス型のコンピューティングシステム・アーキテクチャ５００を示しており、当該システムのコンポーネントは、バス５０５を使用して互いに電気的な通信を行う。例示的なシステム５００は、処理ユニット（ＣＰＵまたはプロセッサ）５１０と、読み取り専用メモリ（ＲＯＭ）５２０及びランダムアクセスメモリ（ＲＡＭ）５２５等のシステムメモリ５１５を含む種々のシステムコンポーネントを、プロセッサ５１０と結合するシステムバス５０５と、を備える。システム５００は、プロセッサ５１０に直接接続された、プロセッサ５１０に近接した、またはプロセッサ５１０の一部として統合された高速メモリのキャッシュを備える。システム５００は、プロセッサ５１０による迅速なアクセスのために、メモリ５１５及び／またはストレージデバイス５３０からキャッシュ５１２へデータをコピーしうる。このようにして、キャッシュは、データを待っている間のプロセッサ５１０の遅延を回避するパフォーマンス向上を提供しうる。これらのモジュール及び他のモジュールは、種々の動作を実行するようプロセッサ５１０を制御しうる、または制御するよう構成されうる。他のシステムメモリ５１５は、同様に使用可能であってよい。メモリ５１５は、異なるパフォーマンス特性を有する、異なる複数のタイプのメモリを備えうる。プロセッサ５１０は、任意の汎用プロセッサと、プロセッサ５１０を制御するよう構成された、ストレージデバイス５３０内に格納されたモジュール１  ５３２、モジュール２  ５３４及びモジュール３  ５３６等のハードウェアモジュールまたはソフトウェアモジュールの他に、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを備えうる。プロセッサ５１０は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含む、完全内蔵型のコンピューティングシステムであってよい。マルチコアプロセッサは、対称型でもよいし非対称型でもよい。
【００８２】
コンピューティングデバイス５００とのユーザ・インタラクションを可能にするために、入力デバイス５４５は、通話用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチセンサ式スクリーン、キーボード、マウス、モーション入力、スピーチ等の、任意の数の入力メカニズムを表しうる。出力デバイス５３５も、当業者に既知の一つ以上の数の出力メカニズムでありうる。場合によっては、マルチモーダル・システムは、コンピューティングデバイス５００と通信するためにユーザが複数のタイプの入力を提供することを可能にしうる。通信インタフェース５４０は、概して、ユーザ入力及びシステム出力を支配及び管理しうる。いかなる特定のハードウェア構成の動作に対する制限はなく、それ故に、本明細書における基本的な特徴は、改善されたハードウェアまたはファームウェア構成に、その開発につれて容易に置き換えられうる。
【００８３】
ストレージデバイス５３０は、不揮発性メモリであり、ハードディスク、または、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）５２５、読み取り専用メモリ（ＲＯＭ）５２０、及びそれらのハイブリッド等の、コンピュータがアクセスできるデータを格納可能な他のタイプのコンピュータ読み取り可能媒体でありうる。
【００８４】
ストレージデバイス５３０は、プロセッサ５１０の制御用のソフトウェアモジュール５３２，５３４，５３６を含みうる。他のハードウェアまたはソフトウェアモジュールが考慮される。ストレージデバイス５３０は、システムバス５０５に接続されうる。一態様において、特定の機能を実行するハードウェアモジュールは、機能を実行するためにプロセッサ５１０、バス５０５、ディスプレイ５３５等の必要なハードウェアコンポーネントと関連する、コンピュータ読み取り可能媒体に格納されたソフトウェアコンポーネントを含みうる。
【００８５】
図５Ｂは、説明された方法の実行と、グラフィカルユーザインタフェース（ＧＵＩ）の生成及び表示とに使用可能なチップセット・アーキテクチャを有するコンピュータシステム５５０を示す。コンピュータシステム５５０は、開示した技術の実装に使用可能なコンピュータハードウェア、ソフトウェア及びファームウェアの一例である。システム５５０は、特定される計算を実行するように構成されたソフトウェア、ファームウェア及びハードウェアを達成する能力を有する、任意の数の物理的及び／または論理的に区別されるリソースを代表する、プロセッサ５５５を備えうる。プロセッサ５５５は、プロセッサ５５５からの入力及びプロセッサ５５５への出力を制御可能なチップセット５６０と通信しうる。本例では、チップセット５６０は、ディスプレイ等の出力デバイス５６５へ情報を出力し、例えば磁気媒体、固体媒体を含みうるストレージデバイス５７０に対する情報の読み取り及び書き込みを行いうる。チップセット５６０は更に、ＲＡＭ５７５からのデータの読み取り、及びＲＡＭ５７５へのデータの書き込みを行いうる。種々のユーザインタフェース・コンポーネント５８５とインタフェースするブリッジ５８０は、チップセット５６０とのインタフェースのために設けられうる。このようなユーザインタフェース・コンポーネント５８５は、キーボード、マイクロフォン、タッチ検出及び処理回路、マウスのようなポインティングデバイス等を含みうる。一般に、システム５５０への入力は、マシーン生成またはヒューマン生成の種々のソースのいずれかからもたらされうる。
【００８６】
チップセット５６０は更に、異なる物理インタフェースを有しうる一つ以上の通信インタフェース５９０とインタフェースしうる。このような通信インタフェースは、有線及び無線のローカルエリアネットワーク用、広帯域無線通信ネットワーク用、及びパーソナルエリアネットワーク用のインタフェースを含みうる。本明細書で開示されたＧＵＩを生成、表示及び使用するための本方法のいくつかのアプリケーションは、物理インタフェースを介して順序付けられたデータセットを受信することを含みうるか、ストレージ５７０または５７５に格納されたデータをプロセッサ５５５が解析することでマシーン自体によって生成されうる。更に、マシーンは、ユーザインタフェース・コンポーネント５８５を介してユーザからの入力を受け取って、プロセッサ５５５を用いてそれらの入力を解釈することでブラウジング機能等の適切な機能を実行しうる。
【００８７】
例示的なシステム５００及び５５０が、より優れた処理能力を提供するために、二つ以上のプロセッサ５１０を有してもよいし、ネットワークで共に結ばれたコンピューティングデバイスのグループまたはクラスタの一部であってもよいことが理解されうる。
【００８８】
説明の簡単化のため、場合によっては、本技術は、デバイス、デバイスコンポーネント、ソフトウェアまたはハードウェア及びソフトウェアの組み合わせによって具体化される方法におけるステップまたはルーティンを含む、個別の機能ブロックを含むものとして示されうる。
【００８９】
いくつかの実施形態では、コンピュータ読み取り可能ストレージデバイス、媒体及びメモリは、ケーブル、またはビットストリーム等を含む無線信号を含みうる。しかし、言及される場合、非一時的なコンピュータ読み取り可能ストレージ媒体は、エネルギー、キャリア信号、電磁波、及び信号それ自体を、明示的に除外する。
【００９０】
上述の例に従った方法は、コンピュータ読み取り可能媒体に格納された、またはさもなければコンピュータ読み取り可能媒体から利用可能な、コンピュータで実行可能な命令を使用して実装されうる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、専用処理デバイス、命令及びデータに、特定の機能または機能のグループを実行させるか、さもなければ実行するよう設定する、命令及びデータを含みうる。使用されるコンピュータリソースの一部は、ネットワークを介してアクセス可能であってもよい。コンピュータで実行可能な命令は、例えば、バイナリ、アセンブリ言語等の中間フォーマットの命令、ファームウェア、またはソースコードであってよい。命令、使用される情報、及び／または説明された例に従った方法の実行中に作成された情報を格納するために使用されうるコンピュータ読み取り可能媒体の例には、磁気または光学ディスク、フラッシュメモリ、不揮発性メモリが設けられたＵＳＢデバイス、ネットワークで結ばれたストレージデバイス等が含まれる。
【００９１】
これらの開示に従った方法を実装するデバイスは、ハードウェア、ファームウェア及び／またはソフトウェアを備えうるとともに、種々のフォームファクタのいずれかを取りうる。そのようなフォームファクタの典型例には、ラップトップ、スマートフォン、スモールフォームファクタ・パーソナルコンピュータ、パーソナル・デジタル・アシスタント等が含まれる。本明細書で説明された機能は、周辺機器またはアドイン・カードにおいても具体化されうる。そのような機能は、更なる例として、単一のデバイスで達成する異なるチップ間または異なるプロセス間の回路ボードにも実装されうる。
【００９２】
命令、そのような命令を搬送するメディア、それらを実行するコンピューティングリソース、及びそのようなコンピューティングリソースをサポートする他の構成は、これらの開示において説明された機能を提供する手段である。
【００９３】
種々の例及び他の情報が、添付の請求項の範囲内の態様を説明するために使用されたが、当業者であれば多種多様な実装を導くためにこれらの例を使用できるため、そのような例における具体的な特徴または構成に基づいて請求項が限定されてはならない。更には、構造的な特徴及び／または方法のステップの例に特有の表現で主題が説明されているが、添付の請求項に規定された手段は、それらの説明された特徴または動作に必ずしも限定されないことが理解される。例えば、そのような機能は、別々に分散されてもよいし、本明細書で特定したコンポーネントと異なるコンポーネントで実行されてもよい。むしろ、上述の特徴及びステップは、添付の請求項の範囲内のシステム及び方法のコンポーネントの例として説明されている。
【要約】クライアントサイド・アプリケーションのインストールプロセスを改善するために、ライトインストーラが利用されうる。ライトインストーラは、必要となるデータ及び権限付与をユーザに求め、コンテンツ管理システムと通信し、追加のリソースをダウンロードし、かつ、クライアントサイド・アプリケーションをインストールするのに必要な情報等の、インストールプロセスを開始するのに必要な情報のみを含むインストーラでありうる。ライトインストーラは、インストールプロセスの初期に、全ての必要なユーザ権限付与を取得することによって、ユーザ・インタラクション時間を最小限にでき、その結果、ライトインストーラが、ユーザからの更なる権限付与なしでクライアントサイド・アプリケーションの全てのコンポーネントをインストールすることが可能になる。更に、ライトインストーラは、報告、インストールプロセスの間におけるデータの事前設定、インストールプロセスのカスタマイズ、クライアントサイド・アプリケーションの事前設定等に使用されうる、クライアントデバイスと関連付けられたユーザアカウントを識別するデータをタグ付けされうる。【図１】
0005976258.tif 000002
【図２】
0005976258.tif 000003
【図３】
0005976258.tif 000004
【図４】
0005976258.tif 000005
【図５Ａ】
0005976258.tif 000006
【図５Ｂ】
0005976258.tif 000007