JP2013051571A - 処理端末および処理方法 - Google Patents

処理端末および処理方法 Download PDF

Info

Publication number
JP2013051571A
JP2013051571A JP2011188939A JP2011188939A JP2013051571A JP 2013051571 A JP2013051571 A JP 2013051571A JP 2011188939 A JP2011188939 A JP 2011188939A JP 2011188939 A JP2011188939 A JP 2011188939A JP 2013051571 A JP2013051571 A JP 2013051571A
Authority
JP
Japan
Prior art keywords
server
reconnection
timing
xmpp
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011188939A
Other languages
English (en)
Inventor
Yasuhiro Furuta
泰大 古田
Yasuhiro Oshima
康裕 大島
Hirotaka Akamatsu
裕隆 赤松
Hiroyuki Suzuki
啓之 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011188939A priority Critical patent/JP2013051571A/ja
Priority to US13/596,630 priority patent/US20130054818A1/en
Publication of JP2013051571A publication Critical patent/JP2013051571A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1267Job repository, e.g. non-scheduled jobs, delay printing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】サーバーと接続される複数の処理端末における再接続をサーバーの負荷を分散しながら早期に確立する。
【解決手段】サーバーと接続を確立して通信する通信手段と,前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と,前記接続の切断を検知する切断検知手段と,前記接続の切断が検知された場合,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と,を備える処理端末。
【選択図】図2

Description

