(57)【特許請求の範囲】
【請求項１】
プログラムに記述された手順に従って実行された処理の履歴が記述された履歴データを取得する取得手段と、
自装置において起動中のプログラムである起動中プログラムを特定する起動中プログラム特定手段と、
処理の履歴が保存対象となる１または複数のプログラムである対象プログラムを特定する対象プログラム特定手段と、
保存の対象となる履歴が記述された履歴データの条件を記憶する条件記憶手段と、
前記対象プログラム特定手段に特定された前記対象プログラムのうちのいずれかが前記起動中プログラム特定手段により特定される前記起動中プログラムであるか否かを判断する第１判断手段と、
前記第１判断手段により、前記対象プログラムのうちのいずれかが前記起動中プログラムであると判断された場合には、前記取得手段が取得した前記履歴データのうち、前記条件記憶手段に記憶された条件を満たす履歴データを保存する保存手段と、
自装置が起動している期間にわたって起動中の状態を維持するプログラムである常駐プログラムが、前記対象プログラム特定手段により特定される前記対象プログラムに含まれるか否かを判断する第２判断手段と、
前記第２判断手段により、前記常駐プログラムが前記対象プログラムに含まれると判断された場合に、前記起動中プログラム特定手段により特定される前記起動中プログラムの中に、前記対象プログラム特定手段により特定される前記対象プログラム以外のプログラムがあるか否かを判断する第３判断手段とを具備し、
前記第２判断手段により、前記常駐プログラムが前記対象プログラムに含まれないと判断された場合に、前記第１判断手段は、前記対象プログラムのうちのいずれかが前記起動中プログラムであるか否かを判断し、
前記保存手段は、前記第３判断手段により前記起動中プログラムの中に前記対象プログラム以外のプログラムがないと判断された場合には、前記取得手段が取得した前記履歴データを全て保存し、前記第３判断手段により前記起動中プログラムの中に前記対象プログラム以外のプログラムがあると判断された場合には、前記履歴データのうち、前記条件を満たす履歴データを保存する
ことを特徴とする情報処理装置。
【請求項２】
前記条件記憶手段に記憶された条件は、前記処理の対象であるファイルの種別を表すファイル拡張子を限定する条件であり、
前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記ファイル拡張子を含む履歴データを保存する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記条件記憶手段に記憶された条件は、前記処理の対象の所在を表すパス名を限定する条件であり、
前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記パス名を含む履歴データを保存する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記条件記憶手段に記憶された条件は、前記処理の対象となるデータを管理するプログラムであるデータベース管理システムに対して当該データを操作する命令の種別を限定する条件であり、
前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記命令の種別を表す情報を含む履歴データを保存する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記条件記憶手段に記憶された条件は、前記処理の対象となるデータの通信に用いられるプロトコルの種別を限定する条件であり、
前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記プロトコルの種別を表す情報を含む履歴データを保存する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
プログラムに記述された手順に従って実行された処理の履歴が記述された履歴データを取得する取得過程と、
自装置において起動中のプログラムである起動中プログラムを特定する起動中プログラム特定過程と、
処理の履歴が保存対象となる１または複数のプログラムである対象プログラムを特定する対象プログラム特定過程と、
前記対象プログラム特定過程において特定された前記対象プログラムのうちのいずれかが前記起動中プログラム特定過程において特定される前記起動中プログラムであるか否かを判断する第１判断過程と、
前記第１判断過程において、前記対象プログラムのうちのいずれかが前記起動中プログラムであると判断された場合には、前記取得過程が取得した前記履歴データのうち、保存の対象となる履歴が記述された履歴データの条件として記憶手段に記憶されている条件を満たす履歴データを保存する保存過程と、
自装置が起動している期間にわたって起動中の状態を維持するプログラムである常駐プログラムが、前記対象プログラム特定過程において特定される前記対象プログラムに含まれるか否かを判断する第２判断過程と、
前記第２判断過程において、前記常駐プログラムが前記対象プログラムに含まれると判断された場合に、前記起動中プログラム特定過程において特定される前記起動中プログラムの中に、前記対象プログラム特定過程において特定される前記対象プログラム以外のプログラムがあるか否かを判断する第３判断過程とを具備し、
前記第１判断過程は、前記第２判断過程において、前記常駐プログラムが前記対象プログラムに含まれないと判断された場合に、前記対象プログラムのうちのいずれかが前記起動中プログラムであるか否かを判断する過程であり、
前記保存過程は、前記第３判断過程において前記起動中プログラムの中に前記対象プログラム以外のプログラムがないと判断された場合には、前記取得過程が取得した前記履歴データを全て保存し、前記第３判断過程において前記起動中プログラムの中に前記対象プログラム以外のプログラムがあると判断された場合には、前記履歴データのうち、前記条件を満たす履歴データを保存する過程である
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理の履歴を記録する情報処理装置の処理負荷を軽減するための技術に関する。
【背景技術】
【０００２】
携帯電話機やパーソナルコンピュータなどの各種情報処理装置において処理の履歴を記憶するための各種システムが提案されている。これらのシステムでは、情報処理装置においてなされた処理を監視し、その処理の内容を履歴として記憶する。しかし、しばしば、これらの履歴が膨大な量になったり、履歴の発生が集中してその履歴を取得して記憶するための処理負荷が増大したりといったことが原因で、情報処理装置による他の処理が遅延して、ユーザの操作に対する応答性が悪化し、利便性が損なわれるといった問題が指摘されている。履歴を記憶しておく技術として、例えば特許文献１には、情報処理装置を構成する各デバイス部品の属性に基づいて履歴の記憶の是非を判定する仕組みが提案されている。また、特許文献２には、履歴の発生時間や履歴自体の種別及び重要度に応じて、その履歴を選別して保存する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３９５０７３６号
【特許文献２】特開２００９−７００４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
履歴の内容に応じてその履歴の保存の要否などを判断するという手法では、毎回、履歴の解析を行う必要があり、情報処理装置の処理負荷が増大するという問題がある。
そこで、本発明は、個々の履歴が保存対象である否かを判断することによる処理負荷の増大をできるだけ抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本願に係る情報処理装置は、プログラムに記述された手順に従って実行された処理の履歴が記述された履歴データを取得する取得手段と、自装置において起動中のプログラムである起動中プログラムを特定する起動中プログラム特定手段と、処理の履歴が保存対象となる１または複数のプログラムである対象プログラムを特定する対象プログラム特定手段と、保存の対象となる履歴が記述された履歴データの条件を記憶する条件記憶手段と、前記対象プログラム特定手段に特定された前記対象プログラムのうちのいずれかが前記起動中プログラム特定手段により特定される前記起動中プログラムであるか否かを判断する第１判断手段と、前記第１判断手段により、前記対象プログラムのうちのいずれかが前記起動中プログラムであると判断された場合には、前記取得手段が取得した前記履歴データのうち、前記条件記憶手段に記憶された条件を満たす履歴データを保存する保存手段と、自装置が起動している期間にわたって起動中の状態を維持するプログラムである常駐プログラムが、前記対象プログラム特定手段により特定される前記対象プログラムに含まれるか否かを判断する第２判断手段と、前記第２判断手段により、前記常駐プログラムが前記対象プログラムに含まれると判断された場合に、前記起動中プログラム特定手段により特定される前記起動中プログラムの中に、前記対象プログラム特定手段により特定される前記対象プログラム以外のプログラムがあるか否かを判断する第３判断手段とを具備し、前記第２判断手段により、前記常駐プログラムが前記対象プログラムに含まれないと判断された場合に、前記第１判断手段は、前記対象プログラムのうちのいずれかが前記起動中プログラムであるか否かを判断し、前記保存手段は、前記第３判断手段により前記起動中プログラムの中に前記対象プログラム以外のプログラムがないと判断された場合には、前記取得手段が取得した前記履歴データを全て保存し、前記第３判断手段により前記起動中プログラムの中に前記対象プログラム以外のプログラムがあると判断された場合には、前記履歴データのうち、前記条件を満たす履歴データを保存することを特徴とする。
【０００７】
また、好ましくは、前記条件記憶手段に記憶された条件は、前記処理の対象であるファイルの種別を表すファイル拡張子を限定する条件であり、前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記ファイル拡張子を含む履歴データを保存するとよい。
【０００８】
また、好ましくは、前記条件記憶手段に記憶された条件は、前記処理の対象の所在を表すパス名を限定する条件であり、前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記パス名を含む履歴データを保存するとよい。
【０００９】
また、好ましくは、前記条件記憶手段に記憶された条件は、前記処理の対象となるデータを管理するプログラムであるデータベース管理システムに対して当該データを操作する命令の種別を限定する条件であり、前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記命令の種別を表す情報を含む履歴データを保存するとよい。
【００１０】
また、好ましくは、前記条件記憶手段に記憶された条件は、前記処理の対象となるデータの通信に用いられるプロトコルの種別を限定する条件であり、前記保存手段は、前記条件を満たす履歴データを保存する場合には、前記プロトコルの種別を表す情報を含む履歴データを保存するとよい。
【００１１】
また、本願に係る情報処理方法は、プログラムに記述された手順に従って実行された処理の履歴が記述された履歴データを取得する取得過程と、自装置において起動中のプログラムである起動中プログラムを特定する起動中プログラム特定過程と、処理の履歴が保存対象となる１または複数のプログラムである対象プログラムを特定する対象プログラム特定過程と、前記対象プログラム特定過程において特定された前記対象プログラムのうちのいずれかが前記起動中プログラム特定過程において特定される前記起動中プログラムであるか否かを判断する第１判断過程と、前記第１判断過程において、前記対象プログラムのうちのいずれかが前記起動中プログラムであると判断された場合には、前記取得過程が取得した前記履歴データのうち、保存の対象となる履歴が記述された履歴データの条件として記憶手段に記憶されている条件を満たす履歴データを保存する保存過程と、自装置が起動している期間にわたって起動中の状態を維持するプログラムである常駐プログラムが、前記対象プログラム特定過程において特定される前記対象プログラムに含まれるか否かを判断する第２判断過程と、前記第２判断過程において、前記常駐プログラムが前記対象プログラムに含まれると判断された場合に、前記起動中プログラム特定過程において特定される前記起動中プログラムの中に、前記対象プログラム特定過程において特定される前記対象プログラム以外のプログラムがあるか否かを判断する第３判断過程とを具備し、前記第１判断過程は、前記第２判断過程において、前記常駐プログラムが前記対象プログラムに含まれないと判断された場合に、前記対象プログラムのうちのいずれかが前記起動中プログラムであるか否かを判断する過程であり、前記保存過程は、前記第３判断過程において前記起動中プログラムの中に前記対象プログラム以外のプログラムがないと判断された場合には、前記取得過程が取得した前記履歴データを全て保存し、前記第３判断過程において前記起動中プログラムの中に前記対象プログラム以外のプログラムがあると判断された場合には、前記履歴データのうち、前記条件を満たす履歴データを保存する過程であることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、個々の履歴が保存対象である否かを判断することによる処理負荷の増大をできるだけ抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態に係る情報処理装置のハードウェア構成を表したブロック図である。
【図２】第１実施形態に係る情報処理装置の機能的構成を表したブロック図である。
【図３】起動アプリ監視部の動作を説明するフロー図である。
【図４】第１実施形態に係る情報処理装置の動作を説明するシーケンス図である。
【図５】第２実施形態に係る情報処理装置の機能的構成を表したブロック図である。
【図６】フィルタ設定部の動作を説明するフロー図である。
【図７】起動アプリ監視部が実行するＢモードの監視処理の動作を説明するフロー図である。
【図８】第２実施形態に係る情報処理装置の動作を説明するシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について、第１実施形態と第２実施形態とに分けて説明する。
１．第１実施形態
（１）第１実施形態の構成
図１は、第１実施形態に係る情報処理装置１のハードウェア構成を表したブロック図である。この情報処理装置１は、例えば携帯電話機、無線ＬＡＮ端末、ＰＤＡ（Personal Digital Assistants）、またはパーソナルコンピュータのような情報処理を行う装置であり、図１では携帯電話機の構成を例示している。情報処理装置１は、制御部１０、記憶部１１、表示部１２、操作部１３、無線通信部１４、音声処理部１５及びインターフェース１６を有している。これらの各部・各種デバイスがバス１７を介して互いに接続されている。
【００１５】
制御部１０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、及びタイマを有する。ＣＰＵは、ＲＯＭに記憶されている制御プログラムを読み出しＲＡＭにロードして実行することにより、情報処理装置１の各部を制御し、通話機能、通信機能、表示機能などの各種機能を実現する。この制御プログラムは、ＯＳ（Operating System）とも呼ばれる。制御部１０のＲＡＭは、半導体素子で構成された揮発性の記憶手段であり、ＣＰＵが処理を行う際のワークエリアとなるとともに、情報処理装置１における処理の履歴を表すデータ（以下、履歴データという）を一時的に記憶する。ここで履歴データとは、制御部１０により実行される処理ごとに、その処理内容に係る情報が記述されたものである。この処理内容に係る情報とは、例えば、上記の処理を実行させるアプリケーションプログラム（以下、アプリという）を示す識別情報と、そのアプリを起動させたユーザを示すユーザ情報と、読み出しや書き込みなどのように、その処理の種類を示す種類情報と、ファイル名やパス、又はＵＲＬ（Uniform Resource Locator）などのように、その処理の対象を示す対象情報と、その処理が発生した時刻を示すタイムスタンプと、その処理の優先度を示す優先度情報などである。また、制御部１０のＲＡＭは、制御部１０により起動されている全てのアプリの識別情報を記述した起動アプリ表１０２を記憶する。なお、以下では、制御部１０のＲＡＭのような揮発性の記憶手段にデータを一時的に記憶することを、データを「保持する」という。
【００１６】
記憶部１１は、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やハードディスクなどの不揮発性の記憶手段であり、制御部１０のＲＡＭにロードされて実行されるアプリを記憶しているほか、履歴データを保存する履歴保存領域１１１を有する。また、記憶部１１は、保存の対象となる履歴が記述された履歴データを発生させるアプリ（以下、対象アプリという）、つまり履歴データが保存されるアプリの識別情報を記述した対象アプリ表１１２と、履歴データを発生させる処理の対象の所在を示すパス名（以下、対象パス名という）を記述した対象パス表１１３が書き込まれている。ここでいう履歴データの「保存」とは、履歴保存領域１１１に履歴データを永続的に記憶することをいう。
【００１７】
なお、履歴データを発生させる対象の所在を示すパス名とは、制御部１１が、アプリに記述された手順に従って実行する処理に用いたデータの所在を表したものである。例えば、記憶部１１の記憶領域に階層構造の名前空間を割り当てている場合には、このパス名は、その対象が含まれる各階層を示す名称を、最上位の階層から最下位の階層まで順番に並べ、それぞれを区切り記号（例えば「/」）で区切って記述した文字列等である。具体的には、「/usr/doc」等であり、この場合は、「usr」が最上位の階層であり、「doc」が最下位の階層である。そして、「doc」は「usr」に含まれている。
【００１８】
例えば、対象パス表１１３に「/usr/doc」という対象パス名のみが記述されているとする。このとき、アプリに記述された手順に従って処理が実行されることにより、「/usr/doc」という文字列が示す階層に含まれる「file1.txt」というファイルが読み出されたとすると、このとき発生する履歴データには、「/usr/doc」という文字列が含まれているから、この履歴データは対象パス名を有する履歴データである。一方、「/lib」という文字列が示す階層に含まれる「file2.wav」というファイルが書き出されたとすると、このとき発生する履歴データには、「/usr/doc」という文字列は含まれていないから、この履歴データは対象パス名を有さない履歴データである。
【００１９】
表示部１２は、液晶ディスプレイやＶＲＡＭ（Video Random Access Memory）を備えており、制御部１０による制御の下で各種画像を表示する。操作部１３は、複数のキーを有しており、利用者がこれらのキーを操作するとその操作内容に応じた信号を制御部１０へ供給する。制御部１０は、この信号に基づいて操作内容を判断して処理を行う。利用者は、操作部１３のキーを操作することによって、例えば通話の指示、文字の入力、メニューの選択、各種の設定などの様々な処理を情報処理装置１に対して指示することができるようになっている。無線通信部１４は、制御部１０の制御の下で、図示しない携帯通信網の基地局と無線通信を行う。この無線通信によって、例えば、情報処理装置１の利用者間による通話や、電子メールの送受信、或いは、ネットワーク上のサーバ装置との間における各種情報の送受信が行われる。音声処理部１５は、マイクロフォンなどの収音手段、スピーカなどの放音手段、およびＤＳＰ（Digital Signal Processor）などの音声処理回路を有している。通話が行われる際には、この音声処理部１５は、マイクロフォンによって収音された音声に応じた音声信号を音声処理回路による音声処理を経てスピーカから出力する。インターフェース１６は、情報処理装置以外の外部装置と有線によって接続される接続端子などであって、この外部装置と各種情報を遣り取りする。
【００２０】
図２は、第１実施形態に係る情報処理装置１の機能的構成を表したブロック図である。同図にブロックで示した各機能は、制御部１０が制御プログラムを実行することによって実現される。
【００２１】
一次フィルタ設定部１００５は、保存の対象となる履歴が記述された履歴データを発生させる全てのアプリの識別情報を記述した対象アプリ表１１２を保持し、この対象アプリ表を起動アプリ監視部１００４へ供給する。具体的には、制御部１０が制御プログラムを実行することによって記憶部１１から対象アプリ表１１２を読み出してＲＡＭに保持することで、この一次フィルタ設定部１００５は実現される（図１参照）。対象アプリ表１１２により、処理の履歴が保存対象となるアプリが特定される。すなわち、一次フィルタ設定部１００５は、処理の履歴が保存対象となる１または複数のプログラムである対象プログラムを特定する対象プログラム特定手段の一例である。
【００２２】
二次フィルタ設定部１００６は、対象パス名を記述した対象パス表１１３を保持し、この対象パス表を二次フィルタ部１００３へ供給する。具体的には、制御部１０が制御プログラムを実行することによって記憶部１１から対象パス表１１３を読み出してＲＡＭに保持することで、この二次フィルタ設定部１００６は実現される。対象パス表１１３に記述された対象パス名は、後述するように、二次フィルタ部１００３において、保存の対象となる履歴が記述された履歴データの条件として用いられるので、二次フィルタ設定部１００６は、保存の対象となる履歴が記述された履歴データの条件を記憶する条件記憶手段の一例である。
【００２３】
起動アプリ監視部１００４は、情報処理装置１において起動されている全てのアプリについて、それぞれの識別情報を記述した起動アプリ表１０２を保持する。具体的には、起動アプリ監視部１００４は、制御部１０がアプリを起動すると、そのアプリを示す識別情報を制御部１０のＲＡＭに記憶された起動アプリ表１０２に書き込み、制御部１０がアプリを終了すると、そのアプリを示す識別情報を上記起動アプリ表１０２から削除する。この起動アプリ票１０２によって、情報処理装置１において起動中のアプリは特定される。すなわち、起動アプリ監視部１００４は、自装置において起動中のプログラムである起動中プログラムを特定する起動中プログラム特定手段の一例である。
【００２４】
また、起動アプリ監視部１００４は、上記の一次フィルタ設定部１００５から対象アプリ表１１２を受け取り、起動アプリ表１０２に対して書き込みや削除をする際に、起動アプリ表１０２の中に対象アプリ表１１２に記述された識別子と同じ識別子が含まれるか否かを判断し、その判断結果に応じて一次フィルタ部１００２および二次フィルタ部１００３が行う処理を決定する。
【００２５】
履歴取得部１００１は、制御部１０により実行されるアプリが、例えば「読み出し」や「書き出し」といった基本的な機能を実現する所定の処理（システムコール等）を呼び出す度に、制御プログラムを実行する制御部１０が、その処理に割り込み、その処理内容に応じた情報を記述した履歴データを生成し、これを取得する（以下、上記の所定の処理に対してこの割り込み処理を行うことを「処理をフックする」という）。取得された履歴データは制御部１０のＲＡＭに保持される。すなわち、履歴取得部１００１は、プログラムに記述された手順に従って実行された処理の履歴が記述された履歴データを取得する取得手段の一例である。
【００２６】
一次フィルタ部１００２および二次フィルタ部１００３は、履歴取得部１００１が取得した履歴データに対し、起動アプリ監視部１００４により決定された処理を実行する。起動アプリ監視部１００４により稼動するように決定されると、二次フィルタ部１００３は、二次フィルタ設定部１００６から供給された対象パス表１１３を保存の対象となる履歴が記述された履歴データの条件として用いる。具体的には、履歴取得部１００１が取得した履歴データのうち、対象パス表１１３に記述された対象パス名を含んだ履歴データのみを履歴保存部１００７に供給する。
履歴保存部１００７は、二次フィルタ部１００３から供給された履歴データを記憶部１１の履歴保存領域１１１に保存する。
【００２７】
なお、異なる機能が同じワークエリアを共有している場合においては、一方から他方へデータを供給するということは、データを複製して供給する場合以外に、データのアドレスを供給する場合も含む。データのアドレスを供給する場合、一方の機能から他方の機能へ供給されたデータのアドレスは、他方の機能において読み出される。そして、他方の機能は、読み出したそのアドレスが示す領域を特定し、この領域に記憶されているデータを読み出したり、特定したこの領域にデータを書き出したりする。すなわち、この場合において他方の機能は、一方の機能で用いられていたデータそのものに、直接アクセスする。
【００２８】
（２）第１実施形態の動作
図３は、起動アプリ監視部１００４の動作を説明するフロー図である。また、図４は、第１実施形態における各機能の動作を説明するシーケンス図である。なお、以下の説明では、図２に示した各機能を動作の主体として表現することがあるが、そのハードウェアとしての実体は図１の制御部１０である。
【００２９】
図４において、まず、利用者により操作部１３を介して予め定められた起動操作が行われると、情報処理装置１は起動し、起動アプリ監視部１００４は、起動アプリ表１０２を生成する（ステップＳ２０１）。これにより起動アプリ表１０２には、制御プログラムと、制御プログラムから起動され、情報処理装置１が起動している期間にわたって起動中の状態を維持するアプリ（以下、常駐アプリという）とが書き込まれる。次に、二次フィルタ設定部１００６は、二次フィルタ部１００３に対象パス表１１３を供給し（ステップＳ２０２）、一次フィルタ設定部１００５は、起動アプリ監視部１００４に対象アプリ表１１２を供給する（ステップＳ２０３）。
【００３０】
対象アプリ表１１２を受け取った起動アプリ監視部１００４は、図３に示す起動アプリの監視処理を行う。図３に示した監視処理の態様（以下、モードという）をＡモードと呼ぶ。まず、起動アプリ監視部１００４は、起動アプリ表１０２に変動があるか否かを判断する（ステップＳ１０１）。これは、具体的には、以下の通りである。上述したように、起動アプリ監視部１００４は、アプリが起動すると、そのアプリを示す識別情報を起動アプリ表１０２に書き込み、アプリが終了すると、そのアプリを示す識別情報を起動アプリ表１０２から削除するが、このように書き込みや削除がある場合に、起動アプリ表１０２に変動があると判断する。起動アプリ表１０２に変動がないと判断すると（ステップＳ１０１；ＮＯ）、起動アプリ監視部１００４は、処理をステップＳ１０１に戻し、変動があると判断するまで、この判断処理を続ける。
【００３１】
一方、起動アプリ表１０２に変動があると判断すると（ステップＳ１０１；ＹＥＳ）、起動アプリ監視部１００４は、対象アプリ表１１２に記述された識別情報が起動アプリ表１０２に含まれるか否かを判断する（ステップＳ１０２）。すなわち、起動アプリ監視部１００４は、対象プログラム特定手段に特定された対象プログラムのうちのいずれかが起動中プログラム特定手段により特定される起動中プログラムであるか否かを判断する第１判断手段の一例である。
【００３２】
この判断は、制御部１０が、対象アプリ表１１２の全要素と起動アプリ表１０２の全要素とを比較することにより実現してもよいが、起動アプリ表１０２の変動要素と対象アプリ表１１２の全要素とを比較することにより実現すると、前者に比べて処理負荷を低減できるため望ましい。具体的には、制御部１０は、初期値として０が記述されたカウンタをＲＡＭに記憶しており、起動アプリ表１０２に新たに識別情報を書き込むと、その識別情報と対象アプリ表１１２の内容とを比較して、その識別情報が対象アプリ表１１２に記述されている場合には、そのカウンタに対し１を加算する。また、起動アプリ表１０２から識別情報を削除すると、制御部１０は、その識別情報と対象アプリ表１１２の内容とを比較して、その識別情報が対象アプリ表１１２に記述されている場合には、そのカウンタに対し１を減算する。これにより、上記のカウンタには、対象アプリ表１１２に記述された識別情報が、その時点における起動アプリ表１０２に含まれている数が記述される。したがって、制御部１０は、カウンタが０のときには、「対象アプリ表１１２に記述された識別情報は、いずれも起動アプリ表１０２に含まれない」と判断し、カウンタが１以上のときには、「対象アプリ表１１２に記述されたいずれかの識別情報が、起動アプリ表１０２に含まれる」と判断すればよい。
【００３３】
「対象アプリ表１１２に記述された識別情報は、いずれも起動アプリ表１０２に含まれない」と判断すると（ステップＳ１０２；ＮＯ）、起動アプリ監視部１００４は、一次フィルタ部１００２を全閉させる（ステップＳ１０３）。ここで「全閉」とは、供給された全ての履歴データを他の機能に供給しない状態をいう。したがって、この後、一次フィルタ部１００２は、起動アプリ監視部１００４から他の指示があるまで、履歴取得部１００１が取得した全ての履歴データを、二次フィルタ部１００３に供給しなくなる。
【００３４】
一方、「対象アプリ表１１２に記述されたいずれかの識別情報が、起動アプリ表１０２に含まれる」と判断すると（ステップＳ１０２；ＹＥＳ）、起動アプリ監視部１００４は、一次フィルタ部１００２を全開させる（ステップＳ１０４）。ここで「全開」とは、供給された全ての履歴データを他の機能にそのまま供給する状態をいう。したがって、この後、一次フィルタ部１００２は、起動アプリ監視部１００４から他の指示があるまで、履歴取得部１００１が取得した全ての履歴データを、二次フィルタ部１００３に供給する。そして、起動アプリ監視部１００４は、二次フィルタ部１００３を稼動させる（ステップＳ１０５）。ここで「稼動」とは、供給された履歴データの内容を予め定められた情報に基づいて判断し、その判断結果に応じて処理を行う状態をいう。したがって、この後、二次フィルタ部１００３は、起動アプリ監視部１００４から他の指示があるまで、一次フィルタ部１００２から供給された履歴データに、対象パス表１１３に記述されたいずれかのパス名が含まれているか否かを判断し、その判断結果に応じた処理を行う。
【００３５】
起動アプリ監視部１００４が、一次フィルタ部１００２と二次フィルタ部１００３に対して、動作状態を指示するのと並行して、履歴取得部１００１はアプリが呼び出す処理をフックして履歴データを取得し、取得した履歴データを一次フィルタ部１００２に供給する（ステップＳ２０４）。一次フィルタ部１００２は、上述したように、起動アプリ監視部１００４によって動作状態が指示されているため、対象アプリが起動中である場合には全開になっており、図４に示すように供給された履歴データを全て二次フィルタ部１００３にそのまま供給する（ステップＳ２０５）。一方、対象アプリが起動中でない場合には、一次フィルタ部１００２は全閉になっており、供給された履歴データを全て破棄する（ステップＳ２０６）。すなわち、この履歴データは記憶部１１の履歴保存領域１１１には保存されない。ここで、このステップＳ２０５の処理は、履歴取得部１００１から供給された履歴データに基づいて実行されるものではなく、起動アプリ監視部１００４からの指示に基づいて実行される。
【００３６】
一次フィルタ部１００２から履歴データが供給されると、二次フィルタ部１００３は、対象パス表１１３を参照して、この履歴データに対象パス名が含まれるか否かを判断する（ステップＳ２０７）。供給されたこの履歴データに対象パス名が含まれていないと判断すると（ステップＳ２０７；ＮＯ）、二次フィルタ部１００３は、この履歴データを破棄する（ステップＳ２０８）。すなわち、この場合においても、履歴データは記憶部１１の履歴保存領域１１１には保存されない。一方、供給されたこの履歴データに対象パス名が含まれていると判断すると（ステップＳ２０７；ＹＥＳ）、二次フィルタ部１００３は、この履歴データを履歴保存部１００７に供給し、履歴保存部１００７は、供給された履歴データを記憶部１１の履歴保存領域１１１に保存する（ステップＳ２０９）。すなわち、履歴保存部１００７は、第１判断手段により、対象プログラムのうちのいずれかが起動中プログラムであると判断された場合には、取得手段が取得した履歴データのうち、条件記憶手段に記憶された条件を満たす履歴データを保存する保存手段の一例である。
【００３７】
以上の動作により、情報処理装置１は、対象アプリが起動中でない期間には履歴データを記録しない状態を維持し、対象アプリが起動中である期間には、履歴データのうち、対象パス名が含まれているもののみを記憶部１１に保存する。このように、まず、対象アプリが起動中であるか否かという判断を行って履歴データの保存の要否を判断しているので、履歴データを発生させた処理ごとにその処理を実行するアプリが対象アプリであるか否かを逐一判断することなく、履歴データを保存することができる。
【００３８】
２．第２実施形態
（１）第２実施形態の構成
図５は、第２実施形態に係る情報処理装置１の機能的構成を表したブロック図である。第２実施形態の情報処理装置１は、一次フィルタ設定部１００５と起動アプリ監視部１００４の間にフィルタ設定部１００８が設けられている点が、第１実施形態の情報処理装置１と異なる。フィルタ設定部１００８は、一次フィルタ設定部１００５から対象アプリ表１１２を受け取ってその内容に応じて起動アプリ監視部１００４が実行する監視処理のモードを決定し、そのモードを起動アプリ監視部１００４に指示する。
【００３９】
（２）第２実施形態の動作
図６は、フィルタ設定部１００８の動作を説明するフロー図である。フィルタ設定部１００８は、利用者からの起動操作を操作部１３が受け付けると、情報処理装置１は起動し、フィルタ設定部１００８は、一次フィルタ設定部１００５から対象アプリ表１１２を受け取り、その対象アプリ表１１２に上述した常駐アプリが含まれるか否かを判断する（ステップＳ３０１）。すなわち、フィルタ設定部１００８は、自装置が起動している期間にわたって起動中の状態を維持するプログラムである常駐プログラムが、対象プログラム特定手段により特定される対象プログラムに含まれるか否かを判断する第２判断手段の一例である。
【００４０】
ここで、フィルタ設定部１００８が常駐アプリを、常駐アプリ以外のアプリと区別する方法は、例えば以下の通りである。すなわち、情報処理装置１が起動されると制御部１０は、最初に制御プログラムを読み込む。制御プログラムは、制御部１０が、予め定められたパス、ファイル名により、常駐アプリの識別情報を記述した常駐アプリ表（図示せず）を記憶部１１から読み出すように記述されている。そして、常駐アプリ表を読み込んだ制御部１０は、常駐アプリ表に記述されている識別情報に基づいて、常駐アプリを起動する。このような仕組みの下、フィルタ設定部１００８は、記憶部１１に記憶された常駐アプリ表を参照して、対象アプリ表１１２に常駐アプリが含まれるか否かを判断する。
【００４１】
対象アプリ表１１２に常駐アプリが含まれないと判断すると（ステップＳ３０１；ＮＯ）、フィルタ設定部１００８は、起動アプリ監視部１００４のモードをＡモードに決定し、起動アプリ監視部１００４に対してＡモードによる監視処理の実施を指示する（ステップＳ３０４）。したがって、この場合、第１実施形態と同様に、起動アプリ監視部１００４は、図３に示した監視処理を行う。すなわち、起動アプリ監視部１００４は、第２判断手段により、常駐プログラムが対象プログラムに含まれないと判断された場合に、対象プログラムのうちのいずれかが起動中プログラムであるか否かを判断する第１判断手段の一例である。Ａモードによる監視処理については、説明を省略する。
【００４２】
一方、対象アプリ表１１２に常駐アプリが含まれると判断すると（ステップＳ３０１；ＹＥＳ）、フィルタ設定部１００８は、まず、一次フィルタ部１００２を全開にし（ステップＳ３０２）、次に、起動アプリ監視部１００４のモードを、次に説明するＢモードに決定し、起動アプリ監視部１００４に対してＢモードによる監視処理の実施を指示する（ステップＳ３０３）。
【００４３】
図７は、起動アプリ監視部１００４が実行するＢモードの監視処理の動作を説明するフロー図である。フィルタ設定部１００８から、Ｂモードによる監視処理の実施が指示されると、起動アプリ監視部１００４は、起動アプリ表１０２を生成し、その起動アプリ表に変動があるか否かを判断する（ステップＳ４０１）。起動アプリ表１０２に変動がないと判断すると（ステップＳ４０１；ＮＯ）、起動アプリ監視部１００４は、処理をステップＳ１０１に戻し、変動があると判断するまで、この判断処理を続ける。
【００４４】
一方、起動アプリ表１０２に変動があると判断すると（ステップＳ４０１；ＹＥＳ）、起動アプリ監視部１００４は、対象アプリ表１１２に記述された識別情報以外の識別情報が起動アプリ表１０２に含まれるか否かを判断する（ステップＳ４０２）。すなわち、起動アプリ監視部１００４は、第２判断手段により、常駐プログラムが対象プログラムに含まれると判断された場合に、起動中プログラム特定手段により特定される起動中プログラムの中に、対象プログラム特定手段により特定される対象プログラム以外のプログラムがあるか否かを判断する第３判断手段の一例である。
【００４５】
「対象アプリ表１１２に記述された識別情報以外の識別情報は、いずれも起動アプリ表１０２に含まれない」と判断すると（ステップＳ４０２；ＮＯ）、起動アプリ監視部１００４は、二次フィルタ部１００３を全開させる（ステップＳ４０４）。ここで、Ｂモードによる監視処理においては、ステップＳ３０２において、一次フィルタ部１００２は全開となっている。したがって、一次フィルタ部１００２は、履歴取得部１００１が取得した全ての履歴データを、二次フィルタ部１００３に供給しており、ステップＳ４０４の後、二次フィルタ部１００３は、起動アプリ監視部１００４から他の指示があるまで、一次フィルタ部１００２から供給された全ての履歴データを履歴保存部１００７に供給する。
【００４６】
一方、「対象アプリ表１１２に記述された識別情報以外の識別情報が、起動アプリ表１０２に含まれる」と判断すると（ステップＳ４０２；ＹＥＳ）、起動アプリ監視部１００４は、二次フィルタ部１００３を稼動させる（ステップＳ４０３）。したがって、この後、二次フィルタ部１００３は、起動アプリ監視部１００４から他の指示があるまで、一次フィルタ部１００２から供給された履歴データに、対象パス表１１３に記述されたいずれかのパス名が含まれているか否かを判断し、その判断結果に応じた処理を行う。
【００４７】
図８は、第２実施形態における各機能の動作を説明するシーケンス図である。ここでは、フィルタ設定部１００８は、対象アプリ表１１２に常駐アプリが含まれると判断したため、ステップＳ３０２により一次フィルタ部１００２は全開となっており、起動アプリ監視部１００４は、Ｂモードによる監視処理を実行している。したがって、起動アプリ監視部１００４は、対象アプリ表１１２に常駐アプリが含まれるか否かに応じて、二次フィルタ部１００３に指示をしている。
【００４８】
この状態において、履歴取得部１００１はアプリに記述された手順に従って呼び出される処理をフックして履歴データを取得し、取得した履歴データを一次フィルタ部１００２に供給する（ステップＳ５０１）。上述したとおり、一次フィルタ部１００２は全開となっているため（図６のステップＳ３０２）、一次フィルタ部１００２に供給されたこの履歴データはそのまま二次フィルタ部１００３に供給される（ステップＳ５０２）。二次フィルタ部１００３は、起動アプリ監視部１００４によって動作状態が指示されているため、対象アプリ以外のアプリが起動中でない場合には、全開になっており、供給された履歴データを全て履歴保存部１００７にそのまま供給する（図８において図示せず）。
【００４９】
一方、対象アプリ以外のアプリが起動中である場合には、二次フィルタ部１００３は稼動している。したがって、この場合には、図８に示すように二次フィルタ部１００３は、供給された履歴データが対象パス表１１３に記述された対象パス名を含むか否かを判断する（ステップＳ５０３）。
【００５０】
そして、供給された履歴データが対象パス表１１３に記述された対象パス名を含まないと判断すると（ステップＳ５０３；ＮＯ）、二次フィルタ部１００３は、この履歴データを破棄する（ステップＳ５０４）。すなわち、この履歴データは記憶部１１の履歴保存領域１１１には保存されない。一方、供給された履歴データが対象パス表１１３に記述された対象パス名を含むと判断すると（ステップＳ５０３；ＹＥＳ）、二次フィルタ部１００３はこの履歴データを履歴保存部１００７にそのまま供給する。
【００５１】
このように、対象アプリ以外のアプリが起動中でない場合、および対象アプリ以外のアプリが起動中であって、履歴データが対象パス表１１３に記述された対象パス名を含む場合に、履歴保存部１００７は、履歴データを受け取る。そして、履歴保存部１００７は、これらの履歴データを記憶部１１の履歴保存領域１１１に保存する（ステップＳ５０５）。すなわち、起動アプリ監視部１００４がＢモードによる監視処理を実行している場合において、履歴保存部１００７は、第３判断手段により起動中プログラムの中に対象プログラム以外のプログラムがないと判断された場合には、取得手段が取得した履歴データを全て保存し、第３判断手段により起動中プログラムの中に対象プログラム以外のプログラムがあると判断された場合には、履歴データのうち、条件を満たす履歴データを保存する保存手段の一例である。
【００５２】
以上の動作により、情報処理装置１は、１以上の常駐アプリが対象アプリとして対象アプリ表に記述されている場合には、対象アプリ以外のアプリが起動中でない期間には全履歴データを記録し、対象アプリ以外のアプリが起動中である期間には履歴データのうち、対象パス名が含まれているもののみを記憶部１１に保存する。これにより、履歴データを発生させた処理ごとにその処理を実行するアプリが対象アプリであるか否かを判断することなく、履歴データを保存することができる。また、保存対象であるアプリに常駐アプリが含まれているか否かに応じて、それぞれ異なる処理を行うことができる。
【００５３】
３．変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組み合わせてもよい。
（１）上述した実施形態において、二次フィルタ設定部１００６は、対象パス名を記述した対象パス表を保持し、この対象パス表を二次フィルタ部１００３へ供給していた。すなわち、上述した実施形態では、保存の対象となる履歴を記述した履歴データが含んでいるはずの情報（以下、履歴データ詳細情報という）は、対象パス名であったが、履歴データ詳細情報は、他の情報をであってもよい。
例えば、「履歴データを発生させた処理」の対象であるファイルについて、その種類を示したファイル拡張子を履歴データ詳細情報としてもよい。この場合、二次フィルタ設定部１００６は、保存の対象となる履歴データに含まれるはずのファイル拡張子を対象拡張子として記述した対象拡張子表を二次フィルタ部１００３へ供給する。
【００５４】
また、履歴データ詳細情報は、対象パス名やファイル拡張子以外にも、様々なものを用いることができる。例えば、処理の対象となるデータを管理するデータベース管理システムにおいて履歴データを保存する場合には、データベース管理システムに対するデータ操作の命令の種別を、履歴データ詳細情報としてもよい。具体的には、データを追加する追加命令のみを履歴データ詳細情報に含め、それ以外の命令（例えば、データを記述したテーブルを参照する参照命令など）は履歴データ詳細情報に含めないとすると、データベース管理システムに対して、データを追加する追加命令がなされたときだけ履歴データを保存することができる。また、データベース管理システムに対する命令が複数のデータが関連付けられたテーブルを対象としてなされる場合には、このテーブルの識別情報を履歴データ詳細情報に含めてもよい。
【００５５】
また、インターフェース１６を介して外部装置との間で処理の対象となるデータの遣り取りをする場合、この遣り取りについて履歴データを保存するようにしてもよい。この場合、上記の履歴データ詳細情報は、通信に用いられるプロトコルの種別であってもよい。これにより、例えば、インターフェース１６が受け取ったデータがＴＣＰ（Transmission Control Protocol）を用いて送信されている場合には、履歴データを保存し、ＵＤＰ（User Datagram Protocol）を用いて送信されている場合には、履歴データを保存しないようにすることができる。
【００５６】
（２）上述した第２実施形態において、Ｂモードの監視処理を行う起動アプリ監視部１００４は、起動アプリ表１０２に変動があると判断すると、対象アプリ表１１２に記述された識別情報以外の識別情報が起動アプリ表１０２に含まれるか否かを判断していたが、対象アプリ表１１２に記述された識別情報が起動アプリ表１０２に含まれるか否かを判断してもよい。この場合、一次フィルタ設定部１００５は、Ｂモードの監視処理が行われるときには、対象アプリ表１１２に、保存の対象となる履歴データを発生させるアプリ以外のアプリであって、常駐アプリ以外のアプリ（以下、非対象アプリという）の識別情報を記述するようにすればよい。そして、対象アプリ表１１２に記述された識別情報が起動アプリ表１０２に含まれると判断した場合には、非対象アプリが起動されているのであるから、二次フィルタ部１００３を稼動させ、それ以外の場合には、非対象アプリが起動されていないのであるから、二次フィルタ部１００３を全開にして全ての履歴データを保存すればよい。
【００５７】
（３）上述した実施形態において、図２や図５などによりブロックで示した情報処理装置１の各機能は、制御部１０が制御プログラムを実行することによってそれぞれ実現されていたが、別々に設けられた専用のプロセッサによってそれぞれ実現されてもよい。
【符号の説明】
【００５８】
１…情報処理装置、１０…制御部、１００１…履歴取得部、１００２…一次フィルタ部、１００３…二次フィルタ部、１００４…起動アプリ監視部、１００５…一次フィルタ設定部、１００６…二次フィルタ設定部、１００７…履歴保存部、１００８…フィルタ設定部、１０２…起動アプリ表、１１…記憶部、１１１…履歴保存領域、１１２…対象アプリ表、１１３…対象パス表、１２…表示部、１３…操作部、１４…無線通信部、１５…音声処理部、１６…インターフェース、１７…バス。
【図１】
0005513046.tif 000002
【図２】
0005513046.tif 000003
【図３】
0005513046.tif 000004
【図４】
0005513046.tif 000005
【図５】
0005513046.tif 000006
【図６】
0005513046.tif 000007
【図７】
0005513046.tif 000008
【図８】
0005513046.tif 000009