(57)【特許請求の範囲】
【請求項１】
クライアントをアップデートするための方法であって、
前記クライアントがアップデートされるべきであるかどうかを判定することと、
前記クライアントがアップデートされるべきとの判定に応じて、前記クライアントのためのアップデートパッケージを決定することであって、ヴァージョンツリー比較に基づいてアップデートされるべきパッケージを決定することを含み、
前記アップデートされるべきパッケージを決定することは、
ヴァージョンツリーに少なくとも部分的に基づいて、親ノードのヴァージョンが子ノードのヴァージョンより新しいか否かを判定することであって、前記ヴァージョンツリーは、アプリケーションと前記アプリケーションに関連する複数の機能とが配列されたものであり、各機能は、前記ヴァージョンツリーに含まれる一つのノードに対応するヴァージョンを有する、前記親ノードのヴァージョンが新しいか否かの判定と、
前記親ノードのヴァージョンが前記子ノードのヴァージョンより新しいとの判定に応じて、前記子ノードに対応する一つの機能が依存するパッケージを、前記アップデートされるべきパッケージとして決定することと、を含む、
前記アップデートパッケージの決定と、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することであって、
前記クライアントに対応する前記ユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定することと、
前記ユーザが各機能を使用した回数に少なくとも一部基づいて、指定数の機能を、前記ユーザの前記お好み機能としてはたらくよう選択することと、を含む、決定することと、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存する選択的アップデートパッケージをお好みパッケージとしてはたらくよう決定することであって、
前記アップデートパッケージの１つのアップデートパッケージが、前記お好み機能の１つのお好み機能が正常に動作するのに必要であるかどうかを決定することと、
前記アップデートパッケージが前記お好み機能が正常に動作するのに必要であるとの決定に応じて、前記アップデートパッケージを前記お好みパッケージに追加することと、を含む、決定することと、
前記お好みパッケージをアップデートのために前記クライアントにリリースすることと、
を備える方法。
【請求項２】
請求項１に記載の方法であって、さらに、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信することを備え、
前記指定数の機能を選択することは、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングに基づいて、前記指定数を決定することを含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースすることは、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加することと、
前記アップデートテーブルに一意のテーブル識別子を割り当てることと、
前記テーブル識別子を前記クライアントにリリースすることと、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加することと、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定することと、
前記クライアントによって送信された前記テーブル識別子が受信されているとの判定に応じて、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースすることと、
を含む、方法。
【請求項４】
請求項１に記載の方法であって、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定することと、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定することと、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースすることと、
を備える方法。
【請求項５】
クライアントをアップデートするためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成されたメモリと、
を備え、
前記少なくとも１つのプロセッサは、
前記クライアントがアップデートされるべきであるかどうかを判定することと、
前記クライアントがアップデートされるべきであるとの判定に応じて、前記クライアントのためのアップデートパッケージを決定することであって、ヴァージョンツリー比較に基づいてアップデートされるべきパッケージを決定することを含み、
前記アップデートされるべきパッケージを決定することは、
ヴァージョンツリーに少なくとも部分的に基づいて、親ノードのヴァージョンが子ノードのヴァージョンより新しいか否かを判定することであって、前記ヴァージョンツリーは、アプリケーションと前記アプリケーションに関連する複数の機能とが配列されたものであり、各機能は、前記ヴァージョンツリーに含まれる一つのノードに対応するヴァージョンを有する、前記親ノードのヴァージョンが新しいか否かの判定と、
前記親ノードのヴァージョンが前記子ノードのヴァージョンより新しいとの判定に応じて、前記子ノードに対応する一つの機能が依存するパッケージを、前記アップデートされるべきパッケージとして決定することと、を含む、
前記アップデートパッケージの決定と、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することであって、
前記クライアントに対応する前記ユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定することと、
前記ユーザが各機能を使用した回数に少なくとも一部基づいて、指定数の機能を、前記ユーザの前記お好み機能としてはたらくよう選択することと、を含む、決定することと、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存する選択的アップデートパッケージをお好みパッケージとしてはたらくよう決定することであって、
前記アップデートパッケージの１つのアップデートパッケージが、前記お好み機能の１つのお好み機能が正常に動作するのに必要であるかどうかを決定することと、
前記アップデートパッケージが前記お好み機能が正常に動作するのに必要であるとの決定に応じて、前記アップデートパッケージを前記お好みパッケージに追加することと、を含む、決定することと、
前記お好みパッケージをアップデートのために前記クライアントにリリースすることと、
を行うように構成される、システム。
【請求項６】
請求項５に記載のシステムであって、
前記１つ以上のプロセッサは、さらに、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信するように構成され、
前記指定数の機能を選択することは、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングに基づいて、前記指定数を決定することを含む、システム。
【請求項７】
請求項５に記載のシステムであって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースすることは、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加することと、
前記アップデートテーブルに一意のテーブル識別子を割り当てることと、
前記テーブル識別子を前記クライアントにリリースすることと、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加することと、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定することと、
前記クライアントによって送信された前記テーブル識別子が受信されているとの判定に応じて、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースすることと、
を含む、システム。
【請求項８】
請求項５に記載のシステムであって、
前記１つ以上のプロセッサは、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定することと、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定することと、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースすることと、
を行うように構成される、システム。
【請求項９】
クライアントをアップデートするためのコンピュータプログラムであって、コンピュータを使用して、
前記クライアントがアップデートされるべきであるかどうかを判定するための機能と、
前記クライアントがアップデートされるべきであるとの判定に応じて、前記クライアントのためのアップデートパッケージを決定することであって、ヴァージョンツリー比較に基づいてアップデートされるべきパッケージを決定することを含み、
前記アップデートされるべきパッケージを決定することは、
ヴァージョンツリーに少なくとも部分的に基づいて、親ノードのヴァージョンが子ノードのヴァージョンより新しいか否かを判定することであって、前記ヴァージョンツリーは、アプリケーションと前記アプリケーションに関連する複数の機能とが配列されたものであり、各機能は、前記ヴァージョンツリーに含まれる一つのノードに対応するヴァージョンを有する、前記親ノードのヴァージョンが新しいか否かの判定と、
前記親ノードのヴァージョンが前記子ノードのヴァージョンより新しいとの判定に応じて、前記子ノードに対応する一つの機能が依存するパッケージを、前記アップデートされるべきパッケージとして決定することと、を含む、
前記アップデートパッケージの決定のための機能と、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定するための機能であって、
前記クライアントに対応する前記ユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定する機能と、
前記ユーザが各機能を使用した回数に少なくとも一部基づいて、指定数の機能を、前記ユーザの前記お好み機能としてはたらくよう選択する機能と、を含む、機能と、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存する選択的アップデートパッケージをお好みパッケージとしてはたらくよう決定するための機能であって、
前記アップデートパッケージの１つのアップデートパッケージが、前記お好み機能の１つのお好み機能が正常に動作するのに必要であるかどうかを決定する機能と、
前記アップデートパッケージが前記お好み機能が正常に動作するのに必要であるとの決定に応じて、前記アップデートパッケージを前記お好みパッケージに追加する機能と、を含む、機能と、
前記お好みパッケージをアップデートのために前記クライアントにリリースするための機能と、
を実現させるための、コンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムであって、さらに、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信する機能を実現させることができ、
前記指定数の機能を選択する機能は、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングとに基づいて、前記指定数を決定する機能を含む、コンピュータプログラム。
【請求項１１】
請求項９に記載のコンピュータプログラムであって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースする機能は、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加する機能と、
前記アップデートテーブルに一意のテーブル識別子を割り当てる機能と、
前記テーブル識別子を前記クライアントにリリースする機能と、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加する機能と、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定する機能と、
前記クライアントによって送信された前記テーブル識別子が受信されているとの判定に応じて、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースする機能と、
を含む、コンピュータプログラム。
【請求項１２】
請求項９に記載のコンピュータプログラムであって、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定する機能と、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定する機能と、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースする機能と、
を実現させることができる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１３年４月２２日に出願された、発明の名称を「Ａ  ＣＬＩＥＮＴ  ＵＰＤＡＴＥ  ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ（クライアントアップデートの方法およびデバイス）」とする中国特許出願第２０１３１０１４１４７９．６号の優先権を主張する。該出願は、あらゆる目的のために、参照によって本明細書に組み込まれる。
【０００２】
本出願は、クライアントをアップデートするための方法およびデバイスに関する。
【背景技術】
【０００３】
現在、ワイヤレスネットワークおよびモバイル機器の発展が続くにつれて、ワイヤレスクライアントアプリケーションが益々一般的になっており、これらのクライアントアプリケーションは、通常、頻繁なアップデートを必要とする。
【０００４】
図１は、クライアントをアップデートするための従来のプロセスを示したフローチャートである。プロセス１００は、サーバによって実施され、以下を含む。
【０００５】
１１０において、サーバは、クライアントからアップデートチェックを受信する。アップデートチェックは、クライアントに取り込まれたソフトウェアが最新であることを確認するために、クライアントによって送信される。
【０００６】
具体的には、クライアントは、そのスタートアップの際に、アップデートチェックを起動するためにクライアントアプリケーションのヴァージョン番号をサーバに送信する。
【０００７】
１２０において、サーバは、クライアントがアップデートされるべきであるかどうかを判定する。もし、クライアントがアップデートされるべきであるならば、制御は１３０に引き渡される。もし、クライアントがアップデートされるべきでないならば、制御は１４０に引き渡される。
【０００８】
クライアントによって送信されたヴァージョン番号を受信すると、サーバは、受信されたクライアントアプリケーションのヴァージョン番号を、現時点で利用可能な最新のクライアントアプリケーションのヴァージョン番号と比較する。もし、受信されたヴァージョン番号が最新ヴァージョン番号に一致するならば、クライアントは、アップデートされる必要がない。もし、受信されたヴァージョン番号が最新ヴァージョン番号に一致しないならば、クライアントは、アップデートされるべきである。
【０００９】
１３０において、もし、受信されたヴァージョン番号が最新ヴァージョン番号に一致しないならば、サーバは、クライアントをアップデートするために、クライアントアップデートパッケージをリリースする。
【００１０】
サーバは、受信されたヴァージョン番号と、現時点で利用可能な最新のクライアントヴァージョン番号との比較に基づいて、受信されたヴァージョン番号が最新のヴァージョン番号とは異なると判定したときは、クライアントのための全アップデートパッケージを決定し、クライアントをアップデートするためにこれらの全アップデートパッケージをリリースする。
【００１１】
１４０において、もし、受信されたヴァージョン番号が最新のヴァージョン番号に一致するならば、サーバは、クライアントにクライアントがアップデートされないことを通知する。
【００１２】
しかしながら、クライアントは、通常は、特定の１つまたは複数のパッケージにそれぞれ依存する多くの機能を提供することができる。ユーザは、それぞれ異なる利用習慣を有し、各ユーザは、特定の１つまたは複数の機能のみを使用して、提供される全ての機能を使用するのではない傾向がある。例えば、クライアントは、クレジットカード支払い機能および公共料金支払い機能を提供するが、ユーザは、普段はクライアントのクレジットカード支払い機能のみを使用し、クライアントの公共料金支払い機能はほとんどまたは全く使用しない。
【００１３】
しかしながら、従来のプロセス１００では、クライアントがアップデートされるべきであるとサーバが判定すると、クライアントアップデートパッケージによってサポートされている機能が定期的に使用されているかどうかにかかわらず、必然的に、クライアントをアップデートするために全てのアップデートパッケージがリリースされる。このプロセスは、明らかに、通常的に使用されているのではないパッケージのアップデートによってネットワークリソースを無駄遣いし、クライアントアップデート効率を低下させ、クライアントネットワーク環境の状態が比較的混雑しているときはクライアントアップデート時間を大幅に長引かせる。
【図面の簡単な説明】
【００１４】
以下の詳細な説明および添付の図面において、本発明の様々な実施形態が開示される。
【００１５】
【図１】クライアントをアップデートするための従来のプロセスを示したフローチャートである。
【００１６】
【図２Ａ】クライアントをアップデートするためのプロセスの一実施形態を示したフローチャートである。
【００１７】
【図２Ｂ】ヴァージョンツリーの一実施形態を示した図である。
【００１８】
【図３】お好みパッケージをクライアントにリリースするためのプロセスの一実施形態を示したフローチャートである。
【００１９】
【図４】クライアントをアップデートするためのデバイスの一実施形態を示した図である。
【００２０】
【図５】クライアントをアップデートするためのシステムの一実施形態を示した図である。
【発明を実施するための形態】
【００２１】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能ストレージ媒体に実装されたコンピュータプログラム製品、ならびに／または結合先のメモリに記憶された命令および／もしくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサなどのプロセッサのような、数々の形態で実現することができる。本明細書では、これらの実現形態、または本発明がとりえるその他のあらゆる形態を、技術と称することができる。総じて、開示されるプロセスの各ステップの順番は、本発明の範囲内で変更可能である。別途明記されない限り、タスクを実施するように構成されるものとして説明されるプロセッサまたはメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、またはタスクを実施するように製造された特殊コンポーネントとして実装可能である。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された１つ以上のデバイス、回路、ならびに／または処理コアを言う。
【００２２】
本発明の原理を例示した添付の図面とともに、以下で、本発明の１つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態に関連付けて説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、および均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部または全部を伴わずとも、特許請求の範囲にしたがって実施可能である。明瞭を期するために、本発明に関連した技術分野で知られる技工物は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００２３】
一部の実施形態では、クライアントに含まれるパッケージの一部のみをユーザの好みに基づいてアップデートするために、サーバは、保存されているユーザの操作記録に基づいて、ユーザのお好み機能、すなわちユーザによって日常的に使用されている機能を決定し、アップデートのために、ユーザのお好み機能が依存するアップデートパッケージをクライアントにリリースする。なぜならば、クライアントに含まれるパッケージの一部のみがアップデートされるからである。パッケージの一部のみをアップデートすることによって、ネットワークリソースが効果的に節約され、クライアントアップデートの効率が向上される。
【００２４】
図２Ａは、クライアントをアップデートするためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス２００は、図５のサーバ５２０によって実行に移され、以下を含む。
【００２５】
２１０において、サーバは、クライアントがアップデートされるべきであるかどうかを判定する。
【００２６】
サーバが、クライアントがアップデートされるべきではないと判定した場合、２６０において、プロセスは終了する。
【００２７】
サーバが、クライアントがアップデートされるべきであると判定した場合、２２０において、サーバは、クライアントのためのアップデートパッケージを決定する。一部の実施形態では、アップデートパッケージは、アプリケーションに関する１つのまたは１群の機能を含む。一部の実施形態では、アップデートパッケージに含まれる機能は、アプリケーションの一部に関するものであり、アプリケーションを完全にアップデートするためには、アップデートパッケージに含まれないさらなる機能が必要とされる。
【００２８】
一部の実施形態では、スタートアップの際に、クライアントは、クライアント自身の、クライアントアプリケーションのヴァージョン番号をサーバに送信することによって、サーバによるアップデートチェックを起動させる。通常は、各クライアントアプリケーションは、特定のヴァージョン番号を有する。特定の筋書きでは、クライアントアプリケーションをアップデートするために、より新しい機能がクライアントにダウンロードされるべきである。クライアントのクライアントアプリケーションのヴァージョン番号を受信すると、サーバは、クライアントのクライアントアプリケーションのヴァージョン番号を、現時点で利用可能な最新のクライアントアプリケーションのヴァージョン番号と比較する。これら２つのヴァージョン番号が異なる場合、サーバは、クライアントがアップデートされるべきであると判定する、またはこれら２つのヴァージョン番号が同じである場合、サーバは、クライアントがアップデートを必要としないと判定する。
【００２９】
クライアントがアップデートされるべきであると判定した場合、サーバは、２つのヴァージョン番号の比較に基づいて、クライアントのためのアップデートパッケージも決定する。一例として、サーバは、クライアントに含まれるどのパッケージがアップデートされるべきであるかを決定するために、ヴァージョンツリー比較技術を使用し、サーバ内にある、アップデートされるべきパッケージに対応する最新のパッケージ、すなわちクライアントのためのアップデートパッケージを決定する。例えば、クライアントに含まれる第１のパッケージがアップデートされるべきであると判定した後、サーバは、サーバ内にある、第１のパッケージに対応する最新のパッケージがパッケージ１’であると決定し、このパッケージ１’がクライアントのためのアップデートパッケージであると決定する。一例として、パッケージ１’は、一群の機能のための新しいヴァージョン番号であると見なされる。或る機能の新しいヴァージョンが利用可能になったときに、クライアントにおけるその機能はアップデートされる用意が整う。
【００３０】
図２Ｂは、ヴァージョンツリーの一実施形態を示した図である。一部の実施形態では、図２Ｂに示されるように、ヴァージョンツリーにおいてヴァージョンツリー比較技術が実施される。ヴァージョンツリー比較技術を使用することによって、アプリケーションおよびその各機能がヴァージョンツリーの形に編成され、該ツリーでは、図２Ｂに示されるように、各機能がそれ自身のヴァージョンを有し、親ノードのヴァージョンが子ノードのヴァージョンよりも新しいまたは子ノードのヴァージョンと同じである。アップデートのときは、どの機能がアップデートされるべきであるかを見つけるために、ヴァージョンツリーが検索される。例えば、図２Ｂに示されるように、クライアントにおいて、ルートノード（Ｖ２．０）の子ノードの機能（Ｖ１．０）がアップデートされるべきである。また、アップデートされるべき機能の２つの子ノードの機能（Ｖ１．０）もまた、アップデートされるべきである。
【００３１】
２３０において、サーバは、ユーザのクライアントの、格納されている操作記録に基づいて、ユーザのお好み機能を決定する。
【００３２】
一部の実施形態では、サーバは、格納されているユーザの操作記録に基づいて、クライアントによって提供される各機能をユーザが使用した回数を、指定の時間範囲内に使用した回数が多いものから順に決定することができる。このような利用情報に基づいて、サーバは、ユーザの確定（決定された）お好み機能として指定数の機能を選択する。指定の時間範囲には、過去一年、過去一か月、またはその他の任意の期間がある。
【００３３】
一部の実施形態では、クライアントに対応するユーザは、クライアントを通じてログインしているユーザアカウント番号を言う。クライアントは、サーバによるアップデートチェックを起動させる場合に、ユーザに相当するユーザ識別子（ユーザハンドル名やユーザＩＤなど）はもちろん、クライアント自身のヴァージョン番号も、同時にサーバに送信する。
【００３４】
一部の実施形態では、サーバは、様々なタイプの操作とクライアントによって提供される様々な機能との間の対応関係を予め保存しておき、クライアントに対応するユーザの操作記録に基づいて、指定の時間範囲内にユーザが各タイプの操作を実行した回数を決定する。一部の実施形態では、サーバは、各ユーザのための操作ログを作成し、該ユーザの操作ログにユーザの各操作記録を保存し、また、ユーザのための操作記録テーブルを作成し、該操作記録テーブルにユーザの各操作記録を保存する。一部の実施形態では、操作記録は、ユーザＩＤと、ユーザによって実行された操作のタイプと、その操作が起きた時刻とを含む。したがって、サーバは、ユーザの操作ログまたは操作記録テーブルのなかで、指定の時間範囲内の時刻に起きた同じタイプの操作を含む記録の回数を、その指定の時間範囲内にユーザがそのタイプの操作を実行した回数として数えることができる。
【００３５】
一部の実施形態では、或る操作のタイプに関し、ユーザがそのタイプの操作を指定の時間範囲内に実行する回数は、このタイプの操作に対応するクライアント内の機能が使用された回数に相当するので、各機能について、サーバは、その機能に対応するタイプの操作をユーザが指定の時間範囲内に実行した回数を、ユーザがその機能を指定の時間範囲内に使用した回数として決定する。
【００３６】
例えば、クライアントがクレジットカード支払い機能および公共料金支払い機能を提供すると想定する。クライアントによって提供されるクレジットカード支払い機能の場合、この機能に対応する操作は、クレジットカード支払い操作として事前に設定されている。操作ログに保存されている様々な操作記録に基づいて、サーバは、ユーザがクレジットカード支払い操作を指定の時間範囲（例えば過去一年、過去一か月、またはその他の任意の適切な期間）内に実行した回数を、ユーザがクレジットカード支払い機能を使用した回数として決定する。同様に、サーバは、ユーザが公共料金支払い機能および／またはその他の機能を指定の時間範囲内に使用した回数を決定することができる。
【００３７】
続いて、お好み機能の指定数が１であり、ユーザがクレジットカード支払い機能を使用した回数が２０であると決定され、ユーザが公共料金支払い機能を使用多回数が２であると決定されたとすると、サーバは、使用された回数が多いものから順に、使用回数が最も多い機能を１つ、すなわちクレジットカード支払い機能をユーザのお好み関数として選択する。要するに、機能は、それらの機能の使用回数に基づいて順番を付けることができる。
【００３８】
２４０において、サーバは、決定されたアップデートパッケージのなかから、ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとしてはたらくよう決定する。
【００３９】
サーバは、クライアントに対応するユーザのお好み機能を決定した後、決定されたアップデートパッケージのなかから、予め保存されている、クライアントの様々な機能と様々なパッケージとの間の依存関係に基づいて、ユーザのお好み機能が依存するアップデートパッケージを決定し、ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとして使用する。一例として、最も多く使用された機能がクレジットカード支払い機能であり、２番目に多く使用された機能が公共料金支払い機能であり、その他の機能は頻繁に使用されていないと決定されたときは、サーバは、クレジットカード支払い機能および公共料金支払い機能のみがアップデートされるべきであると判定する。この例では、これら２つの機能を含むアップデートパッケージが、ユーザのためのお好みパッケージである。
【００４０】
２５０において、サーバは、対応するクライアントのパッケージをアップデートするために、決定されたお好みパッケージをクライアントにリリースする。
【００４１】
一部の実施形態では、サーバは、お好みパッケージを決定した後、該お好みパッケージを、クライアントが自身のパッケージをアップデートすることができるようにクライアントにリリースする。
【００４２】
上記のプロセスを使用することによって、サーバは、ユーザのお好み機能が依存するアップデートパッケージのみをリリースすることができ、全てのアップデートパッケージをクライアントにリリースする必要がない。したがって、ネットワークリソースが節約できる。また、クライアントも、その全てのパッケージをアップデートする代わりに一部のパッケージのみをアップデートするので、クライアントアップデートの効率も向上される。
【００４３】
実際の用途の筋書きでは、クライアントのネットワーク環境がそれぞれ異なっており、比較的貧しいネットワーク環境で動作しているクライアントの場合は、もし、アップデートされるパッケージの数が非常に多いと、クライアントアップデート時間が大幅に長くなり、クライアントアップデート効率が低下する恐れがある。一部の実施形態では、クライアントに対応するユーザのお好み機能を決定する前に、サーバは、クライアントによってサブミットされたネットワーク環境情報を受信する。続いて、サーバは、使用された回数が多いものから順に指定数の機能をユーザのお好み機能としてはたらくよう順次選択するときに、その指定数を、クライアントによってサブミットされたネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付ける既定のマッピングに基づいて決定し、ユーザが各機能を使用した回数が多いものから順に、決定された指定数の機能を、ユーザの確定お好み機能としてはたらくよう順次選択することができる。一部の実施形態では、ネットワーク環境が貧しいほど、ユーザの確定お好み機能としての対応する機能の指定数が少なくなる。
【００４４】
例えば、ネットワーク環境情報には、第２世代携帯通信技術（２Ｇ）ネットワーク、第３世代携帯通信技術（３Ｇ）ネットワーク、およびワイヤレスフィデリティ（Ｗｉ−Ｆｉ）ネットワークがあり、ネットワーク環境情報と指定数とを対応付けた既定のマッピングは、以下のとおりである。すなわち、２Ｇネットワークに対応する指定数は３であり、３Ｇネットワークに対応する指定数は６であり、Ｗｉ−Ｆｉネットワークに対応する指定数は、クライアントに含まれる全パッケージの数である。クライアントによってサブミットされたネットワーク環境情報が２Ｇネットワークである場合、サーバは、２Ｇネットワークに対応する指定数が３であると決定する。したがって、各機能がユーザによって使用された回数が多いものから順に、サーバは、ユーザのお好み機能として３つの機能を順次選択する。しかしながら、クライアントによってサブミットされたネットワーク環境がＷｉ−Ｆｉネットワークである場合、サーバは、ユーザのお好み機能としてクライアントの全機能を使用する。Ｗｉ−Ｆｉネットワーク上では、サーバは、クライアントのアップデートを行うために、全てのアップデートパッケージをクライアントにリリースする。
【００４５】
一部の実施形態では、クライアントによってサブミットされたネットワーク環境情報が指定の条件を満たす場合も、サーバは、クライアントにまだリリースされていない全てのアップデートパッケージを、アップデートのためにクライアントにリリースする。引き続き上記の例では、クライアントが或る時点でアップデートチェックを起動させた後、サーバは、このクライアントのためのアップデートパッケージが１０個あること、およびクライアントによってサブミットされたネットワーク環境情報が２Ｇネットワークであることを決定する。したがって、サーバは、３つのアップデートパッケージのみをクライアントにリリースし、その後、クライアントが再びアップデートチェックを起動させ、サブミットされたネットワーク環境情報が指定の条件を満たすＷｉ−Ｆｉネットワークである場合がきたら、サーバは、アップデートを実施するために、残る７つのアップデートパッケージを全てクライアントにリリースする。要するに、指定の条件は、速度や料金などが様々である異なるネットワーク環境に関するものである。異なるネットワーク環境の例として、１）２Ｇ環境の速度がその他のネットワークと比べて遅く、２Ｇ環境の料金がその他のネットワークの料金と比べて高いこと、２）３Ｇネットワークの速度がその他のネットワークと比べて速く、３Ｇ環境の料金がその他のネットワークの料金と比べて高いこと、および３）Ｗｉ−Ｆｉネットワークの速度がその他のネットワークと比べて速く、Ｗｉ−Ｆｉネットワークの料金が普通は無料であるまたはその他のネットワークの料金と比べて大幅に安いことが挙げられる。一部の実施形態では、アップデートされるべきパッケージは、指定の条件に基づいて決定される。
【００４６】
上記の例は、ネットワーク環境情報と指定数との間の対応付けを説明するために、２Ｇネットワーク、３Ｇネットワーク、およびＷｉ−Ｆｉネットワークのみを用いている。一部の実施形態では、ネットワーク環境情報は、ダウンロード速度などの、その他のネットワーク品質指標も含み、ネットワーク環境情報と指定数との間の対応付けは、選択されるべきユーザのお好み機能の指定数がネットワーク環境情報に基づいて決定される限り、連続関数または離散関数を使用して事前に設定される。一部の実施形態では、連続関数は、実際の条件に基づいて決定される。例えば、もし、現ネットワーク速度がｘ  ｋ／ｓであり、２Ｇ環境における係数Ｋが１であり、３Ｇ環境における係数Ｋが３であり、Ｗｉ−Ｆｉ環境における係数Ｋが２０であり、シーリング関数が整数をとるならば、お好み機能の指定数は、Ｋ×ＣＥＩＬＩＮＧ（ｘ／１００）である。一部の実施形態では、離散関数は、実際の条件に基づいて決定される。離散関数の一例は、次のとおりである。すなわち、お好み機能の指定数ｙは、１（２Ｇ環境）、２（３Ｇ環境）、３（４Ｇ環境）、および２０（Ｗｉ−Ｆｉ環境）である。
【００４７】
２５０において、サーバは、上記のプロセスを使用してお好みパッケージを決定した後、決定されたお好みパッケージを、アップデートのためにクライアントにそのままリリースする。
【００４８】
しかしながら、サーバによってリリースされたお好みパッケージの受信が、ネットワーク上の理由（突発的なネットワークの切断など）により中断された場合、サーバは、お好みパッケージの送信を再開させるためのブレークポイントがわからない。したがって、上記のアップデートチェックの起動が繰り返され、クライアントアップデートの効率が激しく低下する。
【００４９】
図３は、お好みパッケージをクライアントにリリースするためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス３００は、２５０を実行に移したものであり、以下を含む。
【００５０】
３１０において、サーバは、決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加し、該アップデートテーブルに一意のテーブル識別子を割り当てる。
【００５１】
３２０において、サーバは、テーブル識別子をクライアントにリリースする。
【００５２】
一部の実施形態では、サーバは、お好みパッケージを決定した後、決定された全てのお好みパッケージのパッケージ識別子（例えばパッケージ名やパッケージ番号など）をアップデートテーブルに追加し、該アップデートテーブルに一意のテーブル識別子（例えばテーブルＩＤ）を割り当てる。続いて、サーバは、テーブル識別子をクライアントにリリースする。アップデートテーブルは、クライアントのアップデートプランに対応しており、現アップデートにおいてクライアントによって使用されるべきアップデートパッケージ（例えばお好みパッケージ）を記録している。サーバは、アップデートテーブルにしたがってお好みパッケージをリリース（送信）する。アップデートテーブルに記録されたパッケージ識別子に対応するお好みパッケージをサーバがクライアントにリリースし、そのパッケージが成功裏に受信されたことをクライアントが認識するたびに、サーバは、そのパッケージが成功裏に送信され認識されたことを示すために、アップデートテーブルに含まれる対応するお好みパッケージのパッケージ識別子にリリース済みタグを追加する。
【００５３】
３３０において、サーバは、クライアントによって送信された、テーブル識別子に対応するアップデートテーブルに含まれるパッケージを要求するリクエストを受信する。リクエストは、テーブル識別子を含む。
【００５４】
クライアントは、サーバによって送信されたテーブル識別子を受信した後、そのテーブル識別子を保存し、このテーブル識別子に対応するアップデートテーブルに含まれるパッケージを要求するために、このテーブル識別子を含むリクエストをサーバに送信する。
【００５５】
３４０において、サーバは、テーブル識別子に対応するアップデートテーブルを検索する。
【００５６】
３５０において、サーバは、アップデートテーブルに含まれるパッケージ識別子に対応するパッケージであってリリース済みタグが追加されていないパッケージを、アップデートのためにクライアントにリリースする。
【００５７】
上記の図３のプロセス３００を使用すると、サーバは、一意のテーブル識別子に対応するアップデートテーブルに、様々なお好みパッケージのパッケージ識別子を既に追加してあるので、たとえもし、お好みパッケージの受信がクライアントによって中断されたとしても、図２Ａのプロセス２００全体を繰り返す必要はない。クライアントは、テーブル識別子に対応するアップデートテーブルのなかのパッケージを要求するために、サーバにテーブル識別子を再送信するだけでよい。また、サーバは、既に成功裏にリリースされたパッケージに対応するパッケージ識別子にリリース済みタグを追加する。したがって、お好みパッケージの受信がクライアントによって中断されたとき、サーバは、クライアントアップデート効率をさらに向上させるために、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージのみを検索してリリースし、アップデートテーブルに含まれる全てパッケージ識別子に対応するパッケージのリリースを繰り返さなくてすむ。
【００５８】
一部の実施形態では、クライアントがアップデート後も正常に動作できることを確実にするために、サーバは、決定されたアップデートパッケージのなかから、様々なお好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定し、これらの依存パッケージを、アップデートのためにクライアントにリリースする。
【００５９】
例えば、サーバによって決定されたお好みパッケージが、クレジットカード支払いパッケージおよび公共料金支払いパッケージであり、これら２つのパッケージが、ともに、パスワード入力セキュリティパッケージに依存すると想定する。クレジットカード支払いパッケージおよび公共料金支払いパッケージに加えて、決定されたアップデートパッケージは、パスワード入力セキュリティパッケージも含む。一例として、もし、機能Ａが機能Ｂに依存し、機能Ｃもまた機能Ｂに依存し、機能Ａおよび機能Ｂがともにアップデートされるべきであるならば、機能Ｃもまたアップデートされるべきである。そうでないと、クライアントのソフトウェアが正常に動作することができない。一部の実施形態では、この依存関係は、サーバに事前に設定されてある。このため、クレジットカード支払いパッケージおよび公共料金支払いパッケージのみが、アップデートのためにクライアントにリリースされ、パスワード入力セキュリティパッケージが、アップデートのためにクライアントにリリースされない場合、クライアントの機能は、アップデート後は正常に動作できなくなる（またはクレジットカード支払いパッケージおよび公共料金支払いパッケージを正常に提供できなくなる）だろう。したがって、サーバは、クライアントがアップデート後も正常に動作できることを確実にするために、決定されたアップデートパッケージのなかから、クレジットカード支払いパッケージおよび公共料金支払いパッケージが依存するアップデートパッケージ（すなわちパスワード入力セキュリティパッケージ）も決定し、該パスワード入力セキュリティパッケージを、アップデートのために依存パッケージとしてクライアントにリリースする。
【００６０】
もちろん、サーバによって依存パッケージが決定された後、該依存パッケージもやはり、その他の決定されたアップデートパッケージに依存する（例えば、上記の例におけるパスワード入力セキュリティパッケージは、その他のアップデートパッケージにも依存する）可能性があり、サーバは、依存パッケージが依存するその他のアップデートパッケージを引き続き決定し、これらのその他のアップデートパッケージを依存パッケージとして使用し、同じ技術を再帰的に用いて全ての依存パッケージを決定してそれらの依存パッケージをリリースすることを続ける。
【００６１】
さらに、一部の実施形態では、クライアントのためのアップデートパッケージは、特定のメジャー脆弱性修復アップデートパッケージを含む。これらの脆弱性修復アップデートパッケージは、クライアントの正常な動作に関係しており、それゆえに、クライアントの各アップデートパッケージには、重要度ウェイトが予め割り当てられる。メジャー脆弱性修復アップデートパッケージが、高めの重要度ウェイトを割り当てられる一方で、特定の最適化パッケージまたはアップデートパッケージは、低めの重要度ウェイトを割り当てられる。したがって、決定されたアップデートパッケージのなかから、サーバは、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを、必須のアップデートパッケージとして決定する。要するに、サーバは、所定に閾値よりも大きい重要度ウェイトを有するアップデートパッケージを、必須のアップデートパッケージとして使用し、これらの必須のアップデートパッケージを、アップデートのためにクライアントにリリースする。一例では、所定の閾値が５であり、メジャー脆弱性修復アップデートパッケージに割り当てられた指定のウェイトが１０（または５を超える値）であり、マイナー最適化パッケージまたはアップデートパッケージに割り当てられた指定のウェイトが１（または５よりも小さい値）である。所定の閾値を超えたときは、常に、メジャー脆弱性修復アップデートパッケージはアップデートされ、そうでないときは、メジャー脆弱性修復アップデートパッケージはアップデートされない。一部の実施形態では、機能に対する必要な修正が常にアップデートされる。
【００６２】
相応して、依存パッケージおよび必須アップデートパッケージのリリースに関しても、サーバは、アップデートテーブル技術を使用して依存パッケージおよび必須アップデートパッケージをリリースする。すなわち、サーバは、お好みパッケージ、依存パッケージ、および必須アップデートパッケージのパッケージ識別子をアップデートテーブルに追加し、このアップデートテーブルに一意のテーブル識別子を割り当て、該テーブル識別子をクライアントにリリースする。一部の実施形態では、アップデートテーブルのなかで、クライアントに既にリリースされたパッケージに対応するパッケージ識別子に、リリース済みタグが追加される。クライアントによって送信されたテーブル識別子が受信されると、アップデートテーブルのなかで、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージが、アップデートのためにクライアントにリリースされる。
【００６３】
また、一部の実施形態では、クライアントのためのアップデートパッケージを決定した後、サーバは、クライアントに対応するユーザが各機能を使用した回数に基づいて、各機能が依存するアップデートパッケージのための優先度ウェイトも決定する。機能が使用された回数が多いほど、その機能が依存するアップデートパッケージの優先度ウェイトは高くなる。続いて、各アップデートパッケージについて、そのアップデートパッケージの優先度ウェイトおよび重要度ウェイトの合計ウェイトが決定される。次に、サーバは、クライアントによってサブミットされたネットワーク環境情報、およびネットワーク環境情報と指定数との間の既定の対応関係にしたがって、指定数を決定する。続いて、様々なアップデートパッケージの合計ウェイトが最も大きいものから順に、サーバは、決定された指定数のアップデートパッケージを、リリースされるべきアップデートパッケージに含めるために順次選択し、このときに、クライアントのためのアップデートパッケージのなかから、リリースされるべき各パッケージが依存するアップデートパッケージが再帰的に決定される。依存パッケージもやはり、リリースされるべきアップデートパッケージとして含められ、リリースされるべき様々なアップデートパッケージが、アップデートのためにクライアントにリリースされる。
【００６４】
上述されたプロセス２００および３００は、クライアントアップデートプロセスである。上記のプロセス２００および３００に基づいて、クライアントをアップデートするためのデバイスが図４に描かれている。
【００６５】
図４は、クライアントをアップデートするためのデバイスの一実施形態を示した図である。一部の実施形態では、デバイス４００は、プロセス２００および３００を実行するものであり、アップデートパッケージ決定モジュール４１０と、お好み機能決定モジュール４２０と、お好みパッケージ決定モジュール４３０と、リリースモジュール４４０とを含む。
【００６６】
アップデートパッケージ決定モジュール４１０は、クライアントがアップデートされるべきであるという判定がなされたときに、そのクライアントのためのアップデートパッケージを決定する。
【００６７】
お好み機能決定モジュール４２０は、クライアントに対応するユーザの、保存されている操作記録に基づいて、クライアントによって提供される機能のなかから、ユーザのお好み機能を決定する。
【００６８】
お好みパッケージ決定モジュール４３０は、決定されたアップデートパッケージのなかから、ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとしてはたらくよう決定する。
【００６９】
リリースモジュール４４０は、決定されたお好みパッケージを、アップデートのためにクライアントにリリースする。
【００７０】
お好み機能決定モジュール４２０は、クライアントに対応するユーザの、保存されている操作記録に基づいて、クライアントによって提供される各機能をユーザが指定の時間範囲内に使用した回数を決定し、引き続き、使用された回数が最も多いものから最も少ないものへの順に指定数の機能を、ユーザのための確定お好み機能としてはたらくよう順次選択する。
【００７１】
一部の実施形態では、デバイス４００は、さらに、受信モジュール４５０を含む。
【００７２】
お好み機能決定モジュール４２０がユーザのお好み機能を決定する前に、受信モジュール４５０は、クライアントによってサブミットされたネットワーク環境情報を受信する。
【００７３】
お好み機能決定モジュール４２０は、受信モジュール４５０によって受信された、クライアントによってサブミットされたネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングに基づいて、クライアントによってサブミットされたネットワーク環境情報に対応する指定数を決定し、使用された回数が多いものから順に、上記決定された指定数の機能を、ユーザのための確定お好み機能としてはたらくよう順次選択する。
【００７４】
リリースモジュール４４０は、決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加し、該アップデートテーブルに一意のテーブル識別子を割り当て、該テーブル識別子をクライアントにリリースする。一部の実施形態では、クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグが追加される。クライアントによって送信されたテーブル識別子が受信されると、クライアントによって送信されたテーブル識別子に対応するアップデートテーブルが検索され、アップデートテーブルのなかで、リリース済みタグが追加されていないパッケージ識別子に対応するパッケージが、アップデートのためにクライアントにリリースされる。
【００７５】
一部の実施形態では、デバイスは、さらに、依存パッケージ決定モジュール４６０と、必須パッケージ決定モジュール４７０とを含む。
【００７６】
依存パッケージ決定モジュール４６０は、アップデートパッケージのなかから、お好みパッケージが依存するアップデートパッケージをクライアントのための依存パッケージとしてはたらくよう決定する。
【００７７】
必須パッケージ決定モジュール４７０は、アップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージをクライアントのための必須アップデートパッケージとしてはたらくよう決定する。
【００７８】
リリースモジュール４４０は、決定された依存パッケージおよび必須アップデートパッケージをアップデートのためにクライアントにリリースする。
【００７９】
一部の実施形態では、クライアントをアップデートするための上記のデバイスは、サーバ上に位置する。
【００８０】
図５は、クライアントをアップデートするためのシステムの一実施形態を示した図である。一部の実施形態では、システム５００は、ネットワーク５３０を通じてクライアント５１０に接続されたサーバ５２０を含む。
【００８１】
一部の実施形態では、クライアント５１０は、ネットワーク５３０を通じてアップデートチェックをサーバ５２０に送信する。アップデートチェックを受信すると、サーバ５２０は、クライアント５１０がアップデートされるべきであるかどうかを判定する。サーバ５２０は、クライアント５１０がアップデートされるべきであると判定した場合、ユーザのお好み機能に基づいて、お好みパッケージを含むアップデートパッケージをクライアント５１０に送信する。
【００８２】
クライアントをアップデートするためのプロセスおよびデバイスが提供される。プロセスは、クライアントがアップデートされるべきであるとの判定がなされたときに、サーバが、クライアントのためのアップデートパッケージを決定し、該クライアントのための決定されたアップデートパッケージのなかからユーザのお好み機能が依存するパッケージを決定し、ユーザのお好み機能が依存するパッケージをアップデートのためにクライアントにリリースすることを含む。したがって、サーバは、全てのアップデートパッケージをクライアントにリリースする必要はなく、その代わり、ユーザのお好み機能が依存するパッケージのみがアップデートされる。したがって、ネットワークリソースが節約され、クライアントをアップデートする効率が向上される。
【００８３】
上述されたユニットは、１つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、またはプログラマブルロジックデバイスおよび／もしくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、またはそれらの組み合わせとして実装することができる。一部の実施形態では、ユニットは、本発明の実施形態で説明される方法を（パソコン、サーバ、ネットワーク機器などの）計算装置に実行させるための幾つかの命令を含み尚且つ（光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの）不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化可能である。ユニットは、１つのデバイス上に実装されてよい、または複数のデバイスに分散されてよい。ユニットの機能は、互いに統合されてよい、または複数のサブユニットにさらに分けられてよい。
【００８４】
本明細書で開示された実施形態に照らして説明される方法またはアルゴリズム的ステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、またはこれら両方の組み合わせを使用して実現可能である。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、読み出し専用メモリ（ＲＯＭ）、電気的にプログラム可能なＲＯＭ、電気的に消去可能でプログラム可能なＲＯＭ、レジスタ、ハードドライブ、着脱式ディスク、ＣＤ−ＲＯＭ、または当該技術分野で知られるその他の任意の形態のストレージ媒体にインストール可能である。
【００８５】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的であり、限定的ではない。
本発明は、たとえば、以下のような態様で実現することもできる。
適用例１：
クライアントをアップデートするための方法であって、
前記クライアントがアップデートされるべきであるかどうかを判定することと、
前記クライアントがアップデートされるべきである場合に、前記クライアントのためのアップデートパッケージを決定することと、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することと、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとしてはたらくよう決定することと、
前記お好みパッケージをアップデートのために前記クライアントにリリースすることと、
を備える方法。
適用例２：
適用例１の方法であって、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することは、
前記クライアントに対応する前記ユーザの、前記保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定することと、
前記使用された回数が最も多いものから最も少ないものへの順に、指定数の機能を、前記ユーザのお好み機能としてはたらくよう順次選択することと、
を含む、方法。
適用例３：
適用例２の方法であって、さらに、
前記前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信することを備え、
前記指定数の機能を順次選択することは、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングに基づいて、前記指定数を決定することを含む、方法。
適用例４：
適用例１の方法であって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースすることは、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加することと、
前記アップデートテーブルに一意のテーブル識別子を割り当てることと、
前記テーブル識別子を前記クライアントにリリースすることと、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加することと、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定することと、
前記クライアントによって送信された前記テーブル識別子が受信されている場合に、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、前記リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースすることと、
を含む、方法。
適用例５：
適用例１の方法であって、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定することと、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定することと、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースすることと、
を備える方法。
適用例６：
クライアントをアップデートするためのシステムであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成されたメモリと、
を備え、
前記少なくとも１つのプロセッサは、
前記クライアントがアップデートされるべきであるかどうかを判定することと、
前記クライアントがアップデートされるべきである場合に、前記クライアントのためのアップデートパッケージを決定することと、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することと、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとしてはたらくよう決定することと、
前記お好みパッケージをアップデートのために前記クライアントにリリースすることと、
を行うように構成される、システム。
適用例７：
適用例６のシステムであって、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することは、
前記クライアントに対応する前記ユーザの、前記保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定することと、
前記使用された回数が最も多いものから最も少ないものへの順に、指定数の機能を、前記ユーザのためのお好み機能としてはたらくよう順次選択することと、
を含む、システム。
適用例８：
適用例７のシステムであって、
前記１つ以上のプロセッサは、さらに、
前記前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信するように構成され、
前記指定数の機能を順次選択することは、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングに基づいて、前記指定数を決定することを含む、システム。
適用例９：
適用例６のシステムであって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースすることは、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加することと、
前記アップデートテーブルに一意のテーブル識別子を割り当てることと、
前記テーブル識別子を前記クライアントにリリースすることと、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加することと、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定することと、
前記クライアントによって送信された前記テーブル識別子が受信されている場合に、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、前記リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースすることと、
を含む、システム。
適用例１０：
適用例６のシステムであって、
前記１つ以上のプロセッサは、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定することと、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定することと、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースすることと、
を行うように構成される、システム。
適用例１１：
有形の非一時的なコンピュータ読み取り可能ストレージ媒体に格納された、クライアントをアップデートするためのコンピュータプログラム製品であって、
前記クライアントがアップデートされるべきであるかどうかを判定するためのコンピュータ命令と、
前記クライアントがアップデートされるべきである場合に、前記クライアントのためのアップデートパッケージを決定するためのコンピュータ命令と、
前記クライアントに対応するユーザの、保存されている操作記録に基づいて、前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定するためのコンピュータ命令と、
前記決定されたアップデートパッケージのなかから、前記ユーザのお好み機能が依存するアップデートパッケージをお好みパッケージとしてはたらくよう決定するためのコンピュータ命令と、
前記お好みパッケージをアップデートのために前記クライアントにリリースするためのコンピュータ命令と、
を備えるコンピュータプログラム製品。
適用例１２：
適用例１１のコンピュータプログラム製品であって、
前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定することは、
前記クライアントに対応する前記ユーザの、前記保存されている操作記録に基づいて、前記クライアントによって提供される各機能を前記ユーザが指定の時間範囲内に使用した回数を決定することと、
前記使用された回数が最も多いものから最も少ないものへの順に、指定数の機能を、前記ユーザのためのお好み機能としてはたらくよう順次選択することと、
を含む、コンピュータプログラム製品。
適用例１３：
適用例１２のコンピュータプログラム製品であって、さらに、
前記前記クライアントによって提供される機能のなかから前記ユーザのお好み機能を決定する前に、前記クライアントからネットワーク環境情報を受信することを備え、
前記指定数の機能を順次選択することは、前記クライアントからの前記ネットワーク環境情報、およびネットワーク環境情報と指定数とを対応付けた既定のマッピングとに基づいて、前記指定数を決定することを含む、コンピュータプログラム製品。
適用例１４：
適用例１１のコンピュータプログラム製品であって、
前記決定されたお好みパッケージをアップデートのために前記クライアントにリリースすることは、
前記決定されたお好みパッケージのパッケージ識別子をアップデートテーブルに追加することと、
前記アップデートテーブルに一意のテーブル識別子を割り当てることと、
前記テーブル識別子を前記クライアントにリリースすることと、
前記アップデートテーブルのなかで、前記クライアントに既にリリースされたお好みパッケージのパッケージ識別子に、リリース済みタグを追加することと、
前記クライアントによって送信されたテーブル識別子が受信されているかどうかを判定することと、
前記クライアントによって送信された前記テーブル識別子が受信されている場合に、前記クライアントによって送信された前記テーブル識別子に対応する前記アップデートテーブルを検索し、前記リリース済みタグが追加されていないパッケージ識別子に対応するパッケージをアップデートのために前記クライアントにリリースすることと、
を含む、コンピュータプログラム製品。
適用例１５：
適用例１１のコンピュータプログラム製品であって、さらに、
前記クライアントのための前記決定されたアップデートパッケージのなかから、前記お好みパッケージが依存するアップデートパッケージを依存パッケージとしてはたらくよう決定することと、
前記クライアントのための前記決定されたアップデートパッケージのなかから、所定の閾値よりも大きい重要度ウェイトを有するアップデートパッケージを必須アップデートパッケージとしてはたらくよう決定することと、
前記依存パッケージおよび前記必須アップデートパッケージをアップデートのために前記クライアントにリリースすることと、
を備えるコンピュータプログラム製品。
【図１】
0006441404.tif 000002
【図２Ａ】
0006441404.tif 000003
【図２Ｂ】
0006441404.tif 000004
【図３】
0006441404.tif 000005
【図４】
0006441404.tif 000006
【図５】
0006441404.tif 000007