(57)【要約】  上記課題は、特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、特定のプリンタに関連づけられた負荷分散装置を特定し、特定した負荷分散装置に印刷ジョブの割り当てを実行させ、負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって印刷ジョブを処理して、特定のプリンタに対応する印刷データへの変換を実行させ、変換により得られた印刷データを特定のプリンタに送信させ、複数のマシン群における変換の負荷が不均衡であることを検出すると、複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、処理をコンピュータが行うことを特徴とする印刷制御方法により達成される。
2019171541.tif 000002
【特許請求の範囲】
【請求項１】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定し、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させ、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させ、
変換により得られた前記印刷データを前記特定のプリンタに送信させ、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、
処理をコンピュータが行うことを特徴とする印刷制御方法。
【請求項２】
印刷ドライバマスタに、各マシン群に同一の印刷ドライバセットを複製させ、
前記同一の印刷ドライバセットを有する前記マシン群を同一グループとして前記負荷分散装置に管理させ、
前記印刷ドライバセットに含む印刷ドライバの配置をグループ単位で特定する、
処理を前記コンピュータが行うことを特徴とする請求項１記載の印刷制御方法。
【請求項３】
前記複数のマシン群のそれぞれに含まれる印刷ドライバセットを利用した印刷処理の履歴に基づき、該印刷ドライバセットに含まれる各印刷ドライバの負荷を算出し、
算出した各印刷ドライバの負荷に基づいて、前記複数のマシン群のそれぞれに配置する前記印刷ドライバセットを決定する、
処理を前記コンピュータが行うことを特徴とする請求項２記載の印刷制御方法。
【請求項４】
グループ毎の前記マシン群に含まれる印刷ドライバセットが対応可能なプリンタの個数に基づき、複数のグループのそれぞれで対応可能なプリンタの個数が均等になるように、該グループ毎の前記印刷ドライバセットを決定する、
処理を前記コンピュータが行うことを特徴とする請求項２記載の印刷制御方法。
【請求項５】
前記グループのそれぞれにおける処理が停止しないように、前記印刷ドライバセットが決定されることを特徴とする請求項４記載の印刷制御方法。
【請求項６】
前記印刷ドライバマスタに、新たな印刷ドライバをインストールさせ、該印刷ドライバマスタから同一グループに属するマシン群のそれぞれに該新たな印刷ドライバを複製させる、
処理を前記コンピュータが行うことを特徴とする請求項２乃至５のいずれか一項記載の印刷制御方法。
【請求項７】
前記印刷ドライバマスタに、インストール済みの印刷ドライバをアップデートさせ、該印刷ドライバマスタから同一グループに属するマシン群のそれぞれにアップデートした該印刷ドライバを複製させる、
処理を前記コンピュータが行うことを特徴とする請求項２乃至６のいずれか一項記載の印刷制御方法。
【請求項８】
前記印刷ドライバマスタに、新たなマシンに前記印刷ドライバセットを複製させる、
処理を前記コンピュータが行うことを特徴とする請求項２乃至６のいずれか一項記載の印刷制御方法。
【請求項９】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定し、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させ、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させ、
変換により得られた前記印刷データを前記特定のプリンタに送信させ、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、
処理をコンピュータに実行させることを特徴とする印刷制御プログラム。
【請求項１０】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定する特定部と、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させる実行部と、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させる変換部と、
変換により得られた前記印刷データを前記特定のプリンタに送信させる送信部と、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する再編成部と、
処理をコンピュータに実行させることを特徴とする印刷制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御方法、印刷制御プログラム、及び印刷制御装置に関する。
【背景技術】
【０００２】
近年、シンクライアント端末を利用したシステムが増加している。このようなシステムでは、シンクライアント端末は、仮想プリンタドライバで印刷するデータから中間データに作成し、プリントサーバに印刷ジョブとして送信する。プリントサーバは、シンクライアント端末から出力先のプリンタの情報を取得すると、印刷ジョブを出力先のプリンタが解釈可能な印刷データに変換し、変換後の印刷データを出力先のプリンタに送信する。このような仕組みにより、シンクライアント端末の印刷に係る機能を最小限にできる。【０００３】
印刷要求をスプールサーバに送信し、出力機器が対応するプリンタドライバを用いて印刷用データへ変換して出力機器に印刷させる技術、ポイント＆プリントでインストールされた基本プリンタドライバを使用する度に、機器固有プリンタドライバに更新する技術等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２０８８８６号公報
【特許文献２】特開２０１３−１０１５９５号公報
【特許文献３】特開２０１３−２３８９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したようなシステムでは、シンクライアント端末から自由にプリンタドライバをインストールすることができず、又は、利用するたびにインストールする必要があり、ユーザが所望するプリンタに印刷できない。【０００６】
印刷ジョブを出力先のプリンタが解釈可能な印刷データに変換して印刷させる印刷ライタでは、印刷ジョブから印刷データへの変換処理に負荷が掛かる。複数の印刷ライタを備えて負荷分散させることが考えられるが、任意のユーザによる任意のプリンタドライバの追加／更新は負荷分散の観点において容易ではない。【０００７】
したがって、１つの側面では、印刷ライタの負荷を効率良く分散することを目的とする。
【課題を解決するための手段】
【０００８】
一態様によれば、特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定し、特定した前記負荷分散装置に印刷ジョブの割り当てを実行させ、前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させ、変換により得られた前記印刷データを前記特定のプリンタに送信させ、前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、処理をコンピュータが行うことを特徴とする印刷制御方法が提供される。
【発明の効果】
【０００９】
印刷ライタの負荷を効率良く分散することができる。
【図面の簡単な説明】
【００１０】
【図１】実施例におけるシステムの構成例を示す図である。
【図２】印刷ジョブの登録から印刷処理までの手順を説明するための図である。
【図３】印刷ジョブの登録から印刷処理までの処理シーケンスを示す図である。
【図４】受付処理部による受付処理を説明するためのフローチャート図である。
【図５】プリンタ情報テーブルのデータ構成例を示す図である。
【図６】ドライバ・グループ対応テーブルのデータ構成例を示す図である。
【図７】プリンタドライバを追加する手順を説明するための図である。
【図８】プリンタドライバをアップデートする手順を説明するための図である。
【図９】印刷ライタを追加する手順を説明するための図である。
【図１０】負荷平衡化処理を説明するための処理シーケンスを示す図である。
【図１１】負荷平衡化処理における受付処理部による処理を説明するための図である。
【図１２】第１の作成方法で利用する要求ログテーブルのデータ構成例を示す図である。
【図１３】第１の作成方法におけるドライバ特定テーブルの取得方法について説明するための図である。
【図１４】第１の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【図１５】第１の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【図１６】第１の負荷平衡化処理による結果例を示す図である。
【図１７】第２の作成方法で利用する要求ログテーブルのデータ構成例を示す図である。
【図１８】第２の作成方法におけるドライバ特定テーブルの取得方法について説明するための図である。
【図１９】第２の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【図２０】第２の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【図２１】第２の負荷平衡化処理による結果例を示す図である。
【図２２】第２の作成方法で利用するプリンタ数テーブルの作成を説明するための図である。
【図２３】第３の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【図２４】第３の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【図２５】第３の負荷平衡化処理による結果例を示す図である。
【図２６】クライアント端末のハードウェア構成を示す図である。
【図２７】プリンタのハードウェア構成を示す図である。
【図２８】サーバ装置のハードウェア構成を示す図である。
【図２９】負荷分散装置のハードウェア構成を示す図である。
【図３０】印刷ライタのハードウェア構成を示す図である。
【図３１】印刷ドライバマスタのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。先ず、シンクライアント端末（以下、単に、「クライアント端末」という）を利用したシステムについて説明する。システムには、印刷ジョブを出力先のプリンタが解釈可能な印刷データに変換し、変換後の印刷データを出力先のプリンタに送信するプリントサーバの機能の一部に相当する印刷ライタが含まれている。印刷ライタには、出力先となり得る全てのプリンタのプリンタドライバがインストールされることで、いずれのプリンタを出力先として指定した場合にも印刷可能になる。
【００１２】
一方、複数のプリンタで印刷可能とする場合に、複数の印刷ライタを備えて、印刷処理を分散させることが考えられる。即ち、負荷分散装置を設けて、複数の印刷ライタそれぞれに印刷処理に係る負荷を分散させる。この場合には、プリンタ、印刷ライタ等の増減によるシステム構成の変更に応じて、以下のような操作が行われる。
（１）出力先になり得るプリンタの機種を追加する度にプリンタドライバをすべての印刷ライタに追加する。
（２）あるプリンタの機種のプリンタドライバのアップデートが発生する度に、すべての印刷ライタのプリンタドライバを更新する。
（３）印刷ライタを追加する度に追加した印刷ライタに出力先となりうるすべてのプリンタのプリンタドライバをインストールする。
【００１３】
このように、プリンタドライバの追加／更新、印刷ライタの追加等を行う操作には、大きな労力がかかる。
【００１４】
上記（１）及び（２）の労力を削減する方法として、印刷ライタのマスタを導入し、そのマスタから（印刷ジョブを印刷データに変換する）印刷ライタを複製する方法が考えられる。以下、印刷ライタのマスタを「印刷ドライバマスタ」といい、印刷ドライバマスタから１以上のプリンタドライバが複製された装置を印刷ライタという。
【００１５】
この場合、上記（１）及び（２）では、印刷ドライバマスタに対してのみプリンタドライバの追加／削除をすればよい。しかしながら、この方法を用いても、ＯＳ（Operating System）によっては以下の問題が生じる。
（４）印刷ライタに多数のプリンタドライバ（「プリンタオブジェクト」ともいう）をインストールすると、印刷ジョブから印刷データへの変換に要する時間が大きく増加する。
【００１６】
印刷ライタは、出力先となり得るすべてのプリンタドライバ（プリンタオブジェクト）を管理するため、出力先となり得るプリンタの数が多い場合、上記（４）の問題が生じる。
【００１７】
そこで、本実施例では、出力先となり得るプリンタをいくつかのグループに分け、各グループに負荷分散装置と印刷ドライバマスタを割り当てることで、プリンタドライバの追加／更新と印刷ライタの追加の労力を低下させ、印刷ジョブから印刷データへの変換に要する時間の増加を抑えることを可能とする。
【００１８】
更に、利用頻度の高いプリンタを１つのグループにまとめた場合、各グループの負荷は平衡とならず、印刷ライタの数に対する性能が小さくなる恐れがある。このようにグループ分け後、各グループの負荷を平衡にする必要がある場合も考えられる。そこで、本実施例では、プリンタの利用統計情報をもとに各グループの負荷が平衡となるようにグループ分けする仕組みも提案する。
【００１９】
出力先となり得るプリンタをいくつかのグループに分類し、各グループに負荷分散装置と印刷ドライバマスタとを割り当てる。各グループに割り当てられた印刷ドライバマスタには、そのグループに属する出力先となり得るプリンタのプリンタドライバがインストールされている。印刷ドライバマスタから１以上のドライバが複製されることで、印刷処理の際に用いられる印刷ライタが生成される。印刷ライタの複製は、自動で実行可能である。
【００２０】
図１は、実施例におけるシステムの構成例を示す図である。図１に示すシステム１０００は、１以上のクライアント端末５と、複数のプリンタ６と、サーバ装置１００と、１以上の負荷分散装置２００と、複数の印刷ライタ３００と、１以上の印刷ドライバマスタ４００とを有し、ネットワーク２等により互いに接続可能である。ネットワーク２は無線又は有線に限定されない。
【００２１】
クライアント端末５は、シンクライアント端末、パーソナルコンピュータ（ＰＣ）、又は、タブレットやスマートフォン等のモバイル端末等である。複数のプリンタ６は、ネットワーク２を介して受信した印刷データ７ｃを紙等の媒体に画像形成する同一又は異なる機種のプリンタである。
【００２２】
クライアント端末５は、印刷ジョブ７ａをネットワーク２を介してサーバ装置１００に登録する。サーバ装置１００は、ネットワーク２を介してクライアント端末５からの印刷ジョブ７ａを受け付ける。プリンタ６からの印刷データ７ｃの引き取り要求を受け付けると、サーバ装置１００は、印刷する際の処理負荷を制御する負荷分散装置２００を特定する装置である。サーバ装置１００は、受付処理部４１を有し、受付処理部４１によって負荷分散装置２００が特定される。
【００２３】
負荷分散装置２００は、複数の印刷ライタ３００の処理負荷を管理し、印刷ライタ３００それぞれの処理負荷が平衡となるように、印刷ライタ３００への印刷ジョブの割当を制御する。また、負荷分散装置２００は、ネットワーク２を介してサーバ装置１００から受信した印刷ジョブ７ａを割当先として決定した印刷ライタ３００へネットワーク２を介して送信する。
【００２４】
各印刷ライタ３００は、同一又は異なるプリンタドライバを有し、負荷分散装置２００から受信した印刷ジョブ７ａを、印刷出力するプリンタ６で印刷可能な形式の印刷データ７ｃに変換し、プリンタ６に送信する。印刷データ７ｃを受信したプリンタ６は、印刷処理を実行し、印刷物を出力する。
【００２５】
システム１０００では、印刷ライタ３００をグループに分類し、グループ毎に負荷分散装置２００が備えられる。１つのグループにおいて、印刷ドライバマスタ４００が、グループから利用可能な全てのプリンタ６のプリンタドライバを有し、負荷状況に基づいて選択した印刷ライタ３００に新たなプリンタドライバを複製することで追加する。この場合、既存の印刷ライタ３００に新たなプリンタドライバが追加される。
【００２６】
また、印刷ライタ３００として新たな情報処理装置をネットワーク２に追加する場合等では、印刷ドライバマスタ４００が保持する１又は複数のプリンタドライバを複製した印刷ライタ３００を追加してもよい。印刷ドライバマスタ４００は、印刷ライタ３００の１つとして機能してもよい。以下の説明では、印刷ライタ３００とは個別に印刷ドライバマスタ４００が設けられるものとする。また、ネットワーク２は省略して説明されるが、システム構成は、図１に示す構成に基づくものとする。
【００２７】
図２は、印刷ジョブの登録から印刷処理までの手順を説明するための図である。図２では、２つのグループを有する例で説明するが、グループが１つ又は３つ以上であっても同様の手順である。
【００２８】
クライアント端末５は、ユーザの操作に応じてサーバ装置１００の受付処理部４１に印刷ジョブ７ａを送信する（ステップＳ１１１）。クライアント端末５のユーザは、印刷するプリンタ６において、印刷ジョブ７ａの引き取り要求を行う（ステップＳ１１２）。プリンタ６から受付処理部４１へ印刷ジョブ７ａの引き取りが要求される。
【００２９】
受付処理部４１は、プリンタ６に対応するプリンタドライバの処理負荷を管理する負荷分散装置２００を特定し（ステップＳ１１３）、特定した負荷分散装置２００に、印刷ジョブ７ａを送信する（ステップＳ１１４）。負荷分散装置２００の特定方法は、後述される。
【００３０】
印刷ジョブ７ａを受信すると、負荷分散装置２００は、印刷ライタ３００の処理負荷の状況、有するプリンタドライバの情報等に基づいて、印刷ライタ３００を選択し、選択した印刷ライタ３００に印刷ジョブ７ａを送信する（ステップＳ１１５）。
【００３１】
印刷ライタ３００は、印刷ジョブ７ａを印刷データ７ｃに変換し、印刷ジョブ７ａの引き取りを要求したプリンタ６に、変換により得られた印刷データ７ｃを送信する（ステップＳ１１６）。プリンタ６は、印刷データ７ｃを受信すると、印刷処理を実行し、印刷物を出力する。
【００３２】
図３は、印刷ジョブの登録から印刷処理までの処理シーケンスを示す図である。図３において、クライアント端末５が印刷ジョブ７ａをサーバ装置１００に送信すると（ステップＳ１３１）、受付処理部４１によって印刷ジョブ７ａが登録される（ステップＳ１３２）。
【００３３】
プリンタ６から印刷ジョブ７ａの引き取り要求を受信すると（ステップＳ１３３）、受付処理部４１は、印刷ジョブ７ａの引き取りを要求したプリンタ６が属するグループから負荷分散装置２００を特定する（ステップＳ１３４）。
【００３４】
受付処理部４１は、特定した負荷分散装置２００へ、印刷ジョブ７ａを送信する（ステップＳ１３５）。印刷ジョブ７ａの受信に応じて、負荷分散装置２００は、負荷の小さい印刷ライタ３００を選択し（ステップＳ１３６）、選択した印刷ライタ３００に印刷ジョブ７ａを送信する（ステップＳ１３７）。
【００３５】
印刷ライタ３００は、受信した印刷ジョブ７ａを印刷データ７ｃに変換して（ステップＳ１３８）、プリンタ６へ印刷データ７ｃを送信する（ステップＳ１３９）。プリンタ６は、受信した印刷データ７ｃを用いて印刷処理を実行する（ステップＳ１４０）。
【００３６】
図４は、受付処理部による受付処理を説明するためのフローチャート図である。図４において、サーバ装置１００の受付処理部４１は、プリンタ６から印刷データの引き取り要求を受信する（ステップＳ１５１）。
【００３７】
先ず、受付処理部４１は、プリンタ情報テーブル１７１を参照して、引き取り要求で指定されるプリンタに対応するプリンタドライバを特定する（ステップＳ１５２）。次に、受付処理部４１は、ドライバ・グループ対応テーブル１７２を参照して、特定したプリンタドライバに対応する負荷分散装置２００を特定する（ステップＳ１５３）。
【００３８】
そして、受付処理部４１は、特定した負荷分散装置２００に印刷ジョブ７ａを送信する（ステップＳ１５４）。
【００３９】
図５及び図６にて、上述した種々の処理で参照される、プリンタ情報テーブル１７１及びドライバ・グループ対応テーブル１７２のデータ構成例を説明する。図５は、プリンタ情報テーブルのデータ構成例を示す図である。図５において、プリンタ情報テーブル１７１は、システム１０００で利用可能なプリンタ６の情報を管理するテーブルであり、プリンタ名、ＩＰアドレス、ドライバ名等の項目を有する。
【００４０】
プリンタ名は、プリンタ６を特定するための識別子を示す。ＩＰアドレスは、ネットワーク２において通信するためのプリンタ６に固有の番号を示す。ドライバ名は、印刷ジョブ７ａをプリンタ６が解釈可能な形式の印刷データ７ｃへ変換するためのプリンタドライバを特定するための識別子を示す。
【００４１】
図５の例では、プリンタ名「Prt_1」に対して、ＩＰアドレス「10.11.12.13」、ドライバ名「Drv_A」等が対応付けられ、プリンタ名「Prt_2」に対して、ＩＰアドレス「10.11.12.14」、ドライバ名「Drv_B」等が対応付けられている。プリンタ６毎に、プリンタ名、ＩＰアドレス、ドライバ名等が示される。プリンタ情報テーブル１７１を参照すると、プリンタ名「Prt_1」、「Prt_3」、「Prt_5」、及び「Prt_7」のプリンタ６が、同じプリンタドライバ「Drv_A」で利用可能である。プリンタ名「Prt_2」、「Prt_4」、「Prt_6」、及び「Prt_8」のプリンタ６は、それぞれ異なるプリンタドライバ「Drv_B」、「Drv_C」、「Drv_D」、及び「Drv_E」により利用可能となる。
【００４２】
図６は、ドライバ・グループ対応テーブルのデータ構成例を示す図である。図６において、ドライバ・グループ対応テーブル１７２は、システム１０００で利用可能なプリンタ６の情報を管理するテーブルであり、ドライバ名、グループ名、負荷分散装置ＩＤ等の項目を有する。
【００４３】
ドライバ名は、プリンタ情報テーブル１７１に記録されているドライバ名のいずれかを示す。グループ名は、負荷平衡化処理により分類されたグループを特定する識別子を示す。負荷分散装置ＩＤは、グループ内の印刷ライタ３００への印刷ジョブ７ａの割り当てを決定し、負荷分散の制御を行う負荷分散装置２００を特定する識別子を示す。負荷分散装置２００に係る情報は、ドライバ・グループ対応テーブル１７２とは異なるテーブルで管理されてもよい。この場合、グループ名によってドライバ・グループ対応テーブル１７２と関連付けられる。説明を簡潔にするため、ドライバ・グループ対応テーブル１７２に負荷分散装置ＩＤを含むものとする。
【００４４】
図６の例では、ネットワーク２を介して利用可能なプリンタ６のプリンタドライバを２つのグループに分類した例を示している。ドライバ名「Drv_A」、「Drv_C」、及び「Drv_E」のプリンタドライバがグループ名「Grp_1」のグループに配置され、ドライバ名「Drv_B」及び「Drv_D」のプリンタドライバがグループ名「Grp_2」のグループに配置される。
【００４５】
次に、
・プリンタドライバの追加
・プリンタドライバのアップデート
・印刷ライタ３００の追加
について説明する。
【００４６】
図７は、プリンタドライバを追加する手順を説明するための図である。図７において、システム１０００の受付処理部４１は、プリンタ６のグループの１つを選択し、選択したグループに属する印刷ドライバマスタ４００に追加するプリンタ６のプリンタドライバのインストールを指示する（ステップＳ２１１）。
【００４７】
印刷ドライバマスタ４００は、プリンタドライバをインストールすると、自身からプリンタドライバを複製した印刷ライタ３００にインストールしたプリンタドライバを複製する（ステップＳ２１２）。印刷ライタ３００に、ステップＳ２１２のインストールによって新たなプリンタドライバが追加される。後述される負荷平衡化処理により、印刷ライタ３００のそれぞれの負荷が調整される。
【００４８】
印刷ドライバマスタ４００は、既にインストールされたているプリンタドライバの情報を保持し、新たにインストールされたプリンタドライバの情報を追加して、追加完了を受付処理部４１に通知する。
【００４９】
受付処理部４１は、印刷ドライバマスタ４００からのプリンタドライバの追加完了の通知に応じて、追加したプリンタドライバと、ステップＳ２１１で選択したグループの負荷分散装置との対応付けを追加する（ステップＳ２１３）。プリンタ情報テーブル１７１にプリンタドライバの情報（１レコードに相当）が追加され、ドライバ・グループ対応テーブル１７２に、プリンタドライバ名と、グループＩＤと、グループＩＤに対応付けられる負荷分散装置２００を特定する負荷分散装置ＩＤとが対応付けられて追加される。
【００５０】
図８は、プリンタドライバをアップデートする手順を説明するための図である。図８において、システム１０００の印刷ドライバマスタ４００で、インストール済みのプリンタドライバのアップデートを実施する（ステップＳ２３１）。
【００５１】
印刷ドライバマスタ４００は、自身からプリンタドライバを複製した印刷ライタに再度複製する（ステップＳ２３２）。
【００５２】
図９は、印刷ライタを追加する手順を説明するための図である。図９において、システム１０００の受付処理部４１は、プリンタ６のグループの１つを選択し、選択したグループに属する印刷ドライバマスタ４００に印刷ライタ３００の追加を指示する（ステップＳ２５１）。
【００５３】
印刷ドライバマスタ４００は、自身が保持するプリンタドライバを、新たな印刷ライタ３００に複製する（ステップＳ２５２）。
【００５４】
次に、図１０及び図１１で、システム１０００における複数の印刷ライタ３００の負荷を平衡化する負荷平衡化処理について説明する。図１０は、負荷平衡化処理を説明するための処理シーケンスを示す図である。図１０では、印刷ドライバマスタ４１０と印刷ライタ３１０ａ及び３１０ｂとがグループＧ１に属し、印刷ドライバマスタ４２０と印刷ライタ３２０ａ及び３２０ｂとがグループＧ２に属する状態から、負荷平衡化処理により、グルーピングが更新される。
【００５５】
図１０において、受付処理部４１は、利用統計情報テーブル１８０から利用統計情報を取得し（ステップＳ３１１）、負荷が平衡するグルーピングを計算する（ステップＳ３１２）。複数のグループにおける、負荷の最大値と最小値との差分が予め定めた値以下である場合、負荷が平衡である又は均等であるという。
【００５６】
受付処理部４１は、計算したグルーピングと現在のグルーピングとを比較して、現在のグルーピングにおいて、グループＧ１からグループＧ２に移動するプリンタドライバの識別子を、グループＧ１の印刷ドライバマスタ４１０に送信する（ステップＳ３１３）。プリンタドライバの識別子の送信では、移動先のグループ名も送信してもよい。
【００５７】
印刷ドライバマスタ４１０は、保持しているプリンタドライバのうち、受信した識別子で特定されるプリンタドライバをグループＧ２の印刷ドライバマスタ４２０に送信する（ステップＳ３１４）。
【００５８】
グループＧ２の印刷ドライバマスタ４２０は、グループＧ１から受信したプリンタドライバを保持するプリンタドライバとして追加する（ステップＳ３１５）。そして、印刷ドライバマスタ４２０は、印刷ライタ３２０ａと印刷ライタ３２０ｂとに受信したプリンタドライバを複製し（ステップＳ３１６及びＳ３１７）、グループＧ１の印刷ドライバマスタ４１０に複製完了を通知する（ステップＳ３１８）。印刷ドライバマスタ４１０は、グループＧ２の印刷ドライバマスタ４２０から複製完了が通知されると、受付処理部４１へ複製完了を通知する（ステップＳ３１９）。
【００５９】
複製完了の通知に応じて、受付処理部４１は、プリンタドライバとグループの対応関係を更新して（ステップＳ３２０）、グループＧ１からグループＧ２に移動したプリンタドライバの削除を、グループＧ１の印刷ドライバマスタ４１０に依頼する（ステップＳ３２１）。削除するプリンタドライバの識別子が印刷ドライバマスタ４１０に送信される。
【００６０】
印刷ドライバマスタ４１０は、保持しているプリンタドライバから受信した識別子で特定されるプリンタドライバを削除し（ステップＳ３２２）、印刷ライタ３１０ａと印刷ライタ３１０ｂとからも当該プリンタドライバを削除する（ステップＳ３２３及びＳ３２４）。そして、印刷ドライバマスタ４１０は、受付処理部４１に削除完了を通知する（ステップＳ３２５）。
【００６１】
次に、上述した受付処理部４１による処理について詳述する。図１１は、負荷平衡化処理における受付処理部による処理を説明するための図である。図１１において、受付処理部４１は、現在のグルーピングをグルーピングＡとし（ステップＳ３３０）、利用統計情報テーブル１８０から利用統計情報を取得する（ステップＳ３３１）。利用統計情報テーブル１８０の生成方法については、後述される。
【００６２】
受付処理部４１は、取得した利用統計情報に基づいて、複数のグループ間の負荷が平衡か否かを判断する（ステップＳ３３２）。負荷が平衡である場合（ステップＳ３３２のＹＥＳ）、受付処理部４１は、この処理を終了する。
【００６３】
一方、負荷が平衡でない場合（ステップＳ３３２のＮＯ）、受付処理部４１は、負荷を均等にするグルーピングＥを計算する（ステップＳ３３３）。グルーピングＥは、メタヒューリスティックなどの近似解法を用いて求めることができる。
【００６４】
受付処理部４１は、グルーピングＡから二つのグループＧ１及びＧ２を選択し、同様にグルーピングＥから二つのグループＧ１及びＧ２を選択する（ステップＳ３３４）。グルーピングＡからは、ランダムにグループＧ１及びＧ２を選択してもよいが、利用統計情報から得られる負荷が最も大きいグループをグループＧ１に設定することが望ましい。グルーピングＡからは、ランダムにグループＧ１及びＧ２を選択すればよい。
【００６５】
そして、受付処理部４１は、グループＧ１からグループＧ２に複製させるプリンタドライバの識別子をグループＧ１の印刷ドライバマスタ４１０に送信し（ステップＳ３３５）、グループＧ１の印刷ドライバマスタ４１０からの複製完了の通知を待つ（ステップＳ３３６）。受付処理部４１は、複製完了の通知に応じて、ドライバ・グループ対応テーブル１７２のプリンタドライバとグループの対応関係を更新する（ステップＳ３３７）。
【００６６】
そして、受付処理部４１は、グループＧ１の印刷ドライバマスタ４１０にグループＧ２に複製したプリンタドライバの削除を依頼する（ステップＳ３３８）。グループＧ１の印刷ドライバマスタ４１０からの削除完了の通知に応じて、受付処理部４１は、ドライバ・グループ対応テーブル１７２を参照して、グルーピングＡを更新し（ステップＳ３３９）、グルーピングＡがステップＳ３３３で計算したグルーピングＥに等しいか否かを判断する（ステップＳ３４０）。
【００６７】
グルーピングＡがグルーピングＥに等しくない場合（ステップＳ３４０のＮＯ）、受付処理部４１は、ステップＳ３３３へ戻り、上述した同様の処理を繰り返す。一方、グルーピングＡがグルーピングＥに等しい場合（ステップＳ３４０のＹＥＳ）、受付処理部４１は、ドライバ・グループ対応テーブル１７２を更新して、この処理を終了する。
【００６８】
以下に、本実施例に係る負荷平衡化処理の一例を、種々のテーブルのデータ遷移で説明する。負荷平衡化処理を行うために、受付処理部４１は、
・各プリンタ６で印刷された印刷ジョブ７ａの数
・各プリンタ６で印刷された枚数
・各プリンタドライバに対応するプリンタ６の数
のいずれかの利用統計情報を作成する。先ず、各プリンタ６で印刷された印刷ジョブ７ａの数を示す利用統計情報を作成する第１の作成方法と、第１の作成方法で作成された利用統計情報に基づく第１の負荷平衡化処理とを説明する。
【００６９】
受付処理部４１は、プリンタ６からの引き取り要求を受け付けるごとに、図１２に示すような要求ログテーブル５１１に、印刷ジョブ７ａと引き取り要求を行ったプリンタ６とを対応付けた情報を蓄積する。図１２は、第１の作成方法で利用する要求ログテーブルのデータ構成例を示す図である。
【００７０】
図１２において、要求ログテーブル５１１は、引き取り要求ごとに、印刷ジョブ７ａと印刷処理を行うプリンタ６とを記録したテーブルであり、印刷ジョブＩＤ、プリンタ名等の項目を有する。
【００７１】
印刷ジョブＩＤは、印刷ジョブ７ａを特定する識別子を示す。プリンタ名は、印刷ジョブ７ａに従って印刷処理を行うプリンタ６を特定する識別子を示す。この例では、印刷ジョブＩＤ「0001」は、プリンタ名「Prt_1」で特定するプリンタ６から引き取り要求があり、印刷ジョブＩＤ「0002」は、プリンタ名「Prt_2」で特定するプリンタ６から引き取り要求があったことを示している。他の記録についても、印刷ジョブＩＤごとにプリンタ名が示されている。
【００７２】
次に、受付処理部４１は、印刷ジョブ７ａ毎のプリンタドライバを特定する。図１３は、第１の作成方法におけるドライバ特定テーブルの取得方法について説明するための図である。
【００７３】
図１３において、図１２に示す要求ログテーブル５１１と、図５に示すプリンタ情報テーブル１７１とを、プリンタ名を用いて関連付けすることにより、受付処理部４１は、要求ログテーブル５１１の印刷ジョブＩＤに対してドライバ名を対応付けたドライバ特定テーブル５１２を得る。
【００７４】
ドライバ特定テーブル５１２は、印刷ジョブＩＤ、ドライバ名等の項目を有する。印刷ジョブＩＤは、要求ログテーブル５１１に含まれる各印刷ジョブＩＤを示し、ドライバ名は、プリンタ名を用いた関連付けによりプリンタ情報テーブル１７１から得られたドライバ名を示す。
【００７５】
そして、受付処理部４１は、印刷ジョブ７ａを印刷データ７ｃに変換する変換処理を行ったグループを特定する。図１４は、第１の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【００７６】
図１４において、図１３に示すドライバ特定テーブル５１２と、図６に示すドライバ・グループ対応テーブル１７２とを、プリンタ名を用いて関連付けすることにより、受付処理部４１は、ドライバ特定テーブル５１２の印刷ジョブＩＤ毎に、グループ名を対応付けたグループ特定テーブル５１３を得る。
【００７７】
受付処理部４１は、得られたグループ特定テーブル５１３を用いて、図１５に示すようなグループ毎の変換回数を示す利用統計情報テーブル１８０−１を得る。図１５は、第１の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【００７８】
図１５に示す利用統計情報テーブル１８０−１は、グループ特定テーブル５１３から得られる、グループ毎の利用統計情報を示すテーブルである。グループ名、変換回数、ドライバ一覧等の項目を有する。
【００７９】
グループ名は、グループ特定テーブル５１３に含まれる、印刷ジョブ７ａから印刷データ７ｃへの変換処理を行ったグループの識別子を示す。変換回数は、グループで行った印刷ジョブ７ａを印刷データ７ｃに変換した回数を示す。ドライバ一覧は、グループに属するプリンタドライバのドライバ名と変換回数とを示す。ドライバ名で特定されるプリンタドライバによって実行された変換処理の回数が、（  ）内に示されている。
【００８０】
この例では、グループ名「Grp_1」のグループでは、変換処理を８回実行し、グループ名「Grp_2」のグループでは、変換処理を２回実行したことを示している。
【００８１】
このような利用統計情報を用いて、受付処理部４１は、グループの負荷を平衡化する第１の負荷平衡化処理を行う。第１の負荷平衡化処理では、利用統計情報テーブル１８０−１を参照して、負荷が均等になるように、プリンタドライバをグループへ割当てるグルーピングを行う。
【００８２】
図１６は、第１の負荷平衡化処理による結果例を示す図である。図１６において、受付処理部４１は、利用統計情報テーブル１８０−１を用いた第１の負荷平衡化処理を行って、グループで行われる変換処理の回数が均等になるグルーピング５１８を得る。グルーピング５１８は、プリンタドライバ毎に、割り当てたグループを示すテーブルであり、ドライバ名、変換回数、グループ名等の項目を有する。
【００８３】
ドライバ名は、変換処理を行ったプリンタドライバを特定する識別子を示す。変換回数は、変換処理を行った回数を示す。グループ名は、プリンタドライバが第１の負荷平衡化処理によって分類されたグループを特定する識別子を示す。
【００８４】
この例では、ドライバ名「Drv_A」及び「Drv_B」で特定される２つのプリンタドライバは、グループ名「Grp_1」で特定されるグループに分類されたことを示す。また、ドライバ名「Drv_C」、「Drv_D」、及び「Drv_E」で特定される３つのプリンタドライバは、グループ名「Grp_2」で特定されるグループに分類されたことを示す。
【００８５】
そして、負荷平衡化結果５１９は、第１の負荷平衡化処理によるグルーピング５１８から得られる負荷平衡化の状態を示す。グループ名「Grp_1」で特定されるグループの変換回数は「５」、また、グループ名「Grp_2」で特定されるグループの変換回数は「５」となり、負荷を均等に分散した結果を得る。
【００８６】
次に、各プリンタ６で印刷された枚数を示す利用統計情報を作成する第２の作成方法と、第２の作成方法で作成された利用統計情報に基づく第２の負荷平衡化処理とを説明する。受付処理部４１は、プリンタ６からの引き取り要求を受け付けるごとに、図１７に示すような要求ログテーブル６１１に、印刷ジョブ７ａと引き取り要求を行ったプリンタ６と枚数とを対応付けた情報を蓄積する。
【００８７】
図１７は、第２の作成方法で利用する要求ログテーブルのデータ構成例を示す図である。図１７において、要求ログテーブル６１１は、引き取り要求ごとに、印刷ジョブ７ａと、印刷処理を行うプリンタ６と、印刷する枚数とを記録したテーブルであり、印刷ジョブＩＤ、プリンタ名、枚数等の項目を有する。
【００８８】
印刷ジョブＩＤは、印刷ジョブ７ａを特定する識別子を示す。プリンタ名は、印刷ジョブ７ａに従って印刷処理を行うプリンタ６を特定する識別子を示す。枚数は、印刷する枚数を示す。
【００８９】
この例では、印刷ジョブＩＤ「0001」は、プリンタ名「Prt_1」で特定するプリンタ６から引き取り要求があり、印刷する枚数は「１」枚であり、印刷ジョブＩＤ「0002」は、プリンタ名「Prt_2」で特定するプリンタ６から引き取り要求があり、印刷する枚数は「１３」枚であったことを示している。他の記録についても、印刷ジョブＩＤごとにプリンタ名、枚数等が示されている。
【００９０】
次に、受付処理部４１は、印刷ジョブ７ａ毎のプリンタドライバを特定する。図１８は、第２の作成方法におけるドライバ特定テーブルの取得方法について説明するための図である。
【００９１】
図１８において、図１７に示す要求ログテーブル６１１と、図５に示すプリンタ情報テーブル１７１とを、プリンタ名を用いて関連付けすることにより、受付処理部４１は、要求ログテーブル６１１の印刷ジョブＩＤに対してドライバ名を対応付けたドライバ特定テーブル６１２を得る。
【００９２】
ドライバ特定テーブル６１２は、印刷ジョブＩＤ、ドライバ名、枚数等の項目を有する。印刷ジョブＩＤと枚数とは、要求ログテーブル６１１の印刷ジョブＩＤと枚数とを示す。ドライバ名は、プリンタ名を用いた関連付けによりプリンタ情報テーブル１７１から得られたドライバ名を示す。
【００９３】
そして、受付処理部４１は、印刷ジョブ７ａを印刷データ７ｃに変換する変換処理を行ったグループを特定する。図１９は、第２の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【００９４】
図１９において、図１８に示すドライバ特定テーブル６１２と、図６に示すドライバ・グループ対応テーブル１７２とを、プリンタ名を用いて関連付けすることにより、受付処理部４１は、ドライバ特定テーブル６１２の印刷ジョブＩＤ毎に、グループ名と枚数とを対応付けたグループ特定テーブル６１３を得る。
【００９５】
受付処理部４１は、得られたグループ特定テーブル６１３を用いて、図２０に示すようなグループ毎の枚数を示す利用統計情報テーブル１８０−２を得る。図２０は、第２の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【００９６】
図２０に示す利用統計情報テーブル１８０−２は、グループ特定テーブル６１３から得られる、グループ毎の利用統計情報を示すテーブルである。グループ名、枚数、ドライバ一覧等の項目を有する。
【００９７】
グループ名は、グループ特定テーブル６１３に含まれる、印刷ジョブ７ａから印刷データ７ｃへの変換処理を行ったグループの識別子を示す。枚数は、グループで印刷した枚数（印刷枚数）を示す。ドライバ一覧は、グループに属するプリンタドライバのドライバ名と枚数とを示す。ドライバ名で特定されるプリンタドライバによって実行された印刷枚数が、（  ）内に示されている。
【００９８】
この例では、グループ名「Grp_1」のグループでは、１７枚を印刷し、グループ名「Grp_2」のグループでは、２９枚を印刷したことを示している。
【００９９】
このような利用統計情報を用いて、受付処理部４１は、グループの負荷を平衡化する第２の負荷平衡化処理を行う。第２の負荷平衡化処理では、利用統計情報テーブル１８０−２を参照して、負荷が均等になるように、プリンタドライバをグループへ割当てるグルーピングを行う。
【０１００】
図２１は、第２の負荷平衡化処理による結果例を示す図である。図２１において、受付処理部４１は、利用統計情報テーブル１８０−２を用いた第２の負荷平衡化処理を行って、グループで行われる変換処理の回数が均等になるグルーピング６１８を得る。グルーピング６１８は、プリンタドライバ毎に、割り当てたグループを示すテーブルであり、ドライバ名、枚数、グループ名等の項目を有する。
【０１０１】
ドライバ名は、変換処理を行ったプリンタドライバを特定する識別子を示す。枚数は、印刷した枚数を示す。グループ名は、プリンタドライバが第２の負荷平衡化処理によって分類されたグループを特定する識別子を示す。
【０１０２】
この例では、ドライバ名「Drv_A」、「Drv_C」、及び「Drv_D」で特定される３つのプリンタドライバは、グループ名「Grp_1」で特定されるグループに分類されたことを示す。また、ドライバ名「Drv_B」及び「Drv_E」で特定される２つのプリンタドライバは、グループ名「Grp_2」で特定されるグループに分類されたことを示す。
【０１０３】
そして、負荷平衡化結果６１９は、第２の負荷平衡化処理によるグルーピング６１８から得られる負荷平衡化の状態を示す。グループ名「Grp_1」で特定されるグループで印刷された枚数は「２３」、また、グループ名「Grp_2」で特定されるグループで印刷された枚数は「２３」となり、負荷を均等に分散した結果を得る。
【０１０４】
次に、各プリンタドライバに対応するプリンタ６の台数を示す利用統計情報を作成する第３の作成方法と、第３の作成方法で作成された利用統計情報に基づく第３の負荷平衡化処理とを説明する。受付処理部４１は、プリンタ情報テーブル１７１を参照して、図２２に示すようなプリンタドライバ毎のプリンタ数を示すプリンタ数テーブル７１１を作成する。
【０１０５】
図２２は、第２の作成方法で利用するプリンタ数テーブルの作成を説明するための図である。図２２において、受付処理部４１は、プリンタ情報テーブル１７１を参照して、同じドライバ名を示すレコードをカウントすることで、プリンタドライバ毎に対応可能なプリンタ６の個数を取得し、プリンタ数テーブル７１１を作成する。
【０１０６】
プリンタ数テーブル７１１は、プリンタドライバ毎のプリンタ数を示すテーブルであり、ドライバ名、プリンタ数、プリンタ一覧等の項目を有する。プリンタ一覧の項目は、省略可能であるが、第３の作成方法の理解を容易とするため補足して示している。以下の説明についても同様にプリンタ一覧を示すが省略可能である。
【０１０７】
ドライバ名は、プリンタ情報テーブル１７１に含まれているプリンタドライバを特定する識別子を示す。プリンタ数は、同じプリンタドライバで対応可能なプリンタ６の個数を示す。プリンタ一覧は、同じプリンタドライバで対応可能なプリンタ６のプリンタ名を示す。
【０１０８】
この例では、ドライバ名「Drv_A」のプリンタドライバで対応可能なプリンタ数は「４」台であり、「Prt_1」、「Prt_3」、「Prt_5」、及び「Prt_7」のプリンタ６であることが示されている。ドライバ名「Drv_B」のプリンタドライバで対応可能なプリンタ数は「１」台であり、「Prt_2」のプリンタ６であることが示されている。ドライバ名「Drv_C」、「Drv_D」、及び「Drv_E」のプリンタドライバについては、プリンタ数「１」が示されて、それぞれ対応可能なプリンタ６は「Prt_4」、「Prt_6」、及び「Prt_8」である。
【０１０９】
次に、受付処理部４１は、プリンタドライバ毎のグループを特定する。図２３は、第３の作成方法におけるグループ特定テーブルの取得方法について説明するための図である。
【０１１０】
図２３において、図２２に示すプリンタ数テーブル７１１と、図６に示すドライバ・グループ対応テーブル１７２とを、プリンタ名を用いて関連付けすることにより、受付処理部４１は、プリンタ数テーブル７１１のドライバ名に対してドライバ名を対応付けたグループ特定テーブル７１３を得る。
【０１１１】
グループ特定テーブル７１３は、ドライバ名、プリンタ数、グループ名等の項目を有する。ドライバ名とプリンタ数とは、プリンタ数テーブル７１１のドライバ名とプリンタ数とを示す。グループ名は、ドライバ名を用いた関連付けによりプリンタ情報テーブル１７１から得られたドライバ名を示す。
【０１１２】
そして、受付処理部４１は、得られたグループ特定テーブル７１３を用いて、図２４に示すようなグループ毎のプリンタ数を示す利用統計情報テーブル１８０−３を得る。図２４は、第３の作成方法において作成された利用統計情報テーブルのデータ構成例を示す図である。
【０１１３】
図２４に示す利用統計情報テーブル１８０−３は、グループ特定テーブル７１３から得られる、グループ毎の利用統計情報を示すテーブルである。グループ名、プリンタ数、ドライバ一覧等の項目を有する。
【０１１４】
グループ名は、グループ特定テーブル７１３に含まれるグループ名を示す。プリンタ数は、グループで利用可能なプリンタ６の台数を示す。ドライバ一覧は、グループに属するプリンタドライバのドライバ名を示す。
【０１１５】
この例では、グループ名「Grp_1」のグループでは、「Drv_A」、「Drv_C」、及び「Drv_E」のプリンタドライバが６台のプリンタ６に対して利用可能であることを示している。グループ名「Grp_2」のグループでは、「Drv_B」、及び「Drv_D」のプリンタドライバが２台のプリンタ６に対して利用可能であることを示している。
【０１１６】
このような利用統計情報を用いて、受付処理部４１は、グループの負荷を平衡化する第３の負荷平衡化処理を行う。第３の負荷平衡化処理では、利用統計情報テーブル１８０−３を参照して、負荷が均等になるように、プリンタドライバをグループへ割当てるグルーピングを行う。
【０１１７】
図２５は、第３の負荷平衡化処理による結果例を示す図である。図２５において、受付処理部４１は、利用統計情報テーブル１８０−３を用いた第３の負荷平衡化処理を行って、グループ毎のプリンタ数が均等になるグルーピング７１８を得る。グルーピング７１８は、プリンタドライバ毎に、対応可能なプリンタ６の台数と、分類されたグループを示すテーブルであり、ドライバ名、プリンタ数、グループ名等の項目を有する。
【０１１８】
ドライバ名は、プリンタ情報テーブル１７１に含まれるドライバ名を示す。プリンタ数は、プリンタドライバが対応可能なプリンタ６の台数を示す。グループ名は、プリンタドライバが第３の負荷平衡化処理によって分類されたグループを特定する識別子を示す。
【０１１９】
この例では、ドライバ名「Drv_A」のプリンタドライバは、４台のプリンタ６に対して利用可能であり、グループ名「Grp_1」のグループに分類されたことを示す。また、ドライバ名「Drv_B」、「Drv_C」、「Drv_D」、及び「Drv_E」のプリンタドライバは、それぞれ１台のプリンタ６に対して利用可能であり、グループ名「Grp_2」のグループに分類されたことを示す。
【０１２０】
そして、負荷平衡化結果７１９は、第３の負荷平衡化処理によるグルーピング７１８から得られる負荷平衡化の状態を示す。グループ名「Grp_1」で特定されるグループでは、４台のプリンタ６に対する印刷処理を可能とする。また、グループ名「Grp_2」で特定されるグループでも、４台のプリンタ６に対する印刷処理を可能とする。よって、印刷処理の負荷を均等にした結果を得る。
【０１２１】
上述した利用統計情報テーブル１８０−１、１８０−２、及び１８０−３のそれぞれが利用統計情報テーブル１８０に相当する。利用統計情報テーブル１８０は、予め定めた時間間隔で、受付処理部４１によって作成されても良いし、図１０のステップＳ３１１、又は、図１１のステップＳ３３１にて、受付処理部４１によって作成されてもよい。
【０１２２】
上述したグルーピング５１８、６１８、及び７１８のそれぞれが、図１１に示すフローチャート図におけるグルーピングＥに相当する。得られたグルーピング５１８、６１８、又は７１８に等しくなるように、プリンタドライバをグループ間で移動させた後、ドライバ・グループ対応テーブル１７２は更新される。ドライバ・グループ対応テーブル１７２において、グループ名を変更する際には、負荷分散装置ＩＤもグループ名に対応させて変更される。
【０１２３】
上述したシステム１０００におけるハードウェア構成について説明する。図２６は、クライアント端末のハードウェア構成を示す図である。図２６において、クライアント端末５は、コンピュータによって制御されるタブレット型、携帯電話等の情報処理端末であって、ＣＰＵ（Central Processing Unit）１１と、主記憶装置１２と、ユーザＩ／Ｆ（インターフェース）１６と、通信Ｉ／Ｆ１７と、ドライブ装置１８とを有し、バスＢ５に接続される。
【０１２４】
ＣＰＵ１１は、主記憶装置１２ｂに格納されたプログラムに従ってクライアント端末５を制御するプロセッサに相当する。主記憶装置１２には、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を記憶又は一時保存する。主記憶装置１２に格納されているプログラムが、ＣＰＵ１１に実行されることによって、各種処理が実現される。
【０１２５】
ユーザＩ／Ｆ１６は、ＣＰＵ１１の制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。
【０１２６】
クライアント端末５によって行われる処理を実現するプログラムは、ネットワーク２を介して外部装置からダウンロードされる。或いは、予めクライアント端末５の主記憶装置１２又は記憶媒体１９に記憶されていても良い。主記憶装置１２及び／又は記憶媒体１９が記憶部１３に相当する。
【０１２７】
ドライブ装置１８は、ドライブ装置１８にセットされた記憶媒体１９（例えば、ＳＤ（Secure Digital）メモリカード等）とクライアント端末５とのインターフェースを行う。尚、記憶媒体１９は、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。
【０１２８】
クライアント端末５は、デスクトップ型、ノートブック型、ラップトップ型等の情報処理端末であっても良く、そのハードウェア構成は、後述されるサーバ装置１００等のハードウェア構成と同様であるので、その説明を省略する
図２７は、プリンタのハードウェア構成を示す図である。図２７において、プリンタ６は、コンピュータによって制御される印刷機能を有し、ＣＰＵ６１と、主記憶装置６２と、画像形成部６５と、ユーザＩ／Ｆ６６と、通信Ｉ／Ｆ６７と、ドライブ装置６８とを有し、バスＢ６に接続される。
【０１２９】
ＣＰＵ６１は、主記憶装置６２に格納されたプログラムに従ってプリンタ６を制御するプロセッサに相当する。主記憶装置６２には、ＲＡＭ、ＲＯＭ等が用いられ、ＣＰＵ６１にて実行されるプログラム、ＣＰＵ６１での処理に必要なデータ、ＣＰＵ６１での処理にて得られたデータ等を記憶又は一時保存する。主記憶装置６２に格納されているプログラムが、ＣＰＵ６１に実行されることによって、印刷処理を含む種々の処理が実現される。
【０１３０】
ユーザＩ／Ｆ６６は、ＣＰＵ６１の制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。通信Ｉ／Ｆ６７による通信は無線又は有線に限定されるものではない。
【０１３１】
プリンタ６によって行われる処理を実現するプログラムは、予めプリンタ６の主記憶装置６２又は記憶媒体６９に記憶されていても良い。主記憶装置６２及び／又は記憶媒体６９が記憶部６３に相当する。
【０１３２】
ドライブ装置６８は、ドライブ装置６８にセットされた記憶媒体６９（例えば、ＳＤ（Secure Digital）メモリカード等）とプリンタ６とのインターフェースを行う。尚、記憶媒体６９は、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい
図２８は、サーバ装置のハードウェア構成を示す図である。図２８において、サーバ装置１００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ１１１と、主記憶装置１１２と、補助記憶装置１１３と、入力装置１１４と、表示装置１１５と、通信Ｉ／Ｆ１１７と、ドライブ装置１１８とを有し、バスＢ１に接続される。
【０１３３】
ＣＰＵ１１１は、主記憶装置１１２に格納されたプログラムに従ってサーバ装置１００を制御するプロセッサに相当する。主記憶装置１１２には、ＲＡＭ、ＲＯＭ等が用いられ、ＣＰＵ１１１にて実行されるプログラム、ＣＰＵ１１１での処理に必要なデータ、ＣＰＵ１１１での処理にて得られたデータ等を記憶又は一時保存する。
【０１３４】
補助記憶装置１１３には、ＨＤＤ（Hard Disk Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１１３に格納されているプログラムの一部が主記憶装置１１２にロードされ、ＣＰＵ１１１に実行されることによって、各種処理が実現される。主記憶装置１１２及び／又は補助記憶装置１１３は、記憶部１３０に相当する。
【０１３５】
入力装置１１４は、マウス、キーボード等を有し、管理者等のユーザがサーバ装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１１５は、ＣＰＵ１１１の制御のもとに必要な各種情報を表示する。入力装置１１４と表示装置１１５とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信Ｉ／Ｆ１１７は、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１１７による通信は無線又は有線に限定されるものではない。
【０１３６】
ドライブ装置１１８は、ドライブ装置１１８にセットされた記憶媒体１１９（例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等）とサーバ装置１００とのインターフェースを行う。
【０１３７】
サーバ装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ等の記憶媒体１１９によってサーバ装置１００に提供される。記憶媒体１１９に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１１９に格納されたプログラムは、ドライブ装置１１８を介してサーバ装置１００にインストールされる。インストールされたプログラムは、サーバ装置１００により実行可能となる。
【０１３８】
尚、プログラムを格納する記憶媒体１１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non-transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital Versatile Disk）ディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【０１３９】
サーバ装置１００は、図１に示すように、受付処理部４１を有し、受付処理部４１は、サーバ装置１００にインストールされたプログラムが、サーバ装置１００のＣＰＵ１１１に実行させる処理により実現される。また、記憶部１３０には、図５に示すプリンタ情報テーブル１７１、図６に示すドライバ・グループ対応テーブル１７２等が記憶される。
【０１４０】
更に、ＣＰＵ１１１（即ち、受付処理部４１）が、第１の作成方法で作成された利用統計情報に基づく第１の負荷平衡化処理を行う場合には、記憶部１３０に、図１３〜図１６で説明した種々のテーブル等が記憶される。少なくとも、要求ログテーブル５１１、ドライバ特定テーブル５１２、グループ特定テーブル５１３、利用統計情報テーブル１８０−１、グルーピング５１８、負荷平衡化結果５１９等が記憶部１３０に記憶される。
【０１４１】
ＣＰＵ１１１（即ち、受付処理部４１）が、第２の作成方法で作成された利用統計情報に基づく第２の負荷平衡化処理を行う場合には、記憶部１３０に、図１７〜図２１で説明した種々のテーブル等が記憶される。少なくとも、要求ログテーブル６１１、ドライバ特定テーブル６１２、グループ特定テーブル６１３、利用統計情報テーブル１８０−２、グルーピング６１８、負荷平衡化結果６１９等が記憶部１３０に記憶される。
【０１４２】
ＣＰＵ１１１（即ち、受付処理部４１）が、第３の作成方法で作成された利用統計情報に基づく第３の負荷平衡化処理を行う場合には、記憶部１３０に、図２２〜図２５で説明した種々のテーブル等が記憶される。少なくとも、プリンタ数テーブル７１１、グループ特定テーブル７１３、利用統計情報テーブル１８０−３、グルーピング７１８、負荷平衡化結果７１９等が記憶部１３０に記憶される。
【０１４３】
図２９は、負荷分散装置のハードウェア構成を示す図である。図２９において、負荷分散装置２００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ２１１と、主記憶装置２１２と、補助記憶装置２１３と、入力装置２１４と、表示装置２１５と、通信Ｉ／Ｆ２１７と、ドライブ装置２１８とを有し、バスＢ２に接続される。
【０１４４】
ＣＰＵ２１１と、主記憶装置２１２と、補助記憶装置２１３と、入力装置２１４と、表示装置２１５と、通信Ｉ／Ｆ２１７と、ドライブ装置２１８のそれぞれの機能は、負荷分散装置２００のＣＰＵ２１１と、主記憶装置２１２と、補助記憶装置２１３と、入力装置２１４と、表示装置２１５と、通信Ｉ／Ｆ２１７と、ドライブ装置２１８と同様であるため、詳細な説明を省略する。主記憶装置２１２及び／又は補助記憶装置２１３は、記憶部２３０に相当する。
【０１４５】
図３０は、印刷ライタのハードウェア構成を示す図である。図３０において、印刷ライタ３００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ３１１と、主記憶装置３１２と、補助記憶装置３１３と、入力装置３１４と、表示装置３１５と、通信Ｉ／Ｆ３１７と、ドライブ装置３１８とを有し、バスＢ３に接続される。
【０１４６】
ＣＰＵ３１１と、主記憶装置３１２と、補助記憶装置３１３と、入力装置３１４と、表示装置３１５と、通信Ｉ／Ｆ３１７と、ドライブ装置３１８のそれぞれの機能は、印刷ライタ３００のＣＰＵ３１１と、主記憶装置３１２と、補助記憶装置３１３と、入力装置３１４と、表示装置３１５と、通信Ｉ／Ｆ３１７と、ドライブ装置３１８と同様であるため、詳細な説明を省略する。主記憶装置３１２及び／又は補助記憶装置３１３は、記憶部３３０に相当する。
【０１４７】
図３１は、印刷ドライバマスタのハードウェア構成を示す図である。図３１において、印刷ドライバマスタ４００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ４１１と、主記憶装置４１２と、補助記憶装置４１３と、入力装置４１４と、表示装置４１５と、通信Ｉ／Ｆ４１７と、ドライブ装置４１８とを有し、バスＢ４に接続される。
【０１４８】
ＣＰＵ４１１と、主記憶装置４１２と、補助記憶装置４１３と、入力装置４１４と、表示装置４１５と、通信Ｉ／Ｆ４１７と、ドライブ装置４１８のそれぞれの機能は、印刷ドライバマスタ４００のＣＰＵ４１１と、主記憶装置４１２と、補助記憶装置４１３と、入力装置４１４と、表示装置４１５と、通信Ｉ／Ｆ４１７と、ドライブ装置４１８と同様であるため、詳細な説明を省略する。主記憶装置４１２及び／又は補助記憶装置４１３は、記憶部４３０に相当する。
【０１４９】
上述より、本実施例によれば、グループ毎に、負荷分散装置２００が、印刷ジョブ７ａから印刷データ７ｃへの変換処理の負荷が均等になるように、印刷ライタ３００を選択する。よって、システム１０００全体において、グループ間の印刷に係る処理負荷を均等にすることができる。
【０１５０】
また、各グループに、負荷分散装置２００に加えて、印刷ドライバマスタ４００を備えることで、グループ内の各印刷ライタ３００へのプリンタドライバの追加及び更新を効率的に行える。更に、印刷ライタ３００を追加する場合には、印刷ドライバマスタ４００からプリンタドライバを複製するのみで、効率的に印刷ライタ３００の追加を行える。このような構成により、グループそれぞれにおける印刷処理を停止させることなくプリンタドライバの調整を行うことができる。
【０１５１】
上述したように、本実施例では、プリンタ６がサーバ装置１００へ印刷データ７ｃの引き取り要求を行う場合で説明したが、この例に限定されない。本実施例は、クライアント端末５がサーバ装置１００へ送信する印刷ジョブ７ａに出力先のプリンタ６が指定されている場合にも適応可能である。この場合は、サーバ装置１００の受付処理部４１は、印刷ジョブ７ａを含む印刷要求の受信に応じて、上述した処理を行えばよい。
【０１５２】
図１０及び図１１において、ステップＳ１５２の処理は特定部に相当し、ステップＳ１３５の処理は実行部に相当し、ステップＳ１３６の処理は変換部に相当し、ステップＳ１３９の処理は送信部に相当する。ステップＳ１５４の処理は、実行部、変換部、及び送信部による処理を含む。ステップＳ３３２〜Ｓ３４０の処理は再編成部に相当する。
【０１５３】
本実施例における、印刷ライタ３００がマシンに相当し、グループ内の印刷ライタ３００に複製される複数のプリンタドライバが印刷ドライバセットに相当する。
【０１５４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【符号の説明】
【０１５５】
２          ネットワーク
５          クライアント端末
６          プリンタ
７ａ        印刷ジョブ
７ｃ        印刷データ
４１        受付処理部
１００      サーバ装置
１７１      プリンタ情報テーブル
１７２      ドライバ・グループ対応テーブル
１８０、１８０−１、１８０−２、１８０−３        利用統計情報テーブル
２００      負荷分散装置
３００、３１０ａ、３１０ｂ、３２０ａ、３２０ｂ    印刷ライタ
４００、４１０、４２０    印刷ドライバマスタ
１０００    システム
【図１】
2019171541.tif 000003
【図２】
2019171541.tif 000004
【図３】
2019171541.tif 000005
【図４】
2019171541.tif 000006
【図５】
2019171541.tif 000007
【図６】
2019171541.tif 000008
【図７】
2019171541.tif 000009
【図８】
2019171541.tif 000010
【図９】
2019171541.tif 000011
【図１０】
2019171541.tif 000012
【図１１】
2019171541.tif 000013
【図１２】
2019171541.tif 000014
【図１３】
2019171541.tif 000015
【図１４】
2019171541.tif 000016
【図１５】
2019171541.tif 000017
【図１６】
2019171541.tif 000018
【図１７】
2019171541.tif 000019
【図１８】
2019171541.tif 000020
【図１９】
2019171541.tif 000021
【図２０】
2019171541.tif 000022
【図２１】
2019171541.tif 000023
【図２２】
2019171541.tif 000024
【図２３】
2019171541.tif 000025
【図２４】
2019171541.tif 000026
【図２５】
2019171541.tif 000027
【図２６】
2019171541.tif 000028
【図２７】
2019171541.tif 000029
【図２８】
2019171541.tif 000030
【図２９】
2019171541.tif 000031
【図３０】
2019171541.tif 000032
【図３１】
2019171541.tif 000033
【手続補正書】
【提出日】令和2年6月17日(2020.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定し、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させ、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させ、
変換により得られた前記印刷データを前記特定のプリンタに送信させ、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、
処理をコンピュータが行うことを特徴とする印刷制御方法。
【請求項２】
印刷ドライバマスタに、各マシン群に同一の印刷ドライバセットを複製させ、
前記同一の印刷ドライバセットを有する前記マシン群を同一グループとして前記負荷分散装置に管理させ、
前記印刷ドライバセットに含む印刷ドライバの配置をグループ単位で特定する、
処理を前記コンピュータが行うことを特徴とする請求項１記載の印刷制御方法。
【請求項３】
前記複数のマシン群のそれぞれに含まれる印刷ドライバセットを利用した印刷処理の履歴に基づき、該印刷ドライバセットに含まれる各印刷ドライバの負荷を算出し、
算出した各印刷ドライバの負荷に基づいて、前記複数のマシン群のそれぞれに配置する前記印刷ドライバセットを決定する、
処理を前記コンピュータが行うことを特徴とする請求項２記載の印刷制御方法。
【請求項４】
グループ毎の前記マシン群に含まれる印刷ドライバセットが対応可能なプリンタの個数に基づき、複数のグループのそれぞれで対応可能なプリンタの個数が均等になるように、該グループ毎の前記印刷ドライバセットを決定する、
処理を前記コンピュータが行うことを特徴とする請求項２記載の印刷制御方法。
【請求項５】
前記グループのそれぞれにおける処理が停止しないように、前記印刷ドライバセットが決定されることを特徴とする請求項４記載の印刷制御方法。
【請求項６】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定し、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させ、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させ、
変換により得られた前記印刷データを前記特定のプリンタに送信させ、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する、
処理をコンピュータに実行させることを特徴とする印刷制御プログラム。
【請求項７】
特定のプリンタへの印刷データの送信を要求された場合に、インストールされる印刷ドライバセットが別々に管理される複数のマシン群のそれぞれに関連づけられた複数の負荷分散装置のうち、前記特定のプリンタに関連づけられた負荷分散装置を特定する特定部と、
特定した前記負荷分散装置に印刷ジョブの割り当てを実行させる実行部と、
前記負荷分散装置によって割り当てられたマシンにインストールされた印刷ドライバによって前記印刷ジョブを処理して、前記特定のプリンタに対応する印刷データへの変換を実行させる変換部と、
変換により得られた前記印刷データを前記特定のプリンタに送信させる送信部と、
前記複数のマシン群における前記変換の負荷が不均衡であることを検出すると、前記複数のマシン群のそれぞれの管理対象とする印刷ドライバセットを再編成する再編成部と、
処理をコンピュータに実行させることを特徴とする印刷制御装置。
【国際調査報告】
2019171541.tif 000034
2019171541.tif 000035