JP5858973B2 - ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム - Google Patents

ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム Download PDF

Info

Publication number
JP5858973B2
JP5858973B2 JP2013244546A JP2013244546A JP5858973B2 JP 5858973 B2 JP5858973 B2 JP 5858973B2 JP 2013244546 A JP2013244546 A JP 2013244546A JP 2013244546 A JP2013244546 A JP 2013244546A JP 5858973 B2 JP5858973 B2 JP 5858973B2
Authority
JP
Japan
Prior art keywords
always
server
electronic device
connection
client
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.)
Expired - Fee Related
Application number
JP2013244546A
Other languages
English (en)
Other versions
JP2015104034A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2013244546A priority Critical patent/JP5858973B2/ja
Priority to CN201410694568.8A priority patent/CN104683435B/zh
Priority to US14/555,653 priority patent/US20150149524A1/en
Publication of JP2015104034A publication Critical patent/JP2015104034A/ja
Application granted granted Critical
Publication of JP5858973B2 publication Critical patent/JP5858973B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、電子機器同士を常時接続するための技術に関し、特にクライアントとサーバとを常時接続するネットワークシステム、常時接続方法、電子機器、サーバ、プログラムに関する。
従来から、サーバ側で生じた情報をリアルタイムに端末に伝達するための様々な技術が知られている。たとえば、特開2010−277492号公報(特許文献1)には、電子会議サーバおよびコンピュータプログラムが開示されている。特開2010−277492号公報(特許文献1)によると、ウェブ・アプリケーションにて電子会議システムを提供する場合にリアルタイム性を確保可能とすること、および電子会議システムの運用に付随した未解決課題の管理などを実現する。具体的には、アプリケーションサーバは、コメットサーバが各電子機器からのHTTPリクエストを受信して保留状態となるように制御する。つぎに、アプリケーションサーバは、前述とは別の電子機器からメッセージデータを受信すると、このメッセージデータと会議データベースから引き出した必要データを、コメットサーバ経由で、HTTPリクエストを出した電子機器へ送信し、保留を解除する。送信後は前記アプリケーションサーバが各電子機器からのHTTPリクエストを受信して再び保留状態となるように制御する。これにより、HTTPリクエストを送信した電子機器は、アプリケーションサーバ側がデータを準備できた瞬間から間を置くことなくデータを得ることができる。
しかしながら、コメットでは、リクエストに対するレスポンスの送信を行う度に、新たにHTTPコネクションを確立する必要があった。そこで、近年では、常時接続を行い、接続を維持したまま、複数回の双方向の通信を行う方法が用いられる。
しかしながら、常時接続を用いた場合、サーバがメンテナンスや予期せぬ障害により停止した場合、それまで接続されていた全てのクライアントとサーバ間の常時接続が一旦切断され、その後、稼働を再開したサーバもしくは冗長構成され稼働を継続する他方のサーバに対し、これら多数のクライアントが一斉に常時接続を再開しようとして、サーバに対し過大なサーバ負荷を生じさせ、スムーズに再接続が行われないことがあった。
これを改善する手段として、特開2013−051571号公報(特許文献2)では、サーバと接続を確立して通信する通信手段と,前記通信によって前記サーバから取得する情報に基づいて所定の処理を実行する処理手段と,前記接続の切断を検知する切断検知手段と,前記接続の切断が検知された場合,試行する間隔の期待値が所定の一定値となる条件を満たしたランダムな第一タイミングにおいて前記サーバとの再接続を繰り返し試行する再接続手段と備えるクライアント側の技術が開示されており、再接続をサーバの負荷を分散しながら早期に確立することを可能としている。
特開2010−277492号公報 特開2013−051571号公報
しかしながら、特許文献2の手法では、再接続のタイミングは固定値であり、変更の仕組みがないため、システム運用後、事前に想定するよりサーバに接続するクライアントの数が増加した場合や、機能の追加などによりサーバの再接続の処理能力が低下した場合など、システムの運用環境に変化があった場合に、依然として、再接続にかかる処理がサーバの処理能力を超過し、サーバに過大な負荷を生じる可能性がある。
本発明は、かかる問題を解決するためになされたものであり、その目的は、常時接続サーバが停止したとき、システムの運用環境に変化があった場合でも、稼働を再開した常時接続サーバもしくは冗長構成され稼働を継続する他方の常時接続サーバに対し、課題な負荷をかけることなく、スムーズに常時接続状態に復帰できるネットワークシステム、常時接続方法、電子機器、サーバ、プログラムを提供することにある。
この発明のある態様に従うと、電子機器と、電子機器と常時接続可能な常時接続サーバとを備えるネットワークシステムが提供される。常時接続サーバは、常時接続サーバに関する再接続用間隔を含む情報を電子機器に送信する。電子機器は、再接続用間隔に基づいて算出される時間の待機後、常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返す。
好ましくは、常時接続サーバは、電子機器毎に再接続用間隔を上限とした待ち時間を作成し、電子機器に待ち時間を送信する。電子機器は、常時接続サーバとの常時接続が切断されたときに、待ち時間だけ待機してから常時接続するための処理を行う。
好ましくは、電子機器は、再接続用間隔を上限とした待ち時間を作成し、常時接続サーバとの常時接続が切断されたときに、待ち時間だけ待機してから常時接続するための処理を行う。
好ましくは、待ち時間は、電子機器と常時接続サーバとの常時接続によるデータの送受信の頻度に基づいて作成される。
好ましくは、常時接続サーバは、常時接続サーバと接続中の複数の電子機器の数と、1つの常時接続サーバの1秒当たりの再接続可能な電子機器の数と、に基づいて再接続用間隔を計算する。
好ましくは、ネットワークシステムは、常時接続サーバとして、電子機器と常時接続可能な複数の常時接続サーバを備える。複数の常時接続サーバの少なくとも1つは、複数の常時接続サーバに関する情報を電子機器に送信する。電子機器は、複数の常時接続サーバのいずれかとの常時接続が成功するまで、情報に基づいて複数の常時接続サーバに順に常時接続を試みる。
好ましくは、複数の常時接続サーバの少なくとも1つは、複数の常時接続サーバと接続中の複数の電子機器の数と、1つの常時接続サーバの1秒当たりの再接続可能な電子機器の数と、稼働中の常時接続サーバの個数とに基づいて再接続用間隔を計算する。
好ましくは、電子機器は、常時接続サーバとの常時接続が成功するまで、再接続用間隔をあけながら常時接続するための処理を繰り返す。
好ましくは、常時接続サーバは、他のサーバを介して、再接続用間隔を含む情報を電子機器に送信する。
好ましくは、電子機器は、電子機器に起因して常時接続が切断されたと判断した時に、待機を実行せずに即時に、常時接続するための処理を開始する。電子機器に起因せずに常時接続が切断されたと判断した時に、再接続用間隔に基づいて算出される時間の待機後、常時接続するための処理を開始する。
この発明の別の態様に従うと、電子機器と電子機器と常時接続可能な常時接続サーバとを含むネットワークシステムにおける常時接続方法が提供される。常時接続方法は、常時接続サーバが、再接続用間隔を含む情報を電子機器に送信するステップと、電子機器と常時接続サーバとの常時接続が切断されるステップと、電子機器が、情報を利用することによって、再接続用間隔に基づいて算出される時間の待機後、常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返すステップとを備える。
この発明の別の態様に従うと、常時接続サーバと常時接続可能な通信インターフェイスと、常時接続サーバに関する情報を利用することによって、常時接続サーバのいずれかから与えられた再接続用間隔に基づいて算出される時間の待機後、常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返すためのプロセッサとを備える、電子機器が提供される。
好ましくは、プロセッサは、電子機器に起因して常時接続が切断されたと判断した時に、待機を実行せずに即時に、常時接続するための処理を開始し、電子機器に起因せずに常時接続が切断されたと判断した時に、再接続用間隔に基づいて算出される時間の待機後、常時接続するための処理を開始する。
この発明の別の態様に従うと、電子機器と常時接続可能な通信インターフェイスと、通信インターフェイスを介して、常時接続サーバに関する再接続用間隔を含む情報を電子機器に送信するためのプロセッサとを備える、常時接続サーバが提供される。
この発明の別の態様に従うと、プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムが提供される。プログラムは、通信インターフェイスを介して、常時接続サーバから再接続用間隔を含む情報を受信するステップと、情報を利用することによって、再接続用間隔に基づいて算出された時間の待機後、常時接続サーバとの常時接続が成功するまで、常時接続サーバと常時接続するための処理を繰り返すステップとをプロセッサに実行させる。
この発明の別の態様に従うと、プロセッサと通信インターフェイスとを含むサーバで利用されるプログラムが提供される。プログラムは、通信インターフェイスを介して、電子機器からの要求を受け付けるステップと、当該要求に応じて、通信インターフェイスを介して常時接続サーバに関する再接続用間隔を含む情報を電子機器に送信するステップとをプロセッサに実行させる。
以上のように、この発明によれば、常時接続サーバがメンテナンスや予期せぬ障害により停止した場合でも、稼働を再開したサーバもしくは冗長構成され稼働を継続する他方のサーバに対し、課題な負荷をかけることなく、スムーズに常時接続状態に復帰できるネットワークシステム、常時接続方法、電子機器、サーバ、プログラムが提供される。
本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第1のイメージ図である。 本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第2のイメージ図である。 本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第3のイメージ図である。 本実施の形態にかかるクライアント100が負荷分散装置600にアクセスするタイミングを示すイメージ図である。 本実施の形態にかかるクライアント100のハードウェア構成を表わすブロック図である。 本実施の形態にかかる常時接続サーバ200のハードウェア構成を表わすブロック図である。 本実施の形態にかかるアプリケーションサーバ300のハードウェア構成を表わすブロック図である。 本実施の形態にかかる常時接続補助サーバ400のハードウェア構成を表わすブロック図である。 本実施の形態にかかる負荷分散装置600のハードウェア構成を表わすブロック図である。 本実施の形態にかかるネットワークシステム1全体の機能構成を示すブロック図である。 本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りの処理手順を示すシーケンス図である。 本実施の形態にかかるクライアント100における再接続処理の処理手順を示すフローチャートである。 本実施の形態にかかるクライアント100における待機サブルーチンの処理手順を示すフローチャートである。 本実施の形態にかかる初回接続処理の処理手順を示すシーケンス図である。 本実施の形態にかかる再接続処理の処理手順を示すシーケンス図である。 本実施の形態にかかる対応関係DB500のデータ構造を示すイメージ図である。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
また、以下では、常時接続通信の一例として、Webソケットプロトコルを利用した通信について説明する。Webソケットは、主としてウェブサーバとウェブブラウザとの間の双方向通信を行うための技術規格であり、プロトコルの仕様はRFC(Request For Comment)6455に規定されている。Webソケットにおいては、常時接続であり、接続を維持したまま、複数回の双方向の通信を行うことができる。しかしながら、アプリケーションサーバから任意のタイミングでクライアントにデータをプッシュできればよく、本発明はWebソケットプロトコルを利用する常時接続に限定されるものではない。
<第1の実施の形態>
<ネットワークシステムの全体構成>
まず、本実施の形態にかかるネットワークシステム1の全体構成について説明する。図1は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第1のイメージ図である。図2は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第2のイメージ図である。図3は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示す第3のイメージ図である。
図1を参照して、ネットワークシステム1は、たとえば、遠隔から家電を操作するシステムを想定しており、住居またはオフィスなどに配置される複数の家電100A,100Dと、ネットワークを介して家電100A,100Dと接続される複数の常時接続サーバ200A,200Bと、家電100A,100Dに関する様々なサービスを提供する複数のアプリケーションサーバ300A,300Bと、アプリケーションサーバ300A,300Bからのデータを適切な常時接続サーバ200A,200Bに送信する常時接続補助サーバ400と、常時接続サーバ200A,200Bにかかる負荷を分散するための負荷分散装置600とを含む。
なお、以下では、常時接続サーバ200A,200Bが2つの場合について説明するが、常時接続サーバは1つであってもよいし、3つ以上であっても良い。アプリケーションサーバも1つであってもよいし、3つ以上であっても良い。家電も1つであってもよいし、3つ以上であってもよい。負荷分散装置と常時接続補助サーバは2つ以上であってもよい。
ここで、家電としては、たとえば、掃除機100A、エアコン100D、テレビ、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、IH(Induction Heating)クッキングヒーター、などが挙げられる。さらに、家電は、住居内またはオフィス内の通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のAV機器、インターホンシステムなどを含んでもよい。また、常時接続サーバ200A,200Bとアプリケーションサーバ300A,300Bと常時接続補助サーバ400と負荷分散装置600とは、家電と同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバ、あるいは、これら物理サーバ内に存在する仮想サーバなどを含んでもよい。
また、家電と各サーバ間は、光ファイバ等の回線を経由し、途中に、光回線終端装置、無線LAN通信を行うためのアクセスポイント、ルータ等が接続されてもよい。家電は、ネットワークに接続する手段として、IEEE802.11a/b/g/n/acなどの無線LAN通信、あるいは、有線LANなどが用いられるが、接続方法はこれらに限定されるものではない。
そして、本実施の形態においては、掃除機100Aおよびエアコン100Dの各々が、常時接続サーバ200A,200Bのいずれかと常時接続される。これによって、掃除機用のアプリケーションサーバ300Aおよびエアコン用のアプリケーションサーバ300Bは、常時接続サーバ200A,200Bを介して任意のタイミングで掃除機100Aおよびエアコン100Dにデータをプッシュ送信することができる。
すなわち、本実施の形態にかかるネットワークシステム1では、多数の家電の各々が、自身に適したサービスを提供する複数のアプリケーションサーバの全てと、直接的に常時接続する必要がない。また、逆に、複数のアプリケーションサーバの各々が、対応する複数の家電の全てと、直接的に常時接続する必要がない。
<ネットワークシステムの動作概要>
次に、本実施の形態にかかるネットワークシステム1の動作概要について説明する。なお、以下では、説明の重複をさけるために、掃除機100A、エアコン100Dなどの家電を総称して、クライアント100ともいう。同様に、ノード1の常時接続サーバ200Aと、ノード2の常時接続サーバ200Bとを総称して、常時接続サーバ200ともいう。同様に、掃除機用のアプリケーションサーバ300Aおよびエアコン用のアプリケーションサーバ300Bなどのような、各種のサービスをクライアント100およびユーザなどに提供するためのアプリケーションサーバを総称して、アプリケーションサーバ300ともいう。
まず、図1を参照して、掃除機100Aは、常時接続サーバ200A,200Bのいずれかと常時接続を開始するために、まず、HTTPプロトコルを利用して、負荷分散装置600を介して、稼働中の常時接続サーバ200のいずれかに、複数の常時接続サーバ200のアドレスが格納されたノードリストを要求する。ノードリストの例については、後述する。
掃除機100Aは、当該ノードリストに基づいて、Webソケットプロトコルを利用して、ノード1としての常時接続サーバ200Aと常時接続を開始する。
なお、本実施の形態においては、負荷分散装置600は、掃除機100Aからノードリストの要求を受け付けたときに、常時接続サーバ200Aにノードリストを要求する。そして、常時接続サーバ200Aからの応答がない場合には、負荷分散装置600は、他の常時接続サーバ200Bにノードリストを要求する。
より詳細には、本実施の形態においては、クライアント100からノードリスト要求を受けた常時接続サーバ200A,200Bは、対応関係DB500からノードリストを取得する。さらに、対応関係DB500は、負荷分散装置600からの要求を受け付けた際に、複数の常時接続サーバ200A,200Bのいずれかに要求を転送する。このとき、常時接続サーバ200Aが要求を受けたとすると、常時接続サーバ200Aは、他方、すなわち常時接続サーバ200Bに接続確認用データ(たとえばICMPのping)を送信し、その応答があった場合、稼働しているとみなして常時接続サーバ200Bを追加するか、あるいは応答が無かった場合は、稼働していないとみなして常時接続サーバ200Bを削除するよう、対応関係DB500にノードリストの更新を要求する。さらに、常時接続サーバ200Aは、更新されたノードリスト全体を対応関係DB500から取得して、クライアント100にノードリストを送信する。
このようにして、掃除機用のアプリケーションサーバ300Aは、常時接続サーバ200Aを介して、掃除機100Aにデータをプッシュすることができる。
同様に、エアコン100Dは、Webソケットプロトコルを利用して、常時接続サーバ200Aまたは200Bと常時接続している。すなわち、エアコン用のアプリケーションサーバ300Bも、常時接続サーバ200Aまたは200Bを介して、エアコン100Dにデータをプッシュすることができる。
本実施の形態においては、常時接続サーバ200A,200Bとアプリケーションサーバ300A,300Bの間に、常時接続補助サーバ400が配備される。常時接続補助サーバ400は、アプリケーションサーバ300A,300Bからクライアント100宛のデータを受信したときに、複数の常時接続サーバ200A,200Bのどちらに当該クライアント100が接続されているかを特定するために利用される。
たとえば、常時接続補助サーバ400は、アプリケーションサーバ300A,300Bのいずれかから掃除機100A宛のデータを受信したときに、常時接続サーバ200A,200Bのどちらに掃除機100Aが接続されているか調べる。そして、常時接続補助サーバ400は、掃除機100Aが接続されている方の常時接続サーバ200Aに当該データを送信する。
換言すれば、本実施の形態においては、アプリケーションサーバ300A,300Bのいずれかから常時接続補助サーバ400がデータを受信したときに、当該データが常時接続サーバ200Aと常時接続中の家電に向けたものであるかを判断する。そして、当該データが常時接続サーバ200Aと常時接続中の家電(たとえば、掃除機100A)に向けたものである場合、常時接続補助サーバ400は常時接続サーバ200Aにデータを送信する。常時接続サーバ200Aは、Webソケットプロトコルを利用して、当該データを掃除機100Aに送信する。
一方、当該データが常時接続サーバ200Aと常時接続中の家電に向けたものでない場合、常時接続補助サーバ400は、当該データの送信先としての家電(たとえば、エアコン100D)が常時接続中の常時接続サーバ200Bを特定する。常時接続補助サーバ400は、当該データを、送信先に指定されたエアコン100Bが常時接続中の常時接続サーバ200Bへと転送する。常時接続サーバ200Bは、Webソケットプロトコルを利用して、当該データをエアコン100Bに送信する。
図2を参照して、掃除機100Aと常時接続中の常時接続サーバ200Aが正常に稼働しなくなる場合がある。すなわち、常時接続サーバ200Aが、メンテナンスのために、一時停止したり、予期しない異常により稼働を停止した場合など、掃除機100Aが常時接続サーバ200Aと常時接続通信を行えなくなる場合がある。
このような場合は、図3を参照して、掃除機100Aは、他の常時接続サーバ200と常時接続を開始するために、まず、HTTPプロトコルを利用して、負荷分散装置600を介して常時接続サーバ200のいずれかに、稼働中の常時接続サーバ200のアドレスが格納されたノードリストを要求する。たとえば、掃除機100Aは、当該ノードリストに基づいて、Webソケットプロトコルを利用して、稼働中のノード2としての常時接続サーバ200Bと常時接続を開始するための処理を実行する。
しかしながら、掃除機100Aだけでなく、常時接続不能となった常時接続サーバ200Aと常時接続していた多数のクライアント100が、一斉に負荷分散装置600や他の常時接続サーバ200Bにアクセスする可能性がある。このような事態を回避するために、本実施の形態にかかるネットワークシステム1においては、常時接続不能となった常時接続サーバ200Aに常時接続していた多数のクライアント100が、同じタイミングで負荷分散装置600や他の常時接続サーバ200にアクセスする可能性を低減するように構成されている。
具体的には、本実施の形態においては、常時接続不能となった常時接続サーバ200Aに常時接続していた多数のクライアント100が、互いに異なるタイミングで負荷分散装置600を介して常時接続サーバ200A,200Bのいずれかにノードリストを要求し、互いに異なるタイミングで常時接続サーバ200との常時接続するための処理を実行する。図4は、クライアントが負荷分散装置600にアクセスするタイミングを示すイメージ図である。
図4を参照して、本実施の形態においては、常時接続サーバ200は、ノードリスト配信時にクライアント100に再接続間隔T(秒)を与える。そして、クライアント100は、1(秒)〜再接続間隔T(秒)までの間で、ランダムに待ち時間を決定する。ただし、後述の第3の実施の形態のように、常時接続サーバ200が、待ち時間を決定してもよい。そして、常時接続サーバ200が、クライアント100に待ち時間を送信しても良い。
クライアント100は、常時接続サーバ200から与えられた再接続間隔に基づいた待ち時間だけ待機した後、負荷分散装置600を介して常時接続サーバ200にノードリストを要求する。そして、正常にノードリストが取得できない場合、クライアント100は、常時接続サーバ200から与えられた再接続間隔だけ待機した後、再度、負荷分散装置600を介して常時接続サーバ200にノードリストを要求する。正常にノードリストが取得できるまで、クライアント100は、再接続間隔待機することとリストの要求とを繰り返す。
クライアント100は、取得したノードリストから常時接続サーバ200Aを選択する。クライアント100は、選択した常時接続サーバ200Aとの常時接続の開始処理を実行する。常時接続サーバ200Aに接続できない場合、クライアント100は、常時接続サーバ200のいずれかから与えられた再接続間隔だけ待機した後、ノードリストに記述されている他の常時接続サーバ200Bとの常時接続の開始処理を実行する。正常に常時接続サーバ200のいずれかへの接続が成功するまで、クライアント100は、再接続間隔待機することと常時接続開始処理とを繰り返す。
このように、本実施の形態にかかるネットワークシステム1では、常時接続サーバ200との常時接続が切断された多数のクライアント100が待ち時間だけ待機してから、再接続処理を開始する。すなわち、多数のクライアント100が一斉に負荷分散装置600や常時接続サーバ200にアクセスしてくることを防止することができる。その結果、クライアント100と常時接続サーバ200との再接続処理がスムーズに進行し、常時接続状態への復旧が速やかに行われる。
以下、このような機能を実現するためのネットワークシステム1の具体的な構成について詳述する。
<クライアント100のハードウェア構成>
まず、クライアント100のハードウェア構成の一態様について説明する。図5は、本実施の形態にかかるクライアント100のハードウェア構成を表わすブロック図である。
図5を参照して、クライアント100は、主たる構成要素として、CPU110と、メモリ120と、ボタン130と、ディスプレイ140と、家電制御回路150と、通信インターフェイス160とを含む。
CPU110は、メモリ120あるいは図示されていない外部の記憶媒体に記憶されているプログラムを実行することによって、クライアント100の各部を制御する。より詳細には、CPU110は、メモリ120のプログラムを実行することによって後述するクライアントAPP111(図14および図15を参照。)およびクライアントAPI112(図10、図11、図14、図15を参照。)として動作する。より詳細には、クライアントAPP111は、クライアント100の各部を制御するものであって、いわゆる端末用のアプリケーションプログラムのことである。クライアントAPI112は、後述する通信インターフェイスを介して、HTTPプロトコルを使用して通信したり、HTTPプロトコル上で利用されるWebソケットプロトコルを使用して通信したりする。
メモリ120は、各種のRAM(Random Access Memory)、各種のROM(Read-Only Memory)や、フラッシュメモリーなどによって実現される。なお、メモリ120は、インターフェイスを介して利用される、USB(Universal Serial Bus)(登録商標)メモリ、CD(Compact Disc)、DVD(Digital Versatile Disk)、メモリカード、ハードディスク、IC(Integrated Circuit)カード、光カード、マスクROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの記憶媒体などによっても実現される。
メモリ120は、CPU110によって実行されるプログラムや、CPU110によるプログラムの実行により生成されたデータ、ボタン130を介して入力されたデータ、掃除機またはエアコンなどのようなクライアントとして動作するAPP(Application software)データ、クライアントAPPとデータをやり取りしながら常時接続サーバ200と通信するためのAPI(Application Programming Interface)データを記憶する。具体的には、メモリ120は、常時接続サーバの接続先、アプリケーションサーバ接続先、サービス識別コード、サービス認証トークン、接続ID、クライアント識別IDなどを記憶する。
ボタン130は、ユーザからの命令を受け付けて、当該命令をCPU110に入力する。
ディスプレイ140は、液晶パネルなどによって実現され、CPU110からの信号に基づいて、文字や画像を出力する。
家電制御回路150は、CPU110からの信号に基づいて、家電としてのクライアントの各部(モータなど)を制御する。
通信インターフェイス160は、IEEE802.11a/b/g/n/acなどの無線LAN通信、ZigBee(登録商標)、BlueTooth(登録商標)、あるいは、イーサネット(登録商標)などの有線LANなどの通信モジュールによって実現される。通信インターフェイス160は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。CPU110は、通信インターフェイス160を介して、他の装置からプログラム、制御命令、画像データ、テキストデータなどを受信したり、他の装置にテキストデータ、画像データなどを送信したりする。
<常時接続サーバ200のハードウェア構成>
次に、常時接続サーバ200のハードウェア構成の一態様について説明する。図6は、本実施の形態にかかる常時接続サーバ200のハードウェア構成を表わすブロック図である。なお、常時接続サーバ200は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
図6を参照して、常時接続サーバ200は、主たる構成要素として、CPU210と、メモリ220と、キーボード230と、ディスプレイ240と、通信インターフェイス260とを含む。常時接続サーバ200のハードウェア構成は、クライアント100のハードウェア構成と比較して、ボタン130の代わりにキーボード230を有する点、家電の各部を制御するための家電制御回路150を有さない点、CPU210の動作、メモリ220に格納されているデータに関して異なる。以下では、CPU210の動作とメモリ220が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU210は、メモリ220あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、常時接続サーバ200の各部を制御する。具体的には、CPU210は、メモリ220に記憶されているプログラムを実行することによって、後述するWSサーバ212,212A,212B(図10、図11、図14、図15を参照。)として動作する。WSサーバ212は、ソフトウェアとしての常時接続サーバのことを言い、Webソケットプロトコルを使用してクライアント100との常時接続通信を制御したり、HTTPプロトコルを使用して常時接続補助サーバ400または複数のアプリケーションサーバ300との通信を制御したりする。
メモリ220は、CPU210によって実行されるプログラムや、CPU210によるプログラムの実行により生成されたデータ、キーボード230を介して入力されたデータ、サービスID、サービス名、アプリケーションサーバ300の接続先URL、サービス認証トークン生成情報、認証情報(ワンタイムキー)、接続IDなどを記憶する。
<アプリケーションサーバ300のハードウェア構成>
次に、アプリケーションサーバ300のハードウェア構成の一態様について説明する。図7は、本実施の形態にかかるアプリケーションサーバ300のハードウェア構成を表わすブロック図である。なお、アプリケーションサーバ300は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
図7を参照して、アプリケーションサーバ300は、主たる構成要素として、CPU310と、メモリ320と、キーボード330と、ディスプレイ340と、通信インターフェイス360とを含む。アプリケーションサーバ300のハードウェア構成は、常時接続サーバ200のハードウェア構成と比較して、CPU310の動作、メモリ320に格納されているデータに関して異なる。よって、以下では、CPU310の動作と、メモリ320が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU310は、メモリ320あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、アプリケーションサーバ300の各部を制御する。具体的には、CPU310は、メモリ320に記憶されているプログラムを実行することによって、後述するサーバAPPおよびサーバAPI312(図11、図14、図15を参照。)として動作する。
サーバAPPは、ソフトウェアとしてのアプリケーションサーバのことを言い、クライアント100やスマートフォンなどにサービスを提供する。サーバAPI312は、HTTPプロトコルを利用した常時接続補助サーバ400または常時接続サーバ200との通信を制御する。
メモリ320は、CPU310によって実行されるプログラムや、CPU310によるプログラムの実行により生成されたデータ、キーボード330を介して入力されたデータ、アプリケーションサーバ300として動作するためのAPPデータ、サーバAPPとデータをやり取りしながら常時接続サーバ200と通信するためのAPIデータを記憶する。具体的には、メモリ320は、常時接続サーバのURL、サービスIDとサービス認証トークン、認証情報(ワンタイムキー)生成情報、接続ID、待機サブルーチンの実行中を示す一時的なフラグ情報(後述)などを記憶する。
<対応関係DB>
次に、本実施形態にかかるネットワークシステム1で利用される対応関係DB500について説明する。図16は、本実施の形態にかかる対応関係DB500のデータ構造を示すイメージ図である。
図16を参照して、対応関係DB500は、クライアント100とアプリケーションサービスとの組み合わせ毎に、クライアント100を特定するための接続IDと、アプリケーションサーバ300が提供するサービスを特定するためのサービスID(アプリケーション定義データともいう。)と、常時接続サーバ200を特定するためのノード名(常時接続サーバ200のアドレスに対応付けられてもよいし、常時接続サーバ200のアドレスそのものであってもよい。)と、常時接続の開示時刻と、常時接続の利用回数との対応関係を含む。そして、対応関係DB500は、本実施形態にかかるネットワークシステム1に含まれる複数のアプリケーションサーバ300、常時接続補助サーバ400、および複数の常時接続サーバ200から参照可能になっている。
<常時接続補助サーバ400のハードウェア構成>
次に、常時接続補助サーバ400のハードウェア構成の一態様について説明する。図8は、本実施の形態にかかる常時接続補助サーバ400のハードウェア構成を表わすブロック図である。
図8を参照して、常時接続補助サーバ400は、主たる構成要素として、CPU410と、メモリ420と、キーボード430と、ディスプレイ440と、通信インターフェイス460とを含む。常時接続補助サーバ400のハードウェア構成は、常時接続サーバ200のハードウェア構成と比較して、CPU410の動作、メモリ420に格納されているデータに関して異なる。よって、以下では、CPU410の動作と、メモリ420が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU410は、メモリ420あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、常時接続補助サーバ400の各部を制御する。具体的には、CPU410は、メモリ420に記憶されているプログラムを実行することによって、常時接続補助機能411(図10を参照。)を実現する。常時接続補助機能411は、対応関係DB500を参照して、アプリケーションサーバ300からのデータの宛先であるクライアント100がどの常時接続サーバ200と常時接続中であるかを特定する。常時接続補助機能411は、通信インターフェイス460を介して、アプリケーションサーバ300からのデータを特定された常時接続サーバ200に転送する。
メモリ420は、CPU410によって実行されるプログラムや、CPU410によるプログラムの実行により生成されたデータ、キーボード430を介して入力されたデータ、を記憶する。
<負荷分散装置600のハードウェア構成>
負荷分散装置600のハードウェア構成の一態様について説明する。図9は、本実施の形態にかかる負荷分散装置600のハードウェア構成を表わすブロック図である。
図9を参照して、負荷分散装置600は、主たる構成要素として、CPU610と、メモリ620と、キーボード630と、ディスプレイ640と、通信インターフェイス660とを含む。負荷分散装置600のハードウェア構成は、常時接続サーバ200のハードウェア構成と比較して、CPU610の動作、メモリ620に格納されているデータに関して異なる。よって、以下では、CPU610の動作と、メモリ620が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU610は、メモリ620あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、負荷分散装置600の各部を制御する。具体的には、CPU610は、メモリ620に記憶されているプログラムを実行することによって、HTTPプロトコルを利用してクライアント100および他の装置から受信したデータを複数の常時接続サーバ200に割り振る。
メモリ620は、CPU610によって実行されるプログラムや、CPU610によるプログラムの実行により生成されたデータ、キーボード630を介して入力されたデータ、を記憶する。当該データとして、常時接続サーバ200から収集した負荷状態を格納する。
<ネットワークシステム1の機能構成>
次に、本実施の形態にかかるネットワークシステム1全体の機能構成について説明する。図10は、本実施の形態にかかるネットワークシステム1全体の機能構成を示すブロック図である。
図10を参照して、クライアント100は、Webソケットプロトコルを使用してノード1としての常時接続サーバ200Aと常時接続する。他の多数のクライアント100も、Webソケットプロトコルを使用してノード1としての常時接続サーバ200Aと常時接続する。さらに別の多数のクライアント100は、Webソケットプロトコルを使用してノード2としての常時接続サーバ200Bと常時接続する。なお、クライアント100は、HTTPプロトコルを使用して、アプリケーションサーバ300A,300B、負荷分散装置600を経由して、常時接続サーバ200A,200Bと通信することができる。
より詳細には、クライアントAPI112は、常時接続サーバ200のいずれかと常時接続を開始する際に、HTTPプロトコルを利用して、通信インターフェイス160を介して負荷分散装置600にノードリストを要求する。本実施の形態においては、クライアントAPI112は、HTTPプロトコルを利用して、負荷分散装置600を介して常時接続サーバ200にノードリストを要求する。
すなわち、負荷分散装置600は、クライアント100からの要求に応じて、常時接続サーバ200A,または200Bのいずれかに最新のノードリストの要求を転送する。
クライアントAPI112は、受信したノードリストの一番目の常時接続サーバ200を選択する。あるいは、クライアントAPI112は、ノードリストからランダムに常時接続サーバ200を選択する。あるいは、ノードリストに各常時接続サーバ200の負荷または接続中のクライアントの数などが含まれている場合、クライアントAPI112は、負荷または接続中のクライアントの数が小さい常時接続サーバ200を選択する。
クライアントAPI112は、通信インターフェイス160を介して、選択された常時接続サーバ200と常時接続を開始する。
常時接続サーバ200A,200BのWSサーバ212A,212Bは、CPU210によって実現されるものであって、Webソケットサーバとして、Webソケットプロトコルを利用して、通信インターフェイス260を介して、クライアント100と常時接続する。WSサーバ212A,212Bは、HTTPサーバとして、HTTPプロトコルを利用して、通信インターフェイス260を介して、他の常時接続サーバ200、アプリケーションサーバ300、負荷分散装置600などともデータ通信を行う。
常時接続サーバ200A,200BのWSサーバ212A,212Bは、負荷分散装置600からの要求に応じて、通信インターフェイス260を利用することによって、対応関係DB500に最新のノードリストを要求する。対応関係DB500は、常時接続サーバ200A,200Bのいずれかからの要求に応じて、複数の常時接続サーバ200A,200Bに接続確認を行うことによってノードリストを更新する。
なお、本実施形態においては、常時接続サーバ200は、ノードリストを含む、以下のようなデータをクライアント100に送信する。
{"status":0,"reConInterval":600,"handshakeUrl":["ws://example01.com:18080/cpush-server/echo","ws://example02.com:18080/cpush-server/echo"]}
ここで、"reConInterval":600というは、再接続間隔が600秒であることを示す。"handshakeUrl":["ws://example01.com:18080/cpush-server/echo","ws://example02.com:18080/cpush-server/echo"]というのは、複数の常時接続サーバのアドレスを含むノードリストを示す。
そして、本実施の形態にかかる常時接続サーバ200に関しては、WSサーバ212が、定期的に、対応関係DB500に格納されているデータから複数の常時接続サーバ200に接続されているクライアント100の全数、1つの常時接続サーバ200の一秒当たりの再接続可能数、稼働中の常時接続サーバ200の数を取得する。そして、WSサーバ212は、以下の式(1)に基づいて再接続間隔T(秒)を計算する。
(再接続間隔)=(接続済みクライアント数+α)÷(1秒当たりの再接続可能数)÷(稼働中の常時接続サーバ数)…(1)
そして、WSサーバ212は、通信インターフェイス260を介して、クライアント100のノードリスト要求時に、再接続間隔を常時接続サーバ200と常時接続しているクライアント100に配信する。
本実施形態においては、常時接続サーバ200がノードリストと同時に再接続間隔を送る。しかしながら、常時接続サーバ200は、ノードリストと再接続間隔とを同時に送る必要はない。たとえば、常時接続サーバ200は、予め、再接続間隔だけをクライアント100に送信してもよい。
<常時接続に関する装置間のデータのやり取り>
次に、本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りの概要について説明する。なお、図11は、本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りの処理手順を示すシーケンス図である。
まず、クライアントAPI112は、常時接続を開始する際に、通信インターフェイス160を利用することによって、負荷分散装置600を介して常時接続サーバ200にノードリストを要求する。クライアントAPI112は、ノードリストを参照して、常時接続する常時接続サーバ200を選択する。
図11を参照して、クライアントAPI112は、HTTPプロトコルを使用して、通信インターフェイス160を介して、アプリケーションサーバ300に認証情報を要求する(ステップS002)。このとき、クライアントAPI112は、アプリケーションサーバ300に、認証に利用されるクライアントIDを送信する。アプリケーションサーバ300のサーバAPI312は、当該要求に応じてHTTPプロトコルを使用して、通信インターフェイス360を介して認証情報を送信する(ステップS004)。
サーバAPI312は、通信インターフェイス360を介して、選択された常時接続サーバ200にも認証情報を送信する(ステップS006)。常時接続サーバ200のWSサーバ212は、アプリケーションサーバ300から受信した認証情報を保存する(ステップS008)。
クライアント100と常時接続サーバ200とは、Webソケットプロトコルを使用して、Webソケットを利用した常時接続状態を確立する(ステップS010、ステップS012)。具体的には、クライアントAPI112は、通信インターフェイス160を介して常時接続サーバ200にハンドシェイク要求を送る。WSサーバ212は、通信インターフェイス260を介してハンドシェイク応答を返す。これによって、クライアント100と常時接続サーバ200との間で、Webソケットプロトコルによる常時接続が有効になる。
クライアントAPI112は、通信インターフェイス160を介して認証情報を常時接続サーバ200に送信する(ステップS014)。WSサーバ212は、クライアント100からの認証情報と予め保存している認証情報とに基づいて、クライアント100を認証する(ステップS016)。認証に成功すると、WSサーバ212は、アプリケーションサーバ300がクライアント100を識別するための接続IDを発行するとともに保存している認証情報を削除する。また、WSサーバ212は、図16に示すように、接続IDと常時接続サーバ200Aを特定する情報とアプリケーションサービスを特定する情報とを対応付けて、通信インターフェイス260を介して当該対応関係を、対応関係DB500に登録する。(ステップS018)。
クライアント100は、接続IDを受信して、記憶する(ステップS020)。アプリケーションサーバ300も、接続IDを受信して、クライアントIDと対応付けて記憶する(ステップS022)。
その後、サーバAPI312は、サーバAPPからの要求に応じて、データ本体と、ステップS022で記憶した、送り先のクライアント100のクライアントIDに対応する接続IDとを通信インターフェイス360を介して常時接続サーバ200に送信する(ステップS032)。
本実施の形態においては、ステップS033として、アプリケーションサーバ300からのデータは、常時接続補助サーバ400が受信する。常時接続補助サーバ400のCPU410によって実現されるクライアント接続ノード転送機能411は、対応関係DB500に登録されている接続IDと常時接続サーバとの対応関係に基づいてデータを送信すべき常時接続サーバ200を選択する。クライアント接続ノード転送411は、通信インターフェイス460を介して、選択された常時接続サーバ200にデータを転送する。
常時接続サーバ200は、常時接続補助サーバ400からデータ本体と接続IDとを受信する(ステップS034)。WSサーバ212は、接続IDに基づいてクライアント100を特定する(ステップS036)。
WSサーバ212は、Webソケットプロトコルを使用して、通信インターフェイス260を介して、特定されたクライアント100にデータ本体を送信する(ステップS038)。クライアント100は、データ本体を受信する(ステップS040)。
クライアント100は、Webソケットプロトコルを使用して、受信結果を常時接続サーバ200に送信する(ステップS042)。常時接続サーバ200は、受信結果を受信すると、当該受信結果をアプリケーションサーバ300に送信する(ステップS044)。アプリケーションサーバ300は、受信結果を受信する(ステップS046)。
そして、本実施の形態においては、クライアントAPI112が、常時接続サーバ200との常時接続通信が行えなくなったときに、待ち時間だけ待機してから、通信インターフェイス160を利用することによって負荷分散装置600を介して常時接続サーバ200に最新のノードリストを要求する。常時接続サーバ200からのノードリストの取得に失敗した場合、もしくは、ノードリストの取得に成功したが、Webソケット接続に失敗した場合、クライアントAPI112は、再接続間隔待機してから、再度、通信インターフェイス160を介して、負荷分散装置600に最新のノードリストを要求する。以降、ノードリストの取得とWebソケット接続に成功するまで、クライアントAPI112は、再接続間隔だけ待機してから、負荷分散装置600を介して常時接続サーバ200に最新のノードリストを要求する処理を繰り返す。
つまり、常時接続サーバ200との常時接続通信が行えなくなったとき、クライアントAPI112は、待ち時間だけ待機してから、ステップS002からの処理を繰り返す。ただし、後述する第2の実施の形態において説明するように、既に取得している接続IDに基づいて、認証処理を簡略化することも可能である。
<クライアント100における再接続処理>
次に、本実施の形態にかかるクライアント100における再接続処理の処理手順について説明する。図12は、本実施の形態にかかるクライアント100における再接続処理の処理手順を示すフローチャートである。より詳細には、以下では、主に、クライアント100のCPU110がプログラムを実行することによって実現されるクライアントAPI112の動作について説明する。
図12を参照して、クライアントAPI112はクライアントAPP111からの接続開始要求を受け付ける(ステップS102)。クライアントAPI112は、当該要求に応じて、クライアントAPP111を特定するクライアントIDの設定が必要である場合、クライアントIDをメモリ120に格納する(ステップS104)。クライアントAPI112は、これから行う予定の常時接続処理が、通常の新たな常時接続処理(初回接続処理ともいう。)であるか、予期せぬ切断による再接続処理であるか否かを判断する(ステップS106)。
たとえば、クライアントAPI112は、クライアントAPP111から渡されるデータが、クライアントIDとして設定されているかどうかで、初回接続処理と再接続処理とを区別する。
本実施の形態においては、クライアントAPI112が初回接続である(あるいは、再接続でない)と判断した場合(ステップS106にてYESである場合)、初回接続処理として、クライアントAPI112は、WS接続用認証情報の取得処理を実施し、アプリケーションサーバ300から認証情報を取得し、ステップS132からの処理を実行する(S110)。
一方、クライアントAPI112が再接続である(あるいは、初回接続でない)と判断した場合(ステップS106にてNOである場合)、クライアントAPI112は、再接続処理として、メモリ120から再接続間隔を読み出す(ステップS112)。
本実施の形態においては、上述したように、クライアント100は、常時接続サーバ200からノードリストを取得した時に、ノードリストとともに再接続間隔を取得する。ただし、クライアントAPI112は、再接続間隔を未だ取得していない場合、再接続間隔を自身に組み込まれたデフォルト値(たとえば600秒)とする。
クライアントAPI112は、後述する待機サブルーチンを実行する(ステップS120)。その後、クライアントAPI112は、通信インターフェイス160を利用して、負荷分散装置600を介して常時接続サーバ200に、複数の常時接続サーバ200の情報を含むノードリストと最新の再接続間隔とを要求する(ステップS132)。
クライアントAPI112は、常時接続サーバ200からノードリストを取得できなかった場合(ステップS134にてNOの場合)、ステップS106からの処理を繰り返す。一方、クライアントAPI112は、常時接続サーバ200からノードリストと再接続間隔を取得できた場合(ステップS134にてYESの場合)、メモリ120に最新の再接続間隔を記憶する(ステップS136)。このとき、クライアントAPI112は、後述する待機サブルーチンの実行中を示すフラグをOFFする。
クライアントAPI112は、取得したノードリストに基づいて、常時接続する常時接続サーバ200を選択する。クライアントAPI112は、通信インターフェイス160を介して、選択された常時接続サーバ200との常時接続を開始するための処理を実行する(ステップS138、図11のステップS010からの処理を参照。)。
クライアントAPI112は、最大で、ノードリストに含まれる常時接続サーバ200の件数分だけ、上記処理を繰り返す。なお、本実施の形態においては、クライアントAPI112は、ステップS138において、ノードリスト上で未だ常時接続を試みていない常時接続サーバ200との常時接続を試みる。
クライアントAPI112は、選択されたすべての常時接続サーバ200との常時接続に失敗すると(ステップS140にてNOの場合)、ステップS106からの処理を繰り返す。
クライアントAPI112は、選択された常時接続サーバ200との常時接続に成功すると(ステップS140にてYESである場合)、認証処理を実行する(ステップS142、図11のステップS014からの処理を参照)。
<クライアント100における待機サブルーチン>
次に、本実施の形態にかかるクライアント100における待機サブルーチンの処理手順について説明する。図13は、本実施の形態にかかるクライアント100における待機サブルーチンの処理手順を示すフローチャートである。以下では、主に、クライアント100のCPU110がプログラムを実行することによって実現されるクライアントAPI112の動作について説明する。
図13を参照して、クライアントAPI112は、待機サブルーチンの実行が初めてか否かを判断する(ステップS122)。たとえば、クライアントAPI112は、待機サブルーチンの実行中を示すフラグがONであるか否かを確認し、OFFの場合を1回目であるとし、ONの場合は2回目以降であるとする。
待機サブルーチンの実行が1回目である場合(ステップS122にてYESである場合)、クライアントAPI112は、待機サブルーチンの実行中を示すフラグをONする。クライアントAPI112は、待ち時間を生成する(ステップS124)。より詳細には、クライアントAPI112は、1秒から再接続間隔T秒までの間で、待ち時間をランダムに設定する。クライアントAPI112は、待ち時間だけ待機して(ステップS126)、待機サブルーチンから再接続処理に戻る。
待機サブルーチンの実行が2回目以降である場合(ステップS122にてNOである場合)、クライアントAPI112は、再接続間隔を待ち時間とする(ステップS128)。クライアントAPI112は、待ち時間だけ待機して(ステップS126)、待機サブルーチンから再接続処理に戻る。
このように、本実施の形態にかかるネットワークシステム1では、常時接続サーバ200との常時接続が切断された多数のクライアント100の各々が、待ち時間だけ待機してから、再接続処理を開始する。すなわち、多数のクライアント100が一斉に負荷分散装置600や常時接続サーバ200にアクセスしてくることを防止することができる。その結果、クライアント100と常時接続サーバ200との再接続処理がスムーズに進行し、常時接続状態への復旧が速やかに行われる。
<第2の実施の形態>
次に、第2の実施の形態について説明する。第1の実施の形態にかかるネットワークシステム1では、再接続処理を行う際には、再度認証処理を行う必要があった。しかしながら、本実施の形態においては、接続IDを利用することによって認証処理を簡略化するものである。
本実施の形態にかかるネットワークシステム1の全体構成や各部のハードウェア構成は、第1の実施の形態のそれと同様であるため、説明を繰り返さない。以下では、本実施の形態にかかるネットワークシステム1における初回接続処理の処理手順と再接続処理の処理手順とについて説明する。
<初回接続処理の処理手順>
まず、本実施の形態にかかる初回接続処理の処理手順について説明する。図14は、本実施の形態にかかる初回接続処理の処理手順を示すシーケンス図である。
図14を参照して、クライアントAPP111は、アプリケーションサーバ300との常時接続を開始するための要求を、クライアントAPI112に受け渡す(ステップS202)。このとき、クライアントAPP111は、クライアントAPI112にクライアントIDを受け渡す。クライアントAPI112は、クライアントIDを受け取らなかったときは、以下のように、初期接続処理を実行する。
クライアントAPI112は、クライアントAPP111にアプリケーションサーバ300への接続を要求する(ステップS204)。クライアントAPP111は、通信インターフェイス160を介して、HTTPプロトコルを利用してアプリケーションサーバ300に接続開始を要求する(ステップS206)。クライアントAPP111は、アプリケーションサーバ300から認証情報を受信して、当該認証情報をクライアントAPI112に受け渡す。
クライアントAPI112は、通信インターフェイス160を利用することによって、負荷分散装置600を介していずれかの常時接続サーバ200にノードリストを要求する(ステップS208)。クライアントAPI112は、ノードリストに基づいて、常時接続を試みる常時接続サーバ200を選択する。クライアントAPI112は、常時接続サーバ200との常時接続を開始するための処理を実行するためにWS接続スレッドを起動する(ステップS210)。
クライアントAPI112は、通信インターフェイス160を利用することによって、Webソケットプロトコルを使用して、常時接続サーバ200にWebソケットハンドシェイク要求を送信する(ステップS212)。WSサーバ212は、通信インターフェイス260を介して、ハンドシェイク応答をクライアント100に返す(ステップS216)。これによって、クライアント100と常時接続サーバ200とのWebソケットプロトコルによる常時接続が開始される。
なお、クライアントAPI112は、常時接続サーバ200とのハンドシェイクに失敗すると、再度ノードリストに基づいて、他の常時接続サーバ200を選択する。そして、クライアントAPI112は、ステップS212からの処理を繰り返す。
クライアントAPI112は、通信インターフェイス160を介して、Webソケットプロトコルを使用して、常時接続サーバ200に認証情報を送信する(ステップS218)。WSサーバ212は、アプリケーションサーバ300からの認証情報とクライアント100からの認証情報とに基づいてクライアント100を認証する。
認証に成功すると、WSサーバ212は、接続IDを発行する。WSサーバ212は、通信インターフェイス260を介して、接続確立状況としてクライアント100の接続IDをアプリケーションサーバ300とクライアント100とに送信する(ステップS220)。
クライアントAPI112は、クライアントAPP111に常時接続が開始された旨を通知する(ステップS224)。なお、常時接続サーバ200が認証に失敗した場合は、クライアントAPI112は、ステップS204からの処理を繰り返す。
<再接続処理の処理手順>
次に、本実施の形態にかかる再接続処理の処理手順について説明する。図15は、本実施の形態にかかる再接続処理の処理手順を示すシーケンス図である。
図15を参照して、クライアントAPP111は、アプリケーションサーバ300との常時接続を開始するための要求を、クライアントAPI112に受け渡す(ステップS252)。このとき、クライアントAPP111は、クライアントAPI112にクライアントIDを受け渡す。クライアントAPP111は、クライアントIDを受け取ったときは、以下のように、再接続処理を実行する。
クライアントAPI112は、前述した待機サブルーチンを実行し、待ち時間だけ待機する(ステップS257)。クライアントAPI112は、待機後、通信インターフェイス160を利用することによって、負荷分散装置600を介していずれかの常時接続サーバ200にノードリストを要求する(ステップS258)。
クライアントAPI112は、ノードリストを取得できなかった場合、再接続間隔だけ待機してから、再度、通信インターフェイス160を利用することによって、負荷分散装置600を介していずれかの常時接続サーバ200にノードリストを要求する。
クライアントAPI112は、ノードリストを取得できた場合、ノードリストに含まれる再接続間隔を記憶し、ノードリストに含まれるノードのリストに基づいて、常時接続を試みる常時接続サーバ200を選択する。クライアントAPI112は、常時接続サーバ200との常時接続を開始するための処理を実行するためにWS接続スレッドを起動する(ステップS260)。
クライアントAPI112は、通信インターフェイス160を利用することによって、Webソケットプロトコルを使用して、常時接続サーバ200にハンドシェイク要求を送信する(ステップS262)。WSサーバ212は、通信インターフェイス260を介して、ハンドシェイク応答をクライアント100に返す(ステップS266)。これによって、クライアント100と常時接続サーバ200とのWebソケットプロトコルによる常時接続が開始される。
なお、クライアントAPI112は、常時接続サーバ200とのハンドシェイクに失敗すると、再度ノードリストに基づいて、他の常時接続サーバ200を選択する。そして、クライアントAPI112は、ステップS260からの処理を繰り返す。
クライアントAPI112は、通信インターフェイス160を介して、Webソケットプロトコルを使用して、常時接続サーバ200にクライアントIDを送信する(ステップS268)。WSサーバ212は、接続IDをアプリケーションサーバ300に送信することによって、クライアント100を認証する。
認証に成功すると、WSサーバ212は、認証に成功した旨をクライアント100とアプリケーションサーバ300とに通知する(ステップS270)。クライアントAPI112は、クライアントAPP111に常時接続が開始された旨を通知する(ステップS274)。
なお、常時接続サーバ200が認証に失敗した場合は、クライアントAPI112は、初回接続処理のステップS204(図14を参照。)からの処理を繰り返す。
このように、本実施の形態にかかるネットワークシステム1においても、常時接続サーバ200との常時接続が切断された多数のクライアント100の各々が、待ち時間だけ待機してから、再接続処理を開始する。すなわち、多数のクライアント100が一斉に負荷分散装置600や常時接続サーバ200にアクセスしてくることを防止することができる。その結果、クライアント100と常時接続サーバ200との再接続処理がスムーズに進行し、常時接続状態への復旧が速やかに行われる。
<第3の実施の形態>
上記の第1および第2の実施の形態では、常時接続サーバ200が再接続間隔を計算し、クライアント100が再接続間隔に基づいて待ち時間を計算するものであった。つまり、常時接続サーバ200が、再接続間隔をクライアント100に配信するものであった。
しかしながら、第3の実施の形態にかかるネットワークシステムとして、常時接続サーバ200が再接続間隔を計算し、再接続間隔に基づいて待ち時間までも計算してもよい。つまり、常時接続サーバ200が、再接続間隔と一緒に、待ち時間もクライアント100に配信してもよい。
<第4の実施の形態>
上記の第1から第3の実施の形態では、クライアント100が、1(秒)〜再接続間隔T(秒)までの間で、ランダムに待ち時間を決定するものであった。
しかしながら、第4の実施の形態にかかるネットワークシステムとして、常時接続サーバ200のCPU210、アプリケーションサーバ300のいずれかが、常時接続によるデータ送受信の頻度に基づいて、待ち時間を決定してもよい。より詳細には、それらのCPUは、クライアント100と常時接続サーバ200(あるいはサーバAPP)との組み合わせ毎の、単位時間当たりのWebソケットプロトコルを利用したデータ送受信の回数(頻度)を対応関係DB500に格納する。そして、CPUは、Webソケットプロトコルを利用した送受信の頻度が高い組み合わせほど、待ち時間が短くなるように、待ち時間を設定する。たとえば、CPUは、存在するクライアント全数に対する当該クライアントの送受信の回数の相対度数を算出し、これと再接続間隔T(秒)との積を求めることにより、待ち時間を決定する。
これによって、常時接続によるデータの送受信を頻繁に行うクライアント100と常時接続サーバ200との組み合わせほど、常時接続が早く復旧する。その結果、常時接続が切断された場合に、アプリケーションサーバ300からクライアント100に情報をプッシュできないことによる不具合が生じる可能性を低減することができる。
<第5の実施の形態>
上記の第1および第2の実施の形態では、負荷分散装置600が稼働中の常時接続サーバ200のアドレスが格納されたノードリストをクライアント100に送信するものであった。そして、クライアント100が、ノードリストに基づいて、常時接続を開始する常時接続サーバ200を選択するものであった。
しかしながら、第5の実施の形態として、常時接続サーバ200が、稼働中の常時接続サーバ200のアドレスが格納されたノードリストに基づいて、クライアント100と常時接続すべき(たとえば、現在の負荷が小さい)常時接続サーバ200を選択してもよい。この場合は、常時接続サーバ200は、選択された常時接続サーバ200のみを含むノードリストをクライアント100に送信する。そして、クライアント100は、ノードリストに指定された常時接続サーバ200と常時接続を開始する。
<第6の実施の形態>
上記の第1および第2の実施の形態では、負荷分散装置600は、クライアント100からノードリストの要求を受け付けたときに、常時接続サーバ200にノードリストを要求する。さらに、常時接続サーバ200は、その他複数の常時接続サーバ200に接続確認用データ(ping)を送信し、その応答に基づいて対応関係DB500のノードリストを更新する。さらに、常時接続サーバ200は、負荷分散装置600から転送された要求に応じて対応関係DB500からノードリストを取得する。
しかしながら、第6の実施の形態として、常時接続サーバ200は、定期的に、その他複数の常時接続サーバ200に接続確認用データ(ping)を送信し、その応答に基づいて対応関係DB500のノードリストを更新しておく。そして、常時接続サーバ200は、負荷分散装置600からの要求に応じて対応関係DB500からノードリストを取得してもよい。
<第7の実施の形態>
あるいは、第7の実施の形態として、常時接続サーバ200が、定期的に、その他複数の常時接続サーバ200に接続確認用データ(ping)を送信し、その応答に基づいてノードリストを更新し、更新した最新のノードリストをその他の常時接続サーバ200に送信しておき、さらに、常時接続サーバ200が、クライアント100からの要求に応じて、予め受信していたノードリストをクライアント100に送信してもよい。
<第8の実施の形態>
上記の実施の形態では、クライアント100は、負荷分散装置600を介して常時接続サーバ200から再接続用間隔およびノードリストを取得するものであった。しかしながら、第8の実施の形態として、クライアント100は、サービスを提供しているアプリケーションサーバ300を介して、常時接続サーバ200から再接続用間隔およびノードリストを取得してもよい。
具体的には、クライアント100は、常時接続サーバ200との常時接続が切断されると、HTTPプロトコルを利用して、アプリケーションサーバ300にノードリスト要求および/または再接続用間隔要求を送信する。アプリケーションサーバ300は、複数の常時接続サーバ200のいずれかまたは対応関係DB500にノードリストおよび/または再接続間隔を要求する。複数の常時接続サーバ200のいずれかまたは対応関係DB500は、ノードリストおよび/または再接続間隔をアプリケーションサーバ300に返す。アプリケーションサーバ300は、HTTPプロトコルを利用して、クライアント100にノードリストおよび/または再接続間隔を送信する。
<第9の実施の形態>
上記の実施の形態では、クライアント100は、常時接続サーバ200との常時接続が切断されると、再接続時間待機してから、常時接続サーバ200と再接続するための処理を開始するものであった。しかしながら、第9の実施の形態として、クライアント100は、常時接続サーバ200との常時接続が切断されると、所定の条件を満たした場合にのみ再接続時間待機してから常時接続サーバ200と再接続するための処理を開始し、所定の条件を満たさない場合は待機せずに即時に常時接続サーバ200と再接続するための処理を開始してもよい。
たとえば、常時接続サーバ200を起因とする常時接続の切断の時だけ、クライアント100は再接続用間隔待機する。逆に、クライアント100が原因となって常時接続を切断した場合は、クライアント100は即時に再接続のための処理を開始する。
具体例として、常時接続サーバ200が常時接続を切断した場合以外の理由で常時接続が切断された場合(クライアントAPIの再起動など)に、クライアント100がフラグ情報を一時領域に記憶(フラグをON)する。そして、再接続時に、クライアント100は、このフラグ情報がONか否かを判断する。クライアント100は、フラグ情報がONの場合、即時に再接続のための処理を開始する。クライアント100は、再接続に成功したときにフラグをOFFする。一方、クライアント100は、フラグ情報がOFFの場合、再接続用間隔待機してから再接続のための処理を開始する。
換言すれば、クライアント100が原因で常時接続が切断された場合(クライアントAPIの再起動など)に、クライアント100がフラグ情報を一時領域に記憶(フラグをON)する。
これにより、再接続を分散させる必要の無い時に、待ち時間、すなわち常時接続を利用した機能が利用できない時間を低減することが可能になる。
<第10の実施の形態>
上記の実施の形態では、ネットワークシステム1が複数の常時接続サーバ200を含むものであった。しかしながら、ネットワークシステム1は、1つの常時接続サーバ200を含むものであってもよい。
この場合は、クライアント100は、常時接続サーバ200にノードリストを要求する必要がない。しかしながら、クライアント100は、常時接続サーバ200から再接続用間隔を受信する必要がある。すなわち、クライアント100は、常時接続が切断された際に、1〜再接続用間隔(秒)の間の待ち時間または再接続用間隔だけ待機してから、ノードリストを要求することなく、以前に常時接続していた常時接続サーバ200とハンドシェイク処理を開始する。
そして、本実施の形態にかかる常時接続サーバ200に関しては、WSサーバ212が、定期的に、対応関係DB500または常時接続サーバ200に格納されているデータから常時接続サーバ200に接続されているクライアント100の数、常時接続サーバ200の一秒当たりの再接続可能数を取得する。そして、WSサーバ212は、以下の式(2)基づいて再接続間隔T(秒)を計算する。
(再接続間隔)=(接続済みクライアント数+α)÷(1秒当たりの再接続可能数)…(2)
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 :ネットワークシステム
100 :クライアント
110 :CPU
111 :クライアントAPP
112 :クライアントAPI
120 :メモリ
150 :家電制御回路
160 :通信インターフェイス
200 :常時接続サーバ
210 :CPU
212 :WSサーバ
220 :メモリ
260 :通信インターフェイス
300 :アプリケーションサーバ
310 :CPU
312 :サーバAPI
320 :メモリ
360 :通信インターフェイス
400 :常時接続補助サーバ
410 :CPU
420 :メモリ
460 :通信インターフェイス
500 :対応関係DB
600 :負荷分散装置
610 :CPU
611 :リスト提供機能
620 :メモリ
660 :通信インターフェイス

