(58)【調査した分野】(Int.Cl.,DB名)
ネットワークに結合された画像形成装置と、アクセスポイントを介して前記ネットワークに結合され、前記画像形成装置に印刷ジョブを送信して印刷を行わせるモバイル端末と、前記ネットワークに結合されたプロバイダーと、前記ネットワークに結合されたプッシュ通知サーバーとを備えたプッシュ通知システムであって、
前記画像形成装置は、
状態種別コードが含まれた状態コードと該状態コードに対応した関連情報とを含み、前記状態種別コードが印刷ジョブ状態を示す場合には前記印刷ジョブに含まれる前記モバイル端末のデバイストークンを更に含む第1イベントメッセージを生成し、
生成した前記第1イベントメッセージを前記プロバイダーに送信し、
前記プロバイダーは、
前記モバイル端末から送信された購読登録要求に応答して、前記購読登録要求に含まれる状態種別コードとデバイストークンを含むレコードを購読テーブルに登録し、
前記画像形成装置から送信された前記第1イベントメッセージに前記デバイストークンが含まれていなければ、前記購読テーブルに登録されている、前記第1イベントメッセージの前記状態コードの前記状態種別コードと一致する前記レコードの前記デバイストークンと、前記第1イベントメッセージの前記状態コードと、前記第1イベントメッセージの前記関連情報とを含む第2イベントメッセージを生成し、
前記画像形成装置から送信された前記第1イベントメッセージに前記デバイストークンが含まれていれば、前記購読テーブルに登録されている、前記第1イベントメッセージの前記状態コードの前記状態種別コードと前記第1イベントメッセージの前記デバイストークンと一致する前記レコードの前記デバイストークンと、前記第1イベントメッセージの前記状態コードと、前記第1イベントメッセージの前記関連情報とを含む第2イベントメッセージを生成し、
生成した前記第2イベントメッセージを前記プッシュ通知サーバーに送信し、
前記プッシュ通知サーバーは、
前記プロバイダーから送信された前記第2イベントメッセージに含まれる前記デバイストークンに対応した前記モバイル端末に前記第2イベントメッセージを送信する
ことを特徴とするプッシュ通知システム。
【実施例1】
【0013】
図1は、本発明の実施例1に係るプッシュ通知システムを示す概略ブロック図である。
【0014】
このシステムでは、N台のPC(パーソナルコンピュータ)10−1〜10−Nと、これらで使用される画像形成装置20とが、LAN(ローカルエリアネットワーク)30で結合されている。WS−Eventingに従って購読登録しておき、PC10−1〜10−Nの任意の装置から印刷対象のファイルと画像形成装置20とを指定して、このファイルの内容を画像形成装置20で印刷させ、画像形成装置20に関する状態(印刷ジョブ状態を含む)に変化があればこれを、WS−Eventingに従って購読登録した装置のステータスモニタにイベントメッセージをプッシュ通知する。これにより、そのモニタウインドで状態を確認することができる。
【0015】
LAN30にはまた、アクセスポイント31を介してモバイル端末32が結合され、モバイル端末32からも上記同様に画像形成装置20で印刷を行わせることができる。画像形成装置20に関する状態の変化をモバイル端末32にプッシュ通知可能にするため、LAN30にプロバイダー40が結合され、画像形成装置20からインターネット41を介してプッシュ通知サーバー42にプッシュ通知を要求することにより、プッシュ通知サーバー42がモバイル端末32にプッシュ通知するように構成している。
【0016】
以下においては、モバイル端末32がiPhoneで、プッシュ通知サーバー42がAPNSである場合を説明するが、本案は他の同様のシステムに適用してもよい。
【0017】
図2は、
図1のプロバイダー40と画像形成装置20とのハードウェア構成を示す概略ブロック図である。
【0018】
画像形成装置20では、CPU201がインターフェイス202を介してPROM203、DRAM204、ネットワークインターフェイス205、補助記憶装置206、操作パネル207、スキャナ208、プリンタ209及びファックスモデム210に結合されている。
図2では、簡単化の為に、複数種のインターフェイスを1つのブロック202で表している。
【0019】
PROM203には、BIOS(基本入出力システム)、OS(オペレーティングシステム)、各種ドライバ、及び、画像形成装置として機能させるための各種アプリケーションが格納されている。該アプリケーションには、
図3に示す画像形成装置20内のプッシュ通知に関する構成が含まれる。DRAM204は、主記憶装置として用いられる。補助記憶装置206には、印刷用データ、スキャナ208で読み取った画像データ、後述の補助ファイル、及びファクシミリ受信データが保存される。ネットワークインターフェイス205は、LAN30に結合されている。操作パネル207は、入力部及び表示部を供えている。スキャナ208は、画像ファイル生成のために用いられ、このファイルは印刷、ファクシミリ送信又はファイル送信のために用いられる。プリンタ209は、プリントエンジン並びに用紙の給紙部、搬送部及び排紙部を備えている。
【0020】
プロバイダー40では、CPU401がインターフェイス402を介してPROM403、DRAM404、ネットワークインターフェイス405及び補助記憶装置406に結合されている。
図2では、簡単化の為に、複数種のインターフェイスを1つのブロック402で表している。
【0021】
PROM403は、例えばフラッシュメモリであり、これにBIOSが格納されている。DRAM404は、主記憶装置として用いられる。ネットワークインターフェイス405は、LAN30に結合されている。補助記憶装置406には、OS、各種ドライバ及びアプリケーション並びにデータが格納されている。該アプリケーションには、
図3に示すプロバイダー40内のプッシュ通知に関するものが含まれる。
【0022】
図3は、
図2のシステムの概略機能ブロック図である。
【0023】
プロバイダー40において、購読部50は、OSの起動時、すなわち、OSが起動して購読部50が動作可能になった時、又は、指示入力、例えば管理者の操作により、起動され、予め定められた購読登録要求情報を、SOAP処理部51を介しXMLシリアライズしてSOAPリクエストメッセージとし、通信部52内のHTTP/TCP/IPプロトコルスタック及びLAN30を介し画像形成装置20に送信する。このメッセージは、画像形成装置20の通信部60内のHTTP/TCP/IPプロトコルスタックを介しSOAP処理部61に供給されてXMLデシリアライズされ、購読登録要求オブジェクトとしてイベントソース62の購読マネージャ購読マネージャ620に供給される。購読マネージャ購読マネージャ620は、このオブジェクトに基づき、PC10−1〜10−Nからの購読登録要求と同様にして、購読テーブル621に購読登録する。
【0024】
上記SOAPリクエストメッセージには、ReplyToアドレス(購読部50のアドレス)と、NotifyToアドレス(イベントシンク53のアドレス)と、要求先のIPアドレスを含むToアドレス(購読マネージャ購読マネージャ620のアドレス)と、Filter要素としての状態種別コード(状態種別ID)とが含まれている。この状態種別コード(上記購読登録要求情報に含まれる状態種別コード)は、全状態を示すコードである。
【0025】
状態の変化でイベントが発生するので、状態種別は、イベント種別でもある。
【0026】
図4(A)は、購読テーブル621の構成例を示す。購読マネージャ620は、ユニークな購読IDを生成し、これと、上記購読登録要求オブジェクトに含まれている状態種別コード及びNotifyToのIPアドレスと、現時刻に所定値を加算した期限(通知が有効な期限)とを含むレコードを購読テーブル621に追加することにより、購読登録する。
【0027】
図4(B)及び(C)はそれぞれ、状態種別テーブル及び状態テーブルを示す。この例では、状態コードは4桁であり、その上位2桁が状態種別コードとなっている。例えば、
図4(C)の状態コード0100〜0104は状態種別が
図4(B)のジョブ状態であり、同様に、状態コード0200〜0203は状態種別がトナー残量であることを示している。上記全状態は*で表される。
【0028】
画像形成装置本体部63でイベントが発生すると、その引数(EventArgs)を伴って通知マネージャ622が呼び出される。通知マネージャ622はこれに応答して、購読テーブル621を検索し、後述の通知処理を行う。
【0029】
図5は、画像形成装置本体部63での印刷ジョブの処理と通知マネージャ622との関係を示す機能ブロック図である。
【0030】
通信部60から受け取った印刷ジョブデータは、
図2のDRAM404に一時保存される。このデータには、ジョブデータ本体部に、ジョブID及び通知先IDが含まれている。
【0031】
通知先IDは、通知先がPC10−1〜10−Nのいずれか場合、そのIPアドレスであって、そのプリンタドライバで付加されたものであり、通知先がモバイル端末32の場合、プッシュ通知サーバー42のIPアドレスとモバイル端末32のデバイストークンとの組であって、モバイル端末32内の印刷アプリケーションにより印刷対象のファイルに付加されたものである。
【0032】
印刷処理部71は、印刷ジョブ状態の変化時である処理開始時、印刷停止時、印刷一時停止時、印刷再開時、印刷した用紙の排出時(印刷頁変化時)及び印刷終了時のそれぞれ時点において、イベントジェネレータ72を呼び出す。イベントジェネレータ72は、このようなジョブ状態の変化の場合、
図5(C)に示す状態コード0100〜0104のうち対応したものと、上記通知先IDと、ジョブIDと、必要な関連情報(印刷頁変化時はその頁の値/全頁)とを含む引数(EventArgs)73を伴って、イベントハンドラとしての通知マネージャ622を呼び出す。
【0033】
イベントジェネレータ72は、他の状態(ジョブ状態以外)の変化の場合、その変化を示す状態コードと、関連情報(例えば、トナー残量%又は給紙カセット内用紙残量%など)とを含むイベント引数73を伴って、通知マネージャ622を呼び出す。
【0034】
通知マネージャ622は、これらのそれぞれの呼び出しに応答して、
図6に示す処理を開始する。以下、括弧内は図中のステップ識別符号である。
【0035】
(ST0)引数73の状態コードがジョブ状態以外を示していれば(ジョブ状態に属さなければ)、すなわち上位2桁の状態種別コードが"01"以外であれば、ステップST1へ進み、ジョブ状態であることを示していれば、ステップST2へ進む。
【0036】
(ST1)この状態種別コードをキーとして、
図4(A)の購読テーブル621を検索し、ヒットした各行について(「全状態」の行はヒット)、現時刻がこの行の期限内であれば、そのIPアドレスを宛先としてイベント情報(状態コード、関連情報)を通知する。すなわちSOAP処理部61を介してこのイベント情報を含むXML形式のSOAPメッセージを生成し、通信部60のHTTP/TCP/IPプロトコルスタックを介して宛先に送信する。次いで
図6の処理を終了する。
【0037】
(ST2)イベント引数73の通知先IDにデバイストークンが含まれていればステップST3へ進み、そうでなければステップST4へ進む。
【0038】
(ST3)このデバイストークンをイベント通知内容に含める。
【0039】
(ST4)イベント引数73の状態コードの上位2桁(状態種別コード)とイベント引数73の通知先IDに含まれるIPアドレスとの組をキーとして、
図4(A)の購読テーブル621を検索し、現時刻が、ヒットした行(「全状態」の行はIPアドレスが一致すればヒット)の期限内であれば、そのIPアドレスを宛先としてイベント情報(状態コード、ジョブID、デバイストークン、関連情報)を通知し、
図7の処理を終了する。
【0040】
通知先がプロバイダー40である場合、SOAPメッセージが通信部52のHTTP/TCP/IPプロトコルスタックを介しSOAP処理部51に伝達されて、XMLデシリアライズされ、そのイベント情報オブジェクトがイベントシンク53に供給される。
【0041】
イベントシンク53はこれに応答して、状態記憶部54内の対応する状態をイベント情報で更新する。
【0042】
状態記憶部54は、ジョブ状態に関し
図10(A)に示すようなテーブルを備えており、イベントシンク53は、状態コードがジョブ状態のコードである場合、このテーブル上の、上記イベント情報に含まれるジョブIDを含む行の「状態」(状態コードが印刷頁数でない場合)を、状態コードで更新し、又は、印刷頁数(状態コードが印刷頁数の場合)を該イベント情報に含まれる印刷頁数で更新する。イベントシンク53は、状態コードがジョブ状態以外のコードである場合、状態記憶部54内の状態コードに対応したアドレスに、関連情報の値を書き込むことにより状態を更新する。
【0043】
イベントシンク53はまた、受信した内容(イベントメッセージ)を引数として通知マネージャ84を呼び出す。
【0044】
通知マネージャ84はこれに応答して、
図7に示す処理を開始する。
【0045】
(ST10)該引数の状態コードの上位2桁である状態種別コードが、ジョブ状態であることを示していれば、すなわち上位2桁の状態種別コードが"01"であれば(換言すれば、イベントメッセージにデバイストークンが含まれていれば)、ステップST11へ進み、そうでなければ、ステップST13へ進む。
【0046】
(ST11)該状態種別コードと該引数のデバイストークンとの組をキーとして、後述のように作成される
図8の購読テーブル83を検索し、現時刻が、ヒットした行の期限内であれば、このデバイストークンと、該引数の状態コード及び関連情報とを含む所定形式のメッセージオブジェクトを生成する。
【0047】
(ST12)該メッセージオブジェクトを引数としてJSON(JavaScript(登録商標) Object Notation)処理部81を呼び出すことにより、このオブジェクトをJSON形式に変換し、それを、通信部80内のHTTP/SSL/TCP/IPプロトコルスタックを介しプッシュ通知サーバー42に送信して、
図7の処理を終了する。
【0048】
(ST13)該状態種別コードをキーとして、
図7の購読テーブル83を検索し、ヒットした各行について、現時刻がこの行の期限内であれば、この行のデバイストークンと、該引数の状態コード及び関連情報とを含む所定形式のオブジェクトを生成し、ステップステップST12へ進む。
【0049】
図9は、
図1に示すシステムの動作を示す概略シーケンス図である。
【0050】
(S0)ユーザ75は、モバイル端末32を操作してステータスモニタ(アプリケーション)をインストールする。
【0051】
(S1)ユーザ75は、インストールされたステータスモニタのアイコンをタッチしてこれを起動させる。
【0052】
(S2)このステータスモニタは、ユーザに設定画面を表示させ、ユーザはプッシュ通知対象の状態種別コードや、通知時の表示方法、通知時に音声を鳴らすか否か等の選択設定を行う。
【0053】
(S3)ユーザの操作によりこの設定が確定すると、ステータスモニタはプッシュ通知サーバー42に対し、通知登録を要求する。
【0054】
(S4)プッシュ通知サーバー42は、UUID(Universally Unique Identifier)であるデバイストークンを生成し、これとモバイル端末32のアドレスとを対応付けて登録を行う。
【0055】
(S5)プッシュ通知サーバー42は、このデバイストークンをモバイル端末32に返信する。
【0056】
(S6)ステータスモニタは、このデバイストークンを、ステップS2での状態種別コードとともにプロバイダー40へ送信して、購読登録要求する。
【0057】
(S7)この要求は
図3において、通信部80及びJSON処理部81を介して購読マネージャ82に通知され、購読マネージャ82は
図8に示すような購読テーブル83に、状態種別コードとデバイストークンと、現時刻に所定期間を加算した期限とを含むレコードを追加登録する。状態種別コードが複数ある場合には、それぞれに対応したレコードを追加登録する。
【0058】
(S8)購読マネージャ82はさらに、このデバイストークンを指定して通知マネージャ84に、状態記憶部54の内容に基づく(状態記憶部54に記憶されている各状態をその状態に変化したイベントメッセージの受信と見なす)イベント通知要求を行う。
【0059】
通知マネージャ84はこれに応答して、すなわち、通知マネージャ84は、購読マネージャ82が上記追加登録を行ったことに応答して、このデバイストークンをキーとして購読テーブル83を検索し、ヒットしたそれぞれの行(但し、この段階では、ジョブ状態の行を除く)について、その状態種別コードを持つ状態記憶部54内の各状態コード(アドレス)とその値の組をキーとキー値として読み出し、この組にデバイストークンを付加したものを所定形式のメッセージオブジェクトにし、これを引数としてJSON処理部81を呼び出すことにより、このオブジェクトをJSON形式に変換し、それを、通信部80内のHTTP/SSL/TCP/IPプロトコルスタックを介しプッシュ通知サーバー42に送信する。すなわち、状態記憶部54に記憶されている各状態をその状態に変化したイベントメッセージの受信と見なして、これに対応するメッセージを生成しプッシュ通知サーバー42へ送信する。
【0060】
(S10)プッシュ通知サーバー42はこれに応答して、このデバイストークンに対応したアドレスのモバイル端末32に対し、受信したジェイソン形式のメッセージをプッシュ通知する。
【0061】
(S11)モバイル端末32では、このメッセージを受け取ると、対応するアプリケーション(上記ステータスモニタ)を起動し、ステップS2での設定に従って、通知をポップアップ表示する。ステータスモニタは、状態記憶部54と同様の状態記憶部を有し、プッシュ通知メッセージに基づきイベントシンク53と同様にしてこの内容を更新する。
【0062】
ユーザ75は、この状態記憶部の内容に対応した後述の
図10(B)、(C)に示すような表示を見て、画像形成装置20で印刷可能であることを確認し、印刷アプリケーションを起動し、このアプリケーションで、印刷対象のファイル及び画像形成装置20を指定して、iOSを介し印刷要求する。このアプリケーションは、該印刷要求の前に、UUIDのジョブIDを生成し、印刷対象のファイルの内容にこれと、該デバイストークンとを付加する。
【0063】
画像形成装置20は、受信したファイルをスプールし、順に印刷する。
【0064】
(S13)印刷を開始すると、
図5において印刷処理部71がイベントジェネレータ72を呼び出すことにより印刷開始イベントが発生し、通知マネージャ622が呼び出される。
【0065】
(S14)通知マネージャ622はこれに応答して、上記のようにしてイベント通知処理を行う。これにより、この通知が
図3においてSOAP処理部61、通信部60、通信部52及びSOAP処理部51を介してイベントシンク53に伝達される。
【0066】
(S15)イベントシンク53はこれに応答して、上記のように、状態記憶部54内の対応する状態をイベント情報で更新すると共に、受信内容を引数として通知マネージャ84を呼び出す。
【0067】
(S16)通知マネージャ84により、
図7の上記処理が行われて、プッシュ通知サーバー42にJSON形式のメッセージが通知される。
【0068】
(S17)プッシュ通知サーバー42は、上記ステップS10と同様にしてこのメッセージをモバイル端末32にプッシュ通知する。
【0069】
(S18)上記ステータスモニタにより、例えば
図11(A)に示すようなポップアップ表示が行われる。この表示の際、
図10(B)に示すようなテーブルが用いられて、プッシュ通知メッセージに含まれるジョブIDが文書名に変更される。
【0070】
図10(A)の「表示」ボタンをタッチすると、例えば
図10(B)に示すような全ジョブ状態の詳細が表示される。この表示は、モバイル端末32から複数の印刷要求をした場合の各文書のジョブ状態と全印刷頁数に対する現在の印刷頁が示されている。文書名doc1.doc〜doc5.docの左側のアイコンはそれぞれ、ジョブ状態が印刷停止、印刷中、印刷待、印刷待、印刷待であることを示している。
【0071】
各印刷ジョブにおいて、印刷頁数が変化する毎にイベントが発生してプッシュ通知される。但し、印刷頁数の変化に対しては上記ステータスモニタが
図10(A)に示すようなポップアップ表示を行わない。
【0072】
図10(B)の状態で画面を左へスライドさせると、
図10(C)に示すトナー残量の状態が表示される。CMYK各色のトナー残量は、25%刻みで表示され、その値が変化すると、画像形成装置20においてイベントが発生する。
【0073】
なお、購読テーブル621の期限の更新や購読の解除等は、WS−Eventingの仕様に従って行われ、これは、APNSが直接関与しない購読テーブル83についても同様である。
【0074】
本実施例1によれば、WS−Eventingとプッシュ通知仕様が異なるモバイル端末に対してもプッシュ通知可能に構成する場合に、画像形成装置20においては、
図6に示すように、状態種別コードが印刷ジョブ状態であることを示す場合(ST0)、印刷ジョブデータにデバイストークンが含まれていれば(ST2)、これもイベントメッセージに含ませる(ST3)という、従来構成に対する簡単な変更でよいという効果を奏する。
【0075】
また、プロバイダー40がこのイベントメッセージの受信に応答して、
図7に示すように、
イベントメッセージにデバイストークンが含まれていなければ、すなわちジョブ状態でないと判定されれば(ST10)、
図8の購読テーブルに登録されている、イベントメッセージに含まれている状態IDが属する状態種別IDと一致する各レコードのデバイストークンと、このイベントメッセージに含まれている状態IDとこれに関係した値との組とを含むそれぞれのイベントメッセージを生成して(ST13)、プッシュ通知サーバー40へ送信し(ST12)、
イベントメッセージにデバイストークンが含まれ、すなわちジョブ状態と判定され(ST10)、且つ、該状態種別コードと該デバイストークンとを含むレコードが
図8の購読テーブルに登録されていれば、該デバイストークンと該イベントメッセージに含まれている該組とを含むイベントメッセージを生成して(ST11)、プッシュ通知サーバー40へ送信する(ST12)ので、画像形成装置20での1つのイベント発生に対し、1つのイベントメッセージをプロバイダー40に送信すればよく、各モバイル端末32に対応するイベントメッセージをプロバイダー40に送信する必要がないので、通信トラフィック量の増大を抑制することができるという効果を奏する。
【0076】
また、プロバイダー40において、オペレーティングシステムの起動時又は指示入力に応答して、画像形成装置20に対し、通知先アドレスとしての自装置のIPアドレスと通知対象としての全状態種別を示すコードとを伴って購読登録要求するので、画像形成装置20は状態変化が有った場合、そのイベントメッセージをプロバイダー40に通知するだけで、個々のモバイル端末32へプッシュ通知することができるという効果を奏する。
【0077】
さらに、プロバイダー40において、受信したイベントメッセージに基づき画像形成装置20の現在の状態を状態記憶部54に記憶しておき、モバイル端末32からの購読登録要求時に購読登録のみならず(
図7のステップS7)、状態記憶部54に記憶されている各状態をその状態に変化したイベントメッセージの受信と見なしてイベントメッセージを生成しプッシュ通知サーバー42へ送信するので(S8、S9)、モバイル端末ユーザは購読登録後直ぐに画像形成装置20の現在の状態を把握することができるという効果を奏する。
【0078】
また、プロバイダー40をPC10−1〜10−Nと同様に取り扱うことができ、しかも、LAN30に複数のプロバイダー40が結合されていても問題が生じない。
【0079】
さらに、プロバイダー40を複数のLAN30で共通に用いることができる。この場合、
図3において、通信部52の代わりに通信部80を用い、通信部60についても通信部80と同様に構成する。
【0080】
以上において、プッシュ通知システムの第1態様では、画像形成装置から直接又はプリントサーバーを介し受信した第1イベントメッセージを第2イベントメッセージに変換してプッシュ通知サーバーへ送信するプロバイダーと、該画像形成装置又は該プリントサーバーである送信元装置とを含み、該プッシュ通知サーバーは該第2イベントメッセージに基づいて、該第2イベントメッセージに含まれるデバイストークンに対応したモバイル端末へイベントメッセージをプッシュ通知するプッシュ通知システムであって、該送信元装置は、少なくとも状態IDとこれに関係した値との組を該第1イベントメッセージに含ませ、該状態が示す状態種別IDが印刷ジョブ状態であることを示す場合、印刷ジョブデータにデバイストークンが含まれていればこれも該第1イベントメッセージに含ませ、該プロバイダーは、購読テーブルと、該モバイル端末からの状態種別とデバイストークンとを伴った購読登録要求に応答して、該状態種別と該デバイストークンとを含むレコードを該購読テーブルに登録する購読マネージャと、該第1イベントメッセージの受信に応答して、該第1イベントメッセージにデバイストークンが含まれていなければ、該購読テーブルに登録されている、該第1イベントメッセージに含まれている状態IDが属する状態種別IDと一致(例えば、状態IDの一部が状態種別IDと一致)する各レコードのデバイストークンと該第1イベントメッセージに含まれている該組とを含むそれぞれの第2イベントメッセージを生成して該プッシュ通知サーバーへ送信する通知マネージャとを有する。
【0081】
また、プッシュ通知システムの第2態様では、第1態様において、該通知マネージャは、該第1イベントメッセージにデバイストークンが含まれ、且つ、該状態種別IDと該デバイストークンとを含むレコードが該購読テーブルに登録されていれば、該デバイストークンと該イベントメッセージに含まれている該組とを含む該第2イベントメッセージを生成して該プッシュ通知サーバーへ送信する。
【0082】
また、プッシュ通知システムの第3態様では、第2態様において、該プロバイダーはさらに、オペレーティングシステムの起動時又は指示入力に応答して、該送信元装置に対し、通知先アドレスとしての自装置のIPアドレスと通知対象としての全状態種別を示す情報とを伴って購読登録要求する購読部を有する。
【0083】
また、プッシュ通知システムの第4態様では、第3態様において、該プロバイダーはさらに、状態記憶部と、該第1イベントメッセージの受信に応答して、該第1イベントメッセージに含まれる該状態IDがジョブ状態の変化を示していなければ、該状態記憶部内の、該第1イベントメッセージに含まれる状態IDに対応したアドレスに、該状態IDに関係した該値を書き込むことにより該状態を更新し、該状態IDがジョブ状態の変化を示していれば、該状態記憶部内の、該第1イベントメッセージに含まれる該ジョブIDに対応するデータを、該第1イベントメッセージの内容に基づいて更新するイベントシンクと、を有し、該通知マネージャは、該購読マネージャが該登録を行ったことに応答して、該状態記憶部に記憶されている各状態をその状態に変化した該第1イベントメッセージの受信と見なして該第2イベントメッセージを生成し該プッシュ通知サーバーへ送信する。
【0084】
また、プッシュ通知システムの第5態様では、第2乃至4態様のいずれか1つにおいて、該送信元装置は、印刷ジョブの状態変化に応答して、該印刷ジョブのジョブデータに含まれるIPアドレスをキーとして送信元装置側購読テーブルを検索し、ヒットすれば、該状態変化の変化後の状態IDと該ジョブIDとを含む第1イベントメッセージを、該IPアドレスを宛先として送信し、この際、該ジョブデータにデバイストークンが含まれていれば、該デバイストークンも該第1イベントメッセージに含ませる。
【0085】
上記第1態様の構成によれば、WS−Eventingとプッシュ通知仕様が異なるモバイル端末に対してもプッシュ通知可能に構成する場合に、プロバイダーが該第1イベントメッセージの受信に応答して、例えば
図7に示すように、該第1イベントメッセージにデバイストークンが含まれていなければ、すなわちステップST10でジョブ状態でないと判定されれば、例えば
図8の購読テーブルに登録されている、該第1イベントメッセージに含まれている状態IDが属する状態種別IDと一致する各レコードのデバイストークンと、該第1イベントメッセージに含まれている状態IDとこれに関係した値との組とを含むそれぞれの第2イベントメッセージを生成して(ST13)、該プッシュ通知サーバーへ送信する(ST12)ので、該送信元装置での1つのイベント発生に対し、1つの第1イベントメッセージを該プロバイダーに送信すればよく、各モバイル端末に対応するイベントメッセージを該プロバイダーに送信する必要がないので、通信トラフィック量の増大を抑制することができるという効果を奏する。
【0086】
上記第2態様の構成によれば、送信元装置において、例えば
図6に示すように、状態IDが属する状態種別IDが印刷ジョブ状態であることを示す場合(ST0)、印刷ジョブデータにデバイストークンが含まれていれば(ST2)これも第1イベントメッセージに含ませる(ST3)という、従来構成に対する簡単な変更でよいという効果を奏する。
【0087】
上記第3態様の構成によれば、該プロバイダーにおいて、オペレーティングシステムの起動時又は指示入力に応答して、該送信元装置に対し、通知先アドレスとしての自装置のIPアドレスと通知対象としての全状態種別を示す情報とを伴って購読登録要求するので、該送信元装置は状態変化が有った場合、そのイベントメッセージを該プロバイダーに通知するだけで、個々のモバイル端末へプッシュ通知することができるという効果を奏する。
【0088】
上記第4態様の構成によれば、該プロバイダーにおいて、各第1イベントメッセージに基づき該送信元装置の現在の状態を状態記憶部に記憶しておき、該モバイル端末からの購読登録要求時に購読登録のみならず(
図7のS7)、該状態記憶部に記憶されている各状態をその状態に変化した該第1イベントメッセージの受信と見なして該第2イベントメッセージを生成し該プッシュ通知サーバーへ送信するので(S8、S9)、モバイル端末ユーザは購読登録後直ぐに該送信元装置の現在の状態を把握することができるという効果を奏する。
【0089】
上記第5態様の構成によれば、該送信元装置が、印刷ジョブの状態変化に応答して、該印刷ジョブのジョブデータに含まれるIPアドレスをキーとして送信元装置側購読テーブルを検索し、ヒットすれば、該状態変化の変化後の状態IDと該ジョブIDとを含む第1イベントメッセージを、該IPアドレスを宛先として送信するので、簡単な構成で、印刷ジョブについてはその依頼元のみプッシュ通知することができ、また、イベントメッセージにジョブIDが含まれるので、同一文書名の印刷ジョブであっても印刷ジョブ依頼元においてそれらを区別することができるという効果を奏する。
【0090】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【0091】
例えば、
図3の構成要素60〜62をプリントサーバーに備え、プリントサーバーで購読登録し、これとローカル接続又はネットワーク接続された画像形成装置からのイベント通知を、プリントサーバーの通知マネージャを介してイベント通知する構成であってもよい。
【0092】
また、
図8の購読テーブルは、期限を含まない構成であってもよい。