(57)【要約】【課題】複数の端末が複数のプリンタを共有するシステムにおいて、プリンタ毎の負荷が分散するように端末毎に印刷可能なプリンタを自動割り当てし、プリンタの稼動台数が最少となるように制御する分散印刷システムを提供する。【解決手段】割当管理モジュール１１が割当条件定義ファイル１６の最適端末台数ＮＴａメモリ１６１に設定された最適端末台数と、端末接続テーブル１５に記憶された端末２の接続状態とを判断して、プリンタ毎の負荷が均等となるように端末２に使用を許可するプリンタ３又はプリンタ４の自動割り当てを行う。自動割り当ての結果、使用を許可するプリンタを指示した割当ファイル１７を端末２毎に送信することにより、プリンタの稼動台数が最少となるように制御する。【選択図】      図２
2004213231.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の端末からの印刷データを前記ネットワークに接続された複数の印刷装置に分散して割り当て、前記複数の印刷装置によってそれぞれ割り当てられた端末からの印刷データを印刷させる分散印刷システムにおいて、
印刷装置１台に割り当てる端末の限度台数を記憶した端末台数記憶手段と、
前記印刷データの印刷を要求する複数の端末を前記端末台数記憶手段に記憶された前記限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てる割当手段と、
を備えたことを特徴とする分散印刷システム。
【請求項２】
前記端末台数記憶手段及び前記割当手段は、前記ネットワークに接続されたサーバ装置に設けられていることを特徴とする請求項１記載の分散印刷システム。
【請求項３】
更に、前記複数の端末の接続状態データを記憶する接続状態記憶手段を備え、
前記割当手段は、前記接続状態記憶手段に記憶されている前記接続状態データに基づいて割り当てを行うことを特徴とする請求項１又は２に記載の分散印刷システム。
【請求項４】
更に、前記割当手段による割り当ての実行を開始する時間データを記憶する時間データ記憶手段を備えていることを特徴とする請求項１又は２に記載の分散印刷システム。
【請求項５】
更に、前記複数の端末に印刷許可されている印刷装置と前記複数の端末に割り当てた印刷装置とが一致するか否かを判別する割当結果判別手段を備え、
前記割当手段は、前記割当結果判別手段により印刷許可されている印刷装置と割り当てした印刷装置とが不一致と判別された端末について、割り当てされた印刷装置を端末間で入れ替えることにより端末に既に割り当てられて使用されている印刷装置の変更が最少となるように割り当てを行うことを特徴とする請求項１または２に記載の分散印刷システム。
【請求項６】
ネットワークに接続された複数の端末からの印刷データを前記ネットワークに接続された複数の印刷装置に分散して割り当て、前記複数の印刷装置によってそれぞれ割り当てられた端末からの印刷データを印刷させる分散印刷方法であって、
印刷装置１台に割り当てる端末の限度台数を記憶し、
前記印刷データの印刷を要求する複数の端末を前記記憶された限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てるようにしたことを特徴とする分散印刷方法。
【請求項７】
ネットワークに接続された複数の端末からの印刷データを前記ネットワークに接続された複数の印刷装置に分散して割り当て、前記複数の印刷装置によってそれぞれ割り当てられた端末からの印刷データを印刷させる分散印刷の為のプログラムであって、
コンピュータに、
前記印刷データの印刷を要求する複数の端末データを端末接続状態記憶手段に記憶させる処理と、
前記端末台数記憶手段に記憶された印刷装置１台に割り当てる端末の限度台数データに基づき前記端末接続状態記憶手段に記憶された複数の端末データを前記限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てる処理と、
を実行させるようにしたことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、複数の印刷装置の負荷分散および稼動台数の制御を行う分散印刷システム、分散印刷方法及びプログラムに関する。
【０００２】
【従来の技術】
従来、複数のプリンタ（印刷装置）を複数の端末で共用している場合には、サーバ側で使用を許可した全てのプリンタの中から各端末が任意のプリンタを選択して使用するのが一般的であった。この場合は各端末のユーザが任意のプリンタを選択するので特定のプリンタに負荷が集中することは避けられなかった。
そこで、特定のプリンタに負荷が集中することを避けるために、プリンタを共有して使用するグループをプリンタに対応付けて設定することにより、そのグループに属する端末ユーザだけが設定されたプリンタを使用できるようにし、例えば、プリンタＡはあるグループ内の複数の端末ユーザだけが使用し、プリンタＢは他のグループの端末ユーザだけが使用するといった運用を行うセキュリティ機能を組み込んだオペレーティングシステムがマイクロソフト社から提供されている。しかし、この場合は指定されたプリンタに印刷処理が集中した時でも、端末ユーザは他のプリンタを使用できないので、指定されたプリンタに先に投入された印刷データの印刷処理が終了するまで待たされるという問題があった。
また、プリンタの負荷を分散させる他の方法として、プリンタの動作能力に応じて出力するプリンタを振り分けて分配数を決めることが知られている（例えば、特許文献１を参照。）。
【０００３】
【特許文献１】
特開２０００−１５１８７３号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、プリンタ毎に使用を許可するグループやユーザの設定をするのは、設定内容を決めるのが難しく手間もかかる作業である。
さらにプリンタの負荷が均等になるように意図して設定したとしても、端末の接続状態は変動しているので接続状態によって負荷が偏る恐れがある。
また、接続している端末が少ない場合でも、全てのプリンタが稼動できる状態なので各々のプリンタが印刷データを受信する度にウォームアップして少ない枚数を印刷してはスリープモードに入るという動作を繰り返すことになり、ウォームアップ時に無駄な電力を使うしプリンタも消耗しやすいという問題があった。
【０００５】
本発明は上記実状に鑑みてなされたもので、プリンタ毎の負荷が分散するように端末毎に印刷可能なプリンタを自動割り当てし、プリンタの稼動台数が最少となるように制御する分散印刷システムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明に係わる分散印刷システムは、印刷装置１台に割り当てる端末の限度台数を記憶した端末台数記憶手段と、前記印刷データの印刷を要求する複数の端末を前記端末台数記憶手段に記憶された前記限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てる割当手段と、を備えたことを特徴とする。
【０００７】
このような構成によれば、ネットワークに接続中の端末を対象として、プリンタ毎の負荷が分散するように端末を自動的に割り当てるので、プリンタの設定のための煩雑な作業が不要となり、さらに端末のユーザが任意のプリンタを選択する場合に発生する特定のプリンタに負荷が集中する事態も防げる。
また、接続中の端末台数とプリンタ１台当りの端末の限度台数を基に使用可能なプリンタ台数を決定し、各端末に決定された台数のプリンタを割り当てることによりネットワークに接続されたプリンタの一部を休止させるので、無駄な電力の消費を減少させ、プリンタの消耗を防ぎ、騒音を減少させる効果が得られる。
【０００８】
更に、本発明の分散印刷システムは、前記割当手段による割り当ての実行を開始する時間データを記憶する時間データ記憶手段を備えるようにしてもよい。
こうすることにより、端末の接続要求／切断要求の都度、割り当てを行うのではなく、予め設定された一定時間が経過した時点で割り当てを行うので、端末で使用している印刷装置が頻繁に変更になるのを防ぐことができるので、利用者にとって利便性が増す。
【０００９】
また、本発明の分散印刷システムは、更に、前記複数の端末に印刷許可されている印刷装置と前記複数の端末に割り当てた印刷装置とが一致するか否かを判別する割当結果判別手段を備え、前記割当手段は、前記割当結果判別手段により印刷許可されている印刷装置と割り当てした印刷装置とが不一致と判別された端末について、割り当てされた印刷装置を端末間で入れ替えることにより端末に既に割り当てられて使用されている印刷装置の変更が最少となるように割り当てを行うようにしてもよい。
こうすることにより、割り当ての処理をした結果、端末で使用している印刷装置が変更になったとしても、入れ替え処理により印刷装置の変更を最少にできるので端末で使用している印刷装置が頻繁に変更になるのを防ぐことができ、利用者にとって利便性が増す。
【００１０】
更に、本発明に係わる分散印刷方法は、印刷装置１台に割り当てる端末の限度台数を記憶し、前記印刷データの印刷を要求する複数の端末を前記記憶された限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てるようにしたことを特徴とする。
【００１１】
更にまた、本発明に係わるプログラムは、前記印刷データの印刷を要求する複数の端末データを端末接続状態記憶手段に記憶させる処理と、前記端末台数記憶手段に記憶された印刷装置１台に割り当てる端末の限度台数データに基づき前記端末接続状態記憶手段に記憶された複数の端末データを前記限度台数を超えず且つ割り当てられる印刷装置の台数が最少となるように前記複数の印刷装置それぞれに割り当てる処理と、をコンピュータに行わせるためのプログラムであることを特徴とする。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態に関して図面を参照して説明する。
【００１３】
図１は本発明の実施の形態によるネットワーク全体の構成図である。このネットワーク全体は通信ネットワーク５に接続されたサーバ１、端末２−１〜２−ｎ（以下、夫々の端末を端末２と略称する）、プリンタ３−１〜３−ｍ（以下、夫々のプリンタをプリンタ３と略称する）、サーバ１にローカル接続されたプリンタ４−Ｌ１、４−Ｌ２（以下、夫々のプリンタをプリンタ４と略称する）から構成される。
【００１４】
通信ネットワーク５は、例えば電話回線やＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどであり、サーバ１と端末２及びプリンタ３との間でデータを送受信させるものである。なお、本実施の形態では、通信ネットワーク５としてＬＡＮが用いられているものとする。
サーバ１は通信ネットワーク５を介して端末２からの接続要求／切断要求を受け取り、詳細は後述するが接続している端末２の台数と予め登録されているプリンタ１台当りの最適な端末台数を元にその時点で使用してよいプリンタの台数を算出し、その結果によりプリンタの割り当てを行う。
【００１５】
端末２は、例えば、パソコン、ＰＤＡ等の携帯情報端末、携帯電話等の移動体通信端末などであり、通信によるデータ送受信が可能な情報端末である。接続要求／切断要求及び印刷すべきファイル（後述するスプールファイル２４）をサーバ１に送信する。
プリンタ３は、サーバ１からのプリントファイル（後述するプリントファイル１８）を受信して印刷処理を行う。
プリンタ４はプリンタケーブルやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ケーブル等でサーバ１にローカル接続され、サーバ１からのプリントファイル（後述するプリントファイル１８）を受信して印刷処理を行う。
【００１６】
図２は図１のサーバ１の構成を示すブロック図である。
サーバ１はサーバモジュール１０、割当管理モジュール１１、出力モジュール１２及びプリンタ制御モジュール（ＯＳ）１３からなるソフトウェア群と、出力先テーブル１４、端末接続テーブル１５、割当条件定義ファイル１６、割当ファイル１７及びプリントファイル１８からなるファイル群から構成されている。
まず、ファイル群１４乃至１８について説明する。
【００１７】
出力先テーブル１４は、前記通信ネットワーク５およびサーバ１に接続されているプリンタ３、４の定義データを予め記憶するものである。即ち図４に示すようにそのプリンタの定義データとして連番を記憶する「Ｎｏ．」メモリ１４１、プリンタの識別名を記憶する「プリンタ名」メモリ１４２、プリンタが使用中（値：１）か非使用（値：０）かの使用状態値を記憶する「使用状態」メモリ１４３、プリンタの通信ネットワーク５上の論理的なアドレスを記憶するＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスまたはローカルのアドレスを記憶する「アドレス」メモリ１４４、プリンタの種類を記憶する「種類」メモリ１４５、メーカ名を記憶する「メーカ名」メモリ１４６、機種名を記憶する「機種名」メモリ１４７及び印刷速度を記憶する「印字速度」メモリ１４８からなっている。
【００１８】
端末接続テーブル１５は、図５に示すように通信ネットワーク５に接続された端末２の接続状態を表すデータを記憶するものであり、図５に示すように連番を記憶する「Ｎｏ．」メモリ１５１、端末２のＩＰアドレスを記憶する「端末ＩＰ」メモリ１５２、端末２が接続中（値：１）か切断（値：０）かの接続状態値を記憶する「接続状態」メモリ１５３、割り当てされているプリンタを記憶する「割当」メモリ１５４、再割り当てしたプリンタを記憶する「再割当」メモリ１５５、及び再割当の内容と割当の内容との比較結果が一致した（値：０）か、不一致で「割当」メモリ１５４のプリンタ名が「再割当」メモリ１５５のいずれかに用いられている（値：１）か、あるいは不一致で「割当」メモリ１５４のプリンタ名が「再割当」メモリ１５５のいずれにも用いられていない（値：２）かの値を記憶する「再割当結果」メモリ１５６からなっている。
【００１９】
割当条件定義ファイル１６は、図６（ａ）示すようにプリンタを割り当てる時の各種の条件を記憶するものである。そのデータとしてプリンタ１台当りの最適な端末台数が記憶された最適端末台数ＮＴａメモリ１６１、割り当て処理の間隔時間メモリ１６２、割り当て処理の日時メモリ１６３および割り当て処理の曜日・時間メモリ１６４からなっている。
【００２０】
割当ファイル１７は、端末２に対して使用を許可するプリンタを指示するデータを記憶するものであり、図６（ｂ）に示すようにプリンタの識別名を記憶する「プリンタ名」メモリ１７１、プリンタが使用中（印刷許可）か非使用かの使用状態値を記憶する「使用状態」メモリ１７２及びプリンタの通信ネットワーク５上の論理的なアドレスを記憶するＩＰアドレスまたはローカルのアドレスを記憶する「アドレス」メモリ１７３からなっている。
【００２１】
プリントファイル１８は、印刷すべきデータを受信して、プリンタの機種に合わせたデータフォーマットに変換して格納しておくものである。
【００２２】
次に、図２のソフトウェア群１０乃至１３について説明する。
サーバモジュール１０は、端末２からの接続要求／切断要求を受信して、端末接続テーブル１５の受信した端末２に対応する接続状態、即ち「接続状態」メモリ１５３の値を接続要求／切断要求に応じて更新するほか、割当ファイル１７を端末２に送信する等の各種のデータの送受信を行う。また、割当管理モジュール１１や出力モジュール１２との同期をとる。
【００２３】
割当管理モジュール１１は、詳細は後述するが出力先テーブル１４に登録された「プリンタ名」メモリ１４２のプリンタ名データを端末接続テーブル１５の「割当」メモリ１５４又は「再割当」メモリ１５５に均等に割り当てをして設定すると共に、端末２別に割当ファイル１７を生成する。また、端末接続テーブル１５の「割当」メモリ１５４又は「再割当」メモリ１５５に記憶された端末毎に割り当てられたプリンタ名のデータを、端末２の接続状態が変化した時点で再割り当てを行うことにより、プリンタの稼動台数を制御する。
【００２４】
出力モジュール１２は、サーバモジュール１０が端末２から受信したスプールファイル２４を、出力するプリンタのアドレスを指示し、出力するプリンタの機種に合わせたデータフォーマットに変換するためのパラメータ情報を付加してプリンタ制御モジュール（ＯＳ）１３に送信する。
【００２５】
プリンタ制御モジュール（ＯＳ）１３は、受信したスプールファイル２４とパラメータ情報を元にプリントファイル１８を生成し、そのプリントファイル１８の出力先がネットワークに接続されたプリンタの場合はサーバモジュール１０を経由してプリンタ３に送信し、出力先がローカル接続されたプリンタの場合はプリンタ４に直接送信する。
【００２６】
図３は端末２の構成を示すブロック図である。
端末２はアプリケーション２０、プリントＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）２１及び端末モジュール２２からなるソフトウェア群と、割当ファイル２３及びスプールファイル２４からなるファイル群から構成されている。
【００２７】
割当ファイル２３は、サーバ１から受信した割当ファイル１７をそのまま格納したものである。
スプールファイル２４は、プリントＡＰＩ２１がアプリケーション２０の要求により生成するもので、プリンタの識別名等のヘッダーデータおよびプリンタの機種に依存しないデータフォーマットのプリントデータから構成される。
アプリケーション２０は、ユーザ任意のアプリケーションでよく、プリントＡＰＩ２１に対して印刷出力を要求する。
プリントＡＰＩ２１は、アプリケーション２０から印刷出力の要求を受けて、割当ファイル２３で指定されたプリンタへ出力するためのスプールファイル２４を生成する。
端末モジュール２２は、サーバ１に対して端末のＩＰアドレスと共に接続要求／切断要求を送信する。また、サーバモジュール１０から割当ファイル１７を受信して割当ファイル２３として格納し、プリントＡＰＩ２１と連係してスプールファイル２４をサーバモジュール１０へ送信する。
【００２８】
次に、本発明のサーバ１が端末２に対して使用を許可するプリンタの割り当て制御処理全体の流れを説明するが、その前に、プリンタの割り当て制御処理の概要として端末接続テーブル１５の「接続状態」メモリ１５３の値と出力先テーブル１４の「使用状態」メモリ１４３の値との関連について説明する。図７（ａ）の割り当て状態１を例にすると、端末２３台が全て接続中でプリンタ４台が全て使用中となっている。端末とプリンタの対応関係は端末のＮｏ．１〜４にプリンタのＮｏ．１〜４が順次対応付けられ、端末のＮｏ．５〜８にプリンタのＮｏ．１〜４が再び対応付けられ、以降端末のＮｏ．２３まで同様に対応付けられている。その結果として、プリンタ１台当りの端末台数が均等化している。
【００２９】
図７（ｂ）の割り当て状態２の例では、端末２３台のうち１５台が接続中でプリンタ４台のうち３台が使用中となっている。これは図７（ａ）の割り当て状態１から接続中の端末が減少したので使用するプリンタを削減した例となっている。端末とプリンタの対応関係はプリンタがＮｏ．３まで割り当てられていたのでプリンタのＮｏ．４から順に割り当てられる。すなわち、端末のＮｏ．１、３、５にプリンタのＮｏ．４、１、２がそれぞれ対応付けられ、端末のＮｏ．８、９、１０にプリンタのＮｏ．４、１、２が再び対応付けられ、以降端末のＮｏ．２２まで同様に対応付けられている。
【００３０】
尚、端末接続テーブル１５においては図８（ａ）に示すように端末接続テーブル１５の先頭の行、即ちＮｏ．１の端末に関連するデータが記憶されている行のアドレスをＴｓ、最後の端末（Ｎｏ．ｎ１）に関連するデータが記憶されている行のアドレスをＴｅ、アドレスＴｓ及びＴｅ間において現在アドレス指定されている行のアドレスをＴとする。同様に出力先テーブル１４においては図８（ｂ）に示すように出力先テーブル１４の先頭の行、即ちＮｏ．１のプリンタに関連するデータが記憶されている行のアドレスをＰｓ、最後のプリンタ（Ｎｏ．ｎ２）に関連するデータが記憶されている行のアドレスをＰｅ、アドレスＰｓ及びＰｅ間において現在アドレス指定されている行のアドレスをＰとする。
【００３１】
次に、サーバ１におけるプリンタの割り当て制御処理全体の流れを図９を参照して説明する。
処理全体の制御はサーバモジュール１０と割当管理モジュール１１とが連係して行う。
まず、ステップＳ１（以降Ｓ１と記す）でサーバモジュール１０が端末２からの接続要求または切断要求をＩＰアドレスと共に受信すると、端末接続テーブル１５を参照し要求のあった端末２のＩＰアドレスが登録されているか否かを確認する（Ｓ２）。Ｓ３ではＩＰアドレスが登録済みか否かの確認結果および接続要求または切断要求かを判別してＳ４、Ｓ５、Ｓ６のいずれかの処理に分岐させる。判別結果が未だ登録されていない端末２からの接続要求であれば、Ｓ４に進み接続要求してきた端末２が新規の端末２であるとして、新たな領域を新アドレスＴとして指定してＩＰアドレスを書き込み、端末接続テーブル１５に追加する。また、Ｓ３で判別結果が登録済みの端末２からの接続要求の場合は、更にアドレスＴが示す該当する端末の「接続状態」メモリ１５３の値を“接続中”に更新する（Ｓ５）。Ｓ３で判別結果が登録済みの端末２からの切断要求の場合は、アドレスＴが示す該当する端末２の「接続状態」メモリ１５３の値を“切断”に設定し（Ｓ６）、Ｓ８に進む。Ｓ４またはＳ５の処理の後、接続要求のあった端末２へ使用を許可するプリンタ名を通知するためにＳ７の追加割り当て処理を行う。
【００３２】
図１０は前記Ｓ７の追加割り当て処理の詳細な処理内容である。
まず、図５の端末接続テーブル１５の現アドレスＴが示している端末２の行に該当する「割当」メモリ１５４に、図４の出力先テーブル１４の現アドレスＰが示しているプリンタの行に該当する「プリンタ名」メモリ１４２の値を書き込む（Ｓ１１）。これによりプリンタを１台割り当てたので出力先テーブル１４の現アドレスＰを次に進める（Ｓ１２）。Ｓ１３で現アドレスＰが終端アドレスＰｅを超えたか否かを判別する。Ｓ１３で判別結果がＹｅｓならば、現アドレスＰを先頭アドレスＰｓに戻す（Ｓ１４）。Ｓ１３で判別結果がＮｏの場合は、Ｓ１５に進む。Ｓ１５では割り当てたプリンタを接続要求のあった端末に通知するために割当ファイル１７を生成し、生成した割当ファイル１７をその端末に送信して追加割り当て処理を終了する。
図９に戻り、Ｓ８では端末２の接続状態によってプリンタの台数を増減させて、各端末２にプリンタを割り当てる割り当て処理を行う。
【００３３】
ここで、図１１に前記Ｓ８の割り当て処理の詳細な処理内容を示す。
この割り当て処理は割当管理モジュール１１が行う。
まず、端末接続テーブル１５に登録されている全ての端末の「接続状態」メモリ１５３の値を参照して、「接続状態」メモリ１５３の値が“接続中”となっている端末台数ＮＴｎを算出する（Ｓ２２）。次に、出力先テーブル１４に登録されている全てのプリンタの「使用状態」メモリ１４３の値を参照して、「使用状態」メモリ１４３の値が“使用中”となっている端末台数ＮＰｎを算出する（Ｓ２３）。このあと、現時点の端末２の接続状態における最適なプリンタ台数を示す最適割当台数ＮＰａの算出処理（Ｓ２４）を行う。
【００３４】
ここで、図１２に前記Ｓ２４の最適割当台数ＮＰａの算出処理の詳細な処理内容を示す。
まず、出力先テーブル１４に登録されている全てのプリンタの台数である総プリンタ台数ＮＰｔを算出する（Ｓ３１）。次に、カウンタＮに接続中の端末台数ＮＴｎを代入し（Ｓ３２）、求めようとしている最適割当台数ＮＰａの初期値として１を代入する（Ｓ３３）。
プリンタ１台当りの最適な端末台数を示す最適端末台数ＮＴａが予め設定されているので、Ｓ３４ではＮが最適端末台数ＮＴａよりも大か否かを判別する。Ｓ３４の判別結果がＹｅｓならば、Ｎから最適端末台数ＮＴａを減算してその結果をＮに代入する（Ｓ３５）。Ｓ３６では最適端末台数ＮＰａが総プリンタ台数ＮＰｔより小か否かを判別する。Ｓ３６の判別結果がＹｅｓならば、最適割当台数ＮＰａの値を１つカウントアップさせてＳ３４に戻り上述の処理を繰り返す（Ｓ３７）。Ｓ３４で判別結果がＮｏの場合及びＳ３６で判別結果がＮｏの場合は、最適割当台数ＮＰａの算出処理を終了する。
【００３５】
上述した最適割当台数ＮＰａの算出処理を、例えば図７（ａ）の割り当て状態１から図７（ｂ）の割り当て状態２に変化する例に当てはめてみると、図７（ｂ）の割り当て状態２における総プリンタ台数ＮＰｔが４台、接続中の端末台数ＮＴｎが１５台、最適端末台数ＮＴａが６台なので最適割当台数ＮＰａが３台として算出される。図７（ａ）の割り当て状態１では最適割当台数ＮＰａが４台だったので、この処理の結果１台削減されることになる。
【００３６】
図１１に戻り、Ｓ２５では使用中の端末台数ＮＰｎと最適割当台数ＮＰａとを比較し、使用中の端末台数ＮＰｎと最適割当台数ＮＰａとが一致しない場合はＳ２６〜Ｓ２９の一連の再割り当ての処理に進み、一致する場合は再割り当てが不要なので割り当て処理を終了する。
Ｓ２６では端末接続テーブル１５の「再割当」メモリ１５５の内容を端末の接続状態に合わせて更新する再割り当ての出力処理を行う。
【００３７】
ここで、図１３に前記Ｓ２６の再割り当ての出力処理の詳細な処理内容を示す。再割り当ての出力処理では端末接続テーブル１５に登録されている端末のうち「接続状態」メモリ１５３の値が“接続中”の端末について順次、出力先テーブル１４に登録されているプリンタのうち最適割当台数ＮＰａと等しい台数のプリンタを用いて割り当てを繰り返し行う。
【００３８】
まず、先頭の端末から終端の直前の端末まで順次処理を進めてゆくので、端末接続テーブル１５の現アドレスＴを先頭アドレスＴｓに設定する（Ｓ４１）。次に、現時点で割り当てようとしているプリンタを示している出力先テーブル１４の現アドレスＰをセーブしておく（Ｓ４２）。続いて、最適割当台数ＮＰａをカウンタＮに設定して（Ｓ４３）、端末接続テーブル１５の「再割当」メモリ１５５の値を端末の接続状態に合わせて更新するＳ４４〜Ｓ５６の処理に進む。
【００３９】
Ｓ４４では端末接続テーブル１５の「接続状態」メモリ１５３の値が“接続中”か否かを判別する。Ｓ４４で判別結果がＹｅｓならば、端末接続テーブル１５の「再割当」メモリ１５５の値に出力先テーブル１４の現アドレスＰが示している「プリンタ名」メモリ１４２の値を設定して（Ｓ４５）、Ｓ４７に進む。Ｓ４４で判別結果がＮｏの場合は、端末接続テーブル１５の「再割当」メモリ１５５の値をクリアする（Ｓ４６）。Ｓ４７では端末接続テーブル１５の現アドレスＴを次の行に進め、端末接続テーブル１５の現アドレスＴが終端アドレスＴｅを超えていないか否かを判別する（Ｓ４８）。Ｓ４８で判別結果がＮｏならば以下のＳ４９〜Ｓ５５の処理を行った後にＳ４４へ戻る処理を繰り返す。
【００４０】
Ｓ４９ではＮから１を減算してその結果をＮに代入する。減算の結果、Ｎが「０」か否かを判別し（Ｓ５０）、判別結果がＹｅｓならば再度Ｎに最適割当台数ＮＰａを設定し（Ｓ５１）、出力先テーブル１４の現アドレスＰをセーブしておいた値に戻す（Ｓ５２）。Ｓ５０で判別結果がＮｏの場合は、出力先テーブル１４の現アドレスＰを次の行に進める（Ｓ５３）。Ｓ５４で出力先テーブル１４の現アドレスＰが終端アドレスＰｅを超えたか否かを判別する。Ｓ５４で判別結果がＹｅｓならば、現アドレスＰを先頭アドレスＰｓに設定して（Ｓ５５）、Ｓ４４に戻る。Ｓ５４で判別結果がＮｏの場合はそのままＳ４４に戻る。
Ｓ４８で判別結果がＹｅｓの場合は、出力先テーブル１４の現アドレスＰをセーブしておいた値に戻して（Ｓ５６）、再割当の出力処理を終了する。
【００４１】
上記の再割当の出力処理の結果、図７の（ａ）割り当て状態１から（ｂ）割り当て状態２に接続状態が遷移した場合は、端末接続テーブル１５の「再割当」メモリ１５５の値は図５に示すようになる。すなわち、割り当てされたプリンタが４台から３台に減少し、プリンタ名が“ＰＲＴ３”のプリンタは休止状態になる。
【００４２】
図１１のＳ２７に戻り、端末接続テーブル１５の「再割当結果」メモリ１５６の値を出力する再割当結果の出力処理を行う。
Ｓ２７では端末接続テーブル１５の各行について「割当」メモリ１５４のプリンタ名と「再割当」メモリ１５５のプリンタ名とを比較し、その比較結果を判別して「０」、「１」、「２」に分類し「再割当結果」メモリ１５６の値として設定する。「再割当結果」メモリ１５６の値は、「割当」メモリ１５４のプリンタ名と「再割当」メモリ１５５のプリンタ名とが一致した場合は「０」、「割当」メモリ１５４のプリンタ名と「再割当」メモリ１５５のプリンタ名とが不一致で、「割当」メモリ１５４のプリンタ名が「再割当」メモリ１５５のいずれかに用いられている場合は「１」、「割当」メモリ１５４のプリンタ名と「再割当」メモリ１５５のプリンタ名とが不一致で、「割当」メモリ１５４のプリンタ名が「再割当」メモリ１５５のいずれにも用いられていない場合は「２」、がそれぞれ設定される。「１」は再割り当てした結果も現在使用しているプリンタが継続して使用されることを意味し、「２」は再割り当てにより現在使用しているプリンタが使用されなくなったか、あるいは新たなプリンタが使用されるようになったことを意味する。
【００４３】
図７（ａ）の割り当て状態１から図７（ｂ）の割り当て状態２に接続状態が遷移した場合は、端末接続テーブル１５の「再割当結果」メモリ１５６の値は図５に示すようになる。「再割当結果」メモリ１５６の値のうちカッコで併記されているのは後述する再割当の入れ替え処理を行った結果の内容を示している。
Ｓ２８では「再割当結果」メモリ１５６の内容を判別し、再割り当ての結果により使用しているプリンタが変更になることを極力避けるために、すなわち、「再割当結果」メモリ１５６の「１」や「２」の値の数が最小となるようにするために、端末接続テーブル１５の「再割当」メモリ１５５のプリンタ名を行間で入れ替える再割当の入れ替え処理を行う。
【００４４】
ここで、図１４に前記Ｓ２８の再割当の入れ替え処理の詳細な処理内容を示す。この再割当の入れ替え処理は端末接続テーブル１５の「再割当結果」メモリ１５６の値が「１」となっている端末に着目し、その端末と「再割当結果」メモリ１５６の値が「１」または「２」の端末の「再割当」メモリ１５５の内容を入れ替えて「再割当結果」メモリ１５６の値を「０」にする処理を順次繰り返し行うものである。
【００４５】
まず、先頭の端末から終端の直前の端末まで順次処理を進めてゆくので、端末接続テーブル１５の現アドレスＴを先頭アドレスＴｓに設定する（Ｓ６１）。
Ｓ６２では現アドレスＴが示す行の「再割当結果」メモリ１５６の値が「１」か否かを判別する。Ｓ６２で「再割当結果」メモリ１５６の値が「１」と判別されると、入れ替えの対象となる行を探索するために、先頭アドレスＴｓを入れ替え対象のアドレスＴ２に設定する（Ｓ６３）。
【００４６】
Ｓ６４で入れ替え対象のアドレスＴ２が示す行の「再割当結果」メモリ１５６の値が「１」または「２」か否かを判別する。Ｓ６４の判別結果がＹｅｓであれば、現アドレスＴが示す行の「再割当」メモリ１５５のプリンタ名と入れ替え対象のアドレスＴ２が示す行の「再割当」メモリ１５５のプリンタ名とを仮に入れ替えてみる（Ｓ６５）。入れ替えた結果、現アドレスＴが示す行の「割当」メモリ１５４のプリンタ名と同じ行の「再割当」メモリ１５５のプリンタ名とが一致するか否かを判別し（Ｓ６６）、判別結果がＹｅｓであれば次のＳ６７〜Ｓ６９の処理を行い「再割当」メモリ１５５のプリンタ名を入れ替える。
【００４７】
Ｓ６７では現アドレスＴが示す行の「再割当」メモリ１５５のプリンタ名と入れ替え対象のアドレスＴ２が示す行の「再割当」メモリ１５５のプリンタ名とを入れ替える。続けて、現アドレスＴが示す行の「再割当結果」メモリ１５６の値を「０」に設定し（Ｓ６８）、入れ替え対象のアドレスＴ２が示す行の「再割当結果」メモリ１５６を入れ替えた結果の値で更新して（Ｓ６９）、Ｓ７２に進める。
【００４８】
Ｓ６６の判別結果がＮｏの場合は、Ｓ７０で対象のアドレスＴ２を次の行に進める。Ｓ７０により入れ替え対象のアドレスＴ２を次の行に進めた結果、入れ替え対象のアドレスＴ２が終端アドレスＴｅを超えたかを判別し（Ｓ７１）、Ｓ７１の判別結果がＹｅｓであればＳ７２に進める。Ｓ７１で判別結果がＮｏの場合はＳ６４に戻り、入れ替え対象を変えてＳ６４〜Ｓ７１の処理を繰り返す。
Ｓ６４で判別結果がＮｏの場合もＳ７０に進む。
【００４９】
Ｓ７２では現アドレスＴを次の行に進める。Ｓ７２により現アドレスＴを次の行に進めた結果、現アドレスＴが終端アドレスＴｅを超えたかを判別し（Ｓ７３）、Ｓ７３の判別結果がＮｏであればＳ６２に戻る。そして次の「再割当結果」メモリ１５６の値が「１」の行を見つけるＳ６２〜Ｓ７１の処理を繰り返す。Ｓ７３で判別結果がＹｅｓであれば再割当の入れ替え処理を終了する。
【００５０】
上記の再割当の入れ替え処理を行った結果、図５の端末接続テーブル１５の「再割当」メモリ１５５と「再割当結果」メモリ１５６の値がカッコを付けて示したようになる。この例では６台の端末２の「再割当結果」メモリ１５６の値が「１」から「０」になっている。
【００５１】
図１１のＳ２９に戻り、割当ファイルの送信をする処理を行う。
Ｓ２９ではＳ２８までの処理により端末接続テーブル１５の「再割当」メモリ１５５のプリンタ名が決定したので、各端末２に使用を許可するプリンタ名を通知する処理を行う。使用しているプリンタ名が変更される端末２に対して割当管理モジュール１１が割当ファイル１７を生成し、その割当ファイル１７をサーバモジュール１０が該当する各端末２に送信し、各端末２では端末モジュール２２が割当ファイル１７を受信して割当ファイル２３として格納する。
【００５２】
以上がプリンタの割り当て制御処理全体の説明である。
サーバ１がこのプリンタの割り当て制御処理を行うことにより端末２毎に使用するプリンタを指示した割当ファイル２３が各端末２に格納される。
【００５３】
ここで、端末２のアプリケーション２０からの印刷データがプリンタで印刷されるまでの処理概要を説明する。
アプリケーション２０がプリントＡＰＩ２１に印刷データを出力すると、プリントＡＰＩ２１は割当ファイル２３を参照してスプールファイル２４を生成する。生成したスプールファイル２４を端末モジュール２２がサーバ１に送信する。
【００５４】
サーバ１ではサーバモジュール１０を経由して出力モジュール１２がスプールファイル２４を受信する。出力モジュール１２はスプールファイル２４を読み込んで、出力先のプリンタがネットワーク接続かリモート接続のいずれかを判別し、プリンタ制御モジュール（ＯＳ）１３に印刷の指示を行う。
【００５５】
プリンタ制御モジュール（ＯＳ）は指示されたプリンタの種類に合ったデータフォーマットでプリントファイル１８を生成した後、指示された出力先の通信ネットワーク５に接続されたプリンタ３またはローカル接続されたプリンタ４にプリントファイル１８を送信する。プリントファイル１８を受信した通信ネットワーク５に接続されたプリンタ３またはローカル接続されたプリンタ４はプリントファイル１８の内容に従って印刷を行う。
【００５６】
次に、図９のプリンタの割り当て制御処理において、Ｓ８の割り当て処理を一部変えたものを、図１５に示す。図１５においては図１１に示す割り当て処理の先頭にＳ２１を追加し、予め図６（ｃ）の割当条件定義ファイル１６の割り当て処理の間隔時間１６２に設定した時間が経過した時点で割り当て処理を行うようにしたものである。
【００５７】
尚、上記実施の形態における情報処理装置１は、本発明にかかるプログラムを実行可能であれば、任意のコンピュータ装置を用いることができる。この場合、上述の各処理を実行するためのプログラムを格納した媒体（フレクシブルディスク、ＣＤ−ＲＯＭなど）から当該プログラムをコンピュータ装置にインストールすることにより、上述の処理を実行する情報処理装置１を構成することができる。
【００５８】
また、各種通信手段を用いてコンピュータ装置にプログラムを供給することが可能であり、この場合コンピュータ装置にプログラムを供給するための手段は任意である。例えば、プログラムを搬送波に重畳させ、通信回線、通信ネットワーク、通信システムなどを介して供給してもよい。
【００５９】
また、上記実施の形態では、再割り当ての処理を端末からの接続要求／切断要求の都度、または予め設定した時間が経過した時点で行っているが、図６（ｃ）の割当条件定義ファイル１６に示すように割り当て処理の日時１６３または割り当て処理の曜日・時間１６４を設定し、設定した日時や曜日及び時間に一致した時点で割り当て処理を行うようにしてもよい。
【００６０】
【発明の効果】
本発明によれば、ネットワークに接続中の端末を対象として、プリンタ毎の負荷が分散するように端末を自動的に割り当てるので、プリンタの設定のための煩雑な作業が不要となり、さらに端末のユーザが任意のプリンタを選択する場合に発生する特定のプリンタに負荷が集中する事態も防げる。
また、接続中の端末台数とプリンタ１台当りの端末の限度台数を基に使用可能なプリンタ台数を決定し、各端末に決定された台数のプリンタを割り当てることによりネットワークに接続されたプリンタの一部を休止させるので、無駄な電力の消費を減少させ、プリンタの消耗を防ぎ、騒音を減少させる効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態によるネットワーク全体の構成図である。
【図２】サーバ１の構成を示すブロック図である。
【図３】端末２の構成を示すブロック図である。
【図４】図２に示すサーバ１で使用するデータファイルの内容を示す図であり、出力先テーブル１４の内容を示す。
【図５】図２に示すサーバ１で使用するデータファイルの内容を示す図であり、端末接続テーブル１５の内容を示す。
【図６】図２に示すサーバ１で使用するデータファイルの内容を示す図であり、（ａ）割当条件定義ファイル１６、（ｂ）割当ファイル１７（端末２で使用する割当ファイル２３も同じ内容）及び（ｃ）割当条件定義ファイル１６の第２の実施例の内容を示す。
【図７】端末接続テーブル１５と出力先テーブル１４との関連を示す図であり、（ａ）割り当て状態１から（ｂ）割り当て状態２に状態が遷移する例を示している。
【図８】（ａ）端末接続テーブル１５と（ｂ）出力先テーブル１４に関するアドレスを示す図である。
【図９】サーバ１におけるプリンタの割り当て制御の動作を説明するためのフローチャートである。
【図１０】図９に示す追加割り当て処理の動作を説明するためのフローチャートである。
【図１１】図９に示す割り当て処理の動作を説明するためのフローチャートである。
【図１２】図１１に示す最適割当台数ＮＰａの算出処理の動作を説明するためのフローチャートである。
【図１３】図１１に示す再割当の出力処理の動作を説明するためのフローチャートである。
【図１４】図１１に示す再割当の入れ替え処理の動作を説明するためのフローチャートである。
【図１５】図９に示す割り当て処理の第２の実施例の動作を説明するためのフローチャートである。
【符号の説明】
１  サーバ
２  端末
３  プリンタ（ネットワーク接続）
４  プリンタ（ローカル接続）
５  通信ネットワーク
１０  サーバモジュール
１１  割当管理モジュール
１２  出力モジュール
１３  プリンタ制御モジュール（ＯＳ）
１４  出力先テーブル
１５  端末接続テーブル
１６  割当条件定義ファイル
１７  割当ファイル
１８  プリントファイル
２０  アプリケーション
２１  プリントＡＰＩ
２２  端末モジュール
２３  割当ファイル
２４  スプールファイル
【図１】
2004213231.tif 000003
【図２】
2004213231.tif 000004
【図３】
2004213231.tif 000005
【図４】
2004213231.tif 000006
【図５】
2004213231.tif 000007
【図６】
2004213231.tif 000008
【図７】
2004213231.tif 000009
【図８】
2004213231.tif 000010
【図９】
2004213231.tif 000011
【図１０】
2004213231.tif 000012
【図１１】
2004213231.tif 000013
【図１２】
2004213231.tif 000014
【図１３】
2004213231.tif 000015
【図１４】
2004213231.tif 000016
【図１５】
2004213231.tif 000017