図1に、実施形態のシステム構成の一例を示す。このシステムは、メンテナンス管理装置100、ユーザが有する1以上のプリンタ120、ジョブスケジュール管理システム130、予兆検知システム140を含む。
1以上のプリンタ120は、例えば、特定の1つのユーザ組織(例えば1つの会社)で使用されるものである。各プリンタ120は、印刷処理のための制御を行う制御部122と、プリンタ120内の各部の状態を検知する各種のセンサ126を有する。センサ126には、トナーやインクの残量を検知するセンサ、用紙の残量を検知するセンサ、画質調整用に生成したトナーパッチ等の濃度を検出するセンサ、感光体ドラムの回転数や回転位置を検出するエンコーダ等、様々なものがある。また制御部122は、1以上のカウンタ124を有する。各カウンタ124は、それぞれ対応する事象の発生回数を計数する。例えば、感光体ドラムの回転数を計数するカウンタは、感光体ドラムが新しいものに交換されるとリセットされ、例えば感光体ドラムの回転を計測するエンコーダからの信号を用いて、その交換以後の感光体ドラムの回転数を計数する。これらセンサ126が検知した情報やカウンタ124の計数値が、トナーや用紙等の消耗品の欠乏、印刷画質の劣化(色再現の誤差が閾値以上となる等)、感光体ドラムの品質劣化、等といった不具合の発生の検知や、それら不具合の発生の予兆の検知に用いられる。
ジョブスケジュール管理システム130は、そのユーザ組織内の各プリンタ120の印刷ジョブの実行スケジュールを管理する。印刷ジョブの実行スケジュールは、各印刷ジョブがそれぞれどのプリンタでどの時間(ジョブが実行される予定時間)に実行されるのかを示す。ジョブスケジュール管理システム130が管理するジョブスケジュール情報の一例を図2に示す。図2に示す例は、特定の1つのプリンタ120の特定の日(「2月1日」)のジョブスケジュールを示している。例えばこのスケジュールでは、そのプリンタ120にて2月1日の9時から10時まで「ジョブA」が実行され、10時から11時まではジョブは実行されず(すなわちこの時間は「空き時間枠」である)、11時から13時までは「ジョブB」が実行されることとなる。
予兆検知システム140は、各プリンタ120における不具合発生の予兆を検知する。予兆検知システム140は、各プリンタ120の各センサ126の検出信号及び各カウンタ124のカウント値を受け取り、それらの情報から、どのプリンタ120で、どのような不具合事象の予兆が発生したかを検知する。例えば、あるプリンタ120のある色のトナーの残量があらかじめ設定された閾値レベル以下になったことがトナー残量センサの信号から分かった場合、予兆検知システム140は、そのプリンタ120の色のトナーについてトナー切れの予兆があると判定する。また、感光体ドラムの回転数を計数するカウンタの計数値があらかじめ設定された閾値に達した場合に、感光体ドラムの性能が、交換が必要となるレベルまで劣化する予兆と判定する。
また予兆検知システム140は、検知した予兆に係る不具合が発生するタイミングの予測値を求める。この予測値は、予兆が検知された時点から固定のマージン期間の後のタイミングであってもよいし、当該プリンタ120の利用状況(使用頻度や印刷量等)に応じた可変値であってもよい。前者(固定値)の例では、例えば、トナー切れの予兆を検知した時点で、トナー切れが発生するのがあらかじめ設定されたマージン期間(例えば3日)の後と判定する。後者(可変値)の例では、予兆検知システム140が各プリンタ120の近時の使用頻度や単位期間当たりの印刷量の情報を収集しており、あらかじめ定めた基準のマージン期間を補正する。すなわち、予兆を検知した時点に対して補正後のマージン期間を加えた時点が、その予兆に対応する不具合事象が発生するタイミングであると判定する。マージン期間の補正は、例えば以下のように行えばよい。すなわち、例えば、プリンタ120の実際の単位期間当たりの印刷量が、基準のマージン期間を定める際に想定した印刷量より少なければ、基準のマージン期間をそれら印刷量同士の差に応じた長さだけ延長した期間を、補正後のマージン期間とする。
予兆検知システム140は、ユーザ組織内のいずれかのプリンタ120についての不具合事象の予兆を検知した場合、その予兆の情報をメンテナンス管理装置100に通知する。通知する予兆の情報には、予兆が検知されたプリンタ120の識別情報、予兆の内容、予兆に対応する不具合事象の発生タイミングの予測値、が含まれる。取得される予兆の内容の情報は、例えば、その予兆の内容に対してあらかじめ割り当てられた識別情報である。なお、予兆の内容は、その予兆に対応する不具合事象に対処するためのメンテナンス(保守)作業の内容に対応するので、予兆内容の識別情報は、その予兆に対応するメンテナンス作業内容を指し示すこととなる。例えば、トナー切れという予兆内容は、トナー補充というメンテナンス作業内容に対応する。
以上、予兆検知システム140の機能を例示したが、これはあくまで一例に過ぎない。予兆検知システム140は、各プリンタ120から取得した情報から、各プリンタ120における不具合発生の予兆を検知し、その予兆に係る不具合事象の発生の予想タイミングを求める機能を持つものであればどのようなものであってもよい。予兆検知システム140としては、従来からある、又はこれから開発される、同種の機能を持つシステムを用いることができる。
メンテナンス管理装置100は、予兆検知システム140が検知した予兆に応じて、プリンタ120群のメンテナンス(保守)作業の実施スケジュールを立て、管理する。予兆に応じたメンテナンス作業の例としては、例えば、トナー切れの予兆に対するトナーカートリッジの交換、感光体交換時期の予兆に対する感光体ドラムの交換等がある。
メンテナンス管理装置100は、予兆検知システム140から通知された予兆に対処するためのメンテナンス作業の実施スケジュールを、ジョブスケジュール管理システム130が管理する各プリンタ120のジョブスケジュールを考慮に入れて、立案する。
メンテナンス管理装置100は、予兆情報取得部102、スケジュール情報取得部104、メンテナンス計画処理部106、スケジュール更新部108、記憶装置110、及び条件設定部116を有する。
予兆情報取得部102は、予兆検知システム140から通知される予兆の情報を取得する。スケジュール情報取得部104は、ジョブスケジュール管理システム130から、各プリンタ120のジョブスケジュール情報を取得する。スケジュール情報取得部104は、例えば、予兆情報取得部102が予兆の情報を取得した場合、その予兆の情報に含まれる、予兆が検知されたプリンタ120のジョブスケジュール情報を取得する。
メンテナンス計画処理部106は、予兆情報取得部102が取得した予兆の情報と、スケジュール情報取得部104が取得した、その予兆が検知されたプリンタ120のジョブスケジュール情報とに基づき、その予兆に対応するメンテナンス作業のスケジュールを立てる。メンテナンス計画処理部106は、あるプリンタ120から不具合の予兆が検知された場合、そのプリンタ120のジョブスケジュールに対してできるだけ影響を与えないように、その不具合に対処するためのメンテナンス作業の実施予定を設定する。
メンテナンス計画処理部106は、メンテナンススケジュールの立案に際し、記憶装置110に記憶されているメンテナンス実施条件テーブル112と期限判断条件114を参照する。
メンテナンス実施条件テーブル112は、メンテナンス作業の実施条件を規定するテーブルである。1つの例では、メンテナンス実施条件には、個々のメンテナンス作業に要する標準的な作業時間が含まれる。期限判断条件114は、予兆に対応するメンテナンス作業の実施期限を判断する際に用いる判断条件である。メンテナンス実施条件テーブル112及び期限判断条件114については、後で具体的な例を説明する。
スケジュール更新部108は、メンテナンス計画処理部106が決定したメンテナンス作業の実施タイミングに従い、そのメンテナンス作業の予定を1つのジョブとしてジョブスケジュール管理システム130に登録する。
条件設定部116は、記憶装置110に記憶されるメンテナンス実施条件テーブル112と期限判断条件114の内容を設定するためのUI(ユーザインタフェース)である。
図1に例示したシステムの各構成要素(メンテナンス管理装置100、プリンタ120、ジョブスケジュール管理システム130及び予兆検知システム140)は、1つの例では、すべてそのプリンタ120群を利用するユーザ組織内に設置される。この場合において、予兆に対処するためのメンテナンス作業が、プリンタ120のメンテナンスサービスを提供する業者が実施すべき作業内容である場合には、決定したメンテナンスジョブの時間枠及びメンテナンス作業内容の情報を、メンテナンス計画処理部106からそのメンテナンスサービス業者のシステムに通知するようにしてもよい。
また、別の例として、プリンタ120群及びジョブスケジュール管理システム130はユーザ組織内に設置され、メンテナンス管理装置100はメンテナンスサービス業者に設置されるシステム構成も考えられる。この場合、メンテナンスサービス業者内のメンテナンス管理装置100は、予兆に応じたメンテナンス作業の予定を立てるにあたり、ユーザ組織内のジョブスケジュール管理システム130からジョブスケジュールを取得する必要がある。ここで、ジョブスケジュール管理システム130が管理するジョブスケジュールの情報には、個々の印刷ジョブの属性(例えばジョブ名やジョブを投入したユーザの識別情報)のように、ユーザ組織の外部には秘密にしたい情報が含まれる場合がある。この点を考慮して、ジョブスケジュール管理システム130は、メンテナンス管理装置100に提供するジョブスケジュールの情報から、ユーザ組織が事前に設定した機密対象の情報項目を省くようにしてもよい。メンテナンス管理装置100は、ジョブスケジュールの情報として、各ジョブの予定時間の情報があれば足りるので、ジョブスケジュール管理システム130は最低限その情報をメンテナンス管理装置100に提供すればよい。なお、後述の第1の変形例のようにジョブの予定時間の移動を認める場合は、ジョブスケジュール管理システム130からメンテナンス管理装置100に対して、各ジョブの予定時間の他に、各ジョブの識別情報とジョブ優先度の情報も伝える。これは、ジョブの予定時間が移動可能かどうかをメンテナンス管理装置100が判定するのにジョブ優先度の情報が必要であり、ジョブを移動させると決定した場合に、どのジョブを移動させるかをメンテナンス管理装置100からジョブスケジュール管理システム130に指示するのにジョブの識別情報が必要だからである。なお、この例において予兆検知システム140は、メンテナンスサービス業者側に設置してもよいし、ユーザ組織内に設置してもよい。
次に、メンテナンス実施条件テーブル112及び期限判断条件114の具体例について説明する。
図3に、メンテナンス実施条件テーブル112の情報内容の一例を示す。同じ種類のメンテナンス作業でも、その作業に要する標準的な時間が個々のプリンタごとに異なる場合があることを考慮して、図3の例では、個々のプリンタ120ごとに、メンテナンス実施条件が定められている。この例では、メンテナンス実施条件は、メンテナンスの「作業内容」とその作業に要する標準的な「作業時間」のペアである。メンテナンス実施条件テーブル112には、個々のプリンタ120の識別情報である「プリンタ名」に対応づけて、そのプリンタ120における個々の「作業内容」に対応する「作業時間」が登録される。例示したテーブルには、例えば「PRT01」というプリンタ名を持つプリンタ120については、「部品交換」に2時間、「印刷品質調整」に1時間、「消耗品補充」に0.5時間の作業時間を要する旨が登録されている。
図3では、説明を簡潔にするために、「部品交換」、「消耗品補充」等の大まかな作業内容を例示するにとどめたが、実際のシステムでは、感光体ドラムの交換、内蔵ハードディスクの交換、トナーの補充、用紙の補充等のように、個別の部品又は消耗品毎に、「作業時間」を登録できるようにしてもよい。また、図3の例では個々のプリンタ120ごとにメンテナンス実施条件を規定したが、プリンタ120の機種ごとに規定すれば十分な場合は、メンテナンス実施条件テーブル112には、プリンタ120の機種ごとにメンテナンス実施条件を登録すればよい。
また期限判断条件114には、例えば以下に例示するものがある。
(ア)検知した予兆に対応する不具合事象の発生予測タイミングが、印刷ジョブの実行予定時間内に該当する場合に、その印刷ジョブの実行開始前にその不具合事象に対するメンテナンス作業が完了する。
(イ)ジョブスケジュールにおいて優先度が高い印刷ジョブ(例えばそのジョブの優先度があらかじめ定めた閾値以上である)については、検知した予兆に対応する不具合事象の発生予測タイミングがその印刷ジョブの実行予定時間の後であっても、その予定時間から見て近傍範囲内であれば、その印刷ジョブの実行開始前にその不具合事象に対するメンテナンス作業が完了する。
ここで、「近傍範囲」の時間幅は、あらかじめ定めておく。また、ジョブの優先度は、数値で表現するものに限られない。例えば、ジョブに対して予定時間の移動の可・不可が設定される場合、「移動不可」の場合が「優先度が高い」に該当し、「移動可」の場合は「優先度が高い」に該当しないとみなすようにしてもよい。不具合事象の発生予測タイミングがジョブの実行予定時間に近い場合、その予測タイミングがそのジョブの実行予定時間の後であっても、そのジョブ中に不具合事象が発生する可能性は低いとはいえない。一方、優先度が高いジョブは重要なジョブであり、このような重要なジョブの実行中に不具合事象が起こることを避ける方が望ましいと考えられる。そこで、この条件(イ)では、不具合事象の発生予測タイミングが、ジョブの実行予定時間の後であっても、近傍範囲内であれば、メンテナンス作業がそのジョブの前に完了するようにスケジューリングするのである。なお、これは1つの考え方であり、この考え方を採らない場合には、この条件(イ)を採用しなければよい。
(ウ)業務時間内にメンテナンス作業が完了する。
(エ)長期休暇の前にメンテナンス作業が完了する。
以上に例示した4つの条件はあくまで一例に過ぎない。メンテナンス計画処理部106におけるメンテナンス作業の実施期限の判断に当たり、これら4つの条件のうちのいくつかの条件のみを用いてもよいし、それら4つの条件以外の別の条件を用いてもよい。また、本システムの管理者等のユーザが、用意されている複数の期限判断条件(例えば上に例示した4つ)の中から、メンテナンス作業の実施期限の判断に用いる1以上の条件を選択できるようにしてもよい。また、この選択を、プリンタ120ごとに行えるようにしてもよい。
次に、図4を参照して、条件設定部116が提供する、メンテナンス実施条件テーブル112に対するメンテナンス実施条件設定用のUI画面200の一例を説明する。図4に例示するUI画面200は、プリンタごとのUI画面を選択するためのタブ202、プリンタ種別の入力欄204、各メンテナンス作業内容に対するメンテナンス実施条件の入力欄206を含む。図示例では、プリンタ「PRT01」についての設定用UI画面が選択されている。プリンタ種別の入力欄204には、プリンタ120の種別の一覧が例えばプルダウンメニューとして表示され、そのメニューの中からユーザ(例えば本システムの管理者)が、設定対象プリンタの種別を選択する。条件の入力欄206には、メンテナンス作業内容ごとに、その作業内容に対応する標準的な作業時間と、そのメンテナンス作業の優先度とが入力される。これらの入力も、プルダウンメニュー等に示される選択肢の選択により行う形としてもよい。なお、メンテナンス作業の優先度はこの実施形態では用いないので、ここでは説明を省略し、後の優先度を利用する変形例にて詳しく説明する。本システムの管理者は、このUI画面200を介して、メンテナンス実施条件テーブル112における各プリンタ120についてのメンテナンス実施条件を指定する。
例えば、ユーザがプリンタ種別を選択すると、そのプリンタ種別についての各メンテナンス作業内容の標準的な作業時間やメンテナンス優先度(すなわちデフォルト値)が条件の入力欄206にセットされるようにしてもよい。この場合、管理者が当該プリンタの個別事情を考慮してそのデフォルト値を適宜変更するようにする。
図4では、説明を簡潔にするために入力欄204には「大型カット紙プリンタ」、「大型連帳プリンタ」、「小型カット紙プリンタ」といったプリンタの種別を入力するものとしたが、種別の代わりに、より詳細な機種を入力欄204に入力するようにしてもよい。
また、条件設定部116は、複数用意した期限判断条件114の中から、本システムにおいて実際に利用するものを選択する選択画面を提供してもよい。使用する条件の選択は、プリンタ120ごと、又はプリンタ120の機種ごとに受付可能としてもよい。
次に、図5及び図6を参照して、メンテナンス計画処理部106による、予兆に対応するメンテナンス作業の予定設定手順の一例を説明する。
図5に示す手順は、予兆検知システム140がいずれかのプリンタ120における不具合事象の予兆の発生を検知し、予兆情報取得部102が予兆検知システム140からその予兆の情報を取得すると開始される。メンテナンス計画処理部106は、予兆情報取得部102からその予兆情報を取得すると、その予兆情報に含まれる、予兆が検知されたプリンタ120の識別情報をスケジュール情報取得部104に渡し、そのプリンタ120のジョブスケジュール情報を取得させる(S10)。また、メンテナンス計画処理部106は、予兆情報に含まれる予兆内容の識別情報から、その予兆に対応するメンテナンス作業内容を特定し、メンテナンス実施条件テーブル112から、そのプリンタ120とその作業内容との組み合わせに対応するメンテナンス「作業時間」の値を取得する(S12)。なお、S10とS12の処理順序は逆であってもよく、また同時並列的に実行してもよい。次にメンテナンス計画処理部106は、予兆情報に含まれる、予兆に対応する不具合事象の発生タイミングの予測値と、S10及びS12で取得したジョブスケジュール及び作業時間の情報とを用いて、そのメンテナンス作業の実施タイミングを判定する(S14)。S14の判定処理は、後で図6を参照して説明する。
S14でメンテナンス実施タイミングを求めると、メンテナンス計画処理部106は、そのメンテナンス作業の内容と、求めた実施タイミングとを含むメンテナンス予定情報をユーザに通知し、その実施タイミングでそのメンテナンス作業を実施してよいかを問い合わせる(S16)。問い合わせ先は、例えば、メンテナンス管理装置100の管理者である。また、メンテナンス管理装置100を管理する管理主体がプリンタ120群を利用するユーザ組織と異なる場合(例えば、メンテナンス管理装置100はプリンタ120の保守管理会社が管理し、プリンタ120群はその保守管理会社が保守管理契約を結んだ顧客企業に設置される場合)、プリンタ120群を利用するユーザ組織側の代表ユーザに対してS16の問合せを行ってもよい。
次に、S16の問合せに対するユーザの回答を判定する(S18)。ユーザからの回答が、提示したメンテナンス作業の実施タイミングを拒否するものである場合(S18の判定結果がNo)、メンテナンス計画処理部106は、S14に戻り、別のメンテナンス実施タイミングを求め、求めたこの実施タイミングでよいかS16で再度ユーザに問い合わせる。提示した実施タイミングを承諾するまで、S14〜S18の処理を繰り返す。
提示したメンテナンス実施タイミングをユーザが承諾した場合、メンテナンス計画処理部106は、スケジュール更新部108にそのメンテナンス実施タイミングに応じてジョブスケジュールを更新するよう指示する。この指示に応じ、スケジュール更新部108は、当該メンテナンス作業の予定を、そのメンテナンス実施タイミングに実施されるジョブとしてジョブスケジュール管理システム130に登録する(S20)。例えば、プリンタ名が「PRT01」であるプリンタ120から検知された予兆に応じて、図5の処理により、図2のジョブスケジュールの2月1日の13時から、作業時間が2時間である感光体ドラム交換作業を行うことが決定された場合、プリンタ「PRT01」のジョブスケジュールの2月1日の13時から15時までの時間帯に感光体ドラム交換作業のメンテナンスジョブを登録する。
このようにメンテナンス作業の予定をジョブスケジュール管理システム130に登録することで、印刷ジョブの予定とメンテナンス作業の予定をと一元管理することが可能になる。例えば、ユーザは、ジョブスケジュール管理システム130にアクセスすることで、各プリンタ120にて実施予定である印刷ジョブやメンテナンスジョブを一覧することができる。
次に、図6を参照して、図5のS14(メンテナンス実施タイミングの判定)の処理内容の一例を説明する。図6の手順では、メンテナンス計画処理部106は、まず予兆検知システム140から取得した予兆情報から、不具合事象の発生タイミングの予測値を得る(S30)。この予測値は、その不具合事象に対処するメンテナンス作業実施の基準の期限として用いる。すなわち、基本的には、その予測タイミングまでにメンテナンス作業を実施するものとする。次に、メンテナンス計画処理部106は、前倒し可能期間の情報を取得する(S32)。
ここで前倒し可能期間とは、メンテナンス作業の実施をメンテナンス実施の基準期限(すなわち、不具合発生の予測タイミング)から前倒し可能な期間の長さである。不具合の予兆が検知されている以上なるべく早いメンテナンスが望まれるが、その一方でユーザは一般に交換部品や消耗品等をなるべく長く使いたいと望んでいるので、不具合事象の発生予測タイミングから見てあまりに早くメンテナンスを実施したのではユーザの希望に沿わない場合もある。これらの兼ね合いから、不具合の発生予測タイミングから最大どれだけ前倒ししてメンテナンスを実施してよいかを、前倒し可能期間としてあらかじめ規定しておく。前倒し可能期間は、メンテナンス作業の内容(例えばメンテナンス対象の部品・消耗品等の種類や、実施する作業の種類等)や、メンテナンス対象のプリンタ120の種別や機種に応じて異なってくる。図7に、メンテナンス作業ごとの前倒し可能期間の設定例を示す。図7は、メンテナンス実施条件テーブル112に前倒し可能期間を登録した例である。この例では、メンテナンス実施条件は、プリンタの種別毎に規定されており、メンテナンス作業内容も図4の例よりも具体的に規定されている。図7の例では、例えば大型連帳プリンタにおけるドラム交換は、標準的な作業時間は4時間であり、前倒し可能期間は60日である。この例では、前倒し可能期間をメンテナンス実施条件テーブル112の一項目に含めたが、これに限られるものではない。
S32の後、メンテナンス計画処理部106は、S10で取得したジョブスケジュール情報から、メンテナンス実施の基準期限の直前の空き時間枠を取得する(S34)。ここで、「空き時間枠」とは、いずれのジョブの予定時間にも含まれない、連続した空き時間のことである。例えばジョブスケジュールが図2に例示するものであり、基準期限(不具合発生の予測タイミング)が2月1日の17時である場合、S34では同日の15時から16時までの時間枠が取得される。なお、メンテナンス実施の基準期限が空き時間枠内に含まれる場合、S34では、その空き時間枠のうち基準期限以前の部分を、「基準期限の直前の空き時間枠」として取得する。
次に、取得したその空き時間枠の長さが、S12で取得したメンテナンス作業時間以上であるかを判定する(S36)。この判定の結果がYes(すなわち、空き時間枠の長さが作業時間以上である)の場合、その空き時間枠内に、メンテナンス作業の実施タイミング(時間枠)を設定する(S38)。例えば、その空き時間枠の開始時刻をメンテナンス作業の開始時刻とし、その開始時刻から作業時間分の長さの時間枠を、当該メンテナンス作業の実施時間枠に設定する。
S36の判定結果がNoの場合、メンテナンス計画処理部106は、S36で判定した空き時間枠の1つ前の空き時間枠をジョブスケジュール情報から取得する(S40)。次に、S40で取得した空き時間枠が、メンテナンス実施の基準期限からみて前倒し可能期間以内であるかどうかを判定する(S42)。この判定では、空き時間枠の基準点(例えば空き時間枠の終了時点)が、メンテナンス実施の基準期限から前倒し可能期間だけ遡った時点からその基準期限までの期間内に入っているか否かを判定する。入っていればS42の判定結果はYes、入っていなければNoとなる。S42の判定結果がYesの場合、S36の判定に進み、S36で判定結果がNoであれば、再度S40に進む。
このS36〜S42の処理ループを繰り返す中で、基準期限から前倒し可能期間遡るまでにメンテナンス作業時間以上の長さの空き時間枠が見つかれば(S36)、その空き時間枠内にメンテナンス実施タイミングが設定される(S38)。一方、その処理ループの繰り返しの中で、S42の判定結果がNoになると、前倒し可能期間内には十分な長さの空き時間枠がない旨を知らせるエラー通知をメンテナンス管理装置100の管理者に送る(S44)。この通知を受けた管理者は、ジョブスケジュール内のジョブの投入者に対してジョブの予定時間の変更を依頼するなどして十分な長さの空き時間枠を確保する等の処置を行う。
図5の手順では、判定したメンテナンス実施タイミングを受け入れ可能かS16でユーザに問い合わせたが、そのような問合せを行わずに、S14で判定したタイミングを自動的に採用するようにしてもよい。この場合、S16及びS18は不要である。また、問合せを行わない場合、決定したメンテナンス実施タイミングの情報をユーザに電子メール等で通知してもよい。
<第1の変形例>
図5及び図6に例示した処理では、メンテナンス計画処理部106がジョブスケジュールに登録された各印刷ジョブの予定時間を自動的に移動させることができないことを前提としていた。これに対し、メンテナンス計画処理部106に対して、あらかじめ定めた制約の下でジョブの予定を移動させることを認めることも考えられる。ジョブ予定の移動により空き時間枠を拡げることで、前倒し可能期間内にメンテナンス作業時間の空き時間枠が確保できる可能性を高めることができる。そこで、以下では、メンテナンス計画処理部106がジョブを移動させる場合の変形例を説明する。
ジョブの予定時間の移動についてメンテナンス計画処理部106に課す制約の例としては、移動不可と設定されたジョブについては予定時間の移動を認めないという制約がある。例えば期限厳守の印刷ジョブについては、ユーザがその印刷ジョブに対して予定時間の移動を不可とする設定を行うことで、メンテナンス計画処理部106がそのジョブの予定時間を移動できないようにする。なお、予定時間の移動可否そのものを指定する代わりに、印刷ジョブの優先度を指定可能とし、指定された印刷ジョブの優先度(以下「ジョブ優先度」と呼ぶ)に応じてその印刷ジョブの予定時間の移動の可否を判定するようにしてもよい。例えば、印刷ジョブの優先度があらかじめ定めた閾値以上であれば、その印刷ジョブの予定時間は移動不可とし、そうでなければ移動可能と判定する。
また、別の制約として、印刷ジョブの予定時間の移動幅に上限を設けてもよい。移動幅の上限は、移動可能なすべてのジョブについて一律であってもよいし、例えばジョブ優先度が高いほどその上限を低く(すなわち認める移動幅を小さく)してもよい。各ジョブの移動の可不可、又は各ジョブの優先度は、例えばジョブスケジュール管理システム130に登録されるようにすればよい。
なお、ジョブの優先度は、例えばそのジョブを投入したユーザが指定し、そのジョブに対応づけてジョブスケジュール管理システム130に記憶される。
また、ジョブに対して最終納期の属性を設定可能とし、最終納期が設定されているジョブについては、終了時刻がその最終納期より後となる移動は認めないという制約を用いてもよい。
この変形例のシステム構成は、図1と同様でよい。この変形例におけるメンテナンス計画処理部106の処理手順の一例を、図8〜図10に示す。図8〜図10に示した各ステップのうち図5及び図6に示した手順におけるステップと同様の処理を行うステップについては図5及び図6と同じ符号を付して重複説明を省略する。また、図5及び図6の手順のステップと類似の処理を行うステップについては、図5及び図6と同じ符号に添え字「a」を付加した符号を付した。
まず図8を参照して、メンテナンス計画処理部106の処理の全体的な手順を説明する。この例では、検知された予兆に対応するメンテナンス実施タイミングの判定(S14a)において、必要ならば印刷ジョブの予定時刻を移動させることで、その予兆に対応するメンテナンス作業の作業時間に見合った空き時間枠を作る。そして、メンテナンス実施タイミングを決めるためにいずれかの印刷ジョブの予定時間を移動させた場合は、ユーザに対してそのメンテナンス実施タイミングと、どの印刷ジョブの予定時間をどのように変更するかを示す情報とを提示し、それらが受け入れ可能かを問い合わせる(S16a)。印刷ジョブを移動させる場合、S16aの問合せを、その印刷ジョブを投入したユーザに対して行うようにしてもよい。この問合せに対するユーザの諾否を判定し(S18)、ユーザが承諾した場合には、スケジュール更新部108に対し、その印刷ジョブの予定時間の移動と、その移動によって拡張された空き時間枠内へのメンテナンスジョブの登録とを指示する。この指示に応じ、スケジュール更新部108は、ジョブスケジュール管理システム130におけるその印刷ジョブの予定時間を移動させる(S19)と共に、当該メンテナンス作業の予定を、そのメンテナンス実施タイミングのメンテナンスジョブとしてジョブスケジュール管理システム130に登録する(S20)。
S14a(メンテナンス実施タイミングの判定)の処理手順は、図9に示す通りである。図9の手順では、図6の手順と同様、予兆が検知されたプリンタ120のジョブスケジュール内の印刷ジョブの予定時間を一切移動させず、メンテナンス基準期限から時間を遡る方向に、メンテナンス作業時間以上の長さの空き時間枠を探索する。図9の手順は、S42の判定結果がNoの場合に図10のS50に進む(図のマーク「A」)。また、図10の手順のS54及びS60から、図9の手順のS38の前段及び後段にそれぞれ戻る処理経路(図のマーク「B」及び「C」)がある。これら以外の点では、図9の手順は図6の手順と同じなので、これ以上の説明は省略する。
図9の手順において、メンテナンス基準期限から前倒し可能期間の範囲で十分な長さの空き時間枠が見つからなかった場合、S42の判定結果がNoとなる。この場合、この変形例では、図10のS50に進む。図10の手順では、探索開始点のメンテナンス基準期限まで戻り、今度は移動可能な印刷ジョブの予定時間を移動させることで十分な長さの空き時間ができるかどうかを調べる。
図10の手順では、ジョブスケジュールからメンテナンス基準期限の直前の空き時間枠を取得する(S50)。次に、その空き時間枠の前後のジョブの予定時間を制約の範囲内で移動させることで、空き時間枠の長さをメンテナンス作業時間以上にすることができるかどうかを判定する(S52)。
S52で移動を試みる「前後のジョブ」は、その空き時間枠の直前及び直後の両方であってもよいし、あらかじめ定めたいずれか一方(例えば、空き時間枠の直後のジョブのみ)であってもよい。また、移動の試行対象とするジョブの数は、空き時間枠の前及び後についてそれぞれ1つに限るわけではなく、あらかじめ定めた2以上の数であってもよい。また、空き時間枠の前については1個、後については2個というように、前と後で移動試行対象のジョブの数(試行対象範囲)を個別に設定できるようにしてもよい。
例えば空き時間枠の後についての試行対象のジョブの数を2個と設定した場合、メンテナンス計画処理部106は、注目している空き時間枠の直後の2つのジョブについて、予定時間の移動ができるか試みる。
S52において、メンテナンス計画処理部106は、注目している空き時間枠(S34又はS40で取得したもの)の前後の試行対象範囲内の各ジョブについて、そのジョブが予定時間を移動可能か否かを、ジョブスケジュール管理システム130に登録されているそのジョブの設定情報に基づき判定する。また、移動可能なジョブについては、移動可能な時間幅の上限の情報を取得する。その上限が全ジョブについて一律であればその一律の上限値を取得し、ジョブ優先度に応じてジョブ毎に決まる場合は、ジョブスケジュール管理システム130からそれら各ジョブのジョブ優先度を取得し、その優先度に対応する上限値を求める。そして、前後のジョブの移動でメンテナンス作業時間の長さまで空き時間枠を拡げられるか否かを、例えば以下のような流れで判定する。
すなわち、まず、空き時間枠の直前及び直後のジョブのうち移動可能なジョブを最大限移動させたと仮定した場合のその空き時間枠の長さ(ジョブの移動により長くなっている)を、メンテナンス作業時間と比較する。この比較では、例えば空き時間枠の直前のジョブは、移動幅の上限まで、又はその1つ前のジョブに突き当たるまでの、どちらか移動距離の短い方まで移動させると仮定する。直前のジョブが移動不可と設定されている場合は、移動させない。空き時間枠の直後のジョブについても同様である。このような制約の下でそれらジョブを最大限移動させたと仮定し、その場合の空き時間枠の幅がメンテナンス作業時間以上であるかどうかを判定する。この判定の結果、直前、直後の移動可能なジョブを最大限移動させても空き時間枠の長さがメンテナンス作業時間以上にならない場合は、更にその前後のジョブ(試行対象範囲内かつ移動可能なものに限る)も移動させることで、空き時間枠の直前、直後のジョブの可動範囲を拡げ、空き時間枠の更なる拡張を試みる。そして、これにより広がった空き時間枠がメンテナンス作業時間以上であるかを再度判定する。この再判定でも空き時間枠が作業時間以上とならなければ、更に外側のジョブについても移動を試みる。試行対象範囲内の移動可能なすべてのジョブを最大限移動させても、空き時間枠がメンテナンス作業時間に達しなければ、S52の判定結果はNoとなる。この場合、メンテナンス計画処理部106は、ジョブスケジュールにおける1つ前の空き時間枠を取得し(S54)、図6の手順のS42と同様、その空き時間枠がメンテナンス基準期限から前倒し可能期間以内であるかどうかを判定する(S56)。この判定結果がYesの場合、その空き時間枠を対象として、S52の判定処理を行う。
このS52〜S56の処理ループの繰り返しの中で、S56の判定結果がNoになると、メンテナンス計画処理部106は、前倒し可能期間内には十分な長さの空き時間枠が確保できない旨を知らせるエラー通知をメンテナンス管理装置100の管理者に送り(S58)、一連の処理を終了する。この通知を受けた管理者は、ジョブスケジュール内のジョブの投入者に対してジョブの予定時間の変更を依頼するなどして十分な長さの空き時間枠を確保する等の処置を行う。
一方、S52〜S56の処理ループを繰り返す中で、基準期限から前倒し可能期間遡るまでに、ジョブの移動によりメンテナンス作業時間以上の長さに拡張可能な空き時間枠が見つかれば(S52の判定結果がYes)、メンテナンス計画処理部106は、空き時間枠の長さをメンテナンス作業時間に等しくするのに必要な最小限の幅だけ、空き時間枠の前後の1以上のジョブを移動させる(S60)。これにより、メンテナンス作業に必要な長さの空き時間枠が確保され、メンテナンス計画処理部106は、図9の手順のS38に進み、その空き時間枠にメンテナンス作業の実施タイミング(メンテナンスジョブ)を設定する。
以上に説明した図9、図10の手順では、既存のジョブの予定時間を変更しないと十分な空き時間を確保できない場合に限ってジョブの予定時間変更を行うので、あらかじめ定められたジョブの実行予定への影響が最小限にとどめられる。
この変形例によりメンテナンスの実施タイミングがどのように決まるのかを、図11〜図13に示す具体例を参照しながら説明する。予兆検知システム140が検知した予兆に係る不具合事象の発生予測タイミング(メンテナンス基準期限)が「2月1日の15時」であるとする。この場合、メンテナンス計画処理部106は、S10(図8参照)にて、予兆が検知されたプリンタ120の、その発生予測タイミングの日付(2月1日)以前のジョブスケジュールを取得する。その2月1日のジョブスケジュールが図11に示すものであったとする。図11のジョブスケジュールに含まれるジョブの中には、優先ジョブと非優先ジョブという、ジョブ優先度が異なる2レベルのジョブが存在する。ここでは、優先ジョブは予定時間の移動が不可であり、非優先ジョブは予定時間を最大1時間移動可能であると定められているとする。また、検知された予兆に対応するメンテナンスの作業時間は2時間であるとする。また、この予兆に対応する前倒し可能期間の長さは12時間であるとする。
この具体例では、まず2月1日の15時がメンテナンス実施の基準期限となり、その基準期限から時間を遡っていき、メンテナンス作業時間以上の長さの空き時間枠を探す。前倒し可能期間である12時間の間には、連続した2時間の空き時間枠は存在しないので、ジョブの予定時間の移動によりそのような空き時間枠が形成できないか、試みる。この場合、まず基準期限「15時」の直前の空き時間枠「13〜14時」の前後のジョブを調べると、その空き時間枠の前のジョブBは優先ジョブなので移動は不可であるが、後のジョブCは非優先ジョブなので移動可能である。ジョブCの後は1時間の空き時間枠なので、ジョブCを1時間後ろに移動させることで、図12に示すように、ジョブBとジョブCの間の空き時間枠が「13〜15時」の2時間に広がる。この空き時間枠に2時間のメンテナンス作業の予定をメンテナンスジョブとして組み込む(図13参照)。
なお、図11の例において、非優先ジョブの移動が仮に最大30分に制限されていたとすると、基準期限から前倒し可能期間内では、非優先ジョブを最大限移動させても2時間の空き時間枠はできない。したがって、この場合は、メンテナンス管理装置100による自動的なメンテナンスジョブの設定は不可能となり、S58で管理者にエラー通知を送ることとなる。
図8の手順では、判定したメンテナンス実施タイミングや印刷ジョブの予定時間の移動を受け入れ可能かS16aでユーザに問い合わせたが、そのような問合せを行わずに、S14aで判定したタイミングを自動的に採用するようにしてもよい。このような問合せを行わない場合でも、印刷ジョブの予定時間を移動した場合には、少なくともその印刷ジョブを投入したユーザに対しては、その印刷ジョブの予定時間の変更内容を電子メール等で通知する。
以上の例では、ジョブ優先度が「優先」(予定時間の移動不可)と「非優先」(移動可)の2段階であったが、ジョブ優先度の段階を3段階以上とし、優先度毎に移動可能な時間幅の上限を設定できるようにしてもよい。例えば、ジョブ優先度を3段階とし、最高優先度のジョブは移動不可(移動幅の上限が0)、第2位の優先度のジョブは最大30分移動可能、最下位の優先度のジョブは最大1時間移動可能、等と設定するなどである。
なお、図9のS38におけるジョブスケジュールに登録するメンテナンスジョブには、移動不可の属性、又は、移動不可に該当するあらかじめ定めた高いジョブ優先度、を設定するようにしてもよい。このようにすることで、後で検知された予兆に対処するメンテナンスのための空き時間枠を確保する際に、既存のメンテナンスジョブの時間が変更されることを防ぐことができる。
<第2の変形例>
次に、メンテナンス作業内容についての優先度を考慮する変形例について説明する。メンテナンス作業内容の優先度のことを、ジョブ優先度と区別するために、「メンテナンス優先度」と呼ぶ。メンテナンス優先度のデフォルト値は、例えば大型カット紙プリンタの感光体ドラム交換の場合「5」、大型連帳プリンタの印刷画質調整の場合「4」などというように、プリンタ種別(あるいは機種)とメンテナンス作業内容との組み合わせごとに規定されている。個々のプリンタ120についての各メンテナンス作業内容のメンテナンス優先度は、そのプリンタ120の種別(又は機種)と当該メンテナンス作業内容との組み合わせに対するデフォルト値を適用してもよいし、管理者等のユーザがそのデフォルト値を参考に、当該プリンタ120固有の事情を考慮して決定してもよい。
上記実施形態及び第1の変形例では、メンテナンス作業の実施予定がメンテナンス実施の基準期限の前になるようにした。これに対してこの第2の変形例では、メンテナンス作業の実施が基準期限より遅れてもよいこととし、基準期限よりどの程度遅れてよいかを示す遅延幅をメンテナンス優先度に応じて定める。基本的な考え方は、メンテナンス優先度が高いメンテナンス作業ほど遅延幅を短くする、というものである。
この方針に従ったメンテナンス優先度ごとの、メンテナンス実施の遅延幅の上限値の設定例を図14に示す。この例では、メンテナンス優先度が1〜5の5段階あり、5段階で最高優先度の「5」については、遅延幅の上限が「0」、すなわち基準期限からの遅延が不可と設定されている。また、5段階の中央の優先度「3」に対応する遅延幅の上限が「基準遅延期間」に設定されている。基準遅延期間の長さは、例えば大型連帳プリンタの感光体ドラム交換なら10日、小型カット紙プリンタの感光体ドラム交換なら20日、大型連帳プリンタのトナー補充なら3時間等のように、プリンタの種別(又は機種)とメンテナンス作業内容の組合せごとに定めておけばよい。そして、図14の例では、最高優先度の次の優先度「4」の遅延幅上限は基準遅延期間の半分に定められ、優先度「2」、「1」の遅延幅上限はそれぞれ基準遅延期間の2倍、3倍に定められている。
この変形例のシステム構成は、図1と同様でよい。ただし、メンテナンス実施条件テーブル112には、図15に例示するように、プリンタとメンテナンス作業内容との組み合わせごとに、作業時間の他に、メンテナンス優先度が設定されている。メンテナンス優先度の設定は、既述のとおり、図4に例示したUI画面を用いて行われる。
この変形例におけるメンテナンス計画処理部106の処理の大枠は、図8及び図9に示した第1の変形例の手順と同様でよい。第1の変形例と異なるのは、図9のS42の判定結果がNoとなった場合の処理手順である。この場合の、第2の変形例の処理手順の例を図16及び図17に示す。
S42の判定結果がNoとなった場合、この変形例では、図16に示すように、メンテナンス計画処理部106は、検知された予兆に対応するメンテナンス作業内容のメンテナンス優先度をメンテナンス実施条件テーブル112から取得する(S70)。次に、予兆が検知されたプリンタ120のジョブスケジュールから、メンテナンス実施の基準期限の直後の空き時間枠を取得し(S72)、その空き時間枠が、基準期限から見て遅延幅の上限以内であるかどうかを判定する(S74)。この判定では、空き時間枠の基準点(例えば空き時間枠の開始時点)が、メンテナンス実施の基準期限から遅延幅の上限だけ後の時点以前であるか否かを判定する。S74の判定結果がYesの場合、その空き時間枠の長さが、S12で取得したメンテナンス作業時間以上であるか否かを判定する(S76)。この判定の結果がYesの場合、図9のS38に進み、その空き時間枠内に、メンテナンス作業の実施タイミング(時間枠)を設定する。S76の判定結果がNoの場合、その空き時間枠の次の空き時間枠をジョブスケジュールから取得し(S78)、S74に戻る。このS74〜S78の処理ループを繰り返す中で、基準期限後の遅延幅の上限分の期間内にメンテナンス作業時間以上の長さの空き時間枠が見つかれば、S38にてその空き時間枠内にメンテナンス実施タイミングが設定されることとなる。一方、その処理ループの繰り返しの中で、S74の判定結果がNoになると、図17の手順に進む。
図16の手順では、印刷ジョブの予定時間は動かさないという制限の下で、メンテナンス優先度に応じた遅延幅の上限まで遅らせた期限までにメンテナンス作業時間分の空き時間枠を探した。これに対し、図17の手順では、印刷ジョブの予定時間の移動を認めた上で、メンテナンス優先度に応じた遅延幅の上限まで遅らせた期限までにメンテナンス作業時間分の空き時間枠を確保できないかを調べる。すなわち、図17の手順では、メンテナンス実施の基準期限にS70で求めた遅延幅の上限を足した時点をメンテナンス実施の期限とし、この期限の直前の空き時間枠を取得する(S80)。この後、図10の手順と同様の処理(S52〜S60)を行うことで、移動可能なジョブを移動させることでメンテナンス作業時間分の空き時間枠を探す。
<第3の変形例>
以上に説明した実施形態及び各変形例の手順は、期限判断条件114として上述の(ア)のみが選択された場合の例である。仮に、期限判断条件114として(ア)に加えて(イ)(「メンテナンスの基準期限が高優先度のジョブの後の近傍範囲内であれば、メンテナンスをそのジョブの前に完了させる」)も選択されている場合には、その条件(イ)を満たすように処理手順を変更する必要がある。
すなわち、図18の(a)に示すように、検知された予兆に対応するメンテナンス実施の基準期限が、優先度の高いジョブ(例えば上記第2の変形例における優先ジョブ)の後の所定の近傍範囲内にある場合を考える。この場合、仮にそのジョブと基準期限の間に、メンテナンス作業時間以上の空き時間があったとしても、条件(イ)を適用する場合には、メンテナンス作業をそのジョブの開始前に終えなければならない(図18の(b)参照)。
このための1つの対処法は、メンテナンス実施の基準期限が、優先度が高いジョブの後の近傍範囲内に含まれる場合は、その基準期限を、その移動不可のジョブの開始時点に変更する。この方法を用いる場合には、例えば図9(第1の変形例)の処理手順を図19に示すように変更すればよい。図19の手順では、S34(メンテナンス実施の基準期限の直前の空き時間枠の取得)の前に、基準期限の前の近傍範囲内に、優先度が高いジョブがあるかどうかを判定する(S33)。基準期限の前の近傍範囲内にジョブがない場合、及びジョブがあったとしてもそのジョブの優先度が「高い」に該当しないものである場合は、S33の判定結果はNoとなり、この場合基準期限を変更せずにS34に進む。S33の判定結果がYesの場合、基準期限を、その移動不可のジョブの開始時点へと変更し(S35)、その後S34に進む。これにより、予兆に対応する不具合事象が優先度が高いジョブの近傍で発生しそうな場合に、そのジョブの前にメンテナンスが完了するようスケジューリングすることが可能となる。
なお、図19は図9の処理手順を変形したものであるが、図6の処理手順についても同様の変形が適用可能である。
また、期限判断条件114として、前述の条件(ウ)(業務時間内にメンテナンス作業が完了する)が選択されている場合には、メンテナンス計画処理部106は、図6,図9等の処理手順のS34,S40において空き時間枠を取得する際に、ジョブスケジュールのうちあらかじめ規定された業務時間内の空き時間枠のみを取得する(業務時間外の空き時間枠は無視する)ようにすればよい。
<第4の変形例>
検知された予兆に対応するためのメンテナンス作業の実施タイミングが決定され、そのメンテナンス作業がジョブスケジュール管理システム130に登録された後、同じメンテナンス作業を必要とする同種又は別種の予兆が検知される場合がある。この場合において、今回検知された予兆に対応するメンテナンス作業の基準期限(すなわち、その予兆に対応する不具合事象の発生予測タイミング)が、既に設定済みのそのメンテナンス作業の予定より前である場合には、その設定済みのメンテナンス作業の予定を取り消し、メンテナンス作業の予定の再設定を行う。この再設定では、今回検知された予兆に対応する基準期限を用いて、図6又は図9等の処理を実施する。なお、今回検知された予兆に対応するメンテナンス作業の基準期限が、既に設定済みのそのメンテナンス作業の予定時間以降の場合は、この再設定は不要である。
<その他>
以上に示した実施形態及び各変形例は、本発明を具現化したシステムの一例に過ぎない。本発明の技術的思想の範囲内で様々な変形や改良が可能である。
また、以上に例示したメンテナンス管理装置100、ジョブスケジュール管理システム130、予兆検知システム140は、例えば、汎用のコンピュータに当該装置の各機能モジュールの処理を表すプログラムを実行させることにより実現してもよい。ここで言うコンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)、フラッシュメモリ等の二次記憶を制御する二次記憶コントローラ、各種I/O(入出力)インタフェース、無線又は有線のネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVD、ブルーレイディスクなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、フラッシュメモリ等の二次記憶装置に保存され、コンピュータにインストールされる。二次記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。