本発明は,処理端末および処理方法に関し,特にクラウドコンピューティングシステムにおいてユーザーからサーバー経由で取得したリクエストを即時に実行するための技術に関する。
従来,電子メールの送信によって特定のプリンターに印刷させるためのサービスを提供するクラウドコンピューティングシステムが知られている(例えば特許文献1)。このクラウドコンピューティングシステムは,特定の電子メールを受信すると電子メールに基づいて特定のプリンターに対応した印刷データを生成するサーバーを備え,サーバーに登録されている特定のプリンターはサーバーから印刷データを取得して印刷を実行する。したがって利用者は,PC(Personal Computer),スマートフォン等のクライアント端末にプリンタードライバーがインストールされていない場合であっても,サーバーに登録されているプリンターを利用することが可能になる。このシステムにおいては,特定の電子メールアドレスと対応付けられたプリンターの登録処理がサーバーにおいてなされると,当該電子メールアドレスを知っている任意のユーザーが当該プリンターを利用可能になる。
特開2008−71257号公報
しかし,POPを用いてプリンターがサーバーから印刷データを取得して実行する場合,サーバーに存在する印刷データをプリンターがポーリングしなければならないため,即時性とネットワークトラフィックやサーバー負荷の低減を両立させることが困難である。そこで,上述のシステムでは,プッシュ型のプロトコルを用いた常時接続を維持し,ユーザーからの印刷データを即座にプリンターが受信できるようにすることが好ましい。このようなプッシュ型のプロトコルとしてはXMPPやSIPが周知であるが,これらのプロトコルに従って常時接続を確立したとしても,ルーターやファイヤウォールやプロキシサーバーによって接続が切断されたり,サーバーの不具合によって接続が切断される場合がある。一般に,接続が切断された場合には,自動的に再接続が試行されるが,再接続の試行が集中することによってサーバーの負荷が過大となる恐れがある。そして,再接続の試行が集中することによってサーバーがダウンすると,その後の再接続の試行も集中することになって再接続が失敗し続ける事態が発生するという問題がある。これは、常時接続や印刷の場合に限られない。
本発明は,この問題を解決するために創作されたもので,サーバーと接続される複数の処理端末における再接続をサーバーの負荷を分散しながら早期に確立することを目的とする。
(1)上記目的を達成するための処理端末は,サーバーと接続を確立して通信する通信手段と,前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と,前記接続の切断を検知する切断検知手段と,前記接続の切断が検知された場合,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と,を備える。
本発明によると,サーバーとの接続が切断された場合には,その切断が検知され,第一タイミングにおいて再接続が繰り返し試行される。再接続が試行される第一タイミングは,第一タイミングの間隔(試行間隔)の期待値を所定の一定値に設定した上でランダムに設定される。したがって,処理端末毎にこのように設定される第一タイミングは分散することになるが,第一タイミングの間隔の平均値は予め定められた所定の一定値となる。すなわち,処理端末毎にみれば,一定時間内に再接続が試行される回数が保証されており,かつ,複数の処理端末を見れば,再接続を試行するタイミングが分散することになる。したがって,接続が切断された後に再接続が可能な状態に遷移してから、サーバーの負荷を分散しながら期待値の時間内に、複数の処理端末とサーバーとの再接続が確立されることを期待できる。なお,ランダムな第一タイミングは一様乱数を用いて設定されることが好ましい。また、ランダムな第一タイミングにおいて試行する再接続の間隔の期待値は、厳密な意味で一定値でなくともよく、誤差があってもよいし、設計上許容できる範囲の幅においてばらつきがあってもよい。
(2)上記目的を達成するための処理端末において,前記再接続手段は,前記所定の一定値と長さが等しい期間毎にランダムなタイミングで到来する前記第一タイミングにおいて前記サーバーとの再接続を試行してもよい。
この場合,各処理端末においては,一定の間隔毎に1回の再試行が確実に実行されることになる。すなわち,複数の処理端末の試行機会がより一層平準化されることになる。なお、ランダムな第一タイミングにおいて試行する再接続の間隔の期待値が一定になる範囲であれば、再接続が各1回試行される期間と期間の間に、例えば交互に1秒と2秒の空白期間を挿入するなど、長さが一定でない短い期間を挿入しても良い。
(3)上記目的を達成するための処理端末において,前記再接続手段は,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな長さの間隔で到来する前記第一タイミングにおいて前記サーバーとの再接続を試行してもよい。
この場合,第一タイミングの間隔自体がランダムなので,各処理端末における一定の間隔毎の再試行回数は一致しないものの,第一タイミングの間隔の期待値が所定の一定値であるため,各処理端末において再接続の試行が繰り返されると,複数の処理端末の試行機会が平準化されることになる。
(4)上記目的を達成するための処理端末において,前記再接続手段は,前記接続の切断が検知された後,最初の前記第一タイミングが到来する前の所定の第二タイミングにおいて,前記サーバーとの再接続を試行してもよい。
この場合,切断から短期間の内に接続が可能な状態に遷移していれば,最初の第一タイミングが到来する前に接続を再確立することが可能となる。なお,サーバーの障害によって接続が切断されており,かつ,第二タイミングの到来前にサーバーが復旧していれば,第二タイミングにおいてはサーバーに再接続の試行が集中することになるが,障害発生から一定時間経過まではサーバーを起動しない運用を定めておけば,第二タイミングにおけるサーバーの負荷集中によって再度障害が発生することはない。そして,サーバー以外の障害によって接続が切断された場合には,再接続を試行する処理端末の台数が限定されるため,サーバーへの再接続の試行が集中することもない。
(5)上記目的を達成するための処理端末において,前記再接続手段は,前記サーバーから取得する接続制御情報に基づいて前記所定の一定値を設定してもよい。
サーバーに接続される処理端末の台数に応じて,再接続の試行によるサーバーへの負荷集中の程度が決まる。したがって,接続され得る処理端末の台数に応じた第一タイミングの間隔の期待値を決める接続制御情報をサーバーに登録しておき,処理端末がサーバーから取得する接続制御情報に基づいて第一タイミングを設定すれば,第一タイミングの間隔を最適化することができる。なお,接続制御情報は,再接続の試行間隔の期待値を一義的に設定し得る情報であればどのような情報であっても良く,例えば,処理端末の出荷台数や,処理端末のサーバーへの登録台数や,処理端末のサーバーへの実際の接続台数等を接続制御情報として設定し得る。
なお,請求項に記載された各手段の機能は,構成自体で機能が特定されるハードウェア資源,プログラムにより機能が特定されるハードウェア資源,又はそれらの組み合わせにより実現される。また,これら各手段の機能は,各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。例えば,請求項に記載されたサーバーとは,1台のコンピューターで実現されているものに限られず,各手段をそれぞれ分担する複数のコンピューターの組み合わせによる群としてサーバーを実現しても良い。さらに,本発明は方法としても,上記した機能をコンピュータに実現させるコンピュータープログラムとしても,そのプログラムの記録媒体としても成立する。むろん,そのコンピュータプログラムの記録媒体は,磁気記録媒体であってもよいし光磁気記録媒体であってもよいし,今後開発されるいかなる記録媒体であってもよい。
図1は処理端末としてのプリンターを含む印刷システム全体を示すブロック図である。 処理方法を示すフローチャートである。 処理方法を示すタイミングチャートである。 処理方法を示すフローチャートである。 処理方法を示すタイミングチャートである。
以下,本発明の実施の形態を添付図面を参照しながら説明する。尚,各図において対応する構成要素には同一の符号が付され,重複する説明は省略される。
1.構成
本発明にかかる処理端末の一実施例としてのプリンター3a,3b,3c,3dを含む印刷システム全体の構成を図1に示す。図1に示す印刷システムは,サーバー2に登録されたプリンター3a,3b,3c,3dのいずれかに対応付けられた電子メールアドレスを宛先とする電子メールを任意の通信端末1から送信すると,宛先の電子メールアドレスに対応付けられたプリンター3a,3b,3c,3dのいずれかにおいて電子メールの添付ファイルや本文が印刷される機能を実現する。サーバー2は1以上のコンピューターによって構成され,サーバー2,プリンター3a,3b,3c,3d,通信端末1はインターネット4に接続される。なお,プリンター3a,3b,3c,3dの構成は発明を理解する上において実質的に同一であるため,図1においてはプリンター3a,3b,3c,3dの構成は省略されている。また,以下の説明では特に必要がない限り,プリンター3a,3b,3c,3dを区別することなく,プリンター3と表記する。
プリンター3は,サーバー2との常時接続によってサーバー2から取得する要求に基づいて印刷を実行する機能を有する。したがってプリンター3は,CPU31,ROM32,RAM33,印刷部35等の通常のプリンターの構成要素に加えて,インターネット4を介してメッセージを送受信するための通信部34を備えている。通信部34はインターネット4からLANを経由して受信する信号をプロトコルに従って変換して内部バスに送出し,内部バスから取り込んだ信号をプロトコルに従って変換してLANを経由してインターネットに送出する。ROM32にはRAM33に読み込まれCPU31によって実行される種々のコンピュータープログラムが記憶されている。これらのコンピュータープログラムをCPU31が実行することによって,プリンター3の各種の機能が実現される。
OS331は,接続制御モジュール332,サーバーインターフェースモジュール333,印刷制御モジュール334等の各種のアプリケーションプログラムと協働してプリンター3のハードウェアを制御するとともに,TCP/IP,HTTP,XMPP等のプロトコルに従ってサーバー2との通信を制御する機能を実現する。したがってOS331は,CPU31および通信部34を通信手段として機能させるコンピュータープログラムである。なお,プリンター3がTCP/IP,HTTP,XMPP等のプロトコルに従ってサーバー2と通信するためのアカウント情報は予めプリンター3とサーバー2とにそれぞれ設定されている。
接続制御モジュール332は,XMPPに従ってサーバー2との常時接続を確立して維持する機能を実現する。また接続制御モジュール332は,XMPPに従ったサーバー2との常時接続の切断を検知し,切断が検知された場合には,予めサーバー2から取得した接続制御情報に基づいて設定するランダムな第一タイミングにおいてXMPPに従ったサーバー2との常時接続の再接続を繰り返し試行する機能を実現する。したがって,接続制御モジュール332は,CPU31を接続検知手段および再接続手段として機能させるコンピュータープログラムである。
サーバーインターフェースモジュール333は,HTTP,XMPP等のプロトコルに従ってサーバー2と通信することによって,サーバー2から印刷要求や印刷データを取得する機能を実現する。
印刷制御モジュール334は,サーバーインターフェースモジュール333を介して印刷要求や印刷データを取得し,これらを取得すると,印刷データに基づいて印刷部35を制御して印刷を実行する機能を実現する。したがって印刷制御モジュール334は,CPU31および印刷部35を処理手段として機能させるコンピュータープログラムである。
2.処理方法の第1実施例
次に上述のプリンター3を処理装置として機能させる処理方法の第一実施例について説明する。図1に示す印刷システムにおいては,通信端末1からプリンター3に対応付けられた電子メールアドレス宛の電子メールが添付ファイルとともに送信されたとき,プリンター3において添付ファイルの印刷が即座に実行されることが望まれる。また,プリンター3が印刷要求を即時に取得するためにサーバー2をHTTPに基づいたメッセージを使ってポーリングすることはサーバー2の負荷とネットワークトラフィックの観点から望ましくない。そこで,プリンター3はXMPPに基づいた印刷要求をサーバー2から取得する。XMPPは,双方向にメッセージを送信できる所謂プッシュ型プロトコルであるため,プリンター3によるサーバー2のポーリングは不要となる。しかし,XMPPに基づいた常時接続が切断されると,通信端末1からプリンター3に対応付けられた電子メールアドレス宛の電子メールが送信されてからプリンター3において印刷が実行されるまでに遅延が生ずる。そこで本実施例においては,図2に示す手順でXMPPに基づいた常時接続を維持する。図2に示す処理は,主に,上述した接続制御モジュール332を実行するCPU31によって実行されるが,接続制御モジュール332とOS331が随所で協働することはいうまでもない。
はじめにCPU31はサーバー2から接続制御情報β(例えば30秒),γ(例えば3000回)を取得する(S101)。このときサーバー2とプリンター3との間ではXMPPに基づいた常時接続は確立されていないため,接続制御情報はHTTPに基づいてサーバー2から取得される。
次にCPU31は,サーバー2とのXMPPに基づいた常時接続を試行する(S102)。具体的にはプリンター3に割り当てられたアカウントID,パスワード等が接続要求とともにXMPPに従ってサーバー2に送信される。なお,XMPPに基づいた常時接続を単にXMPP接続というものとする。
次にCPU31は,XMPP接続が成功したか否かを判定する(S103)。XMPP接続が成功した場合,CPU31は次に述べるステップS104の処理を実行し,XMPP接続が失敗した場合,CPU31は後述するステップS113の処理を実行する。
ステップS104において,CPU31は,XMPPに基づいた通信が発生するか,あるいはXMPPに基づいた通信が発生せずに290秒が経過するまで待機する。
次にCPU31は,XMPPに基づいた通信が発生したか,XMPPに基づいた通信が発生せずに290秒が経過したかを判定する(S105)。XMPPに基づいた通信が発生した場合,CPU31は通信の内容に応じた処理を行い、さらにCPU31はステップS104からの一連の処理を再び実行する。一方,XMPPに基づいた通信が発生せずに290秒が経過した場合,CPU31は次に述べるステップS106の処理を実行する。なお、通信の内容に応じた処理とは、例えば、サーバー2に印刷データが存在することを知らせる通信であれば、サーバー2から印刷データを取得する処理であり、プリンター3のステータス情報を要求する通信であれば、サーバー2にプリンター3のステータス情報を通知する処理である。
ステップS106において,CPU31はXMPPに基づいた"Keep Alive"パケットをLANを介してインターネットに送出する。すなわちXMPPに基づいた通信が発生しない状態が290秒間継続する度にCPU31はXMPPに基づいた"Keep Alive"パケットをLANを介してインターネットに送出する。このようにして"Keep Alive"パケットを送信する理由は,XMPPに基づいたメッセージのやりとりが一定期間途絶えたことによりルーターやファイヤウォールやプロキシサーバーによってXMPP接続が切断されることを防止するためである。なお,"Keep Alive"パケットを送信する間隔を290秒とする理由は,300秒の無通信状態の継続によってXMPP接続を切断するブロードバンドルーターに適合させるためである。すなわち,"Keep Alive"パケットを送信する間隔は,通信環境に応じた最適値を設定すれば良く,290秒よりも短くても長くてもよい。
"Keep Alive"パケットの送信後,CPU31は,"Keep Alive"パケットに対する応答を受信するか,"Keep Alive"パケットに対する応答を受信せずに75秒が経過するまで待機する(S108)。
次にCPU31は"Keep Alive"パケットに対する応答を受信したか,"Keep Alive"パケットに対する応答を受信せずに75秒が経過が経過したかを判定する(S109)。"Keep Alive"パケットに対する応答を受信した場合,ステップS104からの一連の処理を再び実行する。
"Keep Alive"パケットに対する応答を受信せずに75秒が経過した場合,その待機を9回実施したか,その待機の実施回数が9回未満かを判定する(S110)。"Keep Alive"パケットに対する応答を受信せずに75秒が経過するまで9回待機していない場合,ステップS106からの一連の処理を再び実行する。
"Keep Alive"パケットに対する応答を受信せずに75秒が経過するまで9回待機した場合,CPU31はサーバー2とのXMPP接続の再接続を試行する(S111)。具体的にはプリンター3に割り当てられたアカウントID,パスワード等が接続要求とともにXMPPに従ってサーバー2に送信される。このようにしてXMPP接続が切断されてから最初にXMPP再接続を試行するタイミングは,切断から約675秒経過後になり,このタイミングが第二タイミングに相当する。切断から第二タイミングまでの時間は675秒未満でも良いし,675秒を越えても良いが,切断から一定時間経過後にXMPP再接続を試行することにより,切断から短期間の内にXMPP接続が可能となっていれば,最初の第一タイミングが到来する前にXMPP接続を再開することが可能となる。なお,サーバー2の障害によって多数のプリンターとのXMPP接続がほぼ同時に切断されており,かつ,第二タイミングの到来前にサーバー2が復旧していれば,第二タイミングにおいては多数のプリンター3からサーバー2に再接続が集中することになるが,障害発生から一定時間経過まではサーバー2を起動しない運用を定めておけば,第二タイミングにおけるサーバー2の負荷集中によって再度障害が発生することはない。そして,プリンター3側の通信経路の異常など、サーバー2以外の障害によってXMPP接続が切断された場合には,再接続を試行するプリンター3の台数が限定されるため,サーバー2への再接続の試行が集中することもない。
次にCPU31は,XMPP再接続が成功したか否かを判定する(S112)。XMPP再接続が失敗した場合,CPU31は次に述べるステップS113の処理を実行し,XMPP再接続が成功した場合,CPU31はステップS104からの一連の処理を再び実行する。
ステップS113において,CPU31は一様乱数αを取得する(S113)。一様乱数αは,0からβまでの区間において等しい確率で出現する有理数である。すなわち,一様乱数αは,長さβの期間毎にランダムに第一タイミングを設定するための乱数である。ただし、一様乱数といっても、後述する再接続の試行のタイミングが分散するのであれば、厳密な意味での一様乱数である必要は無く、例えば誤差レベルのばらつきがあってもかまわないし、整数に限定していてもかまわない。
次にCPU31は一様乱数αの長さの時間が経過するまで待機する(S114)。
一様乱数αの長さの時間が経過すると,CPU31はサーバー2とのXMPP接続の再接続を試行する(S115)。これにより,各プリンター3においては,ランダムな第一タイミングにおいてXMPP接続の再接続が試行されることになる。また,各プリンター3においては,長さβの時間毎に1回のXMPP再接続が試行されることになる。したがって,サーバー2と常時接続される複数のプリンター3におけるXMPP再接続機会は,サーバー2の負荷を分散しながら平準化される。[y1]
次にCPU31は,XMPP再接続が成功したか否かを判定する(S116)。XMPP再接続が失敗した場合,CPU31は次に述べるステップS117の処理を実行し,XMPP再接続が成功した場合,CPU31はステップS104からの一連の処理を再び実行する。
XMPP再接続が失敗した場合,CPU31はステップS114での待機の開始からβの時間が経過するまで待機する(S117)。すなわち,(β−α)からステップS115とステップS116で要した時間を引いた長さの時間が経過するまで待機する。これによって図3に示すように,サーバー2とのXMPP接続の再接続を試行する第一タイミングは,βと長さが等しい期間毎にランダムに1回ずつ設定されることになる。αは一様乱数であるため,XMPP再接続の試行間隔の期待値は,サーバー2から取得されたβとなる。このため,適切な期待値βをサーバー2に予め設定しておくことにより,多数のプリンター3によるXMPP再接続の平均試行間隔を最適な間隔に制御することができる。そして、サーバー2とXMPP接続するプリンター3の数が多いほど,サーバー2とのXMPP接続が一斉に切断された後にサーバー2とのXMPP再接続を試行するプリンター3の数が増える。したがって,XMPP再接続を試行するプリンター3の数が多いほどβを大きく設定して再接続時のサーバー2の負荷集中を抑制し,XMPP再接続を試行するプリンター3の数が少ないほどβを小さく設定してXMPP再接続が成功するまでに要する期間を短縮することが好ましい。具体的には,サーバー2においてXMPP接続しているプリンター3の数を常時監視しておき,,定期的にサーバー2はその時点でXMPP接続しているプリンター3の数に基づいたβ及びγをXMPP接続でプリンター3に通知する。そして、プリンター3は通知されたβ及びγをその後の再接続に用いるように設定する。サーバー2がメンテナンスなど予めXMPP接続が切断されることが分かっている場合には、XMPP接続が切断される直前のプリンター3の数に応じて期待値β及びγを通知することが好ましい。また,サーバー2に対してXMPP接続可能なプリンター3の実際の登録台数(XMPPアカウントのサーバー2における登録数)や,サーバー2に対してXMPP接続可能なプリンター3の出荷台数に応じて期待値βを設定しておき、予めプリンター3に記憶させておいてもよい。
次にCPU31は,第1タイミングでの再接続の試行をγ回行ったか、γ回未満かを判定する(S118)。
第1タイミングでの再接続の試行回数がγ回未満の場合,CPU31はステップS113からの一連の処理を再び実行する。これにより,毎回ランダムに設定される第一タイミングにおいて最大γ回だけXMPPの再接続が試行される。
第1タイミングでの再接続の試行回数がγ回に達した場合,ここまで述べたXMPP再接続処理を終了する。これにより,切断検知直後にXMPP再接続を試行する第二タイミングから(γ×β)が経過するまでの期間,サーバー2とプリンター3のXMPP接続の再接続が成功しなければ,XMPP接続の切断後のプリンター3によるXMPP接続の再接続は終了することになる。したがって閾値γは例えばサーバー2に想定している復旧に要する最大所要時間とβとに応じて定めればよい。
3.処理方法の第2実施例
プリンター3を処理装置として機能させる処理方法の第二実施例について説明する。第二実施例では,XMPP再接続を試行する第一タイミングの間隔自体がランダムに設定され,第一タイミングの間隔の期待値が予め設定されたβとなるように設定される。第一実施例で説明したステップS101からS112までの処理は第一実施例と同一であるため説明を省略し,以下,ステップS112以後の処理について具体的に説明することとする。
ステップS112においてXMPP接続の切断直後の再接続を第二タイミングにおいて試行して失敗すると,CPU31は一様乱数ωを取得する(S123)。一様乱数ωは,0から2βまでの区間において等しい確率で出現する有理数である。すなわち,一様乱数ωは,平均値がβとなる乱数である。ただし、一様乱数といっても、後述する再接続の試行のタイミングが分散するのであれば、厳密な意味での一様乱数である必要は無く、例えば誤差レベルのばらつきがあってもかまわないし、整数に限定していてもかまわない。
次にCPU31は一様乱数ωの長さの時間が経過するまで待機する(S124)。
一様乱数ωの長さの時間が経過すると,CPU31はサーバー2とのXMPP接続の再接続を試行する(S125)。これにより,図5に示すように,ランダムな間隔ωを空けた第一タイミングにおいてXMPP接続の再接続が試行されることになる。本実施例では,第一タイミングの間隔自体がランダムに設定されるので,各プリンター3における一定の間隔毎の再試行回数は一致しないものの,第一タイミングの間隔の期待値をβとして第一タイミングが設定されるため,各プリンター3においてXMPP再接続の試行が繰り返されると,複数のプリンター3の試行機会が平準化されることになる。
次にCPU31は,XMPP再接続が成功したか否かを判定する(S126)。XMPP再接続が失敗した場合,CPU31は次に述べるステップS128の処理を実行し,XMPP再接続が成功した場合,CPU31はステップS104からの一連の処理を再び実行する。
次にCPU31は,第一タイミングにおけるXMPP再接続をγ回試行したか,その試行回数がγ回未満かを判定する(S128)。
第一タイミングにおけるXMPP再接続の試行回数がγ回未満の場合,CPU31はステップS123からの一連の処理を再び実行する。
第一タイミングにおけるXMPP再接続の試行回数がγ回に達した場合,ここまで述べたXMPP再接続処理を終了する。第一タイミングの間隔の期待値はβであるため,切断検知直後にXMPP再接続を試行する第二タイミングから(γ×β)が経過するまでの期間,サーバー2とプリンター3のXMPP接続の再接続が成功しなければ,XMPP接続の切断後のプリンター3によるXMPP接続の再接続は終了することになる。したがって閾値γは第1実施例と同様に例えばサーバー2に想定している復旧に要する最大所要時間に応じて定めればよい。
4.他の実施形態
尚,本発明の技術的範囲は,上述した実施例に限定されるものではなく,以下の1つ又は複数の変形例を組み合わせる等,本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、γ回の繰り返し分の一様乱数αや一様乱数ωを再接続の試行毎に取得せず、予めまとめて取得しておいてもよい。
また、βやαやωの単位は本発明の要旨を逸脱しない範囲内で任意に決定してもよく、例えば、秒であってもよいし、0.1秒であってもよいし、クロック周期であってもよい。
また,サーバー2は物理的に独立した複数のコンピューターによって構成されてもよいし,単一のコンピューターによって構成されても良い。
また,プリンター3とサーバー2との常時接続のための通信プロトコルについては,XMPP以外の通信プロトコルを用いても良い。例えば,SIP(Session Initiation Protocol)やSIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)といったXMPP以外のプッシュ型通信プロトコル(サーバーからクライアントに対する処理を実行するためにクライアントからの要求を必要としないプロトコル)を用いて送信しても良い。
また,プリンター以外の様々な情報機器を処理端末として本発明を適用できることはいうまでもない。
1…通信端末,2…サーバー,3a,3b,3c,3d…プリンター,4…インターネット,31…CPU,32…ROM,33…RAM,34…通信部,35…印刷部,331…OS,332…接続制御モジュール,333…サーバーインターフェースモジュール,334…印刷制御モジュール

