JP2013211842A - 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム - Google Patents

通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム Download PDF

Info

Publication number
JP2013211842A
JP2013211842A JP2013033871A JP2013033871A JP2013211842A JP 2013211842 A JP2013211842 A JP 2013211842A JP 2013033871 A JP2013033871 A JP 2013033871A JP 2013033871 A JP2013033871 A JP 2013033871A JP 2013211842 A JP2013211842 A JP 2013211842A
Authority
JP
Japan
Prior art keywords
communication
connection
server
push
server device
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.)
Granted
Application number
JP2013033871A
Other languages
English (en)
Other versions
JP2013211842A5 (ja
JP6059037B2 (ja
Inventor
Takehiro Wada
雄弘 和田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013033871A priority Critical patent/JP6059037B2/ja
Priority to PCT/JP2013/056046 priority patent/WO2013129685A1/en
Priority to US13/879,532 priority patent/US9277016B2/en
Publication of JP2013211842A publication Critical patent/JP2013211842A/ja
Publication of JP2013211842A5 publication Critical patent/JP2013211842A5/ja
Application granted granted Critical
Publication of JP6059037B2 publication Critical patent/JP6059037B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Abstract

【課題】ファイアウォールを越えたプッシュ通信において、クライアント装置とサーバ装置との間のコネクションを効率的に維持する通信システムを提供する。
【解決手段】ファイアウォールを介して、インターネット上のサーバ装置と、イントラネット上の1または複数のクライアント装置とが接続される通信システムにおいて、前記クライアント装置は、前記サーバ装置とのプッシュ通信のコネクションを作成する作成手段と、前記コネクションを維持するために定期的に送信する通知の送信間隔に関する情報を前記サーバ装置から取得する取得手段と、前記取得手段にて取得した送信間隔に関する情報に基づいて前記通知を定期的に送信することにより、前記作成手段にて作成したコネクションを維持する管理手段とを有する。
【選択図】図1

Description

本発明は、通信システム、クライアント装置、サーバ装置、通信方法、及びプログラムに関し、特にプッシュ通信における通信コネクションの維持方法、通信方法に関する。
従来からネットワークに不要な負荷をかけることなく持続的に通信コネクションを維持する通信方式の提案がなされている。従来技術では、定期的にパケットを送信することにより(Keep−Alive)、コネクション切断を防ぐことが可能である。例えば、クライアントが自律的に適切なKeep−Alive間隔を決定する事で、ネットワークに不要な負荷をかけることなく持続的にコネクションを維持する(例えば、特許文献1参照)。
一方、インターネット上のサーバからファイアウォールよりも内側にあるイントラネット上のクライアントに対して持続的にコネクションを維持する事で、プロキシサーバを越えて通信を行うプッシュ通信方式の提案がなされている(例えば非特許文献1参照)。
特開2003−18235号公報
"The WebSocket protocol:draft−ietf−hybi−thewebsocketprotocol−17",[online],平成23年9月30日,IETF,[平成23年12月27日検索],インターネット<URL:http://tools.ietf.org/html/draft−ietf−hybi−thewebsocketprotocol−17>
特許文献1では、非特許文献1で示されるようなプッシュ通信でファイアウォールを越えて通信する場合に対して、適切なKeep−Aliveの送信を行えない。つまり、プッシュ通信では、通信経路上にファイアウォールなどの通信機器が存在するため、サーバはイントラネット上のクライアント装置に対して適切な間隔でKeep−Aliveの送信を行えない。その結果、通信経路上にある通信装置によって、コネクションが切断され、インターネット上のサーバからクライアント装置への通信ができなくなる課題がある。
また、Keep−Aliveの間隔が短いと過剰な通信が増えるためトラフィックが増大し通信効率が低下する。また、Keep−Aliveの間隔が長いとファイアウォールによる通信遮断が発生し、コネクションが維持できないために即時データ転送が行えなくなる。
本発明では、上記課題を鑑み、通信経路上にファイアウォールなどの通信コネクションを切断するような通信制限が生じる場合においても、通信コネクションを継続し、データ転送が可能な通信システムを提案する。
上記課題を解決するために本願発明は以下の構成を有する。すなわち、ファイアウォールを介して、インターネット上のサーバ装置と、イントラネット上の1または複数のクライアント装置とが接続される通信システムであって、前記クライアント装置は、前記サーバ装置とのプッシュ通信のコネクションを作成する作成手段と、前記コネクションを維持するために定期的に送信する通知の送信間隔に関する情報を前記サーバ装置から取得する取得手段と、前記取得手段にて取得した送信間隔に関する情報に基づいて前記通知を定期的に送信することにより、前記作成手段にて作成したコネクションを維持する管理手段とを有し、前記サーバ装置は、前記クライアント装置とのプッシュ通信のコネクションを用いてデータ通信を行う通信制御手段と、前記通信制御手段によって行われたデータ通信に関する通信ステータス情報を保存する保存手段と、前記保存手段で保存した前記通信ステータス情報に基づいて、前記プッシュ通信のコネクションを無通信で維持することが可能な間隔を決定する決定手段と、前記決定手段が決定した間隔を当該プッシュ通信のコネクションを維持するために用いる前記送信間隔に関する情報として前記クライアント装置に通知する通知手段とを有する。
プッシュ通信方式を利用した、ファイアウォールを介したクライアント―サーバ間の通信においても、適切なKeep−Alive間隔を決定する事ができる。さらに、ネットワークに不要な負荷をかけることなく持続的なコネクションを維持する通信が可能となる。
システムの構成例を示す図。 サーバであるホストコンピュータの構成例を示す図。 複合機の構成例を示す図。 各装置のコンポーネントの構成例を示す図。 複合機、ファイアウォール、およびサーバ間のシーケンス例を示す図。 プッシュ通信制御部の処理フロー例を示すフローチャート。 コネクション管理部の処理フロー例を示すフローチャート。 プッシュ通信制御部の処理フロー例を示すフローチャート。 通信ステータス情報の構成例を示す図。
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<実施例1>
[システム構成]
本発明の実施例に係る通信システムの構成例について説明する。図1は、本発明の実施の形態に係る通信システムの利用環境を説明するシステム構成例を示す図である。
尚、本発明の機能が実現されるのであれば、複合機101でのプログラムの動作を、プリンタやスキャナやMFP(MultiFunction Peripheral)上のCPU、RAM,ROMで実行しても良いことは言うまでもない。また、サーバ102でのプログラムの動作を仮想コンピュータ環境で実行しても良い。図1において、複数の複合機101、105がLAN100に接続されている。さらに、ファイアウォール103、インターネット104を介して、サーバ102が接続されている。
複合機101、複合機105、サーバ102は、LAN100やインターネット104において他の通信装置と通信を行うためにIPアドレスを保持している。複合機101および複合機105では、プリントサーバ機能(LPD:RFC1179)やサーバ102と同様に各種リクエストに応答するサービスを提供している。サービスとしては、例えば、Web、ファイル、SNMP(Simple Network Management Protocol)、WS−Eventingなどがある。
サーバ102は、サービスの要求元となる複合機101、105からのリクエストに応答して、サービスを提供する。サーバ102が提供するサービスとしては、例えば、Webサービス、ストレージサービス、画像処理サービス、メールサービスなどがある。また、サーバ102は、リクエストの要求元からのリクエストに応じて、さらに別のサーバに通信を行ってもよい。さらに、サーバ102は、仮想化サーバや仮想ディスクが複数の物理サーバや物理ストレージから構成されてもよい。また、図1においては、サーバ102は1台の構成にて示しているが、物理的に複数の装置にて処理を分散し、サービスを提供するようにしても構わない。
本実施例では、複合機101とサーバ102との間のプッシュ通信において、ファイアウォール103により通知される通信エラーをサーバ102で検出する。そして、サーバ102は、プッシュ通信のエラーの発生状況からコネクション有効時間を決定し、複合機101に当該決定したコネクション有効時間を通知する。そして、複合機101は、当該通知されたコネクション有効時間に基づいて、適切なKeep−Aliveの通信間隔を設定する。
プッシュ通信は、インターネット上のサーバ装置から、ファイアウォールを越えてイントラネット上のクライアント装置に対して通信を行う通信技術である。プッシュ通信の一例としてWebSocketプロトコルなどがある。なお、サーバ102が提供するサービスに関し、アドレスを利用する通信であれば、IPv4やIPv6などのプロトコルも含め、プロトコルを限定するものではない。
また、複合機101、105とサーバ102との間の接続方式が、LAN,インターネット以外のネットワークや、IEEE802.11などの無線LANなど他通信方式も、本発明を適用できることは言うまでもない。
本発明において、これらの通信プロトコルは、OSI参照モデルの物理層、データリンク層、ネットワーク層、トランスポート層、コネクション層、プレゼンテーション層、アプリケーション層の各層におけるプロトコルを限定するものではない。さらに、実施例以外のネットワークデバイス、情報処理装置、通信装置が接続されていても良い。
[サーバの構成]
図2は、情報処理装置であるサーバ102に適用可能なコンピュータの構成例を示す図である。サーバ102において、CPU1はシステムバス4に接続された各デバイスを統括的に制御する中央処理装置である。CPU1は、ROM3のプログラム用ROM或いは外部メモリ(HD)11に記憶されたアプリケーション(文書処理プログラム等)に基づいて、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理等の各種処理を実行する。
またCPU1は、例えばRAM2上に設定された表示RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRTC(表示制御部)6を介してCRT(表示部)10に表示する。更に、CPU1は、CRT10上に表示されたマウスカーソル(不図示)等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはクライアントアプリケーションや各種サービスを使用する際、その設定などの操作に関するウインドウを開き、設定を行うことができる。尚、表示部はCRTに限らず、液晶やプラズマ等を用いても良い。
RAM2は、CPU1の主メモリ、ワークエリア等として機能する。ROM3は、フォント用ROM(不図示)、プログラム用ROM(不図示)、データ用ROM(不図示)などを備えている。フォント用ROM或いは外部メモリ11は、上記文書処理等の際に使用するフォントデータ等を記憶する。プログラム用ROM或いは外部メモリ11は、CPU1の制御プログラムであるオペレーティングシステム(以下、OS)等を記憶する。データ用ROM或いは外部メモリ11は、上述の文書処理等を行う際に使用する各種データを記憶する。又、外部メモリ11に記憶されているプログラムは、実行時にRAM2に展開されて実行される。
キーボードコントローラ(KBC)5は、キーボード(KB)9やポインティングデバイス(不図示)からの入力情報を制御する。CRTC6は、CRT10への表示を制御する。ディスクコントローラ(DKC)7は、外部メモリ11とのアクセスを制御する。ネットワークコントローラ(NWC)8は、双方向性インターフェース21を介してネットワーク106に接続されている。
KB9は、各種キーを備えている。CRT10は、図形、イメージ、文字、表等を表示する。外部メモリ11はハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等から構成されている。外部メモリ11は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶する。
なお、サーバ102の動作を仮想コンピュータ環境で実行しても良い。
[複合機の構成]
図3は、クライアント装置である図1における複合機101、105の構成例を示す図である。なお本実施例における複合機101には、印刷、スキャナ、FAXなどの複合機能を提供する画像形成装置の他に、それらの単機能を提供する装置などにも適用可能とする。本実施例では一般的な複合機の構成例を示す。また、クライアント装置として、PCなどの情報処理装置を用いても構わない。
フィーダ300(原稿自動送り部)は、スキャナ部301でスキャンニングを行う際に紙を送る機構である。原稿のスキャナ部301は、紙の情報をスキャニングして電子化を行う。UI部302は、複合機101の操作入力操作を受け付ける、情報を表示する機構である。
給紙部303は、印刷の際に印刷用紙を定着部304に送る。定着部304は、給紙部303から送られてきた用紙にトナーを定着させて印刷を行う。排紙部305は、定着部304にて印刷された用紙を排紙する。フィニッシング装置306は、排紙部305から排紙された紙を発注情報に従ってステープルやパンチといった処理を行う。そして排紙トレイ307は、最終的に印刷・フィニッシングされた印刷物を保持するトレイとなる。
[ソフトウェア構成]
図4は、本実施例に係るシステム全体のソフトウェアの構成を説明するブロック図である。
クライアント装置である複合機101、105は、LAN100および、ファイアウォール103を介して、インターネット104上のサーバ装置であるサーバ102と通信を行う。ファイアウォール103には、クライアント装置の代理応答を行うためのプロキシサーバ機能が含まれてもよい。また、図4では示されていないが、複合機101、105とサーバ102との間には、ファイアウォール103の他に、他の通信装置であるロードバランサやリバースプロキシなどの通信装置を介する場合も同様に処理を行える。
先ず、複合機101の構成について説明する。なお、複合機105も同様の構成を有するものとする。MFPコントローラ401は、メインコントローラ402、送受信部403、コネクション管理部404、再送間隔取得部405、コネクション作成部406、再送間隔判定部407などのソフトウェアコンポーネントを含む。これらのソフトウェアコンポーネントにより複合機101全体の制御を行う。例えば、これらのソフトウェアコンポーネントは、図3に示すフィーダ300、スキャナ部301、UI部302、給紙部303、定着部304、排紙部305、フィニッシング装置306、排紙トレイ307などのハードウエアコンポーネントを制御する。
メインコントローラ402は、複合機101の主制御を行う。メインコントローラ402は、複合機101が備える送受信部403、コネクション管理部404、再送間隔取得部405、コネクション作成部406、再送間隔判定部407などの制御や状態監視を行う。
送受信部403は、サーバ102との通信を行う。このとき、送受信部403は、メインコントローラ402を介して、コネクション管理部404、再送間隔取得部405、コネクション作成部406、再送間隔判定部407などから取得したデータを用いて、サーバ102と通信を行う。
コネクション管理部404は、複合機101とサーバ102との間のプッシュ通信に係るコネクションを管理する。再送間隔取得部405は、サーバ102から定期的にKeep−Aliveを行うための送信間隔を取得する。プッシュ通信においてコネクションを維持するために、再送間隔取得部405は、サーバ102が決定したKeep−Aliveを行うための送信間隔を取得する。
コネクション作成部406は、複合機101とサーバ102との間でプッシュ通信を行うためのプッシュ通信用のコネクションを作成する。再送間隔判定部407は、サーバ102から取得したKeep−Aliveを行うための送信間隔を判定し、複合機101が設定可能なKeep−Aliveの送信間隔を決定する。
再送間隔判定部407は、サーバ102から取得したKeep−Aliveの送信間隔が、複合機101の動作条件を満たすかを判定し、Keep−Aliveの送信間隔を、動作条件に合致するように変更する。再送間隔判定部407のより詳しい動作については、実施例4にて説明する。
本実施例において、メインコントローラ402は、これらの部位などの監視を行い、適切な通信処理をサーバ102と行う事で複合機101とサーバ102との間のプッシュ通信のコネクションを管理する。ファイアウォール103などによって通信経路の途中でコネクションが切断されることを回避し、効率的なプッシュ通信を実現する。
次にサーバ102内について説明する。サーバ102が備える各処理部はそれぞれROM3もしくは外部メモリ11などに格納されたプログラムによって実現され、各処理部の処理は必要に応じて、RAM2を用いてCPU1にて実行されるものとする。
送受信部408は、NWC8を用いて、複合機101、105の送受信部403とサーバ102との間の情報を送受信する。Webサーバ409は、複合機の送受信部403とREST(Representational State Transfer)やSOAP(Simple Object Access Protocol)などのプロトコルを用いてやり取りを行うWebサービスサーバである。なお、これらのプロトコルは、本発明を限定するものではない。複合機とサーバ102との間の通信は、TCP(Transmission Control Protocol)やUDP(User Datagram Protocol)、HTTP、SSL(Secure Socket Layer)、TLS(Transport Layer Security)などのプロトコルを用いても良い。
Webサーバ409は、複合機からの要求を受け取り、プッシュ通信制御部410に渡す。また、プッシュ通信制御部410から渡ってきた応答情報を送受信部408に渡す役割を行う。
次に、本発明の特徴となる構成例を説明する。プッシュ通信制御部410は、複合機とプッシュ通信を行うために必要な処理部を呼び出すための全体制御を司る。プッシュ通信制御部410は、プッシュ通信のコネクションを維持するために、通信ステータス情報保存部411、再送間隔決定部412、同一ドメイン判定部413、複数接続管理部414、接続先識別子管理部415、接続先判定部416の制御を行う。この処理において、プッシュ通信制御部410は、Webサーバ409、送受信部408を介してデータ通信を行い、複数の複合機からのリクエストを処理する事も可能である。
また、これらの処理が複数の物理コンピュータで処理される場合や、仮想コンピュータ上で処理される場合も本発明を適用できる。
さらに、サーバ102に対する処理要求元となる複合機が多数存在する場合は、コネクションを長時間、かつ、多数保持する必要がある。この場合、ネットワークロードバランサ、リバースプロキシ(不図示)を含めることで、より大規模なシステムを容易に構築できる。
通信ステータス情報保存部411は、プッシュ通信制御部410が管理する通信ステータス情報であるコネクション情報や接続先情報、通信ステータスなどの情報を記憶する。ここで保存される情報の例について、図9に示す。図9に示す通信ステータス情報として、通信を一意に識別する“ID”、通信を行った時刻を示す“時刻”、通信の相手先を示す“Client”、通信のデータ種別を示す“Data”、通信の結果を示す“Status”を項目として有する。更に、通信が成功した場合において、それまでに無通信であった時間の情報を保存している。なお、これらの情報のより詳細な扱いについては、処理と共に後述する。
再送間隔決定部412は、通信ステータス情報保存部411が記憶している通信ステータスから、コネクション毎のプッシュ通信においてコネクションを維持するために必要なKeep−Aliveの送信間隔を決定する。
同一ドメイン判定部413は、プッシュ通信制御部410が管理する複合機の通信ステータス情報から、プッシュ通信のコネクションの切断条件が一致する同一ドメインに属する他の複合機を判定する。同一ドメインを判定する事で、過去の通信ステータス情報に一致する複合機の情報が無い場合も、同一ドメインに属する他の複合機の通信ステータス情報から適切なKeep−Aliveの送信間隔を決定する事が可能となる。図4で示すシステム全体のソフトウェアの構成例では、複合機101および複合機105の2台の複合機が同一ドメインに属しているものとする。同一ドメイン判定部413のより詳細な動作については、実施例3にて説明する。
複数接続管理部414は、サーバ102と1の複合機との間における複数のコネクションを保持する。複合機とのコネクションが切断された場合に、サーバ102からその複合機に対して、切断されていない別のコネクションによりエラーの通知を行う。これにより、切断されたコネクションを迅速に復旧する事が可能となる。複数接続管理部414のより詳細な動作については、実施例2にて説明する。
接続先識別子管理部415は、複数接続管理部414が複合機との通信を判定するために、コネクション先の複合機を管理する。複合機のコネクション管理部404は、複合機を一意に確定するためのクライアント識別子を発行し、サーバ102との通信時にクライアント識別子を渡す。接続先識別子管理部415は、コネクション毎に接続先のクライアント識別子を管理する。
プッシュ通信制御部410は、プッシュ通信のコネクションを維持するために、通信ステータス情報保存部411、再送間隔決定部412、同一ドメイン判定部413、複数接続管理部414、接続先識別子管理部415、および接続先判定部416の制御を行う。
[処理シーケンス]
図4で示すシステム全体のソフトウェアの構成例では、複数の複合機101、105が存在するため、先ず1台の複合機が適切なKeep−Alive間隔を決定する。本実施形態では、複合機間で通信を行うことにより、1台の複合機を選出する。なお、SLP (Service Location Protocol)やSNMP(Simple Network Management Protocol)でブロードキャスト通信やマルチキャスト通信を行う事で、同一ドメインにおける複合機の探索を行うようにしてもよい。また、本実施形態では、稼働時間が長い機器、CPU使用率の低い機器を判定する事で1台の複合機を選出する方法を用いる。ただし、その他の機器のリソースや設定値から判定するようにしてもよい。これらの優先順位は、機器に事前に設定しておく場合や、ユーザが選択を行う事が出来る。
また、1台の複合機を決定する他の方法として、サーバ102が複合機からの接続時に決定する方法を用いるようにしても構わない。サーバ102は、新たな複合機が接続してきた際に、既に接続している同一ドメインの複合機、および、接続中の複合機の中から稼働時間が長い機器、CPU使用率の低い機器を判定する事で1台の複合機を選出する。サーバ102は、その他の機器のリソースや設定値から判定してもよい。
上述のようにして選出された1台の複合機は、適切なKeep−Alive間隔を決定するために、Keep−Alive間隔を調整しながらプッシュ通信を行う。Keep−Alive間隔の調整方法としては、例えば以下のような手法を用いることができる。複合機は、初期値として例えば、1時間のKeep−Alive間隔を設定する。その後、プッシュ通信を行い、1時間経過後にエラーが発生しない場合は、Keep−Alive間隔を2時間に延ばす。さらに、通信エラーが発生しない場合は、更にKeep−Alive間隔を延長する(例えば、12時間、24時間、168時間と順にKeep−Alive間隔を延長していく)。なお、Keep−Alive間隔の延長時間は、事前に固定値を設定しておいてもよいし、任意のランダム値を使うようにしてもよい。これらの処理により、任意の初期値からKeep−Alive間隔を延長する事が可能になる。
また、適切なKeep−Alive間隔を決定するための他の処理として、Keep−Alive間隔が長すぎるために、プッシュ通信エラーが発生した場合に、適切なKeep−Alive間隔を決定する処理例を示す。
図5は、本実施例に係る、複合機101とサーバ102、およびファイアウォール103の間における処理シーケンスを示す。本実施例において、複合機101とサーバ102の間で、プッシュ通信を遮断する通信機器としてファイアウォール103を例としている。ただし、ファイアウォール103に限るものではなく、通信を行わない場合にタイムアウトしてコネクションを切断する他の通信機器の場合でも同様である。また、複合機105とサーバ102との通信についても同様の流れで行われる。
S501にて、複合機101のコネクション管理部404は、コネクション作成部406において、サーバ102に対してプッシュ通信を行う場合に、ファイアウォール103に対してプロキシサービスのユーザ認証を行う。この結果、ファイアウォール103が複合機101を許可する場合は、ファイアウォール103は、その結果を複合機101に返信する。そして、複合機101はサーバ102に対して通信を開始する。なお、プロキシサービスがユーザ認証を必要としない場合は、このユーザ認証処理を省略しても構わない。
ファイアウォール103は、ユーザ認証を行うことにより、複合機101のIPアドレスやポート番号などの情報を記憶し、複合機101に対し、通信相手であるサーバ102への通信を許可する。ファイアウォール103は、この後の複合機101とサーバ102との間の通信状態を確認し、通信が終了したと判断した場合に、プロキシサービスが複合機101とサーバ102との間の通信を遮断する。
このとき、ファイアウォール103での通信遮断を実行するか否かの判定は、複合機101による認証時からの時間や、無通信状態に移行してからのタイムアウト時間、さらに、通信ステータスを監視し、コネクションが終了してからの経過時間などを用いて判定される。
なお、本実施例において、通信経路上の通信機器によるコネクションの遮断方法を限定するものではない。他の理由により通信が遮断される場合も本実施に含まれることは言うまでもない。
続いて、S502にて、複合機101のコネクション作成部406は、サーバ102のプッシュ通信制御部410に対し、プッシュ通信であるWebSocketのOpening Handshakeを行う(この処理についての詳細は非特許文献1等を参照)。Opening Handshakeが成功し、複合機101とサーバ102との間にWebSocketコネクションが確立すると、サーバ102は複合機101に対して、ファイアウォール103を越えてプッシュ通信が可能になる。
このとき、サーバ102のプッシュ通信制御部410は、プッシュ通信のステータス情報を通信ステータス情報保存部411に保存する。通信ステータス情報の一例を図9に示す。このS502における通信では、図9に示す例の場合、ID“1”に相当する情報が保存される。また、ここでサーバ102とプッシュ通信を行う複合機101のIDアドレスは、“192.168.100.200”が設定されているものとする。
なお、本実施例においてプッシュ通信としてWebSocketを利用しているが、プッシュ通信の方法としてWebSocketに限定するものではなく、他のプッシュ通信についても同様に適用可能である。
S503にて、サーバ102は、WebSocketのデータをファイアウォール103よりもイントラネット側にある複合機101に対して送信する。この時、ファイアウォール103は、サーバ102から複合機101に対する送信を許可しているため、ファイアウォール103よりもイントラネット側にある複合機101に対してWebSocketのデータを送付する事が可能である。この時、サーバ102のプッシュ通信制御部410は、サーバ102と複合機101との間の送受信の状態をログとして時刻とともに通信ステータス情報保存部411に記憶する。
ファイアウォール103によって通信が遮断されていなければ、サーバ102から複合機101に対するWebSocketのデータの送信が成功する(S504)。この時もS503と同様に、サーバ102のプッシュ通信制御部410は、サーバ102と複合機101との間の送受信の状態をログとして時刻とともに通信ステータス情報保存部411に記憶する。
S505にて、プッシュ通信制御部410は、通信ステータス情報保存部411に保持されている通信間隔から、プッシュ通信で通信が成功したコネクション有効時間を算出する。例えば、S503とS504の通信間隔が30分の場合、コネクション有効時間を30分と算出する。図9に示すID“1”とID“2”の通信において、通信間隔は30分として算出されている。なお、S502とS503との間においてもコネクション有効時間を算出するようにしても構わない。
さらに、S506にて、プッシュ通信制御部410は、S505で算出したコネクション有効時間と、過去の最長のコネクション有効時間から、コネクション毎のコネクション最大有効時間を記録する。ここでのコネクション最大有効時間とは、図9に示す通信ステータス情報に記録された情報において、ある通信とその通信の一つ前の通信との通信間隔が最も長い値を指す。図9に示す例の場合、コネクション最大有効時間は、24時間となる。
ファイアウォール103は、複合機101とサーバ102との間の無通信状態が長時間にわたって継続した場合などに、WebSocketコネクションをタイムアウトにより遮断する(S507)。ファイアウォール103がタイムアウトを判断するためのタイマーの値は、予め定義されているものとする。なお、タイムアウトした時点では、ファイアウォール103が複合機101とサーバ102に対して、WebSocketコネクションの切断を通知しないので、複合機101とサーバ102は、コネクションの切断を認識することができない。
S508にて、サーバ102は、WebSocketデータの送信を行う。ここで、S507でファイアウォール103がWebSocketコネクションを遮断している場合は、ファイアウォール103によって通信エラーとなる。ファイアウォール103によって通信エラーが発生するため、S508での送信結果として、S509にて、サーバ102は、ファイアウォール103から送信された通信エラーを受信する。
S510では、プッシュ通信制御部410は、WebSocketデータの通信エラーの検出を行う。通信エラーとしては、TCPのリセット(RST)やport unreachable、タイムアウトなどが検出できる。この時、サーバ102のプッシュ通信制御部410は、サーバ102と複合機101との間の送受信の状態をログとして時刻とともに通信ステータス情報保存部411に記憶する。なお、図9に示す例の場合、ID“5”に示すように、通信エラーの情報(すなわち、NG)が記憶される。
なお、WebSocketのコネクションが確立されている間はサーバ102から複合機101へのプッシュ通信が行えるが、WebSocketのコネクションがファイアウォール103で切断されると、以降、サーバ102から複合機101へのプッシュ通信が行えなくなる。このとき、複合機101がKeep−Aliveを行うことで、サーバ102から複合機101に対するプッシュ通信が再開できる。本実施例において、複合機101は、Keep−AliveとしてOpening Handshakeを再実行しているが、Keep−Aliveの方法を限定するものではない。
一般に、Keep−Aliveを短期間で行うと、通信機器や通信回線が過負荷となる。一方、Keep−Aliveの間隔を長期間にすると、ファイアウォール103でコネクションが遮断されてしまうので、サーバ102からデータを複合機101にプッシュ送信できない期間が長くなる。
S511では、複合機101は、サーバ102に対して、Keep−Aliveを行う。複合機101は、適切なKeep−Alive間隔(後述するコネクション最大有効時間)をサーバ102から通知されていなかったために、複合機101のデフォルトのKeep−Alive間隔で送信を行ったものとする。なお、ここでのデフォルトのKeep−Aliveの間隔の値は、予めユーザ等によって設定された初期値から徐々に延長していくように定義され、複合機101にて保持されているものとする。
S512では、サーバ102のプッシュ通信制御部410は、再送間隔決定部412が通信ステータス情報保存部411で保持するコネクション最大有効時間を、S511に対する返信パケットに付加して複合機に返信する。図9に示す例の場合、コネクション最大有効時間の値として、“24時間”が送信される。
S513では、複合機101は、再送間隔取得部405は、S512でサーバ102から通知されたコネクション最大有効時間の値からKeep−Alive間隔として設定する値を取得する。さらに、コネクション管理部404において、当該取得したKeep−Alive間隔の値を設定する。
S514では、複合機101のコネクション管理部404は、S513で設定されたKeep−Alive間隔にてファイアウォール103に対するプロキシのユーザ認証を行う。S515では、ファイアウォール103が複合機101とサーバ102のコネクションのタイムアウトのタイマーを再セットする。
その後、S516では、複合機101のコネクション管理部404は、ファイアウォール103がタイムアウトによりコネクション切断を行う前に、設定されたKeep−Alive間隔でプロキシのユーザ再認証を行う。これにより、複合機101とサーバ102との通信が再度許可され、ファイアウォール103におけるタイムアウトのタイマーが再セットされることとなる。なお、ここでユーザの再認証時におけるKeep−Alive間隔の開始時点は、前回のユーザ認証時を起点としてもよいし、サーバ102によって最後にプッシュ通信が行われた時点を起点としてもよい。
S516のユーザ再認証は、S513で設定されたKeep−Alive間隔で行われるので、複合機101とサーバ102のコネクションが維持されることになる。したがって、S517では、サーバ102は、複合機101に対してプッシュ通信を行うことができる。これは、S516においてタイムアウトのタイマーをリセットさせることによって、コネクション切断による通信エラーを回避するためである。
なお、本実施例では、S514およびS516において、Keep−Aliveとして、プロキシのユーザ認証を行っている。しかし、これに限定するものではなく、他のプロトコルにおいて、通信経路上の通信機器の遮断を回避する場合も同様に適用できる。
[プッシュ通信制御部における処理フロー]
図6は、サーバ102のプッシュ通信制御部410の処理フローを示す。これは、図5のシーケンスにおいて、サーバ102にて行われる処理を示したものである。本処理フローは、例えば、サーバ102が備えるCPU1が記憶部であるROM3等に記憶されたプログラムをRAM2に読み出して、実行することにより実現される。
S601にて、プッシュ通信制御部410は、複合機101からのプッシュ通信リクエストを受信する。これは、図5におけるS502に対応する。
S602にて、プッシュ通信制御部410は、通信ステータス情報保存部411から複合機101の通信ステータス情報を取得し、当該取得した過去の通信状況に基づいて、コネクション最大有効時間が確定しているか判定する。なお、S602では、過去の通信ステータス情報として複合機101の通信ステータス情報だけでなく、同一ドメインに属する複合機105の通信ステータス情報も含めて判定を行う。
コネクション最大有効時間が確定していない場合は(S602にてNO)、過去の通信ステータス情報から判定できないため、S604においてサーバ102は、デフォルトのコネクション最大有効時間を指定してクライアント(複合機)に応答する(図5のS502)。この場合、クライアント(複合機)はデフォルトのKeep−Alive間隔を設定することになる。なお、S602でNOの場合、サーバ102は、コネクション最大有効時間を指定せずにクライアントへ応答するようにしても構わないが、いずれにしても、複合機はデフォルトのKeep−Alive間隔を設定することとする。
コネクション最大有効時間が確定している場合は(S602にてYES)、S603において、プッシュ通信制御部410は、通信ステータス情報保存部411に記憶された通信ステータス情報から、複合機101に対するプッシュ通信のコネクション最大有効時間を取得する。
S604にて、プッシュ通信制御部410は、S601の返信として、S603で取得したコネクション最大有効時間をクライアント(複合機101)へ返信する。この場合、クライアント(複合機)は当該通知されたコネクション最大有効時間に基づいてKeep−Alive間隔を設定することになる。
コネクションが維持されている間は、サーバから複合機へプッシュ通信を行える(図5のS503、S504)。
ファイアウォール103により通信が遮断されると、サーバ102からのプッシュ通信に対してファイアウォール103からエラーが通知されるので(図5のS509)、S605にて、プッシュ通信制御部410は、プッシュ通信の通信失敗を検出する(図5のS510)。
プッシュ通信の失敗を検出した場合(S605にてYES)、S606において、プッシュ通信制御部410は、通信ステータス情報保存部411から複合機101の通信ステータス情報を取得し、過去の通信状況からコネクション最大有効時間を算出する(図5のS505)。このとき、ログに残されている全ての通信状況を参照するのではなく、所定期間内のログ(または所定回数分のログ)を参照するように構成するのが望ましい。例えば、ログに残されている直近1週間のうちで最も長い無通信時間をコネクション最大有効時間とすればよい。このように最近のログを参照し且つ古いログは参照しないようにすれば、ファイアウォール103のタイムアウト設定が変更されたとしても、最近の通信状況から最適なコネクション最大有効時間を算出できるようになる。
S607において、プッシュ通信制御部410は、S604でクライアント(複合機101)へ通知したコネクション最大有効時間(もしくはデフォルトのコネクション最大有効時間)と、S606で算出したコネクション最大有効時間が異なるか判定を行う。コネクション最大有効時間が異なる場合(S607にてYES)、S608において、プッシュ通信制御部410は、S606で算出したコネクション最大有効時間を通信ステータス情報保存部411に記憶する。
なお、プッシュ通信制御部410は、プッシュ通信エラー発生時以外にも有効時間を随時更新するようにしてもよい。例えば、通信成功時にS506で過去の通信から算出される有効時間が以前のコネクション最大有効時間を超えた時点で、当該算出したコネクション最大有効時間を通信ステータス情報保存部411に記憶するように構成すれば、有効時間を随時更新できるようになる。
S609において、プッシュ通信制御部410は、再送間隔決定部412が通信ステータス情報保存部411で保持するコネクション最大有効時間を、複合機101からのリクエストに対する返信パケットに付加して返信する(図5のS512)。
S610において、プッシュ通信制御部410は、複合機101からのプッシュ通信終了リクエスト、または、サーバ102のプッシュ通信終了リクエストを判定する。プッシュ通信終了と判定した場合(S610にてYES)は、本処理フローを終了する。
[コネクション管理部における処理フロー]
図7は、複合機101のコネクション管理部404の処理フローを示す。これは、図5のシーケンスにおいて、複合機101にて行われる処理を示したものである。本処理フローは、例えば、複合機101が備えるCPU(不図示)が記憶部に記憶されたプログラムをRAM(不図示)に読み出して実行することより実現される。なお、複合機101の代わりに複合機105がサーバ102と通信を行う場合にも同様の処理が行われる。
S701において、コネクション管理部404は、コネクション作成部406により、サーバ102に対するWebSocketコネクションを確立する。サーバ102からデフォルトのコネクション最大有効時間が送信された場合(もしくはコネクション最大有効時間が送信されなかった場合)、S702において、コネクション管理部404は、Keep−Alive間隔の初期値を設定する。一方、サーバ102からコネクション最大有効時間が送信されてきた場合(図5のS512)、S703において、コネクション管理部404は、再送間隔取得部405でサーバ102からコネクション毎のコネクション最大有効時間を取得する。
S704において、コネクション管理部404は、当該取得したコネクション最大有効時間が、Keep−Alive間隔と異なるか否かを判定する。コネクション最大有効時間が異なる場合は(S704にてYES)、S705へ進む。コネクション最大有効時間がKeep−Alive間隔と同一である場合は(S704にてNO)、S706へ進む。
S705において、コネクション管理部404は、当該取得したコネクション最大有効時間の値を用いて、プッシュ通信においてコネクションを維持するために適切なKeep−Alive間隔の設定を更新する。これは、図5のS513に対応する。S706において、コネクション管理部404は、S705で設定されたKeep−Alive間隔でプロキシのユーザ認証を行う。これは、図5のS516に対応する。そして、本処理フローを終了する。
これにより、サーバ102は、ファイアウォール103のタイムアウト時間を越える無通信状態の場合も、コネクション切断による通信エラーを回避してプッシュ通信を行えるようになる。
以上説明した実施例1によれば、ファイアウォール103がプッシュ通信のコネクションを切断した場合、サーバ102においてコネクション切断を検出する(S510)。そして、サーバ102は最近の通信状況に基づいてコネクションの最大有効時間を複合機101に通知する(S512)。さらに、クライアント(複合機101)は、当該通知されたコネクションの最大有効時間を用いて、適切なKeep−Alive間隔を設定し直すことで、適切な時間間隔でプロキシのユーザ再認証を行うので、コネクションを維持することができる。
よって、通信エラーの発生し難い、効率的な通信システムを提供することが可能となる。特に、クライアントが自律的にKeep−Alive間隔を決定できない、かつ、サーバ通信エラーを検出してもクライアントに即時に通信エラーを送信できない通信環境においても、通信エラーを削減できる通信システムを提供することが可能となる。
<実施例2>
実施例1において、複合機101とサーバ102との間のプッシュ通信コネクション数は、1つのコネクションの例を示した。本実施例においては、複合機101とサーバ102との間で複数のプッシュ通信コネクションを作成する場合の例を示す。
複数のコネクションを同一のサーバとクライアントとの間で作成する場合に、切断されていないコネクションが存在する場合は、その回線を優先して使う事により複合機からのKeep−Aliveの送信を減らすことができる。つまり、切断されていないコネクションを利用し、切断されたコネクションの復旧を試みる。コネクションの復旧が成功した場合は、Keep−Aliveの送信を減らすことが可能となる。
このため、サーバ102のプッシュ通信制御部410は、管理対象の複数のコネクションから、同一の複合機のコネクション管理部404を判定する必要がある。そこで、複合機のコネクション管理部404は、サーバ102へのコネクション作成時に、一意となる複合機のコネクション管理部404の識別子を通知する。
サーバ102のプッシュ通信制御部410は、複合機のコネクション管理部404の識別子を複数接続管理部414で管理する。識別子としてはUUID(Universally Unique Identifier)のような一意となる識別子で管理する。このとき、各複合機それぞれにおいてコネクション管理部404は一つが設けられているものとする。なお、複数のコネクションが同一の接続先とのコネクションであることを特定できれば、どのように識別子を割り振っても構わない。
複数接続管理部414は、コネクション毎の接続先を管理する接続先識別子管理部415に接続先となる識別子を登録する。複数接続管理部414は、接続先識別子管理部415のデータから接続先判定部416で同一の複合機の判定を行う。
サーバ102のプッシュ通信制御部410は、複数接続管理部414の管理する接続先の情報から同一の接続先へのコネクションを判定する。プッシュ通信制御部410は、同一の接続先へのコネクションが存在する場合は、コネクション切断によるプッシュ通信回線の通信エラーが発生した場合、同一の接続先への別のコネクションを利用して、切断されたコネクションを復旧し、データ転送を行う。なお、復旧方法については、例えば、切断されていないコネクションを介して、再度WebSocket Opening Handshakeを複合機101に行わせるようにしても構わない。また、他の方法を用いても構わない。
また、冗長化するプッシュ通信の回線は、同一プロトコルである必要はない。サーバ102のプッシュ通信制御部410から、複合機のコネクション管理部404に通信可能な回線を事前に設定しておくことにより、他のプロトコルを使う事も可能である。
例えば、Eメール、XMPP(Extensible Messaging and Presence Protocol:RFC6121)、SIP(Session Initiation Protocol:RFC3261)などのプロトコルを使い、コネクションを複数用意しておくことができる。
以上、コネクションが切断された場合でも、切断されていないコネクションが存在する場合には、これらのコネクションを用いることで、コネクションを復旧する。これにより、プッシュ通信のコネクションを継続的に維持し、通信エラーの発生しにくい、効率的なプッシュ通信システムを構築する事が可能となる。
<実施例3>
本実施例3においては、同一ドメイン上に複数のプッシュ通信コネクションを作成する場合の例を示す。同一ドメインに複数の複合機(複合機101、複合機105)が接続されている例を示す。本実施例では、複合機101、105とサーバ102との間が同一のファイアウォール103の場合、コネクションを切断するネットワーク機器であるファイアウォール103が同一条件で切断する場合に、効率的なプッシュ通信を行うシステムを構築する例を示す。
同一のファイアウォール103がサーバ102との間に存在する複数の複合機101、105に対しては、コネクション最大有効時間を同一の値として扱う。これにより、プッシュ通信のコネクションのエラーが発生する前に、複合機101、105の適切なKeep−Alive間隔を決定できる。
複数の複合機101、105のドメインが同一の場合は、サーバ102との通信経路上に同一のファイアウォール103が存在する可能性が高い。そのため、コネクションを切断するネットワーク機器であるファイアウォール103が、同一であることにより、同一の条件(タイムアウト時間など)で切断する可能性が高い。
サーバ102の同一ドメイン判定部413は、複数の複合機が同一のドメインに属するか否かの判定を行う。これによりドメインが一致した場合には、ファイアウォール103が同一であると判定し、同一のドメインのコネクション最大有効時間を再送間隔決定部412に通知する。
例えば、xxx001.yyy.co.jpの複合機Aと、xxx002.yyy.co.jpの複合機Bとが存在するとする。このとき、複合機Aがサーバ102に対して、WebSocketのOpening Handshakeを行う場合、同一ドメイン判定部413は、複合機Bが、同一ドメインyyy.co.jpであると判定する。さらに、xxx002.yyy.co.jpのコネクション最大有効時間が60分である場合、同一ドメイン判定部413は、この値を再送間隔決定部412に通知する。このため、プッシュ通信制御部410は、複合機101に対して、60分のKeep−Alive間隔を通知する。再送間隔取得部405は、60分以内でKeep−Aliveの送信を行う。
[プッシュ通信制御部における処理フロー]
図8は、サーバ102のプッシュ通信制御部410における同一ドメイン制御フローを示す。本処理フローは、例えば、サーバ102が備えるCPU1が記憶部であるROM3等に記憶されたプログラムをRAM2に読み出して、実行することにより実現される。
本処理は、実施例1のS602のコネクション最大有効時間が確定しているか判定を行う処理で行うことも可能である。
S801では、プッシュ通信制御部410は、同一ドメイン判定部413において、同一ドメインの過去の接続履歴を取得する。そして、S802にて、プッシュ通信制御部410は、同一ドメイン判定部413において、同一ドメインに属する他の複合機の接続履歴があるか検索する。同一ドメインに属する他の複合機の接続履歴がある場合には(S802にてYES)、S803へ進む。一方、接続履歴が無い場合には(S802にてNO)、S804へ進む。
S803では、プッシュ通信制御部410は、再送間隔決定部412において、デバイス初期値情報でKeep−Alive間隔の値を設定する。そして、S805へ進む。
S804では、プッシュ通信制御部410は、同一ドメイン判定部413において、同一ドメインの履歴情報から取得されたコネクション最大有効時間の値を用いてKeep−Alive間隔の値を設定する。そして、S805へ進む。
S805では、プッシュ通信制御部410は、複合機101に対して、コネクション最大有効時間の送信を行う。そして、本処理フローを終了する。
なお、本処理は、例えば、同一の複合機に対するコネクションにおけるコネクション最大有効時間が更新された場合などに実行するようにしても構わない。
以上、本実施例によれば、ファイアウォール103がプッシュ通信のコネクションを切断した場合に、サーバ102が同一ドメインに属する他の複合機の情報からコネクション最大有効時間を検出する。そして、この値を用いて適切なKeep−Alive間隔でプロキシのユーザ再認証を行うことできる。このため、効率的な通信システムを提供することが可能となる。
<実施例4>
本実施例では、クライアント装置である複合機101の動作条件に従って、Keep−Aliveの再送間隔を決定する構成について説明する。複合機101の再送間隔判定部407は、サーバ102から取得したKeep−Aliveを行うための送信間隔を判定し、複合機101が設定可能な送信間隔を決定する。再送間隔判定部407は、サーバ102から取得したKeep−Aliveの送信間隔が、複合機101の動作条件に合致しない場合は、複合機101の動作条件に従ってKeep−Aliveの送信間隔を変更する。
複合機101の動作条件としては、電力消費設定ポリシーや、通信設定ポリシーなどによって決定する。また、複合機101の動作条件を優先するのか、サーバ102のコネクション最大有効時間を優先するのかの動作条件設定は、複合機101の管理ソフトウエア(不図示)やUI部302などで設定を行う。
例えば、複合機101が省電力動作中でKeep−Aliveの送信間隔を1時間よりも長くする設定がなされているとする。その場合に、サーバ102から取得したコネクション最大有効時間が15分である場合には、複合機101は、動作条件である送信間隔を優先し、1時間よりも長く設定する。そのため、サーバ102のコネクション最大有効時間である15分に対して、複合機101は、Keep−Aliveの送信間隔を1時間に設定する。
また、コネクション最大有効時間に対して、Keep−Aliveの送信間隔を変更する判断を複合機101の管理ソフトウェアやUI部302などで設定を行う。例えば、コネクション最大有効時間とKeep−Aliveの送信間隔の差異が所定の閾値よりも小さい場合は、複合機101のKeep−Aliveの送信間隔の変更を行わないなどの設定を行えるようにしてもよい。例えば、所定の閾値を30分として設定することで、送信間隔の変更を判断することができる。
以上、本実施例によれば、実施例1の効果に加え、複合機の動作条件に応じたKeep−Alive間隔の設定が可能となる。このため、クライアントの動作設定に従った効率的な通信システムを提供することが可能となる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (14)

  1. ファイアウォールを介して、インターネット上のサーバ装置と、イントラネット上の1または複数のクライアント装置とが接続される通信システムであって、
    前記クライアント装置は、
    前記サーバ装置とのプッシュ通信のコネクションを作成する作成手段と、
    前記コネクションを維持するために定期的に送信する通知の送信間隔に関する情報を前記サーバ装置から取得する取得手段と、
    前記取得手段にて取得した送信間隔に関する情報に基づいて前記通知を定期的に送信することにより、前記作成手段にて作成したコネクションを維持する管理手段と
    を有し、
    前記サーバ装置は、
    前記クライアント装置とのプッシュ通信のコネクションを用いてデータ通信を行う通信制御手段と、
    前記通信制御手段によって行われたデータ通信に関する通信ステータス情報を保存する保存手段と、
    前記保存手段で保存した前記通信ステータス情報に基づいて、前記プッシュ通信のコネクションを無通信で維持することが可能な間隔を決定する決定手段と、
    前記決定手段が決定した間隔を当該プッシュ通信のコネクションを維持するために用いる前記送信間隔に関する情報として前記クライアント装置に通知する通知手段と
    を有することを特徴とする通信システム。
  2. 前記決定手段は、前記通信ステータス情報から、前記コネクションを用いて前記クライアント装置との通信が成功した通信と、当該通信の前回の成功した通信との間における無通信であった期間を少なくとも一つ算出し、算出した期間の中から、最も長い期間の値を前記間隔として決定することを特徴とする請求項1に記載の通信システム。
  3. 前記定期的に送信する通知は、前記ファイアウォールに対するKeep−Aliveの送信であることを特徴とする請求項1または2に記載の通信システム。
  4. 前記サーバ装置は更に、前記サーバ装置と同一のクライアント装置との間で、異なる複数のプッシュ通信のコネクションを管理する複数接続管理手段を有することを特徴とする請求項1乃至3のいずれか一項に記載の通信システム。
  5. 前記通信制御手段は、前記プッシュ通信のコネクションが切断された場合に、前記複数接続管理手段にて管理されているコネクションのうち、前記切断されたコネクションと同一の接続先に対して接続された別のコネクションを用いて、前記切断されたコネクションを復旧することを特徴とする請求項4に記載の通信システム。
  6. 前記サーバ装置は更に、同一ドメインに属する複数のクライアント装置を特定する同一ドメイン判定手段を有し、
    前記決定手段は、前記同一ドメイン判定手段にて同一のドメインに属すると特定された複数のクライアント装置に対して、同一の値を前記間隔として決定することを特徴とする請求項1乃至4のいずれか一項に記載の通信システム。
  7. 前記クライアント装置は更に、前記サーバ装置から取得した送信間隔に関する情報が、当該クライアント装置に設定された動作条件を満たすか否かを判定する判定手段を有し、
    前記判定手段にて前記動作条件を満たすと判定された場合に、前記管理手段は、前記サーバ装置から取得した送信間隔に関する情報に従って前記通知を送信することを特徴とする請求項1乃至6のいずれか一項に記載の通信システム。
  8. 前記管理手段は、前記クライアント装置にて設定されている送信間隔の値と、前記サーバ装置から取得した送信間隔に関する情報との差異が、所定の閾値よりも大きい場合に、前記サーバ装置から取得した送信間隔に関する情報を用いることを特徴とする請求項1乃至7のいずれか一項に記載の通信システム。
  9. ファイアウォールを介して、インターネット上のサーバ装置と接続されるイントラネット上のクライアント装置であって、
    前記サーバ装置とのプッシュ通信のコネクションを作成する作成手段と、
    前記コネクションを維持するために定期的に送信する通知の送信間隔に関する情報を前記サーバ装置から取得する取得手段と、
    前記取得手段にて取得した送信間隔に関する情報に基づいて前記通知を定期的に送信することにより、前記作成手段で作成した前記サーバ装置とのコネクションを維持する管理手段と
    を有することを特徴とするクライアント装置。
  10. ファイアウォールを介して、イントラネット上の1または複数のクライアント装置と接続されるサーバ装置であって、
    前記クライアント装置とのプッシュ通信のコネクションを用いてデータ通信を行う通信制御手段と、
    前記通信制御手段によって行われたデータ通信に関する通信ステータス情報を保存する保存手段と、
    前記保存手段で保存した前記通信ステータス情報に基づいて、前記プッシュ通信のコネクションを無通信で維持することが可能な間隔を決定する決定手段と、
    前記決定手段が決定した間隔を当該プッシュ通信のコネクションを維持するために行われる通信の送信間隔に関する情報として前記クライアント装置に通知する通知手段と、
    を有することを特徴とするサーバ装置。
  11. ファイアウォールを介して、インターネット上のサーバ装置と接続されるイントラネット上のクライアント装置における通信方法であって、
    作成手段が、前記サーバ装置とのプッシュ通信のコネクションを作成する作成工程と、
    取得手段が、前記コネクションを維持するために定期的に送信する通知の送信間隔の値を前記サーバ装置から取得する取得工程と、
    管理手段が、前記取得工程にて取得した送信間隔に関する情報に基づいて前記通知を送信することにより、前記作成工程で作成した前記サーバ装置とのコネクションを維持する管理工程と、
    を有することを特徴とする通信方法。
  12. ファイアウォールを介して、イントラネット上の1または複数のクライアント装置と接続されるサーバ装置における通信方法であって、
    通信制御手段が、前記クライアント装置とのプッシュ通信のコネクションを用いてデータ通信を行う通信制御工程と、
    保存手段が、前記通信制御工程にて行われたデータ通信に関する通信ステータス情報を記憶部に保存する保存工程と、
    決定手段が、前記保存されている通信ステータス情報に基づいて、前記プッシュ通信のコネクションを無通信で維持することが可能な間隔を決定する決定工程と、
    通知手段が、前記決定工程にて決定した間隔を当該プッシュ通信のコネクションを維持するために行われる通信の送信間隔に関する情報として前記クライアント装置に通知する通知工程と
    を有することを特徴とする通信方法。
  13. コンピュータを、
    ファイアウォールを介して接続されたインターネット上のサーバ装置とのプッシュ通信のコネクションを作成する作成手段、
    前記コネクションを維持するために定期的に送信する通知の送信間隔に関する情報を前記サーバ装置から取得する取得手段、
    前記取得手段にて取得した送信間隔に関する情報に基づいて前記通知を定期的に送信することにより、前記作成手段で作成した前記サーバ装置とのコネクションを維持する管理手段、
    として機能させることを特徴とするプログラム。
  14. コンピュータを、
    ファイアウォールを介して接続されたイントラネット上のクライアント装置とのプッシュ通信のコネクションを用いてデータ通信を行う通信制御手段、
    前記通信制御手段によって行われたデータ通信に関する通信ステータス情報を保存する保存手段、
    前記保存した通信ステータス情報に基づいて、前記プッシュ通信のコネクションを無通信で維持することが可能な間隔を決定する決定手段、
    前記決定手段が決定した間隔を当該プッシュ通信のコネクションを維持するための通信の送信間隔に関する情報として前記クライアント装置に通知する通知手段
    として機能させるためのプログラム。
JP2013033871A 2012-03-02 2013-02-22 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム Active JP6059037B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013033871A JP6059037B2 (ja) 2012-03-02 2013-02-22 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム
PCT/JP2013/056046 WO2013129685A1 (en) 2012-03-02 2013-02-27 Communication system, client apparatus, server apparatus, communication method, and program
US13/879,532 US9277016B2 (en) 2012-03-02 2013-02-27 Communication system, client apparatus, server apparatus, communication method, and program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012047303 2012-03-02
JP2012047303 2012-03-02
JP2013033871A JP6059037B2 (ja) 2012-03-02 2013-02-22 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム

Publications (3)

Publication Number Publication Date
JP2013211842A true JP2013211842A (ja) 2013-10-10
JP2013211842A5 JP2013211842A5 (ja) 2016-04-07
JP6059037B2 JP6059037B2 (ja) 2017-01-11

Family

ID=49082870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013033871A Active JP6059037B2 (ja) 2012-03-02 2013-02-22 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム

Country Status (3)

Country Link
US (1) US9277016B2 (ja)
JP (1) JP6059037B2 (ja)
WO (1) WO2013129685A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013211766A (ja) * 2012-03-30 2013-10-10 Hitachi Solutions Ltd メッセージ配信システム、及びメッセージ配信方法
JP2014149759A (ja) * 2013-02-04 2014-08-21 Web Service Development Inc ネットワーク通信システム
JP2015104900A (ja) * 2013-12-02 2015-06-08 キヤノン株式会社 印刷システムおよびその制御方法、並びにプログラム
WO2015177924A1 (ja) * 2014-05-23 2015-11-26 三菱電機株式会社 通信装置及び通信方法及びプログラム
JP2016181877A (ja) * 2015-03-25 2016-10-13 コニカミノルタ株式会社 画像処理システム、画像処理装置、指示サーバー、およびプログラム
WO2018225330A1 (ja) * 2017-06-06 2018-12-13 ヤマハ株式会社 通信装置、中継装置、情報処理システム、通信システム、通信方法、およびプログラム
JP2018200668A (ja) * 2017-05-26 2018-12-20 キヤノンマーケティングジャパン株式会社 情報処理装置、制御方法、及びプログラム
JP2020040301A (ja) * 2018-09-11 2020-03-19 サトーホールディングス株式会社 プリンタ、情報処理システム、情報処理方法、および、プログラム
JP2022068271A (ja) * 2015-11-12 2022-05-09 エムエックス・テクノロジーズ・インコーポレーテッド 分散された、非集中化されたデータ集約

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4701350B2 (ja) * 2004-05-28 2011-06-15 旭精工株式会社 ゲーム場の管理システムにおける貨幣情報の無線管理方法
KR20130097358A (ko) * 2012-02-24 2013-09-03 삼성전자주식회사 다이렉트 푸시 이메일 서비스 제공 방법과 그를 위한 이메일 클라이언트 및 이메일 서버
JP6021487B2 (ja) 2012-07-18 2016-11-09 キヤノン株式会社 情報処理システム、制御方法、サーバ、情報処理装置およびコンピュータプログラム
US9736008B1 (en) 2012-10-05 2017-08-15 Kaazing Corporation Communication rate adjustment extension
US9154485B1 (en) * 2013-03-15 2015-10-06 Kaazing Corporation Authentication revalidation
KR20150032018A (ko) * 2013-09-17 2015-03-25 삼성전자주식회사 전자 장치 및 전자 장치의 정보 전송 방법, 정보 전송 시스템
WO2016032532A1 (en) * 2014-08-29 2016-03-03 Hewlett Packard Enterprise Development Lp Scaling persistent connections for cloud computing
US10021087B2 (en) * 2014-09-15 2018-07-10 Mansour Aaron Karimzadeh Method and system for providing a secure communication channel to portable privatized data
JP6290053B2 (ja) 2014-09-18 2018-03-07 株式会社東芝 通信装置、通信システムおよび通信方法
JP2016181115A (ja) * 2015-03-24 2016-10-13 富士ゼロックス株式会社 情報収集装置及びプログラム
JP6531497B2 (ja) * 2015-06-02 2019-06-19 富士通株式会社 無線通信システム、送信周期調整装置および移動機
US11496579B2 (en) * 2016-01-19 2022-11-08 Comcast Cable Communications, Llc Connection manager
US11038981B2 (en) * 2016-03-31 2021-06-15 Sato Holdings Kabushiki Kaisha Server, information processing system, and client terminal
CN106899652B (zh) * 2016-07-20 2020-08-21 阿里巴巴集团控股有限公司 一种推送业务处理结果的方法及装置
US10860261B2 (en) 2016-08-23 2020-12-08 Airwatch Llc Network printer detection and authentication for managed device deployment
JP6963168B2 (ja) * 2017-06-21 2021-11-05 富士通株式会社 情報処理装置、メモリ制御方法およびメモリ制御プログラム
KR20190037947A (ko) * 2017-09-29 2019-04-08 에이치피프린팅코리아 유한회사 외부 서버를 이용하여 화상 형성 장치를 관리하는 방법 및 이를 이용하는 화상 형성 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251346A (ja) * 2000-03-03 2001-09-14 Mitsubishi Electric Corp データ伝送システム
US20060085548A1 (en) * 2004-10-18 2006-04-20 Netrake Corporation Apparatus and method for firewall traversal
JP2006203608A (ja) * 2005-01-21 2006-08-03 Matsushita Electric Ind Co Ltd 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US20110099279A1 (en) * 2007-05-25 2011-04-28 Harold Scott Hooper Method and system for verifying logical connection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003018235A (ja) 2001-06-29 2003-01-17 Canon Inc 通信システム、通信方法、及び制御プログラム
US7257628B2 (en) * 2002-11-08 2007-08-14 Cisco Technology, Inc. Methods and apparatus for performing content distribution in a content distribution network
US8024423B2 (en) * 2009-04-29 2011-09-20 Ianywhere Solutions, Inc. Maintaining connections between mobile devices and servers
US8407776B2 (en) * 2011-02-11 2013-03-26 Good Technology Corporation Method, apparatus and system for provisioning a push notification session
US9220066B2 (en) * 2011-06-20 2015-12-22 At&T Intellectual Property I, L.P. Bundling data transfers and employing tail optimization protocol to manage cellular radio resource utilization
KR101287556B1 (ko) * 2011-09-29 2013-07-23 주식회사 엘지씨엔에스 이동 단말기의 푸시 클라이언트 및 이를 이용한 프로바이더 변경방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251346A (ja) * 2000-03-03 2001-09-14 Mitsubishi Electric Corp データ伝送システム
US20060085548A1 (en) * 2004-10-18 2006-04-20 Netrake Corporation Apparatus and method for firewall traversal
JP2006203608A (ja) * 2005-01-21 2006-08-03 Matsushita Electric Ind Co Ltd 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US20110099279A1 (en) * 2007-05-25 2011-04-28 Harold Scott Hooper Method and system for verifying logical connection

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013211766A (ja) * 2012-03-30 2013-10-10 Hitachi Solutions Ltd メッセージ配信システム、及びメッセージ配信方法
JP2014149759A (ja) * 2013-02-04 2014-08-21 Web Service Development Inc ネットワーク通信システム
JP2015104900A (ja) * 2013-12-02 2015-06-08 キヤノン株式会社 印刷システムおよびその制御方法、並びにプログラム
JPWO2015177924A1 (ja) * 2014-05-23 2017-04-20 三菱電機株式会社 通信装置及び通信方法及びプログラム
WO2015177924A1 (ja) * 2014-05-23 2015-11-26 三菱電機株式会社 通信装置及び通信方法及びプログラム
US9979855B2 (en) 2015-03-25 2018-05-22 Konica Minolta, Inc. Image processing system, image processing apparatus, instruction server, and storage medium
JP2016181877A (ja) * 2015-03-25 2016-10-13 コニカミノルタ株式会社 画像処理システム、画像処理装置、指示サーバー、およびプログラム
JP2022068271A (ja) * 2015-11-12 2022-05-09 エムエックス・テクノロジーズ・インコーポレーテッド 分散された、非集中化されたデータ集約
JP7357090B2 (ja) 2015-11-12 2023-10-05 エムエックス・テクノロジーズ・インコーポレーテッド 分散された、非集中化されたデータ集約
JP2018200668A (ja) * 2017-05-26 2018-12-20 キヤノンマーケティングジャパン株式会社 情報処理装置、制御方法、及びプログラム
WO2018225330A1 (ja) * 2017-06-06 2018-12-13 ヤマハ株式会社 通信装置、中継装置、情報処理システム、通信システム、通信方法、およびプログラム
JPWO2018225330A1 (ja) * 2017-06-06 2020-03-26 ヤマハ株式会社 通信装置、中継装置、情報処理システム、通信システム、通信方法、およびプログラム
JP2020040301A (ja) * 2018-09-11 2020-03-19 サトーホールディングス株式会社 プリンタ、情報処理システム、情報処理方法、および、プログラム
JP7161351B2 (ja) 2018-09-11 2022-10-26 サトーホールディングス株式会社 プリンタ、情報処理システム、情報処理方法、および、プログラム

Also Published As

Publication number Publication date
US9277016B2 (en) 2016-03-01
JP6059037B2 (ja) 2017-01-11
US20140056313A1 (en) 2014-02-27
WO2013129685A1 (en) 2013-09-06

Similar Documents

Publication Publication Date Title
JP6059037B2 (ja) 通信システム、クライアント装置、サーバ装置、通信方法、及びプログラム
US9083671B2 (en) Image forming apparatus, method for controlling the same, and storage medium
US9134942B2 (en) Printing system, intermediate server, printing device, job system, method for executing print job, and computer-readable storage medium for computer program
US9549096B2 (en) Image processing system, relay server, and program for relaying communications
JP2013054421A (ja) 処理制御サーバー,処理制御方法および処理端末
US9686431B2 (en) Using hyper-text transfer protocol tunneling to transition a computer from a low power mode to a normal power mode
US9569145B2 (en) Gateway apparatus
JP2009297905A (ja) 画像形成装置
JP5540593B2 (ja) 制御装置、画像処理装置、制御方法およびプログラム
US20170171409A1 (en) Image forming apparatus, method for managing energy saving status, and non-transitory computer-readable medium
JP5279633B2 (ja) 通信装置及びその制御方法、並びにプログラム
JP2013144410A (ja) 画像形成装置、その制御方法、およびそのプログラム
JP2012138903A (ja) 通信装置と通信システムと通信装置の通信方法とプログラム
JP2016020034A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5024024B2 (ja) スプールサーバ及びデータ通信制御方法
US9467501B2 (en) Relay server system
JP2015114878A (ja) 通信装置、通信制御方法、プログラム及び記憶媒体
JP2022039045A (ja) 通信装置、制御方法、プログラム
JP6870337B2 (ja) 画像形成装置、アクセス支援方法、およびコンピュータプログラム
US9392030B2 (en) Communication apparatus, communication apparatus control method, and storage medium for data communication using a call control server
JP2011044923A (ja) マルチキャストパケット送信範囲の自動設定方法
JP7110739B2 (ja) 通信制御装置、通信制御プログラム及びネットワーク通信システム
JP7406705B2 (ja) 情報処理装置および情報処理装置の制御方法
JP7197986B2 (ja) 情報処理装置、情報処理方法
JP6079845B2 (ja) システムおよび処理端末

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160222

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161111

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161208

R151 Written notification of patent or utility model registration

Ref document number: 6059037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151