(57)【要約】【課題】ドライバ単体でバージョンの不整合を防ぐこと。【解決手段】他のモジュールによってロードされる１以上のＰｒｉｍａｒｙＤＬＬ１７０と、ＰｒｉｍａｒｙＤＬＬ１７０によってロードされ、プリンタドライバとしての機能を提供する第１実処理部を保持する、相互にバージョンが異なる複数のＳｅｃｏｎｄａｒｙＤＬＬ１８０と、を備え、ＰｒｉｍａｒｙＤＬＬ１７０は、ＰｒｉｍａｒｙＤＬＬ１７０ごとに定められる、使用するＳｅｃｏｎｄａｒｙＤＬＬ１８０を決定するための使用モジュール情報に基づいて、ＳｅｃｏｎｄａｒｙＤＬＬ１８０を決定する決定部を備える。【選択図】図４
2016045513.tif 000002
【特許請求の範囲】
【請求項１】
他のモジュールによってロードされる１以上のプライマリ共有モジュールと、
前記プライマリ共有モジュールによってロードされ、プリンタドライバとしての機能を提供する第１実処理部を保持する、相互にバージョンが異なる複数のセコンダリ共有モジュールと、
を備え、
前記プライマリ共有モジュールは、
前記プライマリ共有モジュールごとに定められる、使用する前記セコンダリ共有モジュールを決定するための使用モジュール情報に基づいて、前記セコンダリ共有モジュールを決定する決定部を備える
ことを特徴とする情報処理装置。
【請求項２】
前記プライマリ共有モジュールは、プリンタドライバとしての機能を提供する第２実処理部を保持することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記使用モジュール情報は、実処理の依頼元のプライマリ共有モジュールを表す識別子と、実処理の依頼先のプライマリ共有モジュールまたはセコンダリ共有モジュールを表す識別子とが紐付けられたものであることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記使用モジュール情報は、テキスト形式であることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記使用モジュール情報は、バイナリ形式であることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記プリンタドライバのパッケージに前記プライマリ共有モジュールと前記セコンダリ共有モジュールが含まれることを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記プリンタドライバのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのインストール後またはアップデート後に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項２に記載の情報処理装置。
【請求項８】
前記プリンタドライバのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのポイント・プリントによるインストール後またはサーバとの通信によるアップデート後に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項２に記載の情報処理装置。
【請求項９】
前記プリンタドライバのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのサーバ側でアップデート後、クライアント側がアップデートされる前に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項２に記載の情報処理装置。
【請求項１０】
プログラムと画像処理装置とを備える画像処理システムであって、
前記プログラムは、
他のモジュールによってロードされる１以上のプライマリ共有モジュールと、前記プライマリ共有モジュールによってロードされ、プリンタドライバとしての機能を提供する実処理部を保持する、相互にバージョンが異なる複数のセコンダリ共有モジュールとしてコンピュータを機能させ、
前記プライマリ共有モジュールは、前記プライマリ共有モジュールごとに定められる、使用する前記セコンダリ共有モジュールを決定するための使用モジュール情報に基づいて、前記セコンダリ共有モジュールを決定する決定部を備え、
画像処理装置は、前記プリンタドライバの指示に基づいて所定の画像処理を行う
ことを特徴とする画像処理システム。
【請求項１１】
他のモジュールによってロードされる１以上のプライマリ共有モジュールと、前記プライマリ共有モジュールによってロードされ、プリンタドライバとしての機能を提供する第１実処理部を保持する、相互にバージョンが異なる複数のセコンダリ共有モジュールと、を備える画像処理装置で実行される情報処理方法であって、
前記プライマリ共有モジュールごとに定められる、使用する前記セコンダリ共有モジュールを決定するための使用モジュール情報に基づいて、前記セコンダリ共有モジュールを決定する決定工程を含むことを特徴とする情報処理方法。
【請求項１２】
コンピュータを、
他のモジュールによってロードされる１以上のプライマリ共有モジュールと、前記プライマリ共有モジュールによってロードされ、プリンタドライバとしての機能を提供する第１実処理部を保持する、相互にバージョンが異なる複数のセコンダリ共有モジュールとして機能させ、
前記プライマリ共有モジュールは、
前記プライマリ共有モジュールごとに定められる、使用する前記セコンダリ共有モジュールを決定するための使用モジュール情報に基づいて、前記セコンダリ共有モジュールを決定する決定部を備えるプログラム。
【請求項１３】
前記プライマリ共有モジュールは、描画と印刷設定およびその他プリンタドライバとして必要な機能を提供する実処理部を保持することを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記使用モジュール情報は、実処理の依頼元のプライマリ共有モジュールを表す識別子と、実処理の依頼先のプライマリ共有モジュールまたはセコンダリ共有モジュールを表す識別子とが紐付けられたものであることを特徴とする請求項１２に記載のプログラム。
【請求項１５】
前記使用モジュール情報は、テキスト形式であることを特徴とする請求項１２に記載のプログラム。
【請求項１６】
前記使用モジュール情報は、バイナリ形式であることを特徴とする請求項１２に記載のプログラム。
【請求項１７】
前記プログラムのパッケージに前記プライマリ共有モジュールと前記セコンダリ共有モジュールが含まれることを特徴とする請求項１３に記載のプログラム。
【請求項１８】
前記プログラムのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのインストール後またはアップデート後に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項１３に記載のプログラム。
【請求項１９】
前記プログラムのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのポイント・プリントによるインストール後またはサーバとの通信によるアップデート後に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項１３に記載のプログラム。
【請求項２０】
前記プログラムのパッケージに前記プライマリ共有モジュールのみが含まれており、前記プライマリ共有モジュールのサーバ側でアップデート後、クライアント側がアップデートされる前に前記プライマリ共有モジュールがコピーおよびリネームされて前記セコンダリ共有モジュールが生成されることを特徴とする請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像処理システム、情報処理方法、およびプログラムに関するものである。
【背景技術】
【０００２】
従来、Ｐｏｉｎｔ＆Ｐｒｉｎｔを用いて同一のドライバに対応付けられた異なるプリンタアイコンを複数のサーバで利用することが行われている。この場合、あるサーバにおいてドライバのアップデートを行うと、別のサーバとクライアントとの間でドライバのバージョンの不整合が発生してしまう問題があった。なお、Ｐｏｉｎｔ＆Ｐｒｉｎｔは、クライアントからサーバへの共有プリンタを設定することでサーバからクライアントにプリンタドライバがコピーされるインストール機能である。
【０００３】
ここで、サーバ１とサーバ２のバージョンが異なり、クライアントがサーバ１のバージョンを引き継ぐことによって、サーバ２とクライアントが保持するドライバのバージョンが異なる場合を想定する。このような場合、サーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況では、サーバ２とクライアントが保持するドライバのバージョンが異なるという状態が発生することがある。このようなバージョンの不整合が生じてしまうと、クライアントからサーバ２を利用する場合、印刷ができないもしくは不適切な印刷結果となってしまうなどの不具合が生じる。
【０００４】
これに対し、管理ツールまたは管理サーバによってバージョンの整合を取りドライバが正常に動作するよう設定するための技術が知られている。
【０００５】
例えば、特許文献１には、ネットワークプリンタの更新に伴うドライバ間の不整合の問題を解決する目的で、適切な印刷環境を実現する手段が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記に示される従来の技術にあっては、バージョンの整合を取るために専用の管理ツールまたは管理サーバを用意しなければならないという問題があった。
【０００７】
専用の管理ツールまたは管理サーバを用意しなければならない場合、導入や保守の手間がかかりユーザの負担になってしまう。また、中にはドライバ以外の余計なツールを入れたくないユーザも存在する。
【０００８】
本発明は、上記に鑑みてなされたものであって、ドライバ単体でバージョンの不整合を防ぐことを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、他のモジュールによってロードされる１以上のプライマリ共有モジュールと、前記プライマリ共有モジュールによってロードされ、プリンタドライバとしての機能を提供する第１実処理部を保持する、相互にバージョンが異なる複数のセコンダリ共有モジュールと、を備え、前記プライマリ共有モジュールは、前記プライマリ共有モジュールごとに定められる、使用する前記セコンダリ共有モジュールを決定するための使用モジュール情報に基づいて、前記セコンダリ共有モジュールを決定する決定部を備えることを特徴とする。
【発明の効果】
【００１０】
本発明は、ドライバ単体でバージョンの不整合を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかるシステム構成例を示すブロック図である。
【図２】図２は、サーバ、クライアントのＰＣの構成を示すブロック図である。
【図３】図３は、図２におけるＰＣ内部の構成を示すブロック図である。
【図４】図４は、実施の形態にかかるドライバの基本構成例および機能構成を示すブロック図である。
【図５】図５は、使用ＤＬＬ情報のデータ構成例を示す説明図である。
【図６】図６は、ドライバの構成例（１）を示すブロック図である。
【図７】図７は、図６のドライバの構成例（１）におけるＰｒｉｍａｒｙＤＬＬによる読み分けの流れを示す説明図である。
【図８】図８は、ドライバの構成例（２）を示すブロック図である。
【図９】図９は、図８のドライバの構成例（２）におけるＰｒｉｍａｒｙＤＬＬによる読み分けの流れを示す説明図である。
【図１０】図１０は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（１）を示す説明図である。
【図１１】図１１は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（２）を示す説明図である。
【図１２】図１２は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（３）を示す説明図である。
【図１３】図１３は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（４）を示す説明図である。
【図１４】図１４は、本実施の形態のサーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況例（１−１）を示す説明図である。
【図１５】図１５は、本実施の形態のサーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況例（１−２）を示す説明図である。
【図１６】図１６は、図１５、図１６の例における手順例を示す説明図である。
【図１７】図１７は、サーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況例（２−１）を示す説明図である。
【図１８】図１８は、サーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況例（２−２）を示す説明図である。
【図１９】図１９は、図１７、図１８の例における手順例を示す説明図である。
【図２０】図２０は、従来のサーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況を示す説明図である。
【図２１】図２１は、図２０の構成におけるドライバのアップデート例を示す説明図である。
【図２２】図２２は、図２１の状況におけるドライバのバージョン不整合例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる情報処理装置、画像処理システム、情報処理方法、およびプログラムの一実施の形態を詳細に説明する。
【００１３】
（実施の形態）
まず、従来におけるドライバの構成および処理の流れについて説明する。例えば、図２０に示すようにサーバ１とサーバ２からＰｏｉｎｔ＆Ｐｒｉｎｔでクライアントにドライバがインストールされている状況を考える。このとき、サーバ１のプリンタアイコンＸ、サーバ２のプリンタアイコンＹは、共にドライバＡを使用しているとすると、クライアントのプリンタアイコンＸ’、Ｙ’は共通のドライバＡを使用することになる。
【００１４】
この状況で、図２１に示すように、サーバ１のドライバＡがアップデートされ、ドライバＡを構成するＡ．ｄｌｌのバージョンが上がると、サーバ１のＡ．ｄｌｌがクライアントにコピーされるため、クライアントのドライバＡを構成するＡ．ｄｌｌのバージョンも上がる。
【００１５】
この結果、図２２に示すように、サーバ２とクライアントが保持するＡ．ｄｌｌのバージョンが異なるという状態が発生してしまう。このようなバージョンの不整合が生じてしまうと、クライアントからサーバ２を利用する場合、印刷ができないもしくは不適切な印刷結果となってしまうなどの不具合が生じる。
【００１６】
本実施の形態では、クライアントからサーバへの共有プリンタを設定することで複数のサーバからクライアントにプリンタドライバがコピーされるインストールするＰｏｉｎｔ＆Ｐｒｉｎｔ（ポイント・プリント）方法を用いる。このＰｏｉｎｔ＆Ｐｒｉｎｔでは、最初に読み込まれるｄｌｌ（Ｐｒｉｍａｒｙ．ｄｌｌ）と実際の処理を行うｄｌｌ（Ｓｅｃｏｎｄａｒｙ．ｄｌｌ）を分け、使用するＳｅｃｏｎｄａｒｙ．ｄｌｌの情報をもとにＰｒｉｍａｒｙ．ｄｌｌが読み分けを行う。これにより、プリンタアイコンごとに適切なバージョンのｄｌｌを使用するものである。以下、具体例をあげて説明する。
【００１７】
ＤＬＬ（Dynamic  Link  Library）：共有ライブラリまたはシェアドライブラリでは、ＤＬＬファイルの拡張子として「．dｌｌ」が付く。以下、単にＤＬＬと記載する。
【００１８】
図１は、実施の形態にかかるシステム構成例を示すブロック図である。複数のサーバＰＣ１００ａ，ｂ、複数のクライアントＰＣ１１０ａ，ｂ、複数のプリンタ１２０ａ，ｂがネットワーク１３０，１４０を介して接続している。なお、以下の説明では上記複数のサーバＰＣ１００ａ，ｂ、複数のクライアントＰＣ１１０ａ，ｂ、複数のプリンタ１２０ａ，ｂについて支障がない限り、単に、サーバ１００、クライアント１１０、プリンタ１２０と記述する。
【００１９】
つぎに、図２に示すサーバ１００、クライアント１１０を構成するＰＣについて説明する。ＰＣは、一般的な情報処理端末と同様の構成を有する。ＰＣは、ＣＰＵ（Central  Processing  Unit）１０１、ＲＡＭ（Random  Access  Memory）１０２、ＲＯＭ（Read  Only  Memory）１０３、ＨＤＤ（Hard  Disk  Drive）１０４及びＩ／Ｆ１０５がバスを介して接続されている。また、Ｉ／Ｆ１０５にはＬＣＤ（Liquid  Crystal  Display）１０６及び操作部１０７が接続されている。
【００２０】
ＣＰＵ１０１は演算手段であり、ＰＣ全体の動作を制御する。ＲＡＭ１０２は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０１が情報を処理する際の作業領域として用いられる。ＲＯＭ１０３は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。ＨＤＤ１０４は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Operating  System）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。
【００２１】
Ｉ／Ｆ１０５は、バスと各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ１０６は、ユーザがＰＣの状態を確認するための視覚的ユーザインタフェースである。操作部１０７は、キーボードやマウス等、ユーザがＰＣに情報を入力するためのユーザインタフェースである。
【００２２】
図３は、図２におけるＰＣ内部の構成を示すブロック図である。この図に示すように、ＰＣは、ドライバ１５０、使用ＤＬＬ情報記憶領域１５１、ＯＳ１５２、アプリケーション１５３を有する。
【００２３】
ドライバ１５０は、印刷を行うためのモジュールである。使用ＤＬＬ情報記憶領域１５１は、ドライバ１５０が使用するＤＬＬの情報の保存先であり、プリンタアイコンごとに存在するファイルシステムまたはレジストリで実現する。
【００２４】
図４は、ドライバ１５０の基本構成および機能構成を示すブロック図である。使用ＤＬＬ情報記憶領域１５１には、使用ＤＬＬ情報１６０が存在する。ドライバ１５０には、ＰｒｉｍａｒｙＤＬＬ１７０ａ，ｂとＳｅｃｏｎｄａｒｙＤＬＬ１８０ａ，ｂ，ｃ，ｄが存在する。なお、支障のない限り、ＰｒｉｍａｒｙＤＬＬ１７０、ＳｅｃｏｎｄａｒｙＤＬＬ１８０と記述および図示する。
【００２５】
ドライバ１５０は、プライマリ共有モジュールとしてのＰｒｉｍａｒｙＤＬＬ１７０と、セコンダリ共有モジュールとしてのＳｅｃｏｎｄａｒｙＤＬＬ１８０と、を備える。ＰｒｉｍａｒｙＤＬＬ１７０は、他のモジュール、例えばオペレーションシステム（ＯＳ）または他の共有モジュール（ＤＬＬ）によってロードされる１以上を有する。ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、ＰｒｉｍａｒｙＤＬＬ１７０によってロードされ、プリンタドライバとしての機能を提供する第１実処理部（後述する図６の実処理部１９５）を保持する、相互にバージョンが異なる複数のモジュールである。ＰｒｉｍａｒｙＤＬＬ１７０は、ＰｒｉｍａｒｙＤＬＬ１７０ごとに定められる、使用するＳｅｃｏｎｄａｒｙＤＬＬ１８０を決定するための使用モジュール情報としての使用ＤＬＬ情報１６０に基づいて、セコンダリ共有モジュールを決定する決定部を備える。なお、決定部は後述する図６の使用ＤＬＬ決定部１９０で示す。
【００２６】
ＰｒｉｍａｒｙＤＬＬ１７０は、プリンタドライバとしての機能を提供する第２実処理部（後述する図８の実処理部１９６）を保持するようにしてもよい（図８参照）。これにより無駄な読み込み動作が不要になる。
【００２７】
使用ＤＬＬ情報１６０は、実処理の依頼元のプライマリ共有モジュールを表す識別子と、実処理の依頼先のプライマリ共有モジュールまたはセコンダリ共有モジュールを表す識別子とが紐付けられたものである。これによりＰｒｉｍａｒｙＤＬＬ１７０による読み分けが可能になる。
【００２８】
ドライバ１５０のパッケージにＰｒｉｍａｒｙＤＬＬ１７０とＳｅｃｏｎｄａｒｙＤＬＬ１８０が含まれる。これによりサーバ１００とクライアント１１０間でＰｒｉｍａｒｙＤＬＬ１７０をコピーするだけの処理が実現する。
【００２９】
また、ドライバ１５０のパッケージにＰｒｉｍａｒｙＤＬＬ１７０のみが含まれている。ＰｒｉｍａｒｙＤＬＬ１７０のインストール後またはアップデート後ＰｒｉｍａｒｙＤＬＬ１７０がコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬ１８０が生成されるようにしてもよい。これによりサーバ１００とクライアント１１０間でＰｒｉｍａｒｙＤＬＬ１７０をコピーするだけの処理が実現する。
【００３０】
ドライバ１５０のパッケージにＰｒｉｍａｒｙＤＬＬ１７０のみが含まれている。ＰｒｉｍａｒｙＤＬＬ１７０のポイント・プリントによるインストール後またはサーバとの通信によるアップデート後にＰｒｉｍａｒｙＤＬＬ１７０がコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬ１８０が生成されるようにしてもよい。これによりサーバ１００が使用しないファイルを保持する必要がなくなる。
【００３１】
ドライバ１５０のパッケージにＰｒｉｍａｒｙＤＬＬ１７０のみが含まれている。ＰｒｉｍａｒｙＤＬＬ１７０のサーバ１００側でアップデート後、クライアント１１０側がアップデートされる前にＰｒｉｍａｒｙＤＬＬ１７０がコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬ１８０が生成されるようにしてもよい。これによりクライアント１１０が使用しないファイルを保持する必要がなくなる。
【００３２】
使用ＤＬＬ情報１６０は、処理を行うＤＬＬを決めるための情報であり、機能（ＰｒｉｍａｒｙＤＬＬ）ごとに存在する。
【００３３】
ＰｒｉｍａｒｙＤＬＬ１７０は、ＯＳ１５２または別のＤＬＬによってロードされるＤＬＬである。ＰｒｉｍａｒｙＤＬＬ１７０は、機能ごとに存在し、１つ以上存在する（複数存在しても良い）。
【００３４】
ＰｒｉｍａｒｙＤＬＬ１７０は、どのプリンタアイコンから呼ばれたかという情報を受け取り、対応する使用ＤＬＬ情報記憶領域１５１から使用ＤＬＬ情報１６０を取得する。ＰｒｉｍａｒｙＤＬＬ１７０は、取得した使用ＤＬＬ情報１６０をもとに処理を行うＤＬＬ（ＰｒｉｍａｒｙＤＬＬ１７０またはＳｅｃｏｎｄａｒｙＤＬＬ１８０）を決定する。ＰｒｉｍａｒｙＤＬＬ１７０は、使用するＤＬＬがＳｅｃｏｎｄａｒｙＤＬＬ１８０の場合にはそのＤＬＬをロードする。ＰｒｉｍａｒｙＤＬＬ１７０は、描画や印刷設定、その他プリンタドライバとして必要な機能を提供してもよい。
【００３５】
ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、ＰｒｉｍａｒｙＤＬＬ１７０によってロードされるＤＬＬである。ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、ＰｒｉｍａｒｙＤＬＬ１７０ごとに存在し、０つ以上存在する（複数存在しても良い）。ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、描画や印刷設定、その他プリンタドライバとして必要な機能を提供する。ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、バージョンごとに異なる名前で存在する。ＳｅｃｏｎｄａｒｙＤＬＬ１８０は、他のＰｒｉｍａｒｙＤＬＬ１７０をロードしても良い。
【００３６】
なお、使用ＤＬＬ情報１６０は、テキスト形式またはバイナリ形式である。使用ＤＬＬ情報１６０をテキスト形式とすることで編集処理が容易に行える。また、使用ＤＬＬ情報１６０をバイナリ形式とすることで処理速度が速くなる。
【００３７】
図５は、使用ＤＬＬ情報１６０のデータ構成例を示す説明図である。使用ＤＬＬ情報１１６０は、機能（ＰｒｉｍａｒｙＤＬＬ１７０）のＩＤと使用ＤＬＬのＩＤが紐付けられたものである。
【００３８】
図６は、ドライバ１５０の構成例（１）を示すブロック図である。ＰｒｉｍａｒｙＤＬＬ１７０には使用ＤＬＬ決定部１９０がある。ＳｅｃｏｎｄａｒｙＤＬＬ１８０には実処理部１９５がある。
【００３９】
使用ＤＬＬ決定部１９０は、使用するＤＬＬを決定する部分である。使用ＤＬＬ決定部１９０は、どのプリンタアイコンから呼ばれたかという情報をもとに、対応する使用ＤＬＬ情報記憶領域１５１へアクセスする。使用ＤＬＬ決定部１９０は、使用ＤＬＬ情報記憶領域１５１から、自身の機能（ＰｒｉｍａｒｙＤＬＬ１７０）のＩＤに紐付けられた使用ＤＬＬ情報１６０のＩＤを取得する。使用ＤＬＬ決定部１９０は、取得した使用ＤＬＬ情報１６０のＩＤに対応するＳｅｃｏｎｄａｒｙＤＬＬ１８０をロードする。実処理部１９５は、描画や印刷設定、その他プリンタドライバとして必要な機能を提供する部分である。
【００４０】
図７は、図６のドライバ１５０の構成例（１）におけるＰｒｉｍａｒｙＤＬＬ１７０による読み分けの流れを示す説明図である。この図において、まず、ＯＳ１５２またはＤＬＬがＰｒｉｍａｒｙＤＬＬ１７０ａに描画や印刷設定、その他プリンタドライバの機能を提供する処理を依頼する（Ｓ１）。つぎに、ＰｒｉｍａｒｙＤＬＬ１７０ａは、プリンタアイコン情報をもとに、対応する使用ＤＬＬ情報記憶領域１５１へアクセスし、自身の機能（ＰｒｉｍａｒｙＤＬＬ１７０ａ）のＩＤに紐付けられた使用ＤＬＬ情報１６０のＩＤを取得する（Ｓ２）。つぎに、使用ＤＬＬ情報記憶領域１５１は、取得した使用ＤＬＬ情報１６０のＩＤに対応するＳｅｃｏｎｄａｒｙＤＬＬ１８０ａに描画や印刷設定、その他プリンタドライバの機能を提供する処理を依頼する（Ｓ３）。つぎに、ＰｒｉｍａｒｙＤＬＬ１７０ａは、ＳｅｃｏｎｄａｒｙＤＬＬ１８０ａに印刷設定処理を依頼する（Ｓ４）。なお、プリンタアイコン情報は、ＯＳ１５２からの処理の依頼時に渡されたもの、または以前の処理の依頼時に渡されたものを保存しておいたものを使用する。
【００４１】
図８は、ドライバ１５０の構成例（２）を示すブロック図である。この図８の構成例は前述した図６の構成例に対して、ＰｒｉｍａｒｙＤＬＬ１７０にも実処理部１９６を設けたものである。他の構成は図６と同様であるのでここでの説明は省略する。
【００４２】
図８において、使用ＤＬＬ決定部１９０は、取得した使用ＤＬＬ情報１６０のＩＤが自身のＩＤであればＰｒｉｍａｒｙＤＬＬ１７０の実処理部１９６が処理を行い、そうでなければ対応するＳｅｃｏｎｄａｒｙＤＬＬ１８０をロードする。
【００４３】
図９は、図８のドライバ１５０の構成例（２）におけるＰｒｉｍａｒｙＤＬＬ１７０による読み分けの流れを示す説明図である。この図において、まず、ＯＳ１５２またはＤＬＬがＰｒｉｍａｒｙＤＬＬ１７０ａに処理を依頼する（Ｓ１１）。ＰｒｉｍａｒｙＤＬＬ１７０ａは、プリンタアイコン情報をもとに、対応する使用ＤＬＬ情報記憶領域１５１へアクセスし、自身の機能（ＰｒｉｍａｒｙＤＬＬ１７０ａ）のＩＤに紐付けられた使用ＤＬＬ情報１６０のＩＤを取得する（Ｓ１２）。つぎに、取得した使用ＤＬＬのＩＤに対応するＤＬＬがＰｒｉｍａｒｙＤＬＬ１７０ａの場合、あるいはＳｅｃｏｎｄａｒｙＤＬＬ１８０ａの場合に以下の処理を行う。
【００４４】
ＰｒｉｍａｒｙＤＬＬ１７０ａの場合、ＰｒｉｍａｒｙＤＬＬ１７０ａが描画や印刷設定、その他プリンタドライバの機能を提供する処理を行う（Ｓ１３）。
【００４５】
ＳｅｃｏｎｄａｒｙＤＬＬ１８０ａの場合、ＳｅｃｏｎｄａｒｙＤＬＬ１８０ａに描画や印刷設定、その他プリンタドライバの機能を提供する処理を依頼する（Ｓ１４）。
【００４６】
以降では、前述した図８の構成例（２）におけるＰｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れについて説明する。
【００４７】
図１０は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（１）を示す説明図である。図１０では、パッケージにＰｒｉｍａｒｙＤＬＬ１７０とＳｅｃｏｎｄａｒｙＤＬＬ１８０が含まれる場合について示している。なお、図中では、Ｐ：ＰｒｉｍａｒｙＤＬＬ、Ｓ１：ＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．１）、Ｓ２：ＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．２）として記述している。
【００４８】
図１０に示すように、[１]では、サーバ１００にドライバ１５０がインストールされ、ＰｒｉｍａｒｙＤＬＬとＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．１）が入る。[２]では、Ｐｏｉｎｔ＆Ｐｒｉｎｔによって、サーバ１００のＰｒｉｍａｒｙＤＬＬとＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．１）がクライアント１１０にコピーされる。[３]では、サーバ１００でドライバ１５０がアップデートされ、ＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になり、ＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．２）が入る。[４]では、サーバ１００との通信により、クライアント１１０のＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になり、ＳｅｃｏｎｄａｒｙＤＬＬ（ｖｅｒ．２）がクライアント１１０にコピーされる。
【００４９】
なお、上記の方法では、サーバ１００・クライアント１１０間でファイルをコピーするだけで実現できるメリットがある。一方、この方法は、サーバ１００・クライアント１１０間でコピーするファイルが多くなるデメリットがある。
【００５０】
図１１は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（２）を示す説明図である。図１１では、パッケージにＰｒｉｍａｒｙＤＬＬのみが含まれており、インストール後またはアップデート後にＰｒｉｍａｒｙＤＬＬがコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬが生成される場合について示している。これは図１０の場合におけるデメリットを解消したものとなっている。
【００５１】
図１１に示すように、[１]では、サーバ１００にドライバ１５０がインストールされ、ＰｒｉｍａｒｙＤＬＬが入る。[２]では、サーバ１００のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。[３]では、Ｐｏｉｎｔ＆Ｐｒｉｎｔによって、サーバ１００のＰｒｉｍａｒｙＤＬＬがクライアント１１０にコピーされる。[４]では、クライアント１１０のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。[５]では、サーバ１００でドライバがアップデートされ、ＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。[６]では、サーバ１００のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。[７]では、サーバ１００との通信により、クライアント１１０のＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。[８]では、クライアント１１０のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。
【００５２】
なお、上記の方法では、サーバ１００・クライアント１１０間でコピーされるのはＰｒｉｍａｒｙＤＬＬのみというメリットがある。一方、サーバ１００が使用しないファイルを保持することになるというデメリットがある。
【００５３】
図１２は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（３）を示す説明図である。図１２では、パッケージにＰｒｉｍａｒｙＤＬＬのみが含まれている。Ｐｏｉｎｔ＆Ｐｒｉｎｔによるインストール後またはサーバとの通信によるアップデート後にＰｒｉｍａｒｙＤＬＬがコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬが生成される場合について示している。これは図１１の場合におけるデメリットを解消したものとなっている。
【００５４】
図１２に示すように、[１]では、サーバ１００にドライバ１５０がインストールされ、ＰｒｉｍａｒｙＤＬＬが入る。[２]では、Ｐｏｉｎｔ＆Ｐｒｉｎｔによって、サーバ１００のＰｒｉｍａｒｙＤＬＬがクライアント１１０にコピーされる。[３]では、クライアント１１０のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。[４]では、サーバ１００でドライバ１５０がアップデートされ、ＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。[５]では、サーバ１００との通信により、クライアント１１０のＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。[６]では、クライアント１１０のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。
【００５５】
なお、上記の方法では、サーバ１００が使用しないファイルを保持しなくて済むというメリットがある。一方、クライアント１１０が使用しないファイルを保持することになるというデメリットがある。
【００５６】
図１３は、Ｐｏｉｎｔ＆Ｐｒｉｎｔ時のＤＬＬのコピー処理の流れの例（４）を示す説明図である。図１３では、パッケージにＰｒｉｍａｒｙＤＬＬのみが含まれており、サーバ側でアップデート後、クライアント側がアップデートされる前にＰｒｉｍａｒｙＤＬＬがコピー＆リネームされてＳｅｃｏｎｄａｒｙＤＬＬが生成される場合について示している。これは図１２の場合におけるデメリットを解消したものとなっている。
【００５７】
図１３に示すように、[１]では、サーバ１００にドライバ１５０がインストールされ、ＰｒｉｍａｒｙＤＬＬが入る。[２]では、Ｐｏｉｎｔ＆Ｐｒｉｎｔによって、サーバ１００のＰｒｉｍａｒｙＤＬＬがクライアント１１０にコピーされる。[３]では、サーバ１００でドライバ１５０がアップデートされ、ＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。[４]では、サーバ１００のＰｒｉｍａｒｙＤＬＬがアップデートされたことを検知し、クライアント１１０のＰｒｉｍａｒｙＤＬＬがコピー＆リネームされる。[５]では、サーバ１００との通信により、クライアント１１０のＰｒｉｍａｒｙＤＬＬがｖｅｒ．２になる。
【００５８】
なお、上記の方法では、クライアント１１０が使用しないファイルを保持しなくて済むというメリットがある。
【００５９】
以上、説明してきたように本実施の形態では、最初に読み込まれるＤＬＬ（ＰｒｉｍａｒｙＤＬＬ）と実際の処理を行うＤＬＬ（ＳｅｃｏｎｄａｒｙＤＬＬ）を分け、使用するＳｅｃｏｎｄａｒｙＤＬＬの情報をもとにＰｒｉｍａｒｙＤＬＬが読み分けを行う。これにより、プリンタアイコンごとに適切なバージョンのＤＬＬを使用できるので、ドライバ１５０単体でバージョンの不整合を防ぐことができる。さらに、この作用効果について具体例１，２をあげて説明する。
【００６０】
（例１）
図１４、図１５に示す構成において、図１６に示すように下記[１]〜[３]の手順を踏む。
[１]  ＯＳが、Ｐｒｉｍａｒｙ  ｄｌｌをロードする。
[２]  Ｐｒｉｍａｒｙ  ｄｌｌが、使用するＳｅｃｏｎｄａｒｙ．ｄｌｌに関する情報を取得する。
[３]  Ｐｒｉｍａｒｙ  ｄｌｌが、使用するＳｅｃｏｎｄａｒｙ．ｄｌｌをロードする。
【００６１】
（例２）
図１７、図１８に示す構成において、図１９に示すように下記[１]〜[３]の手順を踏む。
[１]  ＯＳが、Ｐｒｉｍａｒｙ  ｄｌｌをロードする。
[２]  Ｐｒｉｍａｒｙ  ｄｌｌが、使用するＳｅｃｏｎｄａｒｙ．ｄｌｌに関する情報を取得する。
[３]  [２]で取得した情報がＰｒｉｍａｒｙ  ｄｌｌを指していればＰｒｉｍａｒｙ  ｄｌｌが処理を行う。そうでなければ、該当するＳｅｃｏｎｄａｒｙ．ｄｌｌをロードする。
【００６２】
ところで、本実施の形態で実行されるプログラムは、ＲＯＭ１０３に予め組み込まれて提供するものとしているが、これに限定されるものではない。本実施の形態で実行されるプログラムを、コンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供してもよい。たとえば、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）等のコンピュータで読み取り可能な記録媒体に記録して提供してもよい。
【００６３】
また、本実施の形態で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００６４】
本実施の形態で実行されるＲＯＭ１０３のプログラムは、上述したドライバ１５０の機能を含むモジュール構成となっている。実際のハードウェアとしてはＣＰＵ１０１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより上記各部がＲＡＭ１０２等の主記憶装置上にロードされる。そして、上記プログラムが主記憶装置上に生成されるようになっている。
【００６５】
以上、本発明者によってなされた発明を好適な実施の形態に基づき具体的に説明したが、本発明は上記実施の形態で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【００６６】
１００ａ，ｂ  サーバ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１１０ａ，ｂ  クライアント
１２０ａ，ｂ  プリンタ
１５０  ドライバ
１５１  使用ＤＬＬ情報記憶領域
１５２  ＯＳ
１５３  アプリケーション
１６０  使用ＤＬＬ情報
１７０ａ  ＰｒｉｍａｒｙＤＬＬ（ＵＩ）
１７０ｂ  ＰｒｉｍａｒｙＤＬＬ（ＧＲ）
１８０ａ  ＳｅｃｏｎｄａｒｙＤＬ（ＵＩ）＿１
１８０ｂ  ＳｅｃｏｎｄａｒｙＤＬ（ＵＩ）＿２
１８０ｃ  ＳｅｃｏｎｄａｒｙＤＬ（ＧＲ）＿１
１８０ｄ  ＳｅｃｏｎｄａｒｙＤＬ（ＧＲ）＿２
１９０  使用ＤＬＬ決定部
１９５，１９６  実処理部
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特開２０１０−２５０３６９号公報
【図１】
2016045513.tif 000003
【図２】
2016045513.tif 000004
【図３】
2016045513.tif 000005
【図４】
2016045513.tif 000006
【図５】
2016045513.tif 000007
【図６】
2016045513.tif 000008
【図７】
2016045513.tif 000009
【図８】
2016045513.tif 000010
【図９】
2016045513.tif 000011
【図１０】
2016045513.tif 000012
【図１１】
2016045513.tif 000013
【図１２】
2016045513.tif 000014
【図１３】
2016045513.tif 000015
【図１４】
2016045513.tif 000016
【図１５】
2016045513.tif 000017
【図１６】
2016045513.tif 000018
【図１７】
2016045513.tif 000019
【図１８】
2016045513.tif 000020
【図１９】
2016045513.tif 000021
【図２０】
2016045513.tif 000022
【図２１】
2016045513.tif 000023
【図２２】
2016045513.tif 000024