Claims (6)

  1. サーバーと接続を確立して通信する通信手段と,
    前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行する処理手段と,
    前記接続の切断を検知する切断検知手段と,
    前記接続の切断が検知された場合,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する再接続手段と,
    を備える処理端末。
  2. 前記再接続手段は,前記所定の一定値と長さが等しい期間毎にランダムなタイミングで到来する前記第一タイミングにおいて前記サーバーとの再接続を試行する,
    請求項1に記載の処理端末。
  3. 前記再接続手段は,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな長さの間隔で到来する前記第一タイミングにおいて前記サーバーとの再接続を試行する,
    請求項1に記載の処理端末。
  4. 前記再接続手段は,前記接続の切断が検知された後,最初の前記第一タイミングが到来する前の所定の第二タイミングにおいて,前記サーバーとの再接続を試行する,
    請求項1から3のいずれか一項に記載の処理端末。
  5. 前記再接続手段は,前記サーバーから取得する接続制御情報に基づいて前記所定の一定値を設定する,
    請求項1から4のいずれか一項に記載の処理端末。
  6. サーバーとの接続を確立して通信し,
    前記通信によって前記サーバーから取得する情報に基づいて所定の処理を実行し,
    前記接続の切断を検知し、
    前記接続の切断が検知された場合,試行間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバーとの再接続を繰り返し試行する、
    ことを含む処理方法。
