(57)【要約】【課題】サーバーと接続される複数の処理端末における再接続をサーバーの負荷を分散しながら早期に確立する。【解決手段】サーバーと接続を確立して通信する通信手段と，前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と，前記接続の切断を検知する切断検知手段と，前記接続の切断が検知された場合，試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と，を備える処理端末。【選択図】図２
2013051571.tif 000002
【特許請求の範囲】
【請求項１】
サーバーと接続を確立して通信する通信手段と，
前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と，
前記接続の切断を検知する切断検知手段と，
前記接続の切断が検知された場合，試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と，
を備える処理端末。
【請求項２】
前記再接続手段は，前記所定の一定値と長さが等しい期間毎にランダムなタイミングで到来する前記第一タイミングにおいて前記サーバーとの再接続を試行する，
請求項１に記載の処理端末。
【請求項３】
前記再接続手段は，試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな長さの間隔で到来する前記第一タイミングにおいて前記サーバーとの再接続を試行する，
請求項１に記載の処理端末。
【請求項４】
前記再接続手段は，前記接続の切断が検知された後，最初の前記第一タイミングが到来する前の所定の第二タイミングにおいて，前記サーバーとの再接続を試行する，
請求項１から３のいずれか一項に記載の処理端末。
【請求項５】
前記再接続手段は，前記サーバーから取得する接続制御情報に基づいて前記所定の一定値を設定する，
請求項１から４のいずれか一項に記載の処理端末。
【請求項６】
サーバーとの接続を確立して通信し，
前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行し，
前記接続の切断を検知し、
前記接続の切断が検知された場合，試行間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する、
ことを含む処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，処理端末および処理方法に関し，特にクラウドコンピューティングシステムにおいてユーザーからサーバー経由で取得したリクエストを即時に実行するための技術に関する。
【背景技術】
【０００２】
従来，電子メールの送信によって特定のプリンターに印刷させるためのサービスを提供するクラウドコンピューティングシステムが知られている（例えば特許文献１）。このクラウドコンピューティングシステムは，特定の電子メールを受信すると電子メールに基づいて特定のプリンターに対応した印刷データを生成するサーバーを備え，サーバーに登録されている特定のプリンターはサーバーから印刷データを取得して印刷を実行する。したがって利用者は，ＰＣ（Personal Computer），スマートフォン等のクライアント端末にプリンタードライバーがインストールされていない場合であっても，サーバーに登録されているプリンターを利用することが可能になる。このシステムにおいては，特定の電子メールアドレスと対応付けられたプリンターの登録処理がサーバーにおいてなされると，当該電子メールアドレスを知っている任意のユーザーが当該プリンターを利用可能になる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−７１２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし，ＰＯＰを用いてプリンターがサーバーから印刷データを取得して実行する場合，サーバーに存在する印刷データをプリンターがポーリングしなければならないため，即時性とネットワークトラフィックやサーバー負荷の低減を両立させることが困難である。そこで，上述のシステムでは，プッシュ型のプロトコルを用いた常時接続を維持し，ユーザーからの印刷データを即座にプリンターが受信できるようにすることが好ましい。このようなプッシュ型のプロトコルとしてはＸＭＰＰやＳＩＰが周知であるが，これらのプロトコルに従って常時接続を確立したとしても，ルーターやファイヤウォールやプロキシサーバーによって接続が切断されたり，サーバーの不具合によって接続が切断される場合がある。一般に，接続が切断された場合には，自動的に再接続が試行されるが，再接続の試行が集中することによってサーバーの負荷が過大となる恐れがある。そして，再接続の試行が集中することによってサーバーがダウンすると，その後の再接続の試行も集中することになって再接続が失敗し続ける事態が発生するという問題がある。これは、常時接続や印刷の場合に限られない。
本発明は，この問題を解決するために創作されたもので，サーバーと接続される複数の処理端末における再接続をサーバーの負荷を分散しながら早期に確立することを目的とする。
【課題を解決するための手段】
【０００５】
（１）上記目的を達成するための処理端末は，サーバーと接続を確立して通信する通信手段と，前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と，前記接続の切断を検知する切断検知手段と，前記接続の切断が検知された場合，試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と，を備える。
【０００６】
本発明によると，サーバーとの接続が切断された場合には，その切断が検知され，第一タイミングにおいて再接続が繰り返し試行される。再接続が試行される第一タイミングは，第一タイミングの間隔（試行間隔）の期待値を所定の一定値に設定した上でランダムに設定される。したがって，処理端末毎にこのように設定される第一タイミングは分散することになるが，第一タイミングの間隔の平均値は予め定められた所定の一定値となる。すなわち，処理端末毎にみれば，一定時間内に再接続が試行される回数が保証されており，かつ，複数の処理端末を見れば，再接続を試行するタイミングが分散することになる。したがって，接続が切断された後に再接続が可能な状態に遷移してから、サーバーの負荷を分散しながら期待値の時間内に、複数の処理端末とサーバーとの再接続が確立されることを期待できる。なお，ランダムな第一タイミングは一様乱数を用いて設定されることが好ましい。また、ランダムな第一タイミングにおいて試行する再接続の間隔の期待値は、厳密な意味で一定値でなくともよく、誤差があってもよいし、設計上許容できる範囲の幅においてばらつきがあってもよい。
【０００７】
（２）上記目的を達成するための処理端末において，前記再接続手段は，前記所定の一定値と長さが等しい期間毎にランダムなタイミングで到来する前記第一タイミングにおいて前記サーバーとの再接続を試行してもよい。
この場合，各処理端末においては，一定の間隔毎に１回の再試行が確実に実行されることになる。すなわち，複数の処理端末の試行機会がより一層平準化されることになる。なお、ランダムな第一タイミングにおいて試行する再接続の間隔の期待値が一定になる範囲であれば、再接続が各１回試行される期間と期間の間に、例えば交互に１秒と２秒の空白期間を挿入するなど、長さが一定でない短い期間を挿入しても良い。
【０００８】
（３）上記目的を達成するための処理端末において，前記再接続手段は，試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな長さの間隔で到来する前記第一タイミングにおいて前記サーバーとの再接続を試行してもよい。
この場合，第一タイミングの間隔自体がランダムなので，各処理端末における一定の間隔毎の再試行回数は一致しないものの，第一タイミングの間隔の期待値が所定の一定値であるため，各処理端末において再接続の試行が繰り返されると，複数の処理端末の試行機会が平準化されることになる。
【０００９】
（４）上記目的を達成するための処理端末において，前記再接続手段は，前記接続の切断が検知された後，最初の前記第一タイミングが到来する前の所定の第二タイミングにおいて，前記サーバーとの再接続を試行してもよい。
この場合，切断から短期間の内に接続が可能な状態に遷移していれば，最初の第一タイミングが到来する前に接続を再確立することが可能となる。なお，サーバーの障害によって接続が切断されており，かつ，第二タイミングの到来前にサーバーが復旧していれば，第二タイミングにおいてはサーバーに再接続の試行が集中することになるが，障害発生から一定時間経過まではサーバーを起動しない運用を定めておけば，第二タイミングにおけるサーバーの負荷集中によって再度障害が発生することはない。そして，サーバー以外の障害によって接続が切断された場合には，再接続を試行する処理端末の台数が限定されるため，サーバーへの再接続の試行が集中することもない。
【００１０】
（５）上記目的を達成するための処理端末において，前記再接続手段は，前記サーバーから取得する接続制御情報に基づいて前記所定の一定値を設定してもよい。
サーバーに接続される処理端末の台数に応じて，再接続の試行によるサーバーへの負荷集中の程度が決まる。したがって，接続され得る処理端末の台数に応じた第一タイミングの間隔の期待値を決める接続制御情報をサーバーに登録しておき，処理端末がサーバーから取得する接続制御情報に基づいて第一タイミングを設定すれば，第一タイミングの間隔を最適化することができる。なお，接続制御情報は，再接続の試行間隔の期待値を一義的に設定し得る情報であればどのような情報であっても良く，例えば，処理端末の出荷台数や，処理端末のサーバーへの登録台数や，処理端末のサーバーへの実際の接続台数等を接続制御情報として設定し得る。
【００１１】
なお，請求項に記載された各手段の機能は，構成自体で機能が特定されるハードウェア資源，プログラムにより機能が特定されるハードウェア資源，又はそれらの組み合わせにより実現される。また，これら各手段の機能は，各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。例えば，請求項に記載されたサーバーとは，１台のコンピューターで実現されているものに限られず，各手段をそれぞれ分担する複数のコンピューターの組み合わせによる群としてサーバーを実現しても良い。さらに，本発明は方法としても，上記した機能をコンピュータに実現させるコンピュータープログラムとしても，そのプログラムの記録媒体としても成立する。むろん，そのコンピュータプログラムの記録媒体は，磁気記録媒体であってもよいし光磁気記録媒体であってもよいし，今後開発されるいかなる記録媒体であってもよい。
【図面の簡単な説明】
【００１２】
【図１】図１は処理端末としてのプリンターを含む印刷システム全体を示すブロック図である。
【図２】処理方法を示すフローチャートである。
【図３】処理方法を示すタイミングチャートである。
【図４】処理方法を示すフローチャートである。
【図５】処理方法を示すタイミングチャートである。
【発明を実施するための形態】
【００１３】
以下，本発明の実施の形態を添付図面を参照しながら説明する。尚，各図において対応する構成要素には同一の符号が付され，重複する説明は省略される。
１．構成
【００１４】
本発明にかかる処理端末の一実施例としてのプリンター３ａ，３ｂ，３ｃ，３ｄを含む印刷システム全体の構成を図１に示す。図１に示す印刷システムは，サーバー２に登録されたプリンター３ａ，３ｂ，３ｃ，３ｄのいずれかに対応付けられた電子メールアドレスを宛先とする電子メールを任意の通信端末１から送信すると，宛先の電子メールアドレスに対応付けられたプリンター３ａ，３ｂ，３ｃ，３ｄのいずれかにおいて電子メールの添付ファイルや本文が印刷される機能を実現する。サーバー２は１以上のコンピューターによって構成され，サーバー２，プリンター３ａ，３ｂ，３ｃ，３ｄ，通信端末１はインターネット４に接続される。なお，プリンター３ａ，３ｂ，３ｃ，３ｄの構成は発明を理解する上において実質的に同一であるため，図１においてはプリンター３ａ，３ｂ，３ｃ，３ｄの構成は省略されている。また，以下の説明では特に必要がない限り，プリンター３ａ，３ｂ，３ｃ，３ｄを区別することなく，プリンター３と表記する。
【００１５】
プリンター３は，サーバー２との常時接続によってサーバー２から取得する要求に基づいて印刷を実行する機能を有する。したがってプリンター３は，ＣＰＵ３１，ＲＯＭ３２，ＲＡＭ３３，印刷部３５等の通常のプリンターの構成要素に加えて，インターネット４を介してメッセージを送受信するための通信部３４を備えている。通信部３４はインターネット４からＬＡＮを経由して受信する信号をプロトコルに従って変換して内部バスに送出し，内部バスから取り込んだ信号をプロトコルに従って変換してＬＡＮを経由してインターネットに送出する。ＲＯＭ３２にはＲＡＭ３３に読み込まれＣＰＵ３１によって実行される種々のコンピュータープログラムが記憶されている。これらのコンピュータープログラムをＣＰＵ３１が実行することによって，プリンター３の各種の機能が実現される。
【００１６】
ＯＳ３３１は，接続制御モジュール３３２，サーバーインターフェースモジュール３３３，印刷制御モジュール３３４等の各種のアプリケーションプログラムと協働してプリンター３のハードウェアを制御するとともに，ＴＣＰ／ＩＰ，ＨＴＴＰ，ＸＭＰＰ等のプロトコルに従ってサーバー２との通信を制御する機能を実現する。したがってＯＳ３３１は，ＣＰＵ３１および通信部３４を通信手段として機能させるコンピュータープログラムである。なお，プリンター３がＴＣＰ／ＩＰ，ＨＴＴＰ，ＸＭＰＰ等のプロトコルに従ってサーバー２と通信するためのアカウント情報は予めプリンター３とサーバー２とにそれぞれ設定されている。
【００１７】
接続制御モジュール３３２は，ＸＭＰＰに従ってサーバー２との常時接続を確立して維持する機能を実現する。また接続制御モジュール３３２は，ＸＭＰＰに従ったサーバー２との常時接続の切断を検知し，切断が検知された場合には，予めサーバー２から取得した接続制御情報に基づいて設定するランダムな第一タイミングにおいてＸＭＰＰに従ったサーバー２との常時接続の再接続を繰り返し試行する機能を実現する。したがって，接続制御モジュール３３２は，ＣＰＵ３１を接続検知手段および再接続手段として機能させるコンピュータープログラムである。
【００１８】
サーバーインターフェースモジュール３３３は，ＨＴＴＰ，ＸＭＰＰ等のプロトコルに従ってサーバー２と通信することによって，サーバー２から印刷要求や印刷データを取得する機能を実現する。
【００１９】
印刷制御モジュール３３４は，サーバーインターフェースモジュール３３３を介して印刷要求や印刷データを取得し，これらを取得すると，印刷データに基づいて印刷部３５を制御して印刷を実行する機能を実現する。したがって印刷制御モジュール３３４は，ＣＰＵ３１および印刷部３５を処理手段として機能させるコンピュータープログラムである。
【００２０】
２．処理方法の第１実施例
次に上述のプリンター３を処理装置として機能させる処理方法の第一実施例について説明する。図１に示す印刷システムにおいては，通信端末１からプリンター３に対応付けられた電子メールアドレス宛の電子メールが添付ファイルとともに送信されたとき，プリンター３において添付ファイルの印刷が即座に実行されることが望まれる。また，プリンター３が印刷要求を即時に取得するためにサーバー２をＨＴＴＰに基づいたメッセージを使ってポーリングすることはサーバー２の負荷とネットワークトラフィックの観点から望ましくない。そこで，プリンター３はＸＭＰＰに基づいた印刷要求をサーバー２から取得する。ＸＭＰＰは，双方向にメッセージを送信できる所謂プッシュ型プロトコルであるため，プリンター３によるサーバー２のポーリングは不要となる。しかし，ＸＭＰＰに基づいた常時接続が切断されると，通信端末１からプリンター３に対応付けられた電子メールアドレス宛の電子メールが送信されてからプリンター３において印刷が実行されるまでに遅延が生ずる。そこで本実施例においては，図２に示す手順でＸＭＰＰに基づいた常時接続を維持する。図２に示す処理は，主に，上述した接続制御モジュール３３２を実行するＣＰＵ３１によって実行されるが，接続制御モジュール３３２とＯＳ３３１が随所で協働することはいうまでもない。
【００２１】
はじめにＣＰＵ３１はサーバー２から接続制御情報β（例えば３０秒），γ（例えば３０００回）を取得する（Ｓ１０１）。このときサーバー２とプリンター３との間ではＸＭＰＰに基づいた常時接続は確立されていないため，接続制御情報はＨＴＴＰに基づいてサーバー２から取得される。
【００２２】
次にＣＰＵ３１は，サーバー２とのＸＭＰＰに基づいた常時接続を試行する（Ｓ１０２）。具体的にはプリンター３に割り当てられたアカウントＩＤ，パスワード等が接続要求とともにＸＭＰＰに従ってサーバー２に送信される。なお，ＸＭＰＰに基づいた常時接続を単にＸＭＰＰ接続というものとする。
【００２３】
次にＣＰＵ３１は，ＸＭＰＰ接続が成功したか否かを判定する（Ｓ１０３）。ＸＭＰＰ接続が成功した場合，ＣＰＵ３１は次に述べるステップＳ１０４の処理を実行し，ＸＭＰＰ接続が失敗した場合，ＣＰＵ３１は後述するステップＳ１１３の処理を実行する。
【００２４】
ステップＳ１０４において，ＣＰＵ３１は，ＸＭＰＰに基づいた通信が発生するか，あるいはＸＭＰＰに基づいた通信が発生せずに２９０秒が経過するまで待機する。
【００２５】
次にＣＰＵ３１は，ＸＭＰＰに基づいた通信が発生したか，ＸＭＰＰに基づいた通信が発生せずに２９０秒が経過したかを判定する（Ｓ１０５）。ＸＭＰＰに基づいた通信が発生した場合，ＣＰＵ３１は通信の内容に応じた処理を行い、さらにＣＰＵ３１はステップＳ１０４からの一連の処理を再び実行する。一方，ＸＭＰＰに基づいた通信が発生せずに２９０秒が経過した場合，ＣＰＵ３１は次に述べるステップＳ１０６の処理を実行する。なお、通信の内容に応じた処理とは、例えば、サーバー２に印刷データが存在することを知らせる通信であれば、サーバー２から印刷データを取得する処理であり、プリンター３のステータス情報を要求する通信であれば、サーバー２にプリンター３のステータス情報を通知する処理である。
【００２６】
ステップＳ１０６において，ＣＰＵ３１はＸＭＰＰに基づいた"Ｋｅｅｐ  Ａｌｉｖｅ"パケットをＬＡＮを介してインターネットに送出する。すなわちＸＭＰＰに基づいた通信が発生しない状態が２９０秒間継続する度にＣＰＵ３１はＸＭＰＰに基づいた"Ｋｅｅｐ  Ａｌｉｖｅ"パケットをＬＡＮを介してインターネットに送出する。このようにして"Ｋｅｅｐ  Ａｌｉｖｅ"パケットを送信する理由は，ＸＭＰＰに基づいたメッセージのやりとりが一定期間途絶えたことによりルーターやファイヤウォールやプロキシサーバーによってＸＭＰＰ接続が切断されることを防止するためである。なお，"Ｋｅｅｐ  Ａｌｉｖｅ"パケットを送信する間隔を２９０秒とする理由は，３００秒の無通信状態の継続によってＸＭＰＰ接続を切断するブロードバンドルーターに適合させるためである。すなわち，"Ｋｅｅｐ  Ａｌｉｖｅ"パケットを送信する間隔は，通信環境に応じた最適値を設定すれば良く，２９０秒よりも短くても長くてもよい。
【００２７】
"Ｋｅｅｐ  Ａｌｉｖｅ"パケットの送信後，ＣＰＵ３１は，"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信するか，"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信せずに７５秒が経過するまで待機する（Ｓ１０８）。
【００２８】
次にＣＰＵ３１は"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信したか，"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信せずに７５秒が経過が経過したかを判定する（Ｓ１０９）。"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信した場合，ステップＳ１０４からの一連の処理を再び実行する。
【００２９】
"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信せずに７５秒が経過した場合，その待機を９回実施したか，その待機の実施回数が９回未満かを判定する（Ｓ１１０）。"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信せずに７５秒が経過するまで９回待機していない場合，ステップＳ１０６からの一連の処理を再び実行する。
【００３０】
"Ｋｅｅｐ  Ａｌｉｖｅ"パケットに対する応答を受信せずに７５秒が経過するまで９回待機した場合，ＣＰＵ３１はサーバー２とのＸＭＰＰ接続の再接続を試行する（Ｓ１１１）。具体的にはプリンター３に割り当てられたアカウントＩＤ，パスワード等が接続要求とともにＸＭＰＰに従ってサーバー２に送信される。このようにしてＸＭＰＰ接続が切断されてから最初にＸＭＰＰ再接続を試行するタイミングは，切断から約６７５秒経過後になり，このタイミングが第二タイミングに相当する。切断から第二タイミングまでの時間は６７５秒未満でも良いし，６７５秒を越えても良いが，切断から一定時間経過後にＸＭＰＰ再接続を試行することにより，切断から短期間の内にＸＭＰＰ接続が可能となっていれば，最初の第一タイミングが到来する前にＸＭＰＰ接続を再開することが可能となる。なお，サーバー２の障害によって多数のプリンターとのＸＭＰＰ接続がほぼ同時に切断されており，かつ，第二タイミングの到来前にサーバー２が復旧していれば，第二タイミングにおいては多数のプリンター３からサーバー２に再接続が集中することになるが，障害発生から一定時間経過まではサーバー２を起動しない運用を定めておけば，第二タイミングにおけるサーバー２の負荷集中によって再度障害が発生することはない。そして，プリンター３側の通信経路の異常など、サーバー２以外の障害によってＸＭＰＰ接続が切断された場合には，再接続を試行するプリンター３の台数が限定されるため，サーバー２への再接続の試行が集中することもない。
【００３１】
次にＣＰＵ３１は，ＸＭＰＰ再接続が成功したか否かを判定する（Ｓ１１２）。ＸＭＰＰ再接続が失敗した場合，ＣＰＵ３１は次に述べるステップＳ１１３の処理を実行し，ＸＭＰＰ再接続が成功した場合，ＣＰＵ３１はステップＳ１０４からの一連の処理を再び実行する。
【００３２】
ステップＳ１１３において，ＣＰＵ３１は一様乱数αを取得する（Ｓ１１３）。一様乱数αは，０からβまでの区間において等しい確率で出現する有理数である。すなわち，一様乱数αは，長さβの期間毎にランダムに第一タイミングを設定するための乱数である。ただし、一様乱数といっても、後述する再接続の試行のタイミングが分散するのであれば、厳密な意味での一様乱数である必要は無く、例えば誤差レベルのばらつきがあってもかまわないし、整数に限定していてもかまわない。
【００３３】
次にＣＰＵ３１は一様乱数αの長さの時間が経過するまで待機する（Ｓ１１４）。
一様乱数αの長さの時間が経過すると，ＣＰＵ３１はサーバー２とのＸＭＰＰ接続の再接続を試行する（Ｓ１１５）。これにより，各プリンター３においては，ランダムな第一タイミングにおいてＸＭＰＰ接続の再接続が試行されることになる。また，各プリンター３においては，長さβの時間毎に１回のＸＭＰＰ再接続が試行されることになる。したがって，サーバー２と常時接続される複数のプリンター３におけるＸＭＰＰ再接続機会は，サーバー２の負荷を分散しながら平準化される。[y1]
【００３４】
次にＣＰＵ３１は，ＸＭＰＰ再接続が成功したか否かを判定する（Ｓ１１６）。ＸＭＰＰ再接続が失敗した場合，ＣＰＵ３１は次に述べるステップＳ１１７の処理を実行し，ＸＭＰＰ再接続が成功した場合，ＣＰＵ３１はステップＳ１０４からの一連の処理を再び実行する。
【００３５】
ＸＭＰＰ再接続が失敗した場合，ＣＰＵ３１はステップＳ１１４での待機の開始からβの時間が経過するまで待機する（Ｓ１１７）。すなわち，（β−α）からステップＳ１１５とステップＳ１１６で要した時間を引いた長さの時間が経過するまで待機する。これによって図３に示すように，サーバー２とのＸＭＰＰ接続の再接続を試行する第一タイミングは，βと長さが等しい期間毎にランダムに１回ずつ設定されることになる。αは一様乱数であるため，ＸＭＰＰ再接続の試行間隔の期待値は，サーバー２から取得されたβとなる。このため，適切な期待値βをサーバー２に予め設定しておくことにより，多数のプリンター３によるＸＭＰＰ再接続の平均試行間隔を最適な間隔に制御することができる。そして、サーバー２とＸＭＰＰ接続するプリンター３の数が多いほど，サーバー２とのＸＭＰＰ接続が一斉に切断された後にサーバー２とのＸＭＰＰ再接続を試行するプリンター３の数が増える。したがって，ＸＭＰＰ再接続を試行するプリンター３の数が多いほどβを大きく設定して再接続時のサーバー２の負荷集中を抑制し，ＸＭＰＰ再接続を試行するプリンター３の数が少ないほどβを小さく設定してＸＭＰＰ再接続が成功するまでに要する期間を短縮することが好ましい。具体的には，サーバー２においてＸＭＰＰ接続しているプリンター３の数を常時監視しておき，，定期的にサーバー２はその時点でＸＭＰＰ接続しているプリンター３の数に基づいたβ及びγをＸＭＰＰ接続でプリンター３に通知する。そして、プリンター３は通知されたβ及びγをその後の再接続に用いるように設定する。サーバー２がメンテナンスなど予めＸＭＰＰ接続が切断されることが分かっている場合には、ＸＭＰＰ接続が切断される直前のプリンター３の数に応じて期待値β及びγを通知することが好ましい。また，サーバー２に対してＸＭＰＰ接続可能なプリンター３の実際の登録台数（ＸＭＰＰアカウントのサーバー２における登録数）や，サーバー２に対してＸＭＰＰ接続可能なプリンター３の出荷台数に応じて期待値βを設定しておき、予めプリンター３に記憶させておいてもよい。
【００３６】
次にＣＰＵ３１は，第１タイミングでの再接続の試行をγ回行ったか、γ回未満かを判定する（Ｓ１１８）。
第１タイミングでの再接続の試行回数がγ回未満の場合，ＣＰＵ３１はステップＳ１１３からの一連の処理を再び実行する。これにより，毎回ランダムに設定される第一タイミングにおいて最大γ回だけＸＭＰＰの再接続が試行される。
【００３７】
第１タイミングでの再接続の試行回数がγ回に達した場合，ここまで述べたＸＭＰＰ再接続処理を終了する。これにより，切断検知直後にＸＭＰＰ再接続を試行する第二タイミングから（γ×β）が経過するまでの期間，サーバー２とプリンター３のＸＭＰＰ接続の再接続が成功しなければ，ＸＭＰＰ接続の切断後のプリンター３によるＸＭＰＰ接続の再接続は終了することになる。したがって閾値γは例えばサーバー２に想定している復旧に要する最大所要時間とβとに応じて定めればよい。
【００３８】
３．処理方法の第２実施例
プリンター３を処理装置として機能させる処理方法の第二実施例について説明する。第二実施例では，ＸＭＰＰ再接続を試行する第一タイミングの間隔自体がランダムに設定され，第一タイミングの間隔の期待値が予め設定されたβとなるように設定される。第一実施例で説明したステップＳ１０１からＳ１１２までの処理は第一実施例と同一であるため説明を省略し，以下，ステップＳ１１２以後の処理について具体的に説明することとする。
【００３９】
ステップＳ１１２においてＸＭＰＰ接続の切断直後の再接続を第二タイミングにおいて試行して失敗すると，ＣＰＵ３１は一様乱数ωを取得する（Ｓ１２３）。一様乱数ωは，０から２βまでの区間において等しい確率で出現する有理数である。すなわち，一様乱数ωは，平均値がβとなる乱数である。ただし、一様乱数といっても、後述する再接続の試行のタイミングが分散するのであれば、厳密な意味での一様乱数である必要は無く、例えば誤差レベルのばらつきがあってもかまわないし、整数に限定していてもかまわない。
【００４０】
次にＣＰＵ３１は一様乱数ωの長さの時間が経過するまで待機する（Ｓ１２４）。
一様乱数ωの長さの時間が経過すると，ＣＰＵ３１はサーバー２とのＸＭＰＰ接続の再接続を試行する（Ｓ１２５）。これにより，図５に示すように，ランダムな間隔ωを空けた第一タイミングにおいてＸＭＰＰ接続の再接続が試行されることになる。本実施例では，第一タイミングの間隔自体がランダムに設定されるので，各プリンター３における一定の間隔毎の再試行回数は一致しないものの，第一タイミングの間隔の期待値をβとして第一タイミングが設定されるため，各プリンター３においてＸＭＰＰ再接続の試行が繰り返されると，複数のプリンター３の試行機会が平準化されることになる。
【００４１】
次にＣＰＵ３１は，ＸＭＰＰ再接続が成功したか否かを判定する（Ｓ１２６）。ＸＭＰＰ再接続が失敗した場合，ＣＰＵ３１は次に述べるステップＳ１２８の処理を実行し，ＸＭＰＰ再接続が成功した場合，ＣＰＵ３１はステップＳ１０４からの一連の処理を再び実行する。
【００４２】
次にＣＰＵ３１は，第一タイミングにおけるＸＭＰＰ再接続をγ回試行したか，その試行回数がγ回未満かを判定する（Ｓ１２８）。
第一タイミングにおけるＸＭＰＰ再接続の試行回数がγ回未満の場合，ＣＰＵ３１はステップＳ１２３からの一連の処理を再び実行する。
【００４３】
第一タイミングにおけるＸＭＰＰ再接続の試行回数がγ回に達した場合，ここまで述べたＸＭＰＰ再接続処理を終了する。第一タイミングの間隔の期待値はβであるため，切断検知直後にＸＭＰＰ再接続を試行する第二タイミングから（γ×β）が経過するまでの期間，サーバー２とプリンター３のＸＭＰＰ接続の再接続が成功しなければ，ＸＭＰＰ接続の切断後のプリンター３によるＸＭＰＰ接続の再接続は終了することになる。したがって閾値γは第１実施例と同様に例えばサーバー２に想定している復旧に要する最大所要時間に応じて定めればよい。
【００４４】
４．他の実施形態
尚，本発明の技術的範囲は，上述した実施例に限定されるものではなく，以下の１つ又は複数の変形例を組み合わせる等，本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００４５】
例えば、γ回の繰り返し分の一様乱数αや一様乱数ωを再接続の試行毎に取得せず、予めまとめて取得しておいてもよい。
また、βやαやωの単位は本発明の要旨を逸脱しない範囲内で任意に決定してもよく、例えば、秒であってもよいし、０．１秒であってもよいし、クロック周期であってもよい。
また，サーバー２は物理的に独立した複数のコンピューターによって構成されてもよいし，単一のコンピューターによって構成されても良い。
また，プリンター３とサーバー２との常時接続のための通信プロトコルについては，ＸＭＰＰ以外の通信プロトコルを用いても良い。例えば，ＳＩＰ（Session Initiation Protocol）やＳＩＭＰＬＥ（SIP for Instant Messaging and Presence Leveraging Extensions）といったＸＭＰＰ以外のプッシュ型通信プロトコル（サーバーからクライアントに対する処理を実行するためにクライアントからの要求を必要としないプロトコル）を用いて送信しても良い。
また，プリンター以外の様々な情報機器を処理端末として本発明を適用できることはいうまでもない。
【符号の説明】
【００４６】
１…通信端末，２…サーバー，３ａ，３ｂ，３ｃ，３ｄ…プリンター，４…インターネット，３１…ＣＰＵ，３２…ＲＯＭ，３３…ＲＡＭ，３４…通信部，３５…印刷部，３３１…ＯＳ，３３２…接続制御モジュール，３３３…サーバーインターフェースモジュール，３３４…印刷制御モジュール
【図１】
2013051571.tif 000003
【図２】
2013051571.tif 000004
【図３】
2013051571.tif 000005
【図４】
2013051571.tif 000006
【図５】
2013051571.tif 000007