(57)【要約】  データオブジェクトを効率よく分類するための開示されるコンピュータ実装方法は、（１）ルールのグループに従って分類されるデータオブジェクトを受信することであって、各ルールが１つ以上の項目を含む、ことと、（２）各ルールに対して、ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、ルール評価プロセッサが推定処理時間の短い順に項目を評価する、ことと、（３）ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するためにルール評価キューに投入することであって、ルール評価ジョブが推定処理時間の長い順に投入される、ことと、（４）各ルール評価ジョブに関する評価結果を受信することと、（５）評価結果を受信することに応じて、評価結果に従ってデータオブジェクトを分類することと、を含み得る。様々な別の方法、システム、及びコンピュータ可読媒体もまた開示される。
2019502998.tif 000002
【特許請求の範囲】
【請求項１】
データオブジェクトを効率よく分類するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法が、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信することであって、各分類ルールが少なくとも１つの項目を含む、ことと、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内の前記項目を評価する、ことと、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入することであって、前記ルール評価ジョブが推定処理時間の長い順に投入される、ことと、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、
前記ルール評価ジョブに関する前記評価結果を受信することに応じて、前記評価結果に従って前記データオブジェクトを分類することと、を含む方法。
【請求項２】
複数の独立して実行するルール評価プロセッサを更に含み、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記複数の独立して実行するルール評価プロセッサが、マルチコアプロセッサのコアを含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記ルール評価ジョブが、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記分類ルールのうちの少なくとも１つの項目が、前記ルール評価プロセッサによって評価される前記データオブジェクトの一部を指定する、請求項１に記載のコンピュータ実装方法。
【請求項６】
前記ルール評価プロセッサが少なくとも１つの分類ルールのうちの少なくとも１つの項目を評価するのにかかる時間を測定することと、
前記測定された時間に基づいて前記項目に関する処理時間を推定することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記ルール評価プロセッサが少なくとも１つの分類ルールを評価するのにかかる時間を測定することと、
前記測定された時間に基づいて前記分類ルールに関する処理時間を推定することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
データオブジェクトを効率よく分類するためのシステムであって、前記システムが、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信する、メモリ内に記憶された通信モジュールであって、各分類ルールが少なくとも１つの項目を含む、通信モジュールと、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成する、メモリ内に記憶されたタスクモジュールであって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内の前記項目を評価する、タスクモジュールと、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入する、メモリ内に記憶されたキューイングモジュールであって、前記ルール評価ジョブが推定処理時間の長い順に投入される、キューイングモジュールと、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信する、メモリ内に記憶された結果モジュールと、
前記ルール評価ジョブに関する前記評価結果を受信することに応じて、前記評価結果に従って前記データオブジェクトを分類する、メモリ内に記憶された分類モジュールと、
前記通信モジュール、前記タスクモジュール、前記キューイングモジュール、前記結果モジュール、及び前記分類モジュールを実行するように構成されている、少なくとも１つの物理プロセッサと、を含むシステム。
【請求項９】
複数の独立して実行するルール評価プロセッサを更に含み、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項８に記載のシステム。
【請求項１０】
前記複数の独立して実行するルール評価プロセッサが、マルチコアプロセッサのコアを含む、請求項９に記載のシステム。
【請求項１１】
前記タスクモジュールによって作成された前記ルール評価ジョブが、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、請求項８に記載のシステム。
【請求項１２】
前記分類ルールのうちの少なくとも１つの項目が、前記ルール評価プロセッサによって評価される前記データオブジェクトの一部を指定する、請求項８に記載のシステム。
【請求項１３】
前記ルール評価プロセッサが少なくとも１つの分類ルールのうちの少なくとも１つの項目を評価するのにかかる時間を測定し、
前記測定された時間に基づいて前記項目に関する処理時間を推定する、推定モジュールを更に含む、請求項８に記載のシステム。
【請求項１４】
前記推定モジュールが、
前記ルール評価プロセッサが少なくとも１つの分類ルールを評価するのにかかる時間を測定し、
前記測定された時間に基づいて前記分類ルールに関する処理時間を推定する、請求項１３に記載のシステム。
【請求項１５】
１つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令が、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信させることであって、各分類ルールが少なくとも１つの項目を含む、ことと、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内部の前記項目を評価する、ことと、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入することであって、前記ルール評価ジョブが推定処理時間の長い順に投入される、ことと、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、
前記ルール評価ジョブに関する前記評価結果を受信することに応じて、前記評価結果に従って前記データオブジェクトを分類することと、を実行させる非一過性コンピュータ可読媒体。
【請求項１６】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、複数の独立して実行するルール評価プロセッサによりサービスされる少なくとも１つのルール評価キューに前記ルール評価ジョブを投入させ、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１７】
前記複数の独立して実行するルール評価プロセッサが、マルチコアプロセッサのコアを含む、請求項１６に記載の非一過性コンピュータ可読媒体。
【請求項１８】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、前記ルール評価ジョブを作成させる、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項１９】
前記分類ルールの少なくとも１つの項目が、前記ルール評価プロセッサによって評価される前記データオブジェクトの一部を指定する、請求項１５に記載の非一過性コンピュータ可読媒体。
【請求項２０】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、
前記ルール評価プロセッサが少なくとも１つの分類ルールのうちの少なくとも１つの項目を評価するのにかかる時間を測定することと、
前記測定された時間に基づいて前記項目に関する処理時間を推定することと、を実行させる、請求項１５に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
アーカイブシステム及びデータ損失防止（ＤＬＰ）システムなどのデータ管理システムは、多くの場合異なるデータカテゴリを異なる手法で処理する。例えば、異なるデータ保持ポリシー又はデータセキュリティポリシーが、社内向け電子メールメッセージと顧客に送信される電子メールメッセージ、又はマーケティングデータファイルと財務若しくはエンジニアリングデータファイルに対して適用され得る。したがって、データ管理システムは、多くの場合、個々のデータオブジェクトの処理方法を決定する前に各データオブジェクトをカテゴリに割り当てる。
【０００２】
残念ながら、データ管理システムによって処理されるデータオブジェクトの数は非常に多い場合があり、多くの場合、ピーク負荷期間となる。結果的に、データオブジェクトを分類する処理は、多くの場合データ管理システムにおいてボトルネックであることが判明している。したがって、本開示は、データオブジェクトを効率よく分類するための、追加の改良されたシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【０００３】
以下で更に詳細に説明されるように、本開示は、分類ルールのセットに従ってデータオブジェクトを効率よく分類するための、様々なシステム及び方法を記載する。本明細書に記載のシステム及び方法は、データオブジェクトを分類するためのルール評価ジョブを作成し、次にルール評価ジョブの推定処理時間に従ってルール評価ジョブをキューイングすることで、分類ルールのセットに従ってデータオブジェクトを分類するために要する時間を短縮することができる。本明細書に記載のシステム及び方法はまた、履歴データに基づいて分類ルールを処理するために要する処理時間を推定することもでき、データオブジェクトのカテゴリ化の効率を改善するための、例えばマルチコアプロセッサを利用する、データオブジェクトの一部だけにルール処理を限定する、及び／又はルールロジックを分析してルール処理時間を最も最小化する可能性が高い作業順序を明確にする、などの他の技術を使用することができる。
【０００４】
一例では、データオブジェクトを効率よく分類するためのコンピュータ実装方法は、（１）データオブジェクトを分類するためのルールのグループに従って分類されるデータオブジェクトを受信することであって、各分類ルールは１つ以上の項目を含む、ことと、（２）分類ルール中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、ルール評価プロセッサは推定処理時間の短い順に分類ルール内部の項目を評価する、ことと、（３）分類ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するために１つ以上のルール評価キューに投入することであって、ルール評価ジョブは推定処理時間の長い順に投入される、ことと、（４）ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、（５）ルール評価ジョブに関する評価結果を受信することに応じて、評価結果に従ってデータオブジェクトを分類することと、を含み得る。
【０００５】
一実施形態では、コンピュータ実装方法は、独立して実行するルール評価プロセッサのグループを更に含んでもよく、各ルール評価プロセッサは、１つ以上のルール評価キューからのルール評価ジョブを処理する。一実施形態では、独立して実行するルール評価プロセッサは、マルチコアプロセッサのコアを含み得る。一例では、ルール評価ジョブは、ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従ってデータオブジェクトを評価するように指示してもよく、各項目は、１つ以上のデータオブジェクト属性を評価し、ルール評価ジョブは、論理的に結合された項目のうちの１つ以上の評価が否定的結果を生じたときにルール評価プロセッサに分類ルールの評価を終了するように指示する。
【０００６】
一実施形態では、分類ルールのうちの１つ以上の項目は、ルール評価プロセッサによって評価されるデータオブジェクトの一部を指定してもよい。加えて、コンピュータ実装方法は、ルール評価プロセッサが１つ以上の分類ルールの１つ以上の項目を評価するのにかかる時間を測定することと、測定された時間に基づいて項目に関する処理時間を推定することと、を更に含んでもよい。一実施形態では、コンピュータ実装方法は、ルール評価プロセッサが１つ以上の分類ルールを評価するのにかかる時間を測定することと、測定された時間に基づいて分類ルールに関する処理時間を推定することと、を更に含んでもよい。
【０００７】
一実施形態では、上述の方法を実装するためのシステムは、例えば（１）データオブジェクトを分類するためのルールのグループに従って分類されるデータオブジェクトを受信する通信モジュールであって、各分類ルールは１つ以上の項目を含み得る、通信モジュール、（２）分類ルール中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成するタスクモジュールであって、ルール評価プロセッサは推定処理時間の短い順に分類ルール内部の項目を評価する、タスクモジュール、（３）分類ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するために１つ以上のルール評価キューに投入するキューイングモジュールであって、ルール評価ジョブは推定処理時間の長い順に投入される、キューイングモジュール、（４）ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信する結果モジュール、及び／又は（５）ルール評価ジョブに関する評価結果の受信に応じて、評価結果に従ってデータオブジェクトを分類する分類モジュール、などのメモリに記憶されたいくつかのモジュールを含んでもよい。システムはまた、通信モジュール、タスクモジュール、キューイングモジュール、結果モジュール、及び分類モジュールを実行するように構成されている少なくとも１つの物理プロセッサも含んでもよい。
【０００８】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、コンピューティングデバイスに、（１）データオブジェクトを分類するためのルールのグループに従って分類されるデータオブジェクトを受信することであって、各分類ルールは１つ以上の項目を含む、ことと、（２）分類ルール中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、ルール評価プロセッサは推定処理時間の短い順に分類ルール内部の項目を評価する、ことと、（３）分類ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するために１つ以上のルール評価キューに投入することであって、ルール評価ジョブは推定処理時間の長い順に投入される、ことと、（４）ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、（５）ルール評価ジョブに関する評価結果を受信することに応じて、評価結果に従ってデータオブジェクトを分類することと、を実行させ得る１つ以上のコンピュータ実行可能命令を含んでもよい。
【０００９】
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１０】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】データオブジェクトを効率よく分類するための例示的なシステムのブロック図である。
【図２】データオブジェクトを効率よく分類するための追加の例示的なシステムのブロック図である。
【図３】データオブジェクトを効率よく分類するための例示的な方法のフローチャートである。
【図４】データオブジェクトを効率よく分類するための追加の例示的なシステムのブロック図である。
【図５】本明細書で説明及び／又は図示される実施形態のうちの１つ以上を実装することができる例示的コンピューティングシステムのブロック図である。
【図６】本明細書で説明及び／又は図示される実施形態のうちの１つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
【００１１】
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１２】
本開示は、概して、データオブジェクトを効率よく分類するためのシステム及び方法を対象とする。以下でより詳細に説明されるように、本明細書に記載のシステム及び方法は、分類ルールのセットに従ってデータオブジェクトを分類する際に多数の処理最適化技術を適用することによって、データオブジェクトを効率よく分類することができる。処理最適化技術の一部はマルチコアプロセッサ上の複数の処理ユニットを利用して分類ルールを平行して評価することと、過去の処理時間データに基づいて、分類ルール及び分類ルール内の項目の評価をキューイングして、各データオブジェクトの分類が最小限の処理時間で決定され得る可能性を高めることと、を含んでもよい。
【００１３】
下記において、図１、２、及び４を参照して、データオブジェクトを効率よく分類するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法についての詳細な説明もまた、図３に関連して提供される。それに加えて、本明細書で説明する実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、図５及び図６と関連してそれぞれ提供される。
【００１４】
図１は、データオブジェクトを効率よく分類するための例示的なシステム１００のブロック図である。この図に示すように、例示的なシステム１００は、１つ以上のタスクを実施するための１つ以上のモジュール１０２を含んでもよい。例えば、そして以下でより詳細に説明されるように、例示的なシステム１００は、データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信し、各分類ルールが少なくとも１つの項目を含み得る、通信モジュール１０４を含んでもよい。例示的なシステム１００は、複数の分類ルール中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成し、ルール評価プロセッサが推定処理時間の短い順に分類ルール内部の項目を評価する、タスクモジュール１０６を追加的に含んでもよい。例示的なシステム１００はまた、複数の分類ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するために１つ以上のルール評価キューに投入し、ルール評価ジョブが推定処理時間の長い順に投入される、キューイングモジュール１０８も含んでもよい。例示的なシステム１００は、ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信する、結果モジュール１１０を追加的に含んでもよい。例示的なシステム１００はまた、ルール評価ジョブに関する評価結果の受信に応じて、評価結果に従ってデータオブジェクトを分類する、分類モジュール１１２も含んでもよい。例示的なシステム１００はまた、ルール評価プロセッサが分類ルールの処理を評価するのにかかる時間、並びにルール評価プロセッサが分類ルール項目を評価するのにかかる時間を測定する、推定モジュール１１４も含んでもよい。推定モジュール１１４はまた、測定された時間に基づいてルール及び／又は項目の処理時間も推定し得る。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００１５】
特定の実施形態では、図１のモジュール１０２のうちの１つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ以上のタスクを実施させてもよい１つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、そして以下でより詳細に説明されるように、モジュール１０２のうちの１つ以上は、図２に示すデバイス（例えば、バックエンド２０２、及び／又はサーバ２０６）、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分などの１つ以上のコンピューティングデバイス上で動作するように、記憶及び構成されたソフトウェアモジュールを表し得る。図１のモジュール１０２のうちの１つ以上はまた、１つ以上のタスクを実施するように構成された１つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【００１６】
図１に例解されるように、例示的なシステム１００はまた、データベース１２０などの１つ以上のデータベースも含み得る。一例では、データベース１２０は、データオブジェクト、データオブジェクトを分類するためのルール、及び／又は様々なデータオブジェクト分類に実施されるアクションを記憶するように構成され得る。データベース１２０は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの一部分を表し得る。例えば、データベース１２０は、図２のサーバ２０６の一部分、図５のコンピューティングシステム５１０及び／又は図６の例示的なネットワークアーキテクチャ６００の一部分を表し得る。あるいは、図１のデータベース１２０は、図２のサーバ２０６、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の一部分などのコンピューティングデバイスがアクセスすることができる、１つ以上の物理的に別個のデバイスを表し得る。
【００１７】
図１の例示的なシステム１００は、様々な態様で実装されてもよい。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表してもよい。図２に示すように、システム２００は、ネットワーク２０４を介してサーバ２０６と通信するバックエンド２０２を含み得る。一例では、バックエンド２０２は、モジュール１０２のうちの１つ以上を用いてプログラムされ得る、かつ／又はデータベース１２０のデータの全て若しくは一部を記憶し得る。更に又は代替的に、サーバ２０６は、モジュール１０２のうちの１つ以上を用いてプログラムされ得る、かつ／又はデータベース１２０のデータの全て若しくは一部を記憶し得る。
【００１８】
一実施形態では、図１のモジュール１０２のうちの１つ以上は、バックエンド２０２及び／又はサーバ２０６のうちの少なくとも１つのプロセッサによって実行されるとき、バックエンド２０２及び／又はサーバ２０６がデータオブジェクトを効率よく分類することを可能にし得る。例えば、そして以下でより詳細に説明されるように、通信モジュール１０４は、データオブジェクトを分類するための複数のルール２１０に従って分類されるデータオブジェクト２０８を受信してもよく、各分類ルールは、１つ以上の項目２１２を含んでもよい。タスクモジュール１０６は、複数の分類ルール２１０中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクト２０８を評価するようにルール評価プロセッサ２１６に指示するルール評価ジョブ２１４を作成してもよく、ルール評価プロセッサ２１６が推定処理時間の短い順に分類ルール２１０内部の項目２１２を評価する。キューイングモジュール１０８は次に、複数の分類ルール２１０に対して作成されたルール評価ジョブ２１４を、ルール評価プロセッサ２１６で処理するために少なくとも１つのルール評価キュー２１８に投入してもよく、ルール評価ジョブは推定処理時間の長い順に投入される。結果モジュール１１０は次に、ルール評価プロセッサ２１６から、各ルール評価ジョブ２１４に関する評価結果２２０を受信してもよい。最後に、分類モジュール１１２は、ルール評価ジョブ２１４に関する評価結果２２０の受信に応じて、評価結果２２０に従ってデータオブジェクト２０８を分類してもよい。
【００１９】
バックエンド２０２は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。バックエンド２０２の例として、限定することなく、ノートブック、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器（ＰＤＡ）、マルチメディアプレイヤー、組込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラスなど）、ゲーム機、これらのもののうちの１つ以上の組合せ、図５の例示的なコンピューティングシステム５１０、又は任意の別の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２０】
サーバ２０６は、データを受信、比較、及び／又は記憶することができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。サーバ２０６の例としては、限定することなく、種々のデータベースサービスを提供するように、及び／又はある特定のソフトウェアアプリケーションを動作させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられる。
【００２１】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。ネットワーク２０４の例としては、限定することなく、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（ＧＳＭ（登録商標））ネットワーク）、又は図６の例示的なネットワークアーキテクチャ６００などが挙げられる。ネットワーク２０４は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態では、ネットワーク２０４は、バックエンド２０２とサーバ２０６との間の通信を容易にし得る。
【００２２】
図３は、データオブジェクトを効率よく分類するための例示的なコンピュータ実装方法３００のフローチャートである。図３に示す工程は、任意の好適なコンピュータ実行可能なコード及び／又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図３に示す工程は、図１のシステム１００、図２のシステム２００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の部分の構成要素のうちの１つ以上によって実施されてもよい。
【００２３】
図３に例解されるように、工程３０２において、本明細書に記載されるシステムのうちの１つ以上は、データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信してもよく、各分類ルールは、１つ以上の項目を含んでもよい。例えば、通信モジュール１０４は、図２のバックエンド２０２の一部として、データオブジェクトを分類するための複数の分類ルール２１０に従って分類されるデータオブジェクト２０８を受信してもよく、各分類ルール２１０は、１つ以上の項目２１２を含んでもよい。
【００２４】
本明細書で使用するとき、「データオブジェクト」という用語は、概して、データ管理システムが単一オブジェクトとして記憶し管理し得るデータの量を指す。各データオブジェクトは、分類に基づいてアクションをとるデータ管理システムを用いて分類ルールのセットに従って分類され得る。データオブジェクトとしては、限定することなく、ファイル、メッセージ、データ構造、データベースレコード、又はウェブページが挙げられ得る。
【００２５】
本明細書で使用するとき、「分類ルール」という用語は、概して、組み合わせてデータオブジェクトを分類することができる１つ以上の項目のセットを指す。各項目は、データオブジェクトがカテゴリに属するかどうかを決定するデータオブジェクトの属性を定義してもよい。分類ルールは、括弧並びに／又は「ＡＮＤ」、「ＯＲ」、及び「ＮＯＴ」などのブール演算子を使用して項目を組み合わせることができる。例えば、分類ルールが、「Ｏｗｎｅｒ  ＯＵ＝‘Ｅｎｇｉｎｅｅｒｉｎｇ’ＡＮＤ（Ｆｉｌｅ  ｅｘｔｅｎｓｉｏｎ＝‘ＤＸＦ’  ＯＲ  Ｆｉｌｅ  Ｅｘｔｅｎｓｉｏｎ＝‘ＧＤＬ’）」である場合にファイルを「ＣＡＤ  Ｄｒａｗｉｎｇ」と分類してもよい。
【００２６】
通信モジュール１０４は、種々の態様でデータオブジェクトを受信し得る。例えば、通信モジュール１０４は、データベースからレコードを検索すること、又は電子メールのメールボックスからメッセージを抽出することによってデータオブジェクトを受信し得る。他の例では、通信モジュール１０４は、記憶デバイスからファイルを検索すること、データ管理システムとの接続を介してデータオブジェクトを受信することによって、又はその他の好適な手段によってデータオブジェクトを受信し得る。
【００２７】
一例では、データオブジェクトの分類は、データ管理システムから独立して進行し得る。このことは、データオブジェクトの分類がデータ管理システムと同じデバイス上で実行される実施形態において重要であり得る。データオブジェクト分類が、データ管理システムと同じデバイスで実行するか又は別個のデバイスで実行するかに関わらず、通信モジュール１０４は、データ管理システムに、データオブジェクトの分類が非同期的に続行すること、及びデータ管理システムがデータオブジェクトの分類をその後に決定したときに、受信することを通知してもよい。
【００２８】
工程３０４において、本明細書に記載のシステムのうち１つ以上は、複数の分類ルール中の各分類ルールに対して、分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成してもよく、ルール評価プロセッサは、推定処理時間の短い順に分類ルール内部の項目を評価する。例えば、タスクモジュール１０６は、図２のバックエンド２０２の一部として、複数の分類ルール２１０中の各分類ルールに対して、分類ルール２１０内の項目２１２に従ってデータオブジェクト２０８を評価するようにルール評価プロセッサ２１６に指示するルール評価ジョブ２１４を作成してもよく、ルール評価プロセッサ２１６は、推定処理時間の短い順に分類ルール２１０内部の項目２１２を評価する。
【００２９】
タスクモジュール１０６は、種々の態様で各分類ルールに対してルール評価ジョブを作成し得る。例えば、タスクモジュール１０６は、自然言語又はスクリプト言語で分類ルールを含むテキストファイルの形態でデータ管理システムから分類ルールのセットを受信し得る。別の例では、タスクモジュール１０６は、データベースからデータオブジェクトを選択するために使用され得るデータベース問い合わせ言語（ＳＱＬなど）で書かれたステートメントの形態で分類ルールのセットを受信し得る。
【００３０】
分類ルールのセットを受信した後、タスクモジュール１０６は、分類ルールを分析して各分類ルール内に含まれる項目を識別し、各項目の処理時間を推定してもよい。以下でより詳細に説明されるように、タスクモジュール１０６は、履歴データを使用して、各項目の処理時間を推定してもよい。タスクモジュール１０６は、次に各分類ルールに対して、推定処理時間の短い順に各分類ルール内の項目に従ってデータオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成してもよい。一例では、データオブジェクトの評価は、提供されたデータオブジェクトの属性が分類ルールによって指定された基準に合致するかどうか判定することを伴い得る。別の例では、データオブジェクトの評価は、データベースクエリを使用してデータベースからデータオブジェクトを選択することを伴い得る。
【００３１】
一実施形態では、分類ルールのうちの１つ以上の項目は、ルール評価プロセッサによって評価されるデータオブジェクトの一部を指定してもよい。例えば、電子メールメッセージに対する分類ルールは、電子メールの件名又はメッセージ本文の第１パラグラフが、特定の単語又は一連の単語を含むメッセージを検索してもよい。他の例では、ファイルに対する分類ルールは、特定の日時、又は「．ＴＸＴ」ファイル名拡張子を有するメッセージの後に作成されたメッセージを検索してもよい。
【００３２】
一実施形態では、ルール評価ジョブは、ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従ってデータオブジェクトを評価するように指示し、各項目は、１つ以上のデータオブジェクト属性を評価し、ルール評価ジョブは、論理的に結合された項目のうちの１つ以上の評価が否定的結果を生じたときにルール評価プロセッサに分類ルールの評価を終了するように指示する。分類ルールの項目を処理時間の短い順に評価することは、分類ルールを評価するために要する時間を短縮し得る。例えば、電子メールメッセージに対する分類ルールは、「Ｓｕｂｊｅｃｔ  ｄｏｅｓ  ｎｏｔ  ｃｏｎｔａｉｎ‘Ｏｕｔ  ｏｆ  ｏｆｆｉｃｅ’ＡＮＤ  Ｍｅｓｓａｇｅ  ｃｏｎｔａｉｎｓ‘ＣＯＮＦＩＤＥＮＴＩＡＬ’」に合致するメッセージを検索してもよい。この例において、メッセージ件名を評価する項目は、メッセージ本文を評価する項目より実行する時間が少なくて済む場合がある。なぜなら２つの項目が「ＡＮＤ」によって結合されているので、メッセージ件名が「Ｏｕｔ  ｏｆ  ｏｆｆｉｃｅ」を含むことを、ルール評価プロセッサが判定した場合に、次にルール評価プロセッサは、ルール中の第２の項目を評価しないで、メッセージが分類ルールに合致しないことを判断し得る。
【００３３】
工程３０６において、本明細書に記載のシステムのうち１つ以上は、複数の分類ルールに対して作成されたルール評価ジョブを、ルール評価プロセッサで処理するために１つ以上のルール評価キューに投入してもよく、ルール評価ジョブは、推定処理時間の長い順に投入される。例えば、キューイングモジュール１０８は、図２のバックエンド２０２の一部として、複数の分類ルール２１０に対して作成されたルール評価ジョブ２１４を、ルール評価プロセッサ２１６で処理するために少なくとも１つのルール評価キュー２１８に投入してもよく、ルール評価ジョブ２１４は推定処理時間の長い順に投入される。処理時間が少なくて済むルール評価ジョブは、最も処理時間を要するジョブと平行して、他のルール評価プロセッサによって処理するためにキューイングすることができるため、最も処理時間を要するルール評価ジョブを最初にキューイングすることによって、キューイングモジュール１０８は、分類ルールのセットに対する全てのルール評価ジョブを処理するために必要な時間全体を短縮し得る。
【００３４】
キューイングモジュール１０８は、種々の態様で、ルール評価ジョブをルール評価キューに投入し得る。例えば、分類ルールの各項目を別々に評価するルール評価プロセッサを用いて、キューイングモジュール１０８は、分類ルールの各項目を、ルール評価キューに別個のルール評価ジョブとしてそれらが処理されるべき順序で投入し得る。別の例では、分類ルールの項目を分解することができるルール評価プロセッサを用いて、キューイングモジュール１０８は、分類ルールを、分類ルールの項目を評価するべき順序の指示と共にルール評価キューに投入し得る。
【００３５】
一実施形態では、本明細書に記載のシステムは、いくつかの独立して実行するルール評価プロセッサを、各ルール評価プロセッサが１つ以上のルール評価キューからのルール評価ジョブを処理しながら、含んでもよい。一実施形態では、独立して実行するルール評価プロセッサは、マルチコアプロセッサのコアに相当し得る。例えば、キューイングモジュール１０８は、図２のバックエンド２０２の一部として、バックエンド２０２によって管理されるいくつかのルール評価キュー２１８にルール評価ジョブ２１４をキューイングし得る。各ルール評価キュー２１８からのジョブは、ルール評価プロセッサ２１６として機能するマルチコアプロセッサの別個の処理ユニットによって平行して評価され得る。
【００３６】
一実施形態では、本明細書に記載のシステムは、ルール評価プロセッサが１つ以上の分類ルールの１つ以上の項目を評価するのにかかる時間を測定し、測定された時間に基づいて項目に関する処理時間を推定してもよい。本明細書に記載のシステムはまた、ルール評価プロセッサが１つ以上の分類ルールを評価するのにかかる時間を測定し、測定された時間に基づいて分類ルールに関する処理時間を推定してもよい。例えば、推定モジュール１１４は、図２のバックエンド２０２の一部として、ルール評価プロセッサ２１６が分類ルール２１０の項目２１２を評価するのにかかる処理時間２２４を測定し、測定された処理時間２２４に基づいて処理時間推定値２２６を生成してもよい。推定モジュール１１４はまた、ルール評価プロセッサ２１６が分類ルール２１０全体を評価するのにかかる処理時間２２４を測定し、測定された処理時間２２４に基づいて分類ルール２１０に対する処理時間推定値２２６を生成してもよい。
【００３７】
推定モジュール１１４は、分類ルールに対する処理時間又は分類ルールの項目に対する処理時間を任意の好適な方法で推定してもよい。例えば、推定モジュールは、分類ルールのセット内の各項目に対する推定処理時間及び各分類ルール全体に対する推定処理時間を維持し得る。推定処理時間は、例えば、各ルール若しくは項目の一部若しくは全ての処理時間又は直近の処理時間の移動平均の、平均又は中央値を表してもよい。
【００３８】
工程３０８において、本明細書に記載のシステムのうち１つの以上は、ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信してもよい。例えば、結果モジュール１１０は、図２のバックエンド２０２の一部として、ルール評価プロセッサ２１６から、各ルール評価ジョブ２１４に関する評価結果２２０を受信してもよい。
【００３９】
本明細書で使用するとき、「評価結果」という用語は、概して、データオブジェクトが、分類ルールによって指定されたデータ分類の基準を満たすかどうかの判断を指す。結果モジュール１１０は、種々の態様で各ルール評価ジョブに関する評価結果を受信し得る。例えば、上述のように、ルール評価ジョブは、分類ルールから１つの項目を評価してもよい。結果モジュール１１０は、分類ルールの項目のそれぞれから評価結果を受信し得る。別の例では、ルール評価プロセッサは、１つのルール評価ジョブ内の分類ルール全体を評価し得る。結果モジュール１１０は次に、データオブジェクトが分類ルールに関連する分類に属するかどうかを示す評価結果を評価プロセッサから受信し得る。
【００４０】
工程３１０において、本明細書に記載のシステムのうちの１つ以上は、ルール評価ジョブに関する評価結果の受信に応じて、評価結果に従ってデータオブジェクトを分類し得る。例えば、分類モジュール１１２は、図２のバックエンド２０２の一部として、またルール評価ジョブ２１４に関する評価結果２２０の受信に応じて、評価結果２２０に従ってデータオブジェクト２０８を分類してもよい。
【００４１】
分類モジュール１１２は、種々の態様でデータオブジェクトを分類し得る。例えば、結果モジュール１１０が分類ルールの項目のそれぞれを別々に評価するいくつかのルール評価ジョブの結果を受信する場合、分類モジュール１１２は、評価結果のそれぞれを分類ルールのロジックに従って組み合わせてデータオブジェクトが分類ルールの基準を満たすかどうかを判断してもよい。別の例では、分類モジュール１１２は、結果モジュール１１０から分類ルール全体の評価の結果を示す評価結果を受信し得る。分類モジュール１１２は、データオブジェクが分類ルールに要約される基準を満たすかどうかを、更なる評価を実施しないで判断してもよい。
【００４２】
いくつかのルール評価ジョブからの評価結果の受信後、分類モジュール１１２は、データオブジェクトが分類ルールのセットのそれぞれに要約された基準を満たすかどうかを判断し得る。例えば、「Ｓｅｎｄｅｒ  ＯＵ＝‘Ｌｅｇａｌ’ＡＮＤ  Ｓｕｂｊｅｃｔ  ｄｏｅｓ  ｎｏｔ  ｃｏｎｔａｉｎ‘Ｐｅｒｓｏｎａｌ’」である場合に電子メールメッセージを「Ｌｅｇａｌ」と分類し得ると分類ルールが指定し、かつ電子メールメッセージがそれらの基準を満たすと分類モジュール１１２が判断した場合は、分類モジュール１１２は、電子メールメッセージを「Ｌｅｇａｌ」と分類し得る。いくつかの例では、ひとたび分類モジュール１１２が、データオブジェクトに分類を割り当てると、分類モジュール１１２は、データオブジェクトの他の分類ルールへの適合を評価するルール評価ジョブの実行を終了させてもよい。
【００４３】
データオブジェクトの分類の決定後、分類モジュール１１２は、データ管理システムに対するデータオブジェクトを、割り当てられた分類と共に識別し得る。いくつかの例では、分類モジュール１１２は、データ管理システムにデータオブジェクト分類が使用可能であることを通知し、データ管理システムによって要求されたときにデータオブジェクトの識別及びその割り当てられた分類を提供し得る。他の例では、分類モジュール１１２は、データオブジェクトの属性を割り当てられた分類に設定してもよい。例えば、分類モジュール１１２は、ファイル若しくは電子メールメッセージのメタデータタグ又はデータベースレコード内のフィールドを、データオブジェクトの割り当てられた分類を示す値に設定し得る。
【００４４】
図４は、データオブジェクトを効率よく分類するためのルール処理システム４００のブロック図である。図４に示されるように、ルール処理システム４００は、分類ルールのセット４０４に従ってメールボックス４０８内の電子メールメッセージ４１０を評価するルールコントローラ４０２を含み得る。分類ルールのセット４０４は、分類ルール４０６を含み得る。一実施形態では、ルールコントローラ４０２は、図２におけるシステム２００のバックエンド２０２を、図１におけるシステム１００のモジュール１０２と共に含んでもよい。
【００４５】
図４に示されるように、ルールコントローラ４０２は、「Ｓｅｎｄｅｒ  ＯＵ＝‘Ｌｅｇａｌ’ＡＮＤ  Ｒｅｃｉｐｉｅｎｔ  ｄｏｍａｉｎ＜＞‘ｏｒｇａｎｉｚａｔｉｏｎ．ｃｏｍ’ＡＮＤ  Ｈａｓ  ａｔｔａｃｈｍｅｎｔ  ＡＮＤ”Ａｔｔａｃｈｍｅｎｔ  ｆｉｌｅ  ｎａｍｅ  ｃｏｎｔａｉｎｓ‘Ｃｏｎｔｒａｃｔ’ｏｒ‘Ａｇｒｅｅｍｅｎｔ’ｏｒ‘Ｎｏｎ−ｄｉｓｃｌｏｓｕｒｅ’ｏｒ‘Ｌｉｃｅｎｓｅ’ＯＲ  Ｆｉｒｓｔ  ｐａｒａｇｒａｐｈ  ｏｆ  ｍｅｓｓａｇｅ  ｃｏｎｔａｉｎｓ‘ＣＯＮＦＩＤＥＮＴＩＡＬ’」である場合に電子メールメッセージを「Ｃｌｉｅｎｔ  ｌｅｇａｌ  ｄｏｃｕｍｅｎｔ」と分類する、分類ルール４０６の項目のそれぞれに従って電子メールメッセージ４１０を評価してもよい。履歴データに基づいて、ルールコントローラ４０２は、Ｓｅｎｄｅｒ  ＯＵ及びＲｅｃｉｐｉｅｎｔ  ｄｏｍａｉｎの評価は、Ａｔｔａｃｈｍｅｎｔ  ｆｉｌｅ  ｎａｍｅの評価よりも処理時間が短くて済むと判断し得る。ルールコントローラ４０２は、Ｓｅｎｄｅｒ  ＯＵ及びＲｅｃｉｐｉｅｎｔ  ｄｏｍａｉｎの評価をルール評価キュー４１２（１）に、並びにＡｔｔａｃｈｍｅｎｔ  ｆｉｌｅ  ｎａｍｅの評価をルール評価キュー４１２（２）にキューイングし得る。ルールコントローラ４０２はまた、メッセージが添付を有しない場合、Ａｔｔａｃｈｍｅｎｔ  ｆｉｌｅ  ｎａｍｅの評価が不要であること、及びしたがって「Ｈａｓ  ａｔｔａｃｈｍｅｎｔ」項目の評価がＡｔｔａｃｈｍｅｎｔ  ｆｉｌｅ  ｎａｍｅの評価の前にキューイングされるべきであることを判断し得る。ルール評価プロセッサ４１４（１）及び４１４（２）から分類ルール４０６の項目のそれぞれに対する評価結果４１６（１）及び４１６（２）を受信後、ルールコントローラ４０２は、メッセージが分類ルール４０６に従って「Ｃｌｉｅｎｔ  ｌｅｇａｌ  ｄｏｃｕｍｅｎｔ」と分類されてもよいかどうかを決定する。
【００４６】
より詳細に前述したように、本明細書に記載のシステム及び方法は、いくつかの使用可能なプロセッサを利用してルール評価ジョブを平行に実行して、分類ルールのセットに従って各データオブジェクトを評価し得る。更に、本明細書に記載のシステム及び方法は、過去の処理時間データを使用して、各分類ルール及び各分類ルール内の項目を評価するために要する処理時間を推定し得る。本明細書に記載のシステム及び方法は、推定処理時間を使用して、分類ルール及び各分類ルール内の項目の評価をキューイングして、各データオブジェクトについての分類に達する時間量を最小化し得る。本明細書に記載のシステム及び方法はまた、分類ルールのロジックを使用して、データオブジェクトについて適切な分類が決定されたときに終了するルール評価ジョブの更なる実行を可能にし得る。
【００４７】
図５は、本明細書に記載及び／又は図示する実施形態のうちの１つ以上を実装できる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書において説明される工程のうちの１つ以上（図３に例示する工程のうちの１つ以上など）を実施してもよく、及び／又は実施するための手段であってもよい。コンピューティングシステム５１０の全て又は一部分はまた、本明細書に記載された及び／又は図示された任意の別の工程、方法、又はプロセスを実施してもよく、及び／又は実施するための手段であってもよい。
【００４８】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することができる任意の単一又はマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム５１０の例としては、限定することなく、ワークステーション、ノートブック、クライアント側端末、サーバ、分散型計算システム、携帯用デバイス、又は任意の別のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４と、システムメモリ５１６と、を含んでもよい。
【００４９】
プロセッサ５１４は、データを処理すること、又は命令を解釈して実行することができる任意のタイプ又は形式の物理処理ユニット（例えば、ハードウェア実装中央処理ユニット）を概して表す。特定の実施形態では、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、プロセッサ５１４に、本明細書に記載及び／又は図示する例示的な実施形態のうちの１つ以上の機能を実施させてもよい。
【００５０】
システムメモリ５１６は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は非揮発性記憶デバイス若しくは媒体を概して表す。システムメモリ５１６の例としては、限定することなく、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態においてコンピューティングシステム５１０は、揮発性メモリユニット（例えば、システムメモリ５１６など）、及び非揮発性記憶デバイス（例えば、以下で詳細に説明するような１次記憶デバイス５３２など）の両方を含んでもよい。一例では、図１からのモジュール１０２のうちの１つ以上は、システムメモリ５１６にロードされてもよい。
【００５１】
特定の実施形態では、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ以上の構成要素又は要素を含んでもよい。例えば、図５に示すように、コンピューティングシステム５１０は、メモリコントローラ５１８と、入力／出力（Ｉ／Ｏ）コントローラ５２０と、通信インターフェース５２２と、を含んでもよく、これらのそれぞれは、通信インフラストラクチャ５１２を介して相互接続されてもよい。通信インフラストラクチャ５１２は、コンピューティングデバイスの１つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ５１２の例としては、限定することなく、通信バス（業界標準アーキテクチャ（ＩＳＡ）、周辺構成要素相互接続（ＰＣＩ）、ＰＣＩエクスプレス（ＰＣＩｅ）、又は類似のバスなど）、及びネットワークが挙げられる。
【００５２】
メモリコントローラ５１８は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム５１０の１つ以上の構成要素間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。例えば、特定の実施形態においてメモリコントローラ５１８は、通信インフラストラクチャ５１２を介して、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０の間の通信を制御してもよい。
【００５３】
Ｉ／Ｏコントローラ５２０は、コンピューティングデバイスの入出力機能を調整及び／又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態においてＩ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、表示アダプタ５２６、入力インターフェース５３０、及び記憶インターフェース５３４などのコンピューティングシステム５１０の１つ以上の要素の間のデータの転送を制御してもよく、又は容易にしてもよい。
【００５４】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と、１つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態において通信インターフェース５２２は、コンピューティングシステム５１０と追加のコンピューティングシステムを含むプライベート又は公衆ネットワークとの間の通信を容易にしてもよい。通信インターフェース５２２の例としては、限定することなく、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース５２２は、インターネットなどのネットワークへの直接的なリンクを介して、リモートサーバへの直接的な接続を提供してもよい。通信インターフェース５２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してもよい。
【００５５】
特定の実施形態では、通信インターフェース５２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム５１０と、１つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子技術者協会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及びエクスターナルＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース５２２はまた、コンピューティングシステム５１０が分散又は遠隔コンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース５２２は、実行のために、遠隔デバイスから命令を受信するか、又は遠隔デバイスに命令を送信してもよい。
【００５６】
図５に示すように、コンピューティングシステム５１０はまた、表示アダプタ５２６を介して、通信インフラストラクチャ５１２に連結される少なくとも１つの表示デバイス５２４を含んでもよい。表示デバイス５２４は、表示アダプタ５２６によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ５２６は、表示デバイス５２４上に表示するために、通信インフラストラクチャ５１２から（又は当該技術分野において既知のように、フレームバッファから）、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
【００５７】
図５に示すように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介して、通信インフラストラクチャ５１２に連結される少なくとも１つの入力デバイス５２８を含んでもよい。入力デバイス５２８は、コンピュータ又はヒトのいずれかによって生成された入力を、例示的なコンピューティングシステム５１０に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス５２８の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【００５８】
図５に示すように、例示的なコンピューティングシステム５１０はまた、ストレージインターフェース５３４を介して、通信インフラストラクチャ５１２に連結される１次記憶デバイス５３２及びバックアップ記憶デバイス５３３を含んでもよい。記憶デバイス５３２及び５３３は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。例えば、記憶デバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース５３４は、コンピューティングシステム５１０の記憶デバイス５３２及び５３３と、他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。一例では、図１からのデータベース１２０は、１次記憶デバイス５３２内に記憶され得る。
【００５９】
特定の実施形態では、記憶デバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能なストレージユニットから読み取るように、及び／又はそれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム５１０にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、記憶デバイス５３２及び５３３は、ソフトウェア、データ、他のコンピュータ可読情報を読み取る、及び書き込むように構成されてもよい。記憶デバイス５３２及び５３３は、コンピューティングシステム５１０の部分であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
【００６０】
多くの他のデバイス又はサブシステムは、コンピューティングシステム５１０に接続されてもよい。逆に、図５に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図５に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの１つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化され得る。「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光記憶媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹディスク）、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００６１】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム５１０にロードされてもよい。次いで、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全て又は一部分は、システムメモリ５１６及び／又は記憶デバイス５３２及び５３３の種々の部分に記憶されてもよい。プロセッサ５１４によって実行されるとき、コンピューティングシステム５１０にロードされたコンピュータプログラムは、本明細書において説明及び／又は図示する例示的な実施形態のうちの１つ以上の機能をプロセッサ５１４に実施させてもよく、及び／又はそれらを実施するための手段であってもよい。追加的に又は代替案として、本明細書において説明及び／又は図示される例示的な実施形態のうちの１つ以上は、ファームウェア及び／又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム５１０は、本明細書において開示される例示的な実施形態のうちの１つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００６２】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５がネットワーク６５０に連結されてもよい例示的なネットワークアーキテクチャ６００のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ６００の全て又は一部分は、単独又は他の要素との組合せのいずれかで、本明細書において開示される工程のうちの１つ以上（図３に例示する工程のうちの１つ以上など）を実施してもよく、及び／又は実施するための手段であってもよい。ネットワークアーキテクチャ６００の全て又は一部分はまた、本開示において記載された他の工程及び機能を実施するために使用されてもよく、及び／又は実施するための手段であってもよい。
【００６３】
クライアントシステム６１０、６２０、及び６３０は、図５の例示的なコンピューティングシステム５１０などの任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ６４０及び６４５は、種々のデータベースサービスを提供するように、及び／又は特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを概して表す。ネットワーク６５０は、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００の全て又は一部分を含んでもよい。
【００６４】
図６に示すように、１つ以上の記憶デバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取設されてもよい。同様に、１つ以上の記憶デバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取設されてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。特定の実施形態では、記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）は、ネットワークファイルシステム（ＮＦＳ）、サーバメッセージブロック（ＳＭＢ）、又は共通インターネットファイルシステム（ＣＩＦＳ）など種々のプロトコルを使用して、サーバ６４０及び６４５と通信するように構成されたネットワーク接続型記憶（ＮＡＳ）デバイスを表してもよい。
【００６５】
サーバ６４０及び６４５はまた、ストレージエリアネットワーク（ＳＡＮ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は、複数の記憶デバイス間の通信を容易にすることが可能な任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数の記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５との間の通信を容易にしてもよい。ＳＡＮファブリック６８０はまた、デバイス６９０（１）〜（Ｎ）及びアレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルに取設されたデバイスとして見えるような態様で、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、記憶デバイス６９０（１）〜（Ｎ）及び／又はインテリジェント記憶アレイ６９５との間の通信を容易にしてもよい。記憶デバイス６６０（１）〜（Ｎ）及び記憶デバイス６７０（１）〜（Ｎ）と同様に、記憶デバイス６９０（１）〜（Ｎ）及びインテリジェント記憶アレイ６９５は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の記憶デバイス又は媒体を概して表す。
【００６６】
特定の実施形態では、図５の例示的なコンピューティングシステム５１０参照すると、図５の通信インターフェース５２２などの通信インターフェースは、それぞれのクライアントシステム６１０、６２０、及び６３０と、ネットワーク６５０との間の接続性を提供するために使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０及び６４５上の情報にアクセスすることが可能であってもよい。かかるソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、又はインテリジェント記憶アレイ６９５によってホストされるデータにアクセスすることを可能にしてもよい。図６は、データを交換するためのネットワーク（インターネットなど）の使用を描写するが、本明細書において説明及び／又は例示する実施形態は、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
【００６７】
少なくとも１つの実施形態において、本明細書において開示される例示的な実施形態のうちの１つ以上の全て又は一部分は、コンピュータプログラムとしてコード化されてもよく、サーバ６４０、サーバ６４５、記憶デバイス６６０（１）〜（Ｎ）、記憶デバイス６７０（１）〜（Ｎ）、記憶デバイス６９０（１）〜（Ｎ）、インテリジェント記憶アレイ６９５、又はこれらの任意の組み合わせにロードされ、これらによって実行されてもよい。本明細書において開示される例示的な実施形態のうちの１つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ６４０内に記憶され、サーバ６４５によって実行され、ネットワーク６５０を通じてクライアントシステム６１０、６２０、及び６３０に分散されてもよい。
【００６８】
上記で詳述したように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００のうちの１つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、データオブジェクトを効率よく分類するための例示的な方法のうちの１つ以上の工程を実施し得るか、及び／又は実施するための手段であり得る。
【００６９】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、及び／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
【００７０】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００７１】
種々の実施形態において、図１の例示的なシステム１００の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるソフトウェアモジュールは、本明細書において説明される機能のうちの１つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書において説明されるソフトウェアモジュールのうちの１つ以上は、２つ以上のクライアント（例えば、顧客）が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの１つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。
【００７２】
種々の実施形態によれば、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び／又はデータは、仮想マシン内に存在し得る、及び／又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。追加的に又は代替案として、本明細書において説明されるモジュール及び／又はデータは、仮想化層内に存在し得る、及び／又はそこで実行し得る。本明細書において使用される際、「仮想化層」という用語は、概して、オペレーティングシステム環境に重なる、及び／又はそれから抽象化される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び／又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
【００７３】
一部の実施例において、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）能力などを制限する、制限されたプラットフォームを含む、１つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００７４】
加えて、図１の例示的なシステム１００の全て又は一部分は、情報管理のための１つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び／又はそれらによって消費されるデータを生成し得る。本明細書において使用される際、「情報管理」という用語は、データの保護、組織化、及び／又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、記憶システム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
【００７５】
いくつかの実施形態では、図１の例示的なシステム１００の全て又は一部分は、情報セキュリティのための１つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び／又はそれらと通信し得る。本明細書において使用される際、「情報セキュリティ」という用語は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
【００７６】
いくつかの例によれば、図１の例示的なシステム１００の全て又は一部分は、エンドポイントセキュリティのための１つ以上のシステムの一部分を表し得る、それらと通信し得る、及び／又はそれらから保護を受け得る。本明細書において使用される際、「エンドポイントセキュリティ」という用語は、不法及び／又は違法な使用、アクセス、及び／又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
【００７７】
本明細書において説明及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び／又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び／又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの１つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００７８】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び／又は例解されているが、これらの例示的な実施形態のうちの１つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書において開示される例示的な実施形態のうちの１つ以上を実施するように、コンピューティングシステムを構成し得る。
【００７９】
加えて、本明細書において説明されるモジュールのうちの１つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書において列挙されるモジュールのうちの１つ以上は、変換されるデータオブジェクト及び分類ルールを受信し、データオブジェクト及び分類ルールを変換し、変換の結果を出力して分類ルールに従ってデータオブジェクトを分類し、変換の結果を使用してデータオブジェクトをどのように処理するべきかを決定し、変換の結果を記憶してデータオブジェクトがどのように分類されたかを記録し得る。追加的に又は代替案として、本明細書において列挙されるモジュールのうちの１つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び／又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理コンピューティングデバイスのプロセッサ、揮発性メモリ、非揮発性メモリ、及び／又は任意の他の部分を１つの形式からもう１つの形式に変換してもよい。
【００８０】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【００８１】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
2019502998.tif 000003
【図２】
2019502998.tif 000004
【図３】
2019502998.tif 000005
【図４】
2019502998.tif 000006
【図５】
2019502998.tif 000007
【図６】
2019502998.tif 000008
【手続補正書】
【提出日】平成30年6月15日(2018.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データオブジェクトを効率よく分類するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法が、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信することであって、各分類ルールが少なくとも１つの項目を含む、ことと、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内の前記項目を評価する、ことと、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入することであって、前記ルール評価ジョブが推定処理時間の長い順に投入される、ことと、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、
前記ルール評価ジョブに関する前記評価結果を受信することに応じて、前記評価結果に従って前記データオブジェクトを分類することと、を含む方法。
【請求項２】
複数の独立して実行するルール評価プロセッサを更に含み、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記ルール評価ジョブが、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、請求項１又は２に記載のコンピュータ実装方法。
【請求項４】
前記分類ルールのうちの少なくとも１つの項目が、前記ルール評価プロセッサによって評価される前記データオブジェクトの一部を指定する、請求項１、２、又は３に記載のコンピュータ実装方法。
【請求項５】
前記ルール評価プロセッサが少なくとも１つの分類ルールのうちの少なくとも１つの項目を評価するのにかかる時間を測定することと、
前記測定された時間に基づいて前記項目に関する処理時間を推定することと、を更に含む、請求項１、２、３、又は４に記載のコンピュータ実装方法。
【請求項６】
前記ルール評価プロセッサが少なくとも１つの分類ルールを評価するのにかかる時間を測定することと、
前記測定された時間に基づいて前記分類ルールに関する処理時間を推定することと、を更に含む、請求項１、２、３、４、又は５に記載のコンピュータ実装方法。
【請求項７】
データオブジェクトを効率よく分類するためのシステムであって、前記システムが、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトにアクセスするための手段であって、各分類ルールが少なくとも１つの項目を含む、手段と、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成するための手段であって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内部の前記項目を評価する、手段と、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入するための手段であって、前記ルール評価ジョブが推定処理時間の長い順に投入される、手段と、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信するための手段と、
前記ルール評価ジョブに関する前記評価結果の受信に応じて、前記評価結果に従って前記データオブジェクトを分類するための手段と、を含む方法。
【請求項８】
複数の独立して実行するルール評価プロセッサを更に含み、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項７に記載のシステム。
【請求項９】
前記作成するための手段によって作成された前記ルール評価ジョブが、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、請求項７又は８に記載のシステム。
【請求項１０】
前記分類ルールのうちの少なくとも１つの項目が、前記ルール評価プロセッサによって評価される前記データオブジェクトの一部を指定する、請求項７、８、又は９に記載のシステム。
【請求項１１】
前記ルール評価プロセッサが少なくとも１つの分類ルールのうちの少なくとも１つの項目を評価するのにかかる時間を測定し、
前記測定された時間に基づいて前記項目に関する処理時間を推定する、推定するための手段を更に含む、請求項７、８、９、又は１０に記載のシステム。
【請求項１２】
前記推定するための手段が、
前記ルール評価プロセッサが少なくとも１つの分類ルールを評価するのにかかる時間を測定し、
前記測定された時間に基づいて前記分類ルールに関する処理時間を推定する、請求項１１に記載のシステム。
【請求項１３】
１つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令が、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
データオブジェクトを分類するための複数のルールに従って分類されるデータオブジェクトを受信させることであって、各分類ルールが少なくとも１つの項目を含む、ことと、
前記複数の分類ルール中の各分類ルールに対して、前記分類ルール内の前記項目に従って前記データオブジェクトを評価するようにルール評価プロセッサに指示するルール評価ジョブを作成することであって、前記ルール評価プロセッサが、推定処理時間の短い順に前記分類ルール内部の前記項目を評価する、ことと、
前記複数の分類ルールに対して作成された前記ルール評価ジョブを、前記ルール評価プロセッサで処理するために少なくとも１つのルール評価キューに投入することであって、前記ルール評価ジョブが推定処理時間の長い順に投入される、ことと、
前記ルール評価プロセッサから、各ルール評価ジョブに関する評価結果を受信することと、
前記ルール評価ジョブに関する前記評価結果を受信することに応じて、前記評価結果に従って前記データオブジェクトを分類することと、を実行させる非一過性コンピュータ可読媒体。
【請求項１４】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、複数の独立して実行するルール評価プロセッサによりサービスされる少なくとも１つのルール評価キューに前記ルール評価ジョブを投入させ、各ルール評価プロセッサが、少なくとも１つのルール評価キューからのルール評価ジョブを処理する、請求項１３に記載の非一過性コンピュータ可読媒体。
【請求項１５】
前記１つ以上のコンピュータ可読命令が、前記コンピューティングデバイスに、
前記ルール評価プロセッサに、論理的に結合された項目のセットを含む分類ルールに従って前記データオブジェクトを評価するように指示し、各項目が前記データオブジェクトの少なくとも１つの属性を評価し、
前記論理的に結合された項目のうちの少なくとも１つの評価が否定的結果を生じたときに、前記ルール評価プロセッサに前記分類ルールの評価を終了するように指示する、前記ルール評価ジョブを作成するようにさせる、請求項１３又は１４に記載の非一過性コンピュータ可読媒体。
【国際調査報告】
2019502998.tif 000009
2019502998.tif 000010
2019502998.tif 000011