JP2011188939A 2011-08-31 2011-08-31 処理端末および処理方法 Withdrawn JP2013051571A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011188939A JP2013051571A (ja) 2011-08-31 2011-08-31 処理端末および処理方法
US13/596,630 US20130054818A1 (en) 2011-08-31 2012-08-28 Processing terminal and processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011188939A JP2013051571A (ja) 2011-08-31 2011-08-31 処理端末および処理方法

Publications (1)

Publication Number Publication Date
JP2013051571A true JP2013051571A (ja) 2013-03-14

Family

ID=47745300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011188939A Withdrawn JP2013051571A (ja) 2011-08-31 2011-08-31 処理端末および処理方法

Country Status (2)

Country Link
US (1) US20130054818A1 (ja)
JP (1) JP2013051571A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179017A (ja) * 2013-03-15 2014-09-25 Brother Ind Ltd 中継装置、画像処理装置および通信システム
JP2015104034A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2016197469A (ja) * 2016-08-24 2016-11-24 ブラザー工業株式会社 中継サーバ及び通信装置
JP2017092681A (ja) * 2015-11-09 2017-05-25 セイコーエプソン株式会社 ネットワークシステム、クライアント、及び、クライアントの制御方法
US10469608B2 (en) 2013-03-15 2019-11-05 Brother Kogyo Kabushiki Kaisha Relay server system and communication apparatus

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387069B (zh) * 2011-10-08 2014-05-07 华为技术有限公司 客户端与服务端的连接方法及系统、客户端和服务端
CN104919435B (zh) * 2013-01-30 2018-08-24 精工爱普生株式会社 控制系统、控制系统的控制方法以及控制装置
US20150149523A1 (en) * 2013-11-27 2015-05-28 Sharp Kabushiki Kaisha Network system, constant connection method, communication method,electronic device, constant connection server, application server, and program
US20150149524A1 (en) * 2013-11-27 2015-05-28 Sharp Kabushiki Kaisha Network system, constant connection method, electronic device, server, and program
CN105142235B (zh) * 2015-08-13 2019-02-26 珠海格力电器股份有限公司 空调机组的通讯方法及装置
JP6387925B2 (ja) * 2015-09-01 2018-09-12 コニカミノルタ株式会社 画像処理システム、画像処理装置及びプログラム
US10362147B2 (en) * 2015-10-09 2019-07-23 Seiko Epson Corporation Network system and communication control method using calculated communication intervals
JP7281071B2 (ja) * 2019-02-15 2023-05-25 京セラドキュメントソリューションズ株式会社 電子機器、その制御方法及び制御プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4535466A (en) * 1983-08-10 1985-08-13 The United States Of America As Represented By The Secretary Of The Air Force Random timer
US5790536A (en) * 1989-01-31 1998-08-04 Norand Corporation Hierarchical communication system providing intelligent data, program and processing migration
US6714983B1 (en) * 1989-04-14 2004-03-30 Broadcom Corporation Modular, portable data processing terminal for use in a communication network
US5673252A (en) * 1990-02-15 1997-09-30 Itron, Inc. Communications protocol for remote data generating stations
JP2909165B2 (ja) * 1990-07-27 1999-06-23 株式会社東芝 広帯域通信網、エンドユーザ端末、通信網、広帯域通信ノード、通信ノード、インターフェースアダプタ、マルチポイント接続インターフェース、マルチポイント接続制御装置及びアクセスユニット
US5966636A (en) * 1995-11-29 1999-10-12 Motorola, Inc. Method and apparatus for multiple access over randomized slots with collision detection in a cable telephony system
US6810263B1 (en) * 1999-12-22 2004-10-26 Denso Corporation Packet data reconnection timing control in mobile communication systems
US7441041B2 (en) * 2003-11-29 2008-10-21 Microsoft Corporation Network download regulation method and system
JP4251207B2 (ja) * 2006-04-28 2009-04-08 ソニー株式会社 サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
JP5092877B2 (ja) * 2008-04-30 2012-12-05 ブラザー工業株式会社 ツリー型放送システム、パケット送信方法、ノード装置、及びノード処理プログラム
US8213915B1 (en) * 2009-02-12 2012-07-03 Sprint Communications Company, L.P. HTTP session management

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179017A (ja) * 2013-03-15 2014-09-25 Brother Ind Ltd 中継装置、画像処理装置および通信システム
US10469608B2 (en) 2013-03-15 2019-11-05 Brother Kogyo Kabushiki Kaisha Relay server system and communication apparatus
JP2015104034A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2017092681A (ja) * 2015-11-09 2017-05-25 セイコーエプソン株式会社 ネットワークシステム、クライアント、及び、クライアントの制御方法
JP2016197469A (ja) * 2016-08-24 2016-11-24 ブラザー工業株式会社 中継サーバ及び通信装置

