(57)【要約】【課題】サーバー機能を有した複合機が停止してしまった場合に、印刷データを送信した複合機とは別の複合機で印刷データをやりとりすることができなくなってしまうという課題がある。【解決手段】プリントシステムとしてサーバーが機能しない際に、サーバーを代替する代替サーバーとなる複合機を設けることで、印刷設定値の同期と複合機間の印刷データのやりとりなどセキュリティ対策を維持しながら継続することが可能となる。【選択図】図７Ａ
2020001349.tif 000002
【特許請求の範囲】
【請求項１】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムであって、
前記サーバーは前記クライアントに対して前記代替サーバーを登録し、
前記クライアントは、前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供することを特徴とする留め置き印刷システム。
【請求項２】
請求項１に記載の留め置き印刷システムであって、
前記サーバーは、前記代替サーバーに対して、サーバーとして機能するためのバックアップデータを送信し、
前記代替サーバーは、前記サーバーが復帰した際に、前記バックアップデータを前記サーバーに送信することを特徴とする留め置き印刷システム。
【請求項３】
請求項１又は２に記載の留め置き印刷システムであって、
前記サーバーは、復帰した際には前記代替サーバーに対して復帰したことを指示し、
前記代替サーバーは、前記サーバーが復帰した際には、該代替サーバーに対して前記サービスの要求をした要求元のクライアントに、前記代替サーバーから前記サーバーへと前記サービスの要求先を切り替える指示を応答することを特徴とする留め置き印刷システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の留め置き印刷システムであって、
前記サーバーは、前記クライアントから該クライアントが受信した印刷データの書誌情報を受信して蓄積し、
前記バックアップデータには前記書誌情報を含むことを特徴とする留め置き印刷システム。
【請求項５】
請求項４に記載の留め置き印刷システムであって、
前記クライアントは前記サービスの要求として前記書誌情報を前記サーバーに要求し、
前記サーバーは、前記書誌情報の要求を認可したなら当該クライアントに前記書誌情報を送信することを特徴とする留め置き印刷システム。
【請求項６】
請求項５に記載の留め置き印刷システムであって、
前記クライアントから印刷データの要求を受信した他のクライアントは、前記サービスの要求として、前記クライアントによる前記印刷データへのアクセスの認可を前記サーバーに要求し、該要求が認可されたなら前記印刷データを前記クライアントに送信し、
前記クライアントは受信した前記印刷データを印刷することを特徴とする留め置き印刷システム。
【請求項７】
請求項６に記載の留め置き印刷システムであって、
前記クライアントは、前記サーバーから受信した書誌情報に基づく文書リストから選択された文書の印刷データを前記他のクライアントへと要求することを特徴とする留め置き印刷システム。
【請求項８】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムの管理方法であって、
前記サーバーは前記クライアントに対して前記代替サーバーを登録し、
前記クライアントは、前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供することを特徴とする管理方法。
【請求項９】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記クライアントであって、
前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーから前記代替サーバーから前記サーバーへと前記サービスの要求先を切り替える指示を受信すると、該指示に応じて、前記サーバーを新たなサーバーとして、前記サーバーへ前記要求を送信することを特徴とするクライアント。
【請求項１０】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記サーバーであって、
前記クライアントに対して前記代替サーバーを登録し、
前記サーバーから前記代替サーバーへ前記クライアントによるサービスの要求先が切り替えられた状態で、前記代替サーバーに対して前記サーバーが復帰したことを指示し、
前記クライアントからのサービスの要求に応じて要求されたサービスを提供することを特徴とするサーバー。
【請求項１１】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記代替サーバーであって、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供し、
前記サーバーから、該サーバーが復帰したことの指示を受けると、前記クライアントから前記要求を受信すると、前記サーバーへと要求先を切り替えることを指示することを特徴とする代替サーバー。
【請求項１２】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記クライアントとしてコンピュータを機能させるためのプログラムであって、
前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーから前記代替サーバーから前記サーバーへと前記サービスの要求先を切り替える指示を受信すると、該指示に応じて、前記サーバーを新たなサーバーとして、前記サーバーへ前記要求を送信するよう、前記コンピュータを機能させるためのプログラム。
【請求項１３】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記サーバーとしてコンピュータを機能させるためのプログラムであって、
前記クライアントに対して前記代替サーバーを登録し、
前記サーバーから前記代替サーバーへ前記クライアントによるサービスの要求先が切り替えられた状態で、前記代替サーバーに対して前記サーバーが復帰したことを指示し、
前記クライアントからのサービスの要求に応じて要求されたサービスを提供するよう、前記コンピュータを機能させるためのプログラム。
【請求項１４】
サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記代替サーバーとしてコンピュータを機能させるためのプログラムであって、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供し、
前記サーバーから、該サーバーが復帰したことの指示を受けると、前記クライアントから前記要求を受信すると、前記サーバーへと要求先を切り替えることを指示するよう、前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、留め置き印刷システム及びその管理方法と、サーバー、クライアント、代替サーバー及びプログラムに関する。
【背景技術】
【０００２】
従来、印刷データを受信した時点では印刷を行わずに複合機内に印刷データを留め置き、ユーザーが複合機の操作部上で印刷指示要求を入力することで印刷出力を行う留め置き印刷がある。近年では、印刷データが留め置かれた複合機以外の複合機をユーザーが操作することにより、留め置かれた印刷データを取得して出力することが可能なリモート留め置き印刷が提案されている。
【０００３】
また、ユーザーごとの印刷データを管理する上で、複合機に搭載される認証機能が大いに利用されている。認証サーバーとなる複合機が停止しても他の複合機により認証機能を継続して利用できるようにする発明も提案されている（特許文献１）。リモート留め置き機能では、例えばサーバー機能を持たせた複合機により出力操作が行われた複合機（出力機）のユーザー認証を行い、認証が成功すると出力機による印刷出力が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４―７１７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、リモート留め置き印刷における印刷データへのアクセス権限等を管理するサーバー機能を有した複合機は、故障により停止してしまうことがある。その場合に、リモート留め置き印刷における印刷データを送信した複合機（入稿機）と別の複合機（出力機）との間で印刷データをやりとりすることができなくなってしまうという課題がある。
【０００６】
また、他複合機によるユーザー認証の代替だけでは、複合機間の印刷データのやりとりをする場合に、複合機に属する印刷データへのアクセス権限を管理できないため、セキュリティ対策を維持しながら印刷データのやりとりが行えないという課題もある。
【０００７】
本発明は上記従来例に鑑みてなされたもので、サーバーが停止しても、セキュリティを維持しつつサーバーを代替することができる留め置き印刷システム及びその管理方法と、サーバー、クライアント、代替サーバー及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明は以下の構成を有する。
【０００９】
本発明の一側面によれば、サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムであって、
前記サーバーは前記クライアントに対して前記代替サーバーを登録し、
前記クライアントは、前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供することを特徴とする留め置き印刷システムが提供される。
【００１０】
本発明の他の側面によれば、サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記クライアントであって、
前記サーバーへのサービスの要求が失敗すると、登録されている前記代替サーバーを新たなサーバーとして、前記代替サーバーへ前記要求を送信し、
前記代替サーバーから前記代替サーバーから前記サーバーへと前記サービスの要求先を切り替える指示を受信すると、該指示に応じて、前記サーバーを新たなサーバーとして、前記サーバーへ前記要求を送信することを特徴とするクライアントが提供される。
【００１１】
本発明のさらに他の側面によれば、サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記サーバーであって、
前記クライアントに対して前記代替サーバーを登録し、
前記サーバーから前記代替サーバーへ前記クライアントによるサービスの要求先が切り替えられた状態で、前記代替サーバーに対して前記サーバーが復帰したことを指示し、
前記クライアントからのサービスの要求に応じて要求されたサービスを提供することを特徴とするサーバーが提供される。
【００１２】
本発明のさらに他の側面によれば、サーバーとして機能する画像形成装置と、前記サーバーを代替する代替サーバーとして機能する画像形成装置と、前記サーバーのクライアントとして機能し、印刷データの格納と印刷との少なくともいずれか一方を行う１又は複数の画像形成装置とを含む留め置き印刷システムにおける前記代替サーバーであって、
前記代替サーバーは、前記クライアントから前記要求を受信すると、前記サーバーに代替するサーバーとしてサービスを提供し、
前記サーバーから、該サーバーが復帰したことの指示を受けると、前記クライアントから前記要求を受信すると、前記サーバーへと要求先を切り替えることを指示することを特徴とする代替サーバーが提供される。
【発明の効果】
【００１３】
本発明によれば、サーバーが停止しても、セキュリティを維持しつつサーバーを代替することができる情報処理装置及びその制御方法とプログラム、留め置き印刷システムを提供できる。
【図面の簡単な説明】
【００１４】
【図１】本発明におけるネットワーク構成および、システム全体の概略を示す図
【図２】本発明における画像形成装置のハードウェア構成を示すブロック図
【図３】本発明における画像形成装置のソフトウェア構成を示すブロック図
【図４】本発明における画像形成装置が表示する留め置きプリントの文書リスト画面の一例
【図５】本発明における画像形成装置が保存する留め置きプリントの書誌情報の一例
【図６Ａ】本発明におけるシステム全体図における印刷時のデータフローの概略を示すシーケンス図
【図６Ｂ】本発明におけるシステム全体図における印刷時のデータフローの概略を示すシーケンス図
【図７Ａ】本発明におけるシステム全体図における代替サーバーとのデータフローの概略を示すシーケンス図
【図７Ｂ】本発明におけるシステム全体図における代替サーバーとのデータフローの概略を示すシーケンス図
【図８】書誌情報の同期機能を開始する際の手順の一例を示すフローチャート
【図９】書誌情報の同期機能を開始した後にクライアントがサーバーのデータに対してアクセス認可を得るための手順の一例を示すフローチャート
【図１０】書誌情報の同期機能を開始した後にクライアントがサーバーに接続する手順の一例を示すフローチャート
【図１１】書誌情報の同期機能を開始した後にサーバーがクライアントから接続要求を受けたときの手順の一例を示すフローチャート
【図１２】書誌情報を同期した状態でクライアントに対して印刷データが送信された際の手順の一例を示すフローチャート
【図１３】書誌情報を同期した状態でサーバーがクライアントから書誌情報の登録を受け付けた際の手順の一例を示すフローチャート
【図１４】書誌情報を同期した状態でクライアントに対してサーバーとの書誌情報同期契機が発生した際の手順の一例を示すフローチャート
【図１５】書誌情報を同期した状態でサーバーがクライアントから書誌情報の同期要求を受け付けた際の手順の一例を示すフローチャート
【図１６Ａ】クライアント機能がサーバーに対してリクエストを送信する際の手順の一例を示すフローチャート
【図１６Ｂ】クライアント機能がサーバーに対してリクエストを送信する際の手順の一例を示すフローチャート
【図１７】ユーザーが出力機にて印刷する際の手順の一例を示すフローチャート
【図１８】ユーザーが出力機にて印刷するためにストレージ機が印刷データを応答する手順の一例を示すフローチャート
【図１９】書誌サーバーが、ストレージ機から確認依頼を受けた認可トークンが有効であるか確認する手順の一例を示すフローチャート
【図２０】書誌サーバーが代替サーバーに対してバックアップする際の手順の一例を示すフローチャート
【図２１Ａ】代替サーバーが書誌サーバーからバックアップデータを受け付けた際の手順の一例を示すフローチャート
【図２１Ｂ】代替サーバーが書誌サーバーからバックアップデータを受け付けた際の手順の一例を示すフローチャート
【図２２】代替サーバーがクライアントからのリクエストを受け付け書誌サーバーの機能を代替する際の手順の一例を示すフローチャート
【図２３】書誌サーバーが代替サーバーのデータをもってリストアをする際の手順の一例を示すフローチャート
【図２４】代替サーバーが書誌サーバーからバックアップデータ取得を要求された際の手順の一例を示すフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。
［実施形態１］
＜ネットワーク構成＞
図１は、本発明の実施例に関わる画像形成装置である複合機に対して適用可能なネットワーク構成を示す図である。図１の構成は、遠隔留め置き印刷を実現するための留め置き印刷システム（あるいはリモートプリントシステム）を示している。図１において、１０１は例えばＴＣＰ／ＩＰプロトコルをサポートするネットワークである。ネットワーク１０１には、情報処理装置であるパーソナルコンピュータ（以下、ＰＣ）１０２、複合機１０３、１０４、１０５、１０６が接続されている。
【００１６】
図１（ａ）は、印刷データを複合機に入稿後、他の複合機から文書リスト表示し、印刷処理を実行するためのネットワーク構成を示す図である。また、ネットワーク１０１を介したデータのやりとりを説明したものが図６Ａ、図６Ｂである（両図をまとめて図６と呼ぶ）。
【００１７】
複合機１０３は、パーソナルコンピュータ１０２から印刷データを受信すると、後で印刷するために印刷データを保持するストレージ機である。複合機１０３のことをストレージ機１０３とも呼ぶ。複合機１０４は、他の複合機やプリンタが保持している印刷データの書誌情報を管理する書誌サーバー機である。複合機１０４のことを書誌サーバー１０４とも呼ぶ。ここで、書誌情報とは、印刷データに含まれる印刷データ名、印刷設定、ユーザー名といった印刷対象とはならない情報のことを指す。印刷データの構成については後述する。
【００１８】
複合機１０５は、書誌サーバーから印刷データの書誌情報を取得し、文書リストの一覧を表示する。複合機１０５のことを出力機１０５とも呼ぶ。複合機１０５はユーザーが文書リストから選択した文書を印刷する出力機である。また、複合機に表示した文書リストから他の複合機に保存された印刷データを印刷するために、出力機がストレージ機に対して印刷データの取得要求を行う。このとき、ストレージ機は、出力機が印刷データに対してアクセスが許可されているか否かについて、書誌サーバーに対して出力機の認可確認を行う。なおストレージ機１０３や出力機１０５は複合機１０４を書誌サーバーとするクライアント装置であるので、これらをクライアントと呼ぶこともある。
【００１９】
書誌サーバー１０４は、印刷データに含まれる書誌情報データに対するアクセス権限を管理する。これにより、ストレージ機となる複合機１０３と、出力機となる複合機１０５とによる、同じ書誌情報へのアクセス権限を確認することができ、たとえばアクセスを認可されていることを確認することができる。すなわち、書誌サーバー１０４が管理する、書誌サーバー１０４に接続する複合機のアクセス認可トークンを用いて、出力機１０５によるストレージ機１０３の印刷データに対するアクセスのアクセス認可の確認が行える。これらの構成は一般的な構成を概念図にしただけで、ＰＣ１０２やストレージ機１０３、出力機１０５が複数台あってもいいことは言うまでもない。また、書誌サーバーとは別に認証サーバーを設ける構成としてもよいことは言うまでもない。さらに、複合機１０３、１０４、１０５で説明したそれぞれの機能は、ある複合機に集約される形態をとってもよい。
【００２０】
なおストレージ機と出力機は相異なるクライアントとしているが、同一のクライアントであってもよい。その場合にはクライアントはストレージ機としても出力機としても機能することができる。そのためシステム内のクライアントは１又は複数であってよい。クライアントが１台の場合には、そのクライアントがストレージ機かつ出力機となるため遠隔留め置き印刷システムではなくローカルな留め置き印刷システムとなる。また、クライアントはストレージ機と出力機のいずれか一方の機能を持っていてもよい。
【００２１】
図１（ｂ）は、書誌サーバーとなる複合機１０４がメンテナンス等で停止していた場合でも、図１（ａ）で説明したプリントシステムを保全するための構成を示す図である。また、ネットワーク１０１を介したデータのやりとりを説明したものが図７Ａ，図７Ｂである（両図をまとめて図７と呼ぶ）。
【００２２】
書誌サーバー１０４が停止してしまった場合を想定し、書誌サーバー１０４の機能を代替する代替サーバーとなる複合機１０６を準備しておく。代替サーバー１０６は書誌サーバー１０４と同期することで書誌情報を共有している。代替サーバー１０６は、書誌サーバー１０４が停止中に、出力機１０５が、ストレージ機１０３から印刷データを受け渡しするために印刷データへのアクセス認可を確認する機能の代替などを行う。ここで、複合機１０４と複合機１０６の機能は別々の複合機が有する必要があるが、複合機１０３、１０４、１０６のそれぞれの機能は、ある複合機に集約される形態をとってもよい。
【００２３】
＜複合機１０３〜１０６のハードウェア構成＞
図２は本発明の実施例に関わる複合機１０３から１０６の概略構成を示すブロック図である。
【００２４】
コントローラユニット２００は複合機あるいはプリンタの制御を行う装置である。ＣＰＵ２０１はシステム全体を制御するための演算装置である。システムバス２１１に、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３，ＨＤＤ２０４，操作部Ｉ／Ｆ２０５、デバイスＩ／Ｆ２０７、ネットワークＩ／Ｆ２１０が接続される。ＣＰＵ２０１は、システムバス２１１に接続された各装置を統括的に制御する。ＲＡＭ２０２は、オペレーティングシステムやシステムソフトウェア、アプリケーションソフトウェアなどのプログラムやデータも配置される。ＲＯＭ２０３は、システムのブートプログラムが格納されている。また、ＲＯＭ２０３は、システムプログラムやアプリケーションプログラムが格納されている。さらには、フォントなど画像形成装置に必要な情報が格納されている場合もある。ＨＤＤ２０４はハードディスクドライブで、オペレーティングシステム、システムソフトウェア、アプリケーションソフトウェア、画像データ、設定データ等を格納する。ＲＡＭ２０２に格納されたプログラムは、ＣＰＵ２０１によって実行され、ＲＡＭ２０２、ＲＯＭ２０３やＨＤＤ２０４に格納された画像データや画像以外のデータを処理する。また、小型複合機では、ＨＤＤ２０４を搭載せずにシステムソフトウェア、アプリケーションソフトウェア等をＲＯＭ２０３に格納して、ハードディスクレスの構成もある。あるいは、ＨＤＤ２０４の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）などフラッシュメモリのようなハードディスク以外の記憶装置を用いた構成でも構わないのは言うまでも無い。
【００２５】
コントローラユニット２００は、操作部Ｉ／Ｆ２０５、デバイスＩ／Ｆ２０７、ネットワークＩ／Ｆ２１０を持つ。操作部Ｉ／Ｆ２０５はタッチパネルを有した操作部２０６とのインターフェイス部で、操作部２０６に表示する画像データを操作部２０６に対して出力する。また、操作部２０６から本システムのユーザーが入力した情報を、ＣＰＵ２０１に伝える。デバイスＩ／Ｆ２０７は、画像入出力デバイスであるスキャナ部２０８やプリンタ部２０９とコントローラユニット２００を接続し、画像データの入力や出力を行う。スキャナ部２０８からデバイスＩ／Ｆ２０７を介して入力された画像データは、ＲＡＭ２０２やＨＤＤ２０４に格納される。格納された画像データは、必要に応じてＲＡＭ２０２に格納されたアプリケーションプログラムで画像処理などが実行される。また、画像データが出力される場合も同様に、画像データは、デバイスＩ／Ｆ２０７を介してプリンタ部２０９へ出力される。プリンタのようにスキャナ部２０８を搭載しない構成もある。ネットワークＩ／Ｆ２１０は、ネットワークに接続し、ローカルエリアネットワーク２１２上の外部機器の画像データ、あるいは複合機を制御する情報との入出力を行う。
【００２６】
図２に図示されていない構成であっても、本発明の効果が満たされるのであれば、図２の構成に限らないのは言うまでもない。例えば、ＦＡＸ機能を持つ複合機の場合には、図２には図示していなモデム装置向けＩ／Ｆがコントローラユニット２００に具備されて、モデムによって公衆回線と接続して、ＦＡＸ伝送を可能としてもよい。あるいは、例えば、フラッシュメモリカードなどに格納されたデータを読み出してプリントすることを可能とするために、コントローラユニット２００は、図示されていないＵＳＢ  Ｉ／Ｆを具備してもよい。本実施例では、複合機１０３から１０６のブロック構成は共通であり、説明の便宜上、複合機１０３のブロックにはａ、複合機１０４のブロックにはｂ、複合機１０５のブロックにはｃ、複合機１０６のブロックにはｄの添え字を付けて判別する。例として、複合機１０３のＣＰＵはＣＰＵ２０１ａと表記する。
【００２７】
＜複合機のソフトウェア構成＞
図３は本発明の実施例に関わる複合機１０３から１０６のソフトウェア構成を示すブロック図であり、コントローラユニット２００に実装されるものである。複合機あるいはプリンタに内蔵されコントローラユニット２００によって処理されるソフトウェアは、いわゆるファームウェアとして実装されており、ＣＰＵ２０１によって実行される。
【００２８】
オペレーティングシステム３００（以降、ＯＳ）は、組み込みシステムの制御に最適化された各種資源管理のサービスと枠組みをその上で動作するソフトウェアのために提供する。ＯＳ３００が提供する各種資源管理のサービスと枠組みには、ＣＰＵ２０１による処理の実行コンテクストを複数管理することで複数の処理を実質的に並行動作させるマルチタスク管理、タスク間の同期やデータ交換を実現するタスク間通信がある。さらに、メモリ管理、割り込み管理、各種のデバイスドライバ、ローカルインタフェースやネットワークや通信などの各種プロトコルの処理を実装したプロトコルスタック、などもある。
【００２９】
コントローラプラットフォーム３０１は、ファイルシステム３０２やジョブ・デバイス制御３０３、カウンタ３０４から構成される。ファイルシステム３０２はＨＤＤ２０４やＲＡＭ２０２などの記憶装置上に構築されたデータを格納するための機構である。コントローラユニット２００が扱うジョブをスプールしたり各種データを保存したりするために用いる。ジョブ・デバイス制御３０３は、複合機あるいはプリンタのハードウェアを制御し、また、主にハードウェアが提供する基本機能（プリント、スキャン、通信、画像変換など）を利用するジョブを制御する。カウンタ３０４はアプリケーション毎の有効期限や、プリント、スキャンのカウンタ値を管理する。
【００３０】
システムサービス３０５は、複合機あるいはプリンタ稼働状況をモニタリングすることや、ネットワークを介してソフトウェア配信サーバーから、ソフトウェアやライセンスをダウンロードするためのモジュールである。
【００３１】
アプリケーションプラットフォーム３０６は、ＯＳ３００、コントローラプラットフォーム３０１の機構を、後述するシステムアプリケーション３０７や、追加可能なアプリケーション３１１から利用可能とするためのミドルウェアである。
【００３２】
システムアプリケーション３０７は、認証サービス３０８、アクセス制御３０９、書誌情報管理３１０から構成される。認証サービス３０８はＨＤＤ２０４に格納されたデータベース内で、操作部２０６あるいはネットワークを介して入力されたユーザー名、パスワードの照合を行い、ユーザーの認証を実施する。本実施例ではユーザーの認証のみならず、機器固有の番号の管理によるデバイスの認証も行う。認証はＨＤＤ２０４にデータベースを保持するのではなく、例えばＡｃｔｉｖｅＤｉｒｅｃｔｏｒｙなどの外部認証サーバーによって認証を行ってもよい。アクセス制御３０９はジョブや各種リソースへのアクセスを、ユーザー権限やデータに設定されたセキュリティ設定に基づき許可、禁止するためのセキュリティモジュールである。書誌情報管理３１０は書誌サーバー機１０４に実装され、ネットワークで接続されている複合機が保持している印刷データの書誌情報をユーザー別に管理するモジュールである。書誌情報とは、印刷データの受信日時や印刷データが格納されている複合機のＩＰアドレスまたはローカルデバイス内のディレクトリパス、印刷データ名、印刷設定など、複合機へ印刷投入された文書の情報を含む。
【００３３】
アプリケーション３１１は操作部２０６へのメニュー表示や、ユーザーからの入力を受け付けることが可能で、複合機やプリンタが実現する各種機能をユーザーに提供するモジュールである。留め置きプリントアプリケーション３１２はアプリケーション３１１の一つであり、留め置き印刷データの一覧を示す文書リスト表示や、印刷データの要求や応答、デバイス認証要求、印刷出力処理などを行う。本実施例では、複合機１０３から１０６のソフトウェア構成は共通であり、説明の便宜上、複合機１０３のモジュールにはａ、複合機１０４のモジュールにはｂ、複合機１０５のモジュールにはｃ、複合機１０６のモジュールにはｄの添え字を付けて判別する。例として、複合機１０３の認証サービスは３０８ａと表記する。
【００３４】
また書誌サーバー或いはその代替機として機能する複合機は、サーバーとして機能するためのシステムアプリケーションあるいはアプリケーションをさらに有する。例えば認可トークンの発行やその認証のサービス、代替機やストレージ機、出力機などとの間でデータの同期をとるためのサービス、代替機への切り替えや復帰などを提供するアプリケーションがサーバーには備えられる。代替機もサーバーと同じ構成を有するが、同期の相手が本来のサーバーであるという点で相違する。
【００３５】
＜印刷処理のデータフロー＞
図６を用いて、ユーザーがＰＣ１０２からストレージ機である複合機１０３に印刷ジョブを送信し、出力機である複合機１０５にて文書リストを表示し、印刷するまでの手順の一例を説明する。本実施例では、印刷データとして、ページ記述言語（ＰＤＬ）データを複合機１０３に送信する例について説明する。ＰＤＬには、キヤノン社のＬＩＰＳやＡｄｏｂｅ社のＰｏｓｔＳｃｒｉｐｔなどがあり、複合機１０３はＰＤＬを解釈しＲＩＰ処理（ラスターイメージ処理）することで印刷を行う。なお、印刷データはＰＤＬデータ以外、例えばＴＩＦＦなどの画像データやアプリケーションのドキュメントフォーマットなど、複合機１０３で解釈して印刷可能なフォーマットであればよい。なお図６及び図７において、ストレージ機１０３及び出力機１０５は、たとえば留め置きプリントアプリケーション３１２を実行しており、それによってそれぞれの機能を遂行する。また各サーバーは、図３には不図示のサーバー用のプログラムを実行してその機能を遂行する。
【００３６】
プリントシステムの管理者となるユーザーが、ストレージ機となる複合機１０３に対して、書誌情報の同期サービスの開始を指示する（Ｓ６０１）。
【００３７】
同期サービスが開始された複合機１０３は、書誌情報の同期を行うために書誌サーバー１０４のデータに対してアクセスするために、ユーザーが入力する認証情報および複合機１０３の機器固有番号とともにアクセスの認可要求を書誌サーバー１０４に送信し、データへのアクセス認可を要求する（Ｓ６０２）。ここで、本実施例における機器固有番号は、複合機１０３の工場生産時の通し番号（シリアルＮｏ．）やＭａｃＡｄｄｒｅｓｓなど、機器を一意に識別できる番号であれば良い。
【００３８】
書誌サーバー１０４は、認可要求に対して、認可要求と共に受信したユーザーの認証情報に基づいてアクセス権限を検証する。ユーザーのアクセス権限が確認されたなら機器固有番号に対する認可トークンを発行し応答する（Ｓ６０３）。
【００３９】
同様にユーザーは、出力機となる複合機１０５に対して、書誌情報の同期サービスの開始を指示する（Ｓ６０４）。その指示に応じて複合機１０５は、書誌サーバー１０４に対し、アクセスの認可要求（Ｓ６０５）を送信する。書誌サーバー１０４がユーザーの権限を確認すると、認可トークンを出力機１０５に応答する（Ｓ６０６）。
【００４０】
印刷を行おうとするユーザーは、ＰＣ１０２上で動作するアプリケーションからプリンタドライバ（不図示）を起動する。ユーザーは、プリンタドライバ画面から印刷設定後、複合機１０３を選択し、印刷を指示する。ここでユーザーは、明示的に留め置き印刷を指示することもできる。プリンタドライバは、印刷指示を受け付けると、認証画面を表示（不図示）し、ユーザーが認証情報入力後、複合機１０３に対して認証情報を送信して印刷を指示する。複合機１０３の認証サービス３０８は、受信したユーザー名、パスワードなどの認証情報の照合を行い、認証結果をＰＣ１０２に送信する。ここで、認証サービス３０８の詳細は、後述で説明する。プリンタドライバは認証結果を受信し、認証が失敗した場合は、印刷処理をエラー終了する。
【００４１】
認証が成功した場合は、プリンタドライバは、印刷対象のアプリケーションデータを、指定された印刷設定に従いＰＤＬデータに変換し、ユーザー情報を含む印刷データを生成する（Ｓ６０７）。プリンタドライバは、生成した印刷データを複合機１０３に送信する（Ｓ６０８）。なお印刷設定は印刷データに反映されているだけでなく、印刷設定データとして印刷データに添付されている場合もある。
【００４２】
印刷データを受信した複合機１０３は、ストレージ機として、印刷データを保存すると同時に、印刷データに含まれる印刷データ名、印刷設定、ユーザー名といった情報である書誌情報を抽出する（Ｓ６０９）。抽出した書誌情報を書誌サーバーである複合機１０４へステップＳ６０２で取得した認可トークンとともに送信する（Ｓ６１０）。
【００４３】
書誌サーバー１０４はストレージ機用の認可トークンを確認することで、その送信元の出力機１０３が、書誌サーバー１０４に蓄積される書誌情報のデータに対しアクセス可能である（すなわちアクセス権限を有する）ことを判定する（Ｓ６１１）。確認の結果、認可トークンが正当なものであり、かつ有効期限内であれば、アクセス権限は認められ、書誌サーバー１０４は受信した書誌情報を登録する（Ｓ６１２）。
【００４４】
ユーザーは、複合機１０３に保存した印刷データを複合機１０５にて出力する場合に、出力機である複合機１０５に、ＰＣ１０２からの印刷指示の際にプリンタドライバに入力したユーザー名、パスワードなどの認証情報を入力してログインする（Ｓ６１３）。複合機１０５は、書誌サーバーである複合機１０４に対しステップＳ６０６で取得した認可トークンとともにログインしたユーザーの書誌情報の取得要求を送信する（Ｓ６１４）。ユーザーの書誌情報とは、たとえばそのユーザーがＰＣ１０２から印刷指示した印刷データ（あるいは印刷ジョブ）の書誌情報であってよい。なおこのようなユーザーを、印刷データ（あるいは印刷ジョブ）のオーバーと呼ぶこともある。
【００４５】
書誌サーバーである複合機１０４は、取得要求に付与された出力機用の認可トークンが書誌サーバー１０４に蓄積される書誌情報のデータに対しアクセス可能であることを確認する（Ｓ６１５）。確認の結果、認可トークンが正当かつ有効期限内であれば、書誌サーバーに登録された指定されたユーザーの書誌情報を応答する（Ｓ６１６）。要求したユーザーに係る印刷可能な印刷データ（以下文書とも呼ぶ）が複数あれば、それらすべてに関する書誌情報が書誌サーバー１０４から出力機１０５に送信される。複合機１０５は受信した書誌情報を基に、印刷対象となり得る文書リストを表示する。
【００４６】
ユーザーは、複合機１０５の操作部２０６にて、文書リストから印刷する文書を選択し、印刷を指示する（Ｓ６１７）。印刷指示に応じて複合機１０５は、書誌サーバー１０４のデータに対してアクセスする際に用いていたアクセス認可トークンとともに、ストレージ機である複合機１０３へ印刷データの取得要求を送信する（Ｓ６１８）。
【００４７】
ストレージ機である複合機１０３は、印刷データ取得要求に添付された出力機用の認可トークンを書誌サーバー１０４に送信して、出力機１０５がアクセス権限を有しているか確認を依頼する（Ｓ６１９）。このとき、認可トークンの確認依頼についても、書誌サーバー１０４が管理するデータへのアクセスとなるため、複合機１０３は、書誌サーバー１０４がステップＳ６０３で発行した認可トークンとともに確認の依頼を行う。
【００４８】
確認依頼を受けた書誌サーバー１０４は、まず、確認依頼に添付されたストレージ機１０３の認可トークンを確認する（Ｓ６２０）。確認の結果、認可トークンが認証されれば、すなわち認可トークンが正当でありかつ有効期限内であれば、書誌サーバー１０４が管理する発行済みの認可トークンから、確認依頼された認可トークンが正当であることを判定し、正当であればその有効期限を確認する。有効期限内のトークンであれば、権限を有していることを確認結果としてストレージ機１０３に応答する（Ｓ６２１）。ここで、認可トークンの有効期限が切れている場合や、正当でない場合、すなわち書誌サーバー１０４が発行した認可トークン以外のトークンであった場合は、認可確認エラーを応答する。これにより、ストレージ機である複合機１０３は、複合機１０５が、印刷データに含まれる書誌情報を同じ書誌サーバー１０４により共有している複合機であることを確認できる。確認できた場合には、ストレージ機１０３は印刷データを応答可能と判断し、複合機１０５に対し要求された印刷データを応答する（Ｓ６２２）。
【００４９】
そして、出力機である複合機１０５は、応答された印刷データをもちいて、印刷処理を実行する（Ｓ６２３）。
【００５０】
以上が出力機１０３、書誌サーバー１０４、出力機１０５との間で遂行されるリモート
＜代替サーバーによる印刷処理のデータフロー＞
次に、図７を用いて、書誌サーバーとなる複合機１０４がシステム運用途中に停止された場合でも印刷システム全体をダウンさせないよう制御するための手順の一例を説明する。図６と同じ処理を行っている点については、図７で同じステップ番号としている。
【００５１】
まず、Ｓ６０７からＳ６１２まで図６と同様の手順が行われた後、書誌サーバー１０４が停止した時に備え、書誌サーバー１０４に登録されたデータをバックアップデータとして、代替サーバーとなる複合機１０６に送信する（Ｓ７０１）。以下では複合機１０６のことを代替サーバー１０６と呼ぶこともある。またバックアップデータには、たとえば書誌情報やクライアントのアドレス等、サーバーとしてクライアントにサービスを提供するための情報を含んでよい。ここで、書誌サーバー１０４はあらかじめ代替サーバー１０６に対して認証を行い、認証結果をバックアップデータと共に送信している。書誌サーバー１０４から代替サーバー１０６へのバックアップデータの送信は、バックアップ対象となるデータが更新される都度行えばよい。バックアップ対象のデータは、たとえば書誌情報を含む。このほか、発行済みの認可トークンやクライアントである画像形成装置に関する情報（識別情報やアドレス等）を含んでよい。
【００５２】
代替サーバーである複合機１０６は、認証結果をもとに、バックアップデータを受信し、複合機１０６の不揮発領域に保存する（Ｓ７０２）。ここで、複合機１０６は、認証結果から代替サーバー１０４へのアクセス権限がないと判断した場合は、バックアップデータの受信を行わずエラーを応答する。或いは、第来サーバー１０６の認証が失敗したならば書誌サーバー１０４がバックアップデータを送信しないよう構成してもよい。
【００５３】
次に、Ｓ６１３と同様に、ユーザーが印刷を実行させるために複合機１０５にログインする。複合機１０５は、Ｓ６１３と同様に書誌サーバーである複合機１０４に対してログインしたユーザーがオーナーである印刷ジョブの書誌情報の取得要求を行うが、書誌サーバーが停止してしまっていた場合には、取得要求に対する応答は返されず、タイムアウトする（Ｓ７０３）。その場合には、出力機１０５は接続先のサーバーを書誌サーバー１０４から代替サーバー１０６へと切り替える（Ｓ７０４）。切り替え対象となるサーバーの情報の取得方法は、後述する。
【００５４】
接続先のサーバーを代替サーバーとなる複合機１０６に切り替えた複合機１０５は、書誌情報の同期サービスを開始した際に入力された認証情報と、機器固有番号をもって、データへのアクセス認可を要求する（Ｓ７０５）。代替サーバー１０６は、認可要求を受けうけた場合に、書誌サーバー１０４が停止していることを確認し（Ｓ７０６）、停止している場合は、自身が印刷システムのサーバー機能を代替するよう振る舞う。なおステップＳ１０５では、すでに有している認可トークンと共に書誌情報の取得要求を代替サーバー１０６へと送信し、認証エラーとなった場合にアクセス認可を要求してもよい。
【００５５】
これにより、複合機１０５からのデータへのアクセス認可要求に対し、認証情報を確認すると、認可トークンを発行して発行した認可トークンを応答する（Ｓ７０７）。応答された認可トークンを用いて、複合機１０５は、ログインしたユーザーの書誌情報の取得を代替サーバーに要求する（Ｓ７０８）。
【００５６】
要求を受けた代替サーバー１０６は、要求に付与された、出力機用の認可トークンが代替サーバー１０６の発行した認可トークンであるか確認する（Ｓ７０９）。確認の結果、代替サーバー１０６の発行した認可トークンであり、有効期限内の場合は、あらかじめ書誌サーバー１０４から受信していたバックアップデータから、要求に該当する書誌情報を応答する（Ｓ７１０）。このとき、Ｓ７０１のバックアップが成功していれば、書誌サーバー１０４が停止してもストレージ機１０５に送信された印刷データの書誌情報を複数の複合機間で共有することができる。
【００５７】
複合機１０５は受信した書誌情報を基に文書リストを表示する。ユーザーは、複合機１０５の操作部２０６にて、文書リストから印刷する文書を選択し、選択した文書の印刷を指示する（Ｓ７１１）。複合機１０５は、代替サーバー１０６のデータに対してアクセスする際に用いていたアクセス認可トークンとともに、ストレージ機である複合機１０３へ印刷データの取得要求を送信する（Ｓ７１２）。
【００５８】
ストレージ機である複合機１０３は、印刷データの取得要求に付与された認可トークンを書誌サーバー１０４に対してアクセス権限を有しているか確認する。その際に、書誌サーバー１０４が停止している場合には、その確認要求に対する応答は返されずにタイムアウトとなる（Ｓ７１３）。その場合に、ストレージ機１０３は接続先のサーバーを代替サーバー１０６へと切り替える（Ｓ７１４）。
【００５９】
切り替えた後、代替サーバー１０６に対して、自身の保持する認可トークンと、印刷データの取得要求に付与された出力機用の認可トークンのアクセス権限の確認を行う（Ｓ７１５）。このとき、ストレージ機１０３の保持する認可トークンは書誌サーバー１０４が発行したものであり、代替サーバー１０６が発行したものでない。そのため、代替サーバー１０６は、ストレージ機用の認可トークンを確認（Ｓ７１６）し、代替サーバー１０６に対するアクセスの認可エラーを応答する（Ｓ７１７）。
【００６０】
認可エラーとなった複合機１０３は、書誌情報の同期サービスを開始した際に入力された認証情報と、機器固有番号をもって、代替サーバー１０６に対してアクセス認可の要求を行う（Ｓ７１８）。代替サーバー１０６は、認証情報と、機器固有番号とを確認し、ストレージ機用の認可トークンを発行して応答する（Ｓ７１９）。
【００６１】
応答された認可トークンをもって、複合機１０３は、再度、印刷データの取得要求に添付された出力機用の認可トークンのアクセス権限の確認を代替サーバー１０６に対し行う（Ｓ７２０）。代替サーバー１０６は、まずストレージ機用の認可トークンを確認し、代替サーバー１０６が発行した有効期限内のトークンであることを確認する（Ｓ７２１）。確認の結果、有効期限内のトークンであれば、代替サーバー１０６は、自身が管理している発行した認可トークンから、確認対象の認可トークンの有効期限を確認し、権限を有していることを確認結果として応答する（Ｓ７２２）。ここで代替サーバー１０６は、書誌サーバーと同様に有効期限が切れたトークンなどの場合は、認可確認がエラーであることを応答する。
【００６２】
複合機１０３は、確認対象の認可トークンが権限を有していると確認されれば、複合機１０５に対し印刷データを応答する（Ｓ７２３）。そして、出力機である複合機１０５は、応答された印刷データをもちいて、印刷処理を実行する（Ｓ７２４）。
【００６３】
図７では、出力機１０５が書誌サーバー１０４に対して書誌情報取得要求を行った場合に書誌サーバー１０４が停止している一例を説明したが、ストレージ機１０３が出力機１０５から印刷データの取得要求を受け付けた時に書誌サーバー１０４が停止していても復旧が可能である。例えば、書誌サーバー１０４が発行した認可トークンを用いて、出力機１０５がストレージ機に対して印刷データの取得要求を行ったのち、書誌サーバー１０４が停止すると、ストレージ機１０３から書誌サーバー１０４に対す得る認可要求は認可エラーとなる。このときには、代替サーバー１０６による認可トークンの確認が可能となっている。このような場合は、ストレージ機１０３は、認可エラーであったことを出力機１０５に対し応答し、出力機１０５は、認可エラーを契機にＳ７０３から処理をやり直すことで、図７で説明した例と同じく印刷を行うことが可能となる。または、認可トークンの発行処理をやり直すようＳ７０５からＳ７０７を実施し、Ｓ７１２を再度実行することで処理を最初からやり直すことなく復旧する方法をとってもよい。あるいは図７Ｂのように処理を進めてもよい。
【００６４】
また出力機が書誌サーバー１０４にステップＳ７０３でアクセスした時点で書誌サーバー１０４から応答がなく、代替サーバー１０６に切り替えた場合には、ステップＳ７１２において、代替サーバー１０６によりサーバー機能が代替されていることを通知してもよい。このように構成すれば、ステップＳ７１３で書誌サーバー１０４から応答がなく、かつサーバー機能が代替されていることが通知されていない場合には、書誌サーバー１０４の機能停止は、出力機１０５による書誌サーバー１０４への最後のアクセス以降であると判定でき、その場合にはステップＳ７０３からやり直してもよい。
【００６５】
また複合機１０４が復旧した場合には、複合機１０６を書誌サーバーとしてそのまま利用し、複合機１０４を代替機とするようにしてもよい。その場合にはバックアップデータの送信方向が図６等とは逆になるので、復旧した複合機１０４は復旧した旨を複合機１０６に通知する。複合機１０６はその通知に応じてバックアップデータを複合機１０４に送信し、以後役割を図６とは逆転させればよい。あるいは、復旧した複合機１０４が復旧した旨を複合機１０６に通知すると、複合機１０６は書誌情報や認可トークン、ネットワーク構成の情報等を複合機１０４に送信して同期を図る。そしてそれ以降の認可要求に対して失敗あるいは書誌サーバーが復旧した旨を応答し、出力機やストレージ機はそれに応じて書誌サーバーを複合機１０４へと戻すように構成してもよい。
【００６６】
また、上述の例では、ストレージ機または出力機から書誌サーバーに対するアクセスに応答がないと代替サーバーへの切り替えを行っている。これに対して、たとえば書誌サーバーに対して代替サーバーからキープアライブ信号を送信し、書誌サーバーの停止が検出されたなら、代替サーバーがネットワークに対して、書誌サーバーの代替を宣言するメッセージを同報送信してもよい。それを受信した各複合機は、それ以後は代替サーバーを書誌サーバーとして処理を遂行する。
【００６７】
また、書誌サーバー１０４から代替サーバー１０６へとサーバーを切り替えるための代替サーバーのアドレスは、クライアントとなる複合機を書誌サーバー１０４へと登録するする際に受信しておいてよい。
【００６８】
＜文書リスト表示画面＞
図４は本実施例に係る出力機である複合機１０５における文書リスト表示画面の一例である。本画面は、複合機１０５のＣＰＵ２０１ｃにおいて実行されるアプリケーション３１２ｃによって操作部２０６ｃに表示される。たとえばユーザーがログイン後に、留め置きプリントアプリケーション３１２ｃを起動するための所定の操作を行うことで表示される。
【００６９】
文書リスト４００は、認証済みユーザーに対して印刷実行可能な文書リストを表示する。例えば図６のステップＳ６１７や図７のステップＳ７１２で、図４の文書リスト表示ボタン４００が操作されると、文書リストが表示される。この画面上で印刷実行可能な文書リストは４つ（４０６〜４０９）ある。さらに、この画面上で各文書リストに対して表示されている項目は５つあり、サムネイル４０１、ジョブ名４０２、日時４０３、ページ数×部数４０４、ユーザー名４０５である。サムネイル４０１は入稿した文書を認識するために用いられ、ジョブ名よりもより明示的である。これら文書（４０６〜４０９）に対して、留め置きプリントアプリケーション３１２は、設定変更４１０、画像表示４１１、プリント開始４１２の機能を有する。文書リストから所望の印刷ジョブを選択し、プリント開始ボタン４１２をクリックするなどの操作を行うことで、ストレージ機１０３に対する印刷データの要求が送信され、印刷が行われる。画像表示ボタン４１１が操作されると、選択された文書の印刷イメージが表示される。設定変更ボタン４１０が操作されると、たとえば出力機１０５において変更可能な印刷設定画面が表示され、設定を変更できる。なお文書リストボタン４００の押下をきっかけとしてステップＳ６１４やステップＳ７０３の書誌情報取得要求を送信し、受信した処理情報に基づいて文書リストを表示してもよい。
【００７０】
＜書誌情報のデータ構成＞
図５は、本実施例における出力機である複合機１０５で、保存されている書誌情報の一例である。図５（ａ）は、複合機１０５で保存される全書誌情報の一覧である。本情報は、アプリケーション３１２によって複合機１０５のＨＤＤ２０４ｃにて保存され、ユーザー名５２１により、複合機１０５にログインしたユーザーに紐づくデータが抽出される。
【００７１】
図５（ｂ）は、図４で表示したユーザー名４０５のユーザーが複合機１０５にログインした際にログインしたユーザーに紐づく書誌情報の一覧を抽出した結果の一例である。書誌情報に含まれる格納場所のＩＰアドレス５０５によって、対象文書の印刷データがどこに保存されているのか、出力機内なのか別の複合機内なのかが判断できる。ＩＰアドレスが指定されている場合は別の複合機のストレージ機内に印刷データが保存されており、出力機である複合機１０５は、認証して印刷データを取得する。その際、文書ＩＤ５０６の情報を用いて印刷データを取得する文書を特定する。自機内であれば、ＩＰアドレスとしてループバックアドレス（あるいはそれを示すホスト名ｌｏｃａｌｈｏｓｔ）が指定されている。
【００７２】
その他、図４で説明した表示内容は、図５のそれぞれのデータは以下のように対応して、保存されている。文書リストの４つ（４０６から４０９）に対応する書誌情報が、それぞれ、各行の５００から５０３に対応して保存される。ジョブ名４０２にて表示されるデータは５０４に対応して保存される。日時４０３は、受信日時５０７に対応して保存される。枚数×部数４０４は、ページ集約５０９と、ページ数５１０と、部数５１１と、両面設定５１２の情報の組み合わせにより、出力される用紙枚数と部数が表示される。さらに、設定変更４１０により、両面印刷設定などの各種印刷設定（５０８から５１２）の変更を行うことができる。
【００７３】
＜書誌情報の同期サービス開始手順＞
図８は、図６で概略を説明した手順を具体的に説明したものである。図８（ａ）は、本実施例に関わる複合機１０４を書誌サーバーとしての機能を開始させる手順である。また図８（ｂ）は、複数台の複合機たとえば複合機１０３と１０５とを書誌サーバー１０４と接続して書誌情報を共有するためのサービスの開始手順の一例を示すフローチャートである。以降では、書誌サーバーとして複合機１０４を、書誌サーバーへ接続するクライアントとして複合機１０３を、代替サーバーとして複合機１０６を例に本実施例の各フローチャートの詳細を説明する。
【００７４】
図８のフローチャートは、複合機１０３と１０４のＣＰＵ２０１ａおよびＣＰＵ２０１ｂにて実行され、Ｓ８０１からＳ８０４と、Ｓ８１１からＳ８１４は各ステップを示す。図８の手順は不図示のサーバー用プログラムを実行することで実現される。
【００７５】
まず、ステップＳ８０１にて、書誌サーバーとなる複合機１０４に対し、ユーザーが操作部２０６ｂから、代替サーバー１０６のホストアドレス、本システムにける管理者のＩＤとパスワードを入力し、ＣＰＵ２０１ｂが入力を検知する。ＣＰＵ２０１ｂが検知して受け付けた入力を基に、入力された値をＨＤＤ２０４ｂなどの不揮発領域に保存する（Ｓ８０２）。
【００７６】
ステップＳ８０３にて、ユーザーが操作部２０６ｂから、書誌情報の同期を行うためのサーバーのサービス開始を指示し、ＣＰＵ２０１ｂがその指示入力を検知する。ＣＰＵ２０１ｂが検知したことで、Ｓ８０２で保存した値をもとに複合機１０４は書誌サーバーとしてサービスを開始する（Ｓ８０４）。ここで、書誌サーバーのサービスを開始すると、ストレージ機や出力機となるクライアントのサービスを開始した複合機から書誌情報の登録や、書誌情報の取得要求を受け付ける機能が開始される。また、代替サーバーに関する情報が保存された場合は、後述で説明するフローチャートで、それぞれ代替サーバーの情報が存在する場合の処理、たとえば書誌データ等の同期所処理を実行する。
【００７７】
次に、ステップＳ８１１にて、書誌サーバーへ接続するクライアントとなる複合機１０３に対し、ユーザーが操作部２０６ａから、書誌サーバーのホストアドレス、本システムにける管理者のＩＤとパスワードを入力し、ＣＰＵ２０１ａが入力を検知する。ＣＰＵ２０１ａが検知した入力を基に、入力された値をＨＤＤ２０４ａなどの不揮発領域に保存する（Ｓ８１２）。
【００７８】
ステップＳ８１３にて、ユーザーが操作部２０６ａから、書誌情報の同期を行うためのクライアントサービスの開始を指示し、ＣＰＵ２０１ａが検知する。なおここでいう書誌情報の同期とは、たとえばクライアントの複合機が有する書誌情報を書誌サーバーと共有することである。ＣＰＵ２０１ａが検知したことで、ＣＰＵ２０１ａがＳ８１２で保存した値をもとにＣＰＵ２０１ａが書誌サーバーと書誌情報を同期するためのクライアント機能を開始させる（Ｓ８１４）。クライアントのサービスを開始するための具体的な処理は、後述の図９、図１０で説明する。
【００７９】
図８では、ユーザーの入力手段を、操作部２０６からの入力の例に説明したが、入力方法は一例であり他の方法をとってもよい。例えば、複合機が有するＷｅｂアプリケーションサーバー機能を用いて複合機用の設定値変更Ｗｅｂポータルサイトを準備し、情報処理装置のＷｅｂブラウザーを用いてＷｅｂポータルサイトからユーザー操作が行われる方法でも良い。他にも、他情報処理装置と、複合機との間で、上記で説明した設定値を設定するファイルをやりとりしユーザー操作を伴わず複合機に対して設定する方法でも良い。
【００８０】
＜データアクセス認可手順＞
図９は、図６で概略を説明した書誌サーバーのデータへのアクセス認可の取得方法と、書誌サーバーのアクセス認可トークンの発行・管理を行う手順の一例を示すフローチャートである。図９のフローチャートは、複合機１０３と１０４のＣＰＵ２０１ａおよびＣＰＵ２０１ｂにて実行され、Ｓ９０１からＳ９１１と、Ｓ９２１からＳ９２６は各ステップを示す。
【００８１】
図９（ａ）は、書誌情報を同期するクライアント機能を有した複合機１０３が、書誌サーバーのデータにアクセスするための認可を得るためのフローチャートでありＣＰＵ２０１ａが各ステップを処理する。
【００８２】
まず、ＣＰＵ２０１ａは、現在接続先となるサーバーを確認し接続する（Ｓ９０１）。ここで、接続先となるサーバーとは、書誌サーバーを指すが、書誌サーバーとなる複合機１０４が停止している場合は、代替サーバーへの接続を行うこともある。代替サーバーへ接続する方法は、後述の図１６Ａ，図１６Ｂにて詳細を説明する。
【００８３】
接続先となるサーバーに対して、接続を行った結果をＣＰＵ２０１ａは、確認する（Ｓ９０２）。確認の結果、接続が成功していた場合は、Ｓ９０３へ進み、接続が成功でない場合は、Ｓ９１１に進みＣＰＵ２０１ａは接続失敗を示すエラーと判断（Ｓ９１１）し、終了する。
【００８４】
ＣＰＵ２０１ａは、接続成功後に、図８（ｂ）で不揮発領域に保存していた管理者ＩＤとパスワードを用いて接続先のサーバーに対して認証する（Ｓ９０３）。ＣＰＵ２０１ａは、Ｓ９０３の認証結果を確認する。ここで、認証は、書誌サーバーまたは、代替サーバー機となる複合機の認証機能が担い、指定されたＩＤとパスワードに紐つく権限を応答する。
【００８５】
Ｓ９０４の認証結果の確認の結果、認証がエラーの場合は、ＣＰＵ２０１ａは、認可エラーと判断し（Ｓ９１０）、処理を終了する。認証エラー以外の場合は、ＣＰＵ２０１ａは、認証結果とデバイスの機器固有番号を合わせて書誌サーバーに対してデータへのアクセス認可トークンの発行リクエストを行う（Ｓ９０５）。ここで、ネットワークを介したサーバーへのリクエスト処理は共通処理となっており、具体的な処理は、後述の図１６Ａ、図１６Ｂで説明する。
【００８６】
ＣＰＵ２０１ａは、Ｓ９０５の処理の結果を確認する（Ｓ９０６）。Ｓ９０６の確認の結果、認可トークンが応答されていない場合は、ＣＰＵ２０１ａが、エラー内容を確認する（Ｓ９０８）。Ｓ９０８の確認の結果、エラーの内容が権限なしエラーの場合は、Ｓ９１０へ進み、権限なしエラー以外の場合は、ＣＰＵ２０１ａは、その他エラーと判断し（Ｓ９０９）、処理を終了する。Ｓ９０６の確認の結果、認可トークンが応答されている場合は、ＣＰＵ２０１は、応答された認可トークンを不揮発領域に保存（Ｓ９０７）し、本処理以降のサーバーとの通信に用いられる。
【００８７】
図９（ｂ）は、書誌サーバーとなる複合機１０４が、クライアント機能を有する複合機からＳ９０５のリクエストを受けた時に行われるフローチャートであり、ＣＰＵ２０１ｂが各ステップを実行する。
【００８８】
ネットワーク１０１を介して、複合機１０３から、Ｓ９０５のリクエストを受け付けたことをＣＰＵ２０１ｂが検知する（Ｓ９２１）。ＣＰＵ２０１ｂは、受け付けたリクエストに付与される認証結果を確認し、データへのアクセス権限を確認する（Ｓ９２２）。
【００８９】
Ｓ９２２の確認の結果をもって、ＣＰＵ２０１ｂは、書誌サーバーのデータへアクセスする権限をもっているか判断する（Ｓ９２３）。Ｓ９２３の結果、アクセス権限がない場合は、ＣＰＵ２０１ｂは、権限なしエラーのレスポンスをリクエスト元の複合機１０３にネットワーク１０１を介して応答し（Ｓ９２６）、処理を終了する。Ｓ９２３の確認の結果、書誌サーバーのデータへアクセスする権限をもっている場合は、ＣＰＵ２０１ｂは、Ｓ９２１で受け付けたリクエストに付与された機器固有番号に対して認可トークンを発行し、発行した認可トークンをＨＤＤ２０４等の不揮発領域に保存する（Ｓ９２４）。Ｓ９２４で発行した認可トークンをＣＰＵ２０１ｂは、リクエスト元の複合機１０３へネットワーク１０１を介して応答する（Ｓ９２５）。
【００９０】
これにより、複合機１０３は、書誌サーバーとなる複合機１０４のデータへのアクセスが認可トークンを用いることで可能となり、書誌サーバーとなる複合機１０４は、複合機１０３のアクセスを管理することが可能となる。なお、発行される認可トークンには、有効期限を設けて、定期的に認可トークンを更新するために図９の（ａ）、（ｂ）の処理が行われる構成となっていてもよい。
【００９１】
また、本実施例では、サーバーのデータへのアクセス権限を確認するため、システム全体の管理者のＩＤとパスワードをユーザーに入力させる構成を一例に説明したが、この構成に限らないことは言うまでもない。例えば、利用ユーザーの役割を細かく分け、特定の権限をもつ役割以上のユーザーには、書誌情報へアクセス可能と設定しておき、該当の権限をもつユーザーのＩＤ、パスワードで本構成をとってもよい。
【００９２】
＜書誌情報の同期処理の初期接続手順＞
図１０は、本実施例で説明する書誌情報の同期を行う際にクライアントとなる複合機１０３が、それ自身をクライアントとして書誌サーバー１０４に登録するために行う手順の一例を示すフローチャートである。この手順は例えば複合機１０３の設置時や書誌サーバー１０４の設置時や置き換え時に行えばよい。図１１は、本実施例で説明する書誌情報の同期を行う際に書誌サーバーとなる複合機１０４が、クライアントとなる複合機１０３を管理するために、クライアント登録要求に応じて行う手順の一例を示すフローチャートである。図１０は、複合機１０３のＣＰＵ２０１ａにて実行され、Ｓ１００１からＳ１００７は、各ステップを示す。
【００９３】
ＣＰＵ２０１ａは、複合機１０３を構成する情報をリクエストデータとして生成する（Ｓ１００１）。ここで、複合機１０３を構成する情報（以降、構成情報）には、複合機１０３の機器固有番号や、アプリケーションプラットフォーム３０６ａのバージョン、インストールされているアプリケーション３１１ａの情報を含む。
【００９４】
ＣＰＵ２０１ａは、Ｓ１００１で生成されたリクエストデータを用いて、書誌サーバーに対してネットワークを介して複合機１０３をクライアントとして登録するようリクエストを行う（Ｓ１００２）。ここで、ネットワークを介したサーバーへのリクエスト処理は共通処理となっており、具体的な処理は、後述の図１６Ａ，図１６Ｂで説明する。
【００９５】
ＣＰＵ２０１ａは、Ｓ１００２の処理結果を確認する（Ｓ１００３）。Ｓ１００３の結果、エラー応答の場合、ＣＰＵ２０１ａは、処理をＳ１００６に進め、エラー以外の場合は、Ｓ１００４に進める。
【００９６】
Ｓ１００３でエラー応答であったと確認した場合は、ＣＰＵ２０１ａは、応答されたエラーの情報をＨＤＤ２０４などの不揮発領域に保存する（S１００６）。ここで、保存されたエラーの情報は、ユーザーが発生したエラーの情報やどんなエラーであったかを確認するために利用される。
【００９７】
ＣＰＵ２０１ａは、保存したエラー情報についてさらに確認を行い（Ｓ１００７）、リトライすることで解消する可能性のあるエラーの場合は、Ｓ１００１からやり直す。また、リトライすることで解消する可能性のあるエラー以外の場合は、処理を終了する。ここで、リトライすることで解消する可能性のあるエラーの一例として、サーバー機となる複合機が印刷操作等により応答が一時的に返せない状態であったースなどがある。
【００９８】
Ｓ１００３でエラー応答でなかったと確認した場合は、クライアントの登録が成功したと判断し、ＣＰＵ２０１ａは、サーバーからの応答データの中に代替サーバーのホスト情報が含まれているかを確認する（Ｓ１００４）。Ｓ１００４にて、代替サーバーのホスト情報が含まれている場合、ＣＰＵ２０１ａは、ＨＤＤ２０４などの不揮発領域に代替サーバーのホスト情報を保存する（Ｓ１００５）。Ｓ１００４にて、代替サーバーのホスト情報が含まれていない場合、ＣＰＵ２０１ａは、Ｓ１００２のリクエストが完了したと判断し、処理は終了する。
【００９９】
図１１は、複合機１０３から、Ｓ１００２のリクエストを書誌サーバーが受信した際に書誌サーバーとなる複合機１０４が処理する一例を示すフローチャートである。図１１はＣＰＵ２０１ｂにて実行され、Ｓ１１０１からＳ１１１６は、各ステップを示す。ＣＰＵ２０１ｂは、複合機１０３からネットワーク１０１を介して、クライアント登録のリクエストを受信し、処理を開始する。
【０１００】
まず、ＣＰＵ２０１ｂは、リクエストに付与される認可トークンを確認し、書誌サーバーのデータへアクセスする権限があるか確認する（Ｓ１１０１）。ＣＰＵ２０１ｂは、認可トークンの確認後、書誌サーバーのデータへアクセス可能であるかどうかを確認する（Ｓ１１０２）。Ｓ１１０２でＣＰＵ２０１ｂが、アクセス可能でないと判断した場合は、Ｓ１１１２へ進みリクエスト元の複合機１０３に対して認可エラーを応答し（Ｓ１１１２）、処理を終了する。Ｓ１１０２でＣＰＵ２０１ｂが、アクセス可能であると判断した場合は、Ｓ１１０３へ進み、ＣＰＵ２０１ｂは、リクエスト内容を確認する（Ｓ１１０３）。ＣＰＵ２０１ｂは、リクエスト内容を確認し、クライアント登録リクエストのフォーマット通りであるかを確認する（Ｓ１１０４）。
【０１０１】
Ｓ１１０４で、確認した結果、リクエストに必要な情報が不足しているなど、リクエストデータのフォーマットが正しくない場合、ＣＰＵ２０１ｂは、リクエスト元の複合機１０３へリクエストフォーマットエラーを応答し（Ｓ１１１３）、処理を終了する。
【０１０２】
Ｓ１１０４で、確認した結果、リクエストデータのフォーマットが正しい場合は、Ｓ１１０５に進み、クライアント登録リクエストで指定されたクライアントの登録状況を確認する（Ｓ１１０５）。次に、ＣＰＵ２０１ｂは、クライアント登録リクエストの対象のクライアントが既に登録されていないかリクエストデータに含まれる機器固有番号をもって確認する（Ｓ１１０６）。Ｓ１１０６の確認の結果、すでに登録済みの場合、ＣＰＵ２０１ｂは、リクエスト元の複合機１０３に対してリクエスト対象のクライアントは、既に登録済みである旨をエラーとして応答し（Ｓ１１１４）、処理を終了する。
【０１０３】
Ｓ１１０６の確認の結果、未だ登録されていないクライアントである場合、ＣＰＵ２０１ｂは、登録リクエストされた複合機１０３の情報をＨＤＤ２０４ｂなど不揮発領域に存在するＤＢ（ＤａｔａＢａｓｅ）などに登録する（Ｓ１１０７）。ＣＰＵ２０１ｂは、登録処理が成功したかどうかを確認する。Ｓ１１０８で、確認の結果、正しく登録ができなかったと判断した場合、ＣＰＵ２０１ｂは、リクエスト元の複合機１０３にサーバー機の要因で登録リクエストが失敗したことを伝えるエラーを応答する（Ｓ１１１５）。
【０１０４】
Ｓ１１０８で、確認の結果、正しく登録できたと判断した場合、ＣＰＵ２０１ｂは、ＨＤＤ２０４ｂなどの不揮発領域に代替サーバーの情報が保存されていないか確認を行う（Ｓ１１０９）。ここで、代替サーバーのホスト情報は、図８のＳ８０１で、ユーザー操作により保存されている。
【０１０５】
Ｓ１１０９で、確認の結果、代替サーバーの情報が保存されていない場合、ＣＰＵ２０１ｂは、処理結果をリクエスト元の複合機１０３へ応答する（Ｓ１１１６）。Ｓ１１０９で、確認の結果、代替サーバーの情報が保存されている場合は、ＣＰＵ２０１ｂは、処理結果に代替サーバーのホスト情報（接続先情報）を含めて複合機１０３へ応答する（Ｓ１１１０）。処理結果を応答した後、ＣＰＵ２０１ｂは、アドレスが保存されている代替サーバーに対してクライアント登録リクエストにより登録されたデータをバックアップする（Ｓ１１１１）。バックアップ送信の手順は、後述する図２０で詳細を説明する。また、Ｓ１１１０の処理結果応答と、Ｓ１１１１のバックアップ処理は、ネットワークを介して行われるため、クライアントへの処理結果応答をタイムアウト前に応答するために、Ｓ１１１０の処理の後に、Ｓ１１１１の処理を行う順序をとっている。
【０１０６】
これにより、書誌サーバーに、クライアントとなる複合機１０３の情報が登録され、代替サーバーの情報が保存されている場合、代替サーバーに対し複合機１０３の登録処理がバックアップされ、複合機１０３には代替サーバーのホスト情報が保存される。
【０１０７】
＜書誌情報の同期手順＞
図１２および、図１３は、本実施例で説明する書誌情報の同期を行う際に複合機１０３に対して印刷データを送信された後、書誌サーバーに対して書誌情報を登録する手順の一例を示すフローチャートである。図１２は、複合機１０３のＣＰＵ２０１ａにて実行され、Ｓ１２０１からＳ１２０９は、各ステップを示す。
【０１０８】
ＣＰＵ２０１ａは、ユーザーがＰＣ１０２を用いて印刷データを送信してきたことを検知し、本フローチャートを開始する。ＣＰＵ２０１ａは、印刷データを受信し、ＨＤＤ２０４ａなど不揮発領域に保存する（Ｓ１２０１）。ＣＰＵ２０１ａは、保存した印刷データから、書誌情報を生成する（Ｓ１２０２）。ここで、書誌情報は図５で説明した一例と同じ構成をとる。ＣＰＵ２０１ａは、生成された書誌情報を用いて、書誌サーバーに対して書誌情報を登録するためのリクエストデータを生成する（Ｓ１２０３）。ＣＰＵ２０１ａは、生成された書誌情報の登録リクエストデータを書誌サーバーに対しネットワークを介してリクエスト送信する（Ｓ１２０４）。ここで、ネットワークを介したサーバーへのリクエスト処理は共通処理となっており、具体的な処理は、後述の図１６Ａ，図１６Ｂで説明する。
【０１０９】
ＣＰＵ２０１ａは、Ｓ１２０４の処理結果を確認する（Ｓ１２０５）。Ｓ１２０５の確認の結果、エラー応答の場合は、ＣＰＵ２０１ａは、処理をＳ１２０８へ進め、エラー以外の場合は、Ｓ１２０６に進める。Ｓ１２０５でエラー応答であったと確認した場合は、ＣＰＵ２０１ａは、応答されたエラーの情報をＨＤＤ２０４などの不揮発領域に保存する（Ｓ１２０８）。ここで、保存されたエラーの情報は、ユーザーが発生したエラーの情報やどんなエラーであったかを確認するために利用される。ＣＰＵ２０１ａは、保存したエラー情報についてさらに確認を行い（Ｓ１２０９）、リトライすることで解消する可能性のあるエラーの場合は、Ｓ１２０３からやり直す。ここで、リトライすることで解消する可能性のあるエラーは、図１０で説明したものと同様である。
【０１１０】
Ｓ１２０５でエラー応答でなかったと確認した場合は、書誌情報の登録が成功したと判断し、ＣＰＵ２０１ａは、サーバーからの応答データの中に代替サーバーのホスト情報が含まれているかを確認する（Ｓ１２０６）。Ｓ１２０６で、代替サーバーのホスト情報が合含まれている場合、ＣＰＵ２０１ａは、ＨＤＤ２０４などの不揮発領域に保存されている代替サーバーのホスト情報を更新する（Ｓ１２０７）。Ｓ１２０６にて、代替サーバーのホスト情報が含まれていない場合、ＣＰＵ２０１ａは、Ｓ１２０４のリクエストが完了したと判断し、処理は終了する。ここで、Ｓ１２０６において、代替サーバーのホスト情報が図１０で説明した手順の際に保存されていないケースでは、新たに代替サーバーのホスト情報を保存する。
【０１１１】
これにより、代替サーバーのホスト情報が更新されたケースや同期サービスの途中で代替サーバーを指定するようなケースでも複合機１０３で代替サーバーの情報を正しく管理することができる。
【０１１２】
図１３は、複合機１０４のＣＰＵ２０１ｂにて実行される、クライアントからの書誌情報の登録リクエストに対する処理であり、Ｓ１３０１からＳ１３１９は、各ステップを示す。ＣＰＵ２０１ｂは、複合機１０３からネットワーク１０１を介してリクエストを受信することで本フローチャートを開始する。ＣＰＵ２０１ｂは、複合機１０３からＳ１２０４で送信されたリクエストを受信する（Ｓ１３０１）。ＣＰＵ２０１ｂは、リクエストに付与される認可トークンを確認し、書誌サーバーのデータへアクセスする権限があるか確認する（Ｓ１３０２）。
【０１１３】
ＣＰＵ２０１ｂは、Ｓ１３０２の確認結果を判断する（Ｓ１３０３）。Ｓ１３０３の結果、アクセス可能でないと判断した場合は、ＣＰＵ２０１ｂは、リクエスト元の複合機１０３に対して認可エラーを応答し（Ｓ１３１４）、処理を終了する。
【０１１４】
Ｓ１３０３の結果、アクセス可能であると判断した場合、ＣＰＯＵ２０１ｂは、リクエストの内容を確認する（Ｓ１３０４）。Ｓ１３０４の確認結果から、ＣＰＵ２０１ｂは、リクエストデータのフォーマットを判断する（Ｓ１３０５）。Ｓ１３０５の結果、リクエストデータに不備があったと判断した場合、ＣＰＵ２０１ｂは、リクエストデータのフォーマットが正しくないことをリクエスト元の複合機１０３へ応答し（Ｓ１３１５）、処理を終了する。Ｓ１３０５の結果、リクエストデータのフォーマットが正しい場合は、Ｓ１３０６に進み、ＣＰＵ２０１ｂは、リクエストで指定された書誌情報の登録状況を確認する（Ｓ１３０５）。ＣＰＵ２０１ｂは、確認の結果、登録済みであるかを判断する（Ｓ１３０７）。登録済みであるか否かは、たとえば文書ＩＤにより判定できる。Ｓ１３０７の結果、すでに登録済みの書誌情報である場合、書誌サーバーに登録されている情報を更新する（Ｓ１３１６）。Ｓ１３０７の結果、未だ登録されていない書誌情報である場合、新規データとして書誌サーバーに保存する（Ｓ１３０８）。ここで保存方法は、ＨＤＤ２０４ｂなどの不揮発領域に存在するＤＢなどに登録することで実現する。ＣＰＵ２０１ｂは、登録処理が成功したか確認する（Ｓ１３１０）。
【０１１５】
Ｓ１３１０の結果、正しく登録ができなかった場合、リクエスト元の複合機１０３にサーバー機の要因で登録リクエストが失敗したことを伝えるエラーを応答する（Ｓ１３１８）。Ｓ１３１０の結果、正しく登録できた場合、ＣＰＵ２０１ｂは、ＨＤＤ２０４ｂなどの不揮発領域に代替サーバーの情報が保存されていないか確認を行う（Ｓ１３１１）。ここで、代替サーバーのホスト情報は、図８のＳ８０１で、ユーザー操作により保存されている。Ｓ１３１１の結果、代替サーバーの情報が保存されていない場合は、ＣＰＵ２０１ｂは、処理結果をリクエスト元の複合機１０３へ応答し（Ｓ１３１９）、処理を終了する。Ｓ１３１１の結果、代替サーバーの情報が保存されている場合は、ＣＰＵ２０１ｂは、処理結果に代替サーバーのホスト情報を含めリクエスト元の複合機１０３へ応答する（Ｓ１３１２）。
【０１１６】
代替サーバーのホスト情報を含む処理結果を応答した後、ＣＰＵ２０１ｂは、保存されている代替サーバーに対して登録リクエストに含まれる書誌情報のデータをバックアップする（Ｓ１３１３）。バックアップ送信の手順は、後述する図２０で詳細を説明する。また、Ｓ１３１２と、Ｓ１３１３の処理順序は、図１１での説明と同様クライアントへの処理結果応答をタイムアウト前に応答するために、この順序をとっている。
【０１１７】
これにより、複合機１０３に送信された印刷データの書誌情報が書誌サーバーに登録され、代替サーバーの情報が保存されている場合、代替サーバーに対し複合機１０３に送信された印刷データの書誌情報がバックアップされる。さらに、複合機１０３の代替サーバーの情報が正しく管理される。
【０１１８】
＜クライアントによる同期処理＞
図１４および、図１５は、本実施例で説明する書誌情報の同期を行う際にクライアントとなる複合機１０３により、書誌情報を書誌サーバー１０４と同期させる手順の一例を示すフローチャートである。なおクライアントで新たに保存した印刷データの書誌情報は図１２、図１３の手順で書誌サーバー１０４に登録される。図１４、図１５による書誌情報の同期とは、すでに書誌サーバー１０４に登録された書誌情報についてのクライアントとの間の同期である。図１４は、複合機１０３のＣＰＵ２０１ａにて実行され、Ｓ１４０１からＳ１４１１は、各ステップを示す。ＣＰＵ２０１ａは、ユーザーが複合機１０３に対して操作するなかで、書誌情報の同期の契機となる操作を検知し、本フローチャートを開始する。ここで、書誌情報の同期の契機は、ユーザーのログイン操作や、ユーザーが任意のタイミングで書誌サーバーと同期させるためのボタン押下などが例として挙げられる。また、書誌情報の同期の契機は、前記操作例に限ったものではないことは言うまでもない。たとえば複合機１０３が印刷ジョブを受信したときや、あるいはタイマ等により定期的に同期を行わせてもよい。  ＣＰＵ２０１ａは、ＨＤＤ２０４ａなどの不揮発領域に書誌サーバーから応答される最終同期時刻が存在するか確認する（Ｓ１４０１）。Ｓ１４０１の結果、最終同期時刻が保存されていない場合は、ＣＰＵ２０１ａは、何もせずＳ１４０３へ進む。Ｓ１４０１の結果、最終同期時刻が保存されている場合は、ＣＰＵ２０１ａは、書誌サーバーへの同期要求リクエストにＳ１４０１で確認した最終同期時刻を付与するようリクエストデータを生成する（Ｓ１４０２）。ＣＰＵ２０１ａは、ネットワークを介して書誌サーバー１０４に保存されるデータの同期を要求するリクエストを送信する（Ｓ１４０３）。ここで、ネットワークを介したサーバーへのリクエスト処理は共通処理となっており、具体的な処理は、後述の図１６Ａ、図１６Ｂで説明する。
【０１１９】
ＣＰＵ２０１ａは、Ｓ１４０３の応答結果に書誌情報のデータが存在するか確認する（Ｓ１４０４）。Ｓ１４０４の結果、応答データ（すなわち書誌情報のデータ）がない場合、ＣＰＵ２０１ａは、応答結果がエラーであったか確認する（Ｓ１４０９）。Ｓ１４０４の結果、応答データがある場合、すなわち書誌サーバー１０４から書誌情報を受信した場合は、ＣＰＵ２０１ａは、応答された書誌情報データをＨＤＤ２０４ａなどの不揮発領域に保存する（Ｓ１４０５）。これにより書誌情報が同期される。Ｓ１４０５の後、ＣＰＵ２０１ａは、応答結果に含まれる最終同期時刻もＨＤＤ２０４ａなどの不揮発領域に保存する（Ｓ１４０６）。
【０１２０】
Ｓ１４０９の結果、エラー応答でなかった場合は、Ｓ１４０６に進む。Ｓ１４０９の結果、エラー応答の場合は、ＣＰＵ２０１ａは、エラー情報をＨＤＤ２０４などの不揮発領域に保存する（Ｓ１４１０）。Ｓ１４１０の後、ＣＰＵ２０１ａは、更にエラー内容がリトライすることで成功する可能性があるエラーであるか確認する（Ｓ１４１１）。Ｓ１４１１の結果、リトライすることで成功するエラーと判断した場合、Ｓ１４０３からやり直し、そうでない場合は、処理を終了する。
【０１２１】
Ｓ１４０６の後、ＣＰＵ２０１ａは、応答結果に代替サーバーのホスト情報が含まれているかを確認する（Ｓ１４０７）。Ｓ１４０７の結果、応答結果に代替サーバーのホスト情報が含まれている場合、ＣＰＵ２０１ａは、ＨＤＤ２０４などの不揮発領域に保存されている代替サーバーのホスト情報を更新する（Ｓ１４０８）。Ｓ１４０７の結果、応答結果に代替サーバーのホスト情報が含まれていない場合は、処理を終了する。
【０１２２】
＜書誌サーバーによる同期処理＞
図１５は、クライアントである複合機１０３等からの同期リクエストに応じて複合機１０４のＣＰＵ２０１ｂにて実行され、Ｓ１５０１からＳ１５１９は、各ステップを示す。ＣＰＵ２０１ｂは、複合機１０３からネットワーク１０１を介してリクエストを受信することで本フローチャートを開始する。
【０１２３】
ＣＰＵ２０１ｂは、複合機１０３からＳ１４０３で送信されたリクエストを受信する（Ｓ１５０１）。ＣＰＵ２０１ｂは、クエストに付与される認可トークンを確認し、書誌サーバーのデータへアクセスする権限があるか確認する（Ｓ１５０２）。ＣＰＵ２０１ｂは、Ｓ１５０２の確認結果を判断する（Ｓ１５０３）。Ｓ１５０３の結果、アクセス可能でないと判断した場合は、Ｓ１５１５に進みリクエスト元の複合機１０３に対して認可エラーを応答し（１５１５）、処理を終了する。
【０１２４】
Ｓ１５０３の結果、アクセス可能であると判断した場合、ＣＰＵ２０１ｂは、Ｓ１５０４へ進み、リクエストの内容を確認する（Ｓ１５０４）。Ｓ１５０４の確認結果から、ＣＰＵ２０１ｂは、リクエストデータのフォーマットを判断する（Ｓ１５０５）。Ｓ１５０５の結果、リクエストデータに不備があったと判断した場合、ＣＰＵ２０１ｂは、リクエストデータのフォーマットが正しくないことをリクエスト元の複合機１０３へ応答し（Ｓ１５１６）、処理を終了する。Ｓ１５０５の結果、リクエストデータのフォーマットが正しい場合、ＣＰＵ２０１ｂは、リクエストで指定されたユーザーを特定する（Ｓ１５０６）。書誌サーバーでは、書誌情報に含まれるユーザー情報を管理しており、ＣＰＵ２０１ｂは、Ｓ１５０６で特定したユーザーに関する書誌情報の登録状況を確認できる。
【０１２５】
ＣＰＵ２０１ｂは、同期要求から特定したユーザーに関する書誌情報が書誌サーバーに存在しているか確認する（Ｓ１５０７）。Ｓ１５０７の結果、ユーザーに対する書誌情報が存在しない場合、ＣＰＵ２０１ｂは、同期要求のユーザーに関する書誌情報は登録されていないことを同期要求元の複合機１０３へ応答し（Ｓ１５１７）、処理を終了する。
【０１２６】
Ｓ１５０７の結果、ユーザーに対する書誌情報が存在している場合、ＣＰＵ２０１ｂは、同期要求に最終同期時刻が付与されているかを確認する（Ｓ１５０８）。
【０１２７】
Ｓ１５０８の結果、リクエストに最終同期時刻が付与されていない場合、ＣＰＵ２０１ｂは、同期要求のユーザーに関して書誌サーバーに登録された全ての書誌情報データを取得する（Ｓ１５１８）。Ｓ１５０８の結果、リクエストに最終同期時刻が付与されている場合、ＣＰＵ２０１ｂは、その時刻よりも後に登録または、更新された書誌情報を取得するよう、制御する（Ｓ１５０９）。
【０１２８】
ＣＰＵ２０１ｂは、Ｓ１５１８または、Ｓ１５０９のいずれかでクライアントへ応答するためのデータ取得が行えたか確認する（Ｓ１５１０）。Ｓ１５１０の結果、正しくデータ取得ができなかった場合、ＣＰＵ２０１ｂは、リクエスト元の複合機１０３にサーバー機の用意員で取得リクエストが失敗したことを伝えるエラーを応答する（Ｓ１５１９）。
【０１２９】
Ｓ１５１０の結果、正しくデータ取得できた場合、ＣＰＵ２０１ｂは、取得したデータをリクエスト元の複合機１０３へ応答するレスポンスデータを生成する（Ｓ１５１１）。Ｓ１５１１の後、ＣＰＵ２０１ｂは、ＨＤＤ２０４ｂなどの不揮発領域に代替サーバーの情報が保存されていないか確認を行う（Ｓ１５１２）。ここで、代替サーバーのホスト情報は、図８のＳ８０１で、ユーザー操作により保存されている。
【０１３０】
Ｓ１５１２の結果、代替サーバーの情報が保存されていない場合は、ＣＰＵ２０１ｂは、Ｓ１５１１で生成した応答をリクエスト元の複合機１０３へ応答し（Ｓ１５１４）、処理を終了する。Ｓ１５１２の結果、代替サーバーの情報が保存されている場合は、ＣＰＵ２０１ｂは、処理結果に代替サーバーのホスト情報を含め（Ｓ１５１３）リクエスト元の複合機１０３へ応答する（Ｓ１５１４）。
【０１３１】
これにより、クライアントとなる複合機１０３が書誌サーバーに登録した、書誌情報を同期契機に同期することができ、サーバーから応答される最終同期時刻を用いることで全データを毎回行うことなく同期が可能となる。
【０１３２】
＜代替サーバーへの接続切り替え手順＞
図１６Ａは、本実施例で説明するクライアントとなる複合機１０３が、書誌サーバーに対してネットワークを介してリクエストを送信する際の手順の一例を示すフローチャートである。図１６Ａおよび、後述する図１６Ｂはともに、クライアントとなる複合機（例えば複合機１０３）のＣＰＵ２０１にて実行される。図１６Ａは、たとえばＳ９０５，Ｓ１００２，Ｓ１２０４，Ｓ１４０３などで実行される手順である。
【０１３３】
ＣＰＵ２０１ａによりリクエストデータを生成し、本フローチャートの各ステップを実行することで、ネットワーク１０１を介して接続先に指定されたサーバーに対しリクエストを送信する。また、書誌サーバーと代替サーバーの接続先を切り替えも本フローチャートで行われる。Ｓ１６０１からＳ１６１２と、Ｓ１６２１からＳ１６３３は、各ステップを示す。
【０１３４】
ＣＰＵ２０１ａは、現在接続しているサーバーのホストを確認する（Ｓ１６０１）。確認されたホストに対して、ネットワーク１０１を介して呼び元が生成したリクエストデータリクエストの送信を行う（Ｓ１６０２）。ここで、実際にデータ送信を行う手順は、図１６Ｂのフローチャートで説明する。Ｓ１６０２の後、ＣＰＵ２０１ａは、通信処理により、サーバーを切り替えるフラグがＯＮにされたかを確認する（Ｓ１６０３）。Ｓ１６０３の結果、切り替えフラグがＯＮになっていなければ、ＣＰＵ２０１ａは、通信処理が成功したと判断し、サーバーからの応答データを呼び元に戻す（Ｓ１６０９）。Ｓ１６０３の結果、切り替えフラグがＯＮになっている場合、ＣＰＵ２０１ａは、次回判断時に切り替えフラグを正しく参照できるよう切り替えフラグをＯＦＦにする（Ｓ１６０４）。
【０１３５】
Ｓ１６０４の後、ＣＰＵ２０１ａは、現在接続するサーバーが停止していると判断し、ＨＤＤ２０４などの不揮発領域に保存してある代替サーバーのホスト情報を確認する（Ｓ１６０５）。Ｓ１６０５の結果、代替サーバーのホスト情報が保存されていない場合は、ＣＰＵ２０１ａは、サーバーとの接続が行えなかったと判断し、呼び元に接続エラーを応答し（Ｓ１６１２）、処理を終了する。Ｓ１６０５の結果、代替サーバーのホスト情報が保存されている場合は、ＣＰＵ２０１ａは、接続するサーバーを切り替える（Ｓ１６０６）。ここで、接続するサーバーの切り替えは、Ｓ１６０１で確認したサーバーのホストが書誌サーバーであれば、代替サーバーに、Ｓ１６０１で確認したサーバーのホストが代替サーバーであれば、書誌サーバーに切り替える（Ｓ１６０６）。
【０１３６】
ＣＰＵ２０１ａは、Ｓ１６０６の後、切り替え後のサーバーに対し、Ｓ１６０２で実施したリクエストを送信する（Ｓ１６０７）。ＣＰＵ２０１ａは、Ｓ１６０７の結果、再度、サーバーの切り替えフラグを確認する（Ｓ１６０８）。Ｓ１６０８の結果、切り替えフラグがＯＮの場合、ＣＰＵ２０１ａは、次回判断時に切り替えフラグを正しく参照できるよう切り替えフラグをＯＦＦにする（Ｓ１６１０）。Ｓ１６１０の後、ＣＰＵ２０１ａは、次回呼び出し時に停止していると判断されたサーバーに接続しないよう接続先のサーバーを切り替えて（Ｓ１６１１）からＳ１６１２へ処理を進める。Ｓ１６０８の結果、切り替えフラグがＯＮでない場合は、ＣＰＵ２０１ａは、接続先を切り替えたのちのサーバーに対しリクエストが成功したと判断し、Ｓ１６０９へ進む。
【０１３７】
次に、ＣＰＵ２０１ａにより実行されるＳ１６０２と、Ｓ１６０７の具体的な手順を、図１６Ｂを用いて説明する。
【０１３８】
ＣＰＵ２０１ａは、ＨＤＤ２０４ａなどの不揮発領域に代替サーバーのホスト情報が保存されているか確認する（Ｓ１６２１）。
【０１３９】
Ｓ１６２１の結果、代替サーバーのホスト情報が保存されていない場合は、ＣＰＵ２０１ａは、接続可能なサーバーは１つであると判断し、接続失敗時のリトライ回数を設定する（Ｓ１６２２）。Ｓ１６２１の結果、代替サーバーのホスト情報が保存されている場合は、リトライ回数は設定せず、リトライしないようＳ１６２３へ進む。ステップＳ１６２３はすてぷ１６２４の繰り返しの条件を示しており、その条件が満たされるまでステップＳ１６２４が繰り返し実行される。
【０１４０】
ＣＰＵ２０１ａは、接続先のサーバーホストに接続を試みる（Ｓ１６２４）。ＣＰＵ２０１ａは、Ｓ１６２４の処理が成功するか、または、設定されたリトライ回数接続を試みるまで同じ処理をくり返す（Ｓ１６２３）。ここで、代替サーバーのホスト情報が保存されている場合は、リトライにより書誌サーバーの復旧を待つよりも代替サーバーへすぐに切り替えることによりユーザーへの処理応答性を向上させている。
【０１４１】
ＣＰＵ２０１ａは、Ｓ１６２４の接続処理の結果を確認する（Ｓ１６２５）。Ｓ１６２５の結果、ＣＰＵ２０１ａが接続に成功していないと判断した場合、接続先の切り替えフラグをＯＮにする（Ｓ１６２６）。Ｓ１６２５の結果、ＣＰＵ２０１ａが接続に成功したと判断した場合、ネットワーク１０１を介して、呼び元から渡されたリクエストをサーバーに対し送信する（Ｓ１６２７）。
【０１４２】
ＣＰＵ２０１ａは、Ｓ１６２７でサーバーに送信したリクエストに対するサーバーからの応答を確認する（Ｓ１６２８）。ＣＰＵ２０１ａは、Ｓ１６２８の確認の結果、サーバーからの応答が認証エラーかを判断する（Ｓ１６２９）。Ｓ１６２９の結果、認証エラーであると判断した場合、図９（ａ）で説明した認可情報の取得処理を実施し（Ｓ１６３０）、呼び元にサーバーからの応答を戻す（Ｓ１６３２）。ここで、Ｓ１６３０を実行後、認可トークンが更新されるため、認証エラーとなってしまったリクエスト（Ｓ１６２７）をＣＰＵ２０１ａは、やり直してもよい。
【０１４３】
Ｓ１６２９の結果、認証エラーではないと判断した場合、ＣＰＵ２０１ａは、サーバーからサーバーを切り替える指示を意味する応答であつたかを確認する（Ｓ１６３１）。Ｓ１６３１の結果、サーバーからの応答がサーバー切り替え指示であったと判断した場合、ＣＰＵ２０１ａは、接続先切り替えフラグをＯＮにし、Ｓ１６３２へ進む（Ｓ１６３３）。Ｓ１６３１の結果、サーバーからの応答がサーバー切り替え指示以外の場合、ＣＰＵ２０１ａは、サーバーからの応答をそのまま呼び元に返し処理を終了する（Ｓ１６３２）。
【０１４４】
これにより、複合機１０３は、上述していたサーバーへの通信処理を本フローチャートにより実現することで、書誌サーバー機となる複合機１０４が停止していた場合においても、代替サーバーへと切り替えることで、システムを停止せずにプリントシステムを継続できる。
【０１４５】
また、図１０や、図１２で説明したクライアントからのリクエスト処理のうち、接続エラーをリトライにより復旧するエラーであると定義することで、書誌サーバーと代替サーバーへの切り替えを繰り返し行うことができる。これにより、どちらかが復旧した場合に、ユーザーにエラー復旧操作をさせることなく、クライアントとなる複合機１０３は、自動的に書誌情報の同期を復旧することが可能となる。
【０１４６】
＜実際に印刷する際の出力機・入稿機間での認可確認の手順＞
図６、図７で概略を説明した印刷処理の一例として、図１７から図１９のフローチャートを示す。以降の説明では、ストレージ機となる複合機１０３と、書誌サーバーとなる複合機１０４と、出力機となる複合機１０５と、代替サーバーとなる複合機１０６の構成を例として説明する。
【０１４７】
図１７は、本実施例で説明する出力機となる複合機１０５のＣＰＵ２０１ｃにて実行され、Ｓ１７０１からＳ１７１７は、各ステップを示す。ＣＰＵ２０１ｃは、複合機１０５に対してユーザーがログインしたことを検知する（Ｓ１７０１）。図１４で詳細を説明したとおり、ＣＰＵ２０１ｃは、ログインを契機に書誌情報の同期を行う（Ｓ１７０２）。
【０１４８】
Ｓ１７０２の後、ＣＰＵ２０１ｃは、ユーザーが留め置きプリントのアプリケーション３１２の起動指示を検知し、アプリケーション３１２を起動し（Ｓ１７０３）、Ｓ１７０２で取得された書誌情報の一覧を表示する。ここで、Ｓ１７０２の取得が失敗または、空であってもＣＰＵ２０１ｃは、複合機１０５の不揮発領域に保存される書誌情報の一覧を表示する。
【０１４９】
ＣＰＵ２０１ｃは、ユーザーから文書を指定して印刷を指示されたことを検知する（Ｓ１７０４）。ＣＰＵ２０１ｃは、印刷を指示された文書が、複合機１０５のＨＤＤ２０４ｃなどに保存されている印刷データであるか確認する（Ｓ１７０５）。Ｓ１７０５の結果、指定された文書が、複合機１０５に保存された文書の場合、ＣＰＵ２０１ｃは、プリンタ部２０９ｃを用いて、指示された文書を印刷し処理を終了する（Ｓ１７１２）。Ｓ１７０５の結果、指定された文書が、複合機１０５に保存されていない文書の場合、ＣＰＵ２０１ｃは、複合機１０５に保存されている認可トークンを確認する（Ｓ１７０６）。
【０１５０】
ＣＰＵ２０１ｃは、Ｓ１７０６で確認したトークンが存在するかを確認する（Ｓ１７０７）。Ｓ１７０７の結果、認可トークンが存在しない場合は、ＣＰＵ２０１ｃは、図９（ａ）で説明した認可トークンの取得処理を行う（Ｓ１７０８）。Ｓ１７０７の結果、認可トークンが存在する場合は、ＣＰＵ２０１ｃは、指定された文書に対応する書誌情報から印刷先に指定されたストレージ機となる複合機１０３を特定し、印刷データの取得要求を行う（Ｓ１７０９）。
【０１５１】
Ｓ１７０９の後、ＣＰＵ２０１ｃは、ストレージ機からの応答の内容を確認する（Ｓ１７１０）。ＣＰＵ２０１ｃは、ストレージ機から印刷データが応答されたかを確認する（Ｓ１７１１）。Ｓ１７１１の結果、印刷データが応答された場合、Ｓ１７１２に進む。Ｓ１７１１の結果、印刷データが応答されない場合は、ＣＰＵ２０１ｃは、応答結果が認可エラーであったか確認をする（Ｓ１７１３）。Ｓ１７１３の確認の結果、認可エラーであった場合は、ＣＰＵ２０１ｃは、図９（ａ）で説明した、認可トークンの発行を行う（Ｓ１７１４）。ＣＰＵ２０１ｃは、Ｓ１７１４の処理結果が接続エラーであったか確認する（Ｓ１７１５）。Ｓ１７１５の結果、接続エラーであった場合、ＣＰＵ２０１ｃは、図１２で説明した書誌情報の同期を再度行い（Ｓ１７１７）、Ｓ１７０５からやり直す。
【０１５２】
Ｓ１７１５の結果、接続エラー以外の場合、ＣＰＵ２０１ｃは、印刷エラーを表示し（Ｓ１７１６）、ユーザーに印刷の再実行を促し終了する。ここで、図１７のＳ１７１５にて、接続エラーを検知した際に、書誌情報の同期Ｓ１７１７を実施することで、図１４を実行し、図１６により切り替わったサーバーに対して接続しなおし認可情報も更新される。さらに、Ｓ１７１６で、認可情報が正しく更新されていれば、ユーザーは操作やり直しにより次回処理は、正しく動作する。
【０１５３】
＜印刷データ取得要求に対する処理＞
図１８は、ストレージ機となる複合機１０３が、Ｓ１７０９の要求を受け付けた時に実行される手順の一例を示したフローチャートである。図１８は、ＣＰＵ２０１ａにて実行され、Ｓ１８０１からＳ１８１１は、各ステップを示す。
【０１５４】
ＣＰＵ２０１ａは、出力機から印刷データの取得要求（Ｓ１７０９）を受け付けたことを検知する（Ｓ１８０１）。ＣＰＵ２０１ａは、Ｓ１８０１で受け付けた要求に付与される認可トークンおよび文書ＩＤを取得する（Ｓ１８０２）。ＣＰＵ２０１ａは、取得した認可トークンを、図１６で説明したサーバーへのリクエスト送信手順により、書誌サーバーに対し確認するリクエストを送信する（Ｓ１８０３）。
【０１５５】
ＣＰＵ２０１ａは、Ｓ１８０３の処理結果を確認する（Ｓ１８０４）。ＣＰＵ２０１ａは、Ｓ１８０４で確認した結果が、認可確認がとれたかを判断する（Ｓ１８０５）。Ｓ１８０５の結果、認可確認がとれなかった場合、ＣＰＵ２０１ａは、要求元の出力機に認可エラーを応答する（Ｓ１８１１）。Ｓ１８０５の結果、認可確認が取れた場合は、ＣＰＵ２０１ａは要求から取得された文書ＩＤを用いて、複合機１０３の不揮発領域に保存されている印刷データを検索する（Ｓ１８０６）。
【０１５６】
Ｓ１８０６の検索の結果、ＣＰＵ２０１ａは、対象の文書が存在したかを確認する（Ｓ１８０７）。Ｓ１８０７の結果、対象となる印刷データが存在していない場合、ＣＰＵ２０１ａは、要求元の出力機に対し指定文書なしエラーを応答する（Ｓ１８１０）。Ｓ１８０７の結果、対象となる印刷データが存在している場合、ＣＰＵ２０１ａは、指定文書の印刷データを応答するために不揮発領域から読み出し応答データを生成する（Ｓ１８０８）。
【０１５７】
ＣＰＵ２０１ａは、Ｓ１８０８で生成された応答データを要求元の出力機に対して、応答する（Ｓ１８０９）。
【０１５８】
＜サーバーによるリクエスト処理＞
図１９は、書誌サーバーとなる複合機１０４が、Ｓ１８０３のリクエストを受け付けた時に実行される手順の一例を示したフローチャートである。図１９は、ＣＰＵ２０１ｂにて実行され、Ｓ１９０１からＳ１９０８は、各ステップを示す。
【０１５９】
ＣＰＵ２０１ｂは、ストレージ機から認可トークンの確認リクエスト（Ｓ１８０３）を受け付けたことを検知する（Ｓ１９０１）。ＣＰＵ２０１ｂは、リクエスト元となるストレージ機の認可確認を行う（Ｓ１９０２）。ＣＰＵ２０１ｂは、リクエスト元となるストレージ機の認可トークンが書誌サーバーへアクセス可能かを判断する（Ｓ１９０３）。Ｓ１９０３の結果、ストレージ機の認可トークンが書誌サーバーへアクセス可能でない場合、ＣＰＵ２０１ｂは、要求元のストレージ機に対して認可エラーを応答する（Ｓ１９０８）。
【０１６０】
Ｓ１９０３の結果、ストレージ機の認可トークンが書誌サーバーへアクセス可能な場合、ＣＰＵ２０１ｂは、Ｓ１９０１で検知したリクエストに付与される確認対象の認可トークンの登録状況を確認する（Ｓ１９０４）。Ｓ１９０４で確認した結果、ＣＰＵ２０１ｂが確認対象の認可トークンが有効であるかを確認する（Ｓ１９０５）。Ｓ１９０５の結果、認可トークンが有効でない場合、ＣＰＵ２０１ｂは、確認対象の認可トークンはアクセス認可されていないことを要求元のストレージ機へ応答する（Ｓ１９０７）。Ｓ１９０５の結果、認可トークンが有効な場合、ＣＰＵ２０１ｂは、確認対象の認可トークンはアクセス認可されていることを要求元のストレージ機へ応答する（Ｓ１９０６）。
【０１６１】
これにより、図６で概略を説明した実際に印刷を実行するまでに認可情報の確認が正しく行え、Ｓ１９０８を応答した際に、図１６のＳ１６３０で対処することで、認可トークンを最新に保つことができる。さらに、確認対象の認可トークンが有効でない場合でも、Ｓ１９０７の応答を、Ｓ１８１１で受け、出力機が、Ｓ１７１４を実施することで再認可を行ったうえで次回印刷処理が可能となる。また、認可確認時に接続するサーバーのホストが停止していた場合でもＳ１７１７を再度、実行することで接続先を切り替えやり直すことで切り替え後のサーバーに対するシステム保全が可能となる。
【０１６２】
＜代替サーバーによるシステム保全の手順＞
次に、書誌サーバー機１０４と、代替サーバー機１０６の切り替えにより、サーバー機能を代替することでプリントシステムを保全する手順を図２０から図２３を一例に示す。図２０は、Ｓ１１１１や、Ｓ１３１３で説明した、書誌サーバーに代替サーバーの情報が保存されている場合にデータ登録時バックアップを保存する手順の一例を示すフローチャートである。図２０は、書誌サーバーとなる複合機１０４のＣＰＵ２０１ｂにて実行され、Ｓ２００１から、Ｓ２０２１は、各ステップを示す。
【０１６３】
ＣＰＵ２０１ｂは、代替サーバーへバックアップする契機を検知する（Ｓ２００１）。本実施例では、図１１や、図１３で説明したＳ１１１１、Ｓ１３１３で検知される。ＣＰＵ２０１ｂは、図８（ａ）で書誌サーバーとなる複合機１０４の不揮発領域に保存していた管理者ＩＤとパスワードを用いて、ネットワーク１０１を介して、代替サーバーに対して認証を行う（Ｓ２０１９）。ここで、認証は代替サーバー機となる複合機の認証機能が担い、指定されたＩＤとパスワードに紐つく権限を応答する。
【０１６４】
ＣＰＵ２０１ｂは、Ｓ２０１９の結果を確認する（Ｓ２０２０）。Ｓ２０２０の結果、認証が成功しなかった場合、ＣＰＵ２０１ｂは、認証エラーをＨＤＤ２０４ｂなどの不揮発領域に保存し（Ｓ２０２１）、処理を終了する。ここで、保存した認証エラーの情報は、図８（ａ）でユーザーが入力した設定が誤っていたことを通知する場合などに用いられる。Ｓ２０２０の結果、認証が成功していた場合、ＣＰＵ２０１ｂは、代替サーバーとなる複合機１０６に対しネットワーク１０１を介して、認証結果と、サーバー機の機器固有番号を登録するリクエストを送信する（Ｓ２００２）。
【０１６５】
ＣＰＵ２０１ｂは、Ｓ２００１の処理結果を確認する（Ｓ２００３）。Ｓ２００３の結果、登録が失敗した場合、ＣＰＵ２０１ｂは、本フローチャートの処理を終了する。Ｓ２００３の結果、登録が成功した場合、ＣＰＵ２０１ｂは、前回のバックアップ送信が失敗であったかを確認する（Ｓ２００４）。前回、バックアップが送信失敗の場合、ＣＰＵ２０１ｂは、送信スキップカウント回数を確認し、規定回数以上の送信スキップが行われたか確認する（Ｓ２００５）。Ｓ２００５の結果、スキップカウント回数が規定回数以下の場合ＣＰＵ２０１ｂは、送信処理をスキップするため送信をスキップしたカウントをカウントアップし処理を終了する（Ｓ２００６）。
【０１６６】
Ｓ２００４の結果、前回バックアップが送信エラーでない場合、ＣＰＵ２０１ｂは、前回送信分のバックアップ管理データを複合機１０４の不揮発領域に保存されているか確認する（Ｓ２００７）。Ｓ２００５の結果、送信スキップカウントの回数が規定回数以上の場合も同じくＳ２００７へ進む。
【０１６７】
Ｓ２００７の結果、ＣＰＵ２０１ｂが、前回送信分からのバックアップ管理データがあると判断した場合、ＣＰＵ２０１ｂは、前回バックアップからの差分を取得する（Ｓ２００８）。Ｓ２００７の結果、ＣＰＵ２０１ｂが、前回送信分からのバックアップ管理データがないと判断した場合、ＣＰＵ２０１ｂは、書誌サーバーに登録されている全データを取得する（Ｓ２０１５）。ここで、書誌サーバーのデータへのアクセス管理のための認可トークンの管理データは、セキュリティのため、ここでいう全データには含めなくても本実施例では安全に印刷データのやりとりが可能である。
【０１６８】
ＣＰＵ２０１ｂは、Ｓ２００８、または、Ｓ２０１５で取得したバックアップデータと、サーバー機の機器固有番号と、Ｓ２０１９で取得した認証結果とを、ネットワーク１０１を介して、代替サーバーへ送信する（Ｓ２００９）。
【０１６９】
ＣＰＵ２０１ｂは、Ｓ２００９の処理結果を確認する（Ｓ２０１０）。Ｓ２０１０で確認した結果、ＣＰＵ２０１ｂは、送信が成功したかを判断する（Ｓ２０１１）。Ｓ２０１１の結果、バックアップデータの送信が成功した場合、ＣＰＵ２０１ｂは、前回送信分のバックアップ管理データを更新し、次回送信時に現時点からの差分を送信することでバックアップが同じものであることを管理する（Ｓ２０１２）。ＣＰＵ２０１ｂは、送信成功の結果を保存し（Ｓ２０１３）、送信スキップカウンターを初期化し（Ｓ２０１４）、次回失敗時は規定回数処理スキップするようにする。
【０１７０】
Ｓ２０１１の結果、バックアップデータの送信が成功でない場合、ＣＰＵ２０１ｂは、送信エラー情報を複合機１０４の不揮発領域に保存する（Ｓ２０１６）。ＣＰＵ２０１ｂは、送信スキップカウンターの値を確認し、初期値であるかを判断する（Ｓ２０１７）。Ｓ２０１７の結果、初期値でない場合は、送信エラー後、規定回数スキップした後、データ送信を行ったため次回もスキップしてしまうと代替サーバーと書誌サーバーの保持するデータが規定回数以上の差分となってしまう。それを防ぐために、ＣＰＵ２０１ｂは、前回送信分のバックアップ管理データをクリアし、次回送信時にはＳ２０１５を実行できるようにする（Ｓ２０１８）。Ｓ２０１７の結果、初期値の場合は、ＣＰＵ２０１ｂは、規定回数分、バックアップデータの送信処理をスキップするようＳ２０１４へ進み処理を終了する。
【０１７１】
これにより、代替サーバーとなる複合機１０６が停止していた場合に差分データを送信できず、次回復帰時に全データのバックアップを行うことを行わないですむケースを考慮している。また図２０の手順は、たとえば書誌サーバー１０４のダウン等により代替サーバー１０６がサーバーとして機能している状態で、書誌サーバー１０４が復帰した場合にも実行される。この手順で代替サーバー１０６に対して書誌サーバー１０４の復旧を通知し、代替サーバーから処理サーバーへの切り替えを促す。
【０１７２】
＜代替サーバーによるバックアップデータ受け付け＞
図２１Ａ，図２１Ｂは、代替サーバーとなる複合機１０６が、書誌サーバーからバックアップデータを受け付けた時に実行される手順の一例を示したフローチャートである。図２１Ａ，図２１Ｂは、ＣＰＵ２０１ｄにて実行され、Ｓ２１０１からＳ２１０７と、Ｓ２１１０からＳ２１２３は、各ステップを示す。図２１Ａは、書誌サーバーのＳ２００２のリクエストを受け付けた時に実行される。
【０１７３】
ＣＰＵ２０１ｄは、ネットワーク１０１を介して、書誌サーバーから送信された書誌サーバーの機器固有番号の登録リクエスト（Ｓ２００２）を受け付ける（Ｓ２１０１）。ＣＰＵ２０１ｄは、Ｓ２１０１で受信したリクエストに付与された認証結果を確認する（Ｓ２１０７）。Ｓ２１０７の結果、代替サーバーに対しアクセス権限があれば、ＣＰＵ２０１ｄは、Ｓ２１０２へ進み、アクセス権限がなければ、ＣＰＵ２０１ｄは、Ｓ２１０５へ進む。
【０１７４】
ＣＰＵ２０１ｄは、複合機１０６のＨＤＤ２０４ｄなど、不揮発領域に保存されているバックアップデータを送信してくる書誌サーバーの機器固有番号を確認する（Ｓ２１０２）。Ｓ２１０２の結果、機器固有番号が保存されていない場合、ＣＰＵ２０１ｄは、Ｓ２１０１で取得したリクエストに含まれる機器固有番号をＨＤＤ２０４ｄなど不揮発領域に保存する（Ｓ２１０３）。Ｓ２１０３の後、ＣＰＵ２０１ｄは、Ｓ２１０１のリクエスト元のホスト名を特定し、特定されたホスト名を複合機１０６の不揮発領域に保存する（Ｓ２１０６）。ホスト名の特定は、通信に持ちいたられる主に、ｈｔｔｐ通信プロトコルで取得される要求元のホスト名取得を用いた特定方法や、リクエストにあらかじめホスト名を挿入しておくなどがある。ここで、ホスト名の特定方法は、一例であった、前記説明に限ったものではない。
【０１７５】
Ｓ２１０２の結果、機器固有番号が既に保存されている場合、ＣＰＵ２０１ｄは、複合機１０６の不揮発領域に保存された固有番号と、Ｓ２１０１で取得したリクエストに含まれる機器固有番号を比較する（Ｓ２１０４）。Ｓ２１０４の結果、複合機１０６に保存されているものと一致した場合、ＣＰＵ２０１ｄは、Ｓ２１０３へ進む。Ｓ２１０４の結果、複合機１０６に保存されているものと一致しない場合は、ＣＰＵ２０１ｄは、要求元の書誌サーバーに対して登録要求がエラーであったことを応答し（Ｓ２１０５）、処理を終了する。
【０１７６】
図２１Ｂは、書誌サーバーのＳ２００９のデータ送信を受け付けた時に代替サーバーにより実行される。ＣＰＵ２０１ｄは、ネットワーク１０１を介して、書誌サーバーからＳ２００９で送信されたバックアップデータと機器固有番号を受け付ける（Ｓ２１１０）。
【０１７７】
ＣＰＵ２０１ｄは、Ｓ２１１０で受信したリクエストに付与された認証結果を確認する（Ｓ２１１１）。Ｓ２１１１の結果、代替サーバーに対しアクセス権限があれば、ＣＰＵ２０１ｄは、Ｓ２１１２へ処理を進め、アクセス権限がなければ、Ｓ２１２１へ進める。ＣＰＵ２０１ｄは、書誌サーバー機からのデータ送信がなされたと判断し、書誌サーバーとなる複合機１０４が停止から復旧したことを示すサーバー機復旧フラグをＯＮにする（Ｓ２１１２）。
【０１７８】
ＣＰＵ２０１ｄは、複合機１０６の不揮発領域に保存されている固有番号を確認し、Ｓ２１１０で受け付けた固有番号と一致しているか判断する（Ｓ２１１３）。Ｓ２１１３の結果、複合機１０６の不揮発領域に保存している番号とＳ２１１０で受け付けた固有番号が一致していない場合、ＣＰＵ２０１ｄは、送信元の書誌サーバーに対しバックアップ受信エラーを応答し（Ｓ２１２１）、処理を終了する。Ｓ２１１３の結果、複合機１０６の不揮発領域に保存している番号とＳ２１１０で受け付けた固有番号が一致している場合、ＣＰＵ２０１ｄは、書誌サーバーの機能を代替するよう動作していたかを確認し判断する（Ｓ２１１４）。確認方法は、後述の図２２で説明する代替サーバーで動作していたことを示すフラグ（代替サーバー動作フラグ）をＣＰＵ２０１ｄが確認し、判断する。
【０１７９】
Ｓ２１１４の結果、代替サーバーとして動作していた場合、ＣＰＵ２０１ｄは、代替サーバー動作フラグをＯＦＦし（Ｓ２１１５）、Ｓ２１２１へ進み処理を終了する。これは、書誌サーバーが復旧時に、代替サーバーとなる複合機１０６がクライアントとなる複合機からリクエストを受信しており、その結果、書誌サーバーが受信していたバックアップデータよりも新しい書誌情報があることを書誌サーバーに知らせる目的がある。これにより、書誌サーバーは、Ｓ２１２１のエラーを受け、代替サーバーのデータが最新であるかの判断を行える。
【０１８０】
Ｓ２１１４の結果、代替サーバーとして動作していなかった場合、ＣＰＵ２０１ｄは、Ｓ２１１０で受信したバックアップデータが前回からの差分であるか確認する（Ｓ２１１６）。Ｓ２１１６の結果、差分でない場合、ＣＰＵ２０１ｄは、書誌サーバーの全データのバックアップであると判断し、前回まで保持していたバックアップデータを破棄し（Ｓ２１２２）、受信したバックアップを不揮発領域に保存する（Ｓ２１２３）。Ｓ２１２３の後、ＣＰＵ２０１ｄは、処理をＳ２１１９へ進める。Ｓ２１１６の結果、差分である場合、ＣＰＵ２０１ｄは、前回より新しいバックアップデータであるか確認する（Ｓ２１１７）。
【０１８１】
Ｓ２１１７の結果、前回より古いバックアップデータの場合は、ＣＰＵ２０１ｄは、処理をＳ２１２１へ進めエラーを応答する。Ｓ２１１７の結果、前回より新しいバックアップデータの場合は、ＣＰＵ２０１ｄは、前回まで保持していたバックアップデータに受信したバックアップデータを反映させ（Ｓ２１１８）、処理をＳ２１１９へ進める。Ｓ２１１９では、ＣＰＵ２０１ｄが、受信した最終バックアップデータのバージョン管理をしており、受信履歴となる情報を更新する（Ｓ２１１９）。ＣＰＵ２０１ｄは、バックアップデータの受信後、反映処理が終わったことを要求元の書誌サーバーへ応答し（Ｓ２１２０）、処理を終了する。
【０１８２】
＜代替サーバーによるリクエスト受付処理＞
図２２は、本実施例における代替サーバーがクライアントとなる複合機からリクエストを受け付けた際に書誌サーバー機の機能を代替する手順の一例を示したフローチャートである。図２２は、ＣＰＵ２０１ｄにて実行され、Ｓ２２０１からＳ２２１０は、各ステップを示す。
【０１８３】
ＣＰＵ２０１ｄは、クライアントとなる複合機からネットワークを介してリクエストを受信したことを検知する（Ｓ２２０１）。ＣＰＵ２０１ｄは、Ｓ２１０６で保存した書誌サーバーのホスト情報があるか確認する（Ｓ２２０２）。Ｓ２２０２の結果、ホスト情報がない場合、ＣＰＵ２０１ｄは、リクエスト元のクライアントに対し、エラーを応答する（Ｓ２２１０）。Ｓ２２０２の結果、ホスト情報がある場合、ＣＰＵ２０１ｄは、サーバー機復旧フラグを確認する（Ｓ２２０３）。
【０１８４】
Ｓ２２０３の結果、書誌サーバーが起動していると判断するためのサーバー機復旧フラグがＯＮでない場合は、ＣＰＵ２０１ｄは、リクエストに対応する処理を行う（Ｓ２２０８）。ここでＳ２２０８が行うのは、図９（ｂ）、図１１、図１３で説明した書誌サーバーの処理と同様の処理である。代替サーバーには、代替サーバーのホスト情報は登録されていないため、ＣＰＵ２０１ｄは、それぞれのフローチャートで代替サーバーのホスト情報が登録されていないと判断をする。
【０１８５】
Ｓ２２０３の結果、書誌サーバーが起動していると判断するためのサーバー機復旧フラグがＯＮの場合は、ＣＰＵ２０１ｄは、Ｓ２２０２で確認したホスト情報に対して起動しているかの確認を行う（Ｓ２２０４）。ここで、起動確認はネットワーク１０１を介して、書誌サーバーとなる複合機１０４のネットワークＩ／Ｆ２１０ｂと通信が行えるか確認する。
【０１８６】
ＣＰＵ２０１ｄは、Ｓ２２０４の結果から書誌サーバーとなる複合機１０４の起動判断を行う（Ｓ２２０５）。Ｓ２２０５の結果、書誌サーバーとなる複合機１０４が起動していると判断した場合、ＣＰＵ２０１ｄは、リクエスト元（要求元）のクライアントに対し書誌サーバーへ切り替えることを指示する応答を行う（Ｓ２２０９）。Ｓ２２０５の結果、書誌サーバーとなる複合機１０４が起動していないと判断した場合、ＣＰＵ２０１ｄは、書誌サーバーが起動していないと判断し、書誌サーバーの起動を判断するためのフラグ（サーバー機復旧フラグ）をＯＦＦする（Ｓ２２０６）。Ｓ２２０６の後、ＣＰＵ２０１ｄは、複合機１０５が書誌サーバーの機能を代替するサーバーとして動作していることを示すフラグをＯＮにして（Ｓ２２０７）、Ｓ２２０８へ進む。なおステップＳ２２０９で代々サーバーから書誌サーバーへのサービスの要求先の切り替え指示を受信したクライアントは、サーバーを代替サーバーから書誌サーバーへと切り替え、書誌サーバーへとリクエストを送信し直す。
【０１８７】
＜書誌サーバーによる復旧処理＞
図２３は、書誌サーバーとなる複合機１０４が、代替サーバーからデータを復旧する際の手順の一例を示したフローチャートである。図２３は、ＣＰＵ２０１ｂにて実行され、Ｓ２３０１からＳ２３１１は、各ステップを示す。
【０１８８】
ＣＰＵ２０１ｂは、代替サーバーに保存されるバックアップデータで復旧する契機を検知する（Ｓ２３０１）。ここで、本実施例における復旧の契機は、複合機１０４の電源がＯＮされた場合や、ネットワークケーブルが抜けていた状態から繋げられた場合などが一例として挙げられる。前記復旧の契機については、一例でありこれに限ったものではない。Ｓ２３０１の後、ＣＰＵ２０１ｂは、代替サーバーのホストが複合機１０４の不揮発領域に保存されているか確認する（Ｓ２３０２）。
【０１８９】
Ｓ２３０２の結果、代替サーバーのホスト情報が保存されていない場合は、ＣＰＵ２０１ｂは以降、何もせず処理を終了する。Ｓ２３０２の結果、代替サーバーのホスト情報が保存されている場合は、ＣＰＵ２０１ｂは、図８（ａ）で保存した管理者ＩＤとパスワードを用いて、ネットワーク１０１を介して、代替サーバーに対して認証を行う（Ｓ２３０９）。ＣＰＵ２０１ｂは、Ｓ２３０９の処理結果を確認する（Ｓ２３１０）。
【０１９０】
Ｓ２３１０の結果、認証が成功しなかった場合、ＣＰＵ２０１ｂは、認証エラーをＨＤＤ２０４ｂなどの不揮発領域に保存し（Ｓ２３１１）、処理を終了する。ここで、保存した認証エラーの情報は、図８（ａ）でユーザーが入力した設定が誤っていたことを通知する場合などに用いられる。Ｓ２３１０の結果、認証が成功した場合、ＣＰＵ２０１ｂは、保存されていたホスト情報を用いて、認証結果と合わせて、代替サーバーに対しネットワークを介して状態を確認する（Ｓ２３０３）。
【０１９１】
ＣＰＵ２０１ｂは、Ｓ２３０３の確認結果をもって代替サーバーが停止中であるか判断する（Ｓ２３０４）。Ｓ２３０４の結果、代替サーバーが停止中の場合、ＣＰＵ２０１ｂは以降、何もせず処理を終了する。ここで、停止中とは、ネットワーク１０１を介して代替サーバーとなる複合機１０６のネットワークＩ／Ｆ２１０ｄと通信が行えない状態を指す。Ｓ２３０４の結果、代替サーバーが停止中でない場合、ＣＰＵ２０１ｂは、代替サーバーがクライアントからのリクエスト受け書誌サーバーの機能を代替していたかを確認する（Ｓ２３０５）。
【０１９２】
Ｓ２３０５の結果、代替サーバーが書誌サーバーの機能を代替していなかった場合、ＣＰＵ２０１ｂは以降、何もせず処理を終了する。Ｓ２３０５の結果、代替サーバーが書誌サーバーの機能を代替していた場合、ＣＰＵ２０１ｂは、機器固有番号と、Ｓ２３０９の認証結果とともに代替サーバーに対してバックアップファイルの取得要求を送信する（Ｓ２３０６）。ＣＰＵ２０１ｂは、Ｓ２３０６の結果からバックアップデータが応答されたかを確認する（Ｓ２３０７）。
【０１９３】
Ｓ２３０７の結果、バックアップデータが応答されていない場合は、ＣＰＵ２０１ｂは以降、何もせず処理を終了する。Ｓ２３０７の結果、バックアップデータが応答された場合は、ＣＰＵ２０１ｂは、応答されたバックアップデータを用いて、書誌サーバーのデータをリストアする（Ｓ２３０８）。
【０１９４】
以上の手順により、代替サーバーによって書誌サーバー機能が代替されていた状態で元の書誌サーバーが復旧すると、代替サーバーで保持されたデータを書誌サーバーにレストアすることができる。これにより、代替サーバーから書誌サーバーへとサーバー機能が戻されても、サービスを支障なく継続できる。
【０１９５】
＜代替サーバーによる状態確認及びバックアップデータ送信＞
図２４（ａ）は、代替サーバーが書誌サーバーより、ステップＳ２３０３における状態の確認リクエストを受けた時に実行される手順の一例を、図２４（ｂ）は、代替サーバーが書誌サーバーより、ステップＳ２３０６におけるバックアップデータの取得要求を受けた時に実行される手順の一例をそれぞれ示したフローチャートである。図２４（ａ）、（ｂ）は、ＣＰＵ２０１ｄで実行され、Ｓ２４０１からＳ２４０６と、Ｓ２４１１からＳ２４１５は、各ステップを示す。
【０１９６】
図２４（ａ）は、書誌サーバーのＳ２３０３のリクエストを受け付けた時に実行される。ＣＰＵ２０１ｄは、ネットワーク１０１を介して、書誌サーバーから送信された代替サーバーの状態確認リクエストを受け付けたことを検知する（Ｓ２４０１）。ＣＰＵ２０１ｄは、Ｓ２４０１で受信したリクエストに付与された認証結果を確認する（Ｓ２４０５）。Ｓ２４０５の結果、代替サーバーに対しアクセス権限がなければ、ＣＰＵ２０１ｄは、エラーをリクエスト元の書誌サーバーに対してエラーを応答し（Ｓ２４０６）、処理を終了する。
【０１９７】
Ｓ２４０５の結果、代替サーバーに対しアクセス権限があれば、ＣＰＵ２０１ｄは、複合機１０６に保存される代替サーバーがクライアントからのリクエストを書誌サーバーの代替として受け答えしていたかを管理するフラグを確認する（Ｓ２４０２）。Ｓ２４０２の結果、代替サーバーとして動作していた場合は、ＣＰＵ２０１ｄは、要求元の書誌サーバーに対し書誌サーバーの機能を代替していたことを応答する（Ｓ２４０３）。２４０４の結果、代替サーバーとして動作していなかった場合は、ＣＰＵ２０１ｄは、要求元の書誌サーバーに対し書誌サーバーの機能は代替していなかったことを応答する（Ｓ２４０４）。
【０１９８】
図２４（ｂ）は、書誌サーバーのＳ２３０６のリクエストを受け付けた時に実行される。ＣＰＵ２０１ｄは、ネットワークを介して、書誌サーバーから送信されたバックアップデータの取得要求を受け付けたことを検知する（Ｓ２４１１）。ＣＰＵ２０１ｄは、Ｓ２４１１で受け付けたリクエストに付与された認証結果を確認する（Ｓ２４１５）。Ｓ２４１５の結果、代替サーバーに対してアクセス権限がなければ、ＣＰＵ２０１では、リクエスト元の書誌サーバーに対しエラーを応答し（Ｓ２４１４）、処理を終了する。Ｓ２４１５の結果、代替サーバーに対してアクセス権限があれば、ＣＰＵ２０１ｄは、Ｓ２４１１で受け付けたリクエストに含まれる機器固有番号と、代替サーバーとして複合機１０６の不揮発領域に保存された機器固有番号を確認する（Ｓ２４１２）。
【０１９９】
Ｓ２４１２の結果、機器固有番号が一致した場合、ＣＰＵ２０１ｄは、要求元の書誌サーバーに対しバックアップデータを応答する（Ｓ２４１３）。Ｓ２４１２の結果、機器固有番号が一致しない場合、ＣＰＵ２０１ｄは、要求元の書誌サーバーに対しエラーを応答する（Ｓ２４１４）。
【０２００】
以上の図２０から図２４の書誌サーバーと代替サーバーの処理手順により、書誌サーバーが停止中に、クライアントとなる複合機からのリクエストを代替サーバーが機能代替することでシステムを保全することができる。また、書誌サーバーが起動したときなど、クライアントが代替サーバーに接続しているときでも最新のデータ状態で書誌サーバーが復旧し、クライアントとなる複合機も書誌サーバーへ接続し直すことが可能となる。
【０２０１】
このように本実施形態によれば、複合機（画像形成装置とも呼ぶ）で構成したネットワーク上に留め置き印刷システムを構築することができる。そしてその留め置き印刷システムには、書誌サーバーが停止した際の代替サーバーを用意することができる。書誌サーバーは代替サーバーへサーバー機能のためのデータ、たとえば書誌情報やネットワーク構成に関する情報（たとえばクライアントのアドレス等の情報）を、それらが更新される都度送信することで、いつでも代替可能な状態を維持することができる。さらにサーバー切り替えのトリガは、クライアントからサーバーに対するアクセスのタイムアウトであり、クライアントによる主体的な判断でサーバーの代替が行われる。このため、サーバーと代替サーバーとの間のキープアライブ等の手順が不要となり、サーバーの処理負担や通信量を軽減できる。さらにサーバーが復旧した際には、代替サーバーからサーバーへサーバー機能のためのデータを戻してから代替サーバーから書誌サーバーへとサーバー機能を復帰させる。これにより、書誌サーバーと代替サーバーとが切り替わっても切れ目ないサービスを提供できる。
【０２０２】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０２０３】
１０１  ネットワーク、１０２  情報処理装置（パーソナルコンピューター）、１０３  画像形成装置（ストレージ機）、１０４  画像形成装置（書誌サーバー）、１０５  画像形成装置（出力機）、１０６  画像形成装置（代替サーバー）
【図１】
2020001349.tif 000003
【図２】
2020001349.tif 000004
【図３】
2020001349.tif 000005
【図４】
2020001349.tif 000006
【図５】
2020001349.tif 000007
【図６Ａ】
2020001349.tif 000008
【図６Ｂ】
2020001349.tif 000009
【図７Ａ】
2020001349.tif 000010
【図７Ｂ】
2020001349.tif 000011
【図８】
2020001349.tif 000012
【図９】
2020001349.tif 000013
【図１０】
2020001349.tif 000014
【図１１】
2020001349.tif 000015
【図１２】
2020001349.tif 000016
【図１３】
2020001349.tif 000017
【図１４】
2020001349.tif 000018
【図１５】
2020001349.tif 000019
【図１６Ａ】
2020001349.tif 000020
【図１６Ｂ】
2020001349.tif 000021
【図１７】
2020001349.tif 000022
【図１８】
2020001349.tif 000023
【図１９】
2020001349.tif 000024
【図２０】
2020001349.tif 000025
【図２１Ａ】
2020001349.tif 000026
【図２１Ｂ】
2020001349.tif 000027
【図２２】
2020001349.tif 000028
【図２３】
2020001349.tif 000029
【図２４】
2020001349.tif 000030