(57)【要約】【課題】      ネットワーク上の指定範囲内で、目的のクライアントに一括して制御プログラムをインストールする。【解決手段】  ネットワーク上において、ネットワークに接続するネットワークデバイスを探索するための範囲を指定し（Ｓ４０１）、その指定された範囲内において、ネットワークデバイスを探索する（Ｓ４０２）。そして、その探索された範囲内のネットワークデバイスを管理するクライアントに対し、一括して制御プログラムを配信する（Ｓ４０５）。【選択図】  図４    
2004171513.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理方法であって、
前記ネットワークに接続するネットワークデバイスを探索するための範囲情報を指定する指定工程と、
前記指定された範囲情報に基づいて、当該範囲情報に該当する前記ネットワークデバイスを探索する探索工程と、
前記探索工程の処理によって探索された範囲内の前記ネットワークデバイスを管理する前記クライアント装置に対し、一括して制御プログラムを配信する配信工程と、
を備えることを特徴とする情報処理方法。
【請求項２】
前記探索工程における前記ネットワークデバイスの探索結果によるデータに基づいて、当該ネットワークデバイスのアドレス情報を取得する取得工程を更に有し、
前記配信工程は、前記取得工程の処理により取得した前記アドレス情報を用いて配信処理を行うことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記制御プログラムの転送先である前記クライアント装置において起動される、前記制御プログラムを受信する受付モジュールの準備が整ったことを示す準備完了通知を認識する認識工程を更に備え、
前記配信工程は、前記認識工程における処理が前記準備完了通知を認識するのに応答して、前記制御プログラムの配信を行うことを特徴とする請求項１に記載の情報処理方法。
【請求項４】
前記取得工程は、前記ネットワークデバイスの探索結果によるデータに基づいて、前記探索するための範囲情報に従ったネットワークアドレス情報を取得することを特徴とする請求項２に記載の情報処理方法。
【請求項５】
前記ネットワークデバイスを探索するために指定される範囲は、ドメイン単位、ディレクトリサービスにおけるOU単位、若しくはＩＰアドレス単位に指定されることを特徴とする請求項１に記載の情報処理方法。
【請求項６】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理装置であって、
前記ネットワークに接続するネットワークデバイスを探索するための範囲情報を指定する指定手段と、
前記指定された範囲情報に基づいて、当該範囲情報に該当する前記ネットワークデバイスを探索する探索手段と、
前記探索手段によって探索された範囲内の前記ネットワークデバイスを管理する前記クライアント装置に対し、一括して制御プログラムを配信する配信手段と、
を備えることを特徴とする情報処理装置。
【請求項７】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理をコンピュータで実行するためのプログラムであって、当該プログラムが
前記ネットワークに接続するネットワークデバイスを探索するための範囲情報を指定する指定モジュールと、
前記指定された範囲情報に基づいて、当該範囲情報に該当する前記ネットワークデバイスを探索する探索モジュールと、
前記探索モジュールの実行によって探索された範囲内の前記ネットワークデバイスを管理するクライアントに対し、一括して制御プログラムを配信する配信モジュールと、
を備えることを特徴とするプログラム。
【請求項８】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理方法であって、
前記ネットワークに接続するネットワークデバイスを探索するための地理的範囲の情報を指定する指定工程と、
前記指定された地理的範囲の情報に基づいて、当該地理的範囲の情報に該当する前記ネットワークデバイスを探索する探索工程と、
前記探索工程の処理によって探索された地理的範囲内の前記ネットワークデバイスを管理するクライアント装置に対し、一括して制御プログラムを配信する配信工程と、
を備えることを特徴とする情報処理方法。
【請求項９】
前記ネットワークデバイスを探索するために指定される地理的範囲の情報には、当該ネットワークデバイスが設置されている建物の部屋単位、フロア単位、建物の棟単位、市町村単位、都道府県単位、国単位のいずれかが含まれることを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記制御プログラムの転送先である前記クライアント装置において起動される、前記制御プログラムを受信する受付モジュールの準備が整ったことを示す準備完了通知を認識する認識工程を更に備え、
前記配信工程は、前記認識工程における処理が前記準備完了通知を認識するのに応答して、前記制御プログラムの配信を行うことを特徴とする請求項８に記載の情報処理方法。
【請求項１１】
前記ネットワークデバイスは、前記地理的範囲に対応する位置情報を検出し、当該検出した位置情報を前記地理的範囲の情報と照合できるようにメモリに設定させる設定工程を更に有することを特徴とする請求項８に記載の情報処理方法。
【請求項１２】
前記設定工程は、GPSを利用して検出された情報に基づき、前記地理的範囲に対応した位置情報を前記メモリに設定することを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理装置であって、
前記ネットワークに接続するネットワークデバイスを探索するための地理的範囲の情報を指定する指定手段と、
前記指定された地理的範囲の情報に基づいて、当該地理的範囲の情報に該当する前記ネットワークデバイスを探索する探索手段と、
前記探索手段によって探索された地理的範囲内の前記ネットワークデバイスを管理するクライアント装置に対し、一括して制御プログラムを配信する配信手段と、
を備えることを特徴とする情報処理装置。
【請求項１４】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理をコンピュータで実行するためのプログラムであって、当該プログラムが
前記ネットワークに接続するネットワークデバイスを探索するための地理的範囲の情報を指定する指定モジュールと、
前記指定された地理的範囲の情報に基づいて、当該地理的範囲の情報に該当する前記ネットワークデバイスを探索する探索モジュールと、
前記探索モジュールの実行によって探索された地理的範囲内の前記ネットワークデバイスを管理するクライアントに対し、一括して制御プログラムを配信する配信モジュールと、
を備えることを特徴とするプログラム。
【請求項１５】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理方法であって、
スクリプト情報に基づき生成した第１デバイス探索モジュールにより、前記ネットワークに接続する前記クライアント装置を探索する第１探索工程と、
スクリプト情報に基づき生成した第２デバイス探索モジュールにより、前記第１探索工程の処理により探索されたクライアント装置と接続するネットワークデバイスを探索する第２探索工程と、
前記第２探索工程の処理により探索されたネットワークデバイスを制御するための前記制御プログラムを、前記クライアント装置に対して、一括して配信する配信工程と、
を備えることを特徴とする情報処理方法。
【請求項１６】
前記第２デバイス探索モジュールを生成させる前記スクリプト情報には、前記ネットワークデバイスを特定するためのネットワークアドレスに関する範囲情報または地理的範囲に関する情報が含まれることを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理装置であって、
スクリプト情報に基づき生成した第１デバイス探索モジュールにより、前記ネットワークに接続する前記クライアント装置を探索する第１探索手段と、
スクリプト情報に基づき生成した第２デバイス探索モジュールにより、前記第１探索手段により探索されたクライアント装置と接続するネットワークデバイスを探索する第２探索手段と、
前記第２探索手段により探索されたネットワークデバイスを制御するための前記制御プログラムを、前記クライアント装置に対して、一括して配信する配信手段と、
を備えることを特徴とする情報処理装置。
【請求項１８】
ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理をコンピュータで実行するためのプログラムであって、当該プログラムが、
スクリプト情報に基づき生成した第１デバイス探索モジュールを実行させ、前記ネットワークに接続する前記クライアント装置を探索する第１探索モジュールと、
スクリプト情報に基づき生成した第２デバイス探索モジュールを実行させ、前記第１探索モジュールの実行により探索されたクライアント装置と接続するネットワークデバイスを探索する第２探索モジュールと、
前記第２探索モジュールの実行により探索されたネットワークデバイスを制御するための前記制御プログラムを、前記クライアント装置に対して、一括して配信する配信モジュールと、
を備えることを特徴とするプログラム。
【請求項１９】
請求項７、請求項１４、請求項１８のいずれか１項に記載したプログラムを格納することを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上のクライアントコンピュータに対し、ネットワークに接続するネットワークデバイスを制御する最新バージョンの制御プログラムを一括によりインストールし、または更新するための技術に関するものである。
【背景技術】
【０００２】
従来におけるプリンタドライバのインストール方法には、プリンタを制御する各クライアントコンピュータのＯＳに依存して、対話形式に所定の事項を入力していくものがある。この方法に拠ると、例えばマイクロソフト社製の「Windows（登録商標）」を利用した場合、プリンタの「プロパティ」から「プリンタの追加」を選択して、その後ウィザードと呼ばれるユーザとの対話形式で必要情報を入力させ、プリンタドライバのインストールを行なうものである。
【０００３】
また、プリンタドライバをアプリケーションの追加と同様にインストーラを用いたユーザによる操作により、プリンタドライバのインストールする方法もある。また、特定のクライアント装置を制御して印刷を行なう場合（Point＆Print）、プリントサーバーからそのクライアント装置に対するプリンタドライバのインストールは、例えばWindows（登録商標）NT/2000を利用して配信することが可能である。
【０００４】
以上のような従来技術の場合には、プリンタドライバのインストール作業は、個別のクライアント装置に対して行なわなければならず、例えば、企業において、多数のコンピュータを所有し、ネットワークを介して種々のクライアント装置を制御して印刷をプリンタに実行させる場合には、その全てのクライアント装置にプリンタドライバをインストールさせる作業が不可欠となるが、その人的な総工数は無視できないものとなる。更に、クライアント装置側において、プリンタドライバを正常にインストールさせるためには、ある決められた手順を確実に行なうことが要求されるために、操作者にはある程度以上の知識と能力も必要とされる。
【０００５】
そのため、インストール作業を実行するための詳細なマニュアル作成や、全クライアントに対する教育の実施など、インストールに付帯する準備が必要になっていた。更に、インストールが正常にできない場合には、ネットワーク管理者が全てのクライアント装置に対して一台ずつプリントドライバをインストールしていくという膨大な作業が余儀なくされ、迅速かつ効率的なオペレーションが要求される企業活動を阻害することになっていた。
【０００６】
また、プリントサーバーを用いたPoint＆Print方式では、プリンタドライバの自動配信を指定した全てのクライアント装置に対してそのインストールが可能になっているが、自動配信により全てのクライアント装置に対してプリンタドライバのインストールが行われるため、ネットワーク管理者がプリンタ使用に関して管理できない場合が生じ得るという問題があった。
【０００７】
このような課題を解決する方法として、「プッシュ型プリンタドライバインストール」と呼ばれる方法が知られている。これは、クライアント装置側でプリンタドライバのインストールや更新作業が必要となった場合、クライアント装置上でそのインストールや更新作業をさせないで、サーバ側からネットワーク管理者が全てのクライアント装置に対してプリンタドライバのインストールや更新作業を実施可能にするものである。このプッシュ型プリンタドライバインストールによれば、クライアント装置側が別の作業中であっても、印刷中であっても、それらの作業に支障がなくプリンタドライバのインストールや更新作業を実施することが可能であり、クライアント装置側では、インストールに関する知識がなくても、ネットワーク管理者が各クライアント装置まで出向いて1台ずつ作業をしなくて済み、少ない作業工数によりインストール作業を実行することができる。
【０００８】
上述の従来技術として、例えば、以下の特許文献１に示されるものがある。
【特許文献１】特開２００２−２５１３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、プッシュ型プリンタドライバインストール方法は、クライアント装置の管理を一括して行える点で優れた方式であるが、ここでもネットワーク管理者はプリンタドライバをインストールする対象のクライアント装置を明示的に選択する必要があり、インストール対象のクライアント装置数が多い場合はクライアント装置の選択に相当の時間を要するという欠点が残されていた。
【００１０】
本発明は上記の従来技術の課題を解決するためになされたもので、その目的とするところは、ネットワーク管理者は、プリンタドライバのインストール対象となるクライアント装置を個別に選択せず、プリンタのネットワーク上の範囲を限定し、その限定した範囲に適用されるプリンタを管理するクライアント装置に対し、一括してプリンタドライバをインストールまたは更新することにある。この結果、ネットワーク管理者は、個別にクライアントを認識する必要はなくて済み、その作業工数が最小で行えることになる。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明にかかるネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理方法は、
前記ネットワークに接続するネットワークデバイスを探索するための範囲情報を指定する指定工程と、
前記指定された範囲情報に基づいて、当該範囲情報に該当する前記ネットワークデバイスを探索する探索工程と、
前記探索工程の処理によって探索された範囲内の前記ネットワークデバイスを管理する前記クライアント装置に対し、一括して制御プログラムを配信する配信工程とを備える。
【００１２】
あるいは、ネットワークデバイスを制御するための制御プログラムをネットワークを介して、当該ネットワークデバイスを管理するクライアント装置に配信する情報処理方法は、
スクリプト情報に基づき生成した第１デバイス探索モジュールにより、前記ネットワークに接続する前記クライアント装置を探索する第１探索工程と、
スクリプト情報に基づき生成した第２デバイス探索モジュールにより、前記第１探索工程の処理により探索されたクライアント装置と接続するネットワークデバイスを探索する第２探索工程と、
前記第２探索工程の処理により探索されたネットワークデバイスを制御するための前記制御プログラムを、前記クライアント装置に対して、一括して配信する配信工程とを備える。
【発明の効果】
【００１３】
本発明の効果として、ネットワークデバイスの制御プログラムをインストールする場合、多数存在するクライアントコンピュータの一台々を意識することなく、インストールや更新の対象となるネットワークデバイスの範囲を指定するのみで、その範囲内のネットワークデバイスに関するネットワークアドレスを取得して、このアドレス情報に基づいて、ネットワークデバイスを管理するクライアントに対して一括にインストール処理し、または更新処理をすることが可能となる。この処理により、個別にプリンタドライバをインストールする、あるいは更新するために要する負担を軽減することが可能になる。
【００１４】
あるいは、プッシュインストール用の簡易なスクリプト情報を記述するのみで、プリンタの自動探索から自動インストール処理まで、一括してインストールを実行することができる。
【発明を実施するための最良の形態】
【００１５】
（第１実施形態）
以下、本発明を適用するのに好適である第１実施形態について説明を行う。図１は本発明の実施形態にかかるシステムの構成を説明するブロック図である。プリンタの印刷制御を行なうクライアント装置であるユーザＰＣ３００、３１０はネットワーク（インターネット）２００と接続し、例えば、プリンタメーカ側の情報処理装置１００（以下、「プリンタドライバ自動更新用サーバＰＣ（サーバＰＣ）という」。）と、そのネットワーク２００を介して種々のデータの授受が可能である。また、ユーザＰＣ３００はプリンタ１５０と、また、ユーザＰＣ３１０はプリンタ１６０と、それぞれ接続し、サーバＰＣ１００から配信された情報に基づいて、プリンタ１５０、プリンタ１６０を制御することができる。また、ネットワーク２００にはファイルサーバ２１０が接続しており、ネットワークディスク２２０に格納されているデータへのアクセスを管理する。
【００１６】
図２は、ユーザＰＣ３００とプリンタ１５０の接続を例とした、ユーザＰＣとプリンタの内部構成の概略を説明する図である。図２において、ユーザＰＣ３００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記処理等を行う際に使用する各種データを記憶する。２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００１７】
５はキーボードＩ／Ｆで、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。６はディスプレイＩ／Ｆで、ディスプレイ１０の表示を制御する。また、不図示であるが、スキャナを制御するスキャナＩ／Ｆや、デジタルカメラを制御するデジタルカメラＩ／Ｆ、ファクシミリを制御するファクシミリＩ／Ｆ、マウスを制御するマウスＩ／Ｆ、スピーカを制御するスピーカＩ／Ｆ、そして音源装置を制御する音源装置Ｉ／Ｆ、電話等の通信装置を制御する電話Ｉ／Ｆなどがある。
【００１８】
７は外部メモリＩ／Ｆで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶するハードディスク（ＨＤ）、フロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。８はプリンタＩ／Ｆで、所定の双方向性インターフェース（インターフェース）２１を介してユーザＰＣ３００とプリンタ１５０とを接続し、プリンタ１５０との通信制御処理を実行する。
【００１９】
なお、ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１は、ディスプレイ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【００２０】
プリンタ１５０において、１２はプリンタＣＰＵで、ＲＯＭ１４のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ２１に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部Ｉ／Ｆ１７を通し、印刷部（プリンタエンジン）１９に出力情報としての画像信号を出力する。また、このＲＯＭ１４のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１４のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ＲＯＭ１４のデータ用ＲＯＭにはハードディスク等の外部メモリ２１がないプリンタの場合には、ユーザＰＣ上で利用される情報等が記憶されている。
【００２１】
ＣＰＵ１２は入力部１６を介してユーザＰＣ３００との通信処理が可能となっており、プリンタ内の情報等をユーザＰＣ３００に通知可能に構成されている。１３はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、外部メモリＩ／Ｆ１８によりアクセスが制御される。外部メモリ２１は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、２０は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２２】
また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル２０からのプリンタモード設定情報を記憶するようにしてもよい。
【００２３】
図３は、図１におけるサーバＰＣ１００の構成を説明する図であり、サーバＰＣ１００は、ＲＯＭ３０２またはハードディスク（ＨＤ）３１１に格納されたネットワークデバイスを探索するためのプログラム（以下、「ネットワーク管理プログラム」という。）を実行するＣＰＵ３０１を備え、システムバス３０４に接続する各デバイスを総括的に制御する。３０３はＲＡＭで、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。３０５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）３０９や不図示のポインティングデバイス等からの指示入力を制御する。ユーザはキーボード（ＫＢ）３０９等の入力手段を介して、ネットワーク上で探索するべきデバイスの属性（例えば、レーザービームプリンタ、バブルジェット（登録商標）プリンタ等）や、ネットワークにおける範囲を設定することができる。３０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）３１０の表示を制御する。例えば、設定された範囲において、該当するネットワークデバイスが探索された場合は、探索結果のネットワークデバイスリストがＣＲＴ上に表示される。３０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、アプリケーションプログラム、ネットワーク管理プログラム等を記憶するハードディスク（ＨＤ）とのアクセスを制御する。３０８はネットワークインタフェースカード（ＮＩＣ）で、ネットワーク２００を介して、エージェントあるいはネットワークデバイスと双方向にデータのやりとりを行なう。
【００２４】
図５は、ネットワーク管理ソウフトウエアのモジュール構成を例示す図であり、ＣＰＵ３０１により実行される。その際、ＣＰＵ３０１はワークエリアとしてＲＡＭ３０３を使用する。図５において、５０１はデバイスリストモジュールであり、ネットワーク２００に接続したデバイスの一覧をＣＲＴ３１０上に表示するモジュールである。ユーザは指定したネットワークの範囲内において、該当するネットワークデバイスの有無をかかるリスト表示により確認することができる。
【００２５】
５０２は、探索モジュールと呼ばれ、ネットワークに接続するデバイスの探索するモジュールであり、例えば、SNMP（Simple Network Management Protocol）で管理可能なプリンタMIB（Management Information Base）を使ってプリンタを探索したり、Jini（java（登録商標）Information Infrastructure）対応のプリンタを探索したり、UPｎP（Universal Plug and Play）対応のプリンタの探索をすることができる。この探索モジュール５０２によって探索されたデバイスが、デバイスリストモジュール５０１によって一覧表示される。
【００２６】
５０３は、変換モジュールであり、探索モジュール５０２により探索されたデバイスのネットワークアドレス情報を、ユーザにより指定された形式、例えば、DNS（Domain Name System）によるドメイン単位や、Active Directory やNDS（Novell Directory Service）やLDAP（Lightweight Directory Access Protocol）といったディレクトリサービスにおけるOU（Organization Unit）単位、IPアドレス単位、のアドレスに変換する処理を行なう。
【００２７】
次に、サーバＰＣ１００からプリンタドライバをネットワーク２００を介して所定のユーザＰＣにダウンロード、またはプリンタドライバを更新するための処理を図４のフローチャートを用いて説明する。
【００２８】
＜プリンタドライバの更新処理＞
図４は本発明の実施形態にかかるプリンタドライバのインストール、更新の処理を説明するフローチャートである。まず、ステップＳ４０１において、サーバＰＣ１００の管理者は、プリンタドライバの更新対象となるプリンタを探索するために、探索範囲となるネットワーク上における範囲を指定する。ここで、ネットワークに接続するプリンタを探索するために指定する「範囲」の単位は、プリンタを管理する規模に大きく依存するが、DNS（Domain Name System）によるドメイン単位や、Active Directory やNDS（Novell Directory Service）やLDAP（Lightweight Directory Access Protocol）といったディレクトリサービスにおけるOU（Organization Unit）単位、IPアドレス単位、といったものである。サーバ管理者はこれら任意の単位を更新対象となるプリンタの範囲として指定するだけで、各々のプリンタのネットワーク上の名前やアドレスといった細部までを知る必要はない。
【００２９】
図６は、ネットワークに接続するネットワークデバイスの探索範囲を概念的に説明する図であり、ユーザＰＣ３００、３１０、３２０はネットワーク２００に接続し、それぞれネットワーク上の領域Ａ、領域Ｂ、領域Ｃに含まれているものとする。プリンタ１５０、１６０、１７０はそれぞれユーザＰＣ３００、３１０、３２０に接続している。また、領域Ｄに含まれるユーザＰＣ３３０は領域ＢのユーザＰＣ３１０と接続し、このユーザＰＣ３３０にはプリンタ１８０が接続している。上述の「範囲」を指定することにより、例えば、領域Ａ，Ｂ，Ｃを単独にプリンタの探索範囲としたり、領域Ａ及びＣからなる領域Ｅを探索範囲としたり、あるいは領域Ｂ、Ｄを探索範囲として設定することができる。
【００３０】
次に、ステップＳ４０２において指定された範囲内において、プリンタを探索する。探索の方法としては、SNMP（Simple Network Management Protocol）で管理可能なプリンタMIB（Management Information Base）を使ってプリンタを探索するか、Jini（java（登録商標） Information Infrastructure）対応のプリンタを探索するか、UPｎP（Universal Plug and Play）対応のプリンタを探索することができる。もちろん、これら以外の技術を使用してネットワークに接続するデバイスを探索することは可能である。すなわち、ネットワーク上において探索範囲として指定された領域からネットワークデバイス、本実施形態の場合ではユーザＰＣやプリンタ、を検出することができれば上述の探索方法に本発明の趣旨が限定されるものではない。
【００３１】
プリンタの探索方法として、例えば、SNMPネットワーク管理技術によれば、少なくとも１つのネットワーク管理ステーション（ＮＭＳ：図１のサーバＰＣ１００が該当する）と、エージェントを含む複数の管理対象ノード（図１の３００、３１０、１５０、１６０等）との間で、管理情報を交換するために使用するネットワーク管理プロトコルを含む探索モジュール（図７の７０２）が通信処理を実行する。ユーザは、ＮＭＳ（サーバＰＣ１００）上でネットワーク管理ソフトウエアを用いて管理対象のノード上のエージェントソフトウエアと通信することにより、ネットワーク上のデバイスの属性（ＰＣ、プリンタ、ファクシミリ等）に関する情報や、そのデバイスのネットワーク情報（ＩＰアドレス、ＭＡＣアドレス、サブネットアドレス等）を取得することができる。
【００３２】
ここで、「エージェント」とは、ネットワーク上に接続する各々の管理対象の装置についてバックグラウンドプロセスとして走るソフトウエアである。エージェントは、自分の状態に関するデータをデータベース（MIB）の形式で保持している。ユーザＰＣ３００、３１０及びプリンタ１５０、１６０はネットワークに接続するためのネットワークボード上にエージェントを実装することにより、ユーザＰＣ（３００，３１０）及びプリンタ（１５０，１６０）をネットワーク管理ソフトウエアの管理対象とすることができ、サーバＰＣ１００は管理対象に対して、収集したい情報をMIBにリクエストし、各デバイスから該当するデータを受信することができる。
【００３３】
また、プリンタ等の情報の取得に関しては、上述の方法によらず、例えば、サーバＰＣ１００のデータベースに登録済みのデバイスの属性情報、ネットワーク情報一覧を、ステップＳ４０１で指定された範囲に応じて取得してもよく、ネットワークに接続するネットワークディスク２２０に予め登録済みのこれらの情報一覧を、指定された範囲に応じてサーバＰＣ１００が取得するだけでもかまわない。
【００３４】
ステップＳ４０３では、先のステップＳ４０２におけるプリンタの探索処理に基づいて、ステップＳ４０１で指定されたネットワーク上における範囲の指定形式にネットワークアドレスを変換する。例えば、ネットワーク上における範囲がドメイン単位で指定された場合、不図示のＤＮＳサーバとサーバＰＣ１００とが通信し、探索されたプリンタのネットワーク情報（ＩＰアドレス）に基づいて、対応するプリンタ、ユーザＰＣに関するドメイン名を取得することができる。
【００３５】
また、ＩＰアドレス単位でネットワーク上における範囲が指定された場合、探索されたデバイスに関するＭＡＣアドレス、サブネットアドレス情報等から各デバイスに対するネットワークアドレスを取得することができる。
【００３６】
ステップＳ４０４では、先のステップ４０１で指定された範囲にプリンタが存在するか否かを判別し、サーバ管理者が指定した範囲に適合するプリンタが存在する場合（Ｓ４０４−Ｙｅｓ）、それらプリンタを管理している各々のユーザＰＣ（例えば、図１の３００、３１０）に対し、プリンタドライバを配信してインストールを行ない、インストール済みのものに対してはその更新を行い（Ｓ４０５）、指定範囲内に適合するプリンタが無い場合（Ｓ４０４−Ｎｏ）、更新処理をせず、処理を終了する。
【００３７】
ステップＳ４０５において、プリンタドライバの自動インストール・更新の処理として、プリンタドライバのインストール実行ファイルが、先のステップＳ４０１において指定された範囲内のプリンタを制御するユーザＰＣに対してプリンタドライバがインストールまたは更新される。ここで、プリンタドライバのインストールや更新については、従来例におけるいわゆるプッシュ型プリンタドライバインストールと呼ばれる技術で説明されるものであるため、ここでは詳細な説明を省略する。
【００３８】
図７は、本実施形態におけるプリンタドライバプログラムがユーザＰＣ３００、３１０上のＲＡＭ２にロードされ、実行可能となった状態のメモリマップを示す図であるり、同メモリマップ上にはユーザＰＣ３００において実行される種々のアプリケーションプログラム２０１、空メモリ領域２０２、関連データ２０３、印刷処理関連プログラム２０４、ＯＳ２０５、そしてプリンタ１５０等、ユーザＰＣ３００に接続する各種デバイスを制御するための基本入出力システム（ＢＩＯＳ）２０６が展開されており、インストールされるプリンタドライバプログラムは印刷処理関連プログラム２０４の一部としてメモリに格納される。
【００３９】
以上説明したとおり、本実施形態によれば、プリンタドライバのインストールやその更新処理において、多数存在するクライアントコンピュータ（ユーザＰＣ）の一台々を意識することなく、インストールや更新の対象となるプリンタのネットワークにおける範囲を指定するのみで、その範囲内のプリンタ等に関するネットワークアドレスを取得して、このアドレス情報に基づいて一括にインストール処理、または更新処理をすることが可能となる。この処理により、個別にプリンタドライバをインストールする、あるいは更新するために要する負担を軽減することが可能になる。
【００４０】
図８は、図４のインストール処理の変形例を示す図である。
ステップＳ８０１では、プリンタドライバをインストールし、または更新する対象となるプリンタのネットワーク範囲をネットワークのアドレス情報に基づき指定する。ステップＳ８０１の探索指示に応答して、探索要求がユーザＰＣ３００側に送信される。
【００４１】
一方、ステップＳ８００１で、ユーザＰＣ３００側は、サーバＰＣ１００から送信されてきた探索要求を受信して認識する。次に、ステップＳ８００２で、探索要求に対して、探索応答を返却する。
【００４２】
サーバＰＣ１００側の処理に戻ると、ステップＳ８０２において、サーバＰＣ１００は、応答があったプリンタからの探索要求を順次受信して記憶する。
【００４３】
ステップＳ８０３では、先のステップＳ８０２におけるプリンタの探索結果に基づいて、ステップＳ８０１で指定されたネットワーク上における範囲の指定形式にネットワークアドレスを変換する。例えば、ネットワーク上における範囲がドメイン単位で指定された場合、ＤＮＳサーバ（図示省略）とサーバＰＣ１００とが通信し、探索されたプリンタのネットワーク情報（ＩＰアドレス）に基づいて、対応するプリンタ、ユーザＰＣに関するドメイン名を取得することができる。
【００４４】
また、ＩＰアドレス単位でネットワーク上における範囲が指定された場合、探索されたデバイスに関するＭＡＣアドレス、サブネットアドレス情報等から各デバイスに対するネットワークアドレスを取得することができる。
【００４５】
ステップＳ８０４では、先のステップＳ８０１で指定された範囲にプリンタが存在するか否かを判別し、サーバ管理者が指定した範囲に適合するプリンタが存在する場合（Ｓ８０４−Ｙｅｓ）、それらプリンタを管理している各々のユーザＰＣ（３００、３１０）内で起動されたドライバ受付モジュールに対し、プリンタドライバを配信してインストールを行ない（Ｓ８０５）、ユーザＰＣ３００でインストール済みのものに対してはその更新を行なう（後に詳述する）。一方、Ｓ８０４で指定範囲内に適合するプリンタが無いと判断した場合（Ｓ８０４−Ｎｏ）、インストールまたは更新の処理をせず、処理を終了する。
【００４６】
ステップＳ８０６においては、サーバＰＣ１００は、ユーザＰＣ３００からのインストール完了通知の受信待ちとなる。すなわち、Ｓ８０６で、Ｓ８０２で探索された全てのＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかを判断する。ここで、全てのユーザＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかのいずれかに該当すると判断した場合は、インストール処理が無事完了したと判断し、処理を終了する。そして、全てのユーザＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかのいずれにも該当しないと判断した場合には、ステップＳ８０５に戻り処理を続ける。
【００４７】
次に、ユーザＰＣ３００側の処理を説明する。ステップＳ８００１で、サーバＰＣ１００から送信された探索要求を受信し、認識する。ステップＳ８００２で、ステップＳ８００１で受信した探索要求に対して応答する。ステップＳ８００３で、ステップＳ８００２の探索に対する応答処理に連動して、ドライバ受付モジュールを常駐状態にしてロードし、ドライバの受信の準備をする。次に、ステップＳ８００４で、ユーザＰＣ３００は、ドライバ受付モジュールにより、サーバＰＣがステップＳ８０５で送信したドライバの受信処理を行う。ステップＳ８００５で、ユーザＰＣ３００は、ステップＳ８００４で受信したドライバのインストール処理を行う。ドライバインストール処理が終了すれば、ステップＳ８００６に進んでドライバ受付モジュールをアンロードする。続いて、ステップＳ８００７で、受信した全てのドライバの更新処理又はインストール処理が終わった場合は、サーバＰＣに対してインストール完了通知を送信し、処理を終了する。
【００４８】
もちろん、Ｓ８００１の認識処理に応答して、Ｓ８００３を行ってもよい。さらに好適には、Ｓ８００３では、ドライバの転送先であるユーザＰＣにて起動する制御プログラムを受信する受付モジュールの準備が整ったことを示す準備完了通知サーバＰＣへ転送する。Ｓ８００５の冒頭では、Ｓ８００３で送信された準備完了通知を認識する。そして、Ｓ８０５では、準備完了通知を受信して認識するのに応答して、ドライバ配信処理を行うようにすればよい。
【００４９】
（第２実施形態）
以下、本発明を適用するのに好適である第２実施形態について説明を行う。本発明の第２実施形態にかかるシステムの構成は、第１実施形態において説明した図１と同様なブロック図として示すことがでる。
【００５０】
図９は、ユーザＰＣ３００とプリンタ１５０Ｂの接続を例とした、ユーザＰＣとプリンタの内部構成の概略を説明する図である。図９に示す構成においては、プリンタ１５０Ｂの内部に位置探索ユニット２２が設けられている点において、図２で説明したプリンタの内部構成と相違する。
【００５１】
ここで、位置探索ユニット２２は、プリンタ１５０Ｂが設置されている位置情報を検出し、その位置情報をＲＡＭ１３や外部メモリ２１に格納するためのユニットである。位置情報の設定のために、プリンタ内部に、例えば、GPS（Global  Positioning  System)などを利用する位置探索ユニット２２を備え、緯度、経度情報をプリンタ自身が検出して、不図示の地理情報、例えば、建物単位、フロア単位、市町村の区画などを示す地図など、と照合をしてプリンタの位置を設定することもできる。ここで、設定された位置情報は、サーバＰＣ１００（図１を参照）から送られるリクエストに対するレスポンスとして、各プリンタ１５０Ｂから、ユーザＰＣ３００を介してサーバＰＣ１００に送られる。
【００５２】
また、図９のブロック図を構成する要素において、図２で説明した参照番号と同一の要素については、内容が重複することになるので説明を省略する。
【００５３】
第２実施形態におけるサーバＰＣ１００の構成は、 第１実施形態におけるサーバＰＣ１００（図３）と同様であり、サーバＰＣ１００は、ＲＯＭ３０２またはハードディスク（ＨＤ）３１１に格納されたネットワークデバイスを探索するためのネットワーク管理プログラム（モジュール構成は図５の５０１、５０２を参照）を実行するＣＰＵ３０１を備え、ユーザはキーボード（ＫＢ）３０９等の入力手段を介して、ネットワーク上で探索するべきデバイスの属性（例えば、レーザービームプリンタ、バブルジェット（登録商標）プリンタ等）や、ネットワークにおける地理的範囲を設定することができる。この地理的範囲は、上述のプリンタ１５０Ｂに設けられた位置探索ユニット２２の検出情報と対応するものである。
【００５４】
３０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）３１０の表示を制御する。例えば、設定された地理的範囲において、該当するネットワークデバイスが探索された場合は、探索結果のネットワークデバイスリストがＣＲＴ上に表示される。
【００５５】
次に、本実施形態にかかるサーバＰＣ１００からプリンタドライバをネットワーク２００を介して所定のユーザＰＣ３００にダウンロード、またはプリンタドライバを更新するための処理を図１０のフローチャートを用いて説明する。
【００５６】
＜プリンタドライバの更新処理＞
図１０は本発明の第２実施形態にかかるプリンタドライバのインストール、更新の処理を説明するフローチャートである。まず、ステップＳ１００１において、サーバＰＣ１００の管理者は、プリンタドライバの更新対象となるプリンタを探索するために、探索範囲となるプリンタの地理的範囲を指定する。ここで、ネットワークに接続するプリンタを探索するために指定する「地理的範囲」の単位は、プリンタを管理する規模に大きく依存するが、例えば、プリンタが設置されている建物の部屋単位、フロア単位、建物の棟単位、といった細かい区画から、市町村単位や、都道府県単位、国単位、といった大きな区画を単位として指定することが可能である。サーバ管理者はこれら任意の単位を更新対象となるプリンタの範囲として指定するだけで、各々のプリンタのネットワーク上の名前やアドレスといった細部までを知る必要はない。
【００５７】
次に、ステップＳ１００２では、探索モジュール５０２（図５）の実行により指定された地理的範囲内においてプリンタを探索する。探索の方法としては、SNMP（Simple Network Management Protocol）で管理可能なプリンタMIB（Management Information Base）を使ってプリンタを探索するか、Jini（java（登録商標） Information Infrastructure）対応のプリンタを探索するか、UPｎP（Universal Plug and Play）対応のプリンタを探索することができる。もちろん、これら以外の技術を使用してネットワークに接続するデバイスを探索することは可能である。すなわち、ネットワーク上において探索範囲として指定された領域からネットワークデバイス、本実施形態の場合ではユーザＰＣやプリンタ、を検出することができれば上述の探索方法に本発明の趣旨が限定されるものではない。
【００５８】
プリンタの探索方法として、例えば、SNMPネットワーク管理技術によれば、少なくとも１つのネットワーク管理ステーション（ＮＭＳ：図１のサーバＰＣ１００が該当する）と、エージェントを含む複数の管理対象ノード（図１の３００、３１０、１５０、１６０等）との間で、管理情報を交換するために使用するネットワーク管理プロトコルを含む探索モジュール（図５の５０２）が通信処理を実行する。ユーザは、ＮＭＳ（サーバＰＣ１００）上でネットワーク管理ソフトウエアを用いて管理対象のノード上のエージェントソフトウエアと通信することにより、ネットワーク上のデバイスの属性（ＰＣ、プリンタ、ファクシミリ等）に関する情報や、そのデバイスの地理的位置を特定するための情報を取得することができる。エージェントは、自分の状態に関するデータをデータベース（MIB）の形式で保持しており、ユーザＰＣ３００及びプリンタ１５０Ｂはネットワークに接続するためのネットワークボード上にエージェントを実装することにより、ユーザＰＣ３００及びプリンタ１５０Ｂをネットワーク管理ソフトウエアの管理対象とすることができ、サーバＰＣ１００は管理対象に対して、収集したい情報をMIBにリクエストし、各デバイスから該当するデータを受信することができる。
【００５９】
また、プリンタ等の情報の取得に関しては、上述の方法によらず、例えば、サーバＰＣ１００のデータベースに登録済みのデバイスの属性情報、そのデバイスの地理的な位置情報の一覧を、ステップＳ１００１で指定された範囲に応じて取得してもよく、ネットワークに接続するネットワークディスク２２０（図１）に予め登録済みのこれらの情報一覧を、指定された範囲に応じてサーバＰＣ１００が取得するだけでもかまわない。
【００６０】
ステップＳ１００３では、先のステップＳ１００２におけるプリンタの探索処理に基づいて、サーバＰＣ１００は各プリンタの位置情報を取得する。位置情報の取得方法としては、例えば、上述のＳＮＭＰで管理が可能なＭＩＢより各ネットワークデバイスから位置情報を収集することができる。サーバＰＣ１００とネットワークデバイスとの通信プロトコルは、SNMPに限られず、例えば、IPP（Internet  Printing  Protocol）、SOAP（Simple  Object  Access  Protocol)等、により位置情報を取得することもできる。
【００６１】
プリンタ１５０Ｂは、図９で説明したとおり位置情報を検索し、設定する手段として位置探索ユニット２２を有しており、設定された位置情報を外部メモリ２１に格納することができる。
【００６２】
また、位置情報の探索と設定のために、プリンタ内部に位置探索ユニット２２として、例えば、GPS（Global  Positioning  System)などを利用するユニットを備え、緯度、経度情報をプリンタ自身が検出して、不図示の地理情報、例えば、建物単位、フロア単位、市町村の区画などを示す地図など、と照合をしてプリンタの位置を設定することもできる。ここで、設定された位置情報は、サーバＰＣ１００から送られるリクエストに対するレスポンスとして、各プリンタから、ユーザＰＣ３００を介してサーバＰＣ１００に送られる。
【００６３】
サーバＰＣ１００と、ネットワークデバイス（例えば、ユーザＰＣ３００、プリンタ１５０Ｂ等）との間で授受する、上述のSNMP、IPP、SOAP等、各プロトコルに適したパケットには、プリンタの位置情報、プリンタを制御するためのユーザＰＣのネットワークアドレスに関する情報が含まれており、サーバＰＣ１００は、各プリンタからのレスポンスにより、プリンタの位置情報を特定することができる。更に、各プリンタを管理している各々のユーザＰＣ（３００、３１０）のネットワークアドレスは、そのユーザＰＣからのレスポンスにより特定できる。
【００６４】
ステップＳ１００４では、ステップＳ１００３で取得した位置情報に基づいて、先のステップ１００１で指定された地理的範囲にプリンタが存在するか否かを判別し、サーバ管理者が指定した範囲に適合するプリンタが存在する場合（Ｓ１００４−Ｙｅｓ）、それらプリンタを管理している各々のユーザＰＣ（例えば、図１の３００、３１０）に対し、プリンタドライバを配信してインストールを行ない、インストール済みのものに対してはその更新を行い（Ｓ１００５）、指定範囲内に適合するプリンタが無い場合（Ｓ１００４−Ｎｏ）、更新処理をせず、処理を終了する。
【００６５】
図１１（ａ）、（ｂ）及び図１２（ａ）、（ｂ）は、指定された地理的範囲とプリンタの探索結果とから設定される、プリンタドライバを自動インストール、または更新するための対象領域を概念的に説明する図である。同図において、「Ａ」〜「Ｄ」は地理範囲に対応する領域を示している。図１１（ａ）は、図１０のステップＳ１００１において指定される地理的範囲を例示する図であり、同図において、ハッチングを付した部分（領域Ａ、Ｂ）が指定された地理的範囲である。図１１（ｂ）は、図１０のステップＳ１００２、Ｓ１００３において、探索されたプリンタの所在する位置を示す図であり、プリンタは領域Ａのみに所在していることが示されている。
【００６６】
地理的範囲として指定された領域Ａ、Ｂと、探索されたプリンタが所在する領域Ａと、が重複する「領域Ａ」が、プリンタドライバの自動インストール、または更新の対象となる領域になる。この場合、図１０のステップＳ１００５において、プリンタドライバの自動インストール、更新の処理として、プリンタドライバのインストール実行ファイルが、先のステップＳ１００１において指定された範囲内のプリンタを制御するユーザＰＣに対してプリンタドライバがインストールされ、または更新される。ここで、プリンタドライバのインストールや更新については、従来例におけるいわゆるプッシュ型プリンタドライバインストールと呼ばれる技術で説明されるものであるため、ここでは詳細な説明を省略する。
【００６７】
一方、図１２（ａ）は、図１０のステップＳ１００１において指定される地理的範囲を示す図であり、同図において、ハッチングを付した部分（領域Ａ）が指定された地理的範囲である。また、図１２（ｂ）は、ステップＳ１００２、Ｓ１００３において、探索されたプリンタの所在する位置を示す図であり、プリンタは領域Ｂ、Ｃ、Ｄのみに所在している。この場合、地理的範囲として指定された領域Ａと、探索されたプリンタが所在する領域Ｂ、Ｃ、Ｄと、が重複する領域は無いので、プリンタドライバの自動インストール、更新は上述の図１０のステップ（Ｓ１００４−Ｎｏ）に従い実行されず、処理は終了する。
【００６８】
以上説明したように、本実施形態によれば、プリンタを制御するプリンタドライバをインストール、または更新する場合、多数存在するクライアントコンピュータ（ユーザＰＣ）の一台々を意識することなく、対象となるプリンタが所在する地理的範囲を指定するのみで、その範囲内のプリンタを探索し、そのプリンタを管理するユーザＰＣに対して一括にプリンタドライバをインストールし、または更新することを可能にする。この処理により、個別にプリンタドライバをインストールする、あるいは更新するために要する負担を軽減することが可能になる。
【００６９】
図１３は、図１０のインストール処理の変形例を示す図である。
【００７０】
以下、図を参照しながら、図１０の処理と特に異なる部分を中心に説明する。ステップＳ１３０１では、プリンタドライバをインストールし、または更新する対象となるプリンタの地理的範囲を指定する。ステップＳ１３０１の探索指示に応答して、探索要求がユーザＰＣ３００側に送信される。
【００７１】
一方、ステップＳ１３００１で、ユーザＰＣ３００側は、サーバＰＣ１００から送信されてきた探索要求を受信して認識する。次に、ステップＳ１３００２で、探索要求に対して、探索応答を返却する。
【００７２】
サーバＰＣ１００側の処理に戻ると、ステップＳ１３０２において、サーバＰＣ１００は、応答があったプリンタからの探索要求を順次受信して記憶する。
【００７３】
ステップＳ１３０３では、先のステップＳ１３０２におけるプリンタの探索処理に基づいて、サーバＰＣ１００は各プリンタの位置情報を取得する。位置情報の取得方法としては、例えば、上述のＳＮＭＰで管理が可能なＭＩＢより各ネットワークデバイスから位置情報を収集することができる。サーバＰＣ１００とネットワークデバイスとの通信プロトコルは、SNMPに限られず、例えば、IPP（Internet  Printing  Protocol）、SOAP（Simple  Object  Access  Protocol）等、により位置情報を取得することもできる。
【００７４】
ステップＳ１３０４では、先のステップＳ１３０１で指定された範囲にプリンタが存在するか否かを判別し、サーバ管理者が指定した範囲に適合するプリンタが存在する場合（Ｓ１３０４−Ｙｅｓ）、それらプリンタを管理している各々のユーザＰＣ（３００、３１０）内で起動されたドライバ受付モジュールに対し、プリンタドライバを配信してインストールを行ない（Ｓ１３０５）、ユーザＰＣ３００でインストール済みのものに対してはその更新を行なう（この処理は後に詳述する）。一方、Ｓ１３０４で指定範囲内に適合するプリンタが無いと判断した場合（Ｓ１３０４−Ｎｏ）、インストールまたは更新の処理をせず、処理を終了する。
【００７５】
ステップＳ１３０６において、サーバＰＣ１００は、ユーザＰＣ３００からのインストール完了通知の受信待ちとなる。すなわち、Ｓ１３０６で、Ｓ１３０２で探索された全てのＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかを判断する。ここで、全てのユーザＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかのいずれかに該当すると判断した場合は、インストール処理が無事完了したと判断し、処理を終了する。そして、全てのユーザＰＣからインストール完了通知が受信されたか、又は、予め定めた時間を経過したかのいずれにも該当しないと判断した場合には、ステップＳ１３０５に戻り処理を続ける。
【００７６】
次に、ユーザＰＣ３００側の処理を説明する。ステップＳ１３００１で、サーバＰＣ１００から送信された探索要求を受信し、認識する。ステップＳ１３００２で、ステップＳ１３００１で受信した探索要求に対して応答する。ステップＳ１３００３で、ステップＳ１３００２の探索に対する応答処理に連動して、ドライバ受付モジュールを常駐状態にしてロードし、ドライバの受信の準備をする。次に、ステップＳ１３００４で、ユーザＰＣ３００は、ドライバ受付モジュールにより、サーバＰＣがステップＳ１３０５で送信したドライバの受信処理を行う。ステップＳ１３００５で、ユーザＰＣ３００は、ステップＳ１３００４で受信したドライバのインストール処理を行う。ドライバインストール処理が終了すれば、ステップＳ１３００６に進んでドライバ受付モジュールをアンロードする。続いて、ステップＳ１３００７で、受信した全てのドライバの更新処理又はインストール処理が終わった場合は、サーバＰＣに対してインストール完了通知を送信し、処理を終了する。
【００７７】
もちろん、ステップＳ１３００１の認識処理に応答して、ステップＳ１３００３の処理を行ってもよい。さらに好適には、ステップＳ１３００３では、ドライバの転送先であるユーザＰＣにて起動する制御プログラムを受信する受付モジュールの準備が整ったことを示す準備完了通知をサーバＰＣへ転送してもよい。また、ステップＳ１３００５の冒頭では、ステップＳ１３００３で送信された準備完了通知を認識する。そして、ステップＳ１３０５では、準備完了通知を受信して認識するのに応答して、ドライバ配信処理を行うようにすればよい。
【００７８】
（第３実施形態）
第１実施形態において説明した図４及び第２実施形態において説明した図１０におけるプリンタの探索、探索したプリンタに対するプリンタドライバのインストール、またはその更新処理をインタープリター方式の簡易言語である「perl」、「java（登録商標） script 」や「WSH（Windows（登録商標） Script Host）」を用いて記述することで、複数の処理をスクリプトに従って自動的に実行するできれば、ネットワークシステムの構成に柔軟に対応した処理をすることが可能となり、システム管理者にとって大変望ましいものとなる。システム管理者は、クライアントコンピュータ（クライアントＰＣ）に接続するネットワークデバイスの探索処理、ネットワークデバイスを制御するための制御プログラムのインストール、またはそのプログラムの更新を実行するための指示を上述の簡易言語により記述する（「スクリプト情報」という。）だけで、各クライアントＰＣに対して、各クライアントＰＣに接続するネットワークデバイスに必要な制御プログラムをインストールをすることができる。
【００７９】
図１４は、第１実施形態の図４で説明したプリンタの探索、探索したプリンタに対するプリンタドライバのインストール、またはその更新処理を自動的に実行するためのスクリプト情報を、マイクロソフト社の「JScript」で記述した例を示す図である。図１４のスクリプト情報の内容は、ＩＰアドレスの範囲を指定して、範囲内に適合するプリンタのためのプリンタドライバをクライアントＰＣへプッシュインストールするものであるが、このスクリプト情報は、ＩＰアドレスにより探索範囲を指定する場合に限られず、第２実施形態において説明した地理的範囲に関する情報を指定するようにスクリプト情報の内容を指定してもよい。この場合、例えば、ある建物名とフロア名を指定し、その指定の場所（地理的範囲）にあるプリンタを指定した探索処理が実行されることになる。また、プリンタに予め建物名とフロア名を設定しておき、ある建物名とフロア名の問合せパケットがあった場合に、プリンタが応答を返すように設定しておくこともできる。
【００８０】
なお、図１４のスクリプト情報の例はマイクロソフト社のJScriptで記述されているが、本実施形態の効果は、この簡易言語に限定されるものではなく、上述の種々の簡易言語で実現してもかまわない。
【００８１】
以下、図１４に示すスクリプト情報の内容を詳細を説明する。
【００８２】
ステップＳ１４０１にて「CNClientPCオブジェクト」を生成する。このCNClientPCオブジェクトはネットワーク管理者が管理しているクライアントＰＣ（例えば、図１の３００、３０１）を列挙するためのオブジェクトである。このオブジェクトを利用するためには別途COM形式のモジュールをサーバーＰＣ（例えば、図１の１００）に用意する必要があるが、COMコンポーネントの詳細については本題から反れるので説明を省略する。
【００８３】
次に、ステップＳ１４０２にてCNClientPCオブジェクトのTargetClientsメソッドをコールすることで、プリンタドライバをインストールする、または更新する対象のクライアントＰＣを探索している。ここでは「GROUP-1」という名称でクライアントＰＣの範囲を絞り込んでいる。例えば、クライアントＰＣのグループがある場合は、複数のグループ名称をスクリプト情報として記述することができる。
【００８４】
そして、ステップＳ１４０３にて「Enumratorオブジェクト」を利用して、探索されたクライアントＰＣを列挙するための準備を行う。
【００８５】
ステップＳ１４０４にて「CNNetworkPrinterオブジェクト」を生成する。このCNNetworkPrinterオブジェクトはネットワーク管理者が管理しているプリンタを列挙するためのオブジェクトである。このオブジェクトを利用するためには、上述のCNClientPCオブジェクトの場合と同様に別途COM形式のモジュールをサーバーＰＣに用意する必要があるが、このCOMコンポーネントの詳細については本題から反れるので説明を省略する。
【００８６】
次に、ステップＳ１４０５にてCNNetworkPrinterオブジェクトのTargetPrintersメソッドをコールすることで、プリンタの探索を行っている。ここでは、ＩＰアドレスが192.168.0．1から192.168.0.15までの範囲内にあるプリンタに絞り込んでいる。このＩＰアドレスの範囲を種々設定することにより、プリンタドライバをインストールするプリンタを指定することができる。
【００８７】
ここで、ＩＰアドレスの他、第２実施形態で説明した地理的範囲として、例えば、建物の名称またはその建物のフロア情報との組合せとして、例えば「A棟６F」のように地理的範囲を指定することも可能である。
【００８８】
ステップＳ１４０６にて「Enumratorオブジェクト」を利用して、探索されたプリンタを列挙するための準備を行う。
【００８９】
そして、ステップＳ１４０７にてクライアントＰＣが列挙して表示される。この処理はステップＳ１４１２と対になっていて、列挙が終了するまでこの間の処理が繰り返される。
【００９０】
ステップＳ１４０８にて探索されたプリンタが列挙して表示される。この処理はステップＳ１４１１と対になっていて、列挙が終了するまでこの間の処理が繰り返されることになる。ここでは、指定されたＩＰアドレスに該当するプリンタからの応答を認識し、この応答に基づいて該当するプリンタを列挙して表示するための処理を実行する。
【００９１】
また、ＩＰアドレスに代わり、プリンタが設置されている地理的範囲を指定した場合には、該当する所定の地理的情報が予め設定されたプリンタからの応答を認識し、この応答に基づいて該当するプリンタを列挙して表示するための処理を実行する。また、ＧＰＳ（Global  Positioning  System）で自己の位置を認識したプリンタがいずれの地理的範囲に属するかを認識し、認識した地理的範囲が応答を要求する問合せ探索パケットに合致する場合に応答するようにしてもよい。
【００９２】
ステップＳ１４０９にて、探索して認識され、列挙されたクライアントＰＣに対して、列挙されたプリンタ用のプリンタドライバがインストールされる。インストールの処理は、図４のステップＳ４０５、図１０のステップＳ１００５等と同様の処理が実行される。
【００９３】
そして、ステップＳ１４１０にて、列挙されたクライアントＰＣに対して、列挙されたプリンタ用のプリントキューが構築される。
【００９４】
図１５は、プリンタの探索、プリンタドライバのインストール、またはその更新処理を自動的に実行するためのスクリプトを例示する図であるが、図１４で説明した内容とは異なり、図１５に示す内容はＩＰアドレスの範囲を指定して、この範囲外のプリンタに対するプリンタドライバをクライアントＰＣへプッシュインストールする内容を示している。図１５及び図１４のスクリプト情報の例は、ステップＳ１５０５とステップＳ１４０５とが相違することを除けば、図１５は図１４と同じ処理となるので、以下、ステップＳ１５０５の説明だけを行う。
【００９５】
図１５のステップＳ１５０５では、CNNetworkPrinterオブジェクトのTargetPrintersメソッドをコールすることによりプリンタの探索を行っている。この点は図１４のステップＳ１４０５と同様であるが、ここでの指定は、ＩＰアドレスが192.168.0.1から192.168.0.15の範囲外にあるプリンタが探索の対象となっている。このＩＰアドレスの範囲を種々設定することにより、探索するべきネットワーク上の範囲を指定することができる。探索するべき範囲の広狭に応じて、図１４のスクリプト情報の例で示すように、直接的に探索範囲を指定（探索範囲内に該当するものを指定）することもでき、図１５のスクリプト情報の例で示すように、排他的に探索範囲を指定（探索範囲以外のものを指定）することもできる。
【００９６】
以上説明したように、本実施形態によれば、管理者は、プッシュインストール用の簡易なスクリプト情報を記述するのみで、プリンタの自動探索から自動インストール処理まで、クライアント側を歩き回ることなく、一括してインストールを実行することができる。
【００９７】
（他の実施形態）
上記の実施形態においては、プリンタドライバを対象としているが、各種デバイスドライバとして、例えば、ディスプレイ、スキャナ、デジタルカメラ、ファクシミリ、マウス、スピーカ、音源装置、電話等での実施も可能である。
【００９８】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１００】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０１】
更に、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【産業上の利用可能性】
【０１０２】
本発明は、本発明は、ネットワーク上のクライアントコンピュータに対し、ネットワークに接続するネットワークデバイスを制御する最新バージョンの制御プログラムを一括によりプッシュインストールし、更新するために利用することができる。
【図面の簡単な説明】
【０１０３】
【図１】本発明の実施形態にかかるシステムの構成を説明するブロック図である。
【図２】第１実施形態にかかるユーザＰＣ３００とプリンタ１５０の接続を例とした、ユーザＰＣとプリンタの内部構成の概略を説明する図である。
【図３】図１におけるサーバＰＣ１００の構成を説明する図である。
【図４】本発明の第１実施形態にかかるプリンタドライバのインストール、更新の処理を説明するフローチャートである。
【図５】ネットワーク管理ソウフトウエアのモジュール構成を例示す図である。
【図６】ネットワークに接続するネットワークデバイスの探索範囲を概念的に説明する図である。
【図７】本実施形態におけるプリンタドライバプログラムがユーザＰＣ３００上のＲＡＭ２にロードされ実行可能となった状態のメモリマップを示す図である。
【図８】図４のインストール処理の変形例を示す図である。
【図９】第２実施形態にかかるユーザＰＣ３００とプリンタ１５０Ｂの接続を例とした、ユーザＰＣとプリンタの内部構成の概略を説明する図である。
【図１０】本発明の第２実施形態にかかるプリンタドライバのインストール、更新の処理を説明するフローチャートである。
【図１１】指定された地理的範囲とプリンタの探索結果とから設定される、プリンタドライバを自動更新するための対象領域を概念的に説明する図である。
【図１２】指定された地理的範囲とプリンタの探索結果とから設定される、プリンタドライバを自動更新するための対象領域を概念的に説明する図である。
【図１３】図１０のインストール処理の変形例を示す図である。
【図１４】プリンタの探索、探索したプリンタに対するプリンタドライバのインストール、またはその更新処理を自動的に実行するためのスクリプト情報を例示する図である。
【図１５】プリンタの探索、プリンタに対するプリンタドライバのインストール、またはその更新処理を自動的に実行するためのスクリプト情報を例示する図である。
【符号の説明】
【０１０４】
１      ＣＰＵ
２      ＲＡＭ
３      ＲＯＭ
４      システムバス
５      キーボードＩ／Ｆ
６      ディスプレイＩ／Ｆ
７      外部メモリＩ／Ｆ
８      プリンタＩ／Ｆ
９      キーボード
１０    ディスプレイ
１１    外部メモリ（ＨＤ、ＦＤ）
１２    ＣＰＵ
１３    ＲＡＭ
１４    ＲＯＭ
１５    システムバス
１６    入力部
１７    印刷部Ｉ／Ｆ
１８    外部メモリＩ／Ｆ
１９    印刷部
２０    操作部
２１    外部メモリ（ＨＤ、ＦＤ）
２２    位置探索ユニット
１００    サーバＰＣ１００
１５０    プリンタ
１５０Ｂ  プリンタ
２００    ネットワーク
３００    ユーザＰＣ
【図１】
2004171513.tif 000003
【図２】
2004171513.tif 000004
【図３】
2004171513.tif 000005
【図４】
2004171513.tif 000006
【図５】
2004171513.tif 000007
【図６】
2004171513.tif 000008
【図７】
2004171513.tif 000009
【図８】
2004171513.tif 000010
【図９】
2004171513.tif 000011
【図１０】
2004171513.tif 000012
【図１１】
2004171513.tif 000013
【図１２】
2004171513.tif 000014
【図１３】
2004171513.tif 000015
【図１４】
2004171513.tif 000016
【図１５】
2004171513.tif 000017