JP2019057037A - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP2019057037A
JP2019057037A JP2017180191A JP2017180191A JP2019057037A JP 2019057037 A JP2019057037 A JP 2019057037A JP 2017180191 A JP2017180191 A JP 2017180191A JP 2017180191 A JP2017180191 A JP 2017180191A JP 2019057037 A JP2019057037 A JP 2019057037A
Authority
JP
Japan
Prior art keywords
function
component
program
update
element program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017180191A
Other languages
English (en)
Other versions
JP7059544B2 (ja
Inventor
文武 山西
Fumitake Yamanishi
文武 山西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2017180191A priority Critical patent/JP7059544B2/ja
Priority to US16/123,681 priority patent/US11301184B2/en
Publication of JP2019057037A publication Critical patent/JP2019057037A/ja
Application granted granted Critical
Publication of JP7059544B2 publication Critical patent/JP7059544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1217Improving printing performance achieving reduced idle time at the output device or increased asset utilization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】ソフトウエア中の要素プログラムが更新中に他の要素プログラム群を実行できるようにする。【解決手段】通信コンポーネント250が更新中に、キャンした画像をメールで送信するジョブが実行されると、スキャンされた画像が画像処理され、HDD等に蓄積された後、読取り処理コンポーネント210が、通信コンポーネント250にメール送信を依頼し、これに対する応答がないことで読取り処理コンポーネント210は通信コンポーネント250が更新中と判断する。読取り処理コンポーネント210は、UIコンポーネント205にその旨を通知する。UIコンポーネント205は、通信コンポーネント250を用いるジョブをユーザから受け付けないよう制御する。更新完了後、読取り処理コンポーネント210はメール送信の依頼を再送する。【選択図】図6

Description

本発明は、情報処理装置及びプログラムに関する。
特許文献1には、ファームウェアの更新等に伴う製品機能のダウンタイムを低減することを目指した画像形成装置が開示されている。この画像形成装置は、ファームウェアを更新することで修正される修正内容を示す内容情報を取得する取得手段と、取得手段により取得された内容情報と、画像形成装置の機器情報と、を比較し、ファームウェアの更新を行うか否かを判定する判定手段と、判定手段によりファームウェアの更新を行うと判定された場合、更新対象となるファームウェアの更新ファイルを取得する更新ファイル取得手段と、更新ファイル取得手段により取得された更新ファイルを用いてファームウェアの更新を行う更新手段と、を有する。例えば、ファームウェアの修正内容が、画像形成装置に接続されていないオプションユニットの不具合修正に関するものである場合には、ファームウェアの更新を行わない。
特許文献2に開示された方法では、ファームウェアをダウンロードすべきフラッシュメモリは、複数のメモリバンクに分割され、バンク毎に書き込み、消去を行うことができ、既存のファームウェアを構成する複数の機能プログラム(bootルーチン、mainルーチン、デバイス制御ルーチン等)を、バージョン識別子と共に各バンクに格納している。新たなファームウェアのバイナリファイルのダウンロードは、各機能プログラム毎に、そのバージョン識別子を比較して、バージョンが異なっている機能プログラムのみを書き替えることにより行われる。この方法では、変更されている機能プログラムのみが選択的に書き換えられ、変更がない機能プログラムは書き換えられないので、ファームウェア全体を更新する方式よりも、更新に要する時間が短い。
特許第5984621号明細書 特開2006−004177号公報
情報処理装置に記憶されているソフトウエアを更新している間は、そのソフトウエア全体が実行できない。仮に、ソフトウエアを構成する複数の要素プログラムのうち変更のある要素プログラムを選択的に更新するとしても、それだけではある要素プログラムを更新している間に他の要素プログラム群を実行することはできない。
本発明は、ソフトウエア中のある要素プログラムが更新中に、他の要素プログラム群を実行できるようにすることを目的とする。
請求項1に係る発明は、プロセッサと、前記プロセッサにより実行される複数の要素プログラムを含むソフトウエアを記憶する記憶装置と、を含み、前記複数の要素プログラムのうちの少なくとも1つの要素プログラムは、他の要素プログラムが更新中である場合、当該他の要素プログラムが更新中であることに対応するための特定処理を前記プロセッサに実行させる、ことを特徴とする情報処理装置である。
請求項2に係る発明は、前記少なくとも1つの要素プログラムは、依頼対象処理を依頼した他の要素プログラムが更新中である場合に前記特定処理を実行し、前記特定処理は、前記他の要素プログラムの更新が完了した後に、前記他の要素プログラムに対して再度前記依頼対象処理を依頼することを含む、請求項1に記載の情報処理装置である。
請求項3に係る発明は、操作画面を生成する画面生成手段を更に含み、前記特定処理は、前記他の要素プログラムが更新中であることを前記画面生成手段に通知する処理を含み、前記画面生成手段は、実行されている前記要素プログラムから他の要素プログラムが更新中であることを通知された場合、前記情報処理装置がユーザに提供する複数の機能のうち、当該他の要素プログラムを用いる機能について、当該機能の利用に制約があることを示す第1の操作画面を生成する、請求項1又は2に記載の情報処理装置である。
請求項4に係る発明は、前記画面生成手段は、前記第1の操作画面として、前記複数の機能のうち更新中である前記他の要素プログラムを用いない機能については、制約なく利用を受け付ける画面を生成する、ことを特徴とする請求項3に記載の情報処理装置である。
請求項5に係る発明は、前記画面生成手段は、前記複数の機能の各々と、その機能を実現するために用いられる1以上の前記要素プログラムとの対応関係の情報に従い、前記他の要素プログラムを用いる機能を特定する、ことを特徴とする請求項3又は4に記載の情報処理装置である。
請求項6に係る発明は、前記画面生成手段は、前記複数の機能のうち使用する機能の選択をユーザから受け付けるための第2の操作画面を生成し、前記第2の操作画面に対して前記ユーザが選択した機能が、更新中である前記他の要素プログラムを用いるものである場合に、前記第1の操作画面として、当該機能が利用不可であることを示す画面を生成する、請求項4又は5に記載の情報処理装置である。
請求項7に係る発明は、前記画面生成手段は、前記複数の機能のうち、更新中であることが通知された前記他の要素プログラムが、その機能のために実行される処理の流れの中で蓄積処理以前に実行される機能については、前記第1の操作画面としてその機能が実行不可であることを示す画面を生成し、前記他の要素プログラムが、その機能のために実行される処理の流れの中で蓄積処理より後に実行される機能については、前記第1の操作画面として、その機能は実行可能だが完了までに時間がかかることを示す画面を生成する、請求項4〜6のいずれか1項に記載の情報処理装置である。
請求項8に係る発明は、前記第1の操作画面が表示されていたときに前記情報処理装置を操作していたユーザに対して、前記他の要素プログラムの更新の完了に応じて前記他の要素プログラムを用いる前記機能が利用可能となったときに、前記機能が利用可能となったことを示す通知を行う通知手段、を含む、請求項4〜7のいずれか1項に記載の情報処理装置である。
請求項9に係る発明は、前記第1の操作画面は、前記ユーザに対して前記他のプログラムの更新の完了に応じて前記機能が利用できるようになったときに通知を求めるか否かの入力を求める画像要素、を含み、前記通知手段は、前記画像要素に応じて前記通知を求める旨の入力が前記ユーザからなされた場合に、前記他の要素プログラムの更新の完了に応じて前記他の要素プログラムを用いる前記機能が利用可能となったときに前記通知を行う、請求項8に記載の情報処理装置である。
請求項10に係る発明は、前記複数の要素プログラムの各々の使用状況を示す履歴情報を記録する履歴記録手段と、前記履歴情報に応じて前記ソフトウエアの更新を制御する更新制御手段と、を更に含む、請求項1〜9のいずれか1項に記載の情報処理装置である。
請求項11に係る発明は、前記更新制御手段は、前記履歴情報において更新の対象である要素プログラムの使用頻度が閾値以上である期間は、当該要素プログラムの更新を行わない、請求項10に記載の情報処理装置である。
請求項12に係る発明は、前記更新制御手段は、前記履歴情報において更新の対象である要素プログラムの使用頻度が閾値以上である期間内でも特定の場合には当該要素プログラムの更新を行い、この場合の更新では、当該要素プログラムを構成する下位の要素プログラムの各々を単位として更新を実行する、請求項10又は11に記載の情報処理装置である。
請求項13に係る発明は、前記履歴記録手段は、前記第2の操作画面において前記ユーザが機能を選択した場合に、その機能が更新中である前記他の要素プログラムを用いるために使用不可であっても、その機能に用いられる各要素プログラムがそのとき使用されたことを示す履歴情報を記録する、請求項5を引用する請求項10〜12のいずれか1項に記載の情報処理装置である。
請求項14に係る発明は、情報処理装置に含まれる記憶装置内に記憶される複数の要素プログラムを含むプログラムであって、前記複数の要素プログラムのうちの少なくとも1つの要素プログラムは、他の要素プログラムが更新中である場合、当該他の要素プログラムが更新中であることに対応するための特定処理を前記情報処理装置内のプロセッサに実行させる、プログラムである。
請求項1又は14に係る発明によれば、ソフトウエア中のある要素プログラムが更新中に、他の要素プログラム群を実行できる。
請求項2に係る発明によれば、他の要素プログラムの更新が完了した後、中断していた処理を再開することができる。
請求項3〜5に係る発明によれば、更新中の要素プログラムがある場合に、その影響のない機能については利用を受け付けつつも、影響のある機能についてはそれに応じた表示を行うことができる。
請求項6に係る発明によれば、更新中の要素プログラムのために利用できない機能がユーザに選択されるのを抑制できる。
請求項7に係る発明によれば、要素プログラムが更新中であっても、機能を実現するための一連の処理の途中のデータを蓄積して更新完了後にその蓄積したデータを用いて処理を再開できる場合には、その機能の利用を受け付けることができる。
請求項8又は9に係る発明によれば、要素プログラムの更新のために機能の利用が認められなかったユーザに、更新の完了を知らせることができる。
請求項10に係る発明によれば、各要素プログラムの使用状況に応じてソフトウエアの更新を制御できる。
請求項11に係る発明によれば、更新の対象である要素プログラムがよく使用されるときにその要素プログラムの更新を行わないようにすることができる。
請求項12に係る発明によれば、更新の対象である要素プログラムをまとめて更新する場合と比べて、その要素プログラムに対応するすべての機能が一度に使えなくなる状況を抑制することができる。
請求項13に係る発明によれば、実際に使用されなくてもユーザの需要があった機能のための要素プログラムを記録し、使用頻度が閾値以上の期間の決定に反映させることができる。
複合機のファームウエアの構成を例示する図である。 ファームウエア中のメインコントローラの構成を例示する図である。 各コンポーネントの概略構成を示す図である。 コンポーネント内の実行制御部の処理手順を例示する図である。 スキャン・トゥ・メール処理が実行される際の各コンポーネントの動作の流れを示す図である。 通信コンポーネントがアップデート中にスキャン・トゥ・メール処理が実行されたときの各コンポーネントの動作の流れを示す図である。 通信コンポーネントがアップデート中であることを検知されたときに複合機のUIに表示される画面の例を模式的に示す図である。 通信コンポーネントがアップデート中に表示されるメインメニュー画面の例を模式的に示す図である。 通信コンポーネントがアップデート中に表示される、スキャン機能の設定画面の例を模式的に示す図である。 通信コンポーネントがアップデート中に表示される、スキャン機能の設定画面の別の例を模式的に示す図である。 UI画面上の各項目とファームウエア内の要素プログラムとの依存関係を示すテーブルの例を示す図である。 ファームウエアがアップデート中に表示される、アップデート完了後の通知の要否の指示を受け付ける画面の例を模式的に示す図である。 アップデートに関する画面表示等の制御を行うジョブ実行制御コンポーネントを含むメインコントローラの構成を例示する図である。 ジョブ実行制御コンポーネントの処理手順を例示する図である。 ジョブ実行制御コンポーネントの処理手順の別の例を示す図である。 変形例におけるメインコントローラの構成を例示する図である。 複合機の各機能の利用履歴の集計結果を例示する図である。 アップデート管理コンポーネントの処理手順を例示する図である。
以下では、複合機(プリンタ、スキャナ、コピー機、FAX(ファクシミリ)装置等の機能を兼ね備えた装置)に内蔵される情報処理装置(内蔵コンピュータ)のファームウェアの更新を例にとって説明する。
複合機内の情報処理装置のファームウエア10は、例えば、図1に示すように、コピーコントローラ12、印刷コントローラ14、スキャンコントローラ16、FAXコントローラ18、メインコントローラ20、オプションコントローラ22を含む。このうちメインコントローラ20以外のものは、複合機が提供するアプリケーション機能(サービス)を実現するためのプログラムである。すなわち、コピーコントローラ12は、コピーサービスのための情報処理を行うプログラムである。印刷コントローラ14は、ネットワーク経由での印刷指示を実行する印刷サービスのためのプログラムである。スキャンコントローラ16は、スキャンサービスを実現するためのプログラムである。FAXコントローラ18は、FAXサービスのためのプログラムである。オプションコントローラ22は、複合機に装着されたオプション装置(例えばステープル留めを行う後処理装置)を用いたオプションサービスを実現するプログラムである。複合機には複数のオプション装置が装着される可能性があり、オプションコントローラ22はそれらオプション装置毎に設けられる。
メインコントローラ20は、複合機の基本機能の制御ためのプログラムである。基本機能の制御には、例えば複合機内のハードウエア機構の制御や、複数のサービスに共通して用いられる機能などがある。図2に、メインコントローラ20の詳細な構成を例示する。
図2の例では、メインコントローラ20は、読取り処理コンポーネント210、画像処理コンポーネント220、蓄積処理コンポーネント230、印刷処理コンポーネント240、通信コンポーネント250、及びセキュリティコンポーネント260を含む。読取り処理コンポーネント210は、スキャン機構を用いた原稿画像の読取り処理を制御するプログラムである。画像処理コンポーネント220は、スキャンや印刷データの展開などにより複合機内で生成された画像データに対する画像処理(例えば色空間変換やノイズ除去)を制御するプログラムである。蓄積処理コンポーネント230は、複合機内で生成された画像データや画像処理コンポーネント220により処理された画像データを、複合機が有する大容量記憶装置(ハードディスクドライブ等)に蓄積したり、蓄積した画像データを読み出したりする処理を行う。また、蓄積される画像データの圧縮や、蓄積された圧縮画像データの伸張を行う。印刷処理コンポーネント240は、画像データを用紙等の媒体に印刷する際の印刷機構の制御を司る。通信コンポーネント250は、ローカルエリアネットワークやインターネット等のネットワークを介した通信処理を司るプログラムである。セキュリティコンポーネント260は、複合機の情報セキュリティのための処理を担うプログラムである。
なお、図示は省略したが、メインコントローラ20には、UI(ユーザインタフェース)処理を行うコンポーネントや、ジョブの実行管理を行うコンポーネント等が含まれていてもよい。
各印刷処理コンポーネント240は、更に複数のモジュールに細分されていてもよい。図2の例では、通信コンポーネント250とセキュリティコンポーネント260がそれぞれ含んでいるモジュール群を示している。
例えば通信コンポーネント250は、FTP(File Transfer Protocol)通信モジュール252、メール通信モジュール254、HTTP(HyperText Transfer Protocol)通信モジュール256、SMB(Server Message Block)通信モジュール258等のように、ネットワーク経由での通信に用いる通信プロトコル毎に、そのプロトコルの処理のためのモジュール(プログラム)を有している。また、図示は省略したが、通信コンポーネント250には、図に示したプロトコル毎のモジュールの他に、それら複数のプロトコルのモジュールのための共通の処理を行う共通処理モジュールが含まれていてもよい(例えば図3に示す実行制御部34。詳細は後述)。
またセキュリティコンポーネント260は、証明書管理モジュール262、暗号エンジンモジュール264、履歴管理モジュール266、HDD消去/暗号化モジュール268を含む。証明書管理モジュール262は、複合機がネットワーク経由で行う通信等において用いるデジタル証明書(複合機のものや通信相手のもの)を管理するためのモジュールである。暗号エンジンモジュール264は、データの暗号化及び復号のためのプログラムであり、例えばネットワークを介して他の装置とやりとりするデータの暗号化や復号化の際に使用される。履歴管理モジュール266は、複合機の利用履歴を記録し、管理するためのモジュールである。HDD消去/暗号化モジュール268は、複合機が内蔵する大容量記憶装置であるHDD(ハードディスクドライブ)内の情報保護のためのモジュールであり、例えばHDDに保存するデータを暗号化したり、複合機の廃棄時等にHDD内のデータを消去したりする。また、図示は省略したが、セキュリティコンポーネント260は、図に示したプロトコル毎のモジュールの他に、それら複数のプロトコルのモジュールのための共通の処理を行う共通処理モジュールを含んでいてもよい。
図1及び図2に示したように、ファームウエア10は、階層構造をなす要素プログラム群から構成されている。要素プログラムとは、ファームウエア10を構成する要素となるプログラムのことである。図示例では、ファームウエア10は、コントローラレベル(第1階層:図1)の複数の要素プログラムから構成され、コントローラは、コンポーネントレベル(第2階層:図2)の複数の要素プログラムから構成され、コンポーネントは、モジュールレベル(第3階層:図2)の複数の要素プログラムから構成されている。本実施形態では、ファームウエア10のアップデートは、ファームウエア全体をまとめて行う(すなわちファームウエア全体を1つの要素プログラムとする場合)ほか、コントローラ単位、コンポーネント単位、モジュール単位といった各レベルの要素プログラムを単位として行うこともできる。なお、以上に示した3階層の階層構造はあくまで一例に過ぎない。
本実施形態では、ファームウエア10内のある要素プログラムのアップデート(更新)を行っている際に、この要素プログラムを用いない処理は実行できるようにする。このために、要素プログラムは、他の要素プログラムがアップデート中である場合に、アップデートに対応するための処理を実行する機能(「アップデート対応機能」と呼ぶ)を備える。アップデート対応機能には、他の要素プログラムがアップデート中であることを検知する処理、他の要素プログラムがアップデート中であることをUIコンポーネント(図示省略)に通知する処理、のうちの少なくとも1つが含まれる。また、アップデート対応機能には、他の要素プログラムのアップデートが終わるまで自分の処理を保留して待機し、アップデートの終了を検知すると、保留していた処理を再開する機能が含まれていてもよい。ここで、要素プログラムのアップデート対応機能が対応する「他の要素プログラム」とは、例えば、当該要素プログラムが処理を依頼する依頼先の要素プログラムである。例えば、アップデート対応機能は、当該要素プログラムから依頼先要素プログラムに処理を依頼した際、所定時間以内に応答がない場合、その依頼先要素プログラムがアップデート中であると判定し、UIコンポーネントにその依頼先要素プログラムがアップデート中であることを通知する。UIコンポーネントは、その通知によりその依頼先要素プログラムがアップデート中であることを知り、例えばその依頼先要素プログラムを必要とする処理の実行指示をユーザから受け付けないようにする。
読取り処理コンポーネント210や通信コンポーネント250のようなコンポーネント30は、図3に示すように、本体処理部32と実行制御部34を有する。本体処理部32は、当該コンポーネントが外部(ユーザ、他の装置又は他の要素プログラム等)に提供する機能のための処理を担う部分であり、例えば通信コンポーネント250における各プロトコルのためのモジュール(図2のFTP通信モジュール252〜SMB通信モジュール258等)がこれに該当する。一方、実行制御部34は、本体処理部32の処理の実行を制御するものであり、他の要素プログラムとの指示やデータのやりとりの機能、前述のアップデート対応機能等を備える。実行制御部34の処理手順の例を図3に示す。この処理の前提として、ユーザが複合機のUIに対してジョブの実行を指示した場合、ファームウエア内のそのジョブに関係する各コントローラ、各コンポーネント、各モジュール等の要素プログラムが、順に動作してそのジョブのための処理を実行する。ジョブの内容に応じて、どの要素プログラムがどのような順で動作するかは決まっており、その順に従ってそれら要素プログラムが実行されていく。例えば、ジョブの実現のために実行される一連の要素プログラムが、それぞれ前の要素プログラムから処理依頼を受けて処理を実行し、次の要素プログラムにその処理の次の処理の実行を依頼する。例えば、そのジョブを構成する各要素プログラムが、そのジョブにおける要素プログラムの実行順序を規定したジョブデータを参照することで、次に処理を実行する要素プログラム(すなわち処理依頼の送信先)を特定する。図4の手順は、このようなジョブの処理の中での、1つのコンポーネント30が実行する処理を示している。
実行制御部34は、他の要素プログラムから処理依頼を受け取ると、図4の処理手順を開始する。実行制御部34は、本体処理部32にその処理依頼に対応する処理を実行させる(S10)。その処理が完了すると、実行制御部34は、次の処理を担うコンポーネント30に処理依頼を送信する(S12)。依頼先のコンポーネント30は、処理依頼を受け取ると受領応答を返す。実行制御部34は、S12で送信した処理依頼に対して受領応答が返ってくるのを所定時間待つ(S14)。所定時間以内に受領応答が返ってくれば、依頼先のコンポーネント30は正常に動作していると言うことなので、実行制御部34は処理を終える。所定時間以内に受領応答が返ってこない場合、依頼先のコンポーネント30はアップデート中で動作していないということを示す。この場合、実行制御部34は、UIコンポーネントに対して、依頼先のコンポーネント30がアップデート中であることを通知する(S16)。この通知を受けて、UIコンポーネントは、例えば、そのジョブがアップデートのため中断され、アップデートが終了次第再開される旨をUI画面に表示する。また実行制御部34は、例えば、その依頼先のコンポーネント30への処理依頼を保留(記憶)し(S18)、依頼先のコンポーネント30のアップデートが完了するのを待つ(S20)。例えば実行制御部34が定期的にその依頼先に問合せを送り、応答が返ってきたらアップデートが完了したと判定することで行えばよい。依頼先コンポーネントのアップデート完了を検知すると、実行制御部34は、依頼先コンポーネントのアップデートが完了したことをUIコンポーネントに通知する(S22)。UIコンポーネントは、依頼先コンポーネントのアップデートが完了した旨の通知を受け取ると、中断中のジョブが再開した旨をUI画面に表示する。また実行制御部34は、保留していた処理依頼を依頼先コンポーネントに再送し(S24)、ジョブの実行を再開する。
図4の例では、依頼先のコンポーネント30がアップデート中と判断した場合、実行制御部34は、処理依頼を保留し、アップデートが完了した後でその処理依頼を依頼先のコンポーネント30に再送した。すなわち、この例では、ジョブの実行を依頼先のコンポーネント30の直前で中断し、アップデートの完了後にその依頼先のコンポーネント30からそのジョブの処理を再開する。
別の例として、依頼先のコンポーネント30がアップデート中であることを検知した場合、それまで実行していたジョブを中止してもよい。この場合、実行制御部34は、図4の手順のS14で依頼先がアップデート中であることを検知すると、S16でその旨をUIコンポーネントに通知すると共に、ジョブを中止する(例えばそのジョブの管理情報である上述のジョブデータを破棄するか、又はそのジョブデータにジョブが中止された旨を記録する)。この例では、依頼先コンポーネントがアップデート中である旨の通知を受けたUIコンポーネントは、ジョブが中止されたことを表示した後、通常のメニュー画面の表示に戻る。ただし、その依頼先コンポーネントのアップデートが完了するまでの間は、UIコンポーネントは、その依頼先コンポーネントを用いるジョブの実行指示を受け付けない。UIコンポーネントは、その依頼先コンポーネントのアップデートが完了したことを知る(例えば依頼先コンポーネント自体がアップデート完了後に起動した際、UIにアップデート完了を通知する)と、これまで受付禁止にしていたジョブを受け付け可能とする。
図3及び図4の例はコンポーネント30を例にとったものであったが、コントローラレベル、モジュールレベルの要素プログラムも、同様の制御を行ってよい。
図5及び図6を参照して、具体的なジョブについての処理の流れを説明する。図5及び図6は、「スキャン・トゥ・メール」ジョブの実行時の、メインコントローラ20内の各コンポーネント間での処理の流れを示している。「スキャン・トゥ・メール」ジョブは、原稿をスキャンし、これにより得られた画像を、ユーザの指定した宛先に電子メールで送信するジョブである。このジョブは、UIコンポーネント205、読取り処理コンポーネント210、画像処理コンポーネント220、蓄積処理コンポーネント230、通信コンポーネント250が、この順に動作することにより実行される。
図5は、通常時、すなわちそれら5つのコンポーネントがすべて稼働中である場合の「スキャン・トゥ・メール」ジョブの流れである。
(1)この流れでは、ユーザが、原稿を原稿送り装置にセットした後、UI画面上にスキャン画面を開き、読取り方式(モノクロかカラーか)、データ形式(PDF等)を指定し、送信プロトコルとして電子メールを指定すると共に、宛先のメールアドレスを選択又は入力する。そして、ユーザがジョブの実行開始の指示を入力すると、UIコンポーネント205が、「スキャン・トゥ・メール」ジョブの一連の流れの最初の処理を担当する読取り処理コンポーネント210にジョブ開始を指示する。この指示には、「スキャン・トゥ・メール」ジョブの流れを示す読取り処理コンポーネント210、画像処理コンポーネント220、蓄積処理コンポーネント230、通信コンポーネント250というコンポーネントの並びの情報が含まれる。
(2)読取り処理コンポーネント210は、ジョブ開始指示を受けて、原稿送り装置上の原稿を読み取る。
(3)読取りが完了すると、読取り処理コンポーネント210は、次の処理を担当する画像処理コンポーネント220に画像処理依頼を送る。この依頼には、読み取りにより得た画像データのアドレスが含まれる。
(4)画像処理コンポーネント220は、その依頼に応じて、その画像データに対して所定の画像処理を実行する。
(5)画像処理が完了すると、画像処理コンポーネント220は、次の処理を担当する蓄積処理コンポーネント230に蓄積処理依頼を送る。この依頼には、画像処理後の画像データのアドレスが含まれる。
(6)蓄積処理コンポーネント230は、その依頼に応じて、その画像データを、例えば圧縮した後、HDD等の大容量記憶装置に保存する。ここで、蓄積処理コンポーネント230は、その画像データを、その画像データを特定する識別情報と対応付けて蓄積する。この識別情報は、ジョブの開始の際に例えば読取り処理コンポーネント210が生成し、蓄積処理コンポーネント230に伝達したものである。識別情報を蓄積先のパス名とし、そのパス名に画像データを蓄積する方式であってもよい。
(7)読取り処理コンポーネント210は、通信コンポーネント250に対して、外部送信開始依頼を送る。この依頼には、蓄積処理コンポーネント230により蓄積された画像データを特定する識別情報と、送信プロトコル(この場合は電子メール)の指定と、宛先の情報が含まれる。
(8)通信コンポーネント250は、外部送信開始依頼を受け取ると、その依頼に含まれる識別情報を蓄積処理コンポーネント230に渡し、蓄積されたデータを要求する。蓄積処理コンポーネント230は、受け取った識別情報に対応する画像データを大容量記憶装置から読み出し(読み出したデータが圧縮されている場合は伸張し)、読み出した画像データを通信コンポーネント250に渡す。
(9)通信コンポーネント250は、蓄積処理コンポーネント230から取得した画像データを添付した電子メールを、外部送信開始依頼に含まれる宛先に対して送信する。
(10)スキャン結果の画像データの送信が完了すると、通信コンポーネント250は、依頼元である読取り処理コンポーネント210に完了通知を送る。
(11)通信コンポーネント250から完了通知を受け取った読取り処理コンポーネント210は、ジョブが完了した旨の通知をUIコンポーネント205に送る。この通知を受けたUIコンポーネント205は、例えば、「スキャン・トゥ・メール」ジョブが完了した旨を示すバナーを表示したあと、メインメニュー画面300の表示に戻る。
図6は、ユーザから「スキャン・トゥ・メール」ジョブの実行が指示された時に、通信コンポーネント250がアップデート中である場合の処理の流れを示す。読取り処理コンポーネント210、画像処理コンポーネント220、蓄積処理コンポーネント230は稼働中である。
図6に示す処理の流れのうち(1)〜(7)は通常時(図5)と同じである。
(A)上記ステップ(7)の依頼に対し、依頼先である通信コンポーネント250はアップデート中なので、所定時間待っても応答が返ってこない。この場合、読取り処理コンポーネント210(の実行制御部34)は、その依頼先がアップデート中であると判断する。読取り処理コンポーネント210は、そのジョブを一時中断し、アップデートが完了するのを待つ。
(B)また読取り処理コンポーネント210は、UIコンポーネント205に対して、通信コンポーネント250がアップデート中であることを通知する。UIコンポーネント205は、その通知に応じて画面表示を制御し、ユーザからのジョブ受付を制限する(詳細な例は後述)。
(C)読取り処理コンポーネント210は、通信コンポーネント250のアップデートが完了するのを待ち、その完了を検知する。
(D)通信コンポーネント250のアップデートが完了すると読取り処理コンポーネント210は、通信コンポーネント250のアップデートが完了したことを示すジョブ再開通知をUIコンポーネント205に送る。UIコンポーネント205は、その通知に応じて、ジョブ受付の制限を解除する。
(E)読取り処理コンポーネント210は、保留していた外部送信開始依頼を通信コンポーネント250に再送する。
この後のステップ(8)〜(11)の処理は、図5に示した通常時の流れと同じである。
図6の処理のステップ(B)の通知を受けた場合にUIコンポーネント205が表示するUI画面の例を以下に説明する。
この通知を受けたUIコンポーネント205は、1つの例では、例えば図7に示すように、表示中の画面(この例ではメインメニュー画面300)上に、アップデート中であることを示すメッセージバナー310を表示する。この例では、通信コンポーネント250のアップデートが完了次第ジョブを再開するので、このメッセージバナー310には、例えば、処理の完了(すなわちスキャン画像を添付したメールの送信の完了)までに時間がかかることを知らせる文言が表示される。なお、この時点では、原稿のスキャンは終わっているので、ユーザは複合機から離れても問題はない。
また、メッセージバナー310の表示が終了した後、UIコンポーネント205は、別のジョブの実行指示を受け付けてもよい。ただし、この時点では、通信コンポーネント250のアップデート中であるため、通信コンポーネント250を利用するジョブは実行できない。そこで、UIコンポーネント205は、通信コンポーネント250を利用するジョブを受付不可状態としたUI画面を表示する。図8に、その状態のメインメニュー画面300を例示する。メインメニュー画面300上には、コピーボタン302、印刷ボタン304、スキャンボタン306等の、各機能の設定画面を呼び出すためのGUI(グラフィカルユーザーインターフェース)ボタンが表示されている。ユーザが、タッチパネルに表示されたメインメニュー画面300上のいずれかのボタンを押下すると、UIコンポーネント205は、そのボタンに対応する機能の設定画面を表示し、ユーザからその機能についての個々の設定項目の入力を受け付ける。ここで、通信コンポーネント250がアップデート中で動作していない場合、インターネット経由での通信が不可能なので、スキャン機能は利用できない。スキャン結果の画像を電子メールその他の通信プロトコルで送信することができないからである。スキャン以外のコピーや印刷等の機能は、通信コンポーネント250が動作していなくても、通常通り利用できる(FAX送信は、電話回線を経由するため、通信コンポーネント250を利用しない)。このため、メインメニュー画面300上のスキャンボタン306は、利用不可であることを示すためにグレーアウト状態(グレー色の目立たない表示状態)となっており、ユーザがスキャンボタン306を押しても、UIコンポーネント205はスキャンのための設定画面を開かない。スキャン以外の他の機能のボタンは通常状態であり、これらのボタンが押下されると、UIコンポーネント205は、対応する機能についての設定画面を開く。
図8は、アップデート中の要素プログラム(例えば通信コンポーネント250)の影響で使用できない機能を、メインメニュー画面300上で受付不可とするものであった。しかし、これは一例にすぎない。この代わりに、使用できない機能をメインメニュー画面300上では選択(対応するボタンの押下)可能とし、選択後に開くその機能の設定画面上で、その機能が使用できないことを表示してもよい。図9に、図8と同じく通信コンポーネント250がアップデート中に、メインメニュー画面300上のスキャンボタン306が押下されることで開かれたスキャン設定画面320を例示する。スキャン設定画面320には、原稿設定、スキャン設定、保存形式、送信プロトコル等を指定するための入力欄が表示される。また、この例では、そのスキャン設定画面320の上に、ユーザが指定した機能(この場合はスキャン機能)が、ファームウエアのアップデートのためにしばらく利用できないことを示すメッセージバナー322が表示されている。ユーザは、このメッセージバナー322により、スキャン機能がしばらく利用できないことを知る。
また、複合機のスキャン機能が、スキャン結果をネットワーク経由で送信する方式に加え、スキャン結果をローカルに接続された可搬型記録媒体に書き出す方式もサポートしている場合、通信コンポーネント250がアップデート中であっても、後者の方式は利用できる。この場合、UIコンポーネント205は、メインメニュー画面300上でスキャンボタン306を押下可能とし、その押下により開いたスキャンの設定画面320(図10参照)上で、スキャン結果を送信する送信プロトコルの選択欄324を入力不可(グレーアウト状態)としてもよい。
また、図示は省略するが、通信コンポーネント250中の例えばFTP通信モジュール252だけがアップデート中である場合、図10の設定画面320上で、送信プロトコルの選択欄324のうち、FTPのみを選択不可(グレーアウト)としてもよい。このように、モジュール単位でアップデートが行われている場合は、アップデートされているモジュールに依存する機能(UI画面の表示項目に対応)のみを選択不可としてもよい。
このように、UIコンポーネント205は、アップデート中の要素プログラムを用いなくても実行可能な機能については、UI画面上で選択を受け付ける。
図8〜図10に例示した受付可能な機能を制限したUI画面を生成するために、UIコンポーネント205は、UI画面上の各項目と各要素プログラムとの依存関係を示すテーブルを持っている。このテーブルの例を図11に示す。この例のテーブルの縦軸には、第1階層(「階層1」)の画面(メインメニュー画面300)に表示される項目(スキャンボタン306等)毎に、その項目が選択された際に開かれる第2階層の画面(例えばスキャンの設定画面320)に表示される項目(例えば原稿設定等の選択欄に示される選択肢)が示されている。また、そのテーブルの横軸には、各コンポーネントが示されている。そして、階層2の項目の行とその項目が依存しているコンポーネントの列とが交わるセルに、依存関係があることを示す値(図では黒丸で表示)がセットされている。例えば、送信プロトコルの選択肢であるFTPは、通信コンポーネント250に依存しているが、他のコンポーネントには依存していない。UIコンポーネント205は、階層2の項目が依存しているコンポーネントがアップデート中は、ユーザからその項目の選択を受け付けない。例えば、通信コンポーネント250がアップデート中の場合、送信プロトコルについての4つの選択肢(FTP等)についてのユーザからの選択は受け付けない。
図11には、コンポーネントレベルでの依存関係のテーブルを例示したが、UIコンポーネント205は、この他にモジュールレベル(図2のFTP通信モジュール252等)やコントローラレベル(図1参照)での依存関係のテーブルも持っている。UIコンポーネント205は、アップデート中である要素プログラムのレベルに応じたテーブルを参照して、UI画面中の各項目の入力受付の可否を決定する。例えば、図6の処理の例では、UIコンポーネント205は、通信コンポーネント250がアップデート中であることを読取り処理コンポーネント210からの通知で検知し、図11に示すコンポーネントレベルでの依存関係テーブルを参照して、階層2の画面(スキャンの設定画面320)における送信プロトコルの選択肢を無効化(入力受付不可)する。
さて、図8〜図10に例示した画面表示によれば、ユーザは自分の希望する機能が現在利用できないことを知ることはできるが、いつになったらアップデートが終了してその機能が利用可能になるかは分からない。そこで、ユーザが希望する場合に、アップデートの完了時に、その旨を例えば電子メールでそのユーザに通知してもよい。例えば、オフィス内の複合機のように、ユーザが複合機に登録されており、ユーザ認証情報入りのICカード等を用いてログインして複合機を使用する形態の場合、そのユーザのアカウントにそのユーザの電子メールアドレスを登録しておけば、複合機はユーザに電子メールを送ることができる。例えば、図12に示すように、アップデート中で利用できない旨を示すメッセージバナー322A内に、アップデート完了時の通知を希望するかどうかを問い合わせる文言と、希望の有無を入力するボタン326、328を表示する。ユーザが、アップデート完了時の通知を希望した場合、複合機は、そのユーザの電子メールアドレスに対して、アップデートが完了した旨を示す電子メールを送る。
次に、図13〜図15を参照して、別の例を説明する。この例では、複合機のファームウエアのメインコントローラ20は、既に説明したUIコンポーネント205、読取り処理コンポーネント210、画像処理コンポーネント220等の他に、ジョブ実行制御コンポーネント208を含む。ジョブ実行制御コンポーネント208は、UIコンポーネント205に対してユーザが指示したジョブの実行を制御する。すなわち、ジョブ実行制御コンポーネント208は、UIコンポーネント205に対してユーザが指定したジョブの情報(ジョブデータ)を受け取り、そのジョブの処理の流れ(フロー)を構成する各コンポーネントに対して、順に処理の開始を指示していく。各コンポーネントは、ジョブ実行制御コンポーネント208から開始の指示を受けると、当該コンポーネントの処理を実行し、処理が完了すると、処理結果をジョブ実行制御コンポーネント208に応答する。ジョブ実行制御コンポーネント208は、その応答を受けて、次のコンポーネントに処理開始を指示する。なお、図13では、メインコントローラ20内にジョブ実行制御コンポーネント208があるとしたが、同様のジョブ実行制御機能がコントロラーレベル(図1参照)の要素プログラムとして用意されていてもよい。
さて、図13の例では、ファームウエアの要素プログラムのアップデートが開始される際、そのアップデート処理を実行するアップデータプログラムが、ジョブ実行制御コンポーネント208に対して、その要素プログラムのアップデートの開始の通知を送る。この通知には、その要素プログラムの識別情報が含まれる。また、アップデータプログラムは、要素プログラムのアップデートが完了した際に、その要素プログラムの識別情報を含む完了通知をジョブ実行制御コンポーネント208に送る。なお、アップデータプログラムは、ファームウエア10内に含まれていてもよいし、要素プログラムのアップデート情報と共に外部(例えばネットワーク上のサーバ、又は複合機の保守作業者が用いる端末)から複合機の情報処理部内にダウンロードされてもよい。
図14に、ジョブ実行制御コンポーネント208が行うファームウエアのアップデートに関する処理の手順を例示する。図14の手順は、アップデータプログラムからアップデートの開始が通知されたときに開始する。この手順では、まずジョブ実行制御コンポーネント208は、その通知が示すアップデート対象の要素プログラムに依存する機能(UI画面上の項目に対応)を特定する(S30)。この特定は、上述の依存関係のテーブル(図11)を用いて、上述と同様の手順で行えばよい。次に、ジョブ実行制御コンポーネント208は、UIコンポーネント205に対して、S30で特定した機能のUI状態を選択不可状態に変更させる(S32)。これにより、UIコンポーネント205は、図8、図9又は図10のように、アップデート中の要素プログラムに依存する機能が選択できない状態のUI画面を表示する。この後、ジョブ実行制御コンポーネント208は、アップデータプログラムから、その要素プログラムのアップデートが完了したことを知らせる完了通知が来るのを待つ(S34)。完了通知が来た場合、ジョブ実行制御コンポーネント208は、UIコンポーネント205に対して、S30で特定した機能のUI状態を通常状態(選択や入力を受け付ける状態)に戻すよう指示する(S36)。このあとUIコンポーネント205は、通常のUI画面を表示し、ユーザから通常通り指示を受け付ける。
図14の例は、アップデート中の要素プログラムに依存する機能の実行指示を受け付けないようにするものであった。これに対して、別の例として、アップデート中の要素プログラムに依存する機能であっても、特定の場合には実行指示を受け付けるようにしてもよい。ここでいう特定の場合とは、アップデート中の要素プログラムが、その機能(ジョブ)の処理フローにおける要素プログラムの実行順(例えば図5の例における読取り処理コンポーネント210から通信コンポーネント250までの4つのコンポーネントの並び順)において、蓄積処理より後に位置する場合である。すなわち、画像データという大きなデータを取り扱う複合機の場合、入力された画像や生成した画像をいったん大容量記憶装置に蓄積してから後続の処理を行うことがある。複合機の備えるメモリは、1ジョブの全ページ分の画像データを記憶できるとは限らない。このため、ジョブの処理フローにおける要素プログラムの実行順で仮に蓄積処理以前の要素プログラムがアップデート中で処理が実行できない場合、その要素プログラムより前の要素プログラム群の処理結果は蓄積されておらず、メモリ上に保持できるとも限らないので、アップデート中の要素プログラムの前の段階までの処理結果を保持してジョブを保留状態とすることはできない。これに対し、処理フローにおいて蓄積処理より後の要素プログラムがアップデート中である場合、蓄積処理の完了した段階でジョブをいったん保留し、アップデートが完了した後、処理フローにおける蓄積処理の次のステップ(要素プログラム)からジョブを再開することができる。この例のジョブ実行制御コンポーネント208の処理手順を図15に例示する。
図15の手順では、ジョブ実行制御コンポーネント208は、図14の場合と同様、まず、アップデート対象の要素プログラムに依存する機能を特定する(S30)。次に、ジョブ実行制御コンポーネント208は、特定した機能毎に、その機能のための処理フローにおいて、そのアップデート対象の要素プログラムが、蓄積処理(例えば蓄積処理コンポーネント230)以前(ケース(a))か、蓄積処理より後(ケース(b))かを判定する(S40)。ジョブ実行制御コンポーネント208は、各機能(ジョブ)の処理フローの情報を保持しているので、この情報を参照して判定する。そして、ケース(a)に該当する機能については、図14の手順と同様選択不可状態とするようUIコンポーネント205に指示し、ケース(b)に該当する機能については、アップデート中のため処理に時間がかかる旨のメッセージを表示した上で、選択を受け付ける状態とするようUIコンポーネント205に指示する(S42)。この後、ジョブ実行制御コンポーネント208は、図14の手順のS34〜S36の処理を実行する。
さて、複合機のファームウエアのアップデートは、例えば、ファームウエアのアップデート情報を配信するインターネット上のサーバからアップデート情報が配信されたとき、あるいは保守作業員が保守用端末を複合機に接続してファームウエアのアップデート処理を開始したとき、等に実行される。本実施形態では、ファームウエアのアップデート中も、アップデートの対象となっている要素プログラムに依存しない機能については利用が可能であるため、複合機が完全に利用不可能となるわけではない。とはいっても、アップデート中の要素プログラムに依存する機能を利用したいユーザにとっては、アップデート中の期間はその複合機が利用できないことになる。以下では、このようなユーザの不便を軽減する制御の例を説明する。
図16に例示するように、この例におけるメインコントローラ20は、履歴記録コンポーネント270とアップデート管理コンポーネント280を有する。
履歴記録コンポーネント270は、複合機の利用履歴を記録する。ここでの利用履歴は、いつ、どの機能が利用されたか(あるいはどの機能についての利用を要求されたか)を示すものであればよい。ここで、複合機の機能は、要素プログラムの階層構造(図1、図2参照)に対応した階層構造を持っているので、利用履歴情報には、例えば、ジョブが実行された際、そのジョブにおいて各階層のどの機能が利用されたかを、その実行の日時と対応づけて記録する。例えば、「2017/8/30 16:37:25 スキャン、片面、モノクロ、PDF、電子メール」のような利用履歴情報である。このうち、スキャンはコンポーネントレベルであり、残りの片面、モノクロ等はモジュールレベルである。
ここで、履歴記録コンポーネント270は、実際に実行されたジョブについての履歴情報だけでなく、ユーザが指示したがファームウエアのアップデートのために実行されなかった場合の履歴情報を記録してもよい。例えば、読取り処理コンポーネント210のアップデート中にはスキャン機能は利用できないが、上述したように、メインメニュー画面300(図8参照)ではスキャンボタン306の選択を受け付け、その選択に応じて表示されるスキャンの設定画面320(図9参照)上で、アップデートのためスキャンが利用できない旨を表示する(メッセージバナー322)こともできる。このとき、ユーザがスキャン機能を利用したとして履歴に記録する。すなわち、実際にはスキャンは実行されていないが、スキャンの利用回数に加えるのである。これにより、各機能に対するユーザの需要の程度が利用履歴に記録され、次に説明する集計に反映されることになる。
また履歴記録コンポーネント270は、記録した利用履歴を集計する機能を有する。この集計では、各機能の利用回数の累計や、各機能がよく利用される時間帯(高利用時間帯と呼ぶ)を求める。例えば、ある機能の単位時間あたりの利用回数(あるいはその回数の当該機能の累計利用回数に対する割合)が閾値以上である時間帯を、その機能の高利用時間帯とすればよい。図17に、履歴記録コンポーネント270が生成する集計結果データの例を示す。この例では、階層1(コンポーネントレベル)のスキャン機能について、その下位階層である階層2(モジュールレベル)の各機能の利用回数と高利用時間帯が示されている。なお、高利用時間帯を、平日と休日に分けて、あるいは曜日毎に求め、集計結果データに記録してもよい。
図16の説明に戻ると、アップデート管理コンポーネント280は、履歴記録コンポーネント270が生成した利用履歴の集計結果データを参照して、ファームウエアのアップデート処理の実行を管理する。すなわち、アップデート管理コンポーネント280は、集計結果データに示されるある機能の高利用時間帯には、なるべくその機能が依存する要素プログラムのアップデート処理をしないように制御する。また、緊急度の高いアップデートの場合、高利用時間帯に実行しなければならなくなる場合もあるが、その場合でも、アップデート中にユーザが利用できない機能をできるだけ少なくするよう制御する。
図18に、アップデート管理コンポーネント280の処理手順を例示する。この手順は、サーバ等から複合機に対してファームウエアアップデートの指示が送られてきた場合に実行される。その指示には、アップデート用のデータと、このデータがファームウエア中のどの要素プログラムについてのものかを示す情報とが含まれる。また、アップデート用のデータには、要素プログラムの階層構造(図1、図2参照)に従って各階層の要素プログラムについてのアップデート用データが識別できる形で含まれている。例えば、通信コンポーネント250についてのアップデート用データには、そのコンポーネントの下位のFTP通信モジュール252等のモジュールのうち、アップデートの対象である各モジュールについてのアップデート用データが、それぞれ識別可能な状態で含まれている。
アップデート管理コンポーネント280は、アップデート対象の要素プログラムについてのアップデート指示を受けると、その要素プログラムに対応する機能についての高利用時間帯を集計結果データから取得する(S50)。例えば読取り処理コンポーネント210についてのアップデート指示を受けた場合、読取り処理コンポーネント210の高利用時間帯を取得する。次にアップデート管理コンポーネント280は、現在時刻が高利用時間帯に該当するか否かを判定する(S52)。高利用時間帯に該当しない場合、指示されたアップデートを今実行してもユーザへの影響は少ないので、アップデート管理コンポーネント280は、そのアップデートを実行する(S54)。このアップデートでは、アップデート対象として指示された要素プログラムを分割せずにまとめてアップデートする。
S52で現在時刻が高利用時間帯に該当すると判定した場合、アップデート管理コンポーネント280は、今回のアップデートが緊急のものかどうかを判定する(S56)。緊急か否かは、アップデート指示のパラメータとして指定されているので、そのパラメータを参照して判定すればよい。緊急でないと判定した場合、アップデート管理コンポーネント280は、今回指示されたアップデートを、その高利用時間帯が終わった後に実行するようアップデートスケジュールを設定する(S58)。この後、アップデート管理コンポーネント280は、スケジュールした時刻が到来すると、保存していたアップデート用のデータを用いて、対象の要素プログラムのアップデートを行う。
S56で今回のアップデートが緊急のものでないと判定した場合、アップデート管理コンポーネント280は、今回のアップデート対象の要素プログラムが下位レベルの要素プログラムに分けることができるかどうかを判定する(S60)。図2の例で説明すると、今回のアップデート対象が通信コンポーネント250である場合、下位のFTP通信モジュール252等の複数のモジュールに分割できるので、S60の判定結果はYesとなる。一方、今回のアップデート対象がFTP通信モジュール252である場合、FTP通信モジュール252は階層構造の最下位なので、S60の判定結果はNoとなる。
S60の判定結果がNoの場合、アップデート管理コンポーネント280は、アップデート対象の要素プログラムをアップデートする(S54)。
S60の判定結果がYesの場合、アップデート管理コンポーネント280は、アップデート対象の要素プログラムをその下位レベルの複数の要素プログラムに分け、下位レベルの要素プログラムを1つずつアップデートする(S62)。アップデート対象の要素プログラムをまとめてアップデートすると、アップデート中はその要素プログラムに依存する機能がすべて利用できない(あるいは時間がかかる等の制約が出てくる)。これに対して、下位レベルの要素プログラムごとに分けてアップデートすれば、個々の時点で利用できないのはその時点でアップデート中の下位レベルの要素プログラムに依存する機能のみであり、アップデート対象の要素プログラムに依存する機能が一度に利用できなくなることはない。なお、アップデート対象の要素プログラムをまとめてアップデートする方が、下位レベルに分けて分割アップデートするよりも所要時間が短いので、この例では、まとめてアップデートしてもユーザへの影響が少ない場合(高利用時間帯以外の場合等)にはまとめてアップデートしている。
図18に示した処理はあくまで一例に過ぎない。別の例として、アップデートが指示された際、現在時刻がその対象の要素プログラムに依存する機能の高利用時間帯に該当しなければそのアップデートをすぐに実行し、該当すればそのアップデートを高利用時間帯の後に実行するという制御もあり得る。更に別の例として、アップデートが指示された際、現在時刻がその対象要素プログラムに依存する機能の高利用時間帯に該当しなければその要素プログラムをまとめてアップデートし、該当すれば下位レベルの要素プログラムに分割して順次アップデートするという制御もあり得る。また、単位時間あたりの利用回数が多い機能が依存している要素プログラムをアップデートする場合にはその要素プログラムを下位レベルに分割して順にアップデートし、単位時間あたりの利用回数が多い機能が依存していない要素プログラムをアップデートする場合には、その要素プログラム全体をまとめてアップデートしてもよい。
以上の例では、複合機のファームウエアのアップデートを例にとったが、本実施形態の手法は、複合機以外の情報処理装置のソフトウエアのアップデート一般に適用可能である。
以上に例示した複合機等の情報処理は、例えば、内蔵されるコンピュータにそれら各装置の機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)を制御するHDDコントローラ、各種I/O(入出力)インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVDなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがRAMに読み出されCPU等のプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
10 ファームウエア、12 コピーコントローラ、14 印刷コントローラ、16 スキャンコントローラ、18 FAXコントローラ、20 メインコントローラ、22 オプションコントローラ、30 コンポーネント、32 本体処理部、34 実行制御部、205 UIコンポーネント、208 ジョブ実行制御コンポーネント、210 読取り処理コンポーネント、220 画像処理コンポーネント、230 蓄積処理コンポーネント、240 印刷処理コンポーネント、250 通信コンポーネント、252 FTP通信モジュール、254 メール通信モジュール、256 HTTP通信モジュール、258 SMB通信モジュール、260 セキュリティコンポーネント、262 証明書管理モジュール、264 暗号エンジンモジュール、266 履歴管理モジュール、268 暗号化モジュール、270 履歴記録コンポーネント、280 アップデート管理コンポーネント。

Claims (14)

  1. プロセッサと、
    前記プロセッサにより実行される複数の要素プログラムを含むソフトウエアを記憶する記憶装置と、
    を含み、
    前記複数の要素プログラムのうちの少なくとも1つの要素プログラムは、他の要素プログラムが更新中である場合、当該他の要素プログラムが更新中であることに対応するための特定処理を前記プロセッサに実行させる、ことを特徴とする情報処理装置。
  2. 前記少なくとも1つの要素プログラムは、依頼対象処理を依頼した他の要素プログラムが更新中である場合に前記特定処理を実行し、
    前記特定処理は、前記他の要素プログラムの更新が完了した後に、前記他の要素プログラムに対して再度前記依頼対象処理を依頼することを含む、請求項1に記載の情報処理装置。
  3. 操作画面を生成する画面生成手段を更に含み、
    前記特定処理は、前記他の要素プログラムが更新中であることを前記画面生成手段に通知する処理を含み、
    前記画面生成手段は、実行されている前記要素プログラムから他の要素プログラムが更新中であることを通知された場合、前記情報処理装置がユーザに提供する複数の機能のうち、当該他の要素プログラムを用いる機能について、当該機能の利用に制約があることを示す第1の操作画面を生成する、請求項1又は2に記載の情報処理装置。
  4. 前記画面生成手段は、前記第1の操作画面として、前記複数の機能のうち更新中である前記他の要素プログラムを用いない機能については、制約なく利用を受け付ける画面を生成する、ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記画面生成手段は、前記複数の機能の各々と、その機能を実現するために用いられる1以上の前記要素プログラムとの対応関係の情報に従い、前記他の要素プログラムを用いる機能を特定する、ことを特徴とする請求項3又は4に記載の情報処理装置。
  6. 前記画面生成手段は、
    前記複数の機能のうち使用する機能の選択をユーザから受け付けるための第2の操作画面を生成し、
    前記第2の操作画面に対して前記ユーザが選択した機能が、更新中である前記他の要素プログラムを用いるものである場合に、前記第1の操作画面として、当該機能が利用不可であることを示す画面を生成する、
    請求項4又は5に記載の情報処理装置。
  7. 前記画面生成手段は、前記複数の機能のうち、更新中であることが通知された前記他の要素プログラムが、その機能のために実行される処理の流れの中で蓄積処理以前に実行される機能については、前記第1の操作画面としてその機能が実行不可であることを示す画面を生成し、前記他の要素プログラムが、その機能のために実行される処理の流れの中で蓄積処理より後に実行される機能については、前記第1の操作画面として、その機能は実行可能だが完了までに時間がかかることを示す画面を生成する、請求項4〜6のいずれか1項に記載の情報処理装置。
  8. 前記第1の操作画面が表示されていたときに前記情報処理装置を操作していたユーザに対して、前記他の要素プログラムの更新の完了に応じて前記他の要素プログラムを用いる前記機能が利用可能となったときに、前記機能が利用可能となったことを示す通知を行う通知手段、
    を含む、請求項4〜7のいずれか1項に記載の情報処理装置。
  9. 前記第1の操作画面は、前記ユーザに対して前記他のプログラムの更新の完了に応じて前記機能が利用できるようになったときに通知を求めるか否かの入力を求める画像要素、を含み、
    前記通知手段は、前記画像要素に応じて前記通知を求める旨の入力が前記ユーザからなされた場合に、前記他の要素プログラムの更新の完了に応じて前記他の要素プログラムを用いる前記機能が利用可能となったときに前記通知を行う、請求項8に記載の情報処理装置。
  10. 前記複数の要素プログラムの各々の使用状況を示す履歴情報を記録する履歴記録手段と、
    前記履歴情報に応じて前記ソフトウエアの更新を制御する更新制御手段と、
    を更に含む、請求項1〜9のいずれか1項に記載の情報処理装置。
  11. 前記更新制御手段は、前記履歴情報において更新の対象である要素プログラムの使用頻度が閾値以上である期間は、当該要素プログラムの更新を行わない、請求項10に記載の情報処理装置。
  12. 前記更新制御手段は、前記履歴情報において更新の対象である要素プログラムの使用頻度が閾値以上である期間内でも特定の場合には当該要素プログラムの更新を行い、この場合の更新では、当該要素プログラムを構成する下位の要素プログラムの各々を単位として更新を実行する、請求項10又は11に記載の情報処理装置。
  13. 前記履歴記録手段は、前記第2の操作画面において前記ユーザが機能を選択した場合に、その機能が更新中である前記他の要素プログラムを用いるために使用不可であっても、その機能に用いられる各要素プログラムがそのとき使用されたことを示す履歴情報を記録する、
    請求項5を引用する請求項10〜12のいずれか1項に記載の情報処理装置。
  14. 情報処理装置に含まれる記憶装置内に記憶される複数の要素プログラムを含むプログラムであって、
    前記複数の要素プログラムのうちの少なくとも1つの要素プログラムは、他の要素プログラムが更新中である場合、当該他の要素プログラムが更新中であることに対応するための特定処理を前記情報処理装置内のプロセッサに実行させる、プログラム。
JP2017180191A 2017-09-20 2017-09-20 情報処理装置及びプログラム Active JP7059544B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017180191A JP7059544B2 (ja) 2017-09-20 2017-09-20 情報処理装置及びプログラム
US16/123,681 US11301184B2 (en) 2017-09-20 2018-09-06 Information processing apparatus and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017180191A JP7059544B2 (ja) 2017-09-20 2017-09-20 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2019057037A true JP2019057037A (ja) 2019-04-11
JP7059544B2 JP7059544B2 (ja) 2022-04-26

Family

ID=65720195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017180191A Active JP7059544B2 (ja) 2017-09-20 2017-09-20 情報処理装置及びプログラム

Country Status (2)

Country Link
US (1) US11301184B2 (ja)
JP (1) JP7059544B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473703B1 (ja) 2023-03-16 2024-04-23 新コスモス電機株式会社 警報器

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7262938B2 (ja) 2018-06-29 2023-04-24 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
CN110147213B (zh) * 2019-06-20 2022-06-14 迅镭智能(广州)科技有限公司 基于扫描器的打印检测方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109476A (ja) * 2011-11-18 2013-06-06 Canon Inc 画像形成装置、制御方法、及びプログラム
JP2014115779A (ja) * 2012-12-07 2014-06-26 Canon Inc 画像処理装置、情報処理方法及びプログラム
JP2017142684A (ja) * 2016-02-10 2017-08-17 株式会社リコー 機器管理システム、機器管理装置およびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234056B2 (en) * 2002-09-24 2007-06-19 Inrange Technologies Corp. Method and apparatus for downloading executable code in a non-disruptive manner
JP2006004177A (ja) 2004-06-17 2006-01-05 Alps Electric Co Ltd プログラムのダウンロード方法
JP5489555B2 (ja) * 2009-06-25 2014-05-14 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
WO2012150608A1 (en) * 2011-04-30 2012-11-08 Ineda Systems Pvt. Ltd Peripheral device sharing in multi host computing systems
JP5984621B2 (ja) * 2012-10-22 2016-09-06 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109476A (ja) * 2011-11-18 2013-06-06 Canon Inc 画像形成装置、制御方法、及びプログラム
JP2014115779A (ja) * 2012-12-07 2014-06-26 Canon Inc 画像処理装置、情報処理方法及びプログラム
JP2017142684A (ja) * 2016-02-10 2017-08-17 株式会社リコー 機器管理システム、機器管理装置およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7473703B1 (ja) 2023-03-16 2024-04-23 新コスモス電機株式会社 警報器

Also Published As

Publication number Publication date
US11301184B2 (en) 2022-04-12
JP7059544B2 (ja) 2022-04-26
US20190087133A1 (en) 2019-03-21

Similar Documents

Publication Publication Date Title
JP6926692B2 (ja) 印刷システムおよびプログラム
US8805961B2 (en) Reading device and communication system
US20040205261A1 (en) Image forming apparatus and control method therefor, program for executing the control method and storage medium storing the program
JP4810598B2 (ja) 複合機及びシステム
JP4298371B2 (ja) 画像形成装置及び当該装置におけるプログラム起動方法、画像形成システム及びそのプログラムと記憶媒体
US20070208827A1 (en) Image processing system including plurality of image processing apparatuses connected to network for use by plurality of users, and image processing apparatus included in the image processing system
JP6066641B2 (ja) データ送信装置及びその制御方法、並びにプログラム
JP2019005969A (ja) 印刷システムおよびプログラム
JP5120334B2 (ja) 画像形成装置
JP2019032716A (ja) 印刷システム、プリンタドライバプログラム
JP4462320B2 (ja) 画像送信装置、画像送信方法、及び画像送信プログラム
JP2019057037A (ja) 情報処理装置及びプログラム
US20100103456A1 (en) Apparatus and system of image processing apparatus, and medium storing image processing control program
CN116208715A (zh) 图像处理装置及显示控制方法
JP2019075762A (ja) ジョブ処理装置及びその制御方法、並びにプログラム
JP6488729B2 (ja) 記入フォーム提供装置、画像形成装置及びプログラム
JP4710942B2 (ja) 画像処理装置、連携ジョブの実行方法及び実行プログラム
JP2011138348A (ja) 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム
JP5562068B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP6213405B2 (ja) 情報処理装置、画像処理装置、外部サービス利用方法
CN111464712B (zh) 图像处理设备和方法
JP5647756B2 (ja) 管理サーバー、管理サーバー用プログラム、および管理サーバーを備えたネットワークシステム
JP5765181B2 (ja) 画像形成装置、代理プリント方法および代理プリントプログラム
JP4715312B2 (ja) 画像形成装置,画像形成システム及びファイル管理プログラム並びに該プログラムを記録した記録媒体
JP5773937B2 (ja) 画像形成システムおよび管理サーバープログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211101

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220328

R150 Certificate of patent or registration of utility model

Ref document number: 7059544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150