以下に添付図面を参照して、この発明にかかるプリンタ制御装置、プリンタ制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態を詳細に説明する。
(実施の形態)
(印刷システムのシステム構成)
まず、この発明の実施の形態によるプリンタ制御装置を含む、印刷システム全体の構成について説明する。図1は、本実施の形態によるプリンタ制御装置を含む印刷システムのシステム構成を示す説明図である。
図1において、101はユーザークライアントであり、顧客が業者に対して印刷業務を委託するために使用するコンピュータである。このコンピュータからWebブラウザを起動して、後述するWWWサーバー104上の印刷依頼用Webページにアクセスすることによって、印刷対象文書とその印刷条件が記入されたジョブチケットとを送信することができる。
図1において、印刷システムは以下に説明する受付用クライアント102、管理クライアント103、WWWサーバー104、プリントサーバー105、文書管理サーバー106および複数のプリンタ107によって構成される。これらのコンピュータおよびプリンタはLANによって接続される。
102は受付用クライアントであり、コンピュータやネットワークなどの施設を有さない顧客に代わって、当該顧客からの電話や郵便による依頼を受け付けた業者側の担当者が、印刷対象文書やジョブチケットを入力するために使用するコンピュータである。機能的にはユーザークライアント101と同一である。
103は管理クライアントであり、顧客から依頼された印刷業務を管理するために業者側の担当者が使用するコンピュータである。WebブラウザからWWWサーバー104上の印刷管理用Webページにアクセスすることで、印刷する文書やジョブチケットを登録/検索/削除/管理することができる。
104はWWWサーバーであり、印刷依頼用Webページ、印刷管理用Webページ、文書管理サーバー用Webページの3種類のWebページ、およびそれぞれのWebアプリケーションを提供するためのコンピュータである。また、WWWサーバー104は、上記Webページを介してユーザークライアント101や受付用クライアント102から新たな印刷依頼を受け付けると、当該要求を後述するプリントサーバー105に対して転送する。
105はプリントサーバーであり、後述するプリンタ107を制御して、ユーザークライアント101や受付用クライアント102から投入された印刷ジョブを処理させる。また、後述のように各プリンタへのジョブの蓄積状況や進捗状況、各プリンタの稼働状況などをリアルタイムに、かつグラフィカルに画面表示する。
106は文書管理サーバーであり、印刷対象文書やジョブチケットを蓄積・管理するためのコンピュータである。文書管理サーバー106は、プリントサーバー105からの取得要求を受けて、保持する文書やジョブチケットを検索・送信する。
なお、受付用クライアント102、管理クライアント103、WWWサーバー104、プリントサーバー105および文書管理サーバー106は、必ずしも別個のコンピュータでなくともよく、たとえば1台のコンピュータが上記すべての機能を兼ね備えるようにしてもよい。
107はプリンタであり、プリントサーバー105の制御にしたがって印刷対象文書からその紙面イメージを作成するとともに、イメージ化した文書を指定された条件にしたがって所定の用紙上に印刷する。
つぎに、この発明の実施の形態によるプリンタ制御装置(具体的にはプリントサーバー105)のハードウエア構成について説明する。図2は、本実施の形態によるプリントサーバー105のハードウエア構成を示す説明図である。
図2において、201は装置全体の動作を制御するCPUを、202は基本入出力プログラムを記憶したROMを、203はCPU201のワークエリアとして使用されるRAMを、それぞれ示している。
また、204はCPU201の制御にしたがってHD(ハードディスク)205に対するデータのリード/ライトを制御するHDD(ハードディスクドライブ)を、205はHDD204の制御にしたがって書き込まれたデータを記憶するHDを、それぞれ示している。また、206はCPU201の制御にしたがってFD(フロッピー(登録商標)ディスク)207に対するデータのリード/ライトを制御するFDD(フロッピー(登録商標)ディスクドライブ)を、207はFDD206の制御にしたがって書き込まれたデータを記憶する着脱自在な記憶媒体の一例としてのFDを、それぞれ示している。
また、208はカーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示するディスプレイを、209はツイストペア線などのネットワークケーブル210を介してLANなどのネットワークNETに接続され、そのネットワークNETとCPU201とのインターフェースとして機能するネットワークボードを、それぞれ示している。
また、211は文字、数値、各種指示などの入力のための複数のキーを備えたキーボードを、212は各種指示の選択や実行、処理対象の選択、カーソルの移動などをおこなうマウスを、それぞれ示している。また、213は着脱可能な記録媒体であるCD−ROMを、214はCD−ROM213に対するデータのリードを制御するCD−ROMドライブを、200は上記各部を接続するためのバスまたはケーブルを、それぞれ示している。
つぎに、この発明の実施の形態によるプリンタ制御装置(プリントサーバー105)の機能的構成について説明する。図3は、本実施の形態によるプリントサーバー105の構成を機能的に示す説明図である。なお、同図では本発明を説明するために必要な最低限の機能部のみを示し、その他の部分については図示を省略している。
図3において、301は、WWWサーバー104との通信を制御するWebインターフェース部であり、ユーザークライアント101などからWWWサーバー104を介して転送されてきた、印刷依頼すなわち印刷ジョブの登録要求をはじめとする種々の要求を受信する。
受信する要求には印刷ジョブの登録以外にも、すでに登録した印刷ジョブの詳細確認や状態確認、過去に登録した印刷ジョブの一覧表示などがあるので、Webインターフェース部301は、まず入力した要求がいずれの要求であるかを判別する。そして、入力した要求が印刷ジョブの登録である場合に、その印刷対象文書およびジョブチケットを後述する文書管理サーバー用インターフェース部302を介して文書管理サーバー106へ、また後述するプリンタ割り当て部307へ(後述する図9のダイアログで投入時のプリンタ割り当てが選択されている場合)、それぞれ出力する。
302は、文書管理サーバー106との通信を制御する文書管理サーバー用インターフェース部であり、Webインターフェース部301から入力した印刷対象文書およびジョブチケットの登録依頼を、文書管理サーバー106に対して送信する。あるいは、すでに登録されている文書やジョブチケットの取得要求を送信して、当該文書やジョブチケットを受信する。
303は、データベース管理部であり、後述するプリンタインターフェース部304や印刷時間算出部306、プリンタ割り当て部307などからの依頼を受けて、その保持する印刷ジョブテーブル303a、印刷スケジュールテーブル303bおよびプリンタテーブル303cへの書き込みをおこなう。
印刷ジョブテーブル303aは、ユーザークライアント101などから投入された印刷ジョブの内容の詳細を保持するためのテーブルである。図4は、印刷ジョブテーブル303aの項目の一例を示す説明図である。このように、印刷ジョブテーブル303aには、ジョブIDと対応づけて印刷部数(同図においては「NUM」)、印刷ページ数(同「OPAGE」)などの種々の印刷条件が登録される。
また、印刷スケジュールテーブル303bは、印刷ジョブテーブル303aに登録された各ジョブの処理予定プリンタや、現時点での状態などを保持するためのテーブルである。図5は、印刷スケジュールテーブル303bの項目の一例を示す説明図である。このように、印刷スケジュールテーブル303bには、ジョブIDと対応づけてその処理予定プリンタ(同図において「PRNT」)、現時点での状態(同「KFLG」)、印刷時間(同「TIME」)などが登録される。
プリンタテーブル303cは、このプリントサーバー105が管理するすべてのプリンタ107について、その所属するグループと、グループごとのスケジューリング方式、あるいはグループ内の各プリンタのプロパティや現時点での状態などを保持するためのテーブルである。図6は、プリンタテーブル303cの一例を模式的に示す説明図である。図中「*」印は後述のように、入力部305によって選択されたグループを示しており、後述するスケジュールビューにはこのグループ内の各プリンタへのジョブの蓄積状況がまとめて表示される。
図6に示すプリンタテーブル303cの各項目のうち、「状態」項目の内容は、後述のようにプリンタインターフェース部304からの通知によって随時書き換えられる。また、上記以外の各項目の内容は図7〜図9に示す各ダイアログによって設定される。
図7に示すダイアログにおいて追加ボタン701を押下すると、図8に示すダイアログが表示されるので、たとえば「PrinterB」など任意のグループ名を入力する。さらに、追加可能なプリンタから所望のプリンタを選択して追加ボタン801を押下すると、選択されたプリンタが「PrinterB」グループの管理するプリンタに追加される。そして、次へボタン802を押下すると図9に示すダイアログが表示されるので、追加したグループのスケジューリング方式などを設定する。
図9に示すダイアログの「受付時の動作」項目では、新規ジョブのプリンタへの割り当てを(a)新規ジョブの投入と同時に後述する図10のダイアログを表示して操作者に手動でおこなわせる、(b)新規ジョブの投入と同時に後述するプリンタ割り当て部307によって自動でおこなう、あるいは(c)投入時にはおこなわず、後述するメインビューやスケジュールビューで随時操作者に手動でおこなわせる、のいずれのスケジュール方式を採用するかを選択する。ここでは「PrinterB」グループ、また「PrinterA」グループについても、図示のように(a)が選択されているものとする。
また、図9に示すダイアログの「並行印刷」項目では、ジョブの印刷部数が閾値を超える場合に、後述する図10のダイアログで、デフォルトで当該ジョブを分割して複数のプリンタに配分するかどうか、およびそうする場合の上記閾値を設定する。そして、完了ボタン901が押下された時点で、図8および図9のダイアログでの設定内容がデータベース管理部303によってプリンタテーブル303cに書き込まれる。
304は、プリンタ107との通信を制御するプリンタインターフェース部であり、いずれかのプリンタからジョブの完了が通知される都度、データベース管理部303に依頼して、印刷スケジュールテーブル303bから当該プリンタに割り当てられているつぎのジョブを検索させ、つぎのジョブが見つかった場合には、印刷ジョブテーブル303aに保持されている当該ジョブの詳細を返信させる。
そして、受信したジョブ詳細の中から印刷対象文書の名称(またはIDなど当該文書を特定できる情報)を抽出し、ついで文書管理サーバー用インターフェース部302を介して、当該文書のデータを取得する。そして、印刷スケジュールテーブル303bで指定されたプリンタ107に対して、印刷対象文書のデータや印刷部数などの必要事項を送信して、上記ジョブを処理させる。
また、プリンタインターフェース部304は、各プリンタから一定の間隔で送信されてくるその状態を受信する。そして、データベース管理部303に依頼して、状態の変化したプリンタについて、プリンタテーブル303cの「状態」項目を新たな状態に書き換えさせる。また、各プリンタの状態から各ジョブの状態を割り出し、データベース管理部303に依頼して、印刷スケジュールテーブル303bに保持された各ジョブの状態を更新させる。
305は、入力部であり、後述するスケジュールビューに表示されたジョブやプリンタの選択指示、表示するプリンタ群の切り換え指示、プリンタ割り当て指示、ジョブの割り込み指示などの各種指示を入力する。なお、この入力部305が、請求項にいう「指定手段」に、そのおこなう処理の一部が請求項にいう「指定工程」に、それぞれ相当する。
306は、印刷時間算出部であり、後述するプリンタ割り当て部307からの依頼があったときに、入力した個々のジョブのそれぞれを処理するのにこれだけかかると予測される時間、すなわち印刷時間を、所定の計算式たとえば当該ジョブが割り当てられたプリンタの印刷速度をもちいて、印刷時間(min)=60(min)×印刷部数×印刷ページ数/プリンタの印刷速度(ppm(printsperminute))によって計算する。
なお、プリンタに割り当てられていないジョブの印刷時間を算出するときは、管理している全プリンタの印刷速度の平均値などをプリンタの印刷速度として代用する。
印刷時間算出部306からプリンタ割り当て部307に通知された上記印刷時間は、プリンタ割り当て部307からの依頼を受けたデータベース管理部303によって印刷スケジュールテーブル303bの「印刷時間」項目に書き込まれる。ただし、印刷時間算出部306は一定の時間が経過するごとに、データベース管理部303に依頼して印刷スケジュールテーブル303bから印刷中ジョブの印刷時間を読み出させ、その値を再計算する。
その場合の計算式は、たとえば、印刷時間(min)={60(min)×印刷部数×印刷ページ数/プリンタの印刷速度(cpm)}−{60(min)×仕掛枚数(=すでに印刷を完了した枚数)/プリンタの印刷速度(cpm)}である。そして、再計算した印刷時間をデータベース管理部303に依頼して印刷スケジュールテーブル303bに書き戻させる。
上記説明から明らかなように、印刷時間算出部306によって計算・再計算されて印刷スケジュールテーブル303bに保持される印刷時間は、厳密には当該ジョブを処理するのに現在以降これだけかかると予測される残存時間であって、印刷中のジョブについてはジョブの進捗にともなって減少してゆき、その完了時にゼロとなる。
なお、この印刷時間算出部306が請求項にいう「算出手段」および「第2の算出手段」に、またそのおこなう処理が、請求項にいう「算出工程」および「第2の算出工程」に、それぞれ相当する。
307は、プリンタ割り当て部であり、図9に示すダイアログの「受付時の動作」項目で上述のように(a)が設定されていた場合には、Webインターフェース部301からの新規ジョブの投入と同時に、図10に示すようなダイアログを表示する。このダイアログで当該新規ジョブを割り当てるプリンタと各プリンタへの割り当て部数とが設定され、次へボタン1001が押下されると、さらに図11に示すようなダイアログを表示する。
そして、このダイアログでジョブの優先度などが設定され、完了ボタン1101が押下されると、新規ジョブにまずジョブID(通し番号)を付与する。このとき、図10のダイアログでジョブが分割されて複数のプリンタに配分されていた場合、すなわち並行印刷が指示されていた場合には、分割前の親ジョブにジョブIDを付与するとともに、分割後のそれぞれの子ジョブに、親ジョブのIDに子ジョブ独自の通し番号を付加したジョブIDを付与する。
さらに、プリンタ割り当て部307は、印刷時間算出部306に依頼して、上記各ジョブの印刷時間を算出させる。そして、この印刷時間とジョブID、図10および図11のダイアログで設定された内容、およびWebインターフェース部301から受領したジョブチケットを、データベース管理部303に対して出力する。
データベース管理部303では入力したこれらの情報から必要事項を抽出して、印刷ジョブテーブル303aおよび印刷スケジュールテーブル303bのそれぞれの項目に書き込む。なお、印刷ジョブテーブル303aでは顧客から依頼された単位、すなわち親ジョブ単位で、また印刷スケジュールテーブル303bでは実際にプリンタで処理される単位、すなわち子ジョブ単位でレコードが作成される。
なお、図10に示すダイアログのキャンセルボタン1002、あるいは図11に示すダイアログのキャンセルボタン1102が押下されると、プリンタ割り当て部307はジョブIDと印刷時間、およびWebインターフェース部301から受領したジョブチケットのみをデータベース管理部303に出力する。そのため、たとえば印刷スケジュールテーブル303bの「PRNT」項目は空白のままとなる。
このように、印刷ジョブテーブル303aや印刷スケジュールテーブル303bに少なくともジョブIDは書き込まれているが、プリンタが未定の状態にあるジョブを、以下では「プリンタ未割り当て」あるいは単に「未割り当て」のジョブと呼ぶ。
なお、このプリンタ割り当て部307が請求項にいう「割り当て手段」に、また、そのおこなう処理が各請求項にいう「割り当て工程」に、それぞれ相当する。
308は、メインビュー表示部であり、データベース管理部303の各テーブルから必要事項を読み出して、図12に示すようなメインビューを表示する。同図に示すウィンドウにおいて、その内部は大きく三分割されており、左側の領域1201にはこのプリントサーバーによって管理されているすべてのプリンタが、グループごとにツリー状に表示されている。
そして、ここで選択されているプリンタ、あるいは選択されているグループ内のすべてのプリンタについて予定されている完了前のジョブが右側上の領域1202に、また当該プリンタにおいてすでに完了したジョブが右側下の領域1203に、それぞれ一覧表示されている。
このウィンドウは、図21に示した従来技術によるジョブ一覧ウィンドウと基本的に類似するものである。そのため、グループ内のどのプリンタにどのくらいの負荷がかかっているのか、あるジョブがその割り当てられたプリンタでいつごろ完了するのかといったことが分かりづらい場合がある。そこで、このメインビュー上でスケジュールビューアイコン1204を押下することによって、これに代えて上記が分かりやすく表示されたスケジュールビューを表示させられるようにする。
309は、スケジュールビュー表示部であり、ジョブグラフ表示部309aと、時間スケール表示部309bと、ガイドバー表示部309cと、処理中ジョブ情報表示部309dと、プリンタ状態表示部309eと、全未割り当てジョブ情報表示部309fと、選択中ジョブ情報表示部309gと、割り込み位置表示部309hとを含む構成である。
図13は、スケジュールビュー表示部309によって表示されるスケジュールビューの構造を模式的に示す説明図である。ウィンドウ内は割り当て済みジョブ表示エリア1301と、未割り当てジョブ表示エリア1302とに分割され、そのそれぞれに対して時間スケール表示エリア1303および1304が設けられている。
割り当て済みジョブ表示エリア1301は、さらにプリンタごとのブロック1301a〜dに分割されている。なお、以下では同図に示すように、ウィンドウをプリンタごとに水平に分割する場合を例として説明するが、これに限らず垂直に分割するのであってもよい。各ブロックはジョブグラフ表示エリア1305、処理中ジョブ情報表示エリア1306およびプリンタ状態表示エリア1307から構成される。
また、未割り当てジョブ表示エリア1302は一つのブロックによって構成され、当該ブロックはジョブグラフ表示エリア1305、全未割り当てジョブ情報表示エリア1308および選択中ジョブ情報表示エリア1309によって構成される。
なお、各ジョブグラフ表示エリア1305はジョブグラフ表示部309aによって描画され、このジョブグラフ表示部309aが、各請求項にいう「表示手段」および「第2の表示手段」に、またそのおこなう処理が、各請求項にいう「表示工程」および「第2の表示工程」に、それぞれ相当する。
また、時間スケール表示エリア1303および1304は時間スケール表示部309bによって描画され、この時間スケール表示部309bが、各請求項にいう「時間スケール表示手段」に、またそのおこなう処理が、各請求項にいう「時間スケール表示工程」に、それぞれ相当する。
また、図13には現れていないが図14で後述するガイドバー1410は、ガイドバー表示部309cによって描画され、このガイドバー表示部309cが各請求項にいう「ガイドバー表示手段」に、またそのおこなう処理が、各請求項にいう「ガイドバー表示工程」および「ガイドバー再表示工程」に、それぞれ相当する。
また、処理中ジョブ情報表示エリア1306は処理中ジョブ情報表示部309dによって描画され、この処理中ジョブ情報表示部309dが、各請求項にいう「処理中ジョブ情報表示手段」に、またそのおこなう処理が、各請求項にいう「処理中ジョブ情報表示工程」に、それぞれ相当する。
また、プリンタ状態表示エリア1307はプリンタ状態表示部309eによって描画され、このプリンタ状態表示部309eが、各請求項にいう「プリンタ状態表示手段」に、またそのおこなう処理が、各請求項にいう「プリンタ状態表示工程」に、それぞれ相当する。
また、全未割り当てジョブ情報表示エリア1308は全未割り当てジョブ情報表示部309fによって描画され、この全未割り当てジョブ情報表示部309fが、各請求項にいう「全未割り当てジョブ情報表示手段」に、またそのおこなう処理が、各請求項にいう「全未割り当てジョブ情報表示工程」に、それぞれ相当する。
また、選択中ジョブ情報表示エリア1309は選択中ジョブ情報表示部309gによって描画され、この選択中ジョブ情報表示部309gが、各請求項にいう「選択中ジョブ情報表示手段」に、またそのおこなう処理が、各請求項にいう「選択中ジョブ情報表示工程」に、それぞれ相当する。
また、図13には現れていないが、図19で後述する割り込み位置ポインタ1901は、割り込み位置表示部309hによって描画され、この割り込み位置表示部309hが、各請求項にいう「割り込み位置表示手段」に、またそのおこなう処理が、各請求項にいう「割り込み位置表示工程」に、それぞれ相当する。
図14は、スケジュールビュー表示部309によって表示されるスケジュールビューの一例を示す説明図である。まず、割り当て済みジョブ表示エリア1401のそれぞれのジョブグラフ表示エリア1405には、そのプリンタに割り当てられているジョブであってかつまだ完了していないものが、その印刷時間に比例した長さを有する所定の形状(たとえば矩形。以下単に「矩形」という)によって表現され、順に間を詰めて表示される。なお、各ジョブの間にはその境界が分かりやすいよう、背景色と同色の1ドットのギャップ(隙間)が設けられている。
なお、同一のプリンタに割り当てられた各ジョブの矩形が1ドット間隔で配列されて形成された、帯状(バー状)の矩形を以下では「ジョブグラフ」と呼ぶが、個々の矩形の長さが個々のジョブの印刷時間に比例する結果、各ジョブグラフの長さはそのプリンタに蓄積されたジョブの総処理時間、すなわち各プリンタの負荷に比例することになる。したがって、各プリンタの負荷の大小をジョブグラフの長短によって直感的に把握することができる。
なお、新たなジョブが投入された場合や、既存のジョブについて処理予定プリンタが決定・変更された場合、いずれかのジョブやプリンタに状態の変化があった場合、印刷中のジョブの印刷時間がその進捗にともなって再計算された場合など、まとめると、データベース管理部303に保持されているいずれかのテーブルにつき何らかの書き込みや書き換えがなされた場合には、ジョブグラフ表示部309aは書き込み・書き換え後の上記各テーブルを参照して、各ジョブグラフの再表示(リフレッシュ)をおこなう。
上述のように、印刷中ジョブの印刷時間はその進捗にともなって再計算され、徐々に減ってゆくので、当該ジョブに対応する矩形の長さも再表示のたびに短くなってゆく。印刷中ジョブは常にジョブグラフの先頭、すなわち後述する時間スケールの起点側に表示されるので、先頭の矩形の長さが短縮するとその分後続の矩形が起点方向に詰められる。より直感的にいえば、各プリンタのジョブグラフは時間の経過にともなって先頭方向、ここでは左側に順次移動してゆき、起点より先は画面外となる。したがって、各プリンタでのジョブの進捗状況をジョブグラフの移動によって直感的に把握することができる。
なお、ジョブグラフ内の各矩形の色または模様は、当該矩形に対応するジョブの状態を表しており、上記再表示時には、各ジョブの新たな状態を反映して更新される。図15は、矩形の色または模様とジョブの状態との対応関係を示す説明図である。
また、矩形内の右上隅に表示された「1」「2」などの文字は、当該矩形で示されるジョブがある親ジョブから分割された子ジョブであること、言い換えれば当該ジョブが並行印刷の対象となっていることを示している。同一の親ジョブから分割されたそれぞれの子ジョブに共通の文字が付加されるため、複数のプリンタによって並行印刷されるジョブがどのプリンタでいつ処理されるのかが分かりやすくなる。
上記文字は矩形内に示したが、それには限定されず、矩形の外側であってその矩形を示すことがわかるようにその矩形の近傍に表示するようにしてもよい。また、本実施の形態では、同一の数字をもちいたが、これには限定されず、同一の文字をもちいてもよく、また、同一の図形、アイコンのような絵をもちいるようにしてもよい。また、アイコンなどで分割されたジョブの一方を指し示すことにより、分割された他方のジョブを表示形態を変えることによって示すようにしてもよい。
また、割り当て済みジョブ表示エリア1401には、選択されているグループ内の複数のプリンタ、ここでは「PrinterA」グループの「PrinterA1号機」から「PrinterA4号機」までの各プリンタにおけるジョブの蓄積状況が同時に表示される。
他のグループでのジョブの蓄積状況を見るには、入力部305から表示するプリンタ群の切り換え指示を入力する。具体的には図16に示すように、ウィンドウ上部のプルダウンリスト1413から所望のグループをマウス212でクリックする。入力部305からの依頼を受けたデータベース管理部303によって、プリンタテーブル303cで他のグループへの選択切り換えがおこなわれると、スケジュールビュー表示部309の各部はそれまで表示していたグループに代えて、新たに選択されたグループ内の各プリンタについて、ジョブの蓄積状況や処理中ジョブの詳細情報などを表示する。
また、図14に示すスケジュールビューには、時間スケール表示エリア1403および1404のぞれぞれに時間スケールが表示されている。この時間スケールには、現在の日時からの経過時間が配置されており、その単位は「分後」である。
時間スケールがなくても、各プリンタの負荷の相対的な大小はジョブグラフの長さによって把握することができるが、それが印刷時間にしてどのくらいの量であるといった、絶対的な負荷の大きさは分からない。時間スケールの表示によって、たとえばあるプリンタのジョブグラフの終端がスケール上で「120分後」に位置していれば、当該プリンタには残り120分分のジョブが蓄積されていることが分かる。
また、たとえばその終端がスケール上で「300分後」に位置している矩形は、今から300分後(1時間後)に処理完了予定のジョブを示しているので、逆に12時の時点で、当日中すなわち終業時刻の17時までに完了しなければならないジョブがあった場合に、当該ジョブを表す矩形の終端がスケール上で300分後よりも起点寄りにあるかどうかを見れば、当該ジョブが期限までに処理されるかどうかを容易に判断することができる。
また、図14に示すスケジュールビューには、スケール上のある一点を通過し、それと直交する方向に、各プリンタのジョブグラフをまたがるガイドバー1410が表示されている。それぞれの直線は間が途切れているが、これはデザイン上の観点によるもので、原理的にはそれぞれ一本の直線である。
ウィンドウ上部の「表示」メニューから「ガイドバー表示」を選択すると、ガイドバー1410が一本表示される。「ガイドバー表示」の実行のたびに新たなガイドバー1410が表示されるので、ウィンドウ内に所望の本数のガイドバー1410を設定しておくことができる。そして、これらのガイドバー1410はスケール上の所望の位置までマウス212で移動させることができる。
ガイドバー1410は種々の用途にもちいることができ、たとえばその左側で終わっているジョブグラフや右側で終わっているジョブグラフが混在している場合には、各プリンタにジョブが均等に配分されていないということなので、負荷の大きいプリンタのジョブを負荷の小さいプリンタに割り当て直すなどして、各プリンタの負荷のレベル合わせをすることができる。
また、ガイドバー1410は、たとえば、複数のプリンタで並行印刷されている各ジョブの処理時期にばらつきがないかどうかのチェックにもちいることができる。同一の親ジョブから分割された子ジョブのうち、あるものはガイドバー1410の左側に、あるものはその右側にある場合、子ジョブの処理時期がずれていて印刷結果のとりまとめなどが効率的におこなえない。したがって、いずれかのジョブを割り当て直して各子ジョブの処理時期がおおむね同時になるようにする。
また、ガイドバー1410は、たとえば時間外業務がどれだけ発生するかを把握する目安となる。終業時刻まであと2時間であったとすると、スケール上の120分後にガイドバー1410を合わせれば、その右側にはみだすジョブが時間外業務となるジョブである。これと関連して、たとえば期限のあるジョブが当該期限までに完了するかどうかのチェックに利用することもできる。
また、ガイドバー1410はその設定時からの経過時間の分だけ順次スケール上の起点方向へと移動されてゆき、起点に達した時点で消去される。あるいは、たとえばスケール上で120分後の位置に設定されたとすると、設定からちょうど120分後に消去されるといってもよい。したがって、たとえば今日はここまで処理すると決めたジョブの終端にガイドバー1410を設定しておけば、刻々と変化するそのスケール上での位置によって、目標達成までの残り時間(あと30分で目標達成、など)を把握することができる。
また、各プリンタのブロックには、各プリンタで処理中のジョブの詳細情報、具体的には文書名、ユーザー名、メモ、ジョブID、進捗状況および出力形態を表示するための処理中ジョブ情報表示エリア1406が設けられている。同図では文書名、ユーザー名およびメモを表示するエリアと、ジョブID、進捗状況および出力形態を表示するエリアとが分かれているが、これは後述する未割り当てジョブ表示エリア1402との均衡を取るための、デザイン上の都合によるものであって、分割せずまとめて表示するようにしてもよい。
ここで進捗状況は、具体的には、「仕掛枚数」/「総印刷枚数」によって示される。なお、仕掛枚数は、すでに印刷を完了した枚数であり、総印刷枚数は、印刷部数×印刷ページ数である。
また、出力形態は当該ジョブがもっぱらそのプリンタによって一括して処理されるものであるか(一括印刷)、複数のジョブに分割され、複数のプリンタによって並行して処理されるものであるか(並行印刷)、あるいは他のプリンタに割り当てられていたものが、当該プリンタの不調などによってこのプリンタに割り当て直されたものであるか(代行印刷)、の区分を示している。
また、各プリンタのブロックには、各プリンタの状態を示すプリンタ状態表示エリア1407が設けられ、現時点でのプリンタの状態が所定のアイコンによって表示される。図17は、各アイコンとプリンタの状態との対応関係を示す説明図である。
各状態の意味については説明を省略するが、「STOP」についてのみ補足する。特に、「STOP」アイコンが表示されるのは、停止指定されたジョブが到来したとき以外に、オペレータによってプリンタの操作パネルまたはプリントサーバから、プリンタの動作が停止されたときである。これは、ジョブに対して停止属性を与えるのとは異なり、プリンタに対して直接停止指示を与えるものである。
図18は、プリンタの状態が「READY」から「STOP」に変化するときの画面状態(の一部)を示す説明図である。停止中のジョブ1801は、時間の経過にともなってスケール上の起点方向に移動してゆき、その先端が当該起点と一致したときに、プリンタ状態アイコンが上図の「READY」から下図の「STOP」に更新される。先端が当該起点と一致したときとは、すなわち当該ジョブの処理時期が到来したときである。
なお、ここで処理中のジョブとは、印刷中のジョブはもちろん印刷途中でエラーが発生したジョブ、印刷時期は到来したものの停止が指示されているために停止されているジョブなどを含む。より直感的には、各プリンタのジョブグラフの先頭に位置するジョブといってもよい。
なお、図14において「PrinterA1号機」の処理中ジョブ情報表示エリア1406(の一部)とプリンタ状態表示エリア1407とは、濃紺かつ2ドットの枠線1411によって囲まれており、このプリンタが現在選択されたプリンタであることを示している(なお、「選択されたプリンタ」は上述の「選択されたグループ」とは異なる)。選択されたプリンタについて、ウィンドウ上部のアイコンなどからその停止、再開などを指示することができる。
また、まだいずれのプリンタにも割り当てられていないジョブは、未割り当てジョブ表示エリア1402内のジョブグラフ表示エリア1405に、たとえばその投入順に並べて表示される。割り当て済みのジョブと同様に、矩形の長さは当該ジョブについて算出された印刷時間を、矩形の色または模様は当該ジョブの現在の状態(具体的には、プリンタ未割り当てという状態)を、またジョブグラフの長さはすべての未割り当てジョブの処理に要する総時間を、それぞれ示している。
また、未割り当てジョブ表示エリア1402には、未割り当てジョブの総件数と総印刷枚数とを表示するための全未割り当てジョブ情報表示エリア1408と、選択されたいずれかの未割り当てジョブの文書名、ユーザー名およびメモ(コメント)を表示するための選択中ジョブ情報表示エリア1409とが設けられている。
なお、未割り当てのジョブをいずれかのプリンタに割り当てるには、入力部305からジョブの選択指示と、当該ジョブのプリンタへの割り当て指示とを入力する。具体的には、まずプリンタに割り当てたいジョブの上でマウス212をクリックする。このようにして選択されたジョブは、濃紺の1ドットの枠線1412によって強調表示される。
つぎに、ウィンドウ上部のプルダウンメニューから「プリンタ割り当て」を選択・実行する。このように、メニューからプリンタ割り当てが実行された場合には、入力部305からの指示を受けたプリンタ割り当て部307は、原則として選択中のジョブをその時点で最も負荷の少ない、すなわち当該ジョブに最も早く着手できるプリンタの、印刷待ち行列の最後尾に追加する。
ただ、最も早く処理に着手できるプリンタではなく、とくにこのプリンタのこのジョブの前に割り込ませたいといった明確なニーズがあるときには、クリックしたジョブをそのままドラッグ&ドロップによって、所望のプリンタの所望のジョブの間に割り込ませることができる。
上述のように、ジョブとジョブとの境界は1ドットのギャップによって明確になっているが、ジョブのドラッグ&ドロップ時には当該ジョブが実際にいずれの境界に挿入されるかを明示するため、原則としてマウスカーソルの最近傍のギャップに図19に示すような割り込み位置ポインタ1901を表示する。マウスカーソルの移動にともなって、これらのポインタも移動する。
なお、各ジョブにはあらかじめ優先度が付与されており、割り込みは割り込もうとするジョブと同じか、それより低い優先度のジョブの前でのみ可能である。そのため、マウスカーソルの最近傍のギャップであってもその後ろ側のいずれかのジョブに優先度の高いものがあり、低い優先度のジョブの割り込みが禁止されるときは、当該ギャップには割り込み位置ポインタ1901は表示しない。この場合、割り込み可能な境界の中から最もマウスカーソルに近いものを選んで、その位置に割り込み位置ポインタ1901を表示する。
ドラッグ&ドロップによるジョブの割り込みがあった場合には、入力部305からの通知を受けたプリンタ割り当て部307は、まず印刷時間算出部306に依頼して、割り込み先のプリンタの印刷速度をもちいて選択中ジョブの印刷時間を再計算させる。そして、データベース管理部303に依頼して、当該ジョブの処理予定プリンタを上記割り込み先プリンタ、印刷時間を上記印刷時間として印刷スケジュールテーブル303bに書き込ませる。
なお、Webインターフェース部301、文書管理サーバー用インターフェース部302、データベース管理部303、プリンタインターフェース部304、入力部305、印刷時間算出部306、プリンタ割り当て部307、メインビュー表示部308およびスケジュールビュー表示部309は、それぞれROM202、RAM203またはHD205、FD207などの記録媒体に記録されたプログラムに記載された命令にしたがってCPU201などが命令処理を実行することによって、各部の機能を実現するものである。
つぎに、この発明の実施の形態によるプリンタ制御装置(プリントサーバー105)の、スケジュールビュー表示処理の手順について説明する。図20は、この発明の実施の形態によるプリントサーバー105の、スケジュールビュー表示処理の手順を示すフローチャートである。図12に示すメインビュー上でスケジュールビューアイコン1204が押下されたときに、本フローチャートによる処理を開始する。
ステップS2001において、スケジュールビュー表示部309のジョブグラフ表示部309aは、データベース管理部303に依頼して、選択されているグループ内の各プリンタの中で、現在日時以降に完了する予定のジョブをすべて検索させる。
そして、ステップS2002において、まず印刷スケジュールテーブル303bに保持された各ジョブの印刷時間から、それぞれのジョブを表す矩形の長さを計算する。たとえば、スケール上での1分が4ドット、ジョブの印刷時間が120分の場合、4ドット×120分−ギャップ分の1ドット=479ドット分と計算される。なお、このような計算式をもちいれば、画面を拡大したときにジョブのギャップまで拡大され、見た目が悪くなるという問題を回避することが可能となる。
さらに、印刷スケジュールテーブル303bに保持された各ジョブの状態から、それぞれのジョブを表す矩形の色または模様を決定する。また、ジョブIDを参照して、同一の親ジョブから分割された子ジョブがあれば、それらの子ジョブに同一の文字を付与する。そして、上記長さ、色または模様、および付与する文字から、各ジョブを表す矩形の画像を作成する。
さらに、ステップS2003において、ステップS2002において作成した各ジョブの画像を割り当てられたプリンタごとに1ドットの間隔で繋ぎ合わせて、プリンタごとのジョブグラフの画像を作成する。
ステップS2004において、スケジュールビュー表示部309の時間スケール表示部309bは、あらかじめ保持している時間スケールの画像を図示しない記憶部から読み出す。
また、ステップS2005において、スケジュールビュー表示部309のガイドバー表示部309cは、内部に保持する図示しないテーブルからガイドバー1410の設定有無を判定し、ガイドバー1410が設定されている場合には上記テーブルに保持されているその設定日時と、スケール上でのその設定位置とを読み出す。そして、当該設定日時から現在日時までの経過時間にもとづいて、スケール上での新たな表示位置を計算する。
たとえば、「表示」メニューから「ガイドバー表示」が選択され、任意の位置に表示されたガイドバー1410がスケール上の60分後の位置に移動されたのが11時であって、現在日時は11時10分であったとすると、設定日時からの経過時間10分を設定位置の60分後から減算して、新たな表示位置を50分後と算出する。
また、ステップS2006において、スケジュールビュー表示部309の処理中ジョブ情報表示部309dは、データベース管理部303に依頼して、各プリンタで処理中のジョブの文書名、ユーザー名、メモ、ジョブID、印刷部数、印刷ページ数および出力形態を、印刷ジョブテーブル303aから読み出させる。さらに、読み出した印刷部数と印刷ページ数とを乗算して、各処理中ジョブの総印刷枚数を算出しておく。
また、ステップS2007において、スケジュールビュー表示部309のプリンタ状態表示部309eは、データベース管理部303に依頼して、選択されているグループ内の各プリンタの状態をプリンタテーブル303cから読み出させる。そして、読み出された各状態に対応するアイコンの画像を、図示しない記憶部から読み出しておく。
また、ステップS2008において、スケジュールビュー表示部309のジョブグラフ表示部309aは、データベース管理部303に依頼して、印刷スケジュールテーブル303bからプリンタ未割り当てのジョブをすべて検索させる。そして、ステップS2009において、印刷スケジュールテーブル303b内の印刷時間と状態とから、各ジョブを表す矩形の長さ、色または模様を決定してその画像を作成する。
さらに、ステップS2010において、ステップS2009において作成した各矩形の順序を印刷ジョブテーブル303aに保持された各ジョブの投入日時にしたがって決定し、この順序で上記矩形を1ドットの間隔で繋ぎ合わせて、未割り当てジョブのジョブグラフの画像を作成する。
また、ステップS2011において、スケジュールビュー表示部309の全未割り当てジョブ情報表示部309fは、ステップS2008において検索された未割り当てジョブの総件数を計数するとともに、データベース管理部303に依頼して、各ジョブの印刷部数と印刷ページ数とを印刷ジョブテーブル303aから読み出させる。そして、各ジョブの印刷枚数(=印刷部数×印刷ページ数)を累計して、未割り当てジョブの総印刷枚数を算出する。
また、ステップS2012において、スケジュールビュー表示部309の選択中ジョブ情報表示部309gは、未割り当てジョブのうち選択されたものがあれば、データベース管理部303に依頼して当該ジョブの文書名、ユーザー名およびメモを印刷ジョブテーブル303aから読み出させる。
そして、ステップS2013において、上記各部は、上記各ステップで作成した画像や読み出した文字情報、計算した数値などをあらかじめ用意されたスケジュールビューの画像にはめこんで画面表示する。その後、本フローチャートによる処理を終了する。
以上説明したように本実施の形態によれば、各プリンタの負荷がジョブグラフによってグラフィカルに表示されるので、プリンタ間での負荷の配分が適切になされているかどうかを直感的に把握することができる。また、あわせてスケールが表示されるので、各プリンタの負荷の相対量だけでなく絶対量(印刷時間に換算された絶対量)も把握することができる。
また、ジョブグラフ内の個々の矩形はその長さによってジョブの印刷時間を、その色または模様によってジョブの状態を表現しているので、どのくらいのサイズのどのような状態のジョブが、どのプリンタにどのような順番で投入されているのかを直感的に把握することができる。また、スケールによってあるジョブがいつごろ処理されるかが容易に分かるので、個々のジョブの期限管理もしやすくなる。
さらに、現時点での各プリンタのジョブの総量や未割り当てジョブの総量、現時点での各ジョブや各プリンタの状態、あるいは現在処理中のジョブや選択中のジョブの詳細などがリアルタイムに、かつ操作者に理解しやすく表示されるので、システム全体の現在および将来の稼働状況を一見して把握することが可能である。
なお、上述した実施の形態で説明したプリンタ制御方法は、プログラムをROMのほか、HD、FD、CD−ROM、MO、DVD、ICカードなどのコンピュータで読み取り可能な記録媒体に記録し、コンピュータによって上記媒体から読み出して実行することによって実現される。また、このプログラムは、伝送媒体として、あるいは、上記記録媒体を介して、インターネットなどのネットワークを通じて配布が可能である。