JP4971610B2 - デバイスドライバを管理するためのプログラムおよび方法と情報処理装置 - Google Patents

デバイスドライバを管理するためのプログラムおよび方法と情報処理装置 Download PDF

Info

Publication number
JP4971610B2
JP4971610B2 JP2005253795A JP2005253795A JP4971610B2 JP 4971610 B2 JP4971610 B2 JP 4971610B2 JP 2005253795 A JP2005253795 A JP 2005253795A JP 2005253795 A JP2005253795 A JP 2005253795A JP 4971610 B2 JP4971610 B2 JP 4971610B2
Authority
JP
Japan
Prior art keywords
information processing
peripheral device
peripheral
processing apparatus
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005253795A
Other languages
English (en)
Other versions
JP2007066189A (ja
JP2007066189A5 (ja
Inventor
洋史 菊地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2005253795A priority Critical patent/JP4971610B2/ja
Priority to EP06119889A priority patent/EP1764689A3/en
Priority to CNB2006101264680A priority patent/CN100504820C/zh
Priority to US11/469,006 priority patent/US7730224B2/en
Priority to KR1020060084128A priority patent/KR100778200B1/ko
Publication of JP2007066189A publication Critical patent/JP2007066189A/ja
Publication of JP2007066189A5 publication Critical patent/JP2007066189A5/ja
Application granted granted Critical
Publication of JP4971610B2 publication Critical patent/JP4971610B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Description

本発明は、たとえばネットワークに接続された情報処理装置のデバイスドライバを管理するためのプログラムおよび方法と情報処理装置に関するものである。
インターネットやホームネットワークなど、ネットワークの拡張に伴い、例えば、PDAや携帯電話等のユーザインタラクティブなデバイス、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置などのデバイスのネットワーク対応が進んでいる。また、テレビ、エアコン、冷蔵庫等の家電製品などに至るまで様々なデバイスのネットワーク対応も進んでいる。それに伴い、ネットワーク対応デバイスを利用する上での利便性を高め、また管理の容易性を高めるために、ネットワークデバイスを管理する機能を提供するさまざまなプロトコル、アーキテクチャが提案されている(特許文献1,2)。提供される機能には、たとえばサービスを提供するネットワークデバイスの探索や、ネットワークデバイスを制御するためのアプリケーションソフトウエア、ユーティリティソフトウエア、オペレーティングシステム等の自動セットアップなどがある。
また、ネットワークデバイスの管理を自動化するための試みもある。たとえば、マイクロソフト社が主体となって、UPnP(登録商標)、およびWSD:Web Services for Devices (WS-Discovery/WS-MetadataExchange)の策定が進められている。これは、デバイスをネットワークに接続するだけでそのデバイスを使用可能とする、いわゆるプラグアンドプレイを実現するためのものである。また、ビジネス機械・情報システム産業協会(JBMIA)が推進するBMLinks(登録商標)、Apple社が開発したOS XでサポートされるRenedzvousなどもある。
また、ネットワーク対応型プリンタの探索によって、多くのプリンタが探索された時に、探索されたプリンタを一覧表示し、利用権の有無やプリンタ選択基準となる推奨度などをユーザに提示するという技術も提案されている(特許文献3)。
特開2004-038956 特開2004-362594 特開2002-149362
しかしながら、ネットワークデバイスにプラグアンドプレイが普及することによってその利便性が向上する一方で、弊害も生じる。その弊害のひとつが、ユーザの必要性とは無関係にネットワークデバイスのドライバ、アプリケーションがインストールされてしまうことである。
特に、大規模オフィスなどでネットワーク上に無数のプリンタが接続されている環境に携帯型コンピュータ等を接続した場合を考える。この場合、プラグアンドプレイ機能が働き、ネットワークで稼動しているネットワークデバイスを発見するたびに、そのネットワークデバイスのドライバ、アプリケーションがインストールされてしまう。これは、コンピュータのハードウエア資源、特にメモリ資源をいたずらに消費する。加えて、アプリケーションからたとえば「印刷」を選択した際に、数多くのプリンタが使用可能なデバイスとして列挙され、ユーザの利便性をかえって損ねる結果となる。
また、上記特許文献3に記載の技術を用いて、列挙されるデバイスを制限しようとすると、以下のような問題が発生する。例えば、上述したように大規模オフィスなどでネットワーク上に無数のプリンタが接続されている環境に携帯型コンピュータ等を接続し、3台のデバイスに対応するドライバをインストールすることを想定する。この場合、必要とする3台のデバイスの利用者制限情報を利用可能と設定し、残りの各デバイスの利用者制限情報を利用不可と設定しなければならず、作業効率の低下を招く恐れがある。
本発明は上記課題を解決するために鑑みてなされたもので、クライアント装置側の簡単な構成変更でインストールされるデバイスドライバの数を制限することで、ユーザの利便性を向上させることを目的とする。さらに、デバイスドライバの数の制限を、ユーザが指定した優先順位にしたがって行うことで、ユーザの利便性を一層向上させることを目的とする。
上記目的を達成するために本発明は以下の構成を備える。ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、接続された周辺機器を利用可能とすることができる情報処理装置であって、
インストールされるデバイスドライバの制限数を保持する制限数保持手段と、
前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持手段により保持された制限数分のデバイスドライバをインストールするインストール制御手段と、
前記制限数を超える複数の周辺機器の接続を認識した際に、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示手段とを備え、
前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
前記インストール制御手段は、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定する。
あるいは、周辺機器と通信可能であり、ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、所定の条件に基づき設定された優先順位に従ってデバイスドライバをインストールすることで前記周辺機器を利用可能とする情報処理装置であって、
複数の周辺機器が発行する所定の信号を受信する第1受信手段と、
前記第1受信手段により受信した所定の信号の発行元の周辺機器に関する情報を受信する第2受信手段と、
前記第2受信手段によって受信した周辺機器に関する情報に基づき、前記優先順位の中で当該周辺機器の順位が制限数以内かどうかを判定する判定手段と、
前記判定手段により前記周辺機器の順位が前記制限数以内であると判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御手段と、
前記制限数を超える複数の周辺機器の接続を認識した際に、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示手段とを備え、
前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
前記インストール制御手段は、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定する。
本発明によれば、クライアント装置側の簡単な構成でインストールされるデバイスドライバの数を制限することできる。さらに、デバイスドライバの数の制限を、ユーザが指定した優先順位にしたがって行うことで、ユーザの利便性を一層向上させることができる。
[第1実施形態]
以下、図面を用いて本発明の実施の形態について詳細に説明する。ただし、この実施の形態に記載されているプロトコルや数値などは一例であって、この発明の範囲をそれらのみに限定する趣旨のものではない。
<印刷システムのハードウエア構成>
図1は、本発明の実施の形態であるネットワーク印刷システムに接続しているひとつのクライアントとひとつのネットワークプリンタに注目したハードウエア構成を示すブロック図である。図1では、クライアント1000と印刷装置であるネットワークプリンタ3000とがネットワーク31を介して接続された構成となっている。クライアント1000ではコンピュータ本体2000に対して外部装置であるキーボード9、CRT10、ハードディスク11等が接続されている。コンピュータ本体2000はCPU1を備え、CPU1はROM3やハードディスク11に記憶された制御プログラムやアプリケーションをRAM2に展開して演算を行うことができる。また、外部装置であるキーボード9からの入力を制御しているのがキーボードコントローラ(KBC)5である。また、CRT10の表示を制御しているのがCRTコントローラ(CRTC)6であり、ハードディスク11に対して入出力の制御を行っているのがハードディスクコントローラ(HDC)7である。NetC8はネットワークコントローラであり、ネットワーク31を介してプリンタ3000に接続されて、プリンタコントローラ部4000との間の通信制御を行っている。
これらCPU1、RAM2、ROM3、KBC5、CRTC6、HDC7、NetC8はそれぞれシステムバス4によって接続され、各デバイスをCPU1が総括的に制御している。RAM2には、図17に示す、デバイスの優先順位を決定するための基礎となる条件情報1006aが保存されている。また、RAM2には、ネットワークデバイス、特に本実施形態ではネットワークプリンタの順位付けをしたデバイスリスト1801が保存されている。デバイスリスト1801は、コンピュータ1000にインストールされたオペレーティングシステムにより提供されるUPnP機能により認識されるデバイスの名称(識別子)が含まれている。条件情報10016aおよびデバイスリスト1801は、ハードディスク11に保存され、CPU3によりアクセスされる際にRAM2にロードされる。
本実施形態では、クライアントとしてパーソナルコンピュータ(PC)を想定している。しかし、本発明を実施可能な形態であれば、クライアントはPCに限定するものではなく、PDAなどの携帯情報端末や携帯電話、デジタル家電等をクライアントとしてもよい。いずれの装置も、特定用途の入出力デバイス等を除けば、図1のコンピュータ1000と同様の構成を有する。
ネットワークプリンタ3000において、プリンタCPU21は、ROM23のプログラム用領域に記憶された制御プログラムを実行する。制御プログラムの実行により、バス24に接続される各種のデバイスとのアクセスを総括的に制御し印刷部26を介して接続される印刷機構部28(プリンタエンジン)に印刷データとしての画像信号が出力される。
CPU21はネットワークコントローラ(NetC)25を介してクライアント1000との通信処理が可能である。通信によりネットワークプリンタ3000内の情報等をクライアント1000に通知可能に構成されている。RAM22はCPU21の主メモリ、ワークエリアなどとして機能する。また、RAM22はクライアント1000より受信した印刷データや画像ビットマップデータを格納しておくための描画メモリ、ビデオ信号情報格納領域、その他としても使用される。ハードディスクコントローラ27にて制御されるハードディスク29は印刷ジョブデータのBOX保存などのために使用される。操作パネル30はユーザがネットワークプリンタ3000を操作する際のユーザインタフェースであり各種スイッチやLED表示機器の他、タッチパネル式の液晶パネルなどで構成される。
ハードディスク29には、プリンタ3000の構成を示す構成情報データベース2901が保存されている。構成情報データベースは、各種のデータを含むデータベースである。構成情報データベース2901には、デバイスタイプ情報、サービス情報、デバイスの使用頻度情報、印刷速度情報、カラー印刷機能の有無を示すカラー機能情報、最高解像度情報、両面印刷機能の有無を示す両面機能情報、製造メーカ情報などが含まれている。これら項目のうち、使用頻度情報は、プリンタが使用される都度、プリンタCPU21により更新される。またデバイスドライバのインストールの有無および導入日時などは、クライアント1000で管理されている。そのほかの項目は、プリンタの機種に応じた値が製造時に登録されている。デバイスタイプ情報は、たとえば当該デバイスが単機能プリンタや、複写機などデバイスのタイプを示す。サービス情報は、当該タイプのデバイスにより提供されるサービスを示す。たとえばプリンタであれば、postscript(登録商標)など、対応するPDLの種類を示す情報がサービス情報として登録されている。
なお、ネットワークプリンタ3000は本発明の機能を実施できる装置であればシングルファンクションプリンタでもスキャナやコピー、ファクシミリ等の機能も備えたマルチファンクションプリンタでもよい。印刷機構部28としてレーザービームプリンタやインクジェットの印刷機構を用いたプリンタ、サーマルプリンタなどいかなるプリント方式を用いていようが、本発明の機能に制限をするものではない。
<印刷システムの機能ブロック>
図2は図1に示したクライアント1000のコンピュータ本体2000とネットワークプリンタ3000のプリンタコントローラ部4000におけるネットワーク接続に関連するモジュールを説明した機能ブロック図である。
クライアント1000は、通信機能としてイーサネット(登録商標)に対応しており、イーサネット(登録商標)コントローラ1001により制御される。ここでは通信機能をイーサネット(登録商標)としているが、WiFi(登録商標:IEEE80.11a/b/g)やBlueTooth(登録商標)などの機能も考えられる。イーサネット(登録商標)コントローラより上位レイヤにはSimple Object Access Protocol(SOAP)プロセッサ1004を備える。プラグアンドプレイ(PnP)ユーティリティ1002、WSDモジュール1003、およびアプリケーション1001などが、該処理部を介してeXtensible Markup Language(XML)で記述されたデータの双方向通信を実現する。
ネットワークマネージャ1005は、イーサネット(登録商標)コントローラ1007を管理しており、設定情報、通信状態に関する情報を取得する機能を備える。プラグアンドプレイ(PnP)ユーティリティ1002はネットワークマネージャ1005を制御し、現在稼動中のイーサネット(登録商標)コントローラ情報、およびその設定情報を取得し、メモリ2上に記録する機能を有する。また、PnPユーティリティ1002は、プラグアンドプレイ設定のUIを制御し、その設定内容をメモリ2上に記録する。これら設定情報は、PnPユーティリティ1002によりXML(eXtensible Markup Language)に変換され、XMLの形式でメモリ2上に記録される。
WSDモジュール1003は、SOAPプロセッサ1004を介して、WS−Discovery仕様に基づき、ネットワークデバイスから通知されるHelloメッセージに対する応答処理を実行する。また、WSDモジュール1003は、ネットワークデバイス検索のためのProbeメッセージの発行処理を実行する。WS−Discovery仕様は、Microsoft社らがその仕様策定を推進する規格である。また、WSDモジュール1003は、WS−MetadataExchange仕様に基づき、GetMetadataメッセージを発行する。WSDモジュール1003は、GetMetadataメッセージに対してデバイスが送信する応答メッセージ(Metadata for Device)を受信することで、ネットワークデバイスの構成情報を取得する。GetMetadataメッセージにデバイスの構成情報が含まれている。
これらメッセージ処理によりネットワークデバイスが発見された場合、WSDモジュール1003はPnPコントローラ1006に対して発見したネットワークデバイスの構成情報を通知する。PnPコントローラ1006は、通知された構成情報をもとに該当するドライバやユーティリティソフトウエアをハードディスク11やメモリ2より読み込み、クライアント1000にインストールする機能を備える。あるいは、ドライバ等のソフトウエアを管理するためのソフトウエア管理サーバがネットワークに接続されている場合には、ドライバ等のプログラムは、そのソフトウエア管理サーバから読み込まれてもよい。
アプリケーション1001は例えば文書処理アプリケーションなどである。アプリケーション1001は、編集した文書データをネットワークデバイスであるプリンタにより印刷することができる。その際、アプリケーション1001は、PnPコントローラ1006によりインストールされたドライバやユーティリティを介して、ネットワークプリンタ3000に対して印刷ジョブデータを送信する。このように、クライアント1000が上記構成を有することにより、接続された周辺機器を認識することが可能となる。
一方、ネットワークプリンタ3000もイーサネット(登録商標)に互換の通信機能を備えている。イーサネット(登録商標)コントローラ3001によって通信機能は制御されている。イーサネット(登録商標)コントローラ3001の上位レイヤには、Simple Object Access Protocol(SOAP)プロセッサ3002を備える。WSDモジュール3004、および印刷制御部3003が、それぞれSOAPプロセッサ3002を介してeXtensible Markup Language(XML)で記述されたデータの双方向通信を実現する。
ここで、WSDモジュール3004は、SOAPプロセッサ3002を介して、ネットワークデバイス3000がネットワークに接続された際に、Helloメッセージの送信処理を実行する。また、WSDモジュール3004は、クライアント1000から発行されるProbeメッセージに対する応答処理を実行する。HelloメッセージおよびProbeメッセージは、Microsoft社らがその仕様策定を推進するWS−Discovery仕様に基づいたメッセージである。
また、WSDモジュール3004は、クライアント1000から発行されたGetMetadataメッセージに応じ、ネットワークプリンタ3000が持つ構成情報(Metadata for Deviceメッセージ)を返信する。このメッセージの交換は、WS−MetadataExchange仕様に基づいており、この仕様もMicrosoft社らがその策定を推進している。
<WSDの動作の概略>
図3が示しているのは本実施の形態におけるネットワーク環境の概念図である。ひとつのネットワーク31に複数種類の10個のネットワークプリンタが接続されており、クライアント1000も同じネットワーク31上に接続されている。ネットワーク31に接続されたネットワークプリンタはいずれも図2のプリンタ3000と同様の構成を備え、WSDの機能を持ち合わせている。クライアント1000はもちろん図2のコンピュータ1000の構成を備えている。
図19は、ネットワーク31に接続されたクライアントコンピュータ1000とネットワークプリンタ3000とによるWS−DiscoveryおよびWS−Metadataに従ったデバイスドライバのインストール手順の図である。図19は概略を示すもので、図4に示す設定に応じた条件付きの処理もあるが、図19ではそれら条件は省略した。この条件については、図4および図7以降のフローに即して説明する。
図19(A)は、たとえばクライアントコンピュータにおける操作などをトリガとした探索手順の例である。たとえばウインドウズ(登録商標)においては、「プリンタの追加」という機能がユーザに対して提供されている。ユーザがその機能を実行すると、図19(A)の手順が実行される。まずクライアントコンピュータ1000からプリンタ3000に対して、デバイス探索要求(Probe)メッセージ1901が送信される。デバイス探索要求メッセージ1901は、ネットワーク31全体にブロードキャストされる。デバイス探索要求メッセージ1901はXMLで記述されており、WS−Discoveryのための名前空間の定義などの他、当該メッセージがデバイス探索要求メッセージであることを示す情報や、探索対象のデバイスタイプが含まれる。本例では、探索対象のデバイスタイプはプリンタであるので、WS−Discoveryで定義されたタイプタグには「PrintBasic」と記述される。メッセージの種類(タイプ)を示す情報が含まれることは、この後説明する各メッセージについて同様である。
デバイス探索要求メッセージ1901を受信したデバイスは、そのメッセージの種類を判定する。デバイス探索要求メッセージ1901であれば、探索対象のデバイスタイプをメッセージから読み取り、それがデバイスのタイプと一致するか判定する。この判定は、デバイスの構成情報2901に保存されたデバイスタイプ情報と、デバイス探索要求メッセージに含まれる探索対象のデバイスタイプとを照合して行われる。一致すれば当該デバイスは探索対象のデバイスである。したがって、デバイスの構成情報に保存されたデバイスタイプ情報は、デバイス探索要求メッセージのタイプと同じ形式で保存されることが望ましい。
デバイスは、それ自身が探索要求メッセージによる探索対象のデバイスであると判断したなら、応答(Probe Match)メッセージ1902をクライアント1000に送信する。応答メッセージ1902には、応答したデバイスのアドレス(たとえばIPアドレス)が含まれている。
クライアント1000は応答メッセージ1902を送信したデバイスに対して、デバイス情報要求(GetMetaData)メッセージ1903を送信する。デバイス情報要求メッセージ1903は、デバイスの持つ構成情報データベース2901にアクセスして指定した情報を取得するためのメッセージである。本実施形態では、クライアントはここで、デバイスに対して、デバイスの使用頻度、印刷速度、カラー印刷機能の有無、最高解像度、両面印刷機能の有無、製造メーカなど、デバイスの構成情報を示す項目のデータを要求する。
デバイス情報要求メッセージ1903を受信したデバイス3000は、要求された項目についてその内容をデータベース2901から読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報(MetaDataforDevice)メッセージ1904に収めてクライアント1000に送信する。
デバイス情報1904を受信したクライアント1000は、次にサービス情報要求(GetMetaData)メッセージ1905をデバイスに送信する。サービス情報要求(GetMetaData)メッセージ1905は、送信先のデバイスが提供可能なサービスを示すサービス情報を、構成情報データベースから取得するためのメッセージである。
サービス情報要求メッセージ1905を受信したデバイスは、構成情報データベース2901からサービス情報を読み、それをサービス情報(MetaDataforService)メッセージ1906に書き込んでクライアント3000に送信する。
サービス情報メッセージ1906を受信したクライアントは、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント1000にインストールする(1907)。この処理により、接続された周辺機器に関する情報を取得(収集)することが可能となる。また、サービス情報に対応するデバイスドライバは、クライアント1000が有するドライバファイルのデータベースに含まれているなら、そのデータベースから読み取ってインストールする。クライアント1000が有するドライバファイルのデータベースに含まれていない場合には、たとえばネットワークに接続されたソフトウエア管理サーバからドライバファイルをダウンロードしてインストールする。サービス情報に対応するデバイスドライバの特定は、たとえば、サービス情報に、デバイスドライバファイル名(ファイルの所在を示す情報を含む)を対応付けたディレクトリ情報に基づいて行える。クライアントはそのディレクトリ情報を参照して、受信したサービス情報に対応するデバイスドライバファイル名を獲得する。そして獲得したそのファイル名の示すデバイスドライバファイルを読み、それをインストールする。なおディレクトリ情報は、クライアント1000あるいは前記ソフトウエア管理サーバが保持管理する。
一方図19(B)は、たとえばプリンタなどのネットワークデバイスをネットワークに接続して電源を投入するなど、ネットワークデバイスの追加操作をトリガとした探索手順の例である。デバイスがネットワークに接続されると、イーサネット(登録商標)コントローラ3001によりネットワークへの接続が認識される。それをきっかけにしてプリンタ3000からクライアントコンピュータ1000に対して、ネットワーク参加通知(Hello)メッセージ1911が送信される。デバイス探索要求メッセージ1901は、ネットワーク31全体にブロードキャストされる。ネットワーク参加通知メッセージ1911には、少なくともネットワーク参加通知メッセージ1911の送信元デバイス3000の所在を示すアドレス情報が含まれる。
ネットワーク参加通知メッセージ1911を受信したクライアント1000は、そのメッセージ1911の送信元デバイスに対して、デバイス情報要求(GetMetaData)メッセージ1912を送信する。デバイス情報要求メッセージ1912は、デバイス情報要求メッセージ1903と同内容のメッセージである。
デバイス情報要求メッセージ1912を受信したデバイス3000は、要求された項目についてその内容をデータベース2901から読み取る。そして読み取った各項目の内容を示す情報を、デバイス情報(MetaDataforDevice)メッセージ1913に収めてクライアント1000に送信する。
デバイス情報1913を受信したクライアント1000は、サービス情報要求(GetMetaData)メッセージ1914をデバイス3000に送信する。サービス情報要求(GetMetaData)メッセージ1914は、サービス情報要求メッセージ1905と同じ内容を持つ。
サービス情報要求メッセージ1914を受信したデバイス3000は、構成情報データベース2901からサービス情報を読み、それをサービス情報(MetaDataforService)メッセージ1915に書き込んでクライアント3000に送信する。
サービス情報メッセージ1915を受信したクライアント1000は、そのメッセージに含まれるサービス情報に基づいて、当該サービス情報に対応するデバイスドライバをクライアント1000にインストールする(1916)。この手順は図19(A)のインストール1907と同様に行われる。
以上がWS−Discoveryに準拠したデバイスドライバのインストール手順である。この手順中、図19(A)のインストール処理1907および図19(B)のインストール処理1916において、本実施形態では、条件情報1006aにしたがって選択されたデバイス(プリンタ)のデバイスドライバをインストールする。さらに、条件情報1006aにしたがって選択されなかったデバイス(プリンタ)のデバイスドライバをアンインストールする。以下、その詳細を説明する。
<条件情報の設定ユーザインターフェース>
図4は、クライアントにおけるCRT10上に表示されたプリンタドライバ自動インストール設定UIを示している。ユーザは本設定UI100を用いて、図3のようにネットワークプリンタが複数設置されているネットワーク31にクライアント1000を接続した際の、プリンタドライバの自動インストール設定を行う。UI100の一番上に表示された自動インストールラジオボタン101は、ネットワークプリンタ用のプリンタドライバのネットワークプラグアンドプレイによる自動インストールするかどうかを指定するためのラジオボタンである。自動インストールラジオボタン101が「あり」と設定された場合に、クライアント1000は、図19(A)の手順を開始する。また、図19(B)の手順を開始するのはデバイスであるので、自動インストールラジオボタン101が「なし」と設定されている場合には、クライアント1000はネットワーク参加通知メッセージに対して応答しない。なお図19で説明したWSDによるネットワークデバイス(プリンタ)の自動化されたインストールを、ネットワークプラグアンドプレイ機能と呼ぶ。
自動インストールを「あり」と入力したユーザは、次に数量制限ラジオボタン102aとスピンボックス102bにより、自動インストールするプリンタドライバ数の制限値を指定する。数量制限ラジオボタン102aに「なし」が指定された場合、プリンタドライバをインストールするデバイスの数に制限は課されない。一方「あり」が指定された場合、スピンボックス102bによりユーザは制限値を入力する。そして、クライアント100は、入力された値をインストールされるデバイスドライバの制限数としてRAM2に保持する。なお、クライアント100に導入されているプログラムは、入力された制限値をRAM2に記憶させることができる。
ドライバをインストールするデバイス数を制限する場合には、ドライバのインストール対象となるプリンタの順位(優先順位)を決定するためのキーとなる属性情報の項目を、ユーザが指定できる。指定された属性情報をキーとして、プラグアンドプレイにより発見された複数のネットワークプリンタに優先順位が付され、指定された制限値以内の順位のプリンタに対応するデバイスドライバがインストールされる。キーとなる属性情報の指定のために、ユーザは詳細設定ボタン103を押す。詳細設定ボタン103を押した時のUIを図5に示す。
チェックボックス104により、数量制限を越えたドライバの削除を指定することができる。また、チェックボックス105により、プリンタ接続通知時にもインストール(アンインストール)を自動で行うことを指定できる。図19(B)に示した手順は、チェックボックス105がチェックされた場合に限って実行される。それぞれのチェックボックスをチェックすることによる動作の内容に関しては後述する。またそれぞれのチェックボックスの設定内容は、図17に示す条件情報1006aの一部である数量制限フラグ1711、自動インストールフラグ1712、ドライバ削除フラグ1713,プリンタ主導フラグ1714としてRAM2に保存される。制限値は、制限値フィールド1700に保存される。
図5は図4における詳細設定ボタン103を押した時のUIを簡略化した図である。図4のUIに対して優先順位を指定する表201が追加表示されている。優先順位を決定するには、使用頻度や最高解像度など、あらかじめ決められた項目に対して、それぞれ「週10回以上」や「1200dpi」以上など、ユーザがプリンタドライバとして自動インストールを要望する属性情報(設定値)を設定する。ユーザは各項目に対して要求レベルをそれぞれ入力するとともに、UPボタン202やDOWNボタン203を使用してそれらの属性情報の項目のうち重要視するものの順に並べ替える。各項目例やそれぞれの項目に対する程度を指定するためのコンボボックスのアイテムに関しての詳細例を図6に示した。
図6は、図5における優先順位指定のための各項目とそれぞれの選択肢を示している。最上段の欄301〜309は項目名を、2段目以下は各項目の選択肢を示す。たとえばドライバ301という項目に関しては「インストール済み」と「未インストール」という2つの選択肢がある。ユーザはその選択肢のうちの1つを、図5の表201のうちの指定欄201aにより指定できる。例えば、属性情報としてインストール済みが選択された場合、クライアント1000は、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高優先順位を付ける。指定された値は、図17の条件情報1006aに保存される。テーブルには、優先順位(キー順位)1701とキー識別子1702、対応する設定値1703が、各項目毎に保存される。ただし、優先順位1701は各項目の並び順で示すことができるので、必ずしも必要ではない。本実施形態では、発見されたプリンタは、まず最高優先順位の項目から、図5の表201にて指定された設定値を分類の条件として、該設定値に合致するものと合致しないものという2つのカテゴリに分類される。そして、各カテゴリに属するデバイスは、次の優先順位の項目について同様にさらに2つのカテゴリに分類される。この分類を、優先順位にしたがって各項目毎に繰り返す。そして、より優先順位の高い項目について分類の条件に「該当する」プリンタが、順位の高いプリンタと評価される。また、優先順位を設定するための条件の1つには、各周辺機器が持つ機能があり、クライアント1000は、指定された機能を有する周辺機器に対して、指定された機能を有さない周辺機器よりも高優先順位をつけることができる。例えば、図5の例では、「カラー印刷」や「最高解像度」、「両面印刷」などが周辺機器の機能に該当する。
続いて優先順位を設定する際の具体例を以下に示す。例えば、優先順位は以下のような数式でプリンタの順位を評価できる。各項目の優先順位をp、項目数をnとする。また、着目プリンタが、優先順位pの項目の設定値で示される条件に合致する場合にs(p)=1、合致しない場合にs(p)=0とする。この関数s(p)の評価は、プリンタリストに登録された、着目プリンタに対応する構成情報および設定値1703に基づいて行われる。そして、ネットワーク上で探索されたプリンタのうちの着目プリンタiについて、Pi=Σ(s(p)*2^(n−p)),p=1...n、という値を計算する。なお、「ΣX(p),p=1...n」とは、p=1からp=nまでpの値を1増加しながらX(p)の総和を求める演算を示す。またX^Yは、XのY乗を求める演算を示す。全プリンタについて求められた値Piが、プリンタiの順位を示す。値Piが大きいほど優先順位が高いプリンタである。この値Piの順に、図17の条件情報1006aのキー順位1701,キー1702,設定値1703の組はソートすることで、図5によって設定された情報を所定の属性情報として接続される周辺機器に優先順位を設定することができる。もちろん順位が示されれば十分なので、値Piをキー順位の代わりに条件情報1006aに添付することもできる。値が同一のプリンタが複数ある場合であっても、上限値以内に納まる数のプリンタにドライバをインストールすればよい。以上、優先順位の設定処理についてまとめると、図5のUIを用いてインストールすべきデバイスドライバを決定するための属性情報を設定する。そして、設定された属性情報に基づいて、デバイスドライバの優先順位を設定する。なお、優先順位は、周辺機器に関する情報が設定された属性情報のうち、優先順位の高い属性情報と一致する情報が多い周辺機器ほど高い優先順位となるように設定する。
なお、本実施形態では各項目の選択肢をあらかじめ準備してある例を示したが、ユーザが手動で値を設定できるようになっていたとしても、本発明の趣旨に外れるものではない。また、これらの設定を外部ファイルで持つことで新たなプリンタ機能やスペックに対応した優先順位の指定を行うことが可能となる。
<ドライバインストール処理>
図7から図12を用いて本発明の実施の形態におけるフローを示す。このフローは、図19に示す手順を、クライアントの処理手順で示したものである。
図7はクライアントからネットワークに対してプリンタ探索要求(Probe要求)を行うときのフローを示している。クライアントがプリンタ探索要求を行うタイミングとしては、ネットワーク接続されたPCの起動時や、PnPユーティリティ上で接続プリンタのリストの更新を行ったときなどが考えられる。なお、図7から図12のフローチャートにおける各ステップの処理は、クライアント1000のCPU1によって実行される。
まず、WSDモジュール1003は、はじめにクライアントからネットワークに対して探索要求(Probe要求)を発行する(402)。これに対してネットワークに接続されたプリンタから、自らが接続していることを示す応答(ProbeMatch)が返信される。そこでクライアントは接続要求に応答したプリンタを全てプリンタリストとして、RAM12に記憶する(403)。ここで、デバイス情報(プリンタ名)や構成情報など、ドライバをインストールするための情報がプリンタリストには必要である。そこで、図19(A)に示すように、WSDモジュール1003は、デバイス情報要求メッセージ1903およびサービス情報要求メッセージ1905を、応答したデバイスに送信する。これにより、デバイス情報およびサービス情報を収集する。応答されたデバイス情報およびサービス情報に基づいてプリンタリストを作成する。
図18にプリンタリストの例を示す。プリンタリスト1801には、デバイスID1811、プリンタ名1812、構成情報1813、ドライバステータス1814、評価されたポイント1815、上位プリンタフラグ1816というフィールドが含まれている。デバイスID1811は、ネットワーク中においてデバイス固有の識別子である。
構成情報1813は、機能やドライバの要・不要の別等を示す。構成情報1813には、図5で優先順位を指定した項目について、条件に該当するか否かを判断できる情報が含まれる。なおデバイスから取得できない情報(たとえば導入年月日)などの判定のために、初めてそのデバイスが検出された日時を、プリンタリストに登録しておく。また使用頻度はクライアントの値であることが望ましいから、プリンタドライバに統計機能があれば、その機能で集計された使用頻度をプリンタリストに登録する。また、ドライバインストール時のプリンタの順位付けのために、ドライバがインストールされているか否かという項目も選択され得る。この項目はプリンタデバイスが管理できない。本実施形態では、ドライバステータスによりドライバがインストールされているか否かを示す。
ドライバステータス1814は、ドライバがインストールされているか否かを示す。ドライバステータスは、ドライバがインストールされていれば「Installed」、いなければ「Discovered」である。したがって、探索要求に対して初めて応答し、ドライバがインストールされていないデバイスのステータスは「Discovered」である。ポイントは、ステップS503で評価された値である。上位プリンタフラグは、ドライバの数量制限がされている場合に、ドライバのインストール対象であるプリンタを示す。
クライアントは、図4のUI100において自動インストールあり101が指示されていると判定した場合は(404―Yes)、次のステップに進むが、そうでない場合は必要であればユーザへの通知を行い(407)、処理を終了する(408)。自動インストールの指示は、自動インストールフラグ1712を参照して判定される。自動インストールが指示されている場合、クライアントは、図5のUIにて数量制限が指示されているか否かを数量制限フラグ1711を参照して判定する(405)。数量制限が指示されていた場合は次のステップに進む。クライアントが、数量制限が指示されていないと判定した場合は、発見されたプリンタリスト(図1および図18のプリンタリスト1801)の各プリンタに対応する全てのドライバを全て自動インストールする(700)。発見されたプリンタリストとは、探索要求に応答メッセージを返信したプリンタのリストである。プリンタリストには、例えばそれらプリンタの名称やアドレス、ステータスが含まれている。全てのプリンタに該当するドライバをインストールする手順は図10にて説明する。
一方、数量制限があらかじめ指示されていた場合、クライアント1000は、次に、プリンタリストのプリンタを、ユーザの指定した優先順位順にソートする(500)。ソートの詳細は図8にて後述する。ソートが終了したら、クライアントは、上位から制限数個分のプリンタに該当するドライバのインストールを行う(600)。つまり、600の処理は、WSDの認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、RAM2に保持されている制限数分のデバイスドライバをインストールする処理に該当する。なお、制限数はRAM2に保存されている。このフローを図9に示す。クライアント1000は、上位から制限数個分のプリンタに該当するドライバのインストールが終わったら、最後に、制限個数を超えたドライバを削除(アンインストール)する設定かどうかを確認する(406)。これは図4における数量制限を越えたドライバを削除するためのチェックボックス104がユーザによってチェックされているかどうかを指す。チェックされているようであれば、クライアント1000は、制限数個以上のドライバを削除する(800)。なお、406の処理は、ドライバ削除フラグ1713をテストすれば、チェックボックス104がチェックされているか否かを判定できる。こちらの詳細は図11にて説明する。最終的に、クライアント1000は、探索要求によって行った作業を説明するためのユーザ通知を行い(407)、終了する(408)。通知は、例えば表示によって行われる。表示内容は、新たにドライバがインストールされたデバイス(あるいはサービス)と、アンインストールされたドライバのリストなどを含む。
以上、図7の処理を実行することで、クライアント1000は、設定された制限数およびユーザが指定した優先順位に基づいて、上位から制限数分のプリンタドライバをインストールすることができる。また、制限数分に入らない優先順位が指定されたデバイスに対応するドライバがインストールされていた場合、アンインストール処理される。これにより、不必要なドライバがインストールされることにより、メモリが浪費されるのを防ぐことが可能となる。
<プリンタリストのソート>
図8に、図7におけるプリンタリストのプリンタを優先順位順にソートするステップ500の詳細を示す。まず、クライアント1000は、ユーザの指定した優先度に応じたポイントをつける作業をリストの全てのプリンタに対して行う(502−504)。ポイントは、前述の数式「Pi=Σ(s(p)*2^(n−p)),p=1...n」を用いて算出される。もちろん優先度を反映したポイントが計算できるのであれば、この数式には限られない。これによって、デバイスiに対するポイントPiが評価されるため、認識された周辺機器に所定の属性情報に基づいて優先順位を付けることができる。なお、図中、ステップS502のような矩形の上側の角を落とした六角ボックス(開始ボックスと呼ぶ)はループの開始を示し、その内容は終了条件を示す。またステップS504のような矩形の下側の角を落とした六角ボックス(終了ボックスと呼ぶ)はループの終了を示す。もしも開始ボックスに記述された終了条件が満たされればループ処理は終了して、終了ボックスの直下のステップに処理は進む。デバイスリストに含まれる全デバイスについてポイントの評価が終了したら、デバイスリストをポイント順にソートする(505)。
以上図8の処理により、ユーザが希望する条件に一致するデバイスほど高い優先順位が設定されるため、インストールすべきドライバ数を限定すると共に、ユーザの意図を反映したデバイスに対応するドライバをインストールすることが可能となる。
図18はソート後のプリンタリストの例を示す。たとえば、デバイスID=xxxxのプリンタの名称は「C社プリンタ1050」であり、ドライバは既にインストールされている。デバイスID=xxxxのプリンタは、9項目の条件を全て満たしており、そのポイントが満点の511点となっている。なお、このポイントは、図16の表1601に示した構成情報を基に評価した。なおドライバステータスはプリンタリスト1801内に持たなくとも良い。たとえば、ドライバのインストール状況を参照する都度、オペレーティングシステムに対して、オペレーティングシステムが管理するレジストリに登録された、インストール済みのプリンタドライバのリストを要求してもよい。
図16は、さまざまな機能、性能を有する10個のプリンタがひとつのネットワーク上につながっている時にそれらがソートされる様子を示している。ネットワーク環境は図3で示したものである。自動インストール設定として図5で示したような優先順位をユーザが指定した場合を想定してシミュレートしている。ソート前のリスト1601は検索された順にプリンタが並んでいる。ソート後のリスト1603においては、ユーザが要求する優先度の高い条件に合致するプリンタほど上に表示されている。リスト1603は、図18のプリンタリスト1801を、デバイスの評価ポイントではなく、デバイス毎の構成情報に対応付けて示したものである。もちろん、同一の基準に従うこととなるので、同じ順序にソートされる。図16においては、「○」が条件を満たしていることを示す。また左側から右側に向けて、項目の優先度pが低くなる。
<指定数のプリンタに対するドライバインストール>
図9に、図7における上位から制限個分のドライバをインストールするステップ600の詳細を示す。まずクライアント1000は、上位プリンタフラグをいったん0にリセットしておく。クライアント1000は、プリンタリスト1801の上位にあるプリンタから順に着目し、着目プリンタのプリンタドライバがすでにインストールされているかどうかを判定する(603)。クライアント1000は、603の処理により着目プリンタのプリンタドライバがインストールされていないと判定した場合(603−No)、着目プリンタのプリンタドライバをインストールする(604)。インストールするドライバは、たとえばプリンタの名称に基づいて特定できる。ここでプリンタの名称は、ドライバを一意に特定できるように付されているものとする。もしプリンタ名からドライバを一意に特定できない場合には、デバイス情報やサービス情報を保存しておき、デバイス情報及びサービス情報に基づいてドライバを決定する。クライアント1000は、その処理をインストール対象のプリンタについて繰り返す。繰り返す回数としては、発見されたプリンタの数が制限数より多ければ制限個数分、それより少なければ発見された全てのプリンタ個数分行う(602)。ドライバがインストールされているか否かは、ドライバステータス(あるいはレジストリ)を参照して判断できる。
以上図9の処理は、設定された優先順位が制限数以内の周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールするものである。この構成により、RAM2に保持された制限数をインストール可能なデバイスドライバの数として、収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定する。そして、決定されたデバイスドライバの候補のうちインストールされていないデバイスドライバをインストールすることが可能となる。よって、既にインストールされているドライバに対して、再度インストールを実行するといった処理を省くことができる。
また、この際、プリンタリストの上位制限個に入っていることを示す上位プリンタフラグを、プリンタドライバがインストールされた、あるいは既にインストールされているプリンタごとに立てる(605)。例えば、数量制限の上限値が5であるとすれば、図18の例においては、上位4つのプリンタに対応するドライバはすでにインストールされている。そこでそれらのプリンタに対応するドライバについてはインストールの必要はなく、上位プリンタフラグのみセットされる。5つめのB社プリンタ8040のドライバは新たにインストールされ、上位プリンタフラグが立てられる。ドライバステータスも同時に更新される。このように、設定された制限数を上限数として扱い、制限数をインストール済みのデバイスドライバの上限として、認識された周辺機器に対応するデバイスドライバのうちインストールされていないデバイスドライバをインストールすることが可能となる。
図11に、図7における制限個以上のドライバを削除するステップ800の詳細を示す。ここではすでにインストールされている各プリンタに対して、クライアント1000が、ドライバインストール時に上位プリンタフラグを立てていたかどうかを確認する。すなわちプリンタリスト1801の上位のプリンタから順に上位プリンタフラグおよびドライバステータスを参照する。そして、クライアント1000は、上位プリンタフラグがセットされておらず、かつ、ドライバステータスが「Installed」であるか判定する(803,804)。つまりこの処理は、設定された優先順位が制限数に含まれていない周辺機器に対応するデバイスドライバがインストールされているか否かを判定する処理である。なお、設定された優先順位が制限数に含まれていない場合の一例は、制限数が3つであるばあい、4位以下の優先順位が設定された周辺機器が該当する。ステップ803および804の判定処理に基づいて、クライアントは、該当するプリンタのプリンタドライバを削除する(805)。この処理により、制限数に入らない優先順位が設定された周辺機器に対応するデバイスドライバがインストールされていた場合、該デバイスドライバは削除(アンインストール)処理される。なお、インストールされていないドライバは削除対象とはならないので、ステップ804の判定は不要である。この作業を行った後には、ユーザが図4のUI102にて指定した上限値の数のドライバがインストールされた状態になる。
以上図11の処理により、設定された上限数に入らない優先順位が設定されたデバイスに対応するドライバが自動的にアンインストール(削除)されるので、ユーザにとって不必要なドライバが消費していたメモリ量を節約することができる。
<全プリンタに対するドライバインストール>
図10に、図7におけるプリンタリストの全てのプリンタのドライバをインストールするステップ700の詳細を示す。プリンタリストのプリンタに順に着目し、クライアント1000は、着目プリンタのプリンタドライバがインストール済みか判定する(703)。ステップ703の判定処理により、インストールされていないと判定された場合、クライアント1000は、着目プリンタのプリンタドライバをインストールする(704)。この作業をプリンタリストの全てのプリンタに対して繰り返す(702)。
<デバイスからの参加通知をトリガとするドライバインストール>
図7から図11においてクライアント1000からの探索要求時(Probe要求)のフローを説明した。これに対して、図12に示すフローはネットワークプリンタ3000からネットワーク31への参加通知(Hello)が届いた時のクライアント1000の動作を示している。Hello通知は、ネットワークに接続されたデバイスの電源投入時や新規デバイスを新たにネットワークに接続した時などに行われる。
クライアント1000は周辺機器から所定の信号である参加通知を受け取ると(902)、接続通知時も該当するプリンタのドライバをインストールする設定かどうかを判定する(903)。ステップ903の判定処理は図4のUI100における「プリンタ接続通知時にもインストール(アンインストール)を行なう」105がチェックされているか否かを示すプリンタ主導フラグ1714を参照して行なえる。なお、参加通知とは、クライアント1000と通信可能となった周辺機器から接続開始信号を指す。
ネットワークプリンタの接続通知時にインストールする設定であれば、参加通知を発行したプリンタをプリンタリストに追加する。図5のUIで設定された条件情報1006aに合致すれば、追加されたプリンタに対応するドライバをインストールする。したがってステップ904において、クライアント1000は、図19(B)のようにデバイス情報要求メッセージ1912およびサービス情報要求メッセージ1914を、参加通知の送信元のプリンタに対して送信する。そしてクライアント1000は、参加通知を送信した周辺機器に関する情報、たとえばプリンタ名や構成情報などの属性を受信して、プリンタリストに追加する(904)。
最後に作成したプリンタリストに基づいてドライバをインストールするために、図7のステップ404へ分岐する。以降、クライアント1000は、参加通知を送信した周辺機器に関する情報と図5の優先順位を決定するための属性情報から該周辺機器の優先順位を決定し、決定された優先順位が制限数内に入るか否かを判定する。そして、判定の結果、参加通知の発信元に当たる周辺機器の優先順位が前記制限数を満たすと判定された場合、前記周辺機器に対応するデバイスドライバをインストールする。なお、優先順位が制限数を満たすとは、例えば制限数が3つである場合、3位以内の優先順位が設定された周辺機器が該当する。
なお、参加通知を受けた場合にプリンタリストをすべて作成し直しても良い。その場合、ステップ904の代わりに図7のプリンタ探索要求処理全体をコールする。もちろんステップ404へ分岐せず、プリンタ探索要求処理が終了したなら、図12の処理も終了となる。
図12の処理により、例えば制限数分のデバイスドライバを所定の条件に基づいて設定された優先順位に従って記憶している状態で、ネットワークに新たなデバイスが接続された場合を想定する。この場合、接続されたデバイス情報を取り込んで、設定された制限数内の優先順位が付されることで、該デバイスに対応するドライバをインストールすることが可能となる。また、参加通知されたデバイスが制限数内の優先順位となることにより、参加通知されるまで制限数内にあったデバイスの優先順位が制限数から漏れることとなる。この場合、既にインストール済みのデバイスドライバから少なくとも1つのデバイスドライバをアンインストール(削除)するようにしても構わない。
このような動作をすることで、ユーザが制限ドライバ数を指定している場合には常にユーザの要求する上位のプリンタに対するドライバがクライアント1000上にインストールされている状態を保つことになる。
<ユーザへのメッセージ>
図13、図14は、図7のユーザ通知(ステップ407)をクライアントのCRT10上においてUI表示している例を示す。図13のUIは、数量制限を越えるプリンタが見つかった際に一覧表示するかどうかをユーザに尋ねるUI410である。図14のUIは、数量制限を越えるプリンタが見つかった際に、いくつかのプリンタドライバを自動でアンインストールした後で表示するUI420である。一覧表示した時のUIは図15にて詳細を記述する。また、自動でアンインストール処理されることを望まないユーザを配慮し、1クリックで設定画面(図4)まで誘導するような仕組みになっている。
図15は、図13において、ネットワークに接続されたプリンタの一覧を表示するようにユーザが指示したときに表示するUIを示している。本画面はPnPユーティリティ1002のUI画面と等価であり、UI操作により、ネットワーク上のプリンタに対応するドライバをインストールまたはアンインストールするかどうかの指定を行うためのものである。
上部ネットワークプリンタのリスト部5100には図8のフローによりユーザの指定した優先順位順にソートされたプリンタリスト1501が表示されている。まだインストールされていないプリンタドライバに対してインストールを指示するための追加ボタン5300やすでにインストールされているプリンタドライバをアンインストールするための削除ボタン5400を有している。また、リストの更新ボタン5200は図7のフローによりネットワークに接続されたプリンタを再探索するために用意されている。
一方、下部5500には、プリンタリスト1501で選択されているプリンタの属性を表示する。属性をユーザに提供することで、現在ネットワークに接続されたプリンタにはどのようなものがあるかをユーザが知ることが出来るようになっている。
以上のように本実施形態によれば、ネットワークプリンタが複数存在している場合、そのネットワークに接続したクライアントは、指定した条件に合致する、指定した数のネットワークプリンタに限ってプリンタドライバをインストールできる。このため、クライアントコンピュータのリソースの消費量を節約できる。また、ユーザが使用するプリンタの選択の幅を制限でき、操作性を向上させることができる。
また、プリンタの機能や使用頻度、導入後経過期間などの構成情報の各項目に優先順位を付して前記条件を指定できる。例えば、使用頻度を用いて優先順位を設定する場合、ユーザにより設定された所定の値以上の頻度で使用されているプリンタを所定の値以下の頻度で使用されているプリンタよりも高い優先順位を設定する。また、使用頻度に基づいて(例えば使用頻度の高い順)優先順位を付けても構わない。このため、ユーザは最も重要視する項目から順に高い優先度を与えることで、所望のプリンタを優先してドライバのインストールを行える。
また、プリンタドライバをインストールするプリンタの選択を動的に行うことで、ユーザの指定した条件により適したプリンタが新たに加わった場合に、速やかにそのプリンタをクライアントから使用できる。
また、ネットワークプラグアンドプレイにより、ユーザがドライバインストール等の作業を行わずに、プリンタを利用でき、より操作性や生産性が向上する。
[第2実施形態]
第1実施形態では、指定された上限数をインストール済みのプリンタドライバの上限数としてインストール処理を行ってきた。たとえば、上限数が「5」と指定されており、すでに3つのプリンタドライバがインストール済みの場合、インストールできるプリンタドライバ数は2個となっていた。
これに対し、本実施形態では、設定された制限数分のプリンタドライバをインストール処理について説明する。例えば、制限数が「5」と指定されており、すでに3つのプリンタドライバがインストール済みの場合であっても、5個のプリンタドライバをインストールする処理について、図20を参照して説明する。
クライアント100は、設定された制限数mを認識する(2001)。続いて、クライアント100は、上述した図18のプリンタリストを参照し、リストされているデバイス数dを認識する(2002)。図18の例ではd=10となる。
クライアント100は、リストの一番目から判定処理を進めるため、判定処理を行うリスト番号nを1に初期化する。また、クライアント100は、インストール処理されたデバイスドライバの個数を数えるため、インストール処理されたデバイスドライバ数iを0に初期化する(2003)。
クライアントは、プリンタリストのn番目のプリンタに対応するドライバがインストール済みであるか否かを判定する(2004)。なお、ドライバがインストールされているか否かの判定処理は上述した通りである。
2004の処理により、n番目のプリンタに対応するドライバはインストール済みであると判定された場合、クライアントは、2007の処理へ進む。
また、2004の処理によりn番目のプリンタに対応するドライバがインストール済みでないと判定された場合(2004−No)、クライアント100は、n番目のプリンタに対応するドライバをインストールする(2005)。ここでインストールしたプリンタドライバ数を数えるため、クライアントはインストールしたドライバ数を示すiの値をインクリメント処理する(2006)。
クライアントは、インストールしたプリンタドライバ数iと、2001の処理にて認識した制限数mを比較する。クライアント100は、インストールしたプリンタドライバ数iが、制限数mより大きいと判定された場合(2007−Yes)、図20に記載の処理を終了する。
また、2007の処理結果がNoであると判定された場合、クライアント100は、対象とするプリンタを次のプリンタへ進めるためインクリメント処理する(2008)。ここでクライアントは、処理対象のn番目のプリンタがプリンタリストにあるか否かを判定し(2009)、あると判定された場合、再度2004の処理を実行する。
以上の処理により、インストール済みのプリンタドライバを考慮しつつ、ユーザにより設定された制限数分のプリンタドライバをインストールすることが可能となる。よって、インストールするプリンタドライバ数を制限しながら、多くの種類のプリンタドライバをインストールすることが可能となる。
[変形例]
以上プリンタドライバについて説明したが、プリンタ以外のデバイスに適用することもできる。また複数の種類のデバイスそれぞれについて本発明を適用することもできる。その場合、インストールする上限数や優先順位のキーとなる属性情報およびその設定値、ドライバのアンインストールオプション等は、デバイス毎に設定される。すなわち、図17に示すインストール条件情報1006aはデバイス毎に用意される。また、制限数についても周辺機器の種類毎にインストールされるデバイスドライバの制限数を記憶する。なお、上述した通り、周辺機器には、プリンタが含まれる。
また、本実施形態では、構成情報データベースをデバイスが保持し、クライアントは構成情報をデバイスから得るものとした。これに対して、構成情報データベースを保持するための記憶容量を節約し、また管理の一元化を図るために、デバイスでは構成情報データベースの所在アドレスを保持するように構成しても良い。その場合、デバイス情報要求に対して、デバイスは構成情報データベースのアドレス(たとえばURI)を応答としてクライアントに送信する。それを受信したクライアントは、応答メッセージに含まれるアドレスに対して構成情報の要求を行う。構成情報獲得の手順は、デバイス情報要求に対する応答を受信した後は、通信相手が構成情報データベースを保持するサーバに変わる点を除けば、図19と同様である。
さらに本実施形態では、クライアントは、デバイスの構成情報を、WS−Discoveryの手順の中で、デバイス情報として当該デバイスから得ている。これに対して、SNMPやアクティブディレクトリ等を用いてデバイスの構成情報を得ることもできる。たとえばSNMPを用いる場合、デバイスのハードディスク29には、SNMP(シングルネットワークマネジメントプロトコル)エージェントおよびMIB(マネージメントインフォメーションベース)が保存されている。SNMPエージェントはRAM22にロードされてCPU21により実行される。MIBはデバイス(この場合プリンタ)の統計情報や機能情報を保存したデータベースである。SNMPエージェントは、ホストコンピュータにインストールされたSNMPマネージャからの要求に応じて、MIBを更新したりあるいはMIBの情報を呼んでSNMPマネージャに送信する。MIBには、たとえば当該デバイスの使用頻度や、印刷速度、カラー印刷機能の有無、最高解像度、両面印刷機能の有無、製造メーカなどが登録されている。上記項目のうち、使用頻度は、プリンタが使用される都度更新される。そのほかの項目は、プリンタの機種に応じた値が製造時に登録されている。
このようにしてSNMPマネージャによりクライアントがデバイスから直接デバイス情報を獲得する。あるいは、SNMPマネージャとして機能するサーバがデバイス情報を一元的に獲得し、クライアントはそのサーバからデバイス情報を獲得するように構成することもできる。
以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではない。
また、本願発明では設定された制限数を上限値としてインストールすべきデバイスドライバを決定していた。例えば、図18において上位4つのドライバはインストールされているため残りインストール可能なデバイスドライバは1つとなる。しかし、本願発明はこれに限ることなく、単に設定された制限数分のデバイスドライバをインストールするようにしても構わない。
なお本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
本発明の実施の形態におけるクライアントとネットワークプリンタの接続を示したハードウエア構成図である。 クライアントとネットワークプリンタのネットワーク接続に関連するモジュールを説明したブロック図である。 本実施の形態におけるネットワーク環境の概念図である。 クライアント上のプリンタドライバ自動インストール設定UIの一例を示す図である。 図4における詳細設定ボタンを押した時の図である。 図5の優先順位指定のための各項目とそれらの選択肢を示している図である。 クライアントがプリンタ探索要求(Probe)を行う時のフローチャートである。 プリンタを優先順位順にソートする時のフローチャートである。 上位から制限数個分のドライバをインストールする時のフローチャートである。 全てのプリンタのドライバをインストールする時のフローチャートである。 制限数個を超えるドライバを削除する時のフローチャートである。 プリンタからネットワークへの参加通知(Hello)が届いた時のクライアントの動作を示す図である。 検出されたプリンタを一覧表示するかどうかを尋ねるUIの一例を示す図である。 自動アンインストールを行った時に表示するUIの一例を示す図である。 プリンタの一覧を表示するUIである。 検出されたプリンタを優先順位順にソートしている例を示す図である。 条件情報の一例を示す図である。 プリンタリストの一例を示す図である。 WS−Discoveryのシーケンス図である。 第2実施形態のフローチャートである。
符号の説明
100 プリンタドライバ自動インストール設定画面
200 プリンタドライバ自動インストール設定画面詳細
1000 クライアント
3000 ネットワークプリンタ
5000 ネットワークプリンタの追加と削除画面

Claims (29)

  1. ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、接続された周辺機器を利用可能とすることができる情報処理装置であって、
    インストールされるデバイスドライバの制限数を保持する制限数保持手段と、
    前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持手段により保持された制限数分のデバイスドライバをインストールするインストール制御手段と、
    前記制限数を超える複数の周辺機器の接続を認識した際に、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示手段とを備え、
    前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
    前記インストール制御手段は、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定することを特徴とする情報処理装置。
  2. 前記インストール制御手段は、前記認識機能により認識された周辺機器に対応するデバイスドライバのうち、前記情報処理装置にインストールされていないデバイスドライバをインストールすることを特徴とする請求項1に記載の情報処理装置。
  3. 前記認識機能により、接続された周辺機器に関する情報が収集され、
    前記インストール制御手段は、前記認識機能により収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定し、該決定されたデバイスドライバの候補のうち、前記情報処理装置にインストールされていないデバイスドライバをインストールすることを特徴とする請求項1に記載の情報処理装置。
  4. 前記認識機能により認識された周辺機器に、所定の属性情報に基づいて優先順位を付ける順位付け手段をさらに備え、
    前記インストール制御手段は、前記順位付け手段により付された順位に基づき、前記周辺機器に対応するデバイスドライバをインストールすることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記属性情報はインストール済み属性を示し、
    前記順位付け手段は、前記属性情報に基づき優先順位を付ける際に、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高い優先順位を付けることを特徴とする請求項4に記載の情報処理装置。
  6. 前記属性情報は使用頻度属性を示し、
    前記順位付け手段は、前記使用頻度属性に基づいて優先順位を付けることを特徴とする請求項4に記載の情報処理装置。
  7. 前記属性情報は機能属性を示し、
    前記順位付け手段は、前記機能属性により指定された機能を有する周辺機器に対して、該指定された機能を有さない周辺機器よりも高い優先順位を付けることを特徴とする請求項4に記載の情報処理装置。
  8. 前記属性情報を利用者が指定するための指定手段をさらに備えることを特徴とする請求項4乃至7のいずれか1項に記載の情報処理装置。
  9. 前記制限数保持手段は、周辺機器の種類毎に、インストールされるデバイスドライバの上限数を保持することを特徴とする請求項1乃至8のいずれか1項に記載の情報処理装置。
  10. 前記周辺機器はプリンタを含むことを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
  11. 周辺機器と通信可能であり、ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、所定の条件に基づき設定された優先順位に従ってデバイスドライバをインストールすることで前記周辺機器を利用可能とする情報処理装置であって、
    複数の周辺機器が発行する所定の信号を受信する第1受信手段と、
    前記第1受信手段により受信した所定の信号の発行元の周辺機器に関する情報を受信する第2受信手段と、
    前記第2受信手段によって受信した周辺機器に関する情報に基づき、前記優先順位の中で当該周辺機器の順位が制限数以内かどうかを判定する判定手段と、
    前記判定手段により前記周辺機器の順位が前記制限数以内であると判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御手段と、
    前記制限数を超える複数の周辺機器の接続を認識した際に、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示手段とを備え、
    前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
    前記インストール制御手段は、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定することを特徴とする情報処理装置。
  12. 前記第1受信手段によって受信される所定の信号とは、前記情報処理装置と通信可能となった周辺機器からの接続開始信号であることを特徴とする請求項11に記載の情報処理装置。
  13. 前記優先順位を設定するための所定の条件としての属性情報を設定する設定手段と、
    前記設定手段により設定された属性情報に基づき前記優先順位を設定する優先順位付け手段とを更に有し、
    前記優先順位付け手段は、前記第2受信手段によって受信した周辺機器に関する情報が前記設定手段により設定された属性情報と一致する情報がより多い周辺機器に対して高い優先順位を設定することを特徴とする請求項11または12に記載の情報処理装置。
  14. 前記インストール制御手段により前記周辺機器のデバイスドライバをインストールする場合、既にインストール済みのデバイスドライバから少なくとも1つのデバイスドライバをアンインストールすることを特徴とする請求項11乃至13のいずれか1項に記載の情報処理装置。
  15. 制限数保持手段とインストール制御手段と表示手段とを備え、ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、接続された周辺機器を利用可能とすることができる情報処理装置の制御方法であって、
    前記制限数保持手段が、インストールされるデバイスドライバの制限数を保持する制限数保持工程と、
    前記インストール制御手段が、前記認識機能により認識された周辺機器に対応するデバイスドライバをインストールする場合、前記制限数保持工程により保持された制限数分のデバイスドライバをインストールするインストール制御工程と、
    前記制限数を超える複数の周辺機器の接続を認識した際に、前記表示手段が、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示工程とを備え、
    前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
    前記インストール制御工程では、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定することを特徴とする情報処理装置の制御方法。
  16. 前記インストール制御工程では、前記認識機能により認識された周辺機器に対応するデバイスドライバのうち、前記情報処理装置にインストールされていないデバイスドライバをインストールすることを特徴とする請求項15に記載の情報処理装置の制御方法。
  17. 前記認識機能により、前記情報処理装置に接続された周辺機器に関する情報が収集され、
    前記インストール制御工程では、前記認識機能により収集された周辺機器に関する情報に基づいて、インストールすべきデバイスドライバの候補を決定し、該決定されたデバイスドライバの候補のうち、前記情報処理装置にインストールされていないデバイスドライバをインストールすることを特徴とする請求項15に記載の情報処理装置の制御方法。
  18. 前記認識機能により認識された周辺機器に、所定の属性情報に基づいて優先順位を付ける順位付け工程をさらに有し、
    前記インストール制御工程では、前記順位付け工程により付された順位に基づき、前記周辺機器に対応するデバイスドライバをインストールすることを特徴とする請求項15乃至17のいずれか1項に記載の情報処理装置の制御方法。
  19. 前記属性情報はインストール済み属性を示し、
    前記順位付け工程では、前記属性情報に基づき優先順位を付ける際に、インストール済みのデバイスドライバに対応する周辺機器に対して、インストールされていないデバイスドライバに対応する周辺機器よりも高い優先順位を付けることを特徴とする請求項18に記載の情報処理装置の制御方法。
  20. 前記属性情報は使用頻度属性を示し、
    前記順位付け工程では、前記使用頻度属性に基づいて優先順位を付けることを特徴とする請求項18に記載の情報処理装置の制御方法。
  21. 前記属性情報は機能属性を示し、
    前記順位付け工程では、前記機能属性により指定された機能を有する周辺機器に対して、該指定された機能を有さない周辺機器よりも高い優先順位を付けることを特徴とする請求項18に記載の情報処理装置の制御方法。
  22. 前記情報処理装置は指定手段を更に備え、
    前記指定手段が、利用者による前記属性情報の指定を受け付ける指定工程をさらに有することを特徴とする請求項18乃至21のいずれか1項に記載の情報処理装置の制御方法。
  23. 前記制限数保持工程では、周辺機器の種類毎に、インストールされるデバイスドライバの上限数を保持することを特徴とする請求項15乃至22のいずれか1項に記載の情報処理装置の制御方法。
  24. 前記周辺機器はプリンタを含むことを特徴とする請求項15乃至23のいずれか1項に記載の情報処理装置の制御方法。
  25. 第1受信手段と第2受信手段と判定手段とインストール制御手段と表示手段とを備えており、周辺機器と通信可能であり、ネットワーク上に通知した探索要求に対する応答、及びネットワーク参加通知を周辺機器から受信することにより接続された周辺機器を認識する認識機能を有し、所定の条件に基づき設定された優先順位に従ってデバイスドライバをインストールすることで前記周辺機器を利用可能とする情報処理装置の制御方法であって、
    前記第1受信手段が、複数の周辺機器が発行する所定の信号を受信する第1受信工程と、
    前記第2受信手段が、前記第1受信工程により受信した所定の信号の発行元の周辺機器に関する情報を受信する第2受信工程と、
    前記判定手段が、前記第2受信工程によって受信した周辺機器に関する情報に基づき、前記優先順位の中で当該周辺機器の順位が制限数以内かどうかを判定する判定工程と、
    前記インストール制御手段が、前記判定工程により前記周辺機器の順位が前記制限数以内であると判定された場合、前記周辺機器に対応するデバイスドライバをインストールするインストール制御工程と、
    前記制限数を超える複数の周辺機器の接続を認識した際に、前記表示手段が、認識された周辺装置の一覧の表示を促すメッセージの、前記情報処理装置の画面上への表示を制御し、前記メッセージの表示を介して一覧の表示が指示された際に当該一覧を含む表示を制御する表示工程とを備え、
    前記一覧を含む表示は、デバイスドライバをインストール済みの周辺装置と、接続されているがデバイスドライバがインストールされていない周辺装置とを識別できるように表示され、当該表示上において選択された周辺装置のデバイスドライバの削除および前記制限数内でのデバイスドライバのインストール指示が行え
    前記インストール制御工程では、前記制限数分のデバイスドライバをインストールの制御を行う際に、ユーザによる事前の設定に従い、前記探索要求に対する応答を受信することにより認識された周辺機器に加え、前記ネットワーク参加通知を受信することにより認識された周辺機器に対応するデバイスドライバもインストールの対象とするか否かを決定することを特徴とする情報処理装置の制御方法。
  26. 前記第1受信工程によって受信される所定の信号とは、前記情報処理装置と通信可能となった周辺機器からの接続開始信号であることを特徴とする請求項25に記載の情報処理装置の制御方法。
  27. 前記情報処理装置は、設定手段と優先順位付け手段とを更に備え、
    設定手段が、前記優先順位を設定するための所定の条件としての属性情報を設定する設定工程と、
    前記優先順位付け手段が、前記設定工程により設定された属性情報に基づき前記優先順位を設定する優先順位付け工程とを更に有し、
    前記優先順位付け工程では、前記第2受信工程によって受信した周辺機器に関する情報が前記設定工程により設定された属性情報と一致する情報がより多い周辺機器に対して高い優先順位を設定することを特徴とする請求項25または26に記載の情報処理装置の制御方法。
  28. 前記インストール制御工程により前記周辺機器のデバイスドライバをインストールする場合、既にインストール済みのデバイスドライバから少なくとも1つのデバイスドライバをアンインストールすることを特徴とする請求項25乃至27のいずれか1項に記載の情報処理装置の制御方法。
  29. 請求項15乃至28のいずれか1項に記載した情報処理装置の制御方法の各工程をコンピュータにより実行させるためのプログラム。
JP2005253795A 2005-09-01 2005-09-01 デバイスドライバを管理するためのプログラムおよび方法と情報処理装置 Expired - Fee Related JP4971610B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005253795A JP4971610B2 (ja) 2005-09-01 2005-09-01 デバイスドライバを管理するためのプログラムおよび方法と情報処理装置
EP06119889A EP1764689A3 (en) 2005-09-01 2006-08-31 Program and method for managing device drivers
CNB2006101264680A CN100504820C (zh) 2005-09-01 2006-08-31 设备驱动程序的管理方法和信息处理装置
US11/469,006 US7730224B2 (en) 2005-09-01 2006-08-31 Program and method for managing device driver and information processing apparatus
KR1020060084128A KR100778200B1 (ko) 2005-09-01 2006-09-01 디바이스 드라이버의 관리 방법 및 정보 처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005253795A JP4971610B2 (ja) 2005-09-01 2005-09-01 デバイスドライバを管理するためのプログラムおよび方法と情報処理装置

Publications (3)

Publication Number Publication Date
JP2007066189A JP2007066189A (ja) 2007-03-15
JP2007066189A5 JP2007066189A5 (ja) 2008-10-09
JP4971610B2 true JP4971610B2 (ja) 2012-07-11

Family

ID=37102502

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005253795A Expired - Fee Related JP4971610B2 (ja) 2005-09-01 2005-09-01 デバイスドライバを管理するためのプログラムおよび方法と情報処理装置

Country Status (5)

Country Link
US (1) US7730224B2 (ja)
EP (1) EP1764689A3 (ja)
JP (1) JP4971610B2 (ja)
KR (1) KR100778200B1 (ja)
CN (1) CN100504820C (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070097969A1 (en) * 2005-11-02 2007-05-03 Alain Regnier Approach for discovering network resources
US7725613B2 (en) * 2006-02-27 2010-05-25 Microsoft Corporation Device installation with host controller consideration
US7496627B2 (en) * 2006-03-16 2009-02-24 Exceptional Innovation, Llc Automation control system having digital logging
US8209398B2 (en) * 2006-03-16 2012-06-26 Exceptional Innovation Llc Internet protocol based media streaming solution
US8001219B2 (en) * 2006-03-16 2011-08-16 Exceptional Innovation, Llc User control interface for convergence and automation system
US8155142B2 (en) * 2006-03-16 2012-04-10 Exceptional Innovation Llc Network based digital access point device
US7966083B2 (en) 2006-03-16 2011-06-21 Exceptional Innovation Llc Automation control system having device scripting
US7509402B2 (en) * 2006-03-16 2009-03-24 Exceptional Innovation, Llc Automation control system having a configuration tool and two-way ethernet communication for web service messaging, discovery, description, and eventing that is controllable with a touch-screen display
US8725845B2 (en) 2006-03-16 2014-05-13 Exceptional Innovation Llc Automation control system having a configuration tool
US8271881B2 (en) * 2006-04-20 2012-09-18 Exceptional Innovation, Llc Touch screen for convergence and automation system
US7667968B2 (en) 2006-05-19 2010-02-23 Exceptional Innovation, Llc Air-cooling system configuration for touch screen
JP4870621B2 (ja) 2006-09-15 2012-02-08 株式会社リコー 情報処理装置、方法、システム、プログラム及びその記録媒体
KR20080035180A (ko) * 2006-10-18 2008-04-23 삼성전자주식회사 화상형성장치, 화상형성시스템 및 그 제어방법
WO2008073658A2 (en) * 2006-11-09 2008-06-19 Exceptional Innovation, Llc. Portable device for convergence and automation solution
JP4923998B2 (ja) * 2006-12-11 2012-04-25 富士ゼロックス株式会社 印刷装置およびプログラム
US7987278B2 (en) * 2006-12-18 2011-07-26 Ricoh Company, Ltd. Web services device profile on a multi-service device: dynamic addition of services
US7680877B2 (en) * 2006-12-18 2010-03-16 Ricoh Company, Ltd. Implementing a web service application on a device with multiple threads
US7873647B2 (en) * 2006-12-18 2011-01-18 Ricoh Company, Ltd. Web services device profile on a multi-service device: device and facility manager
US8127306B2 (en) * 2006-12-18 2012-02-28 Ricoh Company, Ltd. Integrating eventing in a web service application of a multi-functional peripheral
US7904917B2 (en) * 2006-12-18 2011-03-08 Ricoh Company, Ltd. Processing fast and slow SOAP requests differently in a web service application of a multi-functional peripheral
US8321546B2 (en) * 2007-01-10 2012-11-27 Ricoh Company, Ltd. Integrating discovery functionality within a device and facility manager
US8112766B2 (en) * 2006-12-21 2012-02-07 Ricoh Company, Ltd. Multi-threaded device and facility manager
JP4857102B2 (ja) * 2006-12-22 2012-01-18 キヤノン株式会社 情報処理装置、ジョブ処理方法、プログラム及び記憶媒体
JP4295328B2 (ja) * 2007-02-19 2009-07-15 シャープ株式会社 画像処理装置
JP4946556B2 (ja) * 2007-03-19 2012-06-06 富士通株式会社 サービス呼び出し支援プログラムおよび端末装置
US8271621B2 (en) * 2007-05-04 2012-09-18 Ricoh Company, Ltd. Metadata communication system
WO2008143881A1 (en) * 2007-05-14 2008-11-27 Exceptional Innovation, Llc Customizable media device
WO2008148096A1 (en) 2007-05-25 2008-12-04 Exceptional Innovation, Llc Customizable remote control device
US8239876B2 (en) * 2007-06-12 2012-08-07 Ricoh Company, Ltd. Efficient web services application status self-control system on image-forming device
US8060891B2 (en) * 2007-06-29 2011-11-15 Microsoft Corporation Management of external hardware appliances in a distributed operating system
JP4960782B2 (ja) * 2007-07-03 2012-06-27 キヤノン株式会社 情報処理装置及びそれを制御する方法及びプログラム
JP5067057B2 (ja) * 2007-07-20 2012-11-07 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム
KR101279438B1 (ko) * 2007-07-23 2013-06-26 삼성전자주식회사 유니버셜 프린터 드라이버를 사용하는 인쇄 환경에서화상형성장치의 프린터 드라이버를 설치하는 방법 및 장치
JP4725559B2 (ja) 2007-08-03 2011-07-13 ブラザー工業株式会社 情報処理装置、及びインストール用プログラム
KR20090031111A (ko) * 2007-09-21 2009-03-25 삼성전자주식회사 화상형성장치 드라이버 프로그램의 관리 방법 및 장치
KR100881723B1 (ko) * 2007-09-21 2009-02-06 한국전자통신연구원 미디어 실감 재현을 위한 디바이스 연동/제어 정보 생성장치 및 방법
US8453164B2 (en) * 2007-09-27 2013-05-28 Ricoh Company, Ltd. Method and apparatus for reduction of event notification within a web service application of a multi-functional peripheral
JP5284023B2 (ja) * 2007-10-05 2013-09-11 キヤノン株式会社 情報処理装置および制御方法および制御プログラム
JP5173354B2 (ja) * 2007-10-22 2013-04-03 京セラドキュメントソリューションズ株式会社 印刷システムおよび印刷用プログラム
EP2075684B1 (en) * 2007-12-28 2019-02-20 Canon Europa N.V. A method and apparatus for controlling routing of print jobs
JP2009288937A (ja) * 2008-05-28 2009-12-10 Brother Ind Ltd インストールシステムおよびプログラム
JP2010008439A (ja) * 2008-06-24 2010-01-14 Brother Ind Ltd デバイスドライバ
KR101569037B1 (ko) * 2009-12-03 2015-11-16 삼성전자주식회사 컨트롤 포인트, 화상형성장치, 및 인쇄 제어 방법
WO2012056538A1 (ja) * 2010-10-27 2012-05-03 富士通株式会社 ブレード、管理プログラム、および管理方法
US8885381B2 (en) 2010-12-14 2014-11-11 Sandisk 3D Llc Three dimensional non-volatile storage with dual gated vertical select devices
US8943229B2 (en) * 2010-12-30 2015-01-27 Google Inc. Peripheral device detection with short-range communication
JP2013061760A (ja) * 2011-09-13 2013-04-04 Konica Minolta Business Technologies Inc プログラム及び情報処理装置
JP5890648B2 (ja) * 2011-10-21 2016-03-22 キヤノンイメージングシステムズ株式会社 情報処理装置、その制御方法、およびデバイス制御システム
JP5866971B2 (ja) * 2011-10-27 2016-02-24 富士ゼロックス株式会社 画像形成システム
JP6048089B2 (ja) * 2011-12-26 2016-12-21 株式会社リコー 情報処理装置、及びプログラム
US9171584B2 (en) 2012-05-15 2015-10-27 Sandisk 3D Llc Three dimensional non-volatile storage with interleaved vertical select devices above and below vertical bit lines
JP5866102B2 (ja) * 2012-06-12 2016-02-17 三菱電機株式会社 機器管理装置、機器管理方法および機器管理プログラム
US8984186B2 (en) * 2012-08-29 2015-03-17 Google Inc. Augmenting capabilities of a host device
JP2014075056A (ja) * 2012-10-04 2014-04-24 Canon Inc 画像形成装置とその制御方法、印刷システム、並びにプログラム
WO2014138124A1 (en) 2013-03-04 2014-09-12 Sandisk 3D Llc Vertical bit line non-volatile memory systems and methods of fabrication
US9165933B2 (en) 2013-03-07 2015-10-20 Sandisk 3D Llc Vertical bit line TFT decoder for high voltage operation
WO2014201641A1 (zh) * 2013-06-19 2014-12-24 华为终端有限公司 信息查询方法和设备
JP6225590B2 (ja) * 2013-09-17 2017-11-08 株式会社リコー プログラム、情報処理装置及び情報処理システム
CN103488513B (zh) * 2013-09-30 2016-04-13 北京水木元生科技有限责任公司 设备即插即用通用驱动方法
US9362338B2 (en) 2014-03-03 2016-06-07 Sandisk Technologies Inc. Vertical thin film transistors in non-volatile storage systems
US9379246B2 (en) 2014-03-05 2016-06-28 Sandisk Technologies Inc. Vertical thin film transistor selection devices and methods of fabrication
US9627009B2 (en) 2014-07-25 2017-04-18 Sandisk Technologies Llc Interleaved grouped word lines for three dimensional non-volatile storage
JP2016164781A (ja) * 2015-02-27 2016-09-08 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、情報処理システムおよびプログラム
US9450023B1 (en) 2015-04-08 2016-09-20 Sandisk Technologies Llc Vertical bit line non-volatile memory with recessed word lines
JP6439723B2 (ja) 2016-03-09 2018-12-19 信越化学工業株式会社 合成石英ガラス基板の製造方法
JP6624987B2 (ja) * 2016-03-23 2019-12-25 キヤノン株式会社 情報処理装置及びプログラム、制御方法
KR102175193B1 (ko) * 2016-03-31 2020-11-09 비트데펜더 아이피알 매니지먼트 엘티디 자동 장치 탐지를 위한 시스템 및 방법
CN106168908A (zh) * 2016-09-27 2016-11-30 北京金山安全软件有限公司 一种驱动程序获取方法、服务器及移动终端
JP6916464B2 (ja) * 2017-06-22 2021-08-11 コニカミノルタ株式会社 サーバ用プリンタドライバプログラム
CN107528919A (zh) * 2017-09-25 2017-12-29 江苏英索纳智能科技有限公司 一种局域网设备发现和驱动程序自动安装的方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203077A (ja) * 1998-01-08 1999-07-30 Seiko Epson Corp 印刷システム及びプリンタの選択方法
JPH11203231A (ja) * 1998-01-09 1999-07-30 Fuji Xerox Co Ltd 電子装置拡張システム
JP4056214B2 (ja) 2000-11-13 2008-03-05 株式会社リコー 情報処理装置、画像形成システム、制御方法及び制御プログラム
JP4393348B2 (ja) * 2000-12-22 2010-01-06 キヤノン株式会社 情報処理装置、方法及びプログラム
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US7312886B2 (en) * 2001-12-03 2007-12-25 Canon Kabushiki Kaisha Printer control method, information processing apparatus, program, and storage medium
KR100444996B1 (ko) * 2002-02-08 2004-08-21 삼성전자주식회사 인터넷을 통한 디바이스 드라이버 자동 설치 및 유지 보수방법 및 그 시스템
US7213060B2 (en) 2002-04-23 2007-05-01 Canon Kabushiki Kaisha Web based creation of printer instances on a workstation
JP3578153B2 (ja) * 2002-05-31 2004-10-20 ブラザー工業株式会社 情報処理装置、プログラム、記録媒体、及びインストール状況表示方法
US9886309B2 (en) * 2002-06-28 2018-02-06 Microsoft Technology Licensing, Llc Identity-based distributed computing for device resources
US7752290B2 (en) * 2002-08-21 2010-07-06 Canon Kabushiki Kaisha Information processing apparatus connectable to peripheral device, controlling method, and computer-readable storage medium storing control program thereon
JP3919721B2 (ja) * 2002-10-29 2007-05-30 キヤノン株式会社 情報処理方法及び情報処理装置
JP4638651B2 (ja) * 2002-10-31 2011-02-23 太平洋マテリアル株式会社 無収縮モルタル・コンクリート用混和材及びこれを含有する無収縮モルタル・コンクリート
US7418486B2 (en) * 2003-06-06 2008-08-26 Microsoft Corporation Automatic discovery and configuration of external network devices
JP2005018363A (ja) * 2003-06-25 2005-01-20 Konica Minolta Business Technologies Inc 画像形成システム
JP2005217974A (ja) * 2004-01-30 2005-08-11 Canon Inc 電子機器及びその制御方法
JP2005267544A (ja) * 2004-03-22 2005-09-29 Fuji Xerox Co Ltd プリンタ管理方法および装置並びにプログラム
US7177972B2 (en) * 2004-04-27 2007-02-13 Oki Data Corporation Peripherals of computer
US7716382B2 (en) * 2005-01-11 2010-05-11 Microsoft Corporation Rich targeting criteria for selection of driver packages

Also Published As

Publication number Publication date
CN1924839A (zh) 2007-03-07
EP1764689A2 (en) 2007-03-21
JP2007066189A (ja) 2007-03-15
US20070083679A1 (en) 2007-04-12
KR20070026234A (ko) 2007-03-08
CN100504820C (zh) 2009-06-24
KR100778200B1 (ko) 2007-11-22
EP1764689A3 (en) 2009-02-25
US7730224B2 (en) 2010-06-01

Similar Documents

Publication Publication Date Title
JP4971610B2 (ja) デバイスドライバを管理するためのプログラムおよび方法と情報処理装置
JP5441303B2 (ja) 情報処理装置及び情報処理方法
US7908609B2 (en) Information processing apparatus with device driver installation control
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
US8587811B2 (en) Information processing apparatus and method thereof
US20110075207A1 (en) Information processing apparatus and method thereof
JP5665437B2 (ja) ネットワーク機器管理システム、ネットワーク機器管理装置、クライアント装置およびその方法
US9218150B2 (en) Image forming apparatus and method thereof
US20110261396A1 (en) Control device for managing drivers
JP2009015520A (ja) 情報処理装置及び情報処理装置を制御するプログラム及びプログラムを記憶した記憶媒体
US20080201726A1 (en) Information processing apparatus storing driver, control program, and medium storing control program
US8301807B2 (en) Device management apparatus, device management method, and recording medium
US8810815B2 (en) Image reading system, image reading apparatus, and control methods and programs thereof
JP2011129054A (ja) 印刷ジョブ管理装置、印刷ジョブ管理システム、印刷ジョブ管理方法、及び印刷ジョブ管理プログラム
US8422040B2 (en) Image forming system and method, management apparatus, and recording medium
US8892796B2 (en) Image forming apparatus and control method thereof
JP2008027006A (ja) 周辺デバイスを管理するためのプログラムおよび情報処理装置とその制御方法
JP2013016077A (ja) 情報処理装置、プログラム、及び印刷システム
JP2005197969A (ja) 情報処理装置、デバイス設定情報管理方法およびデバイス設定情報管理プログラム
US11249694B2 (en) Non-transitory storage medium storing instructions executable by communication apparatus, the communication apparatus, and list creating method
JP5353833B2 (ja) サーバ、印刷設定ファイルの保存制御方法および保存制御プログラム
JP7039318B2 (ja) 管理装置及び方法
JP2013084304A (ja) 情報処理装置及び情報処理方法及びプログラム
US20200264817A1 (en) Information processing apparatus and non-transitory computer readable medium
JP2015095053A (ja) 管理装置、及びその方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080826

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120402

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120406

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees