(57)【特許請求の範囲】
【請求項１】
端末のデータセットの正確なコピーを同期させる方法であって：
端末により、アプリケーションソフトウェアの実行時の複数の入力イベントを取得するステップ；
集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップ；及び
前記アプリケーションソフトウェアの実行中に生成されるユーザデータを取得するために、前記端末により、前記集約イベントをサーバに送信するステップであって、前記サーバが、前記複数の入力イベントを取得するために、前記集約イベントを解析した後、前記サーバにおいて設定される前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理できるようにする、ステップ；
を備え、
集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップは：
前記端末により、前記複数の入力イベントの生成系列に従って、現在の１つの入力イベントを取得するステップ；
前記端末により、前記現在の入力イベントの各属性情報に対するビットマップ情報を生成するステップであって、前記各属性情報の前記ビットマップ情報は、前記属性情報が、前記現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、ステップ；
前記端末により、前記ビットマップ情報及び前記前の入力イベントのものとは異なる、前記現在の入力イベントの属性情報を、前記現在の入力イベントの送信されるデータとして、決定するステップ；及び
前記複数の入力イベントの各入力イベントの送信されるデータを決定するステップの後において、前記複数の入力イベントの前記集約イベントを形成するために、前記端末により、前記複数の入力イベントの前記送信されるデータを結合するステップ；
を含む、方法。
【請求項２】
前記端末により、前記複数の入力イベントを集約するステップの前に、前記方法は、さらに：
イベント生成系列に従って、前記端末により、前記取得した複数の入力イベントをイベント待ち行列に挿入するステップ；
を備え、かつ
対応して、集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップは：
前記集約イベントを取得するための設定された時間間隔に従って、前記端末により、前記イベント待ち行列の中の前記複数の入力イベントを集約するステップ；
を含む、請求項１に記載の方法。
【請求項３】
集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップの後、前記方法は、さらに：
圧縮された集約イベントを取得するために、前記端末により、前記集約イベントを圧縮するステップ；を備え、かつ
対応して、前記端末により、前記集約イベントをサーバに送信するステップは：
前記端末により、該サーバに前記圧縮された集約イベントを送信するステップ；
を含む、請求項１又は２に記載の方法。
【請求項４】
端末により送信される集約イベントを、サーバにより受信するステップであって、前記集約イベントは、アプリケーションソフトウェアの実行時に、複数の入力イベントを取得した後、前記端末により、複数の入力イベントを集約することによって取得された集約イベントである、ステップ；
前記複数の入力イベントを取得するために、前記サーバにより、前記集約イベントを解析するステップ；及び
前記アプリケーションソフトウェアの実行時に生成したユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記サーバよって、前記複数の入力イベントを処理するステップ；
を含み、
前記複数の入力イベントを取得するために、前記サーバにより前記集約イベントを解析するステップは：
前記サーバにより、前記集約イベントから順に、現在の１つの入力イベントの送信されるデータを取得するステップであって、前記送信されるデータは、前記現在の入力イベントの各属性情報のビットマップ情報及び前の入力イベントのそれとは異なる、前記現在の入力イベントの属性情報を含み、各属性情報の前記ビットマップ情報は、前記属性情報が、前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、ステップ；
前記ビットマップ情報の表示に従って、前記サーバにより、前記前の入力イベントの前記属性情報から、前記前の入力イベントのそれと同じである、前記現在の入力イベントの属性情報を取得するステップ；及び
前記現在の入力イベントを形成するために、前記サーバにより、前記取得された同じ属性情報と前記送信されるデータに含まれる前記異なる属性情報とを結合するステップ；
を含む、端末のデータセットの正確なコピーを同期させる方法。
【請求項５】
前記端末により送信される集約イベントを、サーバにより受信するステップは：
前記端末により送信される圧縮された集約イベントを前記サーバにより受信するステップであって、前記圧縮された集約イベントは、前記集約イベントを圧縮した後、前記端末により取得されるイベントである、ステップ；
を含み、かつ
前記集約イベントを前記サーバにより解析するステップの前に、前記方法はさらに：
前記集約イベントを取得するために、前記圧縮された集約イベントを前記サーバにより解凍するステップ；
を含む、請求項４に記載の方法。
【請求項６】
前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを前記サーバにより処理するステップは：
前記サーバにおいて設定された前記端末の前記仮想マシンのシステムの状態に変更が生じたことを示す通知を前記サーバが受信した場合に、前記複数の入力イベントの前記属性情報が前記システムの状態と一致するか否かを判定するステップ；及び
前記システムが前記入力イベントを処理するための処理機能を呼び出せるようにするために、前記サーバにより、前記仮想マシンのシステムに、前記システムの状態と一致する属性情報に対応する入力イベントを挿入するステップ；
を含む、請求項４又は５に記載の方法。
【請求項７】
端末であって、
アプリケーションソフトウェアの実行中に複数の入力イベントを取得し、かつ集約イベントを取得するために、前記複数の入力イベントを集約するように構成されるプロセッサ；及び
サーバに前記集約イベントを送信するように構成されるネットワークインターフェースであって、前記複数の入力イベントを取得するために前記集約イベントを解析した後、前記アプリケーションソフトウェアの実行中に生成したユーザデータを取得するために、前記サーバにおいて設定される前記端末の仮想マシンを用いることにより、前記サーバが、前記複数の入力イベントを処理できるようにする、ネットワークインターフェース；
を備え、
前記プロセッサは：
前記複数の入力イベントの生成系列に従って、現在の１つのイベントを取得し；
前記現在の入力イベントの各属性情報に対するビットマップ情報であって、前記属性情報が、前記現在の入力イベントの前の入力イベントの対応する属性情報と同じか否かを示すために用いられる、各属性情報に対する前記ビットマップ情報、を生成し；
前記ビットマップ情報及び前記前の入力イベントのそれとは異なる前記現在の入力イベントの属性情報を、前記現在の入力イベントの送信されるデータとして決定し；かつ
前記複数の入力イベントのうちの各入力イベントの前記送信されるデータを決定した後、前記複数の入力イベントの前記集約イベントを形成するために、前記複数の入力イベントの前記送信されるデータを結合するように構成される、
端末。
【請求項８】
前記プロセッサは、さらに、イベント生成系列に従って、前記取得した複数の入力イベントをイベント待ち行列に入力するように構成され；かつ
前記プロセッサは、前記集約イベントを取得するために設定された時間間隔に従って、前記イベント待ち行列の中の前記複数の入力イベントを集約するように構成される、
請求項７に記載の端末。
【請求項９】
前記プロセッサは、さらに、圧縮された集約イベントを取得するために、前記集約イベントを圧縮するように構成され；かつ
前記ネットワークインターフェースは、前記圧縮された集約イベントをクラウドサーバに送信するように構成される、
請求項７又は８に記載の端末。
【請求項１０】
サーバであって：
端末により送信される集約イベントであって、アプリケーションソフトウェアの実行中に複数の入力イベントを取得した後、該複数の入力イベントを集約することにより、前記端末により取得される集約イベントである、集約イベント、を受信するように構成される端末インターフェース；及び
前記複数の入力イベントを取得するために、前記集約イベントを解析し、かつ前記アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理するように構成されるプロセッサ；
を備え、
前記プロセッサは：
前記集約イベントから順番に、現在の１つのイベントの送信されるデータを取得し、前記送信されるデータは、前記現在の入力イベントの各属性情報のビットマップ情報及び前の入力イベントのものとは異なる前記現在の入力イベントの属性情報を含み、各属性情報の前記ビットマップ情報は、前記属性情報が前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられ；
前記ビットマップ情報の表示に従って、前記現在の入力イベントの属性情報であって、前記前の入力イベントのそれと同じである、属性情報、を前記前の入力イベントの前記属性情報から取得し；かつ
前記現在の入力イベントを形成するために、前記取得される同じ属性情報と、前記送信されるデータに含まれる前記異なる属性情報と、を結合するように構成される、
サーバ。
【請求項１１】
前記端末インターフェースは、前記端末により送信される圧縮された集約イベントであって、前記集約イベントの圧縮後、前記端末により取得されるイベントである、圧縮された集約イベント、を受信するように構成され；かつ
前記プロセッサは、さらに、前記集約イベントを取得するために、前記圧縮された集約イベントを解凍するように構成される、
請求項１０に記載のサーバ。
【請求項１２】
前記プロセッサは、具体的には：
前記サーバにおいて設定された前記端末の仮想マシンのシステム状態の変更が生じたことを示す通知を受信した場合に、前記複数の入力イベントの前記属性情報が前記システム状態と一致するか否かを判定し；かつ
前記システム状態と一致する属性情報に対応する入力イベントを、前記仮想マシンのシステムに挿入し、前記入力イベントを処理するための処理機能を前記システムが呼び出せるようにするように構成される、
請求項１０又は１１に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク通信技術の分野に関連し、そして特に、端末のデータセットの正確なコピーを同期させるための方法、装置、端末、及びサーバに関連する。
【背景技術】
【０００２】
インテリジェント端末の発展に伴い、端末のユーザが、端末を用いることにより、電子メールを送信し、ソーシャルネットワークへのアクセスを行い、端末で支払を行い、そして各種アプリケーションのゲームを実行することができるように、より多くのアプリケーションソフトウェアがインテリジェント端末上で実行可能となってきている。インテリジェント端末によりアプリケーションソフトウェアを実行する処理においては、当該アプリケーションソフトウェアの実行時にリアルタイムで生成される状態データ及び当該アプリケーションソフトウェアの実行後にディスクに記憶されるファイルデータを含む、大量のユーザデータが生成される。これらのデータは、当該端末ユーザのプライバシーに関連する可能性がある。インテリジェント端末が失われる場合、インテリジェント端末のユーザデータもそれに伴って失われる。或いはインテリジェント端末が悪意のあるソフトウェアに感染している場合、当該インテリジェント端末のユーザデータも危険にさらされる。従って、インテリジェント端末のデータの完全性及びユーザプライバシーを保護するために、インテリジェント端末は、クラウドサーバとのミラー同期（ｍｉｒｒｏｒ  ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）の実行により、当該クラウドサーバがインテリジェント端末のユーザデータを取得することを可能にする。このように、当該クラウドサーバの豊富な計算リソースを用いることにより、インテリジェント端末のユーザデータのバックアップを行い、そしてユーザデータのセキュリティチェックを行う。
【０００３】
従来技術において、インテリジェント端末は、アプリケーションソフトウェアの実行の後に生成されたファイルデータをネットワークを介してクラウドサーバに送信し得る。しかしながら、アプリケーションソフトウェアの実行の際のリアルタイムの状態データは、そのような同期方法においては同期できないため、クラウドサーバによりバックアップされるユーザデータは不完全であり、かつ、従って、そのユーザデータに基づくセキュリティチェックもまた不正確となる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の複数の実施例は、端末のデータセットの正確なコピーを同期させるための既存の方法により引き起こされ得る不完全なバックアップデータの問題を解決するために、端末のデータセットの正確なコピーを同期させるための方法、装置、端末、及びサーバを提供する。
【課題を解決するための手段】
【０００５】
前述の技術的な問題を解決するために、本発明の複数の実施例は、以下の複数の技術的解決手段を開示する。
【０００６】
第１の態様によると、端末のデータセットの正確なコピーを同期させる方法が提供される。当該方法は：端末により、アプリケーションソフトウェアの実行時の複数の入力イベントを取得するステップ；集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップ；及び前記アプリケーションソフトウェアの実行中に生成されるユーザデータを取得するために、前記端末により、前記集約イベントをサーバに送信するステップであって、前記サーバが、前記複数の入力イベントを取得するために、前記集約イベントを解析した後、前記サーバにおいて設定される前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理できるようにする、ステップ；を備える。
【０００７】
当該第１の態様に関して、当該第１の態様の第１の可能な実施方法において、前記端末により、前記複数の入力イベントを集約するステップの前に、前記方法は、さらに：イベント生成系列に従って、前記端末により、前記取得した複数の入力イベントをイベント待ち行列に挿入するステップ；を備え、それに対応して、集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップは：前記集約イベントを取得するための設定された時間間隔に従って、前記端末により、前記イベント待ち行列の中の前記複数の入力イベントを集約するステップを含む。
【０００８】
前記第１の態様又は前記第１の態様の前記第１の可能な実施方法に関連して、前記第１の態様の第２の可能な実施方法において、集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップは：前記端末により、前記複数の入力イベントの生成系列に従って、現在の１つの入力イベントを取得するステップ；前記端末により、前記現在の入力イベントの各属性情報に対するビットマップ情報を生成するステップであって、前記属性情報各部のビットマップ情報は、前記属性情報が、前記現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、ステップ；前記端末により、前記ビットマップ情報及び前記前の入力イベントのものとは異なる、前記現在の入力イベントの属性情報を、前記現在の入力イベントの送信されるデータとして、決定するステップ；及び前記複数の入力イベントの各入力イベントの送信されるデータを決定するステップの後において、前記複数の入力イベントの前記集約イベントを形成するために、前記端末により、前記複数の入力イベントの前記送信されるデータを結合するステップを含む。
【０００９】
前記第１の態様、前記第１の態様の前記第１の可能な実施方法、又は前記第１の態様の前記第２の可能な実施方法に関連して、前記第１の態様の第３の可能な実施方法において、集約イベントを取得するために、前記端末により、前記複数の入力イベントを集約するステップの後、前記方法は、さらに：圧縮された集約イベントを取得するために、前記端末により、前記集約イベントを圧縮するステップ；を備え、これに対応して、前記端末により、前記集約イベントをサーバに送信するステップは：前記端末により、該サーバに前記圧縮された集約イベントを送信するステップ、を含む。
【００１０】
第２の態様によると、端末のデータセットの正確なコピーを同期させる方法が提供される。該方法は：端末により送信される集約イベントを、サーバにより受信するステップであって、前記集約イベントは、アプリケーションソフトウェアの実行時に、前記複数の入力イベントを取得した後、前記端末により、複数の入力イベントを集約することにより取得された集約イベントである、ステップ；前記複数の入力イベントを取得するために、前記サーバにより、前記集約イベントを解析するステップ；及び前記アプリケーションソフトウェアの実行時に生成したユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記サーバにより前記複数の入力イベントを処理するステップ；を含む。
【００１１】
前記第２の態様に関して、前記第２の態様の第１の可能な実施方法において、端末により送信される集約イベントをサーバにより受信するステップは：前記端末により送信される圧縮された集約イベントを前記サーバにより受信するステップであって、前記圧縮された集約イベントは、前記集約イベントを圧縮した後、前記端末により取得されるイベントである、ステップ；を含み、前記集約イベントを前記サーバにより解析するステップの前に、前記方法はさらに：前記集約イベントを取得するために、前記圧縮された集約イベントを前記サーバにより解凍するステップ；を含む。
【００１２】
前記第２の態様又は前記第２の態様の前記第１の可能な実施方法に関連して、前記第２の態様の第２の可能な実施方法において、前記複数の入力イベントを取得するために、前記サーバにより前記集約イベントを解析するステップは：前記サーバにより、前記集約イベントから順に、現在の１つの入力イベントの送信されるデータを取得するステップであって、前記送信されるデータは、前記現在の入力イベントの属性情報各部のビットマップ情報及び前の入力イベントのそれとは異なる、前記現在の入力イベントの属性情報を含み、前記属性情報各部のビットマップ情報は、前記属性情報が、前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、ステップ；前記ビットマップ情報の表示に従って、前記サーバにより、前記前の入力イベントから、前記前の入力イベントのものと同じである、前記現在の入力イベントの属性情報を取得するステップ；及び前記現在の入力イベントを形成するために、前記サーバにより、前記取得された同じ属性情報と前記送信されるデータに含まれる前記異なる属性情報とを結合するステップ；を含む。
【００１３】
前記第２の態様、前記第２の態様の前記第１の可能な実施方法、又は前記第２の態様の前記第２の可能な実施方法に関連して、前記第２の態様の第３の可能な実施方法において、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを前記サーバにより処理するステップは：前記サーバにおいて設定された前記端末の仮想マシンのシステム状態に変更があったことを示す通知を前記サーバが受信した場合において、前記複数のイベントの前記属性情報が前記システム状態と一致するか否かを判定するステップ；及び前記システムが前記入力イベントを処理するための処理機能を呼び出せるようにするために、前記サーバにより、前記仮想マシンのシステムに、前記システム状態と一致する属性情報に対応する入力イベントを挿入するステップ；を含む。
【００１４】
第３の態様によると、端末のデータセットの正確なコピーを同期させるための装置が提供される。当該装置は：アプリケーションソフトウェアの実行時の複数の入力イベントを取得するように構成された取得部；集約イベントを取得するために、前記取得部により取得された前記複数の入力イベントを集約するように構成された集約部；及び前記複数の入力イベントを取得するための前記集約イベントの解析の後、前記アプリケーションソフトウェアの実行時に生成されたユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記サーバが前記複数の入力イベントを処理できるように、前記集約部により取得された前記集約イベントをサーバに送信するように構成された送信部；を備える。
【００１５】
前記第３の態様に関して、前記第３の態様の第１の可能な実施方法において、前記装置はさらに：前記取得部により取得された前記入力イベントを、イベント生成系列に従って、イベント待ち行列に挿入するように構成された、挿入部；を備え、前記集約部は、具体的には、前記集約イベントを取得するために、設定された時間間隔に従って、前記イベント待ち行列の中の前記入力イベントを集約するように構成される。
【００１６】
前記第３の態様又は前記第３の態様の前記第１の可能な実施方法に関連して、前記第３の態様の第２の可能な実施方法において、前記集約部は：前記複数の入力イベントの生成系列に従って、現在の入力イベントの１つを取得するように構成されるイベント取得サブユニット；前記イベント取得サブユニットにより取得された前記現在の入力イベントの各属性情報のビットマップ情報を生成するように構成される情報生成サブユニットであって、前記各属性情報のビットマップ情報は、前記属性情報が、前記現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、情報生成サブユニット；前記情報生成サブユニットにより生成される、前記現在の入力イベントの前記ビットマップ情報、及び前記前の入力イベントのものとは異なる属性情報を、前記現在の入力イベントの送信されるデータとして決定するように構成されるデータ決定サブユニット；及び前記データ決定サブユニットが、前記複数の入力イベントの各入力イベントの前記送信されるデータを決定した後、前記複数の入力イベントの前記集約イベントを形成するために、前記複数の入力イベントの前記送信されるデータを結合するように構成されるイベント集約サブユニット；を含む。
【００１７】
前記第３の態様、前記第３の態様の前記第１の可能な実施方法、又は前記第３の態様の前記第２の可能な実施方法に関連して、前記装置はさらに：圧縮された集約イベントを取得するために、前記集約部により取得される前記集約イベントを圧縮するように構成される圧縮部；を備え、前記送信部は、具体的には、前記圧縮部により取得される前記圧縮された集約イベントをクラウドサーバに送信するように構成される。
【００１８】
第４の態様によると、端末のデータセットの正確なコピーを同期させるための装置が提供される。前記装置は：端末により送信される集約イベントを受信するように構成される受信部であって、前記集約イベントは、アプリケーションソフトウェアの実行中に複数の入力イベントを取得した後、前記端末により前記複数の入力イベントを集約することにより取得されるイベントである、受信部；前記複数の入力イベントを取得するために、前記受信部により受信した前記集約イベントを解析するように構成された解析部；及び前記アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記解析部により取得される前記複数の入力イベントを処理するように構成される処理部；を備える。
【００１９】
前記第４の態様に関して、前記第４の態様の第１の可能な実施方法において、前記受信部は、具体的には、前記端末により送信される圧縮された集約イベントを受信するように構成され、前記圧縮された集約イベントは、前記集約イベントを圧縮した後に、前記端末により取得されるイベントであり；前記装置はさらに、前記集約イベントを取得するために、前記受信部により受信される前記圧縮された集約イベントを解凍するように構成される解凍部を備える。
【００２０】
前記第４の態様又は前記第４の態様の前記第１の可能な実施方法に関連して、前記第４の態様の第２の可能な実施方法において、前記受信部は、具体的には、前記端末により送信される前記圧縮された集約イベントを受信するように構成され、前記圧縮された集約イベントは、前記集約イベントを圧縮した後に前記端末により取得されるイベントであり；前記装置は、さらに、前記集約イベントを取得するために、前記受信部により受信された前記圧縮された集約イベントを解凍するように構成される解凍部を備える。
【００２１】
前記第４の態様、前記第４の態様の前記第１の可能な実施方法、又は前記第４の態様の前記第２の可能な実施方法に関連して、前記第４の態様の第３の可能な実施方法において、前記処理部は：前記サーバにおいて設定された前記端末の仮想マシンのシステム状態の変更が生じたことを示す通知が受信された場合において、前記複数のイベントの前記属性情報が前記システム状態と一致するか否かを判定するように構成される状態一致判定サブユニット；及び前記入力イベントを処理するための処理機能を前記システムが呼び出せるようにするために、前記状態一致判定サブユニットの一致判定結果に従って、前記システム状態に一致する属性情報に対応する入力イベントを前記仮想マシンのシステムに挿入するように構成されるイベント処理サブユニット；を含む。
【００２２】
第５の態様によると、端末が提供され、当該端末は：プロセッサ及びネットワークインターフェースを備え、該プロセッサは、アプリケーションソフトウェアの実行中に複数の入力イベントを取得し、かつ集約イベントを取得するために、前記複数の入力イベントを集約するように構成され；かつ前記複数の入力イベントを取得するための前記集約イベントの解析後、前記アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、前記サーバが、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理するために、前記ネットワークインターフェースは、前記集約イベントをサーバに送信するように構成される。
【００２３】
前記第５の態様に関して、前記第５の態様の第１の可能な実施方法において、前記プロセッサは、さらに、イベント生成系列に従って、前記取得した複数の入力イベントをイベント待ち行列に入力するように構成され；かつ前記プロセッサは、具体的には、前記集約イベントを取得するために設定された時間間隔に従って、前記イベント待ち行列の中の前記複数の入力イベントを集約するように構成される。
【００２４】
前記第５の態様又は前記第５の態様の前記第１の可能な実施方法に関連して、前記第５の態様の第２の可能な実施方法において、前記プロセッサは、具体的には：前記複数の入力イベントの生成系列に従って、現在の１つのイベントを取得し；前記現在の入力イベントの属性情報各部に対するビットマップ情報であって、前記属性情報が、前記現在の入力イベントの前の入力イベントの対応する属性情報と同じか否かを示すために用いられる、属性情報各部に対するビットマップ情報、を生成し；前記ビットマップ情報及び前記前の入力イベントのものとは異なる前記現在の入力イベントの属性情報を、前記現在の入力イベントの送信されるデータとして決定し；かつ前記複数の入力イベントのうちの各入力イベントの前記送信されるデータを決定した後、前記複数の入力イベントの前記集約イベントを形成するために、前記複数の入力イベントの前記送信されるデータを結合するように構成される。
【００２５】
前記第５の態様、前記第５の態様の前記第１の可能な実施方法、又は前記第５の態様の前記第２の可能な実施方法に関連して、前記第５の態様の第３の可能な実施方法において、前記プロセッサは、さらに、圧縮された集約イベントを取得するために、前記集約イベントを圧縮するように構成され；かつ前記ネットワークインターフェースは、具体的には、前記圧縮された集約イベントをクラウドサーバに送信するように構成される。
【００２６】
第６の態様によると、サーバが提供され、当該サーバは、端末インターフェース及びプロセッサを備え、前記端末インターフェースは、端末により送信される集約イベントであって、アプリケーションソフトウェアの実行中の複数の入力イベントの取得後、該複数の入力イベントを集約することにより、前記端末により取得される集約イベントである、集約イベント、を受信するように構成され；かつ前記プロセッサは、前記複数の入力イベントを取得するために、前記集約イベントを解析し、かつ前記アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理するように構成される。
【００２７】
前記第６の態様に関して、前記第６の態様の第１の実施方法において、前記端末インターフェースは、具体的には、前記端末により送信される圧縮された集約イベントであって、前記集約イベントの圧縮後、前記端末により取得されるイベントである、圧縮された集約イベント、を受信するように構成され；かつ前記プロセッサは、さらに、前記集約イベントを取得するために、前記圧縮された集約イベントを解凍するように構成される。
【００２８】
前記第６の態様又は前記第６の態様の前記第１の可能な実施方法に関連して、前記第６の態様の第２の可能な実施方法において、前記プロセッサは、具体的には：前記集約イベントから順番に、現在の１つのイベントの送信されるデータを取得し、ここで、前記送信されるデータは、前記現在の入力イベントの各属性情報のビットマップ情報及び前の入力イベントのものとは異なる前記現在の入力イベントの属性情報を含み、前記各属性情報のビットマップ情報は、前記属性情報が前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられ；前記ビットマップ情報の表示に従って、前記現在の入力イベントの属性情報であって、前記前の入力イベントのそれと同じである、属性情報、を前記前の入力イベントの前記属性情報から取得し；かつ前記現在の入力イベントを形成するために、前記取得される同じ属性情報と、前記送信されるデータに含まれる前記異なる属性情報と、を結合するように構成される。
【００２９】
前記第６の態様、前記第６の態様の前記第１の可能な実施方法、又は前記第６の態様の前記第２の可能な実施方法に関連して、前記第６の態様の第３の可能な実施方法において、前記プロセッサは、具体的には、前記サーバにおいて設定された前記端末の仮想マシンのシステム状態の変更が生じたことを示す通知を受信した場合に、前記複数の入力イベントの前記属性情報が前記システム状態と一致するか否かを判定し；かつ前記システム状態と一致する属性情報に対応する入力イベントを、前記仮想マシンのシステムに挿入し、前記入力イベントを処理するための処理機能を前記システムが呼び出せるようにするように構成される。
【００３０】
本発明の複数の実施例において、端末は、アプリケーションソフトウェアの実行時に、複数の入力イベントを取得し、集約イベントを取得するために、該複数の入力イベントを集約し、かつ前記集約イベントをサーバに送信する；前記複数の入力イベントを取得するための前記集約イベントの解析後、前記サーバは、前記アプリケーションソフトウェアの実行時に生成された前記ユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理する。本発明の複数の実施例において、端末は、ユーザデータをサーバに送信する必要はないが、アプリケーションソフトウェアを実行する端末側のそれと同じユーザデータを取得するために、サーバ側で、端末の仮想マシンを用いることにより、入力イベントの実行を開始できるように、イベント駆動型の方式で、入力イベントをサーバに送信する。これにより、サーバによる完全なユーザデータのバックアップを可能とし、そして該ユーザデータのセキュリティチェックの精度を向上する。さらに、端末により送信される集約された入力イベントのサイズは、ユーザデータの直接送信のそれと比較して、小さいので、占有されるネットワーク送信リソースは少なく、かつ端末自身の性能の処理負荷は影響を受けないので、これにより端末における他のサービスの正常な動作を確保する。
【図面の簡単な説明】
【００３１】
本発明の複数の実施例または従来技術における技術的解決手法をより明瞭に説明するために、複数の実施例または従来技術を説明するために必要な添付図面を以下に簡単に紹介する。なお、明らかに、当業者は、これらの添付図面から他の図面を導出することができる。
【００３２】
【図１Ａ】本発明による、端末のデータセットの正確なコピーを同期させる方法の実施例のフローチャートである。
【００３３】
【図１Ｂ】本発明による、端末のデータセットの正確なコピーを同期させる方法の他の実施例のフローチャートである。
【００３４】
【図２】本発明による、端末のデータセットの正確なコピーを同期させる方法の他の実施例のフローチャートである。
【００３５】
【図３Ａ】本発明の実施例を適用したネットワークアーキテクチャの概略図である。
【００３６】
【図３Ｂ】本発明の実施例を適用したイベント集約を示す概略図である。
【００３７】
【図４】本発明による、端末のデータセットの正確なコピーを同期させるための装置の実施例のブロック図である。
【００３８】
【図５】本発明による、端末のデータセットの正確なコピーを同期させるための装置の他の実施例のブロック図である。
【００３９】
【図６】本発明による、端末の実施例のブロック図である。
【００４０】
【図７】本発明による、端末のデータセットの正確なコピーを同期させるための装置の他の実施例のブロック図である。
【００４１】
【図８】本発明による、端末のデータセットの正確なコピーを同期させるための装置の他の実施例のブロック図である。
【００４２】
【図９】本発明による、サーバの実施例のブロック図である。
【発明を実施するための形態】
【００４３】
当業者が、本発明の複数の実施例における複数の技術的解決手段をより良く理解できるようにするため及び本発明の複数の実施例の複数の目的、複数の特徴、及び複数の長所をよりわかりやすくするため、本発明の複数の実施例における複数の技術的解決手段について、添付の複数の図面を参照することにより、以下において、さらに詳細に説明する。
【００４４】
本発明による、端末のデータセットの正確なコピーを同期させるための方法の実施例のフローチャートである、図１Ａを参照する。本実施例において、端末側での同期の手順が説明される。
【００４５】
ステップ１０１：端末は、プリケーションソフトウェアの実行時に、複数の入力イベントを取得する。
【００４６】
本実施例において、「端末」は、各種スマートフォン、タブレットコンピュータ等について言及し得る。実行時において、端末の異なるアプリケーションソフトウェアは、異なる種別の入力イベントを起動させ得る。これらの入力イベントは、表示画面上の操作を実行するためのタッチ入力イベント、全地球測位システム（ＧＰＳ）装置により生成される測位入力イベント、センサにより生成される感知入力イベントなどを含み得る。例えば、１つのアプリケーションソフトウェアを実行しようとする場合、端末のユーザは、端末のタッチ表示画面上の当該アプリケーションソフトウェアのアイコンをクリックし、ここで、当該アイコンをクリックする動作は、１つの入力イベントに抽象化されてもよい。また、端末のユーザが開始されたアプリケーションソフトウェアに対する操作を行う場合、操作手順における異なる複数の入力ジェスチャーに従って、異なる複数の入力イベントが起動される。
【００４７】
ステップ１０２：集約イベントを取得するために、複数の入力イベントを集約する。
【００４８】
本実施例において、端末は、複数の入力イベントの生成系列に従って、現在の入力イベントの１つを取得し；現在の入力イベントの各属性情報のビットマップ情報であって、当該属性情報が現在の入力イベントの前の入力イベントの属性情報と同じか否かを示すために用いられる、ビットマップ情報、を生成し；現在の入力イベントに対するビットマップ情報及び前の入力イベントのそれとは異なる属性情報を、現在の入力イベントの送信されるデータとして決定し；そして、複数の入力イベントのうちの各入力イベントについての送信されるデータの決定後、複数の入力イベントの集約イベントを形成するために、複数の入力イベントの送信されるデータを結合してもよい。
【００４９】
ステップ１０３：複数の入力イベントを取得するための集約イベントの解析後、アプリケーションソフトウェアの実行時に生成されたユーザデータを取得するために、サーバが、当該サーバにおいて設定された端末の仮想マシンを使用することにより、複数の入力イベントを処理できるようにするために、集約イベントをサーバに送信する。
【００５０】
実施例において、端末は、ユーザデータをサーバに送信する必要はない。しかし、アプリケーションソフトウェアを実行する端末側のそれと同じユーザデータを取得するために、サーバ側が、端末の仮想マシンを用いることにより、複数の入力イベントの実行を起動できるようにするために、端末は、イベント駆動型の方式で、入力イベントをサーバに送信する。これにより、サーバによる完全なユーザデータのバックアップを可能とし、そしてユーザデータのセキュリティチェックの精度を向上する。さらに、ユーザデータの直接送信と比較して、端末により送信される集約された入力イベントのサイズは比較的小さいため、占有されるネットワーク送信リソースは少なくなり、そして端末自身の性能の負荷は影響を受けず、これにより端末における他の複数のサービスの通常の実行を確保できる。
【００５１】
本発明による、端末のデータセットの正確なコピーを同期させる方法の他の実施例のフローチャートである、図１Ｂを参照する。本実施例において、サーバ側での同期処理が説明される。
【００５２】
ステップ１１１：サーバは、端末により送信される集約イベントを受信する。ここで、当該集約イベントは、アプリケーションソフトウェアの実行時の複数の入力イベントの取得後に、端末により、複数の入力イベントを集約することによって、得られる集約イベントである。
【００５３】
本実施例において、「サーバ」は、豊富な計算リソースを有するクラウドサーバについて言及してもよく、ここで、当該クラウドサーバと通信する各端末の仮想マシンは、当該クラウドサーバにおいて設定されてもよい。仮想マシンとは、ソフトウェアによりシミュレートされ、完全な複数のハードウェアシステム機能を有し、かつ完全に分離された環境で実行する完全なシステムのことを指している。一般的に、複数の異なる端末の仮想マシンは、１つのクラウドサーバにおいてシミュレートされてもよく、かつ端末は、ネットワークを介して、当該クラウドサーバにおける当該端末の仮想マシンにアクセスしてもよい。
【００５４】
ステップ１１２：複数の入力イベントを取得するために、集約イベントを解析する。
【００５５】
本実施例において、サーバは、集約イベントから、順番に、現在の入力イベントの１つに対する送信されたデータを取得し、ここで、当該送信されたデータは、現在の入力イベントについての各属性情報のビットマップ情報及び前の入力イベントのそれとは異なる、現在の入力イベントについての属性情報を含み、各属性情報のビットマップ情報は、当該属性情報が、前の入力イベントの対応する属性情報と同じであるか否かを示し；ビットマップ情報の表示に従って、前の入力イベントの属性情報から、前の入力イベントのそれと同じである、現在の入力イベントについての属性情報を取得し；そして現在の入力イベントを形成するために、取得した属性情報と、送信されたデータに含まれる異なる属性情報と、を結合してもよい。
【００５６】
ステップ１１３：アプリケーションソフトウェアの実行時に生成されたユーザデータを取得するために、サーバにおいて設定された、端末についての仮想マシンを用いて、複数の入力イベントを処理する。
【００５７】
本実施例において、サーバにおいて設定された端末についての仮想マシンのシステム状態の変更が生じたことを示す通知を受信した場合、サーバは、複数の入力イベントの属性情報がシステム状態と一致するか否かを判定し；かつ当該システム状態と一致する属性情報に対応する入力イベントを仮想マシンのシステムに入力する。これにより、仮想マシンのシステムは、アプリケーションソフトウェアの実行時に生成されたユーザデータを取得するために、入力イベントを処理する処理機能を呼び出す。
【００５８】
本実施例において、端末はユーザデータをサーバに送信する必要はないが、アプリケーションソフトウェアを実行する端末側におけるそれと同じユーザデータを取得するために、サーバ側で、端末の仮想マシンを用いることにより、入力イベントの実行を開始させるために、イベント駆動型の方式で、入力イベントをサーバに送信し、これにより、サーバによる完全なユーザデータのバックアップを可能とし、そしてユーザデータのセキュリティチェックの精度を向上することが理解され得る。さらに、ユーザデータの直接送信と比較して、端末により送信される集約された入力イベントのサイズは比較的小さいため、占有されるネットワーク送信リソースは少なくなり、そして端末自身の性能の負荷は影響を受けず、これにより端末における他の複数のサービスの通常の実行を確保できる。
【００５９】
本発明に従う、端末のデータセットの完全なコピーを同期させるための方法の他の実施例のフローチャートである、図２を参照する。本実施例において、同期処理は、端末とサーバとの間のやりとりにより説明される。
【００６０】
ステップ２０１：端末は、アプリケーションソフトウェアの実行時の複数の入力イベントを取得する。
【００６１】
端末における異なるアプリケーションソフトウェアは、実行時に、異なる種別の入力イベントを起動させることができる。これらの入力イベントは、表示画面上の操作を行うためのタッチ入力イベント、ＧＰＳデバイスにより生成される測位入力イベント、センサにより生成される感知入力イベントなどを含み得る。入力イベントに含まれる属性情報は、異なる種別の入力イベントに応じて、異なる。例えば、タッチ入力イベントに関して、当該タッチ入力イベントに含まれる属性情報は、タッチの接触座標、タッチイベント種別、発生時などを含んでもよい。測位入力イベントに関して、当該測位入力イベントに含まれる属性情報は、測位情報、発生時などを含んでもよい。
【００６２】
ステップ２０２：イベント生成系列に従って、取得した入力イベントをイベント待ち行列に挿入する。
【００６３】
本実施例における、アプリケーションソフトウェアを実行するプロセスにおいて、入力イベントが１つ生成される毎に、当該入力イベントは、イベント待ち行列に挿入されてもよい。ここで、当該イベント待ち行列は、端末のメモリに記憶されてもよく、そして当該イベント待ち行列中の複数の入力イベントは、先入れ先出方式で記憶される。従って、端末は、イベント待ち行列から順番に入力イベントを取得することができ、かつ端末においてアプリケーションソフトウェアを実行するために、当該入力イベントに対応する処理機能を呼び出すことにより、入力イベントを処理することができる。
【００６４】
ステップ２０３：集約イベントを取得するために、設定された時間間隔に従って、イベント待ち行列中の複数の入力イベントを集約する。
【００６５】
端末は、メモリのイベント待ち行列の中に記憶される複数の入力イベントを、非同期処理方式で、ディスクに書き込んでもよい。さらに、本実施例において、端末は、集約イベントを取得するために、設定した時間間隔に従って、イベント待ち行列中の複数の入力イベントを集約してもよい。当該時間間隔に従って、複数の入力イベントを集約することに加えて、イベント閾値が設定されてもよく、そしてイベント待ち行列の中の複数の入力イベントの数がイベント閾値に達した場合、当該複数の入力イベントが集約される、ということに注意すべきである。これについて、本発明の本実施例は限定されない。
【００６６】
本実施例において、イベント待ち行列の中の複数の入力イベントは、先入れ先出方式の順番で記憶され、かつ複数の連続する入力イベントは、一般に、同じアプリケーションソフトウェアを実行するために起動される複数のイベントであるため、２つの隣接する入力イベントは、一般に、同じ属性情報を持つ。従って、次に続く入力イベントが送信されている場合、それ以前の入力イベントのそれとは異なる属性情報のみが、送信されてもよい。これに基づいて、端末は、イベント待ち行列中の複数の入力イベントを集約する場合において、複数の入力イベントの生成系列に従って、現在の入力イベントの１つを取得し；現在の入力イベントの各属性情報のビットマップ情報を生成し、ここで、各属性情報のビットマップ情報は、当該属性情報が、現在の入力イベントの以前の属性情報に対応する属性情報と同じであるか否かを示すために用いられ；現在の入力イベントのビットマップ情報及び前の入力イベントのそれとは異なる属性情報を、現在の入力イベントの送信されるデータとして決定し；かつ複数の入力イベントの各入力イベントの送信されるデータの決定後、当該複数の入力イベントの集約イベントを形成するために、当該複数の入力イベントの送信されるデータを結合してもよい。
【００６７】
ステップ２０４：圧縮された集約イベントを取得するために、集約イベントを圧縮する。
【００６８】
本実施例において、集約イベントは、送信される集約イベントのデータフローのサイズをさらに削減するために、圧縮されてもよい。圧縮方式は、ＺＩＰ圧縮、ＲＡＲ圧縮などであってもよい。これについて、本発明の本実施例は限定されない。
【００６９】
ステップ２０５：圧縮された集約イベントをサーバに送信する。
【００７０】
ステップ２０６：集約イベントを取得するために、サーバは、圧縮された集約イベントを解凍する。
【００７１】
このステップにおいて、端末により送信された圧縮された集約イベントを受信した後に、サーバが当該圧縮された集約イベントを解凍する方法は、ステップ２０４において、端末が集約イベントを圧縮する方法と合致する。圧縮された集約イベントが解凍された後、集約イベントが取得され得る。
【００７２】
ステップ２０７：複数の入力イベントを取得するために、集約イベントを解析する。
【００７３】
ステップ２０３における、集約イベントを取得するために、端末が複数の入力イベントを集約するプロセスに関して、このステップにおいて、サーバは、集約イベントから、順番に、現在の入力イベントの１つの送信データを取得し、ここで、当該送信されるデータは、現在の入力イベントの各属性情報及び以前の入力イベントのそれとは異なる現在の入力イベントの属性情報のビットマップ情報を含み、ここで、各属性情報のビットマップ情報は、当該属性情報が、以前の属性情報の対応する属性情報と同じか否かを示すために用いられ；ビットマップ情報の表示に従って、以前の入力イベントのそれと同じである現在の入力イベントの属性情報を、以前の入力イベントの属性情報から取得し；かつ現在の入力イベントを形成するために、取得した同じ属性情報と、送信されるデータに含まれる異なる属性情報と、を結合してもよい。
【００７４】
ステップ２０８：アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、サーバにおいて設定された端末の仮想マシンを用いて、複数の入力イベントを処理する。
【００７５】
このステップにおいて、サーバにおいて設定された端末の仮想マシンのシステム状態における変化が生じたことを示す通知をサーバが受信した場合、サーバは、複数の入力イベントの属性情報が当該システム状態と一致するか否かを判定し；かつ仮想マシンのシステムが、入力イベントを処理するための処理機能を呼び出せるようにするために、当該システム状態と一致する属性情報に対応する入力イベントを仮想マシンのシステムに挿入する。ここで、処理工程は、処理機能を呼び出すことにより、端末において入力イベントを処理するための工程と同じである。つまり、サーバにおいて設定された端末の仮想マシンにおいてアプリケーションソフトウェアを実行するための処理は、端末におけるそれと同じである。従って、端末の仮想マシンにおいて生成されるユーザデータは、端末において生成されるユーザデータと同じであり、これにより、サーバにおいて端末のデータセットの完全なコピーを同期させるという目的を達成する。
【００７６】
一般に、入力イベントの属性情報は、複数の部分を含む。端末の仮想マシンのシステム状態と一致する属性情報は、属性情報の複数の部分のうちの、１つ以上の部分であり得る。例えば、タッチ入力イベントに関して、その属性情報の中の発生時刻が、端末の仮想マシンのシステムの現在の時刻と同じであるか否かを判定してもよく、そして、その属性情報の中の発生時刻が端末の仮想マシンのシステムの現在の時刻と同じであった場合、当該タッチ入力イベントは、システムに挿入される。
【００７７】
本実施例において、端末がユーザデータをサーバに送信することは必要ではないが、アプリケーションソフトウェアを実行する端末側のそれと同じであるユーザデータを取得するために、端末の仮想マシンを用いることにより、サーバ側で複数の入力イベントの実行を起動することができるようにするために、イベント駆動方式で複数の入力イベントをサーバに送信し、これにより、サーバが完全なユーザデータをバックアップすることを可能とし、かつユーザデータのセキュリティチェックの精度を向上するということを理解することができる。さらに、ユーザデータを直接送信するためのそれと比較して、端末により送信される集約された入力イベントのサイズは比較的小さいので、占有されるネットワーク送信リソースは少なく、そして端末それ自体の性能の負荷は影響を受けず、これにより端末における他の複数のサービスを実行可能とする。
【００７８】
本発明の実施例に従うネットワークアーキテクチャの概略図である、図３Ａを参照する。
【００７９】
図３Ａに示されるネットワークアーキテクチャは、ユーザにより用いられるインテリジェント端末及びクラウドサーバを含み、ここで、当該インテリジェント端末及びクラウドサーバは、ネットワークを介して通信する。インテリジェント端末は、イベントキューモジュール、イベント処理モジュール、及び記録サービスモジュールを備える。クラウドサーバは、イベントスケジューリングモジュール、イベント挿入モジュール、及びイベント処理モジュールを備える。
【００８０】
図３Ａに示されるインテリジェント端末は、タッチ表示画面を有すると仮定する。以下において、当該タッチ表示画面上のアプリケーションソフトウェアのアイコンをユーザがクリックする例を用いることにより、インテリジェント端末からの、クラウドサーバに対する、端末のデータセットの完全なコピーを同期させる処理を説明する。
【００８１】
インテリジェント端末側について：
【００８２】
アプリケーションソフトウェアを実行しようとする場合、ユーザは、タッチ表示画面上のアプリケーションソフトウェアのアイコンをクリックする。このような場合において、イベントキューモジュールは、カーネルドライバを使用することにより、ユーザのアイコンをクリックする動作を一つの入力イベントに抽象化することができ、かつ当該入力イベントをインテリジェント端末内部のイベントキューに挿入することができる。その後、ユーザが開始されたアプリケーションソフトウェアにおいて操作を行った場合、それに対応して、動作処理において、異なる入力が開始され、そしてこれらの複数の入力イベントは、インテリジェント端末内のイベントの待ち行列に挿入される。ここで、イベントの待ち行列内の複数の入力イベントは、先入れ先出し方式で、並べかえられる。
【００８３】
イベント処理モジュールは、イベント処理スレッドを使用することにより、イベントの待ち行列から順に、入力イベントを取得することができ、かつ入力イベントに対応する処理機能を呼び出すことによって、入力イベントを処理することができる。これにより、インテリジェント端末におけるアプリケーションソフトウェアを実行できる。また、さらに、イベント処理モジュールは、非同期処理方式で、イベントの待ち行列の中の複数の入力イベントを記録サービスモジュールに送信することができる。
【００８４】
複数の入力イベントを取得した後、記録サービスモジュールは、圧縮された集約イベントを取得するために、これらの入力イベントを集約及び圧縮してもよく、そして、ネットワークを介して、圧縮された集約イベントを、クラウドサーバに送信してもよい。本実施例において、記録サービスモジュールは、設定された時間間隔に従って、取得した複数の入力イベントを集約及び圧縮してもよい。例えば、５秒間隔で、取得された複数の入力イベントが集約され、かつ圧縮されるように設定されてもよい。
【００８５】
記録サービスモジュールが複数の入力イベントを集約する場合、記録サービスモジュールにより取得された複数の入力イベントは先入れ先出し方式で、イベントの待ち行列の中において並べかえられ、かつ複数の連続する入力イベントは、一般に、同じアプリケーションソフトウェアを実行するために開始される複数のイベントであるため、２つの隣接する入力イベントは、一般に、いくつかの同じ属性情報を有する。従って、次の入力イベントが送信される場合、その前のものと異なる属性情報だけが送信されることが許容され、これにより、圧縮された集約イベント全体のサイズが縮小され、かつ圧縮された集約イベントを送信するために占有されるネットワークリソースを低減される。図３Ｂに示されるように、今回、記録サービスモジュールは、イベント１、イベント２、イベント３の、３つの入力イベントを送信し、ここで、各入力イベントは、４つの属性情報により形成されると仮定する。各入力イベントのヘッダは、各属性情報に対応する、ビットマップ情報を有する。各ビットマップ情報のビット値は、当該ビットマップ情報に対応する属性情報が、以前の入力イベントの属性情報と同じであるか否かを示すために用いられる。例えば、ビットマップ情報に対応する属性情報が、以前の入力イベントの属性情報と同じである場合、ビットマップ情報のビット値は１である。そして、ビットマップ情報に対応する属性情報が、以前の入力イベントの属性情報と異なる場合、ビットマップ情報のビット値は１である。図３Ｂに関して、イベント１の４つの属性情報は、それぞれ、Ａ、Ｂ、Ｃ、及びＤであることを知ることができる。イベント１の４つの属性のいずれも、以前のイベントのそれとは同じでないと仮定する。従って、イベント１の４つの属性情報のビットマップ情報の全てのビット値は、ゼロである。イベント２に関して、その２番目の属性情報及び４番目の属性情報は、イベント１のそれと同じであり、かつ１番目の属性情報及び３番目の属性情報は、イベント１のそれとは異なる。それらは、Ｅ及びＦである。従って、イベント２のビットマップ情報の４つのビット値は、０、１、０、及び１である。イベント３に関して、その１番目の属性情報、２番目の属性情報、及び４番目の属性情報は、イベント２のそれと同じであり、そして３番目の属性情報は、イベント２のそれとは異なり、Ｇである。従って、イベント３のビットマップ情報の４つのビット値は、１、１、０、及び１である。図３Ｂに示される３つの入力イベントが送信される場合、３つの入力イベントは、合計で１２個の属性情報を有しているが、各イベントに対してビットマップ情報を設定することにより、実際には、７個の属性情報だけを送信する必要があることを、前述の説明から知ることができる。ビットマップ情報は、より小さいビット容量を占めるので、３つの入力イベントを送信するための全体のビットのフローのサイズは、小さくなる。
【００８６】
さらに、送信される集約された複数の入力イベントのビットのフローに関して、記録サービスモジュールは、データフローのサイズをさらに小さくするために、当該データフローを圧縮してもよい。圧縮方法は、ＺＩＰ圧縮、ＲＡＲ圧縮などを利用してもよい。本発明のこの実施形態は、それに関して限定しない。
【００８７】
クラウドサーバ側について：
【００８８】
インテリジェント端末の記録サービスモジュールにより送信された集約及び圧縮された複数の入力イベントのデータフローを受信した後、イベントスケジューリングモジュールは、集約された複数の入力イベントを取得するために、データフローを解凍し、そして複数の入力イベントを取得するために、集約された複数の入力イベントを解析する。
【００８９】
イベントスケジューリングモジュールがデータフローを解凍する方法は、記録サービスモジュールがデータフローを圧縮する方法と合致する。イベントスケジューリングモジュールが集約された複数の入力イベントを解凍する場合、図３を参照して、３つの入力イベントの属性情報及びビットマップ情報が取得された後、イベント１を除いて、その後の複数の入力イベントのそれぞれは、入力イベントのビットマップ情報及び当該入力イベントの前の入力イベントの属性情報に基づいて、復元されてもよいことを確認することができる。例えば、イベント２に関して、そのビットマップ情報のビット値「０１０１」に従って、属性情報の２番目の部分及び属性情報の４番目部分が、イベント１のそれと同じであるということを確認することができる。従って、属性情報の２つの部分をイベント１から取得する。イベント３に関して、そのビットマップ情報のビットマップ値「１１０１」に従って、属性情報の第１の部分、属性情報の第２の部分、及び属性情報の第４の部分は、イベント２のそれと同じであるということを確認することができる。従って、属性情報の３つの部分を、イベント２から取得する。
【００９０】
イベント挿入モジュールは、イベントスケジューリングモジュールによる解析手段により得られる各入力イベントの属性情報が、インテリジェント端末の仮想マシンのシステム状態と一致するか否かを判定する。そして、各入力イベントの属性情報が、インテリジェント端末の仮想マシンのシステム状態と一致した場合、イベント挿入モジュールは、当該入力イベントをシステムに入力する。そのシステム状態に変化が生じた場合、インテリジェント端末の仮想マシンは、通知する方法により、属性情報とシステム状態とを一致させることを、イベント挿入モジュールに開始させる。
【００９１】
この実施例において、入力イベントの属性情報は、一般に、複数の部分を含む。インテリジェント端末の仮想マシンのシステム状態と一致する属性情報は、属性情報の複数の部分の１つ以上の部分であってもよい。例えば、タッチ入力イベントに関して、その属性情報における発生時刻がインテリジェント端末の仮想マシンの現在のシステムの時刻と同じであるか否かを判定してもよい。そして、その属性情報における発生時刻がインテリジェント端末の仮想マシンの現在のシステムの時刻と同じであった場合、タッチ入力イベントは、システムに入力される。
【００９２】
イベント挿入モジュールがシステムに入力イベントを挿入した後、イベント処理モジュールは、インテリジェント端末の仮想マシン内の対応する処理機能を呼び出すことにより、当該入力イベントを処理する。ここで、処理プロセスは、インテリジェント端末内の処理機能を呼び出すことによる、イベント処理モジュールによる入力イベントを処理するためのプロセスと同じである。すなわち、クラウドサーバ上のインテリジェント端末の仮想マシン内のアプリケーションソフトウェアを実行する処理とインテリジェント端末内のアプリケーションソフトウェアを実行する処理とは同じである。従って、インテリジェント端末の仮想マシンにおいて生成されるユーザデータもまた、インテリジェント端末において生成されるユーザデータと同じであり、これにより、クラウドサーバにおける端末のデータセットの正確なコピーを同期する目的を達成することができる。
【００９３】
上述の実施例を使用することにより、インテリジェント端末は、クラウドサーバにおいてインテリジェント端末のユーザデータをバックアップするために、複数の入力イベントだけを送信することが必要である。これにより、インテリジェント端末を紛失した場合に、当該インテリジェント端末の紛失前の状態データ及びファイルデータを含む全てのユーザデータを、クラウドサーバから復元することができる。代替的に、クラウドサーバにおける豊富なコンピューティングリソースを用いることにより、クラウドサーバにおけるユーザデータのスキャンが実行され、これにより、インテリジェント端末のユーザデータが安全であるか否かを示す検出結果を取得することができる。
【００９４】
本発明に従う、端末のデータセットの正確なコピーを同期させるための方法の複数の実施例に対応して、本発明は、本方法を実行するために、さらに、端末のデータセットの正確なコピーを同期させるための装置、端末、及びサーバの複数の実施例を提供する。
【００９５】
本発明に従う、端末のデータセットの正確なコピーを同期させるための装置の実施例のブロック図である、図４を参照する。当該装置は、端末側に配置されてもよい。
【００９６】
装置は、取得部４１０、集約部４２０、及び送信部４３０を含む。
【００９７】
取得部４１０は、アプリケーションソフトウェアの実行中に、複数の入力イベントを取得するように構成されている。
【００９８】
集約部４２０は、集約イベントを取得するために、取得部４１０により取得された複数の入力イベントを集約するように構成されている。
【００９９】
複数の入力イベントを取得するために当該集約イベントを解析した後、サーバが、当該サーバにおいて設定された当該端末の仮想マシンを用いて、複数の入力イベントを処理できるようにするために、送信部４３０は、集約部４２０により取得された集約イベントを、サーバに送信するように構成されている。これにより、アプリケーションソフトウェアの実行中に生成されたユーザデータを取得することができる。
【０１００】
前記集約部４２０は：複数の入力イベントの生成系列に従って、現在の１つの入力イベントを取得するように構成されるイベント取得サブユニット；前記イベント取得サブユニットにより取得された現在の入力イベントの属性情報の各部のビットマップ情報であって、該属性情報が現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、ビットマップ情報、を生成するように構成される、情報生成サブユニット；前記情報生成サブユニットにより生成される、前記現在の入力イベントのビットマップ情報及び前記前のイベントのそれとは異なる属性情報を、前記現在の入力イベントの送信されるデータとして決定するように構成される、データ決定サブユニット；及び前記複数の入力イベントの集約イベントを形成するために、前記データ決定サブユニットが前記複数の入力イベントの各入力イベントの送信されるデータを決定した後、該複数の入力イベントの送信されるデータを結合するように構成される、イベント集約サブユニット；を含んでもよい（図４には示されない）。
【０１０１】
本発明に従う、端末のデータセットの正確なコピーを同期させるための装置の他の実施例のブロック図である、図５を参照する。当該装置は、端末側に配置されてもよい。
【０１０２】
端末は、取得部５１０、挿入部５２０、集約部５３０、圧縮部５４０、及び送信部５５０を含む。
【０１０３】
取得部５１０は、アプリケーションソフトウェアの実行中に、複数の入力イベントを取得するように構成されている。
【０１０４】
挿入部５２０は、取得部５１０により取得された複数の入力イベントを、イベント生成系列に従って、イベントの待ち行列に挿入するように構成されている。
【０１０５】
集約部５３０は、集約イベントを取得するために設定される時間間隔に従って、イベントの待ち行列の中の複数の入力イベントを集約するように構成されている。
【０１０６】
圧縮部５４０は、圧縮された集約イベントを取得するために、集約部５３０により取得された集約イベントを圧縮するように構成されている。
【０１０７】
送信部５５０は、具体的には、圧縮部５４０により取得された圧縮された集約イベントを、クラウドサーバに送信するように構成されている。これにより、複数の入力イベントを取得するために、集約イベントを解析した後、サーバは、当該サーバにおいて設定される端末の仮想マシンを用いて、複数の入力イベントを処理することができ、これによりアプリケーションソフトウェアの実行中に生成されたユーザデータを取得することができる。
【０１０８】
前記集約部５３０は：前記複数の入力イベントの生成系列に従って、現在の１つの入力イベントを取得するように構成されるイベント取得サブユニット；前記イベント取得サブユニットにより取得される前記現在の入力イベントの属性情報の各部のビットマップ情報を生成するように構成される情報生成サブユニットであって、前記属性情報の各部のビットマップ情報は、該属性情報が前記現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、情報生成サブユニット；前記情報生成サブユニットにより生成される前記現在の入力イベントのビットマップ情報及び前記前の入力イベントのそれとは異なる属性情報を、現在の入力イベントの送信されるデータとして決定するように構成されるデータ決定サブユニット；及び前記データ決定サブユニットが、前記複数の入力イベントの各入力イベントの送信されるデータを決定した後、前記複数の入力イベントの前記集約イベントを形成するために、前記複数の入力イベントの送信されるデータを結合するように構成されるイベント集約サブユニット；を含む（図５には示されない）。
【０１０９】
本発明に従う、端末の実施例のブロック図である、図６を参照する。
【０１１０】
端末は、プロセッサ６１０及びネットワークインターフェース６２０を備える。
【０１１１】
プロセッサ６１０は、アプリケーションソフトウェアの実行時に、複数の入力イベントを取得し、かつ集約イベントを取得するために、複数の入力イベントを集約するように構成される。
【０１１２】
ネットワークインターフェース６２０は、サーバに集約イベントを送信するように構成される。これにより、サーバは、複数の入力イベントを取得するために、集約イベントを解析した後、当該サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理し、これにより、前記アプリケーションの実行時に生成されるユーザデータを取得する。
【０１１３】
オプションの実施方法において：前記プロセッサ６１０は、イベント生成系列に従って、前記取得した複数の入力イベントを、イベントの待ち行列に挿入するようにさらに構成されてもよく；かつ前記プロセッサ６１０は、具体的には、前記集約イベントを取得するために設定された期間に従って、前記イベントの待ち行列の中の前記複数の入力イベントを集約するように構成されてもよい。
【０１１４】
他のオプションの実施方法において：前記プロセッサ６１０は、具体的には：前記複数の入力イベントの生成系列に従って、現在の１つの入力イベントを取得し；前記現在の入力イベントの属性情報の各部のビットマップ情報であって、前記属性情報が前記現在の入力イベントの前の入力イベントの対応する属性情報と同じであるか否かを示す、ビットマップ情報を生成し；前記ビットマップ情報及び前記前の入力イベントのものとは異なる前記現在の入力イベントの属性情報を、現在の入力イベントの送信するデータとして決定し；かつ前記複数の入力イベントの各入力イベントの送信されるデータを決定した後、前記複数の入力イベントの集約イベントを形成するために、前記複数の入力イベントの送信するデータを結合するように構成されてもよい。
【０１１５】
他のオプションの実施方法において：前記プロセッサ６１０は、さらに、圧縮された集約イベントを取得するために、前記集約イベントを圧縮するように構成されてもよく；かつ前記ネットワークインターフェース６２０は、具体的には、前記圧縮された集約イベントを、クラウドサーバに送信するように構成されてもよい。
【０１１６】
本発明に従う、端末のデータセットの正確なコピーを同期させるための装置の別の実施例のブロック図である、図７を参照する。端末は、サーバ側に配置されてもよい。
【０１１７】
装置は、受信部７１０、解析部７２０、及び処理部７３０を含む。
【０１１８】
受信部７１０は、端末により送信される集約イベントを受信するように構成される。ここで、前記集約イベントは、アプリケーションソフトウェアの実行中に前記複数の入力イベントを取得した後に、当該端末により当該複数の入力イベントを集約することによって取得される集約イベントである。
【０１１９】
解析部７２０は、前記複数の入力イベントを取得するために、前記受信部７１０により受信した前記集約イベントを解析するように構成される。
【０１２０】
処理部７３０は、前記サーバにおいて設定された前記端末の仮想マシンを用いて、前記アプリケーションソフトウェアの実行中に生成されるユーザデータを取得するために、前記解析部７２０により取得される前記複数の入力イベントを処理するように構成される。
【０１２１】
前記解析部７２０は、前記集約イベントから順に、現在の１つの入力イベントの送信されたデータを取得するように構成されるデータ取得サブユニットであって、前記送信されたデータは、前記現在の入力イベントの属性情報の各部のビットマップ情報及び前記現在の入力イベントの前の入力イベントのそれとは異なる属性情報を含み、前記属性情報の各部のビットマップ情報は、該属性情報が前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、データ取得サブユニット；前記データ取得サブユニットにより取得された前記ビットマップ情報の表示に従って、前記前の入力イベントの属性情報から、前記前の入力イベントのそれと同じである、前記現在の入力イベントの属性情報を取得するように構成される属性取得サブユニット；及び前記現在の入力イベントを形成するために、前記属性取得サブユニットにより取得される前記同じ属性情報と、前記データ取得サブユニットにより取得される前記送信されるデータに含まれる前記異なる属性情報とを結合するように構成される、イベント生成サブユニット；を含んでもよい（図７には示されない）。
【０１２２】
処理部７３０は：前記サーバにおいて設定された前記端末の仮想マシンのシステムの状態における変化が生じたことを示す通知を受信した場合に、前記複数の入力イベントの前記属性情報が前記システムの状態と一致するか否かを判定する状態照合サブユニット；及び前記入力イベントを処理するための処理機能を前記システムが呼び出すことができるように、前記状態照合サブユニットの照合結果に従って、前記システム状態と一致する属性情報に対応する入力イベントを前記仮想マシンのシステムに挿入するように構成されるイベント処理サブユニット；を含んでもよい（図７には示されていない）。
【０１２３】
本発明に従う、端末のデータセットの正確なコピーを同期させるための装置の別の実施例のブロック図を示す、図８を参照する。当該装置は、サーバ側に配置されてもよい。
【０１２４】
装置は、受信部８１０、解凍部８２０、解析部８３０、及び処理部８４０を含む。
【０１２５】
受信部８１０は、端末により送信される、圧縮された集約イベントを受信するように構成される。ここで、圧縮される集約イベントは、アプリケーションソフトウェアの実行中に前記複数の入力イベントを取得した後に、複数の入力イベントを前記端末により集約し、そしてその後、当該集約イベントを圧縮することによって取得されるイベントである。
【０１２６】
解凍部８２０は、集約イベントを取得するために、受信部８１０により受信される前記圧縮された集約イベントを解凍するように構成されている。
【０１２７】
解析部８３０は、前記複数の入力イベントを取得するために、前記解凍部８２０により取得した前記集約イベントを解析するように構成されている。
【０１２８】
処理部８４０は、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記アプリケーションソフトウェアの実行中に生成されるユーザデータを取得するために、前記解析部８３０により取得される前記複数の入力イベントを処理するように構成されている。
【０１２９】
解析部８３０は：前記集約イベントから順に、現在の１つの入力データの送信されるデータを取得するように構成されるデータ取得サブユニットであって、前記送信されるデータは、前記現在の入力の属性情報の各部のビットマップ情報及び前の入力イベントのそれとは異なる前記現在の入力イベントの属性情報を含み、前記属性情報の各部のビットマップ情報は、当該属性情報が前記前の入力イベントの対応する属性情報と同じか否かを示す、データ取得サブユニット；前記データ取得サブユニットにより取得される前記ビットマップ情報の表示に従って、前記前の入力イベントの前記属性情報から前記入力イベントのそれと同じである前記現在の入力イベントの属性情報を取得するように構成される属性取得サブユニット；及び前記現在の入力イベントを形成するために、前記属性取得サブユニットにより取得される前記同じ属性情報及び前記データ取得サブユニットにより取得される前記送信されるデータに含まれる前記異なる属性情報とを結合するように構成される、イベント生成サブユニット；を含んでもよい（図８には示されない）。
【０１３０】
処理部８４０は：前記サーバにおいて設定された前記端末の仮想マシンのシステムの状態の変化が生じたことを示す通知が受信された場合に、前記複数の入力イベントの前記属性情報が前記システムの状態と一致するか否かを判定する状態照合サブユニット；及び前記システムが前記入力イベントを処理するための処理機能を呼び出せるようにするために、前記状態照合サブユニットの照合結果に従って、前記仮想マシンのシステムに、前記システムの状態に一致する属性情報に対応する入力イベントを挿入するように構成されるイベント処理サブユニットを含んでもよい（図８には示されない）。
【０１３１】
本発明に従う、サーバの実施例のブロック図である、図９を参照する。
【０１３２】
サーバは、端末インターフェース９１０及びプロセッサ９２０を含む。
【０１３３】
端末インターフェース９１０は、端末により送信される集約イベントを受信するように構成される。ここで、前記集約イベントは、アプリケーションソフトウェアの実行中に前記複数の入力イベントを取得した後に、複数の入力イベントを集約することにより前記端末により取得される集約イベントである。
【０１３４】
プロセッサ９２０は、前記複数の入力イベントを取得するために、前記集約イベントを解析するように構成され、かつ前記アプリケーションソフトウェアの実行中に生成されるユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いて、前記複数の入力イベントを処理するように構成されている。
【０１３５】
オプションの実施方法において：
【０１３６】
前記端末インターフェース９１０は、具体的には、前記端末により送信される、圧縮された集約イベントを受信するように構成されてもよい。ここで、前記圧縮された集約イベントは、前記集約イベントを圧縮した後に、前記端末により取得されるイベントである。
【０１３７】
前記プロセッサ９２０は、さらに、前記集約イベントを取得するために、前記圧縮された集約イベントを解凍するように構成されてもよい。
【０１３８】
別のオプションの実施方法において：
【０１３９】
前記プロセッサ９２０は、具体的には：前記集約イベントから順に、現在の１つの入力イベントの送信されるデータであって、現在の入力イベントの属性情報の各部のビットマップ情報及び前の入力イベントのそれとは異なる、前記現在の入力イベントの属性情報とを含み、前記属性情報の各部のビットマップ情報は、該属性情報が、前記前の入力イベントの対応する属性情報と同じであるか否かを示すために用いられる、送信されるデータを取得し；前記ビットマップ情報の表示に従って、前記前の入力イベントの前記属性情報から、前記前の入力イベントのそれと同じである前記現在の入力イベントの属性情報を取得し；かつ前記現在の入力イベントを形成するために、前記取得される同じ属性情報及び前記送信されるデータに含まれる前記異なる属性情報とを結合する；ように構成されてもよい。
【０１４０】
別のオプションの実施方法において：
【０１４１】
前記プロセッサ９２０は、具体的には：前記サーバにおいて設定された前記端末の仮想マシンのシステムの状態に変化が生じたことを示す通知が受信された場合に、前記複数の入力イベントの属性情報が前記システムの状態と一致するか否かを決定し、かつ前記入力イベントを処理するために、前記システムが処理機能を呼び出せるようにするために、前記仮想マシンのシステムに、前記システムの状態と一致する属性情報に対応する入力イベントを挿入するように構成されてもよい。
【０１４２】
本実施例において、端末は、アプリケーションソフトウェアの実行中に複数の入力イベントを取得し、集約イベントを取得するために、当該複数の入力イベントを集約し、そして当該集約イベントをサーバに送信し；前記複数の入力イベントを取得するために、前記集約イベントを解析した後、前記サーバは、前記アプリケーションソフトウェアの実行中に生成されたユーザデータを取得するために、前記サーバにおいて設定された前記端末の仮想マシンを用いることにより、前記複数の入力イベントを処理する、ということが理解できる。本発明の複数の実施例において、前記端末は、前記ユーザデータを端末に送信する必要はないが、イベント駆動型の方式で、前記複数の入力イベントを前記サーバに送信する。これにより、サーバ側は、前記アプリケーションソフトウェアを実行する端末側のそれと同じである前記ユーザデータを取得するために、前記端末の前記仮想マシンを用いることにより、前記複数の入力イベントの実行を開始することができ、これにより、サーバは完全なユーザデータをバックアップすることができ、かつ当該ユーザデータの安全確認の精度を向上することができる。また、前記端末により送信される集約された入力イベントのサイズは、ユーザデータの直接の送信のそれと比較して、比較的小さいので、より少ないネットワーク送信リソースが占有されることになり、かつ端末自身の性能の処理負荷は影響を受けないので、これにより端末の他のサービスの正常な実行を確保する。
【０１４３】
ソフトウェア及び必要は一般的なハードウェアプラットフォームを用ることにより、本発明の複数の実施例における技術を実施することができることを、当業者は明確に理解できる。そのような理解に基づき、本質的に、又は部分的に、従来技術に貢献する、本発明の複数の実施例における複数の技術的解決手段は、ソフトウェア製品の形で実施されてもよい。コンピュータソフトウェア製品は、ＲＯＭ／ＲＡＭ、磁気ディスク、又は光ディスクなどの記憶媒体に記憶され、かつ本発明の複数の実施例又は本発明の複数の実施例のいくつかの部分において記載される複数の方法を実行するために、コンピュータ（パーソナルコンピュータ、サーバ、ネットワーク装置等であってもよい）に指示するためのいくつかの命令を含む。
【０１４４】
本明細書の各実施例は、累進的な方法により記載されている。複数の実施例における同一又は類似の部分は、ちょうど互いに対する参照となる。各実施例は、他の複数の実施例との相違に重点を置いて説明してある。特に、システムの実施例に関して、方法の実施例と基本的に同様であるため、当該システムの実施例は、簡単に記載されており、そして関連する部分は、方法の実施例の説明の部分を参照することにより取得することができる。
【０１４５】
本発明の前述の複数の実施例は、本発明の保護範囲の限定としては、解釈されない。本発明の精神及び原則内で行われる、如何なる変更、均等な置換、及び改良も、本発明の保護範囲に属さなければならない。
【図１Ａ】
0005986602.tif 000002
【図１Ｂ】
0005986602.tif 000003
【図２】
0005986602.tif 000004
【図３Ｂ】
0005986602.tif 000005
【図４】
0005986602.tif 000006
【図５】
0005986602.tif 000007
【図６】
0005986602.tif 000008
【図７】
0005986602.tif 000009
【図８】
0005986602.tif 000010
【図９】
0005986602.tif 000011
【図３Ａ】
0005986602.tif 000012