Claims (14)

  1. 電子機器と、
    前記電子機器と常時接続可能な常時接続サーバとを備え、
    前記常時接続サーバは、前記常時接続サーバに関する再接続用間隔を含む情報を前記電子機器に送信し、
    前記電子機器は、
    前記電子機器に起因せずに常時接続が切断されたと判断した時に、前記再接続用間隔に基づいて算出される時間の待機後、前記常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返し、
    前記電子機器に起因して常時接続が切断されたと判断した時に、前記待機を実行せずに、常時接続するための処理を開始する、ネットワークシステム。
  2. 前記常時接続サーバは、前記電子機器毎に前記再接続用間隔を上限とした待ち時間を作成し、前記電子機器に前記待ち時間を送信し、
    前記電子機器は、前記常時接続サーバとの常時接続が切断されたときに、前記待ち時間だけ待機してから常時接続するための処理を行う、請求項1に記載のネットワークシステム。
  3. 前記電子機器は、前記再接続用間隔を上限とした待ち時間を作成し、前記常時接続サーバとの常時接続が切断されたときに、前記待ち時間だけ待機してから常時接続するための処理を行う、請求項1に記載のネットワークシステム。
  4. 前記待ち時間は、前記電子機器と前記常時接続サーバとの常時接続によるデータの送受信の頻度に基づいて作成される、請求項2または3に記載のネットワークシステム。
  5. 前記常時接続サーバは、前記常時接続サーバと接続中の複数の電子機器の数と、1つの常時接続サーバの1秒当たりの再接続可能な電子機器の数と、に基づいて前記再接続用間隔を計算する、請求項1から4のいずれか1項に記載のネットワークシステム。
  6. 前記常時接続サーバとして、前記電子機器と常時接続可能な複数の常時接続サーバを備え、
    前記複数の常時接続サーバの少なくとも1つは、前記複数の常時接続サーバに関する情報を前記電子機器に送信し、
    前記電子機器は、前記複数の常時接続サーバのいずれかとの常時接続が成功するまで、前記情報に基づいて前記複数の常時接続サーバに順に常時接続を試みる、請求項1から4のいずれか1項に記載のネットワークシステム。
  7. 前記複数の常時接続サーバの少なくとも1つは、前記複数の常時接続サーバと接続中の複数の電子機器の数と、1つの常時接続サーバの1秒当たりの再接続可能な電子機器の数と、稼働中の常時接続サーバの個数とに基づいて前記再接続用間隔を計算する、請求項6に記載のネットワークシステム。
  8. 前記電子機器は、前記常時接続サーバとの常時接続が成功するまで、前記再接続用間隔をあけながら常時接続するための処理を繰り返す、請求項1から7のいずれか1項に記載のネットワークシステム。
  9. 前記常時接続サーバは、他のサーバを介して、前記再接続用間隔を含む情報を前記電子機器に送信する、請求項1から8のいずれか1項に記載のネットワークシステム。
  10. 前記電子機器は、前記電子機器が原因で常時接続が切断された際に、その旨を示すための情報を記憶する、請求項1から9のいずれか1項に記載の電子機器。
  11. 電子機器と前記電子機器と常時接続可能な常時接続サーバとを含むネットワークシステムにおける常時接続方法であって、
    前記常時接続サーバが、再接続用間隔を含む情報を前記電子機器に送信するステップと、
    前記電子機器と前記常時接続サーバとの常時接続が切断されるステップと、
    前記電子機器が、前記電子機器に起因して常時接続が切断されたか否かを判断するステップと、
    前記電子機器が、前記電子機器に起因せずに常時接続が切断されたと判断した時に、前記情報を利用することによって、前記再接続用間隔に基づいて算出される時間の待機後、前記常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返し、前記電子機器に起因して常時接続が切断されたと判断した時に、前記待機を実行せずに、常時接続するための処理を開始するステップとを備える、常時接続方法。
  12. 常時接続サーバと常時接続可能な通信インターフェイスと、
    電子機器に起因せずに常時接続が切断されたと判断した時に、前記常時接続サーバに関する情報を利用することによって、前記常時接続サーバのいずれかから与えられた再接続用間隔に基づいて算出される時間の待機後、前記常時接続サーバとの常時接続が成功するまで、常時接続するための処理を繰り返し、前記電子機器に起因して常時接続が切断されたと判断した時に、前記待機を実行せずに、常時接続するための処理を開始するためのプロセッサとを備える、電子機器。
  13. メモリをさらに備え、
    前記プロセッサは、前記電子機器が原因で常時接続が切断された際に、その旨を示すための情報を前記メモリに記憶する、請求項12に記載の電子機器。
  14. プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムであって、
    前記通信インターフェイスを介して、常時接続サーバから再接続用間隔を含む情報を受信するステップと、
    前記電子機器に起因して常時接続が切断されたか否かを判断するステップと、
    前記電子機器に起因せずに常時接続が切断されたと判断した時に、前記情報を利用することによって、前記再接続用間隔に基づいて算出された時間の待機後、前記常時接続サーバとの常時接続が成功するまで、前記常時接続サーバと常時接続するための処理を繰り返し、前記電子機器に起因して常時接続が切断されたと判断した時に、前記待機を実行せずに、常時接続するための処理を開始するステップとを前記プロセッサに実行させる、プログラム。
