(57)【要約】  ソフトウェアプログラムの更新プロセスを促進するための機器が開示される。この機器は、ネットワーク装置との接続を維持すること、ソフトウェアプログラムを更新するための情報をネットワーク装置から受信すること、受信された情報に基づいてソフトウェアプログラムの更新を行うこと、及び１つ又は複数のユーザ要求を処理することを行うように構成される論理処理モジュールを含む。この機器は、ユーザ要求を受信すること、論理処理モジュールによるソフトウェアプログラムの更新が進行中である場合に、受信されたユーザ要求を記憶すること、受信されたユーザ要求を記憶すること、及びソフトウェアプログラムの更新が完了した後、記憶されたユーザ要求を処理のために論理処理モジュールに提供することを行うように構成されるインタフェースモジュールを更に含む。
2018523871.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアプログラムの更新プロセスを促進するための機器であって、
ネットワーク装置との接続を維持すること、
ソフトウェアプログラムを更新するための情報を前記ネットワーク装置から受信すること、
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うこと、及び
１つ又は複数のユーザ要求を処理すること
を行うように構成される論理処理モジュールと、
ユーザ要求を受信すること、
前記論理処理モジュールによる前記ソフトウェアプログラムの前記更新が進行中である場合に、前記受信されたユーザ要求を記憶すること、
前記ソフトウェアプログラムの前記更新が完了した後、前記記憶されたユーザ要求を処理のために前記論理処理モジュールに提供すること
を行うように構成されるインタフェースモジュールと
を含む、機器。
【請求項２】
前記論理処理モジュールと前記ネットワーク装置との間で伝送される情報の形式変換を行うように構成される通信処理モジュールを更に含む、請求項１に記載の機器。
【請求項３】
前記論理処理モジュールは、
前記ソフトウェアプログラムの前記更新を行うための命令を前記ネットワーク装置から受信すること、
前記命令を受信した後、前記ソフトウェアプログラムを更新するための情報をダウンロードするための要求を伝送することであって、前記要求は、前記ソフトウェアプログラムの現在のバージョンに関する情報を含む、伝送すること、及び
前記要求された情報を受信すること
を行うように更に構成される、請求項１又は２に記載の機器。
【請求項４】
前記論理処理モジュールは、
前記要求された情報を検証するための検証情報を前記ネットワーク装置から取得すること、及び
前記要求された情報を検証した後、前記要求された情報に基づいて前記ソフトウェアプログラムの前記更新を行うこと
を行うように更に構成される、請求項３に記載の機器。
【請求項５】
前記論理処理モジュールは、
１つ又は複数のハートビート要求パケットを所定の間隔内で前記ネットワーク装置に周期的に伝送すること、
前記１つ又は複数のハートビート要求を伝送した後、前記ネットワーク装置からのハートビート応答パケットをモニタすること、及び
ハートビート応答が受信されるかどうかに基づき、前記ネットワーク装置との前記接続が維持されているかどうかを判定すること
を行うように更に構成される、請求項１〜４の何れか一項に記載の機器。
【請求項６】
前記論理処理モジュールは、ダイナミックプログラミング言語によって実装される、請求項１〜５の何れか一項に記載の機器。
【請求項７】
前記インタフェースモジュールは、前記ソフトウェアプログラムの前記更新を行うための１つ又は複数の計算資源をアクティベートすることを行うように構成される、請求項６に記載の機器。
【請求項８】
ソフトウェアプログラムの更新プロセスを促進するための機器であって、
クライアント装置との接続を維持するように構成される接続確立モジュールと、
前記ソフトウェアプログラムの前記更新を行うための命令を前記クライアント装置に伝送すること、
前記ソフトウェアプログラムを更新するための情報をダウンロードするための要求を前記クライアント装置から受信することであって、前記要求は、前記ソフトウェアプログラムの現在のバージョンに関する情報を含む、受信すること、
前記現在のバージョンに関する前記情報に基づいて前記要求された情報を決定すること、及び
前記要求された情報を前記クライアント装置に伝送すること
を行うように構成されるソフトウェア更新情報伝送モジュールと
を含む、機器。
【請求項９】
前記ソフトウェア更新情報伝送モジュールは、前記クライアント装置に検証情報を伝送することであって、前記検証情報は、前記クライアント装置が、前記機器から受信された前記ソフトウェアプログラムを更新するための前記情報を検証することを可能にする、伝送することを行うように更に構成される、請求項８に記載の機器。
【請求項１０】
前記接続確立モジュールは、
前記クライアント装置から１つ又は複数のハートビート要求パケットを受信すること、及び
接続が維持されていることを示すために前記クライアント装置にハートビート応答パケットを伝送すること
を行うように更に構成される、請求項８又は９に記載の機器。
【請求項１１】
更新されるソフトウェアプログラムの１つ又は複数のバージョンに対応する更新情報を管理するように構成されるバージョン管理モジュールを更に含む、請求項８〜１０の何れか一項に記載の機器。
【請求項１２】
ソフトウェアプログラムの更新プロセスを促進するためのコンピュータ実施方法であって、
ネットワーク装置との接続を維持すること、
ソフトウェアプログラムを更新するための情報を前記ネットワーク装置から受信すること、
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うこと、
前記ソフトウェアプログラムの前記更新を行うときに、
ユーザ要求を受信し、
前記受信されたユーザ要求を記憶すること、
前記ソフトウェアプログラムの前記更新が完了した後、前記記憶されたユーザ要求を処理すること
を含む、コンピュータ実施方法。
【請求項１３】
ネットワーク装置から受信された情報の形式変換を行うことを更に含む、請求項１２に記載のコンピュータ実施方法。
【請求項１４】
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うことは、
前記ソフトウェアプログラムの前記更新を行うための命令を前記ネットワーク装置から受信すること、
前記命令を受信した後、前記ソフトウェアプログラムを更新するための情報をダウンロードするための要求を伝送することであって、前記要求は、前記ソフトウェアプログラムの現在のバージョンに関する情報を含む、伝送すること、及び
前記要求された情報を受信すること
を含む、請求項１２又は１３に記載のコンピュータ実施方法。
【請求項１５】
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うことは、
前記要求された情報を検証するための検証情報を前記ネットワーク装置から取得すること、及び
前記要求された情報を検証した後、前記要求された情報に基づいて前記ソフトウェアプログラムの前記更新を行うこと
を含む、請求項１４に記載のコンピュータ実施方法。
【請求項１６】
ネットワーク装置との接続を維持することは、
１つ又は複数のハートビート要求パケットを所定の間隔内で前記ネットワーク装置に周期的に伝送すること、
前記１つ又は複数のハートビート要求を伝送した後、前記ネットワーク装置からのハートビート応答パケットをモニタすること、及び
前記ハートビート応答が受信されるかどうかに基づき、前記ネットワーク装置との前記接続が維持されているかどうかを判定すること
を含む、請求項１２〜１５の何れか一項に記載のコンピュータ実施方法。
【請求項１７】
前記ユーザ要求は、ダイナミックプログラミング言語を使用して処理される、請求項１２〜１６の何れか一項に記載のコンピュータ実施方法。
【請求項１８】
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うことは、前記ソフトウェアプログラムの前記更新を行うための１つ又は複数の計算資源をアクティベートすることを含む、請求項１７に記載のコンピュータ実施方法。
【請求項１９】
ソフトウェアプログラムの更新プロセスを促進するためのコンピュータ実施方法であって、
クライアント装置との接続を維持すること、
前記ソフトウェアプログラムの前記更新を行うための命令を前記クライアント装置に伝送すること、
前記ソフトウェアプログラムを更新するための情報をダウンロードするための要求を前記クライアント装置から受信することであって、前記要求は、前記ソフトウェアプログラムの現在のバージョンに関する情報を含む、受信すること、
前記現在のバージョンに関する前記情報に基づいて前記要求された情報を決定すること、及び
前記要求された情報を前記クライアント装置に伝送すること
を含む、コンピュータ実施方法。
【請求項２０】
前記クライアント装置に検証情報を伝送することであって、前記検証情報は、前記クライアント装置が、前記機器から受信された前記ソフトウェアプログラムを更新するための前記情報を検証することを可能にする、伝送することを更に含む、請求項１９に記載のコンピュータ実施方法。
【請求項２１】
前記１つ又は複数のユーザ機器との通信接続を維持することは、
前記クライアント装置から１つ又は複数のハートビート要求パケットを受信すること、及び
接続が維持されていることを示すために前記クライアント装置にハートビート応答パケットを伝送すること
を含む、請求項２０に記載のコンピュータ実施方法。
【請求項２２】
更新されるソフトウェアプログラムの１つ又は複数のバージョンに対応する更新情報を管理することを更に含む、請求項１９〜２１の何れか一項に記載のコンピュータ実施方法。
【請求項２３】
ソフトウェアプログラムの更新プロセスを促進するための方法を装置に行わせるために、前記装置の少なくとも１つのプロセッサによって実行可能な命令の組を記憶する非一時的コンピュータ可読媒体であって、前記方法は、
ネットワーク装置との接続を維持すること、
ソフトウェアプログラムを更新するための情報を前記ネットワーク装置から受信すること、
前記受信された情報に基づいて前記ソフトウェアプログラムの更新を行うこと、
前記ソフトウェアプログラムの前記更新を行うときに、
ユーザ要求を受信し、
前記受信されたユーザ要求を記憶すること、
前記ソフトウェアプログラムの前記更新が完了した後、前記記憶されたユーザ要求を処理すること
を含む、非一時的コンピュータ可読媒体。
【請求項２４】
ソフトウェアプログラムの更新プロセスを促進するための方法を装置に行わせるために、前記装置の少なくとも１つのプロセッサによって実行可能な命令の組を記憶する非一時的コンピュータ可読媒体であって、前記方法は、
クライアント装置との接続を維持すること、
前記ソフトウェアプログラムの前記更新を行うための命令を前記クライアント装置に伝送すること、
前記ソフトウェアプログラムを更新するための情報をダウンロードするための要求を前記クライアント装置から受信することであって、前記要求は、前記ソフトウェアプログラムの現在のバージョンに関する情報を含む、受信すること、
前記現在のバージョンに関する前記情報に基づいて前記要求された情報を決定すること、及び
前記要求された情報を前記クライアント装置に伝送すること
を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、参照によりその全内容が本明細書に援用される、２０１５年８月３日に出願された中国特許出願第２０１５１０４８１２６１．４号に基づき、且つそれに対する優先権を主張する。
【０００２】
技術分野
本開示は、概して、コンピュータ技術の分野に関し、より詳細には、ネットワーク上でのソフトウェア更新プロセスを促進するための方法及び機器に関する。
【背景技術】
【０００３】
背景
分散計算システムでは、ネットワーク装置（例えば、サーバ）は、典型的には数千台ものクライアント装置とインタラクトする。ネットワーク装置は、クライアント装置上にインストールされたソフトウェアプログラムの更新も行うことができる。更新は、性能向上やバグ修正等を目的とし得る。
【０００４】
現在の技術では、ソフトウェアプログラムを更新する典型的なプロセスは、クライアント装置がソフトウェアプログラムの実行を一時停止し、その後、ソフトウェア開発キット（ＳＤＫ）を更新することを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ソフトウェアプログラムを更新する従来のプロセスには幾つかの不都合がある。第１に、ソフトウェアプログラムの実行が一時停止されるとき、利用者がサービスの中断を経験する場合がある。その結果、ユーザエクスペリエンスが大幅に劣化する。第２に、多数のクライアント装置にわたってソフトウェアの更新を行うとき、クライアント装置におけるソフトウェアのバージョンを管理するのが非常に複雑且つ困難になる。
【課題を解決するための手段】
【０００６】
概要
本開示の一態様は、ソフトウェアプログラムの更新プロセスを促進するための機器を対象とする。この機器は、ネットワーク装置との接続を維持すること、ソフトウェアプログラムを更新するための情報をネットワーク装置から受信すること、受信された情報に基づいてソフトウェアプログラムの更新を行うこと、及び１つ又は複数のユーザ要求を処理することを行うように構成される論理処理モジュールを含む。この機器は、ユーザ要求を受信すること、論理処理モジュールによるソフトウェアプログラムの更新が進行中である場合に、受信されたユーザ要求を記憶すること、受信されたユーザ要求を記憶すること、及びソフトウェアプログラムの更新が完了した後、記憶されたユーザ要求を処理のために論理処理モジュールに提供することを行うように構成されるインタフェースモジュールを更に含む。
【０００７】
本開示の別の態様は、ソフトウェアプログラムの更新プロセスを促進するための機器を対象とする。この機器は、クライアント装置との接続を維持するように構成される接続確立モジュールと、ソフトウェアプログラムの更新を行うための命令をクライアント装置に伝送するように構成されるソフトウェア更新情報伝送モジュールとを含む。ソフトウェア更新情報伝送モジュールは、ソフトウェアプログラムを更新するための情報をダウンロードするための要求をクライアント装置から受信することであって、要求は、ソフトウェアプログラムの現在のバージョンに関する情報を含む、受信することを行うようにも構成される。ソフトウェア更新情報伝送モジュールは、現在のバージョンに関する情報に基づいて要求された情報を決定すること、及び要求された情報をクライアント装置に伝送するようことを行うようにも構成される。
【０００８】
本開示の別の態様は、ソフトウェアプログラムの更新プロセスを促進するためのコンピュータ実施方法を対象とする。この方法は、ネットワーク装置との接続を維持すること、ソフトウェアプログラムを更新するための情報をネットワーク装置から受信すること、及び受信された情報に基づいてソフトウェアプログラムの更新を行うことを含む。この方法は、ソフトウェアプログラムの更新を行うときに、ユーザ要求を受信し、且つ受信されたユーザ要求を記憶すること、ソフトウェアプログラムの更新が完了した後、記憶されたユーザ要求を処理することを更に含む。
【０００９】
本開示の別の態様は、ソフトウェアプログラムの更新プロセスを促進するためのコンピュータ実施方法を対象とする。この方法は、クライアント装置との接続を維持すること、ソフトウェアプログラムの更新を行うための命令をクライアント装置に伝送すること、ソフトウェアプログラムを更新するための情報をダウンロードするための要求をクライアント装置から受信することであって、要求は、ソフトウェアプログラムの現在のバージョンに関する情報を含む、受信すること、現在のバージョンに関する情報に基づいて要求された情報を決定すること、及び要求された情報をクライアント装置に伝送することを含む。
【００１０】
本開示の別の態様は、上記の方法の何れかを装置に行わせるために、装置の少なくとも１つのプロセッサによって実行可能な命令の組を記憶する非一時的コンピュータ可読記憶媒体を対象とする。
【００１１】
開示する実施形態の更なる目的及び利点が以下の説明で部分的に記載され、説明から部分的に明らかになり、又は実施形態を実践することによって分かり得る。開示する実施形態の目的及び利点は、特許請求の範囲に記載の要素及び組合せによって実現及び達成され得る。
【００１２】
上記の概要及び以下の詳細な説明の両方は、例示的且つ説明的に過ぎず、特許請求の範囲に記載の開示する実施形態を限定しないことを理解すべきである。
【図面の簡単な説明】
【００１３】
【図１】本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的システムを示すブロック図である。
【図２】本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的方法を示すフローチャートである。
【図３】本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的システムを示すブロック図である。
【図４】本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的システムを示すフローチャートである。
【発明を実施するための形態】
【００１４】
実施形態の説明
本開示の実施形態は、ネットワーク上でのソフトウェア更新プロセスを促進するためのシステムを提供する。このシステムは、クライアント装置（例えば、パーソナルコンピュータ、スマートフォン、タブレット、ウェアラブル（例えば、スマートウォッチ）、又は任意の種類のモバイル端末）の一部分とすることができる。このシステムは、ネットワーク装置（例えば、コンテンツサーバ）にアクセスするための要求を処理し、ネットワーク装置との接続を維持するように構成される論理処理モジュールを含み得る。論理処理モジュールは、クライアント装置上にインストールされたソフトウェアプログラムの更新を行うための情報をネットワーク装置（例えば、ソフトウェア更新管理サーバ）から受信し、その情報を受信した後に更新を行うようにも構成される。このシステムは、ソフトウェアプログラムの更新が進行中である場合に、ネットワーク装置にアクセスするための要求を受信し、その要求を記憶するように構成されるインタフェースモジュールも含み得る。更新が完了した後、インタフェースモジュールは、記憶された要求を処理のために処理モジュールに提供することができる。
【００１５】
本開示の実施形態では、利用者とインタラクトし、ソフトウェアの更新が進行中である場合に、利用者から受信されたアクセス要求を記憶するためのインタフェースモジュールが設けられ、サービスの中断を最小限に抑えることができる。その結果、ユーザエクスペリエンスを改善することができる。
【００１６】
次に、図１を参照すると、図１は、本開示の実施形態による、ネットワーク上でのソフトウェア更新プロセスを促進するためのシステム１００を示す。図１に示すように、システム１００は、クライアント装置１及びネットワーク３経由で通信可能に結合されるネットワーク装置２を含む。クライアント装置１は、パーソナルコンピュータ、スマートフォン、タブレット等の任意の種類のモバイル端末とすることができる。クライアント装置１は、インタフェースモジュール１１、論理処理モジュール１２、及び通信処理モジュール１３を含み得る。
【００１７】
一部の実施形態では、論理処理モジュール１２は、ネットワーク装置（例えば、コンテンツサーバやネットワーク装置２等）にアクセスするための要求を処理するように構成される。論理処理モジュール１２は、ネットワーク装置２との接続を維持することもできる。論理処理モジュール１２は、クライアント装置１上にインストールされたソフトウェアプログラムの更新を行うための情報をネットワーク装置２から受信し、その情報を受信した後に更新を行うこともできる。
【００１８】
一部の実施形態では、インタフェースモジュール１１は、ソフトウェアプログラムの更新が進行中である場合に、ネットワーク装置にアクセスするための要求を受信し、その要求を記憶するように構成される。インタフェースモジュール１１は、更新プロセスが完了した後に要求の受信及び記憶を続行し、（更新プロセス中又は更新プロセス後に受信される）記憶された要求を、処理のために論理処理モジュール１２に提供することができる。
【００１９】
一部の実施形態では、通信処理モジュール１３は、論理処理モジュール１２とネットワーク装置２との間の接続を促進するように構成される。例えば、通信処理モジュール１３は、論理処理モジュール１２とネットワーク装置２との間で伝送される情報のシリアル化（又はデシリアル化）を行うことができる。
【００２０】
図１には不図示であるが、クライアント装置１は、命令の組を記憶するメモリ及び計算を行うために（例えば、デジタル情報を処理するために）命令の組を実行するように構成される電子回路を含み得る。電子回路は、これだけに限定されないが、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、書替え可能ゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、又は任意の種類の埋込み装置を含み得る。
【００２１】
一部の実施形態では、上記のモジュールは、コンピュータ可読媒体（例えば、メモリ）内に記憶されるソフトウェアプログラムの一部であり、クライアント装置１の電子回路によって実行され得る。例えば、インタフェースモジュール１１はアプリケーションプログラミングインタフェース（ＡＰＩ）として実装できるのに対し、論理処理モジュール１２は、パッケージ化されたソフトウェアユニットとして実装することができる。一部の実施形態では、論理処理モジュール１２は、ランタイム時のモジュールの更新（例えば、新たなコード、拡張オブジェクト、及び定義の追加等）を可能にするLua等のダイナミックプログラミング言語を使用して実装され得る。Luaは、容易なサンドボックス化を提供する軽量プログラミング言語であり、様々なプラットフォームにわたって効率的に実行及び更新され得る。
【００２２】
一部の実施形態では、インタフェースモジュール１１は、様々な種類のユーザ操作のためのインタフェースを提供し、利用者から受信された（例えば、ネットワーク装置にアクセスするための）要求を論理処理モジュール１２がサポートする形式に変換することができる。インタフェースモジュール１１は、論理処理モジュール１２を実行するためにクライアント装置１の実行資源（例えば、インタプリタ、コンパイラ、リンカ等）をアクティベートし、モジュールの実行に必要なファイル（例えば、論理処理モジュール１２のソースコードを含む実行可能ファイルを構築するためのライブラリファイルやオブジェクトファイル等）を提供することもできる。インタフェースモジュール１１は、論理処理モジュール１２の更新が進行中である場合に、利用者から受信された要求を受信及び記憶し、更新が完了した後、受信された要求（適切な形式に変換される）を、処理のために論理処理モジュール１２に提供することができる。
【００２３】
更に、一部の実施形態では、論理処理モジュール１２はネットワーク装置２との接続を維持することもできる。例えば、論理処理モジュール１２は、一定の時間間隔内でハートビート要求パケットの組をネットワーク装置２に周期的に伝送することができる。論理処理モジュール１２は、それらのハートビート要求パケットに対する１つ又は複数の応答をネットワーク装置２から受信することができ、かかる応答は、接続が維持されていることを示し得る。論理処理モジュール１２は、ソフトウェアの更新に関係する情報を接続によって受信することもできる。例えば、論理処理モジュール１２は、ソフトウェアを更新するための要求を接続によって伝送することができる。その要求は、更新されるソフトウェアプログラムのバージョン情報も含み得る。
【００２４】
説明のための例として、論理処理モジュール１２は、ソフトウェアプログラムを更新するための命令をネットワーク装置２から受信し得る。論理処理モジュール１２は、その命令に基づいてソフトウェアプログラムを更新するための情報（例えば、コード、ライブラリ、オブジェクトファイル等）をダウンロードするための要求をネットワーク装置２に伝送することができる。要求は、例えば、論理処理モジュール１２のバージョン情報を含み得る。その後、論理処理モジュール１２は、要求された情報をネットワーク装置２から受信することができる。
【００２５】
一部の実施形態では、バージョン情報は、例えば、インタフェースモジュール１１及び通信処理モジュール１３のバージョン情報も含み得る。これらのモジュールのバージョン情報は、クライアント装置１の互換性を分析すること等、ネットワーク装置２が他の機能を行うことを可能にし得る。
【００２６】
一部の実施形態では、論理処理モジュール１２は、ソフトウェアプログラムを更新するための情報に加えて検証情報もネットワーク装置から受信し得る。次いで、論理処理モジュール１２は、検証情報が一定の基準を満たすと（例えば、受信された情報がソフトウェアの特定のバージョンに対応することを検証情報が示すかどうかを）判定した後、受信された情報に基づいて更新を行うことができる。この判定に基づき、論理処理モジュール１２は、受信された情報が要求されていたものに対応するかどうかを判定することができる。かかる構成は、論理処理モジュール１２がソフトウェア更新のための正しい情報を受信する可能性を改善し得る。
【００２７】
一部の実施形態では、通信処理モジュール１３は、論理処理モジュール１２とネットワーク装置２との間の通信を促進するように構成される。例えば、通信処理モジュール１３は、ネットワーク装置２に伝送される情報を論理処理モジュール１２から受信し、その情報に対してシリアル化処理を行い、処理した情報をネットワーク３経由でネットワーク装置２に伝送することができる。更に、クライアント装置１を対象とする情報をネットワーク３から受信した後、通信処理モジュール１３は、受信された情報に対してデシリアル化処理を行い、次いで、その処理した情報を処理するために論理処理モジュール１２に伝送することもできる。一部の実施形態では、シリアル化（及びデシリアル化）プロセスは、記憶用の形式（例えば、バイナリ形式）とネットワーク伝送用の形式（バイナリ形式や文字列形式等）との間で情報を変換することを含む。
【００２８】
説明のための例では、クライアント装置１におけるソフトウェア更新プロセスは、論理処理モジュール１２がネットワーク装置２との接続を維持することを含み得る。接続を維持することは、論理処理モジュール１２とネットワーク装置２との間でハートビートメッセージを周期的に交換することを含み得る（例えば、クライアント装置１はハートビート要求パケットを伝送することができ、ネットワーク装置２はハートビート応答パケットを伝送することができる）。ネットワーク装置２からのハートビート応答パケットは、クライアント装置１においてソフトウェアプログラムの更新を行うための命令を含み得る。命令を受信した後、論理処理モジュール１２は、ソフトウェアプログラム（論理処理モジュール１２も含み得る）を更新するための情報をダウンロードするための要求をネットワーク装置２に伝送することができる。この要求は、クライアント装置１上にインストールされたソフトウェアプログラムの現在のバージョンを含み得る。次いで、ネットワーク装置２は、要求された情報（例えば、コード、ライブラリ、オブジェクトファイル等）をクライアント装置１に伝送することができる。
【００２９】
ソフトウェアプログラムを更新するための情報をクライアント装置１が受信した後、論理処理モジュール１２は、受信された情報が要求に対応することを（例えば、検証情報に基づいて）検証することができる。受信された情報を検証した後、論理処理モジュール１２を更新すべき場合、論理処理モジュール１２は、利用者からの要求の処理を停止し、通信処理モジュール１３の動作を一時停止することができる。次いで、論理処理モジュール１２は、ソフトウェア更新プロセスを開始するようにインタフェースモジュール１１に命令することができる。インタフェースモジュール１１は、例えば、ソフトウェアプログラムを更新するための計算資源（例えば、インタプリタ、コンパイラ、リンカ等）をアクティベートし、ソフトウェアプログラムを更新するための受信情報（例えば、ライブラリファイルやオブジェクトファイル等）を計算資源に提供することができる。ソフトウェアプログラムの更新が完了した後、論理処理モジュール１２は、利用者からの処理要求を再開し、通信処理モジュール１３の動作を再開することができる。更に、更新が進行中である場合、インタフェースモジュール１１は、利用者からの要求を受信し、それらの要求を記憶し、更新が完了した後、記憶された要求（並びに新たな要求）を処理のために論理処理モジュール１２に提供することもできる。
【００３０】
図１を再び参照すると、ネットワーク装置２は、接続確立モジュール２１及びソフトウェア更新情報伝送モジュール２２も含むことができる。ネットワーク装置２は、コンピュータ、サーバ、又はクラウドコンピューティングをサポートするためのクラウドを形成するサーバ群とすることができる。ネットワーク３は、例えば、インターネット、ローカルエリアネットワーク（ＬＡＮ）、無線ローカルエリアネットワーク（ＷＬＡＮ）、仮想私設網（ＶＰＮ）、アドホックネットワーク等を含み得る。
【００３１】
一部の実施形態では、接続確立モジュール２１は、１つ又は複数のクライアント装置（クライアント装置１を含む）との接続を維持するように構成される。ソフトウェア更新情報伝送モジュール２２は、ソフトウェアプログラムを更新するための命令及びソフトウェアプログラムを更新するための情報をクライアント装置（例えば、クライアント装置１）に伝送するように構成される。
【００３２】
一部の実施形態では、ソフトウェア更新情報伝送モジュール２２は、ソフトウェアプログラムを更新するための情報をダウンロードするための要求をクライアント装置１から受信することができ、その要求は、クライアント装置１上にインストールされたソフトウェアプログラムの現在のバージョンに関する情報を含み得る。ソフトウェア更新情報伝送モジュール２２は、ソフトウェアプログラムを更新するための情報（例えば、コード、ライブラリ、オブジェクトファイル等）を現在のバージョンの情報に基づいて決定し、その情報をクライアント装置１に伝送することができる。
【００３３】
一部の実施形態では、ソフトウェア更新情報伝送モジュール２２は、例えば、現在のバージョンの情報に基づいて検証情報を生成し、ソフトウェアプログラムを更新するための情報と共にその検証情報をクライアント装置１に伝送することができる。クライアント装置１は、自らが要求した情報を受信したことを検証するために検証情報を使用することができる。
【００３４】
一部の実施形態では、接続確立モジュール２１は、クライアント装置１からハートビート要求パケットを受信し、クライアント装置１とネットワーク装置２との間で接続が確立されたことを示すためにハート応答をクライアント装置１に送り返すことができる。
【００３５】
一部の実施形態では、ネットワーク装置２は、クライアント装置１（及び他の幾つかのクライアント装置）向けのソフトウェア更新情報を管理し得るバージョン管理モジュール２３（不図示）を更に含む。例えば、バージョン管理モジュール２３は、論理処理モジュール１２の様々なバージョンに対応するソフトウェア更新情報を記憶及び維持することができ、これは、ネットワーク装置２が対応するソフトウェア更新情報をクライアント装置１に伝送し、クライアント装置１における論理処理モジュール１２の所定のバージョン更新に影響を及ぼすことを可能にする。
【００３６】
本開示では、これらのモジュール（及び任意の対応するサブモジュール）の少なくとも一部を、他のコンポーネント（例えば、集積回路の一部）と共に使用するように設計される、関係する機能のうちの特定の機能を行うパッケージ化された機能ハードウェアユニットとし得ることが理解されるであろう。開示する「モジュール」をハードウェアによって実装する場合、それらのモジュールは、他のモジュールとインタラクトして、開示した実施形態に合致する機能を行うための、機械コード又はアセンブリコード等によって構成される埋込みシステム又は他の専用ハードウェアを含み得る。
【００３７】
次に、図２を参照すると、図２は、本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的方法２００を示す。一部の実施形態では、方法２００は、クライアント装置（例えば、図１のクライアント装置１）によって行われ得る。図２を参照すると、方法２００は以下のステップを含み得る。
【００３８】
ステップＳ２０１では、クライアント装置は、ネットワーク装置（例えば、コンテンツサーバ）にアクセスするための要求を受信及び処理する。一部の実施形態では、ステップＳ２０１は、例えば、図１のインタフェースモジュール１１及び論理処理モジュール１２によって行われ得る。例えば、インタフェースモジュール１１は、論理処理モジュール１２がソフトウェアの更新にかけられているときにアクセス要求を受信及び記憶し、且つ更新が完了した後、記憶された要求を論理処理モジュール１２に提供することができる。
【００３９】
ステップＳ２０２では、クライアント装置は、ネットワーク装置との接続を維持する。一部の実施形態では、ステップＳ２０１は、例えば、論理処理モジュール１２及び／又は通信処理モジュール１３によって行われ得る。例えば、論理処理モジュール１２は、ネットワーク装置とハートビートメッセージを交換して接続を維持することができる。ハートビートメッセージは、バージョン情報及び論理処理モジュール１２を更新するための情報をダウンロードするための要求を含み得る。通信処理モジュール１３は、ネットワークから受信される（又はネットワークに伝送される）情報に対してシリアル化及びデシリアル化操作を行い、記憶及び処理用の形式と伝送用の形式との間で変換を行うことができる。
【００４０】
ステップＳ２０３では、クライアント装置は、ネットワーク装置から受信された情報に基づいてソフトウェアプログラムの更新を行う。一部の実施形態では、ステップＳ２０３は、例えば、図１のインタフェースモジュール１１及び論理処理モジュール１２によって行われ得る。ステップＳ２０３は、例えば、ソフトウェアプログラム（例えば、論理処理モジュール１２）を更新するための命令をネットワーク装置から受信し、ソフトウェアを更新するための情報をダウンロードするための要求をネットワーク装置に伝送し、要求された情報を受信することを含み得る。要求は、更新されるソフトウェアプログラムの現在のバージョンに関する情報を含み得る。ソフトウェアを更新するための情報は、要求された情報を受信したことをクライアント装置が検証することを可能にする検証情報も含み得る。ステップＳ２０３は、例えば、ソフトウェアを更新するための計算資源をアクティベートし（例えば、コンパイラ、インタプリタ、リンカ等をアクティベートし）、ネットワーク装置から受信されたソフトウェア更新用の情報（例えば、コード、ライブラリ、オブジェクトファイル等）を提供することも含み得る。
【００４１】
次に、図３を参照すると、図３は、本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的方法３００を示す。一部の実施形態では、方法３００は、クライアント装置（例えば、図１のクライアント装置１）とネットワーク装置（例えば、図１のネットワーク装置２）との間で行われ得る。図３を参照すると、方法３００は以下のステップを含み得る。
【００４２】
ステップＳ３０１では、クライアント装置１は、ネットワーク装置２にアクセスするための要求を受信及び処理する。
【００４３】
ステップＳ３０２では、クライアント装置１は、ネットワーク装置２との接続を維持する。ステップＳ３０２は、例えば、周期的なハートビート要求パケットをネットワーク装置２に伝送し、ネットワーク装置２からハートビート応答パケットを受信して接続が維持されていることを確認することを含み得る。
【００４４】
ステップＳ３０３では、クライアント装置１は、クライアント装置１においてソフトウェアの更新を行うための命令を含むハートビート応答パケットをネットワーク装置２から受信した後、ソフトウェアを更新するための情報をダウンロードするための要求をネットワーク装置２に伝送する。
【００４５】
ステップＳ３０４では、ネットワーク装置２は、要求された情報をクライアント装置１に伝送する。
【００４６】
ステップＳ３０５では、クライアント装置１は、要求された情報を受信する。次いで、クライアント装置１は、ソフトウェア更新プロセスを行うことができ、ソフトウェア更新プロセスは、受信された情報を検証すること、ソフトウェアを更新するための計算資源をアクティベートすること、及びソフトウェアの更新が進行中である場合に、利用者から受信された要求を記憶することを含み得る。ソフトウェア更新プロセスが完了した後、クライアント装置１は、記憶された要求を処理することができる。
【００４７】
次に、図４を参照すると、図４は、本開示の実施形態に合致する、ネットワーク上でのソフトウェア更新プロセスを促進するための例示的方法４００を示す。一部の実施形態では、方法４００は、ネットワーク装置（例えば、図１のネットワーク装置２）によって行われ得る。図４を参照すると、方法４００は以下のステップを含み得る。
【００４８】
ステップＳ４０１では、ネットワーク装置は、１つ又は複数のクライアント装置との接続を維持する。接続を維持することは、例えば、ネットワーク装置と１つ又は複数のクライアント装置との間でハートビートメッセージを交換することを含み得る。
【００４９】
ステップＳ４０２では、ネットワーク装置は、ソフトウェアの更新を行うための命令並びにソフトウェアの更新を行うための情報をクライアント装置に伝送する。ネットワーク装置は、クライアント装置から要求、更新されるソフトウェアの現在のバージョンに関する情報を受信し、要求された情報を現在のバージョンの情報に基づいて決定することができる。ネットワーク装置は、ソフトウェアの様々なバージョンに対応するソフトウェア更新情報を維持することもでき、ネットワーク装置が対応するソフトウェア更新情報を要求側のクライアント装置に伝送し、クライアント装置におけるソフトウェアの所定のバージョン更新に影響を及ぼすことを可能にする。
【００５０】
本開示は、コンピュータ可読媒体上に記憶され、マイクロプロセッサ、プロセッサ、中央処理装置（ＣＰＵ）、グラフィカル処理ユニット（ＧＰＵ）等の少なくとも１つを含む計算装置又は計算システムによって実行されるプログラムモジュール等、コンピュータ実行可能コマンド又は操作に一般的に関連して説明され得る。概して、プログラムモジュールは、特定のタスクを行い又は一連のステップ若しくは操作を実装するためのルーチン、手続き、オブジェクト、コンポーネント、データ構造、プロセッサ、メモリ等を含み得る。
【００５１】
本開示は、分散計算環境内で実装することもでき、それらの分散計算環境内では、通信ネットワーク、例えば、インターネットによって接続される遠隔処理装置によってタスク又は操作が実行され得る。分散計算環境内では、プログラムモジュールは、フラッシュディスク又は他の形態のフラッシュメモリ、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク、光学ディスク、キャッシュ、レジスタ等を含むローカル又はリモートの非一時的コンピュータ可読記憶媒体中に位置し得る。
【００５２】
更に、メモリ及び／又は他の有形の且つ／若しくは非一時的なコンピュータ可読媒体内に記憶されるデータ及び／又は命令に関連するものとして開示した実施形態の態様を説明したが、これらのデータ及び／又は命令は、ハードディスク、フロッピディスク、ＣＤ−ＲＯＭ、他の形態のＲＡＭ又はＲＯＭを含む記憶装置等、多くの種類の有形のコンピュータ可読記憶媒体上に記憶され、それから実行されてもよいことが理解されるであろう。従って、開示した実施形態は上記の例に限定されず、むしろその均等物の全範囲に照らして添付の特許請求の範囲によって定められる。
【００５３】
本開示の実施形態は、方法、システム、コンピュータプログラム製品等として実施することができる。従って、本開示の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又は上記の機能を行うための記載した専用コンポーネントを有する専用装置を可能にするためにソフトウェアとハードウェアとを組み合わせる実施形態の形態を取り得る。更に、本開示の実施形態は、コンピュータ可読プログラムコードを記憶するために使用され得る１つ又は複数のコンピュータ可読記憶媒体中に具体化されるコンピュータプログラム製品の形態を取り得る。
【００５４】
本開示の実施形態を方法、装置（システム）、及びコンピュータプログラム製品のフローチャート及び／又はブロック図に関して説明した。各フローチャート及び／又はブロック図は、コンピュータプログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータプログラム命令は、マシン又はプラットフォームを作り出すための専用コンピュータのプロセッサ、埋込みプロセッサ、又は他のプログラム可能データ処理装置若しくはシステムに提供することができ、それにより、コンピュータのプロセッサ又は他のプログラム可能データ処理装置によって実行されるとき、それらの命令は、１つ若しくは複数のフローチャート及び／又は１つ若しくは複数のブロック図に規定される機能及び／又はステップを実装する。
【００５５】
コンピュータ可読記憶媒体は、プロセッサによって読取可能な情報又はデータを記憶することができる任意の種類の非一時的メモリを指し得る。従って、コンピュータ可読記憶媒体は、本明細書に記載の実施形態に合致するステップ又は段階をプロセッサに行わせるための命令を含む、１つ又は複数のプロセッサによって実行するための命令を記憶することができる。コンピュータ可読媒体は、不揮発性媒体、揮発性媒体、着脱型媒体、及び固定型媒体を含む。情報記憶域及び／又はデータ記憶域は、任意の方法又は技術によって実装することができる。情報及び／又はデータは、コンピュータ可読命令、データ構造、及びプログラムのモジュール又は他の種類のデータであり得る。コンピュータ可読記憶媒体の例は、これだけに限定されないが、相変化ランダムアクセスメモリ（ＰＲＡＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）、他の種類のランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去プログラム可能読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ若しくは他のメモリ技術、キャッシュ、レジスタ、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）若しくは他の光学記憶域、カセットテープ、テープ若しくはディスク記憶域、他の磁気記憶装置、又はコンピュータ装置によってアクセス可能な情報を記憶するために使用され得る他の任意の非一時的媒体を含む。
【００５６】
「第１の」及び「第２の」等の関係語は、あるエンティティ又は操作を別のエンティティ又は操作と区別するために使用されるに過ぎず、それらのエンティティ又は操作間に必ずしもそのような実際の任意の関係又は順序が存在することを要求又は含意しないことに留意すべきである。本明細書及び添付の特許請求の範囲で使用するとき、単数形「１つの（a）」、「１つの（an）」、「その（the）」、及び任意の言葉のいかなる単数形の使用も、１つの指示対象に明示的且つ明確に限定しない限り、複数形の指示対象を含むことに更に留意すべきである。本明細書で使用するとき、「包含する」、「含む」、及びそれらの文法上の変異形は非限定的であることを意図し、そのため、一覧内の項目の列挙は、列挙された項目に置換又は追加され得る他の同様の項目を排除するものではない。
【００５７】
添付図面は、例示的実装形態のシナリオの概略図に過ぎず、添付図面内のモジュール又はプロセスは必ずしも本発明の実施形態に必須ではないことを当業者であれば理解することができる。
【００５８】
実装形態のシナリオ内の機器内のモジュールは、実装形態のシナリオについての説明に従って実装形態のシナリオの機器内に分散させることができ、又は他の異なる実装形態のシナリオでは、相応に変更し、１つ若しくは複数の機器内に配置できることを当業者であれば理解することができる。上記の実装形態のシナリオ内のモジュールは、１つのモジュールへと組み合わせることができ、又は複数のサブモジュールへと更に分割することができる。
【００５９】
本発明の上記の実施形態の順序番号は説明の便宜のためのものに過ぎず、実装形態のシナリオ間の優先を含意するものではない。
【００６０】
上記で開示した内容は、本発明の実施形態の幾つかの具体的な実装形態のシナリオに過ぎず、本発明の実施形態はかかる内容に限定されない。当業者であれば容易に想到する任意の改変形態が本発明の保護範囲に含まれるものとする。
【図１】
2018523871.tif 000003
【図２】
2018523871.tif 000004
【図３】
2018523871.tif 000005
【図４】
2018523871.tif 000006
【国際調査報告】
2018523871.tif 000007
2018523871.tif 000008