(57)【要約】【課題】画像処理装置およびサーバ装置とネットワークを介して接続されている中継装置等を提供すること。【解決手段】仲介サーバは、複数の多機能機およびサービスサーバとネットワークを介して接続されている。仲介サーバは、多機能機からのセッション確立の要求に応じて、ＸＭＰＰ  over  ＢＯＳＨに従ったＸＭＰＰセッションを、複数の多機能機の各々と確立する。仲介サーバは、複数の多機能機のうちからサービスサーバによって指定された多機能機である通信先多機能機に対するサーバ要求情報をサービスサーバから取得した場合に、取得したサーバ要求情報をＸＭＰＰセッションを介して通信先多機能機へ出力する。仲介サーバは、要求情報に対する応答情報を通信先多機能機から取得した場合に、取得した応答情報をサービスサーバへ出力する。【選択図】図７
2014179017.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置およびサーバ装置とネットワークを介して通信することが可能なネットワークインターフェースと、
プロセッサと、
を備える中継装置であって、
前記プロセッサは、
前記サーバ装置が前記中継装置あてに送信した、前記画像処理装置に対する要求を示すサーバ要求情報を、前記ネットワークインターフェースを介して取得するサーバ要求情報取得手段と、
前記画像処理装置が前記中継装置あてに送信した確立要求情報であって、セッション確立型である第１のプロトコルに従った、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を前記画像処理装置まで伝達させるサーバプッシュを可能とするためのセッションを前記中継装置と前記画像処理装置との間で確立することを要求する前記確立要求情報を、前記ネットワークインターフェースを介して取得する確立要求情報取得手段と、
前記サーバ要求情報を前記サーバ要求情報取得手段が取得した場合に、前記確立要求情報取得手段が前記確立要求情報を取得済であるならば、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションを用いて前記画像処理装置あてに送信するよう出力するサーバ要求情報出力手段と、
して機能することを特徴とする中継装置。
【請求項２】
前記中継装置は、第１のネットワークと通信制御装置を介して接続した第２のネットワークに接続することが可能であり、
前記通信制御装置は、前記セッションを用いずに、前記第１のネットワーク以外のネットワークに接続した装置から前記第１のネットワークに接続した装置あてに送信された要求情報は、前記第１のネットワークに接続した装置に転送せず、
前記確立要求情報取得手段は、前記第１のネットワークに接続している前記画像処理装置が前記中継装置あてに送信した前記確立要求情報を、前記ネットワークインターフェースを介して取得し、
前記サーバ要求情報取得手段は、前記第１のネットワークに接続していない前記サーバ装置が前記中継装置あてに送信した前記サーバ要求情報を、前記ネットワークインターフェースを介して取得し、
前記サーバ要求情報出力手段は、前記サーバ装置が送信した前記サーバ要求情報を前記サーバ要求情報取得手段が取得した場合に、前記確立要求情報取得手段が、前記第１のネットワークに接続している前記画像処理装置が送信した前記確立要求情報を取得済であるならば、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションを用いて前記第１のネットワークに接続している前記画像処理装置あてに送信するよう出力する、
ことを特徴とする請求項１に記載の中継装置。
【請求項３】
前記中継装置は、
複数の前記第１のネットワークそれぞれに備えられた前記通信制御装置を介して複数の前記第１のネットワークと接続した前記第２のネットワークに接続することが可能であり、
前記確立要求情報取得手段は、複数の前記第１のネットワークそれぞれに接続している複数の前記画像処理装置が前記中継装置あてに送信した前記確立要求情報を、前記ネットワークインターフェースを介して取得し、
前記サーバ要求情報取得手段は、前記サーバ装置が前記中継装置あてに送信した、複数の前記画像処理装置のうちから通信先として選択された画像処理装置である通信先画像処理装置に対する前記サーバ要求情報である特定サーバ要求情報を、前記ネットワークインターフェースを介して取得し、
前記サーバ要求情報出力手段は、前記特定サーバ要求情報を前記サーバ要求情報取得手段が取得した場合に、前記確立要求情報取得手段が、前記通信先画像処理装置が送信した前記確立要求情報を取得済であるならば、前記サーバ要求情報取得手段が取得した前記特定サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記通信先画像処理装置との間で確立した前記セッションを用いて、前記通信先画像処理装置あてに送信するよう出力する、
ことを特徴とする請求項２に記載の中継装置。
【請求項４】
前記プロセッサは、前記確立要求情報の送信元である画像処理装置である送信元画像処理装置を識別する画像処理装置識別情報を、記憶手段が記憶するよう出力する画像処理装置識別情報出力手段として機能し、
前記画像処理装置識別情報出力手段は、複数の前記画像処理装置の各々についての複数の前記画像処理装置識別情報を前記記憶手段に記憶させることが可能とされており、
前記サーバ要求情報出力手段は、取得した前記サーバ要求情報に含まれている前記画像処理装置識別情報が示す送信元画像処理装置へ、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記セッションを用いて送信するよう出力する、
ことを特徴とする請求項３に記載の中継装置。
【請求項５】
前記サーバ要求情報取得手段は、前記サーバ装置が前記中継装置あてに送信した、前記第１のプロトコルとは異なる第２のプロトコルに従った前記サーバ要求情報を取得し、
前記サーバ要求情報出力手段は、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記セッションを用いて前記画像処理装置あてに送信するよう出力することを特徴とする請求項１〜４のいずれか１項に記載の中継装置。
【請求項６】
前記プロセッサは、
前記サーバ装置が前記中継装置あてに送信した、セッションレス型のプロトコルである前記第２のプロトコルに従った、セッションレス型のコネクションを用いて前記サーバ装置が前記中継装置あてに送信した前記サーバ要求情報を取得し、
前記サーバ要求情報出力手段は、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記セッションを用いて前記画像処理装置あてに送信するよう出力することを特徴とする請求項５に記載の中継装置。
【請求項７】
前記プロセッサは、
前記サーバ要求情報の通信先の画像処理装置である通信先画像処理装置が前記中継装置あてに送信した、前記サーバ要求情報が示す要求に対する応答情報を、前記ネットワークインターフェースを介して取得する応答情報取得手段と、
前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置あてに送信するよう出力する応答情報出力手段と、
して機能し、
前記応答情報出力手段は、前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置との間で確立したコネクションを用いて、前記セッションレス型のプロトコルである前記第２のプロトコルに従ったレスポンスデータに含めて、前記サーバ装置あてに送信するよう出力する、
ことを特徴とする請求項６に記載の中継装置。
【請求項８】
前記プロセッサは、
前記サーバ要求情報の通信先の画像処理装置である通信先画像処理装置が前記中継装置あてに送信した、前記サーバ要求情報が示す要求に対する応答情報を、前記ネットワークインターフェースを介して取得する応答情報取得手段と、
前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置あてに送信するよう出力する応答情報出力手段と、
して機能することを特徴とする請求項１〜７のいずれか１項に記載の中継装置。
【請求項９】
前記応答情報取得手段は、前記サーバ要求情報の通信先の画像処理装置である通信先画像処理装置が前記中継装置あてに送信した、前記第１のプロトコルとは異なる第３のプロトコルに従ったデータに含まれる情報を、前記応答情報として取得し、
前記応答情報出力手段は、前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置あてに送信するよう出力する、
ことを特徴とする請求項８に記載の中継装置。
【請求項１０】
前記プロセッサは、
前記サーバ要求情報の通信先の画像処理装置である通信先画像処理装置が前記中継装置あてに送信した第３の確立要求情報を、前記ネットワークインターフェースを介して取得する第３確立要求情報取得手段と、
して機能し、
前記応答情報取得手段は、セッションレス型のプロトコルである前記第３のプロトコルに従ったセッションレス型のコネクションに従ったリクエストデータに含まれる情報を、前記応答情報として取得し、
前記応答情報出力手段は、前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置あてに送信するよう出力することを特徴とする請求項９に記載の中継装置。
【請求項１１】
前記プロセッサは、前記サーバ装置が前記中継装置あてに送信した、セッションレス型のプロトコルである第２のプロトコルに従ったセッションレス型のコネクションを前記中継装置と前記サーバ装置との間で確立することを要求する第２の確立要求情報を、前記ネットワークインターフェースを介して取得する第２確立要求情報取得手段として機能し、
前記サーバ要求情報取得手段は、前記サーバ装置との間で確立したセッションレス型のコネクションを用いて前記サーバ装置が前記中継装置あてに送信した前記サーバ要求情報を取得し、
前記サーバ要求情報出力手段は、前記第２のプロトコルに従ったリクエストデータに含まれる情報を、前記サーバ要求情報として前記サーバ要求情報取得手段が取得した場合に、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションを用いて前記画像処理装置あてに送信するよう出力し、
前記プロセッサは、前記サーバ要求情報の通信先の画像処理装置である通信先画像処理装置が前記中継装置あてに送信した第３の確立要求情報を、前記ネットワークインターフェースを介して取得する第３確立要求情報取得手段と、して機能し、
前記第３の確立要求情報は、セッションレス型のプロトコルである前記第３のプロトコルに従ったセッションレス型のコネクションに従ったリクエストデータに含まれる情報を、前記応答情報として取得し、
前記応答情報出力手段は、前記応答情報取得手段が取得した前記応答情報を、前記ネットワークインターフェースを介して、前記サーバ装置との間で確立したコネクションを用いて、前記セッションレス型のプロトコルである前記第２のプロトコルに従ったレスポンスデータに含めて、前記サーバ装置あてに送信するよう出力することを特徴とする請求項１０に記載の中継装置。
【請求項１２】
前記中継装置は、複数の前記画像処理装置のうちから通信先として選択された画像処理装置である通信先画像処理装置に対するサーバ要求情報である特定サーバ要求情報を前記サーバ要求情報取得手段が前記サーバ装置から取得することに応じて、取得した前記特定サーバ要求情報を他のサーバ要求情報と区別できるよう識別するための第１識別情報を記憶部に記憶させる第１識別情報記憶制御手段を備え、
前記サーバ要求情報出力手段は、前記サーバ要求情報取得手段が取得した前記特定サーバ要求情報と共に前記第１識別情報を前記通信先画像処理装置へ出力し、
前記応答情報取得手段は、前記応答情報と共に、前記応答情報の元となる特定サーバ要求情報を識別する第２識別情報を前記通信先画像処理装置から取得し、
前記中継装置は、前記応答情報取得手段が前記応答情報と共に、前記第２識別情報を取得した場合に、前記第２識別情報と前記第１識別情報とに基づいて、前記応答情報取得手段が取得した応答情報に対応する特定サーバ要求情報の前記サーバ装置側からの送信に用いられたコネクションを特定する、コネクション特定手段を備え、
前記応答情報出力手段は、前記応答情報取得手段が取得した応答情報を、前記コネクション特定手段が特定したコネクションを用いて、前記第２のプロトコルに従ったレスポンスデータに含めて前記サーバ装置あてに送信するよう出力することを特徴とする請求項７に記載の中継装置。
【請求項１３】
前記通信先画像処理装置に対する前記特定サーバ要求情報を前記サーバ装置から取得した場合に、前記通信先画像処理装置との間の前記セッションが確立されていないことを条件として、エラー情報を、前記画像処理装置との間で確立した前記セッションレス型のコネクションを介して前記サーバ装置へ出力するエラー情報出力手段として前記プロセッサはさらに機能し、
前記要求情報は、前記セッションレス型のコネクションにおけるリクエストデータに含まれており、
前記エラー情報は、前記セッションレス型のコネクションにおけるレスポンスデータに含まれていることを特徴とする請求項１〜１２の何れか１項に記載の中継装置。
【請求項１４】
前記応答情報出力手段は、前記応答情報を前記セッションレス型のコネクションにおけるリクエストデータに含まれている情報として前記通信先画像処理装置から取得し、
前記応答情報を取得することに応じて、前記セッションレス型のコネクションにおけるレスポンスデータを前記通信先画像処理装置へ出力するレスポンスデータ出力手段として前記プロセッサがさらに機能することを特徴とする請求項７に記載の中継装置。
【請求項１５】
前記中継装置は、前記要求情報を前記サーバ装置から取得することに応じて、前記要求情報に対応する前記第１識別情報を生成する第１識別情報生成手段を備え、
前記第１識別情報記憶制御手段は、前記第１識別情報生成手段が生成した第１識別情報を、前記記憶部に記憶させ、
前記サーバ要求情報出力手段は、前記サーバ要求情報取得手段が取得した前記特定サーバ要求情報と共に、前記第１識別情報生成手段が生成した前記第１識別情報を前記通信先画像処理装置へ出力し、
前記コネクション特定手段は、前記応答情報取得手段が前記応答情報と共に、前記第２識別情報を取得した場合に、前記記憶部が記憶している前記第１識別情報と、前記応答情報取得手段が取得した前記第２識別情報と、が一致する場合に、前記第１識別情報が対応する要求情報の、前記サーバ装置からの送信に用いられたコネクションを特定する、
ことを特徴とする請求項１２に記載の中継装置。
【請求項１６】
前記第２のプロトコルは、ＨＴＴＰ（Hypertext Transfer Protocol）であることを特徴とする請求項５に記載の中継装置。
【請求項１７】
前記第３のプロトコルは、ＨＴＴＰ（Hypertext Transfer Protocol）であることを特徴とする請求項９に記載の中継装置。
【請求項１８】
前記第１のプロトコルは、ＸＭＰＰ  over  ＢＯＳＨ（eXtensible Messaging and Presence Protocol over Bidirectional-streams Over Synchronous HTTPの略）であることを特徴とする請求項１〜１７の何れか１項に記載の中継装置。
【請求項１９】
サーバ装置と通信可能な中継装置とネットワークを介して通信することが可能なネットワークインターフェースと、
プロセッサと、
を備える画像処理装置であって、
前記プロセッサは、
セッション確立型である第１のプロトコルに従った、前記サーバ装置から情報を出力するサーバプッシュを可能とするためのセッションを前記中継装置と前記画像処理装置との間で確立することを要求する確立要求情報を、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する確立要求情報出力手段と、
前記セッションが確立した後に、前記中継装置が前記サーバ装置から受信した、前記画像処理装置に対する要求を示すサーバ要求情報であって、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションを用いて前記中継装置から取得するサーバ要求情報取得手段と、
して機能することを特徴とする画像処理装置。
【請求項２０】
前記プロセッサは、
前記確立要求情報出力手段が前記確立要求情報を送信したことで前記中継装置からの前記サーバプッシュが可能な状態となってから、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を前記サーバ要求情報取得手段が取得することなく所定の時間が経過した場合に、前記サーバプッシュが可能な状態を維持するための処理を実行する状態維持処理手段として機能することを特徴とする請求項１９に記載の画像処理装置。
【請求項２１】
前記状態維持処理手段は、
前記確立要求情報出力手段が前記確立要求情報を送信したことで前記中継装置からの前記サーバプッシュが可能な状態となってから、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を前記サーバ要求情報取得手段が取得することなく所定の時間が経過した場合に、前記サーバプッシュを可能とするためのセッションが確立していると前記中継装置が認識していることを示す認識情報の返信を前記中継装置に要求する認識要求情報を、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する認識要求情報出力手段と、
前記中継装置が前記画像処理装置あてに返信した、前記認識情報を、前記ネットワークインターフェースを介して取得するサーバ認識情報取得手段と、
を含み、
前記状態維持処理手段は、前記サーバ認識情報取得手段が前記認識情報を取得できなかった場合に、前記確立要求情報出力手段に前記確立要求情報を送信させることで、前記サーバプッシュが可能な状態を維持する、
ことを特徴とする請求項２０に記載の画像処理装置。
【請求項２２】
前記プロセッサは、前記確立要求情報出力手段が前記確立要求情報を送信したことで前記中継装置からの前記サーバプッシュを可能とするためのセッションが確立した場合に、前記セッションを用いたコネクションであるセッション確立型コネクションを前記中継装置との間で確立するための第２の確立要求情報を、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する第２確立要求情報出力手段、として機能し、
前記サーバ要求情報取得手段は、前記セッションを用いた前記セッション確立型コネクションが確立した後に、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッション確立型コネクションを用いて前記中継装置から取得し、
前記状態維持処理手段は、
前記確立要求情報出力手段が前記確立要求情報を送信したことで、前記セッションと前記セッション確立型コネクションが確立し、前記中継装置からの前記サーバプッシュが可能な状態となってから、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を前記サーバ要求情報取得手段が取得することなく所定の時間が経過した場合に、前記サーバプッシュを可能とするためのセッションが確立していると前記中継装置が認識していることを示す認識情報の返信を前記中継装置に要求する認識要求情報を、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する認識要求情報出力手段と、
前記中継装置が前記画像処理装置あてに返信した、前記認識情報を、前記ネットワークインターフェースを介して取得するサーバ認識情報取得手段と、
を含み、
前記状態維持処理手段は、前記サーバ認識情報取得手段が前記認識情報を取得できた場合に、前記第２確立要求情報出力手段に前記第２の確立要求情報を送信させることで、前記サーバプッシュが可能な状態を維持する、
ことを特徴とする請求項２０または２１に記載の画像処理装置。
【請求項２３】
前記プロセッサは、
前記サーバ要求情報取得手段が前記サーバ要求情報を取得することに応じて、セッションレス型のプロトコルである第３のプロトコルに従ったコネクションであるセッションレス型コネクションを前記中継装置との間で確立することを要求する第４の確立要求情報を、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する第４確立要求情報出力手段と、
前記サーバ要求情報が示す要求に対する応答情報を生成し、生成した前記応答情報を、前記中継装置との間で確立した前記セッションレス型コネクションを用いて、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力する応答情報出力手段と、
してさらに機能することを特徴とする請求項１９〜２２の何れか１項に記載の画像処理装置。
【請求項２４】
前記サーバ要求情報取得手段は、前記サーバ要求情報と共に、前記サーバ要求情報を識別するための第１識別情報を前記中継装置から取得し、
前記応答情報出力手段は、前記応答情報と共に、前記サーバ要求情報取得手段で取得した前記第１識別情報を前記中継装置に出力することを特徴とする請求項２３に記載の画像処理装置。
【請求項２５】
前記確立要求情報出力手段は、前記画像処理装置がセッション維持モードであることを条件として、記憶部に記憶されている前記セッションを確立するためのセッション維持情報に基づいて、前記確立要求情報を、前記中継装置あてに送信するよう出力することを特徴とする請求項１９〜２４の何れか１項に記載の画像処理装置。
【請求項２６】
前記画像処理装置は、前記画像処理装置が前記セッション維持モードであるか否かを示すモード情報を記憶部に記憶させる記憶制御手段をさらに備え、
前記確立要求情報出力手段は、前記画像処理装置が起動した場合に、前記記憶部に記憶されている前記モード情報が前記セッション維持モードであることを示していることを条件として、前記確立要求情報を前記中継装置あてに送信するよう出力することを特徴とする請求項２５に記載の画像処理装置。
【請求項２７】
前記画像処理装置は、前記画像処理装置が前記セッション維持モードであるか否かを示すモード情報を記憶部に記憶させる記憶制御手段をさらに備え、
前記確立要求情報出力手段は、前記画像処理装置の製造時に前記記憶部に記憶された前記モード情報に基づいて、前記画像処理装置が前記セッション維持モードであるか否かを判断することを特徴とする請求項２６に記載の画像処理装置。
【請求項２８】
前記プロセッサは、
前記サーバ装置が提供するプルサービスの利用を指示する指示情報を取得した場合に、前記第１のプロトコルの下位プロトコルである第２のプロトコルを用いて、前記サーバ装置に前記プルサービスの利用に関する関連情報を要求する関連情報要求情報を、前記ネットワークインターフェースを介して、前記サーバ装置あてに送信するよう出力する関連情報要求情報出力手段と、
前記サーバ装置が送信した前記関連情報を、前記ネットワークインターフェースを介して取得する関連情報取得手段と、
して機能し、
前記確立要求情報出力手段は、前記確立要求情報を、前記第１のプロトコルの下位プロトコルである前記第２のプロトコルを用いて、前記ネットワークインターフェースを介して、前記中継装置あてに送信するよう出力し、
前記サーバ要求情報取得手段は、前記中継装置が前記サーバプッシュするために送信した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションにおいて、前記第２のプロトコルを用いて前記中継装置から取得する、
ことを特徴とする請求項１９〜２７のいずれか１項に記載の画像処理装置。
【請求項２９】
前記第１のプロトコルは、ＸＭＰＰ  over  ＢＯＳＨであり、
前記第２のプロトコルは、ＨＴＴＰである、
ことを特徴とする請求項２８に記載の画像処理装置。
【請求項３０】
複数の画像処理装置、サーバ装置、および中継装置を備える通信システムであって、
前記中継装置は、前記複数の画像処理装置および前記サーバ装置とネットワークを介して接続することが可能とされており、
前記通信システムは、
前記画像処理装置から前記中継装置へのセッション確立の要求に応じて、セッション確立型である第１のプロトコルに従った、前記サーバ装置から情報を出力するサーバプッシュを可能とするための複数のセッションを、前記中継装置と前記複数の画像処理装置の各々との間で確立する第１確立手段と、
複数の前記画像処理装置のうちから前記サーバ装置によって通信先として選択された画像処理装置である通信先画像処理装置に対するサーバ要求情報である特定サーバ要求情報を、前記中継装置が前記サーバ装置から取得した場合に、取得した前記特定サーバ要求情報を前記セッションを介して前記中継装置から前記通信先画像処理装置へ出力する第１出力手段と、
前記特定サーバ要求情報に対する応答情報を前記中継装置が前記通信先画像処理装置から取得した場合に、取得した前記応答情報を前記中継装置から前記サーバ装置へ出力する第２出力手段と、
を備えることを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、画像処理装置およびサーバ装置とネットワークを介して接続されている中継装置などを開示する。
【背景技術】
【０００２】
プリンタ機能やＦＡＸ機能などを備える画像処理装置と、画像処理装置を管理するための管理装置とが、インターネットを介して接続されているシステムが存在する。また、関連する技術が、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２２０２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
管理装置が画像処理装置から各種情報を取得して保守点検を行う保守点検サービスや、管理装置から画像処理装置の各種設定を変更する遠隔設定サービスなどのプッシュサービスを提供するために、管理装置側においてプッシュサービスを提供するタイミングとなったときに、インターネットを介して、管理装置側から画像処理装置へプッシュサービスに関する情報を送信したい場合がある。しかし、不正アクセスや侵入を防止するために、ファイアウォールが設定されている場合には、管理装置から画像処理装置へのアクセスが遮断される場合がある。また、画像処理装置がＮＡＴ（Network Address Translationの略）の支配下にある場合には、管理装置側から画像処理装置へアクセスできない場合がある。
【課題を解決するための手段】
【０００５】
本明細書に記載されている中継装置は、画像処理装置およびサーバ装置とネットワークを介して通信することが可能なネットワークインターフェースと、プロセッサと、を備える中継装置であって、前記プロセッサは、前記画像処理装置が前記中継装置あてに送信した確立要求情報であって、セッション確立型である第１のプロトコルに従った、前記中継装置が前記サーバ装置から受信した要求情報を前記画像処理装置まで伝達させるサーバプッシュを可能とするためのセッションを前記中継装置と前記画像処理装置との間で確立することを要求する前記確立要求情報を、前記ネットワークインターフェースを介して取得する確立要求情報取得手段と、前記サーバ装置が前記中継装置あてに送信した、前記画像処理装置に対する要求を示すサーバ要求情報を、前記ネットワークインターフェースを介して取得するサーバ要求情報取得手段と、前記サーバ要求情報を前記サーバ要求情報取得手段が取得した場合に、前記確立要求情報取得手段が前記確立要求情報を取得済であるならば、前記サーバ要求情報取得手段が取得した前記サーバ要求情報を、前記ネットワークインターフェースを介して、前記中継装置と前記画像処理装置との間で確立した前記セッションを用いて前記画像処理装置あてに送信するよう出力するサーバ要求情報出力手段と、して機能することを特徴とする。
【０００６】
本明細書に実施形態として記載されている中継装置、画像処理装置、および通信システムによると、画像処理装置と中継装置との間で確立したセッションを用いて、サーバプッシュが可能な状態とし、サーバ装置側においてプッシュサービスを提供するタイミングとなったときに、サーバ装置から、中継装置を介して、画像処理装置までサーバ要求情報を伝達するサーバプッシュを行うことが可能となる。これにより、サーバ装置側においてプッシュサービスを提供するタイミングとなったときにはいつでも、サーバプッシュによって画像処理装置へプッシュサービスを提供することができる。
【０００７】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置から、第１のネットワークに通信制御装置を介して接続する中継装置を介して、第１のネットワークに接続した画像処理装置までサーバ要求情報を伝達することが可能となる。これにより、第１のネットワークに接続した画像処理装置へプッシュサービスを常時提供することができる。
【０００８】
本明細書に実施形態として記載されている中継装置等によれば、複数の画像処理装置の各々との間で、複数のサーバプッシュを可能とするセッションを確立した中継装置を介して、サーバ装置から、複数の画像処理装置までサーバ要求情報を伝達することが可能となる。これにより、複数の画像処理装置へプッシュサービスを常時提供することができる。
【０００９】
本明細書に実施形態として記載されている中継装置等によれば、サーバプッシュを可能とするセッションを確立した複数の画像処理装置の各々の識別情報を記憶した中継装置を介して、中継装置とセッションを確立している画像処理装置のうち、サーバ装置側が指定する画像処理装置まで、サーバ要求情報を伝達することが可能となる。これにより、サーバ装置側が指定する画像処理装置へプッシュサービスを常時提供することができる。
【００１０】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置が第１のプロトコルとは異なる第２のプロトコルを用いて送信したサーバ要求情報を、中継装置を介して、画像処理装置まで第１のプロトコルを用いて伝達することが可能となる。これにより、サーバ装置が第１のプロトコルに対応する必要なく、画像処理装置へプッシュサービスを常時提供することができる。
【００１１】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置と中継装置との間でセッションを確立する必要なく、サーバ装置からセッションレス型のプロトコルを用いて送信したサーバ要求情報を、中継装置を介して、画像処理装置まで第１のプロトコルを用いて伝達することが可能となる。これにより、サーバ装置にサーバプッシュするためのセッションを確立する負荷をかける必要なく、画像処理装置へプッシュサービスを常時提供することができる。
【００１２】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置側と中継装置との間でセッションを確立する必要なく、サーバ要求情報に対して画像処理装置が送信した応答情報を、中継装置を介して、サーバ装置側からのサーバ要求情報の送信に用いられたセッションレス型のプロトコルにおけるレスポンスデータとして、サーバ装置まで伝達することが可能となる。これにより、サーバ装置と中継装置との間にセッションを確立する負荷をかける必要なく、応答情報に関連するプッシュサービスを常時提供することができる。
【００１３】
本明細書に実施形態として記載されている中継装置等によれば、サーバ要求情報に対して画像処理装置が送信した応答情報を、中継装置を介して、サーバ装置まで伝達することが可能となる。これにより、応答情報に関連するプッシュサービスを常時提供することができる。
【００１４】
本明細書に実施形態として記載されている中継装置等によれば、画像処理装置と中継装置との間で確立したセッションを用いる必要なく、サーバ要求情報に対して画像処理装置が第１のプロトコルとは異なる第３のプロトコルを用いて送信した応答情報を、中継装置を介して、サーバ装置まで伝達することが可能となる。これにより、サーバプッシュを可能とするためのセッションをサーバプッシュとは異なる目的である応答情報の送信に使用することなく、応答情報に関連するプッシュサービスを常時提供することができる。
【００１５】
本明細書に実施形態として記載されている中継装置等によれば、画像処理装置と中継装置との間で新たにセッションを確立する必要なく、サーバ要求情報に対して画像処理装置がセッションレス型のプロトコルを用いて送信した応答情報を、中継装置を介して、サーバ装置まで伝達することが可能となる。これにより、応答情報の送信のためにセッションを確立する負荷をかける必要なく、応答情報に関連するプッシュサービスを常時提供することができる。
【００１６】
本明細書に実施形態として記載されている中継装置等によれば、画像処理装置と中継装置との間で新たにセッションを確立する必要なく、サーバ要求情報に対して画像処理装置がセッションレス型のプロトコルを用いて送信した応答情報を、中継装置を介して、サーバ装置側からのサーバ要求情報の送信に用いられたセッションレス型のプロトコルにおけるレスポンスデータとして、サーバ装置まで伝達することが可能となる。これにより、サーバ装置と中継装置との間にセッションを確立する負荷をかける必要なく、応答情報の送信のためにセッションを確立する負荷をかける必要なく、応答情報に関連するプッシュサービスを常時提供することができる。
【００１７】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置側からセッションレス型の第２のプロトコルを用いて送信した特定サーバ要求情報と、セッション確立型第１のプロトコルを用いて通信先画像処理装置まで伝送された特定サーバ要求情報に対して画像処理装置が送信した応答情報とが、互いに対応する一対の要求−応答の対応関係にある情報であるか否かを認識することができる。よって、中継装置を介して、通信先画像処理装置から特定サーバ要求情報の送信元であるサーバ装置まで応答情報を伝達することが可能となる。これにより、直接にサーバ装置と画像処理装置との間でサーバプッシュを可能にするセッションを確立する負荷なく、特定サーバ情報に正しく対応する応答情報に関連するプッシュサービスを提供することができる。また、サーバ装置が複数存在していたとしても、直接に複数のサーバ装置と画像処理装置との間でサーバプッシュを可能にするセッションを確立する負荷なく特定サーバ情報の送信元であるサーバ装置にて、特定サーバ情報に正しく対応する応答情報に関連するプッシュサービスを提供することができる。また、画像処理装置が複数存在していたとしても、直接にサーバ装置と複数の画像処理装置との間でサーバプッシュを可能にするセッションを確立する負荷なく特定サーバ情報の送信元であるサーバ装置にて、特定サーバ情報に正しく対応する応答情報に関連するプッシュサービスを常時提供することができる。
【００１８】
本明細書に実施形態として記載されている中継装置等によれば、特定サーバ要求情報を通信先画像処理装置に出力することができない場合には、エラー情報をサーバ装置へ出力し、セッションレス型のコネクションを正常に終了させる。これにより、コネクションが正常に終了しないために発生する、特定サーバ要求情報を出力したサーバ装置が、タイムアウトが発生するまで応答情報の返信を待機する、あるいは、タイムアウトが発生したと判断し、特定サーバ要求情報の送信を繰り返すといった、サーバ装置、中継装置、および第２のネットワークの負荷となる事態の発生を防止することができる。これにより、コネクションが正常に終了しないために発生する負荷なく、プッシュサービスを常時提供することができる。
【００１９】
本明細書に実施形態として記載されている中継装置等によれば、セッションレス型のコネクションにおけるレスポンスデータを通信先画像処理装置へ出力することにより、セッションレス型のコネクションを正常に終了させる。これにより、コネクションが正常に終了しないために発生する、応答情報を出力した通信先画像処理装置が、タイムアウトが発生するまでレスポンスデータの返信を待機する、あるいは、タイムアウトが発生したと判断し、応答情報の送信を繰り返すといった、送信先画像処理装置、中継装置、および第１のネットワークの負荷となる事態の発生を防止することができる。これにより、コネクションが正常に終了しないために発生する負荷なく、応答情報に関連するプッシュサービスを提供することができる。
【００２０】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置に第１識別情報を作成する負荷をかける必要なく、中継装置を介して、通信先画像処理装置から特定サーバ要求情報の送信元であるサーバ装置まで応答情報を伝達することが可能となる。これにより、サーバ装置に第１識別情報を作成する負荷をかける必要なく、特定サーバ情報に正しく対応する応答情報に関連するプッシュサービスを常時提供することができる。
【００２１】
本明細書に実施形態として記載されている中継装置等によれば、サーバ装置側からＨＴＴＰを用いて送信したサーバ要求情報を、中継装置を介して、画像処理装置まで第１のプロトコルを用いて伝達することができる。これにより、サーバ装置が第１のプロトコルに対応する必要なく、インターネットに接続する装置であれば一般的に用いられているＨＴＴＰを用いてプッシュサービスを常時提供することができる。
【００２２】
本明細書に実施形態として記載されている中継装置等によれば、画像処理装置と中継装置との間で確立したセッションを用いる必要なく、サーバ要求情報に対して画像処理装置がＨＴＴＰを用いて送信した応答情報を、中継装置を介して、サーバ装置まで伝達することができる。これにより、画像処理装置や中継装置が応答情報を通信するためだけに新たなプロトコルに対応する必要なく、インターネットに接続する装置であれば一般的に用いられているＨＴＴＰを用いて、応答情報に対応するプッシュサービスを提供することができる。また、画像処理装置が、ＨＴＴＰを用いてプルサービスを利用可能な画像処理装置であれば、プルサービスの利用のために備えている、ＨＴＴＰに関する処理を行う構成、たとえばＨＴＴＰの処理を行うプロトコルスタックを用いて、応答情報に対応するプッシュサービスを常時提供することができるので、より都合が良い。
【００２３】
本明細書に実施形態として記載されている中継装置等によれば、画像処理装置と中継装置との間で確立した、ＸＭＰＰ  over  ＢＯＳＨに基づく、サーバプッシュを可能とするセッションを用いて、サーバ装置側から、中継装置を介して、画像処理装置までサーバ要求情報を伝達することが可能となる。ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨはＨＴＴＰをベースとしたプロトコルである。これにより、インターネットに接続する装置であれば一般的に用いられているＨＴＴＰに関する処理を行う構成、たとえばＨＴＴＰの処理を行うプロトコルスタックを用いて、応答情報に対応するプッシュサービスを提供することができるので、常時都合が良い。
【００２４】
本明細書に実施形態として記載されている画像処理装置等によれば、画像処理装置と中継装置との間で確立したセッションを用いて、サーバプッシュが可能な状態とし、サーバ装置から、中継装置を介して、画像処理装置までサーバ要求情報を伝達するサーバプッシュを行うことが可能となる。これにより、サーバプッシュによって画像処理装置へプッシュサービスを提供することができる。
【００２５】
本明細書に実施形態として記載されている画像処理装置等によると、画像処理装置と中継装置との間でサーバプッシュが可能な状態になってから、所定の時間が経過した場合にも、中継装置からの前記サーバプッシュが可能な状態を維持する。これにより、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。
【００２６】
本明細書に実施形態として記載されている画像処理装置等によると、画像処理装置と中継装置との間のセッションが無効にされてしまったとしても、新たにセッションを確立させることができる。これにより、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。
【００２７】
本明細書に実施形態として記載されている画像処理装置等によると、画像処理装置と中継装置との間のコネクションが無効にされてしまったとしても、新たにコネクションを確立させることができる。これにより、新たにセッションを確立する負荷なく、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。
【００２８】
本明細書に実施形態として記載されている画像処理装置等によると、サーバ要求情報に対して画像処理装置が送信した応答情報を、セッションレス型のプロトコルを用いて、サーバ装置まで伝達することが可能となる。これにより、サーバプッシュを可能とするためのセッションをサーバプッシュとは異なる目的である応答情報の送信に使用することなく、応答情報に関連するプッシュサービスを常時提供することができる。
【００２９】
本明細書に実施形態として記載されている画像処理装置等によると、サーバ装置側からセッションレス型のプロトコルを用いて送信したサーバ要求情報と、サーバ要求情報に対して画像処理装置が送信した応答情報とが、互いに対応する一対の要求−応答の対応関係にある情報であるか否かを認識することができる。よって、中継装置を介して、画像処理装置からサーバ要求情報の送信元であるサーバ装置まで、応答情報を伝達することが可能となる。
【００３０】
本明細書に実施形態として記載されている画像処理装置等によれば、画像処理装置と中継装置との間のセッションが切断されたとしても、画像処理装置がセッション維持モードであれば、画像処理装置から確立要求情報が送信され、セッションを再度確立させることができる。これにより、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。
【００３１】
本明細書に実施形態として記載されている画像処理装置等によれば、画像処理装置がセッション維持モードであれば、画像処理装置が起動したときに、セッションを確立することができる。これにより、セッション確立型のプロトコルを用いて、画像処理装置の起動時から、プッシュサービスを常時提供することが可能となる。
【００３２】
本明細書に実施形態として記載されている画像処理装置等によれば、画像処理装置の製造時にセッション維持モードであることを示すモード情報を記憶部に記憶させることで、画像処理装置が起動したときに、セッションを確立することができる。これにより、ベンダやディーラなど、画像処理装置の製造側または販売側で、プッシュサービスを常時提供させたい画像処理装置を決定し、決定した画像処理装置にプッシュサービスを利用させることが可能となる。
【００３３】
本明細書に実施形態として記載されている画像処理装置等によると、プルサービスの利用に用いる第２のプロトコルを用いて、第２のプロトコルの上位のプロトコルである第１のプロトコルのセッションを確立できる。これにより、画像処理装置や中継装置がセッションを確立するためだけに新たなプロトコルに対応する必要なく、プッシュサービスを常時提供することが可能となる。
【００３４】
本明細書に実施形態として記載されている画像処理装置等によると、プルサービスの利用に用いるＨＴＴＰを用いて、上位のプロトコルであるサーバプッシュを可能にするためのセッションを確立できる。これにより、インターネットに接続する装置であれば一般的に用いられているＨＴＴＰに関する処理を行う構成、たとえばＨＴＴＰの処理を行うプロトコルスタックを用いて、応答情報に対応するプッシュサービスを提供することができるので、より都合が良い。
【００３５】
上記の技術を実現するための通信システムも、新規で有用である。
【図面の簡単な説明】
【００３６】
【図１】通信システムの構成を示す。
【図２】多機能装置が実行する各処理のフロー図を示す。
【図３】多機能装置が実行する各処理のフロー図を示す。
【図４】仲介サーバが実行する各処理のフロー図を示す。
【図５】仲介サーバが実行する各処理のフロー図を示す。
【図６】サービスサーバが実行する各処理のフロー図を示す。
【図７】通信システム２の第１動作例を示すフロー図である。
【図８】通信システム２の第２動作例を示すフロー図である。
【発明を実施するための形態】
【００３７】
＜システムの構成＞
図１に示されるように、通信システム２は、ルータ７および８と、多機能機１０および１１と、仲介サーバ６０と、サービスサーバ１００、１１０、および１２０と、を備えている。多機能機１０は、ＬＡＮ４およびルータ７を介してインターネット６に接続されている。多機能機１１は、ルータ８を介してインターネット６に接続されている。また、仲介サーバ６０およびサービスサーバ１００、１１０、および１２０も、インターネット６に接続されている。
【００３８】
＜多機能機１０の構成＞
多機能機１０は、印刷機能、スキャン機能、コピー機能、ＦＡＸ機能等の多機能を実行可能である。多機能機１０は、操作部１２と、表示部１４と、ネットワークインターフェース１６と、印刷実行部１８と、スキャン実行部１９と、制御部２０と、を備える。操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示を多機能機１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ネットワークインターフェース１６は、ＬＡＮ４を介してルータ７に接続されている。印刷実行部１８は、インクジェット方式、レーザ方式等の印刷機構を備える。スキャン実行部１９は、ＣＣＤ、ＣＩＳ等のスキャン機構を備える。制御部２０は、ＣＰＵ２２と、メモリ２４と、を備える。メモリ２４は、アプリケーションプログラム２５およびプロトコルスタック２６を記憶している。メモリ２４は、コンピュータが読み取り可能なストレージ媒体であってよい。コンピュータが読み取り可能なストレージ媒体とは、ＲＯＭ、ＲＡＭ、フラッシュメモリ、ハードディスクなどのnon-transitoryな媒体である。インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、non-transitoryな媒体には含まれない。ＣＰＵ２２は、メモリ２４に格納されているアプリケーションプログラム２５に従って、サービスサーバ１００、１２０が提供する、後述するプッシュサービスを常時利用するためのアプリケーション処理を実行する。ＣＰＵ２２は、メモリ２４に格納されているプロトコルスタック２６に従って、ＨＴＴＰ（Hyper Text Transfer Protocolの略）や、ＸＭＰＰ  over  ＢＯＳＨ（eXtensible Messaging and Presence Protocol over Bidirectional-streams Over Synchronous HTTPの略）、などのプロトコル処理を実行する。ＣＰＵ２２は、プロトコル処理によって、後述するＸＭＰＰ  over  ＢＯＳＨに従ったセッション確立や、ＨＴＴＰに従ったコネクション確立などを行う。
【００３９】
プロトコルスタック２６は、ＨＴＴＰのプロトコル処理であるＨＴＴＰ処理を実行するためのＨＴＴＰプログラム２７と、ＸＭＰＰ  over  ＢＯＳＨのプロトコル処理であるＸＭＰＰ  over  ＢＯＳＨ処理を行うためのＸＭＰＰ  over  ＢＯＳＨプログラム２８と、を含む。ＣＰＵ２２は、ＸＭＰＰ  over  ＢＯＳＨ処理において、ＸＭＰＰ  over  ＢＯＳＨに従った各種情報を含むＨＴＴＰリクエスト情報、またはＨＴＴＰレスポンス情報を、ＨＴＴＰ処理を介して、送信させる。ＣＰＵ２２は、ＸＭＰＰ  over  ＢＯＳＨに従った各種情報を含むＨＴＴＰリクエスト情報、またはＨＴＴＰレスポンス情報をネットワークインターフェース１６が受信した場合に、ＨＴＴＰ処理を介して、ＸＭＰＰ  over  ＢＯＳＨ処理において取得する。ＸＭＰＰ  over  ＢＯＳＨに従ったセッションのことを、ＸＭＰＰセッションとも記載する。また、ＨＴＴＰに従ったコネクションのことをＨＴＴＰコネクション、または、ＴＣＰコネクションとも記載する。なお、ＸＭＰＰ  over  ＢＯＳＨは、後述するセッション確立型プロトコルの例である。また、ＨＴＴＰは、後述するセッションレス型プロトコルの例である。
【００４０】
ＣＰＵ２２は、アプリケーション処理によって送信情報を取得し、取得した送信情報を、プロトコル処理を介して、ネットワークインターフェース１６からＸＭＰＰ  over  ＢＯＳＨ、ＨＴＴＰなどを用いて送信させる。また、ＣＰＵ２２は、ネットワークインターフェース１６が受信した受信情報を、プロトコル処理を介して、アプリケーション処理において取得する。アプリケーション処理に通知すべき事象がプロトコル処理によって発生すると、ＣＰＵ２２は、プロトコル処理によって、イベント情報を出力する。ＣＰＵ２２は、イベント情報に基づいて、プロトコル処理において発生した事象を、アプリケーション処理において認識することができる。ＣＰＵ２２は、プロトコル処理においてセッションやコネクションが確立されたとき、確立したセッションやコネクションを識別するための情報を、アプリケーション処理に伝達する。確立したセッションやコネクションを識別するための情報としては、ソケット情報などが挙げられる。
【００４１】
メモリ２４には、後述する、モード情報、セッション維持情報、などが記憶されている。モード情報は、セッション維持モードが「オン」または「オフ」の何れに設定されているかを示す情報である。セッション維持モードは、多機能機１０が仲介サーバ６０との間でＸＭＰＰセッションを確立し、サービスサーバ１００、１２０が提供する各種の後述するプッシュサービスを常時利用できるようにセッションを維持するモードである。モード情報は、多機能機１０の製造時において、メモリ２４に記憶されるとしてもよい。「製造時」は、ベンダの工場での製品製造時に限られない。例えば、多機能機１０のディーラが、顧客に多機能機１０を発送する際に、多機能機１０に発送前の設定を施す場合も、「製造時」に含まれる。セッション維持情報は、ＸＭＰＰセッションを仲介サーバ６０と確立するための情報である。セッション維持情報は、仲介サーバ６０のＩＰアドレスなどを含んでいてもよい。なお、多機能機１０は、サービスサーバ１１０が提供する、後述するプルサービスを、ＨＴＴＰを用いて利用することも可能である。
【００４２】
本明細書における記載上の注意点を説明する。本明細書において、「仲介サーバ６０のＣＰＵ７２が、各種の情報を受信する」という記載は、「仲介サーバ６０のＣＰＵ７２が、ネットワークインターフェース６２を介して各種の情報を取得する」という技術内容を含んでいるものとする。また、「仲介サーバ６０のＣＰＵ７２が、各種の情報を送信する」という記載は、「仲介サーバ６０のＣＰＵ７２が、ネットワークインターフェース６２を介して各種の情報を出力する」という技術内容を含んでいるものとする。なお、多機能機１０のＣＰＵ２２およびネットワークインターフェース１６についても、同様の注意点が存在する。
【００４３】
ここで、「データ」と「情報」の文言の定義を記載する。「データ」と「情報」では「情報」を「データ」の上位概念として用いている。そのため、「Ａデータ」を「Ａ情報」と言い換えてもよい。また、「Ａデータ」から複製された、または、変換された「Ｂデータ」は、「Ａデータ」と同等の意味を持って使用される限り「Ａ情報」である。
【００４４】
＜仲介サーバ６０の構成＞
仲介サーバ６０は、サービスサーバ１００、１１０、および１２０とは別体に構成されているサーバである。仲介サーバ６０は、サービスサーバ１００、および１２０から多機能機１０または１１へのアクセスを仲介するためのサーバである。仲介サーバ６０は、多機能機１０および１１のベンダによって提供されるサーバである。仲介サーバ６０は、ネットワークインターフェース６２と、制御部７０と、を備える。
【００４５】
制御部７０は、ＣＰＵ７２と、メモリ７４と、を備える。メモリ７４には、アプリケーションプログラム７５、デバイスデータベース７６、多機能機管理データベース７７、プロトコルスタック７８、が記憶されている。メモリ７４は、メモリ２４と同様に、コンピュータが読み取り可能なストレージ媒体であってよい。プロトコルスタック７８には、ＨＴＴＰプログラム８１およびＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨプログラム８２が含まれている。ＣＰＵ７２は、アプリケーションプログラム７５に従って、サービスサーバ１００、１２０が提供するプッシュサービスを多機能機１０、１１に常時利用させるためのアプリケーション処理を実行する。ＣＰＵ２２がプロトコルスタック７８に従って実行するプロトコル処理や、プロトコル処理とアプリケーション処理との間の連携などは、多機能機１０についての説明した内容に準ずる。デバイスデータベース７６は、後述するレジスタ情報を多機能機１０および１１から受信して記憶するためのデータベースである。多機能機管理データベース７７は、通信ステータスおよびリクエストＩＤを記憶する領域である。通信ステータスは、多機能機１０および１１の各々がオンライン状態であるかオフライン状態であるかを示す情報である。オンライン状態とは、後述するＸＭＰＰセッションが多機能機１０と仲介サーバ６０との間で確立されている状態である。オフライン状態とは、ＸＭＰＰセッションが多機能機１０と仲介サーバ６０との間で確立されていない状態である。リクエストＩＤは、後述するＳ３５３において生成される情報である。リクエストＩＤは、多機能機１０および１１の各々に対応して生成される。
【００４６】
＜プルサービスとプッシュサービス、ルータ７および８の機能＞
通信システム２における、プルサービスとプッシュサービスについて説明する。プルサービスは、サービスを利用する装置Ａからサービスを提供するサーバＢにサービスを要求することで、装置Ａが、サーバＢの提供するサービスを利用する形態のサービスのことである。サーバＢに記憶された画像データなどのコンテンツデータのダウンロードを要求する要求情報を装置Ａが要求し、要求情報を受信したサーバＢがコンテンツデータを返信するダウンロードサービスは、プルサービスの一例である。装置ＡがサーバＢに、アップロードを要求する要求情報とともにコンテンツデータを送信し、コンテンツデータと要求情報とを受信したサーバＢが、コンテンツデータを記憶するアップロードサービスも、プルサービスの一例である。通信システム２では、多機能機１０がプルサービスを利用する装置Ａに該当する。サービスサーバ１００とは異なるサービスサーバ１１０がプルサービスを提供するサーバＢに該当する。
【００４７】
プルサービスの場合、多機能機１０からサービスサーバ１１０を送信先として、要求情報を含むＨＴＴＰリクエスト情報を送信すると、ルータ７がＨＴＴＰリクエスト情報を受信し、インターネット６に転送する。この際、ルータ７は、転送したＨＴＴＰリクエスト情報を識別するための情報、多機能機１０のプライベートＩＰアドレスを示す情報、などを記憶する。また、ルータ７が転送したＨＴＴＰリクエスト情報には、ルータ７が転送したＨＴＴＰリクエスト情報を識別するための情報、ルータ７のＩＰアドレスなどの情報が含まれている。要求データを含むＨＴＴＰリクエスト情報を受信したサービスサーバ１１０は、要求情報に応じたコンテンツデータを含むＨＴＴＰレスポンス情報を、ルータ７へ返信する。なお、返信するＨＴＴＰレスポンス情報には、どのＨＴＴＰリクエスト情報への返信であるのかを識別するための情報などが含まれている。ＨＴＴＰレスポンス情報を受信したルータ７は、ＨＴＴＰレスポンスに含まれる情報と、ＨＴＴＰリクエスト情報を転送する際に記憶した情報に基づいて、ＨＴＴＰレスポンス情報が、多機能機１０が送信したＨＴＴＰリクエスト情報への応答情報であることを特定する。ルータ７は、ＨＴＴＰレスポンス情報が、多機能機１０が送信したＨＴＴＰリクエスト情報への応答情報であるので、ＨＴＴＰレスポンス情報を多機能機１０のプライベートＩＰアドレスを用いて転送する。
【００４８】
もし、サービスサーバ１１０が、多機能機１０を送信先としたＨＴＴＰリクエスト情報を送信すると、ルータ７は、ＨＴＴＰリクエスト情報を受信するものの、ＨＴＴＰリクエスト情報が、多機能機１０が送信した情報への応答情報であることを特定できない。ルータ７は、ＨＴＴＰリクエスト情報が、多機能機１０が送信した情報への応答情報ではないので、ＨＴＴＰリクエスト情報を多機能機１０へ転送しない。
【００４９】
このように、ルータ７がインターネット６側の装置から受信した情報が、多機能機１０が送信元である情報への応答情報であれば、インターネット６側の装置が送信した情報を、多機能機１０へ転送し、ルータ７がインターネット６側の装置から受信した情報が、多機能機１０が送信元である情報への応答情報でなければ、インターネット６側の装置が送信した情報を、多機能機１０へ転送しない、というのが、ルータ７が備えるファイアウォールの機能である。このように、ルータ７がインターネット６側の装置から受信した情報が、多機能機１０が送信元である情報への応答情報であれば、インターネット６側の装置が送信した情報を、多機能機１０のプライベートＩＰアドレスを用いて転送するのが、ルータ７が備えるＮＡＴの機能である。このように、多機能機１０がサービスサーバ１１０を送信先としてサービスを要求する情報を送信することにより受けることができるサービスが、通信システム２におけるプルサービスである。
【００５０】
このように、ルータ７が、サービスサーバ１１０を送信先としたＨＴＴＰリクエスト情報を転送したことを示す情報、多機能機１０のプライベートＩＰアドレスなどを記憶することで、サービスサーバ１１０が送信した応答情報を、ルータ７を介して多機能機１０まで伝達することができる。すなわち、ルータ７が、転送した、サービスサーバ１１０を送信先としたＨＴＴＰリクエスト情報を識別するための情報、多機能機１０のプライベートＩＰアドレスなどを記憶し、サービスサーバ１１０が、ルータ７が転送したＨＴＴＰリクエスト情報を識別するための情報などを受信し、記憶することで、多機能機１０とサービスサーバ１１０との間のコネクションが確立し、確立したコネクションを用いて、サービスサーバ１１０が送信した応答情報を多機能機１０まで伝達することができる。
【００５１】
なお、ＨＴＴＰを用いたコネクションのことをＨＴＴＰコネクションと言う場合もある。ＨＴＴＰはＴＣＰを基礎とするプロトコルであるため、ＨＴＴＰコネクションと言う代わりに、ＴＣＰコネクションと言う場合もある。なお、多機能機１０は、プルサービスを利用するために、ＨＴＴＰに沿った通信を行うためにプロトコルスタック２６を備えている。
【００５２】
プッシュサービスは、サービスを提供するサーバＢにおいてサービスを提供するタイミングとなったときに、サービスを利用する装置ＡにサーバＢからサービスの提供に関連する情報を送信することで、装置Ａが、サーバＢの提供するサービスを利用する形態のサービスのことである。サーバＢが装置Ａにステータス情報を要求し、装置Ａから返信されたステータス情報をサーバＢで管理し、ステータス情報に従った保守点検を行う保守点検サービスは、プッシュサービスの一例である。サーバＢが装置Ａに設定情報を送信し、装置Ａに各種設定を行う遠隔設定サービスは、プッシュサービスの一例である。通信システム２では、多機能機１０がプッシュサービスを利用する装置Ａに該当する。サービスサーバ１００が、プッシュサービスを提供するサーバＢに該当する。プッシュサービスの場合、サービスサーバ１００が、多機能機１０を送信先として、サービスの提供に関連する情報を含むＨＴＴＰリクエスト情報を送信しても、先に述べたように、ルータ７は、ＨＴＴＰリクエスト情報を受信するものの、多機能機１０へ転送しない。すなわち、ルータ７が備えるファイアウォールの機能によって、多機能機１０におけるプッシュサービスの利用が制限される。
【００５３】
なお、多機能機１０からは、サービスサーバ１００においてサービスを提供するタイミングがわからないため、多機能機１０からＨＴＴＰリクエスト情報を送信することでサービスサーバ１００との間にコネクションを確立し、確立したコネクションを利用してサービスの提供に関連する情報を受信することができない。
【００５４】
なお、多機能機１０、ルータ７を例に、プルサービス、プッシュサービス、およびルータの機能について説明したが、多機能機１１、ルータ８についても、多機能機１０、ルータ７と同様である。また、サービスサーバ１００を例にプッシュサービスを説明したが、サービスサーバ１２０についても同様である。
【００５５】
＜サービスサーバ１００の構成＞
サービスサーバ１００は、オンラインサービスに用いられるサーバである。オンラインサービスの一例としては、多機能機１０および１１の保守点検サービスや、多機能機１０および１１への遠隔設定サービスなどが挙げられる。サービスサーバ１００は、インターネット６を介して多機能機１０および１１にアクセスし、多機能機１０および１１からトナー残量などの各種の情報を取得したり、多機能機１０および１１の設定を書き換えたりする処理を行う。
【００５６】
サービスサーバ１００は、制御部１０２を備えている。制御部１０２は、ＣＰＵ１０３およびメモリ１０４を備えている。メモリ１０４には、データ記憶領域１０５が備えられている。データ記憶領域１０５は、各種のデータを記憶しておく領域である。なお、サービスサーバ１１０、１２０の構成は、基本的はサービスサーバ１００と同様であるので、説明を省略する。
【００５７】
＜多機能機１０の動作＞
図２および図３のフローを用いて、多機能機１０で、アプリケーションプログラム２５に基づいて行なわれるアプリケーション処理について説明する。なお、多機能装置１１で行なわれる処理は、多機能機１０で行なわれる処理と同様であるため、説明は省略する。図２および図３のフローは、例えば、多機能機１０の電源が投入されることに応じて開始されてもよい。
【００５８】
Ｓ２１１においてＣＰＵ２２は、セッション維持モードが「オン」に設定されているか否かを判断する。Ｓ２１１は、多機能機１０の起動時に行なわれても良い。起動時の一例としては、多機能機１０の電源が投入された場合や、電源が投入されたあとに起動を指示するユーザ操作を受けた場合などが挙げられる。当該判断は、メモリ２４に記憶されているモード情報に基づいて判断するとしてもよい。セッション維持モードが「オン」に設定されていない場合（Ｓ２１１：ＮＯ）には、Ｓ２１３へ進む。
【００５９】
Ｓ２１３においてＣＰＵ２２は、入力イベントが発生したか否かを判断する。入力イベントが発生したか否かは、例えば操作部１２へのユーザ入力があった場合に、図示しないオペレーティングシステムが出力するイベント情報に基づいて判断されるとしてもよい。入力イベントが発生していない場合（Ｓ２１３：ＮＯ）にはＳ２１３へ戻り、発生した場合（Ｓ２１３：ＹＥＳ）にはＳ２１５へ進む。Ｓ２１５においてＣＰＵ２２は、セッション維持モードを「オン」にする操作によって入力イベントが発生したのか否かを判断する。否定判断される場合（Ｓ２１５：ＮＯ）にはＳ２１７へ進み、ＣＰＵ２２は、入力された操作に応じた処理を実行し、Ｓ２１３へ戻る。一方、肯定判断される場合（Ｓ２１５：ＹＥＳ）にはＳ２１９へ進み、メモリ２４に記憶されているモード情報を「オン」に設定し、Ｓ２１１へ戻る。
【００６０】
発生した入力イベントが、プルサービスの利用を指示する操作によって発生した入力イベントである場合、Ｓ２１７において、ＣＰＵ２２は、プロトコル処理を介して、サービスサーバ１１０を送信先として、プルサービスの利用を要求する要求情報を含むＨＴＴＰリクエスト情報を送信させる。そして、サービスサーバ１１０が送信した、プルサービスの利用に関連する応答情報を含むＨＴＴＰレスポンス情報をネットワークインターフェース１６が受信すると、ＣＰＵ２２は、プルサービスの利用に関連する応答情報を取得し、プルサービスの利用に関する処理を実行する。ＨＴＴＰレスポンス情報に含まれるコンテンツデータに基づく画像を多機能機１０において形成させる処理や、ＨＴＴＰレスポンス情報に含まれるコンテンツデータをメモリ２４に記憶させる処理などが、プルサービス方式のダウンロードサービスの利用に関する処理の例である。ＨＴＴＰリクエスト情報に含まれたコンテンツデータをサービスサーバ１１０に記憶させた、あるいは、サービスサーバ１１０から他の装置に転送させたことを示す応答情報を取得し、サービスの実行状況をユーザに報知する処理が、プルサービス方式のアップロードサービスの利用に関する処理の例である。
【００６１】
一方、Ｓ２１１において、セッション維持モードが「オン」に設定されていると判断される場合（Ｓ２１１：ＹＥＳ）には、Ｓ２３１へ進む。Ｓ２３１においてＣＰＵ２２は、レジスタ処理を実行する。レジスタ処理は、多機能機１０のレジスタ情報を、仲介サーバ６０のデバイスデータベース７６に登録する処理である。レジスタ情報には、デバイスＩＤ、能力情報、などの各種情報が含まれている。デバイスＩＤは、多機能機１０を識別するための情報である。デバイスＩＤは、後述する要求情報の送信先の多機能機を識別するために用いられる。デバイスＩＤの一例としては、多機能機１０の製造シリアル番号が挙げられる。能力情報は、メモリ容量や印刷可能な用紙サイズなど、多機能機１０の各種の能力を示す情報である。レジスタ処理は、ＨＴＴＰに基づく通信によって行なわれてもよい。
【００６２】
Ｓ２３３においてＣＰＵ２２は、メモリ２４に記憶されているセッション維持情報に基づいて、たとえば、仲介サーバ６０のＩＰアドレスをプロトコルスタック２６に伝達し、セッション確立型のプロトコルであるＸＭＰＰ  over  ＢＯＳＨに従ったＸＭＰＰセッションを仲介サーバ６０と確立するためのプロトコル処理を、プロトコルスタック２６に行わせる。なお、多機能機１０と仲介サーバ６０の間にＸＭＰＰセッションが確立している状態のときに、多機能機１１と仲介サーバ６０との間のＸＭＰＰセッションが新たに確立されてもよい。逆の場合も同様である。
【００６３】
ＸＭＰＰセッションを確立するための具体的な手順について説明する。多機能機１０は、ＸＭＰＰ  over  ＢＯＳＨに従って、ＸＭＰＰセッションで利用されるべきセッションＩＤの送信を仲介サーバ６０に要求するための第１の要求情報を含むＨＴＴＰリクエスト情報を送信する。第１の要求情報を含むＨＴＴＰリクエスト情報を、ＸＭＰＰセッション確立要求情報とも記載する。
【００６４】
仲介サーバ６０は、多機能機１０が送信したＸＭＰＰセッション確立要求情報を受信することで取得した場合に、セッションＩＤを生成して、ＸＭＰＰ  over  ＢＯＳＨに従って、セッションＩＤを含むＨＴＴＰレスポンス情報を返信する。
【００６５】
多機能機１０は、仲介サーバ６０が送信したセッションＩＤを受信することで取得した場合に、ＸＭＰＰ  over  ＢＯＳＨに従って、取得したセッションＩＤと、セッションＩＤを取得したことを仲介サーバ６０に通知するための通知情報を含むＨＴＴＰリクエスト情報を送信する。
【００６６】
仲介サーバ６０は、多機能機１０が送信した、セッションＩＤと、通知情報と、を含むＨＴＴＰリクエスト情報を受信した場合に、ＸＭＰＰ  over  ＢＯＳＨに従って、ＯＫを示す応答情報を含むＨＴＴＰレスポンス情報を返信する。このように、ＸＭＰＰ  over  ＢＯＳＨに従った各種情報の送受信を通じて、多機能機１０及び仲介サーバ６０が、共通のセッションＩＤを取得することで、ＸＭＰＰセッションが確立する。以降、ＸＭＰＰ  over  ＢＯＳＨに従って、このセッションＩＤと、各種情報と、を含むＨＴＴＰリクエスト情報を送信することで、確立したＸＭＰＰセッションを用いた情報の送信が行われる。確立したＸＭＰＰセッションを用いた情報を取得した側では、セッションＩＤによって、取得した情報が、確立したＸＭＰＰセッションを用いて送信された情報であることを認識できる。
【００６７】
ＸＭＰＰ  over  ＢＯＳＨ処理によって、ＸＭＰＰセッションが確立したことを示すイベント情報が出力され、確立したセッションを識別する情報が、アプリケーション処理に伝達される。これにより、アプリケーション処理において、ＣＰＵ２２は、ＸＭＰＰセッションの確立を認識することができる。ＸＭＰＰセッションの確立を認識すると、ＣＰＵ２２は、Ｓ２３４へ進む。
【００６８】
Ｓ２３４においてＣＰＵ２２は、後述するタイムアップ情報がメモリ２４に記憶されているか否かを判断する。Ｓ２３４において否定判断される場合（Ｓ２３４：ＮＯ）には、Ｓ２３６に進む。Ｓ２３６において、ＣＰＵ２２は、確立したセッションを用いて、ＸＭＰＰ  over  ＢＯＳＨに従ったコネクションであるＸＭＰＰコネクションを仲介サーバ６０との間で確立するためのプロトコル処理を、プロトコルスタック２６に行わせる。
【００６９】
ＸＭＰＰコネクションを確立するための具体的な手順について説明する。多機能機１０は、ＸＭＰＰ  over  ＢＯＳＨに従って、仲介サーバ６０との間で確立したセッションを識別するセッションＩＤと、ＸＭＰＰコネクションの確立を要求するための第２の要求情報を含むＨＴＴＰリクエスト情報を、仲介サーバ６０を送信先として送信する。第２の要求情報は、仲介サーバ６０から送信される、プッシュサービスの提供に関連する情報を含む、ＸＭＰＰ  over  ＢＯＳＨに従ったＨＴＴＰレスポンス情報を、を、多機能機１０まで伝達するために必要な情報である。第２の要求情報を含むＨＴＴＰリクエスト情報のことを、ＸＭＰＰコネクション確立要求情報とも記載する。ルータ７が、ＸＭＰＰコネクション確立要求情報を、インターネット６に転送し、転送されたＨＴＴＰリクエスト情報を仲介サーバ６０が受信することで、プルサービスの説明において先に述べた仕組みにより、多機能機１０と仲介サーバ６０との間でＨＴＴＰコネクションが確立される。このように、ＸＭＰＰ  over  ＢＯＳＨに従った手順で確立されたＨＴＴＰコネクションが、ＸＭＰＰコネクションである。なお、プッシュサービスの提供に関連する情報には、サービスサーバ１００が仲介サーバに送信したＧＥＴリクエスト情報や、ＳＥＴリクエスト情報が挙げられる。ＧＥＴリクエスト情報は、オブジェクトＩＤによって指定される情報の返信を、サービスサーバ１００が多機能機１０に要求するために用いられるコマンド情報である。ＳＥＴリクエスト情報は、オブジェクトＩＤによって指定される情報に従った設定変更を、多機能機１０に要求するために用いられるコマンド情報である。オブジェクトＩＤによって指定される情報の例としては、ＭＡＣアドレスを示す情報、ＩＰアドレスを示す情報、多機能機１０の装置状態を示す各種情報（例：トナー残量情報）、などが挙げられる。
【００７０】
仲介サーバ６０は、ＸＭＰＰコネクションが確立したときに、サービスサーバ１００によるプッシュサービスの提供タイミングであれば、ＸＭＰＰコネクション確立要求情報に対するＨＴＴＰレスポンス情報に、ＳＥＴリクエスト情報、またはＧＥＴリクエスト情報などを含ませて、多機能機１０を送信先として送信する。ＸＭＰＰコネクション確立要求情報に対するＨＴＴＰレスポンス情報のことを、ＸＭＰＰレスポンス情報とも記載する。
【００７１】
一方で、仲介サーバ６０は、ＸＭＰＰコネクションが確立したときに、サービスサーバ１００によるプッシュサービスの提供タイミングでなければ、プッシュサービスの提供タイミングになってから、ＸＭＰＰレスポンス情報に、ＳＥＴリクエスト情報、またはＧＥＴリクエスト情報などを含ませて、多機能機１０を送信先として送信する。このように、多機能機１０からのリクエスト情報を受信したタイミングで必ずしもレスポンス情報を送信する必要なく、サービスサーバ側のプッシュサービスの提供タイミングを直接の契機として、ＸＭＰＰレスポンス情報を、多機能機１０を送信先として送信することを、サーバプッシュとも記載する。
【００７２】
仲介サーバ６０が送信する、ＸＭＰＰレスポンス情報は、セッションＩＤを含まない。ただし、当該ＸＭＰＰレスポンス情報には、ＸＭＰＰコネクション確立要求情報に対するＨＴＴＰレスポンス情報であることを識別可能な情報は含まれているので、ＸＭＰＰレスポンス情報を取得した多機能機１０では、ＸＭＰＰセッションを利用して返信された情報であることを認識できる。
【００７３】
なお、ＸＭＰＰセッションの確立や、ＸＭＰＰコネクションの確立、ＸＭＰＰリクエスト情報の送信、ＸＭＰＰレスポンス情報の送信がＨＴＴＰによって行われていることからわかるように、ＸＭＰＰ  over  ＢＯＳＨはＨＴＴＰを利用する上位プロトコルであり、ＨＴＴＰはＸＭＰＰ  over  ＢＯＳＨに利用される下位プロトコルである。下位のプロトコル処理は、ネットワークインターフェース１６を介して取得した情報を上位のプロトコル処理に伝達し、上位のプロトコル処理は、伝達された情報を処理する。上位のプロトコル処理は、ネットワークインターフェース１６を介して送信させたい情報を下位のプロトコル処理に伝達し、下位のプロトコル処理は、伝達された情報を処理する。すなわち、多機能機１０は、ＨＴＴＰのプロトコルスタックを、プルサービスの利用とプッシュサービスの利用との双方に用いている。
【００７４】
Ｓ２３７においてＣＰＵ２２は、不図示のタイマーをスタートさせる。タイマーのタイムアップ時間は、予め定められるとしてもよい。タイムアップ時間は、例えば１分に設定されてもよい。
【００７５】
Ｓ２３８においてＣＰＵ２２は、イベントが発生したか否かを判断する。発生していない場合（Ｓ２３８：ＮＯ）にはＳ２３８へ戻り、発生した場合（Ｓ２３８：ＹＥＳ）にはＳ２３９へ進む。Ｓ２３９においてＣＰＵ２２は、Ｓ２３８で検出されたイベントが、Ｓ２３７でスタートさせたタイマーのタイムアップであるか否かを判断する。タイマーのタイムアップである場合（Ｓ２３９：ＹＥＳ）にはＳ２４０へ進み、メモリ２４にタイムアップ情報を記憶させ、Ｓ２３４に戻る。
【００７６】
一方、Ｓ２３４において肯定判断される場合（Ｓ２３４：ＹＥＳ）には、Ｓ２３５に進む。Ｓ２３５においてＣＰＵ２２は、メモリ２４に記憶されているタイムアップ情報を削除し、Ｓ２４１に進む。
【００７７】
Ｓ２４１においてＣＰＵ２２は、プロトコル処理を介して、ＨＴＴＰを用いて、仲介サーバ６０を送信先とした生存通知情報を送信させる。生存通知情報は、Ｓ２３３で確立したＸＭＰＰセッションが確立していると多機能機１０が認識していることを示すための情報を含む。なお、仲介サーバ６０のプロトコル処理において、Ｓ２３３で確立したＸＭＰＰセッションが有効であると認識できていない場合、ＸＭＰＰセッションを用いた情報は、仲介サーバ６０におけるアプリケーション処理まで伝達されない。しかしながら、Ｓ２４１では、ＨＴＴＰを用いて生存通知情報を送信させているため、仲介サーバ６０のプロトコル処理において、Ｓ２３３で確立したＸＭＰＰセッションが有効であると認識できていない場合であっても、仲介サーバ６０におけるアプリケーション処理まで生存通知情報が伝達される。そしてＳ２４２においてタイマーを再スタートさせ、Ｓ２４４に進む。
【００７８】
Ｓ２４４において、ＣＰＵ２２は、生存通知情報に対して仲介サーバ６０がＨＴＴＰを用いて返信した生存応答情報を、プロトコル処理を介して取得したか否かを判断する。生存応答情報は、Ｓ２３３で確立したＸＭＰＰセッションが確立していることを仲介サーバ６０が認識していることを示すための情報を含んでいる。肯定判断である場合（Ｓ２４４：ＹＥＳ）には、Ｓ２３６に進み、仲介サーバ６０との間で、新たなＸＭＰＰコネクションの確立を行う。一方、否定判断である場合（Ｓ２４４：ＮＯ）には、Ｓ２４６に進み、生存通知情報の送信から所定時間が経過しているか否かを判断する。否定判断である場合（Ｓ２４６：ＮＯ）には、Ｓ２４４の判断に戻る。また、肯定判断である場合（Ｓ２４６：ＹＥＳ）には、Ｓ２３３に戻り、仲介サーバとの間で、新たなＸＭＰＰセッションの確立を行う。
【００７９】
このように、ＸＭＰＰコネクションの確立からタイムアップ時間の経過までに、ＳＥＴリクエスト情報、またはＧＥＴリクエスト情報などを含んだ、ＸＭＰＰレスポンス情報の受信を確認できなかった場合には、生存通知情報を仲介サーバに送信することで、ＸＭＰＰセッションが確立していると多機能機１０が認識していることを仲介サーバ６０に通知する。このように、生存応答情報を仲介サーバ６０から受信することで、ＸＭＰＰセッションが確立していると仲介サーバ６０が認識していることを、多機能機１０の側で認識する。
【００８０】
そして、生存応答情報に基づいて、ＸＭＰＰセッションが確立していると仲介サーバ６０が認識していることを認識できた場合には、ＸＭＰＰコネクションが切断されている可能性があるので、新たにＸＭＰＰコネクションを確立させることで、仲介サーバ６０が送信するＸＭＰＰレスポンス情報を多機能機１０まで伝達させるための準備を行う。ＸＭＰＰコネクションの確立から、ＸＭＰＰレスポンス情報の返信がしばらくなかったがために、多機能機１０から仲介サーバ６０までの間にある機器、たとえば、ルータ７などが、ＸＭＰＰコネクション確立要求情報をインターネット６に転送したことを示す情報や、多機能機１０のプライベートＩＰアドレスを示す情報などを、削除してしまった場合などが、ＸＭＰＰコネクションが切断された場合の例である。
【００８１】
一方、生存応答情報を受信できず、ＸＭＰＰセッションが確立していると仲介サーバ６０が認識していることを認識できなかった場合には、ＸＭＰＰセッションが切断されている可能性があるので、新たにＸＭＰＰセッションを確立させ、さらに、ＸＭＰＰコネクションを確立させることで、仲介サーバ６０が送信するＸＭＰＰレスポンス情報を多機能機１０まで伝達させるための準備を行う。仲介サーバ６０がリセットされるなどによって、仲介サーバ６０においてセッションＩＤや、確立したＸＭＰＰセッションを識別する情報などを削除してしまった場合などが、ＸＭＰＰセッションが切断された場合の例である。また、仲介サーバ６０のプロトコル処理によって、ＸＭＰＰレスポンス情報の送信を長時間行っていないＸＭＰＰセッションについて、そのＸＭＰＰセッションを識別する情報などを削除してしまった場合などが、ＸＭＰＰセッションが切断された場合の例である。
【００８２】
このように、生存通知情報の送信と生存応答情報の確認に基づいて、仲介サーバ６０が送信するＸＭＰＰレスポンス情報を多機能機１０まで伝達させるための準備を、タイムアップ時間の経過ごとに行っている。このように、多機能機１０では、常時、サービスサーバ１００によるプッシュサービスの提供タイミングになったときに、ＳＥＴリクエスト情報、またはＧＥＴリクエスト情報などを含んだＸＭＰＰレスポンス情報を受信することができる準備ができていることになる。すなわち、常時、多機能機１０に、プッシュサービスを利用させることができる。
【００８３】
なお、本実施形態では、ＸＭＰＰコネクションの確立から、タイムアップ時間の経過までに、ＸＭＰＰコネクションが切断されている可能性がある。すなわち、本実施形態の説明で述べている「常時」は、ほとんどの時間プッシュサービスを利用できれば、わずかな時間だけ、プッシュサービスを利用できない時間があってもよい、という程度の概念である。
【００８４】
なお、タイムアップ時間は、ＸＭＰＰコネクションの確立から、ＸＭＰＰレスポンス情報の返信がしばらくなかったとしても、多機能機１０から仲介サーバ６０までの間にある機器がＸＭＰＰコネクションの切断をしないであろう時間を設定しておくと、都合が良い。たとえば、１分を設定しておいてもよい。もちろん、１分より長い時間を設定しておいてもよい。また、多機能機１０から仲介サーバ６０までの間にある機器がＸＭＰＰコネクションを切断することがほとんどない場合、タイムアップ時間をごく長く設定しておいてもよい。たとえば、２４時間を設定しておいてもよい。また、タイムアップ時間を用いた、生存通知情報の送信以降の処理を一切行わないようにしてもよい。
【００８５】
また、Ｓ２３９において、イベントがタイマーのタイムアップではないと判断された場合（Ｓ２３９：ＮＯ）には、Ｓ２５１へ進む。Ｓ２５１においてＣＰＵ２２は、Ｓ２３８で検出されたイベントが、ネットワークインターフェース１６が第２要求情報を受信したことによって発生したイベントであるか否かを判断する。第２要求情報は、ＸＭＰＰセッションを介して、仲介サーバ６０から多機能機１０へ送信される情報である。第２要求情報の一例としては、サービスサーバ１００が仲介サーバに送信したＧＥＴリクエスト情報や、ＳＥＴリクエスト情報を、多機能機１０を送信先として転送した情報が挙げられる。
【００８６】
Ｓ２５１において肯定判断される場合（Ｓ２５１：ＹＥＳ）には、Ｓ２６１へ進む。Ｓ２６１においてＣＰＵ２２は、第２要求情報を解析して、第２要求情報に対応する応答情報を取得する。第２要求情報がＧＥＴリクエスト情報である場合に、オブジェクトＩＤによって指定される、メモリ２４に記憶されたＭＡＣアドレスを示す情報、ＩＰアドレスを示す情報、多機能機１０の装置状態を示す各種情報などを、オペレーティングシステムを介して読み出すことで取得することが、応答情報の取得の例である。第２要求情報がＳＥＴリクエスト情報である場合に、オブジェクトＩＤによって指定される、メモリ２４に記憶された設定情報などを、オペレーティングシステムを介して変更し、変更結果を示す情報を生成することで取得することが、応答情報の取得の例である。
【００８７】
またＣＰＵ２２は、第２要求情報に含まれていたリクエストＩＤを、応答情報に組み込む。例えば、第２要求情報がＧＥＴリクエスト情報である場合には、ＣＰＵ２２は、ＧＥＴリクエスト情報に含まれているオブジェクトＩＤによって指定される情報を含んだＧＥＴレスポンス情報を生成する。また例えば、第２要求情報がＳＥＴリクエスト情報である場合には、ＣＰＵ２２は、ＳＥＴリクエスト情報に含まれているオブジェクトＩＤによって指定される情報を変更するなどの設定処理を実行したことを示す情報を含んだＳＥＴレスポンス情報を生成する。
【００８８】
Ｓ２６５においてＣＰＵ２２は、コネクションレス型のプロトコルであるＨＴＴＰに従って、プロトコル処理を介して、Ｓ２６１で生成した応答情報を含んだＨＴＴＰリクエスト情報を、仲介サーバ６０へ送信させる。
【００８９】
Ｓ２６７においてＣＰＵ２２は、Ｓ２６５で送信したＨＴＴＰリクエスト情報に応答して、仲介サーバ６０が多機能機１０へ送信したＨＴＴＰレスポンス情報を、ネットワークインターフェース１６が受信したか否かを判断する。受信していない場合（Ｓ２６７：ＮＯ）にはＳ２６７へ戻る。一方、受信した場合（Ｓ２６７：ＹＥＳ）にはＳ２３６へ戻り、仲介サーバ６０との間のＸＭＰＰコネクションを新たに確立するための処理を行うので、多機能機１０は、再度プッシュサービスを利用することが可能になる。
【００９０】
一方、Ｓ２５１において、Ｓ２３８で検出されたイベントが第２要求情報の受信ではないと判断された場合（Ｓ２５１：ＮＯ）には、Ｓ２５３へ進む。Ｓ２５３においてＣＰＵ２２は、Ｓ２３８で検出されたイベントが、セッション維持モードを「オフ」にする操作によって入力イベントが発生したのであるか否かを判断する。否定判断される場合（Ｓ２５３：ＮＯ）にはＳ２５７へ進み、Ｓ２１７と同様に、ＣＰＵ２２は、入力された操作に応じた処理を実行し、Ｓ２３８へ戻る。一方、肯定判断される場合（Ｓ２５３：ＹＥＳ）にはＳ２５５へ進み、メモリ２４に記憶されているモード情報を「オフ」に設定し、Ｓ２１１へ戻る。
【００９１】
＜仲介サーバ６０の動作＞
図４および図５のフローを用いて、仲介サーバ６０の詳細な動作について説明する。図４のフローは、例えば、仲介サーバ６０の電源が投入されることに応じて開始されてもよい。Ｓ３１１においてＣＰＵ７２は、管理タイマー処理をスタートさせる。管理タイマー処理については後述する。Ｓ３１３においてＣＰＵ７２は、イベントが発生したか否かを判断する。発生していない場合（Ｓ３１３：ＮＯ）にはＳ３１３へ戻り、発生した場合（Ｓ３１３：ＹＥＳ）にはＳ３１５へ進む。Ｓ３１５においてＣＰＵ７２は、発生したイベントが、多機能機１０または１１からのレジスタ情報をネットワークインターフェース６２が受信したことによって発生したイベントであるか否かを判断する。肯定判断される場合（Ｓ３１５：ＹＥＳ）にはＳ３１７へ進み、ＣＰＵ７２は、受信したレジスタ情報をデバイスデータベース７６に登録する。そしてＳ３１３へ戻る。
【００９２】
なお、ＣＰＵ７２は、レジスタ情報の受信に際して、ＰＩＮコードなどの認証情報を用いて、多機能機１０または１１を認証してもよい。この場合、ＣＰＵ７２は、多機能機１０または１１レジスタ情報を登録すべき装置であると認証できた場合に、レジスタ情報をデバイスデータベース７６に登録してもよい。
【００９３】
一方、Ｓ３１５において否定判断される場合（Ｓ３１５：ＮＯ）には、Ｓ３２１へ進む。Ｓ３２１においてＣＰＵ７２は、発生したイベントが、プロトコル処理によって多機能機１０または１１との間でＸＭＰＰセッションが確立したことにより発生したイベントであるか否かを判断する。プロトコル処理では、＜多機能機１０の動作＞のタイトルを付した部分において先に説明した手順で、ＸＭＰＰセッションの確立が行われる。肯定判断される場合（Ｓ３２１：ＹＥＳ）には、Ｓ３２３へ進む。
【００９４】
Ｓ３２３においてＣＰＵ７２は、ＸＭＰＰセッションを確立した多機能機に関する通信ステータス情報およびリクエストＩＤを記憶する領域が、多機能機管理データベース７７に存在するか否かを判断する。存在する場合（Ｓ３２３：ＹＥＳ）にはＳ３１３へ戻り、存在しない場合（Ｓ３２３：ＮＯ）にはＳ３２５へ進む。Ｓ３２５においてＣＰＵ７２は、多機能機管理データベース７７に、ＸＭＰＰセッションを確立した多機能機に関する通信ステータス情報およびリクエストＩＤを記憶する領域を生成する。そしてＳ３１３へ戻る。
【００９５】
一方、発生したイベントがＸＭＰＰセッションが確立したことにより発生したイベントではない場合（Ｓ３２１：ＮＯ）には、Ｓ３４１へ進む。Ｓ３４１においてＣＰＵ７２は、発生したイベントが、ＸＭＰＰセッションを確立した多機能機との間で、プロトコル処理によって、ＸＭＰＰコネクションが確立したことにより発生したイベントであるか否かを判断する。プロトコル処理では、＜多機能機１０の動作＞において先に説明した手順で、ＸＭＰＰコネクションの確立が行われる。肯定判断される場合（Ｓ３４１：ＹＥＳ）には、Ｓ３４２へ進む。Ｓ３４２においてＣＰＵ７２は、確立したＸＭＰＰコネクションを識別するコネクション情報を、メモリ７４に記憶させる。そしてＳ３２７へ進む。
【００９６】
Ｓ３２７においてＣＰＵ７２は、多機能機管理データベース７７に記憶された、ＸＭＰＰコネクションを確立した多機能機に関する通信ステータス情報を、「オンライン」に設定する。Ｓ３２９においてＣＰＵ７２は、ＸＭＰＰコネクションを確立した多機能機に関する不図示の管理タイマーをスタートさせる。そしてＳ３１３へ戻る。管理タイマーは、ＸＭＰＰコネクションを確立した多機能機それぞれについて設けられるタイマーであって、ＸＭＰＰコネクションの確立からタイムアップ時間が経過していないかを判断するソフトウェアタイマーである。管理タイマーは、ＸＭＰＰコネクションの確立からタイムアップ時間が経過した場合、タイムアップしたことを示すイベントを出力する。タイムアップ時間は、たとえば２分に設定される。
【００９７】
一方、Ｓ３４１において否定判断される場合（Ｓ３４１：ＮＯ）には、Ｓ３３１へ進む。Ｓ３３１においてＣＰＵ７２は、発生したイベントが管理タイマーのタイムアップであるか否かを判断する。肯定判断される場合（Ｓ３３１：ＹＥＳ）にはＳ３３３へ進み、ＣＰＵ７２は、多機能機管理データベース７７に記憶された、タイムアップした管理タイマーに対応する多機能機に関する通信ステータス情報を「オフライン」に設定する。そしてＳ３１３へ戻る。一方、否定判断される場合（Ｓ３３１：ＮＯ）には、Ｓ３４３へ進む。
【００９８】
Ｓ３４３においてＣＰＵ７２は、発生したイベントが、サービスサーバ１００または１２０からのＨＴＴＰリクエスト情報をネットワークインターフェース６２が受信したことにより発生したイベントであるか否かを判断する。否定判断される場合（Ｓ３４３：ＮＯ）にはＳ３６１に進み、肯定判断される場合（Ｓ３４３：ＹＥＳ）にはＳ３４５へ進む。Ｓ３４５においてＣＰＵ７２は、ＨＴＴＰリクエスト情報に含まれる情報を、プロトコル処理を介して取得し、取得した情報がいずれの情報であるかを判断する。
【００９９】
ＨＴＴＰリクエスト情報にデバイスＩＤ問合せ情報が含まれている場合（Ｓ３４５：デバイスＩＤ問合せ情報）には、Ｓ３４７へ進む。デバイスＩＤ問合せ情報は、サービスサーバ１００または１２０からプッシュサービスを受ける多機能機のデバイスＩＤの返信を仲介サーバ６０に要求することを示す情報である。Ｓ３４７においてＣＰＵ７２は、デバイスＩＤ問合せ情報に対応する多機能機のデバイスＩＤを、デバイスデータベース７６内から検出する。そしてＣＰＵ７２は、プロトコル処理を介して、検出されたデバイスＩＤを含んだＨＴＴＰレスポンス情報を、デバイスＩＤ問合せ情報の送信元であるサービスサーバを送信先として送信させる。
【０１００】
一方、ＨＴＴＰリクエスト情報に第１要求情報が含まれている場合（Ｓ３４５：第１要求情報）には、Ｓ３４９へ進む。第１要求情報は、サービスサーバ１００または１２０から出力される情報である。第１要求情報の一例としては、ＧＥＴリクエスト情報や、ＳＥＴリクエスト情報などが挙げられる。第１要求情報は、デバイスＩＤ、オブジェクトＩＤ、などを含んでいる。
【０１０１】
Ｓ３４９においてＣＰＵ７２は、第１要求情報の送信先の多機能機である通信先多機能機が、オフラインであるか否かを、多機能機管理データベース７７に記憶された通信ステータス情報に基づいて判断する。具体的には、第１要求情報に含まれるデバイスＩＤに対応する多機能機の通信ステータス情報が「オフラインである」か否かを判断する。通信先多機能機がオフラインではないと判断される場合（Ｓ３４９：ＮＯ）にはＳ３５３へ進む。
【０１０２】
Ｓ３５３においてＣＰＵ７２は、リクエストＩＤを生成する。そして、生成したリクエストＩＤを、Ｓ３４３で受信した第１要求情報に関連付けて、メモリ７４に記憶させる。リクエストＩＤは、例えば、第１要求情報の受信時刻でもよいし、一意に作成された番号でもよい。
【０１０３】
Ｓ３５５においてＣＰＵ７２は、ＸＭＰＰセッションを用いて、第２要求情報を通信先多機能機へ送信する。具体的には、ＣＰＵ７２は、プロトコル処理を介して、第２要求情報を含んだ、送信先多機能機との間で確立したＸＭＰＰコネクションにおけるＸＭＰＰレスポンス情報を、送信先多機能機へ送信させる。第２要求情報は、第１要求情報にリクエストＩＤが付加された情報である。第２要求情報は、少なくとも、リクエストＩＤとオブジェクトＩＤを含んでいればよく、第１要求情報に含まれていたデバイスＩＤは含んでいなくても良い。そしてＳ３１３へ戻る。
【０１０４】
一方、Ｓ３４９において、通信先多機能機がオフラインであると判断される場合（Ｓ３４９：ＹＥＳ）には、Ｓ３５１へ進む。Ｓ３５１においてＣＰＵ７２は、プロトコル処理を介して、第１要求情報を通信先多機能機へ転送することができないことを示すエラー情報を含んだＨＴＴＰレスポンス情報を、第１要求情報の送信元であるサービスサーバへ送信させる。そしてＳ３１３へ戻る。
【０１０５】
一方、Ｓ３４３において、否定判断された場合（Ｓ３４３：ＮＯ）には、Ｓ３６１へ進む。Ｓ３６１においてＣＰＵ７２は、発生したイベントが、多機能機１０または１１からのＨＴＴＰリクエスト情報を受信したことにより発生したイベントであるか否かを判断する。なお、判断対象となるＨＴＴＰリクエスト情報は、多機能機１０または１１との間で確立したＸＭＰＰセッションにおけるＸＭＰＰリクエスト情報とは異なるＨＴＴＰリクエスト情報である。Ｓ３６１において否定判断された場合（Ｓ３６１：ＮＯ）にはＳ３１３へ戻り、肯定判断される場合（Ｓ３６１：ＹＥＳ）にはＳ３６４へ進む。Ｓ３６４においてＣＰＵ７２は、ＨＴＴＰリクエスト情報の送信元である多機能機に対応する管理タイマーをリセットする。
【０１０６】
Ｓ３６９においてＣＰＵ７２は、ＨＴＴＰリクエスト情報に含まれる情報を、プロトコル処理を介して取得し、取得した情報がいずれの情報であるかを判断する。ＨＴＴＰリクエスト情報に応答情報が含まれている場合（Ｓ３６９：応答情報）にはＳ３７３へ進む。
【０１０７】
Ｓ３７３においてＣＰＵ７２は、応答情報に含まれているリクエストＩＤを読み出す。そして、応答情報に含まれているリクエストＩＤと一致するリクエストＩＤに対応する第１要求情報を、多機能機管理データベース７７の中から検出する。そしてＣＰＵ７２は、プロトコル処理を介して、応答情報を含んだＨＴＴＰレスポンス情報を、検出した第１要求情報の送信元であるサービスサーバへ送信させる。
【０１０８】
Ｓ３７５においてＣＰＵ７２は、プロトコル処理を介して、応答情報を含んだＨＴＴＰリクエスト情報に対するＨＴＴＰレスポンス情報を、ＨＴＴＰリクエスト情報の送信元である多機能機へ返信させる。そしてＳ３１３へ戻る。
【０１０９】
一方、Ｓ３６９において、ＨＴＴＰリクエスト情報に生存通知情報が含まれていると判断された場合（Ｓ３６９：生存通知情報）には、Ｓ３６５へ進む。Ｓ３６５においてＣＰＵ７２は、プロトコル処理を介して、生存応答情報を含んだＨＴＴＰレスポンス情報を、生存通知情報を含んだＨＴＴＰリクエスト情報の送信元である多機能機へ返信させる。そしてＳ３１３へ戻る。
【０１１０】
＜サービスサーバ１００、１２０の動作＞
図６のフローを用いて、サービスサーバ１００、または１２０の詳細な動作について説明する。図６のフローは、例えば、サービスサーバ１００、または１２０の電源が投入されることに応じて開始されてもよい。Ｓ５０９においてＣＰＵ１０３は、サービスの提供対象の多機能機を識別するためのデバイスＩＤの取得命令が、入力されたか否かを判断する。入力されていない場合（Ｓ５０９：ＮＯ）にはＳ５２３へ進み、入力された場合（Ｓ５０９：ＹＥＳ）にはＳ５１３へ進む。デバイスＩＤの取得命令は、サービスサーバ１００への操作によって入力されてもよい。
【０１１１】
Ｓ５１３においてＣＰＵ１０３は、デバイスＩＤ問合せ情報を含んだＨＴＴＰリクエスト情報を、仲介サーバ６０へ送信する。Ｓ５１７においてＣＰＵ１０３は、Ｓ５１３で送信したＨＴＴＰリクエスト情報に対して仲介サーバ６０が送信した、デバイスＩＤを含むＨＴＴＰレスポンス情報を受信する。
【０１１２】
Ｓ５２３においてＣＰＵ１０３は、第１要求情報の送信命令が入力されたか否かを判断する。第１要求情報の送信命令は、Ｓ５１７で取得したデバイスＩＤで識別される多機能機へ、第１要求情報を送信する命令である。第１要求情報の送信命令が入力されていない場合（Ｓ５２３：ＮＯ）にはＳ５０９へ戻り、入力された場合（Ｓ５２３：ＹＥＳ）にはＳ５２９へ進む。デバイスＩＤの取得命令は、サービスサーバ１００への操作によって入力されてもよい。
【０１１３】
Ｓ５２９においてＣＰＵ１０３は、第１要求情報を含むＨＴＴＰリクエスト情報を、仲介サーバ６０へ送信する。第１要求情報には、Ｓ５１７で取得したデバイスＩＤが含まれている。Ｓ５３３においてＣＰＵ１０３は、Ｓ５２９で送信したＨＴＴＰリクエスト情報に対して仲介サーバ６０が送信した、応答情報を含むＨＴＴＰレスポンス情報を受信する。そしてＳ５０９へ戻る。
【０１１４】
＜通信システム２の第１動作例＞
図７のシーケンス図を用いて、通信システム２の第１動作例について説明する。図７では、多機能機１０と仲介サーバ６０の間のＸＭＰＰセッションが維持されているときに、サービスサーバ１００から多機能機１０まで、仲介サーバ６０を介してＧＥＴリクエスト情報が伝達される場合を説明する。また、多機能機１０セッション維持モードが「オン」に設定されている場合を説明する。
【０１１５】
多機能機１０の電源が投入されると、セッション維持モードが「オン」に設定されているため（Ｓ２１１：ＹＥＳ）、多機能機１０はレジスタ情報を仲介サーバ６０へ送信する（Ｓ２３１）。仲介サーバ６０は、レジスタ情報を受信し（Ｓ３１５：ＹＥＳ）、受信したレジスタ情報をデバイスデータベース７６に登録する（Ｓ３１７）。多機能機１０がＸＭＰＰセッション確立要求情報を送信することを契機として、多機能機１０と仲介サーバ６０はＸＭＰＰセッションを確立する（Ｓ２３３、Ｓ３２１：ＹＥＳ）。多機能機１０がＸＭＰＰコネクション確立要求情報を送信することで、多機能機１０と仲介サーバ６０との間のＸＭＰＰコネクションが確立される。（Ｓ２３６、Ｓ３４１：ＹＥＳ）
【０１１６】
多機能機１０にサービスを提供する処理を開始するために、多機能機１０を識別するデバイスＩＤを取得する命令が、サービスサーバ１００に入力される（Ｓ５０９：ＹＥＳ）。サービスサーバ１００は、多機能機１０のデバイスＩＤを要求するデバイスＩＤ問合せ情報を仲介サーバ６０へ送信する（Ｓ５１３）。仲介サーバ６０は、デバイスＩＤ問合せ情報を受信すると（Ｓ３４５：デバイスＩＤ問合わせ情報）、多機能機１０のデバイスＩＤを検索して、サービスサーバ１００へ送信する（Ｓ３４７）。
【０１１７】
多機能機１０は、タイマーがタイムアップすると（Ｓ２３９：ＹＥＳ）、仲介サーバ６０に生存通知情報を送信する（Ｓ２４１）。仲介サーバ６０は、生存通知情報を受信すると（Ｓ３６１：生存通知情報）、生存応答情報を返信する（Ｓ３６５）。多機能機１０は、生存応答情報を受信すると（Ｓ２４４：ＹＥＳ）ＸＭＰＰコネクション確立要求情報を送信する（Ｓ２３６）ので、多機能機１０と仲介サーバ６０との間で確立しているＸＭＰＰセッションにおけるＸＭＰＰコネクションが維持される（Ｓ２３６、Ｓ３４１：ＹＥＳ）。
【０１１８】
なお、多機能機１０は、生存応答情報を受信しないと（Ｓ２３５：ＮＯ）ＸＭＰＰセッション確立要求情報を送信するので、多機能機１０と仲介サーバ６０との間のＸＭＰＰセッションが維持される（Ｓ２３３、Ｓ３２１：ＹＥＳ）。なお、多機能機１０と仲介サーバ６０で確立していたＸＭＰＰコネクションが無効になってしまってから、ＸＭＰＰコネクション確立要求情報を送信する場合もある。また、多機能機１０と仲介サーバ６０で確立していたＸＭＰＰセッションが無効になってしまってから、ＸＭＰＰセッション確立要求情報を送信する場合もある。すなわち、すなわち、本実施形態の説明で述べている「維持」は、ほとんどの時間でコネクションやセッションが確立して、わずかな時間だけ、確立していない時間があってもよい、という程度の概念である。
【０１１９】
サービスサーバ１００に、多機能機１０から情報を取得するためのリクエスト情報である第１ＧＥＴリクエスト情報の送信命令が入力されると（Ｓ５２３：ＹＥＳ）、サービスサーバ１００は、第１ＧＥＴリクエスト情報を仲介サーバ６０へ送信する（Ｓ５２９）。このとき、第１ＧＥＴリクエスト情報の最終的な送信先は、多機能機１０とされる。仲介サーバ６０は、第１ＧＥＴリクエスト情報を受信すると（Ｓ３４３：ＹＥＳ、Ｓ３４５：第１要求情報）、第１ＧＥＴリクエスト情報の送信先の多機能機１０がオフラインではないと判断し（Ｓ３４９：ＮＯ）、リクエストＩＤを生成する（Ｓ３５３）。また仲介サーバ６０は、第１ＧＥＴリクエスト情報に関連付けて、リクエストＩＤを多機能機管理データベース７７に記憶させる（Ｓ３５３）。
【０１２０】
仲介サーバ６０は、第１ＧＥＴリクエストに生成したリクエストＩＤを付加して、第２ＧＥＴリクエスト情報を生成する。そして、生成した第２ＧＥＴリクエスト情報を、ＸＭＰＰセッションを用いて多機能機１０へ送信する（Ｓ３５５）。具体的には、生成した第２ＧＥＴリクエストを含んだ、多機能機１０との間で確立しているＸＭＰＰコネクションにおけるＸＭＰＰレスポンス情報を多機能機１０へ送信する。
【０１２１】
多機能機１０は、第２ＧＥＴリクエスト情報を受信すると（Ｓ２５１：ＹＥＳ）、第２ＧＥＴリクエスト情報を解析して、解析して取得した情報に基づく処理を実行し、ＧＥＴレスポンス情報を取得する（Ｓ２６１）。例えば、第２ＧＥＴリクエスト情報が装置情報の取得を要求する情報である場合には、多機能機１０の装置情報を含んだＧＥＴレスポンス情報を取得する。このときＧＥＴレスポンス情報には、第２ＧＥＴリクエスト情報に付加されていたリクエストＩＤが付加される。多機能機１０は、ＧＥＴレスポンス情報を含んだＨＴＴＰリクエスト情報を、仲介サーバ６０へ送信する（Ｓ２６５）。
【０１２２】
仲介サーバ６０は、ＧＥＴレスポンス情報を含んだＨＴＴＰリクエスト情報を受信すると（Ｓ３６９：ＹＥＳ）、ＧＥＴレスポンスに含まれているリクエストＩＤを読み出す。仲介サーバ６０は、ＧＥＴレスポンスに含まれているリクエストＩＤと一致するリクエストＩＤが紐付けられている第１ＧＥＴリクエスト情報を、多機能機管理データベース７７の中から検出する（Ｓ３７３）。そして仲介サーバ６０は、多機能機１０から受信したＧＥＴレスポンス情報を、検出した第１ＧＥＴリクエスト情報に対するＧＥＴレスポンス情報として、サービスサーバ１００へ送信する（Ｓ３７３）。
【０１２３】
また仲介サーバ６０は、ＧＥＴレスポンス情報を受信（Ｓ３６９）することに応じて、ＨＴＴＰレスポンス情報を多機能機１０へ返信する（Ｓ３７５）。ＨＴＴＰレスポンス情報を受信した多機能機１０は、仲介サーバ６０との間のＸＭＰＰコネクションを新たに確立するための処理を行うので、多機能機１０は、再度プッシュサービスを利用することが可能になる。
【０１２４】
＜通信システム２の第２動作例＞
図８のシーケンス図を用いて、通信システム２の第２動作例について説明する。図８では、多機能機１０と仲介サーバ６０の間のＸＭＰＰセッションが維持されていないときに、サービスサーバ１００から多機能機１０まで、仲介サーバ６０を介してＧＥＴリクエスト情報が伝達されない場合を説明する。
【０１２５】
図８の期間Ｐ１における動作は、図７の期間Ｐ１における動作と同様であるため、説明を省略する。多機能機１０の電源がオフにされた場合には、多機能機１０と仲介サーバ６０との間で確立していたセッションを識別するセッションＩＤが多機能機１０には保存されないので、第１のセッションが切断されたことになる。この場合、多機能機１０からは生存通知情報が送信されないので、仲介サーバ６０においては、多機能機１０に対応する管理タイマーにおいて、タイムアップが発生する（Ｓ３３１：ＹＥＳ）ので、タイムアップが発生した管理タイマーが対応する多機能機１０の通信ステータス情報を「オフライン」に設定する（Ｓ３３３）。
【０１２６】
仲介サーバ６０が第１ＧＥＴリクエスト情報を受信したとしても（Ｓ３４３：ＹＥＳ、Ｓ３４５：第１要求情報）、第１ＧＥＴリクエスト情報の送信先の多機能機１０がオフラインであると判断される（Ｓ３４９：ＹＥＳ）。そのため、仲介サーバ６０は、エラー情報をサービスサーバ１００へ送信する（Ｓ３５１）。
【０１２７】
＜効果＞
多機能機１０とインターネット６との間には、ルータ７が備えられている。ルータ７は、ファイアウォール機能を有している場合がある。ファイアウォール機能では、ルータ７がインターネット６側の装置から受信した情報が、多機能機１０が送信元である情報への応答情報であれば、インターネット６側の装置が送信した情報を、多機能機１０へ転送する処理が行われる。一方、ルータ７がインターネット６側の装置から受信した情報が、多機能機１０が送信元である情報への応答情報でなければ、インターネット６側の装置が送信した情報を、多機能機１０へ転送しない処理が行われる。この場合、前述したプッシュサービスを実行するために、サービスサーバから多機能機１０へ、インターネット６を介して要求情報を送信する場合がある。この場合、ファイアウォール機能等を超えるための処理をサービスサーバで行う必要があるため、サービスサーバの処理負担が大きくなる。本明細書に開示されている技術では、サービスサーバから仲介サーバ６０を介して多機能機１０へ、要求情報を送信することができる。そして仲介サーバ６０から多機能機１０へは、セッション確立型のＸＭＰＰ  over  ＢＯＳＨに従って確立されているセッションを用いて、要求情報が送信される（Ｓ３５５）。ＸＭＰＰ  over  ＢＯＳＨに従って確立されているセッションを用いることにより、要求情報をインターネット６側から多機能機１０へ送信するという、いわゆるサーバプッシュが可能となる。従って、ルータ７がファイアウォール機能やアドレス変換機能を有している場合においても、サービスサーバがファイアウォール機能やアドレス変換機能を超えるための処理を行うことなく、サービスサーバから多機能機１０へ要求情報を送信することが可能となる。よって、サービスサーバでの処理負担を軽減することができる。
【０１２８】
本明細書に開示されている技術では、多機能機１０と仲介サーバ６０との間でサーバプッシュが可能な状態になってから、所定の時間が経過した場合にも、仲介サーバ６０からの前記サーバプッシュが可能な状態を維持する。これにより、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。従って、サービスサーバから仲介サーバ６０へ送信されてくる要求情報を、即時に仲介サーバ６０から多機能機１０へ転送することが可能となる。よって、サービスサーバと多機能機１０との間の通信応答速度を高めることや、通信のリアルタイム性を高めることが可能となる。
【０１２９】
ＸＭＰＰ  over  ＢＯＳＨに従ってコネクションを確立する処理の方が、ＨＴＴＰに従ってコネクションを確立する処理よりも、処理が複雑化し処理時間がかかってしまう場合がある。例えば、ＸＭＰＰ  over  ＢＯＳＨに従ってコネクションを確立するＸＭＰＰ処理部６３が、仲介サーバ６０とは別体の外部サーバに備えられている場合などには、ＸＭＰＰ  over  ＢＯＳＨに従ったコネクションを確立するために外部サーバを経由する必要が生じるため、処理が複雑化してしまう。本明細書に開示されている技術では、仲介サーバ６０から多機能機１０へ送信された要求情報に対する応答情報を、セッションレス型のＨＴＴＰに従った第２のコネクションを用いて、ＨＴＴＰのリクエストとして、多機能機１０から仲介サーバ６０へ送信することができる（Ｓ２６５）。これにより、セッション確立型のＸＭＰＰ  over  ＢＯＳＨに従って確立されているセッションを用いて応答情報を送信する場合に比して、より簡略な処理によって、より迅速に、仲介サーバ６０へ応答情報を送信することが可能となる。
【０１３０】
本明細書に開示されている技術では、仲介サーバ６０は、サービスサーバから要求情報を受信すると（Ｓ３４３：ＹＥＳ）、リクエストＩＤを生成し（Ｓ３５３）、生成したリクエストＩＤを受信した要求情報に関連付けてメモリ７４に記憶させる（Ｓ３５３）。また、リクエストＩＤが付加された要求情報を、多機能機１０へ転送する（Ｓ３５５）。そして、要求情報に対する応答情報を多機能機１０から受信すると（Ｓ３６９：ＹＥＳ）、応答情報に含まれているリクエストＩＤを読み出し（Ｓ３７３）、読み出したリクエストＩＤが紐付けられている要求情報を多機能機管理データベース７７から検出する（Ｓ３７３）。これにより、直接にサービスサーバと多機能機との間でサーバプッシュを可能にするセッションを確立する負荷なく、要求情報に正しく対応する応答情報に関連するプッシュサービスを提供することができる。また、サービスサーバが複数存在している場合や、多機能機が複数存在している場合においても、直接に複数のサービスサーバと多機能機との間でサーバプッシュを可能にするセッションを確立する必要を無くすことができる。
【０１３１】
本明細書に開示されている技術では、ＨＴＴＰのリクエストとして、応答情報を多機能機１０から受信すると（Ｓ３６９：ＹＥＳ）、ＨＴＴＰレスポンスを多機能機１０へ返信する（Ｓ３７５）。これにより、応答情報を出力した多機能機１０が、タイムアウトが発生するまでレスポンスデータの返信を待機する、あるいは、タイムアウトが発生したと判断し、応答情報の送信を繰り返すといった、コネクションが正常に終了しないために発生する事態の発生を防止することができる。よって、多機能機１０、仲介サーバ６０、およびＬＡＮ４の負荷を低減することができる。
【０１３２】
本明細書に開示されている技術では、多機能機１０と仲介サーバ６０とのセッションが切断されており、要求情報を多機能機１０に送信することができない場合には（Ｓ３４９：ＹＥＳ）、要求情報に対するＨＴＴＰレスポンスとして、サービスサーバへエラー情報を出力することができる（Ｓ３５１）。これにより、コネクションが正常に終了しないために発生する事態であって、多機能機１０、仲介サーバ６０、およびインターネット６の負荷となってしまう事態の発生を防止することができる。
【０１３３】
本明細書に開示されている技術では、メモリ２４に記憶されているモード情報によって、セッションを確立するか否かを設定することができる（Ｓ２１１）。多機能機１０と仲介サーバ６０との間のセッションが切断されたとしても、多機能機１０がセッション維持モードであれば、多機能機１０から確立要求情報が送信され、セッションを再度確立させることができる。これにより、セッション確立型のプロトコルを用いて、プッシュサービスを常時提供することが可能となる。
【０１３４】
本明細書に開示されている技術では、多機能機１０の製造時にセッション維持モードであることを示すモード情報をメモリ２４に記憶させることで、多機能機１０が起動したときに、セッションを確立することができる。これにより、ベンダやディーラなど、多機能機１０の製造側または販売側で、プッシュサービスを常時提供させたい多機能機１０を決定し、決定した多機能機１０にプッシュサービスを利用させることが可能となる。
【０１３５】
本明細書に開示されている技術では、プルサービスの利用に用いるＨＴＴＰを用いて、ＨＴＴＰの上位のプロトコルであるＸＭＰＰ  over  ＢＯＳＨのセッションを確立できる。これにより、多機能機１０や仲介サーバ６０がセッションを確立するためだけに新たなプロトコルに対応する必要なく、プッシュサービスを常時提供することが可能となる。
【０１３６】
本明細書に開示されている技術では、プルサービスの利用に用いるＨＴＴＰを用いて、ＸＭＰＰ  over  ＢＯＳＨのサーバプッシュを可能にするためのセッションを確立できる。これにより、インターネットに接続する装置であれば一般的に用いられているＨＴＴＰに関する処理を行う構成、たとえばＨＴＴＰの処理を行うプロトコルスタックを用いて、応答情報に対応するプッシュサービスを提供することができるので、より都合が良い。
【０１３７】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
【０１３８】
＜変形例＞
ＸＭＰＰコネクションを仲介サーバ６０との間で確立（Ｓ２３６）している状態でタイムアップ時間が経過した場合（Ｓ２３４：ＹＥＳ）に、ＸＭＰＰセッションを仲介サーバ６０と確立する処理（Ｓ２３３）や、生存通知情報を送信する処理（Ｓ２４１）を実行しないとしてもよい。この場合、タイムアップ時間が経過することに応じて、ＭＰＰコネクションを仲介サーバ６０との間で確立する処理（Ｓ２３６）を実行してもよい。またこの場合、タイムアップ時間が経過することに応じて、仲介サーバ６０との間で新たなＸＭＰＰセッションを確立する処理（Ｓ２３３）を実行してもよい。
【０１３９】
サービスサーバから出力される情報であるデバイスＩＤ問合せ情報は、プッシュサービスの利用者のアカウントＩＤなどを含んでいてもよい。この場合仲介サーバ６０のＣＰＵ７２は、Ｓ３４７において、デバイスＩＤ問合せ情報に含まれる、アカウントＩＤなどの識別情報を用いて、アカウントＩＤに対応する多機能機のデバイスＩＤを、デバイスデータベース７６内から検出してもよい。サービスサーバから出力される情報である第１要求情報は、アカウントＩＤなどを含んでいてもよい。この場合仲介サーバ６０のＣＰＵ７２は、第１要求情報に含まれる、アカウントＩＤなどの識別情報を用いて、アカウントＩＤに対応する多機能機のデバイスＩＤを、デバイスデータベース７６内から検出してもよい。Ｓ３４９において、アカウントＩＤに対応する多機能機を、第１要求情報の送信先の多機能機である通信先多機能機として特定し、「オフラインである」か否か判定するとしてもよい。
【０１４０】
Ｓ３５５において仲介サーバ６０のＣＰＵ７２は、サービスサーバから受信した第１要求情報をそのまま利用して第２要求情報を生成してもよい。またＣＰＵ７２は、受信した第１要求情報を、多機能機１０および１１が要求情報として理解できるデータに変換した上で、第２要求情報を生成してもよい。
【０１４１】
通信システム２の第１動作例において、ＨＴＴＰレスポンスを多機能機１０へ送信する処理（Ｓ３７５）は、応答情報をサービスサーバへ送信する処理（Ｓ３７３）の後に行われる場合を説明したが、この形態に限られない。これらの処理の順番は逆であってもよい。
【０１４２】
要求情報は、ＧＥＴリクエスト、ＳＥＴリクエストに限られず、他の種類のリクエスト情報であってもよい。
【０１４３】
仲介サーバ６０と通信可能に接続される多機能機は、多機能機１０および１１に限られず、３台以上存在してもよい。インターネット６に接続されるサービスサーバは、サービスサーバ１００に限られず、２台以上存在してもよい。プッシュサービス、プルサービスを利用する機器として、多機能機１０および１１を例に挙げたが、これに限らない。指示データなどに基づいて、所定の画像を刺繍、キルティングするミシンでもよい。画像データに基づいた作品、製品を形成するために、飾り縫い、縫製などをおこなうミシンでもよい。指示データなどに基づいて、吹き付け、削りだしなどで、３Ｄ画像を生成する３Ｄプリンタでもよい。画像データなどに基づいて、吹き付け、削りだしなどで、作品、製品を生成する作品製造装置、製品製造装置でもよい。画像データの例として３Ｄ画像データや３ＤＣＡＤデータを用いてもよい。対象物の輪郭を光学的、電気的に検知するセンサからの出力データや、対象物に取り付けたセンサからの出力データに基づいて画像データを作成するスキャナでもよい。センサからの出力に基づいて、対象物の形状や動きを示すデータを作成するスキャナでもよい。画像データの例として動画データや３Ｄ画像データを用いてもよい。
【０１４４】
多機能機１０および１１は、画像処理装置の一例である。サービスサーバ１００および１２０は、サーバ装置の一例である。仲介サーバ６０は、中継装置の一例である。ＣＰＵ７２および２２は、プロセッサの一例である。Ｓ３４３を実行するＣＰＵは、サーバ要求情報取得手段の一例である。ＸＭＰＰセッション確立要求情報は、確立要求データの一例である。ＸＭＰＰ  over  ＢＯＳＨは、第１のプロトコルの一例である。ＨＴＴＰは、第２のプロトコルおよび第３のプロトコルの一例である。Ｓ３２１を実行するＣＰＵは、確立要求情報取得手段の一例である。第１要求情報に含まれるＧＥＴリクエストおよびＳＥＴリクエストは、サーバ要求情報の一例である。Ｓ３５５を実行するＣＰＵは、サーバ要求情報出力手段の一例である。ＬＡＮ４は、第１のネットワークの一例である。ルータ７および８は、通信制御装置の一例である。インターネット６は、第２のネットワークの一例である。メモリ７４は、記憶手段の一例である。Ｓ３１７を実行するＣＰＵは、画像処理装置識別情報出力手段の一例である。Ｓ３６９を実行するＣＰＵは、応答情報取得手段の一例である。Ｓ３７３を実行するＣＰＵは、応答情報出力手段の一例である。リクエストＩＤは、第１識別情報の一例である。Ｓ３５３を実行するＣＰＵは、第１識別情報記憶制御手段の一例である。Ｓ３５１を実行するＣＰＵは、エラー情報出力手段の一例である。Ｓ３６１を実行するＣＰＵは、第３確立要求情報取得手段の一例である。Ｓ３４１を実行するＣＰＵは、第２確立要求情報取得手段の一例である。Ｓ３７３を実行するＣＰＵは、コネクション特定手段の一例である。Ｓ２３３を実行するＣＰＵは、確立要求情報出力手段の一例である。Ｓ２５１を実行するＣＰＵは、サーバ要求情報取得手段の一例である。Ｓ２４１を実行するＣＰＵは、認識要求情報出力手段の一例である。Ｓ２４４を実行するＣＰＵは、サーバ認識情報取得手段の一例である。Ｓ２３６を実行するＣＰＵは、第２確立要求情報出力手段の一例である。Ｓ２４１を実行するＣＰＵは、認識要求情報出力手段の一例である。Ｓ２６３を実行するＣＰＵは、第４確立要求情報出力手段の一例である。Ｓ３７３を実行するＣＰＵは、応答情報出力手段の一例である。Ｓ２１７、または、Ｓ２５７を実行するＣＰＵは、関連情報要求情報出力手段の一例である。Ｓ２１７、または、Ｓ２５７を実行するＣＰＵは、関連情報取得手段の一例である。
【符号の説明】
【０１４５】
４：ＬＡＮ、６：インターネット、７および８：ルータ、１０および１１：多機能機、２２および７２および１０３：ＣＰＵ、６０：仲介サーバ、１００、１１０、および１２０：サービスサーバ
【図１】
2014179017.tif 000003
【図２】
2014179017.tif 000004
【図３】
2014179017.tif 000005
【図４】
2014179017.tif 000006
【図５】
2014179017.tif 000007
【図６】
2014179017.tif 000008
【図７】
2014179017.tif 000009
【図８】
2014179017.tif 000010