JP2013244546A 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム Expired - Fee Related JP5858973B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013244546A JP5858973B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
CN201410694568.8A CN104683435B (zh) 2013-11-27 2014-11-27 网络系统、保持连接方法、电子设备、服务器
US14/555,653 US20150149524A1 (en) 2013-11-27 2014-11-27 Network system, constant connection method, electronic device, server, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013244546A JP5858973B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015243116A Division JP6069474B2 (ja) 2015-12-14 2015-12-14 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム

Publications (2)

Publication Number Publication Date
JP2015104034A JP2015104034A (ja) 2015-06-04
JP5858973B2 true JP5858973B2 (ja) 2016-02-10

Family

ID=53379394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013244546A Expired - Fee Related JP5858973B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム

Country Status (1)

Country Link
JP (1) JP5858973B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050154794A1 (en) * 2004-01-14 2005-07-14 Deshpande Sachin G. Systems and methods for providing a discovery protocol
JP4251207B2 (ja) * 2006-04-28 2009-04-08 ソニー株式会社 サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
JP5672912B2 (ja) * 2010-09-30 2015-02-18 株式会社リコー 通信システム、クライアント端末、クライアント端末用プログラム、通信システム用プログラム、及び待機時間の設定方法
JP2013051571A (ja) * 2011-08-31 2013-03-14 Seiko Epson Corp 処理端末および処理方法
JP5880688B2 (ja) * 2012-03-27 2016-03-09 ソニー株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2015104034A (ja) 2015-06-04

