以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
図1は、本発明の一実施形態に係る情報処理システムの構成を概略的に示す図である。
1000−1、1000−2は、本情報処理システムのユーザが操作するクライアントコンピュータである。ここでいうユーザとしては、本情報処理システムに対してデータ検索を行わせ、その検索結果を画面上等で参照する一般ユーザ、及び、一般ユーザの検索履歴が参照することができる本情報処理システムの管理者等が挙げられる。説明の便宜上、クライアントコンピュータ1000−1は一般ユーザが使用し、クライアントコンピュータ1000−2は管理者が使用するものとする。2000は、アプリケーションサーバであり、本情報処理システムの主要動作を制御する。3000は、データベースサーバであり、アプリケーションサーバ2000から送信されるクエリに応じた検索処理を行い、その検索結果をアプリケーションサーバ2000に対して返す。4000は、プリンタであり、アプリケーションサーバ2000からの印刷依頼に応じた印刷処理を行う。クライアントコンピュータ1000−1、1000−2、アプリケーションサーバ2000、データベースサーバ3000及びプリンタ4000は、例えばイーサネット(登録商標)等の通信ネットワーク5000を介して互いに接続される。尚、図1の通信ネットワーク5000上における各種端末の接続構成は飽くまでも一例であり、本発明は、用途や目的に応じて様々な接続構成を採り得ることは言うまでもない。
図2は、アプリケーションサーバ2000のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202又は外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(OS)や、各サーバ又は各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ205は、キーボード209や不図示のマウス等のポインティングデバイスからの入力を制御する。ビデオコントローラ206は、CRTディスプレイ(CRT)210等の表示器における表示処理を制御する。表示器はCRTだけでなく、例えば液晶ディスプレイ等の他の表示器であっても構わない。メモリコントローラ207は、ブートプログラム、ブラウザソフトウェア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する、ハードディスク(HD)、フレキシブルディスク(FD)又はPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
以下に説明する本実施形態の動作を実現するためのプログラムは、外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、上記のプログラムが用いる定義ファイル及び各種情報テーブルも外部メモリ211に格納されており、必要に応じてRAM202にロードされる。
次に、一般ユーザから検索依頼があった場合のアプリケーションサーバ2000の動作を図3のフローチャートを用いて説明する。
ユーザは、クライアントコンピュータ1000−1上で図4に示すような入力画面において自らのユーザID情報及びパスワード情報を入力する。クライアントコンピュータ1000−1は、入力されたユーザID情報及びパスワード情報、クライアントコンピュータ1000−1を一意に特定可能な例えばIPアドレス等のリクエスト元情報、並びに、ログインの日時を示すログイン日時情報をアプリケーションサーバ2000に対して送信する。
アプリケーションサーバ2000は、クライアントコンピュータ1000−1からユーザID情報及びパスワード情報、リクエスト元情報、並びに、ログイン日時情報を受信する。CPU201は、ユーザIDとパスワードとを対応付けたテーブルをHDD211からRAM203にロードし、受信したユーザID情報及びパスワード情報の組合せが適正であれば、当該ユーザのログインを許可する(ステップS301)。また、CPU201は、図5に示すように、クライアントコンピュータ1000−1から受信したユーザID情報、リクエスト元情報及びログイン日時情報を対応付けてRAM203に保存する(ステップS302)。図5の501はログイン日時情報、502はユーザID情報、503はリクエスト元情報である。
続いて、クライアントコンピュータ1000−1では、画面上においてユーザが抽出条件の入力作業を行う。この抽出条件の入力作業の一例を図7〜図9を用いて説明する。図7の例では、先ずユーザが例えば図7に示す画面左側で「売上マスタ」702とその下位の「店舗コード」704とをマウス等で選択すると、画面右側における第1の抽出条件設定欄(NO「1」)のデータ分類に「売上マスタ」、条件項目に「店舗コード」が表示される。次にユーザは、プルダウンメニュー705を操作して「等しい」と設定するとともに値の入力欄706に「10」を入力した場合を示している。これは、第1の抽出条件として「店舗コード」が「10」に該当する情報を検索することを設定したことを意味する。
また、図7の例では、同じくユーザが図7に示す画面左側で「売上マスタ」702とその下位の「日付」703とを選択すると、画面右側における第2の抽出条件設定内(NO「2」)のデータ分類に「売上マスタ」、条件項目に「日付」が表示される。次にユーザがプルダウンメニュー707を操作して「等しい」と設定するとともに値の入力欄708に「2004/01/01」を入力した場合を示している。これは、第2の抽出条件として「日付」が「2004/01/01」に該当する情報を検索することを設定したことを意味する。さらに、これら第1の抽出条件設定欄と第2の抽出条件設定欄の間のプルダウンメニュー709が「and」と設定され、第1の抽出条件と第2の抽出条件との双方を満たすものが抽出条件として指定されている。
このような設定作業が行われた後、「確定」ボタン710が押下されると、図7の第1の抽出条件設定欄及び第2の抽出条件設定欄で設定された各情報がクライアントコンピュータ1000−1からアプリケーションサーバ2000に対して送信される。
アプリケーションサーバ2000は、ステップS303において、第1の抽出条件設定欄及び第2の抽出条件設定欄でのデータ分類、条件項目及び検索内容における各設定情報を受信し、RAM203に保持するとともに、第1の抽出条件設定欄及び第2の抽出条件設定欄の各検索内容での設定情報を修正、削除等を行うための例えば図9に示す画面情報をクライアントコンピュータ1000−1に対して送信する。また、これらの情報を受けたアプリケーションサーバ2000では、後述するデータベースサーバ3000に対して送信されるクエリのwhere句(tenpocode=10、hizuke="2004/01/01")を確定する。
図9に示す画面は、図7の画面上の第1の抽出条件設定欄及び第2の抽出条件設定欄での各設定情報が反映される。ユーザは図9の画面の表示内容を確認し、問題がなければ「表示画面へ」ボタン901又は「レポート一覧へ」ボタン902を押下する。「表示画面へ」ボタン901又は「レポート一覧へ」ボタン902が押下されると、「表示画面へ」ボタン901又は「レポート一覧へ」ボタン902が押下された旨の情報がクライアントコンピュータ1000−1からアプリケーションサーバ2000に対して送信される。
次に、「表示画面へ」ボタン901が押下された場合には、アプリケーションサーバ2000からクライアントコンピュータ1000−1に対して図8に示すような画面情報が送信される。図8に示す画面は、表示する項目(表示項目)が選択される画面である。すなわち、クエリのselect句の選択が行われる画面である。ユーザが図8に示す画面左側で「売上マスタ」803とその下位の「店舗コード」805を選択すると、画面右側における806(NO「1」)のデータ分類に「売上マスタ」、表示項目に「店舗コード」が表示される。更に図8に示す画面左側で「売上マスタ」803とその下位の「日付」804を選択すると、807(NO「2」)のデータ分類に「売上マスタ」、表示項目に「日付」が表示される。図8に示すように売上マスタテーブルの「店舗コード」(表示項目)及び売上マスタテーブルの「店舗コード」(表示項目)選択された場合、表示する項目は「店舗コード」及び「日付」である。このように表示項目を選択され、「CSV出力」ボタン801が押下されると、その旨の情報がクライアントコンピュータ1000−1からアプリケーションサーバ200に対して送信され、アプリケーションサーバ2000では、上記のクエリのselect句(tenpocode、hizuke)及びfrom句(uriage)を確定する。
また、図9上において「レポート一覧へ」ボタン902が押下された場合には、アプリケーションサーバ2000からクライアントコンピュータ1000−1に対して図10に示すような画面情報が送信される。ここで送信される画面情報においては、出力帳票のフォームを選択することができる。図10の例では、「日毎売上表」又は「店舗売上表」のフォームを選択することができ、ユーザによって何れかのフォームが選択されると、選択されたフォームを示す情報がクライアントコンピュータ1000−1からアプリケーションサーバ2000に対して送信される。また、アプリケーションサーバ2000では、選択されたフォームに応じたselect句が選択される。アプリケーションサーバ2000内では、帳票フォームに応じたselect句が予め設定されており、選択された帳票フォームに対応するselect句が選択されることになる。例えば、「日毎売上表」の帳票フォームが選択された場合には、例えば、帳票上に日付、売上及び店舗コードを表示させるべくselect句として「hizuke」、「uriage」及び「tenpocode」が選択される。
続いて、CPU201は、確定したwhere句、select句及びfrom句からSQL文等のクエリを作成する(ステップS304)。作成されたクエリはアプリケーションサーバ2000からデータベースサーバ3000に対して送信される(ステップS305)。
データベースサーバ3000は、受信したクエリに該当する情報を検索し、該当した情報をアプリケーションサーバ2000に対して送信する。ここで検索される情報を以下ではトレースデータと称す。例えば、図7〜図9に示す例の抽出条件が入力された場合は、データベースサーバ3000では、売上マスタテーブル(uriage)から店舗コード(tenpocode)が"10"に該当し且つ日付(hizuke)が"2004/01/01"に該当するものがトレースデータとして検索されることになる。一方、受信したクエリに該当する情報が検索されなかった場合には、その旨を示す情報がデータベースサーバ3000からアプリケーションサーバ2000に対して送信される。
アプリケーションサーバ2000は、データベースサーバ3000からのデータを受信する(ステップS306)。受信したデータが該当するトレースデータが検索されなかった旨を示す情報であれば(ステップS307/NO)、アプリケーションサーバ2000はそのまま処理を終了する。一方、受信したデータにトレースデータが含まれている場合(ステップS308/YES)、ステップS308に処理を移行する。
ステップS308では、CPU201は、今回の検索処理についての採番処理を行う(ステップS308)。この採番処理では、他の検索時における番号とは異なる唯一の番号を作成する。このような採番処理のために例えば検索処理の度にカウント値を上げていくカウンタを設けてもよい。尚、ここで作成される番号を以下では出力管理番号と称す。
続くステップS309では、CPU201は、ステップS308で作成した出力管理番号をファイル名に含むトレースデータファイルを作成する(ステップS309)。例えば、ステップS308で作成された出力管理番号が"1"であれば、図11に示すようにトレースデータファイルのファイル名は"1.tdf"となる。尚、図11では、既にトレースデータがトレースデータファイルに対して出力された例を示しているが、この段階では未だトレースデータファイルにはトレースデータは出力されておらず、トレースデータファイルはファイル名のみが付与され、ファイル内には何等データを含まない状態である。
続いて、CPU201は、取得した全トレースデータに対して図16(a)に示すフローにより暗号化・圧縮処理を行い(ステップS310)、作成したトレースデータファイルに対して出力する(ステップS311)。これにより、図11に示すようなトレースデータを含むトレースデータファイルとなる。図11に示すトレースデータファイルに含まれるトレースデータは、「2004/01/01」、「10」及び「2432400」のデータから構成され、夫々日付、店舗コード及び売上に対応するデータであるが、各データがどのようなデータであるかを示す項目情報(日付、店舗コード、売上)はトレースデータには含まれない。図11の例では、図8の表示項目で「日付」、「店舗コード」、「売上」を選択されている場合のトレースデータを示している。
ここで、図16(a)に示す暗号化・圧縮処理について説明する。CPU201は、図12に示す管理テーブルを外部メモリ211からRAM203にロードし、今回の暗号化・圧縮処理の対象となるトレースログ又はトレースデータについて参照する。そして、CPU201は、今回の暗号化・圧縮処理の対象であるトレースログ又はトレースデータを暗号化するか否かを判断する(ステップS1601)。図12の例では、トレースログ及びトレースデータの何れに対しても暗号化すること(ON)が規定されているので、ここでは、何れであっても暗号化すると判断されることになる。
ステップS1601にて、暗号化すると判断された場合(ステップS1601/YES)、CPU201はトレースログ又はトレースデータに対する暗号化処理を行う(ステップS1602)。一方、暗号化処理を行わないと判断された場合は、ステップS1602を行うことになくステップS1603に処理が移行する。
続いて、CPU201は、今回の暗号化・圧縮処理の対象であるトレースログ又はトレースデータを圧縮するか否かを判断する(ステップS1603)。図12の例では、トレースログ及びトレースデータの何れに対しても圧縮すること(ON)が規定されているので、ここでは、何れであっても圧縮すると判断されることになる。
ステップS1603にて、圧縮すると判断された場合(ステップS1603/YES)、CPU201はトレースログ又はトレースデータに対する圧縮処理を行う(ステップS1604)。一方、圧縮処理を行わないと判断された場合は、ステップS1604を行うことなく処理を終了する。
本実施形態における暗号化・圧縮処理は、上述したように図12に示すようなトレースデータを圧縮するか否か、暗号化するか否かを予め定めた管理テーブルを用いて行う。尚、図12に示すような管理テーブルは外部メモリ211に格納されており、この暗号化・圧縮処理の際にRAM203にロードされ、CPU201によって参照される。また、図12に示す例では、暗号化方法及び圧縮方法については規定されていないが、これらを規定した管理テーブルを用い、その内容に従って暗号化及び圧縮を行うことも可能である。
次に、CPU201は、現在最も新しいトレースログファイルを外部メモリ211からRAM203に読み込み、このトレースログファイルが所定の容量を越えているか否かを判断する(ステップS312)。トレースログファイルに幾つかトレースログが出力されており、所定の容量を越えていれば処理はステップS313に移行し、所定の容量を越えてなければステップS313は実行されず、処理はステップS314に移行する。尚、トレースログとは、一般ユーザの検索履歴を管理するための情報であり、トレースログファイルとは、一又は複数のトレースログを記録するファイルである。詳細は後述するが、本実施形態では、トレースログファイルを基に検索を行うものであり、一トレースログファイルの容量を上記のように制限することで検索処理の負荷を低減し、検索処理速度を向上させることが可能となる。更に、この所定の容量がトレースデータファイルの容量以下に設定することによって、トレースログファイルの検索処理の負荷を低減し、検索処理速度を向上させることが可能にとなる。
ステップS313では、CPU201は不図示のタイマ等の計時手段から現在の日時情報を取得し、取得した日時情報を含むファイル名の新たにトレースログファイルを作成する。図13及び図14は、トレースログファイルの構成例を示す図である。例えば、図13に示すトレースログファイルのファイル名は"20040101183255.tlg"であり、このトレースログファイルが2004年1月1日18時32分55秒の作成されたことを示している。また、図14に示すトレースログファイルのファイル名は"20040104193030.tlg"であり、このトレースログファイルが2004年1月4日19時30分30秒に作成されたことを示している。
例えば、現在最も新しいトレースログファイルが図13に示すものであり、ステップS312において図13に示すトレースログファイルが所定の容量を越えていると判断された場合には、図14に示すような現在の日時情報をファイル名に含む新たなトレースログファイルが作成されることになる。尚、ステップS313において新たなトレースログファイルが作成された場合には、作成されたトレースログファイルにはトレースログは出力されておらず、トレースログファイルはファイル名のみが付与され、ファイル内には何等データを含まない状態である。
続いて、CPU201は、今回の検索処理に関するトレースログを作成する(ステップS314)。作成されるトレースログには、図13、図14に示すように、RAM203に保持されているログイン日時情報1301(1401)、ユーザID情報1302(1402)及びリクエスト元情報1303(1403)、カテゴリID情報1304(1404)、帳票出力が行われた場合の帳票フォームのID情報1305(1405)、ステップS308で付与された出力管理番号情報1306(1406)、ステップS310にてトレースデータを圧縮したか否かを示す情報1307(1407)、ステップS305にてデータベースサーバ3000に対して送信されたクエリ内のselect句情報1308(1408)、当該クエリ内のfrom句情報1309(1409)、当該クエリ内のwhere句情報1310(1410)、図7の条件項目で設定された条件項目名1311(1411)、並びに、図8の表示項目で設定された表示項目名1312(1412)が含まれる。ここで、表示項目名は、帳票フォーム毎に予め登録されており、帳票フォームを図10の画面で選択されることによって決まる。尚、カテゴリID情報は、ステップS302でログイン日時情報、ユーザID情報及びリクエスト元情報とともにRAM203に保存される情報であり、図7の画面左側のデータ分類において選択された最上位項目(売上実績、顧客検索、商品検索等)の識別情報である。
続いて、CPU201は、作成したトレースログに対するステップS310と同様の暗号化・圧縮処理を行う(ステップS315)。この暗号化・圧縮処理の際にはステップS310と同様に図12に示す管理テーブルが用いられ、管理テーブルにおいて管理される情報に従って暗号化・圧縮処理が行われる。
続いて、CPU201は、暗号化・圧縮処理を施したトレースログをステップS313にて新たに作成したトレースログファイル、又は、ステップS312で所定の容量を越えていないと判断された現在最も新しいトレースログファイルに対して出力する(ステップS316)。これにより、図13又は図14に示すようなトレースログを含むトレースログファイルとなる。
続いて、CPU201は、帳票出力を行うか、クライアントコンピュータ1000−1
上での画面表示を行うかをステップS303におけるクライアントコンピュータ1000−1からの受信情報から判断する(ステップS317)。即ち、クライアントコンピュータ1000−1から図9の画面上で「表示画面へ」ボタン901が押下された旨の情報を受信した場合には、クライアントコンピュータ1000−1上での画面表示を行うと判断し、図9の画面上で「レポート一覧へ」ボタン902が押下された旨の情報を受信した場合には、帳票出力を行うと判断する。
CPU201は、帳票出力を行うと判断した場合(ステップS317/YES)、図10の画面上で選択された帳票フォーム情報、ステップS308で付与した出力管理番号情報、及び、出力枚数等の帳票の出力処理に関する出力条件情報から成るヘッダ部情報と、ステップS306で受信したトレースデータ及びステップS314で作成したトレースログから成るボディ部情報とを作成し、ヘッダ部情報とボディ部情報とを不図示の内部の帳票作成部に対して送信し、帳票作成を指示する(ステップS318)。ここで作成された帳票はプリンタ4000に対して送信され、印刷出力される。
一方、CPU201は、クライアントコンピュータ1000−1上での画面表示を行うと判断した場合には(ステップS317/NO)、ステップS306で受信したトレースデータ及びステップS314で作成したトレースログに基づいてCSVファイル等を作成し、クライアントコンピュータ1000−1に対して送信する(ステップS319)。これにより、クライアントコンピュータ1000−1上において検索結果が画面表示されることになる。
ここで、検索結果の出力例について具体的に説明する。先ず、図13に示すトレースログファイルのうち出力管理番号が1であるトレースログが生成された場合における検索結果の画面表示の場合について説明する。出力管理番号1のトレースログの表示項目名(図13の1312)には「日付」、「店舗」、「売上」がこの順序で設定されている。このようなトレースログに対応するトレースデータファイル(1.tdf)には、図11に示すように「日付」、「店舗」、「売上」の順にトレースデータの夫々の情報が記録されている。従って、トレースデータ内の各情報の意味はトレースログの表示項目名に設定される項目名とその設定順序とから確定する。アプリケーションサーバ2000は、トレースログにおける表示項目名とトレースデータ内の情報とを対応付けたCSVファイルを作成し、クライアントコンピュータ1000−1に送信することで、クライアントコンピュータ1000−1上では図17に示すような例で検索結果が表示される。
次に、検索結果を帳票出力させた場合の具体例について説明する。図18は、上記のようにトレースデータファイルとそれに対応するトレースログとに基づいて生成される検索結果情報であるが、図18の例では、抽出条件として複数の店舗コードが指定された場合を例示している。図18に示す情報を帳票として出力させる上でユーザが図10の画面上において図19に示すような帳票フォーム(日毎売上表)が選択された場合、図18の情報と図19の帳票フォームとを合成することにより図20に示すような帳票が出力される。尚、出力された帳票には、図20の2001に示すように当該トレースログから出力管理番号も記載される。
次に、本システムの管理者による検索指示がなされた場合のアプリケーションサーバ2000の動作を図6−1及び図6−2のフローチャートを用いて説明する。
先ず、管理者は、クライアントコンピュータ1000−2上において検索情報を入力する。ここでいう検索情報とは、情報種類、情報値及び値の総称である。情報種類は、トレースログの項目(情報種類)を示す情報であり、情報値は情報種類により示される項目内のデータを示す情報であり、値は、情報種類が設定され、情報値が設定されていない場合には、情報種類の値を示し、情報種類及び情報値の双方が設定されている場合には情報値の値を示す情報である。管理者は検索情報としてこれらを指定することにより所望の検索を行うことができる。なお、この値にはトレースデータが指定される。
図15は、検索情報の入力画面の一例を示す図である。図15の例では、期間として「2003/12/31」〜「2004/01/03」、情報種類として「表示項目名」、情報値として「日付」、値として「2004/01/01」が指定されている。従って、この例では「2004/01/01」は「日付」の値である。尚、図15の例では、情報種類、情報値及び値を夫々一つずつ設定可能な画面例を示しているが、図15のような検索条件を設定するための欄を複数設け、設定される各検索条件によるAND検索やOR検索等も行うことも可能である。
図15に示すような入力画面上で入力された検索情報は、クライアントコンピュータ1000−2からアプリケーションサーバ2000に対して送信される(ステップS601)。
CPU201は、検索情報において「期間」で何らかの情報が指定されているか否かを判断する(ステップS602)。検索情報において「期間」で何らかの情報が指定されていれば、(ステップS602/YES)、
CPU201は外部メモリ211からRAM203にロードするトレースログファイルを指定された期間に基づいて制限する(ステップS603)。即ち、期間で指定された日付に生成されたトレースログを含む可能性のあるトレースログファイルを、日時情報を含むトレースログファイル名に基づいて判断し、RAM203にロードする。
CPU201は、期間(ステップS601)が指定されていない場合は、(ステップS602/NO)、る外部メモリ211から全トレースログファイルをRAM203にロードし、外部メモリ211に格納されているトレースログファイル全てを検索の対象とする(ステップS604)。
続いて、CPU201は、RAM203にロードされたトレースログファイルを一つずつ読み出す。RAM203内にトレースログファイルが存在し、トレースログファイルが読み出せた場合(ステップS605/YES)、CPU203は、暗号化・圧縮処理されているトレースログファイル内の全トレースログを図16(b)に示すフローにより解凍・復号化処理する(ステップS606)。
ここで、図16(b)に示す解凍・復号化処理について説明する。先ず、CPU201は、今回の解凍・復号化処理の対象となるトレースログ又はトレースデータが圧縮されているか否かを判断する(ステップS1605)。圧縮されている場合(ステップS1605/YES)、トレースログ又はトレースデータの解凍処理を行う(ステップS16060)。一方、圧縮されていない場合には(ステップS1605/NO)、ステップS1606を行うことなく処理はステップS1607に移行する。
次に、CPU201は、今回の解凍・復号化処理の対象となるトレースログ又はトレースデータが暗号化されているか否かを判断する(ステップS1607)。暗号化されている場合(ステップS1607/YES)、CPU201はトレースログ又はトレースデータの復号化処理を行う(ステップS1608)。一方、暗号化されていない場合は(ステップS1607/NO)、ステップS1608の処理を行うことなく、処理を終了する。
続いて、CPU201は、解凍・復号化処理したトレースログの一つを読み出す(ステップS607)。未だ処理対象となっていないトレースログが存在し、この処理によりトレースログが読み出せた場合(ステップS608/NO)、CPU201は、当該トレースログ内を検索し、ステップS601で指定された検索情報内の情報値(例えば、情報種類として「表示項目名」、情報値として「日付」の場合、図13の1312が「表示項目名」を表し、1件目の「表示項目名」が"日付,売上"であり、"日付"を含むので対象となる)が設定されているか否かを判断する(ステップS609、ステップS610)。
当該トレースログにステップS601で指定された検索情報内の情報値が設定されている場合(ステップS610/YES)、CPU201は、当該トレースログをトレースログサーチファイルに出力し(ステップS611)、検索情報内の情報値が設定されているトレースログのみを記録したトレースログサーチファイルを作成する。一方、当該トレースログにステップS601で指定された検索情報内の情報値が設定されていない場合は(ステップS610/NO)、CPU201は、当該トレースログをトレースログファイルに出力することなく、ステップS606に移行して次のトレースログに対する解凍・復号化処理を行う。
また、ステップS608において、ステップS606にて解凍・復号化した全トレースログに対して処理が終了し、トレースログが読み出せなかった場合は(ステップS608/YES)、CPU201は今回ステップS606〜ステップS611の処理対象としていた当該トレースログファイルを削除し、次のトレースログファイルを指定してステップS605に処理を移行する(ステップS615、ステップS616)。
また、RAM203にロードされた全トレースログファイルについてステップS606〜ステップS611の処理が完了した場合には(ステップS605/NO)、CPU201はステップS601で指定された検索情報内に値が設定されており、且つトレースログサーチファイル内に少なくとも一つのトレースログが出力されているか否かを判断する(ステップS612)。
ステップS601で指定された検索情報内に情報種類(表示項目名)と値が設定されており、且つトレースログサーチファイル内に少なくとも一つのトレースログを出力されている場合(ステップS612/YES)、CPU201は、後述する解凍トレースデータの作成処理を行う(ステップS613)。
一方、ステップS601で指定された検索情報内に値が設定されていない、又は、検索情報内に値が設定されているがトレースログサーチファイル内にトレースログが出力されていない場合、ステップS613の処理は行われることなくステップS614に処理は移行する。
ステップS613を介してステップS614に処理が移行した場合には、ステップS613で作成された解凍トレースデータファイル及び元のファイル名のトレースログサーチファイルをクライアントコンピュータ1000−2に対して送信される。一方、ステップS613を介することなく、ステップS612からステップS614に処理が移行した場合には、ステップS611で作成されたトレースログサーチファイルがクライアントコンピュータ1000−2に対して送信される。
図6−2は、図6−1のステップS613の解凍トレースデータ作成処理の詳細を示すフローチャートである。
CPU201は、ステップS611によって作成したトレースログサーチファイルのファイル名をリネームする(ステップS701)。続いて、CPU201はリネームしたトレースログサーチファイルからトレースログを一つずつ読み出す(ステップS702)。
続いて、CPU201は、トレースログ内の出力管理番号をファイル名に含むトレースデータファイルを外部メモリ211から読み込む(ステップS703)。次に、CPU201は、読み込んだトレースデータファイル内の全トレースデータを図16(b)に示すフローにより解凍・復号化する(ステップS704)。
続いて、CPU201は、ステップS617において解凍・復号化処理の対象となったトレースデータファイル内にステップS601で設定された値を含むトレースデータが存在するか否かを判断する(例えば、情報種類として「表示項目名」、情報値として「日付」、値として「2004/01/01」の場合、図14の1412が「表示項目名」を表し、1件目の「表示項目名」が"日付,売上"から"日付"は、第一カラムと判断し、図17のトレースデータの第一カラムに「2004/01/01」があれば対象となる)(ステップS705、S706)。当該トレースデータファイル内にステップS601で設定された値を含むトレースデータが存在しない場合(ステップS706/NO)、CPU201は当該トレースデータファイルを削除する。一方、当該トレースデータファイル内にステップS601で設定された値を含むトレースデータが存在する場合(ステップS706/YES)、CPU201は、当該トレースデータファイルのファイル名に含まれる出力管理番号を用いて、「出力管理番号+.CSV」をファイル名とする解凍トレースデータファイルを作成する(ステップS707)。
続いて、CPU201は、ステップS601で指定された値を含むトレースデータを解凍トレースデータファイルに出力し(ステップS708)、検索情報内で指定された値を含むトレースデータのみを記録した解凍トレースデータファイルを作成する。次に、CPU201は、元のファイル名(リネームする前のファイル名)のトレースログサーチファイルを別途作成し(ステップS709)、作成したトレースログサーチファイルに対してステップS702で読み出したトレースログを出力する(ステップS710)。
続いて、CPU201は、リネームしたトレースログサーチファイルから全てのトレースログを読み出したか否かを判断し(ステップS711)、未だ読み出していないトレースログが存在する場合(ステップS711/NO)、ステップS704にて解凍・復号化処理の対象となった当該トレースデータファイルを削除する(ステップS713)。一方、全てのトレースログを読み出した場合には(ステップS711/YES)、リネームしたトレースログサーチファイルを削除する(ステップS712)。
このように、本実施形態によれば、検索情報内に値が指定されている場合には、検索情報内の情報値を含むトレースログのみを記録したトレースログサーチファイル(リネームされたトレースログファイル)から、更に検索情報内の値を含むトレースデータファイルに対応するトレースログのみを記録したトレースログサーチファイル(元のファイル名のトレースログサーチファイル)に絞り込んで管理者のクライアントコンピュータ1000−2に対して送信するようにしている。従って、クライアントコンピュータ1000−2上では、トレースログサーチファイル及び解凍トレースデータファイルに基づいて、管理者が指定した検索情報に基づく検索結果が表示されることになる。図15に示すような検索情報が指定された場合、2004年01月01日の日付を含むトレースデータ(解凍トレースデータファイル)と、そのトレースデータを含むトレースデータファイルに対応するトレースログとが抽出され、それらに基づく検索結果情報がクライアントコンピュータ1000−2上で表示されることになる。従って、管理者は、2004年01月01日という値を日付として指定して一般ユーザによって行われた検索結果等を把握することが可能となる。
以上のように、本実施形態によれば、トレースデータを記録し、一意な出力管理番号をファイル名に含むトレースデータファイルと、トレースデータの項目情報とトレースデータファイルの出力管理番号とを含むトレースログを記録するトレースログファイルとを分割し、トレースデータとトレースログとが共に暗号化されているため機密性が保たれる。また、トレースデータファイルを検索する際に、そのファイル名は暗号化されていないため、情報量の少ないトレースログファイルのみを復号化して出力管理番号から対応するトレースデータファイルを検索することができ、高速な検索処理を実現することが可能となる。
さらに、管理者による他の検索例について説明する。図21は、管理者によって入力される他の検索情報の例を示す図である。図21では、検索情報の情報種類として「出力管理番号」、情報値として何も入力されず、値として「1」が入力されている。即ち、図21の例では、出力管理番号が1に該当するトレースログ及びトレースデータ(又はトレースデータファイル)を検索するように指定している。例えば、図20に示すような帳票が出力されており、その帳票上に出力管理番号も併せて出力されている。この帳票は例えば誰によっていつ検索して出力されたものかを調べる際に、その出力管理番号を指定することにより、アプリケーションサーバ2000は、出力管理番号「1」を含むトレースログを検索してクライアントコンピュータ1000−2に対して送信することができる。
これは、上記のように情報種類は指定されているが、情報値は指定されていないような検索情報が入力された場合、図6−1のフローチャートにおいて、ステップS609、ステップS610では当該情報種類と同じ項目、ここでは出力管理番号項目に情報が設定されているトレースログを検索し、ステップS610とステップS611の処理の間に出力管理番号が「1」であるか否かを判断する処理を追加する。そして、出力管理番号が「1」であればステップS611の処理に移行し、出力管理番号が「1」以外であればステップS606に戻るようにする。また、ステップS613に代わる処理として、出力管理番号の「1」をファイル名に含むトレースデータファイル内の全トレースデータを解凍・復号化し、それらを解凍トレースデータファイルに出力するように構成すればよい。
以上の処理を経て生成されるトレースログサーチファイル及び解凍トレースデータをクライアントコンピュータ1000−2に送信することで、管理者は、当該帳票が例えば誰によっていつ出力されたものかを把握することができるとともに、当該帳票を出力させる上での検索結果も把握することが可能となる。
尚、情報種類が指定され、情報値は指定されていないような検索情報が入力される場合が上記の例に限らないことは言うまでもない。例えば、ログイン日時情報やユーザID情報等を情報種類として指定し、それらの値を指定することによっても同様の処理が行われる。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。