JP6545332B2 - 情報処理装置、制御方法、及びプログラム - Google Patents

情報処理装置、制御方法、及びプログラム Download PDF

Info

Publication number
JP6545332B2
JP6545332B2 JP2018138424A JP2018138424A JP6545332B2 JP 6545332 B2 JP6545332 B2 JP 6545332B2 JP 2018138424 A JP2018138424 A JP 2018138424A JP 2018138424 A JP2018138424 A JP 2018138424A JP 6545332 B2 JP6545332 B2 JP 6545332B2
Authority
JP
Japan
Prior art keywords
driver
information
architecture
printer
device driver
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.)
Active
Application number
JP2018138424A
Other languages
English (en)
Other versions
JP2018173998A (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 JP2018138424A priority Critical patent/JP6545332B2/ja
Publication of JP2018173998A publication Critical patent/JP2018173998A/ja
Application granted granted Critical
Publication of JP6545332B2 publication Critical patent/JP6545332B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、制御方法、及びプログラムに関する。
装置を制御するためのドライバソフト(制御コマンド生成プログラム)は、その時々のOSが対応している仕組み(アーキテクチャ)に沿って作られている。例えば、画像形成装置を制御するためのプリンタドライバは、動作可能なOSのシステムの種類(64ビットか32ビットか)や、構成されるファイル、対応するAPI等のアーキテクチャによって分類される。また、それぞれ動作可能なOSも異なっている。
OSによってはそれらプリンタドライバのうち複数の種類が動作可能で、インストール可能なものが存在する。特許文献1に記載の技術では、プリンタドライバをバージョンアップする際に、自OS用のプリンタドライバと同時に異なるOS用のプリンタドライバ(代替ドライバ)も同時に更新することができる。この技術により、複数種類のプリンタドライバがコンピュータにインストールされている場合に、それらを一度にバージョンアップすることが可能である。
特許第5531858号
しかしながら、複数種類のプリンタドライバがコンピュータにインストールされていたとしても、それらインストール済みのプリンタドライバがOSの更新後に必ず使用できるわけではない。そのため、更新後のOSで対応するシステムの種類やアーキテクチャが変更された場合には、ユーザは印刷できなくなることがある。またその場合に、ユーザ自らが更新後のOSに対応するプリンタドライバを画像形成装置ベンダのホームページから取得し、再度プリンタドライバのインストールを行う手間がかかってしまう。
本発明は、新しいアーキテクチャのデバイスドライバしか動作しないOSにアップデートした場合であっても、ユーザが意識することなく更新後のOSでデバイスを利用できるようセットアップすることが可能となる情報処理装置を提供することを目的とする。
本発明の一実施形態の情報処理装置は、OS(オペレーティングシステム)が動作する情報処理装置であって、第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第1のアーキテクチャとは異なる第2のアーキテクチャのデバイスドライバの動作をサポートする新バージョンのOSへのアップデートを行う前に、アップデート前のOS上で利用されていた前記第1のアーキテクチャのデバイスドライバのハードウェアID又は機種情報の少なくともいずれかを含むドライバ情報を、特定の領域保持する保持手段と、前記OSが前記新バージョンへアップデートされた後に、前記保持されたドライバ情報に基づき、前記第2のアーキテクチャのデバイスドライバを介してデバイスを使用できるようセットアップする制御手段と、を有する。
本発明の情報処理装置によれば、特定のアーキテクチャのデバイスドライバしか動作しないOSに更新した場合であっても、更新後のOSで動作可能なデバイスドライバを、ユーザが意識することなく提供することが可能となる。
本発明の一実施形態におけるプリントシステムの全体構成を示す図である。 ホストコンピュータ及びプリンタのハードウェア構成を示す図である。 ホストコンピュータのソフトウェア構成例を示す図である。 サーバコンピュータのソフトウェア構成例を示す図である。 機器IDの構成及びその例を示す図である。 ドライバ情報を保持する処理を説明するフローチャートである。 プリンタドライバをインストールする処理を示すフローチャートである。 プリンタドライバをインストールする処理を示すフローチャートである。 ドライバ情報を保持する処理を説明するフローチャートである。 プリンタドライバをインストールする処理を示すフローチャートである。 プリンタドライバをインストールする処理を示すフローチャートである。 通知メッセージの一例を示す図である。 ドライバ検索処理を示すフローチャートである。
以下、本発明を実施するための形態について図面などを参照して説明する。
(第1実施形態)
図1は、本実施形態におけるプリントシステムの全体構成の一例を示す図である。
プリントシステムは、少なくともホストコンピュータ1000、サーバコンピュータ1500、及びプリンタ2000を備える。ホストコンピュータ1000、サーバコンピュータ1500、及びプリンタ2000は、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク3000を介して通信可能に接続されている。なお、本発明の機能が実行されるのであれば、ホストコンピュータ1000、サーバコンピュータ1500、及びプリンタ2000の接続形態は、これに限定されるものではなく、ローカル接続であってもよい。また、ホストコンピュータ1000、サーバコンピュータ1500、及びプリンタ2000は、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであってもよい。
図2は、ホストコンピュータ及びプリンタのハードウェア構成の一例を示す図である。
図2において、ホストコンピュータ1000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて文書や画像の処理を行うCPU1を備える。また、システムバス4に接続される各プリンタ2000をCPU1が総括的に制御する。
また、ROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるOS(オペレーティングシステム)等が記憶される。また、ROM3のフォント用ROMあるいは外部メモリ11には、文書の処理の際に使用するフォントデータ等が記憶される。ROM3のデータ用ROMあるいは外部メモリ11には、文書や画像の処理等を行う際に使用する各種データが記憶される。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。ディスクコントローラ(DKC)7は、ブートプログラム、各種のアプリケーション、フォントデータ、プリンタドライバ等を記憶するハードディスク(HDD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インターフェース30を介してプリンタ2000に接続され、プリンタ2000との通信制御処理を実行する。
なお、CPU1は、例えば、RAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは、印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
なお、サーバコンピュータ1500も図2で説明したホストコンピュータ1000と同様のハードウェア構成を持つ単独のサーバ装置あるいはクラスターサーバ装置として構成される。
プリンタ2000は、CPU12により制御される。CPU12は、ROM13のプログラム用ROMあるいは外部メモリ14に記憶された制御プログラム等に基づいて動作する。CPU12は、印刷部I/F16を介してシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、ROM13のプログラムROMには、CPU12の制御プログラム等が記憶される。ROM13のフォント用ROMには、前述した出力情報を生成する際に使用するフォントデータ等が記憶される。プリンタ2000がハードディスク等の外部メモリ14がないプリンタである場合、ROM13のデータ用ROMには、ホストコンピュータ1000で利用される情報等が記憶される。
CPU12は、入力部18を介してホストコンピュータ1000との通信処理が可能となっており、プリンタ2000内の情報等をホストコンピュータ1000に通知できる。入力部18は、操作パネル21をユーザが操作するためのスイッチ及びLED表示器等を有する。RAM19は、CPU12の主メモリや、ワークエリア等として機能する。また、RAM19は、前述した出力情報の展開領域や、環境データの格納領域等としても用いられる。
外部メモリ14は、オプションとしてプリンタ2000に接続される。外部メモリ14は、フォントデータ、エミュレーションプログラム、フォームデータ、言語系の異なるプリンタ制御言語を解釈するプログラム、操作パネル21から入力されたプリンタモード設定情報等を記憶する。また、外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、1個に限らず、複数個備えられていてもよい。
図3は、ホストコンピュータのソフトウェア構成の一例を示す図である。
プラグアンドプレイ検出部100は、ユニバーサルシリアルバス(USB)やWeb Service on Devices(WSD)等のインターフェースを介して接続されたプリンタ2000の検知を行う。機器ID取得部101は、プラグアンドプレイで検出されたプリンタ2000に機器ID取得要求を送り、機器IDを取得する。機器IDについては後述する。
ドライバ検索部102は、取得した機器IDに対応したデバイス制御アプリ200やプリンタドライバ201の検索を行う。なお、ドライバ検索部102の検索範囲は、ホストコンピュータ1000内に留まらず、予め決められたサーバコンピュータ1500に対しても行われるものとする。ドライバインストール処理部103は、ドライバ検索部102が見つけたデバイス制御アプリ200やプリンタドライバ201のインストール処理を行う。
ドライバ分類判別部104は、ホストコンピュータ1000にインストールされたデバイス制御アプリ200やプリンタドライバ201についての各種情報を取得する。例えば、ドライバ分類判別部104は、プリンタドライバ201が対応する機器ID、プリンタドライバの名称(機種情報)、関連付けられたプリンタキューの情報(ポート情報、プリンタキューの名前、印刷設定情報など)を取得する。また、ドライバ分類判別部104は、インストールされたデバイス制御アプリ200やプリンタドライバ201が動作する、構成されるファイルや対応するAPI等のアーキテクチャの情報も取得し、現在動作中のOS上で動作可能か否かの判断を行う。ドライバ情報保持部105は、ドライバ分類判別部104が取得したデバイス制御アプリ200やプリンタドライバ201についての各種情報をROM3のデータ用ROMあるいは外部メモリ11への保持を行う。
デバイス制御アプリ200は、プリンタ2000の各々のモデルに対応したアプリケーションであり、プリンタ2000やプリンタドライバ201の管理機能、プリンタ2000に対する印刷やファックスやスキャンの機能を有したアプリケーションである。デバイス制御アプリ200は、管理機能としてプリンタドライバ201がインストールされているか否かや、プリンタドライバ201の処理状況の監視等を行う。また、デバイス制御アプリ200は、プリンタ2000の処理状況や、用紙やインク・トナー等の消耗品の残量状況の監視等を行う。デバイス制御アプリ200は、機器IDを利用するプラグアンドプレイシステムでは後述するモデル識別情報(MDL)及び互換識別情報(CID)の両方、もしくはどちらか片方に対応する。
プリンタドライバ201は、プリンタ2000の各々のモデルに対応したプリンタドライバであり、機器IDを利用するプラグアンドプレイシステムではモデル識別情報(MDL)及び互換識別情報(CID)の両方、もしくはどちらか片方に対応する。その機能や能力についてはプリンタドライバ毎に異なっており、動作するOSのシステムの種類、構成されるファイルや対応するAPI等のアーキテクチャによって分類され、それぞれ動作可能なOSも異なる。
なお、デバイス制御アプリ200やプリンタドライバ201が「機器IDに対応する」とは、上述のようにモデル識別情報(MDL)と互換識別情報(CID)の両方、もしくはどちらか片方に対応することを示す。また、デバイス制御アプリ200及びプリンタドライバ201は、同じベンダにより提供される。また、ホストコンピュータ1000には、OSと一緒にバンドルされていたり、後から導入されたりしたプリンタドライバ201を保持できるものとする。
図4はサーバコンピュータのソフトウェア構成の一例を示す図である。
サーバコンピュータ1500は、ホストコンピュータ1000のドライバ検索部102に応答するためのドライバ管理部150を備える。ドライバ管理部150を介して、サーバコンピュータ1500は、ホストコンピュータ1000にデバイス制御アプリ200やプリンタドライバ201を提供する。サーバコンピュータ1500の外部メモリ11には、ホストコンピュータ1000上で動作する複数種類のOSに対応するデバイス制御アプリ200やプリンタドライバ201が格納される。
ドライバ管理部150は、ドライバ検索部102の問い合わせに対して、格納しているデバイス制御アプリ200やプリンタドライバ201の中から最適なものを提供する。最適か否かの判断は、問い合わせの際の機器IDや名称が合致している、動作するOSの種類が合致している、等の条件を満たしているか否かで行う。
なお、サーバコンピュータ1500は、各プリンタベンダが提供する最新のデバイス制御アプリやプリンタドライバを保持しておくことで、最新のデバイス制御アプリやプリンタドライバをホストコンピュータ1000に提供することが可能になる。
図5は、機器ID(ハードウェアID)の構成、及びその例を示す図である。
図5(A)に示すように、機器IDは、主な要素として次に示す要素で構成され、文字列情報の形で表現される。機器の製造者情報を示す“MANUFACTURER”(以下MFG)。機器が対応しているコマンドセットを示す“COMMAND SET”(以下CMD)。機器のモデル識別情報を示す“MODEL”(以下MDL)。機器のクラス情報を示す“CLASS”(以下CLS)。機器の属するファミリーやクラスの互換識別情報を示す“COMPATIBLE ID”(以下CID)。なお、IEEE1284の規定では、MFG、MDL、CMDの提供は必須とされているが、CLS、CIDの提供は任意となっている。
図5(B)は、機器IDの一例を示している。この例に示す機器は、製造者が“ABC”であり、コマンドセットとして”PCL”をサポートしており、モデル名称が“M123”である。また、この例に示す機器は、クラスが“PRINTER”であり、互換識別情報としては“Class1”という名称が与えられていることを示している。
図6は、OSの更新前に、OSがインストール済みプリンタドライバのドライバ情報を保持する処理を説明するためのフローチャートである。
ステップS601にて、OSのドライバ分類判別部104は、ホストコンピュータ1000にインストールされているプリンタドライバの有無を確認する。インストールされているプリンタドライバが存在する場合にはステップS602へ進み、存在しない場合は処理を終了する。
ステップS602にて、ドライバ分類判別部104は、ステップS601で確認したプリンタドライバが対応する機器ID、及びドライバ名の情報を取得する。
ステップS603にて、ドライバ分類判別部104は、ステップS601で確認したプリンタドライバに関連付けられたプリンタキューの情報(ポート情報、プリンタキューの名前、印刷設定情報)を取得する。
ステップS604にて、ドライバ情報保持部105は、ステップS602〜S603で取得した情報を更新前ドライバ情報として特定の領域、例えばROM3のデータ用ROMあるいは外部メモリ11に保持する。なお、更新前ドライバ情報は、S602〜S603で取得した情報を全て含んでいる必要はなく、例えば、機器IDまたはドライバ名の少なくともいずれかを含んでいればよい。
表Aは、更新前ドライバ情報の一例を示す表である。
Figure 0006545332
図7及び図8は、OSの更新後に、更新後のOSの環境に最適なプリンタドライバをインストールする処理を説明するためのフローチャートである。
この処理は、図6を用いて説明した、あらかじめ保持したドライバ情報を参照して行われる。また、この処理は、OS更新直後にOSによって実行される。
ステップS701にて、ドライバ分類判別部104は、ホストコンピュータ1000にインストールされているプリンタドライバ201をリストする。
ステップS702にて、ドライバ分類判別部104は、ステップS701でリストされたプリンタドライバ201それぞれに対して、現在動作中のOS上で動作可能か否かの判断を行う。具体的には、プリンタドライバ201が動作するOSのシステムの種類や、構成されるファイル、対応するAPI(アプリケーションプログラミングインターフェース)等のアーキテクチャの情報と、現在動作中のOSのバージョンから判断を行う。プリンタドライバ201があるバージョンのOSで動作するか否かは、OSの仕様により予めわかっており、その比較において判断を行う。
ステップS703にて、ドライバ分類判別部104は、ステップS702で現在動作中のOS上で動作不可能なプリンタドライバ201が存在するか否かを判断する。動作不可能なプリンタドライバ201が存在しないと判断した場合にはステップS706へ進み、存在すると判断した場合にはステップS704へと進む。
ステップS704にて、ドライバ分類判別部104は、ステップS702で現在動作中のOS上で動作不可能であると判断されたプリンタドライバ201に対応する機器IDとドライバ名を取得する。
ステップS705にて、ドライバ分類判別部104は、ステップS704で取得した機器IDとドライバ名をインストールドライバ候補リストへ追加する。
表Bは、インストールドライバ候補リストの一例を示す表である。
Figure 0006545332
ステップS706にて、ドライバ分類判別部104は、ステップS701でリストしたインストールされているプリンタドライバ201と、図6に示した処理のステップS604にて保持された更新前ドライバ情報(表A)との比較を行う。
ステップS707にて、ドライバ分類判別部104は、ステップS706で比較した結果、OS更新により削除されたプリンタドライバ201があるか否かを判断する。具体的には、ドライバ分類判別部104は、更新前ドライバ情報に挙げられたプリンタドライバ201が、ステップS701でリストしたプリンタドライバ201の中に存在するか否かを判断する。そして、ドライバ分類判別部104は、存在しなかったプリンタドライバ201が削除されたと判断する。ステップS707で削除されたプリンタドライバがあると判断された場合には、ステップS708に進む。一方、更新前ドライバ情報に保持されたすべてのプリンタドライバ201が、ステップS701でリストしたプリンタドライバ201の中に存在する場合、すなわち削除されたプリンタドライバがないと判断された場合には、ステップS710に進む。
ステップS708にて、ドライバ分類判別部104は、ステップS707で削除されたと判断したプリンタドライバ201に対応する機器IDとドライバ名を、更新前ドライバ情報から取得する。
ステップS709にて、ドライバ分類判別部104は、ステップS708で取得した機器IDとドライバ名をインストールドライバ候補リストへ追加する。
ステップS710にて、ドライバ分類判別部104は、インストールドライバ候補リストに1つ以上のプリンタドライバ201が登録されているか否かの確認を行い、登録されていた場合はステップS711に進む。登録されていなかった場合は処理を終了する。
ステップS711にて、ドライバ検索部102は、インストールドライバ候補リストに保持されている機器IDまたはドライバ名に対応するプリンタドライバ201の検索を実行する。検索処理は、ドライバ検索部102が、サーバコンピュータ1500のドライバ管理部150に問い合わせることによって行われる。検索処理の詳細については後述する。また、ドライバ検索部102は、検索したプリンタドライバ201をホストコンピュータ1000へダウンロードする。
ステップS712にて、ドライバインストール処理部103は、ステップS711でホストコンピュータ1000にダウンロードしたプリンタドライバ201のインストール処理を行う。
ステップS713にて、ドライバインストール処理部103は、ステップS712でインストールしたプリンタドライバ201に関連付けるプリンタキューの設定を行う。具体的には、ドライバインストール処理部103は、ステップS712でインストールしたプリンタドライバ201を検索する際に使用した機器IDとドライバ名から、設定を行うプリンタキューを特定する。また、プリンタキューの特定には、前述した更新前ドライバ情報を参照する。
例えば、ステップS711において検索に使用した機器IDが、「MDL:M123」「CID:なし」であり、ドライバ名が「PD123 V3」であったとする。また、参照する更新前ドライバ情報が表Aに記載の情報だったとする。この場合、設定を行うプリンタキューは、キュー名(プリンタ名)が「M123(Floor1)」及び「M123(Floor2)」の2つである。
特定したキュー名のプリンタキューがホストコンピュータ1000上にすでに存在する場合は、そのプリンタキューに対して、表Aに記載の更新前ドライバ情報にあるポートや印刷設定を設定する。そして、プリンタキューにインストールしたプリンタドライバ201の関連付けを行う。特定したキュー名のプリンタキューがホストコンピュータ1000上に存在しない場合は、更新前ドライバ情報のキュー名、ポート、及び印刷設定を用いてプリンタキューを新規に作成する。そして、作成したプリンタキューにインストールしたプリンタドライバ201の関連付けを行う。
ステップS714にて、ドライバインストール処理部103は、ステップS711で検索できなかったプリンタドライバ201があるか否か、すなわちサーバコンピュータ1500に該当するプリンタドライバ201が存在したか否かを確認する。検索できなかったプリンタドライバ201が存在した場合は、ステップS715に進み、検索できなかったプリンタドライバ201が存在しなかった場合は処理を終了する。
ステップS715にて、ドライバインストール処理部103は、OSの更新前では使用できていたプリンタドライバ201のうち、OSの更新後に使用できなくなったプリンタドライバ201が存在することをユーザに通知する。図12は、通知するメッセージの一例である。なお、このようなメッセージを表示するタイミングは、OSの更新直後であってもよいし、OSの更新後に初めてプリンタの管理フォルダを開いたタイミングであってもよい。また、メッセージの表示ではなく、同じ内容をログファイルとして保存しておく等、ユーザに通知できる手段であればよい。
図6〜図8に示したフローチャートの処理を行うことにより、OSの更新が行われ、インストール済みのプリンタドライバが更新後のOSにおいて動作しなくなった場合であっても、更新後のOSで動作するプリンタドライバを自動的に提供することができる。
図13は、S711にてドライバ検索部が行った問い合わせに対して、サーバコンピュータのドライバ管理部が行うドライバ検索処理を説明するためのフローチャートである。
ドライバ検索部102は、ドライバ管理部150への問い合わせに際して、ホストコンピュータ1000のOSのバージョン、検索を行うプリンタドライバ201に対応する機器ID、及びドライバ名を通知する。機器IDとドライバ名は、インストールドライバ候補リスト(表B)に挙げられたものである。ドライバ管理部150は、通知されたホストコンピュータ1000のOSのバージョン、機器ID、及びドライバ名をもとにプリンタドライバ201の検索処理を行う。
ステップS1101、及びステップS1102にて、ドライバ管理部150は、ドライバ検索部102から通知されたホストコンピュータ1000のOSのバージョン、機器ID、及びドライバ名を取得する。
ステップS1103にて、ドライバ管理部150は、通知されたOSのバージョン、及びモデル識別情報(MDL)に対応するプリンタドライバ201がサーバコンピュータ1500に存在するか否かを確認する。具体的には、ドライバ管理部150が、サーバコンピュータ1500の外部メモリ11に該当するプリンタドライバ201が存在するか否かを確認(検索)することにより実現する。
ステップS1104にて、ドライバ管理部150は、S1103で検索したプリンタドライバ201が存在するか否か、すなわち通知されたOSのバージョン及びMDLに対応するプリンタドライバ201が存在するか否かを判断する。対応するプリンタドライバ201が存在していた場合はステップS1109へ進み、存在していない場合はステップS1105へ進む。
ステップS1105にて、ドライバ管理部150は、通知されたOSのバージョン、及び互換識別情報(CID)に対応するプリンタドライバ201がサーバコンピュータ1500に存在するか否かを確認する。
ステップS1106にて、ドライバ管理部150は、S1105で検索したプリンタドライバ201が存在するか否かを判断する。すなわち通知されたOSのバージョン及びCIDに対応するプリンタドライバ201が存在するか否かを判断する。対応するプリンタドライバ201が存在していた場合はステップS1109へ進み、存在していない場合はステップS1107へ進む。
ステップS1107にて、ドライバ管理部150は、通知されたOSのバージョン、及びドライバ名に対応するプリンタドライバ201がサーバコンピュータ1500に存在するか否かを確認する。
ステップS1108にて、ドライバ管理部150は、S1107で検索したプリンタドライバ201が存在するか否かを判断する。すなわち通知されたOSのバージョン及びドライバ名と対応するプリンタドライバ201が存在するか否かを判断する。合致するプリンタドライバ201が存在していた場合はステップS1109へ進み、存在していない場合はステップS1110へ進む。
ステップS1109にて、ドライバ管理部150は、サーバコンピュータ1500内に存在したプリンタドライバ201の格納場所をドライバ検索部102に通知し、処理を終了する。
一方、S1110にて、ドライバ管理部150は、ドライバ検索部102の問い合わせに該当するプリンタドライバ201がサーバコンピュータ1500内に存在しない場合は、該当するプリンタドライバが存在しないことをドライバ検索部102に通知する。これは、ホストコンピュータ1000で動作可能であり、かつモデル識別情報(MDL)または互換識別情報(CID)またはドライバ名に対応するプリンタドライバ201が見つからなかったことを意味する。
以上のように、本実施形態によれば、特定のアーキテクチャのデバイスドライバしか動作しないOSに更新した場合であっても、更新後のOSで動作可能なデバイスドライバを、ユーザが意識することなくインストールすることが可能となる。
(第2実施形態)
次に、本発明の第2実施形態に係る情報処理装置について説明する。
本実施形態におけるプリントシステムの全体構成、ホストコンピュータ及びプリンタのハードウェア構成、ホストコンピュータのソフトウェア構成、サーバコンピュータのソフトウェア構成、及び機器IDの構成は、第1実施形態で示した構成と同様とする。具体的には、プリントシステムの全体構成は図1、ホストコンピュータ及びプリンタのハードウェア構成は図2、ホストコンピュータのソフトウェア構成は図3、サーバコンピュータのソフトウェア構成は図4、機器IDの構成は図5で示した構成と同一とする。
図9は、OSの更新前に、デバイス制御アプリが、インストール済みプリンタドライバのドライバ情報を保持する処理を説明するためのフローチャートである。
ステップS801にて、デバイス制御アプリ200は、動作しているOSのバージョン情報を保持する。OSのバージョン情報は、OSが用意しているバージョン情報取得のためのAPIを用いて取得することが可能である。
ステップS802にて、デバイス制御アプリ200は、ホストコンピュータ1000にインストールされているプリンタドライバの有無を確認する。インストールされているプリンタドライバが存在する場合にはステップS803へ進み、存在しない場合は処理を終了する。
ステップS803にて、デバイス制御アプリ200は、ステップS802で確認したプリンタドライバが対応する機器ID、及びドライバ名の情報を取得する。
ステップS804にて、デバイス制御アプリ200は、ステップS802で確認したプリンタドライバに関連付けられたプリンタキューの情報(ポート情報、プリンタキューの名前、印刷設定情報)を取得する。
ステップS805にて、デバイス制御アプリ200は、ステップS803〜S804で取得した情報を更新前ドライバ情報として保持する(表A)。
なお、デバイス制御アプリ200が未インストール状態の場合は、OS更新前にデバイス制御アプリ200を強制的にインストールする。デバイス制御アプリのインストールは、ドライバインストール処理部103が行う。デバイス制御アプリ200のインストールの概要を以下に記載する。
ドライバインストール処理部103は、ホストコンピュータ1000にインストールされているプリンタドライバ201の有無を確認する。プリンタドライバ201が存在する場合、そのプリンタドライバ201に対応する機器IDの情報を取得する。ドライバ検索部102は、取得した機器IDに対応するデバイス制御アプリ200の検索をサーバコンピュータ1500に対して行う。ドライバインストール処理部103は、ドライバ検索部102が検索したデバイス制御アプリ200のインストール処理を行う。
図10及び図11は、OSの更新後に、更新後のOSの環境に最適なプリンタドライバをインストールする処理を説明するためのフローチャートである。
この処理は、図9を用いて説明した、あらかじめ保持したドライバ情報を参照して行われる。また、この処理は、OS更新後に初めてデバイス制御アプリ200が起動した際にデバイス制御アプリ200によって実行される。
ステップS901にて、デバイス制御アプリ200は、OSの更新後に初めて起動されたか否かを確認する。具体的には、デバイス制御アプリ200は、図9に示した処理のステップS801にて保持したOSのバージョンと現在のOSのバージョンとを比較し、OSのバージョンが異なっていた場合はOSの更新後に初めて起動されたと判断し、ステップS902に進む。一方、比較したOSのバージョンが同一だった場合は処理を終了する。すなわち、デバイス制御アプリ200は、起動時に、現在のOSの情報と図9の処理にて保持されたOSの情報とにより、OSの更新が行われたか否かを検知することができる。
ステップS902にて、デバイス制御アプリ200は、ホストコンピュータ1000にインストールされているプリンタドライバ201をリストする。
ステップS903にて、デバイス制御アプリ200は、ステップS902でリストされたプリンタドライバ201それぞれに対して、現在動作中のOS上で動作可能か否かの判断を行う。具体的には、OSのドライバ分類判別部104に対して問い合わせを行うことにより判断する。ドライバ分類判別部104は、プリンタドライバ201が動作するOSのシステムの種類や、構成されるファイル、対応するAPI等のアーキテクチャの情報と、現在動作中のOSのバージョンから判断を行う。プリンタドライバ201があるバージョンのOSで動作するか否かは、OSの仕様により予めわかっており、その比較において判断を行う。
ステップS904にて、デバイス制御アプリ200は、ステップS903で現在動作中のOS上で動作不可能なプリンタドライバ201が存在するか否かを判断する。動作不可能なプリンタドライバ201が存在しないと判断した場合にはステップS907へ進み、存在すると判断した場合にはステップS905へと進む。
ステップS905にて、デバイス制御アプリ200は、ステップS903で現在動作中のOS上で動作不可能であると判断されたプリンタドライバ201に対応する機器IDとドライバ名を取得する。
ステップS906にて、デバイス制御アプリ200は、ステップS905で取得した機器IDとドライバ名をインストールドライバ候補リストへ追加する(表B)。
ステップS907にて、デバイス制御アプリ200は、ステップS902でリストしたインストールされているプリンタドライバ201と、図9に示した処理のステップS805にて保持された更新前ドライバ情報(表A)との比較を行う。
ステップS908にて、デバイス制御アプリ200は、ステップS907で比較した結果、OS更新により削除されたプリンタドライバ201があるか否かを判断する。具体的には、デバイス制御アプリ200は、更新前ドライバ情報に挙げられたプリンタドライバ201が、ステップS902でリストしたプリンタドライバ201の中に存在するか否かを判断する。そして、デバイス制御アプリ200は、存在しなかったプリンタドライバ201が削除されたと判断する。ステップ908で削除されたプリンタドライバがあると判断された場合には、ステップS909に進む。一方、更新前ドライバ情報に保持されたすべてのプリンタドライバ201が、ステップS902でリストしたプリンタドライバ201の中に存在する場合、すなわち削除されたプリンタドライバがないと判断された場合には、ステップS911に進む。
ステップS909にて、デバイス制御アプリ200は、ステップS908で削除されたと判断したプリンタドライバ201に対応する機器IDとドライバ名を、更新前ドライバ情報から取得する。
ステップS910にて、デバイス制御アプリ200は、ステップS909で取得した機器IDとドライバ名をインストールドライバ候補リストへ追加する。
ステップS911にて、デバイス制御アプリ200は、インストールドライバ候補リストに1つ以上のプリンタドライバ201が登録されているか否かの確認を行い、登録されていた場合はステップS912に進む。登録されていなかった場合は処理を終了する。
ステップS912にて、デバイス制御アプリ200は、インストールドライバ候補リストに保持されている機器IDまたはドライバ名に対応するプリンタドライバ201の検索を実行する。検索処理は、デバイス制御アプリ200がドライバ検索部102に問い合わせることにより行われる。処理の詳細は、前述した図13の処理と同様であるため、その説明は省略する。
検索処理において、サーバコンピュータ1500のドライバ管理部150は、ドライバ検索部102の問い合わせに該当するプリンタドライバ201の格納場所をドライバ検索部102に通知する。ドライバ検索部102は、通知されたサーバコンピュータ1500上の格納場所から該当するプリンタドライバ201をホストコンピュータ1000にダウンロードする。また、ドライバ検索部102の問い合わせに該当するプリンタドライバ201がサーバコンピュータ1500内に存在しない場合は、ドライバ管理部150は、該当するプリンタドライバ201が存在しないことをドライバ検索部102に通知する。これは、ホストコンピュータ1000で動作可能であり、かつモデル識別情報(MDL)または互換識別情報(CID)またはドライバ名に対応するプリンタドライバ201が見つからなかったことを意味する。上述したような検索処理の結果をドライバ検索部102は、デバイス制御アプリ200の問い合わせに対して回答する。
ステップS913にて、デバイス制御アプリ200は、ステップS912でホストコンピュータ1000にダウンロードしたプリンタドライバ201のインストール処理を行う。インストール処理は、デバイス制御アプリ200が、ドライバインストール処理部103に問い合わせることにより行う。
ステップS914にて、デバイス制御アプリ200は、ステップS913でインストールしたプリンタドライバ201に関連付けるプリンタキューの設定を行う。具体的には、デバイス制御アプリ200は、ステップS913でインストールしたプリンタドライバ201を検索する際に使用した機器IDとドライバ名から、設定を行うプリンタキューを特定する。また、プリンタキューの特定には、前述した更新前ドライバ情報を参照する。
例えば、ステップS912において検索に使用した機器IDが、「MDL:M123」「CID:なし」であり、ドライバ名が「PD123 V3」であったとする。また、参照する更新前ドライバ情報が表Aに記載の情報だったとする。この場合、設定を行うプリンタキューは、キュー名が「M123(Floor1)」及び「M123(Floor2)」の2つである。
特定したキュー名のプリンタキューがホストコンピュータ1000上にすでに存在する場合は、そのプリンタキューに対して、表Aに記載の更新前ドライバ情報にあるポートや印刷設定を設定する。そして、プリンタキューにインストールしたプリンタドライバ201の関連付けを行う。特定したキュー名のプリンタキューがホストコンピュータ1000上に存在しない場合は、更新前ドライバ情報のキュー名、ポート名、及び印刷設定を用いてプリンタキューを新規に作成する。そして、作成したプリンタキューにインストールしたプリンタドライバ201の関連付けを行う。
ステップS915にて、デバイス制御アプリ200は、ステップS912で検索できなかったプリンタドライバ201があるか否か、すなわちサーバコンピュータ1500に該当するプリンタドライバ201が存在したか否かを確認する。検索できなかったプリンタドライバ201が存在した場合は、ステップS916に進み、検索できなかったプリンタドライバ201が存在しなかった場合は処理を終了する。
ステップS916にて、デバイス制御アプリ200は、OSの更新前では使用できていたプリンタドライバ201のうち、OSの更新後に使用できなくなったプリンタドライバ201が存在することをユーザに通知する。図12は、通知するメッセージの一例である。
このように、図9〜図11に示した処理を行うことにより、OSの更新が行われ、インストール済みのプリンタドライバが更新後のOSにおいて動作しなくなった場合であっても、更新後のOSで動作するプリンタドライバを自動的に提供できる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。

Claims (15)

  1. OS(オペレーティングシステム)が動作する情報処理装置であって、
    第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第1のアーキテクチャとは異なる第2のアーキテクチャのデバイスドライバの動作をサポートする新バージョンのOSへのアップデートを行う前に、アップデート前のOS上で利用されていた前記第1のアーキテクチャのデバイスドライバのハードウェアID又は機種情報の少なくともいずれかを含むドライバ情報を、特定の領域に保持する保持手段と、
    前記OSが前記新バージョンへアップデートされた後に、前記保持されたドライバ情報に基づき、前記第2のアーキテクチャのデバイスドライバを介してデバイスを使用できるようセットアップする制御手段と、を有することを特徴とする情報処理装置。
  2. 前記保持手段は、前記アップデート前のOSの機能として実現されることを特徴とする請求項1に記載の情報処理装置。
  3. 前記保持手段は、前記アップデート前のOS上で動作するデバイスドライバを管理するアプリケーションの機能として実現されることを特徴とする請求項1に記載の情報処理装置。
  4. 前記アプリケーションは、前記デバイスドライバと同じベンダから提供されることを特徴とする請求項3に記載の情報処理装置。
  5. 前記アプリケーションの機能としての前記保持手段は、さらに前記ドライバ情報とともに前記情報処理装置にインストールされているOSのバージョン情報を保持し、
    前記アプリケーションは、起動時に、現在のOSのバージョン情報と前記保持されているOSのバージョン情報とを比較し、前記第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第2のアーキテクチャのデバイスドライバの動作をサポートするバージョンのOSへアップデートが行われたことを検知する検知手段を更に有する
    ことを特徴とする請求項3または4に記載の情報処理装置。
  6. 前記デバイスドライバは、プリンタドライバであり、
    前記保持手段は、さらに、プリンタ名、ポート情報、及び印刷設定情報を保持し、
    前記制御手段は、前記プリンタドライバのインストールを行った後に、前記保持されたプリンタ名、ポート情報、及び印刷設定情報に基づき該デバイスドライバに関連付くプリンタキューの設定を行う
    ことを特徴とする請求項1ないし5のいずれか1項に記載の情報処理装置。
  7. 前記ハードウェアIDには、モデル識別情報、及び互換識別情報が含まれることを特徴とする請求項1ないし5のいずれか1項に記載の情報処理装置。
  8. 前記インストールされるデバイスドライバは、前記モデル識別情報、前記互換識別情報、または前記機種情報に基づき検索された前記第2のアーキテクチャのデバイスドライバであることを特徴とする請求項7に記載の情報処理装置。
  9. 前記アップデート前のOS上で利用されていたデバイスドライバのうち、前記アップデートに伴い、削除された前記第1のアーキテクチャのデバイスドライバがあるか否か、を判断する判断手段をさらに備え、
    前記制御手段は、前記判断手段によって削除されたと判断したデバイスドライバのドライバ情報に対応する、前記第2のアーキテクチャのデバイスドライバをインストールする
    ことを特徴とする請求項1ないし8のいずれか1項に記載の情報処理装置。
  10. 前記制御手段は、前記保持されたドライバ情報に対応する第2のアーキテクチャのデバイスドライバが存在しない場合に、前記アップデートが行われた後に、動作しないデバイスドライバが存在することをユーザに通知する
    ことを特徴とする請求項1ないし9のいずれか1項に記載の情報処理装置。
  11. OS(オペレーティングシステム)が動作する情報処理装置の制御方法であって、
    第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第1のアーキテクチャとは異なる第2のアーキテクチャのデバイスドライバの動作をサポートする新バージョンのOSへのアップデートを行う前に、アップデート前のOS上で利用されていた前記第1のアーキテクチャのデバイスドライバのハードウェアID又は機種情報の少なくともいずれかを含むドライバ情報を、特定の領域に保持する工程と、
    前記OSが前記新バージョンへアップデートされた後に、前記保持されたドライバ情報に基づき、前記第2のアーキテクチャのデバイスドライバを介してデバイスを使用できるようセットアップする工程と、を有する
    ことを特徴とする制御方法。
  12. OS(オペレーティングシステム)が動作する情報処理装置にインストールされるアプリケーションプログラムであって、
    前記アプリケーションプログラムは、情報処理装置のコンピュータに、
    OSのアップデートに伴い、第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第1のアーキテクチャとは異なる第2のアーキテクチャのデバイスドライバの動作をサポートする新バージョンのOSへのアップデートを行う前に、アップデート前のOS上で利用されていた前記第1のアーキテクチャのデバイスドライバのハードウェアID又は機種情報の少なくともいずれかを含むドライバ情報を、前記アプリケーションプログラムがアクセス可能な特定の領域に保持する保持工程と、
    前記OSが前記新バージョンへアップデートされた後に、前記特定の領域に保持されたドライバ情報に基づいて、前記第2のアーキテクチャのデバイスドライバを介してデバイスを使用するためのセットアップを行うよう、前記新バージョンのOSに依頼する制御工程と、
    を実行させることを特徴とするアプリケーションプログラム。
  13. 請求項1乃至10のいずれか1項に記載の情報処理装置が備える各手段としてコンピュータを機能させるためのプログラム。
  14. OS(オペレーティングシステム)が動作する情報処理装置であって、
    第1のアーキテクチャのデバイスドライバの動作をサポートせず、且つ、前記第1のアーキテクチャとは異なる第2のアーキテクチャのデバイスドライバの動作をサポートするバージョンのOSへのアップデートが行われた後に、前記アップデート後のOSで動作をサポートしないデバイスドライバがあれば、当該動作をサポートしないデバイスドライバに関する情報を取得する取得手段と、
    前記取得された情報に基づき、前記第2のアーキテクチャのデバイスドライバを介してデバイスを使用できるようセットアップする制御手段と、を有することを特徴とする情報処理装置。
  15. 前記デバイスドライバは、プリンタドライバであり、
    前記取得手段は、さらに、前記動作していないプリンタドライバのポート情報及び印刷設定情報を取得し、
    前記制御手段は、前記第2のアーキテクチャのプリンタドライバのセットアップを行った後に、前記取得されたポート情報及び印刷設定情報に基づき該プリンタドライバに関連付くプリンタキューの設定を行う
    ことを特徴とする請求項14に記載の情報処理装置。
JP2018138424A 2018-07-24 2018-07-24 情報処理装置、制御方法、及びプログラム Active JP6545332B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018138424A JP6545332B2 (ja) 2018-07-24 2018-07-24 情報処理装置、制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018138424A JP6545332B2 (ja) 2018-07-24 2018-07-24 情報処理装置、制御方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015148344A Division JP6377026B2 (ja) 2015-07-28 2015-07-28 情報処理装置、制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018173998A JP2018173998A (ja) 2018-11-08
JP6545332B2 true JP6545332B2 (ja) 2019-07-17

Family

ID=64106738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018138424A Active JP6545332B2 (ja) 2018-07-24 2018-07-24 情報処理装置、制御方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6545332B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3855627B1 (en) 2018-09-18 2024-05-01 Alps Alpine Co., Ltd. Amplifier module
JP7423972B2 (ja) * 2019-10-18 2024-01-30 ブラザー工業株式会社 インストールプログラム、情報処理装置、および通信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4827445B2 (ja) * 2005-06-30 2011-11-30 キヤノン株式会社 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム
JP2008015794A (ja) * 2006-07-06 2008-01-24 Konica Minolta Business Technologies Inc プログラム管理装置及びプログラム管理システム、ならびにプログラム提供方法
JP2010102500A (ja) * 2008-10-23 2010-05-06 Canon Inc 印刷システム、情報処理装置及びその制御方法、並びにプログラム
JP6080593B2 (ja) * 2013-02-19 2017-02-15 キヤノン株式会社 情報処理装置及びその方法

Also Published As

Publication number Publication date
JP2018173998A (ja) 2018-11-08

Similar Documents

Publication Publication Date Title
JP4371693B2 (ja) 印刷制御装置、印刷制御方法及びコンピュータプログラム
JP5263211B2 (ja) サーバ、プリンタ、及び、サーバのためのコンピュータプログラム
EP1621995A2 (en) Information processing apparatus, control method therefor, computer program, and computer-readable storage medium
US9170763B2 (en) Information processing apparatus and control method
JP2008009967A (ja) 情報処理装置、情報処理システム、プログラム及びその記録媒体
JP2020004158A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
BR112012025843B1 (pt) programa e método de controle de cliente e sistema de impressão
KR101763018B1 (ko) 시스템, 인쇄 장치, 제어 방법 및 컴퓨터 판독가능한 기록 매체
JP5581793B2 (ja) 情報処理装置、プログラムおよび記憶媒体
JP5317817B2 (ja) 情報処理装置、プリンタドライのバインストール方法、及び、プログラム
JP6545332B2 (ja) 情報処理装置、制御方法、及びプログラム
EP1811368A2 (en) Information processing apparatus, information processing method, and information processing program
JP2018084893A (ja) 情報処理装置、制御方法およびプログラム
US8422040B2 (en) Image forming system and method, management apparatus, and recording medium
JP2015026215A (ja) 印刷システムおよびその制御方法、情報処理装置およびその制御方法、印刷装置およびその制御方法、並びにプログラム
JP6424973B2 (ja) サーバ、プリンタ、及び、サーバのためのコンピュータプログラム
US10346102B2 (en) Information processing apparatus that controls install of a device driver in accordance with capability of an operating system, installation method, and storage medium
JP6377026B2 (ja) 情報処理装置、制御方法、及びプログラム
JP4802613B2 (ja) インストールシステム及びインストールプログラム
JP6048535B2 (ja) サーバ、プリンタ、及び、サーバのためのコンピュータプログラム
JP2006209195A (ja) 印刷制御装置、印刷制御方法、及び記憶媒体
JP6278097B2 (ja) サーバ、プリンタ、及び、サーバのためのコンピュータプログラム
JP7302538B2 (ja) サーバ、プリンタ、及び、サーバのためのコンピュータプログラム
US11327693B2 (en) Computer-readable medium, information processing device, and Method for installing appropriate program
JP4560330B2 (ja) 印刷制御装置及びその方法とインストーラ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180821

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190618

R151 Written notification of patent or utility model registration

Ref document number: 6545332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151