JP2022164222A - ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム - Google Patents
ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム Download PDFInfo
- Publication number
- JP2022164222A JP2022164222A JP2021069568A JP2021069568A JP2022164222A JP 2022164222 A JP2022164222 A JP 2022164222A JP 2021069568 A JP2021069568 A JP 2021069568A JP 2021069568 A JP2021069568 A JP 2021069568A JP 2022164222 A JP2022164222 A JP 2022164222A
- Authority
- JP
- Japan
- Prior art keywords
- transmission
- event
- time
- network device
- data
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】ネットワークデバイスからのデータの送信によるネットワーク負荷の増大を抑制する。【解決手段】ネットワークデバイス120内で収集したデータをネットワーク100を介してシステム111に送信するネットワークデバイス120は、ネットワークデバイス120の起動時にリカバリ送信が行われる対象のデータについては、ネットワークデバイス120の起動時に送信するイベントの送信の設定においてオフセット時間が設定されている場合、該オフセット時間に従うイベントの送信よりもさらに遅延させて、リカバリ送信の対象のデータの送信を行う制御手段511を有する。【選択図】図9
Description
本発明は、ネットワークデバイス、ネットワークデバイスの制御方法およびプログラムに関する。
迅速な保守やデバイス内で発生するの事象の予兆予測、デバイス搭載機能の改善等を行うために、デバイスの状態の監視が行われている。デバイスの状態の監視のために、稼働しているデバイスからネットワークを通じてイベントログ管理サーバに大量の各種イベントログを送信しサーバに保存するシステムが知られている。クラウドのサーバでは、蓄積されたイベントログとサーバ上のアプリケーションを利用し、デバイスの各種状態変化を分析したり、発生した事象に応じて迅速に消耗品の交換やメンテナンス作業の手配の通知をしたりなどの対応を行う必要がある。そのため、デバイス上で起きた事象をサーバ側のアプリケーションが取り扱いやすい形のイベントログの形にして送付する必要がある。
ネットワーク回線への負荷が致命的な環境では、負荷を分散させるために、イベントログの定期送信時刻をずらし、稼働時間外に送信するような対応が行われる。しかし指定した時間帯に起動していない場合には収集することができなくなるため、そのときはデバイスが起動した後に当該イベントログの送信をおこなうことが必要である。一方で、デバイスの設定によってはデバイスが起動した時に情報を収集して起動時にイベントログを送信することも行われる。このようにデバイスが起動した際にイベントログの送信が行われる可能性が高く、複数のデバイスの同時起動での一斉送信を防ぐために、ランダムなオフセット時間を設定して送信が行われる。特許文献1は、デバイス管理装置がスリープ状態のため指定した時刻にデータが送信できなかったとき、スリープから復帰後にランダムなオフセット時間を設定して当該データをサーバに送信するデバイス監視システムを開示している。
しかしながら、特許文献1の方法では、指定時刻にデータ送信できなかった場合、スリープから復帰後にランダムなオフセット時間を設定したリカバリ送信と、ランダムなオフセットを設定した起動時データ送信との送信タイミングが重複する可能性がある。データの送信タイミングが重複してしまうと、ネットワーク負荷が増大する可能性がある。
本発明は、ネットワークデバイスからのデータの送信によるネットワーク負荷の増大を抑制することを目的とする。
上記課題を解決するために、本発明のネットワークデバイスは、ネットワークデバイス内で収集したデータをネットワークを介してシステムに送信するネットワークデバイスであって、前記ネットワークデバイスの起動時にリカバリ送信が行われる対象のデータについては、前記ネットワークデバイスの起動時に送信するイベントの送信の設定においてオフセット時間が設定されている場合、該オフセット時間に従う前記イベントの送信よりもさらに遅延させて、前記リカバリ送信の対象のデータの送信を行う制御手段を有する。
本発明によれば、ネットワークデバイスからのデータの送信によるネットワーク負荷の増大を抑制することができる。
(第1実施形態)
図1は、本発明におけるネットワークを介して接続されるネットワークデバイスからネットワークデバイス内のデータを収集するシステム全体の構成を示す図である。ネットワーク100には、複数の管理サーバ110およびネットワークデバイス(以下、デバイスと記す)120(デバイス120aおよびデバイス120b)が接続されている。管理サーバ110は、デバイス120からデバイス内で収集されるデータを取得し、取得したデータを利用するシステム111に属している。
図1は、本発明におけるネットワークを介して接続されるネットワークデバイスからネットワークデバイス内のデータを収集するシステム全体の構成を示す図である。ネットワーク100には、複数の管理サーバ110およびネットワークデバイス(以下、デバイスと記す)120(デバイス120aおよびデバイス120b)が接続されている。管理サーバ110は、デバイス120からデバイス内で収集されるデータを取得し、取得したデータを利用するシステム111に属している。
デバイス120は、ネットワーク100に接続され通信が可能なネットワークデバイスであり、例えばPC、タブレット、複合機、カメラなどの情報処理装置である。本実施形態では、デバイス120としてコピーやFAX等の複数種類の機能を実現する複合機を例に説明する。また、本実施形態のデバイス120は、デバイス内で収集したデータを、ネットワーク100を介して管理サーバ110に対して送信する機能を有している。デバイス120は、デバイス内での事象やデバイス内のデータをイベントの形式で管理サーバ110に対して送信する。管理サーバ110に対して送信するイベントには、例えば、機能の実行をした履歴、省電力状態への遷移や復帰等のデバイスの稼働状況、デバイスで利用される消耗品のカウンタ情報、エラー発生など異常状態への遷移・復帰などの履歴などがある。
管理サーバ110は、ネットワーク100を介してデバイス120などネットワーク上のデバイスからイベントを収集する情報処理装置である。収集したイベントは、管理サーバ110内のストレージに保存される。そして、ストレージに蓄積されたイベントの情報は、デバイスの稼働状況の分析、分析結果に応じたサービスの提供などに利用される。なお、管理サーバ110はサーバ装置の他、サーバ装置を含むデータセンターにより提供されたリソースを利用した仮想マシン(クラウドサービス)により実現されてもよい。
図2は、管理サーバ110の構成を示す図である。管理サーバ110は、コントローラユニット200、操作部210、表示部220を備える。コントローラユニット200は、CPU210、ROM202、RAM203、HDD204、操作部I/F205、表示部I/F206、通信I/F207を備える。コントローラユニット200内の各要素はシステムバス208を介して接続され、互いにデータのやり取りを行う。
CPU201(Central Processing Unit)は、管理サーバ110全体を制御する。CPU201は、ROM202に格納されているブートプログラムによりOS(Operating System)を起動する。また、CPU201は、このOS上で、HDD204に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。
ROM(Read Only Memory)202は、不揮発性の記憶領域であって、管理サーバ110の基本制御プログラム、OS(Operating System)、アプリケーション等の各種データを記憶する。基本制御プログラムにはブートプログラムが含まれる。RAM(Random Access Memory)202は、揮発性の記憶領域であって、CPU201が各種処理を行う際の一時記憶領域、ワークエリアとして使用される。CPU201はRAM203に、ROM202及びHDD204に格納された各種制御プログラムを展開する。
HDD(Hard Disk Drive)204は、不揮発性の大容量記憶部である。HDD204には、アプリケーションプログラム、設定値、ネットワーク100上のデバイスから収集したイベント等のデータなどが格納される。なお、本実施形態では記憶部の一例としてHDD204を説明したが、これに限られるものではなく、SSD(Solid State Drive)でもよいし、メモリカードといった外部メディアを装填してデータの読出/書込が可能な装置であってもよい。
操作部210は、例えば、ポインティングデバイス(例えば、マウス、タッチパネルなど)、操作ボタン、キーボード等であり、ユーザによる操作、入力、指示を受け付ける。操作部I/F205は、操作部210とのインタフェースであり、操作部210によってユーザにより入力された情報をCPU201に送出する。表示部220は、例えば、液晶ディスプレイやタッチパネルなどであり、画像や各種データを表示する。表示部I/F206は、表示部220に表示すべきデータを表示部220に対して出力する。操作部210および表示部220は、タッチパネル等として一体的に構成されていてもよい。
通信I/F207は、ネットワーク100に接続され、ネットワーク100を介してネットワーク100上の各デバイスとの間で情報の入出力を行う。なお、図2を用いて説明した管理サーバ110の構成は管理サーバ110が一般的なコンピュータなどの情報処理装置で実現された場合の一例であり、これに限られるものではない。例えば、管理サーバ110は操作部210や表示部220、これらに対応するインタフェースを含まなくてもよい。
図3は、デバイス120(デバイス120a,デバイス120b)の構成の概要を説明する図である。デバイス120は、情報処理コントローラユニット301、プリンタコントローラユニット302、スキャナコントローラユニット303、プリンタ304、スキャナ305、操作部306を含む複合機である。情報処理コントローラユニット301は、デバイス120の動作に係る情報処理制御を統括するコントローラである。情報処理コントローラユニット301の詳細な説明は、図4を用いて後述する。
情報処理コントローラユニット301には、操作部306、プリンタコントローラユニット302およびスキャナコントローラユニット303が接続される。操作部306は、表示装置および入力装置を備えており、ユーザに対して各種情報を表示し、また、ユーザによる操作、入力、指示を受け付ける。表示装置は、例えば液晶ディスプレイやタッチパネルである。入力装置は、例えば、ポインティングデバイス(例えば、タッチパッド、タッチパネルなど)、操作ボタン、キーボード等である。本実施形態では、デバイス120が操作部306としてタッチパネルを備えている場合を例に説明する。タッチパネルにおける入力座標と表示座標を対応付けることで、あたかもユーザがタッチパネルに表示された画面を直接的に操作可能であるかのようなGUIを構成することができる。
プリンタ304は、外部から受信した印刷データに応じた画像を形成して用紙に出力したり、スキャナ305にセットされた原稿画像を光学的に読み取り用紙に出力したりする画像出力デバイスである。プリンタコントローラユニット302は、プリンタ304を制御する。スキャナ305は、原稿を光学的に読み取り、スキャンに基づく電子ファイル(スキャンデータ)を生成する画像入力デバイスである。スキャナコントローラユニット303は、スキャナ305を制御する。
図4は、デバイス120の情報処理コントローラユニット301の構成を示す図である。情報処理コントローラユニット301は、CPU401、ROM402、RAM403、HDD404、通信I/F405、操作部I/F406、画像処理部407、デバイスコントローラI/F408、電源管理部409を有する。情報処理コントローラユニット301内の各要素はシステムバス410を介して接続され、互いにデータのやり取りを行う。
CPU401は、デバイス120全体を制御する。CPU401は、ROM402に格納されているブートプログラムによりOSを起動し、OS上でHDD404に格納されているアプリケーションプログラムを実行することにより、後述する各種処理を実行する。ROM402は、不揮発性の記憶領域であって、デバイス120の基本制御プログラム、OS(Operating System)、アプリケーション等の各種データを記憶する。基本制御プログラムにはブートプログラムが含まれる。RAM402は、揮発性の記憶領域であって、CPU401が各種処理を行う際の一時記憶領域、ワークエリアとして使用される。また、RAM403は、画像データを一時記憶するための画像メモリ領域を提供する。CPU401はRAM403に、ROM402及びHDD404に格納された各種制御プログラムを展開する。すなわち、CPU201が、読み取り可能な記憶媒体に格納されたプログラムを実行することにより、後述する処理を実行する各処理部として機能する。
HDD404は、不揮発性の大容量記憶部である。HDD204には、アプリケーションプログラムや画像データ、各種設定値や履歴、次回の管理サーバ110へのデータの送信予定時刻などが格納される。なお、本実施形態では記憶部の一例としてHDD404を説明したが、これに限られるものではなく、SSDでもよいし、メモリカードといった外部メディアを装填してデータの読出/書込が可能な装置であってもよい。
通信I/F405はネットワーク100に接続され、ネットワーク100を介してネットワーク100上の各装置、例えば管理サーバ110との間で情報の入出力を行う。操作部I/F406は、操作部306とのインタフェースである。操作部I/F406は、操作部306によってユーザにより入力された情報をCPU401に送出し、また、操作部306に表示すべきデータを操作部306に対して出力する。
画像処理部407は、プリンタ304へ出力する画像やスキャナ305で取得した画像に対して各種画像処理を行う。各種画像処理の例としては、画像回転、画像圧縮、解像度変換、色空間変換、階調変換などの処理が挙げられる。デバイスコントローラI/F408は、プリンタコントローラユニット302およびスキャナコントローラユニット303と接続し、プリンタコントローラユニット302およびスキャナコントローラユニット303とCPU401とのデータの入出力を制御する。また、デバイスコントローラI/F408は、画像データの同期系/非同期系の変換を行う。電源管理部409は、デバイス120の電源制御を行う。具体例には、電源管理部409は、オンオフの制御の他、通常通電状態以外の省電力状態への移行や、通常状態への復帰などを制御する。
図5は、デバイス120のソフトウェア構成を示す図である。CPU201が、ROM402及びHDD404に格納されたプログラムをRAM403に展開して実行することにより、各処理部として機能する。デバイス120では、ネットワークやメモリストレージを利用した一般的な情報処理装置の機能を実現するソフトウェアの他、スキャンやプリントなど複合機の機能を実現するソフトウェアが動作する。
デバイス120は、ユーザインターフェース501、機能アプリケーション502、ジョブ制御部503、電源制御部504、エラー制御部505、履歴・設定保持部506、カウンタ管理部507、構成情報管理部508、デバイスログ管理部509を有する。さらに、デバイス120は、タイマー通知部540、イベント回収部510、メッセージバッファ520、イベント送付部530、ネットワーク通信部531、通知設定取得部532、通知設定保持部521を有する。なお、イベント送付部530、ネットワーク通信部531および通知設定取得部532は、デバイス120の稼働情報等を収集するシステムに対してデータを送信するアプリケーションが有する機能として実現されてもよい。
ユーザインターフェース501は、操作部306に対してユーザが操作する画面を表示したり、操作部306を介したユーザの操作をソフトウェアに伝えたりする。機能アプリケーション502は、複合機のアプリケーション機能を動作させる。複合機のアプリケーション機能は、コピー、プリント、メール送信など複数あり、機能アプリケーション502はアプリケーション機能ごとに設けられる。すなわち、デバイス120は複数の機能アプリケーション502を有する。機能アプリケーション502は、操作部306を経由したユーザの指示や通信I/F405経由のデータ受信などをトリガにして、複合機のアプリケーション機能を動作させる。
ジョブ制御部503は、機能アプリケーション502からの指示を受けてプリンタコントローラユニット302やスキャナコントローラユニット303を制御してプリントやスキャンを実行する。電源制御部504は、デバイス120内のソフトウェアの状態と連動して電源管理部409を制御する。具体例には、電源制御部504は、ソフトウェアの状態に応じて通常通電状態と省電力状態の遷移を制御する。
エラー制御部505は、ジョブ制御部503、プリンタコントローラユニット302、スキャナコントローラユニット303などデバイス120内で発生した異常状態を検知する。また、エラー制御部505は検知した異常状態に応じて、システム全体の停止や縮退動作などを指示して、デバイス120の稼働状況を制御する。履歴・設定保持部506は、デバイス120内における不揮発情報を管理する。具体例には、履歴・設定保持部506は、複合機やジョブの制御に必要な設定を保持したり、ユーザの操作履歴やジョブ実行結果およびエラーの発生などをサマライズして保存したりする。また、履歴・設定保持部506は、システムの不具合発生時に解析デバッグ用途で残すログ情報も保持する。履歴・設定保持部506が管理する不揮発データの実体は、HDD404に保持される。
カウンタ管理部507は、機器内で発生したスキャンやプリントの枚数などのカウントや、消耗部品ごとの消耗度を測るカウント、またカウント結果から算出される部品の寿命情報などを管理する。カウンタ管理部507が管理するカウントや寿命情報などの不揮発データの実体は、HDD404に保持される。構成情報管理部508は、デバイス120を構成するハード・ソフトの構成を管理する。デバイス120を構成するハード・ソフトとして、例えば、給紙カセット、排紙トレイ、フィニッシャ等の外付けのアクセサリ、ファームウェアのバージョン、インストールされているアプリケーションの一覧などが構成情報管理部508により管理される。デバイスログ管理部509は、プリンタコントローラユニット302やスキャナコントローラユニット303などデバイス120内の稼働状況を詳細に記録し、デバイスログとして保存する。
制御部511は、イベント回収部510、イベント送付部530、タイマー通知部540を制御することにより、デバイス120内のデータを収集してイベントの形式に正規化し、管理サーバ110に送信する一連の処理を制御する。データ(イベント)の管理サーバ110への送信のタイミングも、制御部511により制御される。後述するイベント回収部510、イベント送付部530、タイマー通知部540が実行する各処理は制御部511により制御される。
イベント回収部510は、制御部511の指示に応じて、管理サーバ110に送信するためのデバイス120の稼働状況などのデータを収集し、イベントの形式で保存する。イベント回収部510は、まず、デバイス120内の事象を監視し、指定された条件に従い対象のデータを収集する。そして、イベント回収部510は、収集したデバイス120内のデータを管理サーバ110に送付するためイベントの形で正規化してメッセージバッファ520に保存する。
ここで、イベント回収部510によるデバイス120内のデータの収集について説明する。イベント回収部510は、後述する通知設定保持部521に保存されたイベントの通知設定に従ってデバイス120内でデータを収集する。例えば、イベント回収部510は、自発的にイベントを発行するモジュール(例えば、ユーザインターフェース501~履歴・設定保持部506)で発生した状態遷移を監視し、リアルタイムで状態遷移のデータを収集する。また、イベント回収部510は、デバイス120の稼働状況を定期的に収集するために、タイマー通知部540に対して指定時間経過後のタイマーの発火もしくは指定時刻でのタイマーの発火を要求する。タイマー通知部540から通知を受けたイベント回収部510は、タイマーの発火をトリガにして定期的に収集するデータを回収する。ここで、定期的に収集するデータとはデバイス120から管理サーバ110に定期送信するデータであり、カウンタ管理部507が管理するカウンタや構成情報管理部508が管理する構成情報などである。タイマー通知部540は、イベント回収部510の指示に応じてタイマーを設定し、設定された時刻の経過をイベント回収部510に通知する。
次に、イベント回収部510によるイベントの保存について説明する。イベント回収部510は、収集したデバイス120内のデータをイベントの形式に正規化し、正規化したイベントをメッセージバッファ520に保存する。正規化は、収集したデータを管理サーバ110に送信する形式にするために、例えばJSONなどの汎用のフォーマットを使って行われる。イベントには、イベント名称、発生時刻、情報処理装置のシリアル番号などの基本情報に加えてイベントの種別によって、追加でさまざまな情報が付与される。付与情報は、イベント回収部510がデバイス120内の各モジュールの状態や不揮発領域に保持される内容などから収集する。イベントの形式に正規化されたデータは、メッセージバッファ520に保存される。
メッセージバッファ520は、イベント回収部510により正規化されたイベントを保持する。メッセージバッファ520は、不揮発性のHDD404上にある。イベント送付部530は、制御部511の指示に応じて、デバイス120内から収集されてメッセージバッファ520に保存されたイベントを取得し、管理サーバ110に送信する。具体例には、イベント送付部530は、メッセージバッファ520への書き込みを検知するなどしてイベントが発行されたことを把握する。イベントの発行を検知したイベント送付部530は、メッセージバッファ520からイベントを取得し、ネットワーク通信部531を介して管理サーバ110にイベントを送付する。ネットワーク通信部531は、通信I/F405を利用し、ネットワーク100を介して管理サーバ110と通信する。
通知設定取得部532は、ネットワーク通信部531を介して、管理サーバ110からイベントの通知設定を受信する。そして、通知設定取得部532は、ネットワーク通信部531を介して管理サーバ110から取得したイベントの通知設定を通知設定保持部521に保存する。ここで、イベントの通知設定とは、管理サーバ110の管理対象であるデバイス内のデータの内、どのデータをどのタイミングでイベントとして管理サーバ110に送付するかの定義情報を示した内容である。イベントの通知設定は、コレクションファイルとして取得される。コレクションファイルの詳細な説明は、図8を用いて後述する。イベントの通知設定の取得、管理についての詳細な説明は、図7および図8を用いて後述する。
通知設定保持部521は、イベントの通知設定を保持する。すなわち、通知設定保持部521には、イベントの通知設定として、デバイス120内から収集されるべきデータの種類と収集される条件が記録される。通知設定保持部521は、不揮発性のHDD404上にあり、イベントの通知設定はファイルの形式で保存される。イベント回収部510は、通知設定保持部521に保存されたイベントの通知設定に従って、通知すべきと指示されたイベントを収集しメッセージバッファ520に保存する。そのため、デバイス120から管理サーバ110に契約の対象となっているデータのみを送付することができる。
「Event」の列に記載がある名称が、デバイス120内で発生した状態遷移に対して名称を付けて正規化した単位(以下、イベントと記載する)である。つまりこのイベントが、イベント回収部510がデバイス内から収集してメッセージバッファ520に対して保存する単位であり、管理サーバ110に送られる単位である。例えばJobStartedは、コピーやプリントなどのジョブが実行開始したことを意味するイベントである。ErrorOccurredは、デバイス内で何らかの異常状態が発生したことを意味するイベントである。「説明」の列は、各イベントの内容である。
「Collection」の列に記載がある名称は、複数のイベントを動作の意味のまとまりでグルーピングした単位である(以下、コレクションと記載する)。本実施形態では、コレクションの単位で管理サーバ110への送信の有効化の設定がなされる。そのため、通知設定保持部521が保持するイベントの通知設定では、デバイス120内で収集されるべきデータの種類がコレクションの単位で設定される。例えばイベントの通知設定でAlarmのコレクションが指定されると、ErrorOccurredおよびAlarmOccurredのイベントが管理サーバ110に送付されることになる。すなわち、Alarmのコレクションが指定されると、ErrorOccurredおよびAlarmOccurredのイベントがイベント回収部510の収集対象となる。
「定期送信」の列は、イベントが定期的に送付されるスナップショットのイベントであるか否かをコレクション単位で定義している。すなわち、定期送信の欄に〇が付いているイベントは、起動やタイマー等で定期的に送付されるスナップショットのイベントである。定期送信を有効化する場合は、通知設定保持部521においてコレクションの指定に加えて送信間隔と送信開始時刻の設定を行い、イベントの通知設定の一部として保存する。
「起動時」の列は、イベントが起動時に送信されるイベントであるか否かをコレクション単位で定義している。すなわち、起動時の欄に〇が付いているイベントは、起動時に送信されるイベントである。「発生時」の列は、イベントが対応する事象が発生したときに即時送信されるイベントであるか否かをコレクション単位で定義している。すなわち、発生時の欄に○がついているイベントは、対応する事象が発生したときに即時送信されるイベントである。
例えば、Basicのコレクションが指定されると、機種名や設置場所、ファームバージョン等基本情報を属性に持つBasicInfoSnapshottedイベントが、起動時および指定された送信間隔で定期的に管理サーバ110に送信される。同様に、Counterのコレクションが指定されると、CounterSnapshottedが、指定された送信開始時刻と送信間隔で管理サーバ110に定期送信される。なお、CounterSnapshottedは課金用のカウンタ情報の一覧、PartsCounterSnapshottedは部品の摩耗度のカウンタ情報の一覧を示す情報である。また、DeviceLogのコレクションが指定されると、DeiceLogDataが、指定された送信開始時刻と送信間隔で管理サーバ110に定期送信される。なお、DeiceLogDataはデバイスの稼働状況ログである。
図6は、イベントの発行・送付処理を示すフローチャートである。自発的にイベントを発行するモジュールで発生した状態遷移を監視してリアルタイムで状態遷移のデータを収集し、即時にイベントとして管理サーバ110へ送信するまでの流れを示してる。図6に示される各処理は、CPU401が、読み取り可能な記憶媒体(ROM402またはHDD404)に格納されたプログラムをRAM403に展開して実行することにより実現される。
図6では、具体例として、デバイス120内でエラーが発生した場合について説明する。エラーの発生を受けて制御部511の指示により、イベント回収部510がエラーに関連するデータを収集し、イベントを発行してメッセージバッファ520に保存し、イベント送付部530が管理サーバへ送付するまでの流れを示してる。図6(A)は、エラー発生イベントを収集して保存・送信する処理を示すフローチャートである。
ステップS601において、イベント回収部510は、デバイス120内のエラーの発生を検知する。具体例には、デバイス120内でエラーが発生するとまずエラー制御部505がエラーを検知する。エラーを検知したエラー制御部505は、イベント回収部510にエラーの発生を通知する。イベント回収部510はエラー制御部505からの通知を受けて、デバイス120内のエラーの発生を検知する。
ステップS602において、イベント回収部510は、ステップS601で検知したエラーの発生というイベント(以下、エラーイベントと記載する)が管理サーバ110に通知する対象であるか否かを判定する。イベント回収部510は、エラーイベントが通知対象であるか否かを、通知設定保持部521に保存されたイベントの通知設定に従って判定する。イベントの通知設定においてエラーイベントを含むコレクションが管理サーバ110への通知対象に設定されていた場合は、ステップS603に進む。一方、イベントの通知設定においてエラーイベントを含むコレクションが管理サーバ110への通知対象に設定されていなかった場合は、本処理を終了する。ステップS601およびステップS602により、イベント回収部510は、イベントの通知設定において通知対象に設定されているイベントのみを収集することができる。
ステップS603において、イベント回収部510は、現在時刻を取得する。そして、ステップS604において、イベント回収部510は、イベントを発行して管理サーバ110に送信する。ステップS604の詳細な処理について図6(B)を用いて説明する。
図6(B)は、ステップS604の処理、すなわちイベントを発行して管理サーバ110に送付する処理を示すフローチャートである。ステップS611において、イベント回収部510は、ステップS601で検知したイベントに応じた情報をデバイス120内の各モジュールから収集する。ここで収集される情報は、イベントごとにあらかじめ紐づけられた情報であり、検知されたイベントと共に管理サーバ110に送信される。ステップS601で検知したイベントがエラーイベントである場合は、エラーイベントに付与する情報を収集する。例えばエラーイベントでは、エラーコードやエラーが起きた部品の名称、その時までの通紙したカウント値などが収集対象の付与情報になる。また、例えばコピージョブの完了イベントでは、実行ユーザ名、カラーモノクロの区別、スキャン枚数、プリント枚数などが収集対象の付与情報になる。
ステップS612において、イベント回収部510は、エラーイベントを付与情報と時刻情報と共に正規化する。イベント回収部510は、例えば、JSONなどのフォーマットで正規化する。ステップS613において、イベント回収部510は、ステップS612で正規化されたエラーイベントをメッセージバッファ520に保存する。イベントがメッセージバッファ520に保存された時点でサーバへの送付内容が確定される。
ステップS614において、イベント送付部530は、メッセージバッファ520からイベントを読み出す。イベント送付部530は、ステップS613におけるメッセージバッファ520へのイベントの書き込みを非同期に検知し、メッセージバッファ520からのイベントの読み出しを行う。ステップS615において、イベント送付部530は、読み出したイベントを管理サーバ110へ送信する。イベント送付部530は、管理サーバ110への認証動作や通信エラー時のリトライ処理などを含めて送信完了までを実行する。デバイス120からイベントを受信s似た管理サーバ110は、受信したイベントをストレージに保存する。以上の処理により、デバイス120内で発生した各種事象は管理サーバ110に収集され、システム111が提供する各種サービスで利用可能となる。
図6の処理で収集、保存されたデバイス120のデータは、管理サーバ110に送信され、管理サーバ110を含むシステム111上に構築される各種サービスやアプリケーションに利用される。そのため、契約したサービスに応じて必要なデータすなわち収集すべきデータが異なるので、サービスごとにイベントの通知設定が異なる。本実施形態では、イベントの通知設定はコレクションファイルの形式で管理される。したがって、契約したサービスごとにコレクションファイルに記載する内容が異なる。例えば、ダッシュボードなどで運用中状況などのマクロな稼働状況の監視を行うサービスを提供するシステムの場合は、表1のCounterおよびAlarmのコレクションをコレクションファイルに記載する。消耗品の自動配送サービスを提供するシステムでは、表1のImformationのコレクションをコレクションファイルに記載する。デバイス120の稼働状況を監視してメンテナンスサービスを提供するシステムでは、表1のDiagnosisのコレクションをコレクションファイルに記載する。
イベントの通知設定であるコレクションファイルを設定、管理する処理について説明する。図7は、イベントの通知設定を取得・更新する処理を示すフローチャートである。図7において、デバイス120にサービスを提供する管理サーバ110を含むシステム111が実行する各処理は、管理サーバ110が実行するものとして説明する。図7に示される管理サーバ110側の各処理は、CPU201が、読み取り可能な記憶媒体(ROM202またはHDD204)に格納されたプログラムをRAM203に展開して実行することにより実現される。また、デバイス120側の各処理は、CPU401が、読み取り可能な記憶媒体(ROM402またはHDD404)に格納されたプログラムをRAM403に展開して実行することにより実現される。
まず、管理サーバ110側がデバイス120と接続する前に実施する事前処理について説明する。ステップS701において、管理サーバ110は、これから接続されるデバイス装置の情報を登録する。デバイス装置の情報には、デバイスシリアル番号や顧客情報などが含まれる。本実施形態では、管理サーバ110がデバイス120と接続する例を説明する。次に、ステップS702において、管理サーバ110は、デバイス120を有する顧客の契約内容に基づいて、デバイス120に提供するサービスを決定する。ステップS703において、管理サーバ110は、デバイス120に提供するサービスに応じてデバイス120に配置するコレクションファイルの内容を決定する。
一方、デバイス120側では、ステップS751において、ネットワーク通信部531が管理サーバ110への接続動作を実施する。具体的には、ネットワーク設定で管理サーバ110のアドレスを入力するなどの手順でネットワーク100を介して管理サーバ110と接続する。そして、デバイス120は管理サーバ110上のアプリケーションとの通信を実施する。デバイス120からの接続処理(ステップS751)を受けて、ステップS704で管理サーバ110は、デバイス120の接続を確認する。以上によりデバイス120と管理サーバ110間での通信が確立し、データのやり取りが可能となる。
ステップS705において、管理サーバ110は、ステップS703で決定したコレクションファイルをデバイス120に送信する。ステップS752において、デバイス120の通知設定取得部532は、管理サーバ110から送信されたコレクションファイルを受信する。ステップS753において、通知設定取得部532は、ステップS752で取得したコレクションファイルと通知設定保持部521に保存している取得元が同じコレクションファイルとを比較し、変更があるか否か判定する。変更があった場合は、ステップS754に進む。一方、変更がなかった場合はステップS755に進む。なお、通知設定保持部521に取得元が同じコレクションファイルが存在しない場合、すなわち初めて管理サーバ110から受信したコレクションファイルであった場合は、変更があったものとしてステップS754に進むものとする。
ステップS754において、通知設定取得部532は、通知設定保持部521に保存されているコレクションファイルを、ステップS752で受信したコレクションファイルに書き換える。更新された最新のコレクションファイルに従ってイベントの収集保存が行われることにより、管理サーバ110から指示されたイベントの送付を実行することができる。以降はステップS755で一定時間待機した後ステップS752に戻り、管理サーバ110から最新のコレクションファイルを入手し、内容に変更があれば通知設定保持部521のコレクションファイルに反映させるという動作を繰り返す。
管理サーバ110側ではステップS705の後、デバイス120に提供するサービスに変更があった場合にはコレクションファイルを変更して、変更後のコレクションファイルをデバイス120に送付できるようにする。具体例には、まずステップS706において、管理サーバ110は、顧客の契約内容が変更になるなどしてデバイス120に提供するサービスの内容が変更になったか否か判定する。サービスの内容が変更になった場合はステップS707に進む。一方、サービスの内容に変更がない場合はステップS706を繰り返す。ステップS707において、管理サーバ110は、サービスの変更に応じてコレクションファイルを変更する。コレクションファイルの変更が完了すると、ステップS705に戻り、変更後のコレクションファイルをデバイス120に送信する。
以上説明したように、管理サーバ110でコレクションファイルを変更してデバイス120が保持するコレクションファイルに反映することで、顧客の契約するサービス内容に応じてデバイス120の通知設定を変更することが可能となる。
図8は、第1実施形態におけるコレクションファイルの一例を示す図である。コレクションファイル800は、イベントの通知設定が記載された定義情報であり、デバイス120内で収集されるべきデータの種類と収集される条件が定義されている。コレクションファイル800は、管理サーバ110で生成され、図7のステップS705で管理サーバ110からデバイス120に送信される。管理サーバ110から送信されたコレクションファイル800をデバイス120はステップS752で受信し、通知設定保持部521で保持する。デバイス120内のデータを収集する際には、ステップS602においてコレクションファイル800の記載内容が参照される。本実施形態では、JSON形式のコレクションファイル800の例を説明するが、コレクションファイル800の形式はXML・CSVなどテキストで正規化できるフォーマットであればよい。
コレクションファイル800には、3種類の通知設定(通知設定801~通知設定803)が記載されている。各通知設定には、管理サーバ110に送付するために収集されるべきデータの種類と、収集される条件が記載されている。具体例には、データの種類としてイベントが属するコレクションが記載され、データの収集条件としてデータを収集するタイミングが記載されている。
通知設定801には、収集されるべきデータの種類として“Power”と“Alarm”が、収集される条件として“realtime”が記載されている。“realtime”はイベント発生時に即座に送付するという定義である。すなわち、通知設定801では、PowerとAlarmのコレクションに属すイベントが発生した場合、即座に送信するよう設定されている。“realtime”が設定されている場合は、デバイス120内でエラー等、PowerもしくはAlarmのコレクションに属するイベントが発生した際に、ステップS602でエラーイベントの送付が必要と判断される。そして、エラーに対応するイベントが発行され、管理サーバ110に送付されることになる。
通知設定802には、収集されるべきデータの種類として“Basic”が、収集される条件として“up”が記載されている。本実施形態において、Basicのコレクションに属するイベントは、BasicInfoSnapshottedである。upはデバイス120の起動時に送信するという定義である。さらに、追加の指定で“startOffset”が記載され、オフセット上限時間が設定されている。通知設定802の記載では、オフセット上限時間が30分に設定されている。オフセット上限時間の設定のより、Basicのコレクションに属するイベントの送信タイミングとして、起動直後から30分を上限としたランダムなオフセットが指定される。したがって、デバイス120の起動のタイミングから30分以内のオフセット時間をデバイス120がランダムに生成し、オフセット時間だけ待った後に、Basicのコレクションに属するイベントが管理サーバ110に送信されることになる。なお、本実施形態ではオフセットの上限時間が指定されている例について説明するが、固定のオフセット時間が指定されていてもよい。
通知設定803には、収集されるべきデータの種類として“DeviceLog”が、収集される条件として“cron”が記載されている。本実施形態において、DeviceLogのコレクションに属するイベントは、DeviceLogDataである。通知設定803のcronの例では、定期送信の周期が24時間、送信開始時刻が2020年12月1日00:00に定義されている。すなわち、通知設定803では、DeviceLogのコレクションに属するイベントを、送信開始時刻の2020年12月1日00:00に最初に送付し、以降24時間周期で管理サーバ110に送付するよう設定されている。送信開始時刻で指定された日付が現在時刻よりも前の日付だった場合、直近の日付の指定された時刻(00:00)にイベントが送信される。例えば、現在が2020年12月03日18:00であった場合、通知設定803の指定により、DeviceLogのコレクションに属するイベントが次に送信がされるのは2020年12月04日の00:00である。
以上説明したように、通知設定801はイベントの即時送信を設定し、通知設定802はイベントの起動時送信を設定し、通知設定803はイベントの指定時刻送信を設定している。イベントの即時送信については、既に図6を参照して説明した。コレクションファイル800において起動時送信イベントに設定されたBasicInfoSnapshottedイベントと、指定時刻送信イベントに設定されたDeviceLogDataイベントの送付について図9および図10を参照して説明する。
図9および図10は、第1実施形態におけるイベントの送付処理を示すフローチャートである。図9および図10に示される各処理は、CPU401が、読み取り可能な記憶媒体(ROM402またはHDD404)に格納されたプログラムをRAM403に展開して実行することにより実現される。図9および図10では、具体例として、起動時送信イベントとしてBasicInfoSnapshottedイベントを、指定時刻送信イベントとしてDeviceLogDataイベントを送信する場合について説明する。
図9および図10に示される処理は、デバイス120が起動することによって開始される。ステップS901で、制御部511は、通知設定保持部521からコレクションファイル800に設定されている通知設定の情報を取得する。ステップS902で、制御部511は、指定時刻送信イベントの送信予定時刻を計算する。制御部511は、コレクションファイル800に記述された設定値と現在の時刻に基づいて、指定時刻送信イベントの送信予定時刻を算出する。コレクションファイル800の例では、設定通知803でDeviceLogDataイベントが、送信開始時刻が2020年12月1日00:00、定期送信の周期が24時間の設定で指定時刻送信イベントとして設定されている。例えば、現在の時刻が2020年12月2日08:00である場合は、指定時刻送信イベントの送信予定時刻は、2020年12月3日00:00と算出される。
ステップS903で、制御部511は、後述するHDD404に保持しておいた指定時刻送信イベントの送信予定時刻を参照し、ステップS902で算出した指定時刻送信イベントの送信予定時刻との比較を行う。ステップS904で、制御部511は、ステップS902で算出した指定時刻送信イベントの送信予定時刻が、HDD404に保持しておいた指定時刻送信イベントの送信予定時刻を過ぎているか否か判定する。HDD404に保持しておいた送信予定時刻は、指定時刻送信イベントが本来送信されるべき時刻であり、前回の指定時刻送信イベントの送信の後に次回の送信予定時刻として算出されHDD404に保存されている。デバイス120の電源OFF等によりシステム111から指定された送信予定時刻に送信できなかった場合は、デバイス120の起動後にリカバリ送信が行われる。
ステップS902で計算した送信予定時刻がHDD404に保持しておいた送信予定時刻を過ぎている場合、すなわちデバイス120の起動後のリカバリ送信が必要な場合は、ステップS905へ進む。一方、S902で計算した送信予定時刻がHDD404に保持しておいた送信予定時刻を過ぎていない場合は、送信予定時刻に送信すればよいためリカバリ送信の必要はなく、ステップS907へ進む。なお、ステップS902で計算した送信予定時刻とHDD404に保持しておいた送信予定時刻とが一致する場合も、送信予定時刻に送信すればよいためリカバリ送信の必要はなく、ステップS907へ進む。例えば、HDD404に保持していた送信予定時刻が2020年12月02日00:00であり、起動後にステップS902で計算した次の送信予定時刻が2020年12月02日00:00で一致する場合は、ステップS907に進む。一方、HDD404に保持していた送信予定時刻が2020年12月02日00:00であり、ステップS902で計算した送信予定時刻が2020年12月03日00:00の場合は、2020年12月02日00:00の指定時刻送信を逃していることになる。この場合は、ステップS905へ進む。なお、本実施形態ではステップS902で計算した送信予定時刻とHDD404に保持された送信予定時刻が一致する場合にステップS907に進む例を説明したが、イベントの送信が重複する恐れを抑制するためにステップS905に進むように制御してもよい。
管理サーバ110から指定された送信時刻を過ぎていた場合はリカバリ送信を行う必要があるが、指定時刻送信イベントのリカバリ送信と起動時送信イベントの送付が重なってしまう恐れがある。リカバリ送信と起動時送信イベントの送信が重なってしまうと、デバイス120の処理の負荷や管理サーバ110との通信を行うためのネットワークの負荷が増大してしまう。また、管理サーバ110等にデータを送信する同一ネットワーク100内の複数のデバイスの起動時刻が同時刻に設定されていた場合は、管理サーバ110との通信を行うためのネットワークの負荷が同じ時刻に集中してしまう恐れがある。そこで、デバイス120の起動時に指定時刻送信イベントのリカバリ送信を行う必要がある場合には、リカバリ送信と起動時送信イベントとの送信時刻の重複を抑制して、負荷を分散させる必要がある。
ステップS905で、制御部511は、通知設定保持部521のコレクションファイル800に記述された設定値に基づいて、起動時送信イベントにオフセット上限時間が設定されているか判定する。コレクションファイル800の例では、設定通知802で、起動時送信イベントであるBasicInfoSnapshottedに30分のオフセット上限時間が設定されている。オフセット上限時間が設定されている場合はステップS906に進む。一方、オフセット上限時間が設定されていない場合は、ステップS913に進む。
ステップ913およびステップS913に続くステップS914では、現在の時刻で指定時刻送信イベントのリカバリ送信を行う。すなわち、ステップS905で起動時送信イベントのオフセット上限時間が設定されていない場合には、指定時刻送信イベントを即時送信することになる。これは、管理サーバ110から指示されたコレクションファイル800にオフセット上限時間の設定がないということは、ネットワーク負荷の懸念が少ない環境であると判断できるためである。ネットワーク負荷の懸念が少ない環境である場合には、指定時刻に送信できなかったデータをできるだけ早く送信するようにする。そのため、制御部511は、オフセット上限時間が設定されていない場合(ステップS905がNo)には、指定時刻送信イベントの送信を起動時送信イベントの送信より遅らせる遅延処理を行わずに指定時刻送信イベントを即時送信するようにする。
ステップS906で、制御部511は、指定時刻送信イベントのリカバリ送信時刻と起動時送信イベントとの送信時刻が重ならないように、指定時刻送信イベントのリカバリ送信時刻を算出する。具体的には、制御部511は、指定時刻送信イベントのリカバリ送信時刻が、設定されているオフセット時間に従う起動時送信イベントの送信時刻よりさらに遅延するように設定する。指定時刻送信イベントのリカバリ送信時刻を起動時送信イベントに設定されているオフセット上限時間よりさらに遅延させることで、指定時刻送信イベントのリカバリ送信時刻と起動時送信イベントとの送信時刻の重複を回避することが可能となる。
例えば、制御部511は、起動時送信イベントの送信時刻に所定の時間を加算し、リカバリ送信時刻とする。加算する所定の時間は、0より大きい値で、かつ、リカバリ送信として遅くなりすぎない時間であればよい。例えば、加算する所定の時間は、予め決定された固定の時間でもよいし、コレクションファイル800の設定通知802のオフセット上限時間と同じ固定値でもよいし、オフセット上限時間からオフセット上限時間の2倍の時間の間のランダムな時間としてもよい。例えば、コレクションファイル800で起動時送信イベントのオフセット上限時間が30分に設定されている場合、起動時送信イベントの送信時刻は30分を上限として制御部511が乱数をかけるなどして生成した時刻となる。ここでは、制御部511が起動時送信イベントの送信予定時刻を9分後と算出したとする。加算する所定の時間がオフセット上限時間と同じである場合は、リカバリ送信時刻は、起動時送信イベントの送信予定時刻(9分)にオフセットの上限時間(30分)を加算した39分と設定される。すなわち、起動時送信イベントが9分後に送信され、指定時刻送信イベントのリカバリ送信は39分後に送信されるため、送信時刻が重なることがない。このように、制御部511はネットワーク負荷が懸念される場合において、電源OFF等から復帰後のリカバリ送信を起動時送信よりも遅延させる処理(ステップS903~ステップS906)を行うことで、データの送信の重複を抑制することができる。
ステップS907で、制御部511は、起動時送信イベントの送信時刻のタイマーを設定する。具体的には、制御部511は、コレクションファイル800で設定されている起動時送信イベントのオフセット上限時間を読み出し、起動時送信イベントの送信時刻としてオフセット上限時間を超えないランダムな時間を決定する。そして、制御部511は、タイマー通知部540に指示して起動時送信イベントの送信時刻のタイマーを設定させる。
ステップS908で、制御部511は、指定時刻送信イベントの送信時刻のタイマーを設定する。具体的には、制御部511は、タイマー通知部540に指示して、ステップS906もしくはステップS915で算出した指定時刻送信イベントの送信時刻のタイマーを設定させる。
ステップS909で、制御部511は、タイマー通知部540からステップS908で設定した指定時刻送信イベントの送信時刻経過の通知を受けたか判定する。タイマー通知部540から指定時刻送信イベントの送信時刻経過の通知を受けた場合は、ステップS913に進む。一方、タイマー通知部540から指定時刻送信イベントの送信時刻経過の通知が来ていない場合は、ステップS910に進む。
ステップS910で、制御部511は、タイマー通知部540からステップS907で設定した起動時送信イベントの送信時刻経過の通知を受けたか判定する。起動時送信イベントの送信時刻経過の通知を受けた場合は、ステップS911に進む。一方、起動時送信イベントの送信時刻経過の通知が来ていない場合は、ステップS909に戻り送信時刻の確認処理を繰り返す。
起動時送信イベントの送信時刻になったら、ステップS911で、制御部511は、現在の時刻を取得する。ステップS912で、制御部511は、起動時送信イベントを発行し、送付する処理を実施する。ステップS912の具体的な処理内容は、図6(B)で示した処理と同様である。一方、指定時刻送信イベントの送信時刻になったら、ステップS913で、制御部511は、現在の時刻を取得する。ステップS914で、制御部511は、起動時送信イベントを発行し、送付する処理を実施する。ステップS914の具体的な処理内容は、図6(B)で示した処理と同様である。
ステップS915で、制御部511は、次に指定時刻送信イベントを送信すべき送信予定時刻を計算する。例えば、コレクションファイル800の通知設定803の設定で送信間隔が24時間で送信開始時刻が2020年12月01日00:00に指定され、現在時刻が2020年12月04日14:00であるとする。この場合、次の指定時刻送信イベントの送信時刻は2020年12月01日00:00から24時間ずつずらした直近の日時の12月05日00:00と計算される。
ステップS916で、制御部511は、ステップS903で参照したHDD404に保持しておいた送信予定時刻を、ステップS915で計算した次の送信予定時刻に更新する。このように、指定時刻送信イベントを送信した後に次回の送信予定時刻をHDD404の不揮発な領域に書き込んでおくことで、電源OFFから復帰した際に送信予定時刻を過ぎているか否かをステップS904で判定することができる。ステップS916で、制御部511は、HDD404の送信予定時刻を更新する。送信予定時刻を更新後、ステップS908へ戻る。
以上説明したように本実施形態によると、起動時送信イベントにオフセットが設定されており、かつ、指定時刻送信イベントの送信予定時刻を超過していた場合、指定時刻送信イベントのリカバリ送信を起動時送信イベントの送信より遅延させることができる。これにより、デバイス120の起動後の複数のイベントの同時送信によるネットワーク100の負荷の増大を抑制することができる。一方で、起動時送信イベントにオフセットが設定されていない場合、すなわちネットワーク負荷が致命的にならないと判断できる場合には、指定時刻送信イベントを起動後即時送信するもできるので、環境に合わせて柔軟に対応ができる。
なお、ステップS908ではステップS906で算出したオフセット時間後を送信予定時刻としていた。しかし、指定時刻送信イベントが、例えばデータのサイズが非常に大きい場合や指定時刻にデータを収集しなければならない場合も考えられる。このように、イベントのデータ量が所定の量より大きい場合や通知設定において送信時刻以外の送信が認められていない場合は、指定時刻以外に送信をさせないように、ステップS902で算出した次の指定時刻にタイマーをセットするようにすればよい。また、本実施形態では、イベントの発行を行うタイミングを制御することでイベントの送信タイミングを制御していたが、これに限られるものではない。例えば、制御部511がメッセージバッファ520からイベントを読み出すタイミングを制御する等により、イベントの送信のタイミングが重複しないように制御するようにしてもよい。
(第2実施形態)
第1実施形態では起動時送信イベントが起動時に送信される場合を前提に説明してきたが、起動時送信イベントがない場合もある。第2実施形態では、起動時送信イベントがない場合について説明する。起動時送信イベントがない場合は、電源復帰後即時に指定時刻送信イベントのリカバリ送信を行っても起動時送信イベントとの重複は起こらないため、ネットワーク負荷の影響が明確に判断できない。しかし、例えば同一ネットワーク100に複数のデバイス120が接続され、各デバイスの起動タイミングが同時である場合には、ネットワーク100に負荷がかかってしまう恐れがある。そのため、本実施形態では、起動時送信イベントがない場合でも同時に起動した各デバイス120のリカバリ送信の重複により生じてしまう恐れのあるネットワーク負荷の増大を抑制するために、リカバリ送信の送信時刻を起動後即時よりも遅らせるよう制御する。
第1実施形態では起動時送信イベントが起動時に送信される場合を前提に説明してきたが、起動時送信イベントがない場合もある。第2実施形態では、起動時送信イベントがない場合について説明する。起動時送信イベントがない場合は、電源復帰後即時に指定時刻送信イベントのリカバリ送信を行っても起動時送信イベントとの重複は起こらないため、ネットワーク負荷の影響が明確に判断できない。しかし、例えば同一ネットワーク100に複数のデバイス120が接続され、各デバイスの起動タイミングが同時である場合には、ネットワーク100に負荷がかかってしまう恐れがある。そのため、本実施形態では、起動時送信イベントがない場合でも同時に起動した各デバイス120のリカバリ送信の重複により生じてしまう恐れのあるネットワーク負荷の増大を抑制するために、リカバリ送信の送信時刻を起動後即時よりも遅らせるよう制御する。
図11は、第2実施形態におけるコレクションファイルの一例を示す図である。コレクションファイル1100は、イベントの通知設定が記載された定義情報であり、デバイス120内で収集されるべきデータの種類と収集される条件が定義されている。コレクションファイル1100は、コレクションファイル800と同様に、管理サーバ110からデバイス120に送付され、通知設定保持部521に保持されている。デバイス120内のデータを収集する際には、コレクションファイル800の記載内容が参照される。本実施形態では、JSON形式のコレクションファイル1100の例を説明するが、コレクションファイル1100の形式はXML・CSVなどテキストで正規化できるフォーマットであればよい。
コレクションファイル1100には、2種類の通知設定(通知設定1101,通知設定1102)が記載されている。各通知設定には、管理サーバ110に送付するために収集されるべきデータの種類と、収集される条件が記載されている。具体例には、データの種類としてイベントが属するコレクションが記載され、データの収集条件としてデータを収集するタイミングが記載されている。
通知設定1101は、通知設定801と同様の通知設定である。通知設定1102は、通知設定803と同様の通知設定である。通知設定1101はリアルタイム送信イベントを、通知設定1101は指定時刻送信イベントを定義している。第1実施形態のコレクションファイル800との違いは、通知設定802で定義されていた起動時送信イベントがない点である。したがって、コレクションファイル1100に従ったイベントの送信では、起動時送信イベントは送信されない。
図12および図13は、第2実施形態におけるイベントの送付処理を示すフローチャートである。図12および図13に示される各処理は、CPU401が、読み取り可能な記憶媒体(ROM402またはHDD404)に格納されたプログラムをRAM403に展開して実行することにより実現される。以下では、第1実施形態におけるイベントの送付処理(図9および図10)と異なる部分についてのみ説明する。
ステップS904において、S902で算出した指定時刻送信イベントの送信予定時刻がHDD208に保存されていた送信予定時刻を超過していると判定された場合、ステップS1201に進む。ステップS1201で、制御部511は、通知設定保持部521が保持するコレクションファイル1100に起動時送信イベントが記述されているか判定する。制御部511は、例えば、コレクションファイル1100にイベントが収集される条件として起動時の送付を示す“up”が記載されているか否かにより起動時送信イベントが記述されているか判定する。起動時送信イベントが記述されている場合は、ステップS905に進む。一方、起動時送信イベントが記述されていない場合は、起動時送信イベントはないためステップS1202に進む。
ステップS1202で、制御部511は、指定時刻送信イベントのリカバリ送信の送信予定時刻を算出する。ここで、制御部511は、デバイス120の起動後の即時の送信時刻よりも遅延させた時刻をリカバリ送信の送信予定時刻に設定する。例えば、制御部511は、現在時刻にランダムな時間を加算し、指定時刻送信イベントのリカバリ送信の送信予定時刻とする。ここで、加算するランダムな時間は0より大きく、かつ、所定の上限時間以下であればよい。所定の上限時間は、例えば送信データのサイズなどのパラメータに応じて決定してもよいし、固定値としてもよい。
以上説明したように、本実施形態によるとステップS1202に処理により、電源OFF等により指定時刻送信イベントの送信ができずに電源復帰後にリカバリ送信する場合、リカバリ送信の送信時刻を遅延させることができる。これにより、起動時送信イベントのオフセットの設定がない場合でも、リカバリ送信によるネットワーク負荷を分散させることができる。
(第3実施形態)
第1実施形態では起動時送信イベントと指定時刻送信イベントの間に関連がなく、どちらを先に送信しても影響がない場合について説明してきた。しかし、送信する複数のイベントの間に送信順の優先順位が規定されていることもある。イベントの送信の順序に優先順位が規定されている場合、優先順位の通りにデータを送信しなければサーバ側でうまく処理ができないなどの制約があるため、優先順位通りに送信しなければならない。
第1実施形態では起動時送信イベントと指定時刻送信イベントの間に関連がなく、どちらを先に送信しても影響がない場合について説明してきた。しかし、送信する複数のイベントの間に送信順の優先順位が規定されていることもある。イベントの送信の順序に優先順位が規定されている場合、優先順位の通りにデータを送信しなければサーバ側でうまく処理ができないなどの制約があるため、優先順位通りに送信しなければならない。
表2は、イベントの通知設定とイベントの関係を示す表である。表2では、表1の内容に加えて各コレクションに送信の優先順位を定義している。送信のタイミングが重なってしまう場合、優先順位の値が小さいほうから先に送信が行われる。優先順位は、例えば、コレクションファイルに定義され、制御部511が指定時刻送信イベントを発行する際に参照する。
Basicのコレクションに対応するBasicInfoSnapshottedイベントは起動時に送信する対象であり、優先順位は2になっている。一方、DeviceLogのコレクションに対応するDeiceLogDataイベントは定期送信の対象であり、優先順位は1となっている。その他のイベントの優先順位は3になっている。この優先順位に従うと、送信のタイミングが重なってしまう場合、優先順位の値が小さいBasicInfoSnapshottedイベントが先に送信され、次にDeiceLogDataイベント、その次にその他のイベントが送信される。したがって、制御部511は、メッセージバッファ520にDeviceLogDataを1番目に、BasicInfoSnapshottedを2番目に書き込むように制御部511を制御する。
図14および図15は、第3実施形態におけるイベントの送付処理を示すフローチャートである。図14および図15に示される各処理は、CPU401が、読み取り可能な記憶媒体(ROM402またはHDD404)に格納されたプログラムをRAM403に展開して実行することにより実現される。以下では、第1実施形態におけるイベントの送付処理(図9および図10)と異なる部分についてのみ説明する。
ステップS905において、起動時送信イベントにオフセット上限時間が設定されていると判定された場合、ステップS1401に進む。ステップS1401で、制御部511は、各イベントの優先順位の情報を取得し、送信すべき対象となっている起動時送信イベントとリカバリ送信の対象となっている指定時刻送信イベントの優先順位を比較する。起動時送信イベントよりも指定時刻送信イベントの優先順位が高い場合は、ステップS1402へ進む。一方、起動時送信イベントよりも指定時刻送信イベントの優先順位が低い場合は、第1実施形態と同様にリカバリ送信を起動時送信イベントの送信よりも遅延させればよいため、ステップS906へ進む。
起動時送信イベントよりも指定時刻送信イベントの優先順位が高い場合は優先順位に従って送信するために、ステップS1402およびステップS1403で指定時刻送信イベントのリカバリ送信時刻が起動時送信イベントの送信時刻より先になるよう設定する。ステップS1402で、制御部511は、指定時刻送信イベントのリカバリ送信時刻を設定する。制御部511は、例えば、指定時刻送信イベントを起動時送信イベントより先に送信するため、現在の時刻に内部で保持する固定のオフセット上限時間を上限とするランダムな時間を加算し、リカバリ送信の送信時刻として計算する。ステップS1403で、制御部511は、起動時送信イベントの送信時刻を設定する。制御部511は、例えば、現在の時刻に内部で保持する固定のオフセット上限時間とコレクションファイル800の通知設定802で設定されたオフセット上限時間を上限とするランダムな時間を加算し、起動時送信イベントの送信時刻として計算する。
指定時刻送信イベントの優先順位が起動時送信イベントよりも高く設定されている場合において、例えば、固定のオフセット上限時間が20分で、通知設定802で指定された起動時送信イベントのオフセット上限時間の設定値が30分であったとする。固定のオフセット上限時間に乱数をかけて算出したオフセット時間は18分であったとすると、指定時刻送信イベントのリカバリ送信の送信予定時刻は18分後となる。一方で、起動時送信イベントのオフセット時間は、オフセット上限時間30分に乱数をかけて26分であったとする。この場合、起動時送信イベントの送信予定時刻は固定オフセット上限時間20分とランダムなオフセット時間26分を足して46分後となる。
ステップS1404で、制御部511は、ステップS1403で算出した起動時送信イベントの送信時刻でタイマーを設定するようタイマー通知部540に指示する。なお、ステップS1402およびステップS1403では、指定時刻送信イベントのリカバリ送信の送信時刻が起動時送信イベントの送信時刻より先になるよう設定すればよく、送信時刻の設定方法は問わない。例えば、ステップS1403は、制御部511は、ステップS1402で算出した指定時刻送信イベントの送信時刻に所定の時間を加算して起動時送信イベントの送信時刻とするようにしてもよい。
以上のように本実施形態によると、イベントの送信順に優先順位が規定されている場合に、デバイス120の起動時に指定時刻送信イベントと起動時送信イベントとを送信する際には優先順位通りに送信をおこなうことができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
Claims (8)
- ネットワークデバイス内で収集したデータをネットワークを介してシステムに送信するネットワークデバイスであって、
前記ネットワークデバイスの起動時にリカバリ送信が行われる対象のデータについては、前記ネットワークデバイスの起動時に送信するイベントの送信の設定においてオフセット時間が設定されている場合、該オフセット時間に従う前記イベントの送信よりもさらに遅延させて、前記リカバリ送信の対象のデータの送信を行う制御手段を有する、ことを特徴とするネットワークデバイス。 - 前記オフセット時間として、オフセットの上限時間が設定されている場合、
前記制御手段は、前記リカバリ送信の対象のデータの送信を起動時に送信するイベントに設定されているオフセットの上限時間よりも遅らせることで、前記イベントの送信よりもさらに遅延させて、前記リカバリ送信の対象のデータの送信を行うことを特徴とする請求項1に記載のネットワークデバイス。 - 前記ネットワークデバイスの起動時に送信する前記イベントの送信の設定において、オフセット時間が設定されていない場合、前記制御手段は、前記リカバリ送信の対象のデータの送信を遅延させる処理を行わずに、前記リカバリ送信の対象のデータの送信を行うことを特徴とする請求項1または2に記載のネットワークデバイス。
- 前記ネットワークデバイスの起動時に送信するイベントがない場合、前記制御手段は、前記ネットワークデバイスの起動後即時よりも遅延させて、前記リカバリ送信の対象のデータの送信を行うことを特徴とする請求項1乃至3のいずれか1項に記載のネットワークデバイス。
- 前記ネットワークデバイスの起動時に送信するイベントの送信の設定においてオフセット時間が設定されている場合、かつ、前記リカバリ送信の対象のデータの送信の優先順位が前記ネットワークデバイスの起動時に送信する前記イベントの送信の優先順位よりも高い場合には、前記制御手段は、前記リカバリ送信の対象のデータの送信よりもさらに遅延させて、前記イベントの送信を行うことを特徴とする請求項1乃至4のいずれか1項に記載のネットワークデバイス。
- 起動時にリカバリ送信が行われる対象のデータは、前記システムから指定された送信時刻に送信ができなかったデータであり、前記制御部は、前記ネットワークデバイスを起動した際に現在の時刻と前記システムに指定された送信時刻から算出した次回の送信予定時刻が、前回、前記システムに送信時刻が指定されたデータを送信した際に保存した次回のデータの送信予定時刻を超過していた場合に、システムから指定された送信時刻に送信ができなかったと判定することを特徴とする請求項1乃至5のいずれか1項に記載のネットワークデバイス。
- ネットワークデバイス内で収集したデータをネットワークを介してシステムに送信するネットワークデバイスの制御方法であって、
前記ネットワークデバイスの起動時にリカバリ送信が行われる対象のデータについては、前記ネットワークデバイスの起動時に送信するイベントの送信の設定においてオフセット時間が設定されている場合、該オフセット時間に従う前記イベントの送信よりもさらに遅延させて、前記リカバリ送信の対象のデータの送信を行う制御工程を有する、ことを特徴とするネットワークデバイスの制御方法。 - 請求項1乃至6のいずれか1項に記載のネットワークデバイスの制御手段としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021069568A JP2022164222A (ja) | 2021-04-16 | 2021-04-16 | ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021069568A JP2022164222A (ja) | 2021-04-16 | 2021-04-16 | ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022164222A true JP2022164222A (ja) | 2022-10-27 |
Family
ID=83742957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021069568A Pending JP2022164222A (ja) | 2021-04-16 | 2021-04-16 | ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022164222A (ja) |
-
2021
- 2021-04-16 JP JP2021069568A patent/JP2022164222A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10908851B2 (en) | Communication system and information processing apparatus that manage log information about an external apparatus, and control method therefor | |
US11403052B2 (en) | Firmware upgrade system and associated methods for printing devices | |
US8953193B2 (en) | Management system, monitoring apparatus and management | |
JP2012068831A (ja) | 情報処理装置および該装置におけるプログラム更新方法 | |
US10963195B1 (en) | Firmware upgrade system and methods for printing devices | |
US11652933B2 (en) | Network device and network device control method | |
US11283941B2 (en) | Network device that detects an event, method for controlling network device, and recording medium | |
JP2022164222A (ja) | ネットワークデバイス、ネットワークデバイスの制御方法およびプログラム | |
JP5862011B2 (ja) | 機器管理装置、機器設定方法、及び機器設定プログラム | |
US11194694B2 (en) | Network client and method therefor | |
US10831419B1 (en) | Firmware upgrade system for printing devices having a component | |
JP6724088B2 (ja) | 画像処理装置、情報処理方法及びプログラム | |
JP7413072B2 (ja) | 情報処理装置、デバイス管理システム、情報処理装置の制御方法、及びプログラム | |
JP5691483B2 (ja) | 画像形成装置、遠隔管理方法、およびプログラム | |
JP2021196963A (ja) | 情報処理装置、方法、およびプログラム | |
JP2020008936A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2005303985A (ja) | 画像処理装置、及び複数の画像処理装置を備えた画像処理システム | |
US20230065096A1 (en) | Information processing apparatus and method for information processing system | |
JP7446857B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP7350551B2 (ja) | デバイス管理システム及びその制御方法 | |
JP2020014105A (ja) | 情報処理装置及びプログラム | |
JP2019144960A (ja) | 更新管理サーバおよびプログラム | |
JP2020156007A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム | |
JP2019211837A (ja) | 情報処理装置、情報処理装置の制御方法、及び、プログラム | |
JP2021043590A (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム |