JP4756988B2 - プログラム、機能情報提供装置、および機能情報提供方法 - Google Patents

プログラム、機能情報提供装置、および機能情報提供方法 Download PDF

Info

Publication number
JP4756988B2
JP4756988B2 JP2005303710A JP2005303710A JP4756988B2 JP 4756988 B2 JP4756988 B2 JP 4756988B2 JP 2005303710 A JP2005303710 A JP 2005303710A JP 2005303710 A JP2005303710 A JP 2005303710A JP 4756988 B2 JP4756988 B2 JP 4756988B2
Authority
JP
Japan
Prior art keywords
information
device driver
function information
function
installation
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
JP2005303710A
Other languages
English (en)
Other versions
JP2007114900A5 (ja
JP2007114900A (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 JP2005303710A priority Critical patent/JP4756988B2/ja
Priority to US11/549,757 priority patent/US7908609B2/en
Publication of JP2007114900A publication Critical patent/JP2007114900A/ja
Publication of JP2007114900A5 publication Critical patent/JP2007114900A5/ja
Application granted granted Critical
Publication of JP4756988B2 publication Critical patent/JP4756988B2/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
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、複数の画像形成手段を持つ画像形成装置を含む、複数の機能情報を提供するネットワーク上の機能情報提供装置を実行する情報処理装置のシステムに関するものである。
インターネットやホームネットワークなど、ネットワークの拡張に伴い、例えば、PDAや携帯電話等のユーザインタラクティブなデバイス、スキャナ、プリンタ、複写機、デジタルカメラ等の画像処理装置などのデバイスのネットワーク対応が進んでいる。また、テレビ、エアコン、冷蔵庫等の家電製品などに至るまで様々なデバイスのネットワーク対応も進んでいる。
これに伴い、ネットワーク対応デバイスを利用する上での利便性・簡易性を高めるための機能情報が多数存在する。このうちのひとつにネットワークプラグアンドプレイがある。従来のプラグアンドプレイ(PnP)は、各デバイスとホストコンピュータとなるPCをさまざまなローカルのI/Oポート(シリアル・パラレル・USB、PCI、IEEE1394、PCMCIAなど)に直接プラグで接続した際に働く機能である。プラグアンドプレイでは、デバイスが機種名(デバイスID)や製造者名(ベンダID)、シリアル番号などをホストの情報処理装置に送信する。情報処理装置はこれらの受信した情報を参照して、デバイスを使用可能にするためのデバイスドライバをクライアントに自動でインストールする。このような形態が主であった。ネットワークプラグアンドプレイはこれをネットワークに接続したデバイス(NCD:Network Connected Devices)とホストコンピュータ同士の接続にまで拡張したものである。Microsoft社が提唱するPnP−X(Plug and Play eXtensions)や、(社)ビジネス機械・情報システム産業協会(JBMIA)が推進するBMLinks、Apple社が開発したBonjourなどの規格が現在規定されている。
PnP−Xは従来のプラグアンドプレイに加え、WS−Discoveryに対応したデバイスが提供する機能情報および情報を元に、ネットワーク上のデバイスを検知し、デバイスドライバのインストールを行うことができる機能である。WS−Discoveryは、UPnP(登録商標)1.0(Universal PnP)や、WSD(Web Service for Devices)のデバイス検出プロトコルである(非特許文献1参照)。
PnP−X機能を持つオペレーティングシステムは、ファンクションディスカバリと、ファンクションディスカバリプロバイダとが組み合わさったシステムによって、さまざまなプロトコルのネットワークデバイスの検出を実現している。ファンクションディスカバリとは、アプリケーション層に対応したファンクションディスカバリクライアントである。ファンクションディスカバリプロバイダとはプロトコル層に対応する。ファンクションディスカバリクライアントである「IPバスエニュミレータ」は、ネットワークに接続したデバイスのUPnPやWSDの機能情報に応答するそれぞれのファンクションディスカバリプロバイダから通知を受け、発見したデバイス情報を列挙する。列挙したデバイス情報(デバイスID・ベンダIDなど)は、「IPバスエニュミレータ」から「プラグアンドプレイマネージャ」に引き渡される。そしてデバイス情報に対応したドライバのインストールが開始される。
また、PnP−X機能はネットワークに接続され発見されたデバイスのドライバが、すべてインストールされることを防ぐためのシステムを持つ。これは、「関連データベース」(Association Database)ともうひとつのファンクションディスカバリクライアントである「ネットワークデバイスの追加と削除」と呼ばれるコントロールパネルのユーザインタフェースによって実現されている。「ネットワークデバイスの追加と削除」はファンクションディスカバリプロバイダから情報を取得し、現在発見されているデバイスを列挙して、ユーザインタフェースによりリスト表示を行う。ユーザは「ネットワークデバイスの追加と削除」を起動し、リスト表示されたデバイスから、「インストールを許可する」デバイスを選択し「追加」操作操作により選択されたデバイスのデバイス情報が「関連データベース」に登録される。「IPバスエニュミレータ」は、発見したネットワークデバイスのうちこの「関連データベース」に登録してあるもののみ「プラグアンドプレイマネージャ」に渡す。この処理により、ネットワークで発見されたすべてのデバイス向けのドライバがインストールされることを防止している。(非特許文献1参照)。
このPnP−X機能のように、ネットワークを介してデバイスに接続されているホストコンピュータが、デバイスからの応答情報を元にプログラムのインストールを行うシステムは従来存在する(特許文献2参照)。
特開2003−6133号公報 J. Beaty, et al, "Web Service Dynamic Discovery (WS-Discovery)," April 2005. (http://schemas.xmlsoap.org/ws/2005/04/discovery/WS-discovery.pdf) "Discovery, Plug and Play Integration, and Web Services for Metwork connected Devices", April 25, 2005. (http://www.microsoft.com/whdc/device/netAttach/PnP-X_Discover.mspx/ のPnP-X_Discover.doc)
しかしながら、前述した従来の技術では、複数の機能を持つデバイスを検出したときに、複数の機能に対応するデバイスドライバがインストールされ、同時に利用可能になってしまい、ユーザは、適切なドライバを選択することが困難となるケースがある。例えば、複数種類のPDL(Page Description Language)に対応した画像形成装置(プリンタ)が検出された場合、そのデバイス(プリンタ)に対して、複数種類のPDLに対応した複数のプリンタドライバがインストールされる。その結果、ユーザが指定できる出力先の選択肢がひとつのプリンタについて複数存在する。そのため、ユーザが実際に印刷する際にどのドライバを選択すればいいのかわからなくなり、使い勝手の悪化をもたらしている。
また、前述のとおり、ネットワーク上で検出されたデバイスがクライアントコンピュータにリストとして列挙されて、ユーザはそのリストから選択したデバイスを利用可能なデバイスとして追加できる。複数のPDLに対応したプリンタが検出された場合、そのリストには、インストール可能なドライバが、PDLごとに表示される。しかしこのようなリストをみても、通常のユーザはどのPDLを選択すればいいのかわからない。そのため、ユーザは結局全てのデバイスドライバを選択するか、明確な根拠がないまま何れかを選択することになる。前者であれば、検出されたデバイスのドライバがすべてインストールされることになる。後者であれば、ユーザが使用するアプリケーションプログラムが作成するデータに適していないPDL対応のプリンタドライバを選択してしまい、ユーザが所望する画像が出力できない場合も生じえる。
本発明は上記従来例に鑑みてなされたもので、コンピュータにインストールするデバイスドライバを選択する際に、適切なデバイスドライバを選択するためのユーザ補助を実現することを目的とする。また、そのユーザ補助によりユーザに適したデバイスのデバイスドライバを選択してインストールすることで、ユーザの操作性、利便性、生産性を高めることを目的とする。また、ユーザの望まないデバイスドライバをインストールすることにより消費されるコンピュータ資源の浪費を防止する。
上記目的を達成するために本発明は以下の構成を備える。複数種類のデバイスドライバと対応する周辺機器と通信可能なコンピュータにおけるプログラムであって、
コンピュータに保持されている、当該コンピュータにインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段としてコンピュータを機能させる。
本発明によって、コンピュータにインストールするデバイスドライバを選択する際に、適切なデバイスを選択するためのユーザ補助を実現することができる。また、ユーザに適したデバイスのデバイスドライバを選択的にインストールすることで、ユーザの操作性、利便性、生産性を高めることができる。また、デバイスドライバのインストールにより消費されるコンピュータ資源の浪費を防止することができる。
[第1実施形態]
<システム構成>
図1は、本発明の一実施形態を示す印刷処理システムに含まれるクライアントやサーバといった汎用コンピュータ(情報処理装置)のブロック構成図である。本実施形態では、ネットワークプリンタを対象として説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、LAN、WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できる。
図1において、CPU101はROM102あるいはRAM103あるいは記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM103はCPU101が各種処理を行う際のワークエリアとしても使用される。外部記憶装置105はオペレーティングシステム(OS)1054やプリンタドライバ1053、印刷関連プログラム1052、アプリケーションソフト1051等を記録する。オペレーティングシステム1054には、ここではTCP/IPプロトコルスタックや、ネットワークPnPのための図3に示すモジュールを含む。
キーボード108や、マウスなどのポインティングデバイス109といった入力機器は、入力I/F104を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。出力I/F106は、データを外部に出力するためのインタフェースであり、モニタ110やプリンタ111に対してデータを出力する。モニタ110上への表示と、その表示画面にマッピングされた仮想的なスイッチ等により、GUIが実現される。なおプリンタとコンピュータとは、ローカルI/Oに代えてネットワークを通して接続されていてもよい。また、共通データバス107は、各ハードウエア要素の間のデータや制御信号、アドレス等のやりとりを行う。
図2は本発明の実施の形態におけるネットワーク環境の一例を簡略に示す図である。プリンタ202、プリンタ203、プリンタ205がそれぞれイーサネット(登録商標)ネットワークにつながったネットワークプリンタを示している。クライアント201、サーバ204もそれぞれネットワークに接続され、ネットワークを通じてクライアント201もしくはサーバ204から印刷が可能な環境を構築している。プリンタ203はここではオフラインであり、物理的には接続されていても実際には使用できない状態である。このようなオフライン状態のプリンタがネットワーク上に存在してもかまわない。本発明においては図2のようなネットワークでプリンタが利用できる環境であるものとする。クライアント201は図1に示したハードウエアを有する。
図3は本発明の実施の形態における、ホストコンピュータ上のネットワークプラグアンドプレイのブロック図である。図3の下から順にネットワークプラグアンドプレイがどのように動作しているかを説明する。まず、図2のようにネットワークに接続されたプリンタ301が存在する。プリンタ301は、図2のプリンタ202、203、205に相当する。プリンタ301は、通信機能としてイーサネット(登録商標)コントローラを内蔵し、イーサネット(登録商標)に対応している。またプリンタ301には、TCP/IPネットワーク上でHTTPリクエストに動作できるようにTCP/IPプロトコルスタックやHTTPレイヤも実装されている。なおここでは通信メディアとしてイーサネット(登録商標)を用いているが、本実施形態で用いるTCP/IPを上位プロトコルとしてサポートできるメディアであれば利用可能である。たとえば、USBなどのシリアルI/O、WiFi(登録商標)(IEEE802.11a/b/g)やBluetooth(登録商標)、UWBといった無線通信、シリアルIFやパラレルIFにも適用できる。また、通信プロトコルも、TCP/IP以外のプロトコルを利用することができる。
プリンタ301が持つ通信機能の上位のレイヤには、タグを用いたマークアップ言語であるXMLベースのプロトコル「SOAP(Simple Object Access Protocol)」を解釈可能なシステムを搭載している。SOAPは通信内容にXMLを用い、言語やプラットフォームに依存することなくデータを通信することができるプロトコルである。このSOAPをベースにして、WSD(Web Services for Devices)システムもプリンタ301は搭載している。WSDシステムはプリンタ301がWeb機能情報を提供するために存在している。デバイスは、デバイスの情報を返すアプリケーションプロトコルであるDPWS(Device Profile for Web Services)によってデバイス情報を応答する。クライアント201は、デバイスのWeb機能情報を探索するために、WS−Discovery(Web Services Dynamic Discovery)をサポートする。またクライアント201は、デバイス情報を入れるデータフォーマットであるWS−MetadataExchangeの2つの規格をサポートする(図13参照)。これら2つの規格をサポートすることで、デバイスの備えたWSDおよびDPWSと連係動作して、ネットワークPnPが実現される。
なおプリンタ301はWSD機能情報を搭載している。これは、SSDP(Simple Service Discovery Protocol)とSSDP Discovery Metadata MappingをサポートしているUPnP機能情報であってもよい。
<デバイスの探索とインストール>
次にクライアントがネットワークデバイスを検出して必要なソフトウエアをインストールする手順を説明する。
イーサネット(登録商標)に接続されたプリンタ301は、イーサネット(登録商標)などのネットワークに接続された段階で接続通知(Helloメッセージ)をマルチキャストでネットワークに送信する(S3001)。マルチキャストの宛先はホストコンピュータか、あるいは少なくともホストコンピュータを含むノードである。ネットワークに接続されているクライアント201は、TCP/IPプロトコルスタック、HTTPドライバを経由して、WS−Discoveryプロバイダ3021でHelloメッセージを受ける(S3002)。WS−Discoveryプロバイダ3021はネットワーク上のデバイス検出を司るファンクションディスカバリプロバイダ302に属するプロバイダの1つである。クライアント201は、ネットワークプラグアンドプレイ機能を持つホストコンピュータである。
このあと、必要に応じてWS−Discoveryプロバイダ3021はGetMetadataメッセージ(図16参照)をプリンタ301に送信する。それを受信したプリンタ301はWS−MetadataExchangeに従って、自身のデバイス情報が入ったメタデータを含むGetMetadata Responseメッセージを返信する。メタデータにはデバイスIDやモデル名、製造会社名、デバイスのURLアドレス、PDL情報などが入っている。図17にデバイス情報の一例を示す。図17のデバイス情報には、モデル名1703、製造会社名1702、デバイスのURLアドレス1701が記述されている。このほか、デバイスにより提供される機能情報情報としてPDL情報が含まれる場合もある。また、PDL情報は、デバイス情報とは別に、機能情報情報としてデバイスから取得されても良い。
すでにネットワークに接続されているWSD対応デバイスをクライアント201が探索する場合は、クライアント201は、一定のタイミングでProbeメッセージ(図14参照)をマルチキャストでネットワークに送信する。一定のタイミングとは、たとえばホストコンピュータの起動時、ユーザが探索を命じたとき、一定のポーリング間隔などである。Probeを受信したプリンタ301は、応答のメッセージとしてProbeMatch(図15参照)をユニキャストでホストコンピュータに送信し、WS−Discoveryプロバイダ3021がこれを受信する。
図13にProbeから始まるデバイス情報の収集シーケンスを示す。クライアント201はまずProbeメッセージ1301をマルチキャストでネットワークに送信する。Probeメッセージには、そのメッセージがプローブであることを示すメッセージID1401(図14)や、探索するデバイスのタイプを示すデバイスタイプ1402が含まれる。本例では、探索の対象はプリンタであるので、図14のデバイスタイプ1402には、プリンタを示す「PrintBasic」と記述されている。
Probe1401を受信したプリンタ301は、ProbeMatchメッセージ1302をクライアント201に応答する。図15に示すProbeMatchメッセージの例には、デバイスのアドレス1501、デバイスのタイプ1502、バージョン情報1503等が含まれている。
クライアント201は、ProbeMatchメッセージで示されるデバイスを宛先として、図16に示すGetMetadataメッセージ1303をプリンタ301に送信する。それを受信したプリンタ301は、デバイス情報が入ったメタデータを含むGetMetadata Responseメッセージ1304をクライアント201に送信する。図13のProbeおよびProbeMatchメッセージを、デバイスからのHelloメッセージに置換すれば、Helloから始まるデバイスの探索手順となる。
なおここではWSD機能情報を持ったデバイスからのデバイス情報の応答を記述したが、UPnP機能情報を持ったデバイスの場合は、SSDPプロバイダ3022が各メッセージを受ける。また、ファンクションディスカバリプロバイダ302はプロトコルごとにプロバイダを持つことができるため、他のプロトコルであれば他のプロバイダが送受信の処理を行うことも自明である。
図3に戻って説明を続ける。WS−Discoveryプロバイダ3021は、デバイスを検出したら、ファンクションディスカバリクライアント303にその旨を通知する(S3003)。ファンクションディスカバリクライアント303は検出したデバイスを列挙し、上位のプラグアンドプレイマネージャ304にデバイス情報とともに通知する(S3004)。もちろんこの段階で、図13に示したようにデバイス情報も取得されている。デバイスの列挙は、たとえば検出されたデバイス名(デバイスID)をリスト化した情報(デバイスリスト)を作成して保存することで実現される。ファンクションディスカバリの詳細な動作については、図7〜図12等を参照して後述する。
プラグアンドプレイマネージャ304は、ファンクションディスカバリクライアント303から取得したデバイス情報と作成されたデバイスリストとを元に、通常はクラスインストーラ306を呼び出す(S3007)。クラスインストーラ306によってデバイスを利用するために必要なデバイスドライバのインストールを行う。クラスインストーラ306はデバイスの種類(クラス)を判定し、そのデバイスのインストールを行うためにドライバデータベース307にアクセスする。しかし、ここではデバイスの種類がプリンタであるので、クラスインストーラ306を呼び出す前に、プラグアンドプレイマネージャ304は、まずスプーラ305に対して新たなプリンタポートを作成するようメッセージを送る。スプーラ305は、プリンタドライバがプリンタ301に出力するためのプリンタポートを作成する。その際、スプーラ305は、ネットワークデバイス用のポートモニタであるNCDポートモニタ3051とプリンタポートとを関連づけ、プラグアンドプレイマネージャ304に返す(S3006)。作成されるプリンタポートがNCDポートモニタ3051と関連づけられるのは、プリンタ301がWS−Discoveryによって検出されたネットワークデバイスだからである。その後、プラグアンドプレイマネージャ304は、クラスインストーラ306を呼び出す。
クラスインストーラ306は、検出されたデバイスのデバイス情報に含まれるデバイスIDに対応するハードウェアIDが記述されたインストールインフォメーションファイル(INFファイル)を、ドライバデータベース307から検索する。なお、INFファイルとはデバイスドライバをインストールすると共にホストコンピュータの記憶部に記憶されるファイルである。INFファイルは、デバイスドライバをインストールすると識別情報を含んだファイル名と拡張子「.INF」という形式にて保持される。例えば、最初にインストールされたデバイスドライバのINFファイルは「OEM1.INF」という形式にて保存される。そして、次にインストールされたデバイスドライバのINFファイルは「OEM2.INF」という形式にて保存される。そして、このINFファイルには、デバイスドライバの機能情報(例えばページ記述言語:PDLともいう)等が含まれる。よって、このINFファイルを解析することでデバイスドライバの特徴を認識することが可能となる。また、このINFファイルは、デバイスドライバをアンインストールしても、該デバイスドライバと対応するINFファイルはそのままホストコンピュータの記憶部に残る。
デバイスIDに対応するハードウエアIDを持つデバイスは、同じデバイス(すなわち同じドライバを利用できるデバイス)と判定される。ハードウエアIDは、デバイスから取得したデバイスIDなどの情報を元にして、各カテゴリ(PCI、USB、IPバスなど)のエニュミレータが作成するIDである。たとえば、ハードウエアIDがデバイスIDを含むように構成されていれば、そのデバイスIDの部分が、検出したデバイスのデバイスと一致するハードウエアIDは、デバイスIDに対応するハードウエアIDである。このように、ハードウエアID作成時と同じ変換をデバイスIDに施すことで、ハードウエアIDにより示されるデバイスと、デバイスIDにより示されるデバイスとの対応を判定できる。
検索の結果、該当するINFファイルがみつかれば、そのINFファイルに記述されたドライバ308を、検出された新しいデバイスのデバイスドライバとしてインストールする(S3008)。該当するINFファイルが見つからなければ、「ハードウェアの追加ウィザード」のユーザインタフェースを表示する。ユーザはUIにしたがってドライバを選択する。選択されたドライバがインストールする(S3009)。図3ではこの場合のドライバは外部メディア309から供給されてドライバデータベース307に複製、登録される。
<ファンクションディスカバリ>
次に図4のファンクションディスカバリについて説明する。ファンクションディスカバリは、ファンクションディスカバリクライアント303とファンクションディスカバリプロバイダ302の2つに分けられる。両者は共通のインタフェースであるファンクションディスカバリAPI402を介してデータのやりとりを行う。ファンクションディスカバリクライアント303は、ファンクションディスカバリプロバイダ302からの通知により、ファンクションディスカバリカテゴリ401が有する情報を元に動作を行う。本実施形態では、ファンクションディスカバリクライアント303には、「ネットワークデバイスの追加と削除」部3031と、IPバスエニュミレータ3032に加えて、優先インストール部3033が存在する。優先インストール部3033にはさらに優先項目テーブル3033aが含まれる。ネットワークデバイスの追加と削除部3031は、オペレーティングシステムが一般的には標準で備えている。たとえばウインドウズ(登録商標)OSには備えられている。
ファンクションディスカバリプロバイダ302により受信されたデバイス情報は、ファンクションディスカバリクライアント303に渡される。そのデバイス情報に基づいてファンクションディスカバリカテゴリ401の検出デバイスリスト4011に格納される。
ユーザがコントロールパネルから「ネットワークデバイスの追加と削除」機能を選択すると、ネットワークデバイスの追加と削除部3031により図5のユーザインタフェース501が表示される。ネットワークデバイスの追加と削除部3031は、検出デバイスリスト4011に保存された情報(デバイスリスト)を基に、図5のユーザインタフェースのデバイスリストビュー502を表示する。デバイスリストビュー502には、デバイス名およびデバイスの状態が含まれる。また、デバイスリストビュー502から選択されたデバイスについて、プロパティ情報502が表示可能である。ユーザインタフェース(UI)501に列挙されたデバイスは、現在ネットワーク上で発見されたデバイスを示している。ユーザはデバイスリストビュー502から使用したいデバイスを選択し、追加ボタン504を押す。このときに選択されているデバイスに対応するデバイス情報が検出デバイスリスト4011から特定され、ファンクションディスカバリカテゴリ401の関連データベース4012に追加される。デバイス情報は、ファンクションディスカバリプロバイダ302が受信したメタデータのデバイス情報である。なお、図5にてデバイスを選択することなく後述の優先インストール機能を実行した場合は、ネットワーク上で発見された全てのデバイスのデバイス情報が関連データベース4012に登録される。
一方削除ボタン505が押されると、そのとき選択されているデバイスのデバイス情報を関連データベース4012から削除する。あくまで関連データベース4012から削除するのみなので、ユーザインタフェース501上にはそのデバイスは表示されている。更新リストボタン506が押されると、Probeメッセージから始まるデバイス探索手順の再試行を行うことが、ファンクションディスカバリプロバイダ302のWS−Discoveryプロバイダ3021に通知される。そして再度Probeメッセージがネットワークにマルチキャストされてデバイスの探索が行われる。
IPバスエニュミレータ3032は、ファンクションディスカバリカテゴリ401の関連データベース4012に登録された情報を基にデバイスを列挙して、列挙したデバイスの情報(デバイスリスト)を作成する。IPバスエニュミレータ3032は、それを上位のプラグアンドプレイマネージャ304に通知する。プラグアンドプレイマネージャ304は、通知されたデバイスリストに基づいてデバイスドライバをインストールする。なお、このときにプラグアンドプレイマネージャ304に通知されるデバイスリストは、後述する図7〜図11の処理で特定された機能情報(PDL)情報に基づいて生成される。したがって、ネットワークプラグアンドプレイによるドライバのインストールの対象となるデバイスは、ネットワークで検出された全てのデバイスではない。ネットワークプラグアンドプレイの対象となるデバイスは、図7〜図11の処理を経て関連データベース4012に登録されたデバイスである。
<優先インストール機能>
次にファンクションディスカバリクライアントの優先インストール部3033の機能を図6のユーザインタフェースと図7のフローチャートに沿って説明する。優先インストール機能とは、指定された基準にしたがって機能情報優先機能情報を選択し、選択された優先機能情報に対応するドライバに限ってインストールするという機能である。なお、以下の説明では、ドライバをインストールする対象をプリンタとして説明している。しかし、プリンタ以外のデバイスであっても、複数の機能情報を提供するデバイスであって、各機能情報のためにドライバが必要とされるデバイスについては、プリンタと同様に本発明が適用可能である。
この優先インストール部3033の機能が本実施形態の中心となる。優先インストール部3033は、図6のようなユーザインタフェースを持つ。すなわち図6(A)のユーザインターフェース601を介してユーザ(操作者)との間で入出力を行う。ユーザは優先インストール3033のユーザインタフェース601を起動する。たとえば、図5のユーザインターフェース501の中に優先インストール管理用のボタンを用意し、それが押された場合に図6のユーザインターフェース601を表示する。ユーザは、図6のユーザインターフェース601上で、優先設定リスト6011から、機能情報インストールするドライバを決定する際の基準となる項目(基準項目と呼ぶ。)を選択する。つまり、図6(A)のユーザインターフェースを用いて、インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する。なお、優先インストール部3033は、後述する図7の処理にてインストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から設定された基準項目に基づいて機能情報を特定する処理を実行する。たとえば、ネットワーク上で検出したプリンタが複数種類のPDLをサポートしているとする。そのプリンタのデバイス情報には、各PDLの情報(PDL情報)がプリンタの提供する機能情報機能情報情報として含まれる。機能情報をクライアントが利用するためには、機能情報に対応したデバイスドライバがインストールされる必要がある。すなわち、ユーザは使用するPDLが1つであったとしても、検出されたプリンタが複数のPDLをサポートしているとのデバイス情報から生成されたデバイスリストをプラグアンドプレイマネージャ304に通知する。これにより、プラグアンドプレイマネージャ304は、該プリンタがサポートする全てのPDLに対応するデバイスドライバをインストールする。つまり、ユーザにとっては不必要なデバイスドライバまでもインストール対象となる。そこで、そのような場合に、選択された基準項目に付された優先順位にしたがってドライバがインストールされる。図6(A)の例では、優先設定リスト6011には、「最も多くインストールしたドライバ」、「現在インストール済みドライバ」がある。さらに、優先設定リスト6011には、「最近インストールしたドライバ」、「現在使用しているアプリケーションに最適のドライバ」、「ネットワーク負荷をかけないドライバ」という計5つの基準項目が、選択肢として含まれている。
選択された基準項目は、図6(B)に示す基準項目テーブル3033aに保存される。優先項目テーブル3033aには、基準項目毎に、項目名611と判断順位612とが対応付けられて保存されている。項目名は図では便宜的に名称で示したが、プログラムにより読み取り可能なIDであれば、記号等であってもよい。判断順位は、当該優先設定項目が選択された順序にしたがって付されている。例えば、最初に選択された基準項目の判断順位が1となる。また、図6(B)の例では、0は選択されていないことを示す。なお、本例では、基準項目テーブル3033aに登録されていない項目には、判断順位が0の基準項目も含まれるものとして説明する。
図7は、優先インストール機能を実行する際のフローチャートである。なお、本願に記載のフローチャートにおける各処理はホストコンピュータのCPU101によって実行される。さて図7において、優先インストール部3033は、ユーザによってユーザインターフェース601の優先リスト6011に含まれる基準項目から判断順位を登録するために選択された基準項目を認識する。そして、優先インストール部3033は、選択された基準項目の順位を基準項目テーブル3033aに登録する(ステップ701)。複数の基準項目を選択して、各項目を順序づけしてドライバの優先順位を決定したい場合は、基準項目を選択して追加ボタンを押す操作を繰り返す。このようにして項目を追加すると、選択された基準項目は順位付けされた状態で順番に判断順位リスト6012に列挙される。削除ボタンを押すと判断順位リストから、そのときに選択されていた基準項目が削除される。基準項目の候補は、あらかじめ優先インストール部3033が保持している。例えば前述した図6(B)の基準項目テーブル3033aに基準項目の項目名611を登録しておき、それを優先インストール部3033が保持する。そして、判断順位リスト6012に追加された基準項目の判断順位欄612に、追加された順序を登録する。これによって、選択された基準項目と判断順位とが優先インストール部3033の基準項目テーブル3033aに登録できる。
ユーザインタフェース601を閉じると判断順位リストが決定される。すなわち基準項目テーブル3033aに判断順位が登録される。次に優先インストール部3033は、基準項目テーブル3033aに判断順位が登録されているか判断する(ステップ702)。なお、判断順位として0が登録されている場合、優先インストール部3033は、判断順位が登録されていないものと判断する。したがって、すべての項目の判断順位が0であれば判定は「いいえ」であるからステップ701に分岐する。
ひとつでも判断順位が設定された基準項目が基準項目テーブルに登録されていれば、優先インストール部3033は、まず判断順位リスト612において先頭順位が登録されている基準項目に着目する(ステップ703)。すなわち、基準項目テーブル3033aに登録された判断順位が1の基準項目に着目する。そして優先インストール部3033は、着目した基準項目についてホストコンピュータの情報を調査し、基準項目に合致するドライバ(すなわちそのドライバが対応する機能情報とも言える)を特定する(ステップ704)。つまり、優先インストール部3033は、複数の基準項目のうち登録された順位に従って基準項目に着目する。そして、優先インストール部3033は、WSD機能を用いた認識機能により認識された周辺機器に対応するデバイスドライバをインストールする際に、着目された基準項目に基づいて機能情報を特定する。
優先インストール部3033は、ステップ704により特定されたデバイスドライバに対応するPDL(機能情報)を判定する(ステップ705)。詳細には、優先インストール部3033が、コンピュータに保持されているデバイスドライバのインストール履歴情報を認識する。そして、優先インストール部3033は、認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報(例えばPDL)を解析する。そして、優先インストール部3033は、インストールの対象となる機能情報を特定する。ステップ705の処理により、機能情報(例えばPDL)を決定できたなら、この機能情報(例えばPDL)に対応するデバイスドライバをインストールする。そのために、優先インストール部3033は、インストールするドライバに関する情報(たとえばPDL機能情報情報)をファンクションディスカバリカテゴリ401の関連データベース4012に追加する。例えばプリンタが複数種類のPDLをサポートしている場合、優先インストール部3033は、特定された機能情報(例えばPDL)に基づいて、周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する。つまり、特定された機能情報と対応するデバイスドライバを複数種類のデバイスドライバから検出して、インストールすべきドライバとして決定する。優先インストール部3033は、複数の機能情報(たとえば複数種類のPDLへの対応)を備えたプリンタについては、インストールすると決定されたドライバに対応する機能情報情報(たとえばドライバが対応するPDLであり、優先機能情報情報と呼ぶ。)以外の機能情報情報を削除する(ステップ706)。すなわち、図5のUI501にて選択されたデバイスのデバイス情報が関連データベース4012に登録される。ここで、選択されたデバイスが複数のPDLをサポートする場合、関連データベース4012には、該デバイスがサポートするPDLに対応する数のデバイスドライバが登録される。この状態で作成されたデバイスリストをプラグアンドプレイマネージャ304に通知すると、全てのデバイスドライバがインストールされてしまう。しかしながら、図7の処理を実行することで、UI501にて選択されたデバイスが複数のPDLをサポートしていたとしても、S705にて特定されたPDLに対応するデバイスドライバ以外は関連データベース4012から削除される。つまり、優先インストール部3033は、選択されたプリンタが複数のPDLを搭載していれば、そのPDLのみしか搭載していないプリンタのようにデバイス情報を書き変える。また、インストールすると決定されたドライバが対応するプリンタ以外のデバイス情報は、関連データベース4012から削除する。たとえば、プリンタが持つPDLがすべて優先する(すなわちインストールすると決定された)PDLと一致しない場合は、そのプリンタのデバイス情報を関連データベース4012から削除する。なお、ドライバと機能情報とを対応付けるための情報はデバイス情報に含まれている。複数の機能情報を提供するデバイスについては機能情報毎に、機能情報とドライバとを対応付ける情報が含まれる。そして、ユーザインターフェースを終了する(706)。
この後、ファンクションディスカバリクライアント303のIPバスエニュミレータ3032が、ファンクションディスカバリカテゴリ401の関連データベース4012に登録されたデバイスを列挙して、プラグアンドプレイマネージャに渡す。優先インストール3033がステップ706において関連データベース4012を変更したことにより、インストールされると決定されたドライバが対応していないプリンタのデバイス情報は、プラグアンドプレイマネージャ304に渡されない。したがって、プラグアンドプレイマネージャ304は、プラグアンドプレイ機能により、図7の処理により特定されたPDLに対応するドライバをインストールする。詳細には、プラグアンドプレイマネージャ304は、図7の705にて決定されたインストールすべきデバイスドライバをインストールすべく制御する。つまり、プラグアンドプレイマネージャ304は、オペレーションシステムに対して特定された機能情報に対応するデバイスドライバをインストールするよう指示する。そして、図7の処理により特定されたPDLに対応しないドライバインストールされない。これにより、オペレーティングシステムの持つネットワークプラグアンドプレイシステムを変更することなく、ユーザが所望とするPDLに対応するドライバを指定してプラグアンドプレイによる自動インストールをすることができる。
たとえば、従来のネットワークプログラムグランドプレイ機能では、複数のPDLを搭載しているプリンタについては、各PDLに対応するドライバがインストールされる。しかし、本実施形態では、インストールするドライバを選択するための基準に沿ってドライバが選択されるので、その基準を満たすPDLのドライバのみがインストールされる。
一方、インストールするドライバを決定できなかった場合には、基準項目テーブル3033aにまだ判断されていない基準項目が残っているか判定する(708)。残っていれば、基準項目テーブル3033aから次の判断順位を持つ項目を選択する(707)。そして、選択した基準項目に着目し、その項目内容に従ってホストコンピュータの情報を調査し、ドライバを決定する(704)。つまり、着目された基準項目に基づいて機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返す。もし、ステップ708で、判断していない基準項目が基準項目テーブル3033aに残っていないと判定された場合は、「優先するPDLを見つけられませんでした」とメッセージをユーザインターフェースに表示する。そして、優先インストール部3033は、図7の処理を終了する。この場合は、通常のネットワークプラグアンドプレイと同等に動作する。
このように、優先インストール部3033は、クライアントがProbeメッセージを発行することでネットワーク上から探索された(すなわち認識された)デバイスにインストールするドライバを選択する。そして、選択されたドライバを特定するための情報をプラグアンドプレイマネージャに引き渡すために、デバイス情報を加工する。
また、デバイスがHelloメッセージを発行することで認識されたデバイスにインストールするドライバも、基準項目に適合するものが選択されてインストールされる。ただし、この場合には、PnPによりドライバがインストールされる対象は新たに認識されたデバイスに限られる。
<優先ドライバの決定>
次に、図8乃至図12を参照して、図7のステップ704の詳細を説明する。
なお、上述したように本願は、ユーザの意図とは関係なくネットワークに接続されているプリンタに関連するドライバが自動インストール処理されることにより、ホストコンピュータのメモリが浪費してしまうという点を課題としている。さらに、本願は、1つのデバイスに対して複数のデバイスドライバがインストールされることもあり、ユーザが実際にデバイスドライバを選択する際に、誤ったデバイスドライバを選択する恐れについても課題としている。本願は、この課題を解決するためにユーザの趣向に合わせた機能情報(例えばPDL)を特定し、特定された機能情報(例えばPDL)に対応するデバイスドライバを自動インストールすることを目的とする。そのため、本願ではホストコンピュータにおけるデバイスドライバのインストール履歴情報に基づいて、ユーザが所望とする機能情報(例えばPDL)を特定する。例えば、履歴情報を参照して、最も多くインストールされているPDLを特定することができれば、ユーザはそのPDLを好んで使用してきたと想定できる。そのため、ユーザの趣向を反映したデバイスドライバの自動インストールを実現できる。なお、本願に記載のインストール履歴情報とは、自動インストールを実行する時点よりも過去および現在(自動インストールを実行する時点)においてインストールされているデバイスドライバについての情報を保持しているとする。つまり、プラグアンドプレイマネージャ304が、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報である。また、本願に記載のインストール履歴情報とは、自動インストールを実行する時点よりも過去にインストールされたことのあるデバイスドライバについての情報である。つまり、プラグアンドプレイマネージャ304が、デバイスドライバをインストールすべく制御する時点においてインストールされたことのあるデバイスドライバについての情報でもある。さらに、インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前またはデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報でもある。
ステップ704は、着目している基準項目によって異なる処理となるので、まず着目基準項目が何かが判定され、その判定結果に応じて図7乃至図12のいずれかで説明する処理が実行される。
(最多インストール基準)
図8は、着目する基準項目が、「もっとも多くインストールしたドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、過去にクライアントコンピュータにインストールされたデバイスドライバが対応した機能情報のうち、最多の機能情報と同種の機能情報に対応するデバイスドライバを選択する、というものである。つまり、図8のフローチャートは、インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を基準項目に対して設定する。そして、優先インストール部3033は、過去に最も多くインストールされた機能情報に対応するデバイスドライバを自動インストールする。図8の例では、ステップ802によって対象デバイスをプリンタに限定し、機能情報をPDLに限定しているが他のデバイスや機能情報であっても図8の手順を適用できる。その拡張は、ステップ802を削除し、図中の「PDL」を機能情報と読み替えれば容易に実現できる。これは図9,図10についても同様である。
さて、過去にインストールしたドライバは、オペレーティングシステムによって、クラスインストーラ306がインストールした順番に番号をINFファイル名称につけてドライバデータベース307に保持されている。これはたとえばウインドウズ(登録商標)において実現されている。優先インストール部3033は、「もっとも多くインストールしたドライバ」が着目する基準項目であれば、一番番号の大きい(つまり最後にインストールされた)INFファイルをドライバデータベース307から取得する(801)。
次にINFファイルのClassエントリを見て、優先インストール部3033は、デバイスの種類がプリンタであるかどうかを判定する(802)。Classエントリにはデバイスの種類を示す情報が記録されている。優先インストール部3033が、現在判定対象としているINFファイルがプリンタであると判定した場合には、INFファイルのDescriptionからPDL名称を検索する(803)。PDL名称が見つかれば、そのPDLに対応するカウンタに1加算する。初めて現れたPDL名称であればPDLに対応するカウンタ値を1とする。こうして、優先インストール部3033は、PDLの種類毎に対応するドライバの数をカウントする(804)。
優先インストール部3033は、取得していないINFファイルがドライバデータベースに有るか判定し、あれば次のINFファイルを取得して(808)、また同じ処理を繰り返す。PDL名称には、たとえばPostscript(登録商標)等がある。INFファイルのDescriptionにはそのような名称が含まれているので、ステップ803では、優先インストール部3033は、あらかじめ用意しておいたPDL名称をINFファイルから検索する。
すべてのINFファイルを検索してそれに含まれるPDLをカウントし終わったら、優先インストール部3033は、一番多かった(すなわちカウンタ値が最大の)PDLが一意に決定できるか判定する。一意に決定できれば、優先インストール部3033は、カウンタ値が最大のPDLを優先PDL(優先機能情報)として決定する。そして優先インストール部3033は、決定されたPDLの識別名など、ドライバを特定するための情報(優先機能情報情報)をメモリ等に保存する(807)。一意に決定できない場合には、優先PDLを見つけられなかったものとして、その旨を示す情報を保存して終了する(809)。ステップ807で保存された優先機能情報情報や、ステップ809で保存した情報が図7のステップ705に引き渡されて、判定の材料となる。
図8の処理を実行することにより、過去に最も多くインストールされたPDL(機能情報)を特定し、該PDLに対応したデバイスドライバを特定してから自動インストールが実行される。上述したようにINFファイルは、対応するデバイスドライバがアンインストールされてもホストコンピュータの記憶部に残るため、過去にインストールされたデバイスドライバの履歴を反映した自動インストール処理を実現できる。
ここで、過去に最も多くインストールされたPDLは、ユーザにとって使いなれたPDLであり、これまでと変わらない出力処理を実現することが可能となる。このような基準項目を設定することでユーザの趣向に合ったPDLに対応するデバイスドライバを特定して、インストールすることが可能となる。そのため、ユーザにとって不必要なデバイスドライバがインストールされることによるメモリの浪費を防止できる。さらに、ユーザにとって不必要なデバイスドライバがインストールされることにより、ユーザの意図しないPDLにて印刷されることも防止できる。
(現在インストール基準)
図9は、着目する基準項目が、「現在インストール済みのドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、現在インストールされている各デバイスドライバの機能情報(例えばPDL)の中で最多の機能情報(例えばPDL)と同種の機能情報(例えばPDL)に対応するデバイスドライバを選択するものである。なお、上述した「最多インストール基準」が基準項目の場合、過去にインストールされたものが対象となるため、既にアンインストールされているデバイスドライバについてもカウントの対象となる。しかし、「現在インストール基準」が基準項目の場合、既にアンインストールされているデバイスドライバはカウント対象外である。つまり、図9は、インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報が基準項目に対して設定された場合に実行される。
ウインドウズ(登録商標)では、現在ホストコンピュータにインストールされているプリンタドライバは、印刷するためのデータを保持するプリントキューというオブジェクトに一つ一つ割り当てられている。そこでまず、優先インストール部3033は、すべてのプリントキューからプリンタドライバを列挙するために、オペレーティングシステムのAPIであるEnumPrinters()を呼び出す(901)。ここでひとつも列挙されなければプリンタキューが存在しない。そこで、優先インストール部3033は、現在プリントキューが存在するか判定する(902)。判定の結果、存在しなければ、優先するドライバすなわち「現在インストール済みのドライバ」に該当するドライバが見つけられなかったと判定できる。
プリントキューが存在すれば、次に、優先インストール部3033は、列挙されたプリンタドライバのうち先頭のプリンタドライバに着目する(903)。優先インストール部3033は、着目したプリンタドライバに対してそのドライバの能力を取得するためにオペレーティングシステムのAPIであるDeviceCapabilities()をDC_PERSONARITYの引数で呼び出す(905)。DC_PERSONARITYは、PDL名称を取得する機能である。優先インストール部3033は、ここで取得したPDL名称をカウントする(906)。すなわち、PDL名称ごとにカウンタを設け、ステップ905で取得できた名称に対応するカウンタに1を加算する。まだ列挙したプリンタドライバが残っているときは(907)、優先インストール部3033は、現在の着目プリンタドライバの次のプリンタドライバに着目する(904)。そしてPDL名称取得を行う。
優先インストール部3033は、列挙したプリンタすべてのPDLをカウントし終わった場合(907−いいえ)、カウント値が最大となるPDLを調査する(908)。一番多かったPDLが一意に決定できれば、優先インストール部3033は、そのPDLを優先するPDLとして決定し、そのPDLすなわち機能情報を特定するための優先機能情報情報を保存する(909)。そうでなければ見つけられなかったものとして、その旨を示す情報を保存して終了する終了する(910)。
図9に記載の処理を実行することにより、現在インストールされているデバイスドライバの中で最も多くインストールされているPDLを特定することができる。例えば、図18の場合、PDL1に対応するデバイスドライバが最も多くインストールされている。よって、PDL1が、ユーザが最も必要とするPDLであると想定できる。優先インストール部3033は、複数種類のデバイスドライバからPDL1に対応するデバイスドライバに特定してインストール処理が実行される。以上のように、図9の処理を実行することで、インストール処理を実行する時点でのユーザの趣向にあったPDLを特定する。そして、特定されたPDLに対応するデバイスドライバが自動インストール対象となり、ユーザの趣向にあったデバイスドライバに限定してインストールすることが可能となる。よって、ユーザにとって不必要なデバイスドライバがインストールされることによるメモリの浪費を防止できる。さらに、ユーザにとって不必要なデバイスドライバがインストールされることにより、ユーザの意図しないPDLにて印刷されることも防止できる。
また、図9では現在インストールされている各デバイスドライバが対応する機能情報(例えばPDL)の中で最も多い機能情報(例えばPDL)と同種の機能情報(例えばPDL)に対応するデバイスドライバを選択する処理と記載したがこれに限る必要はない。現在インストールされている各デバイスドライバが対応する機能情報(例えばPDL)を保持し、これら保持された機能情報(例えばPDL)に対応するデバイスドライバを自動インストール対象としても良い。この処理により、例えば図18のような結果が得られたとする。この場合、PDL1、PDL2、PDL3の3種類のPDLドライバが現在インストールされている。ここで、現在インストールされているPDLは、ユーザが必要としていると考えられる。よって、優先インストール部3033は、インストール処理を実行する時点において、ユーザが必要とする3種類のPDLに対応するデバイスドライバをインストールすることが可能となる。よって、ユーザは用途にあった出力処理を実現することが可能となる。
(最近インストール基準)
図10は、着目する基準項目が、「最近インストールしたドライバ」である場合の、ドライバの決定手順を示す図である。この基準項目は、換言すれば、クライアントコンピュータに最近インストールされたデバイスドライバが対応する機能情報と同種の機能情報に対応するデバイスドライバを選択する、というものである。つまり、図10、インストール履歴情報において、コンピュータに最後(最近)にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報が基準項目に対して設定された場合に実行される。
前述したように過去にインストールしたドライバは、オペレーティングシステムによって、クラスインストーラ306がインストールした順番に番号をINFファイル名称につけてドライバデータベース307に保持されている。そこで優先インストール部3033は、まず一番番号の大きい(つまり最後にインストールされた)INFファイルをドライバデータベース307から取得する(1001)。次に優先インストール部3033は、INFファイルのClassエントリを見て、デバイスの種類がプリンタであるかどうかを判定する(1002)。プリンタだった場合は、優先インストール部3033は、INFファイルのDescriptionからPDL名称を検索する(1003)。PDL名称が見つかれば(1004)、優先インストール部3033は、そのPDLを優先するPDLとして決定し、そのPDLすなわち機能情報を特定するための優先機能情報情報を保存する(1005)。また、1004の処理により、優先インストール部3033が、PDL名称を見つけることができない場合(1004−No)、次に番号の大きいINFファイルを取得して(1006)、また同じ処理を繰り返す。すべてのINFファイルを検索して見つけられなかったら、そこで終了する。この場合には、該当するドライバはない旨を示す情報を保存して図7のステップ705に引き渡す(1008)。
図10の処理を実行することにより、ユーザが最近インストールしたデバイスドライバに対応するPDLを特定して、該PDLに対応するデバイスドライバのみを自動インストール対象とすることができる。つまり、インストール処理を実行する時点における最新のユーザの趣向を反映したPDLを特定して、デバイスドライバをインストールすることが可能となる。
(最適アプリケーション基準)
次に着目する基準項目が、「現在使用しているアプリケーションに最適なドライバ」の場合のPDL検出方法を図11のデータベース図とともに説明する。図11のデータベースは、デバイスドライバと基準項目の値との関連を示す関連情報であるともいえる。これは図12についても同様である。
本例の場合の手順は非常に単純であるので、手順のフローは省略する。優先インストール部3033は、アプリケーション名とそのアプリケーションに最適なPDL名称をテーブルに持つ図11のようなアプリケーション別PDLデータベースをあらかじめ保持している。優先インストール部3033は、現在インストールされているアプリケーションを、ハードディスクなどの外部記憶装置をスキャンして調査する。たとえばオペレーティングシステムが管理するレジストリなどに、インストールされたアプリケーション名が登録されているので、それを取得できる。そこで取得した名称で図11のデータベースを検索する。検索の結果ヒットすれば、すなわちデータベースに登録されたアプリケーションがインストールされていれば、データベース1101において、そのアプリケーション名に対応するPDL名ごとにカウントを行う。これを、インストールされているアプリケーションすべてについて繰り返す。すべてのアプリケーションについて対応するPDLをカウントし終えたなら、最大のカウント値のPDLが優先するPDLである。そこで、カウンタ値が一番大きかったPDLが一意に決定できるか判定する。そして一意に決定できれば、そのPDLを優先するPDLとして決定し、そのPDLすなわち機能情報を特定するための優先機能情報情報を保存する。そうでなければ見つけられなかったものとして、該当するドライバはない旨を示す情報を保存して図7のステップ705に引き渡す。
(ネットワーク負荷基準)
次に、着目する基準項目が、「ネットワーク負荷をかけないドライバ」である場合のPDL検出方法を図12のデータベース図とともに説明する。前述の4通りの基準では、優先機能情報であると決定されたPDLに対応するドライバがプラブアンドプレイの対象として選択された。これに対してネットワーク負荷基準では、図13に示すような手順で探索されたプリンタが対応するPDLのドライバのうち、最もネットワークに負荷をかけないドライバがPnPの対象として選択される。すなわち、プリンタによっては、異なる種類のPDLのドライバがPnPの対象とされる場合がある。本例ではネットワークの負荷はスプールファイルのサイズで示されている。
優先インストール部3033は、ある決まったサンプルデータを印刷したときに出力されるPDLデータのスプールファイルサイズとそのPDL名称をテーブルに持つ図12のようなデータベース1201をあらかじめ保持している。すなわち、データベース1201のスプールサイズは、各種類のPDLにより必要とされるスプールファイルの比を表している。もちろん印刷するデータの内容により変動する可能性はあるので、サンプルデータは、各データタイプを、実印刷時の比率で含むようなデータであることが望ましい。
優先インストール部3033は、まず、ファンクションディスカバリカテゴリ401の関連データベース4012から、探索されたプリンタのデバイス情報を取得する。デバイス情報に含まれる機能情報情報を参照して、複数のPDLを機能情報として持つプリンタを検索する。該当するデバイス情報があれば、そのPDL名称を、データベース1201内のPDLリストと比較する。そして、そのデバイス情報に含まれるPDLの中でもっともスプールサイズの小さいPDLをデータベース1201から選択する。選択されたPDLを表す情報が、優先機能情報情報として図7のステップ705に引き渡される。もしも一意に決められないときは、見つけられなかったものとして終了する。
以上、図7乃至図12を参照して説明したように、ネットワークプラグアンドプレイによりデバイスドライバをインストールする際において、インストール履歴情報を用いて、優先する機能情報を一定の基準で選択する。そして、選択した機能情報に対応するドライバがコンピュータにインストールされる。このため、ネットワークに接続されたすべてのデバイスの全ての機能情報に対応したドライバがインストールされることを防止できる。特に本実施形態では、複数の機能情報として、複数種類のPDLをサポートしたプリンタ(例えば複数種類のデバイスドライバと対応する周辺機器)と通信可能なコンピュータが、その全PDLのドライバに対してインストール処理を実行しない。該一定基準で選択したPDLのドライバをインストールする。このため印刷実行時に、ユーザの意図しないPDLに対応したドライバにて印刷されることを防止でき、ユーザのドライバ選択の選択操作の向上に寄与する。このように、本願に記載の機能情報を特定する処理は、ネットワークに接続された周辺機器から所定のメッセージを取得し、複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に実行される。
さらにインストールするドライバを決定するための基準を利用者が指定できる。このため、利用者は最も自己の利用環境に適した基準を選択することで、インストールされるドライバを間接的に選択できる。
また、図8乃至図12では、複数のPDLを搭載したデバイスの機能を優先してインストールする仕組みを記述した。しかしこれはPDLではなくてもよい。たとえば、マルチファンクションデバイスにおいて、FAXとプリンタとスキャナの機能を持っている場合で、FAXとプリンタのドライバのみインストールするような手法に置き換えてもよい。この場合PDLを、機能情報と置き換えればよい。デバイスが提供する機能情報は、GetMetadataメッセージによりデバイスから取得できる機能情報情報から特定できる。本実施形態では、機能情報情報はデバイス情報にふくまれるものと説明したが、機能情報情報がデバイス情報とは別のシーケンスで取得されるシステムであっても、本発明が適用できる。
以上、この発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではない。すなわち、本発明の本質を損なわない範囲であれば、実施形態の変形は可能である。
なお本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分っき加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
本発明の一実施形態として、コンピュータを含むシステムの構成を説明するブロック図である。 本発明の一実施形態として、コンピュータとプリンタがネットワークで接続された、ネットワークプリンティング環境の簡略図である。 本発明の一実施形態として、ネットワークプラグアンドプレイの全体システム構成を説明するブロック図である。 本発明の一実施形態として、図4のネットワークプラグアンドプレイのうちファンクションディスカバリの部分を詳細にしたブロック図である。 本発明の一実施形態としての、ファンクションディスカバリの「ネットワークデバイスの追加と削除」のユーザインタフェースの一例を示す図である。 本発明の一実施形態としての、ファンクションディスカバリの「優先インストール」のユーザインタフェースの一例を示す図である。 本発明の一実施形態としての、優先インストールの処理フローを表したフローチャート図である。 本発明の一実施形態としての、優先インストールの優先設定項目のうち「もっとも多くインストールしたドライバ」の処理フローを表したフローチャート図である。 本発明の一実施形態としての、優先インストールの優先設定項目のうち「現在インストール済みドライバ」の処理フローを表したフローチャート図である。 本発明の一実施形態としての、優先インストールの優先設定項目のうち「最近インストールしたドライバ」の処理フローを表したフローチャート図である。 本発明の一実施形態としての、優先インストールの優先設定項目のうち「現在使用しているアプリケーションに最適なドライバ」のデータベース図である。 本発明の一実施形態としての、優先インストールの優先設定項目のうち「ネットワーク負荷をかけないドライバ」のデータベースの一例を示す図である。 本発明の一実施形態としての、Device Profile for Web Servicesのメッセージシーケンス図である。 本発明の一実施形態としての、SOAPにおけるWS−DiscoveryのProbeメッセージのサンプルを示す図である。 本発明の一実施形態としての、SOAPにおけるWS−DiscoveryのProbeMatchメッセージのサンプルを示す図である。 本発明の一実施形態としての、SOAPにおけるDevice Profile for Web ServicesのGetMetadataメッセージのサンプルを示す図である。 本発明の一実施形態としての、SOAPにおけるDevice Profile for Web Servicesのメタデータメッセージのサンプルを示す図である。 プリンタドライバとページ記述言語との対応関係の例を示す図である。
符号の説明
101 CPU
102 ROM
103 RAM
104 入力I/F
105 外部記憶装置
1051 アプリケーションソフトウェア
1052 印刷関連プログラム
1053 プリンタドライバ
1054 オペレーティングシステム

Claims (30)

  1. 複数種類のデバイスドライバと対応する周辺機器と通信可能なコンピュータにおけるプログラムであって、
    コンピュータに保持されている、当該コンピュータにインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
    前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
    前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
    前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段としてコンピュータを機能させるためのプログラム。
  2. 前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定手段としてさらにコンピュータを機能させ、
    前記特定手段は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定手段によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項1に記載のプログラム。
  3. 前記設定手段は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項2に記載のプログラム。
  4. 前記設定手段は、前記インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項2または3に記載のプログラム。
  5. 前記設定手段は、前記インストール履歴情報において、前記コンピュータに最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項2乃至4のいずれか1項に記載のプログラム。
  6. 前記設定手段は、複数の基準項目に対して順位を設定し、
    前記特定手段は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定手段により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
    前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項2乃至5のいずれか1項に記載のプログラム。
  7. 前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項1乃至6のいずれか1項に記載のプログラム。
  8. 前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも1つ以上の情報を含むことを特徴とする請求項1乃至7のいずれか1項に記載のプログラム。
  9. 前記コンピュータを、ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得手段として更に機能させ、
    前記特定手段は、前記メッセージ取得手段により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項1乃至8のいずれか1項に記載のプログラム。
  10. 前記インストール制御手段は、オペレーションシステムに対して前記特定手段によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項1乃至9のいずれか1項に記載のプログラム。
  11. 複数種類のデバイスドライバと対応する周辺機器と通信可能な機能情報提供装置であって、
    保持している、当該機能情報提供装置にインストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識手段と、
    前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定手段と、
    前記特定手段にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定手段と、
    前記決定手段により決定されたデバイスドライバをインストールすべく制御するインストール制御手段と
    を備えることを特徴とする機能情報提供装置。
  12. 前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定手段をさらに有し、
    前記特定手段は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定手段によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項11に記載の機能情報提供装置。
  13. 前記設定手段は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項12に記載の機能情報提供装置。
  14. 前記設定手段は、前記インストール履歴情報において、現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項12または13に記載の機能情報提供装置。
  15. 前記設定手段は、前記インストール履歴情報において、最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項12乃至14のいずれか1項に記載の機能情報提供装置。
  16. 前記設定手段は、複数の基準項目に対して順位を設定し、
    前記特定手段は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定手段により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
    前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項12乃至15のいずれか1項に記載の機能情報提供装置。
  17. 前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項11乃至16のいずれか1項に記載の機能情報提供装置。
  18. 前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも1つ以上の情報を含むことを特徴とする請求項11乃至17のいずれか1項に記載の機能情報提供装置。
  19. ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得手段をさらに有し、
    前記特定手段は、前記メッセージ取得手段により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識手段によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項11乃至18のいずれか1項に記載の機能情報提供装置。
  20. 前記インストール制御手段は、オペレーションシステムに対して前記特定手段によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項11乃至19のいずれか1項に記載の機能情報提供装置。
  21. 複数種類のデバイスドライバと対応する周辺機器と通信可能な機能情報提供方法であって、
    保持している、インストールされたことのあるデバイスドライバのインストール履歴情報を認識する認識工程と、
    前記認識工程によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた機能情報を解析して、インストールの対象となる機能情報を特定する特定工程と、
    前記特定工程にて特定された機能情報に基づいて前記周辺機器に対応する複数種類のデバイスドライバからインストールすべきデバイスドライバを決定する決定工程と、
    前記決定工程により決定されたデバイスドライバをインストールすべく制御するインストール制御工程と
    を有することを特徴とする機能情報提供方法。
  22. 前記インストール処理を実行する際にインストールすべきデバイスドライバの機能情報を特定するための基準項目を設定する設定工程をさらに有し、
    前記特定工程は、前記インストール履歴情報に含まれる複数種類のデバイスドライバ情報に対応する機能情報から前記設定工程によって設定された基準項目に基づいて機能情報を特定することを特徴とする請求項21に記載の機能情報提供方法。
  23. 前記設定工程は、前記インストール履歴情報においてインストールされたデバイスドライバ情報に対応する機能情報のうち、最多の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項22に記載の機能情報提供方法。
  24. 前記設定工程は、前記インストール履歴情報において、コンピュータに現在インストールされているデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項22または23に記載の機能情報提供方法。
  25. 前記設定工程は、前記インストール履歴情報において、前記コンピュータに最後にインストールされたデバイスドライバの機能情報と同種の機能情報に対応するデバイスドライバをインストールするための情報を前記基準項目に対して設定することを特徴とする請求項22乃至24のいずれか1項に記載の機能情報提供方法。
  26. 前記設定工程は、複数の基準項目に対して順位を設定し、
    前記特定工程は、前記複数の基準項目のうち前記順位に従って基準項目に着目して、前記決定工程により決定された周辺機器に対応するデバイスドライバをインストールする際に、前記着目された基準項目に基づいて機能情報を特定し、
    前記着目された基準項目に基づいて前記機能情報を特定することができない場合には、インストールする際に使用される機能情報が特定されるまで、前記設定された順位に従って着目すべき基準項目を順次変更する処理を繰り返すことを特徴とする請求項22乃至25のいずれか1項に記載の機能情報提供方法。
  27. 前記デバイスにはプリンタが含まれ、前記機能情報はプリンタが解釈可能なページ記述言語であることを特徴とする請求項21乃至26のいずれか1項に記載の機能情報提供方法。
  28. 前記インストール履歴情報は、デバイスドライバをインストールすべく制御する時点よりも以前にインストールされたデバイスドライバについての情報、及びデバイスドライバをインストールすべく制御する時点においてインストールされているデバイスドライバについての情報の少なくとも1つ以上の情報を含むことを特徴とする請求項21乃至27のいずれか1項に記載の機能情報提供方法。
  29. ネットワークに接続された周辺機器から所定のメッセージを取得するメッセージ取得工程をさらに有し、
    前記特定工程は、前記メッセージ取得工程により複数種類のデバイスドライバと対応する旨のメッセージを取得した場合に、前記認識工程によって認識されたデバイスドライバのインストール履歴情報に含まれるインストールされたデバイスドライバ情報と対応付けられた情報を解析して、インストールの対象となる機能情報を特定することを特徴とする請求項21乃至28のいずれか1項に記載の機能情報提供方法。
  30. 前記インストール制御工程は、オペレーションシステムに対して前記特定工程によって特定された機能情報に対応するデバイスドライバをインストールするよう指示することを特徴とする請求項21乃至29のいずれか1項に記載の機能情報提供方法。
JP2005303710A 2005-10-18 2005-10-18 プログラム、機能情報提供装置、および機能情報提供方法 Expired - Fee Related JP4756988B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005303710A JP4756988B2 (ja) 2005-10-18 2005-10-18 プログラム、機能情報提供装置、および機能情報提供方法
US11/549,757 US7908609B2 (en) 2005-10-18 2006-10-16 Information processing apparatus with device driver installation control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005303710A JP4756988B2 (ja) 2005-10-18 2005-10-18 プログラム、機能情報提供装置、および機能情報提供方法

Publications (3)

Publication Number Publication Date
JP2007114900A JP2007114900A (ja) 2007-05-10
JP2007114900A5 JP2007114900A5 (ja) 2008-12-04
JP4756988B2 true JP4756988B2 (ja) 2011-08-24

Family

ID=38097033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005303710A Expired - Fee Related JP4756988B2 (ja) 2005-10-18 2005-10-18 プログラム、機能情報提供装置、および機能情報提供方法

Country Status (2)

Country Link
US (1) US7908609B2 (ja)
JP (1) JP4756988B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080046567A1 (en) * 2006-08-18 2008-02-21 Microsoft Corporation Automatic detection and integration of network workloads
US8151206B2 (en) * 2007-04-03 2012-04-03 International Business Machines Corporation Modifying an order of processing of a task performed on a plurality of objects
CN101730868B (zh) * 2007-05-04 2013-03-27 施奈德电气自动控制有限责任公司 协作的自动化系统以及用于控制这样的自动化系统的方法
JP4649584B2 (ja) * 2007-06-01 2011-03-09 サイレックス・テクノロジー株式会社 周辺機器ドライバインストールシステム
US8589866B2 (en) * 2007-08-29 2013-11-19 Ricoh Company, Ltd. Automatically generating capability-based computer peripheral device drivers
JP4940105B2 (ja) * 2007-10-31 2012-05-30 キヤノン株式会社 情報処理装置、情報処理方法、及び制御プログラム
US8155019B2 (en) * 2008-01-07 2012-04-10 Canon Kabushiki Kaisha Information processing apparatus, device information display method, and computer-readable storage medium
US20090190150A1 (en) * 2008-01-24 2009-07-30 Selvaraj Senthil K On-Demand Print Driver
JP2009288935A (ja) * 2008-05-28 2009-12-10 Brother Ind Ltd デバイス管理システムおよびプログラム
JP2010072804A (ja) * 2008-09-17 2010-04-02 Ricoh Co Ltd ドライブ制御装置とプログラム
US8271703B2 (en) * 2008-10-17 2012-09-18 Ricoh Company, Ltd. Providing device defined user interface modifiers to a computer system
US8427675B2 (en) * 2009-01-27 2013-04-23 Ricoh Company, Ltd. Automatically updating a printer driver with new printing device features
JP2010186239A (ja) * 2009-02-10 2010-08-26 Ricoh Co Ltd 情報処理装置、プログラム制御方法、プログラム制御プログラム及び記録媒体
US8773687B2 (en) 2009-03-06 2014-07-08 Ricoh Company, Ltd. Driverless architecture for printing systems
US8526020B2 (en) * 2009-03-06 2013-09-03 Ricoh Company, Ltd. Paper size support for a print system
US8520225B2 (en) * 2009-03-06 2013-08-27 Ricoh Company, Ltd. Print driver localization support from printing device to support multiple user profiles
US20100225958A1 (en) * 2009-03-06 2010-09-09 Selvaraj Senthil K Approach For Printing To Web Services-Enabled Printing Devices
JP2010282610A (ja) * 2009-05-07 2010-12-16 Canon Inc ネットワークシステム及びその管理方法
JP5263034B2 (ja) * 2009-06-26 2013-08-14 ブラザー工業株式会社 プログラム、およびソフトウェア判定システム
US8405853B2 (en) 2009-07-31 2013-03-26 Ricoh Company, Ltd. Dynamic DEVMODE support
US8310706B2 (en) * 2009-07-31 2012-11-13 Ricoh Company, Ltd. Dynamic and real-time print schema documents
JP5489619B2 (ja) * 2009-09-29 2014-05-14 キヤノン株式会社 情報処理装置及びその方法
JP2011081500A (ja) * 2009-10-05 2011-04-21 Giga-Byte Technology Co Ltd 操作システムと操作方法
JP2011186969A (ja) * 2010-03-11 2011-09-22 Canon Inc 情報処理装置、情報処理装置の制御方法、インストール方法及びコンピュータプログラム
JP6057115B2 (ja) * 2012-03-24 2017-01-11 日本電気株式会社 情報処理システム、情報処理方法、携帯端末、情報処理装置およびその制御方法と制御プログラム
US8867054B2 (en) * 2012-07-23 2014-10-21 Xerox Corporation File of multiple print driver output files for pull-printing on multiple devices
US20140064143A1 (en) * 2012-07-27 2014-03-06 Ingersoll-Rand Company System for account setup and/or device installation
JP6021651B2 (ja) * 2013-01-16 2016-11-09 キヤノン株式会社 管理システム、管理方法およびコンピュータプログラム
JP6468293B2 (ja) * 2015-01-22 2019-02-13 富士通株式会社 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置
JP6613927B2 (ja) * 2016-01-29 2019-12-04 株式会社リコー 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム
JP6882059B2 (ja) * 2017-05-12 2021-06-02 キヤノン株式会社 プログラム、方法、及び装置
EP3410240B1 (en) * 2017-05-30 2021-07-07 Schneider Electric Industries SAS Method for replacing and/or cloning at least some devices of a machine

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132361A (ja) * 1999-11-24 2000-05-12 Seiko Epson Corp プリンタ検索装置及びその方法
JP4464029B2 (ja) 2001-04-19 2010-05-19 キヤノン株式会社 情報処理方法および制御プログラムおよび情報処理装置および周辺装置および応答方法および代理応答装置およびネットワークシステム
US20040003135A1 (en) * 2002-06-27 2004-01-01 Moore Terrill M. Technique for driver installation
JP2005258895A (ja) * 2004-03-12 2005-09-22 Fuji Xerox Co Ltd ドライバ選択方法および装置並びにプログラム
US20060253617A1 (en) * 2005-04-22 2006-11-09 Microsoft Corporation Driver upgrade tools

Also Published As

Publication number Publication date
JP2007114900A (ja) 2007-05-10
US7908609B2 (en) 2011-03-15
US20070136485A1 (en) 2007-06-14

Similar Documents

Publication Publication Date Title
JP4756988B2 (ja) プログラム、機能情報提供装置、および機能情報提供方法
US9602678B2 (en) Peripheral device control system and method
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
JP4971610B2 (ja) デバイスドライバを管理するためのプログラムおよび方法と情報処理装置
US7316022B2 (en) Information processing apparatus, information processing method, alternate response apparatus, response method, control program, and network system
JP4485997B2 (ja) 印刷制御装置、印刷制御システム、印刷制御方法、印刷制御プログラム及び記録媒体
US20110075207A1 (en) Information processing apparatus and method thereof
US8488174B2 (en) Print control apparatus, print control method, and storage medium for configuring output device based on acquired information
JP2007114901A (ja) ネットワーク対応出力デバイス及び情報処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体、及び、ネットワークシステム
US20060126111A1 (en) Network printing system to copy setting information and a method of copying setting information
JP5413077B2 (ja) 情報処理システム、画像形成装置、情報処理装置、情報処理方法、及びプログラム
US20110023054A1 (en) Information processing apparatus, information processing method and storage medium
US8611248B2 (en) Information processing apparatus, device information display method, and computer-readable storage medium
US20120059916A1 (en) Network device management system, network device management apparatus, client apparatus, and network device management method
JP2009064415A (ja) 情報処理装置、デバイス制御方法、デバイス制御プログラム及び記録媒体
JP5728896B2 (ja) 印刷システム及びプログラム
US20110051190A1 (en) Information processing apparatus, information processing method, and program
US8059294B2 (en) Image forming based on operation mode
JP4467955B2 (ja) 情報処理装置、周辺装置制御システム及び情報処理装置に適用される周辺装置制御方法並びにそのプログラム
JP2005258721A (ja) デバイス構成情報の取得方法及び情報処理装置
JP4912093B2 (ja) 情報処理方法、情報処理装置、プログラム及び記憶媒体
JP2013016077A (ja) 情報処理装置、プログラム、及び印刷システム
JP2007199825A (ja) データ処理装置、出力装置、情報処理装置、ドライバ処理方法、プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110520

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: 20110531

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees