以下、添付図面を参照しながら、本発明に係る機器管理システム、機器管理装置およびプログラムの一実施形態を詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。また、各実施形態は、内容を矛盾させない範囲で、適宜組み合わせることができる。
本実施形態の機器管理システムは、機器管理装置と、機器管理装置と通信する複数の機器と、機器管理装置と通信するサーバ装置とを備える。機器管理装置は、複数の機器の各々から、機器を利用した時刻ごとに、機器を識別する識別情報と、機器の機種を示す機種情報と、機器の1以上の機能の中から利用した機能を示す利用機能情報とを少なくとも対応付けた利用情報を取得する。機器管理装置は、サーバ装置から、ファームウェア、及び該ファームウェアの適用対象となる機器の機種を示す対象機種情報と該ファームウェアの適用対象となるプログラム部品を示す対象部品情報を含む付帯情報を取得する。機器管理装置は、付帯情報に含まれる対象部品情報を用いて、プログラム部品に対応する機能を示す機能情報を特定し、利用情報の中から付帯情報に含まれる対象機種情報に対応する機種情報を特定する。機器管理装置は、利用情報を参照し、特定した機種情報と、特定した機能情報に対応する利用機能情報と、時刻とを用いて、機器の識別情報ごとに、利用機能情報で示される機能を利用した回数を示す回数情報を算出し、機器の識別情報ごとに、算出した回数情報を用いて機器の重要度を示す重要度情報を算出する。機器管理装置は、重要度情報に基づいて、機器の識別情報ごとに、ファームウェアを適用する予定を示す更新予定情報を生成し、更新予定情報に基づいて、ファームウェアを含み、かつ、該ファームウェアへの切り換えを要求する更新要求を機器に送信する。機器は、更新要求に基づいて、更新要求に含まれるファームウェアを用いて、該ファームウェアへの切り換えを実行する。これにより、ファームウェア更新による問題が発生した場合でも通常の業務に与える影響を低減させることができる。
以下では、本実施形態の機器管理装置を、機器(画像処理装置)とサーバ装置及びクライアント情報処理装置と通信して機器を遠隔管理する機器管理システムの一部の装置として実現する例を説明する。本実施形態の機器管理装置が適用可能な機器管理システムは、このようなシステムに限られるものではない。また、以下では、本発明に係る機器を、複合機(MFP:Multifunction Peripheral)に適用した場合を例に挙げて説明するが、これに限定されるものではない。なお、複合機とは、印刷機能、複写機能、スキャナ機能、及びファクシミリ機能のうち少なくとも2つの機能を有する装置である。また、機器は、MFPに限ることはなく、プリンタ、LP(Laser Printer)、インクジェットプリンタ、FAX装置、デジタル複写機、スキャナ装置、プロジェクタ、デジタルカメラ、その他産業用カメラなどでもよい。
まず、図1を用いて、機器管理システム1の全体構成例と概要について説明する。図1に示すように、機器管理システム1は、機器管理装置10と、機器管理装置10とネットワーク50を介して通信する複数の機器20a、20b、20cと、機器管理装置10とネットワーク60を介して接続するサーバ装置30と、機器管理装置10および機器20a〜20cとネットワーク50を介して通信するクライアント情報処理装置(PC:Personal Computer)40とを備える。ネットワーク60は、例えば、セキュリティが高い専用回線やVPN(Virtual Private Network)、又はインターネット等の社外ネットワークである。ネットワーク50は、例えば、企業のオフィスなどで用いられる社内LAN等の社内コンピュータネットワークである。
以下、複数の機器20a〜20cを区別する必要がない場合は、機器20と表記する。また、ネットワーク50及びネットワーク60を区別する必要がない場合は、ネットワークと表記する。
機器管理装置10は、例えば、機器利用者(ユーザ)側のオフィス等に設置され、機器管理装置10が機器20を制御管理するための例えば管理ソフトウェア(アプリケーションプログラム)を実装している。機器管理装置10は、機器20と通信し、機器20の利用情報の収集、ファームウェアの適用などを行う。機器管理装置10は、サーバ装置30及びクライアント情報処理装置(以下、クライアントPCと表記する)40と通信し、ファームウェアの取得、ファームウェア適用スケジュールの作成を行う。すなわち、機器管理装置10は、ファームウェア更新の予定を示す更新予定情報を生成する。
また機器管理装置10は、例えば、仲介装置の機能を有するクライアントPC40を介して各機器20を管理する。機器管理装置10は、例えば、クライアントPC40を経由して機器20から通知されたデータから、ファームウェアの更新、カウンタ集計(課金処理)、消耗品発注、CEのディスパッチ(カスタマーエンジニアの派遣)などを実施する装置でもある。
機器20は、ネットワーク機器、電子機器、例えば、MFPである。本実施形態では機器20をMFPを一例として説明する。複数の機器20a〜20cは、機器20a〜20cごとにネットワーク50を介してクライアントPC40及び機器管理装置10と通信する。機器20は、例えば機器管理装置10を経由してネットワーク60に接続し、通信を行うことができる。機器20は、例えばワークフロー管理装置(クライアントPC40)で管理され指示された処理に関する情報を受け付け、その処理を実施し、その結果をワークフロー管理装置(クライアントPC40)へ送信する。
サーバ装置30は、ネットワーク60を介して機器管理装置10及びクライアントPC40と通信する。サーバ装置30は、各種のデータ処理を実行するためのオリジナルのデータを保持する。サーバ装置30は、例えば、機器管理装置10、機器20、クライアントPC40に送信するデータ処理を実行するためのデータを保持しておくサーバである。なお、サーバ装置30が保持するデータとしては、例えば、機器20のファームウェア、更新用ファームウェア、機器設定情報、大規模な設定情報などの情報を保持する。すなわち、データ処理を実行するためのデータを保持する。サーバ装置30は、機器管理装置10からの要求に応じて更新用ファームウェアなどを機器管理装置10に送信する。
クライアントPC40は、ネットワーク50を介して機器管理装置10および機器20と通信を行う。クライアントPC40は、例えばファームウェアのアップロードに関して、ユーザからの入力を受け付けた場合、機器管理装置10にファームウェア、更新用ファームウェアを送信する。また、機器20に問題が発生した場合には、機器20やユーザからの入力を受け付けて機器管理装置10に送信する。
図1では、機器管理装置10と接続される機器20の台数が3台である場合を例示しているが、これに限らず、機器20の台数は任意である。また、ネットワーク50に接続されるクライアントPC40の台数が1台である場合を例示しているが、これに限らず、クライアントPC40の台数は任意である。また、サーバ装置30の台数が1台である場合を例示しているが、これに限らず、サーバ装置30の台数は任意である。
また、機器管理システム1では、管理を行うためにクライアントPC40、各機器20にRPC(Remote Procedure Call)により、相互実装するアプリケーションのメソッドに対する処理の依頼である「要求」を送信し、この依頼された処理の結果である「応答」を送受信する機能を有している。すなわち、クライアントPC40又はこれと接続された機器20では、機器管理装置10への要求を生成して、生成した要求を機器管理装置10へ引き渡し、この「要求」に対する「応答」を取得できる。一方で、機器管理装置10は、クライアントPC40、機器20側への要求を生成して、生成した要求をクライアントPC40、機器20側へ引き渡し、この「要求」に対する「応答」を取得できるようになっている。この要求には、クライアントPC40に機器20に対して各種要求を送信させ、機器20からの応答をクライアントPC40を介して取得することも含まれる。
また、RPCを実現するために、PPP(Point−to−Point Protocol)、TCP/IP(Transmission Control Protocol/Internet Protocol)、SOAP(Simple Object Access Protocol)、HTTP(Hyper Text Transfer Protocol)、FTP(File Transfer Protocol)、COM(Component Object Model)、CORBA(Common Object Request Broker Architecture)等の既知のプロトコル(通信規格)、技術、仕様などを利用することができる。
次に、図2を用いて、機器管理装置10のハードウェア構成について説明する。図2は、機器管理装置のハードウェア構成の一例を示す図である。
図2に示すように、機器管理装置10は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、HDD(Hard Disk Drive)104、機器I/F105、ネットワークI/F108を有し、これらはバス109で互いに接続されている。また、機器I/F105には、表示部106及び操作部107が接続されている。
CPU101は演算手段であり、機器管理装置10全体の動作を統括的に制御する。RAM102は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、CPU101が情報を処理する際の作業領域として用いられる。ROM103は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。HDD104は、情報の読み書きが可能な不揮発性の記憶媒体であり、OS(Operating System)や各種の制御プログラム、アプリケーション・プログラム等が格納される。HDD104は、機器管理装置10の各種機能を実現するために必要なファイルやデータ等を格納する。また、HDD104は、管理対象である機器20の管理に用いる各種管理情報パラメータ(機器情報)、管理プログラムを記憶する。
機器I/F105は、表示部106及び操作部107の各々をバス109に接続するためのインタフェースである。表示部106は、各種の情報を表示するための視覚的ユーザインタフェースであり、例えばLCD(Liquid Crystal Display)などで構成される。操作部107は、キーボードやマウス等、ユーザが機器管理装置10に対して各種の情報を入力するためのユーザインタフェースである。ネットワークI/F108は、機器管理装置10をネットワーク50、60に接続するためのインタフェースである。
このようなハードウェア構成において、ROM103に格納されたプログラムや、HDD104又は図示しない光学ディスク等の記憶媒体からRAM102にロードされたプログラムに従ってCPU101が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態の機器管理装置10、サーバ装置30、クライアントPC40の機能を実現する機能ブロックが構成される。なお、サーバ装置30及びクライアントPC40のハードウェア構成は、上記の機器管理装置10と同様であるので、以下では詳細な説明は省略する。
なお、上記の機器管理装置10用プログラムは、インストール可能な形式又は実行可能な形式のファイルで、記録メディア等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。
次に、図3を用いて、機器(MFP)20のハードウェア構成について説明する。図3は、機器(MFP)のハードウェア構成の一例を示す図である。図3に示すように、MFP20は、CPU201と、ROM202と、RAM203と、外部記憶装置204と、エンジン部205と、操作表示部206と、通信I/F207とを備える。これらの各部は、システムバス208により通信可能に接続されている。
CPU201は、ROM202等に記憶されているプログラムをRAM203上に読み出して実行し、MFP20の動作を統括的に制御する。ROM202は、MFP20用のプログラムを記憶している不揮発性記憶装置である。RAM203は、CPU201の演算用のワークエリアとして使用される揮発性記憶装置である。
外部記憶装置204は、画像データ及び印刷データ等の各種データを記憶する装置である。外部記憶装置204は、例えば、HDDまたはSSD(Solid State Drive)等である。
エンジン部205は、スキャナ機能及びプリンタ機能等を実現するハードウェア装置である。ここで、スキャナ機能とは、原稿データを読み取ってスキャナ画像を生成する機能である。また、プリンタ機能とは、スキャナ画像、または外部から送信された画像データに対して画像処理を実行し、出力可能な形式であるプロッタ画像を、印刷用紙に印字する機能である。
操作表示部206は、例えば、タッチパネル等であり、MFP20に対する入力を受け入れると共に、MFP20の状態等を表示する装置である。なお、操作表示部206を操作部と表示部とに分離して構成してもよい。また上記のように、操作表示部206の代わりにスマートフォンなどの携帯端末を操作表示部として用いてもよい。
通信I/F207は、ネットワーク50に接続してデータを通信するためのインタフェースである。
次に、図4を用いて、本実施形態の機器管理装置10、機器20、サーバ装置30及びクライアントPC40の機能について説明する。図4は、機器管理装置、機器、サーバ装置及びクライアントPCの機能構成の一例を示すブロック図である。
まず、機器管理装置10の機能構成について説明する。図4に示すように、機器管理装置10は、CPU101がプログラムを実行することで実現される機能である通信部111と、利用情報取得部112と、ファームウェア取得部113と、機能情報特定部114と、機種情報特定部115と、回数情報算出部116と、業務状況情報生成部117と、重要度情報算出部118と、更新予定情報生成部119と、更新要求部120と、更新実行部121と、記憶部122とを備える。上記各部の一部はCPU101がROM103又はHDD104からソフトウェア(プログラム)を読み出して実行することにより上記各部がRAM102上にロードされ、上記各部がRAM102上に生成されるソフトウェア(プログラム)であってもよい。また、上記各部の一部又は全部を、演算処理を行うプロセッサなどのハードウェア回路で置き換えてもよい。
通信部111は、ネットワーク50を経由して機器20およびクライアントPC40と通信する。通信部111は、複数の機器20a〜20cおよびクライアントPC40とネットワーク50を経由して各種データを送受信信する。また、通信部111は、ネットワーク60を経由してサーバ装置30と通信する。通信部111は、サーバ装置30とネットワーク60を経由して各種データを送受信する。具体的には、例えば、通信部111は、機器20から、機器20を識別する識別情報と、機器20の機種を示す機種情報と、機器20の1以上の機能の中から利用した機能を示す利用機能情報と、該機能を利用した時刻と、該機能を利用した利用者とを少なくとも対応付けた利用情報を受信して機種情報特定部115、回数情報算出部116、業務状況情報生成部117、重要度情報算出部118、更新予定情報生成部119、記憶部122及び対応する各部に受け渡す。また、例えば、通信部111は、サーバ装置30から、機器20のファームウェアを更新するための更新用ファームウェア、及び更新用ファームウェアに付帯する、該更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報と該更新用ファームウェアの適用対象となるプログラム部品を示す対象部品情報と該更新用ファームウェアの更新種類を示す更新情報を含む付帯情報を受信して機能情報特定部114、機種情報特定部115、更新予定情報生成部119、記憶部122及び対応する各部に受け渡す。また、例えば、通信部111は、更新用ファームウェアを含み、かつ、更新用ファームウェアへの切り換え(更新)を要求する更新要求を機器20に送信する。
利用情報取得部112は、複数の機器20の各々から、機器20の識別情報と、機器20の機種を示す機種情報と、機器20の1以上の機能の中から利用した機能を示す利用機能情報と、該機能を利用した時刻と、該機能を利用した利用者とを少なくとも対応付けた利用情報を取得する。利用情報取得部112は、取得した利用情報を例えば、処理を実行した実行ID順にテーブル形式で記憶部122(利用情報データベース)に記憶させる。図5は、利用情報テーブルの一例を示す図である。図5に示すように、利用情報テーブルは、実行IDと、機器IDと、機種と、機器20が設置された場所を示す設置場所と、機器20の機能の中から利用した利用機能と、該機能を利用した利用者と、該機能を利用した利用時刻とを対応付けた情報である。図5の例では、例えば実行ID「1」の機器ID「1」は、機種「MP 1601」、設置場所「2F A地点」、利用機能「Print」、利用者「A」、利用時刻「2015−09−29 10:23:54」であることを示している。なお、利用機能「Print」は「印刷機能」を示し、「Scan」は「スキャナ機能」を示し、「Fax」は「ファクシミリ機能」を示し、「Copy」は「複写機能」を示している。上記の利用情報のうちで、実行IDは、処理を実行した順にIDが割り当てられる。機器ID、機種、設置場所については、機器管理装置10に機器20を登録する際に情報が収集される。なお、データベースのテーブル設計は、例えば正規化するなど任意である。
図4に戻り説明を続ける。ファームウェア取得部113は、サーバ装置30から、機器20のファームウェアを更新するための更新用ファームウェア、及び更新用ファームウェアに付帯する、該更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報と該更新用ファームウェアの適用対象となるプログラム部品(以下、モジュールとも表記する)を示す対象部品情報(対象モジュール情報)と、更新用ファームウェアの更新種類を示す更新情報とを含む付帯情報を取得する。すなわち、ファームウェア取得部113は、サーバ装置30に対してファームウェア更新のための更新用ファームウェア取得要求を送信して、その応答としてサーバ装置30から更新用ファームウェア(新バージョンのファームウェア)と付帯情報をダウンロードする。ファームウェア取得部113は、取得した更新用ファームウェア、及び更新用ファームウェアに付帯する付帯情報を記憶部122に記憶させる。図6は、付帯情報の一例を示す図である。図6に示すように、付帯情報は、更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報(対象機種)と、更新用ファームウェアの適用対象となるプログラム部品(モジュール)を示す対象部品情報(対象モジュール)と、更新用ファームウェアの更新種類を示す更新情報(更新タイプ)とを含んでいる。更新タイプとして、Criticalは「重要」を示し、Maintenanceは「メンテナンス(保守)」を示し、Newは「新規」を示している。
図4に戻り説明を続ける。機能情報特定部114は、更新用ファームウェアの対象モジュール情報を用いて、ファームウェアを適用するプログラム部品(モジュール)に対応する機能を示す機能情報を特定する。すなわち、ファームウェアを更新した場合に影響のある機能を特定する。図7は、機能情報を特定する方法の一例を示す図である。機器管理装置10は、予め機器20の機種ごとに、図7に示すモジュール階層マップを記憶している。モジュール階層マップは、下位のモジュール(プログラム部品)と関連する上位のモジュール(プログラム部品)を矢印で示した階層マップである。すなわち、モジュール階層マップは、下位のモジュール(プログラム部品)に紐付く上位のモジュール(プログラム部品)を順に上位に向かって階層構造で示し、最上位のモジュール(プログラム部品)に紐付く機能情報を特定できる階層マップ図である。なお、モジュール階層マップは、予めモジュールに実装してもよいし、外部装置から取得するようにしてもよい。
機能情報特定部114は、機器20の機種ごとに予め記憶しているモジュール階層マップを用いて、更新用ファームウェアの付帯情報に含まれる、図6に示した対象モジュールの情報から下位のモジュールを入力する。すなわち、付帯情報の対象モジュールと対応するモジュール階層マップの下位のモジュールをスタートとする。そして、モジュール階層マップの矢印を辿って下位から上位に順に向かうことで、対象モジュール(プログラム部品)に対応する(関連する)機能を特定できる。具体的には、図6に示した付帯情報の対象モジュール情報が、例えば「モジュール1A」であった場合、図7の下位の「モジュール1A」をスタートとする。「モジュール1A」から矢印を辿って「モジュール2A」・・・「モジュールnA」、そして「機能B」に到達する。この場合、更新用ファームウェアの対象モジュールを用いて特定される機能は「機能B」である。すなわち、ファームウェアを更新用ファームウェアに更新した場合に、影響のある機能は「機能B」であることが特定できる。このようにして、ファームウェアの適用対象となるモジュール(プログラム部品)とモジュール階層マップを用いてファームウェア更新と関連する機能を特定する。すなわち、付帯情報に含まれる対象部品情報(対象モジュール情報)を用いて、プログラム部品(モジュール)に対応する機能を示す機能情報を特定する。なお、スタートするモジュールは必ずしも最下位のモジュールに限ることはなく、例えば中間の「モジュール2A」をスタートとすることもできるし、上位の「モジュールnA」をスタートとすることもできる。
図4に戻り説明を続ける。機種情報特定部115は、取得した利用情報の中からファームウェアの付帯情報に含まれる対象機種情報に対応する機種情報を特定する。すなわち図6に示した対象機種が例えば「MP 1601」の場合、図5に示した利用情報の中から機種「MP 1601」を特定する。機種が特定できれば、機種に紐付く機器ID、設置場所、利用機能、利用者、機器20の機能を利用した利用時刻を特定することもできる。なお、機種情報特定部115の機能を後述する重要度情報算出部118が備えることもできる。
回数情報算出部116は、取得した利用情報を参照し、機種情報特定部115で特定した機種情報と、機能情報特定部114で特定した機能情報に対応する利用機能情報と、機器20を利用した時刻とを用いて、機器20の識別情報ごとに、利用機能情報で示される機能を利用した回数を示す回数情報を算出する。ずなわち、機種情報特定部115で特定した機種情報が例えば「MP 1601」、利用機能情報が例えば「Print」であった場合、図5に示した利用情報を参照し、実行ID「1」の機器ID「1」の回数情報が「1」と算出される。
また機種情報が例えば「MP 1601」、利用機能情報が例えば「Scan」であった場合、実行ID「3」の機器ID「1」の回数情報が「1」、実行ID「4」の機器ID「3」の回数情報が「1」と算出される。なお、回数情報算出部116の機能を後述する重要度情報算出部118が備えることもできる。
業務状況情報生成部117は、更新用ファームウェアの適用対象となる対象機種情報と、機能情報特定部114で特定した機能情報とを用いて、利用情報を参照し、対象機種に対応する機器20の識別情報ごとに、機器20を利用した利用者と、回数情報算出部116で算出した該機器20の機能を利用した回数を示す回数情報と、該機能を有する機器20の数とを対応付けた業務状況情報を生成する。すなわち、業務状況情報生成部117は、機器管理装置10の管理下にある機器20から取得した利用情報から業務状況情報(業務状況表)を生成する。図8は、業務状況情報の一例を示す図である。図8に示すように業務状況情報は、対象機種の機器IDと、機器20の機能を利用した利用者と、該機器20の機能を利用した回数と、同じ該機能を有する機器20の数とを対応付けた情報である。つまり、業務状況情報は、機能情報特定部114で特定した、例えば機器20の「機能B」を業務で何回利用したのかと、利用した「機能B」を持つ機器20の数が何台あるかを関連付けた業務状況表(Business Situation Table)と捉えることもできる。図8の例では、対象機種の機器IDと、利用者と、機器20の機能を利用した回数と、同じ機能を有する機器20の数とを対応付けた情報である。
本実施形態では、機能を利用した回数は、例えば1日あたりの平均値、1週間あたりの平均値、1ヶ月または所定期間あたりの平均値など任意に設定することができる。また、本実施形態では同じ機能を有する機器20の数をカウントする場合として、ある利用者が1台の機器20だけを利用している場合のみカウントすることとする。同じ機能を有する機器20の数をカウントする対象は、例えば同じフロアに設置されている機器20に限定してもよいし、例えばオフィス全体に設置されている機器20と設定してもよいし、カウントの仕方は任意である。同じ機能を有する機器20の数は、後述する重要度を算出する際の重み付け値の1つとして用いられる。
また、本実施形態では、業務状況表(業務状況情報)を生成する際のルールを以下のように設定する。対象機種の機器IDと、利用者と、機能情報特定部114で特定した機能を利用した回数と、同じ機能を有する機器20の数とを少なくとも対応付けた業務状況表を生成する。対象機種の機器IDに対して利用者がいない場合は、利用者を「−」とし、機能を利用した回数を「0」とする。ある利用者が1台の機器20だけを利用している場合に、同じ機能を有する機器の数をカウントする。この場合のカウント方法は利用情報の「設置場所」欄の文字列が一致した場合にカウントする。また、「設置場所」欄の情報がない場合は「0」とする。
図8の例では、例えば利用者「C」が機器ID「1」の機能Bを「10回」利用し、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」を示し、利用者「B」が機器ID「1」の機能Bを「12回」利用し、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」を示している。すなわち、機器ID「1」の機能Bを、利用者「C、B」が合計「22回」利用し、かつ利用者「C、B」は機器ID「1」以外の他の機器ID「4、10」も利用しているので、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」である。
また、例えば利用者「B」が機器ID「4」の機能Bを「4回」利用し、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」を示し、利用者「C」が機器ID「4」の機能Bを「3回」利用し、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」を示し、利用者「D」が機器ID「4」の機能Bを「11回」利用し、かつ利用者「D」が機器ID「4」だけを利用している場合なので機能Bを有する機器20の数が「2」であることを示している。すなわち、機器ID「4」の機能Bを、利用者「B、C」が合計「7回」利用し、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」、機器ID「4」の機能Bを、利用者「D」が合計「11回」利用し、機能Bを有する機器20の数が「2」である。
また、例えば利用者「C」が機器ID「10」の機能Bを「12回」利用し、かつ利用者「C」は機器ID「10」以外の他の機器ID「1、4」も利用しているので、機能Bを有する機器20の数が「−(この例では「カウントしない」を示す)」を示している。
また、例えば利用者「F」が機器ID「11」の機能Bを「5回」利用し、機能Bを有する機器20の数が「0(この例では「情報がない」を示す)」を示している。
また、例えば機器ID「12」の機能Bを利用している利用者がいないので利用者「−」、機能Bを利用した回数「0」、機能Bを有する機器20の数が「3」であることを示している。
図4に戻り説明を続ける。重要度情報算出部118は、機器20の識別情報ごとに、回数情報算出部116で算出した回数情報を用いて機器20の重要度を示す重要度情報を算出する。また重要度情報算出部118が上述した機種情報特定部115、回数情報算出部116の機能を備える場合には、重要度情報算出部118は、付帯情報に含まれる対象機種情報に対応する利用情報の機種情報を特定し、利用情報を参照して、特定した機種情報に紐付いた機器20の識別情報ごとに、特定した機能情報と算出した回数情報を用いて、機器20の重要度を示す重要度情報を算出する。すなわち、重要度情報算出部118は、業務状況情報生成部117で生成した業務状況情報(業務状況表)を用いて、機器20の識別情報ごとに、業務に使用する機器20の重要度を示す重要度情報を算出する。具体的には、重要度情報の重要度は下記式(1)を用いて算出することができる。
重要度=総利用回数+代替不可能度 ・・・(1)
上記式(1)中、総利用回数は機器の機能を利用した全ての利用者の回数の和を表す。代替不可能度は同じ機能を有する機器の数が「−」または1以上の場合「0」とする。
また、同じ機能を有する機器の数が「−」または1以上の場合以外の場合には、重要度情報の重要度は下記式(2)を用いて算出することができる。
重要度=総利用回数+(総利用回数×代用不可能割合) ・・・(2)
上記式(2)中、(総利用回数×代用不可能割合)は代替不可能度を示し、代用不可能な機器を重視する重み付け値を表す。代用不可能割合は0以上1以下の値であり、デフォルトとして0.5を設定する。
更新予定情報生成部119は、上述した重要度情報に基づいて、機器20ごとに、ファームウェアを適用する予定(更新予定)を示す更新予定情報を生成する。すなわち、重要度情報算出部118で算出した機器20の業務上の重要度に基づいて、更新用ファームウェアを適用する(ファームウェアを更新する)更新予定情報(更新スケジュール)を生成する。
まず、更新予定情報生成部119は、重要度情報算出部118で算出した重要度情報を用いて機器20を重要度順に並び替えを行う。または、重要度を正規化して、正規化した重要度順に並び替えを行う。図9は、更新対象機種の機器を重要度の順に並び替えて重要度を正規化した一例を示す図である。図9の例では、機器ID「1」の重要度「22」、正規化した重要度「0.37」を示し、機器ID「4」の重要度「18」、正規化した重要度「0.30」を示し、機器ID「10」の重要度「12」、正規化した重要度「0.20」を示し、機器ID「11」の重要度「7.5」、正規化した重要度「0.13」を示し、機器ID「12」の重要度「0」、正規化した重要度「0.00」を示している。
次に、更新予定情報生成部119は、正規化した重要度を用いて、現在時刻を開始時刻として、各更新時間を足し合わせた終了時間までを更新実施時間(例えば24h)とし、更新実施時間を正規化した重要度で分割して更新予定情報を生成する。図10は、更新予定情報の一例を示す図である。図10の例は、重要度の高い順から、機器ID「1」は現在時刻から8.87hでファームウェア更新を実施し、その後、機器ID「4」は7.26hでファームウェア更新を実施し、その後、機器ID「10」は4.84hでファームウェア更新を実施し、その後、機器ID「11」は3.03hでファームウェア更新を実施し、その後、機器ID「12」のファームウェア更新を実施する更新予定情報(更新スケジュール)である。
また、更新予定情報生成部119は、図6に示した付帯情報の更新用ファームウェアの更新種類を示す更新情報(更新タイプ)を用いて更新予定情報を生成する。図11は、更新予定情報の一例を示す図である。図11の上側の更新スケジュール例は、更新タイプが重要(Critical)であれば、現在のファームウェアを利用し続けるとリスクが高いと判断し、図9に示した重要度の高い機器20の順でファームウェア更新を実施する更新予定情報を生成する。すなわち、更新情報に含まれる更新種類(更新タイプ)が重要である場合、更新予定情報生成部119は、重要度情報の重要度が高い順に並べた更新予定情報を生成する。また、図11の下側の更新スケジュール例は、更新タイプが重要(Critical)以外の場合、つまりメンテナンス(保守、Maintenance)、新規(New)であれば、ファームウェア更新による問題が発生することを回避するために図9に示した重要度の低い機器20の順でファームウェア更新を実施する更新予定情報を生成する。すなわち、更新情報に含まれる更新種類(更新タイプ)が重要以外である場合、更新予定情報生成部119は、重要度情報の重要度が低い順に並べた更新予定情報を生成する。なお、更新予定情報を生成する際に、更新禁止時間帯が設定されている場合には、その時間帯にファームウェア更新が行われないように更新予定情報をシフトして生成する。例えば、更新予定情報生成部119は、機能情報特定部114で特定した機能と、利用情報の機能を利用した時刻とを用いて、該機能が最も利用されている時間帯を更新禁止時間帯に設定することで、ファームウェア更新による問題が発生した場合でも通常の業務に与える影響を低減させることができる。すなわち、更新予定情報生成部119は、機能情報と利用情報を用いて、機器20の機能が最も利用されている時間帯には更新用ファームウェアへの切り換えを行わない更新予定情報を生成する。
図12は、更新予定情報の書式の一例を示す図である。図12に示すように更新予定情報(更新スケジュール)の書式は、timestamp(日時)と、target(機器20の識別情報)とを対応付けた情報である。機器20の識別情報としては、例えば、IPアドレスやドメイン名またはホスト名など機器20を識別する(特定する)情報であればよい。
このように、更新予定情報生成部119は、ファームウェア更新の対象機種の機器20と、業務に使用する機器20の重要度と、ファームウェアの付帯情報の更新タイプとに基づいて、ファームウェア更新を実施する更新予定情報(更新スケジュール)を生成する。
更新要求部120は、更新予定情報生成部119で生成した更新予定情報に基づいて、更新用ファームウェアを含み、かつ、更新用ファームウェアへの切り換え(更新)を要求する更新要求を機器20に送信する。また更新要求部120は、更新用ファームウェアへの切り換えを実行した機器20に不具合がある旨を受け付けた場合、以降の更新用ファームウェアへの切り換え(更新)を要求する更新要求の送信を中止する。なお、更新実行部121が更新用ファームウェアを用いて、機器20のファームウェア更新を実行する場合には更新要求部120を備えなくてもよい。
更新実行部121は、更新予定情報生成部119で生成した更新予定情報に基づいて、ファームウェア取得部113で取得した更新用ファームウェアを用いて、機器20のファームウェア更新を実行する。また更新実行部121は、更新用ファームウェアへの切り換え(更新)を実行した機器20に不具合がある旨を受け付けた場合、以降の更新用ファームウェアへの切り換え(更新)の実行を中止する。なお、更新要求部120がファームウェアの更新を要求する更新要求を機器20に送信して、機器20が更新要求に基づいて、更新要求に含まれる更新用ファームウェアを用いて、更新用ファームウェアへの切り換え(更新)を実行する場合には更新実行部121を備えなくてもよい。
記憶部122は、各種のデータを記憶する。例えば、記憶部122は、利用情報を例えば、処理を実行した実行ID順にテーブル形式で所定領域に記憶する。また例えば、記憶部122は、更新用ファームウェアと、更新用ファームウェアに付帯する付帯情報とを所定領域に記憶する。また例えば、記憶部122は、上述したモジュール階層マップを所定領域に記憶する。また例えば、記憶部122は、機器20を管理するために必要な各種の情報を取得して管理する。また例えば、記憶部122は、複数の機器20を管理しており、例えば、機器20ごとにユーザの機種、機番、設置場所、設置年月日、使用期間など関係する情報を記憶する。
次に、機器20の機能構成について説明する。図4に示すように、機器20は、CPU201がプログラムを実行することで実現される機能である通信部211と、更新部212と、処理実行部213と、記憶部214とを備える。上記各部の一部はCPU201がROM202又は外部記憶装置204からソフトウェア(プログラム)を読み出して実行することにより上記各部がRAM203上にロードされ、上記各部がRAM203上に生成されるソフトウェア(プログラム)であってもよい。また、上記各部の一部又は全部を、演算処理を行うプロセッサなどのハードウェア回路で置き換えてもよい。
通信部211は、ネットワーク50を経由して機器管理装置10及びクライアントPC40と通信する。通信部211は、機器管理装置10及びクライアントPC40とネットワーク50を経由して各種データを送受信する。例えば、通信部211は、機器管理装置10から機器20を識別する識別情報と、機器20の機種を示す機種情報と、機器20の1以上の機能の中から利用した機能を示す利用機能情報と、該機能を利用した時刻と、該機能を利用した利用者とを少なくとも対応付けた利用情報を取得することを要求する利用情報取得要求を受け付けて、機器20が保持する利用情報を機器管理装置10に送信する。また例えば、通信部211は、機器管理装置10からファームウェアの更新を要求する更新要求を受け付けて、更新部212、記憶部214に受け渡す。また例えば、通信部211は、機器20の状態を示す状態情報を含む機器情報を機器管理装置10に送信する。すなわち、機器管理装置10から機器情報を取得する要求を受け付けて、応答として機器20が保持する機器情報を送信する。または、機器20は予め設定された所定間隔で機器20が保持する機器情報を機器管理装置10に送信する。
更新部212は、更新用ファームウェアを含み、かつ、更新用ファームウェアへの切り換え(更新)を要求する更新要求に基づいて、更新要求に含まれる更新用ファームウェアを用いて、更新用ファームウェアへの切り換え(更新)を実行する。
処理実行部213は、クライアントPC40から受信したデータ処理を実行するためのデータを用いてデータ処理を行う。
記憶部214は、各種のデータを記憶する。例えば、記憶部214は、ファームウェアを所定領域に記憶する。また例えば、記憶部214は、機器20の識別情報と、機器20の機種を示す機種情報と、機器20の1以上の機能の中から利用した機能を示す利用機能情報と、該機能を利用した時刻と、該機能を利用した利用者とを少なくとも含む利用情報を所定領域に記憶する。また例えば、記憶部214は、機器20の状態を示す状態情報を含む機器情報を所定領域に記憶する。機器20の状態を示す状態情報としては、例えば、カウンタ情報、機器状態情報、機器設定情報などを含んでいる。また例えば、記憶部214は、機器情報として、機種や機番などの個体情報、ソーターやフィニッシャーなどのオプション装着情報、トータルコピー数やモノクロコピー数及びカラーコピー数などの各種カウンタ情報、故障回数や修理部位及び回数などの機器状態情報(履歴情報)、機器20設置時などに設定するサービスマン(SP)設定やユーザが任意に設定するユーザ設定などの機器設定情報等を所定領域に記憶する。
次に、サーバ装置30の機能構成について説明する。図4に示すように、サーバ装置30は、CPU101がプログラムを実行することで実現される機能である通信部311と、ファームウェア記憶部312とを備える。上記各部の一部はCPU101がROM103又はHDD104からソフトウェア(プログラム)を読み出して実行することにより上記各部がRAM102上にロードされ、上記各部がRAM102上に生成されるソフトウェア(プログラム)であってもよい。また、上記各部の一部又は全部を、演算処理を行うプロセッサなどのハードウェア回路で置き換えてもよい。
通信部311は、ネットワーク60を経由して機器管理装置10と通信する。通信部311は、機器管理装置10とネットワーク60を経由して各種データを送受信する。例えば通信部311は、機器管理装置10から、更新用ファームウェアと、更新用ファームウェアに付帯する、更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報と更新用ファームウェアの適用対象となるプログラム部品(モジュール)を示す対象部品情報と、更新用ファームウェアの更新種類を示す更新情報とを含む付帯情報と、を取得する要求を受信して、ファームウェア記憶部312から読み出した更新用ファームウェア、及び付帯情報を機器管理装置10に送信する。すなわち、通信部311は、機器管理装置10から、更新用ファームウェア、及び付帯情報を取得する要求を受信して、ファームウェア記憶部312から読み出した更新用ファームウェア、及び付帯情報を機器管理装置10に送信する。
ファームウェア記憶部312は、機器20のファームウェア及び付帯情報、ファームウェア更新のための更新用ファームウェア及び付帯情報などを所定領域に記憶する。
次に、クライアントPC40の機能構成について説明する。図4に示すように、クライアントPC40は、CPU101がプログラムを実行することで実現される機能である通信部411と、受付部412と、取得部413と、記憶部414とを備える。上記各部の一部はCPU101がROM103又はHDD104からソフトウェア(プログラム)を読み出して実行することにより上記各部がRAM102上にロードされ、上記各部がRAM102上に生成されるソフトウェア(プログラム)であってもよい。また、上記各部の一部又は全部を、演算処理を行うプロセッサなどのハードウェア回路で置き換えてもよい。
通信部411は、ネットワーク50を経由して機器管理装置10及び機器20と通信する。通信部411は、機器管理装置10及び機器20とネットワーク50を経由して各種データを送受信する。例えば通信部411は、データ処理を実行するためのデータを機器20に送信する。また、通信部411は、ネットワーク60を経由してサーバ装置30と通信する。通信部411は、ネットワーク60を経由して各種データを送受信する。
受付部412は、例えばユーザの様々な操作指示を受け付けて、対応する各部に受け渡す。また例えば、受付部412は、ユーザからファームウェア更新の入力を受け付けて、更新用ファームウェアを機器管理装置10に通信部411を介して送信する。また例えば、受付部412は、機器20から不具合が発生したことを受け付けて、ファームウェア更新を実行した機器20に不具合がある旨を機器管理装置10に通信部411を介して送信する。
取得部413は、例えば更新用ファームウェア、及び更新用ファームウェアに付帯する、更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報と更新用ファームウェアの適用対象となるプログラム部品(モジュール)を示す対象部品情報と更新用ファームウェアの更新種類を示す更新情報を含む付帯情報を取得する要求をサーバ装置30に送信して、サーバ装置30から更新用ファームウェア、及び付帯情報を取得して、記憶部414に記憶させる。
記憶部414は、各種のデータを記憶する。例えば、記憶部414は、更新用ファームウェア、及び更新用ファームウェアに付帯する付帯情報を所定領域に記憶する。
次に、機器管理装置10の処理動作について説明する。図13は、機器管理装置が更新予定情報を生成してファームウェア更新を行う処理の一例を示すフローチャートである。機器管理装置10は、複数の機器20から、機器20の識別情報と、機器20の機種を示す機種情報と、機器20の1以上の機能の中から利用した機能を示す利用機能情報(利用した機器20の機能を示す利用機能)と、該機能を利用した時刻と、該機能を利用した利用者とを少なくとも対応付けた利用情報を取得する(ステップS1)。次に、機器管理装置10は、サーバ装置30に更新用ファームウェアがあるか否かを判断する(ステップS2)。すなわち、機器管理装置10は、サーバ装置30に対して更新用ファームウェア、及び更新用ファームウェアに付帯する、該更新用ファームウェアの適用対象となる機器20の機種を示す対象機種情報と該更新用ファームウェアの適用対象となるプログラム部品(モジュール)を示す対象部品情報(対象モジュール情報)と更新用ファームウェアの更新種類を示す更新情報を含む付帯情報を取得する要求を送信し、その応答として更新用ファームウェア、及び付帯情報を受信した場合、更新用ファームウェアがあると判断し、応答がない場合または更新用ファームウェアがない旨の応答を受信した場合、更新用ファームウェアがないと判断する。
更新用ファームウェアがある場合(ステップS2:Yes)、ステップS4に移行して処理を継続する。更新用ファームウェアがない場合(ステップS2:No)、機器管理装置10は、更新用ファームウェアを受信したか否かを判断する(ステップS3)。すなわち、機器管理装置10は、クライアントPC40から更新用ファームウェアを受信したか否かを判断する。本実施形態では、機器管理装置10がサーバ装置30から更新用ファームウェアを取得する場合と、クライアントPC40から更新用ファームウェアを受信して取得する場合があるためである。
更新用ファームウェアを受信していない場合(ステップS3:No)、ステップS2に戻り処理を継続する。更新用ファームウェアを受信した場合(ステップS3:Yes)、ステップS4に移行する。
ステップS4では、機器管理装置10は、上述したようにサーバ装置30から更新用ファームウェア、及び付帯情報を取得する。または、クライアントPC40から更新用ファームウェア、及び付帯情報を受信して取得する(ステップS4)。次に、機器管理装置10は、ステップS1で取得した利用情報と、ステップS4で取得した付帯情報を用いて、上述したように更新予定情報(更新スケジュール)を生成する(ステップS5)。次に、機器管理装置10は、図11及び図12で示した更新予定情報(更新スケジュール)に基づいて、対象の機器20に対してファームウェア更新を実行する(ステップS6)。ファームウェア更新処理として、上述したように更新要求部120が更新用ファームウェアへの切り換え(更新)を要求する更新要求を機器20に送信し、機器20がファームウェア更新を実行する場合と、更新実行部121が更新用ファームウェアを用いて、機器20のファームウェア更新を実行する場合とがあるが、予め設定することができ、どちらに設定するかは任意である。
次に、機器管理装置10は、ファームウェア更新を実行(更新用ファームウェアへの切り換えを)した機器20に不具合があるか否かを判断する(ステップS7)。すなわち、機器管理装置10は、1台の機器20のファームウェア更新を実行するごとに機器20の状態を示す状態情報を取得することで機器20に不具合があるか否かを判断することができる。また、クライアントPC40からファームウェア更新を実行した機器20に不具合がある旨を受信することで不具合が発生したと判断することもできる。
不具合がある場合(ステップS7:Yes)、機器管理装置10は、更新予定情報(更新スケジュール)に従ったファームウェア更新処理を中止(ステップS8)して処理を終了する。すなわち、機器20に不具合があると判断したら以降の機器20に対する更新処理を中止する。不具合がない場合(ステップS7:No)、機器管理装置10は、更新予定情報(更新スケジュール)にある全ての機器20に対してファームウェア更新をしたか否かを判断する(ステップS9)。全ての機器20を更新していない場合(ステップS9:No)、ステップS6に戻り、次の機器20に対してファームウェア更新を行う。全ての機器20を更新した場合(ステップS9:Yes)、処理を終了する。以上に説明したように機器管理装置10は、業務に影響の少ない更新予定情報を生成して機器20のファームウェア更新を行い、更新した機器20に不具合がある場合には更新処理を中止するので、ファームウェア更新による問題が発生した場合でも通常の業務に与える影響を低減させることができる、という有利な効果を達成できる。
次に、ステップS5の処理の詳細について説明する。図14は、更新予定情報を生成する処理の一例を示すフローチャートである。機器管理装置10は、機能情報特定部114で、更新用ファームウェアの対象モジュール情報を用いて、モジュール階層マップに従ってファームウェアの適用対象となる機能を示す機能情報を特定する(ステップS21)。すなわち、付帯情報に含まれる対象部品情報(対象モジュール情報)を用いて、プログラム部品(モジュール)に対応する機能を示す機能情報を特定する。つまり、機能情報特定部114は、ファームウェアの適用対象となるプログラム部品(モジュール)とモジュール階層マップを用いて、機能情報を特定する。次に、機器管理装置10は、業務状況情報生成部117で、更新用ファームウェアの対象機種情報と、特定した機能情報とを用いて、利用情報を参照し、対象機種の機器20の識別情報と、該機器20を利用した利用者と、該機器20の機能を利用した回数と、該機能を有する機器20の数とを対応付けた業務状況情報(業務状況表)を生成する(ステップS22)。次に、機器管理装置10は、重要度情報算出部118で、業務状況情報(業務状況表)を用いて、機器20の識別情報ごとに、業務に使用する機器20の重要度を示す重要度情報を算出する(ステップS23)。次に、機器管理装置10は、更新予定情報生成部119で、機器20の業務上の重要度情報に基づいて、更新用ファームウェアを適用する(ファームウェアを更新する)更新予定情報(更新スケジュール)を生成する(ステップS24)。以上に説明したようにして機器管理装置10は、更新予定情報(更新スケジュール)を生成する。
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
例えば、上述の利用情報取得部112、ファームウェア取得部113、機能情報特定部114、機種情報特定部115、回数情報算出部116、業務状況情報生成部117、重要度情報算出部118、更新予定情報生成部119、更新要求部120、更新実行部121および記憶部122は、機器管理装置10、機器20、サーバ装置30およびクライアントPC40の各々に分散されて搭載される形態であってもよい。また、例えば上述の利用情報取得部112、ファームウェア取得部113、機能情報特定部114、機種情報特定部115、回数情報算出部116、業務状況情報生成部117、重要度情報算出部118、更新予定情報生成部119、更新要求部120、更新実行部121および記憶部122は、機器管理装置10、機器20、サーバ装置30、クライアントPC40、および、1以上の外部装置(例えばサーバ装置)の各々に分散されて搭載される形態であってもよい。
また、上述した各実施形態の機器管理システム1で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
なお、本実施形態の機器管理装置10と機器20とサーバ装置30とクライアントPC40とが接続された機器管理システム構成は一例であり、用途や目的に応じて様々な機器管理システムの構成例があることは言うまでもない。