(57)【特許請求の範囲】
【請求項１】
データを暗号化された状態で記憶する第１記憶部と、
データを暗号化されていない状態で記憶する第２記憶部と、
条件と当該条件が満たされた場合の動作とを規定した実行規則を指定する指定部と、
前記第１記憶部および前記第２記憶部のうち前記第２記憶部を優先的に参照し、前記指定部にて指定された実行規則に規定された条件を判定するために必要な対象データを特定し、当該条件が満たされたか否かを該特定された対象データに基づき判定する判定部と、
前記判定部にて前記条件が満たされたと判定された場合、当該条件に係る実行規則に規定された動作を実行する実行部と、
前記対象データと当該対象データを参照する実行規則とに基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する記憶制御部と
を有する情報処理装置。
【請求項２】
前記データを取得する取得部と、
該取得されたデータを前記第１記憶部に記憶させるために暗号化する暗号化部と
を更に有し、
前記判定部は、該取得されたデータに対し前記対象データであるか否かの判定を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１記憶部に記憶されたデータを復号する復号部と、
前記復号部にて前記対象データの復号処理に要する時間を算出する時間算出部を更に有し、
前記記憶制御部は、該算出された時間を用いて、当該対象データを前記第２記憶部に記憶するか否かを判定する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記記憶制御部は、前記対象データのサイズに基づいて、当該対象データを前記第２記憶部に記憶するか否かを判定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記対象データには複数のデータ要素が含まれ、
前記記憶制御部は、前記対象データに含まれる一のデータ要素に対し、当該対象データに含まれる他のデータ要素に基づいて、前記第２記憶部に記憶するか否かの決定を行う
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記記憶制御部は、前記対象データが過去に前記判定部にて特定された回数に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記記憶制御部は、前記対象データに係る実行規則が過去に指定された回数に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
各データについて前記復号部にて復号に要した時間を記憶する復号時間記憶部を更に有し、
前記記憶制御部は、前記復号時間記憶部に記憶された、前記対象データの復号時間に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項９】
前記記憶制御部は、前記第２記憶部の空き容量に更に基づいて、前記対象データを前記第２記憶部に記憶するか否かを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項１０】
条件と当該条件が満たされた場合の動作とを規定した実行規則の指定を受け付けるステップと、
データを暗号化された状態で記憶する第１記憶部およびデータを暗号化されていない状態で記憶する第２記憶部のうち前記第２記憶部を優先的に参照し、該指定された実行規則に規定された条件を判定するために必要な対象データを特定し、当該条件が満たされたか否かを該特定された対象データに基づき判定するステップと、
前記条件が満たされたと判定された場合、当該条件に係る実行規則に規定された動作を実行するステップと、
前記対象データと当該対象データを参照する実行規則とに基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定するステップと
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶されたデータに依存する実行条件が満たされたときに情報処理を実行する技術に関する。
【背景技術】
【０００２】
データベースに蓄積された情報が特定の条件を満たした場合に所定の機能を実行する技術がある。例えば、ＥＣＡルールとよばれる実行条件と実行機能を規定する技術では、イベント（判定契機）、コンディション（判定条件）、アクション（機能の実行）を指定することで、指定されたイベントが発生した際に、コンディションに記載された条件を満たせば、アクションを実行する。
ところで、データベースに保存するデータが機密性を要する場合、暗号化データベースを利用することで情報漏洩を防止する技術が知られている。このような暗号化技術をＥＣＡ技術にそのまま適用すると、条件判定を実行する際にデータベース内の暗号化された情報を復号することが必要となるため、処理時間が長くなる（応答性が悪化する）という問題がある。
ここで、暗号化文書を保存したデータベースから文書をキーワード検索する際に、検索処理を高速化するための技術が特許文献１に開示されている。具体的には、検索日、キーワード、文書名をキャッシュしておき、検索日や出現頻度でスコアリングする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３９５６１１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の発明は、検索条件に関する情報（キーワード）を記憶しておき、検索条件に関する情報が記憶されている場合は文書名を出力するというものであり、データは暗号化されたままである。従って、ＥＣＡ技術のように、条件判定を行う際にデータの内容を解釈する必要がある場合は、結局、暗号化されたデータをその都度復号処理することになるので、特許文献１に記載の発明を用いても処理速度の向上にはあまり寄与しない。
本発明は、記憶されたデータのセキュリティを確保しつつ、当該データに依存する条件の判定処理を高速化すること目的とする。
【課題を解決するための手段】
【０００５】
上述した課題を解決するため、本発明は、データを暗号化された状態で記憶する第１記憶部と、データを暗号化されていない状態で記憶する第２記憶部と、条件と当該条件が満たされた場合の動作とを規定した実行規則を指定する指定部と、前記第１記憶部および前記第２記憶部のうち前記第２記憶部を優先的に参照し、前記指定部にて指定された実行規則に規定された条件を判定するために必要な対象データを特定し、当該条件が満たされたか否かを該特定された対象データに基づき判定する判定部と、前記判定部にて前記条件が満たされたと判定された場合、当該条件に係る実行規則に規定された動作を実行する実行部と、前記対象データと当該対象データを参照する実行規則とに基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する記憶制御部とを有する情報処理装置を提供する。
好ましい態様において、前記データを取得する取得部と、該取得されたデータを前記第１記憶部に記憶させるために暗号化する暗号化部とを更に有し、前記判定部は、該取得されたデータに対し前記対象データであるか否かの判定を行う。
他の好ましい態様において、前記第１記憶部に記憶されたデータを復号する復号部と、前記復号部にて前記対象データの復号処理に要する時間を算出する時間算出部を更に有し、前記記憶制御部は、該算出された時間を用いて、当該対象データを前記第２記憶部に記憶するか否かを判定する。
更に他の好ましい態様において、前記記憶制御部は、前記対象データのサイズに基づいて、当該対象データを前記第２記憶部に記憶するか否かを判定する。
更に他の好ましい態様において、前記対象データには複数のデータ要素が含まれ、前記記憶制御部は、前記対象データに含まれる一のデータ要素に対し、当該対象データに含まれる他のデータ要素に基づいて、前記第２記憶部に記憶するか否かの決定を行う。
更に他の好ましい態様において、前記記憶制御部は、前記対象データが過去に前記特定部にて特定された回数に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する。
更に他の好ましい態様において、前記記憶制御部は、前記対象データに係る実行規則が過去に指定された回数に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する。
更に他の好ましい態様において、各データについて前記復号部にて復号に要した時間を記憶する復号時間記憶部を更に有し、前記記憶制御部は、復号時間記憶部に記憶された、前記対象データの復号時間に基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定する。
更に他の好ましい態様において、前記記憶制御部は、前記第２記憶部の空き容量に更に基づいて、前記対象データを前記第２記憶部に記憶するか否かを決定する
本発明は、他の観点において、データを暗号化された状態で第１記憶部に記憶するステップと、データを暗号化されていない状態で第２記憶部に記憶するステップと、条件と当該条件が満たされた場合の動作とを規定した実行規則を指定するステップと、前記第１記憶部および前記第２記憶部のうち前記第２記憶部を優先的に参照し、該指定された実行規則に規定された条件を判定するために必要な対象データを特定し、当該条件が満たされたか否かを該特定された対象データに基づき判定するステップと、前記条件が満たされたと判定された場合、当該条件に係る実行規則に規定された動作を実行するステップと、前記対象データと当該対象データを参照する実行規則とに基づいて、当該対象データを前記第２記憶部に記憶するか否かを決定するステップとを有する情報処理方法を提供する。
【発明の効果】
【０００６】
本発明によれば、記憶されたデータのセキュリティが確保されつつ、当該データに依存する条件の判定処理が高速化される。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置１００の機能ブロック部である。
【図２】実行規則テーブルＴｒの記憶内容の一例である。
【図３】情報処理装置１００の動作例である。
【図４】テーブルＴｃ１の記憶内容の一例である。
【図５】テーブルＴｃ２の記憶内容の一例である。
【図６】テーブルＴｃ３の記憶内容の一例である。
【図７】キャッシュ要否判定処理の一例を説明する図である。
【図８】情報処理装置１００の他の動作例である。
【発明を実施するための形態】
【０００８】
以下、図面を参照しつつ本発明の実施形態を説明する。
１．構成
図１は、情報処理装置１００の機能構成を示す。同図に示すように、情報処理装置１００は、大きく、入出力モジュールと制御モジュールと記憶モジュールとから構成される。
入出力モジュールは、アプリケーションの動作結果等を表示するための表示部、他の機器との間でデータのやりとりを行う通信インタフェース、データを入力するキーボードやマウスやタッチパネル、外部記憶装置によって実現される（ハードウェア構成の図示は省略）。制御モジュールは、ＣＰＵ等のプロセッサによって実現される。なお、プロセッサの実装態様は任意であって、特定部１０９、条件判定部１０３、実行部１０４の機能を実現できればよい。これらの機能は、例えばＣＰＵがＯＳプログラムを実行することによって実現される。
記憶モジュールは、第１記憶部ＤＢ１、第２記憶部ＤＢ２および第３記憶部ＤＢ３を含み、ハードディスク、ＲＯＭ、その他の記憶装置によって実現される。なお、第１記憶部ＤＢ１、第２記憶部ＤＢ２、第３記憶部ＤＢ３はハードウェアとしての記憶装置と１対１に対応している必要はない。例えば、それぞれ１つのハードウェアの異なる３つの記憶領域として実装されていてもよい。また、記憶モジュールの少なくとも一部を情報処理装置１００内部に設けるのではなく他の機器に設け、入出力モジュールを構成する通信インタフェース（図示せず）を介して記憶モジュールとの間でデータの読み出し／書き込みを行ってもよい。
【０００９】
情報処理装置１００は、汎用のコンピュータや携帯端末、ＰＤＡ、携帯電話機、スマートフォンその他の下記情報処理機能を有する電子機器であればよく、その用途は問わない。情報処理装置１００は、付加的機能（例えば通話機能、音楽再生機能、各種アプリケーションを実行する機能）を有していても構わない。以下では、情報処理装置１００は、付加的機能としてディスプレイ（図示せず）と無線通信モジュールと、電子メール送受信機能を備えた携帯端末を想定する。
【００１０】
各機能部について、以下詳細に説明する。規則指定部１０１は実行規則の指定を受け付ける。実行規則とは、条件と当該条件が満たされた場合の動作とを規定するものである。実行規則はユーザがキーボード等から入力してもよいし、図２に示すように、第３記憶部ＤＢ３に記憶された実行規則テーブルＴｒに記憶されていてもよい。実行規則を指定するタイミングは任意である。例えば、情報処理装置１００の起動時に、あるいは所定の時間間隔ごとに読み出してもよいし、ユーザの所望するタイミングで指定してもよい。あるいは、記憶制御部１０８においてデータを取得するタイミングと関連付けてもよい。例えば、記憶制御部１０８にてデータを新たに取得すると同時に１つの実行規則を第３記憶部ＤＢ３から読み出してもよい。あるいは、記憶制御部１０８にて取得したデータが所定量蓄積された場合、あるいは第１記憶部ＤＢ１または第２記憶部ＤＢ２の少なくともいずれか一方に記憶されているデータの量が所定値に達した場合に、実行規則が設定されるようにしてもよい。
【００１１】
データ取得部１１０はデータを取得する。このデータには、情報処理装置１００において各種アプリケーションプログラム（以下、アプリという）の実行によって出力された情報が含まれる。例えば、所定の機能が実行された際に出力されるログや、ユーザ操作において発生するログや、センサにより検出したセンサデータ等である。これらのデータは、ユーザの行動、操作や状態を表す個人的な情報でセキュリティ確保が必要なものを含んでいてもよい。また、このデータは情報処理装置１００の装置から取得されたものであってもよい。
取得されたデータは第１記憶部ＤＢ１または第２記憶部ＤＢ２の少なくともいずれかに記憶され、ＤＢ１およびＤＢ２をあわせたデータベースを構成するデータ要素となると当時に、以後検索等の各種情報処理の対象（参照対象）となる。
【００１２】
第１記憶部ＤＢ１は、所定のアルゴリズムを用いて暗号化された状態でデータを記憶するデータベースである。好ましくは、第１記憶部ＤＢ１は、読み出し／書き込みスピードよりも大容量性を重視した記憶装置によって実現される。具体的には、情報処理装置１００内の機能部から供給されたデータを第１記憶部ＤＢ１に記憶する場合、暗号化部１０６がデータを暗号化した後、第１記憶部ＤＢ１に記憶する。逆に、第１記憶部ＤＢ１からデータを読み出す場合は、復号部１０７によって復号されて他の機能部に引き渡される。これにより、仮に他の装置や情報処理装置１００内で起動している悪意のあるコードを含むアプリの実行されてユーザが第１記憶部ＤＢ１の記憶内容を閲覧しデータの存在を把握することができたとしても、データの中身（情報の内容）を確認することまではできない。本実施例においては、記憶制御部１０８にて取得したデータは、全て一旦第１記憶部ＤＢ１に記憶され、セキュリティが確保されるようになっている。
【００１３】
第２記憶部ＤＢ２は、データを暗号化されていない状態で記憶する。第１記憶部ＤＢ１とは異なり、書き込み・読み出し時に暗号化・復号処理を実行する必要がないので、第２記憶部ＤＢ２内のデータに対しては高速にアクセス（読み書き）することができる。好ましくは、大容量性よりもＲＡＭなどアクセススピードが高速な特性の記憶媒体（いわゆるキャッシュメモリ）で、且つ起動中のアプリ以外のアプリによってアクセスされにくい記憶媒体によって実現される。
【００１４】
第３記憶部ＤＢ３は、第１記憶部ＤＢ１、第２記憶部ＤＢ２とは異なり、各種情報処理の対象となるデータを記憶する記憶部ではなく、本発明の機能を実現するために必要な情報（テーブルなど）、情報処理装置１００の付加的機能を実現するためのアプリケーションプログラム（以下、単にアプリという）や、上記機能を実現するために実行されるＯＳ（オペレーティングシステム）プログラム、その他の設定情報や履歴情報などが記憶される。
【００１５】
特定部１０９は、対象データ特定部１０２と条件判定部１０３とから構成される。対象データ特定部１０２は、第１記憶部ＤＢ１および第２記憶部ＤＢ２うち第２記憶部ＤＢ２を優先的に参照し、規則指定部１０１にて指定された実行規則に規定される条件を判定するために必要な対象データを特定する。第２記憶部ＤＢ２を優先的に参照するのはシステムの効率（データへのアクセススピード）の向上を意図したものである。ここで、「第２記憶部ＤＢ２を優先的に参照する」とは、例えば、第２記憶部のみを検索する動作を含む。第２記憶部ＤＢ２において対象データが見つからない場合は、第１記憶部内を検索してもよいし、条件判定処理を終了してもよい。要するに、「優先的に」とは、少なくとも第２記憶部ＤＢ２については参照対象とすることを意味する。よって、必ずしも第１記憶部ＤＢ１内の検索を完了し、所望のデータが見つからなかったことが判明してから第２記憶部ＤＢ２内の検索を開始するアクセス態様のみを意味するものではない。例えば、第２記憶部ＤＢ２へアクセスと同時に第１記憶部ＤＢ１へアクセスが行われてもよい。要は、第１記憶部ＤＢ１および第２記憶部ＤＢ２に記憶されたデータにアクセスする際に、情報処理装置１００全体の応答性が向上するように、対象データ特定部１０２は第１記憶部ＤＢ１および第２記憶部ＤＢ２へのアクセスを制御する。
【００１６】
対象データとは、例えば、１つのファイルであってもよいし、複数のファイル（複数のデータ要素、データ群）であってもよい。複数のファイルとは、例えば、所定のフォルダ内に含まれる全てのファイルでであってもよいし、所定のデータ属性を満たす全てのファイルであってもよい。換言すると、「対象データ」の最小単位の設定は任意である。
【００１７】
対象データの内容やその特定方法については、任意である。例えば、実行規則が「アプリＡの起動回数が所定値に達すること」という条件と、この条件が満たされた場合は「所定メッセージを表示する」という内容とを含むものである場合（図２の実行規則１）、対象データ特定部１０２は、第２記憶部ＤＢ２および第１記憶部ＤＢ１を参照し、アプリＡの実行ファイルが格納されているフォルダと同じフォルダを検索し、拡張子が“*.log”であるログファイルを対象データであると特定する。なお、対象データの特定方法については、ユーザが入出力モジュールを介して入力することによって指定してもよいし、第３記憶部ＤＢ３に記憶されていてもよい。
同様に、「アプリの起動時間が所定値に達すること」が条件である場合（図２の実行規則２）、当該アプリの実行ファイルが格納されているフォルダと同じフォルダ内に、当該アプリが起動された時刻および当該アプリが終了された時刻を記憶したログファイルを特定し、これを対象データであると特定する。
【００１８】
実行規則には、条件の内容に加え、対象データを特定する指針や方法が記述されていてもよい。例えば、図２の実行規則３のように、条件として「位置情報アプリによって同一の位置情報が複数回書き込まれたこと（”xxx.log"）」が実行規則として記述される。この場合は、“xxx.log"が対象データとして特定される。なお、同一の位置情報とは、厳密な同一性が要求されるものではなく、例えば所定の位置から所定の距離範囲内に入った場合を意味してもよい。この位置情報は、例えば、情報処理装置１００が携帯通信端末である場合において、端末の電源がオンになっている状態において定期的に無線電波を受信することにより取得されるものである。
また、所定のファイル属性を有する全てのファイルの数に所定の統計処理を施した結果が所定値以上となるような内容の条件を含む実行規則（図２の実行規則４、５がその一例）が指定されている場合は、所定のファイル属性を有する全てのファイルが対象データとして特定される。
【００１９】
他の条件の例としては、所定の種類のログファイルが情報処理装置１００にて過去に生成されたことを設定してもよい（図２の実行規則６）。所定の種類とは、例えば、入出力モジュールを構成するディスプレイが点灯されたときや画面の明るさ設定が変更された際に生成されるログ情報、情報処理装置１００がロック機能（電源オフ情報またはスリープ状態から復帰する際にユーザにパスフレーズの入力を求める機能）を有している場合におけるロックが解除されたこととその時刻を表すログ情報、情報処理装置１００がタッチパネルを有している場合においてタッチ操作がなされたこと（およびその操作内容）を表すログ情報、あるいは情報処理装置１００が速度センサ・加速度センサ等を有している場合においてセンサが情報を取得したことや取得されたセンサデータを記述したログ情報である。
なお、センサ情報のようにデータ（値）が連続的または断続的に取得されてログファイルに書き込まれる場合においては、例えば、ログ情報に現在記述されている値のうち予め定められ閾値を超えた値のみについて、情報が取得された（換言すればログ情報が生成された）とみなしてもよい。
【００２０】
また、ログ情報が生成されたことに替えて、過去に発生した回数（ログ情報の蓄積量）が条件として設定されてもよい。あるいは、ログ情報が発生した事実や回数と、その発生時刻（発生頻度）が条件として設定されてもよい。例えば、複数のイベント発生に関連性がある場合において、対応して発生するログの種別を２種類指定し、ログ情報の生成された時間をそれぞれログファイルの属性として取得する。そして、２つのログ情報の比較結果に依存した条件を設定する。具体的には、画面が点灯されたときに生成されるログ（ログ１という）と画面が消灯されたときに生成されるログ（ログ２という）がある場合、ログ２の生成時刻とログ１の生成時刻の差が所定値以上である（つまり画面点灯から画面消灯までの時間が所定値以上であることを意味する）ことを条件に設定してもよい。
【００２１】
また、条件は複数設定されてもよい。例えば「アプリＡの起動回数が所定値に達すること」かつ「蓄積されたログファイルの数が所定値を超えたこと」という条件が設定されてもよい。換言すれば、条件の内容や条件を判定するための対象データは複数であってもよい。
【００２２】
条件判定部１０３は、対象データ特定部１０２にて特定された対象データに基づき、実行規則に規定された条件が満たされたか否かを判定する。例えば、条件が「アプリＡの起動回数が所定値に達すること」という条件である場合において対象データがファイル名“abc.log”のファイルであると特定された場合は、そのファイルに記載された情報（ファイルの内容）を解釈し、その解釈結果に基づきアプリＡの起動回数が所定値に達したか否かを判定する。
【００２３】
実行部１０４は、条件判定部１０３にて条件が満たされたと判定された場合、当該条件に係る実行規則に規定された動作（実行内容）を実行する。例えば、「所定メッセージを表示する」という実行内容の場合（図２の実行規則１参照）、アプリＡが未起動の場合は第３記憶部ＤＢ３に記憶されているアプリＡを起動し、所定のメッセージ情報とメッセージ情報を表示される命令をアプリＡに引き渡す。また、図２の実行規則２のように、起動すべきアプリが指定され、当該アプリの起動（および当該アプリに引き渡すデータ）が指定されてもよい。この場合、条件とは直接関係のないアプリが指定されてもよい（図２の実行規則２〜６参照）。
例えば、図２の実行規則２において、アプリＣはメッセージを表示するためのアプリケーションであるとすると、アプリＣが起動され、所定のメッセージデータが引き渡され、所定メッセージを表示する命令が入出力モジュールに含まれる画像処理プロセッサ（図示せず）に供給される。この結果、画面に所定メッセージが表示される。この際、アプリＣが記憶モジュールからのデータの読み出し命令を含む場合は、必要に応じて第１記憶部ＤＢ１や第２記憶部ＤＢ２にアクセスしてもよい。
なお、所定の機能を実現させるために、アプリの実行ファイル（例えば“***.exe“形式のファイル）を明示的に指定し、機能部１０４の動作と独立してそのアプリを実行するのではなく、機能の連携方法を指定してもよい。例えば、情報処理端末１００に、アクティビティの連携をとる機能を有するAndroid（登録商標）ＯＳを搭載し、実行する機能が画面表示に関係するものである場合において、intentを発行することで所望の機能を実行させる。より具体的には、実行部１０４は、送り先とパラメータと内包されたintentクラスを作成してstartActivityメソッドを用いて引き渡す。
あるいは、実行部１０４の機能の一部として、所定の処理（例えばメッセージの表示）を実行する機能を設けておき、この機能を用いて所望の機能（例えば所定メッセージの表示）を実現させてもよい。
【００２４】
記憶制御部１０８は、メモリコントローラであり、対象データ特定部１０２で特定された対象データと当該対象データを参照する実行規則とに基づいて、当該対象データを第２記憶部ＤＢ２に記憶するか否かを判定する（以下、キャッシュ要否判定という）。そして、判定結果に従って対象データを第２記憶部ＤＢ２への書き込む。また、決定の際、必要に応じて第１記憶部ＤＢ１、第２記憶部ＤＢ２，第３記憶部ＤＢ３からデータを読み出す。なお、記憶制御部１０８は、第１記憶部ＤＢ１および第２記憶部ＤＢ２に記憶されている情報を随時監視しており、データを書き込む前には同一のデータが同一のＤＢ記憶されていないことを確認する。従って、同一のデータが重複して第２記憶部ＤＢ２に記憶することはない。以下の記載において「第２記憶部ＤＢ２にデータを記憶する」とある場合、当該データと同一のデータがすでに第２記憶部ＤＢ２に記憶されている場合は、実質的に、その記憶された状態を保つ（第２記憶部ＤＢ２の記憶内容に何も変化を与えない）という情報処理を行うことを意味する。
【００２５】
暗号化・復号部１０５は、暗号化部１０６と復号部１０７とを含む。暗号化・復号部１０５は、実行部１０４、対象データ特定部１０２、記憶制御部１０８からの命令に応じて、対象データ特定部１０２から供給されたデータに対して所定の暗号アルゴリズムに従って暗号化処理を施した上で第１記憶部ＤＢ１に記憶するとともに、所定の復号アルゴリズムに従って暗号化・復号部１０５から読み出して復号した上で出力する。
【００２６】
２．全体動作の概要
図３は情報処理装置１００の動作例である。ここでは、ユーザからの入力によりまたは所定の条件が満たされたことにより実行規則が指定される（Ｓ１００）。情報処理装置１００がデータを新たに取得すると（Ｓ１１０）、第１記憶部ＤＢ１に記憶される（Ｓ１１１）。次に、入力されたデータが当該実行規則の対象データあるか否かが判定される（Ｓ１１２）。取得されたデータが対象データでなかった場合（Ｓ１１２；Ｎ）、処理は終了する。つまり、入力されたデータは暗号化されて格納されただけである。仮に（少なくとも現状の実行規則に関しては）対象データでないデータを第１記憶部ＤＢ１に記憶するとすれば、空き容量がその分減るというデメリットが確実に生じる一方、第１記憶部ＤＢ１に記憶してもキャッシュヒット率の向上に寄与しない可能性が高いと推定されるからである。
【００２７】
一方、対象データと判定された場合（Ｓ１１２；Ｙ）、当該データに対してキャッシュ要否判定が実行される（Ｓ１０２）。キャッシュ要否判定は、キャッシュにヒットしたときの読み出し速度（応答性）の向上の程度および記憶モジュールの利用頻度（リソースの有効活用）のうち少なくともいずれか一方に寄与するように（換言すればシステムのパフォーマンスが向上するように）実行される。キャッシュ要と判定されたデータについては第２記憶部ＤＢ２に記憶され（Ｓ１０３）、キャッシュ不要と判定された対象データについては第２記憶部ＤＢ２には記憶されない（Ｓ１０４）。この結果、キャッシュ不要と判定された対象データについては第２記憶部ＤＢ２のみに記憶される一方、キャッシュ要と判定されたデータについては、第１記憶部ＤＢ１と第２記憶部ＤＢ２の両方に記憶されることになる。
なお、第２記憶部ＤＢ２に対象データ書き込むと決定された場合で、当該データを書き込むのに第２記憶部ＤＢ２の記憶容量が不足している場合は、所定のアルゴリズム（例えば第２記憶部ＤＢ２に記憶された日時の古い順）に従って、記憶に必要な領域が確保されるように、第２記憶部ＤＢ２に記憶されているデータを削除してもよい。
【００２８】
続いて、実行規則に規定されている条件が満たされているか否かが判定される（Ｓ１２０）。条件が満たされていた場合は、当該実行規則に規定されている実行内容に従って動作が行われ（Ｓ１３０）、処理は終了する。
【００２９】
本実施例によれば、原則としてデータは暗号化されるのでセキュリティが確保される一方、データと実行規則とを考慮してキャッシュの必要性が高いと推測されたデータについてはＤＢ２に記憶されるので、情報処理装置１００全体の情報処理速度が向上する。また、データを取得するたびにキャッシュ要否判定が行われ、その都度キャッシュの内容が更新されうるから、セキュリティ確保と条件判定処理の高速化とが両立した状態が維持される。
【００３０】
３．キャッシュ要否判定の内容
キャッシュ要否判定について詳細に説明する。
（１）概要
キャッシュ処理の要否は、対象データおよび実行規則に基づいて決定される。より具体的には、データの属性（例えばデータのサイズや種類など、復号処理時間を左右する要素）に実行規則の内容を考慮する。その理由は、データの属性は復号処理時間の短縮の程度（すなわちシステムの応答性向上の効果）を左右する一方、実行規則の内容は主にキャッシュのヒット率を左右するからである。
【００３１】
キャッシュ要否判定に用いる指針としては、一例としては、対象データのデータのサイズが大きいものほど優先的に第２記憶部ＤＢ２に記憶される、というものが採用される。これは、一般的に、データサイズは復号処理時間に比例するから、データサイズがより大きいものが暗号化されていない状態でアクセスされる可能性が高くなるので、応答性向上の効果がより高くなると見込まれるという知見に基づくものである。
【００３２】
また、対象データの属性に加えて実行規則の内容を考慮するのは、ヒット率を考慮したものである。例えば、データサイズが小さく復号処理にそれほどかからないようなデータであっても、頻繁にそのデータを参照するような処理が今後発生すると見込まれる場合は、そのデータは第２記憶部ＤＢ２に記憶しておくほうが、長期的に見てシステムのパフォーマンスが向上するという知見に基づくものである。このように、本実施例においては、復号処理時間とは異なる観点から、将来対象データとなる確率（実行規則によって対象データに指定される確率）が高いと推定されるデータについては、優先的に第２記憶部ＤＢ２に記憶させておくという指針が導入される。
【００３３】
さらに、データと実行規則とに加え、第２記憶部ＤＢ２の空き容量に基づいて、キャッシュ要否を判定してもよい。具体的には、第２記憶部ＤＢ２の空き容量と対象データのサイズとに基づいて決定する。一例としては、まず、空き容量の対象データに対する割合（例えば空き容量が１００ＭＢ（メガバイト）であり、対象データが５０ＭＢであれば、５０％）が所定の値以下である場合のみ、第２記憶部ＤＢ２に記憶すると決定する。これは、対象データを第２記憶部ＤＢ２に記憶した場合に空き容量が小さくなってしまうと、現在キャッシュ要否判定の対象となっているよりもヒット率の高い他のデータが将来出現した場合にキャッシュできなくなり、かえってシステムのパフォーマンスが低下するリスクを考慮したものである。
あるいは、空き容量が所定値を下回った場合は、データサイズの小さいものから優先的に第２記憶部ＤＢ２に記憶するようにしてもよい。こうすれば、応答性向上効果（ヒットしたときの効果）とヒットする確率とを両立させることができる。
【００３４】
（２）具体例
以下、キャッシュ要否判定の具体例について説明する。
一の態様において、対象データの復号処理に要する時間を算出する時間算出部（図示せず）を記憶制御部１０８に設け、該算出された時間に基づいて、当該対象データを第２記憶部ＤＢ２に記憶するか否かを判定する。復号処理に要すると見込まれる時間の算出にあっては、データの属性（データのサイズや種類など）から所定の推定アルゴリズムを用いて、対象データの復号処理時間を推定する。判定方法としては、例えば、復号処理時間の基準値を設定し、算出した復号処理時間が当該基準値より長い場合は第２記憶部ＤＢ２に記憶し、基準値より短い場合は第２記憶部ＤＢ２に記憶しないと判定する。すなわち、復号処理に要する時間が係るデータを優先的に第２記憶部ＤＢ２に記憶される。この結果、データ内容を反映したキャッシュ要否判定が行われる。
【００３５】
あるいは、記憶制御部１０８は、前記対象データそれ自体のサイズに基づいて、当該対象データを前記第２記憶部に記憶するか否かを判定する。例えば、データサイズが所定値以上であるデータについては全て第２記憶部ＤＢ２に記憶し、そうでない場合は第２記憶部ＤＢ２に記憶しない。この態様によれば、復号処理時間を算出する処理を省略することができる。
【００３６】
また、対象データのサイズと、前記対象データに係る実行規則が過去に指定された回数（規則が指定される頻度）に基づいて、キャッシュ要否を判定してもよい。具体的には、図４に示すテーブルＴｃ１を第３記憶部ＤＢ３に記憶しておき、キャッシュ要否の判定際にテーブルＴｃ１を参照する。テーブルＴｃ１は、規則と、所定の期間内に、各規則が指定された日時・時刻と、指定された合計の回数（指定された頻度）とを対応付けて記憶したものである。換言すると、テーブルＴｃ１には、どの実行規則がどのくらいの頻度で指定されたかを表す情報が記述される。現在指定されている規則（例えば実行規則１と仮定する）と所定の頻度閾値（例えば「３．５回／１週間」）を設定し、現在指定されている実行規則の頻度が閾値よりも大きい場合にキャッシュが必要と判定する。例えば、閾値（「３．５回／１週間で、現在規則１が指定されているならば、対象データは第２記憶部ＤＢ２に記憶される。一方、頻度が閾値以下である現在規則２が指定されているならば、当該対象データは第２記憶部ＤＢ２に記憶されない。
【００３７】
他のキャッシュ要否判定の例として、対象データのサイズと、前記対象データが過去に対象データとして特定された（すなわちいずれかの実行規則によって対象データに指定された）回数、あるいは所定期間内にそのように特定された回数（頻度）基づいて実行してもよい。具体的には、第３記憶部ＤＢ３に図５に示すテーブルＴｃ２を記憶しておき、キャッシュ要否判定の際にテーブルＴｃ２を参照する。テーブルＴｃ２は、各データについて、指定された履歴、指定元の実行規則、所定期間内に指定された回数（発生頻度）とを記述したものである。
【００３８】
さらに他のキャッシュ要否判定の例として、データについて暗号化部１０６にて復号が実行された場合、当該データについての復号処理に要した時間を記憶する復号時間記憶部（図示省略）を更に有しておき、記憶制御部１０８にて復号時間記憶部に記憶された、前記対象データの復号時間に基づいて、キャッシュ要否を判定する。図６に、第３記憶部ＤＢ３に記憶されたテーブルＴｃ３の例を示す。この態様によれば、応答性向上の効果を見積もることができる。
【００３９】
さらに他のキャッシュ要否判定の例として、前記対象データに係る実行規則が参照する他の対象データに基づいて、キャッシュ要否を判定してもよい。すなわち、実行規則で指定された当該対象データが２以上のデータ（例えばデータＡおよびデータＢとする）である場合において、データＡおよびＢを両方ともキャッシュするか否かを判定するのではなく、データＡおよびデータＢを独立にキャッシュ要否判定の対象とする。そして、データＡのキャッシュ要否を判定するに際して他の対象データであるデータＢの属性を考慮する。
【００４０】
より具体的には、判定対象となり得るデータは、データ種別や複数の属性値を含む複数のデータ（データ要素）から構成される場合がある。例えば、条件が操作履歴に関するものである場合、対象データは操作を示すログに関係するデータ群となる。具体的には、このデータ群は、操作の種別やその操作を実施したタイムスタンプ等が含まれる。対象データがメールの通信を示すログに関係するデータ場合には、対象データには、送受信の種別、利用しているメールソフトの種別、宛先、タイトル、件名、添付ファイルや本文等が含まれる。そして、データ要素毎に必要な記憶領域のサイズは異なりうる。
このような状況の下、実行規則で指定される全ての対象データの各々について、同一のアルゴリズムを一律に適用して個々のデータ要素についてキャッシュ要否判定をするのではなく、他の対象データに基づいてキャッシュ要否を判定する。換言すれば、対象データのうちキャッシュ要否判定の対象となっているもの自身の属性ではなく、他の対象データとの相対的属性に基づいてキャッシュ要否を判定する。例えば、規則で指定される全対象データに関し、データサイズ（換言すると第２記憶部ＤＢ２に必要とされる記憶領域のサイズ）が相対的に大きいものが優先的に記憶されるようにキャッシュ要否判定を行う。逆に、リソースの利用効率を優先するのであれば、他の相対的に小さいサイズのデータから優先的に第２記憶部ＤＢ２に記憶されるように、キャッシュ要否を判定してもよい。
【００４１】
図７は、ある実行規則（実行規則１とする）によって指定される複数の対象データについてキャッシュ要否判定を行う例を示したものである。実行規則１の対象データは、ログファイルと設定ファイルと受信フォルダ（内の全データ）であり、ファイルサイズはそれぞれ４ＭＢ、５ＭＢ、３０ＭＢであるとする。今、キャッシュ要否判定の基準として、対象データにファイルサイズの小さい物から順に優先順位を付けるという基準（リソースの利用効率（記憶コスト）を重視する方針）を採用したとする。
この前提の下、さらに、他の対象データに関係する基準として「対象データのうちデータサイズが４．５ＭＢ以下のデータのみをキャッシュする」という基準を設ける（ケース１）。この場合、第２記憶部ＤＢ２に記憶されるのはキャッシュログファイルのみとなる。
一方、他の対象データに関係する基準として「実行規則に係る全対象データに占める割合が３０％以内であればキャッシュする」という基準を採用した場合（ケース２）、第２記憶部ＤＢ２に記憶されるのはログファイルおよび設定ファイルとなる。
また、他の対象データに関係する基準として「優先順位が付与された対象データのうち上位３番目まではキャッシュする」というキャッシュ要否判定基準を採用した場合は（ケース３）、ログファイル、設定ファイル、受信フォルダ内の全データが第２記憶部ＤＢ２に記憶される。
【００４２】
あるいは、他の対象データの属性だけでなく、他の対象データに関連する実行規則に基づいてキャッシュ要否を判定してもよい。具体的には、現在、実行規則１が指定されていると仮定すると、他の対象データ属性として採用する要素として、他のデータがＡとセットではなく過去に他の実行規則（例えば規則２）で指定されたことがあるか否か、あるいは指定された実行規則の数やその指定の頻度に応じて、決定する。つまり、同一の実行規則に係る他の対象データで応答性やヒット率の向上に寄与する可能性が高いと推定されるものがあれば、キャッシュを行うと決定する。具体的には、サイズが小さくてキャッシュしても応答性向上にはあまり寄与しないが、対象データに関連して将来頻繁に参照される可能性が高いデータについては優先的にキャッシュされる。また、このような観点から、キャッシュ要否の対象となっているデータに係る実行規則が参照する他の対象データの総サイズに基づいて、当該対象データのキャッシュ要否を判定してもよい。
【００４３】
４．その他の実施例
上述のように、対象データの属性と当該対象データを指定する実行規則とに基づいて、所定のアルゴリズムに従って、当該データを第２記憶部ＤＢ２に記憶した場合にシステムのパフォーマンス（応答性およびリソース利用効率の少なくともいずれか一方）がどの程度向上すると見込まれるかを表す指標（優先度）が計算されている場合は、キャッシュ要否判定のタイミングと、キャッシュすべきデータを第２記憶部ＤＢ２に記憶する（データを書き込む）タイミングとを独立に制御してもよい。
具体的には、各データについて付された優先度を第３記憶部ＤＢ３に記憶しておく。そして、必要に応じてこの優先度の情報を参照して第２記憶部ＤＢ２への書き込み処理を実行すればよい。例えば、第２記憶部ＤＢ２が揮発性メモリ（ＲＡＭなど）として実装され、情報処理装置１００の再起動によって第２記憶部ＤＢ２の記憶内容が消去（キャッシュがクリア）されたときや、第２記憶部ＤＢ２の記憶内容に変更があったとき、その他情報処理装置１００の動作や記憶部に記憶されるデータに変更があったときに、優先度が高い順に、第１記憶部ＤＢ１からデータを取り出して第２記憶部ＤＢ２に記憶する。こうすれば、一時的にて第２記憶部ＤＢ２内に記憶されるデータが適切でなくなった結果、システムのパフォーマンスに落ち込みがあったとしても、そこからすばやく回復できる。
【００４４】
キャッシュ要否判定は、必ずしも新しいデータを取得したことを契機として実行される必要はない。キャッシュ要否判定の実行タイミングを、新たなデータの取得のタイミングとは独立して制御してもよい。例えば、図８に示すように、新しい実行規則が指定された（例えば外部の装置から取得したまたは第３記憶部ＤＢ３から読み出された）ことを契機として、キャッシュ要否判定を実行してもよい。
また、キャッシュ要否判定を実行規則の指定タイミングと独立させてもよい。例えば、キャッシュ要否判定を、所定の時間間隔で、または第１記憶部ＤＢ１および第２記憶部ＤＢ２の少なくともいずれかの空き容量に基づいて実行してもよい。具体的には、一定時間が経過したことや空き容量が所定値以下となったことを契機として、キャッシュ要否判定を実行する。これにより、キャッシュ要否判定に要する処理を必要最低限に抑えつつ、第１記憶部ＤＢ１や第２記憶部ＤＢ２の記憶内容や情報処理動作状況が変化しても、システムのパフォーマンスが維持される。
あるいは、実行規則に、実行条件と実効内容（機能）に加えて条件判定を実行する契機（タイミング）を指定する情報を記述してもよい。すなわち、実行規則にＥＣＡルールの全ての要素を規定してもよい。要は、本発明に係る情報処理装置は、条件と当該条件が満たされた場合の動作とを少なくとも規定した実行規則を指定する指定部を有していればよい。
【００４５】
第２記憶部ＤＢ２にデータを記憶する場合は、第１記憶部ＤＢ１に記憶されているデータを消去することによって、全てのデータは第１記憶部ＤＢ１の第２記憶部ＤＢ２のいずれか一方のみに記憶されるようにしてもよい。
【００４６】
本発明の情報処理装置は、実行規則が与えられると、当該実行規則が指定する対象データを特定し、特定された対象データに対してキャッシュ要否判定を実行すればよい。また、キャッシュ要否判定の対象と決定するデータは、実行規則に関係ないデータであってもよい。
要は、本発明の情報処理装置は、第１記憶部ＤＢ１または第２記憶部ＤＢ２の少なくともいずれかからキャッシュ要否判定とするデータを読み出して特定し、その読み出したデータと実行規則とに基づいて、キャッシュ要否判定を実行する機能を有していればよい。この場合、第１記憶部ＤＢ１および第２記憶部ＤＢ２に記憶されているうちどのデータをキャッシュ要否判定とするのかの選定においては、上述の優先度を用いてもよいし、他の選定アルゴリズムに基づいてもよいし、あるいは乱数を用いてもよい。
【００４７】
情報処理装置１００において、同時に指定される実行規則が２つ以上であって、規則１に基づく処理と規則２に基づく処理とを連続的に行ってもよい。このような場合における対象データのキャッシュ要否判定処理において、他の実行規則の内容や当該他の実行規則に関係する対象データ（の属性）を考慮してもよい。例えば、規則１と規則２とが指定される場合において、規則１で指定される対象データＡが規則２でも指定されている場合は、対象データＡに対しては規則１で指定される他のデータのどのデータよりも高い優先度を付す。
【００４８】
キャッシュ要否判定処理の内容は、上記実施例で示したものに限られず、例えば、データ属性、実行規則、第２記憶部ＤＢ２の空き記憶容量の少なくともいずれかに１つに基づいてキャッシュ要否を判定してもよい。
【００４９】
上述した情報処理装置１００の機能は、情報処理装置１００においてプログラムを実行することで実現される。このプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ（Hard Disk Drive）、ＦＤＤ（Flexible Disk Drive））など）、光記録媒体（光ディスク（ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリなどのコンピュータ読取り可能な記録媒体に記憶した状態で提供され得る。このようなプログラムはインターネットのようなネットワーク経由でダウンロードさせることも可能である。
【符号の説明】
【００５０】
１００・・・情報処理装置、１０１・・・規則指定部、１０２・・・対象データ特定部、１０３・・・条件判定部、１０４・・・実行部、１０５・・・暗号化・復号部、１０６・・・暗号化部、１０７・・・復号部、１０８・・・記憶制御部、１０９・・・特定部、１１０・・・データ取得部、ＤＢ１・・・第１記憶部、ＤＢ２・・・第２記憶部、ＤＢ３・・・第３記憶部、Ｔｃ・・・テーブル、Ｔｒ・・・実行規則テーブル
【図１】
0005705716.tif 000002
【図２】
0005705716.tif 000003
【図３】
0005705716.tif 000004
【図４】
0005705716.tif 000005
【図５】
0005705716.tif 000006
【図６】
0005705716.tif 000007
【図７】
0005705716.tif 000008
【図８】
0005705716.tif 000009