以下、本発明の実施例について、図面と共に説明する。図1は、本発明が適用された検索システム1の構成を表すブロック図である。
[検索システムの概略構成]
図1に示すように、本実施例の検索システム1は、利用者端末10と、ディジタル複合機30と、検索サーバ50と、が互いにTCP/IPネットワークを通じて通信可能に接続された構成にされている。
利用者端末10は、CPU等から構成される制御部11と、ユーザが操作可能なキーボードやポインティングデバイス等から構成される操作部13と、液晶モニタを備える表示部15と、ネットワークに接続され複合機30及び検索サーバ50と通信可能な通信部17と、ハードディスク装置等からなる記憶部19と、を備える。また、記憶部19は、オペレーティングシステム(OS)、後述する各種処理を実現するプログラム、検索制御用のキューである検索制御キュー19a等を備える。
一方、複合機30は、CPU等から構成される制御部31と、ユーザが操作可能な各種キーを備える操作部33と、液晶モニタを備える表示部35と、ネットワークに接続され利用者端末10と通信可能な通信部37と、用紙に画像形成可能な記録部39と、原稿を読取可能な読取部41と、公衆電話回線網(PSTN)に接続された回線制御部43と、音声通話用の送話器及び受話器を内蔵したハンドセット45と、ハンズフリー通話用のマイクロフォン等から構成される音声入力部47と、ハンズフリー通話時に相手音声を再生するスピーカ等からなる音声出力部48と、ハードディスク装置やNVRAMなどから構成される各種データ記憶用の記憶部49と、を備える。
記録部39は、制御部31からの指令を受けて動作し、図示しない給紙部から用紙を取り込み、この用紙に、インクジェット方式又はレーザプリンタ方式にて、制御部31から入力されたデータに基づく画像を形成する。また、読取部41は、制御部31からの指令を受けて、プラテンガラス上又はADF装置(オートドキュメントフィーダ)にセットされた原稿を、光学的に読み取り、この読取結果を制御部31に入力する。
その他、回線制御部43は、制御部31からの指令を受けて、制御部31から指定された電話番号先の外部端末装置に呼を発し、又、外部端末装置からの呼を受け付けて、当該複合機30と外部端末装置とを通信可能に接続する。
また、制御部31は、装置内各部を統括制御し、プリンタ機能、スキャナ機能、コピー機能、FAX(ファクシミリ)機能、PCFAX送信機能、電話機能等を実現する。
具体的に、制御部31は、利用者端末10から印刷コマンドを受信すると、プリンタ処理を実行し、印刷コマンドと共に受信した印刷対象データに基づく画像を、記録部39を通じて、用紙に印刷する(プリンタ機能)。また、制御部31は、操作部33や利用者端末10から読取コマンドが入力されると、スキャナ処理を実行し、読取部41を通じて、読取部41にセットされた原稿についての読取画像を表す読取画像データを生成し、これを記憶部49に記憶する(スキャナ機能)。
その他、制御部31は、操作部33や利用者端末10から複写コマンドが入力されると、コピー処理を実行し、読取部41を通じて、読取部41にセットされた原稿を読み取り、この読取結果に基づき、読取部41にセットされた原稿を、記録部39を通じて、用紙に複写する(コピー機能)。
また、制御部31は、操作部33や利用者端末10を通じてFAX送信コマンドが入力されると、FAX送信処理を実行し、読取部41にて読み取られた原稿についての読取画像データを、FAXデータとして、FAX送信コマンドと共に入力された電話番号先の外部端末装置(ファクシミリ装置)に、回線制御部43を通じて送信する。その他、制御部31は、回線制御部43が外部端末装置(ファクシミリ装置)からFAX通信の初期信号(CNG信号)を受信すると、外部端末装置からFAX受信コマンドが入力されたとして、FAX受信処理を実行し、外部端末装置から送信されてくる画像データを、回線制御部43を通じて受信し、この画像データを、記録部39を通じて用紙に印刷し、更に、この画像データを、外部端末装置の電話番号と共に記憶部49に記憶する(FAX機能)。
また、制御部31は、利用者端末10からPCFAX送信コマンドを受信すると、PCFAX送信処理を実行し、PCFAX送信コマンドと共に利用者端末10から受信した画像データを、FAXデータとして、利用者端末10から指定された電話番号先の外部端末装置(ファクシミリ装置)に、回線制御部43を通じ送信する(PCFAX送信機能)。
その他、制御部31は、外部端末装置からの呼に応じて回線制御部43が呼出音を出力し、これに反応して利用者がハンドセット45を取り上げたりハンズフリー用のキー(図示せず)を押下すると、通話開始コマンドが入力されたとして、電話処理を実行し、ハンドセット45や音声入力部47から入力される利用者の音声信号を、回線制御部43を通じて外部端末装置に送信すると共に、回線制御部43が外部端末装置から受信した音声信号を、ハンドセット45や音声出力部48に入力する。また、制御部31は、回線制御部43とハンドセット45との間や、回線制御部43と音声入力部47及び音声出力部48との間でやりとりされる音声信号に基づき、通話内容を録音し、記憶部49に通話内容を表す音声データを記録すると共に、外部端末装置の電話番号を、音声データに関連付けて記憶部49に記録する(電話機能)。
また、制御部31は、操作部33を通じて発呼操作がなされ外部端末装置との接続が確立されると、通話開始コマンドが入力されたとして上記電話処理を実行し、通話内容を表す音声データを記憶部49に記録すると共に、外部端末装置の電話番号を、音声データに関連付けてメモリに記録する(電話機能)。
その他、検索サーバ50は、CPU等から構成される制御部51と、ネットワークに接続され複合機30及び利用者端末10(通信部17)と通信可能な通信部53と、ハードディスク装置等からなる記憶部55と、を備える。記憶部55は、ウェブサーバとしての機能を実現するプログラムなどの各種プログラムや、利用者端末10及び複合機30における各種処理の実行履歴を表す履歴データのレコード群からなる履歴データベース55aを備える。
[検索システムのソフトウェア構成]
次に、検索システム1のソフトウェア構成について説明する。図2は、検索システム1のソフトウェア構成を表す説明図である。
本実施例の利用者端末10は、制御部11で実行するプログラムとして、ウェブブラウザ71、キュー管理モジュール73、文書ファイル監視コンポーネント75、印刷装置監視コンポーネント77、及び、FAX装置監視コンポーネント79を備える。
文書ファイル監視コンポーネント75は、OSによって運営されるファイルシステム内のファイルイベントを検出し、検出したファイルイベントに対応する履歴データを生成する手順を制御部11に実行させるためのイベント検出モジュール75aと、検索キー生成モジュール75bと、を備える。検索キー生成モジュール75bは、イベント検出モジュール75aにて生成された履歴データに基づき、検出されたイベントに対応する検索キーを生成すると共に、検索結果の種類を表すメッセージを生成する手順を制御部11に実行させるためのプログラムとして構成されている。
また、印刷装置監視コンポーネント77は、複合機30のプリンタ機能に係るイベントを検出し、検出したイベントに対応する履歴データを生成する手順を制御部11に実行させるためのイベント検出モジュール77aと、検索キー生成モジュール77bと、を備える。検索キー生成モジュール77bは、イベント検出モジュール77aにて生成された履歴データに基づき、検索キーを生成すると共に、検索結果の種類を表すメッセージを生成する手順を制御部11に実行させるためのプログラムとして構成されている。
その他、FAX装置監視コンポーネント79は、複合機30のFAX機能及びPCFAX送信機能に係るイベントを検出し、検出したイベントに対応する履歴データを生成する手順を制御部11に実行させるためのイベント検出モジュール79aと、検索キー生成モジュール79bと、を備える。検索キー生成モジュール79bは、イベント検出モジュール79aにて生成された履歴データに基づき、検索キーを生成すると共に、検索結果の種類を表すメッセージを生成する手順を制御部11に実行させるためのプログラムとして構成されている。
尚、これら各監視コンポーネント75〜79では、上記履歴データとして、図3に示す構成の履歴データが生成され、検索キー生成モジュール75b,77b,79bでは、検索キー及びメッセージを格納した検索要求データが生成される。
一方、キュー管理モジュール73は、各監視コンポーネント75〜79にて生成された検索キー及びメッセージを有する検索要求データを、キュー(検索制御キュー19a)に登録する手順と、ウェブブラウザ71からキューの参照要求があると、キューに登録されている検索要求データを、FIFOの形式で読み出し、これを参照要求元に返信する手順を、制御部11に実行させるためのプログラムとして構成されている。
また、ウェブブラウザ71は、検索サーバ50から提供される検索結果及び検索結果の種類を表すメッセージが格納された表示用スクリプト(HTML文書)を理解して、検索結果及びメッセージを表す画面を表示部15に表示する手順を、制御部11に実行させるための表示制御モジュール71aと、検索制御アプレット71bと、を備える。検索制御アプレット71bは、検索制御キュー19aに登録されている検索要求データを、キュー管理モジュール73を通じて、検索制御キュー19aから取得し、これを通信部17を通じて検索サーバ50に送信する手順を制御部11に実行させるためのプログラムとして構成されている。
また、検索サーバ50は、制御部51で実行するプログラムとして、検索フロントエンドプロセッサ81、検索エンジン83、及び、履歴管理サーバプログラム85を備える。
検索フロントエンドプロセッサ81は、利用者端末10から送信される検索要求データを受け付けて、これを検索エンジン83に入力する手順と、検索エンジン83から得られた検索結果に基づき、検索結果及び検索結果の種類を表すメッセージを格納した表示用スクリプト(HTML文書)を生成し、これを利用者端末10に返信する手順を、制御部51に実行させるためのプログラムとして構成されている。
また、検索エンジン83は、検索フロントエンドプロセッサ81から入力される検索要求データに基づき、クエリを生成し、これを履歴管理サーバプログラム85に入力すると共に、履歴管理サーバプログラム85から得られた返信データを、検索結果として、検索フロントエンドプロセッサ81に入力する手順を、制御部51に実行させるためのプログラムとして構成されている。
その他、履歴管理サーバプログラム85は、利用者端末10から送信される履歴データを、履歴データベース55aに登録すると共に、検索エンジン83からクエリが入力されると、クエリに対応する履歴データベース55a内のレコードを、検索エンジン83に返信する手順を、制御部51に実行させるためのプログラムとして構成されている。
以上には、検索システム1のソフトウェア構成について説明したが、次には、複合機30、利用者端末10、検索サーバ50にて実行される処理について具体的に説明する。
[複合機処理]
図4は、複合機30の制御部31が実行する複合機処理を表すフローチャートである。複合機処理を開始すると、制御部31は、上述した印刷コマンド、読取コマンド、複写コマンド、FAX送信コマンド、FAX受信コマンド、PCFAX送信コマンド、通話開始コマンド、及び、検出モジュール登録コマンドを含む各種コマンドのいずれかが入力されるまで待機し(S110でNo)、コマンドが入力されると(S110でYes)、入力されたコマンドが、検出モジュール登録コマンドであるか否かを判断する(S120)。そして、入力されたコマンドが検出モジュール登録コマンドであると判断すると(S120でYes)、イベント検出モジュールの属性情報を、検出モジュールテーブル49aに登録する(S130)。
図5は、記憶部49が有する検出モジュールテーブル49aの構成を表す説明図である。図5に示すように、検出モジュールテーブル49aは、プリンタ機能、FAX機能、PCFAX送信機能、電話機能、スキャナ機能、及びコピー機能の各機能毎に、イベント検出モジュールの属性情報を記述するためのフィールドとして、「モジュールアドレス」のフィールド、「ファイルパス情報」のフィールド、「処理データ」のフィールド、「相手先情報」のフィールド、及び「操作者情報」のフィールドを有する。
S130において、制御部31は、操作部33から入力された検出モジュール登録コマンドによって、利用者から指定された機能に対応するフィールドに、操作部33から入力された属性情報を書き込む。具体的に、制御部31は、操作部33から入力されたイベント検出モジュールのIPアドレス及びポート番号を、指定機能に対応する「モジュールアドレス」のフィールドに書き込み、イベント検出モジュールに送信すべきファイルパス情報の種類を表すコードを、「ファイルパス情報」のフィールドに書き込む。また、イベント検出モジュールに送信すべき処理データの種類を表すコードを、「処理データ」のフィールドに書き込み、イベント検出モジュールに送信すべき相手先情報の種類を表すコードを、「相手先情報」のフィールドに書き込む。その他、イベント検出モジュールに送信すべき操作者情報の種類を表すコードを、「操作者情報」のフィールドに書き込む。
このようにして、イベント検出モジュールの属性情報を検出モジュールテーブル49aに登録すると、制御部31は、S110に移行し、次のコマンドが入力されるまで待機する。
一方、入力されたコマンドが検出モジュール登録コマンドではないと判断すると(S120でNo)、制御部31は、S140に移行し、入力されたコマンドに応じた処理を実行する。例えば、印刷コマンドが入力されると、上記プリンタ処理を実行し、読取コマンドが入力されると、上記スキャナ処理を実行する。
また、S140での処理を終えると、制御部31は、S140で実行した処理に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断する(S150)。具体的に、プリンタ処理を実行した場合には、プリンタ機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断し、FAX送信処理及びFAX受信処理のいずれかを実行した場合には、FAX機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断する。その他、PCFAX送信処理を実行した場合には、PCFAX送信機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断する。
また、電話処理を実行した場合には、電話機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断し、スキャナ処理を実行した場合には、スキャナ機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断し、コピー処理を実行した場合には、コピー機能に対応するイベント検出モジュールの属性情報が、検出モジュールテーブル49aに登録されているか否かを判断する。
そして、対応する属性情報が登録されていないと判断すると(S150でNo)、制御部31は、S110に移行し、対応する属性情報が登録されていると判断すると(S150でYes)、S160に移行する。また、S160に移行すると、制御部31は、登録されている上記属性情報を読み出し、この属性情報に基づき、S170にて、属性情報が示すイベント検出モジュールのIPアドレス及びポート番号を宛先としたイベント通知データを生成する。尚、イベント通知データは、図3に示すように、操作者情報、実行した処理の種類を表す情報、ファイルパス情報、処理データ、相手先情報を有した構成にされる。
また、S170にて、イベント通知データを生成すると、制御部31は、このイベント通知データを、通信部37を介してネットワークに送出し(S180)、宛先としたIPアドレス及びポート番号に対応するイベント検出モジュール77a,79aに、このイベント通知データを入力する。尚、本実施例では、検出モジュールテーブル49aに図3に示す属性情報が登録されている結果、制御部31は、具体的に、S150〜S170にて次のような処理を実行する。
即ち、制御部31は、S140にてプリンタ処理を実行すると、S150でYesと判断し、プリンタ機能に対応するイベント検出モジュールの属性情報を読み出す(S160)。そして、操作者情報として、印刷コマンドを入力した操作者のIDを記述し、ファイルパス情報として、プリンタ処理に供されたデータファイル(即ち、印刷対象データを格納したデータファイル)であって利用者端末10側が保持するデータファイルのフルパス(絶対パス)を記述し、処理の種類を表す情報として、「プリンタ」を表すコードを記述してなるイベント通知データを生成する(S170)。
また、制御部31は、S140にてFAX送信処理を実行すると、S150でYesと判断して、FAX機能に対応するイベント検出モジュールの属性情報を読み出す(S160)。そして、操作者情報として、FAX送信コマンドを入力した操作者のIDを記述し、処理の種類を表す情報として、「FAX送信」を表すコードを記述し、処理データとして、FAX送信処理時に外部端末装置に送信した画像データを格納し、相手先情報として、FAX送信時における通信先の電話番号を記述してなるイベント通知データを生成する(S170)。
また、制御部31は、S140にてFAX受信処理を実行すると、S150でYesと判断して、FAX機能に対応するイベント検出モジュールの属性情報を読み出す(S160)。そして、操作者情報として、FAX受信コマンドを入力した操作者のIDを記述し、処理の種類を表す情報として、「FAX受信」を表すコードを記述し、処理データとして、FAX受信処理時に外部端末装置から受信した画像データを格納し、相手先情報として、FAX受信時における通信先の電話番号を記述してなるイベント通知データを生成する(S170)。
また、制御部31は、S140にてPCFAX送信処理を実行すると、S150でYesと判断して、FAX機能に対応するイベント検出モジュールの属性情報を読み出す(S160)。そして、操作者情報として、PCFAX送信コマンドを入力した操作者のIDを記述し、処理の種類を表す情報として、「PCFAX送信」を表すコードを記述し、ファイルパス情報として、PCFAX送信処理に供されたデータファイル(即ち、送信データを格納したデータファイル)であって利用者端末10側が保持するデータファイルのフルパスを記述し、相手先情報として、PCFAX送信時における通信先の電話番号を記述してなるイベント通知データを生成する(S170)。
このようにして、イベント通知データを生成し(S170)、これを対応するイベント検出モジュール77a,79aに向けて送信すると(S180)、制御部31は、S110に移行する。そして、コマンドが入力される度、S120以降の処理を実行する。
以上、複合機30で実行される処理について説明したが、次には、利用者端末10で実行される処理について説明する。
[文書ファイルイベント検出処理]
図6(a)は、利用者端末10の制御部11が実行する文書ファイルイベント検出処理を表すフローチャートであり、図6(b)は、この文書ファイルイベント検出処理での履歴データの生成例を表した説明図である。この文書ファイルイベント検出処理は、イベント検出モジュール75aにて実現される。
文書ファイルイベント検出処理を開始すると、制御部11は、自装置のOSが運営するファイルシステム内で、ファイルイベントが発生するまで待機し(S210でNo)、ファイルイベントが発生すると(S210でYes)、S220に移行する。
S220に移行すると、制御部11は、OSから通知されたファイルイベントの内容を表すイベント通知データに基づき、発生したファイルイベントが、利用者の操作に基づくデータファイルの新規作成イベント、データファイルのオープンイベント、及び、データファイルのクローズイベントのいずれかであるか否かを判断する。尚、OSから得られるイベント通知データには、OSが実行した処理の種類(換言すると、イベントの種類)と、処理に供されたデータファイルのフルパスを表すファイルパス情報と、が含まれているものとする(図3及び図6(b)参照)。
そして、制御部11は、発生したファイルイベントが、上記データファイルの新規作成イベント、データファイルのオープンイベント、及び、データファイルのクローズイベントのいずれかであると判断すると(S220でYes)、S230に移行し、発生したイベントが、これらのイベントのいずれでもないと判断すると(S220でNo)、S210に移行し、次のイベントが発生するまで待機する。
また、S230に移行すると、制御部11は、現在日時を識別し、その後、S240に移行して、OSから利用者端末10の操作者のIDを取得し、その操作者IDを記した操作者情報を生成する。また、この処理を終えると、制御部11は、イベント通知データのファイルパス情報に基づき、ファイルパス情報が示すデータファイルの所在を、URL形式で記述してなる文書ファイルURLを生成する(S250)。
また、S250での処理を終えると、制御部11は、上記識別した日時を表す情報と、S240で生成した操作者情報と、S250で生成した文書ファイルURLと、イベント通知データが示す処理の種類を表す情報(「新規作成」を表すコード、「ファイルオープン」を表すコード、「ファイルクローズ」を表すコードのいずれか)と、を記述してなる履歴データを生成する(S260)。
S260での処理を終えると、制御部11は、上記生成した履歴データを、履歴管理サーバプログラム85に入力するようにして、通信部17を介し検索サーバ50に送信する(S270)。尚、送信時には、履歴データに登録コマンドを付し、これを検索サーバ50に送信する。また、この処理を終えると、制御部11は、検索キー生成モジュール75bに対し、上記生成した履歴データを入力する(S280)。その後、S210に移行する。
[文書ファイル検索キー生成処理]
続いて、利用者端末10の制御部11が実行する文書ファイル検索キー生成処理について説明する。図7は、利用者端末10の制御部11が実行する文書ファイル検索キー生成処理を表すフローチャートである。この文書ファイル検索キー生成処理は、検索キー生成モジュール75bにて実現される。
文書ファイル検索キー生成処理を開始すると、制御部11は、イベント検出モジュール75aから履歴データが入力されるまで待機し(S310でNo)、履歴データが入力されると(S310でYes)、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットした後(S320)、S330に移行する。
尚、変数KEY1は、特定の操作者情報を有する履歴データを、履歴データベース55aから抽出するためのパラメータであり、変数KEY2は、特定の文書ファイルURLを有する履歴データを、履歴データベース55aから抽出するためのパラメータである。また、変数KEY3は、特定の処理の種類を表す履歴データを、履歴データベース55aから抽出するためのパラメータであり、変数KEY4は、特定の相手先情報を有する履歴データを、履歴データベース55aから抽出するためのパラメータである。また、変数KEY5は、特定のディレクトリを示す文書ファイルURLを有する履歴データを、履歴データベース55aから抽出するためのパラメータであり、変数KEY6は、特定のデータファイルと同時期にオープンされたデータファイルに関する履歴データを、履歴データベース55aから抽出するためのパラメータである。
S330に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定する。また、制御部11は、変数KEY6に、入力された履歴データが示す文書ファイルURLを設定する。そして、記憶部19に記憶されたデフォルトの説明文字列D1を記憶部19から読み出し、説明文字列D1の挿入欄に、履歴データが示す文書ファイルURLを記入し、専用の説明文字列を生成する(S335)。
尚、図8(a)は、S335での処理例を示す説明図である。S335では、図8(a)に示すようにして、説明文字列D1の挿入欄に、履歴データが示す文書ファイルURLを記入することにより、変数KEY1及び変数KEY6の組合せからなる検索式にて得られる検索結果の種類を説明したメッセージ(専用の説明文字列)を生成する。S330の設定では、検索結果として、履歴データが示す文書ファイルURLに対応するデータファイルと同時期に開かれていたデータファイルのリストが、検索結果として得られるため、S335では、その旨を説明したメッセージを生成する。
このようにしてS335での処理を終えると、制御部11は、S340に移行し、S335で生成した説明文字列を、変数OPに設定する。尚、変数OPは、検索結果の種類を説明したメッセージ設定用のパラメータである。
また、S340での処理を終えると、制御部11は、設定した変数KEY1及びKEY6及びOPの各値を示した検索要求データを生成する(S350)。尚、図9(a)は、S350における検索要求データの生成例を表した説明図である。検索要求データは、図3及び図9(a)に示すように、変数KEY1〜KEY6の値と、変数OPの値とを格納したものである。S350では、S330,S340の処理にて設定してない変数KEY2〜KEY5の各値について、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY2〜KEY5に対応する検索キーが設定されていないことを示す。
このようにしてS350での処理を終えると、制御部11は、S350で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S355)。その後、S360に移行する。
また、S360に移行すると、制御部11は、再度、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットした後、S370に移行する。そして、S370に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定する。また、制御部11は、変数KEY5に、入力された履歴データが示す文書ファイルURLから、ファイル名の文字列を削除した値を設定する。即ち、文書ファイルURLが示すディレクトリ情報を、変数KEY5の値として設定する。その後、S375に移行する。
S375に移行すると、制御部11は、記憶部19に記憶されたデフォルトの説明文字列D2を記憶部19から読み出し、説明文字列D2の挿入欄に、入力された履歴データが示す文書ファイルURLを記入して、専用の説明文字列を生成する。
尚、図8(b)は、S375での処理例を示す説明図である。S375では、図8(b)に示すようにして、説明文字列D2の挿入欄に、履歴データが示す文書ファイルURLを記入することにより、変数KEY1及び変数KEY5の組合せからなる検索式にて得られる検索結果の種類を説明したメッセージ(専用の説明文字列)を生成する。S370の設定では、検索結果として、履歴データが示す文書ファイルURLに対応するデータファイルと同じディレクトリに格納されているデータファイルのリストが、検索結果として得られるため、S375では、その旨を説明したメッセージを生成する。
S375での処理を終えると、制御部11は、S380に移行し、S375で生成した説明文字列を、変数OPに設定する。また、S380での処理を終えると、制御部11は、設定した変数KEY1及びKEY5及びOPの各値を示した検索要求データを生成する(S390)。尚、図9(b)は、S390における検索要求データの生成例を表した説明図である。S390では、図9(b)に示すように、S370,S380の処理にて設定してない変数KEY2〜KEY4,KEY6の値については、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY2〜KEY4,KEY6に対応する検索キーが設定されていないことを示す。このようにしてS390での処理を終えると、制御部11は、S390で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S395)。その後、S310に移行する。
[印刷装置イベント検出処理]
続いて、利用者端末10の制御部11が実行する印刷装置イベント検出処理について説明する。図10(a)は、制御部11が実行する印刷装置イベント検出処理を表すフローチャートであり、図10(b)は、この印刷装置イベント検出処理での履歴データの生成例を表した説明図である。この印刷装置イベント検出処理は、イベント検出モジュール77aにて実現される。
印刷装置イベント検出処理を開始すると、制御部11は、複合機30のプリンタ機能に係るイベントが発生し、このイベントについてのイベント通知データを複合機30から受信するまで待機し(S410でNo)、このイベント通知データを通信部17を介して複合機30から受信すると(S410でYes)、S420に移行する。尚、制御部11は、処理の種類を表す情報が「プリンタ」であるイベント通知データを受信した場合にのみ、S410でYesと判断する。
S420に移行すると、制御部11は、現在日時を識別する。また、この処理を終えると、制御部11は、イベント通知データのファイルパス情報に基づき、ファイルパス情報が示すデータファイル(プリンタ処理に供されたデータファイル)の所在を、URL形式で記述してなる文書ファイルURLを生成する(S430)。
また、S430での処理を終えると、制御部11は、上記識別した日時を表す情報と、イベント通知データの操作者情報と、S430で生成した文書ファイルURLと、イベント通知データが示す処理の種類を表す情報(「プリンタ」を表すコード)と、を記述してなる履歴データを生成する(S440)。
S440での処理を終えると、制御部11は、上記生成した履歴データを、履歴管理サーバプログラム85に入力するようにして、通信部17を介し検索サーバ50に送信する(S450)。尚、送信時には、履歴データに登録コマンドを付し、これを検索サーバ50に送信する。また、この処理を終えると、制御部11は、検索キー生成モジュール77bに対し、上記生成した履歴データを入力する(S460)。その後、S410に移行する。
[印刷装置検索キー生成処理]
続いて、利用者端末10の制御部11が実行する印刷装置検索キー生成処理について説明する。図11は、利用者端末10の制御部11が実行する印刷装置検索キー生成処理を表すフローチャートである。この印刷装置検索キー生成処理は、検索キー生成モジュール77bにて実現される。
印刷装置検索キー生成処理を開始すると、制御部11は、イベント検出モジュール77aから履歴データが入力されるまで待機し(S510でNo)、履歴データが入力されると(S510でYes)、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットした後(S520)、S530に移行する。
S530に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定すると共に、変数KEY6に、入力された履歴データが示す文書ファイルURLを設定する。そして、記憶部19に記憶されたデフォルトの説明文字列D3を記憶部19から読み出し、説明文字列D3の挿入欄に、履歴データが示す文書ファイルURLを記入し、専用の説明文字列を生成する(S535)。
尚、図12(a)は、S535での処理例を示す説明図である。S535では、図12(a)に示すようにして、説明文字列D3の挿入欄に、履歴データが示す文書ファイルURLを記入することにより、変数KEY1及び変数KEY6の組合せからなる検索式にて得られる検索結果の種類を説明したメッセージ(専用の説明文字列)を生成する。S530の設定では、検索結果として、履歴データが示す文書ファイルURLに対応するデータファイル(印刷対象データが格納されているデータファイル)が開かれていた時期と、同時期に開かれていたデータファイルのリストが、検索結果として得られるため、S535では、その旨を説明したメッセージを生成する。
このようにしてS535での処理を終えると、制御部11は、S540に移行し、S535で生成した説明文字列を、変数OPに設定する。また、S540での処理を終えると、制御部11は、設定した変数KEY1及びKEY6及びOPの各値を示した検索要求データを生成する(S550)。尚、図13(a)は、S550における検索要求データの生成例を表した説明図である。図13(a)に示すように、S550では、S530,S540の処理にて設定してない変数KEY2〜KEY5の各値について、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY2〜KEY5に対応する検索キーが設定されていないことを示す。
S550での処理を終えると、制御部11は、S550で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S555)。その後、S560に移行する。また、S560に移行すると、制御部11は、再度、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットした後、S570に移行する。そして、S570に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定し、変数KEY2に、入力された履歴データが示す文書ファイルURLを設定する。また、制御部11は、変数KEY3に、入力された履歴データの処理の種類を表す情報が示す値(本実施例では「プリンタ」を表すコード)を設定する。その後、S575に移行する。
S575に移行すると、制御部11は、記憶部19に記憶されたデフォルトの説明文字列D4を記憶部19から読み出し、説明文字列D4の挿入欄に、入力された履歴データが示す文書ファイルURLを記入して、専用の説明文字列を生成する。
尚、図12(b)は、S575での処理例を示す説明図である。S575では、図12(b)に示すようにして、説明文字列D4の挿入欄に、履歴データが示す文書ファイルURLを記入することにより、変数KEY1及び変数KEY2及び変数KEY3の組合せからなる検索式にて得られる検索結果の種類を説明したメッセージ(専用の説明文字列)を生成する。S570の設定では、検索結果として、履歴データが示す文書ファイルURLに対応するデータファイルが過去にプリンタ機能にて印刷された日時のリストが、検索結果として得られるため、S575では、その旨を説明したメッセージを生成する。
また、S575での処理を終えると、制御部11は、S580に移行し、S575で生成した説明文字列を、変数OPに設定する。また、S580での処理を終えると、制御部11は、上記設定した変数KEY1,KEY2,KEY3及びOPの各値を示した検索要求データを生成する(S590)。尚、図13(b)は、S590における検索要求データの生成例を表した説明図である。S590では、図13(b)に示すように、S570,S580の処理にて設定してない変数KEY4〜KEY6の値については、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY4〜KEY6に対応する検索キーが設定されていないことを示す。このようにしてS590での処理を終えると、制御部11は、S590で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S595)。その後、S510に移行する。
[FAX装置イベント検出処理]
続いて、利用者端末10の制御部11が実行するFAX装置イベント検出処理について説明する。図14(a)は、制御部11が実行するFAX装置イベント検出処理を表すフローチャートであり、図14(b)は、このFAX装置イベント検出処理での履歴データの生成例を表した説明図である。このFAX装置イベント検出処理は、イベント検出モジュール79aにて実現される。
FAX装置イベント検出処理を開始すると、制御部11は、複合機30のFAX機能又はPCFAX送信機能に係るイベントが発生し、このイベントについてのイベント通知データを複合機30から受信するまで待機し(S610でNo)、このイベント通知データを通信部17を介して複合機30から受信すると(S610でYes)、S620に移行する。尚、制御部11は、処理の種類を表す情報が「FAX送信」及び「FAX受信」及び「PCFAX送信」のいずれかであるイベント通知データを受信した場合にのみ、S610でYesと判断する。
S620に移行すると、制御部11は、受信したイベント通知データが有する処理の種類を表す情報が「PCFAX送信」を示しているか否かを判断し、「PCFAX送信」を示していると判断すると(S620でYes)、S630に移行し、「PCFAX送信」を示していないと判断すると(S620でNo)、S640に移行する。
S630に移行すると、制御部11は、イベント通知データのファイルパス情報に基づき、ファイルパス情報が示すデータファイル(送信データが格納されたデータファイル)の所在を、URL形式で記述してなる文書ファイルURLを生成する(S630)。その後、S650に移行する。
一方、S640に移行すると、制御部11は、受信したイベント通知データの処理の種類を表す情報が「FAX送信」又は「FAX受信」を示しているか否かを判断し、「FAX送信」又は「FAX受信」を示していると判断すると(S640でYes)、S650に移行し、「FAX送信」及び「FAX受信」のいずれをも示していないと判断すると(S640でNo)、S610移行して、次のイベントが発生するまで待機する。
また、S650に移行すると、制御部11は、受信したイベント通知データに含まれる画像データ(処理データ)を、イベント通知データから抽出し、抽出した画像データを格納したデータファイルを新規生成し、これを記憶部19に保存する。また、新規生成した上記データファイルの所在を、URL形式で記述してなる文書ファイルURLを生成する。このようにしてS650での処理を終えると、制御部11は、S660に移行する。
また、S660に移行すると、制御部11は、現在日時を識別する。そして、この処理を終えると、制御部11は、上記識別した日時を表す情報と、イベント通知データの操作者情報と、S630又はS650で生成した文書ファイルURLと、イベント通知データが有する処理の種類を表す情報と、イベント通知データの相手先情報と、を記述してなる履歴データを生成する(S670)。
S670での処理を終えると、制御部11は、上記生成した履歴データを、履歴管理サーバプログラム85に入力するようにして、通信部17を介し検索サーバ50に送信する(S680)。尚、送信時には、履歴データに登録コマンドを付し、これらを検索サーバ50に送信する。また、この処理を終えると、制御部11は、検索キー生成モジュール79bに対し、上記生成した履歴データを入力する(S690)。その後、S610に移行する。
[FAX装置検索キー生成処理]
続いて、利用者端末10の制御部11が実行するFAX装置検索キー生成処理について説明する。図15は、利用者端末10の制御部11が実行するFAX装置検索キー生成処理を表すフローチャートである。このFAX装置検索キー生成処理は、検索キー生成モジュール79bにて実現される。
FAX装置検索キー生成処理を開始すると、制御部11は、イベント検出モジュール79aから履歴データが入力されるまで待機し(S710でNo)、履歴データが入力されると(S710でYes)、S713に移行する。
また、S713に移行すると、制御部11は、受信したイベント通知データの処理の種類を表す情報が「FAX受信」を示しているか否かを判断し、「FAX受信」を示していると判断すると(S713でYes)、S760に移行し、「FAX受信」を示していないと判断すると(S713でNo)、S715に移行する。また、S715に移行すると、制御部11は、受信したイベント通知データの処理の種類を表す情報が「FAX送信」を示しているか否かを判断し、「FAX送信」を示していると判断すると(S715でYes)、S760に移行し、「FAX送信」を示していないと判断すると(S715でNo)、S717に移行する。
また、S717に移行すると、制御部11は、受信したイベント通知データの処理の種類を表す情報が「PCFAX送信」を示しているか否かを判断し、「PCFAX送信」を示していると判断すると(S717でYes)、S720に移行し、「PCFAX送信」を示していないと判断すると(S717でNo)、S710移行して、次の履歴データが入力されるまで待機する。
S720に移行すると、制御部11は、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットする(S720)。その後、S730に移行する。また、S730に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定すると共に、変数KEY6に、入力された履歴データが示す文書ファイルURLを設定する。そして、記憶部19に記憶された説明文字列D5を記憶部19から読み出し、この説明文字列D5を、変数OPに設定する。(S740)。
尚、図16(a)は、説明文字列D5を示した説明図である。S730の設定では、検索結果として、履歴データが示す文書ファイルURLに対応するデータファイルが開かれていた時期と、同時期に開かれていたデータファイルのリストが、検索結果として得られるため、S740では、その旨を説明したメッセージを、変数OPに設定する。
S740での処理を終えると、制御部11は、設定した変数KEY1及びKEY6及びOPの各値を示した検索要求データを生成する(S750)。図17(a)は、S750における検索要求データの生成例を表した説明図である。図17(a)に示すように、S750では、S730,S740の処理にて設定してない変数KEY2〜KEY5の各値について、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY2〜KEY5に対応する検索キーが設定されていないことを示す。
また、S750での処理を終えると、制御部11は、S750で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S755)。その後、S760に移行する。そして、S760に移行すると、制御部11は、再度、検索キー設定用のパラメータ(KEY1〜KEY6,OP)をリセットした後、S770に移行する。
また、S770に移行すると、制御部11は、検索キーとして、変数KEY1に、入力された履歴データの操作者情報が示す値(操作者ID)を設定し、変数KEY3に、「FAX送信」を表すコード、「FAX受信」を表すコード、及び「PCFAX送信」を表すコードをOR検索用の記号で結んだ値を設定する。また、変数KEY4に、履歴データの相手先情報が示す値(電話番号)を設定する。その後、S775に移行する。
そして、S775に移行すると、制御部11は、記憶部19に記憶されたデフォルトの説明文字列D6を記憶部19から読み出し、この説明文字列D6の挿入欄に、入力された履歴データの相手先情報が示す値(電話番号)を記入し、専用の説明文字列を生成する。
尚、図16(b)は、S775での処理例を示す説明図である。S775では、図16(b)に示すようにして、説明文字列D6の挿入欄に、履歴データの相手先情報が示す値(電話番号)を記入することにより、変数KEY1及び変数KEY3及び変数KEY4の組合せからなる検索式にて得られる検索結果の種類を説明したメッセージ(専用の説明文字列)を生成する。S770の設定では、検索結果として、履歴データの相手先情報が示す電話番号先の外部端末装置と交換した文書のリストが、検索結果として得られるため、S775では、その旨を説明したメッセージを生成する。
S775での処理を終えると、制御部11は、S780に移行し、S775で生成した説明文字列を、変数OPに設定する。また、S780での処理を終えると、制御部11は、設定した変数KEY1,KEY3,KEY4及びOPの各値を示した検索要求データを生成する(S790)。尚、図17(b)は、S790における検索要求データの生成例を表した説明図である。S790では、図17(b)に示すように、S770,S780の処理にて設定してない変数KEY2,KEY5,KEY6の値については、NULL値を記載するか、値そのものを記載しないことにして、検索要求データに、変数KEY2,KEY5,KEY6に対応する検索キーが設定されていないことを示す。このようにしてS790での処理を終えると、制御部11は、S790で生成した検索要求データを、登録コマンドと共にキュー管理モジュール73に入力する(S795)。その後、S710に移行する。
[キュー管理モジュール処理]
次に、利用者端末10の制御部11が実行するキュー管理モジュール処理について説明する。図18は、制御部11が実行するキュー管理モジュール処理を表すフローチャートである。このキュー管理モジュール処理は、キュー管理モジュール73にて実現される。
キー管理モジュール処理を開始すると、制御部11は、S810にて、コマンドが入力されるまで待機する。そして、コマンドが入力されると(S810でYes)、S820に移行する。尚、入力されるコマンドとしては、登録コマンド及び参照コマンドが挙げられる。登録コマンドは、検索要求データと共に検索キー生成モジュール75b,77b,79bから入力され、参照コマンドは、検索制御アプレット71bから入力される。
S820に移行すると、制御部11は、入力コマンドが登録コマンドであるか否かを判断し、入力コマンドが登録コマンドであると判断すると(S820でYes)、S830に移行して、検索制御キュー19aの末尾に、登録コマンドと共に入力された検索要求データを登録する。その後、制御部11は、S810に移行して、次の入力があるまで待機する。
一方、制御部11は、入力コマンドが登録コマンドではないと判断すると(S820でNo)、S840に移行し、入力コマンドが参照コマンドであるか否かを判断する。そして、入力コマンドが参照コマンドであると判断すると(S840でYes)、検索制御キュー19aが空の状態(即ち、登録されている検索要求データがない状態)であるか否かを判断する(S850)。
そして、検索制御キュー19aが空の状態ではない(即ち、検索制御キュー19aに検索要求データが登録されている状態である)と判断すると(S850でNo)、制御部11は、検索制御キュー19aの先頭に登録されている検索要求データを、参照コマンド入力元へ返信し(S860)、参照コマンド入力元へ返信した上記検索要求データを、検索制御キュー19aから削除する(S870)。この後、制御部11は、S810に移行する。
一方、制御部11は、検索制御キュー19aが空の状態であると判断すると(S850でYes)、検索制御キュー19aが空の状態である旨のデータを、参照コマンド入力元へ返信(S880)した後、S810に移行する。その他、制御部11は、入力コマンドが参照コマンドではないと判断すると(S840でNo)、S850〜S880の処理を実行することなく、S810に移行して、次の入力があるまで待機する。
[検索制御アプレット処理]
次に、利用者端末10の制御部11が実行する検索制御アプレット処理について説明する。図19は、制御部11が実行する検索制御アプレット処理を表すフローチャートである。この検索制御アプレット処理は、検索制御アプレット71bにて実現される。
検索制御アプレット処理を開始すると、制御部11は、まず最初に、カレント出力フレーム番号を、値「1」に初期化する(S910)。尚、カレント出力フレーム番号は、複数のフレームに分割されたウェブブラウザ71の検索結果表示画面(図21参照)に検索結果を表示する際、検索結果を表示するフレームを切り替えるために用いられるものである。この検索結果表示画面を構成する各フレームには、検索結果表示画面における最上段のフレームから順にフレーム番号が割り当てられており、カレント出力フレーム番号は、この検索結果表示画面を構成する複数のフレームのいずれかに割り当てられたフレーム番号を表す。
このようなカレント出力フレーム番号の初期化が完了すると、制御部11は、S920に移行して、検索制御キュー19aの参照を要求する参照コマンドを、キュー管理モジュール73に入力し、キュー管理モジュール73から上記参照コマンドに対する返信データを取得する。そして、キュー管理モジュール73から返信データを取得すると、S930に移行し、キュー管理モジュール73からの返信データが、検索制御キュー19aが空の状態である旨の返信データであるか否かを判断する。そして、返信データが、検索制御キュー19aが空の状態である旨の返信データであると判断すると(S930でYes)、S920に移行し、再びキュー管理モジュール73に対して、参照コマンドを入力する。
一方、制御部11は、S930にて、キュー管理モジュール73からの返信データが、検索要求データであると判断すると(S930でNo)、S940に移行し、カレント出力フレーム番号と同一の番号が割り当てられたフレームを、キュー管理モジュール73から得られた上記検索要求データに対する検索サーバ50からの応答データを表示するフレーム(出力フレーム)に設定する。また、この処理を終えると、制御部11は、キュー管理モジュール73から返信データとして得られた上記検索要求データを、検索フロントエンドプロセッサ81に入力するようにして、検索サーバ50に送信する(S950)。
そして、S950での処理を終えると、制御部11は、カレント出力フレーム番号に値「1」を加えて、カレント出力フレーム番号を更新し(S960)、更新後のカレント出力フレーム番号が値「5」より大きいか否かを判断する(S970)。そして、更新後のカレント出力フレーム番号が値「5」よりも大きいと判断すると(S970でYes)、カレント出力フレーム番号を値「1」に再設定し(S980)、その後、S920に移行する。一方、更新後のカレント出力フレーム番号が値「5」以下であると判断すると(S970でNo)、制御部11は、S980の処理を実行することなく、S920に移行する。このようにして、制御部11は、応答データの出力フレームを切り替えるように設定しながら、検索制御キュー19aに登録された検索要求データを、順に、検索サーバ50に送信する。
[表示制御モジュール処理]
次に、利用者端末10の制御部11が実行する表示制御モジュール処理について説明する。図20は、制御部11が実行する表示制御モジュール処理を表すフローチャートである。この表示制御モジュール処理は、表示制御モジュール71aにて実現される。また、図21は、検索結果表示画面の構成を表す説明図である。
表示制御モジュール処理を開始すると、制御部11は、検索サーバ50から上記検索要求データに対する応答データを通信部17を介して受信するまで待機し(S1010)、応答データを受信すると(S1010でYes)、S1020に移行する。また、S1020に移行すると、制御部11は、検索制御アプレット71bによって設定された出力フレーム内に、応答データに基づく画面を表示する。その後、S1010に移行する。
尚、S1020での処理を、表示制御モジュール処理開始後、初めて実行する際、制御部11は、前処理として、複数フレームからなる検索結果表示画面を、表示部15に表示する。図21は、制御部11が表示部15に表示する検索結果表示画面の構成を表す説明図である。図21に示すように、検索結果表示画面は、複数(具体的には5つ)のフレームを備えた構造にされている。
この表示制御モジュール処理において、制御部11は、検索要求データの応答データとして、検索要求データが示す検索式に従って履歴データベース55aから抽出されたレコード(履歴データ)が示す日時と文書ファイルURLとが箇条書きされてなる表示用スクリプト(HTML文書)であって、検索要求データが示す変数OPの値(検索結果の種類を表すメッセージ)が記述された表示用スクリプトを、検索サーバ50から受信する。そして、この表示用スクリプトを理解し、上記抽出されたレコード(履歴データ)が示す日時及び文書ファイルURLを列挙してなるデータリストと、上記メッセージとを表す画面を、設定されたフレームに表示する。即ち、制御部11は、検索結果として、日時及び文書ファイルURLが列挙された関連文書のデータリストを、フレーム内に表示すると共に、このフレーム内に検索結果の種類を説明したメッセージを表示するのである。
[履歴管理サーバ処理]
ところで、利用者端末10のイベント検出モジュール75a,77a,79bから検索サーバ50へ送信される履歴データは、検索サーバ50が実行する履歴管理サーバ処理にて受け付けられる。図22は、検索サーバ50の制御部51が実行する履歴管理サーバ処理を表すフローチャートである。この履歴管理サーバ処理は、履歴管理サーバプログラム85にて実現される。
履歴管理サーバ処理を開始すると、制御部51は、S1110にて、コマンドが入力されるまで待機する。そして、コマンドが入力されると(S1110でYes)、S1120に移行する。尚、入力されるコマンドとしては、登録コマンド及び検索コマンドが挙げられる。登録コマンドは、履歴データと共に、イベント検出モジュール75a,77a,79aから通信部53を介して入力され、検索コマンドは、検索エンジン83から入力される。
S1120に移行すると、制御部51は、入力コマンドが登録コマンドであるか否かを判断し、入力コマンドが登録コマンドであると判断すると(S1120でYes)、登録コマンドと共に入力された履歴データが有する処理の種類を表す情報を参照し(S1130)、処理の種類を表す情報が「ファイルクローズ」を示しているか否かを判断する(S1135)。尚、処理の種類を表す情報が「ファイルクローズ」を示す履歴データは、データファイルのクローズイベントが発生した際に生成された履歴データである。
S1135で、処理の種類を表す情報が「ファイルクローズ」を示していないと判断すると(S1135でNo)、制御部51は、履歴データベース55aに新規レコードを生成し(S1140)、このレコードに対応する各フィールドに、登録コマンドと共に入力された上記履歴データが示す値と一致する値を記述することによって、イベント検出モジュール75a,77a,79aから入力された履歴データを履歴データベース55aに登録する(S1145)。
尚、図23は、履歴データベース55aの構成を表す説明図である。図23に示すように、履歴データベース55aは、各レコード毎に、「開始日時」のフィールドと、「終了日時」のフィールドと、「操作者情報」のフィールドと、「文書ファイルURL」のフィールドと、「処理の種類」のフィールドと、「相手先情報」のフィールドとを有する。
即ち、制御部51は、S1145において、履歴データが有する日時の情報を、新規レコードの「開始日時」のフィールドに書き込み、履歴データが有する操作者情報を、「操作者情報」のフィールドに書き込み、履歴データが示す文書ファイルURLを、「文書ファイルURL」のフィールドに書き込み、履歴データが有する処理の種類を表す情報を、「処理の種類」のフィールドに書き込み、履歴データが有する相手先情報を、「相手先情報」のフィールドに書き込む。また、S1145においては、「終了日時」のフィールドは空の状態として、レコードの編集を終了する。このようにして、履歴データを、履歴データベース55aに登録すると、制御部51は、S1110に移行し、次のコマンドが入力されるまで待機する。
一方、S1135で、処理の種類を表す情報が「ファイルクローズ」を示していると判断すると(S1135でYes)、制御部51は、S1150に移行し、このクローズイベントに対応するオープンイベント(即ち、このクローズイベントに先駆けて、発生したデータファイルのオープンイベント)のレコードを、履歴データベース55a内で検索する。具体的には、「処理の種類」のフィールドが「ファイルオープン」を示すレコードであって、操作者情報及び文書ファイルURL並びに相手先情報が、入力された履歴データと同一の値を示すレコードを、履歴データベース55a内で検索する。
そして、S1150での処理を終えると、制御部51は、この検索の結果得られたレコードにおける「処理の種類」のフィールド値を、「ファイルオープン」を表すコードから、「ファイルリード」を表すコードに書き換える(S1160)。また、検索の結果得られた上記レコードにおける「終了日時」のフィールドに、入力された履歴データが有する日時を表す情報を、書き込む(S1165)。そして、S1165での処理を終えると、S1110に移行し、次のコマンドが入力されるまで待機する。
その他、制御部51は、S1120にて、入力コマンドが登録コマンドではないと判断すると(S1120でNo)、入力コマンドが検索コマンドであるか否かを判断し(S1170)、入力コマンドが検索コマンドではないと判断すると(S1170でNo)、S1110に移行し、入力コマンドが検索コマンドであると判断すると、S1180に移行する。
また、S1180に移行すると、制御部51は、検索コマンドと共に(検索エンジン83から)入力されたクエリが示す検索式に従って、検索式に合致するレコードを、履歴データベース55aから抽出する。そして、この処理を終えると、制御部51は、抽出したレコードを、クエリに対する返信データとして、検索コマンドの入力元(検索エンジン83)に入力する(S1190)。尚、S1180にて検索式に合致するレコードを一つも抽出することができなかった場合、制御部51は、クエリに対する返信データとして、「検索結果なし」の旨を示した返信データを、検索コマンドの入力元(検索エンジン83に入力する(S1190)。その後、制御部51は、S1110に移行する。
[検索フロントエンドプロセッサ処理]
次に、検索サーバ50の制御部51が実行する検索フロントエンドプロセッサ処理について説明する。図24は、制御部51が実行する検索フロントエンドプロセッサ処理を表すフローチャートである。この検索フロントエンドプロセッサ処理は、検索フロントエンドプロセッサ81にて実現される。また、図25は、この検索フロントエンドプロセッサ処理にて生成される表示用スクリプトの構成を表す説明図である。
検索フロントエンドプロセッサ処理を開始すると、制御部51は、利用者端末10(検索制御アプレット71b)から、通信部53を介して、検索要求データを受信するまで待機し(S1210)、検索要求データを受信すると(S1210でYes)、検索エンジン83に対して、上記受信した検索要求データを入力する(S1220)。また、S1220での処理を終えると、S1230に移行し、検索エンジン83から、検索要求データに対する返信データを取得する。尚、詳細は後述するが、検索エンジン83は、検索要求データの入力があると、これに対応するクエリを生成して、クエリを履歴管理サーバプログラム85に入力し、履歴管理サーバプログラム85からの返信データを、検索フロントエンドプロセッサ81に転送する構成にされており、制御部51は、S1230にて、この種の返信データを受信する。
また、制御部51は、検索エンジン83から検索要求データに対する返信データを受信すると、S1240に移行し、返信データが上記クエリに従って履歴データベース55aから抽出されたレコードを含むものであるか否かを判断することにより、検索要求データに対する検索結果があるか否かを判断する。尚、返信データにレコードが含まれない場合、その返信データには、「検索結果なし」の旨の情報が格納されているため、「検索結果なし」の旨の情報が格納された返信データを、検索エンジン83から取得した場合、制御部51は、検索結果がないと判断する(S1240でNo)。
そして、検索結果がないと判断すると(S1240でNo)、制御部51は、予め記憶部55に保存された図25(c)に示す構成のエラー表示用スクリプトを、記憶部55から読み出す(S1250)。尚、図25(c)は、エラー表示用スクリプトの構成を表す説明図である。
また、読み出したエラー表示用スクリプトを、利用者端末10(検索制御アプレット71b)から受信した検索要求データに対する応答データとして、通信部53を介し、検索要求データ送信元の利用者端末10(表示制御モジュール71a)に送信する(S1255)。その後、制御部51は、S1210に移行して、次の検索要求データを受信するまで待機する。
一方、S1240において検索結果があると判断すると(S1240でYes)、制御部51は、予め記憶部55に保存された図25(a)に示す構成のデフォルトの表示用スクリプト(雛形)を、記憶部55から読み出す(S1260)。尚、図25(a)は、デフォルトの表示用スクリプトの構成を表す説明図である。
また、この処理を終えると、制御部51は、S1265に移行し、読み出した表示用スクリプトの説明文挿入領域に、受信した検索要求データが有する説明文字列(変数OPの値)を、挿入する。具体的には、図25(a)に示すタグ<h2></h2>の間に、説明文字列を挿入する。
また、S1265での処理を終えると、制御部51は、S1270に移行し、説明文字列挿入後の上記表示用スクリプトにおけるデータリスト挿入位置(タグ<ul>の直後)に、ポインタを移動させる。そして、この処理を終えると、S1281に移行する。
S1281に移行すると、制御部51は、検索エンジン83から入力された返信データに格納されているレコード群の中から、未処理のレコードを一つ処理対象に選択し、選択した処理対象のレコードが示す開始日時を、表示用スクリプトに記入する(S1283)。具体的には、箇条書きを示すタグ<li>に、開始日時の値を付してなる文字列を、表示用スクリプトに挿入する(S1283)。
また、この処理を終えると、制御部51は、S1285に移行し、S1283で挿入した文字列の末尾に追加するようにして、処理対象のレコードが示す文書ファイルURLを、表示用スクリプトに記入する。具体的には、リンクタグを用いて、<A HREF=”(文書ファイルURL)”>(文書ファイルURL)</A>の形式で、処理対象のレコードが示す文書ファイルURLを、表示用スクリプトに挿入する。
また、この処理を終えると、制御部51は、S1287に移行して、返信データに格納されている各レコードの全てを、S1281にて処理対象に選択したか否かを判断し、全てのレコードを処理対象に選択していないと判断すると(S1287でNo)、S1281に移行して、未選択のレコードを、処理対象に選択する。
一方、制御部51は、返信データに格納されている全てのレコードをS1281にて処理対象に選択したと判断すると(S1287でYes)、S1290に移行し、上述したようにして作成した表示用スクリプト(即ち、説明文字列、及び、検索要求データが示す検索式に合致するレコードが示す開始日時及び文書ファイルURLの情報を箇条書きで記述した表示用スクリプト)を、通信部53を介して検索要求データの送信元装置(利用者端末10)に送信する。その後、制御部51は、S1210に移行し、次の検索要求データを受信するまで待機する。
[検索エンジン処理]
次に、検索サーバ50の制御部51が実行する検索エンジン処理について説明する。図26は、制御部51が実行する検索エンジン処理を表すフローチャートである。この検索エンジン処理は、検索エンジン83にて実現される。
検索エンジン処理を開始すると、制御部51は、検索フロントエンドプロセッサ81から、検索要求データが入力されるまで待機し(S1310)、検索要求データが入力されると(S1310でYes)、制御部51が有するメモリ上に確保されたクエリ生成領域を初期化する(S1320)。
また、この処理を終えると、制御部51は、S1330に移行し、入力された検索要求データ内で、「操作者情報」の検索キーが設定されているか否かを判断する。即ち、変数KEY1に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「操作者情報」の検索キーが設定されていないと判断すると(S1330でNo)、S1340に移行する。
一方、「操作者情報」の検索キーが設定されていると判断すると(S1330でYes)、制御部51は、操作者情報が変数KEY1の値と一致する履歴データベース55a内のレコードを検索対象とするための文字列(例えば、”KEY1=(値)”を、クエリ生成領域に登録(S1335)する。その後、S1340に移行する。
また、S1340に移行すると、制御部51は、入力された検索要求データ内で、「検索文書URL」の検索キーが設定されているか否かを判断する。即ち、変数KEY2に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「検索文書URL」の検索キーが設定されていないと判断すると(S1340でNo)、S1350に移行する。
一方、「検索文書URL」の検索キーが設定されていると判断すると(S1340でYes)、制御部51は、文書ファイルURLが変数KEY2の値と一致する履歴データベース55a内のレコードを検索対象とするための文字列(例えば、”KEY2=(値)”を、クエリ生成領域に登録(S1345)した後、S1350に移行する。尚、クエリ生成領域に、他の種類のレコードを検索対象とするための文字列が既に登録されている場合には、既に登録された文字列の末尾にAND記号を付した後、文書ファイルURLが変数KEY2の値と一致する履歴データベース55a内のレコードを検索対象とするための上記文字列を、クエリ生成領域に登録する等して、クエリ生成領域内にAND検索用の検索式を生成する。即ち、クエリ生成領域内に登録された各文字列が表す検索対象の全てに該当するレコードを、履歴データベース55aから抽出するための検索式を生成する。
その他、S1350に移行すると、制御部51は、入力された検索要求データ内で、「処理の種類」の検索キーが設定されているか否かを判断する。即ち、変数KEY3に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「処理の種類」の検索キーが設定されていないと判断すると(S1350でNo)、S1360に移行する。
一方、「処理の種類」の検索キーが設定されていると判断すると(S1350でYes)、制御部51は、処理の種類を表す情報が変数KEY3の値と一致する履歴データベース55a内のレコードを検索対象とするための文字列(例えば、”KEY3=(値)”を、クエリ生成領域に登録(S1355)した後、S1360に移行する。尚、クエリ生成領域に、他の種類のレコードを検索対象とするための文字列が既に登録されている場合には、既に登録された文字列の末尾にAND記号を付した後、処理の種類を表す情報が変数KEY3の値と一致する履歴データベース55a内のレコードを検索対象とするための上記文字列を、クエリ生成領域に登録する等して、クエリ生成領域内にAND検索用の検索式を生成する。
また、S1360に移行すると、制御部51は、入力された検索要求データ内で、「相手先情報」の検索キーが設定されているか否かを判断する。即ち、変数KEY4に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「相手先情報」の検索キーが設定されていないと判断すると(S1360でNo)、S1370に移行する。
一方、「相手先情報」の検索キーが設定されていると判断すると(S1360でYes)、制御部51は、相手先情報が変数KEY4の値と一致する履歴データベース55a内のレコードを検索対象とするための文字列(例えば、”KEY4=(値)”を、クエリ生成領域に登録(S1365)した後、S1370に移行する。尚、クエリ生成領域に、他の種類のレコードを検索対象とするための文字列が既に登録されている場合には、既に登録された文字列の末尾にAND記号を付した後、相手先情報が変数KEY4の値と一致する履歴データベース55a内のレコードを検索対象とするための上記文字列を、クエリ生成領域に登録する等して、クエリ生成領域内にAND検索用の検索式を生成する。
また、S1370に移行すると、制御部51は、入力された検索要求データ内で、「ディレクトリ」の検索キーが設定されているか否かを判断する。即ち、変数KEY5に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「ディレクトリ」の検索キーが設定されていないと判断すると(S1370でNo)、S1380に移行する。
一方、「ディレクトリ」の検索キーが設定されていると判断すると(S1370でYes)、制御部51は、文書ファイルURLが示すデータファイルの格納先ディレクトリ名(換言すると文書ファイルURLが示すファイル名を除く文字列)が変数KEY5の値と一致する履歴データベース55a内のレコードを検索対象とするための文字列(例えば、”KEY5=(値)”を、クエリ生成領域に登録(S1375)した後、S1380に移行する。尚、クエリ生成領域に、他の種類のレコードを検索対象とするための文字列が既に登録されている場合には、既に登録された文字列の末尾にAND記号を付した後、ディレクトリ情報が変数KEY5の値と一致する履歴データベース55a内のレコードを検索対象とするための上記文字列を、クエリ生成領域に登録する等して、クエリ生成領域内にAND検索用の検索式を生成する。
その他、S1380に移行すると、制御部51は、入力された検索要求データ内で、「共起文書URL」の検索キーが設定されているか否かを判断する。即ち、変数KEY6に、有効な値(NULL値を除く)が設定されているか否かを判断する。そして、「共起文書URL」の検索キーが設定されていないと判断すると(S1380でNo)、S1390に移行する。
一方、「共起文書URL」の検索キーが設定されていると判断すると(S1380でYes)、制御部51は、変数KEY6が示すURL先のデータファイルが開かれていた時期と同時期にファイルリードされていたデータファイルについてのレコードを検索対象とするための文字列(例えば、”KEY6=(値)”を、クエリ生成領域に登録(S1385)した後、S1390に移行する。
尚、クエリ生成領域に、他の種類のレコードを検索対象とするための文字列が既に登録されている場合には、既に登録された文字列の末尾にAND記号を付した後、変数KEY6が示すURL先のデータファイルが開かれていた時期と同時期にファイルリードされていたデータファイルについての履歴データベース55a内のレコードを検索対象とするための上記文字列を、クエリ生成領域に登録する等して、クエリ生成領域内にAND検索用の検索式を生成する。
また、S1390に移行すると、制御部51は、クエリ生成領域が空であるか否か(即ち、文字列が登録されていない状態であるか否か)を判断し、クエリ生成領域が空であると判断すると(S1390でNo)、検索要求データに対する返信データとして、「検索結果なし」の旨を示した返信データを、検索要求データ入力元の検索フロントエンドプロセッサ81に入力する(S1391)。その後、制御部51は、S1310に移行し、次の検索要求データが入力されるまで待機する。
一方、クエリ生成領域が空ではないと判断すると(S1390でNo)、制御部51は、S1393に移行して、検索コマンドを含んだ上記クエリを、履歴管理サーバプログラム85に入力し、履歴管理サーバプログラム85から、返信データを取得する(S1395)。そして、この返信データを、検索要求データに対する返信データとして、検索要求データ入力元の検索フロントエンドプロセッサ81に入力する(S1397)。その後、制御部51は、S1310に移行し、次の検索要求データが入力されるまで待機する。
このような処理により、制御部51は、クエリが示す検索式に適合する履歴データベース55a内のレコードを格納した上記返信データを、検索フロントエンドプロセッサ81に対して提供する。尚、上述したようにクエリが示す検索対象が複数ある場合には、AND検索によって、全ての検索対象のいずれにも該当する履歴データベース55a内のレコードを、検索フロントエンドプロセッサ81に対して提供する。
[効果]
以上、本実施例の検索システム1について説明したが、この検索システム1おける利用者端末10では、複合機30が実行した処理内容を表す履歴データや、ファイルイベントの内容を表す履歴データに基づき、検索キー生成モジュール75b,77b,79bにて、複合機30又はOSの処理内容に対応する検索キーを設定する。また、この際、処理内容に応じたメッセージであって、検索キーに対応する検索結果の種類を説明したメッセージ(説明文字列)を生成する。そして、このメッセージを検索キーと共に、検索要求データとして、検索サーバ50に送信する。
一方、検索サーバ50では、上記検索キーに従って検索した結果を表す表示用スクリプトとして、上記検索キーに従って検索した結果、履歴データベース55aから抽出された各レコードが示す日時及び文書ファイルURLの情報を箇条書きした表示用スクリプトであって、検索要求データとして利用者端末10から送信されてきたメッセージを付した表示用スクリプトを生成する。そして、これを利用者端末10に送信する。また、利用者端末10は、この表示用スクリプトに基づき、検索キーに対応する検索結果と、検索結果の種類を表すメッセージを、表示部15に表示する。
このように、本実施例の検索システム1では、検索結果と共に、検索結果を表すメッセージを利用者に向けて表示するので、利用者は、検索結果が示すデータリスト(日時及び文書ファイルURLの情報からなるデータリスト)が、どういった種類の処理に基づき設定された検索キーに対応する検索結果であるのかを(換言すると、どういった種類の処理に関連するデータリストであるのかを)容易に知ることができる。
また、この本実施例では、利用者端末10から、検索キーの設定時に生成したメッセージを、検索キーと共に検索サーバ50に送信し、検索サーバ50から、検索結果とメッセージとを含む表示用スクリプトを、利用者端末10に送信するので、利用者端末10は、上記メッセージを自己管理しなくて済む。即ち、本実施例では、利用者端末10で、検索結果とメッセージとの関連付けを行う必要がないので、利用者端末10でのメッセージ表示に係る処理が簡単である。
また、本実施例では、利用者端末10が、イベント検出モジュール75a,77a,77aにて、複合機30が実行した処理内容を表す履歴データや、ファイルイベントの内容を表す履歴データを生成し、生成した履歴データを、検索サーバ50に送信する。また、検索サーバ50は、利用者端末10から送信されてくる履歴データを受信し、これを、履歴データベース55aに登録する。
即ち、本実施例では、履歴データベース55a内に、利用者端末10又は複合機30で過去実行された処理の内容を表すデータを登録して、利用者の操作に基づき複合機30又はOSにて実行された処理に対応するデータリスト(過去の実行履歴)を、履歴データベース55aの情報に基づき、利用者に提供する。
従って、利用者は、この検索システム1を用いた場合、今回、利用者端末10等を用いて行った処理に関連するデータのリストを、検索サーバ50から得られると共に、メッセージに基づいて検索結果(データリスト)の種類を理解することができ、検索結果がどういった種類のデータのリストであるのか悩まなくて済む。即ち、本実施例によれば、利用者の操作に基づいた、処理の実行履歴を表すデータリストを、有意義な形で、利用者に提供することができる。従って、この検索システム1は、利用者にとって大変便利である。
また、本実施例では、履歴データとして、対応する処理にて取扱われたデータが格納されたデータファイルのURL(保存先アドレス)を記述したデータを生成し、これを履歴データベース55aに登録し、検索結果として、このURLを記述した表示用スクリプトを生成して、利用者に対し、過去の処理で取扱われたデータのURLを示すので、利用者は、過去取扱われた関連データの所在を容易に理解し、関連データを容易に参照することができる。
また、本実施例では、履歴データとして、対応する処理にて取扱われたデータが格納されたデータファイルのURLと共に処理日時を記述したデータを生成し、これを履歴データベース55aに登録し、検索結果として、この処理日時及びURLを記述した表示用スクリプトを生成して、利用者に対し、過去の処理日時を、データファイルのURLと共に示す。従って、この検索システム1によれば、利用者は、過去の何時に、どういった関連データを取扱ったかを容易に理解することができる。また、このような理解に際して、上述のメッセージ表示は、利用者に対し非常に有効に働く。
また、本実施例では、履歴データに、処理の種類を表す情報を付して、これを履歴データベース55aに登録し、検索結果として、処理日時及び処理の種類並びにURLを記述した表示用スクリプトを生成して、利用者に対し、過去に実行された処理の種類を、データファイルのURL及び処理日時と共に示す。従って、この検索システム1によれば、利用者は、検索する契機となった処理と、同一種類の処理にて取扱われたデータのリストを、検索サーバ50から得ることができる。そして、このリストを理解する際には、上述のメッセージを参照することができるので、利用者は、リストの内容を容易に理解できる。
[特許請求の範囲との対応]
尚、本実施例の検索システム1と、「特許請求の範囲」に記載された発明との対応関係は、次の通りである。本発明の検索サーバは、本実施例の検索サーバ50に相当し、本発明の情報処理システムは、利用者端末10と複合機30とからなるシステムに相当する。また、本発明の通信装置は、利用者端末10に相当し、処理実行装置は、複合機30に相当する。
その他、第一通信手段は、通信部17に相当する。また、処理実行手段は、複合機30の制御部31が実行するS140の処理(図4)にて実現され、生成手段は、利用者端末10の制御部11が実行する検索キー生成処理(図11,図15)にて実現され、検索要求手段は、制御部11が実行する検索制御アプレット処理(図19)にて実現され、表示制御手段は、制御部11が実行する表示制御モジュール処理(図20)にて実現され、履歴送信手段は、制御部11が実行するイベント検出処理(図10,図14)にて実現されている。
また、第二通信手段は、通信部53に相当し、データベースは、履歴データベース55aに相当する。また、登録手段は、検索サーバ50の制御部51が実行する履歴管理サーバ処理におけるS1130〜S1165(図22)にて実現され、データ抽出手段は、制御部51が実行するS1170〜S1190及び検索エンジン処理(図26)にて実現され、表示用データ生成手段は、制御部51が実行する検索フロントエンドプロセッサ処理におけるS1230〜S1287(図24)にて実現され、応答手段は、制御部51が実行するS1290にて実現されている。
[他の実施例]
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、検索結果表示画面を複数のフレームに分けて、複数の検索結果を同時表示するようにしたが、検索結果表示画面を単一のフレーム構成とし、検索結果を順次切り替えて、検索結果表示画面に表示するように、検索システム1を構成してもよい。
その他、上記実施例では、ファイル操作に関する処理及び複合機30が実行する処理について、この処理内容を表す履歴データを、履歴データベース55aに登録するようにしたが、利用者端末10は、複合機30以外の装置の動作を監視して、この装置の処理内容を表す履歴データを、履歴データベース55aに登録する構成にされてもよい。複合機30以外の装置としては、プリンタ装置、スキャナ装置、ファクシミリ装置の他、パーソナルコンピュータの周辺機器として構成される各種装置を挙げることができる。
1…検索システム、10…利用者端末、11,31,51…制御部、13,33…操作部、15,35…表示部、17,37,53…通信部、19,49,55…記憶部、19a…検索制御キュー、30…複合機、39…記録部、41…読取部、43…回線制御部、45…ハンドセット、47…音声入力部、48…音声出力部、49a…検出モジュールテーブル、50…検索サーバ、55a…履歴データベース、71…ウェブブラウザ、73…キュー管理モジュール、75…文書ファイル監視コンポーネント、77…印刷装置監視コンポーネント、79…FAX装置監視コンポーネント、81…検索フロントエンドプロセッサ、83…検索エンジン、85…履歴管理サーバプログラム