JP6193185B2 - 通信装置、端末装置およびプログラム - Google Patents

通信装置、端末装置およびプログラム Download PDF

Info

Publication number
JP6193185B2
JP6193185B2 JP2014141538A JP2014141538A JP6193185B2 JP 6193185 B2 JP6193185 B2 JP 6193185B2 JP 2014141538 A JP2014141538 A JP 2014141538A JP 2014141538 A JP2014141538 A JP 2014141538A JP 6193185 B2 JP6193185 B2 JP 6193185B2
Authority
JP
Japan
Prior art keywords
terminal device
connection
unit
communication
maintaining
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.)
Active
Application number
JP2014141538A
Other languages
English (en)
Other versions
JP2016019179A (ja
Inventor
大介 安次富
大介 安次富
圭祐 南
圭祐 南
博史 川添
博史 川添
会津 宏幸
宏幸 会津
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2014141538A priority Critical patent/JP6193185B2/ja
Priority to US14/750,137 priority patent/US10044812B2/en
Publication of JP2016019179A publication Critical patent/JP2016019179A/ja
Application granted granted Critical
Publication of JP6193185B2 publication Critical patent/JP6193185B2/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/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Description

本発明の実施形態は、通信装置、端末装置およびプログラムに関する。
確立したコネクションを維持することでコネクション確立処理にかかる遅延を低減し、低遅延通信を実現するWeb標準の通信プロトコルとして、WebSocketが知られている。WebSocketサーバは、単独で収容できるコネクション数に限りがあるため、複数のサーバでシステムを組むことが一般的である。この場合、双方向通信する2つの端末装置が同一のWebSocketサーバに対してコネクションを確立することにより、双方向通信が単一サーバ内で完結するようにして低遅延化を達成する技術も知られている。
WebSocketサーバが端末装置とのコネクションを維持するためには、コネクション情報および送受信用バッファをサーバ上で確保する必要がある。このため、WebSocketサーバが維持するコネクション数の増加は、サーバ運用コストの増大に繋がる。一方、端末装置がサーバに対して定期的なアクセス(ポーリング)を行って通信可能な状態を維持する方式がある。しかし、この方式は、WebSocketサーバのようにコネクションを維持する方式と比べて通信の遅延が生じやすい。このため、WebSocketサーバが維持するコネクション数を抑制しながら、低遅延通信を実現することが求められている。
山口 秀夫,宮里 系一郎,"「WebSocket」の活用でリモコンをスマートに",日経エレクトロニクス no.1108,日本,日経BP社,2013年5月13日,p.71−79 X.Chen他、"WebSocket Protocol as a Transport for Traversal Using Relays around NAT(TURN)"、[online]、2013年9月12日、[2014年6月12日検索]、インターネット<URL:http://tools.ietf.org/html/draft-chenxin-behave-turn-websocket-01>
本発明が解決しようとする課題は、端末装置間の双方向通信を仲介するサーバが維持するコネクション数の増加を抑制しながら、低遅延通信を実現できる通信装置、端末装置およびプログラムを提供することである。
実施形態の通信装置は、ネットワークを介して端末装置と通信する通信装置であり、第1接続維持部と、第2接続維持部と、切り替え指示部と、を備える。第1接続維持部は、前記端末装置との間に確立したコネクションを維持し、前記端末装置と他の端末装置との間の通信を仲介する。第2接続維持部は、前記第1接続維持部とは異なる方式により、前記端末装置が当該通信装置と通信可能な状態を維持する。切り替え指示部は、所定の切り替え条件が成立した場合に、前記端末装置に対して、通信可能な状態を維持する方式を、前記第1接続維持部による方式である第1方式から前記第2接続維持部による方式である第2方式、または前記第2方式から前記第1方式に切り替えることを指示する。
第1実施形態の通信装置を示す構成図。 ユーザ管理情報の一例を示す概念図。 端末管理情報の一例を示す概念図。 組み合わせ管理情報の一例を示す概念図。 接続管理情報の一例を示す概念図。 第1端末装置を示す構成図。 第1実施形態の通信装置の動作を示すシーケンス図。 判定部による判定処理の手順を示すフローチャート。 第1実施形態の通信装置の動作を示すシーケンス図。 第2実施形態の通信装置を示す構成図。 第3実施形態の通信装置を示す構成図。 通信装置のハードウェア構成の一例を示す図。
以下、操作端末(例えばスマートフォン)を用いて被操作端末(例えばデジタルテレビ)を遠隔制御するユースケースを想定し、本発明の実施形態を説明する。なお、被操作端末は、デジタルテレビに限らず、白物家電、住宅設備機器(照明、スマートメータ、エネルギー計測装置、配電盤、給湯器、ドアフォン、電子錠、監視カメラなど)やセンサ(人感センサ、窓センサなど)などであってもよい。また、操作端末は、スマートフォンに限らず、タブレット端末やPC(パーソナルコンピュータ)などであってもよい。
実施形態の通信装置は、操作端末および被操作端末の双方とコネクションを確立し、操作端末から送信された制御コマンドを被操作端末に転送することで、リアルタイム・低遅延の遠隔制御を実現する。具体的な手順としては、実施形態の通信装置は、まず、被操作端末(例えばデジタルテレビ)からのコネクション確立要求に応じて被操作端末とのコネクションを確立し、確立したコネクションを維持する。その後、操作端末(例えばスマートフォン)からのコネクション確立要求に応じて操作端末とのコネクションを確立する。そして、操作端末から送信された制御コマンドを操作端末との間で確立したコネクションを通じて受信し、この操作コマンドを、被操作端末との間で確立したコネクションを通じて被操作端末に転送する。
このように、実施形態の通信装置は、特に被操作端末との間に確立したコネクションを維持することで、リアルタイム・低遅延の遠隔制御を実現している。しかし、維持するコネクション数が増加すると、サーバ運用コストが増大する懸念がある。そこで、実施形態の通信装置は、コネクションを維持することなく被操作端末が当該通信装置と通信可能な状態を維持する手段(例えばUDPホールパンチングサーバ)を別途備える構成とする。そして、所定の切り替え条件に応じて、被操作端末が当該通信装置と通信可能な状態を維持する方式(以下、通信維持方式という。)を動的に切り替える構成とする。これにより、維持するコネクション数の増加を抑制しながら、低遅延通信を実現することが可能となる。
以下では、被操作端末に対してアクセス先の切り替えを指示する条件(切り替え条件)などが異なるいくつかの具体的な実施形態を、図面を参照しながらより詳細に説明する。なお、以下で説明する各実施形態では、通信装置が通信する端末装置のうち、特にデジタルテレビなどの被操作端末を「第1端末装置」と表記し、スマートフォンなどの操作端末を「第2端末装置」と表記する。なお、これら操作端末と被操作端末を区別しないときは単に「端末装置」と表記する。また、以下で説明する各実施形態では、説明の便宜上、被操作端末(第1端末装置)と操作端末(第2端末装置)との組を1つのみ示すが、実際には、より多くの被操作端末と操作端末との組に対して、実施形態の通信装置が同様の処理を行う。
(第1実施形態)
図1は、第1実施形態の通信装置10Aを示す構成図である。図1に示す通信装置10Aは、ネットワーク40を介して、第1端末装置20および第2端末装置30と通信する。通信装置10Aは、典型的には、一般的なコンピュータシステムとしてのハードウェア構成(CPU、主記憶部、補助記憶部、通信インタフェース)を備えるサーバ装置として実現される。しかし、通信装置10Aは、例えば、PC(パーソナルコンピュータ)、デジタルテレビ、ハードディスクレコーダ、スレートPC、スマートフォンなどのデジタル機器として実現されてもよい。また、通信装置10Aは、様々な構成上のバリエーション(CPU、主記憶部、補助記憶部などの構成数や容量、接続インタフェース規格など)をとり得るものとする。さらに、通信装置10Aは、クラウドシステム上で動作する仮想マシンとして実現されてもよい。
本実施形態では、通信装置10Aは、ネットワーク40としてのインターネット上に設置されたサーバ装置であるものとする。
第1端末装置20と第2端末装置30は、通信装置10Aを経由した双方向通信を行う端末装置である。これら端末装置20,30は、例えば、PC、STB(セットトップボックス)、デジタルテレビ、ハードディスクレコーダ、タブレット端末、スマートフォンなどのデジタル機器である。しかし、端末装置20,30は、通信装置10Aとネットワーク40を介して通信できる機能を備えていれば、どのような形態の機器であってもよい。例えば、端末装置20,30は、ブロードバンドルータのような中継装置であってもよいし、白物家電やセンサのように、データ処理能力が低い機器であってもよい。
本実施形態では、上述したように、第1端末装置20としてデジタルテレビ、第2端末装置30としてスマートフォンを用い、スマートフォンからデジタルテレビをリアルタイム・低遅延で遠隔制御するケースを想定する。
ネットワーク40は、通信装置10Aと端末装置20,30とが相互通信できるかぎりは、どのような物理媒体、構成であってもよい。本実施形態における最も一般的なネットワーク構成は、第2端末装置30が、モバイルインターネット網を経由して通信装置10Aにアクセスし、第1端末装置20が宅内LANからブロードバンドルータを介してインターネット網に接続する構成である。しかし、このネットワーク構成のバリエーションは様々であり、この一般的な具体例に限られるものではない。
以下、通信装置10Aの機能的な構成要素について具体的に説明する。通信装置10Aは、図1に示すように、通信部11、認証部12、接続先決定部13、第1接続維持部14、第2接続維持部15、判定部16、切り替え指示部17A、ユーザ/端末管理情報記憶部18および接続管理情報記憶部19を備える。ユーザ/端末管理情報記憶部18と接続管理情報記憶部19は、異なる記憶装置を用いて実現してもよいし、同一の記憶装置上に実現してもよい。
通信部11は、ネットワーク40を介して端末装置20,30と通信する機能ブロックである。具体的には、通信部11は、例えば、NIC(Network Interface Card)からTCP/IP通信スタックを含む機能コンポーネントである。TCP/IP通信スタックは、NIC上にハードウェアで実装されたものであってもよいし、オペレーティングシステム(OS)上に実装される、あるいは、ドライバとして実装されるソフトウェアであってもよい。また、トランスポート層は、TCPに限定されるものではなく、例えばUDPなどであってもよい。また、物理・MAC層は、イーサネット(登録商標)だけでなく、Wifiなどの無線、InfiniBandなどであってもよい。
認証部12は、端末装置20,30からの認証要求に応じて、ユーザ認証処理および端末認証処理を行う。端末装置20,30からの認証要求には、端末装置20,30を使用するユーザに固有の識別情報およびパスワード、端末装置20,30に固有の端末装置識別情報が含まれている。ユーザ識別情報およびパスワードは、例えば端末装置20,30を使用するユーザが入力する。端末装置識別情報は、端末装置20,30に予め記憶されている。
ユーザ認証処理は、端末装置20,30からの認証要求に含まれるユーザ識別情報とパスワードとの組み合わせを、ユーザ/端末管理情報記憶部18が記憶するユーザ管理情報と照合する処理である。ユーザ管理情報は、例えば図2に示すように、ユーザ識別情報とパスワードとを関連付けたテーブルとして、ユーザ/端末管理情報記憶部18に記憶されている。認証部12は、端末装置20,30からの認証要求に含まれるユーザ識別情報とパスワードとの組み合わせがユーザ管理情報に含まれている場合に認証OKとし、含まれていなければ認証NGとする。
端末認証処理は、端末装置20,30からの認証要求に含まれるユーザ識別情報と端末装置識別情報との組み合わせを、ユーザ/端末管理情報記憶部18が記憶する端末管理情報と照合する処理である。端末管理情報は、例えば図3に示すように、端末装置識別情報とユーザ識別情報とを関連付けたテーブルとして、ユーザ/端末管理情報記憶部18に記憶されている。認証部12は、端末装置20,30からの認証要求に含まれる端末装置識別情報とユーザ識別情報との組み合わせが端末管理情報に含まれている場合に認証OKとし、含まれていなければ認証NGとする。
なお、認証部12は、端末装置20,30がユーザからのユーザ識別情報およびパスワードの入力を受け付ける機能を持たない場合、ユーザ認証処理を省略して端末認証処理のみを行うようにしてもよい。この場合、ユーザ識別情報は端末装置20,30に予め記憶され、端末装置20,30からの認証要求にはユーザ識別情報と端末装置識別情報とが含まれる。認証部12は、この認証要求に含まれるユーザ識別情報と端末装置識別情報との組み合わせを、ユーザ/端末管理情報記憶部18が記憶する端末管理情報と照合する。
認証部12の認証結果(認証OK/NG)は、認証要求の要求元の端末装置20,30に通知される。この際、認証OKの通知には、端末装置20,30が認証済みであることを示す後述のセッション識別情報が含まれる。通信装置10Aから認証OKの認証結果を受け取った端末装置20,30は、通信装置10Aに対してコネクション確立要求を行う。このコネクション確立要求には、セッション識別情報と端末装置識別情報とが含まれる。
接続先決定部13は、端末装置20,30からのコネクション確立要求に応じて、端末装置20,30がコネクションを確立すべき接続先(第1接続維持部14)を決定する。本実施形態では、後述のように、第1接続維持部14が複数の通信サーバによって構成される。接続先決定部13は、これら第1接続維持部14を構成する複数の通信サーバのうち、端末装置20,30がコネクションを確立すべき通信サーバを決定する。このとき接続先決定部13は、コネクション確立要求の要求元が被操作端末である第1端末装置20の場合はランダムに接続先を決定する。一方、コネクション確立要求の要求元が、すでに接続先が決定された第1端末装置20に対応する第2端末装置30の場合は、接続先決定部13は、第1端末装置20の接続先と同じ通信サーバを第2端末装置30の接続先に決定する。
第1端末装置20と第2端末装置30との対応関係は、ユーザ/端末管理情報記憶部18が、組み合わせ管理情報として予め記憶している。組み合わせ管理情報は、例えば図4に示すように、対応関係にある第1端末装置20と第2端末装置30の双方の端末装置識別情報を関連付けたテーブルとして、ユーザ/端末管理情報記憶部18に記憶されている。接続先決定部13は、このユーザ/端末管理情報記憶部18が記憶する組み合わせ管理情報を参照して、第1端末装置20と第2端末装置30との対応関係を特定する。また、すでに決定した第1端末装置20の接続先は、接続管理情報記憶部19が記憶する後述の接続管理情報を参照することで特定できる。接続先決定部13は、すでに接続先が決定された第1端末装置20に対応する第2端末装置30の場合は、以上のように特定した第1端末装置20の接続先と同じ通信サーバを、第2端末装置30の接続先として決定する。
接続先決定部13は、コネクション確立要求の要求元である端末装置20,30の接続先を決定すると、当該端末装置20,30についての接続管理情報を接続管理情報記憶部19に登録する。接続管理情報は、例えば図5に示すように、端末装置20,30の端末装置識別情報と、コネクション識別情報と、第1接続維持部14のサーバ識別情報(TCPサーバ装置識別情報)と、第2接続維持部15のサーバ識別情報(UDPサーバ装置識別情報)と、通信維持方式とを関連付けたテーブルとして、接続管理情報記憶部19に記憶される。なお、図5では、端末装置識別情報が、主キーとなる構成を示しているが、端末識別情報を用いず、コネクション確立要求の前処理として実行され得るユーザ認証処理の結果得られる、セッション識別情報などをキーとして用いてもよい。
コネクション識別情報は、端末装置20,30と通信装置10Aとの間のコネクションを識別するための情報であり、接続先決定部13が端末装置20,30からのコネクション確立要求に応じて発行する。TCPサーバ装置識別情報は、接続先決定部13が端末装置20,30の接続先として決定した第1接続維持部14の通信サーバの識別情報である。UDPサーバ装置識別情報は、第2接続維持部15を構成する通信サーバの識別情報である。なお、第2端末装置30についての接続管理情報には、UDPサーバ装置識別情報が含まれていなくてもよい。
通信維持方式は、第1端末装置20における現在の通信維持方式を示す情報である。本実施形態では、第1端末装置20の通信維持方式として、第1接続維持部14によるコネクションの維持(以下、第1方式という。)と、第2接続維持部15に対する定期的なアクセスによって通信可能な状態を維持する方式(以下、第2方式という。)がある。図5の例では、第1端末装置20の現在の通信維持方式が第1方式の場合は通信維持方式として「tcp」が記憶され、第1端末装置20の現在の通信維持方式が第2方式の場合は通信維持方式として「udp」が記憶される。また、第1端末装置20の通信維持方式が決まっていない場合、通信維持方式として「unknown」が記憶される。
なお、図5では、第1端末装置20についての接続管理情報のみを示しているが、第1端末装置20についての接続管理情報と第2端末装置30についての接続管理情報が混在する場合、これらを区別するために端末種別(第1端末装置20(被操作端末)であるか第2端末装置30(操作端末)であるか)を示す情報を、接続管理情報に含めるように構成してもよい。
上述したように接続先決定部13は、すでに接続先が決定された第1端末装置20に対応する第2端末装置30からのコネクション確立要求に応じて接続先を決定する場合、接続管理情報を参照する。そして、第2端末装置30に対応する第1端末装置20の端末装置識別情報に関連付けられたTCPサーバ装置識別情報で識別される通信サーバを、コネクション確立要求の要求元である第2端末装置30の接続先として決定する。
また、接続先決定部13は、コネクション確立要求の要求元である端末装置20,30の接続先を決定すると、当該端末装置20,30に対して接続先情報を通知する。この接続先情報には、接続先として決定した第1接続維持部14の通信サーバのTCPサーバ装置識別情報が含まれる。また、コネクション確立要求の要求元が第1端末装置20の場合は、この通知にさらに、第2接続維持部15を構成する通信サーバのUDPサーバ装置識別情報とコネクション識別情報とが含まれる。
第1接続維持部14は、端末装置20,30とのコネクションを維持し(第1方式)、端末装置20,30間の通信を仲介するサーバである。第1接続維持部14の実体は、端末装置20,30が実際に接続され、双方向通信を行う複数の通信サーバである。これら複数の通信サーバは、仮想マシン上、もしくは物理マシン上で動作するサーバソフトウェアであり、操作端末である第2端末装置30と被操作端末である第1端末装置20の双方のコネクション情報を当該サーバソフトウェア・プロセスが参照可能なメモリ空間にキャッシュする。第1接続維持部14は、TCPやTLS/SSLの通信コネクションを維持することを想定しており、その上位の通信プロトコルについては問わない。本実施形態では、第1接続維持部14は、WebSocketサーバソフトウェアを想定している。
第2接続維持部15は、第1接続維持部14とは異なる方式(第2方式)により、第1端末装置20が当該通信装置10Aと通信可能な状態を維持するサーバ装置である。具体的には、第1接続維持部14がコネクションの概念を有するTCP、TSL/SSLであったのに対し、第2接続維持部15は、コネクションを維持しないUDP、DTLSの利用を想定している。本実施形態では、第2接続維持部15は、第1端末装置20から定期的なUDP、DTLSパケット(UDPハートビート)を受信し、これにより生成・維持される通信経路上のルーティングテーブルによって、通信装置10A側から第1端末装置20へのUDPアクセスが可能な状態を維持するUDPホールパンチングサーバを想定している。
判定部16は、コネクション確立要求を行った第1端末装置20に対し、第2接続維持部15による第2方式によって通信可能な状態を維持することが可能か否かを判定する。この判定部16の判定結果(OK/NG)は、コネクション確立要求の要求元の第1端末装置20に通知される。なお、判定部16による判定処理の具体例については詳細を後述する。
また、判定部16は、当該第1端末装置20に対する判定結果に従って、コネクション確立要求を行った第1端末装置20についての接続管理情報を更新する。すなわち、判定部16は、当該第1端末装置20が第2方式によって通信可能な状態を維持できると判定した場合、当該第1端末装置20についての接続管理情報に含まれる通信維持方式を「udp」とする。一方、当該第1端末装置20が第2方式によって通信可能な状態を維持できないと判定すると、判定部16は、当該第1端末装置20についての接続管理情報に含まれる通信維持方式を「tcp」とする。
なお、図1の構成図では、判定部16を第2接続維持部15と異なるブロックで図示しているが、第2接続維持部15の一つの機能として判定部16を実現してもよい。
切り替え指示部17Aは、第2方式によって通信可能な状態を維持できると判定された第1端末装置20に対して、所定の切り替え条件が成立した場合に、通信維持方式を第1方式から第2方式、または第2方式から第1方式へと切り替えることを指示する。
本実施形態では、通信装置10Aに対する第2端末装置30のコネクションの確立および切断を切り替え条件とする。すなわち、切り替え指示部17Aは、第2方式によって通信可能な状態を維持している第1端末装置20と対応関係にある第2端末装置30からコネクション確立要求があった場合に、第1端末装置20に対して、通信維持方式を第2方式から第1方式に切り替えることを指示する。この指示は、例えば第2接続維持部15からのメッセージとして、第1端末装置20に通知される。
また、その後、第2端末装置30と通信装置10Aとの間のコネクションの切断が検知された場合、切り替え指示部17Aは、第1方式によって通信可能な状態を維持している(通信装置10Aとのコネクションが維持されている)第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する。この指示は、例えば第1接続維持部14からのメッセージとして、第1端末装置20に通知される。
次に、第1端末装置20の機能的な構成要素について具体的に説明する。図6は、第1端末装置20を示す構成図である。第1端末装置20は、図6に示すように、通信部21、認証要求部22、通信制御部23、切り替え部24および記憶部25を備える。
通信部21は、通信装置10Aと通信する機能ブロックであり、通信装置10Aの通信部11と同様の構成とすることができる。
認証要求部22は、第1端末装置20を使用するユーザの操作に応じて、例えばユーザから入力されたユーザ識別情報やパスワード、記憶部25が記憶する端末装置識別情報を取得して、通信装置10Aに対して認証要求を行う。
通信制御部23は、通信装置10Aとの間の通信を制御する。通信制御部23は、第1方式により通信装置10Aと通信可能な状態を維持する場合は、通信装置10Aによって接続先として決定された第1接続維持部14の通信サーバを指定してコネクション確立要求を行い、コネクションを確立させる。このコネクションは第1接続維持部14によって維持される。また、通信制御部23は、第2方式により通信装置10Aと通信可能な状態を維持する場合は、通信装置10Aの第2接続維持部15に対して定期的なアクセス(ポーリング)を行う。
切り替え部24は、通信装置10Aの切り替え指示部17Aからの切り替え指示に応じて、通信維持方式を第1方式から第2方式、または第2方式から第1方式へと切り替える。
次に、第1実施形態の通信装置10Aの動作を説明する。図7は、第1実施形態の通信装置10Aの動作を示すシーケンス図である。なお、図7中のパラメータ表記における“{}”は、中の要素がいずれか一方を取ることを表す。また“<>”は、要素がオプションであることを表す。パラメータ全体が“<>”で囲われている場合は、メッセージ自体がオプションであることを表す。以下では、まず、図7で用いている各パラメータについて説明する。
session_idは、セッション識別情報を表す。セッション識別情報は、上述したように、被操作端末(例えばデジタルテレビ)である第1端末装置20、操作端末(例えばスマートフォン(のアプリ))である第2端末装置30が認証済みであることを示している。セッション識別情報は、例えば、上述した認証処理の結果が認証OKであった場合に発行される。なお、正規の(通信装置10Aへの接続権限を持つ)端末装置20,30に対し、予め秘密情報としてセッション識別情報を埋め込んでいてもよい。また、この秘密情報として端末装置20,30に埋め込むセッション識別情報を定期的に更新する機構を、端末装置20,30と通信装置10Aとの間に設けるようにしてもよい。
device_idは、端末装置識別情報(dst_device_idは、通信相手の端末装置の端末装置識別情報)を表す。端末装置識別情報は、通信装置10Aが端末装置20,30の初回接続時などに一意な識別子として生成・発行してもよいし、予め端末装置20,30に埋め込んでおいてもよい。また、MACアドレスなど、端末装置20,30に固有の識別情報を利用してもよい。
tcp_server_idは、TCPサーバ装置識別情報を表す。TCPサーバ装置識別情報は、上述したように、端末装置20,30の接続先として決定した第1接続維持部14の通信サーバの識別情報であり、具体的には接続先のURLである。第1接続維持部14としてWebSocketサーバを用いる場合、TCPサーバ装置識別情報は、例えば、ws://…、wss://…のような表記となる。
udp_server_idは、UDPサーバ装置識別情報を表す。UDPサーバ装置識別情報は、上述したように、第2接続維持部15を構成する通信サーバの識別情報であり、FQDNであってもよいし、IPアドレスとポート番号の組で構成してもよい。UDPサーバ装置識別情報は、判定部16による判定時、もしくは、コネクション確立要求の要求元の第1端末装置20が第2方式によって通信可能な状態を維持できるとすでに判定されている場合に払い出すように構成してもよいし、常に払い出すように構成してもよい。
conn_idは、コネクション識別情報(dst_conn_idは、通信相手の端末装置のコネクション識別情報)を表す。コネクション識別情報は、第1接続維持部14の複数の通信サーバ(WebSocketサーバ)を跨いで一意になるように構成してもよいし、各通信サーバ内で一意になるように構成してもよい。また、コネクション識別情報は、コネクション確立要求の応答として払い出すように構成してもよいし、通信維持方式を第2方式から第1方式に切り替えることを指示する際に払い出すように構成してもよい。また、コネクション識別情報は、第1接続維持部14とのWebSocket接続確立シーケンスにおいて払い出すようにしてもよい。
tcp_or_udpは、通信維持方式を表す。通信維持方式は、上述したように、第1端末装置20における現在の通信維持方式を示す情報であり、第1方式の場合は「tcp」、第2方式の場合は「udp」となり、第1端末装置20の通信維持方式が切り替わるたびに更新される。
図7のシーケンス図は、第1端末装置20が通信装置10Aに対してコネクション確立要求を行ってから、第2端末装置30との間でWebSocket通信を行うまでの流れを示している。なお、図7のシーケンス図で示す動作に先立ち、第1端末装置20は通信装置10Aに対して認証要求を行い、認証OKの認証結果が通知されている。
まず、第1端末装置20が通信装置10Aに対してコネクション確立要求を行うと(ステップS101)、接続先決定部13が、要求元の第1端末装置20の接続先となる第1接続維持部14の通信サーバ(WebSocketサーバ)を決定して、接続管理情報記憶部19に接続管理情報を登録する(ステップS102)。また、接続先決定部13は、要求元の第1端末装置20に対して、TCPサーバ装置識別情報とUDPサーバ装置識別情報とコネクション識別情報とセッション識別情報を含む接続先情報を通知する(ステップS103)。
次に、第1端末装置20が通信装置10Aに対して判定要求を行うと(ステップS104)、この判定要求に応じて、判定部16が、要求元の第1端末装置20が第2方式によって通信装置10Aと通信可能な状態を維持できるか否かの判定処理を行う(ステップS105)。そして、判定部16は、判定処理の結果に応じて、接続管理情報記憶部19が記憶する接続管理情報を更新する(ステップS106)。なお、判定処理の具体例は後述する。なお、ステップS104において、サーバ装置が判定要求のメッセージ完全性(改竄されていないこと)を保証するために、セッション識別情報を共有鍵情報としたメッセージ認証コードを加えてもよい。具体的には、端末装置は、ステップS104のメッセージとセッション識別情報を鍵として用いてHMAC(Hash−based Message Authentication Code)を生成し、これをメッセージに加える。一方のサーバ装置は、メッセージ中の端末側の識別情報(端末識別情報もしくはコネクション識別情報)に基づき、接続管理情報記憶部からセッション識別情報を取得し、これを鍵として、受信メッセージからHMACを生成する。メッセージ中のHMACと、生成したHMACの一致をもって、認証を経た正しい端末装置からの判定要求であることを確認する。サーバ装置は、HMACが一致しなければ、メッセージを破棄ないしエラー応答を送信する。以上の手順は、ステップS107等のUDP通信処理において常に実施してもよい。
以降の動作は、ステップS105の判定処理の結果によって異なる。まず、第1端末装置20が第2方式によって通信装置10Aと通信可能な状態を維持できると判定された場合の動作を説明する。この場合、通信装置10Aから第1端末装置20に対して判定結果:OKが通知される。第1端末装置20は、判定部16からの判定結果:OKの通知を受けて、第2方式(UDPハートビート)により、通信装置10Aと通信可能な状態を維持する(ステップS107)。これにより、通信装置10Aは、第2接続維持部15から第1端末装置20に対してUDPアクセスできる状態が維持される。
その後、第1端末装置20と対応関係にある第2端末装置30が通信装置10Aに対してコネクション確立要求を行うと(ステップS108)、接続先決定部13が、第1端末装置20の接続先と同じ通信サーバ(WebSocketサーバ)を第2端末装置30の通信先として決定するとともに、切り替え指示部17Aが、第2接続維持部15を介して、第1端末装置20に対して第2方式(UDPハートビート)から第1方式(WebSocket接続)への切り替えを指示するための処理を行う。具体的には、切り替え指示部17Aは、第2接続維持部15に対して、切り替え指示を出す(ステップS109)。第2接続維持部15は、この切り替え指示に応じて接続管理情報記憶部19が記憶する接続管理情報を更新するとともに(ステップS110)、切り替え指示部17Aからの切り替え指示を、第1端末装置20に対してメッセージとして通知する(ステップS111)。なお、コネクション確立要求を行った第2端末装置30に対しては、接続先決定部13からTCPサーバ装置識別情報とコネクション識別情報とを含む接続先情報が通知される(ステップS112)。
通信装置10Aから切り替え指示を受けた第1端末装置20は、この切り替え指示に応じて、接続先として通知された第1接続維持部14の通信サーバ(WebSocketサーバ)にアクセスして、通信装置10Aとの間のコネクション(WebSocket接続)を確立する(ステップS113)。第1接続維持部14は、第1端末装置20との間のコネクションが確立されると、接続管理情報記憶部19が記憶する接続管理情報を更新する(ステップS114)。
一方、第2方式によって通信装置10Aと通信可能な状態を維持できないと判定された場合は、通信装置10Aから第1端末装置20に対して判定結果:NGが通知される。この場合、第1端末装置20は、接続先として通知された第1接続維持部14の通信サーバ(WebSocketサーバ)にアクセスして、通信装置10Aとの間のコネクション(WebSocket接続)を確立する(ステップS115)。第1接続維持部14は、第1端末装置20との間のコネクションが確立されると、接続管理情報記憶部19が記憶する接続管理情報を更新する(ステップS116)。
その後、第1端末装置20と対応関係にある第2端末装置30が通信装置10Aに対してコネクション確立要求を行うと(ステップS117)、接続先決定部13が、第1端末装置20の接続先と同じ通信サーバ(WebSocketサーバ)を第2端末装置30の通信先として決定し、TCPサーバ装置識別情報とコネクション識別情報とを含む接続先情報を第2端末装置30に通知する(ステップS118)。
その後、第2端末装置30が、接続先として通知された第1接続維持部14の通信サーバ(WebSocketサーバ)にアクセスし、通信装置10Aとの間のコネクション(WebSocket接続)を確立する(ステップS119)。以降、第1端末装置20と第2端末装置30との間で、第1接続維持部14の同一のWebSocketサーバを介して、WebSocket通信が行われる(ステップS120)。
ここで、図7のステップS104における判定処理の具体例について、図8を参照して説明する。図8は、判定部16による判定処理の手順を示すフローチャートである。この図8に示す判定処理は、第1端末装置20からの判定要求に応じて行われる。第1端末装置20からの判定要求は、例えばUDPパケットで送信される。
判定部16は、第1端末装置20からUDPパケットを受信すると(ステップS201)、受信したUDPパケットを解析して要求元のIPアドレス・ポート番号を取得する(ステップS202)。そして、判定部16は、ステップS202で取得したIPアドレス・ポート番号に対して、UDPパケットを送信する(ステップS203)。
その後、判定部16は、ステップS203で送信したUDPパケットに対するACKを受信できたか否かを判定する(ステップS204)。そして、ACKを受信できた場合は(ステップS204:Yes)、判定部16は、第1端末装置20が第2方式により通信装置10Aと通信可能な状態を維持できると判断し、第1端末装置20に対して判定結果:OKを通知する(ステップS205)。
一方、ACKを受信できずにタイムアウトした場合(ステップS204:No、ステップS206:Yes)、判定部16は、第1端末装置20が第2方式では通信装置10Aと通信可能な状態を維持できないと判断し、第1端末装置20に対して判定結果:NGを通知する(ステップS207)。なお、タイムアウトするまでは(ステップS206:No)、ステップS204の判定が繰り返される。
次に、第1端末装置20との間でWebSocket通信を行った第2端末装置30が、通信装置10Aとのコネクションを切断した場合の動作について説明する。図9は、第2端末装置30がコネクションを切断した場合の通信装置10Aの動作を示すシーケンス図である。
まず、第2端末装置30が第1接続維持部14との間のWebSocketコネクションを切断すると(ステップS301)、第1接続維持部14が、接続管理情報記憶部19が記憶する第2端末装置30についての接続管理情報を削除する(ステップS302)。そして、切り替え指示部17Aが、第1端末装置20に対して、第1方式(WebSocket接続)から第2方式(UDPハートビート)への切り替えを指示する(ステップS303)。この切り替え指示は、第1接続維持部14を介して第1端末装置20に通知される。
通信装置10Aから切り替え指示を受けた第1端末装置20は、この切り替え指示に応じて、まず、第2接続維持部15に対するUDPハートビート(第2方式)を開始する(ステップS304)。第2接続維持部15は、第1端末装置20のUDPハートビートが開始されると、接続管理情報記憶部19が記憶する接続管理情報を更新する(ステップS305)。
その後、第1端末装置20は、第1接続維持部14とのWebSocketコネクションを切断する(ステップS306)。第1接続維持部14は、第1端末装置20とのWebSocketコネクションが切断されると、接続管理情報記憶部19が記憶する接続管理情報を更新する(ステップS307)。
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の通信装置10Aは、先にコネクション確立要求を行った被操作端末である第1端末装置20に対し、第2方式によって当該通信装置10Aと通信可能な状態を維持させておく。そして、操作端末である第2端末装置30がコネクション確立要求を行ったときに、第1端末装置20に対して、通信維持方式を第2方式から第1方式に切り替えることを指示する。また、第2端末装置30とのコネクションの切断が検知されると、第1方式により当該通信装置10Aと通信可能な状態を維持している第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する。つまり、本実施形態の通信装置10Aは、操作端末である第2端末装置30が接続している間だけ、被操作端末である第1端末装置20との間の第1接続維持部14によるコネクションを維持する構成である。したがって、本実施形態の通信装置10Aは、第1接続維持部14が維持するコネクション数の増加を抑制し、メモリ使用量の増加を有効に抑制しながら、第1端末装置20と第2端末装置30との間の第1接続維持部14を介した低遅延通信を実現することができる。
また、本実施形態の通信装置10Aは、コネクションの確立を要求する第1端末装置20が第2方式によって当該通信装置10Aと通信可能な状態を維持できるか否かを判定する。そして、第2方式によって通信可能な状態を維持できる第1端末装置20に対して、上記の切り替え指示を行う。したがって、本実施形態の通信装置10Aは、さまざまなネットワーク環境に有効に適用できる。なお、第1端末装置20が第2方式によって通信装置10Aと通信可能な状態を維持できることが保障されるネットワーク環境に適用する場合は、上記の判定を行わないように構成してもよい。
(変形例1)
上述した例では、通信装置10Aに対してコネクション確立要求を行った第1端末装置20が、判定部16による判定処理の結果を待ち、判定結果が通知されるとそれに従って第1方式または第2方式で通信装置10Aと通信可能な状態を維持する構成とした。しかし、第1端末装置20が判定部16による判定処理が終了するまでは第1方式により通信可能な状態を維持し、判定結果がOKの場合に、切り替え指示部17Aが第1端末装置20に対して第1方式から第2方式への切り替えを指示するように構成してもよい。これにより、判定部16が判定を行っている間に、操作端末である第2端末装置30が第1接続維持部14を介して第1端末装置20にアクセスした場合であっても、第1端末装置20がこのアクセスを受け付けることが可能になる。
(変形例2)
上述した例では、第1端末装置20が通信装置10Aに対してコネクション確立要求を行うと判定部16が判定処理を行う構成とした。つまり、判定部16による判定処理は、第1端末装置20がコネクション確立要求を行うたびに行われる。しかし、すでに判定処理を行った第1端末装置20に対しては、その判定結果を端末装置識別情報と対応付けて記憶しておき、当該第1端末装置20が第1接続維持部14によるコネクションを切断した後にコネクション確立要求を再度行った場合は、記憶した判定結果を再利用することで繰り返しの判定処理を省略するように構成してもよい。これにより、第1端末装置20が第2方式により通信装置10Aと通信可能な状態を維持できるか否かの判定を効率よく行うことができる。なお、判定結果は、例えば後述の端末情報記憶部62(図11参照)のように、端末識別情報と関連付けて情報を記憶する記憶部を追加し、ここに記憶させればよい。
また、判定結果が記憶されている第1端末装置20がコネクション確立要求を行った場合に、判定部16が所定の再判定条件が成立するか否かを判断し、再判定条件が成立する場合は記憶している判定結果を再利用せずに、判定処理を再度行うように構成してもよい。この場合の再判定条件としては、第2接続維持部15を介した切り替え指示に対して応答がなかった場合(第2接続維持部15による通信失敗が検知された場合)、前回の判定処理からの経過時間が所定時間を越えた場合、判定結果の再利用回数が所定回数を超えた場合、第1端末装置20の外部IPアドレス・ポート番号の変化を検知した場合などが挙げられる。
(変形例3)
上述した例では、第1端末装置20の通信維持方式を必要なときだけ第1方式とするために、第2端末装置30からのコネクション確立要求があった場合に、第1端末装置20に対して通信維持方式を第2方式から第1方式へ切り替えることを指示し、第2端末装置30との間のコネクション切断が検知されると、第1端末装置20に対して通信維持方式を第1方式から第2方式へ切り替えることを指示する構成とした。しかし、第1端末装置20の使用頻度が高い時間帯を予め定めておき、現在時刻がその時間帯の開始時刻となると、第1端末装置20に対して通信維持方式を第2方式から第1方式へ切り替えることを指示し、現在時刻がその時間帯の終了時刻になると、第1端末装置20に対して通信維持方式を第1方式から第2方式へ切り替えることを指示する構成としてもよい。
この場合、第1端末装置20ごとに使用頻度が高い時間帯を定め、その時間帯の情報を端末装置識別情報と関連付けて記憶する構成であってもよい。特に通信装置10Aが時差のある様々な地域に存在する多数の第1端末装置20と通信する場合、第1端末装置20ごと、あるいは地域ごとに使用頻度が高い時間帯を定めておくことで、上述した切り替えを効果的に実施することができる。
(変形例4)
上述した例では、端末装置は、一度コネクション確立要求を行うと、UDPハートビートで維持できる限りは、サーバ装置との接続を維持できる構成になっているが、何らかのタイムアウトを設け、定期的にコネクション確立要求から再実行させる構成も考えられる。例えば、上述したHMAC生成に要するセッション識別子は、定期的にリフレッシュする方がセキュリティ上好ましい。サーバ装置は、セッション識別子のタイムアウトを検出し、該当端末装置に対して、コネクション確立要求からやり直すトリガを送信するように構成してもよい。
(第2実施形態)
次に、第2実施形態について説明する。第2実施形態は、第1端末装置20の通信維持方式を切り替える切り替え条件が第1実施形態とは異なる。すなわち、第1実施形態では、第2端末装置30のコネクション確立要求とコネクションの切断を切り替え条件としていたのに対し、第2実施形態では、通信装置の負荷状態(第1接続維持部14の負荷状態)が大きいことを切り替え条件とする。以下、第1実施形態と共通の構成要素には同一の符号を付して重複した説明を省略し、本実施形態に特徴的な部分についてのみ説明する。
図10は、第2実施形態の通信装置10Bを示す構成図である。本実施形態の通信装置10Bは、図10に示すように、第1実施形態の通信装置10Aの構成に加えて、状態情報生成部51および状態情報記憶部52を備える。また、本実施形態の通信装置10Bは、第1実施形態の切り替え指示部17Aに代えて、切り替え指示部17Bを備える。
状態情報生成部51は、第1接続維持部14の負荷状態を表す状態情報を生成する。状態情報は、例えば、第1接続維持部14がコネクションを維持している端末装置20,30の数(コネクションの収容台数)、メモリ使用量、プロセッサの使用率のいずれか、または組み合わせを表す。コネクションの収容台数とメモリ使用量は、これらのキャパシティ情報を予め保持しておき、CPU使用率のように、キャパシティ情報と比較しての相対値であってもよい。状態情報の生成は、例えば所定周期で定期的に生成される。また、負荷状態の変化を検知した場合に状態情報を生成するように構成してもよい。
状態情報記憶部52は、状態情報生成部51によって生成された状態情報を記憶する。状態情報記憶部52は、状態情報生成部51によって新たな状態情報が生成されるたびに、記憶している情報を更新する。
切り替え指示部17Bは、状態情報記憶部52が記憶する状態情報を随時参照し、状態情報(コネクションの収容台数、メモリ使用量、プロセッサの使用率のいずれか、または組み合わせ)を所定の閾値と比較する。そして、状態情報が所定の閾値を超えた場合に、第1方式により通信装置10Bと通信可能な状態を維持している第1端末装置20に対して、接続維持方法を第1方式から第2方式に切り替えることを指示する。すなわち、本実施形態の通信装置10Bでは、負荷が低い間は第1端末装置20に対して第1方式による通信維持を許容し、負荷が高くなると第2方式への切り替えを指示する。
通信維持方式の切り替え指示は、例えば、第1方式により通信装置10Bと通信可能な状態を維持している第1端末装置20のうち、任意に定めた基準に従って順次行うことができる。例えば、負荷状態を表す状態情報が閾値以下になるまで、コネクション確立要求を行ったタイミングが最も遅い第1端末装置20から順に切り替え指示を出す、あるいはコネクション確立要求を行ったタイミングが最も早いものから順に切り替え指示を出すといった方法が考えられる。
以上のように、本実施形態の通信装置10Bは、負荷が低い間は第1端末装置20に対して第1方式による通信維持を許容し、負荷が高くなると第2方式への切り替えを指示する構成としている。したがって、本実施形態の通信装置10Bによれば、第1実施形態と同様の効果に加えて、第1端末装置20の通信維持方式を頻繁に切り替えることに伴う遅延や処理負荷の増大を有効に抑制できるといった効果が得られる。
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態では、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20であって、所定の切り替え対象条件を満たす第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する。以下、第1実施形態と共通の構成要素には同一の符号を付して重複した説明を省略し、本実施形態に特徴的な部分についてのみ説明する。
図11は、第3実施形態の通信装置10Cを示す構成図である。本実施形態の通信装置10Cは、図11に示すように、第1実施形態の通信装置10Aの構成に加えて、端末情報生成部61および端末情報記憶部62を備える。また、本実施形態の通信装置10Cは、第1実施形態の切り替え指示部17Aに代えて、切り替え指示部17Cを備える。
端末情報生成部61は、第1端末装置20に関する各種情報を生成する。端末情報生成部61は、例えば、通信装置10Cに対する第1端末装置20からの通信に含まれる情報(HTTPヘッダに含まれるUser−Agent情報などの通信プロトコル内に設定された機器情報に類する情報)や、第1端末装置20を使用するユーザによって明示的に登録された第1端末装置20に関する情報などを取得して、端末情報を生成する。端末情報は、例えば、第1端末装置20の機種情報や、第2端末装置30から第1端末装置20への過去のアクセス履歴などである。アクセス履歴は、第2端末装置30から第1端末装置20に対して過去に行われたアクセスの有無、アクセス回数、アクセス頻度、最終アクセス時間、アクセス時間の統計情報などを含む。
端末情報記憶部62は、端末情報生成部61によって生成された端末情報を、第1端末装置20の端末装置識別情報と関連付けて記憶する。
切り替え指示部17Cは、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20であって、所定の切り替え対象条件を満たす第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する。第1端末装置20が所定の切り替え対象条件を満たすか否かは、端末情報記憶部62が記憶する端末情報に基づいて判断される。
例えば、切り替え指示部17Cは、端末情報に含まれる機種情報をもとに第1端末装置20の機種を特定する。そして、第1端末装置20が白物家電などの情報処理能力の低い機器であれば切り替え対象条件を満たさないと判断し、第1端末装置20がPC、タブレット端末、デジタルテレビなどの情報処理能力が高い機器であれば切り替え条件を満たすと判断する。つまり、切り替え指示部17Cは、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20が情報処理能力の高い機器であることを条件に、この第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する。
また、切り替え指示部17Cは、端末情報に含まれるアクセス履歴をもとに、第1端末装置20が過去に一度でも第2端末装置30からアクセスされた場合は、切り替え対象条件を満たさないと判断し、第1端末装置20が過去に一度も第2端末装置30からアクセスされていない場合は、切り替え対象条件を満たすと判断してもよい。つまり、切り替え指示部17Cは、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20が過去に第2端末装置30から一度もアクセスされていないことを条件に、この第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する構成であってもよい。
また、切り替え指示部17Cは、端末情報に含まれるアクセス履歴をもとに、第1端末装置20が過去に第2端末装置30から高頻度でアクセスされている場合は、切り替え対象条件を満たさないと判断し、第1端末装置20が第2端末装置30からアクセスされる頻度が低い場合は、切り替え対象条件を満たすと判断してもよい。つまり、切り替え指示部17Cは、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20が、過去に第2端末装置30から高頻度でアクセスされていないことを条件に、この第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する構成であってもよい。
また、切り替え指示部17Cは、端末情報に含まれるアクセス履歴をもとに、第1端末装置20が第2端末装置30から最後にアクセスされてからの経過時間が所定時間以下であれば、切り替え対象条件を満たさないと判断し、第1端末装置20が第2端末装置30から最後にアクセスされてからの経過時間が所定時間を越えていれば、切り替え対象条件を満たすと判断してもよい。つまり、切り替え指示部17Cは、所定の切り替え条件が成立した場合に、第1方式により通信可能な状態を維持している第1端末装置20が、第2端末装置30から最後にアクセスされてからの経過時間が所定時間を越えていることを条件に、この第1端末装置20に対して、通信維持方式を第1方式から第2方式に切り替えることを指示する構成であってもよい。
以上のように、本実施形態の通信装置10Cは、第1端末装置20の機種や第2端末装置30からのアクセス履歴に応じて、通信維持方式を第2方式に切り替えることの影響が低いと想定される第1端末装置20に対して、第1方式から第2方式への切り替えを指示する構成としている。したがって、本実施形態の通信装置10Cによれば、第1実施形態と同様の効果に加えて、例えば、情報処理能力が低い機器が通信維持方式の切り替えを行うことで遅延が生じたりする不都合を抑制し、また、第2端末装置30からアクセスを受ける可能性が高い第1端末装置20の通信維持方式を第1方式に維持しておくことで、通信維持方式を切り替える際の遅延を低減できるといった効果が得られる。
(補足説明)
なお、上述した通信装置10A,10B,10Cの各機能的な構成要素は、例えば、汎用のコンピュータシステムを基本ハードウェアとして用いて実行されるプログラム(ソフトウェア)により実現することができる。
図12は、通信装置10A,10B,10Cのハードウェア構成の一例を示す図である。通信装置10A,10B,10Cは、図12に示すように、CPU101と、主記憶部102と、補助記憶部103と、通信インタフェース104と、各部を接続するバス105とを含んだ汎用のコンピュータシステムとして構成される。なお、補助記憶部103は、有線または無線によるLAN(Local Area Network)などで各部に接続されてもよい。
上述した通信装置10A,10B,10Cの各機能的な構成要素は、例えば、CPU101が、主記憶部102を利用して、補助記憶部103などに格納されたプログラムを実行することによって実現される。このプログラムは、例えば、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、CD−R、CD−RW、DVD−ROM、DVD±R、DVD±RW、Blu−ray(登録商標)Discなど)、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。プログラムを記録する記録媒体は、コンピュータシステムが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
また、上記プログラムを、コンピュータシステムにあらかじめインストールすることで実現してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータシステムに適宜インストールするように構成してもよい。また、上記のプログラムを外部のサーバコンピュータ上で実行させ、ネットワークを介してその結果をクライアントコンピュータとして構成された通信装置10A,10B,10Cが受け取る構成としてもよい。
上記のコンピュータシステムで実行されるプログラムは、上述した通信装置10A,10B,10Cの各機能的な構成要素を含むモジュール構成となっており、CPU101がこのプログラムを適宜読み出して実行することにより、上述した通信装置10A,10B,10Cの各機能的な構成要素が主記憶部102上にロードされ、主記憶部102上に生成されるようになっている。
なお、上述した通信装置10A,10B,10Cの各機能的な構成要素は、プログラム(ソフトウェア)により実現するだけでなく、その一部または全部を、ASIC(Application Specific Integrated Circuit)やFPGA(Field−Programmable Gate Array)などの専用のハードウェアにより実現することもできる。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10A,10B,10C 通信装置
11 通信部
14 第1接続維持部
15 第2接続維持部
16 判定部
17A,17B,17C 切り替え指示部
20 第1端末装置
30 第2端末装置
40 ネットワーク
62 端末情報記憶部

Claims (16)

  1. ネットワークを介して端末装置と通信する通信装置であって、
    前記端末装置との間に確立したコネクションを維持し、前記端末装置と他の端末装置との間の通信を仲介する第1接続維持部と、
    前記第1接続維持部とは異なる方式により、前記端末装置が当該通信装置と通信可能な状態を維持する第2接続維持部と、
    所定の切り替え条件が成立した場合に、前記端末装置に対して、通信可能な状態を維持する方式を、前記第1接続維持部による方式である第1方式から前記第2接続維持部による方式である第2方式、または前記第2方式から前記第1方式に切り替えることを指示する切り替え指示部と、を備える通信装置。
  2. 前記切り替え指示部は、前記第1接続維持部を介して前記端末装置と通信する他の端末装置からコネクションの確立が要求された場合に、前記第2方式により通信可能な状態を維持している前記端末装置に対して、通信可能な状態を維持する方式を第1方式に切り替えることを指示する、請求項1に記載の通信装置。
  3. 前記切り替え指示部は、前記第1接続維持部を介して前記端末装置と通信する他の端末装置とのコネクションの切断が検知された場合に、前記第1方式により通信可能な状態を維持している前記端末装置に対して、通信可能な状態を維持する方式を第2方式に切り替えることを指示する、請求項2に記載の通信装置。
  4. 前記切り替え指示部は、現在時刻が前記端末装置の使用頻度が高い時間帯として予め定められた時間帯の開始時刻となった場合に、前記第2方式により通信可能な状態を維持している前記端末装置に対して、通信可能な状態を維持する方式を第1方式に切り替えることを指示する、請求項1に記載の通信装置。
  5. 前記切り替え指示部は、現在時刻が前記時間帯の終了時刻となった場合に、前記第1方式により通信可能な状態を維持している前記端末装置に対して、通信可能な状態を維持する方式を第2方式に切り替えることを指示する、請求項4に記載の通信装置。
  6. 前記切り替え指示部は、通信装置の負荷状態が所定の閾値を超えた場合に、前記第1方式により通信可能な状態を維持している前記端末装置に対して、通信可能な状態を維持する方式を第2方式に切り替えることを指示する、請求項1に記載の通信装置。
  7. 前記負荷状態は、コネクションを維持している前記端末装置の数、メモリの使用量、プロセッサの使用率のいずれか、または組み合わせである、請求項6に記載の通信装置。
  8. 前記切り替え指示部は、所定の切り替え条件が成立した場合に、前記第1方式により通信可能な状態を維持している前記端末装置であって、所定の切り替え対象条件を満たす前記端末装置に対して、通信可能な状態を維持する方式を第2方式に切り替えることを指示する、請求項1に記載の通信装置。
  9. 前記切り替え対象条件は、前記端末装置の機種と、前記第1接続維持部を介して前記端末装置と通信する他の端末装置から前記端末装置へのアクセス履歴と、の少なくとも一方に基づいて定められた条件である、請求項8に記載の通信装置。
  10. コネクションの確立を要求する前記端末装置に対し、前記第2方式により通信可能な状態を維持することが可能か否かを判定する判定部をさらに備え、
    前記切り替え指示部は、前記第2方式により通信可能な状態を維持することが可能と判定された前記端末装置に対して、所定の切り替え条件が成立した場合に、通信可能な状態を維持する方式を、前記第1方式から前記第2方式、または前記第2方式から前記第1方式に切り替えることを指示する、請求項1に記載の通信装置。
  11. 前記端末装置は、前記判定部による判定が終了するまでは前記第1方式により通信可能な状態を維持し、
    前記切り替え指示部は、前記第2方式により通信可能な状態を維持することが可能と判定された前記端末装置に対して、通信可能な状態を維持する方式を、前記第1方式から前記第2方式に切り替えることを指示する、請求項10に記載の通信装置。
  12. 前記判定部による判定結果を、前記端末装置の識別情報と対応付けて記憶する記憶部をさらに備え、
    前記判定部は、コネクションの確立を要求する前記端末装置に対応する前記判定結果が前記記憶部に記憶されている場合に当該判定結果を再利用する、請求項10に記載の通信装置。
  13. 前記判定部は、コネクションの確立を要求する前記端末装置に対応する前記判定結果が前記記憶部に記憶されている場合であっても、所定の再判定条件が成立した場合は、前記判定結果を再利用せずに、前記第2方式により通信可能な状態を維持することが可能か否かを再度判定する、請求項12に記載の通信装置。
  14. 前記第1接続維持部は、WebSocketプロトコルに従ってコネクションを維持するWebSocketサーバであり、
    前記第2接続維持部は、前記端末装置からの定期的なアクセスにより通信可能な状態を維持するUDPホールパンチングサーバである、請求項1〜13のいずれか一項に記載の通信装置。
  15. 請求項1〜14のいずれか一項に記載の通信装置とネットワークを介して通信する端末装置であって、
    前記切り替え指示部による指示に応じて、通信可能な状態を維持する方式を前記第1方式から前記第2方式、または前記第2方式から前記第1方式に切り替える切り替え部を備える端末装置。
  16. ネットワークを介して端末装置と通信するコンピュータに、
    前記端末装置との間に確立したコネクションを維持し、前記端末装置と他の端末装置との間の通信を仲介する第1接続維持部の機能と、
    前記第1接続維持部とは異なる方式により、前記端末装置が当該通信装置と通信可能な状態を維持する第2接続維持部の機能と、
    所定の切り替え条件が成立した場合に、前記端末装置に対して、通信可能な状態を維持する方式を、前記第1接続維持部による方式である第1方式から前記第2接続維持部による方式である第2方式、または前記第2方式から前記第1方式に切り替えることを指示する切り替え指示部の機能と、を実現させるためのプログラム。
JP2014141538A 2014-07-09 2014-07-09 通信装置、端末装置およびプログラム Active JP6193185B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014141538A JP6193185B2 (ja) 2014-07-09 2014-07-09 通信装置、端末装置およびプログラム
US14/750,137 US10044812B2 (en) 2014-07-09 2015-06-25 Communication device, terminal device, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014141538A JP6193185B2 (ja) 2014-07-09 2014-07-09 通信装置、端末装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2016019179A JP2016019179A (ja) 2016-02-01
JP6193185B2 true JP6193185B2 (ja) 2017-09-06

Family

ID=55068474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014141538A Active JP6193185B2 (ja) 2014-07-09 2014-07-09 通信装置、端末装置およびプログラム

Country Status (2)

Country Link
US (1) US10044812B2 (ja)
JP (1) JP6193185B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6470966B2 (ja) 2014-12-24 2019-02-13 株式会社東芝 通信装置、サーバ装置、通信方法およびプログラム
US10021216B2 (en) 2015-05-25 2018-07-10 Juniper Networks, Inc. Monitoring services key performance indicators using TWAMP for SDN and NFV architectures
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
JP6683049B2 (ja) * 2016-07-20 2020-04-15 富士通株式会社 情報処理装置、情報処理方法、情報処理システム及びプログラム
US10574763B2 (en) * 2016-09-29 2020-02-25 Juniper Networks, Inc. Session-identifer based TWAMP data session provisioning in computer networks
US10218590B2 (en) 2016-12-12 2019-02-26 Juniper Networks, Inc. Subscriber-aware TWAMP data monitoring in computer networks
JP6825439B2 (ja) * 2017-03-22 2021-02-03 富士ゼロックス株式会社 端末装置、情報処理システムおよびプログラム
JP7024281B2 (ja) * 2017-09-25 2022-02-24 カシオ計算機株式会社 被制御装置、通信制御方法、及びプログラム
US11917019B2 (en) * 2020-09-14 2024-02-27 Nippon Telegraph And Telephone Corporation Information processing system, information processing method and program

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3923835B2 (ja) * 2001-07-24 2007-06-06 株式会社エヌ・ティ・ティ・ドコモ 通信システム、ゲートウェイ、データ中継方法、プログラムおよび記録媒体
JP3846853B2 (ja) * 2001-10-12 2006-11-15 株式会社メガチップス 情報配信システム及び情報配信方法
JP4238213B2 (ja) * 2002-07-29 2009-03-18 アイピートーク株式会社 インターネット通信システム及びインターネット通信方法及びセッション管理サーバ及び無線通信装置及びプログラム
WO2006080195A1 (ja) * 2005-01-26 2006-08-03 Sharp Kabushiki Kaisha 移動通信ネットワークの加入者情報管理システム、加入者情報管理方法、通信制御装置、通信端末、及び通信制御方法
EP1761082B1 (de) * 2005-09-02 2018-06-13 Nokia Solutions and Networks GmbH & Co. KG Verfahren und anordnung zum anbinden eines zweiten kommunikationsnetzes mit einem zugangsknoten an ein erstes kommunikationsnetz mit einem kontaktknoten
CA2692944C (en) * 2007-07-16 2015-11-03 Research In Motion Limited System and method for handoff of session from voip interface to cellular interface of dual-mode device
FR2930100B1 (fr) * 2008-04-09 2010-05-07 Canon Kk Procede d'etablissement d'un chemin de communication dans un reseau etendu de communication, tetes de tunnel,produit programme d'ordinateur et moyen de stockage correspondants
JP2009253887A (ja) 2008-04-10 2009-10-29 Panasonic Corp 録画システム
US9202238B2 (en) * 2009-01-30 2015-12-01 Nathan Harris Information processing and transmission systems
JP4599447B2 (ja) * 2009-03-18 2010-12-15 株式会社東芝 電話システム、サーバおよび端末デバイス
US8463848B2 (en) * 2009-07-15 2013-06-11 Hippocrene Llc System and method of transmitting data over a computer network including for presentations over multiple channels in parallel
US8606884B2 (en) * 2010-09-21 2013-12-10 Taesung Kim System and method for web hosting behind NATs
WO2012092670A1 (en) * 2011-01-06 2012-07-12 Research In Motion Limited System and method for enabling a peer-to-peer (p2p) connection
US8566625B2 (en) * 2011-07-01 2013-10-22 Intel Corporation System and method for determining transmitting frequency to maintain remote application server connectivity
KR20130015980A (ko) * 2011-08-05 2013-02-14 삼성전자주식회사 Cpns시스템에서 개인망과 cpns서버의 접속 관리 방법
KR101890659B1 (ko) * 2011-09-01 2018-09-28 삼성전자주식회사 휴대 단말기에서 ip 접속을 유지하는 장치 및 방법
WO2013119802A1 (en) * 2012-02-11 2013-08-15 Social Communications Company Routing virtual area based communications
US9203784B2 (en) * 2012-04-24 2015-12-01 Cisco Technology, Inc. Distributed virtual switch architecture for a hybrid cloud
US9319439B2 (en) * 2012-05-10 2016-04-19 Tangome, Inc. Secured wireless session initiate framework
US8867731B2 (en) * 2012-11-05 2014-10-21 Genesys Telecommunications Laboratories, Inc. System and method for web-based real time communication with optimized transcoding
US9143550B2 (en) * 2012-12-01 2015-09-22 Qualcomm Innovation Center, Inc. Graceful degradation of websocket connections to nonpersistent HTTP-based communications
JP6106494B2 (ja) 2013-03-29 2017-03-29 株式会社東芝 通信制御装置、サーバ装置、通信システム及びプログラム
US9544205B2 (en) * 2013-04-09 2017-01-10 Twin Prime, Inc. Cognitive data delivery optimizing system
US9560172B2 (en) * 2013-05-06 2017-01-31 Alcatel Lucent Stateless recognition of keep-alive packets
CN104144185A (zh) * 2013-05-09 2014-11-12 腾讯科技(深圳)有限公司 数据通信方法、装置及终端
GB2528607B (en) * 2013-05-22 2020-12-23 Mitsubishi Electric Corp Monitoring system, facility management device, monitoring method, and program
US9531704B2 (en) * 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
US9191209B2 (en) * 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9473506B1 (en) * 2013-10-15 2016-10-18 Progress Software Corporation Secure file transfer and notification server
JP6306179B2 (ja) * 2013-11-13 2018-04-04 エルジー エレクトロニクス インコーポレイティド ネットワークにより連結された放送受信装置と他のデバイス間の連結を管理する方法及び装置
KR101706138B1 (ko) * 2014-02-05 2017-02-13 애플 인크. 제어기와 액세서리 사이의 통신을 위한 균일한 통신 프로토콜
WO2015145401A1 (en) * 2014-03-28 2015-10-01 Aetonix Systems Simple video communication platform
US9648073B2 (en) * 2014-04-10 2017-05-09 Qualcomm Incorporated Streaming control for real-time transport protocol