Similar Documents

Publication Publication Date Title
JP3805725B2 (ja) 相異なるミドルウェアを使用するホームネットワーク上のデバイス間のメッセージの受け渡しを可能にするゲートウェイ、ホームネットワークシステム及びメッセージ受け渡し方法
JP5364671B2 (ja) ネットワーク認証における端末接続状態管理
JP6279938B2 (ja) 接続管理装置、通信システム、接続管理方法およびプログラム
EP2840741B1 (en) Method and apparatus for using service of home network device based on remote access
TW201421949A (zh) 在至少一通訊網路內跨越第一和第二設備間複數通訊路徑的多路徑連接之建立方法和設備
CN107113892A (zh) 一种网关设备自动组网的方法及装置
KR20050077688A (ko) 클라이언트 단말장치와 서버 사이의 세션 재설정을 위한시스템 및 방법
US20150149524A1 (en) Network system, constant connection method, electronic device, server, and program
JP2008158903A (ja) 認証システム、および主端末
JP3853698B2 (ja) クライアント接続管理システム、アクセスポイント管理装置、プログラム及びクライアント接続管理方法
JP6069474B2 (ja) ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP5858973B2 (ja) ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP5394704B2 (ja) 情報通信システム、及びソフトウェア更新方法
JP6057879B2 (ja) ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP5940566B2 (ja) ネットワークシステム、常時接続方法、サーバ、電子機器、プログラム
JP6000231B2 (ja) ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム
JP5896975B2 (ja) ネットワークシステム、データ通信方法、電子機器、およびプログラム
KR20120070893A (ko) 유피엔피에서 스마트 그리드를 이용하여 정보 교환을 수행하기 위한 방법
KR100640826B1 (ko) 홈 네트워크 장치 제어 방법
JP2017068511A (ja) 機器管理方法及び機器管理装置
JP7273695B2 (ja) ネットワークシステム、電気機器、およびプログラム
JP2011118634A (ja) 端末管理装置およびその制御方法
JP2013105187A (ja) 中継通信システム、中継サーバ及び中継通信方法
JP2004266689A (ja) 内部ネットワークに接続される機器を制御する方法、中継制御装置および中継制御プログラム
JP6215089B2 (ja) 機器情報収集システム及び機器情報収集方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151026

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151215

R150 Certificate of patent or registration of utility model

Ref document number: 5858973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees