(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】検索条件に基づいてユーザを識別してターゲティングするシステムおよび方法
(51)【国際特許分類】
G06Q 30/0251 20230101AFI20240716BHJP
【FI】
G06Q30/0251
【外国語出願】
(21)【出願番号】P 2020011186
(22)【出願日】2020-01-27
【審査請求日】2022-07-15
(32)【優先日】2019-02-07
(33)【優先権主張国・地域又は機関】RU
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515348585
【氏名又は名称】エーオー カスペルスキー ラボ
【氏名又は名称原語表記】AO Kaspersky Lab
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】アンドレイ エー. エフレモフ
【審査官】佐藤 光起
(56)【参考文献】
【文献】米国特許出願公開第2013/0124298(US,A1)
【文献】米国特許出願公開第2015/0294272(US,A1)
【文献】特開2016-038822(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
1以上の労働市場の検索条件を満たすユーザを検索するためのコンピュータにより実行される方法であって、
少なくとも1つの特定された特徴であって、少なくともユーザの技術経験を示す少なくとも1つの特定された特徴を有するサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを取得することと、
前記サンプルユーザの前記特定された特徴と、当該サンプルユーザの前記コンピューティングシステムの前記構成プロファイルとを対応付ける機械学習モデルであって、指定量の技術経験を示す前記特徴と、前記構成プロファイルとを関連付けるように構成されている機械学習モデルを生成することと、
前記少なくとも1つの特定された特徴と一致するターゲットユーザの1以上の検索条件であって、少なくとも前記指定量の技術経験を含む1以上の検索条件を含む検索クエリを受信することと、
プロセッサによって、複数のターゲットユーザのコンピューティングシステムの構成プロファイルであって、少なくとも、各ユーザの技術経験を示す当該ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェアおよびデータファイルに関する情報を含む構成プロファイルにアクセスすることと、
前記プロセッサによって、前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために、前記機械学習モデルを用いて前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルを分析することであって、前記ターゲットユーザのコンピューティングシステムの1以上のソフトウェアおよびデータファイルを分析することを含む前記構成プロファイルを分析することと、
前記プロセッサによって、前記機械学習モデルによる前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別すること
を含む方法。
【請求項2】
プロセッサによって、前記ターゲットユーザの個人又は専門のソーシャルネットワーキングサイトのうち1以上を含む、当該ターゲットユーザに対応付けられた複数のオンラインコンテンツにアクセスすることと、
前記プロセッサによって、前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために、前記機械学習モデルを用いて前記ターゲットユーザが投稿および/または共有するオンラインコンテンツを分析することと、
前記プロセッサによって、前記機械学習モデルによる前記ターゲットユーザの前記オンラインコンテンツの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別すること
をさらに含む、請求項1に記載のコンピュータにより実行される方法。
【請求項3】
前記機械学習モデルは、
前記少なくとも1つの特定された特徴を有する前記サンプルユーザの前記コンピューティングシステムの前記構成プロファイルを取得することと、
前記サンプルユーザの少なくとも1つの特徴を入力値として用いて前記機械学習モデルを実行することと、
前記機械学習モデルの出力値と前記構成プロファイルとの比較に基づいて前記機械学習モデルを修正すること
を含むトレーニングプロセスによって変更される、請求項1に記載のコンピュータにより実行される方法。
【請求項4】
前記機械学習モデルは、
指定期間のプログラミング言語の技術経験を示す前記特徴と、前記構成プロファイルであって、前記プログラミング言語のソースコードファイルを示すファイル拡張子を有し、ファイル変更日が前記指定期間以後であるファイルが、前記ターゲットユーザのシステム上に保存されていることを示す前記構成プロファイルとを関連付ける、
請求項1に記載のコンピュータにより実行される方法。
【請求項5】
前記機械学習モデルは、
指定量の技術経験を示す前記特徴と、当該技術経験に対応付けられたコードリポジトリへのコミットの閾値量を示す構成プロファイルとを関連付ける、
請求項1に記載のコンピュータにより実行される方法。
【請求項6】
前記機械学習モデルは、
ソフトウェア開発ライブラリの技術経験を示す前記特徴と、前記ターゲットユーザのシステム上に前記ソフトウェア開発ライブラリがあることを示し、さらに当該ソフトウェア開発ライブラリへのアクセス頻度を示す、構成プロファイルとを関連付ける、
請求項1に記載のコンピュータにより実行される方法。
【請求項7】
1以上の労働市場の検索条件を満たすユーザを検索するシステムであって、
少なくとも1つの特定された特徴であって、少なくともユーザの技術経験を示す少なくとも1つの特定された特徴を有するサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを保存する記憶装置と、
当該記憶装置に接続されたハードウェアプロセッサと、
を含み、
前記ハードウェアプロセッサは、
前記サンプルユーザの前記特定された特徴と、当該サンプルユーザの前記コンピューティングシステムの前記構成プロファイルとを対応付ける機械学習モデルであって、指定量の技術経験を示す前記特徴と、前記構成プロファイルとを関連付けるように構成されている機械学習モデルを生成し、
前記少なくとも1つの特定された特徴と一致するターゲットユーザの1以上の検索条件であって、少なくとも前記指定量の技術経験を含む1以上の検索条件を含む検索クエリを受信し、
複数のターゲットユーザのコンピューティングシステムの構成プロファイルであって、少なくとも、各ユーザの技術経験を示す当該ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェアおよびデータファイルに関する情報を含む構成プロファイルにアクセスし、
前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために、前記機械学習モデルを用いて前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルを分析し、前記ターゲットユーザのコンピューティングシステムの1以上のソフトウェアおよびデータファイルを分析するようにさらに構成されている前記構成プロファイルを分析するように構成され、
前記機械学習モデルによる前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別する、
システム。
【請求項8】
前記ハードウェアプロセッサは、
前記ターゲットユーザの個人又は専門のソーシャルネットワーキングサイトのうち1以上を含む、当該ターゲットユーザに対応付けられた複数のオンラインコンテンツにアクセスし、
前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために、前記機械学習モデルを用いて前記ターゲットユーザが投稿および/または共有するオンラインコンテンツを分析し、
前記機械学習モデルによる前記ターゲットユーザの前記オンラインコンテンツの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別する、
請求項7に記載のシステム。
【請求項9】
前記機械学習モデルは、
前記少なくとも1つの特定された特徴を有する前記サンプルユーザの前記コンピューティングシステムの前記構成プロファイルを取得することと、
前記サンプルユーザの少なくとも1つの特徴を入力値として用いて前記機械学習モデルを実行することと、
前記機械学習モデルの出力値と前記構成プロファイルとの比較に基づいて前記機械学習モデルを修正すること
を含むトレーニングプロセスによって変更される、請求項7に記載のシステム。
【請求項10】
前記機械学習モデルは、
指定期間のプログラミング言語の技術経験を示す前記特徴と、前記構成プロファイルであって、前記プログラミング言語のソースコードファイルを示すファイル拡張子を有し、ファイル変更日が前記指定期間以後であるファイルが、前記ターゲットユーザのシステム上に保存されていることを示す前記構成プロファイルとを関連付ける、
請求項7に記載のシステム。
【請求項11】
前記機械学習モデルは、
指定量の技術経験を示す前記特徴と、当該技術経験に対応付けられたコードリポジトリへのコミットの閾値量を示す構成プロファイルとを関連付ける、
請求項7に記載のシステム。
【請求項12】
前記機械学習モデルは、
ソフトウェア開発ライブラリの技術経験を示す前記特徴と、前記ターゲットユーザのシステム上に前記ソフトウェア開発ライブラリがあることを示し、さらに当該ソフトウェア開発ライブラリへのアクセス頻度を示す、構成プロファイルとを関連付ける、
請求項7に記載のシステム。
【請求項13】
1以上の労働市場の検索条件を満たすユーザを検索するコンピュータ実行可能命令を含む非一時的コンピュータ可読媒体であって、前記命令は、
少なくとも1つの特定された特徴であって、少なくともユーザの技術経験を示す少なくとも1つの特定された特徴を有するサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを取得し、
前記サンプルユーザの前記特定された特徴と、当該サンプルユーザの前記コンピューティングシステムの前記構成プロファイルとを対応付ける機械学習モデルであって、指定量の技術経験を示す前記特徴と、前記構成プロファイルとを関連付けるように構成されている機械学習モデルを生成し、
前記少なくとも1つの特定された特徴と一致するターゲットユーザの1以上の検索条件であって、少なくとも前記指定量の技術経験を含む1以上の検索条件を含む検索クエリを受信し、
プロセッサによって、複数のターゲットユーザのコンピューティングシステムの構成プロファイルであって、少なくとも、各ユーザの技術経験を示す当該ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェアおよびデータファイルに関する情報を含む構成プロファイルにアクセスし、
前記プロセッサによって、前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために
、前記機械学習モデルを用いて前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルを分析することであって、前記ターゲットユーザのコンピューティングシステムの1以上のソフトウェアおよびデータファイルを分析することを含む前記構成プロファイルを分析することを行い、
前記プロセッサによって、前記機械学習モデルによる前記ターゲットユーザの前記コンピューティングシステムの前記構成プロファイルの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別する
ための命令を含む、媒体。
【請求項14】
前記ターゲットユーザの個人又は専門のソーシャルネットワーキングサイトのうち1以上を含む、当該ターゲットユーザに対応付けられた複数のオンラインコンテンツにアクセスし、
前記検索クエリの前記1以上の検索条件と一致する1以上のターゲットユーザを識別するために、前記機械学習モデルを用いて前記ターゲットユーザが投稿および/または共有するオンラインコンテンツを分析し、
前記機械学習モデルによる前記ターゲットユーザの前記オンラインコンテンツの分析に基づいて、前記検索クエリ内で指定された前記少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別する
ための命令をさらに含む、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記機械学習モデルは、
前記少なくとも1つの特定された特徴を有する前記サンプルユーザの前記コンピューティングシステムの前記構成プロファイルを取得することと、
前記サンプルユーザの少なくとも1つの特徴を入力値として用いて前記機械学習モデルを実行することと、
前記機械学習モデルの出力値と前記構成プロファイルとの比較に基づいて前記機械学習モデルを修正すること
を含むトレーニングプロセスによって変更される、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記機械学習モデルは、
指定期間のプログラミング言語の技術経験を示す前記特徴と、前記構成プロファイルであって、前記プログラミング言語のソースコードファイルを示すファイル拡張子を有し、ファイル変更日が前記指定期間以後であるファイルが、前記ターゲットユーザのシステム上に保存されていることを示す前記構成プロファイルとを関連付ける、
請求項13に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記機械学習モデルは、
指定量の技術経験を示す前記特徴と、当該技術経験に対応付けられたコードリポジトリへのコミットの閾値量を示す構成プロファイルとを関連付ける、
請求項13に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記機械学習モデルは、
ソフトウェア開発ライブラリの技術経験を示す前記特徴と、前記ターゲットユーザのシステム上に前記ソフトウェア開発ライブラリがあることを示し、さらに当該ソフトウェア開発ライブラリへのアクセス頻度を示す、構成プロファイルとを関連付ける、
請求項13に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータシステムおよびネットワークを介し、検索条件に基づいてユーザを識別してターゲティングするための方法およびシステムに関する。
【背景技術】
【0002】
企業や起業家は、自社の製品を宣伝するために広告サービスを利用する。広告とは、非パーソナライズされていて通常は有料の説得性のある広告主の商品およびサービスまたはアイデアに関する情報の、様々な媒体を介した配信である。インターネットの発展に伴い広告もインターネット上に進出している。最新のデータによると、広告の20%以上がインターネット上で行われている。
【0003】
広告は、通常、個人向けにカスタマイズされておらず、広告のターゲットを不特定多数の人々にしているため、有効性が実際に得られ得るものよりも低くなっている。このため、生産者は、ユーザ群全体から個々のグループを選び出し、グループごとに計算された自社の広告を各グループに提示するよう努めている。これは、ターゲティング広告として知られている。ターゲティング広告は、ウェブページのコンテンツではなく、ユーザの過去の行動または調査データに基づいて特定された特定のユーザグループに紐づけられた広告ステートメント(プレゼンテーション)である。適応ランタイム広告に対する既知のアプローチでは、検索クエリ、プロファイル、ユーザのネットワークアプリケーションからのデータなどの分析に基づいて広告メッセージを示す。しかし、広告は、実際のユーザの需要ではなく、その需要可能性に適応させたものである。このため、広告ステートメントの種類は、製品又はサービスの消費者の数よりも著しく少ない。
【0004】
インターネットが発展していく中で、ユーザに対する広告配信方法自体も変化した。ユーザは、ネットサーフィン中だけでなく、ネットワークや情報ボードにアクセス可能なアプリケーションにおいて、通勤途中や帰宅途中にも広告に遭遇する。広告には、その広告されている製品を必要としないユーザには煩わしいものであるために、ユーザが広告を伴うアプリケーションおよびウェブリソースを回避しようとする、という重大な欠点がある。ユーザが実際に製品を必要とする場合でも、広告があまりにも侵襲的だと、ユーザは競合他社製品にリダイレクトするかもしれない。
【0005】
このように既存の広告は効率が悪いため、ユーザに関する情報の収集および送信ならびにプロファイリングが行われているが、こうした行為は法的リスクを伴う可能性がある。広告はユーザを煩わせるため、ユーザは広告を伴うアプリケーションを避けようとするが、これは広告を通じて収益を得るアプリケーションにとって深刻な問題である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
収集された、コンピューティングシステム(たとえば、パーソナルコンピュータ、ラップトップ、タブレット、携帯電話、ゲーム機、スマートテレビ、スマート家電など)の構成プロファイル(たとえば、ハードウェア、ソフトウェア、およびデータファイル)およびターゲットユーザの様々な公共オンラインコンテンツ(たとえば、ソーシャルニュースおよびメディア、ならびに個人および専門のネットワークウェブサイト)を、ターゲットユーザのコンピューティングシステムの構成プロファイルおよび/またはターゲットユーザが生成又は共有するオンラインコンテンツの分析に基づいてターゲットユーザが検索条件を満たすか否かを判定するようトレーニングさせた機械学習モデルに適用することによって、特定の検索条件(すなわち、職務条件、ダイレクトマーケティングターゲットなど)を満たすターゲットユーザを識別するためのシステムおよび方法を開示する。
【0007】
本開示の一例示的態様では、1以上の検索条件を満たすユーザを検索するコンピュータで実行される方法を提供する。当該方法は、少なくとも1つの特定された特徴を有するサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを取得することと、サンプルユーザの特定された特徴と、当該サンプルユーザのコンピューティングシステムの構成プロファイルとを対応付ける機械学習モデルを生成することを含む。当該方法はさらに、少なくとも1つの特定された特徴と一致するターゲットユーザの1以上の検索条件を含む検索クエリを受信することと、プロセッサによって、複数のターゲットユーザのコンピューティングシステムの構成プロファイルにアクセスすることを含む。プロファイルは、少なくとも、当該ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェアおよびデータファイルに関する情報を含む。当該方法はさらに、当該ターゲットユーザのコンピューティングシステムの構成プロファイルを機械学習モデルによって分析して、検索クエリの1以上の検索条件と一致する1以上のターゲットユーザを識別することと、機械学習モデルによる当該ターゲットユーザのコンピューティングシステムの構成プロファイルの分析に基づいて、検索クエリ内で指定された少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別することを含む。
【0008】
別の態様では、当該方法は、ターゲットユーザの個人又は専門のソーシャルネットワーキングサイトのうち1以上を含む、当該ターゲットユーザに対応付けられた複数のオンラインコンテンツにアクセスすることと、ターゲットユーザが投稿および/または共有するオンラインコンテンツを機械学習モデルによって分析して、検索クエリの1以上の検索条件と一致する1以上のターゲットユーザを識別することと、プロセッサによって、機械学習モデルによる当該ターゲットユーザのオンラインコンテンツの分析に基づいて、検索クエリ内で指定された少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別すること、をさらに含む。
【0009】
別の態様では、機械学習モデルによる当該ターゲットユーザのコンピューティングシステムの構成プロファイルの分析に基づいて検索クエリ内で指定された少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別するという処理は、職務経歴書内のユーザの技能を明示的に公開することなく行われる。
【0010】
別の態様では、機械学習モデルは、少なくとも1つの特定された特徴を有するサンプルユーザのコンピューティングシステムの構成プロファイルを取得することと、サンプルユーザの少なくとも1つの特徴を入力値として用いて機械学習モデルを実行することと、機械学習モデルの出力値と構成プロファイルとの比較に基づいて機械学習モデルを修正することを含むトレーニングプロセスによって変更される。
【0011】
別の態様では、機械学習モデルは、指定期間のプログラミング言語経験を示す特徴と、構成プロファイルであって、プログラミング言語のソースコードファイルを示すファイル拡張子を有し、ファイル変更日が指定期間以後であるファイルが、ユーザのシステム上に保存されていることを示す構成プロファイルとを関連付けるよう構成されている。
【0012】
別の態様では、機械学習モデルは、指定量の技術経験を示す特徴と、当該技術経験に対応付けられたコードリポジトリへのコミットの閾値量を示す構成プロファイルとを関連付けるよう構成されている。
【0013】
別の態様では、機械学習モデルは、ソフトウェア開発ライブラリの経験を示す特徴と、ターゲットユーザのシステム上にソフトウェア開発ライブラリがあることを示し、さらに当該ソフトウェア開発ライブラリへのアクセス頻度を示す、構成プロファイルとを関連付けるよう構成されている。
【0014】
本開示の別の例示的態様では、1以上の検索条件を満たすユーザを検索するシステムを提供する。当該システムは、少なくとも1つの特定された特徴を有するサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを保存する記憶装置と、当該記憶装置に接続されたハードウェアプロセッサとを含む。ハードウェアプロセッサは、サンプルユーザの特定された特徴と当該サンプルユーザのコンピューティングシステムの構成プロファイルとを対応付ける機械学習モデルを生成し、少なくとも1つの特定された特徴と一致するターゲットユーザの1以上の検索条件を含む検索クエリを受信し、複数のターゲットユーザのコンピューティングシステムの構成プロファイルであって、少なくとも、当該ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェアおよびデータファイルに関する情報を含む構成プロファイルにアクセスするよう構成されている。プロセッサはさらに、当該ターゲットユーザのコンピューティングシステムの構成プロファイルを機械学習モデルによって分析して、検索クエリの1以上の検索条件と一致する1以上のターゲットユーザを識別し、機械学習モデルによる当該ターゲットユーザのコンピューティングシステムの構成プロファイルの分析に基づいて、検索クエリ内で指定された少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別するよう構成されている。
【0015】
別の例示的態様では、本明細書で開示される方法のいずれかを実行するためのコンピュータ実行可能命令を含む命令を備えたコンピュータ可読媒体を提供する。
【0016】
上記の例示的な態様の簡略化された概略は、本開示の基本的な理解に役立つ。この概要は、すべての企図された態様の包括的な概観ではなく、すべての態様の重要なまたは重大な要素を識別することも、本開示のいずれかまたはすべての態様の範囲を画することも意図していない。その唯一の目的は、以下の本開示のより詳細な説明の前置きとして、1つまたは複数の態様を単純化された形態で提示することである。前述のことを達成するために、本開示の1つまたは複数の態様は、特許請求の範囲に記載され例示的に指摘された特徴を含む。
【図面の簡単な説明】
【0017】
本明細書に組み込まれ、その一部を構成する添付の図面は、本開示の1つまたは複数の例示的な態様を示し、詳細な説明とともに、それらの原理および実装を説明するものである。
【0018】
【
図1】
図1は、観察可能な動的システムの変形例を示す図である。
【
図2A】
図2Aは、一態様に係る、ユーザとの予防的インタラクションのシステムを示す図である。
【
図2B】
図2Bは、ユーザとの予防的インタラクションのシステムと観察可能な動的システムとの間の関係を示す図である。
【
図3A】
図3Aは、一態様に係る、異常があるシステムと互換性のあるモジュールを決定する方法を示す図である。
【
図3B】
図3Bは、一態様に係る、互換性のあるモジュールの検出方法を示す図である。
【
図4】
図4は、本開示の例示的な実施形態を示す図である。
【
図5】
図5は、一態様に係る、条件を満たすユーザを見つける方法を示す図である。
【
図6A】
図6Aは、一態様に係る、ユーザを見つけるためのモデルを構築する方法を示す図である。
【
図6B】
図6Bは、一態様に係る、ユーザを見つけるためのモデルを構築する方法を示す図である。
【
図7】
図7は、一例示的態様に係る、本開示のシステムおよび方法が実行されるコンピュータシステムのブロック図である。
【0019】
本開示の技術的成果は、互換性のあるモジュールを検出する方法の実行結果として、システムと互換性のあるサードパーティモジュールを識別することであり、システムパラメータはシステムの機能を実現する要素から取得され、取得されたパラメータはシステムの状態モデルを問い合わせるために使用される(特定の例では、問い合わせ中に、収集されたパラメータとシステムの想定される状態との対応関係が確立される)。パラメータはリアルタイムで取得することができる。または、パラメータはシステムの要素のうちの1つ(基本要素)にインストールされたクライアントによって取得される。システムの要素は、ソフトウェア、ハードウェア、ハードウェア/ソフトウェア、および有機体であってもよい。1つの特定の例における基本要素は、システムのコンテキストにおいてIoTデバイスとインタラクトするパーソナルコンピュータデバイスであってもよい。1つの特定の例では、パラメータが取得されているシステムは、動的であり、無線ネットワークによって統合された要素から構成されている。基本要素に接続される要素の数は、特定の時点および基本要素の空間内の位置によって決定され、その時の無線ネットワークへのアクセスを提供する無線局のカバレッジのゾーン半径に依存する。状態モデルを問い合わせることによって、システムおよびその要素における状態およびプロセスの要件間の対応関係が評価される。モデルは、以下を検出するために一連の規則を制定することができる:
・要素のパラメータの関数である、要素の異常状態;
・システムの要素の異常状態を決定するパラメータの関数である、システムの異常状態;
・要素の状態の時間関数である、要素の異常なプロセス;
・システムの状態の時間関数である、システムの異常なプロセス。
【0020】
別の例では、システムの状態モデルは、使用および信頼性の変形のモデルを集約したものである。
【0021】
モデルの問い合わせの結果として、異常が検出され、異常の関数であるシステムパラメータも識別され得る。異常は少なくとも以下のものであってもよい:
・要求される状態から逸脱し、要素のパラメータの関数である要素の状態;
・要求される状態から逸脱し、要素の状態の関数であるシステムの状態;
・要求されるプロセスから逸脱し、要素の状態の時間関数である要素のプロセス;
・要求されるプロセスから逸脱し、システムの状態の時間関数であるシステムのプロセス;
・システムがインタラクトしている環境の状態であって、要求される状態から逸脱し、システムのパラメータによって記述可能な状態;
・システムがインタラクトしている環境のプロセスであり、要求されるプロセスから逸脱し、システムのパラメータによって記述可能なプロセス。
【0022】
異常は例えば、そのパラメータが異常を定義するシステムのクラスまたは要素によって追加的に記述されてもよい。検出された異常は機能の異常に関連してもよい。ここでいう機能の異常とは、所定の機能を実行するシステムまたはシステムの要素の能力が低下または喪失することである。
【0023】
異常を検出した後、検出された異常に関する情報を使用して複数の回復方法のモデルが検査され、モデル検査の結果として1つの回復方法が決定される。特定の回復方法は、システムおよび要素が要件を満たすことを保証する。特定の場合、モデルの検査は、異常と回復方法との対応関係の決定を含む。別の場合では、システムの回復はシステム設計要件の遵守を保証する。回復は、異常な状態またはプロセスを安定化させることによっても達成することができる。動作中に異常が検出された場合、モデル検査の結果として1つの方法が決定される。この方法は、実施されると、異常発生時に必要なシステム機能が回復することを保証する。検出された方法は、実施されると、要素またはシステムを、異常な状態またはプロセスから、要求される状態またはプロセスへ移行すること(異常の排除)により回復を実行する。特定の場合、要求される状態またはプロセスは、FURPS+(すなわち、「FURPS Plus」)の分類に従ったシステムの要件に準拠する。少なくとも2つの特定の方法がユーザプロファイルに対応する方法の要素を選択した場合、回復方法モデルは、記述モデルを参照することができる。
【0024】
回復方法を決定した後、この回復方法を実施することができるサードパーティのシステム互換ツールが定義される。このツールは、回復方法がテーブルの名称であるツールデータベースから選択することができる。これ以降の選択のための回復方法と回復モジュールとの対応付けは、モジュールの仕様を作成するときに実行することができ、対応付け自体は、異常に相当する特性があるファシリティに関する情報をテーブルに入力することによって確立される。少なくとも2つのモジュールが決定された場合、ユーザプロファイル、モジュールの製造者の評判、またはモジュールの供給者の評判に応じてモジュールを選択する。
【0025】
本開示は、広告のランダムな性質を放棄し、課題および課題解決のための最も効果的な方法として、広告メッセージをユーザ通知に変換する。本開示の態様により、不確定性および蓋然性を回避することができる。このため、本提案は広告というよりも、ユーザ通知予防システムであり、とりわけ、情報提供に費やされるリソースを低減し、情報を実際に必要とする人々のために実行する。広告はユーザの好みや見込まれるニーズを決定し、ユーザが関心を持ち、必要としそうな製品またはサービスに関する情報をユーザに送信する。本開示は、ユーザの環境を監視し、実際の問題(または今にも発生しそうな問題)および実際のニーズを発見し、これに関する情報を提供し、特定の製品またはサービスの取得を含む、実施できる可能な解決策を提案する。
【0026】
平均的なユーザはデバイスに関する多くの技術的な問題を予測することができない。このようなユーザは、発生している又は発生した問題を解決するために製品の特性を評価できる程の十分な技術的知識がないが、製造業者はこのような情報を持っている。しかし、製造業者は、製品を必要とするユーザを把握していないため、確率的・統計的手法で市場調査を行って調査モデルを構築しなければならない。本開示は、デバイスおよびその環境(モノのインターネット(IoT)を含む)における問題を検出することができ、その問題に対する有効な予防的解決策を見つけることができる。このシステムは、追加モジュールのインストールを必要とせず、例えばアンチウィルスソフトウェアなどの実際のクライアントによって実現される。
【0027】
本解決策は少なくとも、エレクトロニクス、情報技術(IT)プロバイダ、ITサービス、医療製品、ヘルスケア・プロバイダ、ヘルスケア製品およびサービスプロモーション、労働市場製品およびサービス、修理および建設の材料およびサービス、清掃サービス、ならびに食料品を販売促進するために使用することができる。
【0028】
「システム」とは、互いに関係し接続された要素の集合であり、明確な全体または一体を形成する。システムは、設計上インタラクトする要素のセットであり、システムの要素はサブシステムとして知られる別のシステムであってもよい。システムは制御するシステムであっても制御されるシステムであってもよく、ハードウェア(例えばデバイス)、ソフトウェア(例えばプログラム)、および人間とのインタラクション(つまり人間はシステムの要素でありうる)または他の生物学的有機体とのインタラクションを含んでもよい。これらの要素は、全体としての機能的タスクを実行するように統合される。設計上、(例えば、FURPS+分類ごとに)システムに要件が課される:
・機能性または機能要件:特性、性能、セキュリティ。これらは、ユースケース図を構築するために使用される主要な要件である。
・ユーザビリティまたは利便性(UX)に関する要件:ヒューマンファクター、美的外観、一貫性、文書化。
・信頼性またはディペンダビリティに関する要件:起こり得るクラッシュの頻度、故障に対する耐性、回復可能性、安定性の予測可能性。
・性能または生産性に関する要件:応答時間、資源使用、有効性、パワー、スケーラビリティ。
・サポート可能性またはサポートに関する要件:サポートの可能性、修復可能性、柔軟性、変更可能性、モジュール性、拡張可能性、ローカライゼーションの可能性。
【0029】
本開示の態様は、労働市場で使用することができる。人材採用活動(すなわち、人材マネジメント)にかかる最も大きなコストの一つは、ユーザの職務経歴書又は履歴書を検索し、その職務経歴書が欠員や求人の特定の条件(たとえば、スキル、資格、学歴、経験)を満たすか否かの評価をするためにかかるコストである。職務経歴書に記入し、体裁を整え、アレンジするという規格がないため、こうした人材採用活動の態様は実行に多くの時間とリソースが費やされる。たとえば、求職者が職務経歴書を全部記入していないおよび/または重要事項を記入していないということが時折あるため、該当するスペシャリストが見過ごされてしまったり、記入漏れに対処するための採用担当者側の人件費がさらにかかってしまったりする。本明細書で提案するシステムおよび方法は、特定の条件が職務経歴書内で示されなくても評価を行うことを可能にする。本開示に記載する態様は、特定の条件が個人の職務経歴書(すなわち、ユーザが生成したデータ)に明示的に公開されていることを要することなく、システムで収集されたデータを用いて個人がその条件を満たしているか評価を行うことができる。本技術は、求職者のデバイスから収集されたデータに基づいて予めトレーニングさせたモデルによってスペシャリストの分類を行う。
【0030】
設計に従って実現されるシステムは、その機能中に設計要件を満たさなければならない。要件の特定の例は、システム/要素が所与の時間に提供すべき性能(例えば、FPSに対する要件、または少なくとも10人のユーザから毎秒100個のリクエスト等)である。
【0031】
「システムの要素の状態」は、所与の時間におけるシステムの要素の属性セットであり、要素のパラメータの関数である。
【0032】
「システムの状態」は、所与の時間におけるシステムの属性セットであり、システムのパラメータの関数である。これはまた、所与の時間におけるシステムの要素の状態の集合として定義される。
【0033】
「プロセス」は、所定の時間間隔におけるシステムの要素の属性の変化、または、システム全体の属性の変化であり、状態の時間関数である。
【0034】
(要素、システム、またはプロセスの)「パラメータ」は、プロセス、現象、(デバイス、ソフトウェア、有機物を含む)要素、またはシステムの特定の属性を特徴付ける量である。定量的には、全ての所与のシステムは、2つのクラスに分類可能な定量の集合によって記述できる。2つのクラスとは、すなわち、システムの一次属性を記述する、システムの調査のための初期データであるパラメータ(п)と、システムの二次属性を記述する、システムのパラメータの関数として決定される特性(X)と、である:X=f(п)。システムのパラメータは、システムの構造的及び機能的構成を記述するシステムの内部パラメータと、システムと(システムに関する)環境とのインタラクションを記述するシステムの外部パラメータとに細分される。内部パラメータは、システムの要素の構成およびその実際の構造を記述する構造パラメータと、システムの機能構成(機能プロセス)を記述する機能パラメータと、を含む。外部パラメータには、例えば、システムのリソースの使用頻度および使用量を示す作業負荷パラメータが含まれる。一般的な場合、これらが、システムとその環境とのインタラクションのパラメータである。
【0035】
システムの特性は、システム全体としての機能の有効性を示すグローバル特性と、システムの個々の要素の機能の質を記述するローカル特性とに分けられる。システムのグローバル特性は、システムの所望の目的を達成する速度を示すパワー特性または生産性特性と、システムの機能の時間的側面を記述する時間特性と、システムの機能の信頼性を定義する信頼性特性と、システムの使用の経済的実現可能性を示すコスト指標による経済特性とを含むことができる。
【0036】
上述したことから、実際にはパラメータと特性とが区別されることは明らかである。特性は、少なくとも1つのパラメータの関数である。本出願では、パラメータおよび特性の双方に「パラメータ」という用語を使用しこれらを区別しないものとする。
【0037】
「異常」とは、要件からの逸脱である。要件は例えば、ハードウェア/ソフトウェア複合体の設計要件、または公衆衛生要件とすることができる。要件からの逸脱は、状態またはプロセスであってもよい。したがって、異常な状態とプロセスとを区別する。異常なプロセスの特定の例は漸進的な故障であり、一方、異常な状態は、突然の故障またはクラッシュである。異常は、少なくとも1つのパラメータの要件からの逸脱によって引き起こされてもよく、そのパラメータはまた、異常または異常パラメータである。
【0038】
「モデル」とは、特定の形式(例えば、数学的、物理的、記号的、図像的、または記述的な形式)での現実の抽象表現であり、その現実の特定の態様を表すように構成され、検討中である質問に対する答えを生成することができる。モデルは、状態、プロセス、異常(異常な状態、プロセス、およびパラメータ)、当業者(ユーザ)、および製品(デバイス、ソフトウェア、サービス)を記述することができる。この形式は、テンプレート、従来の式、規則(入力の出力へのマッピング)、ニューラルネット、決定木などを使用して表現することができる。
【0039】
「動的システム」とは、その要素の数が一定ではなく、基準点(基本要素)としてとらえられる空間内の要素の位置、および、時分によって決定されるシステムである。例えば、動的システムは、無線ネットワークにより統合される(ハードウェア/ソフトウェアの形態で実現される)要素から構成され、基本要素に接続される要素の数は、時分と空間内の基本要素の位置とによって決定され、その時の無線ネットワークへのアクセスを提供する無線局のカバレッジのゾーン半径に依存する。動的システム100の一例を示す
図1については以下で説明する。
【0040】
図2Aは、ユーザとの予防的インタラクションのシステム200を示す図である。システム200は、クライアント側201、サーバ側202、および第3の側203を含む。クライアント側には、観察対象であるシステム100が配置される。システム100は、システムの少なくとも1つの要素210と、インストールされたクライアント205(基本要素204)とを含む。クライアント205は、システムのパラメータを収集し、サーバ側とインタラクトするように構成されてもよい。第3の側(第三者)には、モデル開発、製品説明/仕様等のためのソフトウェア/ハードウェアが配置される。サーバ側は、クライアント205とインタラクトし、第3の側から開発されたモデルを取得する。サーバ側では、取得したモデルのテストとそのランク付け、クライアントに関する統計の収集、構成プロファイルの生成とクライアントのためのその更新、および、モデルの開発のためのインフラストラクチャの提供が行われる。
【0041】
クライアント205は、収集モジュール206と、分析モジュール207と、データベース208とを含む。クライアントは、インストールモジュール209を含んでもよい。収集モジュール206は、システム100のパラメータ、特定の一例ではテレメトリを収集するように構成することができる。分析モジュール207は、パラメータを状態およびプロセスに変換し、パラメータ、状態、およびプロセスを分析して異常を発見する。分析モジュール207による分析は、状態モデルなどのモデルを問い合わせるモジュールによって行われる。このモジュール207はまた、異常を分析して回復方法を決定し、回復方法が実行されることを可能にするモジュールを発見し、そのためにモデルも問い合わせられる。分析モジュール207は、任意に、サーバ側に配置することができる。インストールモジュール209は、回復方法を実現するソフトウェアを実装するように構成されてもよい。データベース208はパラメータ及び状態を格納し、プロセスは時間に伴う状態の変化であるため、要素及びシステムにおけるプロセスに関する情報を分析モジュール207が取得することを可能にする。
【0042】
第3の側では、開発モジュールは製品(サービスを含む)の説明を作成し、モデルを生成し、結果をサーバ側に送信する。開発モジュールは、サーバ側およびクライアント側のモジュールによってサポートされるフォーマットで人間によって容易に理解される製品の記述を形式化し、形式化された記述に基づくモデルを含むモデルを生成し、結果をサーバ側に送信するためのフレームワーク212および他のソフトウェアを含むことができる。
【0043】
サーバ側は、クライアント側との通信のためのインタフェース214およびサードパーティ開発モジュールとの通信のためのインタフェース216を提供する。開発インフラストラクチャ218は、サーバ側で実現され、少なくとも、ランキングモジュール220、テストモジュール222、および統計収集モジュール224を含む。
【0044】
ランキングモジュール220は、特定のクライアントに送信され、分析モジュール207によって問い合わせられるモデルを決定するように構成されてもよい。テストモジュール222は、開発モジュールから取得された新しいモデルをチェックするように構成されてもよい。モデルはモデルデータベース225に保持される。統計収集モジュール224は、収集されたパラメータ、問い合わせられたモデル、およびモデルの問い合わせの結果に従って、クライアントからデータを受信し、統計データベース226に保持される統計を生成する。累積された統計は、新しいモデルを開発したり、既存のモデルをデバッグしたりするために使用され、インタフェースを介して開発者がアクセスできる。
【0045】
図1は、1つまたは複数のセンサ108によって観察される動的システム100の変形例を示す図であり、その中核は、クライアントがインストールされる基本要素(BE)104(
図2Aの基本要素と同様)である。基本要素104は、ノートブック、スマートウォッチ、スマートフォン、パーソナルコンピュータ等であってもよい。基本要素104は、この例ではアクセスポイント106を介して他の要素にリンクされている。したがって、システムの要素の数は、そのカバレッジエリア内で基本要素が見つけられるアクセスポイント106の動作半径によって決定される。所与のシステム100の場合、特定の例では人間は、制御/診断/監視の主体又は客体としてシステムの要素であると考えることができる。人間が制御/診断/監視(例えば、心電図の記録)の客体であると考えられる場合、システムの他の要素は制御の主体である。人間がシステムの要素である場合の異常の概念は、医療要件の場面においてプロセスが正常状態から逸脱することとして定義することができる。
【0046】
別の場合には、人間及び環境の双方が制御/診断/監視の客体であると考えられるが、この場合これらはシステム100に対して外部にある。所与の例では、システムの要素は示された分類に従って外部にあるパラメータを収集し、これらのパラメータに基づいて、制御/診断/監視の客体の状態およびプロセスが決定され、一方、回復の方法は、人間または環境のいずれかであり得る制御/診断/監視の客体に関して決定される。
【0047】
システム200と観察可能な動的システム100との関係を
図2Bで説明する。動的システム100は、システム200のサブシステムであってもよく、システム200と要素が交差していてもよい。例えば、基本要素104は、(
図2Bに示すように)システム200の全体及びシステム100の一部であってもよい。
【0048】
システム200は、異常を有するシステムのための互換性のあるモジュールを選択する方法を実施するように構成されてもよい(
図3A参照)。この場合、クライアント205の収集モジュール206はステップ310において、このシステム100の指定された機能を実現する要素からシステム100のパラメータを収集する。収集はまたリアルタイムで行われてもよい。収集されたパラメータはクライアントデータベースに保存され、ステップ320において、収集されたパラメータはシステムの状態モデルの問い合わせのために、クライアント205の分析モジュール207によって使用される。分析モジュール207は状態モデルを問い合わせる際に、システム100およびその要素の状態の、システムの要件に対する適合性を評価する。状態モデルは、プロセスおよび状態がその要件を満たす場合は正常とし、例えば故障状態または故障プロセスを記述する場合は異常として記述することができる。状態モデルは、クライアントデータベース208に保持することができる。別の特定の例では、状態モデルはサーバ側によってオンデマンドでクライアントの分析モジュールに提示されてもよい。状態を記述するモデルは回帰、分類、カテゴリ化、および他のモデルなど、可能な限り多様であってもよい。状態を記述するモデルは、意思決定ツリー、ニューラルネット、またはIF(or/and/xor)THEN型の論理規則などに基づくことができる。
【0049】
ステップ330において、モデルの問い合わせの結果として、システムにおいて異常が検出される。異常は少なくとも、要求される状態から逸脱し、要素のパラメータの関数である要素の状態、要求される状態から逸脱し、要素の状態の関数であるシステムの状態、要求されるプロセスから逸脱し、要素の状態の時間関数である要素のプロセス、要求されるプロセスから逸脱し、システムの状態の時間関数であるシステムのプロセス、システムがインタラクトする環境であって、要求される状態から逸脱し、システムのパラメータによって記述可能である環境の状態、およびシステムがインタラクトする環境であって、要求されるプロセスから逸脱し、システムのパラメータによって記述可能である環境のプロセスであってもよい。
【0050】
異常を発見した後、発見された異常に関する情報は、さらなる処理のために形式化され、異常のクラス(および/または名称)と、異常が関数であるシステムパラメータとによって特徴付けることができる。さらに、パラメータが異常を決定するシステムの要素は、特性として示されてもよい。異常のクラスおよび名称は、どの要件から逸脱しているかに依存する。異常の例は、ルータの弱い信号、要素(CPU、HDD、SSD、RAMなど)の性能の劣化、不十分なRAM空間、データ損失/破損などであり得る。異常が漸進的な障害を伴う場合、異常は、特定された実際のデータ損失またはメモリ量不足ではなく、それらの発生が差し迫っていることをいう。特定の例では、異常には(FURPS+分類における)機能クラスがあり、例えば、システムの機能を含む。機能異常は、システムの設計または目的によって定められる機能を実行するシステムまたはシステムの要素の性能の低下または損失である。
【0051】
ステップ340で異常を検出し、異常に関する情報を使用して、回復方法のモデルが問い合わせられる。状態モデルと同様に、回復方法の異なるモデルが存在し得る。特定の例では、記述モデルが使用される。さらに、モデルの問い合わせの結果として、ステップ350において、実施されたときに、例えば、システムの要求された機能の回復を保証するなど、システムおよび要素の要件への適合性を保証する回復方法が決定される。このようにして発見された回復方法は、異常な状態またはプロセスを安定化させる(異常の進行を止める、これは漸進的な故障に有用である)とともに、異常な状態またはプロセスから要求される状態またはプロセスに要素またはシステムを切り替える(異常の排除)ことによってシステムの回復をもたらすことができる。要求される状態またはプロセスは、FURPS+分類によるシステムの要件に適合する。回復方法が2つ以上検出される場合があるが、その場合は、性別、年齢、場所、マーケティングクラス、購買力(支払能力)、ITリテラシーのレベルなどの様々な特性を含み得る基本要素のユーザプロファイルに基づいて最終的な方法が選択される。
【0052】
ステップ360では、サードパーティ互換モジュールが選択され(一例では、本方法はモジュールではなく製品を選択することができる。)、回復方法のモデルの問い合わせの結果として見出される回復方法の機能性を実現する。このために、モデルおよびデータベースの両方を使用することができ、回復方法の名称は、回復方法を実現することが保証されるモジュールに対応する。回復方法に関しては、利用可能な回復モジュールが複数あってもよい。その場合、モジュールはユーザのプロファイルに基づいて選択され、さらに、回復モジュールの製造者(ベンダ)の評判が考慮されてもよい。選択されたモジュールは、システム内の様々な方法によって実施することができ、方法の一つとして、クライアントのインストールモジュールによるソフトウェアのインストール方法がある。適合性は、システムまたはモジュールの仕様の分析に基づいて決定される。
【0053】
特定の例では、回復方法は決定されず(ステップ340および350をスキップする)、モジュールは異常に関する情報に基づいて決定される。この場合、ステップ330を実行した後、ステップ360にジャンプする。
【0054】
上述の方法は、システム200によって他の方法で実行されてもよい(
図3B参照)。ステップ310からステップ330までは上述の方法を繰り返すが、その後の処理は変化する。異常が関数である少なくとも要素またはシステムのパラメータによって特徴付けられる異常を検出した後、ステップ360aにおいて、利用可能なサードパーティのシステムまたはモジュールのデータベースもしくは少なくとも1つのモジュールに関する情報が取得される。次に、ステップ320aにおいて、再度、システムの状態モデルが、ステップ310において収集されたパラメータセットを使用して問い合わせられるが、このパラメータセット中、異常が関数であるシステムのパラメータは、利用可能なサードパーティモジュールのデータベースのモジュールと同等のパラメータによって置き換えられる。ステップ330aにおける状態モデルの問い合わせに基づいて、サードパーティモジュールのデータベースから少なくとも1つのモジュールを見出す。このモジュールは、システムと互換性があり、そのモジュールの置換パラメータを使用して状態モデルを問い合わせるときに異常が見出されない。
【0055】
ステップ330aでは、指示された基準を満たすモジュールを複数見つけることができ、その場合は、見つかったモジュールのうち一つのモジュールがステップ360bで選択される。例えば、特定の例では、基本要素のユーザのプロファイルおよび/または見つかったモジュールの製造業者/プロバイダの評判に基づいて、1つのモジュールが選択される。別の特定の例では、発見されたすべてのモジュールについてユーザに通知する(リストを最初にランク付けすることができる)。そのパラメータによって異常が決定されたシステムの要素を実現するモジュールの代わりに、またはそれに加えて、選択されたモジュールをインストールすることができる。
【0056】
より良く理解するために、単純化された例(
図4)を考える。クライアント402(クライアントソフトウェア)は、ノートブック400にインストールされ、ノートブック400はルータ401に接続されている。本開示の用語では、ノートブックは基本要素であり、他の要素、すなわちルータ401と共に、調査されるシステムを形成する。さらに、基本要素自体が要素から構成されており、調査されるシステムにおいてノートブックはサブシステムである。クライアント402は、システムおよび要素のパラメータを収集し、要素は、少なくとも中央処理装置410、RAM412、不揮発性記憶装置(NVRAM)414、無線通信モジュール416、およびルータ401である。本例では、NVRAMはSSD(solid state drive)によって実現され、ルータ401はWPA2ソフトウェア暗号化方式の外部ルータによって実現される。クライアント402は、以下のパラメータを収集する: NVRAM(再割り当てセクタカウントなど)のS.M.A.R.T(自己監視、分析、および報告技術)属性;トラフィック暗号化に関するデータ(たとえば、yes/no、暗号化の種類);両方向のトラフィック量、トラフィック密度(単位時間当たりの量);チャネル速度;ルータ信号パワー;およびNVRAM(種類(Type)、量(Value)、フォームファクタ(FF)、インタフェース(Interface))などのモジュールの仕様;およびルータ(Wi-Fi(IEEE)規格、Wi-Fiデバイスの周波数範囲(Spectr)、ハードウェア暗号化サポート(HBE))。
【0057】
以下の表1では、収集されたパラメータを集約している。この表から、プロセスS
n→S
n+1 →...→S
n+...と、所与の時間S
nにおける状態と、を得ることができる。
【表1】
【0058】
収集されたパラメータは、システムの状態モデルを問い合わせるためにクライアントの分析モジュール207によって使用される。分析モジュール207は状態モデルの問い合わせの際に、システム100とその要素の状態の、システムの要件に対する適合性を評価する。この例では、以下のように要素の異常状態を記述する単純な論理モデルが使用される。
【0059】
例えば、状態モデルは、所与の状態(Vn)におけるチャネル速度がしきい値速度Vkより著しく低いか、またはしきい値Vkより著しく高い場合に、ネットワークチャネルの劣化の状態を記述する異常状態SPEED_DEGRを使用するよう指定することができる(すなわち、IF Vn << Vk or Vn >> Vk THEN SPEED_DEGR)。
【0060】
1つの例では、状態モデルは、所与の状態(RSCn)での再割り当てセクタ数がしきい値RSCk未満であり、第2の状態(RSCm)での再割り当てセクタ数未満である場合、ディスク表面の漸進的な欠陥という形でNVRAMの劣化を記述する、異常状態NVRAM_Sector_DEGRを使用するよう指定することができる。こうした劣化は、表面の摩耗の証拠となるセクタ再割り当て操作数の増加によって示される(すなわち、IF RSCn < RSCk < RSCm WHERE Tn < Tk < Tm THEN NVRAM_Sector_DEGR)。
【0061】
別の例では、状態モデルは、再割り当てされたセクタ数が20より大きい場合、再割り当てセクタ数の臨界値20に達したことによるNVRAMの障害を記述する異常状態NVRAM_FAULTを使用するよう指定することができる(すなわち、IF RSC > 20 THEN NVRAM_FAULT)。
【0062】
別の例では、所与の状態(Pn)での信号パワーがしきい値信号パワー値よりも大きく、別の状態(Pm)つまり第2の状態での信号パワーが15dBm未満であると判定されたことに応じて、信号パワーの劣化の状態を記述する異常状態POWER_DEGRが使用され、臨界レベルである15dBmまで時間の経過により信号レベルが低下したことを示す(すなわち、IF Pn > Pk > Pm and Pm < 15 WHERE Tn < Tk < Tm THEN POWER_DEGR)。
【0063】
以上のようなモデルの問い合わせの結果、クライアントは以下の様な特定の時点での異常を発見する:時刻T3でのネットワークチャネルの劣化、時刻T6でのNVRAMの劣化、時刻T9でのNVRAMの故障、時刻T5での信号パワーの劣化。
【0064】
劣化は異常なプロセスであり、故障は異常な状態である。異常についての情報を有すると、回復方法のモデルが問い合わせられ(この例では論理モデルによっても表される)、回復方法は以下のように決定される:
・IF POWER_DEGR THEN AREA_EXTEND
信号パワーの回復のためには、ルータの有効カバレッジの半径を拡大することが推奨される。
・IF SPEED_DEGR WHERE ENCn = 1 and HBEi = 0 THEN HBE
接続速度の回復のためには、ハードウェア暗号化サポートを提供することが推奨される。
・IF SSD_FAULT THEN NVRAM_CHANGE
NVRAMの故障は、モジュール交換により対処するべきである。この例ではSSDを交換することで要素を実現する。
・IF ROM_Sector_DEGR THEN NVRAM_CHANGE or BACKUP
表面劣化を特定した場合、その要素を実現しているモジュールがまだ動作可能であれば、モジュールの交換を検討しバックアップコピーを準備することが推奨される。
【0065】
回復方法が決定されると、推奨される回復方法を実現可能なモジュールが決定される。この例では、これはデータベース227へのクエリによって行われ、データベース227では回復方法に従ってテーブルが指定される。推奨される方法を実現するだけでなく、問題のシステムと互換性があるモジュールを選択するため、クエリには問題のシステムのパラメータに基づいて形成された特定の条件(演算子WHERE)を含めている。クエリを実行した結果は、クエリ自体と共に提示される:
【表2】
【0066】
2つ以上のモジュールが見つかった場合、次に、ユーザの財務支払能力、ユーザのITリテラシーのレベル(すべてのモジュールが容易にインストールできるわけではない)、専門家に電話をかけるユーザの意欲、消費者間でのソリューションの認知度、製造者/供給者の評判などの追加の特徴を考慮して、見つかったモジュールに追加のフィルタを適用する。
【0067】
特定の例では、回復方法のモデルは問い合わせられないことがある。例えば、再割り当てセクタ数が臨界値20に達することによるNVRAMの障害を記述するモデル、IF RSC > 20 THEN NVRAM_FAULTのトリガ時などである。
【0068】
クエリは、モジュールのデータベースに対して行うことができ、ここで、テーブル属性は上記の例のように、回復方法ではなく、次のように異常に対応する:
【表3】
図3Bに記載された方法を実行する場合、次の異常を検出した後:
【表4】
パラメータが異常を決定しているシステム要素を実現することができる等、システム100と互換性のあるサードパーティモジュールに関する情報が得られる:
【表5】
見つかった互換性のあるモジュールの中で、モジュールの置換パラメータを使用して状態モデル(IF RSC > 20 THEN NVRAM_FAULT)に問い合わせると、異常(RSC > 20 = False)が見つからないモジュールが選択される。この例では、明らかに、選択されるモジュールは、再割り当てセクタが存在しないという特性を有するようなモジュール、すなわち、RSC==0であるような、任意の適切に動作するモジュールである。
【0069】
一態様では、上記のシステム100および/またはシステム200は、予め定めた条件に対応する属性(特徴)を備えた人物のコンピュータデータベース検索をサポートするよう拡張され得る。たとえば、上記の人物は、その任務に必要な特定の職務条件、スキル、および/または専門知識を有する、空きポストや欠員を補充する従業員も含み得る。別の例では、上記の人物は、人口学上又は統計学上の目的に求められる特定の条件(たとえば、特定の年齢、アンドロイドスマートフォンのユーザなど)を有する、ユーザインタフェースのマーケティングリサーチ又は人間工学研究のためのフォーカスグループの回答者又はメンバーを含み得る。この調査は、予めトレーニングさせたモデル(空モデル(vacancy model))によって実行される。このモデルは、多次元空間内のクラスタでもよく、各クラスタは類似する属性や特徴を持つ人物の記述(ハードウェアおよびソフトウェアのパラメータのベクトルで表示されたものなど)を同じグループにグループ化する。たとえば、1つのクラスタはジュニアC++開発者を同じグループにグループ化し、別のクラスタはデータサイエンススペシャリストを同じグループにグループ化する。トレーニング済みモデルの別の例は、葉ノードがたとえば同じジュニアC++開発者又はデータサイエンススペシャリストなどのスペシャリストのクラスに対応する木データ構造でもよい。他のケースでは、サポートベクトル方法(support vector method; SVM)、ニューラルネット、エキスパートシステム、またはその他の機械学習の既知の方法が使用され得る。葉ノードはまた、スペシャリストの特定のクラスではなく、職務経験や特定の主要スキルなどスペシャリストに求められる特定の条件とも対応し得る。
【0070】
図5は、コンピュータシステムおよびネットワークを介して、欠員などの条件に応じたユーザを検索、識別、およびターゲティングする方法500を示している。ステップ510において、ユーザに対する条件は、第三者によって特定され、たとえば第三者側で実行されるコンピュータ装置でのユーザ入力によって記述される。条件は、特定の仕様書内で、自由な様式から(所定のデータフォーマットテンプレートによって構成された)決められた様式にいたるまで様々な様式で記述される。たとえばソフトウェア開発者の例では、条件は、ソフトウェア開発経験(年功、成功したプロジェクトの数)や、特定の言語の構文、規格およびフレームワーク、ライブラリなどの知識に関する情報を含み得る。一部の態様では、条件は、特定された少なくとも1つの特徴と一致するターゲットユーザの1以上の検索条件を含む、受信済み検索クエリ内に記述される。
【0071】
次に、特定の例では、ステップ520において、システムは記述を形式化し、提供された記述に基づいてモデルを構築する。このステップのポイントは、記述における条件を構成プロファイルのハードウェアおよびソフトウェアのパラメータに射影(特定の例では、写し込む(imaging))することにある。一部の態様では、システムは、記述された条件(たとえば、スキル、経験)を(たとえば、職務経歴書内で)明確に示すことなく、ユーザ、当該ユーザのユーザアカウント、または当該ユーザのコンピューティングデバイスに関連付けられた、ハードウェアおよびソフトウェアのモデル指標を生成し得る。一部の態様では、ハードウェアおよびソフトウェアのモデル指標は、指定期間のプログラミング言語経験を示す職務条件と、ハードウェアおよびソフトウェアのモデルパラメータであって、プログラミング言語のソースコードファイルを示すファイル拡張子を有し、ファイル変更日が指定期間以後であるファイルが、ターゲットユーザのシステムに保存されていること示すハードウェアおよびソフトウェアのモデルパラメータとを関連付けてもよい。一部の態様では、ハードウェアおよびソフトウェアのモデル指標は、指定量の技術経験を示す職務条件と、技術経験に対応付けられたコードリポジトリへのコミットの閾値量を示すハードウェアおよびソフトウェアのモデルパラメータとを関連付けてもよい。たとえば、「Java(登録商標)言語の3年間の年功及び経験」という記述は、当該プログラミング言語に対応するファイル拡張子(たとえば「.java files」)がついたファイルが3年前から存在すること、そのファイルの数、その経験条件(たとえば、Java IDE)に関連する開発環境での経験期間、パブリック又はプライベートのコードリポジトリ(たとえば、GitHubまたはSourceForge)にコードを公開(すなわち、コミット)した時期および頻度、特殊なツールキットが存在すること、を含む指標に変換される。一部の態様では、ハードウェアおよびソフトウェアのモデル指標は、ソフトウェア開発ライブラリの経験を示す特徴と、ターゲットユーザのシステム上にソフトウェア開発ライブラリがあることを示し、さらに当該ソフトウェア開発ライブラリへのアクセス頻度を示す、ハードウェアおよびソフトウェアのモデルパラメータとを関連付けてもよい。たとえば、システムは、特定のフレームワークの知識を条件とする記述を、ユーザのデバイス上に当該フレームワークが存在することやユーザのデバイスで当該フレームワークにアクセスする頻度などを示す指標に変換してもよい。このようにして得られた射影からモデルが生成される。別の特定の例では、ステップ521において、記述に対して既に完了したモデルが選択される。これは、条件についての記述がなかったり、条件にシニアC++開発者の役職ということしか含まれないなど記述が不完全であったりした場合に有効である。こうしたモデルを構築する方法は以下で説明する
図6に示されている。
【0072】
ステップ310では、システムのハードウェアおよびソフトウェアのパラメータが収集される。一態様では、複数のターゲットユーザのコンピューティングシステムの設定ファイルがアクセスされる。このプロファイルは、少なくとも、ターゲットユーザのコンピューティングシステムのハードウェア、ソフトウェア、およびデータファイルに関する情報を含む。一部の態様では、クライアント205の収集モジュール206は、このシステム100の指定された機能を実行する要素から、システム100のハードウェアおよびソフトウェアのパラメータの構成プロファイルを収集する。ユーザのシステムの構成プロファイルは、コンピューティングリソース、メモリリソース、ストレージリソースおよびネットワークリソースの量、種類および性能のリストを含む、ハードウェアおよびソフトウェアの現在の状態に関する情報、ならびに、システム100内に保存されているファイルのメタデータを含んでもよい。ユーザのシステムの構成プロファイルは、オンライン活動およびソーシャルメディア活動(たとえば、Facebook、Twitter、LinkedIn)など、ユーザがアクセスした外部のオンラインリソースに関する情報を含んでもよい。
【0073】
モデルは、ステップ520において構築、または、ステップ521において選択される。そして、収集したパラメータを使用してユーザのスキルを記述するモデルをポーリングし、ステップ320においてシステムユーザの記述されている条件との適合度を評価する。このデバイスのユーザが条件に一致している場合、その情報が第三者に送信またはユーザ自身に通知される。一部の態様では、機械学習モデルによって当該ターゲットユーザのコンピューティングシステムの構成プロファイルを分析し、検索クエリの1以上の検索条件と一致する1以上のターゲットユーザを識別する。機械学習モデルによる当該ターゲットユーザのコンピューティングシステムの構成プロファイルの分析に基づいて、検索クエリ内で指定された少なくとも1つの特定された特徴と一致する少なくとも1人のターゲットユーザを識別する。
【0074】
予めマークしたデータでトレーニングさせたモデルは、ステップ520において、条件の形式化およびモデルの構築のために順に使用される。マークされたデータは、そのユーザ属性が知られている(つまり、そのユーザが備える条件が知られている)システムの構成プロファイル(ハードウェアおよびソフトウェアのパラメータ)となる。たとえば、ユーザがWindows(登録商標)およびLinux(登録商標)におけるC++開発者として5年間の開発経験があり、Boost、関係データベースおよびJenkinsを使用して作業を行っていたということが知られている。モデルのトレーニングは、上位の条件と、システムのハードウェアおよびソフトウェアのパラメータ(下位の条件)とを関連付けることを目的としている。
【0075】
図6aは、形式化モデルを構築する方法600Aを示し、ステップ610では少なくとも1つのシステムでパラメータを取得する。一態様では、システムは、少なくとも1つの特定された特徴を持つサンプルユーザによって運用されるコンピューティングシステムの構成プロファイルを取得する。ステップ620では、システムの機能を実行する要素から、サンプルシステムユーザの特徴を収集する。ステップ630では、形式化モデルをトレーニングする。一態様では、システムは、サンプルユーザの特定された特徴と、当該サンプルユーザのコンピューティングシステムの構成プロファイルとを関連付ける、機械学習モデルを生成する。トレーニングプロセスの一部の態様では、サンプルシステムユーザの少なくとも1つの特徴(たとえば、職務技能/職務条件)がトレーニング中のモデルの入力に表示され、その特徴と一致するユーザのシステムのハードウェアおよびソフトウェアのサンプルパラメータと出力値とが比較される。一部の態様では、この方法の変形例として、誤差逆伝播と呼ばれる教師あり機械学習の方式が使用される。
図6bは、形式化モデルを構築する代替の方法600Bを示す。ステップ610では、少なくとも1つのシステムのパラメータを取得し、ステップ620では、システムの機能を実行する要素からシステムユーザの特徴を収集し、ステップ640では、システムユーザの特徴とそのシステムのパラメータとの対応付けのために形式化モデルを構築する。形式化モデルのトレーニングのために選択された方法に関係なく、最終的な分析においてユーザの特徴はシステムの該当するハードウェアおよびソフトウェアのパラメータに射影されなければならない。得られたモデルは、単独で使用されても集約されてもよく、逆の順で動作してもよい。たとえば、開発者の条件として、5年間の開発経験とソフトウェアライブラリ(たとえば、C++ソフトウェア開発のためのBoostフレームワーク/ライブラリ)の知識とを提示したとする。この場合、特定の例では、該当するハードウェアおよびソフトウェアのパラメータに必要な経験を射影するモデルと、Boostを用いて作業を行っていることをパラメータがどのように示すか決定するモデルとを使用する。この決定されたパラメータに基づき、ベクトルが多次元空間内に分布される(これが実際に空モデル(vacancy model)となる)。これらのベクトルは、ステップ310においてユーザのシステムから収集したパラメータから得られたベクトルと比較される。別の例では、形式化モデルが決定木を構成する場合、ベクトルは構築されず、ステップ310で収集されたパラメータによってステップ520においてモデルがポーリングされる。
【0076】
例1では、条件を満たすユーザを見つける方法を提供する。すなわち、(a)ユーザの条件を取得し、(b)取得した条件を記述するハードウェアおよびソフトウェアのパラメータを特定し、(c)ハードウェアおよびソフトウェアのパラメータでユーザの条件を記述するモデルを作成し、(d)システムのハードウェアおよびソフトウェアのパラメータを収集し、(e)収集したパラメータによってユーザの条件を記述するモデルをポーリングして、システムユーザと項目(a)ごとの条件との適合度を評価し、(f)項目(a)で取得した条件と一致するユーザを見つける。
【0077】
例2では、例1に基づく方法を提供する。ここで、取得した条件を記述するハードウェアおよびソフトウェアのパラメータは、取得したユーザの条件をハードウェアおよびソフトウェアの空間に射影したものある。
【0078】
例3では、例2に基づく方法を提供する。ここで、射影は予めトレーニングしたモデルによって行われる。
【0079】
例4では、例3に基づくモデルのトレーニング方法を提供する。すなわち、(a)システムの機能を実行するハードウェアおよびソフトウェアから、少なくとも1つのシステムのパラメータを取得し、(b)項目(a)のシステムのユーザの特徴を収集し、(c)モデルをトレーニングし、システムユーザの少なくとも1つの特徴がトレーニング済みモデルの入力に表示され、その特徴に該当するオペレータのシステムのハードウェアおよびソフトウェアのパラメータと出力値とが比較され、その比較に基づいてモデルが修正される。
【0080】
例5では、例3に基づくモデルのトレーニング方法を提供する。すなわち、(a)システムの機能を実行する要素から、少なくとも1つのシステムのパラメータを取得し、(b)項目(a)のシステムのユーザの特徴を収集し、(c)システムユーザの特徴とそのシステムのパラメータとの関連付けのためにモデルを構築する。
【0081】
例6では、条件を満たすユーザを見つける方法を提供する。すなわち、(a)ユーザの条件を取得し、(b)取得した条件を満たすユーザを見つけるためのトレーニング済みモデルを選択し、(c)少なくとも1つのシステムのハードウェアおよびソフトウェアのパラメータを収集し、(d)収集したパラメータによって、選択したモデルをポーリングして、システムユーザと項目(a)ごとの条件との適合度を評価し、(e)項目(a)で取得した条件と一致するユーザを見つける。
【0082】
例7では、例6に基づくモデルのトレーニング方法を提供する。すなわち、(a)システムの機能を実行するハードウェアおよびソフトウェアから、少なくとも1つのシステムのパラメータを取得し、(b)項目(a)のシステムのユーザの特徴を収集し、(c)モデルをトレーニングし、システムユーザの少なくとも1つの特徴がトレーニング済みモデルの入力に表示され、その特徴に対応するオペレータのシステムのハードウェアおよびソフトウェアのパラメータと出力値とが比較される。
【0083】
例8では、例6に基づくモデルのトレーニング方法を提供する。すなわち、(a)システムの機能を実行する要素から、少なくとも1つのシステムのパラメータを取得し、(b)項目(a)のシステムのユーザの特徴を収集し、(c)システムユーザの特徴とそのシステムのパラメータとの対応付けのためにモデルを構築する。
【0084】
システム200のモジュールとは、集積マイクロ回路(特定用途向け集積回路、ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのハードウェアを使用して、あるいは例えば、マイクロプロセッサシステムおよびプログラム命令のセットなどのソフトウェアおよびハードウェアの組合せの形態で、また神経シナプスチップに基づいて実現される、実際のデバイス、システム、コンポーネント、コンポーネントのグループを意味する。示されたモジュールの機能は、ハードウェアによってのみ実現されてもよく、また、機能の一部がソフトウェアによって実現され、一部がハードウェアによって実現される組み合わせの形態で実現されてもよい。特定の変形実施形態では、モジュールをコンピュータのプロセッサ(
図5に示すものなど)上に実装することができる。データベースは全ての可能な方法によって実現することができ、単一の物理的媒体上に、またはローカルまたはリモートのいずれかに位置する様々な媒体上に含めることができる。
【0085】
図7は、例示的な態様に従って、異常を有するシステムのための互換性のあるモジュールを検出するシステムおよび方法の態様が実装され得るコンピュータシステム20を示すブロック図である。コンピュータシステム20は例えば、先に説明した基本要素104のいずれにも対応し得ることに留意されたい。コンピュータシステム20は複数のコンピューティングデバイスの形態、または単一のコンピューティングデバイス、例えば、デスクトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、スマートフォン、タブレットコンピュータ、サーバ、メインフレーム、埋め込みデバイス、および他の形態のコンピューティングデバイスの形態とすることができる。
【0086】
図示のように、コンピュータシステム20は、中央処理装置(CPU)21と、システムメモリ22と、中央処理装置21に関連するメモリを含む様々なシステムコンポーネントを接続するシステムバス23とを含む。システムバス23は、バスメモリまたはバスメモリコントローラ、周辺バス、および他の任意のバスアーキテクチャとインタラクトすることができるローカルバスを含むことができる。バスの例は、PCI、ISA、PCI-Express、HyperTransport(登録商標)、InfiniBand(登録商標)、シリアルATA、I2C、および他の好適な相互接続を含むことができる。中央処理装置21(プロセッサとも呼ばれる)は、単一または複数のコアを有するプロセッサの単一または複数のセットを含むことができる。プロセッサ21は、本開示の技法を実施する1つまたは複数のコンピュータ実行可能コードを実行することができる。システムメモリ22は、本明細書で使用されるデータおよび/またはプロセッサ21によって実行可能なコンピュータプログラムを記憶するための任意のメモリとすることができる。システムメモリ22は、ランダムアクセスメモリ(RAM)25などの揮発性メモリ、および読取り専用メモリ(ROM)24、フラッシュメモリなどの不揮発性メモリ、またはそれらの任意の組合せを含むことができる。基本入出力システム(BIOS)26は、ROM24を使用してオペレーティングシステムをロードするときのような、コンピュータシステム20の要素間で情報を転送するための基本手順を記憶することができる。
【0087】
コンピュータシステム20は、1つまたは複数のリムーバブル記憶装置27、1つまたは複数の非リムーバブル記憶装置28、またはそれらの組合せなどの1つまたは複数の記憶装置を含むことができる。1つまたは複数のリムーバブル記憶装置27および非リムーバブル記憶装置28は、ストレージインタフェース32を介してシステムバス23に接続される。一態様では、記憶装置および対応するコンピュータ可読記憶媒体がコンピュータシステム20のコンピュータ命令、データ構造、プログラムモジュール、および他のデータを記憶するための独立電源型モジュールである。システムメモリ22、リムーバブル記憶装置27、および非リムーバブル記憶装置28は、様々なコンピュータ可読記憶媒体を使用することができる。コンピュータ可読記憶媒体の例は、キャッシュ、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、ゼロキャパシタRAM、ツイントランジスタRAM、強化ダイナミックランダムアクセスメモリ(eDRAM)、拡張データ出力ランダムアクセスメモリ(EDO RAM)、ダブルデータレートランダムアクセスメモリ(DDR RAM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、NRAM、抵抗性ランダムアクセスメモリ(RRAM(登録商標))、シリコン酸化物窒化物シリコン(SONOS)ベースのメモリ、相変化ランダムアクセスメモリ(PRAM)などの機械メモリ、ソリッドステートドライブ(SSD)またはフラッシュドライブなどのフラッシュメモリまたは他のメモリ技術、ハードディスクドライブまたはフロッピーディスクなどの磁気カセット、磁気テープ、および磁気ディスクストレージ、コンパクトディスク(CD-ROM)またはデジタル多用途ディスク(DVD)などの光ストレージ、ならびに所望のデータを格納するために使用され、コンピュータシステム20によってアクセスされ得る任意の他の媒体を含む。
【0088】
コンピュータシステム20のシステムメモリ22、リムーバブル記憶装置27、および非リムーバブル記憶装置28を使用して、オペレーティングシステム35、追加のプログラムアプリケーション37、他のプログラムモジュール38、およびプログラムデータ39を記憶することができる。コンピュータシステム20はキーボード、マウス、スタイラス、ゲーム・コントローラ、音声入力装置、タッチ入力装置などの入力装置40からデータを通信する周辺インタフェース46、または、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB)などの1つまたは複数のI/Oポートを経由するプリンタもしくはスキャナなどの他の周辺デバイス、または他の周辺インタフェースを含むことができる。1つまたは複数のモニタ、プロジェクタ、または統合ディスプレイなどのディスプレイ装置47も、ビデオアダプタなどの出力インタフェース48を介してシステムバス23に接続することができる。コンピュータシステム20は、ディスプレイ装置47に加え、ラウドスピーカ及び他のオーディオビジュアル装置のような他の周辺出力装置(図示せず)を装備することができる。
【0089】
コンピュータシステム20は、1つまたは複数のリモートコンピュータ49へのネットワーク接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ49は、コンピュータシステム20の性質を説明する上述の要素の大部分またはすべてを含むローカルコンピュータワークステーションまたはサーバとすることができる。ルータ、ネットワーク局、ピアデバイス、または他のネットワークノードなどの他のデバイスも、コンピュータネットワーク内に存在し得るが、これらに限定されない。コンピュータシステム20は、ローカルエリアコンピュータネットワーク(LAN)50、ワイドエリアコンピュータネットワーク(WAN)、イントラネット、およびインターネットなどの1つまたは複数のネットワークを介してリモートコンピュータ49と通信する1つまたは複数のネットワークインタフェース51またはネットワークアダプタを含むことができる。ネットワークインタフェース51としては、例えば、イーサネット(登録商標)インタフェース、フレームリレーインタフェース、SONETインタフェース、無線インタフェース等が挙げられる。
【0090】
本開示の態様は、システム、方法、および/またはコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本開示の態様を実行させるためのコンピュータ可読プログラム命令を備えるコンピュータ可読記憶媒体(1つ又は複数)を含むことができる。
【0091】
コンピュータ可読記憶媒体は、コンピューティングシステム20などのコンピューティングデバイスのプロセッサによってアクセスすることができる命令またはデータ構造の形態のプログラムコードを保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組合せとすることができる。例として、そのようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、EEPROM、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、フラッシュメモリ、ハードディスク、ポータブルコンピュータディスケット、メモリスティック、フロッピー(登録商標)ディスク、またはパンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイスを含むことができる。本明細書で使用されるように、コンピュータ可読記憶媒体は、電波または他の自由に伝播する電磁波、導波管または伝送媒体を通って伝播する電磁波、または有線で伝送される電気信号など、一時的な信号そのものであると解釈されるべきではない。
【0092】
本明細書で説明するコンピュータ可読プログラム命令は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはワイヤレスネットワークなどのネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティングデバイスに、または外部コンピュータもしくは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、および/またはエッジサーバを含むことができる。各コンピューティングデバイス内のネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティングデバイス内のコンピュータ可読記憶媒体に記憶するために、コンピュータ可読プログラム命令を転送する。
【0093】
本開示の動作を実行するためのコンピュータ可読プログラム命令は、アセンブリ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはオブジェクト指向プログラミング言語および従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で部分的にリモートコンピュータ上で、または完全にリモートコンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、LANまたはWANを含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネットを介して)外部コンピュータに接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路は本開示の態様を実行するため、電子回路をパーソナル化するためにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0094】
様々な態様では、本開示で説明されるシステムおよび方法がモジュールの観点から対処することができる。本明細書で使用される「モジュール」という用語は例えば、特定用途向け集積回路(ASIC)またはFPGAなどのハードウェアを使用して実装される、あるいは、マイクロプロセッサシステムおよび(実行されている間に)マイクロプロセッサシステムを専用デバイスに変換するモジュールの機能を実装するための命令セットなどのハードウェアおよびソフトウェアの組合せとして実装される、現実世界のデバイス、コンポーネント、または構成要素の構成を指す。また、モジュールは2つの組み合わせとして実装されてもよく、特定の機能はハードウェアのみによって促進され、他の機能はハードウェアとソフトウェアとの組み合わせによって促進される。いくつかの実装形態ではモジュールの少なくとも一部、および場合によってはすべてが、コンピュータシステムのプロセッサ(上記の
図5でより詳細に説明したものなど)上で実行され得る。したがって、各モジュールは、様々な適切な構成で実現されてもよく、本明細書で例示される任意の特定の実装形態に限定されるべきではない。
【0095】
明確にするために、態様のルーチンの特徴のすべてが本明細書に開示されるわけではない。本開示の任意の実際の実装の開発において、開発者の特定の目標を達成するために、多数の実装固有の決定が行われなければならず、これらの特定の目標は、異なる実装および異なる開発者によって異なることが理解されるのであろう。そのような開発努力は複雑で時間がかかる可能性があるが、それにもかかわらず、本開示の恩恵を受ける当業者にとっては日常的なエンジニアリングの仕事であることが理解される。
【0096】
さらに、本明細書で使用される語法または用語は説明を目的としたものであり、限定を目的としたものではない。したがって、本明細書の語法または用語は、関連技術の当業者の知識と組み合わせて、本明細書で提示される教示およびガイダンスに照らして、当業者によって解釈されるべきであることを理解されたい。さらに、明細書または特許請求の範囲におけるいかなる用語も、そのように明示的に記載されていない限り、一般的ではない意味または特別な意味に帰することを意図していない。
【0097】
本明細書で開示される様々な態様は、例示として本明細書で言及される既知のモジュールに対する現在および将来の既知の同等物を包含する。さらに、態様および用途が示され、説明されてきたが、本明細書に開示された発明概念から逸脱することなく、上記よりも多くの変形例が可能であることは本開示の恩恵を受ける当業者には明らかであろう。