Also Published As

Publication number Publication date
US20130054818A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
JP2013051571A (ja) 処理端末および処理方法
US7958247B2 (en) HTTP push to simulate server-initiated sessions
EP3226481B1 (en) Method for heartbeat packet processing by using proxy, apparatus, and communications system
CN107070689B (zh) 减少使用网络保活消息时的错误警告的方法及装置
US20140359117A1 (en) Shared heartbeat service for managed devices
US9391864B2 (en) Internet service control method, and relevant device and system
US9088603B2 (en) File transfer method and device
US10594844B2 (en) Method and system for wireless network bilateral accelerated transmission
US20160073443A1 (en) Method and apparatus for energy-optimized data transmission using the opc ua protocol in radio networks
CN107508916B (zh) 用于智能机器人的服务器链接管理方法
US20140201376A1 (en) Method and system for the handling of redundant long poll
WO2013159492A1 (zh) 信息上报与下载的方法及系统
US9261948B2 (en) Image forming apparatus and control method for executing a proxy in response to a heartbeat
US10069671B2 (en) Method and apparatus for processing abnormality of application proxy client
US9866644B2 (en) Terminal, message distribution system, message distribution method, and computer-readable medium
KR101407597B1 (ko) 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법
KR101224557B1 (ko) 킵얼라이브 통신 시스템, 클라이언트, 및 통신방법
EP3314970B1 (en) Method and apparatus for managing uplink traffic from a client device in a communication network
JP2014146876A (ja) メッセージ配信システムおよびメッセージ配信方法
JP5537970B2 (ja) Webサービス稼動監視システムおよびWebサービス稼動監視方法
KR20130004845A (ko) 킵얼라이브 통신 시스템 및 통신방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140711

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20151022