(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-25
(45)【発行日】2025-03-05
(54)【発明の名称】画像処理装置及び画像処理システム
(51)【国際特許分類】
H04N 1/00 20060101AFI20250226BHJP
B41J 29/38 20060101ALI20250226BHJP
G03G 21/00 20060101ALI20250226BHJP
G06F 3/12 20060101ALI20250226BHJP
【FI】
H04N1/00 127A
B41J29/38 401
B41J29/38 501
G03G21/00 386
G03G21/00 388
G06F3/12 305
G06F3/12 331
G06F3/12 367
(21)【出願番号】P 2020165400
(22)【出願日】2020-09-30
【審査請求日】2023-09-12
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000992
【氏名又は名称】弁理士法人ネクスト
(72)【発明者】
【氏名】金子 智哉
【審査官】橘 高志
(56)【参考文献】
【文献】特開2017-016393(JP,A)
【文献】特開2011-207218(JP,A)
【文献】特開2019-067009(JP,A)
【文献】特開2010-237840(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 1/00
B41J 29/38
G03G 21/00
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
を実行
し、
前記記憶処理において、複数の前記指示データの所在情報を記憶させることができるとともに、前記複数の指示データの所在情報のそれぞれに異なったタイミング情報を対応付けて記憶させることができ、
前記検出処理により、前記異なったタイミング情報のいずれかにより示されるタイミングが検出されたことに応じて、前記アクセス処理において、前記検出されたタイミングのタイミング情報に対応付けられた指示データの所在情報により示される情報処理装置にアクセスする、
画像処理装置。
【請求項2】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
前記アクセス処理を開始してから前記実行処理を終了するまでの処理が適正に実行されたか否かを判断する第1判断処理と、
前記第1判断処理により前記処理が適正に実行されなかったと判断された場合、復帰処理を実行させる復帰実行処理と、
を実行
し、
前記復帰実行処理では、前記復帰処理として前記画像処理装置を再起動させる処理を実行し、
前記コントローラはさらに、
前記画像処理装置を再起動させる処理を実行したことに応じて、その処理が適正に実行されたか否かを判断する第2判断処理
を実行し、
前記第2判断処理では、それぞれが順番に実行される複数の前記指示データを前記情報処理装置から受信し、受信した前記順番に実行される複数の指示データのうちの最初の指示データを処理したことに応じて、前記処理が適正に実行されたと判断する、
画像処理装置。
【請求項3】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
前記アクセス処理を開始してから前記実行処理を終了するまでの処理が適正に実行されたか否かを判断する第1判断処理と、
前記第1判断処理により前記処理が適正に実行されなかったと判断された場合、復帰処理を実行させる復帰実行処理と、
を実行
し、
前記復帰実行処理では、前記復帰処理として前記画像処理装置を再起動させる処理を実行し、
前記コントローラはさらに、
前記第1判断処理により前記処理が適正に実行されなかったと判断された場合、適正に実行されなかった原因を特定する情報を取得する取得処理と、
前記画像処理装置を再起動させる処理を実行するときに、前記取得処理により取得された情報に基づいて前記画像処理装置を復帰させる可能性があるか否かを判断する第4判断処理と、
を実行させ、
前記第4判断処理により前記画像処理装置を復帰させる可能性があると判断された場合、前記画像処理装置を再起動させる処理を実行する、
画像処理装置。
【請求項4】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
前記アクセス処理を開始してから前記実行処理を終了するまでの処理が適正に実行されたか否かを判断する第1判断処理と、
前記第1判断処理により前記処理が適正に実行されなかったと判断された場合、復帰処理を実行させる復帰実行処理と、
を実行
し、
前記復帰実行処理では、前記復帰処理として前記画像処理装置を再起動させる処理を実行し、
前記画像処理装置を再起動させる処理を実行したときには、前記検出処理により次のタイミングが検出されるまで待たずに直ちに、前記アクセス処理を実行する、
画像処理装置。
【請求項5】
前記コントローラはさらに、
前記画像処理装置を再起動させる処理を実行したことに応じて、その処理が適正に実行されたか否かを判断する第3判断処理
を実行し、
前記第3判断処理では、それぞれが順番に実行される複数の前記指示データであって、所定の指示データには適正な実行を示す情報が含まれる指示データを前記情報処理装置から受信し、受信した前記順番に実行される複数の指示データのうちの前記適正な完了を示す情報が含まれる指示データを処理したことに応じて、前記処理が適正に実行されたと判断する、
請求項
2~4のいずれか1項に記載の画像処理装置。
【請求項6】
前記コントローラはさらに、
前記処理が適正に実行されなかった
場合、前記画像処理装置を復帰させる
条件を設定する設定処理
を実行し、
前記第4判断処理では、前記設定処理により設定された前記画像処理装置を復帰させる
前記条件も考慮して前記画像処理装置を復帰させる可能性があるか否かを判断する、
請求項
3に記載の画像処理装置。
【請求項7】
前記コントローラはさらに、
前記第4判断処理により前記画像処理装置を復帰させる可能性がないと判断された場合、前記取得処理により取得された情報に基づいた報知を行う第1報知処理
を実行する、
請求項
3又は
6に記載の画像処理装置。
【請求項8】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
前記記憶処理により前記指示データの所在情報及び前記タイミング情報を前記メモリに記憶させた場合、記憶された前記タイミング情報により示されるタイミングで前記情報処理装置にアクセスしようとすると、前記アクセス処理を開始してから前記実行処理を終了するまでの処理が適正に実行されない可能性があるか否かを判断する第5判断処理と、
前記第5判断処理により前記処理が適正に実行されない可能性があると判断された場合、前記処理が適正に実行されない可能性があることを報知する第2報知処理と、
を実行する、
画像処理装置。
【請求項9】
通信インタフェースと、
メモリと、
コントローラと、
を備えた画像処理装置であって、
前記コントローラは、
指示データの所在情報と、タイミング情報とを前記メモリに記憶させる記憶処理を実行でき、前記指示データは、前記コントローラに実行させる処理を指示するデータであって、前記通信インタフェースを介して通信可能な情報処理装置内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
前記通信インタフェースに対する設定変更がなされたことを検知する検知処理と、
前記メモリに前記指示データの所在情報と前記タイミング情報とが記憶されている状態で、前記検知処理により前記設定変更がなされたことが検知された場合、前記設定変更がなされたことを報知する第3報知処理と、
を実行する、
画像処理装置。
【請求項10】
前記指示データは、画像データを取得して印刷することを指示するデータであり、
前記コントローラは、
前記実行処理において、前記指示データに基づいた印刷を実行する、
請求項1
~9のいずれか1項に記載の画像処理装置。
【請求項11】
前記指示データは、前記画像処理装置
のステータスを前記情報処理装置へ送信することを指示するデータであり、
前記コントローラは、
前記実行処理において、自身の前
記ステータスを、前記通信インタフェースを介して前記情報処理装置へ送信する、
請求項1
~9のいずれか1項に記載の画像処理装置。
【請求項12】
画像処理装置と、前記画像処理装置と接続された情報処理装置とを含む画像処理システムであって、
前記画像処理装置は、
第1通信インタフェースと、第1メモリと、第1コントローラと、
を備え、
前記第1コントローラは、
指示データの所在情報と、タイミング情報とを前記
第1メモリに記憶させる記憶処理を実行でき、前記指示データは、前記
第1コントローラに実行させる処理を指示するデータであって、前記第1通信インタフェースを介して通信可能な前記情報処理装置の第2メモリ内に記憶されており、前記タイミング情報は、前記所在情報により示される前記指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、
前記第1コントローラは、
前記タイミング情報により示されるタイミングを検出する検出処理と、
前記検出処理により前記タイミングが検出されたことに応じて、前記第1通信インタフェースを介して前記所在情報により示される情報処理装置にアクセスするアクセス処理と、
前記アクセス処理に応じて前記情報処理装置が送信した、前記所在情報により示される前記指示データを、前記第1通信インタフェースを介して受信する受信処理と、
前記受信処理により受信された前記指示データに応じた処理を実行する実行処理と、
を実行し、
前記第1コントローラは、
前記記憶処理において、複数の前記指示データの所在情報を記憶させることができるとともに、前記複数の指示データの所在情報のそれぞれに異なったタイミング情報を対応付けて記憶させることができ、
前記検出処理により、前記異なったタイミング情報のいずれかにより示されるタイミングが検出されたことに応じて、前記アクセス処理において、前記検出されたタイミングのタイミング情報に対応付けられた指示データの所在情報により示される情報処理装置にアクセスし、
前記情報処理装置は、
第2通信インタフェースと、第2コントローラと、
を備え、
前記第2コントローラは、
前記第2通信インタフェースを介して前記画像処理装置から受信した前記所在情報により示される前記指示データを前記第2通信インタフェースから前記画像処理装置へ送信する送信処理
を実行する、
画像処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、情報処理装置にアクセスし、情報処理装置内に記憶された指示データに応じた処理を画像処理装置に実行させる技術に関するものである。
【背景技術】
【0002】
特許文献1には、記録媒体の装着を検出したことに応じてその記録媒体からプログラムを読み出し、読み出したプログラムを実行することにより機能を拡張するようにした画像形成装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載の画像形成装置では、機能を拡張させるには、その機能を拡張させるプログラムを記録媒体に記憶させた上で、記録媒体を画像形成装置に装着しなければならず、面倒であった。
【0005】
本願は、より簡単に画像処理装置の機能を拡張することが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本願の画像処理装置は、通信インタフェースと、メモリと、コントローラと、を備えた画像処理装置であって、コントローラは、指示データの所在情報と、タイミング情報とをメモリに記憶させる記憶処理を実行でき、指示データは、コントローラに実行させる処理を指示するデータであって、通信インタフェースを介して通信可能な情報処理装置内に記憶されており、タイミング情報は、所在情報により示される指示データを記憶している情報処理装置に対してアクセスするタイミングを示す情報であり、コントローラは、タイミング情報により示されるタイミングを検出する検出処理と、検出処理によりタイミングが検出されたことに応じて、通信インタフェースを介して所在情報により示される情報処理装置にアクセスするアクセス処理と、アクセス処理に応じて情報処理装置が送信した、所在情報により示される指示データを、通信インタフェースを介して受信する受信処理と、受信処理により受信された指示データに応じた処理を実行する実行処理と、を実行する。
【発明の効果】
【0007】
本願によれば、より簡単に画像処理装置の機能を拡張することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】本願の一実施形態に係る画像処理システムのブロック図である。
【
図2】指示データの一例((a))及び注意表示の一例((b),(c))を示す図である。
【
図3】外部アプリケーション登録処理の手順を示すフローチャートである。
【
図4】タイマ監視処理の手順を示すフローチャートである。
【
図5】ネットワーク設定変更時処理の手順を示すフローチャートである。
【
図6】外部アプリケーション実行処理の手順を示すフローチャートである。
【
図7】
図6の外部アプリケーション実行処理の続きの手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本願の実施形態を図面に基づいて詳細に説明する。
図1は、本願の一実施形態に係るMFP100(「画像処理装置」の一例)を含む画像処理システム1の制御構成を示している。画像処理システム1は、MFP100、PC200、ルータ220及びサーバ250(「情報処理装置」の一例)を備えている。なお、MFPは、multifunction peripheral の略語である。
【0010】
MFP100とPC200とは、ルータ220及び通信ネットワーク240を介して相互に通信可能となっている。通信ネットワーク240の具体例は、特に限定されないが、例えば、有線LAN、無線LAN、あるいはこれらの組み合わせであってもよい。また、ルータ220とサーバ250とは、インターネット300を介して相互に通信可能となっている。したがって、MFP100、PC200及びサーバ250は、相互に通信可能となっている。
【0011】
MFP100は、プリンタ130と、スキャナ140と、FAX部150と、ディスプレイ160と、入力IF170と、通信IF180と、CPU110と、メモリ120と、通信バス190とを主に備えている。なお、IFは、interfaceの略語である。MFP100を構成する各構成要素は、通信バス190を通じて相互に接続されている。
【0012】
プリンタ130は、画像データで示される画像をシートに記録するプリント動作を実行する。プリンタ130の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ140は、原稿に記録されている画像を読み取って画像データを生成するスキャン動作を実行する。FAX部150は、画像データを外部装置にFAX送信するFAX送信動作と、画像データを外部装置からFAX受信するFAX受信動作とを実行する。なお、MFP100は、プリンタ130、スキャナ140、FAX部150の少なくとも1つを備えていればよい。
【0013】
入力IF170は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力IF170はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU110へ出力する。さらに、入力IF170は、ディスプレイ160の表示面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ160の表示面に表示されたオブジェクトを指定する操作、文字列あるいは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ160に表示された文字列、アイコン、ボタン、リンク、プルダウンメニュー等である。
【0014】
タッチセンサとして実現される入力IF170は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」あるいは「フローティングタッチ」を、上記「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ160に表示されたアイコンの位置のタップするユーザ操作は、そのアイコンを指定する指定操作の一例である。
【0015】
通信IF180は、通信ネットワーク240を通じて外部装置と通信を行うためのものである。すなわち、MFP100は、通信IF180を通じてPC200及びサーバ250に各種情報を送信し、通信IF180を通じてPC200及びサーバ250から各種データ又は各種情報を受信する。
【0016】
CPU110は、MFP100の全体動作を制御するものである。CPU110は、入力IF170から出力される各種信号、及び通信IF180を通じて外部装置から取得した各種情報等に基づいて、
図3~
図7を用いて後述する各種プログラムをメモリ120から取得して実行する。
【0017】
メモリ120には、OS121と、制御プログラム122とが記憶される。なお、制御プログラム122は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ120には、制御プログラム122の実行に必要なデータあるいは情報が記憶される。メモリ120は、例えば、RAM、ROM、NVM、EEPROM、HDD、MFP100に着脱されるUSBメモリ等の可搬記憶媒体、CPU110が備えるバッファ等、あるいはそれらの組み合わせによって構成される。なお、NVMは、non-volatile memory の略語である。
【0018】
メモリ120は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non-transitoryな媒体である。non-transitoryな媒体には、上記の例の他に、CD-ROM、DVD-ROM等の記録媒体も含まれる。また、non-transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバ250などからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non-transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
【0019】
制御プログラム122には、MFP100に外部アプリケーションを実現させるプログラムが含まれている。外部アプリケーションは、定義データ(「指示データ」の一例)に定義された動作を、CPU110がMFP100に実行させるプログラムである。そして、プログラムリストにプログラムレコードが登録されると、CPU110は、定義データに定義された動作をMFP100に実行させることができるようになる。
【0020】
メモリ120には、例えば
図2(a)に示されるように、プログラムリストを記憶することができる。プログラムリストは、1以上のプログラムレコードを含む。制御プログラム122のインストール時において、プログラムリストにプログラムレコードは登録されていないが、例えば、ユーザの登録操作に応じて、プログラムレコードはプログラムリストに登録される。
【0021】
プログラムレコードは、プログラムIDと、プログラムIDに対応するアドレス情報(「所在情報」の一例)と、定期起動の有無と、起動周期(「タイミング情報」の一例)とを含む。プログラムIDは、外部アプリケーションに用いられる定義データを識別するための情報である。定義データは、例えば、XMLによって記述される。XMLファイルは、テキスト形式の定義データの一例であるが、定義データは、バイナリデータあるいはバイナリ化されたテキストデータであってもよい。アドレス情報は、例えば、対応するプログラムIDで識別される外部アプリケーションに用いられる定義データの所在を示す情報であってもよい。アドレス情報は、例えば、XMLファイルを記憶するサーバ250を識別するサーバアドレスを含むURLであってもよい。
【0022】
なお、本明細書では、基本的に、プログラムに記述された命令に従ったCPU110の処理を示す。すなわち、以下の説明における「判断」「抽出」「選択」「算出」「決定」「特定」「取得」「受付」「制御」「設定」等の処理は、CPU110の処理を表している。CPU110による処理は、OSを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPU110が要求することなくデータを受信するという処理も、「CPU110がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
【0023】
図3は、MFP100、特にCPU110が実行する外部アプリケーション登録処理の手順を示している。以降、各処理の手順の説明において、ステップを「S」と表記する。
図3の外部アプリケーション登録処理は、例えば、CPU110がPC200から、外部アプリケーションの登録指示を受信したことに応じて開始される。なお、外部アプリケーション登録処理は、CPU110がMFP100の入力IF170から外部アプリケーションの登録指示を受け取ったことに応じて開始してもよい。
【0024】
図3において、まずCPU110は、PC200から受信した外部アプリケーション登録指示に含まれるパラメータをメモリ120に登録する(S2)。
【0025】
次にCPU110は、登録したパラメータが定期起動を示すパラメータであるか否かを判断する(S4)。この判断において、登録したパラメータが定期起動を示すパラメータであると判断された場合(S4:YES)、CPU110は、既に定期起動する外部アプリケーションが登録されているか否かを判断する(S6)。この判断において、既に定期起動する外部アプリケーションが登録されていると判断された場合(S6:YES)、CPU110は、登録しようとしている外部アプリケーションの起動周期と、既に登録されている外部アプリケーションの起動周期とが重複する割合を算出する(S8)。例えば、上記
図2(a)のプログラムリストにおいて、プログラムID“Pull Print”とプログラムID“Send Status”の各プログラムレコードが登録された状態で、プログラムID“Print from Server”のプログラムレコードを登録しようとしている場合、プログラムID“Print from Server”により示される外部アプリケーションを3回起動すると、プログラムID“Send Status”により示される外部アプリケーションの起動と1回重複する。この場合、CPU110は、起動周期が重複する割合を1/3×100≒33(%)と算出する。
【0026】
次にCPU110は、算出した割合が閾値を超えるか否かを判断する(S10)。閾値として、例えば80%を採った場合、
図2(a)のプログラムリストの例では、算出した割合は閾値を超えていない。S10の判断において、算出した割合が閾値を超えると判断された場合(S10:YES)、CPU110は、重複する割合をディスプレイ160に注意表示する(S12)。
図2(b)は、注意表示160aの一例を示している。
【0027】
次にCPU110は、例えば、注意表示160aに設けられた「はい」ボタン160a1が操作されたか否かを判断する(S14)。この判断において、「いいえ」ボタン160a2が操作されたと判断された場合(S14:NO)、CPU110は、登録失敗処理を実行した(S16)後、外部アプリケーション登録処理を終了する。ここで、登録失敗処理とは、具体的には、外部アプリケーション登録に失敗したことを、エラー原因とともにユーザへ報知する処理、例えばディスプレイ160へ表示する処理である。
【0028】
一方、上記S14の判断において、「はい」ボタン160a1が操作されたと判断された場合(S14:YES)、CPU110は、登録成功処理を実行した(S18)後、外部アプリケーション登録処理を終了する。ここで、登録成功処理とは、具体的には、登録しようとしているプログラムレコードをプログラムリストに登録して、メモリ120に記憶させるとともに、登録したプログラムレコードに対応付けられたタイマの計時を開始させる処理である。この処理と一緒に、外部アプリケーション登録に成功したことをユーザへ報知する処理、例えばディスプレイ160へ表示する処理を行うようにしてもよい。
【0029】
一方、上記S10の判断において、算出した割合が閾値を超えない場合(S10:NO)、あるいは上記S6の判断において、定期起動する外部アプリケーションがまだ登録されていないと判断された場合(S6:NO)、CPU110は、上記S18の登録成功処理を実行する。
【0030】
一方、上記S4の判断において、登録したパラメータが定期起動を示すパラメータでないと判断された場合(S4:NO)、CPU110は、通常登録処理を実行した(S20)後、外部アプリケーション登録処理を終了する。ここで、通常登録処理とは、タイマにより定期起動しない外部アプリケーションを登録する処理である。この処理と一緒に、外部アプリケーションを通常登録したことをユーザへ報知する処理、例えばディスプレイ160へ表示する処理を行うようにしてもよい。なお、通常登録処理により登録された外部アプリケーションは、例えば、MFP100の入力IF170から起動指示を受け取ったことに応じて起動される。
【0031】
このように外部アプリケーション登録処理では、定期起動する外部アプリケーションが複数登録されたときに、定期起動周期が重複する割合を算出し、算出した割合が所定の閾値を超えた場合、定期起動に失敗する外部アプリケーションが多くなることを注意表示するようにした。これにより、MFP100のユーザは、外部アプリケーションが実際に定期起動される前に、定期起動に失敗する外部アプリケーションが多くなることを知ることができるので、定期起動周期を変更するなどの有効な対策を取ることができる。
【0032】
図4は、タイマ監視処理の手順を示している。タイマ監視処理は、上記外部アプリケーション登録処理により登録成功処理(
図3のS18)が実行され、1つ以上のタイマが有効に登録されているときに常に実行される。
【0033】
図4において、まずCPU110は、一定時間待った(S30)後、現在時刻とタイマのタイムアップ時刻とを比較する(S32)。そして、CPU110は、タイムアップ時刻を超過したタイマがあるか否かを判断する(S34)。この判断において、タイムアップ時刻を超過したタイマがないと判断された場合(S34:NO)、CPU110は、処理を上記S30に戻す。一方、この判断において、タイムアップ時刻を超過したタイマがあると判断された場合(S34:YES)、CPU110は、該当する外部アプリケーションの起動指示を行う(S36)。この外部アプリケーションの起動指示は、
図6を用いて後述する外部アプリケーション実行処理のS60の判断で用いられる。
【0034】
そして、CPU110は、そのタイマに対する次回のタイムアップ時刻を設定した(S38)後、処理を上記S34に戻す。
【0035】
図5は、ネットワーク設定変更時処理の手順を示している。ネットワーク設定変更時処理は、通信IF180やルータ220に対するネットワーク設定が変更されたときに開始される。ネットワーク設定は、MFP100についてのネットワーク設定であり、メモリ120に記憶されている。ネットワーク設定としては、例えば、IPアドレスやproxy設定などを挙げることができる。なお、ネットワーク設定の変更指示は、例えば、入力IF170やPC200から受け付けられる。そして、ネットワーク設定の変更指示を受け付けたことに応じてCPU110は、ネットワーク設定変更処理を実行し、MFP100のネットワーク設定を指示された設定に変更する。このネットワーク設定変更処理は、ネットワーク設定変更時処理とは別に動作する。そして、ネットワーク設定変更処理によりネットワーク設定が変更されると、CPU110は、例えば、ネットワーク設定変更時処理を開始させるイベントを発生させる。このイベントの発生に応じてCPU110は、ネットワーク設定変更時処理を開始させる。
【0036】
図5において、まずCPU110は、定期起動する外部アプリケーションが登録されているか否かを判断する(S50)。上記
図2(a)のプログラムリストを例に挙げると、S50では、CPU110は、「定期起動」項目に“○”が記載されているプログラムレコードがあるか否かを判断している。この判断において、定期起動する外部アプリケーションが登録されていると判断された場合(S50:YES)、CPU110は、サーバ250へ接続確認を行う(S52)。接続確認の方法は、どのような方法を採用してもよいが、一例として、pingコマンドを通信IF180からサーバ250に送信し、これに対してサーバ250から応答を受信したときに接続に成功したと判断する方法を挙げることができる。このとき、CPU110は、定期起動する外部アプリケーションのアドレス情報、例えば、
図2(a)のプログラムリストでは、いずれかのプログラムレコードのURLが示すサーバ250にpingコマンドを送信する。また、pingコマンドを送信する方法に代えて、CPU110は、いずれかのプログラムレコードのURLが示す定義データを取得できたか否かに応じて、接続確認を行うようにしてもよい。この場合、CPU110は、定義データに従った処理を行わない。接続確認を行うことが、その目的だからである。
【0037】
次にCPU110は、接続に成功したか否かを判断する(S54)。この判断において、接続に成功したと判断された場合(S54:YES)、CPU110は、ネットワーク設定変更時処理を終了する。一方、この判断において、接続に失敗したと判断された場合(S54:NO)、CPU110は、接続エラーを通知した(S56)後、ネットワーク設定変更時処理を終了する。
図3(c)は、接続エラーの通知の一例として、ディスプレイ160に表示された接続エラーの表示例を示している。
【0038】
一方、上記S50の判断において、定期起動する外部アプリケーションが登録されていないと判断された場合(S50:NO)、CPU110は、ネットワーク設定変更時処理を終了する。
【0039】
このようにネットワーク設定変更時処理では、ネットワーク設定が変更された場合、外部アプリケーションが実際に定期起動される前に、サーバ250への接続確認を行うようにしている。これにより、サーバ250との接続が成功していれば、外部アプリケーションが定期起動されたときに、その外部アプリケーションに用いられる定義データをサーバ250から正しく読み出すことができる。一方、サーバ250との接続が失敗していれば、MFP100のユーザはその原因を事前に知ることができるので、ネットワーク設定を修正するなどの有効な対策を取ることができる。
【0040】
図6は、外部アプリケーション実行処理の手順を示している。外部アプリケーション実行処理は、上記
図4のタイマ監視処理の開始に応じて開始し、タイマ監視処理の終了に応じて終了する。
【0041】
図6において、まずCPU110は、タイマ監視処理から該当する外部アプリケーションの起動が指示されるまで待機し(S60:NO)、該当する外部アプリケーションの起動が指示されると(S60:YES)、CPU110は、該当する外部アプリケーションへのアクセスプロセスを開始する(S62)。
【0042】
次にCPU110は、該当する外部アプリケーションへのアクセスプロセスを正常に開始できたか否かを判断する(S64)。この判断において、該当する外部アプリケーションへのアクセスプロセスを正常に開始できなかったと判断された場合(S64:NO)、CPU110は、処理をS74に進める。ここで、該当する外部アプリケーションへのアクセスプロセスを正常に開始できなかった原因は主として、他処理とのバッティングである。例えば、MFP100のユーザがプリンタ130を用いて印刷している最中に、外部アプリケーションの定期起動が指示された場合、その外部アプリケーションの起動プロセスは実行されない。このエラー原因を取得できた場合、CPU110は、取得したエラー原因をメモリ120に記憶する。
【0043】
一方、S64の判断において、該当する外部アプリケーションへのアクセスプロセスを実行できたと判断された場合(S64:YES)、CPU110は、サーバ250へアクセスする(S66)。
【0044】
次にCPU110は、サーバ250へアクセスできたか否かを判断する(S68)。この判断において、サーバ250へアクセスできなかったと判断された場合(S68:NO)、CPU110は、処理を上記S74に進める。ここで、サーバ250へアクセスできなかった原因は主として、ネットワークエラーである。このエラー原因を取得できた場合、CPU110は、取得したエラー原因をメモリ120に記憶する。
【0045】
一方、S68の判断において、サーバ250へアクセスできたと判断された場合(S68:YES)、CPU110は、該当する外部アプリケーションを実行する(S70)。例えば、上記
図2(a)のプログラムリストにおいて、プログラムID“Send Status”と対応付けられているタイマが計時を開始してから起動周期「3時間」の計時を完了すると、上記タイマ監視処理(
図4)のS36において、プログラムID“Send Status”で識別される外部アプリケーションの起動が指示されるので、CPU110は、URL“http://serveraddress/sendstatus.xml”で示される、サーバ250の所在パスにある定義データを読み出す。そして、この定義データ“sendstatus.xml”に基づいて、CPU110は、MFP100の現在のステータスを、通信IF180を通じてサーバ250に送信する動作をMFP100に実行させる。
【0046】
次にCPU110は、該当する外部アプリケーションを正常実行できたか否かを判断する(S72)。この判断において、該当する外部アプリケーションを正常実行できたと判断された場合(S72:YES)、CPU110は、外部アプリケーション実行処理を終了する。一方、この判断において、該当する外部アプリケーションを正常実行できなかったと判断された場合(S72:NO)、CPU110は、処理を上記S74に進める。
【0047】
一例として、
図2(a)のプログラムリストにおいて、プログラムID“Send Status”で識別されるプログラムレコードは、MFP100の現在のステータスを、通信IF180を通じてサーバ250に送信する動作をMFP100に実行させる、複数のXMLファイルからなる定義データである。そして、そのプログラムレコードに含まれるURLは、複数のXMLファイルのうち、最初に処理すべきXMLファイルを示している。また、それぞれのXMLファイルには、次に処理すべきXMLファイルの識別情報が記載されている。CPU110は、この記載に従って、XMLファイルを順番に処理して行く。最後に処理されるXMLファイルには、アプリケーション実行の成功を示す情報が入っていてもよい。また、アプリケーション実行の成功を示す情報は、最後に処理されるXMLファイル以外のXMLファイルに入っていてもよい。
【0048】
他の例として、プログラムID“Print from Server”で識別されるプログラムレコードは、通信IF180を通じてサーバから受信した画像データで示される画像を、プリンタ130がシートに記録する動作をMFP100に実行させる、単数のXMLファイルからなる定義データである。
【0049】
上記S72では、サーバ250から受信したXMLファイルの最初の1つを正常に処理できた場合に、CPU110は、“YES”と判断してもよい。あるいは、サーバ250から受信したXMLファイルを順番に処理し、アプリケーション実行の成功を示す情報が入ったXMLファイルを正常に処理できた場合に、CPU110は、“YES”と判断してもよい。
【0050】
なお、S72の判断で使用するXMLファイルは、外部アプリケーションを実際に起動するためのXMLファイル、つまり上記
図2(a)のプログラムリスト内のURLで示されるXMLファイルであってもよいし、判定用に作成したXMLファイルであってもよい。
【0051】
S74では、CPU110は、指定した回数を超えて連続失敗したか否かを判断する。この判断において、連続失敗した回数がまだ指定した回数を超えていないと判断された場合(S74:NO)、CPU110は、処理を上記S60に戻す。このように、連続失敗した回数がまだ指定した回数を超えていない場合に、処理を上記S60に戻すようにしたのは、失敗原因が常に起きるものでなければ、再度同じ外部アプリケーションを定期起動したときに、成功することがあるからである。
【0052】
一方、S74の判断において、連続失敗した回数が指定した回数を超えたと判断された場合(S74:YES)、CPU110は、処理を
図7のS76に進める。
【0053】
S76~S80の判断において、連続失敗した原因がデバイスエラーであると判断された場合(S76:YES)、ネットワークエラーであると判断された場合(S78:YES)、及び他処理とのバッティングでないと判断された場合(S80:NO)のうちのいずれかが成立した場合、CPU110は、処理をS82に進める。一方、S76~S80の判断において、連続失敗した原因がデバイスエラーでないと判断された場合(S76:NO)、ネットワークエラーでないと判断された場合(S78:NO)、及び他処理とのバッティングであると判断された場合(S80:YES)のうちのいずれも成立した場合、CPU110は、処理をS86に進める。
【0054】
S82では、CPU110は、連続失敗した原因が再起動で解消する可能性がある原因であるか否かを判断する。具体的には、デバイスエラーに含まれるエラー原因のうち、再起動で解消する可能性があるものとしては、メモリ120にスタックが最大階層を超えて積み上がり、機能がロックしたエラーや、MFP100本体の異常な温度上昇などを挙げることができる。一方、デバイスエラーに含まれるエラー原因のうち、再起動で解消する可能性がないものとしては、用紙ジャムや、物理的なトラブル(本体カバーのオープン、ドラム/ADF破損など)などを挙げることができる。また、ネットワークエラーに含まれるエラー原因のうち、再起動で解消する可能性があるものとしては、IPアドレスの重複や、機器との接続トラブルなどを挙げることができる。一方、ネットワークエラーに含まれるエラー原因のうち、再起動で解消する可能性がないものとしては、LANケーブル抜けなどを挙げることができる。さらに、他処理とのバッティングに含まれるエラー原因としては、ユーザによるMFP100の操作中や、他の定期起動する外部アプリケーションとの起動周期の重複などを挙げることができる。
【0055】
上記S82の判断において、連続失敗した原因が再起動で解消する可能性がある原因でないと判断された場合(S82:NO)、CPU110は、処理をS86に進める。一方、S82の判断において、連続失敗した原因が再起動で解消する可能性がある原因であると判断された場合(S82:YES)、CPU110は、処理をS84に進める。
【0056】
S84では、CPU110は、再起動後の実行ではないか否かを判断する。この判断において、再起動後の実行であると判断された場合(S84:NO)、CPU110は、処理をS86に進める。一方、この判断において、再起動後の実行ではないと判断された場合(S84:YES)、CPU110は、処理をS88に進める。
【0057】
S86では、CPU110は、エラー原因を通知した後、外部アプリケーション実行処理を終了する。エラー原因を通知する方法としては、例えば、エラー原因を管理者にメール送信する方法、ディスプレイ160に表示する方法、プリンタ130を用いて印刷する方法などを挙げることができる。通知内容としては、どの段階(外部アプリケーションを起動する前か後か)で失敗したか、エラー原因(エラー原因を示すエラーコード、バッティングした処理など)、エラー復帰/回避方法(デバイスエラー解消方法、起動周期の重複であれば、重複しない周期の提案など)などを挙げることができる。
【0058】
S88では、CPU110は、再起動を実行した後、処理を上記
図6のS62に戻す。つまり、再起動実行後は、上記S60においてタイマによる起動時間の経過を待たずに、直ちに該当する外部アプリケーションの起動プロセスを開始させる。これは、該当する外部アプリケーションの起動周期として、例えば1日を設定していた場合、再起動後また1日を待たなければ、該当する外部アプリケーションの起動プロセスを開始できないこととなり、再起動により該当する外部アプリケーションの起動プロセスが成功したか否かを直ちに確認できないからである。
【0059】
また、上記S82の判断において、連続失敗した原因が再起動で解消する可能性がある原因であると判断された場合(S82:YES)、CPU110は、直ちに再起動を実行せず、その前に、上記S84において、再起動後の実行ではないか否かを判断している。これは、連続失敗した原因が再起動で解消する可能性がある原因であると判断されて、再起動が実行された後、さらに処理がS82に進んだ場合、その前に処理がS82に進んだ場合と同様に、S82において再度、連続失敗した原因が再起動で解消する可能性がある原因であると判断されてしまい、再起動が何度も繰り返して実行されることになる。これを防止するために、S82とS88の間にS84の判断を入れるようにしている。
【0060】
このように外部アプリケーション実行処理では、一定回数連続して失敗したときに、再起動で解消する可能性がある場合には、再起動を実行するようにしたので、自動的に外部アプリケーションを定期起動できる状態に復帰させることができる。これにより、定期起動に失敗し続ける状態を解消させることができる。
【0061】
また、一定回数連続して失敗したときに、再起動で解消する可能性がない場合には、再起動を実行せず、エラー原因を通知することにしたので、不要な再起動を防止することができる。
【0062】
さらに、上記S80の判断において、他処理とのバッティングであると判断された場合(S80:YES)には、処理をS82の判断に進めず、S86の処理に進めるようにした。上述のように、他処理とのバッティングに含まれるエラー原因は、ユーザによるMFP100の操作中や、他の定期起動する外部アプリケーションとの起動周期の重複などである。ユーザによるMFP100の操作中に、再起動が実行された場合、操作中のユーザ操作はリセットされてしまい、ユーザは違和感を生ずることになる。一方、他の定期起動する外部アプリケーションとの起動周期の重複がエラー原因とすると、再起動が実行されたとしても再度、同じエラー原因で失敗することになり、再起動が意味のないものとなってしまう。このような理由から、エラー原因が他処理とのバッティングである場合、再起動が実行されないようにしている。
【0063】
なお、本実施形態では、上記S84の判断において“YES”と判断された場合には、再起動が直ちに実行されるが、これに限らず、再起動に関する設定を行えるようにしてもよい。具体的には、再起動の可否の設定、何回失敗したときに再起動するかの設定、再起動してもよい時間帯(例えば、営業時間外)の設定などを挙げることができる。このような設定を行えると、ユーザの望まない再起動を防止することができる。
【0064】
また、サーバ250が一定期間、外部アプリケーションの定期起動の実施状況を収集するようにし、サーバ250からレポートあるいはダウンロードできるようにしてもよい。これにより、MFP100のユーザは、外部アプリケーションの定期起動が成功したか失敗したかを統計的に把握することができ、中長期的に定期起動の失敗割合を低下させることが可能となる。
【0065】
さらに、デバイスエラーが原因で定期起動を失敗した場合、定期起動を失敗する毎にエラー通知を行うようにしてもよい。これにより、ユーザは定期起動の失敗原因がデバイスエラーにあることを気づき易くなる。
【0066】
従来のMFPを用いてこのような外部アプリケーションを起動する場合には、MFPに設けられた入力IFから、起動したい外部アプリケーションを指定した上で、その実行を指示するユーザ操作を行う必要があった。しかし、本実施形態のMFP100では、外部アプリケーションをタイマにより一定周期毎に自動的に起動できるようにしたので、従来のMFPで外部アプリケーションを起動するために必須のユーザ操作が不要となり、より簡単に外部アプリケーションを起動することが可能となる。これにより、MFP100に対してより簡単に、外部アプリケーションに応じた機能拡張を行うことが可能となる。
【0067】
また、外部アプリケーションに対してタイマを登録するか否かは自由に設定できる(上記
図3のS4参照)ので、各外部アプリケーションの起動を、従来通りユーザ操作に応じて行う方法と、本実施形態のようにタイマにより一定周期毎に自動的に行う方法とを選択することが可能となる。これにより、各外部アプリケーションの起動方法にバリエーションを持たせることが可能となる。
【0068】
なお、本発明は上記実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で様々な変更が可能である。
(1)上記実施形態では、画像処理装置の一例として、MFP100を例に挙げて説明したが、MFP100に限らず、画像処理装置は、単体のプリンタやスキャナ、コピー機であってもよい。
(2)上記実施形態では、コントローラの一例として、1つのCPU110を用いているが、これに限らず、複数のCPUからなるものを用いてもよいし、複数のコアからなるCPUを含むものでもよい。また、CPUと専用回路とを有していてもよい。専用回路としては、例えば、ASIC及びFPGAなどが挙げられる。
(3)上記実施形態では、画像処理システム1内に、MFP100もサーバ250も1台のみ含まれているが、これに限らず、MFP100もサーバ250も複数台含むようにしてもよい。
【符号の説明】
【0069】
1…画像処理システム、100…MFP、110…CPU、120…メモリ、121…OS、122…制御プログラム、130…プリンタ、140…スキャナ、150…FAX部、160…ディスプレイ、170…入力IF、180…通信IF、190…通信バス、200…PC、220…ルータ、240…通信ネットワーク、250…サーバ、300…インターネット。