(57)【特許請求の範囲】
【請求項１】
ネットワーク上のデバイスを検索するデバイス検索クライアントであって、デバイスの機能及び種別を示す属性からなる検索条件を入力する入力手段と、
前記入力手段で入力された検索条件の中から、特定の検索条件を抽出する抽出手段と、
前記抽出手段により抽出された検索条件を前記ネットワーク上の検索サーバに送信してその検索結果をサーバ装置から取得する第１の検索手段と、
前記入力手段で入力された検索条件に基づいて、前記第１の検索手段がサーバ装置から取得した検索結果を用いて前記デバイス検索クライアントにて検索を行う第２の検索手段と、
前記第２の検索手段の出力する検索結果を表示する表示手段とを備え、
前記第２の検索手段は、検索結果を出力するための、デバイスの機能を示す属性からなる判定基準を少なくとも２つを用いて検索を実行し、前記入力手段により入力された検索条件に対応する第１の判定基準を満足するデバイスが存在する場合は、当該デバイスの情報を出力し、該第１の判定基準を満足するデバイスが存在せず、該第１の判定基準の一部である第２の検索条件を満たすデバイスが存在する場合には、該第２の判定基準を満足するデバイスを示す情報を、当該デバイスが満足しない第１の判定基準の係るデバイスの機能を示す属性とともに出力することを特徴とするデバイス検索クライアント。
【請求項２】
前記第２の判定基準は、前記第１の判定基準よりも緩和された基準であることを特徴とする請求項１に記載のデバイス検索クライアント。
【請求項３】
前記第１の判定基準は、前記入力手段で入力された検索条件のすべてを満足するデバイスを判定するものであり、前記第２の判定基準は、デバイスが前記入力手段で入力された検索条件のうち所定数以上を満足するデバイスを判定するものであることを特徴とする請求項１または２のいずれかに記載のデバイス検索クライアント。
【請求項４】
前記第２の検索手段が、前記第２の判定基準に基づいて出力するデバイス情報には、該デバイスが満足しない検索条件の情報が含まれることを特徴とする請求項３に記載のデバイス検索クライアント。
【請求項５】
前記抽出手段は、オブジェクトクラスに関する条件のみを抽出して出力することを特徴とする請求項１〜４のいずれかに記載のデバイス検索クライアント。
【請求項６】
ネットワーク上のデバイスを検索するデバイス検索クライアントにおける方法であって、
デバイスの機能を示す属性からなる検索条件を入力する入力工程と、
前記入力工程で入力された検索条件の中から、特定の検索条件を抽出する抽出工程と、
前記抽出工程により抽出された検索条件を前記ネットワーク上の検索サーバに送信してその検索結果をサーバ装置から取得する第１の検索工程と、
前記入力工程で入力された検索条件に基づいて、前記第１の検索工程がサーバ装置から取得した検索結果を用いて前記デバイス検索クライアントにて検索を行う第２の検索工程と、
前記第２の検索工程の出力する検索結果を表示する表示工程とを備え、
前記第２の検索工程は、検索結果を出力するための、デバイスの機能を示す属性からなる判定基準を少なくとも２つを用いて検索を実行し、前記入力工程により入力された検索条件に対応する第１の判定基準を満足するデバイスが存在する場合は、当該デバイスの情報を出力し、該第１の判定基準を満足するデバイスが存在せず、該第１の判定基準の一部である第２の検索条件を満たすデバイスが存在する場合には、該第２の判定基準を満足するデバイスを示す情報を、当該デバイスが満足しない第１の判定基準の係るデバイスの機能を示す属性とともに出力することを特徴とするデバイス検索方法。
【請求項７】
前記第２の判定基準は、前記第１の判定基準よりも緩和された基準であることを特徴とする請求項６に記載のデバイス検索方法。
【請求項８】
前記第１の判定基準は、前記入力工程で入力された検索条件のすべてを満足するデバイスを判定するものであり、前記第２の判定基準は、デバイスが前記入力工程で入力された検索条件のうち所定数以上を満足するデバイスを判定するものであることを特徴とする請求項６または７のいずれかに記載のデバイス検索方法。
【請求項９】
前記第２の検索工程が、前記第２の判定基準に基づいて出力するデバイス情報には、該デバイスが満足しない検索条件の情報が含まれることを特徴とする請求項８に記載のデバイス検索方法。
【請求項１０】
前記抽出工程は、オブジェクトクラスに関する条件のみを抽出して出力することを特徴とする請求項６〜９のいずれかに記載のデバイス検索方法。
【請求項１１】
請求項６〜９のいずれかに示した各工程を実行するためのプログラムコードを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上のデバイスの検索する検索クライアントおよび検索方法に関するものである。
【０００２】
【従来の技術】
従来、ネットワーク上の各種の資源（プリンタ、サーバ、スキャナなど）を効率的に発見し、利用するための方法として、ディレクトリサービスと呼ばれるものが提供されている。ディレクトリサービスとは、言わばネットワークに関する電話帳であり、様々な情報を格納するためのものである。ディレクトリシステムの具体例としては、例えばLDAP(Lightweight Directory Access Protocol)がある。LDAPの規定は、IETFが発行しているRFC１７７７に記載されている。また解説書としては、例えば株式会社プレンティスホールより「ＬＤＡＰ インターネット ディレクトリ アプリケーション プログラミング」が１９９７年１１月１日に発行されている。このディレクトリサービスを用いて、例えばネットワークに接続されているデバイスを検索することにより、ネットワーク上で利用可能なデバイスのネットワークアドレスの一覧を得ることができる。
【０００３】
【発明が解決しようとする課題】
しかしながら上記従来例では、例えばネットワークプリンタを検索する場合を例に取れば、ステープル機能のあるなし、両面印刷サポートのあるなしなどの各種属性を指定して検索した場合、条件をすべて満足したデバイスのみが検索される。もし、条件をすべて満足するデバイスが存在しない場合には、条件を入れ直して再度検索を行わなければならないという問題があった。
【０００４】
本発明は、上記問題点を解決するためになされたもので、条件をすべて満足するデバイスが存在した場合には正しく表示することはもちろんのこと、条件をすべて満足するデバイスが存在しない場合にも、近しい条件を備えているデバイスを表示することによって、ユーザが条件を緩和して再検索する手間を省くようなデバイス検索クライアントおよびデバイス検索方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明は上記問題点を解決するために、本出願の第１の発明は、ネットワーク上のデバイスを検索するデバイス検索クライアントであって、デバイスの検索条件を入力する入力手段と、前記入力手段で入力された検索条件の中から、所定の検索条件を抽出する抽出手段と、前記抽出手段により抽出された検索条件を前記ネットワーク上の検索サーバに送信してその検索結果を取得する第１の検索手段と、前記入力手段で入力された検索条件に基づいて、前記第１の検索手段の検索結果に対して検索を行う第２の検索手段と、前記第２の検索手段の出力する検索結果を表示する表示手段とを備え、前記第２の検索手段は、検索結果を出力するための判定基準を少なくとも２つ備え、まず第１の判定基準を満足するデバイス情報を出力し、該第１の判定基準を満足するデバイスが存在しない場合には、該第１の判定基準と異なる第２の判定基準を満足するデバイス情報を出力することを特徴とする。
【０００６】
また、本出願の第２の発明は、本出願の第１の発明において、前記第２の判定基準は、前記第１の判定基準よりも緩和された基準であることを特徴とする。
【０００７】
また、本出願の第３の発明は、本出願の第１または２の発明において、前記第１の判定基準は、前記入力手段で入力された検索条件のすべてを満足するデバイスを判定するものであり、前記第２の判定基準は、デバイスが前記入力手段で入力された検索条件のうち所定数以上を満足するデバイスを判定するものであることを特徴とする。
【０００８】
また、本出願の第４の発明は、本出願の第３の発明において、前記第２の検索手段が、前記第２の判定基準に基づいて出力するデバイス情報には、該デバイスが満足しない検索条件の情報が含まれることを特徴とする。
【０００９】
また、本出願の第５の発明は、本出願の第１〜４の発明において、前記抽出手段は、オブジェクトクラスに関する条件のみを抽出して出力することを特徴とする。
【００１０】
また、本出願の第６の発明は、ネットワーク上のデバイスを検索するデバイス検索方法であって、デバイスの検索条件を入力する入力工程と、前記入力工程で入力された検索条件の中から、所定の検索条件を抽出する抽出工程と、前記抽出工程により抽出された検索条件を前記ネットワーク上の検索サーバに送信してその検索結果を取得する第１の検索工程と、前記入力工程で入力された検索条件に基づいて、前記第１の検索工程の検索結果に対して検索を行う第２の検索工程と、前記第２の検索工程の出力する検索結果を表示する表示工程とを備え、前記第２の検索工程は、検索結果を出力するための判定基準を少なくとも２つ備え、まず第１の判定基準を満足するデバイス情報を出力し、該第１の判定基準を満足するデバイスが存在しない場合には、該第１の判定基準と異なる第２の判定基準を満足するデバイス情報を出力することを特徴とする。
【００１１】
また、本出願の第７の発明は、本出願の第６の発明において、前記第２の判定基準は、前記第１の判定基準よりも緩和された基準であることを特徴とする。
【００１２】
また、本出願の第８の発明は、本出願の第６または７の発明において、前記第１の判定基準は、前記入力工程で入力された検索条件のすべてを満足するデバイスを判定するものであり、前記第２の判定基準は、デバイスが前記入力工程で入力された検索条件のうち所定数以上を満足するデバイスを判定するものであることを特徴とする。
【００１３】
また、本出願の第９の発明は、本出願の第８の発明は、前記第２の検索工程が、前記第２の判定基準に基づいて出力するデバイス情報には、該デバイスが満足しない検索条件の情報が含まれることを特徴とする。
【００１４】
また、本出願の第１０の発明は、本出願の第６〜９の発明において、前記抽出工程は、オブジェクトクラスに関する条件のみを抽出して出力することを特徴とする。
【００１５】
また、本出願の第１１の発明は、本出願の第６〜１０の発明のいずれかに示した各工程を実行するためのプログラムコードを格納したコンピュータ読み取り可能な記憶媒体である。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。本発明は、ユーザが望む属性を持つネットワークデバイスを容易に検索するとともに、検索結果をユーザにわかりやすい形式で表示するものである。特に、携帯用コンピュータを訪問先のネットワークに接続して印刷を行なう場合に特に有効である。詳細については、以下の説明で明らかになろう。
【００１７】
図１は、本実施形態のデバイス検索システムが動作可能なネットワークの構成を示す図である。同図において、１０１はカラープリンタ、１０２はＭＦＰ（Multi Function Peripheral。コピー機であるが、ネットワークプリンタとしても使用可能なもの。）、１０３および１０４はモノクロプリンタ、１０５はネットワーク接続されたスキャナである。１１１および１１３は、それぞれデスクトップ型コンピュータ（以下、ＰＣと称する）とノート型コンピュータ（以下、ノートＰＣと称する）である。これらは、本実施形態のデバイス検索クライアントのプログラムが実行可能であり、後述するようにデバイス検索サーバに対して所望の条件を満たすデバイスの検索要求を発行するするとともに、その検索結果を受信して表示画面上に表示する。以下、このデバイス検索クライアントのプログラムが実行可能なＰＣ１１１およびノートＰＣ１１３を、それぞれ、デバイス検索クライアント１１１、１１３と称する。１１２は、本実施形態のデバイス検索サーバのプログラムが実行可能なＰＣであり、後述するようにネットワークデバイス１０１から１０５に関する情報（データベース）が格納されており、デバイス検索クライアント１１１あるいは１１３からのデバイス検索の問い合わせを受け付け、その結果を返す。以下、このデバイス検索サーバのプログラムが実行可能なＰＣ１１２をデバイス検索サーバ１１２と称する。
【００１８】
これらのデバイスのうち、１０１、１０２、１０３、１１１、１１２および１２０は二階に設置されており、１０４および１０５は一階に設置されている。１１３はノートＰＣなので、現在は一階からＬＡＮ１００に接続しているが、その携帯性から取り外されることもある。さらに、これらのデバイスを相互に接続するネットワーク１００は、ファイアウォール１２０を介してインターネット１３０に接続されており、インターネット１３０を介して他のネットワーク１４０とも接続されている。
【００１９】
図２は、検索クライアント１１１、１１３および検索サーバ１１２の構成の一例を示したブロック図であり、これは汎用のパーソナルコンピュータと同様の構成から成っている。同図において、２００は、デバイス検索クライアントソフトウェアあるいはデバイス検索サーバソフトウェア（以下、これらをまとめてデバイス検索ソフトウェアと呼ぶ）が稼動するＰＣ全体を表わしており、図１における１１１、１１２あるいは１１３と同等である。ＰＣ２００は、ＲＯＭ２０２もしくはハードディスク（ＨＤ）２１１に記憶された、あるいはフロッピーディスクドライブ（ＦＤ）２１２より供給されるデバイス検索ソフトウェアを実行するＣＰＵ２０１を備え、システムバス２０４に接続される各デバイスを総括的に制御する。２０３はＲＡＭで、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。２０５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）２０９や不図示のポインティングデバイス等からの指示入力を制御する。２０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）２１０の表示を制御する。２０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、種々のアプリケーション、編集ファイル、ユーザファイルそしてネットワーク管理プログラム等を記憶するハードディスク（ＨＤ）２１１およびフロッピーディスクコントローラ（ＦＤ）２１２とのアクセスを制御する。２０８はネットワークインタフェースカード（ＮＩＣ）で、ＬＡＮ２２０を介して、ネットワークプリンタ、他のネットワーク機器あるいは他のＰＣと双方向にデータをやりとりする。なお、ＬＡＮ２２０は図１におけるＬＡＮ１００と同じものである。
【００２０】
次に、デバイス検索サーバの構成と動作について説明する。図３は、検索サーバ１１２に格納されているネットワーク機器に関するデータベースの構造を表形式で表現した図である。検索サーバ１１２において、データベース３００の情報は、物理的にはハードディスク２１１に格納されている。同図の表において、各行がネットワークデバイス一台を表現している。各列は、デバイスの名称（３０１）、プリンタのネットワークアドレス（３０２）、デバイスの機能種別を示すオブジェクトクラス（３０３）、デバイスタイプ（３０４）、カラー印刷をサポートしているかどうか（３０５）、両面印刷をサポートしているかどうか（３０６）、ステープルをサポートしているかどうか（３０７）をそれぞれ表している。
【００２１】
ここで、オブジェクトクラス（ObjectClass）とは、デバイスの機能種別を示すものであり、例えば、デバイスがプリンタであれば、プリンタクラス（printer）として登録される。また、あるデバイスが印刷機能を持っていれば、例えばそのデバイスがＭＦＰであったとしても、プリンタクラスのデバイスとして登録されても良い。一方、デバイスタイプとはデバイスの全体的な機能を示すものであって、ここでは単体のプリンタとＭＦＰとは区別される。３０５から３０７までの表記において、１はサポートしていることを、０はサポートしていないことを示す。また、NAは、その属性に関する情報が格納されていないことを示す。
【００２２】
図３に示されたデータについて例えば表の一行目に登録されているデバイスを例にとって具体的に解説すると、カラー君という名称のデバイスが、ネットワークアドレス192.168.16.131に存在し、そのデバイスはプリント機能を持っていて、形態としては単体のプリンタであり、属性としてカラー印刷とステープルをサポートしているが、両面印刷の機能はサポートしていないことを示している。そして、本実施形態においては、図３に示された１行目から５行目までのデバイスは、それぞれ図１における１０１、１０２、１０３、１０４および１０５に相当するものとする。なお、図３に示した情報はあくまでも例であって、検索サーバ１１２に格納する情報としては、さらに設置場所などの附加情報もあっても良いことは言うまでもない。
【００２３】
つぎにデバイス検索サーバ１１２の動作を図４および図５のフローチャートを用いて説明する。まず、図４は、デバイス検索サーバ１１２の動作について説明したフローチャートである。これら一連の処理の判断と実行は、ハードウェア的にはデバイス検索サーバ内部のＣＰＵ２０１によって行われる。デバイス検索サーバ１１２が起動すると、まずステップＳ４０１にて、デバイス検索クライアントからデバイス検索要求を受け付けるための受信ポートをオープンする。この操作により、デバイス検索クライアントからの検索要求を受信した時には、オペレーティングシステムが受信イベントを発行し、検索要求の受信がプログラムに通知される。次にステップＳ４０２に進み、オペレーティングシステムから何らかのイベントが通知されるまで待つ。何らかのイベントが通知されたら、そのイベントを取得して次のステップに進む。次のステップＳ４０３では、ステップＳ４０２で取得したイベントが、ユーザによるシステムシャットダウンイベントであるかどうかを判断する。もしシャットダウンイベントであった場合には、ステップＳ４０８にて受信ポートをクローズした後、プログラムを終了する。一方、ステップＳ４０３で、シャットダウンイベントではないと判断された場合には、ステップＳ４０４に進み、デバイス検索クライアントからの問い合わせ受信イベントであるかどうかを判断する。もし、問い合わせ受信イベントである場合には、ステップＳ４０５に進み、該イベントで取得した検索条件と図３に示したデータベースとを照らし合わせて適切なデバイスを選び出す。続くステップＳ４０６にて、ステップＳ４０５で得た検索結果をデバイス検索クライアントに対して返信する。一方、ステップＳ４０７で問い合わせ受信イベントではないと判断された場合にはステップＳ４０７に進み、シャットダウンイベントあるいは問い合わせ受信イベント以外の処理、例えば表示画面の更新などを行なう。
【００２４】
図５は、図４におけるステップＳ４０５のデータベース検索動作をより詳しく説明するフローチャートである。全体について簡単に概略を説明すると、本実施形態のデータベース検索ステップでは、デバイス検索クライアントが複数の検索条件を指定してきた場合、それらの検索条件をひとつずつ処理する方式を採用している。それがステップＳ５０１からそのＮＯ判断を経由して再びステップＳ５０１に戻る外側のループである。ステップＳ５０４からそのＮＯ判断から出て再びステップＳ５０４に戻る内側のループは、検索条件ひとつについて、データベースの全ての登録情報を走査するためのものである。以下、ステップひとつ毎に詳細に説明する。データベース検索動作においては、ステップＳ５０１で全ての検索条件を処理し終わったかどうかを判断する。もし全ての条件を処理し終わった場合には、ステップＳ５０２に進み、検索結果を上位プログラムに返す。一方、ステップＳ５０１において全ての検索条件を処理し終えていないと判断された場合にはステップＳ５０３に進み、デバイス検索クライアントから受信した情報の中から検索条件をひとつ取り出す。
【００２５】
次にステップＳ５０４に進み、図３で説明したネットワークデバイスに関するデータベース３００を全て走査し終えたかどうかを判断する。走査が終わったと判断された場合には、ステップＳ５０１に戻って、次の検索条件の処理を行なう。一方、ステップＳ５０４でデータベース３００の走査が終わっていないと判断された場合には、ステップＳ５０５に進む。ステップＳ５０５では、データベース３００のうちからデバイスひとつ分のデータを取り出す。続くステップＳ５０６で、ステップＳ５０５で取り出したデータが検索条件に合致しているかどうかを判断する。もし条件に合致している場合にはステップＳ５０７に進む。一方、ステップＳ５０６でステップＳ５０５で取り出したデータが検索条件に合致してないと判断された場合にはステップＳ５０４に戻り、データベース３００に登録されている次のデバイス情報について処理を続ける。ステップＳ５０７では、ステップＳ５０６で検索条件に合致したと判断されたデバイスの情報のうち、デバイス名称３０１とネットワークアドレス３０２、デバイスタイプ３０４、カラー３０５、両面印刷３０６ならびにステープル３０７を取り出し、続くステップＳ５０８で検索結果に追加する。ステップＳ５０８の処理が終了したら、ステップＳ５０４に戻って次のデータの走査を続ける。
【００２６】
以下、本実施形態では、クライアントが、検索条件として、「オブジェクトクラスがプリンタであるデバイス」を要求した場合を想定して説明する。この検索条件により、データベース３００について検索を行なった検索結果を図６に示す。同図において、検索結果６００には、オブジェクトクラスが「プリンタ」であるという条件に合致したデバイスは４台あり、それぞれについてデバイス名称６０１、ネットワークアドレス６０２、デバイスタイプ６０３、カラー機能のありなし６０４、両面印刷機能のありなし６０５ならびにステープル機能のありなし６０６の情報が示されている。
【００２７】
次に、デバイス検索クライアントの動作について説明する。図７は、デバイスの検索を行なう前の、クライアントの画面表示の一例を示す説明図である。同図において、ウィンドウ７００の中に、各種の情報が表示されている。７０１は検索するデバイスのオブジェクトクラスを指定するコンボボックスである。７０１のコンボボックスを操作することにより、検索するデバイスのオブジェクトクラスを、「プリンタ」あるいは「スキャナ」などに変更することができる。またその変更に応じて、７０３で示される検索属性を指定する領域の検索属性条件がオブジェクトクラスに応じた属性に変化する。例えば、両面印刷属性７０３ｂやステープル属性７０３ｃは、オブジェクトクラスがプリンタの場合は表示されているが、オブジェクトクラスを「スキャナ」に変更すると、それらは無効であるから表示されなくなる等である。７０２は検索スタートボタンであり、ユーザがこのボタンをキーボード２０９あるいは不図示のポインティングデバイスを用いて押下することにより、デバイス検索サーバに対して条件に合致するデバイスがあるかどうかの問い合わせが行われる。
【００２８】
７０３は検索属性を指定する領域であり、現在は７０１のコンボボックスにてオブジェクトクラスとしてプリンタが選択されているので７０３にはプリンタに関する属性が３つのチェックボックスで示されている。それぞれカラー印刷が可能かどうか７０３ａ、両面印刷が可能かどうか７０３ｂおよびステープルが可能かどうか７０３ｃが指定できるようになっている。図７に示した例では、全てのチェックボックスがチェックされているので、カラー印刷可能かつ両面印刷可能かつステープル可能なデバイスを検索することになる。７０４は検索結果を表示する領域であり、デバイスの名称７０４ａ、ネットワークアドレス７０４ｂおよび検索条件に関係する事項７０４ｃが表示される。７０５は指定した条件に完全に一致したかどうかの結果を表示する領域であり、「完全一致」あるいは「不完全一致」のどちらかが表示される。
【００２９】
図８は、図７の表示画面において指定した検索条件およびデバイス検索サーバへの問い合わせるための検索条件データの一例を示した図であり、本実施形態では、ＩＥＴＦが発行するＲＦＣ１９６０の規定に基づいた記法を用いている。８０１は、オペレータにより入力された検索条件データを示しており、オブジェクトクラスがプリンタ（１行目）であり、属性としてカラー印刷可能（２行目）、両面印刷可能（３行目）、ステープル可能（４行目）なデバイスが指定されている。８０２はデバイス検索サーバへの問い合わせる検索条件データを示している。デバイス検索クライアントの動作について後述するように、サーバに問い合わせる条件として、検索条件の中からオブジェクトクラスに関するものだけを抽出して問い合わせるため、オブジェクトクラスがプリンタであるという条件だけが示されている。ここで、８０１に示した検索条件は、図７に示したウィンドウをユーザが操作して検索条件を変更する度にＣＰＵ２０１によって更新され、ＲＡＭ２０３上に一時的に記憶されるものとする。
【００３０】
図９は、デバイス検索クライアント１１１および１１３の動作を示すフローチャートである。尚、デバイス検索サーバ１１２の上でデバイス検索クライアントのプログラムを実行させることもできる。まず、デバイス検索クライアントのプログラムの概略動作について説明すると、システムが終了するまで、イベントを待ち、イベントが生じたらそのイベントについての処理を行うイベント駆動型のプログラムとして動作する。主なイベントとしては、システム終了イベント、デバイス検索要求イベント、デバイス検索結果受信イベントである。以下、個別のステップについて詳細に説明する。
【００３１】
検索クライアントが起動すると、まずステップＳ９０１でイベントが発生するまで待つ。イベントが発生したら、そのイベントを取得してステップＳ９０２に進む。ステップＳ９０２では、ステップＳ９０１で取得したイベントが、ユーザがキーボード２０９あるいは不図示のポインティングデバイスを用いてシステム終了のコマンドを発行したものであるかどうかを判定する。もしユーザが終了コマンドを発行したと判定した場合には、プログラムを終了する。一方、ステップＳ９０２において終了コマンドの発行イベントではないと判定した場合には、ステップＳ９０３に進む。ステップＳ９０３では、ステップＳ９０１で取得したイベントが、ユーザが検索メニュー７０１を選択することによって、デバイス検索コマンドを発行したことによるものであるかどうかを判定する。もしデバイス検索コマンドの発行によるイベントであった場合にはステップＳ９０４に進み、デバイス検索サーバ１１２に対してデバイス検索要求を送信する。一方、ステップＳ９０３において、イベントがデバイス検索コマンドを発行したことによるものではないと判断された場合にはステップＳ９０５に進む。ステップＳ９０５では、ステップＳ９０１で取得したイベントが、ステップＳ９０４で送信したデバイス検索要求の送信に対するデバイス検索サーバ１１２からの検索結果の返答受信によるイベントであるかどうかを判断する。もし、返答の受信によるものであると判断された場合には、ステップＳ９０６に進み、受信した検索結果をウィンドウ７００に表示する。ステップＳ９０６の処理が終了したら、ステップＳ９０１に戻って次のイベントを待つ。
【００３２】
一方、ステップＳ９０５において返答受信によるイベントではないと判断された場合には、ステップＳ９０７に進み、その他の処理を行う。その他の処理とは、例えばプログラム起動時やユーザが画面をウィンドウを移動させた場合などに、画面を再描画すること等である。ステップＳ９０７の処理が終了したら、ステップＳ９０１に戻って次のイベントを待つ。
【００３３】
図１０は、図９のフローチャートのうち、検索要求動作Ｓ９０４について詳しく説明したフローチャートである。まず、ステップＳ１００１において、ＲＡＭ２０３にアクセスして、図８で説明したようにあらかじめ記憶しておいた検索条件を取得する。続くステップＳ１００２において、その検索条件の中からオブジェクトクラスに関する条件だけを抽出して検索サーバ１１２に送信し、ネットワークデバイスの検索を要求する。
【００３４】
なお、デバイス検索サーバのアドレスは、本実施形態では例えばユーザがキーボード２０９を用いて入力した値をハードディスク２１１に書き出しておき、それを読み込むなどしてあらかじめわかっているものとするが、それに限定されるものではない。他の方法としては、例えばプログラミング言語Lindaにおけるタプルスペースのような手法を用いて、ネットワークから取得しても良い。プログラム言語Lindaについては、各種の論文や解説書があるが、例えば、「D. Gelernter著、"Generative Communication in Linda", ACM Transactions on Programming Languages and Systems, volume7, number1, pp80--112, 1985年」等に開示されている。
【００３５】
図１１は、図９のフローチャートのうち、検索結果表示動作Ｓ９０６について詳しく説明したフローチャートである。検索結果表示動作においては、ステップＳ１１０１において、受信した検索結果を調べて、ＲＡＭ２０３に一時的に記憶しておいた検索条件に完全に一致したデバイスがあったかどうかを判断する。もし条件に完全に一致したデバイスがひとつでもあった場合にはステップＳ１１０２に進む。ステップＳ１１０２ではＣＲＴＣ２０６を操作して画面を書き換え、検索結果表示領域７０５に完全一致であった旨を表示する。続くステップＳ１１０３では、完全一致であったことを記憶しておくために、完全一致かどうかを示す一時変数fExistにTRUEを代入しておく。ステップＳ１１０３の処理を終了したらステップＳ１１０６に進む。一方、ステップＳ１１０１において、条件に完全に一致したデバイスがひとつもない場合にあはステップＳ１１０４に進む。ステップＳ１１０４では、ＣＲＴＣ２０６を操作して画面を書き換え、検索結果表示領域７０５に不完全一致であった旨を表示する。続くステップＳ１１０５では、不完全一致であったことを記憶しておくために、一時変数fExistにFALSEを代入しておく。ステップＳ１１０５の処理を終了したら、ステップＳ１１０６に合流する。
【００３６】
ステップＳ１１０６からそのＮＯ判断を経由して再びステップＳ１１６に戻るループは、受信した検索結果（図６で示した検索結果６００）に含まれる全てのデバイス情報をひとつずつ順に処理（検索条件満足か否かの判断、表示等）するためのループである。ステップＳ１１０６では、受信した検索結果に含まれる全てのデバイス情報を処理し終わったかどうかを判断する。もし全て処理し終わったと判断された場合には、全体の処理を終了する。一方、ステップＳ１１０６において、まだ受信した全情報を処理し終わっていないと判断された場合にはステップＳ１１０７に進み、受信したひとつ以上のデバイス情報の中から、情報をひとつ取り出す。続くステップＳ１１０８では、先ほどのステップＳ１１０３あるいステップＳ１１０５で代入したfExistの値がTRUEかFALSEかによって処理を分ける。fExistがTRUE、つまり条件に完全一致するデバイスがあった場合にはステップＳ１１０９に進む。受信したデバイス情報の中には検索条件に完全に一致していないものもあるので、条件に完全に一致するデバイス情報のみを選り分ける。その選別を行うのがステップＳ１１０９である。ステップＳ１１０９では、ステップＳ１１０７で取得したデバイス情報がＲＡＭ２０３に一時的に記憶しておいた検索条件８０１を完全に満たしているかどうかを判断する。完全に満たしている場合にはステップＳ１１１０に進む。ステップＳ１１１０では、ＣＲＴＣ２０６を制御して画面を書き換え、デバイス情報表示領域７０４にデバイス名、ネットワークアドレスおよび完全一致である旨を表示する。ステップＳ１１１０の処理を終了したら、ステップＳ１１０６に戻って、次のデバイス情報の処理を行う。一方、ステップＳ１１０９において、完全に一致していないと判断された場合には、ステップＳ１１１０での表示処理を行うことなく、速やかにステップＳ１１０６に戻る。
【００３７】
さて、ステップＳ１１０８において、fExistがFALSEであった場合の処理について以下に説明する。Ｓ１１０８においてfExistがFALSEであった場合には、ステップＳ１１１１に進む。この場合、受信した検索結果の中には、オブジェクトクラスが合致しているということを除いて検索条件８０１に全く合致しない情報から、完全合致一歩手前の情報まで、様々な情報が含まれている。ユーザには、それらの情報の中から、なるべく重要な情報のみを選別して表示する方が望ましい。そのための判別を行うのがステップＳ１１１１である。ここでは、指定した３つの検索条件（カラーあり、両面あり、ステープルあり）のうち、２つ以上の条件に合致したもの、すなわちＮ個の条件のうちＮ−１個の条件が一致していれば、「ある基準以上合致」と判断する。また、Ｎ−２個あるいはＮ−３個等、一致条件の基準を適宜設定してもよいことは言うまでもない。
【００３８】
ステップＳ１１１１においては、ステップＳ１１０７で取得したデバイス情報がＲＡＭ２０３に一時的に記憶しておいた検索条件８０１の３つの属性（カラーあり、両面あり、ステープルあり）のうち、２つ以上の属性を満たしているかどうかを判断する。もし２つ以上の属性を満たしていると判断された場合には、ステップＳ１１１２に進む。ステップＳ１１１２では、満たしていなかった属性を調べる。続くステップＳ１１１３では、ＣＲＴＣ２０６を制御して画面を更新し、検索結果表示領域７０４に、Ｓ１１０７で取得した情報からプリンタ名、ネットワークアドレスおよびステップＳ１１１２で調べた一致しなかった条件（属性）を表示する。ステップＳ１１１３の処理が終わったら、ステップＳ１１０６に戻って次の情報の処理を続ける。一方ステップＳ１１１１で、２つ以上の属性を満たしていなかったと判断された場合には、ステップＳ１１０６に戻る。
【００３９】
図１２は、検索操作を終了した後の、デバイス検索クライアントの画面表示の一例を示す図である。同図の例では、オブジェクトクラスがプリンタで、カラー印刷機能あり、両面印刷機能あり、ステープル機能ありのデバイスの検索を行った結果を示している。その条件に完全に一致するデバイスは無かったので、不完全一致である旨が７０５に示されている。また、近しい条件のデバイスとして、「カラー君」ならびに「２階高速機」なる名称のデバイスが存在し、それぞれのデバイスについて７０３で指定した条件のうち合致しなかった条件が７０４ｃに表示されている。
【００４０】
図１３は、検索条件に完全に一致するデバイスがあった場合のデバイス検索クライアントの画面表示の一例を示す図である。同図の例では、オブジェクトクラスがプリンタで、両面印刷機能あり、ステープル機能ありのデバイスの検索を行った結果を示している。その条件に完全に一致するデバイスとして、「２階高速機」なる名称のデバイスが存在するので、そのデバイスに関する情報が７０４に表示されるとともに、完全一致である旨が７０５および７０４ｃに示されている。
【００４１】
このように本実施形態によれば、ユーザが指定する条件のすべてを満足するデバイスが発見されればそれを表示でき、発見されなかった場合でも、一部の条件を満足する近しいデバイスを表示して、再検索の操作の手間を省くことが可能となる。
【００４２】
また、本発明に係るネットワークデバイス制御プログラムは、外部からインストールされるプログラムによって、ＰＣ２００によって遂行されても良い。その場合、そのプログラムはＣＤ−ＲＯＭやフラッシュメモリやフロッピーディスクなどの記憶媒体により、あるいは電子メールやパソコン通信などのネットワークを介して、外部の記憶媒体からプログラムを含む情報群をＰＣ２００上にロードすることにより、ＰＣ２００に供給される場合でも本発明は適用されるものである。
【００４３】
図１４は、本実施形態におけるプログラムか格納された記憶媒体のメモリマップの一例であり、ここでは記憶媒体としてＣＤ−ＲＯＭを想定している。９９９９はディレクトリ情報を記憶してある領域で、以降のインストールプログラムを記憶してある領域９９９８およびネットワークデバイス制御プログラムを記憶してある領域９９９７の位置を示している。９９９８は、インストールプログラムを記憶してある領域である。９９９７は、ネットワークデバイス制御プログラムを記憶してある領域である。本発明のネットワーク制御プログラムがＰＣ２００にインストールされる際には、まずインストールプログラムを記憶してある領域９９９８に記憶されているインストールプログラムがシステムにロードされ、ＣＰＵ２０１によって実行される。次に、ＣＰＵ２０１によって実行されるインストールプログラムが、ネットワークデバイス制御プログラムを記憶してある領域９９９７からネットワークデバイス制御プログラムを読み出して、ハードディスク２１１に格納する。
【００４４】
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェース機器、リーダなど）から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。
【００４５】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００４６】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００４７】
また、コンピュータが読み出したプログラムコードを実行することによって、前述した実施形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００４８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００４９】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体から、そのプログラムをパソコン通信など通信ラインを介して要求者にそのプログラムを配信する場合にも適用できることは言うまでもない。
【００５０】
【発明の効果】
以上説明したように、本出願の発明によれば、ユーザが指定する条件を満足するデバイスが発見できなかった場合でも、近しい条件を備えているデバイスを表示することができる。これによって、ユーザが条件を緩和して再検索する等の操作の手間を省くことができる。
【００５１】
とくに、本出願の第３および第８の発明によれば、ユーザが指定する条件のすべてを満足するデバイスが発見されればそれを表示でき、発見されなかった場合でも、一部の条件を満足する近しいデバイスを表示して、再検索の操作の手間を省くことができる。
【００５２】
また、本出願の第４および第９の発明によれば、ユーザが指定する条件のすべてを満足するデバイスが発見されず近しい条件を備えるデバイスを表示する際、満足しない条件を合わせて表示することにより、ユーザが容易にデバイスを選定することができる。
【００５３】
また、本出願の第５および第１０の発明によれば、ユーザが指定した条件からオブジェクトクラスに関する条件に合致するものを検索サーバから取得し、さらにクライアント側で詳細に検索を行うことで、効率的な検索を行うことができる。
【図面の簡単な説明】
【図１】本実施形態のデバイス検索システムが動作可能なネットワークの構成を示す図である。
【図２】デバイス検索サーバおよびデバイス検索クライアントの構成の一例を示したブロック図である。
【図３】デバイス検索サーバが持つデバイス情報の一例を示す図である。
【図４】デバイス検索サーバの動作を示すフローチャートである。
【図５】デバイス検索サーバのデータベース検索動作を示すフローチャートである。
【図６】デバイス検索サーバが出力する検索結果の一例を示す図である。
【図７】デバイス検索前の時点におけるデバイス検索クライアントの画面表示の一例を示す図である。
【図８】デバイス検索クライアントに一時的に保持されている検索条件ならびに問い合わせ条件の一例を示す図である。
【図９】デバイス検索クライアントの動作を示すフローチャートである。
【図１０】デバイス検索クライアントの検索要求動作を示すフローチャートである。
【図１１】デバイス検索クライアントの検索結果表示動作を示すフローチャートである。
【図１２】デバイス検索クライアントの画面表示の一例を示す図である。（不完全一致の場合）
【図１３】デバイス検索クライアントの画面表示の一例を示す図である。（完全一致の場合）
【図１４】本実施形態のデバイス検索ソフトウェアの記憶媒体におけるメモリマップを示す図である。
【符号の説明】
１００  ＬＡＮ
１０１  カラープリンタ
１０２  ＭＦＰ
１０３  モノクロプリンタ
１０４  モノクロプリンタ
１０５  スキャナ
１１１  デバイス検索クライアント（デスクトップＰＣ）
１１２  デバイス検索サーバ
１１３  デバイス検索クライアント（ノートＰＣ）
１２０  ファイアウォール
１３０  インターネット
１４０  他のネットワーク
【図１】
0003869972.tif 000002
【図２】
0003869972.tif 000003
【図３】
0003869972.tif 000004
【図４】
0003869972.tif 000005
【図５】
0003869972.tif 000006
【図６】
0003869972.tif 000007
【図７】
0003869972.tif 000008
【図８】
0003869972.tif 000009
【図９】
0003869972.tif 000010
【図１０】
0003869972.tif 000011
【図１１】
0003869972.tif 000012
【図１２】
0003869972.tif 000013
【図１３】
0003869972.tif 000014
【図１４】
0003869972.tif 000015