(57)【要約】【課題】システム内にログを蓄積するサーバーを冗長化して構成する場合において、メインサーバーの停止によりメインサーバーとの間でログの同期がとれない状況でも、ネットワーク負荷の増加を回避しつつ同期がとれるようにする。【解決手段】サブプリントサーバー３０は、印刷ログをメインプリントサーバーに蓄積されている印刷ログと定期的に同期させる同期処理部３５と、停止中のメインプリントサーバーに代わって印刷ジョブを受け付けると、プリンターに蓄積されている印刷ログと印刷ログ蓄積部４３に蓄積されている印刷ログとの差分をプリンターから取得し、印刷ログ蓄積部４３に反映することによってメインプリントサーバーの印刷ログと同期させる差分情報取得処理部３６と、印刷ジョブが印刷ログ等から得られる実行制限に反しない場合にプリンターに印刷を指示する印刷指示処理部３３と、を有する。【選択図】図５
2018032145.tif 000002
【特許請求の範囲】
【請求項１】
メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を処理装置に指示する指示手段と、
処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段と、
前記ログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段と、
処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段と、
を有し、
前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とするサブサーバー。
【請求項２】
前記処理装置に実行を指示した処理に関する処理管理情報を記憶する処理管理情報記憶手段を有し、
前記同期手段は、前記処理管理情報記憶手段に記憶される処理管理情報を前記メインサーバーに記憶されている処理管理情報と定期的に同期させ、
前記差分取得手段は、処理の実行要求を受け付けたときに前記処理装置に記憶されている処理管理情報と前記処理管理情報記憶手段に記憶されている処理管理情報との差分を前記処理装置から取得して前記処理管理情報記憶手段に反映し、
前記指示手段は、実行要求された処理が、前記差分取得手段により処理管理情報の差分が反映された前記処理管理情報記憶手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とする請求項１に記載のサブサーバー。
【請求項３】
処理の実行要求受付後に前記メインサーバーの再稼動が検出された場合、前記差分取得手段により取得された差分を前記メインサーバーへ提供する提供手段を有することを特徴とする請求項１又は２に記載のサブサーバー。
【請求項４】
処理を実行し、その実行結果を含むログを生成、蓄積する１又は複数の処理装置と、
処理の実行要求に応じて当該処理の実行を当該処理装置に指示し、当該処理の実行に伴い当該処理装置により生成されたログを取得する複数のサーバーと、
を有し、
前記サーバーは、
処理の実行要求の受付順として最高の優先順位が割り振られたメインサーバーと、
前記メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を前記処理装置に指示し、またそれぞれに異なる優先順位が割り振られた１又は複数のサブサーバーと、
により構成され、
前記各サブサーバーは、
前記メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を前記処理装置に指示する指示手段と、
処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段と、
前記ログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段と、
処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段と、
を有し、
前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示する、
ことを特徴とする処理実行システム。
【請求項５】
前記各サブサーバーは、
処理の実行要求受付後、優先順位が上位のサーバーの再稼動が検出された場合、再稼動が検出されたサーバーの中で優先順位が直上のサーバーに蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を当該優先順位が直上のサーバーへ提供する第１提供手段、
を有することを特徴とする請求項４に記載の処理実行システム。
【請求項６】
前記各サブサーバーは、
再稼動後、いずれかの下位の前記サブサーバーからログの差分が提供された場合、その差分を前記ログ蓄積手段に反映すると共に、優先順位が上位のサーバーの再稼動が検出された場合、再稼動が検出されたサーバーの中で優先順位が直上のサーバーに蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を当該優先順位が直上のサーバーへ提供する第２提供手段、
を有することを特徴とする請求項５に記載の処理実行システム。
【請求項７】
コンピュータを、
メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を処理装置に指示する指示手段、
処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段、
処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段、
として機能させ、
前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サブサーバー、処理実行システム及びプログラムに関する。
【背景技術】
【０００２】
印刷課金システムにおいて、システムがダウンした場合でも課金や設定した印刷制限を確実に行えるようにするために、印刷ログをサーバーに蓄積することで印刷の実行履歴を残すようにし、更にサーバーを冗長化してシステムを構築する技術が提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３４５５５８号公報
【特許文献２】特開２０１４−０５２８７９号公報
【特許文献３】特開２０１１−１９７９４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
印刷ログをそれぞれに蓄積するサーバーをシステム内に冗長化して構成する場合、サブサーバーの印刷ログは、メインサーバーに蓄積されている印刷ログと定期処理により同期される。ただ、メインサーバーがダウンしてしまうとサーバー間で印刷ログの同期が取ることはできない。従って、サブサーバーがメインサーバーに代わって印刷ログを利用して課金や印刷制限の判断を行おうとしても、同期されていない印刷ログを参照することになるので正しく機能させることができるとは限らない。
【０００５】
本発明は、システム内にログを蓄積するサーバーを冗長化して構成する場合において、メインサーバーの停止によりメインサーバーとの間でログの同期がとれない状況でも、ネットワーク負荷の増加を回避しつつ同期がとれるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るサブサーバーは、メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を処理装置に指示する指示手段と、処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段と、前記ログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段と、処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段と、を有し、前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とする。
【０００７】
また、前記処理装置に実行を指示した処理に関する処理管理情報を記憶する処理管理情報記憶手段を有し、前記同期手段は、前記処理管理情報記憶手段に記憶される処理管理情報を前記メインサーバーに記憶されている処理管理情報と定期的に同期させ、前記差分取得手段は、処理の実行要求を受け付けたときに前記処理装置に記憶されている処理管理情報と前記処理管理情報記憶手段に記憶されている処理管理情報との差分を前記処理装置から取得して前記処理管理情報記憶手段に反映し、前記指示手段は、実行要求された処理が、前記差分取得手段により処理管理情報の差分が反映された前記処理管理情報記憶手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とする。
【０００８】
また、処理の実行要求受付後に前記メインサーバーの再稼動が検出された場合、前記差分取得手段により取得された差分を前記メインサーバーへ提供する提供手段を有することを特徴とする。
【０００９】
本発明に係る処理実行システムは、処理を実行し、その実行結果を含むログを生成、蓄積する１又は複数の処理装置と、処理の実行要求に応じて当該処理の実行を当該処理装置に指示し、当該処理の実行に伴い当該処理装置により生成されたログを取得する複数のサーバーと、を有し、前記サーバーは、処理の実行要求の受付順として最高の優先順位が割り振られたメインサーバーと、前記メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を前記処理装置に指示し、またそれぞれに異なる優先順位が割り振られた１又は複数のサブサーバーと、により構成され、前記各サブサーバーは、前記メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を前記処理装置に指示する指示手段と、処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段と、前記ログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段と、処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段と、を有し、前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とする。
【００１０】
また、前記各サブサーバーは、処理の実行要求受付後、優先順位が上位のサーバーの再稼動が検出された場合、再稼動が検出されたサーバーの中で優先順位が直上のサーバーに蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を当該優先順位が直上のサーバーへ提供する第１提供手段を有することを特徴とする。
【００１１】
また、前記各サブサーバーは、再稼動後、いずれかの下位の前記サブサーバーからログの差分が提供された場合、その差分を前記ログ蓄積手段に反映すると共に、優先順位が上位のサーバーの再稼動が検出された場合、再稼動が検出されたサーバーの中で優先順位が直上のサーバーに蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を当該優先順位が直上のサーバーへ提供する第２提供手段を有することを特徴とする。
【００１２】
本発明に係るプログラムは、コンピュータを、メインサーバーが停止しているときに前記メインサーバーに代わって受け付けた処理の実行要求に応じて当該処理の実行を処理装置に指示する指示手段、処理の実行に応じて前記処理装置で生成されたログが蓄積されるログ蓄積手段に蓄積されるログを、前記処理装置による処理の実行に伴い生成され前記メインサーバーに蓄積されるログと定期的に同期させる同期手段、処理の実行要求を受け付けたときに前記処理装置に蓄積されているログと前記ログ蓄積手段に蓄積されているログとの差分を前記処理装置から取得し、前記ログ蓄積手段に反映する差分取得手段、として機能させ、前記指示手段は、実行要求された処理が、前記差分取得手段によりログの差分が反映された前記ログ蓄積手段を参照することで得られる実行制限に反しない場合に前記処理装置に当該処理の実行を指示することを特徴とする。
【発明の効果】
【００１３】
請求項１に記載の発明によれば、システム内にログを蓄積するサーバーを冗長化して構成する場合において、メインサーバーの停止によりメインサーバーとの間でログの同期がとれない状況でも、ネットワーク負荷の増加を回避しつつ同期をとることができる。
【００１４】
請求項２に記載の発明によれば、処理が実行されたことにより生成されるログに加えて、実行されていない処理に関する処理管理情報についても同期をとることができる。
【００１５】
請求項３に記載の発明によれば、メインサーバーが再稼動したときに、メインサーバーとの間で同期を取ることができる。
【００１６】
請求項４に記載の発明によれば、メインサーバーの停止によりメインサーバーとの間でログの同期がとれない状況でも、サブサーバーにネットワーク負荷の増加を回避しつつ同期をとらせることができる。
【００１７】
請求項５に記載の発明によれば、再稼動した直上のサーバーとの間でログの同期をとることができる。
【００１８】
請求項６に記載の発明によれば、下位のサブサーバー及び再稼動したサーバーとの間でログの同期をとることができる。
【００１９】
請求項７に記載の発明によれば、システム内にログを蓄積するサーバーを冗長化して構成する場合において、メインサーバーの停止によりメインサーバーとの間でログの同期がとれない状況でも、ネットワーク負荷の増加を回避しつつ同期をとることができる。
【図面の簡単な説明】
【００２０】
【図１】本実施の形態における印刷課金システムの全体構成図である。
【図２】本実施の形態におけるメインとなるプリントサーバーのハードウェア構成図である。
【図３】本実施の形態におけるメインとなるプリントサーバーのブロック構成図である。
【図４】本実施の形態において各サーバーに設定されるジョブ管理情報のデータ構成の一例を示した図である。
【図５】本実施の形態におけるサブプリントサーバーのブロック構成図である。
【図６】本実施の形態におけるプリンターのブロック構成図である。
【図７】本実施の形態においてプリンターに設定されるジョブ管理情報のデータ構成の一例を示した図である。
【図８】本実施の形態における基本課金処理を示したシーケンス図である。
【図９Ａ】本実施の形態のサブプリントサーバーにおける課金処理を示したシーケンス図である。
【図９Ｂ】図９Ａに続くシーケンス図である。
【図１０Ａ】本実施の形態における他の課金処理を示したシーケンス図である。
【図１０Ｂ】図１０Ａに続くシーケンス図である。
【発明を実施するための形態】
【００２１】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００２２】
図１は、本実施の形態における印刷課金システムの全体構成図である。図１には、メインプリントサーバー１０、サブプリントサーバー３０、ユーザ端末１、課金装置２及びプリンター５０がネットワーク３に接続された構成が示されている。本実施の形態では、プリントサーバーとしてメインとなるプリントサーバー（メインプリントサーバー）１０とこれに冗長させたサブプリントサーバー３０を有している。なお、これらを総称する場合は、「プリントサーバー」と称する。また、本実施の形態では、図１に示したように２台のサブプリントサーバー３０ａ，３０ｂを設けているが、１又は複数台用意してよい。これらを総称する場合には、「サブプリントサーバー３０」と記載する。
【００２３】
プリントサーバーは、課金装置２からの印刷指示に応じて受け付けた印刷ジョブをプリンター５０へ送信することで印刷の実行指示を出す。メインプリントサーバー１０は、稼動している間は優先的に印刷の実行制御を行う。
【００２４】
サブプリントサーバー３０は、メインプリントサーバー１０と同等の機能を有するプリントサーバーであるが、メインプリントサーバー１０が停止しているときにメインプリントサーバー１０に代わって受け付けた印刷の実行要求に応じてプリンター５０に印刷の実行指示を出す。
【００２５】
以上説明したように、メインプリントサーバー１０がメインとなるプリントサーバーであり、通常は、ユーザ端末１からの印刷ジョブを受け付けて印刷の実行を制御する。従って、プリントサーバーの中では、印刷指示の受付順として最高の優先順位が割り振られているといえる。一方、サブプリントサーバー３０は、メインプリントサーバー１０が停止しているときに指示を受け付ける。従って、サブプリントサーバー３０には、メインプリントサーバー１０より低い優先順位が割り振られているといえる。そして、複数のサブプリントサーバー３０が同時にメインプリントサーバー１０を代行することはないので、それぞれに異なる優先順位が割り振られる。本実施の形態では、サブプリントサーバー３０ａがサブプリントサーバー３０ｂより優先順位が高いものとして説明する。
【００２６】
プリンター５０は、プリントサーバーから送信されてきた印刷ジョブに基づき印刷を実行する。プリンター５０は、印刷課金システム内に複数用意されていてもよいが、本実施の形態では、説明の便宜上、特に断らない限り１台用意されているものとして説明する。ユーザ端末１は、印刷したいユーザにより利用される情報処理装置である。例えば、パーソナルコンピュータ（ＰＣ）により実現する。図１では、ユーザ端末１を１台のみ図示したが、ネットワーク３には複数のユーザ端末１が接続されていてもよい。課金装置２は、印刷に伴いユーザに課金する際に用いられる装置である。課金装置２は、コインキット（図示せず）への投入金額あるいはユーザによる前払金額の残高が、ユーザにより要求された印刷内容（用紙サイズ、枚数等）に足りている場合に印刷ジョブを受け付けたプリントサーバーに印刷の指示を出す。
【００２７】
図２は、本実施の形態におけるメインプリントサーバー１０を形成するサーバコンピュータのハードウェア構成図である。本実施の形態においてメインプリントサーバー１０を形成するサーバコンピュータは、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、メインプリントサーバー１０は、図２に示したようにＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、ハードディスクドライブ（ＨＤＤ）６４、入力手段として設けられたマウス６５とキーボード６６、及び表示装置として設けられたディスプレイ６７をそれぞれ接続する入出力コントローラ６８、通信手段として設けられたネットワークインタフェース（ＩＦ）６９を内部バス７０に接続して構成される。
【００２８】
サブプリントサーバー３０は、メインプリントサーバー１０と同様にハードウェアを構成してもよいが、本実施の形態では、サブであるため入出力手段を設けていない。すなわち、管理者は、料金情報等の設定をメインプリントサーバー１０のみから行い、サブプリントサーバー３０から設定できない。
【００２９】
プリンター５０は、印刷機能を搭載した画像形成装置により実現することを想定している。従って、プリンター５０には、コンピュータが内蔵されており、スキャナやプリンタエンジン、ネットワークインタフェースに加えてＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ等が搭載されている。
【００３０】
図３は、本実施の形態におけるメインプリントサーバー１０のブロック構成図である。本実施の形態におけるメインプリントサーバー１０は、ジョブ受付部１１、ジョブ管理部１２、印刷指示処理部１３、印刷ログ取得部１４、同期処理部１５、サーバー連携処理部１６、課金情報管理部１７、ジョブ記憶部２１、ジョブ管理情報記憶部２２、印刷ログ蓄積部２３、料金情報記憶部２４及び残高情報記憶部２５を有している。なお、本実施の形態の説明に用いない構成要素については図３から省略している。ジョブ受付部１１は、ユーザ端末１から送られてくる印刷の実行要求を受け付ける。この実行要求には印刷ジョブが含まれている。ジョブ管理部１２は、ジョブ受付部１１により受け付けられた印刷ジョブの管理を行う。印刷指示処理部１３は、ジョブ受付部１１により受け付けられた印刷ジョブに基づく印刷が可能かどうかを判断し、印刷可の場合に当該印刷ジョブをプリンター５０に送信することによって印刷指示を出す。印刷ログ取得部１４は、通常処理としてプリンター５０から送られてくる印刷ログを取得して印刷ログ蓄積部２３に登録する。同期処理部１５は、印刷ログ蓄積部２３とサブプリントサーバー３０の印刷ログ蓄積部４３とを同期させる。サーバー連携処理部１６は、メインプリントサーバー１０が停止し、その後再稼動したときにサブプリントサーバー３０と連携して印刷ログ及びジョブ管理情報の同期をとるための処理を実行する。課金情報管理部１７は、管理者等の設定に従い、料金情報記憶部２４及び残高情報記憶部２５に設定されている課金情報としての料金情報及び残高情報の追加、更新、削除等の情報管理を行う。
【００３１】
ジョブ記憶部２１には、ジョブ受付部１１により受け付けられた印刷ジョブが記憶される。印刷ログ蓄積部２３には、プリンター５０による印刷の実行終了に伴い生成される印刷ログが蓄積される。印刷ログには、印刷ジョブのＩＤ、発行元（ユーザＩＤやユーザ端末１のＩＰアドレス等）、送信元（プリントサーバーのＩＰアドレス等）、実行開始／終了日時、終了状態（正常／異常、エラーコード）、印刷属性情報（消費した用紙サイズ及びその数量、カラーモード等）が含まれている。料金情報記憶部２４には、１枚の印刷に要する料金が用紙サイズ毎、カラーモード（カラー／白黒）毎、あるいはユーザ毎に設定された料金表が料金情報として設定登録される。残高情報記憶部２５には、ユーザ（アカウント）毎に事前に支払われている印刷代金の残金が設定される。
【００３２】
図４は、本実施の形態におけるプリントサーバー側のジョブ管理情報記憶部２２，４２に登録されるジョブ管理情報のデータ構成の一例を示した図である。ジョブ管理情報は、印刷課金システム内において当該印刷ジョブを識別する識別情報としての印刷ジョブＩＤに、プリンターＩＤ、プリンタージョブＩＤ、ユーザ端末ＩＤ、アカウントＩＤ及び印刷属性情報が対応付けして設定される。プリンターＩＤには、当該印刷ジョブに基づき印刷を実行するプリンター５０を識別するための情報が設定される。本実施の形態では、ＩＰアドレスが設定される。プリンタージョブＩＤには、当該プリンター５０が持つジョブ管理情報（図７）と紐付けるために当該プリンター５０固有のジョブの識別情報が設定される。ジョブ管理情報生成時には、まだどのプリンター５０が利用されるかは不明なので、プリンターＩＤ及びプリンタージョブＩＤには、印刷を実行するプリンター５０が特定されてから設定される。ユーザ端末ＩＤには、印刷ジョブ送信元のユーザ端末１のＩＰアドレスが設定される。アカウントＩＤには、ユーザの印刷代金が事前に振り込まれている口座のアカウントの識別情報（アカウントＩＤ）が設定される。前述した残高情報は、このアカウントＩＤに当該アカウントの残高が対応付けされている。印刷属性情報には、印刷の属性情報が設定される。例えば、図４に例示したように、用紙サイズ、カラーモード、部数等が設定される。
【００３３】
前述したメインプリントサーバー１０における各記憶手段２１〜２５に記憶される情報のデータ構成は、従前と同じでよい。
【００３４】
メインプリントサーバー１０における各構成要素１１〜１７は、メインプリントサーバー１０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ６１で動作するプログラムとの協調動作により実現される。また、各記憶手段２１〜２５は、メインプリントサーバー１０に搭載されたＨＤＤ６４にて実現される。あるいは、ＲＡＭ６３又は外部にある記憶手段をネットワーク経由で利用してもよい。
【００３５】
図５は、本実施の形態におけるサブプリントサーバー３０のブロック構成図である。本実施の形態におけるサブプリントサーバー３０は、ジョブ受付部３１、ジョブ管理部３２、印刷指示処理部３３、印刷ログ取得部３４、同期処理部３５、差分情報取得処理部３６、サーバー連携処理部３７、ジョブ記憶部４１、ジョブ管理情報記憶部４２、印刷ログ蓄積部４３、料金情報記憶部４４及び残高情報記憶部４５を有している。なお、本実施の形態の説明に用いない構成要素については図５から省略している。サブプリントサーバー３０は、メインプリントサーバー１０が停止しているときにメインプリントサーバー１０に代わって受け付けた印刷ジョブを処理するので、印刷の実行制御に関しては、基本的にはメインプリントサーバー１０と同等の機能を有している。
【００３６】
ジョブ受付部３１は、ユーザ端末１から送られてくる印刷の実行要求を受け付ける。ジョブ管理部３２は、ジョブ受付部３１により受け付けられた印刷ジョブの管理を行う。印刷指示処理部３３は、メインプリントサーバー１０が停止しているときにメインプリントサーバー１０に代わって受け付けた処理の実行要求に応じて当該処理の実行を処理装置に指示する指示手段として機能する。印刷ログ取得部３４は、メインプリントサーバー１０に代わって処理している際にプリンター５０から送られてくる印刷ログを取得して印刷ログ蓄積部４３に登録する。同期処理部３５は、同期処理部１５と連携して、印刷ログ蓄積部４３に蓄積される印刷ログを、メインプリントサーバー１０の印刷ログ蓄積部２３に蓄積される印刷ログと定期的に同期させる同期手段として機能する。差分情報取得処理部３６は、印刷の実行要求を受け付けたときにプリンター５０に蓄積されている印刷ログと印刷ログ蓄積部４３に蓄積されている印刷ログとの差分をプリンター５０から取得し、印刷ログ蓄積部４３に反映する差分取得手段として機能する。サーバー連携処理部３７は、印刷の実行要求受付後プリンター５０への印刷指示を出す前に上位のプリントサーバーの再稼動が検出された場合、再稼動が検出されたプリントサーバーの中で優先順位が直上のプリントサーバーに蓄積されているログと、印刷ログ蓄積部４３に蓄積されている印刷ログとの差分を、当該優先順位が直上のプリントサーバーへ提供する第１提供手段として機能する。更に、サーバー連携処理部３７は、自サブプリントサーバー３０の再稼動後、いずれかの下位のサブプリントサーバー３０から印刷ログの差分が提供された場合、その差分を印刷ログ蓄積部４３に反映すると共に、優先順位が上位のプリントサーバーの再稼動が検出された場合、再稼動が検出されたプリントサーバーの中で優先順位が直上のプリントサーバーに蓄積されている印刷ログと印刷ログ蓄積部４３に蓄積されている印刷ログとの差分を当該優先順位が直上のプリントサーバーへ提供する第２提供手段として機能する。このように、サーバー連携処理部３７は、他のプリントサーバーと連携して印刷ログ及びジョブ管理情報を同期させる。
【００３７】
各記憶手段４１〜４５のデータ構成は、メインプリントサーバー１０における各記憶手段２１〜２５のデータ構成と同じなので説明を省略する。
【００３８】
サブプリントサーバー３０における各構成要素３１〜３７は、サブプリントサーバー３０を形成するコンピュータと、コンピュータに搭載されたＣＰＵで動作するプログラムとの協調動作により実現される。また、各記憶手段４１〜４５は、サブプリントサーバー３０に搭載されたＨＤＤにて実現される。あるいは、ＲＡＭ又は外部にある記憶手段をネットワーク経由で利用してもよい。
【００３９】
図６は、本実施の形態におけるプリンター５０のブロック構成図である。本実施の形態におけるプリンター５０は、ジョブ取得部５１、印刷実行部５２、印刷終了時処理部５３、差分情報送信処理部５４、ジョブ記憶部５５、ジョブ管理情報記憶部５６及び印刷ログ蓄積部５７を有している。なお、本実施の形態の説明に用いない構成要素については図６から省略している。ジョブ取得部５１は、印刷の実行指示としてプリントサーバーから送信されてくる印刷ジョブを取得し、ジョブ記憶部５５に登録する。印刷実行部５２は、取得された印刷ジョブに基づき印刷処理を実行する。印刷終了時処理部５３は、印刷ログを生成、生成した印刷ログの印刷ログ蓄積部５７への登録など印刷実行部５２による印刷に実行終了時に行うべき処理を実行する。これらの構成要素は従前と同じでよい。差分情報送信処理部５４は、サブプリントサーバー３０からの送信要求に応じてサブプリントサーバー３０に蓄積されている印刷ログと印刷ログ蓄積部５７に蓄積されている印刷ログとの差分を抽出して、当該サブプリントサーバー３０へ送信する。同様に、サブプリントサーバー３０に記憶されているジョブ管理情報と印刷ログ蓄積部５７に記憶されているジョブ管理情報との差分を抽出して、当該サブプリントサーバー３０へ送信する。
【００４０】
図７は、本実施の形態におけるプリンター５０のジョブ管理情報記憶部５６に登録されるジョブ管理情報のデータ構成の一例を示した図である。プリンター５０におけるジョブ管理情報は、後述するように、メインプリントサーバー１０から取得したジョブ管理情報から印刷ジョブＩＤ及びプリンターＩＤを削除し、実行フラグを付加して生成される。実行フラグは、実行が終了した印刷ジョブに対応するジョブ管理情報に対して実行済みを示す“実行済”が設定される。
【００４１】
プリンター５０における各構成要素５１〜５４は、プリンター５０に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵで動作するプログラムとの協調動作により実現される。また、各記憶手段５５〜５７は、プリンター５０に搭載されたＨＤＤにて実現される。あるいは、ＲＡＭ又は外部にある記憶手段をネットワーク経由で利用してもよい。
【００４２】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＵＳＢメモリ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵがプログラムを順次実行することで各種処理が実現される。
【００４３】
以下、本実施の形態における動作について説明する。
【００４４】
本実施の形態において印刷の実行に伴い課金を行うためには、管理者等によって料金表及びユーザ毎の残高がメインプリントサーバー１０に事前に設定されている必要がある。そのために、管理者等はメインプリントサーバー１０のマウス６５やキーボード６６を操作して各ユーザの料金表及び残金を入力する。課金情報管理部１７は、入力された情報を受け付けると、料金表及び残高をそれぞれ料金情報及び残高情報として、対応する料金情報記憶部２４及び残高情報記憶部２５に登録する。
【００４５】
以下、本実施の形態における動作について、メインプリントサーバー１０が主体的に動作して実行される基本課金処理及び同期処理、サブプリントサーバーによる課金処理、そしてダウンしていた上位のプリントサーバーが再稼動したときの課金処理に分けて説明する。
【００４６】
＜基本課金処理＞
基本課金処理は、正常に稼動しているメインプリントサーバー１０により実行される課金処理である。以下、この基本課金処理について図８に示したシーケンス図を用いて説明する。
【００４７】
ユーザ端末１は、ユーザからの印刷要求に応じてプリンタドライバなどによって生成された印刷ジョブをメインプリントサーバー１０へ送信する。
【００４８】
メインプリントサーバー１０において、ジョブ受付部１１は、ユーザ端末１から送信されてきた印刷ジョブを受け付けると（ステップ１０１）、印刷ジョブをジョブ記憶部２１に登録する（ステップ１０２）。ジョブ管理部１２は、ジョブ受付部１１により受け付けられた印刷ジョブを解析することによってジョブ管理情報を生成してジョブ管理情報記憶部２２に記憶されているジョブテーブルに登録する（ステップ１０３）。なお、ジョブ管理部１２は、印刷ログの取得等により印刷ジョブの実行終了が確認されると該当するジョブ管理情報をジョブ管理情報記憶部２２から削除する。
【００４９】
ユーザ端末１を用いて印刷要求をしたユーザは、課金装置２の設置位置まで移動し、自己のユーザＩＤ（アカウントＩＤ）を入力する。課金装置２は、この入力に応じて当該ユーザのユーザＩＤを含む印刷ジョブ一覧取得要求をメインプリントサーバー１０へ送る。
【００５０】
メインプリントサーバー１０におけるジョブ管理部１２がこの要求に応じて当該ユーザの印刷ジョブの一覧を課金装置２へ送信すると、課金装置２は、その印刷ジョブの一覧を画面表示する（ステップ２１）。ユーザは、その一覧の中から実行させたい印刷ジョブを選択し、必要により印刷に必要な代金を入金する。なお、本実施の形態では、ユーザは前払いをしており、その残件が残高情報に設定されているものとする。課金装置２は、当該ユーザに残高があることを確認すると（ステップ２２）、選択された印刷ジョブの実行、すなわち印刷をメインプリントサーバー１０に指示する（ステップ２３）。
【００５１】
なお、本実施の形態では、課金装置２とプリンター５０とは、組にして構成されていることを想定しているので、ユーザの課金装置２までの移動がプリンター５０の選択に相当する。
【００５２】
メインプリントサーバー１０における印刷指示処理部１３は、課金装置２からの印刷指示を受け取ると、残高情報に基づく当該ユーザの入金額の確認、当該ユーザの許容された印刷かどうか、例えば、許容されている用紙サイズ、カラーモード、所定期間内における印刷上限枚数等の実行制限に反していないか確認することで印刷の可否を判断する（ステップ１０４）。なお、ここでは、印刷可と判断されたものとして説明を続けるが、印刷不可の場合は、その旨を課金装置２に送信し、画面に表示させるなどして印刷の拒否の旨をユーザに通知する。なお、ジョブ管理部１２は、プリンター５０が特定されたことで、ジョブ管理情報に、当該プリンター５０のプリンターＩＤ及びプリンタージョブＩＤを設定する。印刷可と判断すると、印刷指示処理部１３は、該当する印刷ジョブ及びジョブ管理情報をプリンター５０へ送信することで印刷の実行を指示する（ステップ１０５）。
【００５３】
プリンター５０におけるジョブ取得部５１がメインプリントサーバー１０から送信されてきた印刷ジョブを取得すると、その印刷ジョブをジョブ記憶部５５に登録し（ステップ５０１）、取得したジョブ管理情報に基づきプリンター５０におけるジョブ管理情報を生成してジョブ管理情報記憶部５６に登録する（ステップ５０２）。この時点では、印刷ジョブは実行されていないので、実行フラグには、実行されていない旨を示す値が設定されており、例えばブランクのままである。
【００５４】
印刷実行部５２は、受け付けた印刷ジョブを処理することで印刷を実行する（ステップ５０３）。印刷が終了すると、印刷実行部５２は、その実行結果を含む印刷ログを生成して印刷ログ蓄積部５７に登録することで蓄積させる（ステップ５０４）。また、終了した印刷ジョブをジョブ記憶部５５から削除し、上記のように該当するジョブ管理情報の実行フラグに“実行済”を設定する。
【００５５】
また、印刷終了時処理部５３は、印刷終了の後処理として、実際の印刷に基づく用紙サイズ、枚数、カラーモード等課金に必要な課金情報を生成して課金装置２に送信する（ステップ５０５）。
【００５６】
課金装置２は、プリンター５０から送信されてきた課金情報に基づき実際に要した料金を当該ユーザの残高情報から差し引いて課金する（ステップ２４）。なお、課金装置２は、メインプリントサーバー１０経由で課金情報を取得するようにしてもよい
【００５７】
また、印刷終了時処理部５３は、印刷ログをメインプリントサーバー１０へ送信する（ステップ５０６）。
【００５８】
メインプリントサーバー１０における印刷ログ取得部１４は、プリンター５０から送信されてきた印刷ログを印刷ログ蓄積部２３に書き込むことで蓄積させる（ステップ１０６）。メインプリントサーバー１０は、印刷ログが送られてくることによって、該当するジョブの実行終了を認識することになるが、ジョブの実行終了に伴い、該当するジョブをジョブ記憶部２１から削除し、該当するジョブに対応するジョブ管理情報をジョブ管理情報記憶部２２から削除する。
【００５９】
以上がメインとなるメインプリントサーバー１０が正常に稼動しているときに実施される基本的な印刷に伴う課金処理の流れである。
【００６０】
＜同期処理＞
同期処理というのは、サブプリントサーバー３０が持つ情報を、メインプリントサーバー１０が持っている情報と同一にする処理のことをいう。具体的には、以下に示す情報を同期対象とする。
【００６１】
すなわち、メインプリントサーバー１０における同期処理部１５は、ジョブ記憶部２１、ジョブ管理情報記憶部２２、印刷ログ蓄積部２３、料金情報記憶部２４及び残高情報記憶部２５それぞれに記憶されている情報を定時処理により周期的に各サブプリントサーバー３０ａ，３０ｂへ送信する。本実施の形態では、例えば１日に１回、同期処理部１５により情報の同期が施される。
【００６２】
＜サブプリントサーバーによる課金処理＞
この処理は、何らかの理由によりメインプリントサーバー１０が停止した場合にメインプリントサーバー１０に代わって実施される処理である。つまり、サブプリントサーバー３０は、ユーザ端末１から印刷ジョブをメインプリントサーバー１０に代わって受け付け、前述した印刷の実行を制御する。本実施の形態のように、複数のサブプリントサーバー３０ａ，３０ｂを用意している場合、サブプリントサーバー３０のうち稼動中であって優先順位の最も高いサブプリントサーバー３０がメインプリントサーバー１０に代わって印刷の実行制御を行う。サブプリントサーバー３０及びユーザ端末１は、メインプリントサーバー１０が停止しているかどうかを含め、周知の手法により各プリントサーバーの稼動状態を検出できる。このサブプリントサーバー３０による課金処理について図９に示したシーケンス図を用いて説明する。ここでは、稼働中であるサブプリントサーバー３０ａがメインプリントサーバー１０を代行する場合について説明する。これは、１台のサブプリントサーバーのみが用意されている場合と同じ処理となる。
【００６３】
なお、図８に示した基本課金処理では、メインプリントサーバー１０が実行する処理であることからステップ番号として１００番台を用いた。図９では、サブプリントサーバー３０が実行する処理であることからステップ番号として３００番台を用いるが、基本課金処理においてメインプリントサーバー１０が実行するものとして説明した処理と同じ処理には、下２桁に基本課金処理と同じ番号を付け、説明を適宜省略する。
【００６４】
ユーザ端末１は、印刷ジョブを稼動しているサブプリントサーバー３０ａへ送ると、サブプリントサーバー３０ａにおけるジョブ受付部３１は、ユーザ端末１から送信されてきた印刷ジョブを受け付け（ステップ３０１）、ジョブ記憶部４１に登録する（ステップ３０２）。そして、ジョブ管理部３２は、ジョブ管理情報を生成してジョブ管理情報記憶部４２に記憶されているジョブテーブルに登録する（ステップ３０３）。課金装置２は、ユーザにより選択された印刷ジョブの実行をサブプリントサーバー３０ａに対して指示する（ステップ２１〜２３）。
【００６５】
課金装置２からの印刷指示を受け取ると、サブプリントサーバー３０ａにおける差分情報取得処理部３６は、差分情報の送信をプリンター５０に指示する（ステップ３０７）。指示の際に送信する送信指示情報には、サブプリントサーバー３０ａの印刷ログ蓄積部４３に蓄積されている当該プリンター５０において生成された最新の印刷ログの日時（ジョブの終了日時や印刷ログの生成日時等）が含まれている。
【００６６】
プリンター５０における差分情報送信処理部５４は、サブプリントサーバー３０ａからの指示に応じて、送信指示に含まれている日時以降に生成された印刷ログを印刷ログ蓄積部４３に蓄積されている印刷ログとの差分として印刷ログ蓄積部５７から抽出する。また、差分情報送信処理部５４は、ジョブ管理情報記憶部５６に登録されているジョブ管理情報のうち実行済みでないジョブ管理情報を抽出する。差分情報送信処理部５４は、このようにして抽出した印刷ログ及びジョブ管理情報の差分を差分情報としてサブプリントサーバー３０ａへ送信する（ステップ５０７）。なお、タイミングによってはサブプリントサーバー３０ａが持っていてプリンター５０が持っていないジョブ管理情報も存在しうるが、送信対象とするのはサブプリントサーバー３０ａが持っていないがプリンター５０が持っているジョブ管理情報である。
【００６７】
なお、サブプリントサーバー３０ａは、課金装置２からの印刷指示に応じて、上記の通り印刷ジョブの実行先となるプリンター５０から差分情報を取得するが、システム内に複数のプリンター５０が設けられている場合には、各プリンター５０から印刷ログの差分及び実行されている印刷ジョブのジョブ管理情報を取得する。
【００６８】
サブプリントサーバー３０ａにおける差分情報取得処理部３６は、プリンター５０から差分情報を取得すると、差分情報に含まれている印刷ログを印刷ログ蓄積部４３に登録する（ステップ３０８）。また、差分情報に含まれているジョブ管理情報を追加することでジョブ管理情報記憶部４２のテーブルを更新する。なお、サブプリントサーバー３０ａが持っていてプリンター５０が持っていないジョブ管理情報も存在しうるが、このジョブ管理情報に対応する印刷ジョブは、印刷ログを参照することで実行済みであることが確認できるので削除する。
【００６９】
サブプリントサーバー３０ａは、以上の処理により実行済みの印刷ジョブの情報として印刷ログの差分を、未実行の印刷ジョブの情報としてジョブ管理情報の差分をそれぞれプリンター５０から取得し、この取得した差分情報に基づいて印刷ログ蓄積部４３及びジョブ管理情報記憶部４２の内容を、メインプリントサーバー１０における印刷ログ蓄積部２３及びジョブ管理情報記憶部２２の内容と同期させる。また、ステップ３０１における印刷ジョブの受付タイミングによっては、印刷ログ蓄積部４３及びジョブ管理情報記憶部４２は最新の状態になる。
【００７０】
例えば、プリントサーバー間の同期処理が毎日５時に１回だけ行っているとする。つまり、５時の時点でメインプリントサーバー１０とサブプリントサーバー３０との情報は同期されることで、サブプリントサーバー３０における各記憶手段４１〜４５の内容は、メインプリントサーバー１０における各記憶手段２１〜２５と同一であり最新の状態になる。その後、メインプリントサーバー１０が１０時に停止したために、サブプリントサーバー３０は、１０時０１分に印刷ジョブを受け付けたことで図９に示した上記処理が開始されることになる。
【００７１】
ところで、メインプリントサーバー１０が５時から１０時の間に印刷ジョブを受け付けていた場合、その印刷ジョブに対応するジョブ管理情報を生成し、プリンター５０に印刷の実行を指示することになる。プリンター５０では、その指示に応じて印刷を実行し印刷ログを生成しているかもしれない。また、実行されていない印刷ジョブに対しては、ジョブ管理情報に未実行分として登録されたままである。一方、メインプリントサーバー１０が５時から１０時の間に受け付けた印刷ジョブに関する情報は、同期処理の実行前であることからサブプリントサーバー３０には反映されない。このように、同期処理実行後からメインプリントサーバー１０が停止するまでの間にメインプリントサーバー１０が受け付けた印刷ジョブに関する情報は、プリンター５０には反映されているものの、サブプリントサーバー３０には反映されていない。
【００７２】
５時から１０時の間に印刷ジョブが実行されることで当該ユーザの残高は減っているはずだが、残高情報に関してもサブプリントサーバー３０には反映されていない。そうすると、サブプリントサーバー３０ａが受け付けた印刷ジョブの実行に際し、後段のサブプリントサーバー３０ａにおける印刷可否判断（ステップ３０４）において、当該ユーザの残高が足りているか、印刷上限枚数を超えないかどうかなどの実行制限を満たしているか、あるいは反しているかという判断が正確にできるとは限らない。
【００７３】
そこで、本実施の形態では、前述したように各プリンター５０から前述した差分情報を取得して印刷ログ及びジョブ管理情報を最新の状態にするようにした。本実施の形態では、印刷ログ等を最新の状態にするために各プリンター５０から印刷ログ等を取得するようにした。そして、サブプリントサーバー３０が持っていない印刷ログ等のみ、つまり差分のみを抽出して送信することで、印刷ログ全体を同期させる場合に比してネットワーク通信量の軽減を図ることが可能となる。
【００７４】
続いて、印刷指示処理部３３は、前述したように、ジョブ受付部３１により受け付けられた印刷ジョブの実行が、印刷を要求したユーザの残高や印刷枚数上限等の実行制限に反していないのかを確認して印刷の可否を判断することになるが（ステップ３０４）、この判断を行う際に、本実施の形態では、プリンター５０から取得した差分情報が反映された最新の状態の印刷ログ蓄積部４３を参照することで、直前の同期処理後に発生した課金金額や印刷枚数等の実行制限の根拠となる数値を最新の値に更新することができる。また、最新の状態のジョブ管理情報記憶部４２を参照することで、未実行分の印刷ジョブが先に実行されたことに伴い発生するであろう課金金額や印刷枚数等を予測できる。このため、印刷指示処理部３３は、受け付けられた印刷ジョブが、実行制限に反していないかどうか、つまり印刷の可否を正確に判断できる。
【００７５】
それ以降の処理は、基本課金処理と同じなので説明を省略する。
【００７６】
以上説明したように、本実施の形態においては、停止したメインプリントサーバー１０に代わって動作するサブプリントサーバー３０は、プリンター５０から差分情報を取得することによってメインプリントサーバー１０の印刷ログと同期を取ることが可能になる。印刷ログの同期をとる周期が長いと、プリントサーバー間の印刷ログが同期していない状態が長く続くため、周期を短くしたくなる。そうすると、ネットワークに負荷をかけてしまうことになる。本実施の形態においては、同期を取る周期が長く同期されていない状態が長く続くような場合でも、サブプリントサーバー３０の印刷ログを、メインプリントサーバー１０の印刷ログと同期させることが可能になる。
【００７７】
＜ダウンしていた上位のプリントサーバーが再稼動したときの課金処理＞
この処理は、何らかの理由によりメインプリントサーバー１０及びサブプリントサーバー３０ａが停止した場合にサブプリントサーバー３０ｂにより実施される処理である。そして、サブプリントサーバー３０ｂが印刷ジョブを受け付けた後、その印刷ジョブをプリンター５０へ送信する前にメインプリントサーバー１０及びサブプリントサーバー３０ａの再稼働が検出された場合に実行される処理である。この場合の課金処理について図１０に示したシーケンス図を用いて説明する。なお、図８と図９との関係のときと同じルールに従って図１０でもステップ番号を付け、説明を適宜省略する。また、サブプリントサーバー３０ａ，３０ｂにおける処理には、添字“ａ”、“ｂ”を付ける。
【００７８】
サブプリントサーバー３０ｂにおけるジョブ受付部３１がユーザ端末１から送信されてきた印刷ジョブを受け付けたことに伴い、各プリンター５０から印刷ログ及びジョブ管理情報の差分を取得し、蓄積するまでの処理（ステップ３０１ｂ〜３０３ｂ，ステップ２１〜２３，ステップ３０７ｂ，ステップ３０８ｂ）は、図９を用いて説明した内容を同じである。以上の処理により、サブプリントサーバー３０ｂにおける印刷ログ及びジョブ管理情報は、最新の状態になる。
【００７９】
ところで、ユーザからの印刷要求に応じて印刷ジョブを実行するプリントサーバーの順番（優先順位）は、メインプリントサーバー１０、サブプリントサーバー３０ａ、サブプリントサーバー３０ｂと決められている。ここで、サブプリントサーバー３０ｂがユーザ端末１からの印刷ジョブを受け付けたということは、ユーザからの印刷要求時点ではメインプリントサーバー１０及びサブプリントサーバー３０ａは停止していたことになる。
【００８０】
そこで、サブプリントサーバー３０ｂにおけるサーバー連携処理部３７は、印刷ジョブをプリンター５０へ送信する前に優先順位が上位のサーバー（メインプリントサーバー１０及びサブプリントサーバー３０ａ）が再稼動されたかどうかを確認する（ステップ３０９ｂ）。ここで、上位のサーバーの再稼動が検出された場合、後述する差分情報の送信先を特定する必要がある。本実施の形態では、再稼動が検出されたサーバーの中で優先順位が直上のサーバーを差分情報の送信先を特定する。従って、メインプリントサーバー１０とサブプリントサーバー３０ａの双方の再稼動が検出された場合及びサブプリントサーバー３０ａのみの再稼動が検出された場合、差分情報の送信先をサブプリントサーバー３０ａと特定する。メインプリントサーバー１０のみの再稼動が検出された場合、差分情報の送信先をメインプリントサーバー１０と特定する。メインプリントサーバー１０とサブプリントサーバー３０ａの双方の再稼動が検出されない場合は図９と同じ処理を行うことになる。図１０Ａには、メインプリントサーバー１０とサブプリントサーバー３０ａの双方の再稼動が検出された場合を例示しているので、差分情報の送信先はサブプリントサーバー３０ａと特定される。
【００８１】
なお、サブプリントサーバー３０ｂは、図９において説明した印刷の可否判断（ステップ３０４）を行うようにしてもよい。印刷不可の場合は、この時点でユーザにその旨を通知できる。
【００８２】
サブプリントサーバー３０ｂにおけるサーバー連携処理部３７は、以上のように差分情報の送信先を特定すると、プリンター５０から取得した差分情報をサブプリントサーバー３０ａへ送信する（ステップ３１０ｂ）。あるいは、サブプリントサーバー３０ａから印刷ログ蓄積部４３に蓄積されている最新の印刷ログの日時を取得して、その日時後の印刷ログを送信するようにしてもよい。
【００８３】
サブプリントサーバー３０ａにおけるサーバー連携処理部３７は、サブプリントサーバー３０ｂから差分情報を取得すると、差分情報に含まれている印刷ログを印刷ログ蓄積部４３に登録する（ステップ３０８ａ）。また、差分情報に含まれているジョブ管理情報を追加することでジョブ管理情報記憶部４２のテーブルを更新する。このとき、サブプリントサーバー３０ａが持っていてサブプリントサーバー３０ｂが持っていないジョブ管理情報も存在しうるが、このジョブ管理情報に対応する印刷ジョブは、印刷ログを参照することで実行済みであることが確認できるので削除する。これにより、サブプリントサーバー３０ａにおける印刷ログ及びジョブ管理情報とサブプリントサーバー３０ｂにおける印刷ログ及びジョブ管理情報とは同期し、サブプリントサーバー３０ａにおける印刷ログ蓄積部４３及びジョブ管理情報記憶部４２は、最新の状態になる。
【００８４】
続いて、サブプリントサーバー３０ａにおけるサーバー連携処理部３７は、サブプリントサーバー３０ｂにおけるサーバー連携処理部３７と同様に、優先順位が上位のサーバー（メインプリントサーバー１０）が再稼動されたかどうかを確認する（ステップ３０９ａ）。ここで、メインプリントサーバー１０の再稼動が検出された場合、差分情報の送信先はメインプリントサーバー１０と特定できるので、サブプリントサーバー３０ｂから取得した差分情報をメインプリントサーバー１０へ送信する（ステップ３１０ａ）。あるいは、メインプリントサーバー１０から印刷ログ蓄積部２３に蓄積されている最新の印刷ログの日時を取得して、その日時後の印刷ログを送信するようにしてもよい。
【００８５】
メインプリントサーバー１０におけるサーバー連携処理部１６は、サブプリントサーバー３０ａから差分情報を取得すると、差分情報に含まれている印刷ログを印刷ログ蓄積部２３に登録する（ステップ１０８）。また、ジョブ管理情報を更新する。
【００８６】
続いて、印刷指示処理部１３は、印刷ジョブの可否判断を行う（ステップ１０４）。ステップ３０９ｂにおいてサブプリントサーバー３０ｂが実施しているかもしれないが、メインプリントサーバー１０に設定されている料金情報及び残高情報が最新であることは間違いないため、メインプリントサーバー１０においても行うようにした。なお、ここでは、印刷可と判断したとすると、サーバー連携処理部１６は、印刷可の旨を直下のサブプリントサーバー３０ａへ応答する（ステップ１１１）。
【００８７】
サブプリントサーバー３０ａにおけるサーバー連携処理部３７は、メインプリントサーバー１０からの応答を中継することによって印刷可の旨をサブプリントサーバー３０ｂへ応答する（ステップ３１１ａ）。
【００８８】
サブプリントサーバー３０ａから応答を受け取ると、サブプリントサーバー３０ｂにおける印刷指示処理部３３は、印刷ジョブをプリンター５０へ送信することで印刷を指示する（ステップ３０５ｂ）。
【００８９】
なお、その後、サブプリントサーバー３０ｂがプリンター５０から送信されてきた印刷ログを蓄積するまでの処理（ステップ５０１〜３０６ｂ）は、図９と同じでよいので説明を省略する。
【００９０】
その後、サブプリントサーバー３０ｂにおけるサーバー連携処理部３７は、取得した印刷ログをサブプリントサーバー３０ａへ送信して印刷ログを蓄積させる（ステップ３０６ａ）。また、サブプリントサーバー３０ａにおけるサーバー連携処理部３７は、取得した印刷ログをメインプリントサーバー１０へ送信して印刷ログを蓄積させる（ステップ１０６）。
【００９１】
ところで、本実施の形態では、再稼動後に印刷ログの同期を取る際、稼働中のサブプリントサーバー３０ｂは、各プリンター５０から差分情報を取得するようにしたが、メインプリントサーバー１０及びサブプリントサーバー３０ａは、直下のサーバーから差分情報を取得するようにした。もちろん、メインプリントサーバー１０及びサブプリントサーバー３０ａも各プリンター５０から差分情報を取得するようにしてもよい。ただ、多数のプリンター５０がシステム内に設置されている場合、メインプリントサーバー１０及びサブプリントサーバー３０ａそれぞれが、各プリンター５０にアクセスして差分情報を取得した場合、ネットワーク３にかかる負荷が増大してしまう。そこで、本実施の形態では、再稼動したメインプリントサーバー１０及びサブプリントサーバー３０ａに関しては、プリンター５０から差分情報を直接取得させるのではなく、直下のサブプリントサーバー３０から、具体的には差分情報を各プリンターから直接取得しているサブプリントサーバー３０ｂから、あるいは間接的に取得しているサブプリントサーバー３０ａから取得するようにした。このように、プリントサーバー間では、各プリンター５０から取得してまとめた差分情報をやり取りすればよいのでネットワーク負荷を軽減することができる。
【００９２】
プリンター５０は、コンビニエンスストアなどの外部に数多く設置される場合がある。従って、インターネットなどの広域通信網を介してネットワーク通信が行われる。一方、プリントサーバーは、印刷ジョブの管理のために事業所内に数台設置される。つまり、各プリンター５０から差分情報を取得した後は、その差分情報をプリントサーバー間で授受するのが好適である。
【００９３】
なお、本実施の形態では、プリントサーバーに印刷ジョブの実行を制御させる場合を例にして説明したが、処理としては印刷に限定する必要はなく、他の処理にも適用することは可能である。
【符号の説明】
【００９４】
１  ユーザ端末、２  課金装置、３  ネットワーク、１０  メインプリントサーバー、１１，３１  ジョブ受付部、１２，３２  ジョブ管理部、１３，３３  印刷指示処理部、１４，３４  印刷ログ取得部、１５，３５  同期処理部、１６，３７  サーバー連携処理部、１７  課金情報管理部、２１，４１，５５  ジョブ記憶部、２２，４２，５６  ジョブ管理情報記憶部、２３，４３，５７  印刷ログ蓄積部、２４，４４  料金情報記憶部、２５、４５  残高情報記憶部、３０，３０ａ，３０ｂ  サブプリントサーバー、３６  差分情報取得処理部、５０  プリンター、５１  ジョブ取得部、５２  印刷実行部、５３  印刷終了時処理部、５４  差分情報送信処理部、６１  ＣＰＵ、６２  ＲＯＭ、６３  ＲＡＭ、６４  ハードディスクドライブ（ＨＤＤ）、６５  マウス、６６  キーボード、６７  ディスプレイ、６８  入出力コントローラ、６９  ネットワークインターフェース、７０  内部バス。
【図１】
2018032145.tif 000003
【図２】
2018032145.tif 000004
【図３】
2018032145.tif 000005
【図４】
2018032145.tif 000006
【図５】
2018032145.tif 000007
【図６】
2018032145.tif 000008
【図７】
2018032145.tif 000009
【図８】
2018032145.tif 000010
【図９Ａ】
2018032145.tif 000011
【図９Ｂ】
2018032145.tif 000012
【図１０Ａ】
2018032145.tif 000013
【図１０Ｂ】
2018032145.tif 000014