(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】
(43)【公開日】
(54)【発明の名称】システムおよびシステムの制御方法
(51)【国際特許分類】
【FI】
【審査請求】未請求
【請求項の数】7
【出願形態】
(21)【出願番号】
(22)【出願日】
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100114775
【弁理士】
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【弁理士】
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100208580
【弁理士】
【氏名又は名称】三好 玲奈
(72)【発明者】
【氏名】鈴木 貴文
【テーマコード(参考)】
【Fターム(参考)】
2C061AP01
2C061AP07
2C061HJ08
2C061HK11
2C061HK19
2C061HN05
2C061HN15
2C061HP00
(57)【要約】 (修正有)
【課題】対応優先度の高いイベント通知を優先して処理できるシステムを提供する。
【解決手段】サービスに対応する通知実行アプリを有する画像形成装置と、画像形成装置に対するイベント通知を管理する通知管理サーバとを含むシステムは、ポーリングが高頻度である場合に、通知管理サーバから受信したイベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度の高いイベント通知である場合にイベント通知に対応するアプリにイベント通知の処理を要求し、対応優先度の高いイベント通知でない場合にはイベント通知の処理を要求しない通知管理処理を行う通知管理アプリと、イベント通知の処理を実行する通知実行アプリと、を有し、通知管理アプリは、イベント通知に含まれる識別情報と、ポーリングの頻度の変更要求を行った通知実行アプリを示す識別情報が一致する場合に、イベント通知が対応優先度の高いイベント通知であると判断する。
【選択図】
図6
【特許請求の範囲】
【請求項】
サービスに対応するアプリケーションを有する画像形成装置と、前記サービスからの前記画像形成装置に対するイベント通知を管理する通知管理サーバとを含むシステムであって、
前記画像形成装置は、
ポーリングにより前記通知管理サーバに対してイベント通知要求を行い、前記通知管理サーバから前記画像形成装置に対するイベント通知を一括で受信する受信部と、
前記ポーリングが高頻度である場合に、受信した前記イベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度の高いイベント通知である場合に前記イベント通知に対応するアプリケーションに前記イベント通知の処理を要求し、対応優先度の高いイベント通知でない場合には前記イベント通知の処理を要求しない通知管理処理を行う通知管理部と、
前記イベント通知の処理の要求を受けた場合に、前記イベント通知の処理を実行するアプリケーションと、を有し、
前記通知管理部は、前記イベント通知に含まれる該イベント通知の処理を行うアプリケーションを示す識別情報と、前記ポーリングの頻度の変更要求を行ったアプリケーションを示す識別情報が一致する場合に、前記イベント通知が対応優先度の高いイベント通知であると判断することを特徴とするシステム。
【請求項】
前記ポーリングの頻度の変更要求は、ポーリングの頻度を高頻度にする変更要求であり、
前記アプリケーションは、前記通知管理部に対してポーリングの頻度の変更要求を行った場合、前記通知管理部に前記アプリケーションの識別情報を送信し、
前記通知管理部は、前記アプリケーションから前記ポーリングの頻度の変更要求を受け付けた場合に該アプリケーションの識別情報を取得し、前記ポーリングの頻度の変更要求により高頻度で行われたポーリングにより受信するイベント通知に含まれる前記アプリケーションを示す識別情報との比較に利用することを特徴とする請求項1に記載のシステム。
【請求項】
前記アプリケーションは、前記通知管理部から処理を要求された前記イベント通知に含まれる処理の対応優先度の高さを示すフラグ情報に基づいて、前記イベント通知が処理対象であるか判定し、前記フラグ情報が高い対応優先度を示す値である場合に前記イベント通知の処理を行い、前記フラグ情報が高い対応優先度を示す値でない場合には前記イベント通知の処理を行わないことを特徴とする請求項1に記載のシステム。
【請求項】
前記通知管理サーバは、
前記サービスからの要求に応じて画像形成装置に対するイベント通知を生成する生成部と、
生成した前記イベント通知を管理する管理部と、
前記画像形成装置からのポーリングによるイベント通知要求に対して前記イベント通知を画像形成装置に通知する通知部と、と有し、
前記画像形成装置の前記通知管理部は、前記アプリケーションにおけるイベント通知の処理の結果を前記通知管理サーバに送信し、
前記管理部は、前記イベント通知のステータスおよび有効期限を管理することを特徴とする請求項1に記載のシステム。
【請求項】
前記ポーリングが高頻度である場合に対応優先度の高いイベント通知でないと判断されて処理されなかったイベント通知は、前記ポーリングの高頻度が解除された後のポーリングにより再び前記通知管理サーバから前記画像形成装置に通知され、前記画像形成装置の前記アプリケーションにより処理されることを特徴とすることを特徴とする請求項4に記載のシステム。
【請求項】
前記画像形成装置の前記通知管理部は、イベント通知の処理が行われなかった場合には、イベント通知の処理が行われなかったことを示すレスポンスを前記通知管理サーバに送信し、
前記管理部は、前記画像形成装置において処理が行われなかったイベント通知の有効期限を延長することを特徴とする請求項4に記載のシステム。
【請求項】
サービスに対応するアプリケーションを有する画像形成装置と、前記サービスからの前記画像形成装置に対するイベント通知を管理する通知管理サーバとを含むシステムの制御方法であって、
ポーリングにより前記通知管理サーバに対してイベント通知要求を行い、前記通知管理サーバから前記画像形成装置に対するイベント通知を一括で受信する工程と、
前記ポーリングが高頻度である場合に、受信した前記イベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度の高いイベント通知である場合に前記イベント通知に対応するアプリケーションに前記イベント通知の処理を要求し、対応優先度の高いイベント通知でない場合には前記イベント通知の処理を要求しない通知管理処理を行う工程と、
前記イベント通知の処理の要求を受けた場合に、前記イベント通知の処理を実行する工程と、を有し、
前記通知管理処理では、前記イベント通知に含まれる該イベント通知の処理を行うアプリケーションを示す識別情報と、前記ポーリングの頻度の変更要求を行ったアプリケーションを示す識別情報が一致する場合に、前記イベント通知が対応優先度の高いイベント通知であると判断することを特徴とするシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【】
本発明は、画像形成装置におけるイベント通知を管理するシステムおよびシステムの制御方法に関する。
【背景技術】
【】
一般的な画像形成装置に関する情報処理システムにおいて、クラウド上のサーバから画像形成装置に対してイベント通知をすることで、画像形成装置の管理者が、画像形成装置の設定値情報の変更といった操作を遠隔から指示することは広く行われている。またイベント通知は、画像形成装置が数時間毎にクラウド上のサーバにポーリングを行うことで、クラウド上のサーバから画像形成装置に送信されている。ここで、迅速に処理をしたいイベント通知が存在する場合は、クラウド上のサーバに対する画像形成装置のポーリング頻度を一時的に高速にすることで、画像形成装置が対応優先度の高いイベント通知を即座に受信できるようにすることも行われている。また特許文献1は、クラウド上のサーバが、サーバに接続している画像形成装置の台数に応じて、画像形成装置が処理するイベント通知の対応優先度を管理する方法を開示している。今日のクラウド上のサーバと接続された画像形成装置は、一度に複数のイベント通知を受信することがある。画像形成装置は、複数のイベント通知を一つずつ処理することによってサーバから要求された操作を実行する。複数のイベント通知の中には対応優先度の高いイベント通知も含まれているため、画像形成装置側で複数のイベント通知の中から対応優先度の高いイベント通知を迅速に処理することが求められる。
【先行技術文献】
【特許文献】
【】
【発明の概要】
【発明が解決しようとする課題】
【】
しかしながら、特許文献1の方法は、クラウド上のサーバに接続された画像形成装置の台数に基づいてイベント処理の対応優先度を決定するものであり、画像形成装置そのものが置かれた状況は考慮していない。そのため、対応優先度の高いイベント通知を迅速に処理することは出来ない。例えば、顧客が利用している画像形成装置に問題が発生したとする。画像形成装置の修理担当者は遠隔から修理対応を行うため、クラウド上のサーバに対する画像形成装置のポーリング頻度を一時的に高め、その場で修理機能を実行するためのイベントを画像形成装置に送信する。この際、画像形成装置に修理対応に関係のないファームウェアを更新するためのイベント通知も同時に受信していた場合、画像形成装置を利用している顧客の業務を中断させないため、修理機能を実行するためのイベント通知を最優先で処理する必要がある。しかし、ファームウェアを更新するためのイベント通知が先に処理された場合、ファームウェアの更新が完了するまで、画像形成装置は修理機能を実行するためのイベント通知を処理することができない。つまり、対応優先度の高いイベントを受信しているにも関わらず、画像形成装置はそのイベント通知を迅速に処理することができない。
【】
本発明は、対応優先度の高いイベント通知を優先して処理できるシステムを提供することを目的とする。
【課題を解決するための手段】
【】
上記課題を解決するために、本発明のシステムは、サービスに対応するアプリケーションを有する画像形成装置と、前記サービスからの前記画像形成装置に対するイベント通知を管理する通知管理サーバとを含むシステムであって、前記画像形成装置は、ポーリングにより前記通知管理サーバに対してイベント通知要求を行い、前記通知管理サーバから前記画像形成装置に対するイベント通知を一括で受信する受信部と、前記ポーリングが高頻度である場合に、受信した前記イベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度の高いイベント通知である場合に前記イベント通知に対応するアプリケーションに前記イベント通知の処理を要求し、対応優先度の高いイベント通知でない場合には前記イベント通知の処理を要求しない通知管理処理を行う通知管理部と、前記イベント通知の処理の要求を受けた場合に、前記イベント通知の処理を実行するアプリケーションと、を有する。前記通知管理部は、前記イベント通知に含まれる該イベント通知の処理を行うアプリケーションを示す識別情報と、前記ポーリングの頻度の変更要求を行ったアプリケーションを示す識別情報が一致する場合に、前記イベント通知が対応優先度の高いイベント通知である。
【発明の効果】
【】
本発明によれば、対応優先度の高いイベント通知を優先して処理できるシステムを提供することができる。
【図面の簡単な説明】
【】
【図】システムの構成を示す図である。
【図】通知管理サーバおよびサービス用サーバのハードウェア構成を示す図である。
【図】画像形成装置のハードウェア構成を示す図である。
【図】通知管理サーバのソフトウェア構成を示す図である。
【図】画像形成装置のソフトウェア構成を示す図である。
【図】第1実施形態における通知処理全体のシーケンスを示した図である。
【図】第1実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
【図】第1実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
【図】第2実施形態における通知処理全体のシーケンスを示した図である。
【図】第2実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
【図】第2実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
【図】第3実施形態における情報システムの全体シーケンスを示す図である。
【図】第3実施形態における画像形成装置のイベント通知の処理フローを示すフローチャートを示す図である。
【図】第3実施形態における画像形成装置のイベント通知の処理フローを示すフローチャートを示す図である。
【発明を実施するための形態】
【】
(第1実施形態)
図1は、システムの構成を示す図である。本実施形態のシステムは、通知管理サーバ102からのイベント通知を受けた画像形成装置103が、優先的に処理すべきイベント通知を優先して迅速に処理する通知管理システムである。システムは、各サービスから画像形成装置103へのイベント通知を管理して画像形成装置103へイベント通知を送信する通知管理サーバ102と、通知管理サーバ102からのイベント通知を受信してイベント通知の処理を行う画像形成装置103を有する。画像形成装置103は、サービス(サービス用サーバ101)に対応するアプリケーションを有しており、あるサービスの指示により生成されたイベント通知は、当該サービスに対応するアプリケーションが処理する。また、システムには、画像形成装置103に関するサービスを提供するサービス用サーバ101が含まれていてもよい。サービス用サーバ101は、通知管理サーバ102に指示を行い画像形成装置103に対するイベント通知を生成させて保持させ、ポーリングを行った画像形成装置103にイベント通知を送信させることが可能である。
【】
サービス用サーバ101、通知管理サーバ102、画像形成装置103は、それぞれネットワーク100を介して接続されている。ネットワーク100は、データの送受信が可能に構成されていればよく、通信方式は問わない。例えば、ネットワーク100は、LAN、WAN、LTEや5Gなどのセルラネットワーク、無線ネットワーク、電話回線、専用デジタル回線等のいずれか、またはこれらの組み合わせで構成される。
【】
サービス用サーバ101は、一つまたは複数存在し、画像形成装置103に関するサービスを提供する。サービス用サーバ101は、画像形成装置103に送信するための通知の生成要求を通知管理サーバ102に対して行う。画像形成装置103には、サービス用サーバ101のそれぞれに対応する通知実行アプリケーション502が用意されている。サービス用サーバ101が提供するサービスには、例えば遠隔から画像形成装置103の修理を行うリモート修理サービスなど、画像形成装置103を遠隔から操作するサービスが含まれる。画像形成装置103を遠隔から操作するサービスを提供するサービス用サーバ101は、画像形成装置103を遠隔から操作するためのイベント通知の生成要求を通知管理サーバ102に対して行う。
【】
通知管理サーバ102は、一つまたは複数のサービス用サーバ101からイベント通知の生成要求を受け付け、画像形成装置103に送信するためのイベント通知を生成し、保持する。また通知管理サーバ102は、画像形成装置103からポーリングがあった際は、ポーリングを行った画像形成装置103に対応する一つまたは複数のイベント通知を、ポーリングを行った画像形成装置103に一括送信する。画像形成装置103によるイベント通知の処理が完了した際は、通知管理サーバ102は、画像形成装置103からイベント通知の処理結果を受信する。
【】
サービス用サーバ101は、1台または複数台の情報処理装置の他、情報処理装置を含むデータセンターにより提供されたリソースを利用した仮想マシン(クラウドサービス)、あるいはこれらの組み合わせにより実現されてもよい。また、通知管理サーバ102は、1台または複数台の情報処理装置の他、情報処理装置を含むデータセンターにより提供されたリソースを利用した仮想マシン(クラウドサービス)、あるいはこれらの組み合わせにより実現されてもよい。
【】
画像形成装置103は、システムにより通知が管理される画像形成装置の一例である。システムで管理される画像形成装置103は、複数あってもよい。画像形成装置103は、例えば、印刷、FAX、コピー、スキャナなどの機能を備えるMFP(MultiFunctionPrinter)である。なお、画像形成装置100は、MFPに限られず、プリンタ、スキャナ、3Dプリンタ等、印刷機能、コピー機能、スキャン機能、データのネットワーク送信機能、FAX機能のいずれかを有するものであればよい。
【】
画像形成装置103は、通知管理サーバ102に対してポーリングを行い、通知管理サーバ102に保持されている画像形成装置103に対応するイベント通知を受信する。画像形成装置103は、通知管理サーバ102からイベント通知を受信した際は、イベント通知に記載された内容に基づいて操作を実行する。例えば、ファームウェアを更新するためのイベント通知を通知管理サーバ102から受信した場合、画像形成装置103は、イベント通知に記載された時刻やファームウェアのバージョンに従って、ファームウェアの更新を行う。画像形成装置103は、イベント通知の処理が完了すると、通知管理サーバ102にイベント通知の処理結果を送信する。
【】
図2は、サービス用サーバ101および通知管理サーバ102のハードウェア構成を示す図である。ここでは、通知管理サーバ102のハードウェア構成を例に説明する。サービス用サーバ101も通知管理サーバ102と同様のハードウェア構成を有している。通知管理サーバ102は、CPU200、RAM201、ストレージ202、ネットワークI/F203、入出力I/F205、二次記憶装置206を有している。システムバス204は、CPU200、RAM201、ストレージ202、ネットワークI/F203、入出力I/F205、二次記憶装置206を接続し、CPU200からの制御命令を他のハードウェアに伝播させる。
【】
CPU(Central Processing Unit)200は、通知管理サーバ102全体を制御する。RAM(Random Access Memory)201は、一時的なメモリ領域であり、CPU200のワークエリア等として機能する。ストレージ202は、組み込みプログラムや顧客の個人情報といった所定情報を記録する。CPU200は、メモリ(RAM201または二次記憶装置206)から読み込んだプログラムを実行することで、各種制御処理を実行する。
【】
ネットワークインターフェース203は、他のコンピュータやネットワーク機器と通信を行う。本実施形態においては、通知管理サーバ203のネットワークインターフェース203は、サービス用サーバ101および画像形成装置103と通信を行う。ネットワークインターフェース203は有線・無線双方の通信方式に対応する。なお、サービス用サーバ101のネットワークインターフェース203は、通知管理サーバ203との通信を行う。サービス用サーバ101は、ネットワークインターフェース203を介して、通知管理サーバ102にイベント通知の生成要求を行う。通知管理サーバ102は、ネットワークインターフェース203を介して、生成したイベント通知を画像形成装置103に送信する。
【】
入出力インターフェース205は、キーボード、マウス、タッチパネルなどの機器からの信号や情報を受信する。また、入出力インターフェース205は、ディスプレイやタッチパネルなどの機器に信号や情報を出力する。また、入出力インターフェース205は、リモートデスクトップやリモートシェルなどを通して、他のコンピュータからの接続と操作を受け付けることも可能である。二次記憶装置206は、各種データやプログラムを記憶する間接記憶装置である。二次記憶装置206は、例えば、Hard Disc Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリなどである。また、二次記憶装置206は、外部メディアを装填するDiskDriveなど他の記憶装置を備えていてもよい。
【】
図3は、画像形成装置103のハードウェア構成を示す図である。画像形成装置103は、CPU300、RAM301、ROM302、ネットワークI/F303、デバイスコントローラ305、プリンタ306、スキャナ307、二次記憶装置308、入出力I/F309、入出力装置310を有する。システムバス304は、CPU300、RAM301、ROM302、ネットワークI/F303、デバイスコントローラ305、二次記憶装置308、入出力I/F309を接続し、CPU300からの制御命令を画像形成装置103全体に伝播させる。
【】
CPU300は、画像形成装置103全体の制御を行う。RAM301は、プログラムの実行に必要となる情報を一時的に記憶し、CPU300のワークエリア等として機能する。ROM(Read Only Memory)302は、基本I/Oプログラム等の各種データを記憶する。二次記憶装置308は、各種データやプログラムを記憶する間接記憶装置である。二次記憶装置308は、例えば、Hard Disc Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリなどである。また、二次記憶装置308は、外部メディアを装填するDiskDriveなど他の記憶装置を備えていてもよい。CPU300は、ROM302や二次記憶装置308に記憶されているプログラムを実行して各種制御処理を実行する。CPU300は、RAM301にプログラムの実行に必要な情報を一時的に格納する。
【】
ネットワークインターフェース303は、画像形成装置103が、ネットワーク100を介して通知管理サーバ102などの外部機器と通信することを可能にする。画像形成装置103の通信方式は、有線・無線双方に対応する。デバイスコントローラ305は、CPU300から受けた制御命令に基づいて、プリンタ306やスキャナ307等の装置を制御する。プリンタ306は、印刷などのジョブを実行して、記録紙などに印刷を行う。スキャナ307は、原稿台やADF(Auto Document Feeder)にセットされた原稿を光学的に読み取り、電子データに変換する。また、画像形成装置103は、スキャナ307を利用するFAX機能を有していてもよい。
【】
入出力インターフェース309は、入出力装置310から受信した信号を、画像形成装置102内の各部に伝達する。入出力装置310は、画像形成装置103における入出力を担う複数の構成を有する。入出力装置310は、例えば、タッチパネルやハードキー等である。タッチパネルにおける入力座標と表示座標を対応付けることで、あたかもユーザがタッチパネルに表示された画面を直接的に操作可能であるかのようなグラフィカルユーザインタフェース(GUI)を構成することができる。入出力装置310は、ユーザからの入力を受け付け、前記入力に対応する信号を、入出力インターフェース309を介して画像形成装置103内の各部に送信する。
【】
図4は、通知管理サーバ102のソフトウェア構成の一例を示す図である。通知管理サーバ102のソフトウェア構成を実現するプログラムは、メモリ(RAM201、ストレージ202、二次記憶装置206)から読み込まれ、CPU200によって実行される。通知管理サーバ102の外部との通信は、ネットワークインターフェース203を用いることで行う。通知管理サーバ102は、外部通信部400、通知生成部401、通知管理部402を有する。通知管理サーバ102は、サービス用サーバ101からのイベント通知生成の指示を外部通信部400で受信し、通知生成部401でイベント通知を生成する。そして、生成したイベント通知を通知管理部402で管理し、画像形成装置103からのポーリングによるイベント通知の送信要求に応じてイベント通知を画像形成装置103に送信する。
【】
外部通信部400は、サービス用サーバ101からイベント通知生成要求を受信し、イベント通知の生成処理を通知生成部401に依頼する。また、外部通信部400は、画像形成装置103からイベント通知の送信要求があった際は、通知管理部402に問い合わせ、当該画像形成装置103にイベント通知を通知する通知部として機能する。さらに、外部通信部400は、画像形成装置103からイベント通知の処理結果を受信した際は、通知管理部402にイベント通知のステータス更新を依頼する。
【】
通知生成部401は、サービス用サーバ101からイベント通知の生成要求に応じて、イベント通知を生成する生成部として機能する。そして通知生成部401は、生成したイベント通知を通知管理部402に送信する。通知管理部402は、生成されたイベント通知を管理する管理部として機能する。イベント通知は、例えば通知管理部402において、イベント通知が持つ画像形成装置IDごとに、キュー形式で管理される。通知管理部402が管理するイベント通知には、イベント通知に対応するアプリケーションを示す識別情報であるアプリケーションIDと、イベント通知のステータスおよび有効期限が含まれる。表1は、イベント通知の一例である。
【表】
【】
イベント通知には、通知ID、画像形成装置ID、アプリケーションID、ステータス、更新日時、キュー日時、有効期限、ペイロードが含まれる。「通知ID」は、イベント通知を一意に識別するための値を示す属性である。「画像形成装置ID」は、画像形成装置103を一意に識別するための値を示す属性である。「アプリケーションID」は、イベント通知を実行する通知実行アプリケーション502を一意に識別するための識別情報である。通知実行アプリケーション502はサービス用サーバ101に対応している。そのため、通知生成部401はイベント通知の生成要求を行ったサービス用サーバ101に応じた「アプリケーションID」の値を格納することで、イベント通知を実行する通知実行アプリケーション502を一意に識別することができる。
【】
「ステータス」は、イベント通知の処理状況を示す属性である。「ステータス」属性が取りうる値域として、“QUEUED”、“ACCEPTED”、“REJECTED”、“ERROR”等がある。イベント通知が生成された際、「ステータス」属性の値は“QUEUED”に設定される。“QUEUED”のステータスを持つイベント通知のみが、通知管理アプリケーション501に送信される。また、画像形成装置103から受信するイベント通知の処理結果に基づいて、「ステータス」属性の値は変更される。画像形成装置103からイベント通知の成功を示すレスポンスを受信した場合、通知管理部402は、「ステータス」属性の値を“QUEUED”から“ACCEPTED”に更新する。一方で、画像形成装置103からイベント通知の失敗を示すレスポンスを受信した場合、通知管理部402は、「ステータス」属性の値を“ERROR”に更新する。
【】
「更新日時」は、イベント通知の最終更新日時を示す属性である。「キュー日時」は、イベント通知が生成された日時を示す属性である。「有効期限」は、イベント通知の通知管理サーバ102における有効期限を示す属性である。有効期限を超過したイベント通知は、通知管理部402により通知管理サーバ102から削除される。「ペイロード」は、イベント通知を処理する画像形成装置103の通知実行アプリケーション502が参照し、処理を実行するために必要な内容をJSON形式で保持した属性である。具体的に「ペイロード」属性の値には、イベント通知処理を行うためのモジュール名やパラメータが保持される。また、「ペイロード」属性の値には、当該イベント通知を優先して処理する必要があるかどうかを示すフラグが含まれていてもよい
【】
通知管理部402は、管理対象の画像形成装置に送信するイベント通知をキュー形式で保持する。画像形成装置103からイベント通知の送信要求があった際は、通知管理部402は、送信要求を行った画像形成装置103の画像形成装置IDを持ち、かつ「ステータス」属性の値が“QUEUED”に設定されているイベント通知を全て送信する。また通知管理部402は、画像形成装置103からイベント通知の処理結果を受信することで、イベント通知のステータス管理を行う。
【】
図5は、画像形成装置103のソフトウェア構成の一例を示す図である。画像形成装置103のソフトウェア構成を実現するプログラムは、メモリ(ROM302、二次記憶装置308)から読み込まれ、CPU300によって実行される。画像形成装置103と通知管理サーバ102との通信は、ネットワークインターフェース303を介して行われる。画像形成装置103は、外部通信部500、通知管理アプリケーション501、通知実行アプリケーション502を有する。さらに、画像形成装置103は、設定値管理部503、ジョブ実行部504、FAX部505、SEND部506、PDL部507、ファームウェア更新部508を有する。
【】
外部通信部500は、ネットワークインターフェース303を利用することで、外部機器との通信を行う。本実施形態の外部通信部500は、通知管理サーバ102からのイベント通知の受信を行う受信部として機能する。より具体的には、外部通信部500は、通知管理アプリケーション501から指示された頻度でポーリングにより通知管理サーバ102に対してイベント通知要求を行い、通知管理サーバ102から画像形成装置103に対するイベント通知を一括で受信する。また、外部通信部500は、通知管理サーバ102に対するイベント通知の処理結果の送信を実現する。
【】
通知管理アプリケーション501(以下、通知管理アプリ501と記載する)は、画像形成装置103に対するイベント通知を管理する通知管理部として機能する。通知管理アプリ501は、外部通信部500を介して通知管理サーバ102に対して定期的にポーリングを行うことで、通知管理サーバ102から一つまたは複数のイベント通知を画像形成装置103が一括受信するよう制御する。通知管理アプリ501は、各イベント通知の実行を、イベント通知に対応した通知実行アプリケーション502に要求する。通知管理アプリ501は、イベント通知が保持するアプリケーションIDとアプリケーションIDが一致する通知実行アプリケーション502にイベント通知の実行要求を行う。
【】
また、本実施形態の通知管理アプリ501は、優先して処理を行いたいイベント通知が存在する場合、そのイベント通知を実行する通知実行アプリケーション502から、通知管理サーバ102に対するポーリング頻度の変更要求を受信する。これにより通知管理アプリ501は、高頻度ポーリングモードに移行する。同時に通知管理アプリ501は、ポーリング頻度の変更要求を行った通知実行アプリケーション502のアプリケーションIDを取得し、記憶する。ポーリングが高頻度である場合には、通知管理アプリ501は、イベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度に応じてイベント通知の通知実行アプリケーション502への処理要求を制御する通知管理処理を行う。対応優先度の高いイベント通知であるか否かは、イベント通知に含まれるアプリケーションIDと、高頻度のポーリングを要求した通知実行アプリケーション502を示す識別情報であるアプリケーションIDに基づいて判断される。イベント通知に含まれるアプリケーションIDは、イベント通知の処理を行うアプリケーションを示す識別情報である。通知管理アプリ501は、ポーリング頻度の変更要求を行った通知実行アプリケーション502の識別情報であるアプリケーションIDを持つイベント通知を優先して処理を行いたいイベント通知であると判断し、当該イベント通知の処理を実行させる。通知管理アプリ501は、イベント通知が保持するアプリケーションIDと通知実行アプリケーション502が保持するアプリケーションIDが一致する場合にのみ、イベント通知に対応する通知実行アプリケーション502にイベント通知の実行要求を行う。一方、アプリケーションIDが一致しない場合には、通知実行アプリケーション502にイベント通知の処理を要求しないことで、イベント要求を無視する。さらに、通知管理アプリ501は、通知実行アプリケーション502からイベント通知の処理結果を受信し、外部通信部500を介して、画像形成装置103におけるイベント通知の処理結果を通知管理サーバ102に送信する。
【】
通知実行アプリケーション502(以下、通知実行アプリ502と記載する)は、サービス用サーバ101に対応するアプリケーションである。通知実行アプリ502は、画像形成装置103内に一つまたは複数インストールされており、自身に対応するサービス用サーバ101からのイベント通知の処理を実行することで、画像形成装置103内の機能を操作する。また、各通知実行アプリ502は、自身を一意に示す識別情報であるアプリケーションIDを保有する。通知実行アプリ502は、通知管理アプリ501からイベント通知の処理要求を受信した場合、そのイベント通知を実行する。通知実行アプリ502は、イベント通知を実行することで、画像形成装置103内の多様な機能(例えば設定値管理部503、ジョブ実行部504、ファームウェア更新部508等)を遠隔から利用することを可能にする。また、通知実行アプリ502は、イベント通知の処理を実行すると、その処理結果を通知管理アプリ501に送信する。なお、本実施形態では、通知実行アプリ502が実行する画像形成装置103の機能を特に限定しないものとする。例えば画像形成装置103の利用者は、通知実行アプリ502を介して、画像形成装置103にインストールするアプリケーションのライセンスを管理しても良い。
【】
設定値管理部503は、画像形成装置103の設定値情報を管理する。また、設定値管理部503は、通知実行アプリ502から設定値情報の送信要求を受けた際は、画像形成装置103の設定値情報を送信する。ジョブ実行部504は、画像形成装置103内の機能を実行するためのジョブ情報を管理する。ジョブ実行部504は、例えば、FAX部505、SEND部506、PDL部507の機能を実行するためのジョブ情報を管理する。ジョブ実行部504は、通知実行アプリ502からジョブ実行要求を受信することで、FAX部505、SEND部506、PDL部507を実行する。FAX部505は、画像形成装置103のFAX機能を実行する。SEND部506は、画像形成装置103のSEND機能を実行する。PDL部507は、画像形成装置103のPDL機能を実行する。ファームウェア更新部508は、通知実行アプリ502からファームウェアのバージョン更新の指示を受けると、画像形成装置103のファームウェアのバージョン更新処理を実行する。
【】
図6は、第1実施形態における通知処理全体のシーケンスを示した図である。通知処理においてサービス用サーバ101が実行する各処理は、サービス用サーバ101のCPU200がメモリ(RAM201、二次記憶装置206)に記憶されたプログラム等を読み出して、実行することで実現される。通知処理において通知管理サーバ102が実行する各処理は、通知管理サーバ102のCPU200がメモリ(RAM201、二次記憶装置206)に記憶されたプログラム等を読み出して、実行することで実現される。通知処理において画像形成装置103が実行する各処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)に記憶されたプログラム等を読み出して、実行することで実現される。
【】
ステップS600では、サービス用サーバ101が、遠隔から画像形成装置103を操作するために、通知管理サーバ102に対してイベント通知の生成要求を行う。ここでは、サービス用サーバ101が表1に記載のイベント通知の生成要求行った場合を例に説明する。ステップS601では、通知管理サーバ102が、イベント通知の生成を行う。生成されたイベント通知は、イベント通知が持つ画像形成装置IDごとに、キュー形式で通知管理サーバ102内に保存される。通知管理サーバ102は、表1に記載のイベント通知の生成を行う。ステップS602では、通知管理サーバ102が、サービス用サーバ101に、イベント通知を生成した旨を通知する。
【】
ステップS603では、画像形成装置103内の通知実行アプリ502が、画像形成装置103内のイベント通知実行アプリケーション501に、通知管理サーバ102に対するポーリング頻度の変更を要求する。ポーリング頻度の変更を要求する実行アプリ502は、イベント通知実行アプリケーション501に、通知管理サーバ102に対するポーリング頻度を高頻度に変更するように要求する。ステップS604では、ステップS603でポーリング頻度の変更要求を行った通知実行アプリ502が、通知管理アプリ501に自身のアプリケーションIDを伝達する。ステップS605では、通知管理アプリ501が、通知管理サーバ102に高頻度で問い合わせを行うよう、高頻度ポーリングモードへの移行をする。
【】
ステップS606からステップS612は、ステップS605で移行した高頻度ポーリングモードが解除されるまで繰り返し行われる。ステップS606では、画像形成装置103内の通知管理アプリ501が、通知管理サーバ102に対して、画像形成装置103の画像形成装置IDに一致するイベント通知を全て送信するよう要求をする。
【】
ステップS607では、通知管理サーバ102の通知管理部402が、画像形成装置103に対してイベント通知を一括送信する。送信するイベント通知は、イベント通知の「画像形成装置ID」属性の値がステップS606でイベント通知の送信要求を行った画像形成装置103を示し、かつイベント通知の「ステータス」属性の値が“QUEUED”であるイベント通知全てである。画像形成装置103は、通知管理サーバ102からイベント通知を一括受信する。
【】
ステップS608からステップS611のステップは、ステップS607で一括取得したイベント通知の数だけ、イベント通知毎に繰り返し実行される。本実施形態の例では、表1に記載のイベント通知の数だけ、イベント通知毎にステップS608からステップS611のステップが繰り返し実行される。ステップS608では、画像形成装置103内の通知管理アプリ501が、ステップS607で受信したイベント通知の処理要求を通知実行アプリ502に対して行うか判断をする。通知管理アプリ501は、識別情報であるアプリケーションIDに基づいて、受信したイベント通知が対応優先度の高いイベント通知であるか判断する。対応優先度の高いイベント通知であると判断した場合にのみ、通知実行アプリ502にイベント通知の処理を要求し、対応優先度の高いイベント通知であると判断されなかった場合には、通知実行アプリ502にイベント通知の処理を要求しない。具体的には、通知管理アプリ501は、イベント通知の「アプリケーションID」属性の値と、ステップS604で取得した通知実行アプリ502のアプリケーションIDを照合することで、処理要求をするイベント通知を判断する。すなわち、通知管理アプリ501は、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDを有するイベント通知があるか否かを判断する。イベント通知のアプリケーションIDとステップS604で取得した通知実行アプリ502のアプリケーションIDが一致する場合、通知管理アプリ501は、対応優先度の高いイベント通知であると判断し通知実行アプリ502にイベント通知の処理要求を行う。一方、イベント通知のアプリケーションIDとステップS604で取得した通知実行アプリ502のアプリケーションIDが一致しない場合、通知管理アプリ501は、通知実行アプリ502に対してイベント通知の処理要求を行わない。
【】
以下では、イベント通知のアプリケーションIDとポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDが一致した場合の処理について説明する。ステップS609~ステップS612のステップは、ステップS608で照合したアプリケーションIDが同一のものであると判定された場合に実行される。ステップS609では、S608で通知管理アプリ501からイベント通知の処理要求を受けた通知実行アプリ502が、ステップS608で通知管理アプリ501から受信したイベント通知の処理を実行する。すなわち、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502が、受信したイベント通知の処理を実行する。また、イベント通知の処理を実行した通知実行アプリ502は、イベント通知の処理結果を通知管理アプリ501に伝達する。
【】
ステップS610は、ステップS609で処理したイベント通知が、サービス用サーバ101に対する高頻度ポーリングモードを終了させるものであった場合に実行される。ステップS610では、通知実行アプリ502が、通知管理アプリ501に対して、高頻度ポーリングモードを終了させる要求を行う。これにより、ステップS606からステップS611の繰り返し処理が終了する。
【】
ステップS611では、画像形成装置103内の通知管理アプリ501が、通知管理サーバ102に対してイベント通知の処理結果を送信する。ステップS612では、イベント通知サーバ内の通知管理部402が、ステップS611で受信したイベント通知の処理結果に基づいて、イベント通知の「ステータス」属性の値を更新する。例えば、ステップS611で、通知管理サーバ102がイベント通知の成功を示すレスポンスを受信した場合、イベント通知の「ステータス」属性の値を“ACCEPTED”に更新する。一方で、ステップS611で通知管理サーバ102がイベント通知の失敗を示すレスポンスを受信した場合、イベント通知の「ステータス」属性の値を“ERROR”に更新する。
【】
このように本処理では、ステップS608において、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDと一致するイベント通知のアプリケーションIDがある場合は、当該イベント通知の処理が行われる。一方、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDとアプリケーションIDが一致しないイベント通知は、通知管理アプリ501が通知実行アプリ502に処理要求が行われない。これにより、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDとアプリケーションIDが一致するイベント通知、すなわち優先度の高いイベント通知を優先して処理することできる。
【】
一方、優先度の高くないイベント通知は、優先度の高いイベント通知の処理が完了し、高頻度のポーリングモードが解除された後に実行される。優先度の高くないイベント通知は、ポーリング頻度を高頻度に変更するよう要求した通知実行アプリ502のアプリケーションIDとアプリケーションIDが一致しないイベント通知である。具体的には、ポーリングが高頻度である場合に対応優先度の高いイベント通知でないと判断されて画像形成装置103で処理されなかったイベント通知は、通知管理サーバ102においてイベント通知のステータスが“QUEUED”のまま維持されている。そのため、処理されなかったイベント通知は、ポーリングの高頻度が解除された後のポーリングにより再び通知管理サーバ102から画像形成装置103に通知され、通知実行アプリ502により処理される。
【】
図7および
図8は、第1実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
図7および
図8の各処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)から各ソフトウェアモジュールを実行するためのプログラムをRAM301に読み出し、実行することにより実現される。
【】
ステップS700では、通知実行アプリ502が、通知管理アプリ501に対して、通知管理サーバ102へのポーリング頻度を変更するための要求を行う。通知実行アプリ502が通知管理アプリ501に対して行うポーリング頻度の変更要求は、ポーリング頻度を高頻度に変更する要求である。ステップS700の処理は、
図6のステップS603の処理にあたる。
【】
ステップS701では、ポーリング頻度変更の要求元である通知実行アプリ502が、通知管理アプリ501に対して、自身を識別するために必要な識別情報であるアプリケーションIDを送信する。これにより、通知管理アプリ501は、ポーリング頻度を変更するよう要求した通知実行アプリ502のアプリケーションIDを取得することができる。通知管理アプリ501は、取得した通知実行アプリ502のアプリケーションIDをポーリングの頻度の変更要求により高頻度で行われたポーリングにより受信するイベント通知に含まれるアプリケーションを示す識別情報との比較に利用する。ステップS701の処理は、
図6のステップS604の処理にあたる。ステップS702では、通知管理アプリ501が、通知管理サーバ102に高頻度で問い合わせを行うよう、ポーリングモードを高頻度に変更する。これにより、画像形成装置103のポーリングモードが高頻度ポーリングモードに移行する。ステップS702の処理は、
図6のステップS605の処理にあたる。
【】
ステップS703では、通知管理アプリ501の高頻度ポーリングモードが解除されるまで、ステップS704からS711を繰り返し実行する。ステップS704では、通知管理アプリ501が、通知管理サーバ102にポーリングし、通知管理サーバ102からイベント通知を一括受信する。ここでは、通知管理アプリ501が、表1に記載のイベント通知を一括受信したものとする。ステップS701の処理は、
図6のステップS606およびステップS607の処理にあたる。
【】
ステップS705では、通知管理アプリ501と通知実行アプリ502が、ステップS706からステップS710までのステップを繰り返し行うことで、ステップS704で一括受信したイベント通知を一つずつ処理する。ステップS706では、通知管理アプリ501が、イベント通知の対応優先度が高いか、すなわち、イベント通知を処理するかどうか判定する。通知管理アプリ501は、対象のイベント通知に含まれる「アプリケーションID」属性の値と、ステップS701で取得した通知実行アプリ502のアプリケーションIDを照合することで、判定を行う。ステップS701で取得した通知実行アプリ502のアプリケーションID、すなわち高頻度ポーリングモードへの移行要求を行った通知実行アプリ502のアプリケーションIDを有するイベント通知は処理の優先度の高いイベント通知である。アプリケーションIDが一致する場合、通知管理アプリ501はステップS707の処理を行う。一方、アプリケーションIDが一致しない場合、通知管理アプリ501は対象のイベント通知を処理せず、通知管理アプリ501は、ステップS711の処理を行う。
【】
ステップS707では、通知管理アプリ501が、イベント通知が保持するアプリケーションIDに一致する通知実行アプリ502に対して、イベント通知の処理要求を行う。つまり、ステップS700で高頻度ポーリングモードへの移行を要求した通知実行アプリ502に対してのみ、通知管理アプリ501は、イベント通知の処理要求を行う。ステップS706およびステップS707の処理は、
図6のステップS608の処理にあたる。
【】
ステップS708では、通知実行アプリ502が、イベント通知の「ペイロード」属性の内容に沿った処理を実行する。例えば、画像形成装置103の設定値情報を画像形成装置103の外部に送信する指示がイベント通知の「ペイロード」属性の値に記載されていた場合、通知実行アプリ502は設定値管理部503に問い合わせを行うことで指示を実行する。その後通知実行アプリ502は、通知管理アプリ501に、イベント通知の処理結果を伝達する。ステップS708の処理は、
図6のステップS609の処理にあたる。
【】
通知実行アプリ502におけるイベント通知の処理が完了したことを契機に、すなわち、通知管理アプリ501が通知実行アプリ502からイベント通知の処理結果を受信すると、通知管理アプリ501がS709の処理を実行する。ステップS709では、通知管理アプリ501が、イベント通知の処理結果を通知管理サーバ102に送信する。例えば、イベント通知の処理が正常に行われた場合、通知管理アプリ501はイベント通知の処理成功を示すレスポンス(例:“ACCEPTED”)を通知管理サーバ102に送信する。一方でイベント通知の処理が失敗した場合、通知管理アプリ501はイベント通知の処理失敗を示すレスポンス(例:“ERROR”)を通知管理サーバ102に送信する。ステップS701の処理は、
図6のステップS611の処理にあたる。
【】
ステップS710では、通知実行アプリ502が、ステップS708で処理したイベント通知が高頻度ポーリングモードを解除するものであったかを判定を行う。通知実行アプリ502は、イベント通知の「ペイロード」属性の値を参照することで高頻度ポーリングモードを解除するイベント通知か否かの判定を行う。高頻度ポーリングモードを解除するイベント通知であった場合、通知実行アプリ502は通知管理アプリ501に対して、高頻度ポーリングモードを終了させる要求を行う。高頻度ポーリングモードを終了させる要求を受けた通知管理アプリ501は、ステップS705からステップS711までのステップの繰り返し処理を終了し、ステップS712の処理を行う。一方、高頻度ポーリングモードを終了させる要求を受けなかった場合は、通知管理アプリ501はステップS711の処理を行う。ステップS701の処理は、
図6のステップS610の処理にあたる。
【】
なお、本実施形態では、イベント通知が高頻度ポーリングモードを解除するものであるかの判定を通知実行アプリ502で行う例を説明したが、通知管理アプリ501が判定を行うようにしてもよい。この場合、通知管理アプリ501が、ステップS708で処理されたイベント通知が高頻度ポーリングモードを解除するものであったかどうか判定を行う。通知管理アプリ501は、イベント通知の「ペイロード」属性の値を参照することで高頻度ポーリングモードを解除するイベント通知か否かの判定を行う。高頻度ポーリングモードを解除するイベント通知であった場合、ステップS705からステップS711までのステップの繰り返し処理は終了する。一方、高頻度ポーリングモードを解除するイベント通知でなかった場合、通知管理アプリ501はステップS711の処理を行う。
【】
ステップS711では、ステップS704で一括取得したイベント通知で未処理のものがある場合、フローチャートはステップS705に戻る。一方、ステップS704で一括取得したイベント通知が全て処理された場合、フローチャートはステップS712に遷移し、ステップS705からステップS711のステップの繰り返し処理を終了する。
すなわち、通知管理アプリ501は、ステップS704で一括取得したイベント通知が全て処理したか否か判断する。通知管理アプリ501は、ステップS704で一括取得したイベント通知で未処理のものがあると判断した場合、再びステップS705の処理を行う。一方、通知管理アプリ501は、ステップS704で一括取得したイベント通知が全て処理したと判断した場合、ステップS705からステップS711のステップの繰り返し処理を終了し、ステップS712の処理を行う。
【】
ステップS712では、ステップS710にて高頻度ポーリングモードが解除されたと判定された場合、ステップS705からステップS711のステップの繰り返し処理が終了する。これにより、
図7および
図8のフローチャートは終了する。一方で、ステップS710にて高頻度ポーリングモードが解除されていないと判定された場合、フローチャートはステップS703に遷移し、画像形成装置103は改めて通知管理サーバ102からイベント通知を一括受信し、処理をする。すなわち、通知管理アプリ501は、高頻度ポーリングモードが解除されたか否かを判断する。通知管理アプリ501は、高頻度ポーリングモードが解除されていると判断した場合は、本処理を終了する。一方、高頻度ポーリングモードが解除されていないと判断した場合は、再びステップS703の処理を行う。
【】
本処理により、高頻度ポーリングモードへの移行を要求した通知実行アプリ502に対するイベント通知の処理を迅速に行うことが出来る処理フローが実現される。そのため、高頻度ポーリングモード中、画像形成装置103は対応優先度の高いイベント通知を迅速に処理することが可能となる。
【】
ここで、画像形成装置103が遠隔修理のイベント通知と、ファームウェア更新のイベント通知の両方を受信している場合を例に、イベント通知処理について説明する。遠隔修理のイベント通知は遠隔修理を受けるための通知であり、画像形成装置103は遠隔修理を必要とする状態、例えば故障状態である。修理が必要な状態である場合、画像形成装置103を利用できる状態に戻すために他の処理より修理に関する処理を優先して処理する必要がある。したがって、ファームウェア更新のイベント通知よりも遠隔修理のイベント通知を優先して処理する必要がある。このように、画像形成装置103は迅速に修理を行うため、ステップS600で遠隔修理サーバが生成要求を行った遠隔修理のイベント通知を優先的に処理する必要がある。一方で画像形成装置103は、修理が完了するまでの間、修理対応と関係のないステップS600でファームウェア更新サーバが生成要求を行ったファームウェア更新のイベント通知を処理する必要はない。
【】
遠隔修理のイベント通知は、画像形成装置103を遠隔から修理するためのサービス用サーバ101(以下、遠隔修理サーバと記載する)による通知である。ファームウェア更新のイベント通知は、画像形成装置103のファームウェアを更新するためのサービス用サーバ101(以下、ファームウェア更新サーバと記載する)による通知である。画像形成装置103には、ファームウェア更新サーバと遠隔修理サーバのそれぞれに対応する、異なるアプリケーションIDが割り当てられた通知実行アプリ502が用意されている。
【】
例えば、画像形成装置103の故障を検知すると、遠隔修理サーバに対応する通知実行アプリ502は、ステップS603で通知管理アプリ501にポーリングを高頻度に変更するよう通知管理アプリ501に要求する。そして、遠隔修理サーバに対応する通知実行アプリ502は、ステップS604で通知管理アプリ501に自身のアプリケーションIDを伝達し、通知管理アプリ501を高頻度ポーリングモードに移行させる。遠隔修理サーバ由来のイベント通知は、ステップS608でアプリケーションIDに基づいて処理対象と判定されるため、遠隔修理サーバに対応する通知実行アプリ502によって処理されるようになる。
【】
一方で、ファームウェア更新サーバに対応する通知実行アプリ502は、通知管理アプリ501に自身のアプリケーションIDを伝達していない。そのため、ファームウェア更新サーバ由来のイベント通知は、ステップS608で処理対象と判断されず、ステップS612におけるステータスの更新も行われない。そのため、通知管理サーバ102におけるファームウェア更新サーバ由来のイベント通知のステータスは“QUEUED”を維持する。つまり、ファームウェア更新サーバ由来のイベント通知は次回のポーリングの際に再送され、高頻度ポーリングモード終了後に初めて対応する通知実行アプリ502によって処理される。これにより画像形成装置103は、高頻度ポーリングモード中は、対応優先度の高い遠隔修理サーバ由来のイベント通知を迅速に処理し、対応優先度の低いファームウェア更新サーバ由来のイベント通知の処理を見送ることができるようになる。
【】
以上説明したように、本実施形態によると、高頻度ポーリングモードへの移行を要求した通知実行アプリ502に対応するイベント通知を優先度の高いイベント通知として迅速に処理することが可能となる。これにより、高頻度ポーリングモード中、画像形成装置103は対応優先度の高いイベント通知を迅速に処理し、優先度の高くないイベント通知については優先度の高いイベント通知の処理が完了して高頻度ポーリングモード解除後に処理することができる。
【】
(第2実施形態)
第1実施形態では、高頻度ポーリングモード中、通知管理アプリ501がアプリケーションIDに基づいてイベント通知の処理を実行するかを判断する。そのため、1つの通知実行アプリ502が複数の異なる目的のイベント通知を処理する場合、対応優先度の高いイベント通知が迅速に処理されなくなる可能性が考えられる。例えば、ある1つの通知実行アプリ502が、遠隔から画像形成装置103の修理対応を行うためのイベント通知と、画像形成装置103のファームウェアを更新するためのイベント通知の双方を処理すると仮定する。この場合、画像形成装置103の利用者の業務を停止させないためにも、画像形成装置103は、遠隔から画像形成装置103の修理対応を行うためのイベント通知を最優先で処理する必要がある。しかしながら、修理対応目的のイベント通知とファームウェア更新のためのイベント通知を同時に受信し、通知管理アプリ501でファームウェア更新のためのイベント通知が先に処理される場合、修理目的のイベント通知の処理が後回しにされてしまう。そこで、第2実施形態では、通知管理アプリ501側だけでなく、通知実行アプリ502でもイベント通知の処理の判断を行う。
【】
通知実行アプリ502において、イベント通知の対応優先度の高さを判定できるようにするために、本実施形態の通知管理サーバ102は、イベント通知を生成する際に、イベント通知にイベント通知の対応優先度の高さを判定できる値を含める。例えば、通知管理サーバ102は、サービス用サーバ101からの指示に応じて、イベント通知の「ペイロード」属性の値に対応優先度の高さを示すフラグ情報を含める。対応優先度が高いイベント通知の「ペイロード」属性にはTRUEのフラグを付与し、対応優先度が高くないイベント通知の「ペイロード」属性にはFALSEのフラグを付与する。そして、本実施形態の通知実行アプリ502は、処理を要求されたイベント通知に含まれる処理の対応優先度の高さを示すフラグ情報に基づいて、イベント通知が処理対象であるか判定する。
【】
図9は、第2実施形態における通知処理全体のシーケンスを示した図である。ステップS800からステップS808の処理は、第1実施形態のステップS600からステップS608の処理とそれぞれ同様である。また、ステップS810からステップS813の処理は、第1実施形態のステップS609からステップS612の処理とそれぞれ同様である。ここでは、第1実施形態との差異であるステップS809について説明する。画像形成装置103が実行するS809の処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)に記憶されたプログラム等を読み出して、実行することで実現される。
【】
ステップS809は、通知管理アプリ501により、ポーリングモードの変更要求を行った通知実行アプリ502のアプリケーションIDと通知管理サーバ102から受信したイベント通知のアプリケーションIDが一致すると判断された場合に実行される。S808でアプリケーションIDが一致する場合、通知管理アプリ501は、ポーリングモードの変更要求を行った通知実行アプリ502にアプリケーションIDが一致するイベント通知の処理を要求する。
【】
ステップS809では、通知実行アプリ502が、イベント通知の「ペイロード」属性の値を参照することで、そのイベント通知を処理するか否かを判断する。通知実行アプリ502は、「ペイロード」属性の値に基づいて処理対象であると判定した場合、ステップS810の処理を行う。ステップS810では、通知実行アプリ502はイベント通知を処理する。一方、通知実行アプリ502は、「ペイロード」属性の値に基づいて処理対象でないと判定された場合、ステップS808の処理に戻る。ステップS808では、通知管理アプリ501が次のイベント通知の処理判断を行う。
【】
図10および
図11は、第2実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
図10および
図11の各処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)から各ソフトウェアモジュールを実行するためのプログラムをRAM301に読み出し、実行することにより実現される。
【】
ステップS900からステップS907は、第1実施形態のステップS700からS707とそれぞれ同様である。ステップS909からステップS913は、第1実施形態のステップS708からS712とそれぞれ同様である。ここでは、第1実施形態との差異であるステップS908について説明する。通知管理アプリ501により、S907で、高頻度ポーリングモードを要求した通知実行アプリ502にアプリケーションIDが一致するイベント通知の処理要求がされると、当該通知実行アプリ502は、ステップS908の処理を行う。
【】
S908では、通知実行アプリ502が、処理要求を受けたイベント通知の「ペイロード」属性の値を参照して、イベント通知を処理するか判断する。通知実行アプリ502は、「ペイロード」属性の値に含まれる対応優先度の高さを示すフラグ情報を参照し、フラグ情報が高い対応優先度を示す値であるTRUEの場合はステップS909の処理を行う。ステップS909では、通知実行アプリ502が、イベント通知の処理を行う。一方、「ペイロード」属性の値に含まれる対応優先度の高さを示すフラグ情報を参照し、フラグが高くない対応優先度を示す値であるFALSEの場合、通知実行アプリ502はそのイベント通知を処理せず、ステップS912の処理を行う。すなわち、通知実行アプリ502は、「ペイロード」属性の値に含まれるフラグ情報が高い対応優先度を示す値であるTRUEでない場合には、通知実行アプリ502はそのイベント通知を処理せず、ステップS912の処理を行う。
【】
以上説明したように、本実施形態によると、通知実行アプリ502においても、イベント通知を処理するかどうかの判断を行うことができるようになる。これにより、通知実行アプリ502が異なる複数種類のイベント通知を処理する場合でも、画像形成装置103の状況に応じて、適切に対応優先度の高いイベント通知の処理をすることが可能となる。
【】
(第3実施形態)
第1実施形態と第2実施形態では、通知管理サーバ102が管理するイベント通知に有効期限が設定されているため、画像形成装置103内でイベント通知の処理が見送られた結果、イベント通知の有効期限が経過してしまうケースが考えられる。この場合、有効期限を超過したイベント通知は通知管理サーバ102内から削除されてしまうため、高頻度ポーリングモード終了後にイベント通知を行うことができなくなる。そのため、当該イベント通知の生成を依頼したサービス用サーバ101の要求に応えることができなくなる。そこで、第3実施形態では、画像形成装置103が高頻度ポーリングモード中である際に処理が見送られたイベント通知を画像形成装置103に再度通知を行えるように管理を行う。そのため、本実施形態では、画像形成装置103が高頻度ポーリングモード中に限り、処理が見送られたイベント通知の有効期限を通知管理サーバ102が延長することができる形態を提供する。
【】
図12は、第3実施形態におけるにおける通知処理全体のシーケンスを示した図である。ステップS1000からステップS1011の処理は、第2実施形態におけるステップS800からステップS811の処理とそれぞれ同様である。ここでは、第2実施形態との差異であるステップS1012~ステップS1014の処理について説明する。通知管理サーバ102が実行するステップS1013およびステップS1014の処理は、通知管理サーバ102のCPU200がメモリ(RAM201、二次記憶装置206)に記憶されたプログラム等を読み出して、実行することで実現される。画像形成装置103が実行するステップS1012の処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)に記憶されたプログラム等を読み出して、実行することで実現される。
【】
ステップS1010で、対応優先度の高いイベント通知を処理した通知実行アプリ502は、処理結果を通知管理アプリ501に伝達する。イベント通知の処理結果を受け取った通知管理アプリ501は、ステップS1012の処理を行う。また、ステップS1008またはステップS1009でイベント通知が処理対象として判定されなかった場合にも、通知管理アプリ501は、ステップS1012の処理を行う。
【】
ステップS1012では、画像形成装置103内の通知管理アプリ501が、通知管理サーバ102に対して、イベント通知の処理のレスポンスを送信する。イベント通知がステップS1010で処理された場合、通知管理アプリ501は、当該イベント通知の処理結果を示すレスポンスを通知管理サーバ102に送信する。また、イベント通知がステップS1008またはステップS1009で処理対象として判定されなかった場合、通知管理アプリ501は、当該イベント通知の処理が見送られたことを示すレスポンスを通知管理サーバ102に送信する。例えば、通知管理アプリ501はイベント通知の処理が見送られたことを示すレスポンスとして“PENDING”を送信する。すなわち、通知管理アプリ501は通知管理サーバ102に対して、対応優先度が高いイベント通知については当該イベント通知の処理結果を通知し、対応優先度が高くないイベント通知については当該イベント通知の処理が見送られたことを通知する。
【】
ステップS1013では、通知管理サーバ102内の通知管理部402が、イベント通知の有効期限の調整を行う。ステップS1012で受信したレスポンスがイベント通知の処理結果を示す内容であった場合、通知管理部402は、イベント通知の「有効期限」属性の値を更新しない。一方で、ステップS1012で受信したレスポンスがイベント通知の処理が見送られたことを示す内容であった場合、通知管理部402はイベント通知の「有効期限」属性の値を更新する。例えば、通知管理部402は、現在時刻とイベント通知の「更新日時」属性の値の差分を「有効期限」属性の値に加算することで、イベント通知の「有効期限」属性の値の更新処理を行う。したがって、ステップS1013のイベント通知の有効期限の調整は、画像形成装置103の通知実行アプリ502においてイベント通知の処理が実施されなかった場合に行われる。
【】
ステップS1014では、通知管理サーバ102内の通知管理部402が、イベント通知のステータス更新を行う。S1013でイベント通知の「有効期限」属性の値が更新された場合、通知管理部402は「ステータス」属性の値を更新しない。つまり、イベント通知の「ステータス」属性の値は“QUEUED”を維持し、当該イベント通知は、次回画像形成装置103からポーリングがあった際に、画像形成装置103内の通知管理アプリ501に再度送信される。それ以外の場合は、S813と同様の方法で、ベント通知管理部402は「ステータス」属性の値を更新する。
【】
図13および
図14は、第3実施形態における画像形成装置103内でのイベント通知処理を説明するフローチャートである。
図13および
図14の各処理は、画像形成装置103のCPU300がメモリ(ROM302、二次記憶装置308)から各ソフトウェアモジュールを実行するためのプログラムをRAM301に読み出し、実行することにより実現される。ステップS1100からステップS1109の処理は、第2実施形態のステップ900からステップ909の処理と、それぞれ同様である。また、ステップS1111からステップS1113の処理は、第2実施形態のステップ911からステップS913の処理とそれぞれ同時である。ここでは、第2実施形態の差異であるステップS1110の処理について説明する。
【】
ステップS1110では、通知管理アプリ501が、通知管理サーバ102に対して、イベント通知の処理のレスポンスを送信する。イベント通知がステップS1109で処理された場合、通知管理アプリ501は通知管理サーバ102に対してステップS910と同様の方法で、イベント通知の処理結果を送信する。一方で、イベント通知の処理がS1106もしくはS1108で見送られた場合、通知管理アプリ501は、イベント通知の処理が見送られたことを示すレスポンスを通知管理サーバ102に対して送信する。したがって、イベント通知の処理が正常に行われた場合、通知管理アプリ501はイベント通知の処理成功を示すレスポンスの値として“ACCEPTED”を通知管理サーバ102に送信する。一方でイベント通知の処理が失敗した場合、通知管理アプリ501はイベント通知の処理失敗を示すレスポンスの値として“ERROR”を通知管理サーバ102に送信する。イベント通知の処理が見送られた場合、通知管理アプリ501はイベント通知の処理が見送られたことを示すレスポンスの値として“PENDING”を通知管理サーバ102に送信する。レスポンスを受信した通知管理サーバ102は、レスポンスの値に基づいてイベント通知の処理が実行されたか否かと実行された場合の結果を認識することができる。レスポンスの値として“PENDING”を受信した場合、通知管理サーバ102は当該イベント通知の処理が見送られたこと認識することができ、ステップS1013でイベント通知の有効期限の調整を行うことが可能となる。
【】
以上説明したように、本実施形態によると、通知管理サーバ102は、画像形成装置103において処理がされなかった対応優先度が高くないイベント通知の有効期限を延長する調整することができる。これによりイベント通知は、処理が見送られたことによる有効期限切れ、また有効期限切れによる自動削除を回避することが可能となる。そして、高頻度ポーリングモードが解除された後の画像形成装置103からのポーリングに応じて、有効期限を延長したイベント通知を再度画像形成装置103に通知することが可能となる。本実施形態により、対応優先度が高くないイベント通知の生成要求を行ったサービス用サーバ101の要求に応えることが可能となる。
【】
本実施形態の開示は、以下のシステムの構成を含む。
(構成1)
サービスに対応するアプリケーションを有する画像形成装置と、前記サービスからの前記画像形成装置に対するイベント通知を管理する通知管理サーバとを含むシステムであって、
前記画像形成装置は、
ポーリングにより前記通知管理サーバに対してイベント通知要求を行い、前記通知管理サーバから前記画像形成装置に対するイベント通知を一括で受信する受信部と、
前記ポーリングが高頻度である場合に、受信した前記イベント通知が対応優先度の高いイベント通知であるか判断し、対応優先度の高いイベント通知である場合に前記イベント通知に対応するアプリケーションに前記イベント通知の処理を要求し、対応優先度の高いイベント通知でない場合には前記イベント通知の処理を要求しない通知管理処理を行う通知管理部と、
前記イベント通知の処理の要求を受けた場合に、前記イベント通知の処理を実行するアプリケーションと、を有し、
前記通知管理部は、前記イベント通知に含まれる該イベント通知の処理を行うアプリケーションを示す識別情報と、前記ポーリングの頻度の変更要求を行ったアプリケーションを示す識別情報が一致する場合に、前記イベント通知が対応優先度の高いイベント通知であると判断することを特徴とするシステム。
(構成2)
前記ポーリングの頻度の変更要求は、ポーリングの頻度を高頻度にする変更要求であり、
前記アプリケーションは、前記通知管理部に対してポーリングの頻度の変更要求を行った場合、前記通知管理部に前記アプリケーションの識別情報を送信し、
前記通知管理部は、前記アプリケーションから前記ポーリングの頻度の変更要求を受け付けた場合に該アプリケーションの識別情報を取得し、前記ポーリングの頻度の変更要求により高頻度で行われたポーリングにより受信するイベント通知に含まれる前記アプリケーションを示す識別情報との比較に利用することを特徴とする構成1に記載のシステム。
(構成3)
前記アプリケーションは、前記通知管理部から処理を要求された前記イベント通知に含まれる処理の対応優先度の高さを示すフラグ情報に基づいて、前記イベント通知が処理対象であるか判定し、前記フラグ情報が高い対応優先度を示す値である場合に前記イベント通知の処理を行い、前記フラグ情報が高い対応優先度を示す値でない場合には前記イベント通知の処理を行わないことを特徴とする構成1乃至3のいずれかに記載のシステム。
(構成4)
前記通知管理サーバは、
前記サービスからの要求に応じて画像形成装置に対するイベント通知を生成する生成部と、
生成した前記イベント通知を管理する管理部と、
前記画像形成装置からのポーリングによるイベント通知要求に対して前記イベント通知を画像形成装置に通知する通知部と、と有し、
前記画像形成装置の前記通知管理部は、前記アプリケーションにおけるイベント通知の処理の結果を前記通知管理サーバに送信し、
前記管理部は、前記イベント通知のステータスおよび有効期限を管理することを特徴とする構成1乃至4のいずれかに記載のシステム。
(構成5)
前記ポーリングが高頻度である場合に対応優先度の高いイベント通知でないと判断されて処理されなかったイベント通知は、前記ポーリングの高頻度が解除された後のポーリングにより再び前記通知管理サーバから前記画像形成装置に通知され、前記画像形成装置の前記アプリケーションにより処理されることを特徴とすることを特徴とする構成4に記載のシステム。
(構成6)
前記画像形成装置の前記通知管理部は、イベント通知の処理が行われなかった場合には、イベント通知の処理が行われなかったことを示すレスポンスを前記通知管理サーバに送信し、
前記管理部は、前記画像形成装置において処理が行われなかったイベント通知の有効期限を延長することを特徴とする構成4または5に記載のシステム。
【】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】
【図】