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