(57)【特許請求の範囲】
【請求項１】
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置であって、
複数の画像形成手段と、
当該画像形成装置の動作モードを判定する判定手段と、
前記情報処理装置から送信される情報要求を受信する受信手段と、
前記受信手段で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信手段とを備え、
前記判定手段は、ネットワーク情報を取得する取得手段を備え、
前記判定手段は、前記取得手段で取得したネットワーク情報に基づいて、前記動作モードを、所定の情報処理装置を介在しない第１動作モード、あるいは所定の情報処理装置を介在する第２動作モードのどちらかに判定する
ことを特徴とする画像形成装置。
【請求項２】
前記動作モードが前記第１動作モードである場合、前記情報処理装置からのマルチキャストによる検索要求を受信し、前記動作モードが前記第２動作モードである場合、前記情報処理装置からのユニキャストによる検索要求を受信する検索要求受信手段を更に備える
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記送信手段は、
前記動作モードが前記第１動作モードである場合、前記複数の画像形成手段の内、指定された画像形成手段の識別子を含む識別情報を送信し、
前記動作モードが前記第２動作モードである場合、前記複数の画像形成手段それぞれの識別子を含む識別情報を送信する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記取得手段は、前記ネットワーク上にマルチキャストによる検索要求を発行し、その検索要求に対する応答の有無に基づいて、前記ネットワーク情報を取得する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項５】
前記取得手段は、ＤＮＳ設定情報の有無、及びＤＮＳ設定がされている場合にはＤＮＳサーバに検索要求を発行し、その検索要求に対する応答の解析結果に基づいて、前記ネットワーク情報を取得する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項６】
前記複数の画像形成手段から優先する画像形成手段を指定する指定手段を更に備える
ことを特徴とする請求項３に記載の画像形成装置。
【請求項７】
前記情報処理装置からのマルチキャストによる検索要求を受信する検索要求受信手段と、
前記検索要求受信手段で受信した検索要求を送信した情報処理装置を示す識別情報を記憶する記憶手段を更に備え、
前記送信手段は、前記判定手段で判定された動作モードに基づいて、前記記憶手段に記憶される識別情報と、前記受信手段で受信した情報要求を送信した情報処理装置の識別情報とを比較し、その比較結果に基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項８】
前記情報処理装置からのネットワーク離脱通知を検知した場合、前記第２動作モードから前記第１動作モードに移行し、前記情報処理装置からのネットワーク参加通知を検知した場合、前記第１動作モードから前記第２動作モードに移行する移行手段を更に備える
ことを特徴とする請求項１に記載の画像形成装置。
【請求項９】
ネットワークを介して画像形成装置と情報処理装置とが相互に接続されて構成される画像形成システムであって、
前記画像形成装置は、
複数の画像形成手段と、
当該画像形成装置の動作モードを判定する判定手段と、
前記情報処理装置から送信される情報要求を受信する第１受信手段と、
前記第１受信手段で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信手段とを備え、
前記判定手段は、ネットワーク情報を取得する取得手段を備え、
前記判定手段は、前記取得手段で取得したネットワーク情報に基づいて、前記動作モードを、所定の情報処理装置を介在しない第１動作モード、あるいは所定の情報処理装置を介在する第２動作モードのどちらかに判定し、
前記情報処理装置は、
前記識別情報を前記画像形成装置から受信する第２受信手段と、
前記第２受信手段で受信した識別情報に基づいて、前記画像形成装置を使用するためのためのデバイスドライバをインストールするインストール手段と
を備えることを特徴とする画像形成システム。
【請求項１０】
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置の制御方法であって、
前記画像形成装置の動作モードを判定する判定工程と、
前記情報処理装置から送信される情報要求を受信する受信工程と、
前記受信工程で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記画像形成装置が備える複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信工程とを備え、
前記判定工程は、ネットワーク情報を取得する取得工程を備え、
前記判定工程は、前記取得手段で取得したネットワーク情報に基づいて、前記動作モードを、所定の情報処理装置を介在しない第１動作モード、あるいは所定の情報処理装置を介在する第２動作モードのどちらかに判定する
ことを特徴とする画像形成装置の制御方法。
【請求項１１】
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置の制御をコンピュータに実行させるためのプログラムであって、
前記画像形成装置の動作モードを判定する判定工程と、
前記情報処理装置から送信される情報要求を受信する受信工程と、
前記受信工程で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記画像形成装置が備える複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信工程とをコンピュータに実行させ、
前記判定工程は、ネットワーク情報を取得する取得工程を備え、
前記判定工程は、前記取得手段で取得したネットワーク情報に基づいて、前記動作モードを、所定の情報処理装置を介在しない第１動作モード、あるいは所定の情報処理装置を介在する第２動作モードのどちらかに判定する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置及びその制御方法、プログラム、その画像形成装置及び情報処理装置からなる画像形成システムに関するものである。
【背景技術】
【０００２】
従来、ネットワークに接続され、ネットワークを介してコンピュータからの操作を受け付ける画像形成装置（例えば、プリンタや複合機等）が利用されている。更に、この画像形成装置においては、装置内で処理可能なＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を後から拡張し、複数のＰＤＬをサポートすることが可能であるものも存在する。
【０００３】
また、周辺装置であるデバイスと、ホストコンピュータ等の情報処理装置とが接続する際には、デバイスは機種名や製造社名を含むデバイス情報を情報処理装置に送信することが可能である。これを受けて、情報処理装置はデバイス情報中のデバイスＩＤを参照し、それによって特定されるデバイスドライバを選択してインストールすることが可能である。このような技術は、プラグアンドプレイと呼ばれる。
【０００４】
ここで、一般的なプラグアンドプレイによるプリンタドライバインストール処理について、図１Ａを用いて説明する。
【０００５】
図１Ａにおいて、情報処理装置１００の一例としては、一般的なパーソナルコンピュータ（ＰＣ）やワークステーション等をホストコンピュータとして用いることになる。情報処理装置１００には、装置に搭載されるオペレーティングシステム（ＯＳ）への同梱ドライバとして、複数のドライバセット１０１〜１０３が予め格納されているものとする。
【０００６】
ドライバセット１０１〜１０３はそれぞれ、ドライバインストール時に参照される固有情報を記述したＩＮＦファイル１０４と、各種実行モジュール１０５と、そして、リソース１０６によって構成される。ＩＮＦファイル１０４中には、プラグアンドプレイ時に渡されるデバイス情報中の製造者名称であるＭＦＧタグと、製品名称であるＭＤＬタグの値を用いて構成されるデバイスＩＤが記述されている。
【０００７】
このデバイスＩＤは、インストール時に対応する画像形成装置（プリンタ）とデバイスドライバを正確に対応つけるための識別子として用いられる。情報処理装置１００と画像形成装置１０７が、ＵＳＢ等の通信媒体１０８を介して接続されると、画像形成装置１０７がその接続を検知する。接続の検知後、画像形成装置１０７は、自装置の固有情報を含むＩＥＥＥ１２８４規定のデバイス情報１０９を、通信媒体１０８を介して情報処理装置１００へ送信する。ここで、ＩＥＥＥ１２８４規定のデバイス情報１０９は、図１Ｂに示す情報を含む。
【０００８】
デバイス情報１０９を受信した情報処理装置１００内のＯＳは、デバイス情報１０９中のＣＬＳタグを読み取り、プラグアンドプレイの対象が画像形成装置であることを認識し、対応するドライバセットのインストール処理を開始する。ＯＳは、デバイス情報１０９のＭＦＧタグとＭＤＬタグから構成されるデバイスＩＤを生成し、そのデバイスＩＤが記述されているＩＮＦファイル１０４を有するドライバセットを、ドライバセット１０１〜１０３から検索する。
【０００９】
デバイス情報１０９に対応するドライバセットを検索した場合は、そのドライバセット中の各種実行モジュール１０５と、そして、リソース１０６をＯＳへインストールする。続けて、そのインストールしたドライバセットを、デバイス情報１０９を受信した通信媒体１０８のポートへ結びつける。もし、対応するドライバセットが情報処理装置１００に存在しない場合は、インストール処理を行わずに終了する。
【００１０】
ここで、図１Ｂに示すデバイス情報について説明する。
【００１１】
図１Ｂに示すデバイス情報のフォーマットでは、タグ名称を示す「タグ」列と、そのタグで取り得る値を示す「値」列で構成される。ＣＬＳタグには、値として「ＰＲＩＮＴＥＲ」が格納されている。ＣＬＳタグは、装置のタイプが値として格納されるものであり、ここでは、接続先の周辺装置が画像形成装置であることを示している。
【００１２】
ＭＦＧタグには、値として「ＡＢＣ」が格納されている。ＭＦＧタグは、製造元名称を示し、ここでは、ＡＢＣ社が製造元であることを示している。ＭＤＬタグには、値として「ＬＢＰ−ＸＸＸ  ＰＤＬ１」が格納されている。ＭＤＬタグは、機種名及びＰＤＬ種別を示し、ここでは、周辺装置の機種がＬＢＰ−ＸＸＸ、ＰＤＬ種別がＰＤＬ１であることを示している。
【００１３】
ＣＭＤタグには、値として「ＰＤＬ１，ＩＥＥＥ１２８４」が格納されている。ＣＭＤタグの値には、通信媒体を通してやり取りされるコマンド及びＰＤＬ名称を含む。ここでは、デバイスが、ＰＤＬの種類としてＰＤＬ１なるコマンド群を、通信媒体の種類としてＩＥＥＥ１２８４で送受信する周辺装置であることを示している。
【００１４】
また、図１Ｂの例で示したデバイス情報１０９を受信した情報処理装置１００においては、ＯＳによりＭＦＧタグとＭＤＬタグの値から「ＡＢＣ  ＬＢＰ−ＸＸＸ  ＰＤＬ１」というデバイスＩＤが生成されることになる。そして、このデバイスＩＤをキーとして、ドライバセットが検索されることになる。
【００１５】
また、さらに、ＵＳＢのようなローカルインタフェースを使用したプラグアンドプレイや、ＬＡＮ等のネットワークインタフェースを使用してプラグアンドプレイを実現する技術も提案されている。その一例としては、ＷＳ−ＤｉｓｃｏｖｅｒｙやＷＳ−ＭｅｔａｄａｔａＥｘｃｈａｎｇｅと呼ばれるＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）ベースのＷｅｂサービスプロトコルが挙げられる。
【００１６】
情報処理装置は、これらの技術を使用することにより、ネットワーク上のデバイスの存在を検知し、デバイスからデバイス情報を取得することが可能となる。これにより、ローカルインタフェースの場合と同様なプラグアンドプレイにより、ネットワーク上のデバイスのドライバインストールを行うことができる。
【００１７】
また、デバイスに装着されたオプション装置によりデバイスＩＤを変化させ、情報処理装置上でのプリンタドライバ内で表示を変更する技術も既に提案されている（特許文献１）。
【００１８】
更に、プリンタデバイスの機能を拡張する拡張装置の変更に応じて異なるデバイスＩＤを情報処理装置に通知することで、情報処理装置がそのデバイスＩＤに応じたデバイスドライバを選択する技術も提案されている（特許文献２）。
【００１９】
一方、ユーザのネットワーク環境は小規模なものから大規模なものまで多様な構成が想定される。例えば、情報処理装置や画像形成装置がネットワーク上に１台〜数台で構成される比較的小規模な環境においては、図２Ａのように、各情報処理装置が直接画像形成装置に接続し、情報取得や印刷指示を行う。このような環境は、特に、ネットワーク管理者もいないＳＯＨＯのような利用シーンが主であり、ユーザにとっては、画像形成装置を使用するにあたり利用の簡易さが重要となる。
【００２０】
しかし、情報処理装置や画像形成装置がネットワーク上に数十台〜数百台以上で構成される大規模な環境になると、負荷分散や管理効率向上のために、図２Ｂのように各装置を論理的な領域（ドメイン）に分割して管理することが一般的である。また、各ドメインには、通常、サーバ装置が構成される。
【００２１】
ここで、サーバ装置は、各ユーザ向けに様々なサービスを提供する装置の総称である。具体的なサービスの例としては、ドメインを管理するドメインコントローラ、印刷ジョブを一度スプールし画像形成装置に送信するプリントサービス、ユーザに対してプリンタを仮想的に見せるプロキシサービス等があげられる。
【００２２】
例えば、マイクロソフト社からは、このような大規模環境向けに、Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙという統合管理技術が既に公開され広く使用されている。このような大規模環境においては、管理者を置くことが普通であり、ユーザは管理者の設定を使用することになる。そのため、管理者にとっては、画像形成装置の複雑な機能を使いこなし、各機能を適切にユーザに提供することが求められる。
【００２３】
従って、プラグアンドプレイのような印刷環境構築に注目した場合においても、ネットワーク環境の違いにより、ユーザまたは管理者が求める機能が変わってくるのである。
【特許文献１】特開２００４−２３０８２３号公報
【特許文献２】特開平９−２６７５３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、上述した従来技術では、プリンタドライバのプラグアンドプレイを多様なユーザ環境に応じて柔軟に適用することができない。ここで、複数のＰＤＬを有する画像形成装置を設置する際のユーザ環境としては、以下のようなものが想定される。まず、小規模環境においては１個だけプリンタドライバを情報処理装置にインストールさせて、ユーザがすぐに印刷可能となるようにする。一方、大規模環境においては、サーバ装置上に複数のＰＤＬ用のプリンタドライバをインストールさせ、ユーザが自由に選択できるようにする。この場合、管理者が個別に画像形成装置に、各環境に応じて、動作モードを設定する必要があり、不便であった。また、ネットワーク上の画像形成装置の検索において、環境の規模に応じて、マルチキャスト使用／不使用を自動的に切り替えることもできなかった。
【００２５】
本発明は上記の課題を解決するためのものである。その目的は、ネットワーク環境に応じて、情報処理装置に適切なデバイス情報を提示することで、ユーザが所望するドライバをインストールさせ、かつユーザの利便性を向上させることができる画像形成装置及びその制御方法、プログラムを提供することにある。
【課題を解決するための手段】
【００２６】
上記の目的を達成するための本発明による画像形成装置は以下の構成を備える。即ち、
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置であって、
複数の画像形成手段と、
当該画像形成装置の動作モードを判定する判定手段と、
前記情報処理装置から送信される情報要求を受信する受信手段と、
前記受信手段で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信手段と
を備える。
【００２７】
また、好ましくは、前記判定手段は、ネットワーク情報を取得する取得手段を備え、
前記判定手段は、前記取得手段で取得したネットワーク情報に基づいて、前記動作モードを、所定の情報処理装置を介在しない第１動作モード、あるいは所定の情報処理装置を介在する第２動作モードのどちらかに判定する。
【００２８】
また、好ましくは、前記動作モードが前記第１動作モードである場合、前記情報処理装置からのマルチキャストによる検索要求を受信し、前記動作モードが前記第２動作モードである場合、前記情報処理装置からのユニキャストによる検索要求を受信する検索要求受信手段を更に備える。
【００２９】
また、好ましくは、前記送信手段は、
前記動作モードが前記第１動作モードである場合、前記複数の画像形成手段の内、指定された画像形成手段の識別子を含む識別情報を送信し、
前記動作モードが前記第２動作モードである場合、前記複数の画像形成手段それぞれの識別子を含む識別情報を送信する。
【００３０】
また、好ましくは、前記取得手段は、前記ネットワーク上にマルチキャストによる検索要求を発行し、その検索要求に対する応答の有無に基づいて、前記ネットワーク情報を取得する。
【００３１】
また、好ましくは、前記取得手段は、ＤＮＳ設定情報の有無、及びＤＮＳ設定がされている場合にはＤＮＳサーバに検索要求を発行し、その検索要求に対する応答の解析結果に基づいて、前記ネットワーク情報を取得する。
【００３２】
また、好ましくは、前記複数の画像形成手段から優先する画像形成手段を指定する指定手段を更に備える。
【００３３】
また、好ましくは、前記情報処理装置からのマルチキャストによる検索要求を受信する検索要求受信手段と、
前記検索要求受信手段で受信した検索要求を送信した情報処理装置を示す識別情報を記憶する記憶手段を更に備え、
前記送信手段は、前記判定手段で判定された動作モードに基づいて、前記記憶手段に記憶される識別情報と、前記受信手段で受信した情報要求を送信した情報処理装置の識別情報とを比較し、その比較結果に基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する。
【００３４】
また、好ましくは、前記情報処理装置からのネットワーク離脱通知を検知した場合、前記第２動作モードから前記第１動作モードに移行し、前記情報処理装置からのネットワーク参加通知を検知した場合、前記第１動作モードから前記第２動作モードに移行する移行手段を更に備える。
【００３５】
上記の目的を達成するための本発明による画像形成システムは以下の構成を備える。即ち、
ネットワークを介して画像形成装置と情報処理装置とが相互に接続されて構成される画像形成システムであって、
前記画像形成装置は、
複数の画像形成手段と、
当該画像形成装置の動作モードを判定する判定手段と、
前記情報処理装置から送信される情報要求を受信する第１受信手段と、
前記第１受信手段で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信手段とを備え、
前記情報処理装置は、
前記識別情報を前記画像形成装置から受信する第２受信手段と、
前記第２受信手段で受信した識別情報に基づいて、前記画像形成装置を使用するためのためのデバイスドライバをインストールするインストール手段と
を備える。
【００３６】
上記の目的を達成するための本発明による画像形成装置の制御方法は以下の構成を備える。即ち、
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置の制御方法であって、
前記画像形成装置の動作モードを判定する判定工程と、
前記情報処理装置から送信される情報要求を受信する受信工程と、
前記受信工程で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記画像形成装置が備える複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信工程と
を備える。
【００３７】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
ネットワークに接続され、前記ネットワーク上の情報処理装置と通信可能な画像形成装置の制御をコンピュータに実行させるためのプログラムであって、
前記画像形成装置の動作モードを判定する判定工程と、
前記情報処理装置から送信される情報要求を受信する受信工程と、
前記受信工程で受信した情報要求に対し、前記判定手段で判定された動作モードに基づいて、前記画像形成装置が備える複数の画像形成手段の少なくとも１つの識別子を含む識別情報を送信する送信工程と
をコンピュータに実行させることを特徴とする。
【発明の効果】
【００３８】
本発明によれば、ネットワーク環境に応じて、情報処理装置に適切なデバイス情報を提示することで、ユーザが所望するドライバをインストールさせ、かつユーザの利便性を向上させることができる画像形成装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００４０】
＜実施形態１＞
図３は本発明の実施形態１の画像形成システムの構築例を示す図である。
【００４１】
図３に示す画像形成システムは、デバイス３０１、及びホストコンピュータ３０２〜３０４がネットワーク３０５を介して相互に接続された構成となっている。
【００４２】
大規模環境においては、ホストコンピュータは、ドメインコントローラ／プリントサービス／プロキシサービス等の各種サーバ機能を有し、また、その他のホストコンピュータにサービスを提供することも可能である。尚、本発明においては、これらサーバ機能を有するホストコンピュータを総称してサーバ装置と呼ぶ。
【００４３】
尚、ネットワーク３０５は、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかにより実現される通信ネットワークである。または、これらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
【００４４】
次に、デバイス３０１のハードウェア構成について、図４を用いて説明する。
【００４５】
図４は本発明の実施形態１のデバイスのハードウェア構成を示すブロック図である。
【００４６】
尚、ここでは、デバイスとして、画像形成装置である、レーザビーム方式のプリンタ４００を例に挙げて説明する。
【００４７】
図４のプリンタ４００において、ＣＰＵ４０１は、ＲＯＭ４０３のプログラム用ＲＯＭ４０３ｂに記憶された制御プログラムに基づいて、システムバス４０４に接続される各種のデバイスとのアクセスを総括的に制御する。また、ＣＰＵ４０１は、印刷インタフェース４０７を介して接続される印刷部（プリンタエンジン）４１０に出力情報としての画像信号を出力する。
【００４８】
尚、プログラム用ＲＯＭ４０３ｂに記憶される制御プログラムには、後述する各種フローチャートを実現するためのプログラムが含まれており、ＣＰＵ４０１は、これらのプログラムを実行することで、フローチャートで示される各種処理を実行する。また、プログラム用ＲＯＭ４０３ｂに記憶される制御プログラムには、入力されたＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）からプリンタエンジン４１０が印刷可能なビットマップデータに変換するプログラムも含まれる。そのプログラムをＣＰＵ４０１が実行することでにより画像形成手段として機能する。
【００４９】
また、このＲＯＭ４０３のプログラム用ＲＯＭ４０３ｂには、ＣＰＵ４０１が実行可能な制御プログラム等を記憶する。さらに、ＲＯＭ４０３のフォント用ＲＯＭ４０３ａには、出力情報を生成する際に使用するフォントデータ（アウトラインフォントデータを含む）等を記憶する。ＲＯＭ４０３のデータ用ＲＯＭ４０３ｃには、ホストコンピュータ（例えば、ホストコンピュータ３０２）上で利用されるデータを記憶している。
【００５０】
ＣＰＵ４０１は、ネットワークコントローラ部４０６を介して、ネットワーク３０５上のホストコンピュータとの通信処理が可能となっている。ＲＡＭ４０２は、主としてＣＰＵ４０１の主メモリ、ワークエリア等として機能し、増設ポート（不図示）に接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。尚、ＲＡＭ４０２は、出力情報展開領域、環境データ格納領域等に用いられる。
【００５１】
ハードディスク（ＨＤ）、ＩＣカード等の外部記憶装置４１１は、ディスクコントローラ（ＤＫＣ）４０８によりアクセスが制御される。外部記憶装置４１１は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。
【００５２】
また、操作パネル４０５は、例えば、タッチパネル、各種キー、ボタン等から構成され、タッチパネル上に表示されるソフトウェアキーから各種情報をユーザが入力することが可能である。不揮発性メモリ４０９は、操作パネル４０５から入力されるプリンタモード設定情報等の各種情報を記憶している。
【００５３】
また、プリンタ４００には、さらにオプションで、ステープルやソート機能を行うフィニッシャや、両面印刷機能を実現するための両面印刷装置等の各種拡張装置を装着することが可能となっており、それらの動作はＣＰＵ４０１から制御される。
【００５４】
ＰＤＬ拡張部４１２は、１個以上のＰＤＬ装置（ＰＤＬボード）４１３を接続し、ＣＰＵ４０１からＰＤＬ装置４１３を制御可能とする。ＰＤＬ装置４１３は、ホストコンピュータから受信した印刷データ（ＰＤＬ）を解釈し、プリンタエンジン４１０が印刷可能なビットマップデータに変換する機能を有する画像形成部（画像形成手段）である。このＰＤＬ装置４１３は、標準として１個以上接続されているが、後から追加することも可能である。また、プラグアンドプレイで使用されるＩＥＥＥ１２８４規定のデバイス情報は、このＰＤＬ装置４１３が保持している。
【００５５】
尚、以下の実施形態１においては、ことわりのない限りデバイスは、ＰＤＬ１〜ＰＤＬ３の３個のＰＤＬ装置を備えているものとする。
【００５６】
また、ＰＤＬ装置の拡張は、専用のＰＤＬ装置を搭載する拡張ボードを物理的にプリンタ４００に追加する構成であっても良い。あるいは、ＰＤＬ装置がプログラムによって実現される場合には、プログラム用ＲＯＭ４０３ｂに対応するプログラムを追加する構成であっても良い。更には、予め複数種類のＰＤＬ装置それぞれに対応するプログラムをプログラム用ＲＯＭ４０３ｂに記憶しておき、それらから必要なＰＤＬ装置を、ユーザ操作によって入力されたライセンスキーによって有効にすることで追加する構成であっても良い。
【００５７】
また、ＰＤＬの一例としては、ＬＩＰＳ、ＰｏｓｔＳｃｒｉｐｔ、ＰＣＬ等がある。
【００５８】
次に、ホストコンピュータ３０２や３０３の詳細構成について、図５を用いて説明する。
【００５９】
図５は本発明の実施形態１のホストコンピュータの詳細構成を示すブロック図である。
【００６０】
ホストコンピュータ３０２〜３０４に対応する情報処理装置５１０において、ＨＤＤ５０１は大容量のハードディスクドライブである。このＨＤＤ５０１は、予めＲＡＭ５０９にロードするプログラムモジュールや、ＩＮＦファイルを含むドライバセット５０５を記憶しておくことができる。ＣＤ／ＤＶＤ−ＲＯＭ／ＲＡＭドライブ等から構成される外部記憶装置５０２も同様の機能を有する。
【００６１】
ＲＡＭ５０９上で実現される各プログラムモジュール群には、ポート管理部５０７、プラグアンドプレイ部５０８、プリンタクラスインストーラ部５１１、ドライバライブラリ５０６上で管理される１つ以上のプリンタドライバセット５０５より構成されている。ＲＡＭ５０９は、ＨＤＤ５０１からこれらのプログラムモジュールを適宜読み出し実行する。
【００６２】
ＣＰＵ５０４は、プリンタクラスインストーラ部５１１、プラグアンドプレイ部５０８、ポート管理部５０７及びドライバライブラリ５０６を統括制御し、各処理をＨＤＤ５０１からＲＡＭ５０９に読み出して実行する。
【００６３】
バス５０３は、情報処理装置５１０の各種構成要素（ＣＰＵ５０４、ＲＡＭ５０９、ＨＤＤ５０１、外部記憶装置５０２）を相互に接続するバスである。
【００６４】
ポート管理部５０７は、デバイス４００との通信のために、ネットワーク３０５に接続された情報処理装置５１０側のインタフェースの制御を行う。プリンタドライバの自動インストール時には、ＩＥＥＥ１２８４規定のデバイス情報を受信し、プラグアンドプレイ部５０８に受け渡す。
【００６５】
プラグアンドプレイ部５０８は、プラグアンドプレイに関してデバイスとの情報制御を行うモジュールである。このプラグアンドプレイ部５０８は、ポート管理部５０７より受信したデバイス情報中のＭＦＧタグとＭＤＬタグの値からデバイスＩＤを生成する。そして、生成したデバイスＩＤをプリンタクラスインストーラ部５１１に受け渡す。
【００６６】
プリンタクラスインストーラ部５１１は、プリンタドライバのインストールを担当するモジュールである。プリンタクラスインストーラ部５１１は、プラグアンドプレイ部５０８より受信したデバイスＩＤを元に、１つ以上あるプリンタドライバセット５０５より、そのデバイスＩＤに対応するプリンタドライバセットを検索する。該当のプリンタドライバセットを検索した場合、そのプリンタドライバをインストールして、必要なポートに割り当てる。
【００６７】
プリンタドライバセット５０５は、プリンタドライバに対する、ＤＬＬ等の実行モジュール群５０５ｂ、リソース５０５ｃと、インストールのためにそれらの特徴を記述するＩＮＦファイル５０５ａとで構成される。
【００６８】
次に、デバイス４００が起動する際の初期化処理について、図６を用いて説明する。
【００６９】
図６は本発明の実施形態１のデバイスが起動する際の初期化処理を示すフローチャートである。
【００７０】
デバイス４００は起動すると、ステップＳ６０１で、自装置に装着されているＰＤＬ装置を検出する。次に、ステップＳ６０２で、自身が提供可能なサービスを示す内部的なサービス一覧情報を生成し、ＲＡＭ４０２に保存する。サービス一覧情報の一例は、図７のようになる。サービス一覧情報では、デバイス４００で機能するＰＤＬ装置及びそのサービスを管理し、各サービスに対しては、固有のＩＤ（サービスＩＤ）である識別子が付与されている。つまり、デバイス４００は、サービス一覧情報において、各ＰＤＬ装置を１個のＰｒｉｎｔＳｅｒｖｉｃｅとして管理し、それぞれのサービスに対してサービスＩＤを割り当てている。
【００７１】
次に、ステップＳ６０３で、後述の方法により、デバイスの動作モードを判定する。
【００７２】
動作モードがＤｉｒｅｃｔ（ダイレクト）モード（第１動作モード）である場合、ステップＳ６０５に進み、デバイス検索要求を受信するためのポートをオープンする。ここでは、ＴＣＰプロトコルとＵＤＰプロトコル両方を受信するＴＣＰ／ＵＤＰ受信ポートをオープンする。その後、ステップＳ６０６で、デバイスの存在通知をマルチキャストで送信する。
【００７３】
一方、動作モードがＰｒｏｘｙ（プロキシ）モード（第２動作モード）である場合、ステップＳ６０４に進み、デバイス検索要求を受信するためのポートをオープンする。ここでは、ＴＣＰプロトコルを受信するＴＣＰ受信ポートのみオープンするものとする。ＴＣＰプロトコルは、コネクション志向のプロトコルである。そのため、情報処理装置からのマルチキャストによるデバイス検索要求には応答せず、ＩＰアドレスを指定したユニキャストによるデバイス検索要求にのみ応答する。
【００７４】
次に、ステップＳ６０３における動作モード判定処理の一例について、図８を用いて説明する。
【００７５】
図８は本発明の実施形態１のステップＳ６０３における動作モード判定処理の一例を示すフローチャートである。
【００７６】
図８では、デバイス４００が、マルチキャストを使用してプロキシサービスを有するサーバ装置を検索するためのプロキシ検索要求を発行して、その応答の有無を判定することにより、自身の動作モードを判定する。
【００７７】
デバイス４００は、ステップＳ８０１で、プロキシ検索要求をマルチキャストで送信する。その後、ステップＳ８０２で、所定期間（例えば、５秒）に応答があるか否かを判定する。応答がある場合（ステップＳ８０２でＹＥＳ）、ステップＳ８０３に進み、Ｐｒｏｘｙモードと判定し、その判定結果をＲＡＭ４０２に保持する。一方、応答がない場合（ステップＳ８０２でＮＯ）、ステップＳ８０４に進み、Ｄｉｒｅｃｔモードと判定し、その判定結果をＲＡＭ４０２に保持する。
【００７８】
以上のように、図８では、プロキシ検索要求に対する応答の有無によって、プロキシサービス等のサーバ機能を有するサーバ装置の有無を判定することができる。そして、この判定結果は、デバイスが接続するネットワーク環境に関するネットワーク情報として利用することができる。
【００７９】
つまり、プロキシ検索要求に対する応答がある場合は、サーバ装置が存在するネットワーク環境であることがネットワーク情報として取得することができる。そして、この場合は、デバイスの動作モードは、Ｐｒｏｘｙモードと判定されることになる。一方、プロキシ検索要求に対する応答がない場合は、サーバ装置が存在しないネットワーク環境である、つまり、ネットワーク上のホストコンピュータがすべてクライアントであるネットワーク環境であることがネットワーク情報として取得することができる。そして、この場合は、デバイスの動作モードは、Ｄｉｒｅｃｔモードと判定されることになる。
【００８０】
次に、ステップＳ６０３における動作モード判定処理の別例について、図９を用いて説明する。
【００８１】
図９は本発明の実施形態１のステップＳ６０３における動作モード判定処理の一例を示すフローチャートである。
【００８２】
図９では、デバイス４００が、ＤＮＳ（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｙｓｔｅｍ）を使用して、ドメインコントローラを有するサーバ装置を検索することにより、自身の動作モードを判定する。
【００８３】
デバイス４００は、ステップＳ９００で、ＤＮＳ設定の有無を判定する。ＤＮＳ設定がない場合（ステップＳ９００でＮＯ）、ステップＳ９０４に進み、Ｄｉｒｅｃｔモードと判定し、その判定結果をＲＡＭ４０２に保持する。一方、ＤＮＳ設定がある場合（ステップＳ９００でＹＥＳ）、ステップＳ９０１に進む。
【００８４】
ステップＳ９０１で、あらかじめ不揮発性メモリ４０９に設定してあるＤＮＳサーバのアドレスに対してドメインコントローラ検索要求を送信する。その後、ステップＳ９０２で、ＤＮＳサーバから応答を受信し、ドメインコントローラのアドレスを取得できたか否かを判定する。アドレスが取得できた場合（ステップＳ９０２でＹＥＳ）、ステップＳ９０３に進み、Ｐｒｏｘｙモードと判定し、その判定結果をＲＡＭ４０２に保持する。一方、アドレスが取得できない場合（ステップＳ９０２でＮＯ）、ステップＳ９０４に進み、Ｄｉｒｅｃｔモードと判定し、その判定結果をＲＡＭ４０２に保持する。
【００８５】
以上のように、図９では、デバイス上のＤＮＳ設定の有無、および、ＤＮＳ設定がある場合にはＤＮＳサーバにドメインコントローラ検索要求を送信し、ＤＮＳサーバからの応答を解析することによって、プロキシサービス等のサーバ機能を有するサーバ装置の有無を判定することができる。そして、この判定結果は、デバイスが接続するネットワーク環境に関するネットワーク情報として利用することができる。
【００８６】
つまり、ＤＮＳ設定がある場合は、サーバ装置が存在するネットワーク環境であることがネットワーク情報として取得することができる。そして、この場合は、デバイスの動作モードは、Ｐｒｏｘｙモードと判定されることになる。一方、ＤＮＳ設定がない場合は、サーバ装置が存在しないネットワーク環境である、つまり、ネットワーク上のホストコンピュータがすべてクライアントであるネットワーク環境であることがネットワーク情報として取得することができる。そして、この場合は、デバイスの動作モードは、Ｄｉｒｅｃｔモードと判定されることになる。
【００８７】
尚、ドメインコントローラ検索要求の際には、ＲＦＣ２０５２で公開されているＤＮＳにおけるＳＲＶレコードを使用する。ドメインコントローラは、ＤＮＳサーバに対し、所定の名前のＳＲＶレコードを登録しているため、デバイスはその名前をキーとして検索要求を送信することができる。
【００８８】
また、これに限定されず、動作モードを管理者があらかじめデバイスに設定しておき、その設定情報を参照して、動作モードを判定するようにしてもよい。
【００８９】
次に、本発明の前提となるドライバインストール方式について説明する。
【００９０】
図３の画像形成システムの構築例において、サーバ装置が存在しない小規模環境である場合、ホストコンピュータはすべてクライアントとなる。各クライアントはそれぞれマルチキャストでデバイスを検索し、発見されたデバイスからデバイス情報を取得することにより自動的にドライバをインストールする。
【００９１】
つまり、このような小規模環境の場合、画像形成装置は、マルチキャストによるデバイス検索要求を受信するために、Ｄｉｒｅｃｔモード（第１動作モード）で動作する。このＤｉｒｅｃｔモードは、換言すれば、サーバ装置（所定の情報処理装置）を介在しない動作モードとなる。
【００９２】
一方、サーバ装置が存在する大規模環境である場合、サーバ装置以外のホストコンピュータがクライアントとなる。管理者は、ネットワーク上の各デバイスのＩＰアドレスを管理しており、サーバ装置上でデバイスのＩＰアドレスを入力することにより、ユニキャストでデバイスを検索する。
【００９３】
その後、検索されたデバイスのデバイス情報を取得し、サーバ装置上にデバイスドライバをインストールする。サーバ装置上にインストールされたデバイスドライバはネットワーク上に公開されるため、クライアントはサーバ装置に接続し、所望のデバイス（プリンタ）を選択するだけでこのサーバ装置経由での印刷が可能となる。
【００９４】
つまり、このような大規模環境の場合、画像形成装置は、ユニキャストによるデバイス検索要求を受信するために、Ｐｒｏｘｙモード（第２動作モード）で動作する。このＰｒｏｘｙモードは、換言すれば、サーバ装置（所定の情報処理装置）を介在する動作モードとなる。
【００９５】
次に、情報処理装置（ホストコンピュータ）５１０とデバイス（プリンタ）４００間で実現されるプリンタドライバインストールのシーケンスについて、図１０を用いて説明する。
【００９６】
図１０は本発明の実施形態１のプリンタドライバインストールのシーケンスを示す図である。
【００９７】
ステップＳ１００１で、情報処理装置５１０は、ネットワーク上にデバイス検索要求を送信する。上述したように、デバイス検索要求は、情報処理装置がクライアントである場合はマルチキャストで送信され、サーバ装置である場合はユニキャストで送信される。
【００９８】
デバイス検索要求は、例えば、図１１に示すようなＸＭＬ形式で記述される情報である。ここで、図１１中の＜Ｔｙｐｅｓ＞要素１１０１には、検索対象のデバイスのタイプを記述する。例えば、プリントサービス／スキャンサービス等の機能種別を記述したり、ＰＤＬ１を有するプリントサービス等のＰＤＬ装置種別を記述することが可能である。
【００９９】
このデバイス検索要求は、マルチキャストである場合は、マルチキャストが到達する範囲に存在するすべてのデバイスが受信する。また、ユニキャストである場合は、指定されたデバイスが受信する。そして、どちらの場合も、デバイス検索要求を受信したデバイスは、後述の図１２のフローチャートに従い、そのデバイス検索要求で示される検索条件に合致しているか否かを判定する。
【０１００】
デバイス検索要求がマルチキャストである場合で、デバイス４００において、検索条件に合致していると判定された場合、デバイス４００は、ステップＳ１００２で、デバイス検索要求に対する応答を情報処理装置５１０に送信する。一方、検索条件に合致していない場合、デバイス検索要求に対する応答は返さない。
【０１０１】
また、デバイス検索要求がユニキャストである場合で、デバイス４００において、検索条件に合致していると判定された場合、デバイス４００は、ステップＳ１００２で、デバイス検索要求に対する応答を情報処理装置５１０に送信する。一方、検索条件に合致していない場合、エラーを情報処理装置５１０に送信する。
【０１０２】
次に、情報処理装置５１０は、ステップＳ１００３で、検索された（応答した）デバイスに対してデバイス情報要求を送信する。尚、デバイス４００からネットワーク参加通知を発行する場合は、ステップＳ１００１とステップＳ１００２の処理の代わりにデバイス４００がネットワーク参加通知を情報処理装置５１０に行う。次に、ステップＳ１００３で、情報処理装置５１０は、デバイス４００からのネットワーク参加通知に基づき、デバイスに対してデバイス情報要求を送信する。
【０１０３】
デバイス情報要求を受信したデバイス４００は、ステップＳ１００４で、後述する方法でデバイス情報を生成する。そして、生成したデバイス情報を、ステップＳ１００５で、情報処理装置５１０に送信する。
【０１０４】
このデバイス情報（識別情報）は、例えば、図１３に示すようなＸＭＬ形式で記述される情報であり、デバイスが有するサービスのサービスリストを含んでいる。また、図１３中の＜ＳｅｒｖｉｃｅＩＤ＞要素１３０１の値は、各サービスを識別するための固有のＩＤ（サービスＩＤ）、つまり、識別子であり、後で必要なサービスを特定する際に使用される。
【０１０５】
次に、情報処理装置５１０は、ステップＳ１００６で、受信したデバイス情報から、必要なサービスＩＤを指定してサービス情報要求を送信する。サービス情報要求を受信したデバイス４００は、ステップＳ１００７で、指定されたサービスＩＤに対応するＰＤＬ装置からデバイス情報の値を取得し、その値を含むサービス情報を情報処理装置５１０に送信する。このサービス情報は、例えば、図１４に示すようなＸＭＬ形式で記述される情報である。
【０１０６】
情報処理装置５１０は、ステップＳ１００８で、デバイス４００から受信したサービス情報を参照し、対応するプリンタドライバをインストールする。尚、ステップＳ１００５で、デバイス４００が複数のサービスリストを含むデバイス情報を情報処理装置５１０に送信した場合、ステップＳ１００６〜ステップＳ１００８が繰り返される。そして、この処理によって、リストされたサービスの数だけプリンタドライバがインストールされることになる。
【０１０７】
次に、図１０のシーケンスにおいて、デバイス検索要求を受信したデバイス４００が、それで示される検索条件に合致しているか否かを判定する判定処理について、図１２を用いて説明する。
【０１０８】
図１２は本発明の実施形態１の判定処理を示すフローチャートである。
【０１０９】
デバイス４００が、ステップＳ１２０１で、デバイス検索要求を受信する。ステップＳ１２０２で、検索条件として、デバイス検索要求中の＜Ｔｙｐｅｓ＞タグによる、タイプ指定の有無を判定する。タイプ指定がない場合（ステップＳ１２０２でＮＯ）、受信したデバイス検索要求は全デバイス検索を意味するため、ステップＳ１２０３に進み、検索条件に合致していると判定する。
【０１１０】
一方、タイプ指定がある場合（ステップＳ１２０２でＹＥＳ）、ステップＳ１２０４に進み、指定されたタイプがデバイス自身のタイプに含まれるか否かを判定する。デバイス自身のタイプに含まれる場合（ステップＳ１２０４でＹＥＳ）、ステップＳ１２０３に進む。一方、デバイス自身のタイプに含まれない場合（ステップＳ１２０４でＮＯ）、ステップＳ１２０５に進み、検索条件に合致していないと判定する。
【０１１１】
尚、ステップＳ１２０４での判定に使用するデバイス自身のタイプとは、図７に示したサービス一覧情報で示される、デバイス４００に装着されているＰＤＬ装置及びそのサービスである。
【０１１２】
次に、図１０のシーケンスのステップＳ１００４で、デバイスがデバイス情報に含めるサービスリストを生成する生成処理について、図１５を用いて説明する。
【０１１３】
図１５は本発明の実施形態１の生成処理を示すフローチャートである。
【０１１４】
まず、ステップＳ１４０１で、ＲＡＭ４０２に保持されている動作モードの値を取得する。次に、ステップＳ１４０２で、取得した値に基づいて、自身の動作モードを判定する。動作モードがＤｉｒｅｃｔモードである場合、ステップＳ１４０３に進み、デバイスが有するＰＤＬ装置の内、優先的に使用させる優先ＰＤＬ装置を取得する。
【０１１５】
例えば、図１６に示す、デバイス４００の操作パネル４０５上で表示される優先ＰＤＬ装置設定画面を用いて、リストされているＰＤＬ装置（ここでは、ＰＤＬ１〜ＰＤＬ３）から優先するＰＤＬ装置を設定することが可能となる。この設定された値は、不揮発性メモリ４０９に保存される。図１６の例においては、初期状態としての優先ＰＤＬ装置には、ＰＤＬ１が選択されている。また、ユーザは、優先ＰＤＬ装置を適宜変更することが可能であり、変更した上で、ＯＫボタン１６０１を操作することで、設定を確定することが可能である。また、オプションＰＤＬ装置（ＰＤＬボード）が画像形成装置に装着されている場合、オプションＰＤＬ装置（ＰＤＬボード）を画像形成装置の内蔵ＰＤＬ装置より優先して設定することも可能である。
【０１１６】
次に、ステップＳ１４０４で、デバイス情報中の＜ＳｅｒｖｉｃｅＩＤ＞の値として、ステップＳ１４０３で取得した優先ＰＤＬ装置に割り当てられたサービスＩＤを設定する。その結果、デバイス情報中のサービスリストにはサービスは１個だけが設定される。
【０１１７】
一方、動作モードがＰｒｏｘｙモードである場合、ステップＳ１４０５に進み、サービスの数は図７のサービス一覧情報で示されるＰＤＬ装置の数と同じとする。そこで、デバイス情報中には、各サービスの＜ＳｅｒｖｉｃｅＩＤ＞の値として、デバイスが有するそれぞれのＰＤＬ装置に割り当てられたサービスＩＤを設定する。
【０１１８】
以上の処理によって生成されるデバイス情報の例を図１７及び図１８に示す。ここで、図１７はＤｉｒｅｃｔモードの場合の例、図１８はＰｒｏｘｙモードの場合の例である。
【０１１９】
以上説明したように、実施形態１によれば、画像形成装置がネットワーク環境に応じて情報処理装置に提示するデバイス情報を適宜生成することにより、情報処理装置上で適切なプリンタドライバをインストールさせることが可能となる。これにより、ユーザ及び管理者の利便性を向上させることができる。
【０１２０】
また、画像形成装置がネットワーク環境に応じて、マルチキャスト処理の使用／不使用を切り替えることにより、ネットワークトラフィックの増大を防ぎ、ネットワーク使用効率を向上させることができる。
【０１２１】
＜実施形態２＞
実施形態２では、Ｐｒｏｘｙモードの場合でも、マルチキャストによるデバイス検索要求をデバイスが受け付け、その際、送信元の情報処理装置を示すホスト情報（識別情報）を記憶する。そして、デバイス情報要求を画像形成装置が受信した際には、その中に示されるホスト情報と、装置内に記憶しているホスト情報を比較し、その比較結果に基づいて、デバイス情報を生成する構成について説明する。
【０１２２】
特に、実施形態２の構成によれば、サーバ装置が存在する大規模環境であるがサーバ装置を使用しない情報処理装置に対しては、簡易にプリンタドライバを情報処理装置でインストールさせて、使用させることが可能となる。
【０１２３】
図１９は本発明の実施形態２のデバイスが起動する際の初期化処理を示すフローチャートである。
【０１２４】
尚、図１９の処理は、実施形態１の図６の処理順を変更し、かつステップＳ６０４の処理を省略した構成となっている。
【０１２５】
つまり、図１９では、ステップＳ６０３の判定の前に、動作モードがＰｒｏｘｙモード、Ｄｉｒｅｃｔモードに関わらず、ステップＳ６０５で、デバイス検索要求を受信するためのポートとして、ＴＣＰ／ＵＤＰ受信ポートをオープンする。
【０１２６】
これにより、Ｐｒｏｘｙモードでも、マルチキャストによるデバイス検索要求をデバイス４００が受信可能となる。
【０１２７】
その後、ステップＳ６０３の判定の結果、動作モードがＤｉｒｅｃｔモードである場合、ステップＳ６０６で、デバイスの存在通知をマルチキャストで送信する。
【０１２８】
次に、図１０のシーケンスにおいて、デバイス検索要求を受信したデバイス４００が、それで示される検索条件に合致しているか否かを判定する判定処理について、図２０を用いて説明する。
【０１２９】
図２０は本発明の実施形態２の判定処理を示すフローチャートである。
【０１３０】
尚、図２０において、実施形態１の図１２と同一のステップについては、同一のステップ番号を付加して、その詳細については省略する。
【０１３１】
ステップＳ１２０２でタイプ指定がない場合、あるいはステップＳ１２０４でタイプ指定はあるが、その指定タイプをデバイスが有していない場合、ステップＳ１９０３で、ＲＡＭ４０２に保持してあるデバイスの値を取得して、自身の動作モードを判定する。
【０１３２】
動作モードがＤｉｒｅｃｔモードである場合、ステップＳ１２０３に進み、デバイスは検索条件に合致していると判定する。
【０１３３】
一方、動作モードがＰｒｏｘｙモードである場合、ステップＳ１９０５に進み、デバイス検索要求の受信ポートがＴＣＰポート（ユニキャスト）であるのかＵＤＰ（マルチキャスト）であるのかを判定する。
【０１３４】
受信ポートがＴＣＰポートである場合、ステップＳ１２０３に進む。一方、受信ポートがＵＤＰポートである場合、ステップＳ１９０６に進み、デバイス検索要求を送信した情報処理装置５１０のホスト情報であるＩＰアドレスを取得する。その後、ステップＳ１９０７で、取得したＩＰアドレスを検索履歴情報としてＲＡＭ４０２に保存する。その後、ステップＳ１２０３に進む。
【０１３５】
ここで、検索履歴情報の一例について、図２１を用いて説明する。
【０１３６】
図２１は本発明の実施形態２の検索履歴情報の一例を示す図である。
【０１３７】
図２１に示す検索履歴情報は、デバイス検索要求を発行した情報処理装置（ホストコンピュータ）のホスト情報（ＩＰアドレス）を管理している。特に、図１２１では、ＩＰアドレスが「１９２．１６８．０．２」及び「１９２．１６８．０．３」である情報処理装置からからマルチキャストによるデバイス検索要求を受信したことを示している。
【０１３８】
次に、図１０のシーケンスのステップＳ１００４において、デバイスがデバイス情報に含めるサービスリストを生成する生成処理について、図２２を用いて説明する。
【０１３９】
図２２は本発明の実施形態２の生成処理を示すフローチャートである。
【０１４０】
尚、図２２において、実施形態１の図１５と同一のステップについては、同一のステップ番号を付加して、その詳細については省略する。
【０１４１】
ステップＳ１４０２で、動作モードがＰｒｏｘｙモードである場合、ステップＳ２１０３に進み、受信したデバイス情報要求から、送信元の情報処理装置５１０のＩＰアドレスを取得する。
【０１４２】
次に、ステップＳ２１０４で、ステップＳ２１０３で取得したＩＰアドレスが、ＲＡＭ４０２に保存している検索履歴情報に含まれているか否かを判定する。検索履歴情報に含まれている場合（ステップＳ２１０４でＹＥＳ）、ステップＳ２１０５に進み、検索履歴情報で保持している情報処理装置のＩＰアドレスに対応するＰＤＬ装置を優先ＰＤＬ装置として設定する。その後、ステップＳ１４０４に進む。
【０１４３】
一方、検索履歴情報に含まれていない場合（ステップＳ２１０４でＮＯ）、ステップＳ１４０５に進む。
【０１４４】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、Ｐｒｏｘｙモードの場合でも、サーバ装置を使用しない情報処理装置に対しては、簡易にプリンタドライバを情報処理装置でインストールさせて、使用させることが可能となる。
【０１４５】
＜実施形態３＞
上記実施形態１や２では、デバイスは、動作モードを判定して、その動作モードに基づいて、デバイス情報を生成する構成としているが、これに限定されない。
【０１４６】
例えば、図２３に示すように、デバイスとサーバ装置間でのやり取りに応じて、適応的に動作モードを移行するようにしても良い。つまり、デバイスがＰｒｏｘｙモードで動作中にサーバ装置からのネットワーク離脱通知を受信すると、Ｄｉｒｅｃｔモードに移行する。また、逆に、デバイスがＤｉｒｅｃｔモードで動作中にサーバ装置からのネットワーク参加通知を受信すると、Ｐｒｏｘｙモードに移行する。
【０１４７】
これにより、デバイスは、サーバ装置の挙動を検知して、自動的に自身の動作モードを変更することが可能となり、サーバ装置が一時的に不在の場合もユーザはデバイスを使用することができるようになる。
【０１４８】
尚、サーバ装置の挙動の検知は、例えば、事前にサーバ装置のホスト情報（識別情報（例えば、ＩＰアドレス））をデバイスが管理している場合には、そのホスト情報で特定されるサーバ装置に検索要求を発行して、その応答の有無で判定しても良い。あるいは、デバイスの通信ポート（ＴＣＰ／ＵＤＰポート）を監視しておき、ネットワーク上のサーバ装置からの検索要求の有無で判定しても良い。
【０１４９】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１５０】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１５１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１５２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１５３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１５４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１５５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１５７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１５８】
【図１Ａ】プラグアンドプレイを使用したプリンタドライバインストール処理を説明するための図である。
【図１Ｂ】ＩＥＥＥ１２８４規定のデバイス情報を説明するための図である。
【図２Ａ】小規模ネットワークの構成例を示す図である。
【図２Ｂ】大規模ネットワークの構成例を示す図である。
【図３】本発明の実施形態１の画像形成システムの構築例を示す図である。
【図４】本発明の実施形態１のデバイスのハードウェア構成を示すブロック図である。
【図５】本発明の実施形態１のホストコンピュータの詳細構成を示すブロック図である。
【図６】本発明の実施形態１のデバイスが起動する際の初期化処理を示すフローチャートである。
【図７】本発明の実施形態１のサービス一覧情報の一例を示す図である。
【図８】本発明の実施形態１のステップＳ６０３における動作モード判定処理の一例を示すフローチャートである。
【図９】本発明の実施形態１のステップＳ６０３における動作モード判定処理の別例を示すフローチャートである。
【図１０】本発明の実施形態１のプリンタドライバインストールのシーケンスを示す図である。
【図１１】本発明の実施形態１のデバイス検索要求の一例を示す図である。
【図１２】本発明の実施形態１の判定処理を示すフローチャートである。
【図１３】本発明の実施形態１のデバイス情報の一例を示す図である。
【図１４】本発明の実施形態１のサービス情報の一例を示す図である。
【図１５】本発明の実施形態１の生成処理を示すフローチャートである。
【図１６】本発明の実施形態１の優先ＰＤＬ装置設定画面の一例を示す図である。
【図１７】本発明の実施形態１のＤｉｒｅｃｔモードの場合のデバイス情報の一例を示す図である。
【図１８】本発明の実施形態１のＰｒｏｘｙモードの場合のデバイス情報の一例を示す図である。
【図１９】本発明の実施形態２のデバイスが起動する際の初期化処理を示すフローチャートである。
【図２０】本発明の実施形態２の判定処理を示すフローチャートである。
【図２１】本発明の実施形態２の検索履歴情報の一例を示す図である。
【図２２】本発明の実施形態２の生成処理を示すフローチャートである。
【図２３】本発明の実施形態３の動作モードの遷移を説明するための図である。
【符号の説明】
【０１５９】
５０１  ＨＤＤ
５０２  外部記憶装置
５０３  バス
５０４  ＣＰＵ
５０５  プリンタドライバセット
５０６  ドライバライブラリ
５０７  ポート管理部
５０８  プラグアンドプレイ部
５０９  ＲＡＭ
５１０  情報処理装置
【図１Ａ】
0004546356.tif 000002
【図１Ｂ】
0004546356.tif 000003
【図２Ａ】
0004546356.tif 000004
【図２Ｂ】
0004546356.tif 000005
【図３】
0004546356.tif 000006
【図４】
0004546356.tif 000007
【図５】
0004546356.tif 000008
【図６】
0004546356.tif 000009
【図７】
0004546356.tif 000010
【図８】
0004546356.tif 000011
【図９】
0004546356.tif 000012
【図１０】
0004546356.tif 000013
【図１１】
0004546356.tif 000014
【図１２】
0004546356.tif 000015
【図１３】
0004546356.tif 000016
【図１４】
0004546356.tif 000017
【図１５】
0004546356.tif 000018
【図１６】
0004546356.tif 000019
【図１７】
0004546356.tif 000020
【図１８】
0004546356.tif 000021
【図１９】
0004546356.tif 000022
【図２０】
0004546356.tif 000023
【図２１】
0004546356.tif 000024
【図２２】
0004546356.tif 000025
【図２３】
0004546356.tif 000026