Also Published As

Publication number Publication date
US10044812B2 (en) 2018-08-07
JP2016019179A (ja) 2016-02-01
US20160014213A1 (en) 2016-01-14

Similar Documents

Publication Publication Date Title
JP6193185B2 (ja) 通信装置、端末装置およびプログラム
JP5364671B2 (ja) ネットワーク認証における端末接続状態管理
US20160277413A1 (en) Access Permission Device, Access Permission Method, Program, and Communicating System
WO2013150925A1 (ja) ネットワークシステム、コントローラ、及びパケット認証方法
JP6279938B2 (ja) 接続管理装置、通信システム、接続管理方法およびプログラム
US9325685B2 (en) Authentication switch and network system
JP2016122926A (ja) 通信装置、サーバ装置、通信方法およびプログラム
US20130329050A1 (en) Remote streaming
US20150222627A1 (en) Method and device for securely accessing a web service
US11589233B1 (en) Network services in a mesh network
US20170180382A1 (en) Method and Apparatus for Using Software Defined Networking and Network Function Virtualization to Secure Residential Networks
US11539616B1 (en) Upgrading meshnet connections in a mesh network
US11528221B1 (en) Efficient routing of communications in a mesh network
JP2005286802A (ja) 通信制御方法及びプログラム、並びに通信制御システム及び通信制御関連装置
JP2015170041A (ja) 通信装置、通信システム、通信方法およびプログラム
US11647413B1 (en) Aperiodic updating of parameters in a mesh network
US20160028705A1 (en) Communication system and router
JP5622088B2 (ja) 認証システム、認証方法
US11831604B1 (en) Optimizing access to local network devices via mesh network devices
US11805100B2 (en) Access control in a mesh network
US20230318965A1 (en) Optimizing meshnet connections in a mesh network
US10708188B2 (en) Application service virtual circuit
JP2010136014A (ja) Macアドレス自動認証システム
JP6215089B2 (ja) 機器情報収集システム及び機器情報収集方法
JP5784059B2 (ja) 通信制御方法、ローカル装置、情報処理端末、通信経路確立支援装置及びプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170602

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: 20170711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170809

R151 Written notification of patent or utility model registration

Ref document number: 6193185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151