(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-18
(45)【発行日】2024-01-26
(54)【発明の名称】方法、システムおよびコンピューター可読媒体
(51)【国際特許分類】
G06F 8/65 20180101AFI20240119BHJP
G06F 11/34 20060101ALI20240119BHJP
G06Q 10/10 20230101ALI20240119BHJP
G06Q 50/10 20120101ALI20240119BHJP
【FI】
G06F8/65
G06F11/34 176
G06Q10/10
G06Q50/10
【外国語出願】
(21)【出願番号】P 2021093717
(22)【出願日】2021-06-03
【審査請求日】2022-08-22
(32)【優先日】2020-06-08
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】アンドレイ クラーガ
(72)【発明者】
【氏名】セルゲイ ベロウソフ
(72)【発明者】
【氏名】スタニスラフ プロタソフ
(72)【発明者】
【氏名】ニコライ グルベニコフ
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特表2013-502005(JP,A)
【文献】特開2008-152482(JP,A)
【文献】特開2012-033192(JP,A)
【文献】米国特許出願公開第2019/0334909(US,A1)
【文献】米国特許出願公開第2005/0091651(US,A1)
【文献】米国特許出願公開第2016/0212222(US,A1)
【文献】特開2016-099709(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65- 8/658
G06Q 10/10-10/1093
G06Q 50/10
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
既存のソフトウェアから新規のソフトウェアにシームレスに移行するための方法であって、
少なくとも1つの計算装置上で、前記既存のソフトウェアから前記新規のソフトウェアに移行するコマンドを受信することであって、前記既存のソフトウェアと前記新規のソフトウェア
は複数の特徴を共有する
異なるアプリケーションであり、前記既存のソフトウェアは第1のソフトウェア販売元によって開発され前記新規のソフトウェアは第2のソフトウェア販売元によって開発された、受信することと、
前記コマンドを受信することに応じて、
前記少なくとも1つの計算装置から前記既存のソフトウェアの利用情報を取得すること
であって、前記利用情報は、前記既存のソフトウェアにおける処置を完了させるために必要な時間を含む、取得することと、
前記既存のソフトウェアから移行する設定を特定することと、
前記新規のソフトウェアのメタデータ情報を有する内部データベースに基づいて、前記既存のソフトウェアの前記設定を前記新規のソフトウェアの対応する設定に変換することと、
前記少なくとも1つの計算装置の前記複数の特徴へのアクセスに関連するサービス品質がサービス品質の閾値より低くならないように、前記利用情報に基づいて、前記新規のソフトウェアをインストールし前記既存のソフトウェアを削除するための一連のタスクを示す移行計画を決定すること
であって、前記サービス品質は、前記移行計画の実行中に前記既存のソフトウェア及び前記新規のソフトウェアを使用する処置を完了させるために必要な時間に基づいて測定された、決定することと、
前記既存のソフトウェアが稼働している間に、前記複数の特徴におけるそれぞれの特徴について、
前記特徴に関連付けられた前記新規のソフトウェアのファイルをインストールし、
前記新規のソフトウェア上で前記特徴にアクセスできるように、前記対応する設定のうち任意の設定を前記インストールされたファイルに適用し、
前記少なくとも1つの計算装置での移行中に、前記新規のソフトウェアが前記特徴を使用する動作を実行する新規の要求を、前記既存のソフトウェアによって前記新規のソフトウェアに転送し、
前記特徴に関連付けられた前記既存のソフトウェアのファイルを削除することによって、前記一連のタスクを実行することと
を含む、
コンピューターによって実行される方法。
【請求項2】
前記少なくとも1つの計算装置の管理者に前記移行計画を提示することをさらに含み、
前記一連のタスクを実行することは、前記管理者からの前記移行計画の承認に応じる、請求項1に記載の方法。
【請求項3】
前記既存のソフトウェアと前記新規のソフトウェアはウイルス対策ソフトであり、
前記既存のソフトウェアから移行する前記設定を特定することは、
(1)ウイルス対策スキャンスケジュール、(2)各種ウイルスおよびマルウェアに対して行う処置、(3)スキャンの必要のない例外ディレクトリー、(4)許可されたユーザー、
のうち少なくとも1つを特定することをさらに含む、請求項1に記載の方法。
【請求項4】
前記移行計画を決定することは、
前記複数の特徴における各特徴を、前記特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、
前記ランク付けに従って前記一連のタスクにおけるタスクの予定を設定することであって、可能性が高い特徴を、可能性が低い特徴の前にインストールする予定を設定することと
をさらに含む、請求項
1に記載の方法。
【請求項5】
前記移行計画を決定することは、
前記複数の特徴における各特徴を、前記特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、
前記ランク付けに従って前記一連のタスクにおけるタスクの予定を設定することであって、可能性が低い特徴を、可能性が高い特徴の前にインストールする予定を設定することと
をさらに含む、請求項
1に記載の方法。
【請求項6】
前記既存のソフトウェアの設定を特定することは、前記少なくとも1つの計算装置の前記既存のソフトウェアのユーザーによって手動で調整された少なくとも1つの設定を特定することをさらに含む、請求項1に記載の方法。
【請求項7】
前記既存のソフトウェアの設定を特定することは、少なくとも1つの設定が、前記既存のソフトウェアのユーザーによって閾値期間よりも長い期間変更されていないと判断することに応じて、前記少なくとも1つの設定を移行用に特定することをさらに含む、請求項1に記載の方法。
【請求項8】
前記既存のソフトウェアの設定を特定することは、前記新規のソフトウェアの前記複数の特徴のうち少なくとも1つの特徴にアクセスする場合に少なくとも1つの設定によってサービス品質が最適化されないと判断することに応じて、前記少なくとも1つの設定を移行用に選択しないことをさらに含む、請求項1に記載の方法。
【請求項9】
前記既存のソフトウェアと前記新規のソフトウェアはウイルス対策ソフトであり、
前記サービス品質は、
(1)前記少なくとも1つの計算装置のスキャン実行にかかった時間、
(2)前記少なくとも1つの計算装置上でスキャンされたオブジェクトの量、
(3)検知された不正なオブジェクトの数、
(4)ファイアウォールが動作しているにもかかわらず感染したディレクトリーの量、
(5)新規のウイルス定義をダウンロードする時間、
の任意の組み合わせに基づいて測定される、請求項1に記載の方法。
【請求項10】
既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのシステムであって、前記システムはハードウェアプロセッサーを備え、
前記ハードウェアプロセッサーは、
少なくとも1つの計算装置上で、前記既存のソフトウェアから前記新規のソフトウェアに移行するコマンドを受信し、
ここで、前記既存のソフトウェアと前記新規のソフトウェア
は複数の特徴を共有
する異なるアプリケーションであり、前記既存のソフトウェアは第1のソフトウェア販売元によって開発され前記新規のソフトウェアは第2のソフトウェア販売元によって開発され、
前記コマンドを受信することに応じて、
前記少なくとも1つの計算装置から前記既存のソフトウェアの利用情報を取得し、
ここで、前記利用情報は、前記既存のソフトウェアにおける処置を完了させるために必要な時間を含み、
前記既存のソフトウェアから移行する設定を特定し、
前記新規のソフトウェアのメタデータ情報を有する内部データベースに基づいて、前記既存のソフトウェアの前記設定を前記新規のソフトウェアの対応する設定に変換し、
前記少なくとも1つの計算装置の前記複数の特徴へのアクセスに関連するサービス品質がサービス品質の閾値より低くならないように、前記利用情報に基づいて、前記新規のソフトウェアをインストールし前記既存のソフトウェアを削除するための一連のタスクを示す移行計画を決定し、
ここで、前記サービス品質は、前記移行計画の実行中に前記既存のソフトウェア及び前記新規のソフトウェアを使用する処置を完了させるために必要な時間に基づいて測定され、
前記既存のソフトウェアが稼働している間に、前記複数の特徴におけるそれぞれの特徴について、
前記特徴に関連付けられた前記新規のソフトウェアのファイルをインストールし、
前記新規のソフトウェア上で前記特徴にアクセスできるように、前記対応する設定のうち任意の設定を前記インストールされたファイルに適用し、
前記少なくとも1つの計算装置での移行中に、前記新規のソフトウェアが前記特徴を使用する動作を実行する新規の要求を、前記既存のソフトウェアによって前記新規のソフトウェアに転送し、
前記特徴に関連付けられた前記既存のソフトウェアのファイルを削除することによって、前記一連のタスクを実行する、
ように構成される、システム。
【請求項11】
前記ハードウェアプロセッサーは、
前記少なくとも1つの計算装置の管理者に前記移行計画を提示するようにさらに構成され、
前記一連のタスクを実行することは、前記管理者からの前記移行計画の承認に応じる、請求項
10に記載のシステム。
【請求項12】
前記既存のソフトウェアと前記新規のソフトウェアはウイルス対策ソフトであり、
前記ハードウェアプロセッサーは
(1)ウイルス対策スキャンスケジュール、(2)各種ウイルスおよびマルウェアに対して行う処置、(3)スキャンの必要のない例外ディレクトリー、(4)許可されたユーザー
のうち少なくとも1つを特定することによって、前記既存のソフトウェアから移行する前記設定を特定するように構成される、請求項
10に記載のシステム。
【請求項13】
前記ハードウェアプロセッサーは、
前記複数の特徴における各特徴を、前記特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、
前記ランク付けに従って前記一連のタスクにおけるタスクの予定を設定することであって、可能性が高い特徴を、可能性が低い特徴の前にインストールする予定を設定することと、
によって前記移行計画を決定するように構成される、請求項
10に記載のシステム。
【請求項14】
前記ハードウェアプロセッサーは、
前記複数の特徴における各特徴を、前記特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、
前記ランク付けに従って前記一連のタスクにおけるタスクの予定を設定することであって、可能性が低い特徴を、可能性が高い特徴の前にインストールする予定を設定することと、
によって前記移行計画を決定するように構成される、請求項
10に記載のシステム。
【請求項15】
前記ハードウェアプロセッサーは、前記少なくとも1つの計算装置の前記既存のソフトウェアのユーザーによって手動で調整された少なくとも1つの設定を特定することによって、前記既存のソフトウェアの設定を特定するように構成される、請求項
10に記載のシステム。
【請求項16】
前記ハードウェアプロセッサーは、少なくとも1つの設定が、既存のソフトウェアのユーザーによって閾値期間よりも長い期間変更されていないと判断することに応じて、前記少なくとも1つの設定を移行用に特定することによって、前記既存のソフトウェアの設定を特定するように構成される、請求項
10に記載のシステム。
【請求項17】
前記ハードウェアプロセッサーは、前記新規のソフトウェアの前記複数の特徴のうち少なくとも1つの特徴にアクセスする場合に少なくとも1つの設定によってサービス品質が最適化されないと判断することに応じて、前記少なくとも1つの設定を移行用に選択しないことによって、前記既存のソフトウェアの設定を特定するように構成される、請求項
10に記載のシステム。
【請求項18】
既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのコンピューター実行命令を保存する非一時的なコンピューター可読媒体であって、
少なくとも1つの計算装置上で、前記既存のソフトウェアから前記新規のソフトウェアに移行するコマンドを受信し、
ここで、前記既存のソフトウェアと前記新規のソフトウェア
は複数の特徴を共有する
異なるアプリケーションであり、前記既存のソフトウェアは第1のソフトウェア販売元によって開発され前記新規のソフトウェアは第2のソフトウェア販売元によって開発され、
前記コマンドを受信することに応じて、
前記少なくとも1つの計算装置から前記既存のソフトウェアの利用情報を取得し、
ここで、前記利用情報は、前記既存のソフトウェアにおける処置を完了させるために必要な時間を含み、
前記既存のソフトウェアから移行する設定を特定し、
前記新規のソフトウェアのメタデータ情報を有する内部データベースに基づいて、前記既存のソフトウェアの前記設定を前記新規のソフトウェアの対応する設定に変換し、
前記少なくとも1つの計算装置の前記複数の特徴へのアクセスに関連するサービス品質がサービス品質の閾値より低くならないように、前記利用情報に基づいて、前記新規のソフトウェアをインストールし前記既存のソフトウェアを削除するための一連のタスクを示す移行計画を決定し、
ここで、前記サービス品質は、前記移行計画の実行中に前記既存のソフトウェア及び前記新規のソフトウェアを使用する処置を完了させるために必要な時間に基づいて測定され、
前記既存のソフトウェアが稼働している間に、前記複数の特徴におけるそれぞれの特徴について、
前記特徴に関連付けられた前記新規のソフトウェアのファイルをインストールし、
前記新規のソフトウェア上で前記特徴にアクセスできるように、前記対応する設定のうち任意の設定を前記インストールされたファイルに適用し、
前記少なくとも1つの計算装置での移行中に、前記新規のソフトウェアが前記特徴を使用する動作を実行する新規の要求を、前記既存のソフトウェアによって前記新規のソフトウェアに転送し、
前記特徴に関連付けられた前記既存のソフトウェアのファイルを削除することによって、前記一連のタスクを実行する、
ための命令を含む、非一時的なコンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[1]本発明は、ソフトウェア移行の分野に関し、より具体的には、既存のソフトウェアから新規のソフトウェアにシームレスに移行するための方法、システムおよびコンピューター可読媒体に関する。
【背景技術】
【0002】
[2]管理サービス・プロバイダー(Managed Service Provider:MSP)は、多くの管理された情報技術(Information Technology:IT)サービスを他の企業に提供する事業者である。現在、管理サービス・プロバイダーはネットワークを通じて遠隔で広くサービスを提供している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
管理サービス・プロバイダーの課題の1つは、販売元が異なるソフトウェアの切り換えである。例えば、管理サービス・プロバイダーが第1の販売元によるウイルス対策ソフトを利用したとする。仮に別のウイルス対策ソフトが第2の販売元によって市場に導入され、かつ現在利用しているウイルス対策ソフトよりも効率的で安価である場合、管理サービス・プロバイダーは切り換えを検討する可能性がある。しかし、この切り換えには、顧客の要望への個別対応を伴う長期の移行、ソフトウェアを動かすハードウェアへの個別対応、保存され処理されたデータの特徴を保持するための個別対応が必要となる。移行作業は労働集約的で信頼性が低く、新規のソフトウェアの総所有コスト(Total Cost of Ownership:TCO)が増加し、さらに(移行時に)サービス品質の低下を招くことから、管理サービス・プロバイダーはインフラの更新に後ろ向きになることが多い。
【0004】
[3]アップグレードのプロセスを簡素化するために、本開示の態様は、既存のソフトウェアから新規のソフトウェアにシームレスに移行するための方法、システムおよびコンピューター可読媒体について述べる。
【課題を解決するための手段】
【0005】
[4]1つの例示的な態様では、方法は、少なくとも1つの計算装置上で、既存のソフトウェアから新規のソフトウェアに移行するコマンドを受信することを含んでよく、既存のソフトウェアと新規のソフトウェアが複数の特徴を共有してよい。当該方法は、コマンドを受信することに応じて、少なくとも1つの計算装置から既存のソフトウェアの利用情報を取得することと、既存のソフトウェアから移行する設定を特定することと、を含んでよい。当該方法は、新規のソフトウェアのメタデータ情報を有する内部データベースに基づいて、既存のソフトウェアの設定を新規のソフトウェアの対応する設定に変換することをさらに含んでもよい。当該方法は、少なくとも1つの計算装置の複数の特徴へのアクセスに関連するサービス品質がサービス品質の閾値より低くならないように、利用情報に基づいて、新規のソフトウェアをインストールし既存のソフトウェアを削除するための一連のタスクを示す移行計画を決定することをさらに含んでもよい。当該方法は、新規のソフトウェアをインストールし、対応する設定を実装し、既存のソフトウェアを削除することによって、一連のタスクを実行することをさらに含んでもよい。
【0006】
[5]いくつかの態様において、当該方法は、少なくとも1つの計算装置の管理者に移行計画を提示することを含んでよく、一連のタスクを実行することは、管理者からの移行計画の承認に応じてよい。
【0007】
[6]いくつかの態様において、既存のソフトウェアと新規のソフトウェアはウイルス対策ソフトであり、既存のソフトウェアから移行する設定を特定することは、(1)ウイルス対策スキャンスケジュール、(2)各種ウイルスおよびマルウェアに対して行う処置、(3)スキャンの必要のない例外ディレクトリー、(4)許可されたユーザー、のうち少なくとも1つを特定することをさらに含む。
【0008】
[7]いくつかの態様において、一連のタスクを実行することは、当該複数の特徴に含まれる、既存のソフトウェアの特徴を特定することと、当該特徴に関連付けられた新規ソフトウェアのファイルをインストールすることと、新規のソフトウェア上で当該特徴にアクセスできるように、対応する設定のうち1つの設定を、インストールされたファイルに適用することと、少なくとも1つの計算装置で受信された、当該特徴にアクセスする要求を、新規のソフトウェアに転送することと、当該特徴に関連付けられた既存のソフトウェアのファイルを削除することと、を含む。
【0009】
[8]いくつかの態様において、移行計画を決定することは、当該複数の特徴における各特徴を、当該特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、ランク付けに従って一連のタスクにおけるタスクの予定を設定することであって、可能性が高い特徴を、可能性が低い特徴の前にインストールする予定を設定することをさらに含む。
【0010】
[9]いくつかの態様において、移行計画を決定することは、当該複数の特徴における各特徴を、当該特徴が移行中にアクセスされる可能性に基づいてランク付けすることと、ランク付けに従って一連のタスクにおけるタスクの予定を設定することであって、可能性が低い特徴を、可能性が高い特徴の前にインストールする予定を設定することをさらに含む。
【0011】
[10]いくつかの態様において、既存のソフトウェアの設定を特定することは、少なくとも1つの計算装置の既存のソフトウェアのユーザーによって手動で調整された少なくとも1つの設定を特定することをさらに含む。
【0012】
[11]いくつかの態様において、既存のソフトウェアの設定を特定することは、少なくとも1つの設定が、既存のソフトウェアのユーザーによって閾値期間よりも長い期間変更されていないと判断することに応じて、当該少なくとも1つの設定を移行用に特定することをさらに含む。
【0013】
[12]いくつかの態様において、既存のソフトウェアの設定を特定することは、新規のソフトウェアの複数の特徴のうち少なくとも1つの特徴にアクセスする場合に少なくとも1つの設定によってサービス品質が最適化されないと判断することに応じて、当該少なくとも1つの設定を移行用に選択しないことをさらに含む。
【0014】
[13]いくつかの態様において、既存のソフトウェアと新規のソフトウェアはウイルス対策ソフトであり、サービス品質は、(1)当該少なくとも1つの計算装置のスキャン実行にかかった時間、(2)当該少なくとも1つの計算装置上でスキャンされたオブジェクトの量、(3)検知された不正なオブジェクトの数、(4)ファイアウォールが動作しているにもかかわらず感染したディレクトリーの量、(5)新規のウイルス定義をダウンロードする時間、の任意の組み合わせに基づいて測定される。
【0015】
[14]なお、上記の方法は、ハードウェアプロセッサーを備えるシステムにおいて実現されてよい。或いは、上記の方法は、非一時的なコンピューター可読媒体のコンピューター実行命令を用いて実現されてよい。
【0016】
[15]上記の例示的な態様の簡略化された概要によって、本開示の基本的な理解が可能になる。この概要は、企図された態様全てを広範に示したものではなく、また全ての態様の基本的または重要な要素を特定し本開示の一部または全ての態様の範囲を画定することを意図したものではない。本開示のより詳細な説明に先立ち、簡略化された形で1つ以上の態様を提示することを唯一の目的としている。上記の目的を達成するために、本開示の1つ以上の態様には、請求項に記載され例示的に示された特徴が含まれる。
【図面の簡単な説明】
【0017】
[16]本明細書の一部に組み込まれて本明細書の一部を構成している添付図面は、本開示の1つ以上の例示的な態様を示し、さらに詳細な説明と共に、その原理と実施を示す。
【
図1】[17]
図1は、本開示の態様による既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのシステムを示すブロック図である。
【
図2】[18]
図2は、本開示の態様による既存のソフトウェアから新規のソフトウェアに設定を取り出し変換するためのシステムを示すブロック図である。
【
図3】[19]
図3は、本開示の態様による移行計画を作成するためのシステムを示すブロック図である。
【
図4】[20]
図4は、本開示の態様による移行計画を実行するためのシステムを示すブロック図である。
【
図5】[21]
図5は、本開示の態様による既存のソフトウェアから新規のソフトウェアにシームレスに移行するための方法を示すフローチャートである。
【
図6】[22]
図6は、本開示の態様を実現可能な汎用コンピューターシステムの例を示す。
【発明を実施するための形態】
【0018】
[23]既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのシステム、方法、およびコンピュータープログラム製品に関連して例示的な態様について述べる。技術分野における通常の知識を有する者は、以下の説明は例示であって制限を加える意図はないことを理解するであろう。他の態様は、本開示の利益を受ける当業者に容易に示されるであろう。添付図面に示す通り、例示的な態様の実施を詳細に参照する。図面および以下の説明において、同様の要素は可能な限り同様の参照符号を用いて示す。
【0019】
[24]
図1は、本開示の態様による既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのシステム100を示すブロック図である。システム100において、MSP101は複数の計算装置(例えば、108a、108b、108n)のサービス・プロバイダーを示す。本開示において、移行サーバー106とMSP101の間で交換された情報は、サーバー106とMSP101のメンバー(例えば、管理者)に使用された装置との間で交換された情報と理解されてよい。
【0020】
[25]移行サーバー106は、複数の計算装置に渡ってソフトウェアのシームレスな移行を調整するように構成された移行モジュール114を備える。各計算装置108は移行エージェント114を備え、移行エージェント114は、移行サーバー106上で移行モジュール114と通信するクライアントアプリケーションであってよい。いくつかの態様において、移行エージェント114はシン・クライアント(thin client)であり、移行モジュール114はシック・クライアント(thick client)である。MSP101、移行サーバー106、および複数の計算装置108間の通信は、同じネットワーク上で行われてよい。ネットワークは、ローカルエリアネットワーク(Local Area Network:LAN)またはインターネット等のワイドエリアネットワーク(Wide Area Network:WAN)であってよい。いくつかの態様において、各計算装置は独立しておりMSP101とは関連付けられていない。したがって、特定の計算装置(例えば、108a)にインストールされるソフトウェアは、MSP101やその他図示される計算装置(例えば、108b、108n等)とは関連はない。
【0021】
[26]1つの例示的な態様では、移行モジュール114は、少なくとも1つの計算装置上で既存のソフトウェアから新規のソフトウェアに移行するコマンドを受信してよい。いくつかの態様において、コマンドはMSP101から発信されてよく、その他の態様においてコマンドは計算装置108の1つから発信されてよい。なお、
図1の各装置は、数字の後に文字(例えば、「a」、「b」、「n」)を付けて表記される。簡略化のため1文字のみ表記している。文字は、特定の計算装置の構成要素を識別してグループ分けするために用いる。例えば、移行エージェント114a、設定112a、ソフトウェア110a等、「a」で終わる表記は、計算装置108aの構成要素およびソフトウェアを表す。いくつかの態様において、移行モジュール114によって受信されたコマンドはさらに、どの計算装置を新規のソフトウェア104で更新するかを示してよい。例えば、MSP101には、新規のソフトウェア104の更新対象として選択する必要のある計算装置はごく少数である場合もある。
【0022】
[27]いくつかの態様において、コマンドの受信に応じて、移行モジュール114は特定された計算装置に新規のソフトウェア104をインストールできるかどうかを判断してよい。例えば、いくつかの計算装置は、オペレーティングシステムおよび/またはハードウェアが旧式であるために新規のソフトウェア104とは互換性がない可能性がある。特定された計算装置が新規のソフトウェア104と互換性がないと判断されたことに応じて、移行モジュール114は非互換性を報告するエラーメッセージをMSP101に送信してよい。
【0023】
[28]ソフトウェア110と新規のソフトウェア104は、複数の特徴を共有する類似したコンピュータープログラムであってよい。例えば、ソフトウェア110はウイルス対策プログラムであり、新規のソフトウェア104は別のウイルス対策プログラムであってよい。多くの他の特徴の中から、定期スキャン、ウイルス定義、および削除/検疫方法等の特徴が共有されてよい。MSP101またはいずれかの計算装置は、ソフトウェア110を新規のソフトウェア104と入れ替える選択をしてよい。本開示は、ソフトウェア110からできるだけ多く所望の設定112を保持し、入れ替えの間サービス品質(Quality of Service:QoS)が下がらないようにしつつ、ソフトウェア110を新規のソフトウェア104と入れ替えるシステムおよび方法について述べる。この特定のソフトウェア入れ替え/更新をシームレス移行と呼ぶ。
【0024】
[29]各ソフトウェア110は、移行のために特定される(つまり、新規のソフトウェア104に適用される)設定112によって構成される。なお、ソフトウェア110aがソフトウェア110bと使い方が異なる(例えば、それぞれの計算装置のユーザーが異なる、または装置の種類が異なる)ため、どの装置に新規のソフトウェア104が適用されるかによって、異なる設定が新規のソフトウェア104に適用される。
【0025】
[30]コマンドの受信に応じて、移行モジュール114は、計算装置108からソフトウェア110の利用情報を取得し、ソフトウェア110から移行する設定112を特定する。これについてさらに
図2と
図3で述べる。
【0026】
[31]
図2は、本開示の態様による既存のソフトウェアから新規のソフトウェアに設定を取り出し変換するためのシステム200を示すブロック図である。ソフトウェア110および新規のソフトウェア104が共にウイルス対策アプリケーションである例において、既存のソフトウェアから新規のソフトウェアに移行する設定としては、(1)ウイルス対策スキャンスケジュール、(2)各種ウイルスおよびマルウェアに対して行う処置、(3)スキャンの必要のない例外ディレクトリー、(4)許可されたユーザー等があるが、これらに限定されない。
図2に示す通り、設定112が各計算装置上の移行エージェントによって取り出され、移行モジュール114に供給される。簡略化のため、以下の例では計算装置108aからの設定112aのみに注目する。設定112aは、(可能であれば)取り込むべき設定として移行エージェント114aによって特定される。
図2に列挙する通り、設定112aは複数の個別設定/構成(例えば、設定112a-1、112a-2、112a-3等)を含む。
【0027】
[32]ソフトウェア110の設定全てが新規のソフトウェア104と互換性があるとは限らず、またソフトウェア110の設定全てがユーザーに特に希望されているとは限らないため、移行モジュール114は、取り込むべき設定を選別する。例えば、移行モジュール114はソフトウェア110aのコマンド/構成ログを分析して、計算装置108aの既存のソフトウェア110aのユーザーによって手動で調整された、少なくとも1つの設定を特定してよい。ユーザーが任意の設定を手動で選択する場合、新規のソフトウェア104においてユーザーが当該設定を希望する可能性が高い。例えば、ユーザーがウイルススキャンの周期を1日から1週間に切り換えた場合、ユーザーは頻繁なスキャンを希望していない可能性がある。それゆえ、移行モジュール114には、ユーザーが好むものと好まないものという、2つの情報が供給される。この場合、新規のソフトウェア104をインストールする際に、移行モジュール114は新規のソフトウェア104の周期を「日」には設定しない。同様に、ユーザーが手動で週間を選択しているので、移行モジュール114は前回のユーザーの選択に基づいてスキャンの周期を「週」に設定する。
【0028】
[33]いくつかの態様において、ソフトウェア110の少なくとも1つの設定が閾値期間以内(例えば、先月中)に変更されたという判断に応じて、移行モジュール114は移行の少なくとも1つの設定を特定してよい。さらに、ユーザーが特定の設定を好んでいることは、設定が最近変更されたかどうかによっても示される。この変更はユーザーが直接行うとは限らない。しかしながら、最近の変更であれば、性能を向上させる更新の一部と考えられる。
【0029】
[34]いくつかの態様において、移行の少なくとも1つの設定を既存のソフトウェアのユーザーが閾値期間よりも長い期間(例えば、1年)変更していないと判断することに応じて、移行モジュール114は、当該少なくとも1つの設定を特定してよい。例えば、任意の設定がユーザーに変更されてから長期間変更されていない場合、その設定にユーザーは慣れていて結果を良いと考えている可能性がある(例えば、スキャンの開始を好みの時間に変更し、その変更がユーザーには便利なため長期間維持される)。
【0030】
[35]ソフトウェア110aから新規のソフトウェア104に移行する設定を特定した後、移行モジュール114は、特定された設定の、新規のソフトウェア104の対応する設定への変換を開始してよい。移行モジュール114は、新規のソフトウェア104およびソフトウェア110aに関するメタデータ情報を有する内部データに依存することがある。例えば、
図2は移行データベース202を示す。移行データベース202は、各ソフトウェアの設定リストと可能な構成を含む。移行データベース202は、各ソフトウェア用に、製品ID、販売元の名称、製品名、言語形式、製品の正規表現、販売元の正規表現等、追加情報を含んでよい。移行モジュール114が対応する設定を求めて2つ以上のソフトウェアアプリケーションにおいて一致する設定を素早く検索するように、設定を含むエントリーを事前マッピングしてよい。
【0031】
[36]例えば、設定112aの設定112a-1はウイルススキャンを行うことのできる時間帯を示してよい。これにより、移行モジュール114は、設定204a-1において同様の時間帯設定を特定してよい。したがって、移行モジュール114は、各計算装置でソフトウェア110と新規のソフトウェア104間の設定を一致させることができる。移行モジュール114は、その後、設定204を生成する。設定204は、移行のために特定されたソフトウェア110の設定に一致する設定リストを含む。移行モジュール114は、それぞれの計算装置の移行エージェント114に各設定204を送信する。
【0032】
[37]
図3は、本開示の態様による移行計画を作成するためのシステム300を示すブロック図である。移行モジュール114は、各計算装置から利用情報を受信してよい。この情報は、ソフトウェア110における操作ログを含んでよい。例えば、ログは「[日、時刻]に開始の手動スキャン」、「[日、時刻]に破棄されたスキャン」、「[日、時刻]に自動スキャンした新規ディレクトリー[名]」を含んでよい。移行モジュール114は、少なくとも1つの計算装置の複数の特徴へのアクセスに関連するQoSが閾QoSより低くならないように、利用302に基づいて、新規のソフトウェア104をインストールし既存のソフトウェア110を削除するための一連のタスクを示す移行計画を決定する。
【0033】
[38]いくつかの態様において、移行計画を作成するために、移行モジュール114は2つのソフトウェア間で共有される複数の特徴における各特徴を、移行中にアクセスされる可能性に基づいてランク付けしてよい。その後移行モジュール114は、ランク付けに従って一連のタスクにおけるタスクの予定設定をしてよい。いくつかの態様において、可能性が高い特徴を、可能性が低い特徴の前にインストールする予定が設定される。その他の態様において、可能性が低い特徴を、可能性が高い特徴の前にインストールする予定が設定される。
【0034】
[39]いくつかの態様において、移行モジュール114は、QoSアナライザー304および機械学習モジュール306を備えてよい。QoSアナライザー304は、利用情報に示す通り、特定の特徴がアクセスされた様々な時刻にQoS値を割り当てるために使用されてよい。QoSは、ソフトウェアにおける処置を完了させるための時間に基づく等、様々な方法で測定できる。例えばウイルス対策ソフトの場合、QoSは、ウイルススキャンが完了する時間に基づいていてよい。ユーザーが時刻t1にウイルススキャンを開始し、1時間でスキャンが完了してもよい。しかし、ユーザーが同じディレクトリーの別のスキャンを時刻t2に行って、5時間でスキャンが完了した場合、後者のスキャンのQoSは、前者のスキャンのQoSよりも低い。例えば、ソフトウェアがストリーミングアプリケーションであって歌曲のダウンロードに通常10秒かかるところが1分となる場合でも同様である。ウイルス対策ソフトに関して、QoSは、検知された不正なオブジェクトの数、ファイアウォールの監視下で感染したディレクトリーの量、新規のウイルス定義をダウンロードする時間等に基づいて測定される場合がある。一般的には、どの種類のソフトウェアでも、QoS要素はCPUの使用率、ネットワークアクセススピード、ユーザーが不正な攻撃(セキュリティー/バグ)を受ける傾向、特定の計算装置のソフトウェア/ハードウェア性能、ソフトウェアのクラッシュの頻度、ハードウェア障害の頻度等に依存する。
【0035】
[40]特に移行モジュール114は、移行中にQoSの低下を避けようとする。MLモジュール306を用いて、移行モジュール114は、移行する時刻を特定してよい。MLモジュール306は、ユーザーの利用情報およびQoSアナライザー304に生成されたQoS値を受信して、移行が可能になるようにユーザー利用が最小になる時を予測する。例えば、MLモジュール306は、午後8時から午後10時の間にユーザー利用が低下すると判断する(例えば、ユーザーによる計算装置のCPUの消費が、平均で50%のところ30%未満となる)。この間ユーザーは選択した数のディレクトリーのみスキャンする可能性がある。スキャンする時間に基づいてQoSを測定する場合、従来ではスキャンは2時間で完了する。新規のソフトウェア104をインストールすることによって、CPUの使用率が上昇してスキャンが2時間半に伸びる可能性がある。よって、QoSが25%低下する(つまり新たなQoS値は75%)。移行モジュール114はこの値と、例えば60%の閾QoSを比較し、QoS値が閾QoSよりも大きいと判断することに応じて、その間の移行の予定を設定してよい。
【0036】
[41]上記の例で示す通り、閾QoSは、QoS値に関連するパーセント等の値を表す。QoS値をスキャン時間内で測定する場合、閾QoS値は最長スキャン時間を表す時間値でもある。任意の時間内でスキャンされるオブジェクトの数の単位でQoS値を測定する場合、閾QoSは当該時間内でスキャンするオブジェクトの最小数を表す。
【0037】
[42]それゆえ移行モジュール114は、(取り込むべき設定および利用情報に依存して)各計算装置独自の移行計画308を作成する。例えば、移行モジュール114は移行計画308aを移行エージェント114aに送信し、移行計画308bを移行エージェント114bに送信してよい。
【0038】
[43]なお、新規のソフトウェア104に取り込むべき設定を選択する際に、移行モジュール114は、新規のソフトウェアの複数の特徴のうち少なくとも1つの特徴にアクセスする場合に少なくとも1つの設定がQoSを最適化しないと判断することに応じて(開発者の推奨および/またはMSPの指示に基づいて)、当該少なくとも1つの設定を移行用に選択しなくてもよい。例えば、新規のソフトウェア104における特定の設定によってアプリケーション性能(例えば、より迅速なスキャンおよび更新)が必然的に向上する可能性がある。これによって、旧設定を取り込む必要がなくなる。そのような設定は、既存のソフトウェアにはない新しい特徴に基づくことができる。例えば、新規のウイルス対策ソフトにおいて、計算装置のスキャンに対し、より高速なスキャンが可能でさらに頻繁なスキャンを必要とするような異なる手法が用いられることがある。したがって、既存のソフトウェアでユーザーがスキャン頻度を当初隔週に設定し、新規のソフトウェアでは販売元/開発者が毎週のスキャンを推奨する場合、頻度の設定は持ち越されない。
【0039】
[44]いくつかの態様において、移行モジュール114は、移行計画308を当該少なくとも1つの計算装置の管理者および/またはMSP101に提示してよい。移行計画を実行する前または移行計画を移行エージェント114に移行計画を送信する前に、移行モジュール114は移行計画308の承認を求めてよい。
【0040】
[45]
図4は、本開示の態様による移行計画を実行するためのシステム400を示すブロック図である。いくつかの態様において、管理者からの移行計画の承認を受信することに応じて、移行モジュール114は、新規のソフトウェア104をインストールし、対応する設定204を実装し、既存のソフトウェア110を削除することによって、移行計画308に示す一連のタスクを実行してよい。
図4に示す通り、各計算装置はそれぞれ新規のソフトウェア104と設定204を有しソフトウェア110は有していない。
【0041】
[46]いくつかの態様において、移行エージェント114は移行計画308を受信してそれを局所的に実行してよい。一連のタスクは、移行計画308のタスクをいつ、どの順番で行うかを示してよい。各タスクは、特定のコマンドを表してよい。例えば順番は以下の通りである。
1.find regkey[NAME]
2.parse config[-type xml | json| yaml] [-path PATH_TO_CONFIG_FILE]
3.run cmd[COMMAND]
4.start proc [PATH_TO_EXE_FILE]
5.force remove [PATH_TO_APP]
6.install New Software [CONFIG_FILE]
7.send restcmd[HOST_ADDRESS]
【0042】
[47]いくつかの態様において、インストールと削除は並行して行われる。例えば、移行エージェント114は、既存のソフトウェアの特徴を特定してよく、その特徴は当該複数の特徴に含まれる。移行エージェント114は、その特徴に関連付けられた新規のソフトウェアのファイルをインストールし、その特徴に新規のソフトウェア上でアクセスできるように、対応する設定のうち任意の設定をインストールされたファイルに適用してよい。例えば、その特徴は特定のウイルスのスキャンを含んでよい。新しい特徴は新規のソフトウェア104を通して計算装置上で実現されるため、ユーザーがソフトウェア110上でその特徴にアクセスしようとする場合、移行エージェント114は、少なくとも1つの計算装置で受信された特徴にアクセスする要求を、新規のソフトウェア104に転送してよい。新しい特徴をインストールして対応する設定を適応した後、移行エージェント114は、その特徴に関連付けられた既存のソフトウェア110のファイルを削除してよい。
【0043】
[48]いくつかの態様において、MSP101は、コマンドを送信して新規のソフトウェア104を複数の計算装置108に移行させてよい。例えば、計算装置はウィンドウズ(登録商標)のOSで稼働しているとする。計算装置がパスワードで保護されている場合、ソフトウェア110をインストールするためには、移行エージェント114はRegistry Editorを開き、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\に進み、アンインストールキーを探索し、アンインストールを開始する(例えば、msiexec /X [product uninstall key])。
【0044】
[49]計算装置がパスワードで保護されている場合、ソフトウェア110をアンインストールするためには、移行モジュール114は、rest APIを頼みに全ての計算装置108のホスト名の「Get」リストに到達し、非保護のグループを作成し、全ての計算装置108をそのグループに入れて、各計算装置にパスワードを設定せずアンインストールを開始する。この態様において、REST API方式には「Get」、「Put」、「Post」、「Delete」が含まれる。
【0045】
[50]シームレスな移行によって、更新中にユーザーがアプリケーションとサービスを終了させずに使い続けることができるので、どのような更新設定でも適用できる。例えば、ユーザーは、ウイルススキャン等、既存のソフトウェアの特徴を使い始めて、新規のソフトウェアでその特徴の使用を完了してよい。例えば、1000ファイルのディレクトリーのスキャンが必要とされる。本開示のシステムおよび方法を使用して、ディレクトリーを既存のウイルス対策ソフトを使ってスキャンする。スキャンの途中で、新規のウイルス対策ソフトをインストールする。スキャン中に、ファイルのウイルススキャンを行うという特徴は新規のソフトウェアに引き継がれて完了する。新規のソフトウェアのインストールが完了すれば、既存のソフトウェアは削除される。移行モジュール114は、ファイルをスキャンする特徴(つまり、現在使用中の特徴)には1組のインストールファイルの実行が必要であり(例えば、遠隔ウイルス定義データベース、ユーザーインターフェース、ファイルパーサーと通信する通信モジュール)、これらのファイルを即座にインストールすると判断してよい。続いて移行エージェント114aは、その特徴(つまり、ディレクトリーにおいてオブジェクトをスキャンする要求)と関連付けられた全ての要求を新規のソフトウェアに転送してよい。
【0046】
[51]このインストールと実行が「シームレス」であることを確実にするために、移行モジュール114は、少なくとも1つのQoS要素を特定して性能比較する。例えば、QoS要素は、移行に限定して割り当てられた計算装置のネットワーク帯域幅消費であってよい。例えば、ネットワーク帯域幅消費の閾QoSが5Mbpsであるとする。移行モジュール114は、ネットワーク帯域幅消費が5Mbpsを超えないようにしながら新規のソフトウェアをインストールしようとする。既存のソフトウェアも稼働して帯域幅を消費している場合、既存のソフトウェアによる消費もQoSの決定に含まれる。例えば、既存のソフトウェアは2Mbpsを使用してウイルス定義との比較のためのファイルシグネチャーをアップロードする。したがって、新規のソフトウェアのインストールファイルをダウンロードするために3Mbpsが残される。
【0047】
[52]さらに、別のQoS要素として、(移行サービスに限定または計算装置全体に割り当てられる)CPU消費を用いてよい。例えば、既存のソフトウェアでスキャンの特徴が使用中で新規のソフトウェアのダウンロードとインストールが実行されている間、CPU消費は50%となることがある。閾CPU消費が45%の場合、移行モジュール114はインストールまたはスキャンを減速させてCPU消費を閾値以下に維持してよい。
【0048】
[53]別のQoS要素として記憶域使用率を用いてよい。例えば、計算装置の閾記憶域使用率を記憶域全体の50%とする。新規のソフトウェアのインストールによって記憶域使用率が51%となる(つまり、閾値を超える)場合、移行モジュール114は、新規のソフトウェアと共有する既存のソフトウェアの特徴を特定してよい。続いて、移行モジュール114は、その特徴を新規のソフトウェアで区分的にインストールし、それに並行して同じ特徴を既存のソフトウェアから削除して記憶域使用率を維持してよい。いくつかの態様において、移行が途切れず安定した使用率で進行するように、移行モジュール114では複数のQoS要素を同時に考慮してよい。
【0049】
[54]
図5は、本開示の態様による既存のソフトウェアから新規のソフトウェアにシームレスに移行するための方法500を示すフローチャートである。502では、移行モジュール114は、少なくとも1つの計算装置(例えば、計算装置108a)上で既存のソフトウェア(例えば、ソフトウェア110a)から新規のソフトウェア(例えば、新規のソフトウェア104)に移行するコマンドを(例えば、計算装置108aにインストールされた移行エージェント114aを介して)受信し、既存のソフトウェアと新規のソフトウェアが複数の特徴(例えば、両ソフトウェアはウイルス対策プログラムである)を共有する。
【0050】
[55]504では、移行モジュール114は、少なくとも1つの計算装置から既存のソフトウェアの利用情報(例えば、使用率302a)を取得する。506では、移行モジュール114は既存のソフトウェアから移行する設定(例えば、設定112a)を特定する。508では、移行モジュール114は、新規のソフトウェアのメタデータ情報を有する内部データベース(例えば、移行データベース202)に基づいて、その設定を新規のソフトウェアの対応する設定(例えば、設定204a)に変換する。
【0051】
[56]510では、移行モジュール114は、少なくとも1つの計算装置の複数の特徴へのアクセスに関連するサービス品質がサービス品質の閾値より低くならないように、該利用情報に基づいて、新規のソフトウェアをインストールし既存のソフトウェアを削除するための一連のタスクを示す移行計画(例えば、移行計画308a)を決定する。512では、移行モジュール114は、新規のソフトウェアをインストールし、対応する設定を実装し、既存のソフトウェアを削除することによって一連のタスクを実行する。
【0052】
[57]
図6は、既存のソフトウェアから新規のソフトウェアにシームレスに移行するためのシステムと方法の態様が、例示的な態様に従って実現されるコンピューターシステム20を示すブロック図である。コンピューターシステム20は、例えばデスクトップコンピューター、ノートブック・コンピューター、ラップトップコンピューター、モバイル計算装置、スマートフォン、タブレット型コンピューター、サーバー、メインフレーム、組込み型装置、他の形式の計算装置等、複数または単一の計算装置で構成することができる。
【0053】
[58]図示の通り、コンピューターシステム20は、中央処理装置(Central Processing Unit:CPU)21、システムメモリー22、および中央処理装置21に関連付けられたメモリーを含む様々なシステム構成要素を接続するシステムバス23を含む。システムバス23は、バスメモリーまたはバスメモリーコントローラー、周辺バス、および他のバスアーキテクチャーと対話できるローカル・バスを備えてよい。バスの例としては、PCI、ISA、PCI-Express、HyperTransport(登録商標)、InfiniBand(登録商標)、Serial ATA、I
2C、その他適切な相互接続が挙げられる。中央処理装置21(プロセッサーとも称する)には、単一または複数のコアを有するプロセッサーの単数または複数の組を含むことができる。プロセッサー21は、本開示の技術を実現する、コンピューター実行可能な少なくとも1つのコードを実行してよい。例えば、
図1から
図5に示すコマンド/ステップのいずれかをプロセッサー21によって実行してよい。システムメモリー22は、内部で使用されるデータおよび/またはプロセッサー21によって実行可能なコンピュータープログラムを保存するメモリーであればよい。システムメモリー22は、ランダムアクセスメモリー(Random Access Memory:RAM)25等の揮発性メモリーおよび、読み出し専用メモリー(Read Only Memory:ROM)24、フラッシュメモリー等の非揮発性メモリー、またはその組み合わせを含んでよい。基本入力/出力システム(Basic Input/Output System:BIOS)26は、オペレーティングシステムにROM24の使用をロードする時の手続き等、コンピューターシステム20の要素間で情報をやりとりするための基本的な手続きを保存してよい。
【0054】
[59]コンピューターシステム20は、1つ以上の取り外し可能な記憶装置27、1つ以上の取り外し不可の記憶装置28、またはその組み合わせ等、1つ以上の記憶装置を含んでよい。1つ以上の取り外し可能な記憶装置27と1つ以上の取り外し不可の記憶装置28は、記憶インターフェイス32を介してシステムバス23に接続される。ある態様において、記憶装置とそれに対応するコンピューター読み取り可能な記憶媒体は、コンピューター命令、データ構造、プログラムモジュール、およびコンピューターシステム20の他のデータを保存するためのパワー独立型モジュールである。システムメモリー22、取り外し可能な記憶装置27、および取り外し不可の記憶装置28は、様々なコンピューター読み取り可能な記憶媒体を使用してよい。コンピューター読み取り可能な記憶媒体の例としては、キャッシュ、SRAM、DRAM、ゼロコンデンサーRAM、対トランジスターRAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM(登録商標)、SONOS、PRAM等の機械メモリー、 フラッシュメモリーまたはソリッドステートドライブ(Solid State Drive:SSD)またはフラッシュドライブ等における他の技術、磁気カセット、磁気テープ、およびハードディスクドライブまたはフロッピー(登録商標)ディスクにおける磁気ディスク記憶装置、コンパクトディスク(Compact-Disk Read-Only Memory:CD-ROM)またはデジタル・バーサタイル・ディスク(Digital Versatile Disk:DVD)等における光学記憶装置、および所望のデータの保存に用いられ、コンピューターシステム20によってアクセスできる他の媒体が挙げられる。
【0055】
[60]コンピューターシステム20のシステムメモリー22、取り外し可能な記憶装置27、および取り外し不可の記憶装置28は、オペレーティングシステム35、追加プログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39の保存に用いられてよい。コンピューターシステム20は、入力装置40からデータを伝達する周辺インターフェイス46を備えてよく、入力装置40はキーボード、マウス、スタイラス、ゲームコントローラー、音声入力装置、タッチ入力装置、またはシリアルポート、パラレルポート、ユニバーサル・シリアルバス(Universal Serial Bus:USB)、周辺インターフェイス等の1つ以上のI/Oポートを介したプリンターやスキャナー等他の周辺装置を含む。1つ以上のモニター、プロジェクター、一体型ディスプレイ等の表示装置47が、ビデオアダプター等の出力インターフェイス48を渡ってシステムバス23に接続されてよい。表示装置47に加えて、コンピューターシステム20は、拡声器や他の視聴覚装置等の周辺出力装置(図示せず)を備えてよい。
【0056】
[61]コンピューターシステム20は、1つ以上のリモートコンピューター49へのネットワーク接続を利用するネットワーク環境において稼働してよい。リモートコンピューター(コンピューター)49は、コンピューターシステム20の性質の説明で記述された要素の少なくともほとんどを備えるローカルコンピューターワークステーションまたはサーバーであってよい。ルーター、ネットワークステーション、ピア装置、その他ネットワークノード等、他の装置もコンピュータネットワークに存在してよいが、これらに限定されない。コンピューターシステム20は、1つ以上のネットワーク、例えばローカルエリアコンピューターネットワーク(Local-Area Computer Network:LAN)50、ワイドエリアコンピューターネットワーク(Wide-Area Computer Network:WAN)、イントラネット、およびインターネットを介してリモートコンピューター49と通信するための1つ以上のネットワークインターフェイス51またはネットワークアダプターを備えてよい。ネットワークインターフェイス51の例としては、イーサネット(登録商標)インターフェイス、フレームリレーインターフェイス、SONETインターフェイス、およびワイヤレスインターフェイスが挙げられる。
【0057】
[62]本開示の態様は、システム、方法、および/またはコンピュータープログラム製品であってよい。コンピュータープログラム製品は、プロセッサーに本開示の態様を実行させるためのコンピューター読み取り可能なプログラム命令を有するコンピューター読み取り可能な記憶媒体(単一または複数)を備えてよい。
【0058】
[63]コンピューター読み取り可能な記憶媒体としては、プログラムコードを命令の形式で保持保存できるタンジブルデバイスまたは計算システム20等の計算装置のプロセッサーによってアクセス可能なデータ構造が利用できる。コンピューター読み取り可能な記憶媒体は、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置、またはその適切な組み合わせであってよい。例として、このようなコンピューター読み取り可能な記憶媒体は、ランダムアクセスメモリー(RAM)、読み出し専用メモリー(ROM)、EEPROM、ポータブルコンパクトディスク読み出し専用メモリー(CD-ROM)、ディジタル多目的ディスク(DVD)、フラッシュメモリー、ハードディスク、ポータブルコンピューターディスケット、メモリースティック、フロッピーディスク、または機械的に符号化された装置、例えばパンチカードまたは命令が記録された溝における突起構造を備えることができる。ここで用いられるコンピューター読み取り可能な記憶媒体は、それ自体を一時的な信号、例えば、電波または他の自由に伝搬する電磁波、導波管または送信媒体を伝搬する電磁波、または電線を通じて送信される電気信号としては解釈されない。
【0059】
[64]本明細書に記述のコンピューター読み取り可能なプログラム命令は、コンピューター読み取り可能な記憶媒体から各計算装置に、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して外部コンピューターまたは外部記憶装置にダウンロードできる。当該ネットワークは、銅送信ケーブル、光学送信ファイバー、無線送信、ルーター、ファイアウォール、スイッチ、ゲートウェイ・コンピュータおよび/またはエッジサーバーを備えてよい。各計算装置におけるネットワークインターフェイスは、ネットワークからコンピューター読み取り可能プログラム命令を受信して、各計算装置内部のコンピューター読み取り可能記憶媒体における保存用のコンピューター読み取り可能プログラム命令を転送する。
【0060】
[65]本開示の操作を行うためのコンピューター読み取り可能プログラム命令は、アセンブリー命令、命令セット・アーキテクチャー(Instruction-Set-Architecture:ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語および従来の手続きプログラミング言語を含む1つ以上のプログラミング言語の組み合わせで書かれたソースコードまたはオブジェクトコードであってよい。コンピューター読み取り可能プログラム命令は、ユーザーコンピューター全体に、ユーザーコンピューターに部分的に実行され、または独立型のソフトウェアパッケージとして、ユーザーコンピューターに部分的におよびリモートコンピューターに部分的にまたはリモートコンピューターまたはサーバー全体に実行されてよい。後者の場合、リモートコンピューターはLAN、WAN等、どの種類のネットワークを介してユーザーコンピューターに接続されてよく、または外部コンピューターに(例えば、インターネットを介して)接続されてよい。いくつかの実施形態において、例えばプログラム可能論理回路、フィールドプログラマブルゲートアレイ(Field-Programmable Gate Array:FPGA)、またはプログラム可能論理列(Programmable Logic Array:PLA)等の電子回路は、本開示の態様を実行するために、コンピューター読み取り可能プログラム命令の状態情報を利用して電子回路を個別設定することによって、コンピューター読み取り可能プログラム命令を実行してよい。
【0061】
[66]様々な態様において、本開示に記述のシステムおよび方法はモジュールに着目して対応できる。本明細書で用いる「モジュール」という用語は、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、FPGA等のハードウェアによって、またはハードウェアとソフトウェアの組み合わせを用いて実現される実在の装置、構成要素、または構成要素の配列を指す。ハードウェアとソフトウェアの組み合わせとしては、マイクロプロセッサーシステムおよびマイクロプロセッサーシステムを(実行中に)専用装置に変換させるモジュール機能を実現するための1組の命令の組み合わせが挙げられる。またモジュールは、ハードウェアのみで促進された特定の機能およびハードウェアとソフトウェアの組み合わせで促進された他の機能を有する、上記2つの組み合わせとして実現されてもよい。ある実施において、モジュールの少なくとも一部または全体がコンピューターシステムのプロセッサー上で実行されてよい。したがって、各モジュールは様々な適切な構成において実現されてよく、本明細書で例示した特定の実施に限定されない。
【0062】
[67]明確化のために、本明細書において態様の通常の特徴が全て開示されているわけではない。本開示の実際の実施を開発する際、開発者の具体的な目標を達成するために実施に向けた判断を数多く下さなければならず、これら具体的な目標は、異なる実施および異なる開発者により変化することが理解されるであろう。このような開発への取り組みは複雑で時間を要する可能性はあるとはいえ、当業者にとっては技術の通常業務であり、本開示の利益が得られることが理解される。
【0063】
[68]さらに、本明細書で使用される表現や専門用語は制限ではなく記述を目的としており、そのため本明細書の表現や専門用語は、関連技術の当業者の知識と合わせて、本明細書で提示する教示および手引きに照らして当業者によって解釈されるべきであると理解しなければならない。また特に明示されない限り、本明細書または請求項におけるあらゆる用語は、非一般的または特別な意味に基づくとは意図されない。
【0064】
[69]本明細書で開示された種々の態様は、例証として本明細書で言及された既知のモジュールの、現在および将来の既知の等価物を含む。さらに、態様および応用について図示し説明してきたが、本開示の利益を受ける当業者にとって、記載よりも多くの変形例が本明細書に開示された発明の概念を逸脱しない範囲で可能であることは明らかである。