JP6486233B2 - 周辺装置、その方法、及びプログラム - Google Patents

周辺装置、その方法、及びプログラム Download PDF

Info

Publication number
JP6486233B2
JP6486233B2 JP2015150501A JP2015150501A JP6486233B2 JP 6486233 B2 JP6486233 B2 JP 6486233B2 JP 2015150501 A JP2015150501 A JP 2015150501A JP 2015150501 A JP2015150501 A JP 2015150501A JP 6486233 B2 JP6486233 B2 JP 6486233B2
Authority
JP
Japan
Prior art keywords
architecture
device driver
driver
identification information
information processing
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
JP2015150501A
Other languages
English (en)
Other versions
JP2017033141A (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 JP2015150501A priority Critical patent/JP6486233B2/ja
Priority to US15/209,553 priority patent/US20170031668A1/en
Publication of JP2017033141A publication Critical patent/JP2017033141A/ja
Application granted granted Critical
Publication of JP6486233B2 publication Critical patent/JP6486233B2/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/022Multivendor or multi-standard integration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • H04L41/0809Plug-and-play configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明はパーソナルコンピューターなどの情報処理装置とプリンターなどの周辺装置を接続する時のデバイスドライバーのインストールのための技術に関する。
従来から、複数の種類のデバイスドライバーが用意されている周辺装置が存在する。例えば、多種のPDL(Page Description Language)をサポートするプリンターが存在する。これらのプリンターでは、全てのPDLの種類に対する識別情報(例えば、プラグアンドプレイID)を管理している。プラグアンドプレイ(PnP)と呼ばれる技術では、情報処理装置が、いずれかの識別情報をプリンターから取得することで該識別情報に対応するPDLのプリンタードライバーをインストールすることができる。
しかしながら1つのPDLのプリンタードライバーしか使用しないユーザーにとって、複数のPDL用のプリンタードライバーは必要ないため、特許文献1に記載の技術のように、どのPDLのプラグアンドプレイを発生させるかをユーザーに選択させることができる技術が知られている。
特開2007−097156号公報
近年、Windows(登録商標)OS(Operating System)において、v3プリンタードライバー、v4プリンタードライバーと呼ばれる、同じOS上で動作するアーキテクチャの全く異なるプリンタードライバーが登場してきている。アーキテクチャの異なるプリンタードライバーは提供する画面(GUI)や、機能や使用手順が異なっている。例えば、v4プリンタードライバーは、従来のプリンタードライバーとは異なり、タッチパネルディスプレイに特化したGUIを用意しているといった特徴を持っている。
ここで、将来的には、最新のOSにおいて、古いアーキテクチャのプリンタードライバーをサポートしなくなることが考えられる。このような場合には、ネットワーク環境上に存在する複数の情報処理装置において、その最新のOSがインストールされている装置と、そうでない装置とが混在することが考えられる。
先行技術の方法で、プリンターに古いアーキテクチャのプリンタードライバーに対応するIDを設定してしまうと、その最新のOSでは、該当するプリンタードライバーがプラグアンドプレイでインストールできなくなるという課題が生じる。情報処理装置とプリンターが新たに接続するたびに、プリンターで設定されるプラグアンドプレイで利用される識別情報を、ユーザーが情報処理装置のOSを判別して変更するといったことも考えられるが、これは手間がかかる作業と言える。
上記課題を解決するために、本発明の周辺装置は、周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第1のアーキテクチャのデバイスドライバー及び第2のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定手段と、接続された情報処理装置で動作するOS(オペレーティングシステム)の情報を取得する取得手段と、前記OSの情報に基づき、該OSが第2のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断手段と、前記指定手段により第1のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第1のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信手段と、を有し、前記送信手段は、前記指定手段により第2のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第2のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする。
本発明によれば、接続された情報処理装置のOSを調べて、周辺装置側のインストール対象となるデバイスドライバーの指定を手動変更しなくても、該OSにとって適切なアーキテクチャのデバイスドライバーのIDがプラグアンドプレイのために周辺装置から情報処理装置に送信されるようになる。
コンピューターとプリンターとの接続形態を示す図である。 コンピューターとプリンターの構成を示す図である。 プリンターが提供するユーザーインタフェースの遷移を示す図である。 実施例1におけるネットワーク(WSD)接続時の処理を説明するためのフローチャートである。 第2のアーキテクチャのデバイスドライバーに対応するIDをコンピューターに対して送信する処理の詳細を説明するためのフローチャートを示す図である。 本実施例によりコンピューターに対して送信されるPnP IDの例を示す図である。 GetPrinterElementsの具体例を示す図である。 GetPrinterElementsへの応答の具体例を示す図である。 実施例2におけるUSB接続時の処理を説明するためのフローチャートである。
以下、本発明を実施するための形態について図面を用いて説明する。
(実施例1)
図1(a)は、実施例1におけるコンピューター1000とプリンター2000との接続形態を示す図である。ネットワーク100に対してコンピューター1000と、その周辺装置としてのプリンター2000が接続されている。本発明はデバイスドライバーのインストール技術に関するものであるが、実施例1ではWSD(Web Services on Devices) Discoveryによるプリンタードライバーに係るネットワークプラグアンドプレイを例に説明する。よってプリンター2000はWSDの機能が有効になっていることを前提として以降の説明を行う。なお、WSD以外にも、SSDP(Simple Service Discovery Protocol)など、ネットワークプラグアンドプレイと同様にデバイスドライバーのインストールが実現可能な他のネットワークプロトコルであっても、本発明に適用可能である。
図2はコンピューター1000とプリンター2000の構成をブロック図として示した図である。
まず、情報処理装置としてのコンピューター1000の構成について説明する。コンピューター1000はCPU1041とメモリ1042により構成される制御部1040が全体を制御している。表示部1010はディスプレイなどの出力装置、操作部1020はマウスやキーボードなどの入力装置を示す。また、記憶部1030にはOS(Operating System)1031や各種プログラム1032などのソフトウェアが保存されている。それらのプログラムは必要に応じてメモリ1042にロードされ、CPU1041によって実行される。OS1031はコンピューター1000の基本動作をつかさどるソフトウェアである。ネットワーク通信部1050はネットワーク100に接続して外部装置とのデータの入出力を行う。USB通信部1060はUSB(Universal Serial Bus)で接続された外部装置とのデータの入出力を行う。本発明においてコンピューター1000の処理は、全て記憶部1030に記憶されたソフトウェアを制御部1040におけるメモリ1042にロードしてCPU1041が実行することによって実現される。なお、CPUはCentral Processing Unitの略である。
ここで、本発明が想定するOSには、v3プリンタードライバー及びv4プリンタードライバーといったアーキテクチャの全く異なるプリンタードライバーがともに動作するものと、v3プリンタードライバー及びv4プリンタードライバーのいずれか片方のみしか動作しないものが存在する。コンピューター1000のOS1031としては、その3種類のOSのいずれもがインストールされる可能性がある。
次に、プリンター2000の構成を説明する。プリンター2000はCPU2041とメモリ2042により構成される制御部2040が全体を制御している。表示部2010はパネルなどの出力装置、操作部2020はタッチパネルや各種ボタンによる入力装置を示す。また、記憶部2030にはOS2031や各種プログラム2032が保存されている。これらのソフトウェアは必要に応じてメモリ2042にロードされ、CPU2041によって実行される。OS2031はプリンターの基本動作をつかさどるソフトウェアである。ネットワーク通信部2050はネットワーク100に接続して外部装置とのデータの入出力を行う。USB通信部1060はUSBで接続された外部装置とのデータの入出力を行う。印刷部2070は制御部2040の指示に従って用紙にトナーやインクを定着させて目的の画像を物理用紙上に形成することで印刷を行う。本発明においてプリンター2000の処理は、全て記憶部2030に記憶されたソフトウェアを制御部2040におけるメモリ2042にロードしてCPU2041が実行することによって実現される。
図3は、デバイスドライバーの識別情報をユーザーに選択させるために、プリンター2000が提供するユーザーインタフェース(UI)の遷移を示す図である。ここでは、識別情報としてプリンタードライバーのPDLに対応するPnP IDを例示している。よって、このUIにより選択された識別情報は、情報処理装置におけるデバイスドライバーのインストールに利用されることになる。
UIは、プリンター2000の表示部2010で表示され、タッチパネルや各種ボタンなどの操作部1020によるユーザーからの入力を受け付けて遷移する。
「システム管理設定」2110は、プリンター2000の各種システム管理を設定するためのUIである。本実施例におけるPnP IDの選択設定は、「ページ記述言語(PnP)」2111を選択することで可能になる。選択後のUIが「ページ記述言語(PnP)」2120の画面である。ここでは、接続形態ごと(「ネットワーク」2121、「USB」2122)に対して、PnP IDが指定できる。
「ネットワーク」2121を選択後のUIが、「ネットワーク PnP ID」2130の画面である。この画面には、プリンター2000がPnP IDとして使用できるIDに対応するデバイスドライバーが全て列挙されている。プリンター2000のシステム管理者は、この画面上のリストから、ネットワークプラグアンドプレイをさせたいPDLのプリンタードライバーを指定する。
ここで、リスト内のIDの後端にある「(V3)」は、従前のOSにおいて利用されていたアーキテクチャのプリンタードライバーであることを示している。一方で、「(V4)」は、新しいOSにおいて利用されるようになったアーキテクチャのプリンタードライバーであることを示している。例えば、v4プリンタードライバーは、従来のアーキテクチャのプリンタードライバーとは異なり、タッチパネルディスプレイに特化したGUIを用意しているといった特徴を持っている。また、“PDL1”と“PDL2”などは、それぞれ異なる種類のPDLであることを示している。
プリンター2000のデフォルトの設定は、「PDL1(V3)」2132である。「FAX(V3)」2131は、コンピューター1000上に、V3アーキテクチャのFAXドライバーをプラグアンドプレイに従いインストールさせるための選択肢である。例えば、システム管理者が「FAX(V3)」2131を選択すると、プリンター2000のネットワークPnP IDの設定が「FAX(V3)」に変更され、表示画面は「ページ記述言語(PnP)」に戻る。
なお、「PDL3(V3/V4)」2133は、特殊なPnP IDに対応する選択肢を示す。具体的には、V3アーキテクチャのPDL3用のプリンタードライバーも、V4アーキテクチャのPDL3用のプリンタードライバーも、ともに同じPnP IDに対応づけられている場合がある。よって、この特殊なPnP IDが選択され、プリンター2000が、どちらのアーキテクチャも使用可能なOSが動作するコンピューター1000に接続した場合には、該OS1031にとって優先度の高いプリンタードライバーが選択的にインストールされ、使用されることになる。
「PDL1(V4)」2136は、V4アーキテクチャのPDL1用のプリンタードライバーをププラグアンドプレイに従いインストールさせるための選択肢である。
V4アーキテクチャのPDL2用のプリンタードライバーについては、選択肢に存在しない。これは、プリンターベンダーによって、該プリンタードライバーがサポートされていないなどの理由に依る。また、本実施例では複数あるPDLの中から“PDL1”が最も推奨されるPDL(すなわち、推奨PDL)としてベンダーによって設定されているものとする。
画面2120の「USB」2122選択後のUIが、「USB PnP ID」2140の画面であるが、内容は「ネットワークPnP ID」2130と同等なのでここでは説明は割愛する。
以上のように、本実施例において、プリンター2000のシステム管理者はネットワーク接続、USB接続のそれぞれで別のPnP IDを指定することができるようになっている。
図4は、図3で示したPnP IDが設定されている状態で、プリンター1000をネットワーク100に接続した時のプリンター2000の処理を示したフローチャートである。この処理は記憶部2030に記憶されたソフトウェアを制御部2040におけるメモリ2042にロードしてCPU2041が実行することによって実現される。
まず、S101で、プリンター2000は、ネットワーク100に接続されたことを検知する。S102で、プリンター2000は、ネットワーク100に向かってネットワーク参加メッセージをマルチキャストする。例えば、ネットワーク参加メッセージは、WSD Discoveryにおける「Hello」メッセージを示す。
その後、S103で、プリンター2000は、ネットワーク100に接続されていたコンピューター1000からの探索要求を受信する。例えば、探索要求は、WSD Discoveryにおける「Probe」メッセージを示す。S104で、プリンター2000は、その要求の応答をコンピューター1000に対して送信する。例えば、この応答は、WSD Discoveryにおける「ProbeMatch」メッセージを示す。さらに、S105で、プリンター2000はコンピューター1000にMetaDataの送信を行う。
S106で、プリンター2000は、コンピューターからの構成情報を受信する。例えば、構成情報は、WSD Discoveryにおける「GetPrinterElements」メッセージを示し、その具体例は、図7で後述する。
S107で、プリンター2000は、コンピューター1000のOS情報を確認する。ここでの確認方法としては、例えば、構成情報内のXMLデータに入っているOS情報を取得するようにしてもよい。また、XMLデータを解析して必要なOS情報を判定してもよい。ここで、必要なOS情報を取得する方法については、ネットワークに接続された他の情報リソースから取得する、など他の方法を用いても構わない。
S108で、プリンター2000は、S107で取得したOS情報に基づき、コンピューター1000のOSが第1のアーキテクチャのデバイスドライバーのみをサポートするOSであるかどうかを判断する。ここで、第1のアーキテクチャとは、例えば、前述したV3アーキテクチャを意味する。S108で、第1のアーキテクチャのみをサポートするOSであった場合にはS110にすすみ、そうでない場合にはS109に進む。
S110では、プリンター2000は、図3の画面2130での指定に従い、第1のアーキテクチャのデバイスドライバーに対応するIDをコンピューター1000に対して送信する。具体的には、図3の画面2130で、「PDL1(V3)」2132が指定されていた場合には、当該指定に従い、V3アーキテクチャのPDL1用のプリンタードライバーに対応するPnP IDをコンピューター1000に対して送信する。なお、図3の画面2130で、「PDL2(V3)」、「PDL3(V3/V4)」が指定されていた場合にも、それら指定に従い、プリンター2000は、各PDLに対応するPnP IDをコンピューター1000に対して送信する。
S109で、プリンター2000は、S107で取得したOS情報に基づき、コンピューター1000のOSが第2のアーキテクチャのデバイスドライバーのみをサポートするOSであるかどうかを判断する。ここで、第2のアーキテクチャとは、例えば、前述したV4アーキテクチャなどの、第1のアーキテクチャとは全く異なるアーキテクチャを意味する。S109で、第2のアーキテクチャのみをサポートするOSであった場合にはS112にすすみ、そうでない場合にはS111に進む。
S111では、コンピューター1000のOSが第1及び第2のアーキテクチャをともにサポートしているので、プリンター2000は、図3の画面2130での指定に従うPnP IDをコンピューター1000対して送信する。
S112で、プリンター2000は、図3の画面2130での指定に従い、第2のアーキテクチャのデバイスドライバーに対応するIDをコンピューター1000に対して送信する。例えば、「PDL1(V3)」2132のようなV3アーキテクチャに係るPDLに対応する指定が行われていたとしても、この指定を参考に、V4アーキテクチャのPnP IDをコンピューター1000に対して送信する。S112での、図3の画面2130での指定とは異なるIDをコンピューター1000に対して送信する際の判定方法については、図5を用いて更に詳細に説明する。なお、図3の画面2130で、「PDL3(V3/V4)」、「FAX(V4)」、「PDL1(V4)」のいずれかが指定されていた場合には、それら指定に従い、プリンター2000は、各PDLに対応するPnP IDをそのままコンピューター1000に対して送信する。
なお、S110〜S112で示した、S106で受信した構成情報(例えば、「GetPrinterElements」)に対するコンピューター1000への応答の具体例は、図8を用いて後述する。
図5は、図4のS112における処理をより詳細に説明するためのフローチャートである。
まず、S301で、プリンター2000は、図3で示す画面2130を介して指定されたデバイスドライバーが、第2のアーキテクチャのデバイスドライバーに対応するものであるか否かを判断する。第2のアーキテクチャのデバイスドライバーが指定されていた場合に、S304で、プリンター2000は、画面2130を介して指定されたデバイスドライバーに対応するIDをコンピューター1000に対して送信する。例えば、画面2130で、「PDL3(V3/V4)」2133や「PDL1(V4)」2134が指定されていた場合には、S304でその指定に対応するPnP IDが、そのままコンピューター1000に対して送信される。
S301で第2のアーキテクチャのデバイスドライバーが指定されていなかった場合に、S302に進む。S302で、プリンター2000は、画面2130で指定されたデバイスドライバーが扱うコマンドタイプ(PDL情報)を確認する。そして、S303で、プリンター2000は、S302で確認されたコマンドタイプを扱う第2のアーキテクチャのデバイスドライバーに対応するIDが存在するかを判断する。例えば、「PDL1(V3)」2132が指定されていた場合には、PDL1を扱えるV4のプリンタードライバーを示す「PDL1(V4)」2134が存在するので、S303では“YES”と判断されることになる。S303で“YES”と判断された場合には、S305で、プリンター2000は、S302で確認されたコマンドタイプを扱う第2のアーキテクチャのデバイスドライバーに対応するIDをコンピューター1000に対して送信する。例えば、S302で確認されたコマンドタイプを扱う第2のアーキテクチャのデバイスドライバーが、「PDL1(V4)」2134であるならば、「PDL1(V4)」2134に対応するPnP IDがコンピューター1000に対して送信される。
S303で“NO”と判断された場合、例えば、画面2130で「PDL2(V3)」が指定されていた場合には、S306に進む。S306で、プリンター2000は、推奨コマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応するIDをコンピューター1000に対して送信する。本実施例のプリンター2000では、前述のとおり推奨PDLを「PDL1」としているため、具体的には「PDL1(V4)」2134に対応するPnP IDとしてコンピューター1000に対して送信する。
なお、S110でも、図5と同等の方法で、プリンター2000がコンピューター1000に対して送信する第1のアーキテクチャのデバイスドライバーに対応するIDを決定することができる。具体的には、画面2130で第2のアーキテクチャのデバイスドライバーが指定されていた場合に、該指定されたデバイスドライバーのコマンドタイプと、推奨のコマンドタイプとを用いて、コンピューター1000に対して送信すべきIDを決定する。
上記に依れば、本実施例では、接続先のコンピューター1000で動作するOS1031の情報に応じて、サポートされていないアーキテクチャのデバイスドライバー用のIDを返すことがなくなる。また、新しいアーキテクチャのデバイスドライバーが用意されていなかった場合であっても、デバイスベンダーの推奨するコマンドタイプ(PDL)のデバイスドライバーをプラグアンドプレイに利用することが可能となる。
図6は、図4及び図5の処理が適用された際の、パネル指定されたプリンタードライバーと、プリンター2000が実際にコンピューター1000に返すPnP IDとの関係を表にした図である。
図6では、第1のアーキテクチャのデバイスドライバーのみをサポートするOSとして、V3のみサポートするWindows(登録商標)を例示している。同様に、第2のアーキテクチャのデバイスドライバーのみをサポートするOSとして、V4のみサポートするWindows(登録商標)を例示している。また、プリンター2000に設定された推奨するコマンドタイプとして、「PDL1」を例示している。
図7は、プリンター2000がS106で受信する構成情報としての「GetPrinterElements」の具体例を示す図である。
「GetPrinterElements」はWSDで規定されたXML形式のSOAPメッセージであり、全て「Envelope」(4001〜4017)で囲まれている。「Envelope」(4001〜4017)は、「Header」(4002〜4008)と「Body」(4009〜4016)とで構成される。
「Header」(4002〜4008)は、「To」(4003)と「Action」(4004〜4006)及び「MessageID」(4007)とから成る。「To」(4003)には本SOAPメッセージの宛先としてプリンター2000のアドレスが記載されている。「Action」(4004〜4006)にはこのSOAPメッセージが「GetPrinterElements」(4005)であることが記載されている。「MessageID」(4007)にはこのSOAPメッセージを示すUUID(Universally Unique Identifier)が記載されている。
「Body」(4009〜4016)は、本SOAPメッセージの要求である「GetPrinterElementsRequest」(4010〜4015)で構成されている。「GetPrinterElementsRequest」(4010〜4015)は「RequestedBy」(4011)と「RequestedElements」(4012〜4014)から成る。「RequestedBy」(4011)は、本SOAPメッセージの送信元のOSの種類が記載されている。プリンター2000はS107において「RequestedBy」(4011)を参照することで、要求元のOS情報を確認することができる。「RequestedElements」(4012〜4014)に本SOAPメッセージが要求している情報の名前が記載されている。ここでは「PrinterDescription」(4013)が記載されている。
図8は、プリンター2000がS110〜S112で送信する「GetPrinterElements」への応答の具体例を示す図である。
「GetPrinterElements」の応答はWSDで規定されたXML形式のSOAPメッセージであり、全て「Envelope」(5001〜5023)で囲まれている。「Envelope」(5001〜5023)は、「Header」(5002〜5009)と「Body」(5010〜5022)とで構成される。
「Header」(5002〜5009)は、「To」(5003)と「Action」(5004〜5006)と「MessageID」(5007)及び「RelatesTo」(5008)とから成る。「To」(5003)には本SOAPメッセージの宛先としてコンピューター1000のアドレスが記載されている。本実施例では「anonymous」が記載されている。「Action」(5004〜5006)にはこのSOAPメッセージが「GetPrinterElementsResponse」(5005)であることが記載されている。「MessageID」(5007)にはこのSOAPメッセージを示すUUID(Universally Unique Identifier)が記載されている。「RelatesTo」(5008)はどのSOAPメッセージに対する応答かが記載されている。本実施例では図7に示す「GetPrinterElements」に対する応答なので「MessageID」(4007)と同じUUIDが記載される。
「Body」(5010〜5022)は、本SOAPメッセージの要求である「GetPrinterElementsResponse」(5011〜5021)で構成されている。「GetPrinterElementsResponse」(5011〜5021)は「PrinterElements」(5012〜5020)から成る。「RrinterElements」(5012〜5021)は「ElementData」(5013〜5019)から成る。「ElementData」(5013〜5019)はコンピューター1000から要求されている「PrinterDescription」(5014〜5018)で構成されている。「PrinterDescription」(5014〜5018)は「ColorSupported」(5015)、「DeviceId」(5016)、「PrinterName」(5017)とから成る。「ColorSupported」(5015)はプリンター2000がカラー機か、白黒機かを示している。本実施例ではカラー機なので「true」が記載されている。「DeviceId」(5016)にはプリンター2000のプラグアンドプレイIDが記載されている。前述した図4のS110〜S112や図5で説明したIDの送信については、「DeviceId」(5016)の値としてIDが格納されることで実現される。「PrinterName」(5017)にはプリンター2000のプリンター名が記載されている。
(実施例2)
実施例1ではWSD Discoveryなどのネットワークプラグアンドプレイを例に説明したが、実施例2ではUSB接続によるプラグアンドプレイに関して説明する。
図1(b)は、実施例2におけるコンピューター1000とプリンター2000との接続形態を示している。コンピューター1000とプリンター2000はUSBケーブル200によって接続されている。図2の構成図と図3のUI遷移図は実施例1と同じであるので割愛する。
図9は、図3の画面2140でいずれかのデバイスドライバーが指定された後に、コンピューター1000をUSBケーブル200でプリンター2000に接続した時のプリンター2000の処理を説明するためのフローチャートである。この処理は実施例1と同様、記憶部2030に記憶されたソフトウェアを制御部2040におけるメモリ2042にロードしてCPU2041が実行することによって実現される。
まず、プリンター2000は、S201でコンピューター1000にUSB接続されたことを検知すると、S202で画面2140を介して指定されたデバイスドライバーに対応するIDをコンピューター1000に対して送信する。その後、S203で、プリンター2000は、その送信したIDを用いて、コンピューター1000のOS1031とUSBのコネクションを確立する。
S204で、プリンター2000は、接続されたコンピューター1000のOS1031の情報を確認する。ここでの確認方法としては、例えば、コンピューター1000にあらかじめインストールしておいたデバイスドライバーと通信して情報を取得することができる。また、USB接続後のOSの挙動から判別する、別途格納されている他の情報リソースから取得する、など様々な方法が考えられるが、どのような方法を用いても構わない。
S205で、プリンター2000は、S204で確認したOS情報に基づき、コンピューター1000で動作しているOS1031が第1のアーキテクチャのみをサポートするOSであるか否かを判断する。第1のアーキテクチャのみをサポートするOSであった場合にはS207に進み、そうでない場合にはS206に進む。
S207で、プリンター2000は、現在、図3の画面2140で、第1のアーキテクチャのデバイスドライバーが指定されているかを判定する。ここで、画面2140で第1のアーキテクチャのデバイスドライバー(例えば、「PDL1(V3)」)が指定されていた場合には本処理を終了する。一方で、画面2140で第2のアーキテクチャのデバイスドライバー(例えば、「PDL1(V4)」)が指定されていた場合にはS208に進む。S208で、プリンター2000は、USBのバスリセットを発行する。バスリセットの方法としては、例えば通常はプルアップされているUSBのD+信号線を一時的に停止することでリセットを行うことができる。その後、S209で、プリンター2000は、第1のアーキテクチャのデバイスドライバーに対応するIDを決定し、コンピューター1000に対して決定されたIDを送信する。S209でのIDの再送により、第1のアーキテクチャのデバイスドライバーのためのプラグアンドプレイがコンピューター1000で実行されることになる。なお、S209における第1のアーキテクチャのデバイスドライバーに対応するIDの決定方法は図5で説明した方法と同様の手順で行うことができる。具体的には、画面2140で第2のアーキテクチャのデバイスドライバーが指定されていた場合に、該指定されたデバイスドライバーのコマンドタイプと、推奨のコマンドタイプとを用いて、コンピューター1000に対して送信すべきIDを決定することになる。
S206で、プリンター2000は、S204で確認したOS情報に基づき、コンピューター1000で動作しているOS1031が第2のアーキテクチャのみをサポートするOSであるか否かを判断する。第2のアーキテクチャのみをサポートするOSであった場合にはS210に進み、そうでない場合には本処理を終了する。
S210で、プリンター2000は、現在、図3の画面2140で、第2のアーキテクチャのデバイスドライバーが指定されているかを判定する。ここで、画面2140で第2のアーキテクチャのデバイスドライバー(例えば、「PDL1(V4)」)が指定されていた場合には本処理を終了する。一方で、画面2140で第1のアーキテクチャのデバイスドライバー(例えば、「PDL1(V3)」)が指定されていた場合にはS211に進む。S211で、プリンター2000は、USBのバスリセットを発行する。その後、S212で、プリンター2000は、第2のアーキテクチャのデバイスドライバーに対応するIDを決定し、コンピューター1000に対して決定されたIDを送信する。S209でのIDの再送により、第2のアーキテクチャのデバイスドライバーのためのプラグアンドプレイがコンピューター1000で実行されることになる。なお、S209における第2のアーキテクチャのデバイスドライバーに対応するIDの決定方法は図5で説明した方法と同様の手順で行うことができる。
なお、図9のS202で、画面2140で指定されたデバイスドライバーに対応するIDをコンピューター1000に対して送信する例を示した。しかしながら、別のダミーIDを送信してもよい。この場合は、ダミーID用のデバイスドライバーを使用して、コンピューター1000のOS情報を取得する。さらに、このような場合には、OS情報取得後は、必ずバスリセットを行い、画面2140で指定されたデバイスドライバーに対応するID、または、S209、S212で決定されたIDをコンピューター1000に対して送信する。
本実施例によれば、USB接続時であっても接続されたコンピューター1000のOS情報に適合するデバイスドライバーに対応するIDをコンピューター1000に送信することができる。従って、USBで接続されたコンピューター1000のOSでサポートされていないアーキテクチャのデバイスドライバーに対応するIDを返すことがなくなる。
以上、実施例1と実施例2を用いて本発明の実施形態とその効果について図面を用いて説明した。なお、本発明ではコンピューター1000のOS1031としてWindows(登録商標)を用いて説明したが他のOSであっても同様に実施可能である。また、周辺装置としてプリンターを例示したが、スキャナーなど、同様の背景をもつ他の機器でも本発明を適用することができる。
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。
1000 コンピューター
2000 プリンター
2130 ネットワークPnP ID選択画面
2140 USB PnP ID選択画面

Claims (9)

  1. 周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第1のアーキテクチャのデバイスドライバー及び第2のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定手段と、
    接続された情報処理装置で動作するOS(オペレーティングシステム)の情報を取得する取得手段と、
    前記OSの情報に基づき、該OSが第2のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断手段と、
    前記指定手段により第1のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第1のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信手段と、を有し、
    前記送信手段は、前記指定手段により第2のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第2のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする周辺装置。
  2. 前記取得手段は、前記情報処理装置が前記周辺装置にUSB(Universal Serial Bus)で接続された場合には、前記指定手段により指定されたデバイスドライバーに対応する識別情報またはダミーの識別情報が前記情報処理装置に対して送信された後に、前記情報処理装置で動作するOSの情報を取得し、
    前記送信手段は、前記指定手段により第1のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、バスリセットが発行された後に、前記指定手段により指定された第1のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信することを特徴とする請求項1に記載の周辺装置。
  3. 前記判断手段は、更に、前記OSの情報に基づき、該OSが第1のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断し、
    前記送信手段は、前記指定手段により第2のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第1のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第2のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第1のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第1のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信し、
    前記送信手段は、前記指定手段により第1のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第1のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定手段により指定された第1のアーキテクチャのデバイスドライバーに対応する識別情報を前記情報処理装置に対して送信することを特徴とする請求項1または2に記載の周辺装置。
  4. 前記取得手段は、前記情報処理装置が前記周辺装置にUSB(Universal Serial Bus)で接続された場合には、前記指定手段により指定されたデバイスドライバーに対応する識別情報またはダミーの識別情報が前記情報処理装置に対して送信された後に、前記情報処理装置で動作するOSの情報を取得し、
    前記送信手段は、前記指定手段により第2のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断手段により該OSが第1のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、バスリセットが発行された後に、前記指定手段により指定された第2のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第1のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第1のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信することを特徴とする請求項3に記載の周辺装置。
  5. 前記情報処理装置では、前記送信手段により送信された識別情報を用いて、プラグアンドプレイが実行されることを特徴とする請求項1乃至4のいずれか1項に記載の周辺装置。
  6. 予め前記周辺装置に設定されたコマンドタイプは、前記周辺装置のベンダーによって設定されることを特徴とする請求項1乃至5のいずれか1項に記載の周辺装置。
  7. 前記コマンドタイプは、PDL(Page Description Language)であることを特徴とする請求項1乃至6のいずれか1項に記載の周辺装置。
  8. 周辺装置における方法であって、
    前記周辺装置に接続された情報処理装置に対してインストールさせるべきデバイスドライバーを、第1のアーキテクチャのデバイスドライバー及び第2のアーキテクチャのデバイスドライバーを含む複数のデバイスドライバーのリストから指定する指定工程と、
    接続された情報処理装置で動作するOS(オペレーティングシステム)の情報を取得する取得工程と、
    前記OSの情報に基づき、該OSが第2のアーキテクチャのデバイスドライバーのみをサポートするか否かを判断する判断工程と、
    前記指定工程で第1のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断工程で該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定された第1のアーキテクチャのデバイスドライバーが扱うコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報、または、予め前記周辺装置に設定されたコマンドタイプを扱える第2のアーキテクチャのデバイスドライバーに対応する識別情報を、前記情報処理装置に対して送信する送信工程と、を有し、
    前記送信工程では、前記指定工程で第2のアーキテクチャのデバイスドライバーが指定され、かつ、前記判断工程で該OSが第2のアーキテクチャのデバイスドライバーのみをサポートする判断された場合に、前記指定された第2のアーキテクチャのデバイスドライバーに対応する識別情報が前記情報処理装置に対して送信されることを特徴とする方法。
  9. 請求項1乃至7の何れか1項に記載の手段としてコンピューターを機能させるためのプログラム。
JP2015150501A 2015-07-30 2015-07-30 周辺装置、その方法、及びプログラム Expired - Fee Related JP6486233B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015150501A JP6486233B2 (ja) 2015-07-30 2015-07-30 周辺装置、その方法、及びプログラム
US15/209,553 US20170031668A1 (en) 2015-07-30 2016-07-13 Peripheral apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015150501A JP6486233B2 (ja) 2015-07-30 2015-07-30 周辺装置、その方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2017033141A JP2017033141A (ja) 2017-02-09
JP6486233B2 true JP6486233B2 (ja) 2019-03-20

Family

ID=57886009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015150501A Expired - Fee Related JP6486233B2 (ja) 2015-07-30 2015-07-30 周辺装置、その方法、及びプログラム

Country Status (2)

Country Link
US (1) US20170031668A1 (ja)
JP (1) JP6486233B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062581B (zh) * 2018-07-18 2023-07-25 珠海奔图电子有限公司 终端设备侧的驱动程序的处理方法、装置和设备
JP7386012B2 (ja) * 2019-07-30 2023-11-24 株式会社ワコム 情報入力装置、方法、及びプログラム
US11618592B1 (en) * 2020-09-17 2023-04-04 United States Of America As Represented By The Administrator Of Nasa Modular architecture for an extensible SmallSat (MARES) command and data handling hardware

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704819B1 (en) * 2000-04-19 2004-03-09 Microsoft Corporation Method and apparatus for device sharing and arbitration
US6963947B2 (en) * 2001-05-08 2005-11-08 Tao Logic Systems Llc Driver supporting bridge method and apparatus
JP2006024155A (ja) * 2004-07-09 2006-01-26 Workbit Corp 周辺装置
JP2013130985A (ja) * 2011-12-21 2013-07-04 Canon Inc プリンタードライバーインストール方法、システムおよびプログラム
JP2014203268A (ja) * 2013-04-04 2014-10-27 キヤノン株式会社 情報処理装置及び制御方法
JP6821301B2 (ja) * 2015-12-07 2021-01-27 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム

Also Published As

Publication number Publication date
JP2017033141A (ja) 2017-02-09
US20170031668A1 (en) 2017-02-02

Similar Documents

Publication Publication Date Title
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
US9690529B2 (en) Device selecting apparatus, and printing system and computer readable medium for the same
US9612777B2 (en) Pull printing method, apparatus and system
US11573753B2 (en) Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device with driverless printing function
JP4926735B2 (ja) ドライバーレスクライアントによるネットワーク印刷
US9075627B2 (en) Server connected to image forming apparatus and client, client, and method of remotely installing driver of image forming apparatus
US8836962B2 (en) Universal device driver and device control program
JP2007114901A (ja) ネットワーク対応出力デバイス及び情報処理装置及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体、及び、ネットワークシステム
US8947708B2 (en) Information processing apparatus, method for controlling an information processing apparatus, and image forming system
JP6486233B2 (ja) 周辺装置、その方法、及びプログラム
JP2008004010A (ja) 通信装置及びその制御方法
US10552146B2 (en) Information processing apparatus that executes update application, control method therefor, and storage medium
US10949134B2 (en) Client apparatus, control method, and storage medium
KR20200138061A (ko) 가상 디바이스, 오퍼레이팅 시스템, 가상 디바이스 서비스, 정보 처리 장치, 및 정보 처리 장치를 제어하는 방법
JP6403642B2 (ja) 画像形成システム
JP2006243840A (ja) 印刷情報処理装置、印刷情報処理方法、印刷情報処理プログラムおよびコンピュータ読み取り可能な記録媒体
JP2021022168A (ja) 情報処理装置、制御方法、プログラム
WO2019182208A1 (en) Work form sharing
JP2020016951A (ja) 情報処理装置、制御方法、およびプログラム
WO2024203452A1 (ja) 情報処理プログラム
JP2018081448A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP7262944B2 (ja) クライアント装置、制御方法、およびそのプログラム
JP4187545B2 (ja) 複数の画像形成装置と接続可能な画像形成装置
JP2014203320A (ja) 印刷制御プログラム
JP2018205946A (ja) 情報処理装置、管理装置、システムおよびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190219

R151 Written notification of patent or utility model registration

Ref document number: 6486233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees