以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
また、以下では稼働情報の収集対象機器がプリンター(印刷装置)である例について説明するが、収集対象機器は他の機器(例えばプリンター以外の生産機器)に拡張可能である。
1.稼働情報収集システム
図1は、本発明にかかる稼働情報収集システムの一例を模式的に示す図である。稼働情報収集システム1は、プリンター3の稼働情報を、情報処理装置5を介して収集するサーバーシステム7と、端末装置9を含む。サーバーシステム7は、収集した稼働情報を端末装置9に対して送信する。なお端末装置9に送信される情報は、サーバーシステム7が収集した全ての稼働情報を対象にする必要はない。例えば、サーバーシステム7は稼働情報の一部を抽出した情報、或いは稼働情報に対して統計処理等の加工処理を行った情報を端末装置9に対して送信してもよい。端末装置9は、サーバーシステム7から受信した情報の表示部での表示、或いは鳴動等による報知を行う。
ただし、稼働情報収集システム1を含むシステムは図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、図1から情報処理装置5を省略し、各プリンター3が直接ネットワークNE2(インターネット)に接続されてもよい。
図1に示したように、複数のプリンター3及び情報処理装置5は、ネットワークNE1に接続されており、ネットワークNE1を介して双方向に通信可能である。また、情報処理装置5及びサーバーシステム7は、ネットワークNE2に接続されており、ネットワークNE2を介して双方向に通信可能である。また、端末装置9もネットワークNE2に接続されており、サーバーシステム7と端末装置9は、ネットワークNE2を介して双方向に通信可能である。
例えば、ネットワークNE1はLAN(Local Area Network)であり、ネットワークNE2はインターネットである。ただし、LANやインターネットは通信回線の一例として示したものであり、プリンター3と情報処理装置5との間、情報処理装置5とサーバーシステム7との間、サーバーシステム7と端末装置9との間を接続する通信回線の具体的構成はこれらに限られない。
複数のプリンター3、LAN、及び情報処理装置5で構成されるシステム10は、各プリンター3の稼働情報を情報処理装置5により収集して、外部のサーバーシステム7へ送信する。この情報処理装置5は、例えば同一企業の施設内に構築される装置であり、PC(Personal Computer)であってもよいし、企業内のサーバーであってもよい。なお、図1では、1つのシステム10が記載されているが、複数のシステム10がサーバーシステム7に接続されてもよい。
プリンター3は、図2を用いて後述するように表示部333を含む。そのため、ユーザーがプリンター3の近くで作業をしていれば、表示部333に表示される稼働情報を閲覧することで、プリンターの状態を認識可能である。しかし、ユーザーがプリンター3から離れて作業することも考えられる。
例えば、従業員が少ない中小規模の企業(事業所)では、ユーザーがプリンター3の操作の他に、経理や営業、生産物の納品と行った業務を行う必要があり、プリンター3から離れる場面が発生する。そのためプリンター3の稼働状態を、ユーザーが操作する端末装置9を用いて確認できるシステムの構築が重要となる。具体的には、端末装置9が、サーバーシステム7が収集した稼働情報に基づく情報の受信、表示、報知等を行うことで、ユーザーはプリンター3の稼働状態の遠隔監視を行う。
また、比較的規模の大きい事業所であれば、各プリンター3(各生産ライン)に人員を配置することが可能である。しかし複数の生産ラインを統括する管理者は、全てのプリンター3の表示部333を常時確認することはできない。そのため、作業の全体的な進捗を適切に把握するためには、端末装置9での情報の表示等が重要となり、図1に示した稼働情報収集システム1は、この場合にも有用である。
なお、図1では1つの端末装置9を図示したが、端末装置9が複数であってもよい。例えば1つのシステム10を利用する企業内の複数のユーザーが、それぞれ端末装置9を利用した情報の受信、閲覧を行ってもよい。また、サーバーシステム7に複数のシステム10が接続される場合に、各システム10について、それぞれ1又は複数個の端末装置9が用いられてもよい。
2.各装置の詳細な構成例
次に、プリンター3、情報処理装置5、サーバーシステム7、端末装置9の構成例についてそれぞれ説明する。
2.1 プリンター
図2は、プリンター3の構成の一例を示すブロック図である。プリンター3は、処理部31、インターフェース部33、印刷部35及び記憶部37を備える。処理部31は、プリンター3で実行される動作を統括的に制御する。この処理部31の機能は、CPU(Central Processing Unit)等の各種プロセッサー、ASIC(Application Specific Integrated Circuit、ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。インターフェース部33、印刷部35及び記憶部37は、処理部31の制御を受けて動作する。
インターフェース部33は、通信部331、操作部332、及び表示部333を含む。通信部331はLANに接続され、LANを介して情報処理装置5との通信を実行する。また、操作部332は、ユーザーからの入力操作を受け付けるボタン等で構成され、表示部333はプリンター3に関する各種情報をユーザーに表示するディスプレイ等で構成される。なお、操作部332及び表示部333は、例えばタッチパネルにより一体的に構成してもよい。
印刷部35は、印刷エンジン351、センサー352、及びカウンター353を含む。印刷エンジン351は、印刷媒体への画像の印刷を実行する機械的構成である。この印刷エンジン351は、ロール・トゥ・ロールで搬送される巻取式の印刷媒体に対してインクジェット方式の吐出ヘッドからインクを吐出することで、印刷媒体に画像を印刷する。なお、印刷エンジン351の具体的構成はここで例示したものに限られず、印刷エンジン351は枚葉式の印刷媒体に印刷するものでも構わないし、レーザー方式でトナーにより印刷するものでも構わない。センサー352は、印刷エンジン351の稼働状態に関わる各種の物理量を検出し、カウンター353は、印刷エンジン351の稼働に伴って変化する各種の数値を計数する。
印刷エンジン351の稼働状態を示す物理量としては、例えば印刷エンジン351の電気部品に印加される電圧、印刷エンジン351内の温度及び湿度、吐出ヘッドや印刷媒体の位置等がある。これらの物理量を検出するために、電圧センサー、温湿度センサー、位置センサー、加速度センサー等の各種のセンサー352が設けられる。また、印刷エンジン351の稼働に伴って変化する数値としては、例えば印刷エンジン351の電源投入後の経過時間、印刷された印刷媒体の積算長、インクの消費量(あるいは残量)、回転する機械部品(例えば印刷媒体を搬送するローラー)の積算回転量等がある。そして、これらの数値を計数するために各種のカウンター353が設けられる。
記憶部37は、HDD(Hard Disk Drive)、ROM(Read Only Memory)、或いはRAM(Random Access Memory)といった記憶媒体で構成される。記憶部37は、プリンター3のステータス情報(エラーや警告等)、プリンター3で実行されるジョブの識別情報(ジョブ名)、ジョブの進捗を表す情報(印刷時間情報、進捗情報)、或いはセンサー352及びカウンター353から出力されるデータ等を、プリンター3の稼働状況を表す稼働情報として記憶する。
2.2 情報処理装置
図3は、情報処理装置5の構成の一例を示すブロック図である。情報処理装置5は、処理部51、インターフェース部53及び記憶部55を備え、複数のプリンター3それぞれの記憶部37へアクセスして稼働情報を収集し、収集した稼働情報をサーバーシステム7に送信する情報仲介動作を実行する。処理部51は、CPU等のプロセッサーであり、インターフェース部53及び記憶部55を用いつつ情報仲介動作を実行する。
インターフェース部53は、通信部531、操作部532、及び表示部533を含む。通信部531は、LAN及びインターネットに接続され、LANを介して各プリンター3との通信を実行するとともに、インターネットを介してサーバーシステム7との通信を実行する。また、操作部532は、ユーザーからの入力操作を受け付けるマウス及びキーボード等で構成され、表示部533は、各種情報をユーザーに表示するディスプレイ等で構成される。なお、操作部532及び表示部533は、例えばタッチパネルにより一体的に構成してもよい。
記憶部55は、HDD、ROM或いはRAMといった記憶媒体で構成され、通信部531がプリンター3から受信した稼働情報を記憶する。情報処理装置5は、複数のプリンター3からの稼働情報を取得することもあるため、記憶部55は、プリンター3の識別情報(プリンターID)と、上記ステータス情報等の各情報を関連付けて記憶する。
2.3 サーバーシステム
図4は、サーバーシステム7の構成の一例を示すブロック図である。サーバーシステム7は、処理部71(プロセッサー)、通信部731(通信インターフェース)、及び記憶部75(記憶装置、メモリー)を備え、情報処理装置5が収集した稼働情報を受信するとともに、端末装置9に対して稼働情報を送信する。処理部71の機能は、CPU等の各種プロセッサー、ASICなどのハードウェアや、プログラムなどにより実現でき、処理部71は通信部731及び記憶部75を用いて所定の動作を実行する。
通信部731は、インターネットに接続され、インターネットを介して情報処理装置5、或いは端末装置9との通信を実行する。なお、サーバーシステム7は、不図示の操作部や表示部を含んでもよい。操作部は、ユーザーからの入力操作を受け付けるマウス及びキーボード等で構成され、表示部は、各種情報をユーザーに表示するディスプレイ等で構成される。ただし、サーバーシステム7が操作部や表示部を含まず、外部装置(管理用端末装置)を用いてサーバーシステム7の管理が行われてもよい。例えば、サーバーシステム7はWebサーバーとしての機能を有し、外部装置で動作するソフトウェア(Webブラウザー)を用いて操作が行われ、当該外部装置の表示部に種々の情報が表示される態様であってもよい。
記憶部75は、HDD、ROM或いはRAMといった記憶媒体で構成される。記憶部75は、プリンター3からの稼働情報と、報知設定情報を記憶する。記憶部75は、データベース(狭義にはリレーショナルデータベース)であってもよく、記憶部75は、稼働情報テーブルと報知設定情報テーブルを記憶する。稼働情報テーブルは、稼働情報を記憶するテーブルである。報知設定情報テーブルは、端末装置9に対するサーバーシステムからの通知(プッシュ通知)を行う場合に利用されるテーブルである。ここでのプッシュ通知は、受信側からのリクエストが無くても、送信側から情報の送信が行われる通信形態を表す。サーバーシステム7から端末装置9へのプッシュ通知とは、サーバーシステム7が起点となって、端末装置9へ情報を送信することである。
なお、サーバーシステム7は、1台のサーバーで実現されるものに限定されない。例えばサーバーシステム7は、稼働情報テーブル等を記憶するデータベースサーバー(記憶部75)と、端末装置9との情報の送受信を行うアプリケーションサーバー(処理部71、通信部731の一部)を含んでもよい。或いは、サーバーシステム7は負荷分散用のサーバーや、端末装置9へのプッシュ通知用のサーバーを含んでもよい。さらに、データベースサーバーやアプリケーションサーバー等を複数台のサーバーの分散動作により実現してもよい。また、サーバーシステム7を構成する各サーバーは、仮想化されたサーバー(仮想サーバー)であってもよい。この場合、各仮想サーバーは、同一のサーバー(物理サーバー)上で動作してもよいし、異なる物理サーバー上で動作してもよい。また、サーバーシステム7は、通信負荷等をモニタリングすることで動的なスケーリング(例えば仮想サーバーの数の動的な変更)が行われてもよい。即ち、本実施形態のサーバーシステム7は、物理サーバーの数、サーバーを仮想化する場合の仮想サーバーの数、或いは仮想サーバーと物理サーバーとの対応関係等に関して、種々の変形実施が可能である。
2.4 端末装置
図5は、端末装置9の構成の一例を示すブロック図である。端末装置9は、処理部91(プロセッサー)、インターフェース部93、及び記憶部95(記憶装置、メモリー)を備え、サーバーシステム7が収集した稼働情報を受信する。処理部91の機能は、CPU等の各種プロセッサー、ASICなどのハードウェアや、プログラムなどにより実現できる。
インターフェース部93は、通信部931(通信インターフェース)、操作部932、表示部933、及び報知部934を含む。通信部931は、インターネットに接続され、インターネットを介してサーバーシステム7との通信を実行する。操作部932は、ユーザーからの入力操作を受け付けるボタン等で構成され、表示部933は、各種情報をユーザーに表示するディスプレイ等で構成される。なお、操作部932及び表示部933は、例えばタッチパネルにより一体的に構成してもよい。報知部934は、ユーザーに対する報知を行う。報知部934は、例えば音による報知を行うスピーカーであってもよいし、振動による報知を行う振動部(振動モーター)であってもよいし、これらの組み合わせであってもよい。
記憶部95は、HDD、ROM或いはRAMといった記憶媒体で構成される。記憶部95は、サーバーシステム7からの稼働情報の取得処理や表示処理等を行うソフトウェア(アプリケーション)を記憶してもよい。また記憶部95は、サーバーシステム7から受信した稼働情報を記憶する。
3.プリンターと情報処理装置との間の通信
図6は、プリンター3の記憶部37における稼働情報の記憶態様を模式的に示す図である。図6に示すように、記憶部37では、稼働情報の種類とメモリーのアドレスとが対応付けられており、各稼働情報はその種類に対応するアドレスに格納される。具体例を挙げると、電源投入後経過時間の値を示す稼働情報v1は、その種類に対応するアドレスa1に格納される。ただし、記憶部37は、稼働情報と、当該稼働情報の更新時刻(タイムスタンプ)を関連付けて記憶する等の変形実施が可能である。
プリンター3の処理部31や、印刷部35(センサー352、カウンター353)では、定期的に(狭義には常時)稼働状態を監視し、稼働状態が変化した場合に、記憶部37の稼働情報が更新される。
情報処理装置5の処理部51(通信部531)は、ポーリングを行い、LANを介して接続される1又は複数のプリンター3から定期的に稼働情報を取得する。
図6に示したようにプリンター3の記憶部37で、稼働情報の種類とアドレスとが対応付けられている場合であれば、処理部51は、収集対象となる稼働情報に対応するアドレスにアクセスし、当該アドレスに格納された稼働情報を収集する。例えば、処理部51は、前回収集した情報に対して変化があった情報を収集対象とする。或いは、処理部51は、プリンター3の機種、ファームウェアバージョン等に基づいて、プリンター3ごとに収集対象となる稼働情報を決定する。
図7は、情報処理装置5の記憶部55に記憶される稼働情報の記憶態様を模式的に示す図である。図7に示すように記憶部55には、稼働情報が、プリンター3の識別情報(ID、シリアル番号)、及び取得時間情報と関連付けられて記録される。なお、図7では省略しているが、記憶部55は、図6の例と同様に、情報の種類(「Yインク消費量」等)と、具体的な値(インク消費量であれば、吐出回数、体積、割合等)との組み合わせを、稼働情報として記憶する。
ただし、上述したように情報処理装置5は省略可能であり、プリンター3が直接サーバーシステム7との通信を行ってもよい。
4.サーバーシステムの通信制御
次にサーバーシステム7に関する稼働情報の通信手法を説明する。具体的には、第1の通信処理(MQTT)と第2の通信処理(HTTP)を併用して種々の稼働情報の通信を行う第1の実施形態、第1の通信処理(MQTT)により種々の稼働情報の通信を行う第2の実施形態、及び変形例について説明する。
4.1 第1の実施形態
以下、第1の実施形態について説明する。まず稼働情報のうちの第1の情報と第2の情報について説明し、その後、具体的な通信経路や通信シーケンスについて説明する。さらに、サーバーシステム7から端末装置9へのプッシュ通知を行う場合の設定手法についても説明する。
4.1.1 第1の情報
上述したように、収集対象機器(プリンター3)では、種々の稼働情報が収集される。稼働情報には、リアルタイム性が相対的に高い情報と低い情報が含まれる。ここで、リアルタイム性が高いとは、プリンター3での情報の取得から、当該情報がサーバーシステム7を経由して端末装置9においてユーザーに提示されるまでの時間を短くする必要性が高いことを表す。或いは、リアルタイム性が高いとは、プリンター3での情報の取得から、当該情報がサーバーシステム7で収集されるまでの時間を短くする必要性が高いことを表す。逆に、リアルタイム性が低い情報とは、プリンター3で情報が取得された後、サーバーシステム7への情報の送信や、サーバーシステム7を経由した端末装置9への情報の送信にある程度の時間を要しても問題が生じにくい情報を表す。
以下、リアルタイム性が相対的に高い稼働情報を第1の情報と表記し、リアルタイム性が相対的に低い稼働情報を第2の情報と表記する。
図8は、稼働情報のうちの第1の情報の具体例、及び各情報に対応するイベントの具体例である。第1の情報は、プリンター3(印刷装置)のエラー状態、警告状態、通常動作状態、アイドル状態の少なくとも1つの状態を含むステータスの変化情報を含む。
プリンター3が通常動作状態(印刷中)から、警告状態やエラー状態に移行した場合、ジョブ(印刷)の継続や再開のためには、ユーザーがプリンター3の所まで戻って何らかの作業を行う必要性が高い。警告状態とは、印刷を継続できないおそれがある状態(例えばインク残量低下等)であり、エラー状態とは、何らかの異常により印刷動作が停止した状態を表す。或いは、プリンター3でのジョブが終了し、通常動作状態(印刷中)からアイドル状態(待機中)に移行した場合、ユーザーがプリンター3の所まで戻って新規ジョブを投入することで、プリンター3を効率的に動作させることが可能になる。よって印刷中から待機中へのステータス変化も、リアルタイム性の高い情報である。
図8に示したように、ステータス情報は、「印刷中」「待機中」「警告」「エラー」のいずれかの値をとる。「印刷中」は上記通常動作状態に対応し、「待機中」はアイドル状態に対応し、「警告」は警告状態に対応し、「エラー」はエラー状態に対応する。
また第1の情報は、プリンター3のインク又はトナーに関する情報、印刷媒体に関する情報を含む。インク等は、プリンター3の動作に伴って残量が減少していく消費材である。ユーザーが関心を持っているのは、現時点でプリンター3にどれだけのインクが残っているか、即ち、印刷動作の継続に問題がないか、プリンター3に戻ってインクを補充する必要があるか、といった情報であると考えられる。よってインク等に関する情報は、プリンター3の実際のインク量等との乖離が十分小さい必要があり、リアルタイム性の高い情報である。
インク又はトナーに関する情報、印刷媒体に関する情報とは、具体的には図8に示したように、液体インクやトナーの残量、印刷媒体の残量である。インク残量は、例えばインクタンクの容量を100%とした場合の残量の割合であり、単位は%である。印刷媒体の残量は、例えば枚数であってもよいし、ロール紙等を用いる場合は長さ(単位:m)であってもよい。また図8では残量情報を用いる例を示したが、インク等の消費量情報を用いてもよい。
また第1の情報は、印刷完了までの残り時間情報、印刷完了時刻情報、印刷動作の進捗情報を含む。図8では、第1の情報が、残り時間情報である例を示している。残り時間情報は、印刷完了までの残り時間を表す情報であり、例えば残り時間の時分(「残り1時間45分」等)を表す情報である。
印刷完了時刻情報は、例えば「14:25」等の時刻を表す情報である。また印刷完了時刻情報は、日付の情報を含むことも可能である。印刷動作の進捗情報は、印刷動作全体(例えば印刷対象である画像ファイル全体の印刷を完了するための動作)に対して、現時点でどれだけの印刷動作が完了しているかの進捗を表す情報である。進捗情報は、例えば印刷動作全体を100%としたときの割合(「60%」等)である。
残り時間情報(或いは印刷完了時刻情報)を用いることで、後何分で(或いは何時になったら)現在実行している印刷が終了するかをユーザーに容易に把握させることが可能である。また、進捗情報を用いることで、印刷動作の進捗度合いをユーザーに容易に把握させることが可能である。これらの情報は、プリンター3で把握している最新の情報と、ユーザーに提示する情報とに乖離があると、ユーザーの判断を誤らせるおそれがある。例えば、当面印刷が完了しないとユーザーが誤認することで、プリンター3のところに戻るべきタイミングで戻れなかったり、或いは印刷が早く完了すると誤認することで、印刷動作がしばらく完了しないタイミングでプリンター3のところに戻ってしまい時間を無駄にする、といったことが考えられる。よって残り時間情報等は、プリンター3で保持している情報との乖離が十分小さい必要があり、リアルタイム性の高い情報である。
なお、残り時間情報及び印刷完了時刻情報の一方の情報から他方の情報を演算可能である。また、現時点での印刷動作の実行時間と、残り時間との比率から、進捗情報を演算可能である。同様に、印刷完了時刻情報からも進捗情報を演算可能である。即ち、残り時間情報、印刷完了時刻情報及び進捗情報は、相互に変換可能な情報と言える。そのため、プリンター3からは上記3つの情報のうちの一部が送信され、情報処理装置5、サーバーシステム7、或いは端末装置9において変換処理が行われてもよい。例えば、プリンター3では残り時間情報及び進捗情報の取得、送信を行い、端末装置9はサーバーシステム7経由で受信した残り時間情報に基づいて、印刷完了時刻情報を演算、表示する。
また第1の情報は、ジョブ名の情報を含む。ジョブ名の情報は、例えば印刷対象となるファイル名(画像ファイル名等)である。また、ジョブ名については、実行中のジョブ名に限定されず、過去に実行した所定数のジョブのジョブ名(ジョブ履歴情報)に拡張することも可能である。ジョブ履歴情報の詳細については、変形例として後述する。
上述してきたように、第1の情報は、プリンター3での取得後、少なくとも後述する第2の情報よりも短い時間で(理想的には即座に)、サーバーシステム7に対して送信されるべき情報である。しかし、第1の情報の送信頻度を単純に高くすることは好ましくない。例えば、相対的に短い所定期間(例えば1分や数十秒)ごとに、定期的に通信部531(通信部331)がサーバーシステム7に対して第1の情報を送信する場合、通信回数が非常に多くなってしまい通信負荷が大きい。サーバーシステム7の通信部731側から、定期的にプリンター3又は情報処理装置5にアクセスする場合も同様である。
よって第1の情報は、収集対象機器での所与のイベント発生をトリガーとして送信処理が実行される(イベントドリブンで送信される)。上記図8は、第1の情報の各情報に対応するイベントを説明する図でもある。第1の情報の各情報に対して、当該情報を送信すべき状況を「イベント」として定義しておく。そして、当該イベントが発生した場合に、対応する第1の情報を送信することで、サーバーシステム7は適切なタイミングで第1の情報を収集することが可能になる。この場合、イベント発生の判定頻度が第1の情報の送信頻度の上限となる。そのため、イベント発生の判定頻度を第2の情報の送信頻度に比べて高くしておけば、イベントが頻発するような状況では、第1の情報を高頻度で(リアルタイムに)サーバーシステム7に送信することが可能になる。一方、イベントが発生しなければ第1の情報のサーバーシステム7への送信も必要とならない。よって、不要な通信を抑制できるため、通信負荷を軽減することが可能である。
図8に示したように、サーバーシステム7にステータス情報を送信するトリガーになるイベントとは、ステータス情報の値が変化するイベントである。なお、プリンター3、情報処理装置5、及びサーバーシステム7の各機器は、「警告」又は「エラー」への遷移と、「印刷中」又は「待機中」への遷移を別イベントとして分けて管理してもよい。前者はプリンター3の動作が停止した、或いは停止するおそれがあるという異常状態を表すイベントであるのに対して、後者は印刷開始や終了という正常動作における始点、終点を表すイベントである。
また、サーバーシステム7に残り時間情報を送信するトリガーになるイベントとは、残り時間情報が変化するイベントである。例えば、プリンター3や情報処理装置5は、印刷中にフラッシング動作が発生し、残り時間が増加した場合に、イベント発生と判定する。
また、サーバーシステム7に消耗材の残量情報を送信するトリガーになるイベントとは、残量が所定量(所定割合、所定枚数、所定長さ)だけ変化したイベントであってもよいし、残量が所与の閾値を下回ったイベントであってもよい。
また、サーバーシステム7にジョブ名を送信するトリガーになるイベントとは、新たなジョブの実行を表すイベントである。なお、新たなジョブの実行を表すイベントは、「待機中」から「印刷中」への遷移イベント(印刷開始イベント)と同様のイベントとして、プリンター3等で管理されてもよい。
なお、通信部531(通信部331)は、第1の情報の種別によっては、サーバーシステム7への情報送信の間引きを行ってもよい。具体的には、通信部531は、前回の情報送信後、所定期間(例えば数分)は新たなイベントが発生しても情報の送信を行わない。このようにすれば、情報処理装置5(プリンター3)とサーバーシステム7との間の通信負荷を軽減することが可能になる。例えば、サーバーシステム7の通信部731は、第1の情報の中でも特にリアルタイム性の高いステータス情報はイベント発生後、即座に受信し、他の情報については受信頻度に上限を設定する。
例えば、エラーや警告、印刷完了は即座にユーザーに提示することが望ましいため、間引きを行わない。また残り時間情報等についても、ユーザーが閲覧する情報と実際の情報(プリンター3で把握している情報)に乖離が生じることは好ましくないため、間引きを行わない。それに対して、インク等の消費材の情報については、数分程度の遅延が問題となりにくい。よって通信部531(通信部331)は、インク等の消費材の情報を対象に間引きを行って、通信負荷の軽減を図る。
なお、以上では稼働情報の収集対象機器がプリンター3である例を示したが、収集対象機器はプリンター3以外の機器に拡張可能である。この場合、第1の情報は、収集対象機器のステータスの変化情報、ジョブの開始/終了情報、消費材に関する情報、ジョブの時間情報、ジョブの進捗情報の少なくとも1つを含む情報に拡張できる。
4.1.2 第2の情報
以上の第1の情報に対して、印刷部35のローラーの回転量や、ヘッダーの往復回数、クリーニングの実行回数などのカウント結果は、プリンター3の長期的なメンテナンスには有用であるが、カウントアップが行われてから数分以内にユーザーに閲覧させる必要性は低い。よって、これらのリアルタイム性が相対的に低い稼働情報である第2の情報を対象とする場合、プリンター3や情報処理装置5は上記第1の情報と異なる処理を行う。
第2の情報は、収集対象機器の稼働状態についての履歴情報である。ここでの履歴情報は、収集対象機器で発生したイベントにタイムスタンプが対応づけられた情報である。即ち、第2の情報とは、プリンター3の稼働に伴って、時間とともに取得される種々の情報を含むものであり、狭義には稼働情報のうち、上記第1の情報を除く全ての情報が第2の情報である。
また、上記第1の情報は、リアルタイムでのユーザーへの報知を想定したものであり、過去の情報(例えば変化前のステータス情報)の重要性は低く、過去の履歴まで保持する必要性が低い。しかし、ステータスが時間とともにどのように変化していったか、という履歴は、プリンター3の長期的な(日、週、月単位、或いはそれ以上の単位での)稼働状態の分析には有用である。よって、第2の情報は、ステータス情報の履歴情報等、第1の情報として例示した情報の履歴情報を含む。
収集対象機器がプリンター3(印刷装置)である場合、第2の情報は、部品交換の履歴情報、ノズルチェックの履歴情報、フラッシングの回数情報、インクの吐出回数情報、の少なくとも1つを含む情報である。
部品交換の履歴情報とは、プリンター3の部品の交換履歴を表す情報である。プリンター3には、印刷動作の実行により消耗し、所定の周期で交換することが望ましい部品がある。例えば、印刷エンジン351のうち、印刷媒体の搬送に用いられる部品(ローラー)や、インクジェットプリンターにおけるインクヘッド移動用の部品(ベルト等)、或いはレーザープリンターにおけるインク定着用のユニット等が交換対象の部品である。これらの部品は、数万メートル分の印刷媒体に対する印刷が行われたら交換することが望ましい、といった寿命の目安(交換目安)が部品ごとに設定されている。
よって部品交換の履歴情報は、例えば「部品交換してから8000メートルまで使用した」等の寿命カウントに関する情報である。また部品交換の履歴情報は、所与の部品を何回交換したかを表す部品の交換回数の情報を含む。なお、上述したように交換対象となる部品は種々考えられるため、部品交換の履歴情報として、寿命カウントや交換回数の情報と、部品の識別情報(部品ID)とが関連付けられた情報を用いる。また、ここでは定期交換の対象となる部品を例示したが、部品交換の履歴情報は、定期交換とは異なる部品交換、例えば故障による電気回路やセンサー類の交換の履歴情報を含んでもよい。
ノズルチェックの履歴情報とは、ノズルチェックの実行履歴を表す情報であり、ノズルチェックの開始日時及び終了日時の情報である。開始日時及び終了日時は、例えば年月日(YYYY-MM-DD)の情報である。ノズルチェックとは、ノズルが詰まることにより、印字されない部分(ノズル抜け)が発生しているか否かをチェックするプリンター3の動作であり、例えばチェックパターンを印刷する動作である。このようにすれば、ノズルの状態を長期的に監視することが可能になる。なお、ノズルチェックの履歴情報は、開始日時、終了日時に加えて、ノズル抜けのカウント結果(総ノズル抜け数)の情報を含むことも可能である。
フラッシングとは、プリンター3のヘッドを印刷領域外となる位置へ移動させ、当該位置で各ノズルから一定量のインクを吐出させる動作である。例えばヘッドが往復する時に、ノズル詰まり防止のため、端の方でインクを無駄打ちする動作が入ることがある。第2の情報は、フラッシングが行われた時刻情報を含む。ただし、フラッシングはある程度の頻度で実行されるため、何時何分にフラッシングがあったという情報を提示したとしても、情報が細かすぎてユーザーにとって有用でない。
そこで第2の情報は、収集対象機器で収集された時系列の複数の情報に対して、加工処理が行われた情報を含む。フラッシングの例であれば、1回1回のフラッシングのタイミングをそのまま用いるのではなく、所定の期間を対象として、当該期間内での総フラッシング回数を集計し、集計結果であるフラッシングの回数情報を第2の情報とする。
このようにすれば、膨大な情報をそのまま用いるのではなく、わかりやすい形式に加工した上で、ユーザーに提示することが可能になる。また、第2の情報の情報量の削減も可能である。なお、集計対象期間は例えば1つのジョブ(1つのファイルを対象とした印刷動作)の実行期間であるが、1日単位にする等の種々の変形実施が可能である。
また、プリンタードライバーからの印刷データは、ヘッドのインク吐出を制御する情報、或いはそれに近い形式の情報である。よってプリンター3は、稼働情報として、各色のインクごとの吐出(ドット)の情報を取得可能である。ただし、ドットの情報についても、どのタイミングでどの色のインクが吐出された、という情報は細かすぎてユーザーにとって有用でない。
よってプリンター3では、印刷データに基づいて、所定期間での吐出回数(何ドット打ったか)を集計し、集計結果であるインクの吐出回数情報を第2の情報とする。集計対象期間は、上記例と同様に、1つのジョブであってもよいし、1日単位等の他の期間であってもよい。
なお、インクの吐出回数情報は、インクの消費量情報(消費体積)に変換することが可能である。また、インク単価の情報を併用することで、インクコストに関する情報に変換可能である。よって第2の情報は、インクの消費体積やインクコストの情報を含む。
また、以上では加工処理として、所定期間での回数のカウント処理を行う例を示した。これは所定期間を対象として、フラッシング等の出現をカウントする統計処理と考えることができる。ただし加工処理は、平均、最大値、最小値、中央値、分散等を求める他の統計処理に拡張可能である。このようにすれば、時系列的に値が変化する稼働情報を対象とした場合に、長期的な変化の傾向等をわかりやすい形式でユーザーに提示することが可能になる。また、加工処理は統計処理に限定されず、例えば一部のデータを間引く処理や、所定数のデータから一部を抽出する処理等の種々の変形実施が可能である。
以上で説明した第2の情報は、第1の情報に比べてリアルタイム性が低く、イベントドリブンでサーバーシステム7に送信される必要性も低い。よって第2の情報は、所与のスケジュールで送信される。ここで、所与のスケジュールとは、例えば1日に数回〜十数回程度の頻度であらかじめ定められたタイミングで送信処理が行われることを表す。なお、第2の情報の送信間隔は等間隔であってもよいし、間隔が異なってもよい。例えば第2の情報は、プリンター3の稼働率が高い時間帯(例えば昼間)の方が、稼働率が低い時間帯(例えば深夜)に比べて高い頻度で送信されてもよい。
4.1.3 プリンター側とサーバーシステムとの間の通信
図9は、プリンター3側(プリンター3又は情報処理装置5)、サーバーシステム7、及び端末装置9の通信態様を模式的に示す図である。図4で上述したように、本実施形態のサーバーシステム7は、少なくとも1つの収集対象機器(プリンター3)の稼働情報を、ネットワークを介して収集するサーバーシステムであって、通信部731と、通信部731の通信制御を行う処理部71と、記憶部75を含む。
図9に示したように、通信部731は、通信接続の確立後、通信接続の確立状態が維持される第1の通信処理と、通信接続の確立後、情報が受信されると通信接続が切断される第2の通信処理と、を行う。図9では、第1の通信処理は、MQTT(Message Queue Telemetry Transport)に対応する通信処理であり、第2の通信処理は、HTTP(Hypertext Transfer Protocol)に対応する通信処理である例を示しているが、MQTTは通信接続の確立状態を維持する他の通信処理に拡張可能であるし、HTTPは通信接続の確立後、情報が受信されると通信接続が切断される他の通信処理に拡張可能である。また、通信部731(及び通信部531及び通信部931)は、SSL(Secure Sockets Layer)等を用いたセキュアな接続により、第1の通信処理及び第2の通信処理を実現してもよい。
そして通信部731は、稼働情報のうちの第1の情報については、図9のA1に示したように第1の通信処理により受信し、稼働情報のうちの第2の情報については、A2に示したように第2の通信処理により受信する。
第2の通信処理は、上述したようにHTTPを利用可能である。HTTPは多様な機器で利用可能であり、非常に可用性が高い通信処理を実現可能という利点がある。ただし、HTTPは通信対象となる機器が多くなると、負荷が非常に大きくなってしまう。例えばHTTPでは、1つの機器との接続に対して1つのプロセスを割り当てる方式により実装される場合がある。1つのプロセスは所定サイズの記憶領域を専有するため、HTTPで多数の機器との接続を行う場合、膨大なサイズの記憶領域を確保しなければならず、実現が困難になる。また、1つのプロセスを複数の機器との通信で共有する手法も考えられるが、この場合、プロセス内の所与の通信でエラーが発生すると、同一プロセス内のエラーが発生していない通信まで停止してしまう。
このように、HTTPは多数の機器と同時に接続する可能性がある状況では通信負荷が大きくなってしまう。例えば本実施形態のサーバーシステム7では、多数のプリンター3の稼働情報を収集する可能性があり、且つ、上記第1の情報はイベントドリブンで送信される。そのため、状況によってはサーバーシステム7は、多数のプリンター3と同時に接続される可能性があり、第1の情報の通信に第2の通信処理(HTTP)を用いることは望ましくない。
その点、MQTTはIoT(Internet of Things)への適用も想定される通信処理であり、多数の機器との同時接続に適している。MQTTでは、データ形式が軽量且つシンプルであり、数万ノードといった膨大な通信を行うことも可能である。また、MQTTでは中継サーバーを用いることで、さらなる通信負荷軽減が可能である。
図10は、MQTTのネットワークを説明する図である。図10の例では、MQTTサーバー81には、複数の中継サーバー82が接続され、各中継サーバー82にノード(本実施形態であればプリンター3)が接続される。中継サーバー82もMQTTサーバー(ブローカー)である。
図10の例では、MQTTサーバー81は、複数の中継サーバー82との接続を管理し、中継サーバー82は、自身に接続される複数のノード(プリンター3)との接続を管理する。中継サーバー82が10台であり、且つ、各中継サーバー82に1万個のノードが接続される場合、図10のMQTTサーバー81は10万個のノードから稼働情報を収集できる。そして図10のMQTTサーバー81は、中継サーバー82との10個の通信を管理すればよく、全てのノードが直接接続される場合に比べて通信負荷を軽減できる。
なお、本実施形態のサーバーシステム7は、図10のMQTTサーバー81のみを含み、中継サーバー82は外部のMQTTサービス提供者の保有するサーバーである。或いは、本実施形態のサーバーシステム7は、図10のMQTTサーバー81及び中継サーバー82を含んでもよい。
このように第1の情報の通信に第1の通信処理(MQTT)を用いることで、サーバーシステム7は、通信負荷を軽減しつつ、リアルタイム性の高い情報を、高い頻度で受信することが可能になる。一方、第2の情報は、上述したように所定のスケジュールで行われるものであり、通信頻度が低い。第2の情報の通信では、多数の接続が同時に行われないような通信制御も容易であるため、通信部731は、第2の情報の通信には第2の通信処理(HTTP)を用いる。このように、本実施形態のサーバーシステム7は、稼働情報の特性に応じて、複数の通信処理を適切に使い分けることが可能である。
またサーバーシステム7の処理部71は、第1の通信処理により受信した第1の情報、及び第2の通信処理により受信した第2の情報を記憶部75に書き込む。記憶部75は、例えばデータベース(データベースサーバー)である。
この際、処理部71は、第1の通信処理により受信した第1の情報を記憶部75に上書きし、第2の通信処理により受信した第2の情報を記憶部75に追記書き込みする。
上述してきたように、第1の情報はプリンター3の稼働状態をリアルタイムにユーザーに提示することを想定した情報である。よって、より新しい情報が取得された場合、古い情報の有用性は低くなる。例えば、ステータス情報が「印刷中」から「待機中」に変化した場合、現在「待機中」である旨をユーザーに報知することが重要であり、過去に「印刷中」であったことをわざわざ報知しなくてもよい。よって処理部71は第1の情報を記憶部75に上書きする。このようにすれば、第1の情報を記憶するための記憶領域を抑制でき、効率的に第1の情報を記憶できる。
なお、サーバーシステム7の記憶部75は、収集対象機器(プリンター3)ごと、及び情報種別ごとに、第1の情報を記憶する。図8の例であれば、第1のプリンターについてステータス情報、残り時間情報、消耗材の情報、ジョブ名の情報を記憶し、第2のプリンターについてステータス情報、残り時間情報、消耗材の情報、ジョブ名の情報を記憶する。3つ以上のプリンター3を対象とする場合も同様である。ここでの「上書き」とは、所与のプリンターの所与の種別の第1の情報が記憶部75に記憶されている状態において、同じプリンターの同じ種別の第1の情報が通信部731で受信された場合に、記憶部75に記憶されていた情報を、新たに受信した情報に置き換える(更新する)処理を表す。それまでに記憶されていないプリンター及び種別の第1の情報が受信された場合、上書きされる情報がないため、処理部71は、受信した情報を単純に記憶部75に書き込むことになる。なお、インク残量の情報は色ごとに記憶され、色ごとに上書き処理が行われることが想定されるが、複数色のインク残量を1つの情報として記憶し、当該複数色のインク残量の情報を処理単位として上書き処理が行われてもよい。このように、第1の情報をどのように記憶部75に記憶するか、及び上書き処理をどのように実行するかは種々の変形実施が可能である。
一方、第2の情報は履歴情報であり、長期的な稼働情報をユーザーに提示したり、プリンター3のメンテナンスに利用することを想定した情報である。第2の情報は、新しい情報が取得されたとしても削除するべきではない。よって処理部71は第2の情報を記憶部75に追記書き込みする。
なお、処理部71は、取得した情報が第1の通信処理で取得されたか、第2の通信処理はで取得されたかに応じて、記憶部75への書き込み処理を切り替える。上記の例であれば、MQTT経由の情報は上書きされ、HTTP経由の情報は追記される。記憶部75は、上書き用の領域と追記用の領域とが分かれていてもよいし、領域は1つで書き込み処理の内容(フィールドの設定)が異なっていてもよい。
また、サーバーシステム7と端末装置9との間の通信も複数の経路が考えられる。図9のB1に示したように、サーバーシステム7の通信部731は、端末装置9に対するプッシュ通知を行い、端末装置9は、通信部931によるプッシュ通知の受信、及び報知部934による報知(鳴動)を行う。言い換えれば、プッシュ通知は、サーバーシステム7側が主体となって稼働情報を送信する通信処理である。
図9のB2に示したように、端末装置9の通信部931は、サーバーシステム7(Webアプリケーションサーバー)に対してリクエストを送信し、サーバーシステム7は当該リクエストに対するレスポンスとして、稼働情報を返信する。この通信は、例えば第2の通信処理(HTTP)により行われ、端末装置9でのアプリケーションソフトウェア(いわゆるスマホアプリ)の起動時、或いはユーザーによる更新操作時に実行される。言い換えれば、B2に示したリクエスト/レスポンスによる通信は、端末装置9側(ユーザー側)が主体となって稼働情報を取得する通信処理である。なお、図9ではA2とB2はともにHTTPを用いた通信であるため、サーバーシステム7の通信部731は、A2とB2を明確に区別せずに、共通の通信処理として実行することも可能である。
上述したように、第2の通信処理(HTTP)は可用性の非常に高い通信処理であるため、端末装置9の機種やOS(Operating System)によらず利用できる蓋然性が高い。よって、B2に示した通信を行うことで、サーバーシステム7で収集された稼働情報を、端末装置9で適切に受信、表示することが可能になる。サーバーシステム7には、図9のA1に示したように、リアルタイム性の高い情報が高い頻度で収集されているため、B2の通信を行った場合、端末装置9は、プリンター3の現在の稼働状態との乖離が十分に小さい情報を取得できる。
ただし、上述したようにB2の通信は端末装置9側が起点となることが想定される。そのため、B2の通信のみでは、サーバーシステム7に第1の情報が収集されてから、当該第1の情報が端末装置9に送信されるまでにタイムラグが生じるおそれがある。例えば、エラーの発生イベント(ステータス情報の「エラー」への変化)が検出された場合、プリンター3の印刷動作を再開させるためには、ユーザーにエラー発生をいち早く報知し、対応を促すことが望ましい。しかし、端末装置9からのリクエストを待っていたのでは、サーバーシステム7が把握しているエラーを迅速にユーザーに報知することが難しい。
そこでサーバーシステム7の通信部731は、受信した第1の情報が所与の種別である場合に、端末装置9に対してプッシュ通知(図9のB1)を行う。プッシュ通知は、サーバーシステム7側が起点となるため、端末装置9からのリクエストの有無によらず、迅速に端末装置9に情報を送信することが可能になる。
ただし、ユーザーにとって必要性の低い情報までプッシュ通知の対象としてしまうと、ユーザーに煩わしさを感じさせてしまい好ましくない。よってここでは、第1の情報のうちの所与の種別の情報に限定してプッシュ通知を行う。
プッシュ通知が行われる情報は、第1の情報の中でも特にリアルタイム性の高い情報である。具体的には、上述した情報のうち、ステータス情報の変化が、プッシュ通知により端末装置9に対して送信される。プッシュ通知ではステータス情報の変化があったことを表す情報(例えば「エラー発生」等)のみを送信し、具体的なステータス情報は、B2に示した通信で送信される。或いは、プッシュ通知により、変化後のステータス情報そのものを送信してもよい。即ち、通信部731は、記憶部75に記憶された所与の種別の第1の情報そのもの、又は、所与の種別の第1の情報に関する情報(イベント発生を表す情報)をプッシュ通知する。
図11、図12は、本実施形態の通信シーケンスを説明する図である。図11及び図12における「プリンター側」とは、プリンター3であってもよいし情報処理装置5であってもよい。また、本実施形態のサーバーシステム7等は、図11、図12では不図示の他の処理を行うことが可能である。
図11は、第1の情報の通信シーケンスを説明する図である。プリンター3の稼働に伴い、プリンター側では稼働情報が取得される。そして、プリンター側で第1の情報に関連するイベントの発生が検出された場合(S101)、当該イベントをトリガーとして、サーバーシステム7に対して、第1の通信処理(MQTT)により第1の情報が送信される(S102)。
サーバーシステム7は、第1の通信処理により情報を受信したため、受信した情報を記憶部75(データベース)の所定領域に上書きする(S103)。さらにサーバーシステム7は、受信した第1の情報の種別を判定し、所定種別であると判定された場合に、端末装置9に対するプッシュ通知を行う(S104)。第1の情報が所定種別でない場合は、S104の処理は実行されない。なお、S103とS104は図11に示した順序で行われるものに限定されず、S104が先に実行されてもよいし、並列に処理が実行されてもよい。端末装置9は、プッシュ通知に対応する報知を行う(S105)。端末装置9での報知は、表示部933での表示、スピーカーによる音の発生、或いは振動モーターによる振動の発生等により実現される。
また、端末装置9は、サーバーシステム7に対して第2の通信処理によりリクエストを送信し(S106)、サーバーシステム7は当該リクエストに対して、第2の通信処理によりレスポンスを返す(S107)。例えば、S105の報知(鳴動)に対して、ユーザーが端末装置9のアプリケーションソフトウェアを起動することにより、S106の処理が実行される。ただし、S106及びS107の処理はプッシュ通知をトリガーとするものに限定されず、アプリケーションソフトウェアの動作に基づいて任意のタイミングで実行可能である。
図12は、第2の情報の通信シーケンスを説明する図である。プリンター3の稼働に伴い、プリンター側で稼働情報が取得される点は図11と同様である。プリンター側では、あらかじめ設定されたスケジュールに基づいて情報の送信を行う。具体的には、プリンター側で、現時点が定期送信のタイミングであると判定された場合に(S201)、サーバーシステム7に対して、第2の通信処理(HTTP)により第2の情報が送信される(S202)。
サーバーシステム7は、第2の通信処理により情報を受信したため、受信した情報を記憶部75(データベース)に追記する(S203)。第2の情報の受信時には、図11のS104に示したプッシュ通知は実行されない。
また、第2の情報は、プリンター3の保守、管理に使用されるものであって、端末装置9への送信は想定されない。ただし、図12に示したように、端末装置9からのリクエスト(S204)に基づいて、サーバーシステム7からのレスポンスとして第2の情報を返信(S205)することは妨げられない。S204及びS205の処理が任意のタイミングで実行可能である点は、図11と同様である。
4.1.4 報知設定
図11のS105に示したように、サーバーシステム7からのプッシュ通知を受信した場合、端末装置9では鳴動等の報知制御が行われる。ただし、鳴動による報知はユーザーの注意を引きつけるものであるため、不要な状況で報知を行うことは好ましくない。
例えば、所与の企業が多数のプリンター3を保有している場合、セキュリティー上の観点からは、当該企業の保有するプリンター3に関するプッシュ通知を、当該企業の従業員の端末装置9に送信することには問題がない。しかし所与のユーザーは、企業の保有するプリンター3のうちの数台を担当し、他のプリンター3については担当外であることが考えられる。この場合、当該所与のユーザーの端末装置9に対して、担当外のプリンター3のエラー発生をプッシュ通知することは有用でなく、ユーザーにとっては煩わしく感じられる。
また、交代制の勤務が行われる場合、月曜日から金曜日までは、所与のプリンター3の担当者がユーザーAであるが、土曜日及び日曜日はユーザーAが休養日であるため、当該所与のプリンター3の担当者がユーザーBになる、ということが考えられる。当該プリンター3でのエラーが土曜日又は日曜日に発生した場合、プッシュ通知を優先的に行うべきはユーザーBの端末装置9であって、ユーザーAの端末装置9に対するプッシュ通知の優先度は高くない。むしろ、休養日にプッシュ通知が行われることで、ユーザーAが煩わしさを感じてしまうおそれがある。
よって、サーバーシステム7は、所定種別の第1の情報を受信した場合に、必ず端末装置9に対してプッシュ通知を行うのではなく、所与の報知設定に基づいてプッシュ通知を行う。報知設定とは、報知時間帯の設定、及び、稼働情報の収集対象である少なくとも1つのプリンターのうちの、いずれを報知対象とするかの設定、の少なくとも一方の設定である。ここでの報知時間帯は、1週間の中での時間帯である曜日を決定する情報、及び、1日の中での時間帯(例えば0:00〜23:59までの24時間のうちの一部の時間帯)を決定する情報の少なくとも一方を含む。
或いは報知設定は、プリンター3でのイベント種別の設定を含む。例えば、エラーの発生(「エラー」へのステータス変化)、警告の発生(「警告」へのステータス変化)、印刷終了(「待機中」へのステータス変化)のいずれかのイベントをトリガーとしたプッシュ通知が可能な例において、報知設定として、各イベントについて報知を行うか否かが設定される。
このようにすれば、サーバーシステム7から端末装置9へのプッシュ通知が、所定のプリンター3、所定の報知時間帯、所定のイベント種別に限定して行われる。ただし、以上の例からわかるように、各端末装置9での適切な報知設定は、当該端末装置9を利用するユーザーに応じて異なるものであり、サーバーシステム7側で自動的に設定を行うことは容易でない。
そこで通信部731は、端末装置9から報知設定情報(通知設定情報)を受信し、受信した報知設定情報に基づきプッシュ通知を行う。ここでの報知設定情報とは、上記報知設定を行うための情報であり、プッシュ通知を許可する時間帯、プリンター3、イベント種別を特定する情報である。このようにすれば、端末装置9側に、適切な報知設定を行わせることが可能になる。なお、ここではサーバーシステム7からのプッシュ通知を受信した場合、端末装置9では必ず報知部734による報知が行われることを想定している。そのため、報知を行うか否かを設定するための情報である報知設定情報とは、サーバーシステム7からプッシュ通知を行うか否かを設定するための情報である通知設定情報と言い換えることが可能である。また、サーバーシステム7からのプッシュ通知を受信した場合に、端末装置9側で報知を行うか否かを判定してもよい。この場合、通知設定情報と報知設定情報は一致しない可能性があり、サーバーシステム7の通信部731は通知設定情報を受信する。
図13は、報知設定情報として、端末装置9で報知対象となるプリンター3を特定する情報の入力を受け付ける表示画面例である。図13に示したように、端末装置9の処理部91は、端末装置9での報知対象の候補となるプリンター3の情報(シリアル、名称等)とチェックボックスとを、候補となるプリンター数だけ並べて表示する処理を行う。ユーザーは、報知対象として設定したいプリンター3のチェックボックスにチェックを入れて、OKボタンを押下する。
上記操作に基づいて、サーバーシステム7の通信部731は、報知候補プリンターのうち、端末装置9において報知対象として選択されたプリンター3を特定する情報を、報知設定情報として端末装置9(通信部931)から受信する。なお、通信部731は、第2の通信処理により、報知設定を端末装置9から受信する。例えば、端末装置9の通信部931は、図9のB2に示した通信経路において、HTTPのPUTメソッド等を用いて報知設定情報の送信を行う。
4.2 第2の実施形態
第1の実施形態では、プリンター3側からの稼働情報の収集に、第1の通信処理と第2の通信処理の2つを用いる例について説明した。ただし、近年のIoTの発達を鑑みるに、プリンター3等の各機器が直接ネットワークに接続され、自身の情報を送信することも多くなると考えられる。この場合、各機器とサーバーシステム7との通信処理は、上述した第1の通信処理(MQTT)により行われる。
本実施形態のサーバーシステム7は、少なくとも1つの収集対象機器の稼働情報を、ネットワークを介して収集するサーバーシステムであって、通信接続の確立後、通信接続の確立状態が維持される通信処理により、稼働情報を受信する通信部731と、処理部71と、記憶部75を含むサーバーシステムに適用できる。処理部71は、稼働情報のうちの第1の情報を記憶部75に上書きし、稼働情報のうちの第2の情報を記憶部75に追記書き込みし、通信部731は、受信した第1の情報が所与の種別である場合に、端末装置9に対してプッシュ通知を行う。
図14は、第2の実施形態のプリンター3側(プリンター3又は情報処理装置5)、サーバーシステム7、及び端末装置9の通信態様を模式的に示す図である。図9と比較した場合、第1の情報及び第2の情報が、ともに第1の通信処理(MQTT)によりサーバーシステム7に対して送信される点が異なる。また、サーバーシステム7では、第1の情報を記憶部75に上書きし、第2の情報を記憶部75に追記するが、本実施形態では、通信処理の内容で情報を識別できないため、処理部71は受信した情報が第1の情報か第2の情報かを判定し、判定結果に応じて記憶部75への書き込み処理を変更する。
本実施形態の手法によれば、稼働情報を第1の通信処理(MQTT)により収集でき、膨大な数の収集対象機器(プリンター3)が直接ネットワークに接続されるような環境に好適なサーバーシステム7を実現できる。
ただし、第1の通信処理では、情報を高い頻度で、且つ細かい単位で送信することが想定される。そのため、上述した例であれば、1回のフラッシングや、1回(或いは非常に少ない回数)のインクの吐出が、稼働情報としてサーバーシステム7に送信されてしまう。このような細かい情報は、プリンター3の稼働状態の把握やユーザーへの提示に有用でないため、サーバーシステム7で上述した加工処理(統計処理)を実行する必要が生じる。即ち、第2の情報を単純に第1の通信処理により受信する場合、サーバーシステム7の通信負荷が大きく、且つ、加工処理に関する負荷も増える。
よって通信部731は、第2の情報として、収集対象機器でバッファーされた稼働情報に基づく情報を受信する。例えば、図14に示したように、第1の情報がイベントドリブンで送信され、第2の情報がスケジュールに従って定期送信される。
ここで、収集対象機器でバッファーされた稼働情報に基づく情報とは、例えば単純に複数の稼働情報を蓄積した情報である。このようにすれば、複数の稼働情報(例えば複数回分のフラッシングの情報)をまとめて受信できるため、通信回数が抑制され、通信部731の負荷を軽減できる。或いは、収集対象機器でバッファーされた稼働情報に基づく情報とは、複数の稼働情報を圧縮した情報である。このようにすれば、通信回数の削減だけでなくデータ量も削減できるため、通信部731の負荷をより軽減できる。或いは、収集対象機器でバッファーされた稼働情報に基づく情報とは、時系列の稼働情報に対して加工処理が施された情報(例えばサマリー情報)であってもよい。このようにすれば、サーバーシステム7は第1の実施形態と同様の形式の第2の情報を受信でき、さらなる負荷の軽減が可能である。
5.変形例
以下、いくつかの変形例について説明する。
以上ではプリンター3、サーバーシステム7、端末装置9等の間の通信手法について説明したが、端末装置9が、受信した情報(特に図9のB2に示した経路により受信した第1の情報)をどのように表示するかは任意である。
図15は、端末装置9の表示部933に表示される表示画面の例である。端末装置9の通信部931は、複数のプリンター3の印刷時間情報等を、ネットワークを介して受信し、処理部91は、複数のプリンター3の印刷時間情報等が、一画面内に配置された表示画面を、表示部933に表示する処理を行う。
図15の例では、表示部933は、3つのプリンターについての情報を表示する。例えば、C1に示した領域にはプリンター3の名称である「Printer-0001」(C11)とともに、稼働情報としてステータス情報(C12)、ジョブの進捗情報(C13)、ジョブ名(C14)、印刷完了時刻情報(C15)が表示されている。具体的には、「Printer-0001」という名称のプリンターは、現在「印刷中」というステータスであり、「Sample_image.pdf」というジョブ名のジョブを実行している。ここでは、ジョブ名は印刷対象としているファイル名である。そして当該ジョブ全体を100%としたときに、進捗は「1%」であり、印刷完了時刻が「14:20」である。
また表示部933は、C2に示した領域において、「Printer-0002」という名称のプリンターが、現在「印刷中」というステータスであり、「Sample_image_Xmas.pdf」というジョブ名(印刷対象ファイル名)のジョブを実行しており、当該ジョブの進捗は「60%」であり、印刷完了時刻が「13:20」であることを表示している。
また表示部933は、C3に示した領域において、「Printer-0003」という名称のプリンターが、現在「待機中」(アイドル状態)というステータスであることを表示している。Printer-0003はアイドル状態であるため、ジョブ名、進捗情報、印刷完了時刻情報については表示されていない。
図15の表示画面を用いることで、複数のプリンター3の稼働状態を一覧性の高い態様でユーザーに提示することが可能になる。特に、印刷完了時刻情報が表示されるため、複数のプリンター3が表示対象となる場合にも、印刷完了時刻の把握が容易である。例えば、図15の表示画面では、最も早い印刷完了時刻の把握が容易であるため、その時刻にはプリンター3のところまで戻って次のジョブを投入する準備をしなくてはならない、といった判断をユーザーに実行させることが可能である。
なお、図15の表示画面は、複数のプリンター3の情報を一覧性の高い態様で表示可能であるが、1つのプリンター3についての情報量が制限される。例えば、図15では、第1の情報のうち、インク残量の情報が表示対象とならない。よって処理部91は、印刷時間情報が表示されている複数のプリンター3のうち、いずれかのプリンターが選択されたときに、選択操作が行われたプリンターの表示領域を拡大し、詳細情報を表示する処理を行う。
図16は、詳細情報を表示する表示画面の例である。図16は、例えば図15の表示が行われている状態において、ユーザーが「Printer-0001」を選択する操作を行った場合の表示画面に対応する。処理部91は、図15のC11〜C15に対応する情報の表示(H11〜H15)に加えて、インク及びメディア(紙や布等)の残量情報(H16)、ジョブ履歴情報(H17)を表示している。なお、H15では印刷時間情報として印刷完了までの残り時間情報を表示しているが、図15のC15と同様に、印刷完了時刻情報を用いてもよい。
このようにすれば、一覧性の高い表示(図15)と詳細表示(図16)を適宜切り替えることで、ユーザーに対して適切な情報を提示することが可能になる。なお、詳細情報として表示する情報は図16に限定されず、種々の変形実施が可能である。また、図16では図15とは別画面として詳細情報を表示する(「Printer-0002」や「Printer-0003」は非表示になる)例を示したが、異なる変形実施も可能である。例えば、図15のように複数のプリンター3の情報を並べて表示する画面に詳細情報を追加することも可能である。具体的には、「Printer-0001」が選択された場合に、図15のC1とC2の間にH16やH17に相当する表示が挿入されてもよい。この場合、詳細情報の表示中にも、スクロール操作を行うことで、「Printer-0002」等の他のプリンターの情報を閲覧することが可能である。
また、図16に示したように、端末装置9ではジョブ履歴情報を表示する場合がある。ただし本実施形態では第1の情報は上書きされるため、仮に最新のジョブ名だけを記憶していたのでは、第1の情報に基づいてジョブ履歴情報を表示することはできない。第2の情報には、過去に実行したジョブ名が含まれるため、第2の情報に基づいて、ジョブ履歴情報を表示することは可能である。ただし、第2の情報は所与のスケジュールに従って定期送信されるため、端末装置9からのリクエストがあった時点でサーバーシステム7が保持している第2の情報が古い情報である可能性もある。
例えば、プリンター3が、第2の情報の定期送信後、且つ次の定期送信前の期間において、複数のジョブを完了している場合を考える。この場合、サーバーシステム7は、当該複数のジョブの情報を第2の情報として受信していないため、第2の情報を参照しても当該複数のジョブに関する情報を端末装置9に提供できない。またサーバーシステム7は、当該複数のジョブの情報を第1の情報として受信してはいるが、上記のように最新のジョブ名だけを記憶していたのでは、最新以外のジョブ名の情報は記憶部75から失われている。
以上の点を鑑み、サーバーシステム7は、複数のジョブ名の情報を、第1の情報として保持する。例えば、記憶部75は、ジョブ名の情報をリングバッファーにより記憶する。リングバッファーは、例えば50個のジョブ名を記憶するバッファーであり、新たなジョブ名の情報を受信した場合に、任意の1つ(狭義には最も古い1つ)を当該新たなジョブ名により上書きする。このようにすれば、複数のジョブ名を第1の情報として保持できるため、ジョブ履歴情報を適切に表示することが可能になる。
また、本実施形態の手法は、図1に示したように、上記のサーバーシステム7と、端末装置9と、を含む稼働情報収集システム1に適用できる。
また、本実施形態のサーバーシステム7や端末装置9等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサーがプログラムを実行することで、本実施形態のサーバーシステム7や端末装置9等が実現される。具体的には、非一時的な情報記憶媒体に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサーが実行する。ここで、情報記憶媒体(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリー(カード型メモリー、ROM等)などにより実現できる。そして、CPU等のプロセッサーは、情報記憶媒体に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶媒体には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
また、本実施形態のサーバーシステム7や端末装置9等は、プロセッサーとメモリーを含んでもよい。ここでのプロセッサーは、例えば各部の機能が個別のハードウェアで実現されてもよいし、或いは各部の機能が一体のハードウェアで実現されてもよい。例えば、プロセッサーはハードウェアを含み、そのハードウェアは、デジタル信号を処理する回路及びアナログ信号を処理する回路の少なくとも一方を含むことができる。例えば、プロセッサーは、回路基板に実装された1又は複数の回路装置(例えばIC等)や、1又は複数の回路素子(例えば抵抗、キャパシター等)で構成することができる。プロセッサーは、例えばCPUであってもよい。ただし、プロセッサーはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサーを用いることが可能である。またプロセッサーはASICによるハードウェア回路でもよい。またプロセッサーは、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。メモリーは、SRAM、DRAMなどの半導体メモリーであってもよいし、レジスターであってもよいし、ハードディスク装置等の磁気記憶装置であってもよいし、光学ディスク装置等の光学式記憶装置であってもよい。例えば、メモリーはコンピューターにより読み取り可能な命令を格納しており、当該命令がプロセッサーにより実行されることで、サーバーシステム7や端末装置9等の各部(通信部、処理部)の機能が実現されることになる。ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサーのハードウェア回路に対して動作を指示する命令であってもよい。
また本実施形態の手法は、少なくとも1つの収集対象機器の稼働情報を、ネットワークを介して収集するサーバーシステム7の作動方法であって、稼働情報のうちの第1の情報については、通信接続の確立後、通信接続の確立状態が維持される第1の通信処理により受信し、稼働情報のうちの第2の情報については、通信接続の確立後、情報が受信されると通信接続が切断される第2の通信処理により受信し、第1の通信処理により受信した第1の情報、及び第2の通信処理により受信した第2の情報を記憶部75に書き込み、受信した第1の情報が所与の種別である場合に、端末装置9に対してプッシュ通知を行うサーバーシステム7の作動方法に適用できる。
或いは本実施形態の手法は、少なくとも1つの収集対象機器の稼働情報を、ネットワークを介して収集するサーバーシステム7の作動方法であって、通信接続の確立後、通信接続の確立状態が維持される通信処理により、稼働情報を受信し、稼働情報のうちの第1の情報を記憶部75に上書きし、稼働情報のうちの第2の情報を記憶部75に追記書き込みし、受信した第1の情報が所与の種別である場合に、端末装置9に対してプッシュ通知を行うサーバーシステム7の作動方法に適用できる。
以上、本発明を適用した実施形態及びその変形例について説明したが、本発明は、各実施形態やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施形態や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。