〔第1実施形態〕
以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本発明の情報処理装置およびプリントサーバおよび印刷管理サーバおよび印刷装置を適用可能なプリントシステムの構成の一例を示すシステム構成図である。
図1の「事業所A」に示すように、本実施形態のプリントシステムは、1又は複数のクライアントPC100(例えば、ユーザ毎)、1又は複数のプリントサーバ200(例えば、社屋の階毎に設置)、1又は複数の複合機300(例えば、社屋の階毎に設置),印刷管理サーバ400、1又は複数のログインサービスPC500(例えば、社屋の階毎に設置)、ディレクトリサービスサーバ600がローカルエリアネットワーク(LAN)700を介して接続される構成となっている。
クライアントPC100には、プリンタドライバがインストールされており、このプリンタドライバは、アプリケーションプログラムから受け取ったデータに基づいて印刷データを生成し、該印刷データをプリントサーバ200等へ送信し、プリントサーバ200の所定の格納場所(スプール領域)に格納させることができる。
プリントサーバ200は、クライアントPC100から受信した印刷データに対応する書誌情報データを生成し、印刷管理サーバ400に送信して、該印刷管理サーバ400の所定の格納場所に格納させることができる。
また、プリントサーバ200は、外部から受信したLPRを実行するためのコマンドに基づいて上記所定の格納場所に格納している印刷データを複合機300へ転送制御する。
印刷管理サーバ400は、書誌情報DB(後述する図6に示す)を備え、本実施形態の「プルプリント」実行時に、プリントサーバ200から送信される書誌情報(プリントサーバ200内に蓄積された印刷データに対応する書誌情報)を受信し、書誌情報DBにより記憶管理する。
また、印刷管理サーバ400は、不図示のICカード認証用テーブル(カード製造番号、ユーザ名、メールアドレス等の項目を有する)を記憶し、複合機300からのICカードによる認証依頼に応じて、該ICカード認証用テーブルを用いて認証処理を行う。
さらに、印刷管理サーバ400は、複合機300からの印刷要求(書誌情報DBで管理される書誌情報に対応する印刷データの印刷要求)に応じて、該印刷データの印刷指示を書誌情報内に記載されたIPアドレスに対応する装置(プリントサーバ200)に対して行う。
ログインサービスPC500は、複合機300のログインサービスとして、ディレクトリサービスサーバ600で記憶管理されているクライアントPC100のログインユーザ名,パスワード(例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名,パスワード)に基づく認証処理(SSO(Single Sign−ON))を行うものであり、例えば、キヤノン社のセキュリティエージェント(Security Agent)サービスを搭載したパーソナルコンピュータである。
ディレクトリサービスサーバ600は、ネットワーク上に存在するサーバ、クライアント、プリンタ等のハードウェア資源や、それらを使用するユーザの属性(クライアントPC100のログインユーザ名,パスワード(例えば、マイクロソフト社のWindows(登録商標)のログインユーザ名,パスワード)を含む)、アクセス権等の情報を一元記憶管理するものであり、例えば、アクティブディレクトリ(Active Directory)機能を搭載したサーバである。
また、本実施形態のプリントシステムは、上述した構成の「事業所A」と、1又は複数のクライアントPC100,1又は複数のプリントサーバ200,1又は複数の複合機300がLAN700を介して接続される構成の1又は複数の「事業所B」とが、WAN800を介して接続される構成であってもよい。
なお、本実施形態では、印刷管理サーバ400内にICカード認証用テーブルを持たせ、印刷管理サーバ400にICカード認証を行わせるように構成したが、印刷管理サーバ400がログインサービスPC500と連携しログインサービスPC500で認証を実行させるようにしてもよい。その際、印刷管理サーバ400は、ログインサービスPC500で認証がなされ正規のユーザと判断できればICカード認証用テーブルを参照しないものとする。
以下、図2を用いて、図1に示したクライアントPC100,プリントサーバ200,印刷管理サーバ400,ログインサービスPC500,ディレクトリサービスサーバ600に適用可能な情報処理装置のハードウェア構成について説明する。
図2は、図1に示したクライアントPC100,プリントサーバ200,印刷管理サーバ400,ログインサービスPC500,ディレクトリサービスサーバ600に適用可能な情報処理装置のハードウェア構成を示すブロック図である。
図2において、201はCPUで、システムバス204に接続される各デバイスやコントローラを統括的に制御する。また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、205は入力コントローラで、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)210等の表示器にへの表示を制御する。なお、図2では、CRT210と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
207はメモリコントローラで、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
208は通信I/Fコントローラで、ネットワーク(例えば、図1に示したLAN700)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT210上での表示を可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ211に格納されており、これらについての詳細な説明も後述する。
次に、図3を用いて、図1に示した複合機300を制御するコントローラユニットのハードウェア構成について説明する。
図3は、図1に示した複合機300のコントローラユニットのハードウェア構成の一例を示すブロック図である。
図3において、316はコントローラユニットで、画像入力デバイスとして機能するスキャナ314や、画像出力デバイスとして機能するプリンタ312と接続する一方、LAN(例えば、図1に示したLAN700)や公衆回線(WAN)(例えば、PSTNまたはISDN等)と接続することで、画像データやデバイス情報の入出力を行う。
コントローラユニット316において、301はCPUで、システム全体を制御するプロセッサである。302はRAMで、CPU301が動作するためのシステムワークメモリであり、プログラムを記録するためのプログラムメモリや、画像データを一時記録するための画像メモリでもある。
303はROMで、システムのブートプログラムや各種制御プログラムが格納されている。304はハードディスクドライブ(HDD)で、システムを制御するための各種プログラム,画像データ等を格納する。
307は操作部インタフェース(操作部I/F)で、操作部(UI)308とのインタフェース部であり、操作部308に表示する画像データを操作部308に対して出力する。また、操作部I/F307は、操作部308から本システム使用者が入力した情報(例えば、ユーザ情報等)をCPU301に伝える役割をする。なお、操作部308はタッチパネルを有する表示部を備え、該表示部に表示されたボタンを、ユーザが押下(指等でタッチ)することにより、各種指示を行うことができる。
305はネットワークインタフェース(Network I/F)で、ネットワーク(LAN)に接続し、データの入出力を行う。306はモデム(MODEM)で、公衆回線に接続し、FAXの送受信等のデータの入出力を行う。
318は外部インタフェース(外部I/F)で、USB、IEEE1394,プリンタポート,RS−232C等の外部入力を受け付けるI/F部であり、本実施形態においては認証で必要となるICカードの読み取り用のカードリーダ319が外部I/F部318に接続されている。そして、CPU301は、この外部I/F318を介してカードリーダ319によるICカードからの情報読み取りを制御し、該ICカードから読み取られた情報を取得可能である。以上のデバイスがシステムバス309上に配置される。
320はイメージバスインタフェース(IMAGE BUS I/F)であり、システムバス309と画像データを高速で転送する画像バス315とを接続し、データ構造を変換するバスブリッジである。
画像バス315は、PCIバスまたはIEEE1394で構成される。画像バス315上には以下のデバイスが配置される。
310はラスタイメージプロセッサ(RIP)で、例えば、PDLコード等のベクトルデータをビットマップイメージに展開する。311はプリンタインタフェース(プリンタI/F)で、プリンタ312とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。また、313はスキャナインタフェース(スキャナI/F)で、スキャナ314とコントローラユニット316を接続し、画像データの同期系/非同期系の変換を行う。
317は画像処理部で、入力画像データに対し補正、加工、編集を行ったり、プリント出力画像データに対して、プリンタの補正、解像度変換等を行う。また、これに加えて、画像処理部317は、画像データの回転や、多値画像データに対してはJPEG、2値画像データはJBIG、MMR、MH等の圧縮伸張処理を行う。
スキャナ部314は、原稿となる紙上の画像を照明し、CCDラインセンサで走査することで、ラスタイメージデータとして電気信号に変換する。原稿用紙は原稿フィーダのトレイにセットし、装置使用者が操作部308から読み取り起動指示することにより、CPU301がスキャナ314に指示を与え、フィーダは原稿用紙を1枚ずつフィードし原稿画像の読み取り動作を行う。
プリンタ部312は、ラスタイメージデータを用紙上の画像に変換する部分であり、その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、CPU301からの指示によって開始する。なお、プリンタ部312には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセットがある。
操作部308は、LCD表示部を有し、LCD上にタッチパネルシートが貼られており、システムの操作画面を表示するとともに、表示してあるキーが押されるとその位置情報を操作部I/F307を介してCPU301に伝える。また、操作部308は、各種操作キーとして、例えば、スタートキー、ストップキー、IDキー、リセットキー等を備える。
ここで、操作部308のスタートキーは、原稿画像の読み取り動作を開始する時などに用いる。スタートキーの中央部には、緑と赤の2色LEDがあり、その色によってスタートキーが使える状態にあるかどうかを示す。また、操作部308のストップキーは、稼働中の動作を止める働きをする。また、操作部308のIDキーは、使用者のユーザIDを入力する時に用いる。リセットキーは、操作部からの設定を初期化する時に用いる。
カードリーダ319は、CPU301からの制御により、ICカード(例えば、ソニー社のフェリカ(FeliCa)(登録商標))内に記憶されている情報を読み取り、該読み取った情報を外部I/F318を介してCPU301へ通知する。
以上のような構成によって、複合機300は、スキャナ314から読み込んだ画像データをLAN700上に送信したり、LAN700から受信した印刷データをプリンタ312により印刷出力することができる。
また、スキャナ314から読み込んだ画像データをモデム306により、公衆回線上にFAX送信したり、公衆回線からFAX受信した画像データをプリンタ312により出力することできる。
以下、図4を用いて、本実施形態のプリントシステムにおけるプルプリントの全体の流れについて説明する。
まず、本実施形態のプルプリントを実行するための前提について説明する。
まず、各クライアントPC100へは、通常のプリンタドライバをインストールして、論理プリンタを追加しておく。なお、この論理プリンタは、その印刷先(印刷ポート)がプリントサーバ200に設定されている。
この各クライアントPC100に追加された、印刷先がプリントサーバ200に設定された論理プリンタに対して、ユーザが印刷指示を行うことにより、本実施形態のプルプリントが実行される。
以下、本実施形態のプルプリントの全体の流れについて説明する。
図4は、本実施形態のプリントシステムにおけるプルプリントの全体の流れ説明する模式図である。
図4に示すように、まず、ユーザは、クライアントPC100にログインし((1)−1)、該クライアントPC100で実行されるアプリケーションプログラムから上記印刷先設定されたプリンタドライバに対応する論理プリンタへの印刷指示を行う((1)−2)。
この印刷指示に応じて、クライアントPC10のアプリケーションプログラムは、グラフィックエンジンを介して、プリンタドライバにデータを送信する。クライアントPC100のプリンタドライバは、該アプリケーションプログラムからグラフィックエンジンを介して受け取ったデータに基づいて印刷データを生成する。そして、クライアントPC100は、生成した印刷データをプリントサーバ200に送信して((2)−1)、プリントサーバ200はこの印刷データを所定の格納場所に格納させる((2)−2)。なお、クライアントPC100からプリントサーバ200への送信は、例えばLPR印刷の仕組みを用いて送信される。また、プリントサーバ200は、上記所定の格納場所に印刷データが格納されても、印刷装置への送信は行わない。
次に、プリントサーバ200は、クライアントPC100から受信して上記所定の格納場所に格納された上記印刷データから書誌情報データを抽出(生成)し((2)−3)、該抽出(生成)した書誌情報データを印刷管理サーバ400に送信して、ネットワーク上でのファイル共有の仕組みを用いて印刷管理サーバ400の所定の格納場所(予め設定されているディレクトリ)に格納させる((3)−1)。
印刷管理サーバ400は、上記所定のディレクトリを監視し、該所定のディレクトリにプリントサーバ200から書誌情報ファイルが格納されると、該書誌情報ファイルを解析し書誌情報を書誌情報DB(印刷管理サーバ400の外部記憶装置上に構築される(後述する図6に示す))に登録する((3)−2)。
また、複合機300は、カードリーダ319により読み取り可能なICカードを検知すると、該ICカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として印刷管理サーバ400に送信する((4)−1)。個人認証情報は、認証に用いられる情報であり該ICカードの製造番号でも良い。
印刷管理サーバ400は、複合機300より個人認証情報を受信すると、該個人認証情報の認証処理を印刷管理サーバ400の外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機300に返信する((4)−2)。なお、認証処理に成功した場合には、認証結果として、クライアントPC100のログインユーザIDを送信するものとする。
次に、複合機300は、印刷管理サーバ400から、認証に成功した旨の認証結果(クライアントPC100のログインユーザID)を受信すると、印刷管理サーバ400に印刷データ一覧要求を送信する((5)−1)。なお、印刷データ一覧要求には、クライアントPC100のログインユーザIDが含まれているものとする(後述する図8に示す)。
印刷管理サーバ400は、複合機300から印刷データ一覧要求を受信すると、該印刷データ一覧要求に含まれるログインユーザIDで書誌情報DBを検索して、該ログインユーザIDに対応する印刷データ一覧(後述する図9に示す)を生成し、複合機300に返信する((5)−2)。
複合機300は、印刷管理サーバ400から印刷データ一覧を受信すると、該印刷データ一覧を操作部308のUI上に表示する(後述する図10に示す)。そして、ユーザにより、印刷データが選択され、印刷指示がなされると、複合機300は、該選択された印刷データの印刷要求(出力指示)を印刷管理サーバ400に送信する(6)。なお、この印刷要求は、クライアントPC100のログインユーザ名,印刷データのタイムスタンプを含むものとする(後述する図11に示す)。
印刷管理サーバ400は、複合機300から印刷データの印刷要求(出力指示)を受信すると、該出力指示がなされた印刷データの書誌情報を、クライアントPC100のログインユーザ名,印刷データのタイムスタンプをキーにして書誌情報DBから検索し、該検索した書誌情報から該当する印刷データを格納しているプリントサーバ200を特定し、該プリントサーバ200に該当する印刷データの印刷指示を送信する(7)。なお、上記印刷指示は、該当する印刷データファイル名を含む印刷コマンドである(後述する図12に示す)。なお、上述のタイムスタンプは、プリントサーバ200で印刷データを受信した際に付与される。
プリントサーバ200は、印刷管理サーバ400から印刷指示を受信すると、該印刷指示に基づいて印刷データを複合機300に送信して複合機300で印刷させる(LPR印刷)((8)−1)。
また、プリントサーバ200は、LPR印刷((8)−1)後、印刷管理サーバ400へ印刷状況(結果)(後述する図13に示す)を送信する((8)−2)。この印刷状況(結果)を受信した印刷管理サーバ400は、該印刷状況(結果)を外部メモリ(図2の211)またはRAM(図2の203)へ記憶保持する。
複合機300は、印刷管理サーバ400へ出力指示(6)後、印刷管理サーバ400へ印刷状況確認要求がなされる(9)。この印刷確認要求は一定時間ごとに複合機300より印刷管理サーバ400へなされる。
印刷管理サーバ400は、複合機300の印刷状況確認要求(9)に基づいて、前記外部メモリ(図2の211)またはRAM(図2の203)に記憶保持している印刷状況(結果)を複合機300へ送信する(10)。
なお、複合機300は、受信した印刷状況(結果)をHDD(図3の304)またはRAM(図3の302)へ記憶保存を行い、操作部(図3の308)へ表示させる(後述する図15の1901に示す)。
以下、図5のフローチャートを参照して、図4に示したプルプリント処理についてより詳細に説明する。
図5は、本発明における第1の制御処理手順の一例を示すフローチャートであり、本発明の第1実施形態を示すプリントシステムのプルプリント処理に対応する。
なお、図中、S501は、クライアントPC100のステップに対応し、クライアントPC100のCPUが外部メモリに格納されるプログラムをRAM上で実行することにより実現される。
また、S502,S503,S516〜S519は、プリントサーバ200の各ステップに対応し、プリントサーバ200のCPUが外部メモリに格納されるプログラムをRAM上で実行することにより実現される。
さらに、S504,S507,S508,S515,S520,S521,S523は、印刷管理サーバ400の各ステップに対応し、印刷管理サーバ400のCPUが外部メモリに格納されるプログラムをRAM上で実行することにより実現される。
また、S505,S506,S509〜S514,S522,S524〜S527は、複合機300の各ステップに対応し、複合機300のCPU301がROM303又はHDD304に格納されるプログラムをRAM302上等で実行することにより実現される。
まず、ステップS501では、クライアントPC100でユーザからの印刷の実行(指示)が行われると(図4の(1)−2)、クライアントPC100のCPUは、該印刷指示に基づく印刷データを生成してプリントサーバ200に送信する(図4の(2)−1)。なお、ステップS501については、図4の(1)−2及び(2)−1で詳細に説明したのでここでは詳細は省略する。
そして、プリントサーバ200のCPUは、ステップS502において、ステップS501でクライアントPC100から送信された印刷データを受信し、外部メモリ内の所定の格納場所へ記憶させる(図4の(2)−2)。
次に、ステップS503において、プリントサーバ200のCPUは、ステップS502で記憶した印刷データより書誌情報データを抽出し(図4の(2)−3)、印刷管理サーバ400へ書誌情報データを送信する(図4の(3)−1)。
書誌情報データは、ログインユーザID,印刷データ格納サーバのIPアドレス,印刷データの格納先を示すフルパス,ドキュメント名,部数,ページ数,タイムスタンプ等から構成される。
このように、プリントサーバ200から印刷管理サーバ400へ送信する書誌情報データは、印刷データのみから抽出されるデータのみで構成されるわけではなく、前記論理プリンタに対応するプリントサーバ200に存在する仮想プリンタが受信した際のタイムスタンプ、該仮想プリンタの存在するサーバ(印刷データ格納されるサーバ)のIPアドレス、印刷データの格納先を示すパスを追加した情報である。なお、書誌情報データの詳細は、後述する図6の書誌情報DBを説明する際に行う。
以下、図5のフローチャートの説明に戻る。
印刷管理サーバ400のCPUは、ステップS504において、ステップS503でプリントサーバ200から送信された書誌情報データを受信し、印刷管理サーバ400の外部メモリ内に構築される書誌情報DB(図6)に記憶させる。
具体的には、図6に示す書誌情報DB(DBとあるがファイルにカンマ区切りで書誌情報が記憶されるように構成しても良い)の各項目に、書誌情報データ内の各項目データを記憶させる。
なお、エラー有無1207の情報は、書誌情報DBへの登録時に付与される。また、このタイミングでのエラー有無1207は「無」となる。エラー有無1207が「有」と記憶される場合は、後述するステップS514で印刷要求があった際に、正常に印刷がなされなかった場合である。
図6は、図1に示した印刷管理サーバ400で記憶管理される書誌情報DBの一例を示す模式図である。
図6に示すように、書誌情報DBは、ログインユーザID1201,印刷データ格納サーバIPアドレス1202,印刷データのパス1203,ドキュメント名1204,部数1205,ページ1206,エラー有無1207,タイムスタンプ1208等の項目から構成される。
以下、図5のフローチャートの説明に戻る。
次に、複合機300のCPU301は、カードリーダ319により読み取り可能なICカードを検知すると、ステップS505において、カード認証処理を行う。詳細には、複合機300のCPU301は、カードリーダ319によりICカード内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として印刷管理サーバ400に送信する((4)−1)。
すると、印刷管理サーバ400のCPUは、複合機300より受信した個人認証情報の認証処理を印刷管理サーバ400の外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機300に返信する((4)−2)。認証処理に成功した場合(正規ユーザと判断された場合)には、認証結果として、クライアントPC100のログインユーザIDが送信される。そして、クライアントPC100のログインユーザIDを受信してカード認証処理が成功したと判断した場合には、複合機300は、操作部308の表示部に図7に示す画面を表示し、ステップS506に処理を進める。
図7は、図5のステップS505に示したカード認証処理が成功した際に図2に示した複合機300の操作部308の表示部に表示される画面の一例を示す模式図である。
次に、ステップS506では、複合機300のCPU301は、ユーザの指示に基づき(ユーザにより一覧取得ボタン1401が押下(タッチ)されると)、印刷データの一覧取得要求情報(図8)を印刷管理サーバ400へ送信する(図4の(5)−1)。
図8は、図1に示した複合機300から印刷管理サーバ400に送信される印刷データ一覧要求情報の一例を示す模式図である。
図8に示すように、印刷データ一覧要求情報は、クライアントPC100のログインユーザID801,出力デバイス機種名802,取得印刷データ種別(未印刷/印刷済)803のデータ等から構成される。
なお、上述のステップS506では、ログインユーザID801には、ステップS505でカード認証処理が成功した際に印刷管理サーバ400から受信したユーザIDが格納される。また、出力デバイス機種名802には、複合機300自身の機種名が格納される。さらに、取得印刷データ種別(未印刷/印刷済)803には「未印刷」が指定される。
なお、本実施形態では、ユーザの指示に基づいて印刷データの一覧取得要求がなされるように構成したが、カード認証がなされるとユーザの操作なしに印刷データの一覧取得要求がなされるように構成してもよい。
また、本実施形態は、複合機300のCPU301がカード認証結果を、ICカード認証用テーブルを有するサーバから受信した上でS506を実行するように構成したが、ICカード認証用テーブルを有するサーバで認証OK(正規ユーザと判断)であった場合、複合機300に認証結果を返さず、印刷データの一覧を取得し、複合機300へ送信するように構成してもよい。
次に、印刷管理サーバ400のCPUは、ステップS507において、複合機300から印刷データ一覧取得要求を受信し、該要求内のログインユーザID801に基づき、図6に示した書誌情報DBから該当する書誌情報データを全て取得する。さらに、印刷管理サーバ400のCPUは、上記取得した全書誌情報データをまとめて印刷データ一覧(図9に示す)を生成する(印刷データ一覧取得)。
図9は、印刷管理サーバ400で生成される印刷データ一覧の一例を示す模式図である。
図9に示すように、印刷データ一覧は、取得印刷データ種別(未印刷/印刷済)901,クライアントPC100のログインユーザID902,印刷データ数903,タイムスタンプ904,印刷データ格納サーバIPアドレス905,ドキュメント名906,部数907,ページ数908,タイムスタンプに対応する印刷時間909,印刷ジョブ識別ID910、エラー有無911等の項目から構成される。
なお、図9の904〜911は、取得データ数分(印刷データ数903分)あるものとする。
以下、図5のフローチャートの説明に戻る。
次に、印刷管理サーバ400のCPUは、ステップS508において、ステップS507で取得した印刷データ一覧を複合機300へ送信する(図4の(5)−2)。
次に、複合機300のCPU301は、ステップS509において、ステップS508で印刷管理サーバ400より送信された印刷データ一覧を受信し、HDD304またはRAM302へ記憶させる。
次に、ステップS510において、複合機300のCPU301は、ステップS509で記憶した印刷データ一覧を図10に示すように操作部308の表示部に表示させる。
次に、ステップS511において、複合機300のCPU301は、ステップS509で記憶した印刷データ一覧に印刷エラーのあったエラー印刷データがあるか否かを判断する。この判断は、複合機300のCPU301が、図9に示した印刷データ一覧内のエラー有無911に基づき行う。なお、エラー有無をフラグで管理するように構成してもよい。
ステップS511で、複合機300のCPU301が、印刷データ一覧内にエラー印刷データがあると判定した場合には(S511でYES)、ステップS512において、操作部308の表示部に表示される印刷データ一覧に、エラーが識別できるように識別情報(図10の1701に示すマーク)を表示させる。そして、ステップS513に処理を進める。
なお、図5のフローチャートでは、印刷データ一覧表示におけるエラー識別表示(識別情報表示)は、印刷データ一覧を表示させた後に実行するように記載しているが、識別情報表示方法はこれに限るものではない。例えば、複数の印刷データの情報を表示させる際、一つの印刷データの情報(文書名、ページ数、部数、日付、時刻)を表示させるに伴って、識別情報1701を表示させるようにする。そして、これを繰り返すことによって取得した全ての印刷データの一覧表示がなされるように構成する。
図10は、図2に示した複合機300の操作部308の表示部に表示される印刷データ一覧の一例を示す模式図である。
一方、ステップS511で、複合機300のCPU301が、印刷データ一覧内にエラー印刷データがないと判定した場合には(S511でNO)、そのままステップS513に処理を進める。
次に、ステップS513では、複合機300のCPU301は、ユーザにより印刷指示が行われたかどうかを検出し判断する。具体的には、図10に示す1703のいずれか(1又は複数)がタッチされたて選択された状態、又は、図10に示す全選択ボタン1702がタッチされて全選択された状態で、図10の印刷ボタン1704が押下(タッチ)されたかを判断する。
ステップS513で、複合機300のCPU301が、ユーザにより印刷指示が行われていないと判断した場合には、ステップS513の判断を繰り返す。
一方、ステップS513で、複合機300のCPU301が、ユーザにより印刷指示が行われたと判断した場合には、ステップS514に処理を進める。
ステップS514では、複合機300のCPU301は、ステップS513で選択された印刷データのタイムスタンプをステップS509で記憶した印刷データ一覧から取得し、クライアントPC100のログインユーザIDとともに印刷要求情報(図11)を生成する。そして、複合機300のCPU301は、上記選択された印刷データを印刷させるため、上記生成した印刷要求情報を印刷管理サーバ400へ送信する(図4の(6))。
図11は、図5のステップS514で複合機300から印刷管理サーバ400に送信される印刷要求情報の一例を示す図である。
図11に示すように印刷要求情報は、クライアントPC100のログインユーザID1001,印刷データのタイムスタンプ1002等で構成される。なお、印刷要求を行う印刷データが複数ある場合は、タイムスタンプ1002は複数存在する。
以下、図5のフローチャートの説明に戻る。
そして、印刷管理サーバ400のCPUは、ステップS515において、複合機300から送信された印刷要求情報を受信し、該受信した印刷要求情報に基づきプリントサーバ200にさらに印刷要求を行う。
具体的には、印刷管理サーバ400のCPUは、複合機300から受信した印刷要求情報内のタイムスタンプ1002毎に、以下の処理を行う。印刷管理サーバ400は、タイムスタンプ1002に基づき書誌情報DBから印刷データのパス1203,印刷データ格納サーバIPアドレス1202を取得する。また、印刷管理サーバ400は、複合機300からの印刷要求情報受信時に複合機300のIPアドレスを取得し、このIPアドレスと上述した印刷データのパスとに基づいて、プリントサーバ200からLPR印刷を実行させるためのLPRコマンド(図12)を生成し、該生成したLPRコマンドを、上述した印刷データ格納サーバIPアドレスに対応するプリントサーバ200に送信して印刷要求を行う(図4の(7))。
なお、印刷管理サーバ400のCPUは、ステップS515で複合機300から印刷要求を受けた印刷指示総数(即ち、タイムスタンプ1002の数)を取得し、外部メモリ又はRAM内に記憶管理する。この際、印刷管理サーバ400は、ログインユーザIDと印刷要求のあった複合機300のIPアドレスごとに、外部メモリ又はRAM内で記憶管理される印刷状況(結果)情報(図13)内に、上述の印刷指示総数を記憶する。
図12は、図5のステップS515で印刷管理サーバ400からプリントサーバ200に送信されるLPRコマンドの一例を示す図である。
図12に示すように、LPRコマンドは、複合機300のIPアドレスを示すプリンタIPアドレス1301,予め決定されたプリンタ名(例えば、lp)1302,印刷データのパス1303等から構成される。
図13は、印刷管理サーバ400が記憶管理する印刷状況(結果)情報の一例を示す図である。
図13に示すように、印刷状況(結果)情報は、通信ヘッダ1101,印刷終了数1102,印刷指示総数1103,送信データ数(印刷状況件数)1104,印刷結果1105、印刷データのタイムスタンプ1106、印刷結果メッセージ1107等から構成される。
なお、図13の1105〜1107は、取得データ数分(送信データ数1104分)あるものとする。
なお、印刷状況(結果)情報は、上述したように、ログインユーザIDと印刷要求のあった複合機300のIPアドレスごとに記憶管理されるものであり、ステップS515の時点で存在しない場合には、印刷管理サーバ400が生成する。
以下、図5のフローチャートの説明に戻る。
プリントサーバ200のCPUは、印刷管理サーバ400よりLPRコマンド(図12)を受信すると、ステップS516において、受信したLPRコマンドに基づいてLPR印刷を行う(図4の(8)−1)。
具体的には、プリンタIPアドレス1301に対して、印刷データのパス1303の示す印刷データのLPR印刷を実行する。以下、プリントサーバ200内においてLPR印刷を実行する処理部を印刷実行サービスと呼ぶ。
次に、ステップS517において、プリントサーバ200のCPUは、ステップS516のLPR印刷が実行できたか否かを判断し、その結果をHDD211またはRAM203へ記憶する。なお、印刷が実行できたか否かの判断は、エラー情報が取得できたか否かで判断する。エラー情報としては、OSから通知されるシステムエラー(例えば、socket エラー、connect エラー、send エラー、receive エラー)や印刷サービスが独自に認識できるエラー情報(例えば、印刷データ無し等)がある。
ステップS517で、プリントサーバ200のCPUが、エラー情報を取得できた場合は印刷できなかったと判断し、エラー情報が取得できなかった場合は正常に印刷できたと判断する。プリントサーバ200のCPUは、LPR印刷を実行した印刷データのパスを取得する。そして、ステップS518に処理を進める。
そして、ステップS518では、プリントサーバ200のCPUは、LPR印刷を実行した各印刷データの印刷結果のメッセージを印刷管理サーバ400に送信する。なお、印刷が実行できなかった場合はステップS517で取得した印刷データのパスを含んだエラーメッセージを、印刷結果のメッセージとして印刷管理サーバ400へ送信する(図4の(8)−2)。
次に、ステップS519では、プリントサーバ200のCPUは、ステップS515で印刷管理サーバ400から印刷要求された全ての印刷データのLPR印刷が完了したか否かを判断する。なお、印刷ができなかった(印刷エラー)となった印刷データのLPR印刷も完了したとみなす。
そして、ステップS519で、プリントサーバ200のCPUが、まだ全ての印刷要求に対応する印刷データのLPR印刷が完了していないと判断した場合には、ステップS516に処理を戻し、未だ完了していない印刷要求に対してLPR印刷を実行する。
一方、ステップS519で、プリントサーバ200のCPUが、全ての印刷要求に対応する印刷データのLPR印刷が完了したと判断した場合には、印刷管理サーバ400とのセッションを終了する。
なお、プリントサーバ200のCPUは、LPR印刷(S516)に成功したとみなした印刷データを、夜間バッチ等で削除するものとする。
そして、印刷管理サーバ400のCPUは、ステップS520において、ステップS518でプリントサーバ200から送信されたメッセージを受信すると、該メッセージに基づいて印刷状況(結果)を外部メモリ又はRAM内に記憶させる。即ち、印刷管理サーバ400のCPUは、受信したメッセージに基づき、エラー有無を判断し(エラーの場合はメッセージに含まれる印刷データのパスに基づいて書誌情報DBを検索して印刷エラーデータのタイムスタンプ1208を取得するとともにエラー有無1207を「有」に更新し)、この判断結果に基づき、上述した外部メモリ又はRAM内の印刷状況(結果)情報(図13)を更新する。例えば、印刷エラーであると判断した場合には、印刷結果1105を「エラー」にし、印刷終了数1102をカウントアップする。一方、印刷が成功した(エラーでない)と判断した場合には、印刷終了数1102をカウントアップする。また、印刷結果1105、印刷データタイムスタンプ1106、印刷結果メッセージ1107は送信データ数1104の値だけ存在する。
次に、ステップS521において、印刷管理サーバ400のCPUは、複合機300からの印刷状況(結果)問合せ(後述するS522からの問合せ)を受けるまで待機する。
複合機300は、ステップS522において、複合機300から印刷管理サーバ400へ印刷状況(結果)の問合せを行う(図4の(9))。この印刷管理サーバ400への問い合わせは、一定時間おきに行う。なお、この問合せには、この時点で複合機300にログインしているユーザのクライアントPC100におけるログインユーザIDを送信する。なお、このクライアントPC100におけるログインユーザIDは、ログイン時に印刷管理サーバ400より取得済みである。
そして、印刷管理サーバ400のCPUは、ステップS521で、複合機300からの印刷状況(結果)問合せ(S522の問合せ)を受けたと判断した場合(S521でYES)、ステップS523に処理を進める。
ステップS523では、印刷管理サーバ400のCPUは、ステップS521で受信したログインユーザIDに基づき、ステップS520で記憶したログインユーザIDごとに管理された印刷状況(結果)情報から、送信する印刷状況(結果)情報(図13)を取得し、複合機300へ送信する(図4の(10))。なお、印刷状況(結果)の印刷データが存在しない場合には、印刷終了数1102と印刷指示総数1103のみを返信するように構成してもよい。なお、印刷管理サーバ400のCPUは、送信した印刷結果1105、印刷データのタイムスタンプ1106、結果メッセージ1107は送信後に削除する。
次に、複合機300のCPU301は、ステップS524において、ステップS523で印刷管理サーバ400から送信された印刷状況(結果)情報(図13)を受信する。
次に、ステップS525において、複合機300のCPU301は、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105に基づいて、LPR印刷が成功かどうか判定する。
そして、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「成功」となっている(LPR印刷成功)と判定した場合には、複合機300のCPU301は、ステップS526に処理を進める。
次に、ステップS526において、複合機300のCPU301は、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「成功」となっている印刷データタイムスタンプ1106と、ステップS509で記憶した印刷データ一覧のタイムスタンプ904との比較を行う。そして、この比較結果に基づいて、複合機300のCPU301は、上記印刷結果1105が成功となっている印刷データタイムスタンプ1106と一致した、ステップS509で記憶した印刷データ一覧のタイムスタンプ904について、該タイムスタンプに対応するドキュメント名を操作部308の表示部から表示を削除する(RAMからも削除する)。そして、ステップS527に処理を進める。
一方、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「成功」となっていない(「エラー」となっている、即ち、LPR印刷失敗)と判定した場合には、複合機300のCPU301は、図示しないステップにおいて、印刷結果1105が「エラー」となっている印刷データタイムスタンプ1106と、ステップS509で記憶した印刷データ一覧のタイムスタンプ904との比較を行う。そして、この比較結果に基づいて、複合機300のCPU301は、上記印刷結果1105が「エラー」となっている印刷データタイムスタンプ1106と一致した、ステップS509で記憶した印刷データ一覧のタイムスタンプ904について、該タイムスタンプに対応するドキュメント名を印刷エラー情報として、操作部308の表示部に表示させる(例えば、図14の1901に示すように表示させる)。そして、ステップS527に処理を進める。
図14は、図2に示した複合機300の操作部308の表示部に表示される印刷データ一覧の一例を示す模式図であり、印刷エラー情報が表示される場合に対応する。
なお、本実施形態では、図14の1901に示したように、操作部308の表示部の下部にエラー印刷データごとに表示させるように構成したが、エラー印刷データを一括して一覧表示させるように構成してもよい。
次に、ステップS527において、複合機300のCPU301は、印刷状況(結果)の問合せを終了するか否かを判断する。この判断は、印刷状況(結果)情報(図13)の印刷終了数1102と印刷指示総数1103が同じになっているか否かを判断し、印刷終了数1102と印刷指示総数1103が同じになっていた場合、問合せを終了すると判断するものとする。一方、印刷終了数1102と印刷指示総数1103が同じにならなっていない場合、問い合わせを終了しないと判断する。
ステップS527で、印刷状況(結果)の問合せを終了しないと判断した場合には、複合機300のCPU301は、ステップS522に処理を戻し、印刷状況(結果)の問合せ処理(一定時間間隔の問合せ)を行う。
一方、ステップS527で、印刷状況(結果)の問合せを終了すると判断した場合には、複合機300のCPU301は、処理を終了する。
以上説明したように、プルプリントシステムにおいて、負荷分散を実現することができるとともに、どのプリントサーバに蓄積された印刷データであっても所望の印刷装置から容易に出力することができるフレキシブルなプルプリント環境を構築することができ、さらに、その印刷データが印刷に成功したこと、およびどのプリントサーバに蓄積された印刷データがエラーになったのかを容易に把握することができる。
なお、プリントサーバ200は、LPR印刷を用いて、印刷データを複合機300に送信して印刷させるため、プリントサーバ200上のLPR印刷の結果(成功、エラー)は、従来では複合機300には通知されなかった。本実施形態では、上記プリントサーバ200上でのLPR印刷結果が印刷管理サーバ400を介して複合機300に通知される構成であるので、複合機300で、上記プリントサーバ200上でのLPR印刷結果を認識可能となる。
そして、印刷エラーになった印刷データに関しては、認識可能に表示(操作部の下部にエラー印刷データごとに、又は、一覧表示)されるので、ユーザが容易に認識することが可能である。よって、従来、印刷データがエラーになったことをユーザが把握できず、エラーとなった印刷データがいつまでもプリントサーバに格納されたままとなってしまうという従来の問題点も解決可能である。
なお、印刷管理サーバ400における、S521の問い合わせの受け付け処理は、所定の時間でタイムアウトするように構成してもよい。
〔第2実施形態〕
上記第1実施形態では、印刷結果を印刷管理サーバ400に記憶管理させ、複合機300は印刷管理サーバ400への印刷状況(結果)の問合せ時に印刷データの印刷結果を取得し、該印刷結果に基づいて操作部308より印刷成功した印刷データを一覧表示から削除し、操作部308よりエラーのあった印刷データの印刷エラー情報を表示するように構成した。
本実施形態では、複合機300にて印刷データの出力結果を監視し、その結果を保持しておき、その情報と印刷管理サーバ400から取得した印刷結果とを比較することで、エラーのあった印刷データを判別し、操作部308の表示部に識別可能に表示させるように構成する。
以下、図15のフローチャートを参照して、本実施形態について詳細に説明する。なお、上記第1実施形態と同じ処理についてはステップ番号を付与し、詳細な説明を省略する。
図15は、本発明における第2の制御処理手順の一例を示すフローチャートであり、本発明の第2実施形態を示すプリントシステムのプルプリント処理に対応する。
なお、図中の各ステップにおいて、図5と同一のステップには同一のステップ番号を付してある。また、S501〜S519は、図5と同一であるため図15では記載を省略する。
さらに、S520,S521,S523,S605,S606は、印刷管理サーバ400の各ステップに対応し、印刷管理サーバ400のCPUが外部メモリに格納されるプログラムをRAM上で実行することにより実現される。
また、S522,S524,S525,S607,S601〜S604は、複合機300の各ステップに対応し、複合機300のCPU301がROM303又はHDD304に格納されるプログラムをRAM302上等で実行することにより実現される。
印刷管理サーバ400のCPUは、ステップS520において、本フローチャートでは図示していないが、印刷状況(結果)情報をプリントサーバ200から受信し、外部メモリまたはRAM内に記憶させる(S509)。詳細な説明は上述したように第1実施形態にて説明済みのため省略する。
複合機300のCPU301は、ステップS522において、複合機300から印刷管理サーバへ印刷状況(結果)の問合せを行う(図4の(9))。この印刷管理サーバ400への問い合わせは、一定時間おきに行う。なお、この問合せには、この時点で複合機300にログインしているユーザのクライアントPC100におけるログインユーザID(ログイン時に印刷管理サーバ400より取得済み)を送信する。
印刷管理サーバ400のCPUは、ステップS521において、複合機300からの印刷状況(結果)問合せ(S522の問合せ)を受けた場合、本フローチャートでは図示していないが、該印刷状況(結果)問合せに含まれるログインユーザIDに基づき印刷状況(結果)情報を取得し、複合機300へ送信する。
次に、複合機300のCPU301は、ステップS524において、印刷管理サーバ400から送信された印刷状況(結果)情報を受信する。
次に、複合機300のCPU301は、ステップS524で受信した印刷状況(結果)を印刷結果情報としてログインID毎に複合機300のHDD304またはRAM302へ記憶させる。記憶させる情報として、図13に示した印刷状況(結果)内の印刷結果1105、印刷データタイムのタイムスタンプ1106を記憶させる。なお、記憶させる情報はこのタイムスタンプに限るものではなく、印刷データが識別できる識別情報であればどのような情報であってもよい。なお、この印刷結果情報はクライアントPC100のログインユーザID毎に記憶管理され、対応する印刷データの印刷が成功するか、ユーザからの指示によりプリントサーバ200から対応する印刷データが削除されるまで削除されないように構成する。
次に、ステップS525において、複合機300のCPU301は、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105に基づいて、LPR印刷が成功かどうか判定する。
そして、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「成功」となっている(LPR印刷成功)場合には、印刷データのタイムスタンプについては、複合機300のCPU301は、ステップS601に処理を進める。
一方、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「エラー」となっている(LPR印刷失敗)印刷データのタイムスタンプ1106については、複合機300のCPU301は、ステップS604に処理を進める。
ステップS601では、複合機300のCPU301は、複合機300内で印刷ジョブが印刷完了(エラー、印刷中止による完了も含む)したことを取得し、その印刷ジョブの印刷ジョブ識別IDをRAM302に記憶する。
次に、ステップS602において、複合機300のCPU301は、ステップS601で取得した印刷完了した印刷ジョブが印刷成功であったか否かを判定し、印刷成功と判定し、この印刷成功と判定した印刷ジョブ識別IDとステップS524で記憶した印刷結果1105が「成功」となっている印刷データのタイムスタンプが一致したものを印刷成功と判断する。この一致は図9の印刷データ一覧を参照し、紐づくことで判断する。この一致で印刷成功と判断した場合には、ステップS603に処理を進め、一方、印刷失敗と判定した場合には、ステップS604に処理を進める。
ステップS603では、複合機300のCPU301は、ステップS602で印刷成功と判断された印刷ジョブの印刷ジョブ識別IDと、本図15では記載していないS509で受信した図9に示した印刷データ一覧の内、ステップS513で印刷指示した印刷ジョブ識別ID910を比較する。そして一致した印刷ジョブ識別IDをもった印刷データについて、操作部308の表示部の印刷データ一覧から削除する(RAMからも削除する)。そして、ステップS607に処理を進める。
また、ステップS604では、複合機300のCPU301は、ステップS602で印刷エラーと判断された印刷ジョブ識別IDの情報(エラー情報)、またはS524で受信した印刷状況(結果)情報内の印刷結果1105が「エラー」となっている印刷データのタイムスタンプを印刷管理サーバ400へ送信する。そして、複合機300のCPU301は、印刷エラーとなった印刷ジョブ識別IDまたは印刷状況(結果)情報内の印刷結果1105が「エラー」となっている印刷データのタイムスタンプと、印刷データ一覧の印刷ジョブ識別IDを比較する。そしてこの比較結果に基づいて、一致した印刷ジョブ識別IDまたはタイムスタンプに対応するドキュメント名を操作部308の表示部にエラー情報として表示させる(例えば、図14の1901に示すように表示させる)。そして、ステップS607に処理を進める。
次に、ステップS607において、複合機300のCPU301は、ステップS524で受信した印刷状況に対して、或いは本図15では記載していないS509で受信した図9に示した印刷データ一覧の内、ステップS513で印刷指示した印刷ジョブ識別ID対してステップS603またはS604の処理がなされたか否かで本処理(フロー)を終了するか否かを判断する。本処理を終了しないと判断した場合には、複合機300は、ステップS522に処理を戻し、印刷状況(結果)の問合せ処理(一定時間間隔の問合せ)を行う。
一方、ステップS607で、本処理を終了すると判断した場合には、複合機300のCPU301は、処理を終了する。尚、一定時間印刷状況(結果)の問い合わせは一定時間間隔で問い合わせを行う場合、S607でNOの場合は順次S601の処理を繰り返し行うように構成する。なお、ステップS607の処理をS527と同じように構成しても良く、この場合、問い合わせが終了しても、印刷要求した印刷データに対してS525、S601〜S603、S604の処理が行われるまで、或いは一定時間を超えるまで処理が行われるものとする。
また、ステップS605において、印刷管理サーバ400のCPUは、ステップS604で複合機300より送信された印刷エラー情報を受信し、印刷エラージョブのタイムスタンプをRAMに記憶する。
続いて、ステップS606において、印刷管理サーバ400のCPUは、S604で記憶したタイムスタンプに該当する書誌情報DBのレコードのエラー有無1207(図6)を「エラー」にし、該印刷データが印刷エラーになった旨を、印刷管理サーバ400のHDにログとして記録する。
なお、以上示した実施形態において、印刷データのタイムスタンプを利用して実施している箇所は、識別IDに置き換えて実施することも可能である。また、印刷データを一意に識別可能な情報であれば、上記印刷データのタイムスタンプをどのような情報に置き換えてもよい。
なお、本実施形態でも、上記第1実施形態と同様に、プリントサーバ200でLPR印刷に成功した場合、即ち、ステップS516でプリントサーバ200のCPUがLPR印刷成功とみなした場合、該成功したとみなされた印刷データを、プリントサーバ200のCPUが、夜間バッチ等で削除するように構成する。
本実施形態では、プリントサーバ200でのLPR印刷結果,複合機300での印刷結果の双方に基づく最終的な印刷結果を、ユーザに通知することができる。また、上記最終的な印刷結果を、印刷管理サーバ400で管理することが可能となる。
〔第3実施形態〕
上記第1,2実施形態では、プリントサーバ200でLPR印刷に成功した場合に印刷データを削除するようにしていたため、複合機300で実際の印刷に失敗していても、印刷データが削除されていた。
本実施形態では、LPR印刷が成功しても実際に複合機300で印刷がエラーとなった場合は印刷データを削除せず、複合機200で印刷が成功した場合に印刷データを削除するように構成する。以下、その実施形態について詳細に説明する。
以下、図16のフローチャートを参照して、本実施形態について詳細に説明する。なお、上記第1実施形態と同じ処理についてはステップ番号を付与し、詳細な説明を省略する。
図16は、本発明における第3の制御処理手順の一例を示すフローチャートであり、本発明の第3実施形態を示すプリントシステムのプルプリント処理に対応する。
なお、図中の各ステップにおいて、図5と同一のステップには同一のステップ番号を付してある。また、S501〜S519は、図5と同一であるため図15では記載を省略する。なお、プリントサーバ200のCPUは、LPR印刷(S516)に成功したとみなしただけでは、該LPR印刷に成功した印刷データは削除されないように構成されるものとする。
さらに、S520、S521、S523、S605、S606、S702、S703は印刷管理サーバ400の各ステップに対応し、印刷管理サーバ400のCPUが外部メモリに格納されるプログラムをRAM上で実行することにより実現される。
また、S522、S524、S525,S607、S601〜S604、S701は、複合機300の各ステップに対応し、複合機300のCPU301がROM303又はHDD304に格納されるプログラムをRAM302上等で実行することにより実現される。
印刷管理サーバ400のCPUは、ステップS520において、本フローチャートでは図示していないが、印刷状況(結果)情報をプリントサーバ200から受信し、外部メモリまたはRAM内に記憶させる(S509)。詳細な説明は上述したように第1実施形態にて説明済みのため省略する。
複合機300のCPU301は、ステップS522において、複合機300から印刷管理サーバへ印刷状況(結果)の問合せを行う(図4の(9))。この印刷管理サーバ400への問い合わせは、一定時間おきに行う。なお、この問合せには、この時点で複合機300にログインしているユーザのクライアントPC100におけるログインユーザID(ログイン時に印刷管理サーバ400より取得済み)を送信する。
印刷管理サーバ400のCPUは、ステップS521において、複合機300からの印刷状況(結果)問合せ(S522の問合せ)を受けた場合、本フローチャートでは図示していないが、該印刷状況(結果)問合せに含まれるログインユーザIDに基づき印刷状況(結果)情報を取得し、複合機300へ送信する。
次に、複合機300のCPU301は、ステップS524において、印刷管理サーバ400から送信された印刷状況(結果)情報を受信する。
次に、複合機300のCPU301は、ステップS525において、ステップS524で受信した印刷状況(結果)を印刷結果情報としてログインID毎に複合機300のHDD304またはRAM302へ記憶させる。詳細な説明は第2実施形態にて説明済みのため、省略する。
次に、ステップS525において、複合機300のCPU301は、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105に基づいて、LPR印刷が成功かどうか判定する。
そして、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「成功」となっている(LPR印刷成功)印刷データのタイムスタンプ1106、複合機300のCPU301は、ステップS601に処理を進める。
一方、ステップS525で、ステップS524で受信した印刷状況(結果)情報内の印刷結果1105が「エラー」となっている(LPR印刷失敗)印刷データのタイムスタンプ1106については、複合機300のCPU301は、ステップS604に処理を進める。
ステップS601では、複合機300のCPU301は、複合機300内で印刷ジョブが印刷完了(エラー、印刷中止による完了も含む)したことを取得し、その印刷ジョブの印刷ジョブ識別IDをRAM302に記憶する。
次に、ステップS602において、複合機300のCPU301は、ステップS601で取得した印刷完了した印刷ジョブが印刷成功であったか否かを判定し、印刷成功と判定し、この印刷成功と判定した印刷ジョブ識別IDとステップS524で記憶した印刷結果1105が「成功」となっている印刷データのタイムスタンプが一致したものを印刷成功と判断する。この一致は図9の印刷データ一覧を参照し、紐づくことで判断する。この一致で印刷成功と判断した場合には、ステップS603に処理を進め、一方、印刷失敗と判定した場合には、ステップS604に処理を進める。なお、S604〜S607の説明は省略する。
ステップS603では、複合機300のCPU301は、ステップS602で印刷成功と判断された印刷ジョブと一致した印刷ジョブ識別IDをもった印刷データについて、操作部308の表示部の印刷データ一覧から削除する。なお、この際、RAM302からも印刷データの一覧の情報を削除するが、タイムスタンプ904の情報のみRAM302内に保持しておく。そして、ステップS701に処理を進める。
そして、ステップS701において、複合機300のCPU301は、印刷成功した(S603で一覧から削除した)印刷ジョブのタイムスタンプ904を印刷管理サーバ400へ送信する。なお、印刷ジョブのタイムスタンプの代わりに、印刷ジョブ識別ID910を印刷管理サーバ400へ送信するように構成してもよい。そして、ステップS607に処理を進める。なお、ステップS607の説明は省略する。
次に、ステップS702において、印刷管理サーバ400のCPUは、複合機300から受信した印刷データのタイムスタンプ904と一致する図6に示した書誌情報DBのタイムスタンプ1208を検索し、該当するレコードの印刷データ格納サーバIPアドレス1202および印刷データのパス1203を取得し、これらの情報により、印刷データの削除指示をプリントサーバ200に行う。
より詳細には、印刷管理サーバ400のCPUは、プリントサーバ200からの印刷状況に基づいて得られた印刷成功情報と、複合機300で得られた印刷成功情報を印刷管理サーバが受け取ることによって、プリントサーバ200に印刷データの削除処理依頼を行う。なお、タイムスタンプに該当するDBのレコードのエラー有無1207が「エラー」であった場合には、印刷データの削除処理依頼を行わないことも可能である。
次に、ステップS703において、プリントサーバ200のCPUは、印刷管理サーバ400からの削除指示に従い、該当する印刷データファイルを削除する。
なお、プリントサーバ200からの印刷エラー有無と、複合機300での印刷エラー有無の記憶領域を、印刷管理サーバ400のHDに持たせ、各エラー情報を記憶させるようにすることも可能である。
その際には、印刷管理サーバ400のCPUは、複合機300からの印刷ジョブの問い合わせがあった場合には、プリントサーバ200でエラーになったのか、複合機300でエラーになってのかを印刷管理サーバ400のCPUが判断し、複合機300にエラーの詳細情報を返すように構成する。
また、エラーの有無フラグだけではなく、エラーの種類も印刷管理サーバ400のHDに記憶させておき、印刷管理サーバ400のCPUが、エラー詳細情報にエラーの種類を含めて複合機300に送信し、表示させるように構成することも可能である。
これにより、ユーザは、どこでエラーになったのかを容易に知ることができ、プリントサーバ200,印刷管理サーバ400,複合機300の連携により印刷が実行されるような複雑なシステム構成におけるエラーも容易に把握することが出来る。
以上の構成により、プルプリントシステムにおいて、負荷分散を実現することができるとともに、どのプリントサーバに蓄積された印刷データであっても所望の印刷装置から容易に出力することができるフレキシブルなプルプリント環境を構築することができ、さらに、印刷エラーに関してもどのプリントサーバに蓄積された印刷データがエラーになったのかを容易に把握することができる。
また、印刷が成功した印刷データは一覧表示から削除され、印刷エラーになった印刷データに関しては、認識可能に一覧表示されるので、ユーザが容易に認識することが可能である。よって、従来、印刷データがエラーになったことをユーザが把握できず、エラーとなった印刷データがいつまでもプリントサーバに格納されたままとなってしまうという従来の問題点も解決可能である。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図17に示すメモリマップを参照して本発明に係るプルプリントシステムを構成する各情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
図17は、本発明に係るプルプリントシステムを構成する各情報処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体(記憶媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図5,図15,図16に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,DVD−ROM,磁気テープ,不揮発性のメモリカード,ROM,EEPROM,シリコンディスク等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が
実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ,データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
なお、上述した各実施形態およびその変形例のいずれか又は全てを組み合わせた構成も全て本発明に含まれるものである。