(57)【要約】【課題】一般的にネットワークシステムの可用性を高めるためにネットワークシステムの各部の冗長化を行うことが多い。しかしながら、常時接続サーバを冗長化した場合には、通常のサーバを冗長化した場合とは異なる問題が生じる。常時接続サーバを冗長化した場合に生じる問題を解決する。【解決手段】複数の常時接続サーバと、複数の常時接続サーバの少なくともいずれかと常時接続可能な電子機器とを備えるネットワークシステムが提供される。電子機器は、複数の常時接続サーバのいずれかから複数の常時接続サーバの少なくともいずれかに関する情報を取得し、情報に基づいて複数の常時接続サーバのいずれかとの常時接続を開始する。【選択図】図６
2015103124.tif 000002
【特許請求の範囲】
【請求項１】
複数の常時接続サーバと、
前記複数の常時接続サーバの少なくともいずれかと常時接続可能な電子機器とを備え、
前記電子機器は、前記複数の常時接続サーバのいずれかから前記複数の常時接続サーバの少なくともいずれかに関する情報を取得し、前記情報に基づいて前記複数の常時接続サーバのいずれかとの常時接続を開始する、ネットワークシステム。
【請求項２】
前記常時接続サーバは、前記複数の常時接続サーバのリストを取得する、請求項１に記載のネットワークシステム。
【請求項３】
前記常時接続サーバは、前記情報として前記リストを送信し、
前記電子機器は、前記リストに基づいて前記複数の常時接続サーバから１つの常時接続サーバを選択する、請求項２に記載のネットワークシステム。
【請求項４】
前記常時接続サーバは、
前記リストに基づいて前記複数の常時接続サーバから１つの常時接続サーバを選択し、
前記情報として、前記１つの常時接続サーバを特定する情報を前記電子機器に送信する、請求項２に記載のネットワークシステム。
【請求項５】
前記常時接続サーバは、前記電子機器からの要求を受けたときに前記リストを取得する、請求項２から４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記常時接続サーバは、定期的に前記リストを取得する、請求項２から４のいずれか１項に記載のネットワークシステム。
【請求項７】
前記常時接続サーバは、前記リストとして、複数の稼働中の常時接続サーバのリストを取得する、請求項２から６のいずれか１項に記載のネットワークシステム。
【請求項８】
前記常時接続サーバは、前記リストとして、接続中の電子機器の数に基づいて前記複数の常時接続サーバがソートされたリストを作成する、請求項２から７のいずれか１項に記載のネットワークシステム。
【請求項９】
前記常時接続サーバは、前記リストとして、負荷に基づいて前記複数の常時接続サーバがソートされたリストを作成する、請求項２から７のいずれか１項に記載のネットワークシステム。
【請求項１０】
複数の常時接続サーバのいずれかが、前記複数の常時接続サーバに関する情報を電子機器に送信するステップと、
前記電子機器が、前記情報に基づいて前記複数の常時接続サーバのいずれかとの常時接続を開始するステップとを備える、常時接続方法。
【請求項１１】
複数の常時接続サーバのいずれかと常時接続するための通信インターフェイスと、
前記通信インターフェイスを利用することによって、前記複数の常時接続サーバのいずれかから前記複数の常時接続サーバに関する情報を取得し、前記情報に基づいて前記複数の常時接続サーバのいずれかとの常時接続を開始するためのプロセッサとを備える、電子機器。
【請求項１２】
電子機器と通信するための通信インターフェイスと、
複数の常時接続サーバに関する情報を記憶するメモリと、
前記電子機器からの要求に応じて、前記通信インターフェイスを利用することによって、前記複数の常時接続サーバに関する情報を前記電子機器に送信するためのプロセッサとを備える、サーバ。
【請求項１３】
プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムであって、
前記通信インターフェイスを利用することによって、複数の常時接続サーバのいずれかから前記複数の常時接続サーバに関する情報を取得するステップと、
前記通信インターフェイスを利用することによって、前記情報に基づいて前記複数の常時接続サーバのいずれかとの常時接続を開始するステップとを前記プロセッサに実行させる、プログラム。
【請求項１４】
プロセッサとメモリと通信インターフェイスとを含むサーバで利用されるプログラムであって、
前記通信インターフェイスを利用して、複数の常時接続サーバに関する情報を取得するステップと、
電子機器からの要求に応じて、前記通信インターフェイスを利用することによって、前記複数の常時接続サーバに関する情報を前記電子機器に送信するステップとを前記プロセッサに実行させる、プログラム。
【請求項１５】
電子機器と、
前記電子機器と常時接続可能な複数の常時接続サーバと、
前記複数の常時接続サーバのいずれかを介して前記電子機器と情報を送受信するアプリケーションサーバと、
前記アプリケーションサーバからのデータを前記複数の常時接続サーバに割り振る負荷分散サーバとを備え、
前記複数の常時接続サーバの各々は、前記データの送信先に指定されている前記電子機器と常時接続中の他の常時接続サーバに前記データを転送する、ネットワークシステム。
【請求項１６】
前記複数の常時接続サーバと複数の電子機器との常時接続関係を格納するデータベースをさらに備え、
前記データを割り振られた前記複数の常時接続サーバの各々は、前記データベースを参照することによって、前記データの送信先に指定されている前記電子機器と常時接続中の他の常時接続サーバを特定する、請求項１５に記載のネットワークシステム。
【請求項１７】
前記常時接続サーバの各々は、前記複数の常時接続サーバと複数の電子機器との常時接続関係を格納し、
前記データを割り振られた前記複数の常時接続サーバの各々は、前記常時接続関係を参照することによって、前記データの送信先に指定されている前記電子機器と常時接続中の他の常時接続サーバを特定する、請求項１５に記載のネットワークシステム。
【請求項１８】
アプリケーションサーバが負荷分散サーバにデータを送信するステップと、
前記負荷分散サーバが、前記データを複数の常時接続サーバのいずれかに割り振るステップと、
前記複数の常時接続サーバのいずれかが、前記データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバに前記データを転送するステップとを備える、常時接続方法。
【請求項１９】
電子機器と常時接続するための通信インターフェイスと、
前記通信インターフェイスを利用することによって、負荷分散されたデータを受信し、前記データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバに前記データを転送するプロセッサとを備える、サーバ。
【請求項２０】
電子機器と常時接続するための通信インターフェイスとプロセッサとを含む常時接続サーバで利用されるプログラムであって、
前記通信インターフェイスを利用することによって、負荷分散されたデータを受信するステップと、
前記通信インターフェイスを利用することによって、前記データの送信先に指定されている前記電子機器と常時接続中の他の常時接続サーバに前記データを転送するステップとを前記プロセッサに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器同士を常時接続するための技術に関し、特にクライアントとサーバとを常時接続するネットワークシステム、常時接続方法、電子機器、サーバ、プログラムに関する。
【背景技術】
【０００２】
従来から、通信機器が互いに相手にデータを送信するための様々な技術が知られている。たとえば、特開２０１０−２７７４９２号公報（特許文献１）には、電子会議サーバおよびコンピュータプログラムが開示されている。特開２０１０−２７７４９２号公報（特許文献１）によると、ウェブ・アプリケーションにて電子会議システムを提供する場合にリアルタイム性を確保可能とすること、および電子会議システムの運用に付随した未解決課題の管理などを実現する。具体的には、アプリケーションサーバは、Ｃｏｍｅｔサーバが各電子機器からのＨＴＴＰリクエストを受信して保留状態となるように制御する。ある電子機器からメッセージデータをアプリケーションサーバが受信したら、アプリケーションサーバが会議データベースから必要データを引き出してメッセージデータとともに該当する電子機器へＣｏｍｅｔサーバから送信する。送信後は前記アプリケーションサーバが各電子機器からのＨＴＴＰリクエストを受信して再び保留状態となるように制御する。
【０００３】
しかしながら、Ｃｏｍｅｔでは、通信のたびにＨＴＴＰセッションが必要となるため、クライアントとサーバとの間で何度も同じデータをやり取りする必要があった。そこで、近年では、ＴＣＰ（Transmission Control Protocol）上で動作するＷｅｂＳｏｃｋｅｔという技術が開発されている。ＷｅｂＳｏｃｋｅｔは、インターネットの標準化団体であるＷ３ＣとＩＥＴＦがウェブサーバとウェブブラウザとの間の双方向通信用の技術規格である。ＷｅｂＳｏｃｋｅｔプロトコルの仕様はＲＦＣ（Request For Comment）６４５５に規定されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２７７４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般的にネットワークシステムの可用性を高めるためにネットワークシステムの各部の冗長化を行うことが多い。しかしながら、常時接続サーバを冗長化した場合には、通常のサーバを冗長化した場合とは異なる問題が生じる。
【０００６】
本発明は、かかる問題を解決するためになされたものであり、その目的は、常時接続サーバを冗長化した場合に生じる問題を解決することにある。
【課題を解決するための手段】
【０００７】
この発明のある態様に従うと、複数の常時接続サーバと、複数の常時接続サーバの少なくともいずれかと常時接続可能な電子機器とを備えるネットワークシステムが提供される。電子機器は、複数の常時接続サーバのいずれかから複数の常時接続サーバの少なくともいずれかに関する情報を取得し、情報に基づいて複数の常時接続サーバのいずれかとの常時接続を開始する。
【０００８】
好ましくは、常時接続サーバは、複数の常時接続サーバのリストを取得する。
【０００９】
好ましくは、常時接続サーバは、情報としてリストを送信する。電子機器は、リストに基づいて複数の常時接続サーバから１つの常時接続サーバを選択する。
【００１０】
好ましくは、常時接続サーバは、リストに基づいて複数の常時接続サーバから１つの常時接続サーバを選択し、情報として、１つの常時接続サーバを特定する情報を電子機器に送信する。
【００１１】
好ましくは、常時接続サーバは、電子機器からの要求を受けたときにリストを取得する。
【００１２】
好ましくは、常時接続サーバは、定期的にリストを取得する。
【００１３】
好ましくは、常時接続サーバは、リストとして、複数の稼働中の常時接続サーバのリストを取得する。
【００１４】
好ましくは、常時接続サーバは、リストとして、接続中の電子機器の数に基づいて複数の常時接続サーバがソートされたリストを作成する。
【００１５】
好ましくは、常時接続サーバは、リストとして、負荷に基づいて複数の常時接続サーバがソートされたリストを作成する。
【００１６】
この発明の別の態様に従うと、複数の常時接続サーバのいずれかが、複数の常時接続サーバに関する情報を電子機器に送信するステップと、電子機器が、情報に基づいて複数の常時接続サーバのいずれかとの常時接続を開始するステップとを備える、常時接続方法が提供される。
【００１７】
この発明の別の態様に従うと、複数の常時接続サーバのいずれかと常時接続するための通信インターフェイスと、通信インターフェイスを利用することによって、複数の常時接続サーバのいずれかから複数の常時接続サーバに関する情報を取得し、情報に基づいて複数の常時接続サーバのいずれかとの常時接続を開始するためのプロセッサとを備える、電子機器が提供される。
【００１８】
この発明の別の態様に従うと、電子機器と通信するための通信インターフェイスと、複数の常時接続サーバに関する情報を記憶するメモリと、電子機器からの要求に応じて、通信インターフェイスを利用することによって、複数の常時接続サーバに関する情報を電子機器に送信するためのプロセッサとを備える、サーバが提供される。
【００１９】
この発明の別の態様に従うと、プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、複数の常時接続サーバのいずれかから複数の常時接続サーバに関する情報を取得するステップと、通信インターフェイスを利用することによって、情報に基づいて複数の常時接続サーバのいずれかとの常時接続を開始するステップとをプロセッサに実行させる。
【００２０】
この発明の別の態様に従うと、プロセッサとメモリと通信インターフェイスとを含むサーバで利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用して、複数の常時接続サーバに関する情報を取得するステップと、電子機器からの要求に応じて、通信インターフェイスを利用することによって、複数の常時接続サーバに関する情報を電子機器に送信するステップとをプロセッサに実行させる。
【００２１】
この発明の別の態様に従うと、電子機器と、電子機器と常時接続可能な複数の常時接続サーバと、複数の常時接続サーバのいずれかを介して電子機器と情報を送受信するアプリケーションサーバと、アプリケーションサーバからのデータを複数の常時接続サーバに割り振る負荷分散サーバとを備えるネットワークシステムが提供される。複数の常時接続サーバの各々は、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバにデータを転送する。
【００２２】
好ましくは、ネットワークシステムは、複数の常時接続サーバと複数の電子機器との常時接続関係を格納するデータベースをさらに備える。データを割り振られた複数の常時接続サーバの各々は、データベースを参照することによって、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバを特定する。
【００２３】
好ましくは、常時接続サーバの各々は、複数の常時接続サーバと複数の電子機器との常時接続関係を格納する。データを割り振られた複数の常時接続サーバの各々は、常時接続関係を参照することによって、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバを特定する。
【００２４】
この発明の別の態様に従うと、アプリケーションサーバが負荷分散サーバにデータを送信するステップと、負荷分散サーバが、データを複数の常時接続サーバのいずれかに割り振るステップと、複数の常時接続サーバのいずれかが、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバにデータを転送するステップとを備える、常時接続方法が提供される。
【００２５】
この発明の別の態様に従うと、電子機器と常時接続するための通信インターフェイスと、通信インターフェイスを利用することによって、負荷分散されたデータを受信し、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバにデータを転送するプロセッサとを備える、サーバが提供される。
【００２６】
この発明の別の態様に従うと、電子機器と常時接続するための通信インターフェイスとプロセッサとを含む常時接続サーバで利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、負荷分散されたデータを受信するステップと、通信インターフェイスを利用することによって、データの送信先に指定されている電子機器と常時接続中の他の常時接続サーバにデータを転送するステップとをプロセッサに実行させる。
【発明の効果】
【００２７】
以上のように、この発明によれば、常時接続サーバを冗長化した場合に生じる問題を解決できる。
【図面の簡単な説明】
【００２８】
【図１】本実施の形態にかかるネットワークシステム１の全体構成を示すイメージ図である。
【図２】本実施の形態にかかるクライアント１００のハードウェア構成を表わすブロック図である。
【図３】本実施の形態にかかる常時接続サーバ２００のハードウェア構成を表わすブロック図である。
【図４】本実施の形態にかかるアプリケーションサーバ３００のハードウェア構成を表わすブロック図である。
【図５】本実施の形態にかかる負荷分散サーバ４００のハードウェア構成を表わすブロック図である。
【図６】本実施の形態にかかるネットワークシステム１全体の機能構成を示すブロック図である。
【図７】本実施の形態にかかるネットワークシステム１における常時接続に関する装置間のデータのやり取りの処理手順を示すシーケンス図である。
【図８】本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第１のイメージ図である。
【図９】本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第２のイメージ図である。
【図１０】本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第３のイメージ図である。
【図１１】本実施の形態にかかる負荷分散サーバ６００のハードウェア構成を表わすブロック図である。
【図１２】本実施の形態にかかるネットワークシステム１Ｂ全体の機能構成を示すブロック図である。
【図１３】本実施の形態にかかる対応関係ＤＢ５００のデータ構造を示すイメージ図である。
【発明を実施するための形態】
【００２９】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００３０】
また、以下では、常時接続の一例として、ＷｅｂＳｏｃｋｅｔプロトコルを利用した通信について説明する。しかしながら、アプリケーションサーバから任意のタイミングでクライアントにデータをプッシュできればよく、本発明はＷｅｂＳｏｃｋｅｔプロトコルを利用する常時接続に限定されるものではない。
＜第１の実施の形態＞
＜ネットワークシステムの全体構成＞
【００３１】
まず、本実施の形態にかかるネットワークシステム１の全体構成について説明する。図１は、本実施の形態にかかるネットワークシステム１の全体構成を示すイメージ図である。
【００３２】
図１を参照して、本実施形態にかかるネットワークシステム１は、住居またはオフィスなどに配置される複数の家電１００Ａ，１００Ｄと、ネットワークを介して家電１００Ａ，１００Ｄと接続される複数の常時接続サーバ２００Ａ，２００Ｂと、家電１００Ａ，１００Ｄに関する様々なサービスを提供する複数のアプリケーションサーバ３００Ａ，３００Ｂと、常時接続サーバ２００Ａ，２００Ｂにかかる負荷を分散するための負荷分散サーバ４００とを含む。
【００３３】
なお、以下では、常時接続サーバ２００Ａ，２００Ｂが２つの場合について説明するが、常時接続サーバは１つであってもよいし３つ以上であっても良い。アプリケーションサーバも１つであってもよいし３つ以上であっても良い。家電も１つであってもよいし３つ以上であってもよい。負荷分散装置は２つ以上であってもよい。
【００３４】
ここで、家電としては、たとえば、掃除機１００Ａ、エアコン１００Ｄ、テレビ、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、ＩＨ（Induction Heating）クッキングヒーター、などが挙げられる。さらに、家電は、住居内またはオフィス内の通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のＡＶ機器、インターホンシステムなどを含んでもよい。また、常時接続サーバ２００Ａ，２００Ｂとアプリケーションサーバ３００Ａ，３００Ｂと負荷分散サーバ４００とは、家電と同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
【００３５】
また、家電と各サーバ間は、光ファイバ等の回線を経由し、途中に、光回線終端装置、無線ＬＡＮ通信を行うためのアクセスポイント、ルータ等が接続されてもよい。家電は、ネットワークに接続する手段として、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃなどの無線ＬＡＮ通信、あるいは、有線ＬＡＮなどが用いられるが、接続方法はこれらに限定されるものではない。
【００３６】
そして、本実施の形態においては、掃除機１００Ａおよびエアコン１００Ｄの各々が、常時接続サーバ２００Ａ，２００Ｂのいずれかと常時接続される。これによって、掃除機用のアプリケーションサーバ３００Ａおよびエアコン用のアプリケーションサーバ３００Ｂは、常時接続サーバ２００Ａ，２００Ｂを介して任意のタイミングで掃除機１００Ａおよびエアコン１００Ｄにデータをプッシュ送信することができる。
【００３７】
すなわち、本実施形態にかかるネットワークシステム１では、多数の家電の各々が、自身に適したサービスを提供する複数のアプリケーションサーバの全てと、直接的に常時接続する必要がない。また、逆に、複数のアプリケーションサーバの各々が、対応する複数の家電の全てと、直接的に常時接続する必要がない。
＜ネットワークシステムの動作概要＞
【００３８】
次に、本実施の形態にかかるネットワークシステム１の動作概要について説明する。なお、以下では、説明の重複をさけるために、掃除機１００Ａ、エアコン１００Ｄなどの家電を総称して、クライアント１００ともいう。同様に、ノード１の常時接続サーバ２００Ａと、ノード２の常時接続サーバ２００Ｂとを総称して、常時接続サーバ２００ともいう。同様に、掃除機用のアプリケーションサーバ３００Ａおよびエアコン用のアプリケーションサーバ３００Ｂなどのように、各種のサービスをクライアント１００およびユーザなどに提供するためのアプリケーションサーバを総称して、アプリケーションサーバ３００ともいう。
【００３９】
図１を参照して、掃除機１００Ａは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、ノード１としての常時接続サーバ２００Ａと常時接続する。これによって、掃除機１００Ａは、常時接続サーバ２００Ａを介して、掃除機用のアプリケーションサーバ３００Ａにデータを送信することができる。逆に、掃除機用のアプリケーションサーバ３００Ａも、任意のタイミングで常時接続サーバ２００Ａを介して、掃除機１００Ａにデータをプッシュすることができる。
【００４０】
同様に、エアコン１００Ｄは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、ノード２としての常時接続サーバ２００Ｂと常時接続する。すなわち、エアコン１００Ｄは、常時接続サーバ２００Ｂを介して、エアコン用のアプリケーションサーバ３００Ｂにデータを送信することができる。逆に、エアコン用のアプリケーションサーバ３００Ｂも、任意のタイミングで常時接続サーバ２００Ｂを介して、掃除機エアコン１００Ｄにデータをプッシュすることができる。
【００４１】
本実施形態においては、常時接続サーバ２００Ａ，２００Ｂとアプリケーションサーバ３００Ａ，３００Ｂの間に、負荷分散サーバ４００が配備される。負荷分散サーバ４００は、複数の常時接続サーバ２００Ａ，２００Ｂの一部のみに大きな負荷がかかり、複数の常時接続サーバ２００Ａ，２００Ｂの他の部分に小さな負荷しかからないという状況を避けるために利用される。
【００４２】
たとえば、負荷分散サーバ４００は、アプリケーションサーバ３００Ａ，３００Ｂのいずれかからデータを受信したときに、常時接続サーバ２００Ａ，２００Ｂの負荷を調べる。そして、負荷分散サーバ４００は、負荷が少ない方の常時接続サーバ２００に当該データを送信する。
【００４３】
本実施形態においては、常時接続サーバ２００Ａは、負荷分散サーバ４００からデータを受信したときに、当該データが常時接続サーバ２００Ａと常時接続中の家電１００Ａに向けたものであるかを判断する。そして、当該データが常時接続サーバ２００Ａと常時接続中の家電１００Ａに向けたものである場合、常時接続サーバ２００Ａは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、当該データを家電１００Ａに送信する。
【００４４】
一方、当該データが自身と常時接続中の家電１００Ａに向けたものでない場合、常時接続サーバ２００Ａは、当該データの送信先としての家電１００Ｂが常時接続中の常時接続サーバ２００Ｂを特定する。常時接続サーバ２００Ａは、当該データを、送信先に指定された家電１００Ｂと常時接続中の常時接続サーバ２００Ｂへと転送する。常時接続サーバ２００Ｂは、当該データが自身と常時接続中の家電１００Ｂに向けたものであるため、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、当該データを家電１００Ｂに送信する。
【００４５】
このように、本実施形態にかかるネットワークシステム１では、クライアント１００が常時接続サーバ２００と常時接続するシステムであるにかかわらず、負荷分散サーバ４００が複数の常時接続サーバ２００にかかる負荷を分散することができる。
【００４６】
以下、このような機能を実現するためのネットワークシステム１の具体的な構成について詳述する。
＜クライアント１００のハードウェア構成＞
【００４７】
まず、クライアント１００のハードウェア構成の一態様について説明する。図２は、本実施の形態にかかるクライアント１００のハードウェア構成を表わすブロック図である。
【００４８】
図２を参照して、クライアント１００は、主たる構成要素として、ＣＰＵ１１０と、メモリ１２０と、入出力部１３０と、家電制御回路１５０と、通信インターフェイス１６０とを含む。
【００４９】
ＣＰＵ１１０は、メモリ１２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、クライアント１００の各部を制御する。より詳細には、ＣＰＵ１１０は、メモリ１２０のプログラムを実行することによって後述するクライアントＡＰＰおよびクライアントＡＰＩ１１２（図７および図１２を参照。）として動作する。より詳細には、クライアントＡＰＰは、クライアント１００の各部を制御する。クライアントＡＰＩ１１２は、後述する通信インターフェイスを介して、ＨＴＴＰプロトコルを使用して通信したり、ＨＴＴＰプロトコル上で利用されるＷｅｂＳｏｃｋｅｔプロトコルを使用して通信したりする。
【００５０】
メモリ１２０は、各種のＲＡＭ（Random  Access  Memory）、各種のＲＯＭ（Read-Only  Memory）や、フラッシュメモリーなどによって実現される。なお、メモリ１２０は、インターフェイスを介して利用される、ＵＳＢ（Universal  Serial  Bus）（登録商標）メモリ、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disk）、メモリカード、ハードディスク、ＩＣ（Integrated  Circuit）カード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable Read Only Memory）、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの記憶媒体などによっても実現される。
【００５１】
メモリ１２０は、ＣＰＵ１１０によって実行されるプログラムや、ＣＰＵ１１０によるプログラムの実行により生成されたデータ、入出力部１３０を介して入力されたデータ、掃除機またはエアコンなどのようなクライアントとして動作するＡＰＰ（Application software）データ、クライアントＡＰＰとデータをやり取りしながら常時接続サーバ２００と通信するためのＡＰＩ（Application Programming Interface）データを記憶する。ＡＰＰデータは、アプリケーションサーバ３００と情報を送受信するためのサービス接続情報を含む。ＡＰＩデータは、ＷｅｂＳｏｃｋｅｔクライアントＡＰＩ設定情報と、認証情報と、接続先サービス設定情報と、接続状態情報とを含む。
【００５２】
入出力部１３０は、ユーザからの命令を受け付けて、当該命令をＣＰＵ１１０に入力する。また、入出力部１３０は、ＣＰＵ１１０からの信号に基づいて、文字や画像を出力する。
【００５３】
家電制御回路１５０は、ＣＰＵ１１０からの信号に基づいて、家電としてのクライアントの各部（モータなど）を制御する。
【００５４】
通信インターフェイス１６０は、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃなどの無線ＬＡＮ通信、ＺｉｇＢｅｅ(登録商標)、ＢｌｕｅＴｏｏｔｈ（登録商標）、あるいは、イーサネット（登録商標）などの有線ＬＡＮなどの通信モジュールによって実現される。通信インターフェイス１６０は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。ＣＰＵ１１０は、通信インターフェイス１６０を介して、他の装置からプログラム、制御命令、画像データ、テキストデータなどを受信したり、他の装置にテキストデータ、画像データなどを送信したりする。
＜常時接続サーバ２００のハードウェア構成＞
【００５５】
次に、常時接続サーバ２００のハードウェア構成の一態様について説明する。図３は、本実施の形態にかかる常時接続サーバ２００のハードウェア構成を表わすブロック図である。
【００５６】
図３を参照して、常時接続サーバ２００は、主たる構成要素として、ＣＰＵ２１０と、メモリ２２０と、入出力部２３０と、通信インターフェイス２６０とを含む。常時接続サーバ２００のハードウェア構成は、クライアント１００のハードウェア構成と比較して、家電の各部を制御するための家電制御回路１５０を有さない点、ＣＰＵ２１０の動作、メモリ２２０に格納されているデータに関して異なる。以下では、ＣＰＵ２１０の動作とメモリ２２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【００５７】
ＣＰＵ２１０は、メモリ２２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、常時接続サーバ２００の各部を制御する。具体的には、ＣＰＵ２１０は、メモリ２２０に記憶されているプログラムを実行することによって、後述するＷＳサーバコア２１２，２１２Ａ，２１２Ｂ（図６、図７、図１２を参照。）およびＷＳ接続バランシング機能２１１，２１１Ａ，２１１Ｂ（図６、図７、図１２を参照。）として動作する。ＷＳサーバコア２１２は、ソフトウェアとしての常時接続サーバのことを言い、ＷｅｂＳｏｃｋｅｔプロトコルを使用してクライアント１００との常時接続通信を制御したり、ＨＴＴＰプロトコルを使用して負荷分散サーバ４００または複数のアプリケーションサーバ３００との通信を制御したりする。
【００５８】
メモリ２２０は、ＣＰＵ２１０によって実行されるプログラムや、ＣＰＵ２１０によるプログラムの実行により生成されたデータ、入出力部２３０を介して入力されたデータ、サービスマスタ情報、一時認証情報、接続状態管理情報、接続グループ情報、接続グループ参加情報などを記憶する。
＜アプリケーションサーバ３００のハードウェア構成＞
【００５９】
次に、アプリケーションサーバ３００のハードウェア構成の一態様について説明する。図４は、本実施の形態にかかるアプリケーションサーバ３００のハードウェア構成を表わすブロック図である。
【００６０】
図４を参照して、アプリケーションサーバ３００は、主たる構成要素として、ＣＰＵ３１０と、メモリ３２０と、入出力部３３０と、通信インターフェイス３６０とを含む。アプリケーションサーバ３００のハードウェア構成は、常時接続サーバ２００のハードウェア構成と比較して、ＣＰＵ３１０の動作、メモリ３２０に格納されているデータに関して異なる。よって、以下では、ＣＰＵ３１０の動作と、メモリ３２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【００６１】
ＣＰＵ３１０は、メモリ３２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、アプリケーションサーバ３００の各部を制御する。具体的には、ＣＰＵ３１０は、メモリ３２０に記憶されているプログラムを実行することによって、後述するサーバＡＰＰ３１１Ａ、３１１Ｂ（図６を参照。）およびサーバＡＰＩ３１２，３１２Ａ，３１２Ｂ（図６、図７を参照。）として動作する。
【００６２】
サーバＡＰＰ３１１Ａ，３１１Ｂは、ソフトウェアとしてのアプリケーションサーバのことを言い、クライアント１００やスマートフォン５００などにサービスを提供する。サーバＡＰＩ３１２，３１２Ａ，３１２Ｂは、ＨＴＴＰプロトコルを利用した負荷分散サーバ４００または常時接続サーバ２００との通信を制御する。
【００６３】
メモリ３２０は、ＣＰＵ３１０によって実行されるプログラムや、ＣＰＵ３１０によるプログラムの実行により生成されたデータ、キーボード３３０を介して入力されたデータ、アプリケーションサーバ３００として動作するＡＰＰデータ、サーバＡＰＰとデータをやり取りしながら常時接続サーバ２００と通信するためのＡＰＩデータを記憶する。ＡＰＰデータは、自身が管理すべきクライアント１００に関する情報を含むクライアント情報と、常時接続中のクライアント１００との接続に関するクライアント接続情報と、新たに常時接続を開始するための接続確率テンポラリ情報とを含む。ＡＰＩデータは、ＷｅｂＳｏｃｋｅｔサーバＡＰＩ設定情報と、認証管理情報と、サービス設定情報と、クライアント接続状態情報とを含む。
＜対応関係ＤＢ＞
【００６４】
次に、本実施形態にかかるネットワークシステム１で利用される対応関係ＤＢ５００について説明する。図１３は、本実施の形態にかかる対応関係ＤＢ５００のデータ構造を示すイメージ図である。
【００６５】
図１３を参照して、対応関係ＤＢ５００は、クライアント１００とアプリケーションサービスとの組み合わせ毎に、クライアント１００を特定するための接続ＩＤと、アプリケーションサーバ３００が提供するサービスを特定するためのサービスＩＤ（アプリケーション定義データともいう。）と、常時接続サーバ２００を特定するためのノード名（常時接続サーバ２００のアドレスに対応付けられてもよいし、常時接続サーバ２００のアドレスそのものであってもよい。）と、常時接続の開示時刻と、常時接続の利用回数との対応関係を含む。そして、対応関係ＤＢ５００は、本実施形態にかかるネットワークシステム１に含まれる複数のアプリケーションサーバ３００および複数の常時接続サーバ２００から参照可能になっている。
＜負荷分散サーバ４００のハードウェア構成＞
【００６６】
次に、負荷分散サーバ４００のハードウェア構成の一態様について説明する。図５は、本実施の形態にかかる負荷分散サーバ４００のハードウェア構成を表わすブロック図である。
【００６７】
図５を参照して、負荷分散サーバ４００は、主たる構成要素として、ＣＰＵ４１０と、メモリ４２０と、キーボード４３０と、ディスプレイ４４０と、通信インターフェイス４６０とを含む。負荷分散サーバ４００のハードウェア構成は、常時接続サーバ２００のハードウェア構成と比較して、ＣＰＵ４１０の動作、メモリ４２０に格納されているデータに関して異なる。よって、以下では、ＣＰＵ４１０の動作と、メモリ４２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【００６８】
ＣＰＵ４１０は、メモリ４２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、負荷分散サーバ４００の各部を制御する。具体的には、ＣＰＵ４１０は、メモリ４２０に記憶されているプログラムを実行することによって、後述するロードバランサ機能４１１（図６および図７を参照。）を実現する。
【００６９】
メモリ４２０は、ＣＰＵ４１０によって実行されるプログラムや、ＣＰＵ４１０によるプログラムの実行により生成されたデータ、キーボード４３０を介して入力されたデータ、負荷分散サーバ４００として動作するための常時接続サーバリストおよび常時接続サーバ負荷状態とを記憶する。常時接続サーバリストは、現在、負荷分散サーバ４００と通信可能な常時接続サーバ２００毎のアドレスを格納する。常時接続サーバ負荷状態は、現在、負荷分散サーバ４００と通信可能な常時接続サーバ２００毎にかかっている負荷を格納する。
＜ネットワークシステム１の機能構成＞
【００７０】
次に、本実施の形態にかかるネットワークシステム１全体の機能構成について説明する。図６は、本実施の形態にかかるネットワークシステム１全体の機能構成を示すブロック図である。なお、以下では、説明を解りやすくするために、家電として、クライアント１００Ａ〜１００Ｆが常時接続されているものとする。
【００７１】
図６を参照して、クライアント１００Ａ〜１００Ｃは、ＷｅｂＳｏｃｋｅｔプロトコルを使用してノード１としての常時接続サーバ２００Ａと常時接続している。クライアント１００Ｄ〜１００Ｆは、ＷｅｂＳｏｃｋｅｔプロトコルを使用してノード２としての常時接続サーバ２００Ｂと常時接続している。なお、クライアント１００Ａ〜１００Ｆは、ＨＴＴＰプロトコルを使用して常時接続サーバ２００Ａ，２００Ｂおよびアプリケーションサーバ３００Ａ，３００Ｂと通信することもできる。
【００７２】
アプリケーションサーバ３００Ａ，３００Ｂの各々に関して、サーバＡＰＰ３１１Ａ，３１１ＢはＣＰＵ３１０によって実現されるものであって、サーバＡＰＩ３１２Ａ，３１２Ｂに他の装置とのデータのやり取りを依頼する。本実施形態においては、ネットワークシステム１は、掃除機１００Ａを制御するためのサーバＡＰＰ３１１Ａと、エアコン１００Ｄを制御するためのサーバＡＰＰ３１１Ｂとを含む。
【００７３】
サーバＡＰＩ３１２Ａ，３１２Ｂは、ＣＰＵ３１０によって実現されるものであって、通信インターフェイス３６０を利用することによって、負荷分散サーバ４００、対応関係ＤＢ５００、他のデータベース９００、スマートフォン７００などとデータの送受信を行う。本実施の形態においては、アプリケーションサーバ３００Ａ，３００Ｂは、常時接続サーバ２００Ａ，２００Ｂを介して、クライアント１００Ａ〜１００Ｆに任意のタイミングでデータを送信できる。
【００７４】
負荷分散サーバ４００に関して、ロードバランサ機能４１１は、ＣＰＵ４１０によって実現されるものであって、複数の常時接続サーバ２００Ａ，２００Ｂから、より小さな負荷がかかっている常時接続サーバ２００Ａ，２００Ｂを選択する。そして、ロードバランサ機能４１１は、アプリケーションサーバ３００Ａ，３００Ｂからのデータを、選択された常時接続サーバ２００Ａ，２００Ｂに送信する。
【００７５】
常時接続サーバ２００Ａ，２００Ｂに関して、ＷＳサーバコア２１２Ａ，２１２Ｂは、ＣＰＵ２１０によって実現されるものであって、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して、クライアント１００Ａ〜１００Ｆと常時接続する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して、他の常時接続サーバ２００、負荷分散サーバ４００、アプリケーションサーバ３００などともデータ通信を行う。
【００７６】
ＷＳ接続バランシング機能２１１Ａ，２１１Ｂは、ＣＰＵ２１０によって実現される。以下では、常時接続サーバ２００ＡのＷＳ接続バランシング機能２１１Ａの機能について説明する。ＷＳ接続バランシング機能２１１Ａは、負荷分散サーバ４００からデータを受信したときに、当該データに含まれる接続ＩＤとサービスＩＤとに基づいて、常時接続サーバ２００Ａと常時接続中のクライアント１００Ａ〜１００Ｃに向けられたものであるか否かを判断する。なお、接続ＩＤは、クライアント１００Ａ〜１００ＦとサーバＡＰＰ３１１Ａ，３１１Ｂとの組み合わせ毎かつサービス毎に設定されるものである。
【００７７】
当該データが常時接続サーバ２００Ａと常時接続中のクライアント１００Ａ〜１００Ｃのいずれかに向けたものである場合、ＷＳ接続バランシング機能２１１Ａは、ＷＳサーバコア２１２Ａに当該データをクライアント１００へ送信するように依頼する。ＷＳサーバコア２１２Ａは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して当該データをクライアント１００に送信する。
【００７８】
一方、当該データが常時接続サーバ２００Ａと常時接続中のクライアント１００Ａ〜１００Ｃに向けられたものでない場合、ＷＳ接続バランシング機能２１１Ａは、当該データの送信先としてのクライアント１００と常時接続中の常時接続サーバ２００Ｂを特定する。具体的には、ＷＳ接続バランシング機能２１１Ａは、ＷＳサーバコア２１２Ａと通信インターフェイス２６０とを介して、外部の対応関係ＤＢ５００にアクセスする。ここで、対応関係ＤＢ５００は、多数のクライアントと複数の常時接続サーバとの接続状態を格納している。ＷＳ接続バランシング機能２１１Ａは、接続ＩＤに対応するクライアント１００Ｄ〜１００Ｆが常時接続中の常時接続サーバ２００Ｂを特定する情報を取得する。ＷＳ接続バランシング機能２１１Ａは、通信インターフェイス２６０を介して、常時接続サーバ２００Ｂにデータと接続ＩＤとを転送する。
【００７９】
常時接続サーバ２００ＢのＷＳサーバコア２１２Ｂは、常時接続サーバ２００Ａから転送されてきたデータを、接続ＩＤに基づいて常時接続サーバ２００Ｂと常時接続中のクライアント１００Ｄ〜１００Ｆのいずれかへとプッシュする。
＜常時接続に関する装置間のデータのやり取り＞
【００８０】
次に、本実施の形態にかかるネットワークシステム１における常時接続に関する装置間のデータのやり取りの概要について説明する。なお、図７は、本実施の形態にかかるネットワークシステム１における常時接続に関する装置間のデータのやり取りの処理手順を示すシーケンス図である。
【００８１】
図７を参照して、クライアント１００によって実現されるクライアントＡＰＩ１１２は、ＨＴＴＰプロトコルを使用して、通信インターフェイス１６０を介して、アプリケーションサーバ３００に認証情報を要求する（ステップＳ００２）。このとき、クライアントＡＰＩ１１２は、アプリケーションサーバ３００に、認証に利用されるクライアントＩＤを送信する。アプリケーションサーバ３００のサーバＡＰＩ３１２は、当該要求に応じてＨＴＴＰプロトコルを使用して、通信インターフェイス３６０を介してクライアント１００に認証情報を送信する（ステップＳ００４）。
【００８２】
サーバＡＰＩ３１２は、通信インターフェイス３６０を介して、常時接続サーバ２００にも認証情報を送信する（ステップＳ００６）。常時接続サーバ２００のＷＳサーバコア２１２は、アプリケーションサーバ３００から受信した認証情報を保存する（ステップＳ００８）。
【００８３】
クライアント１００と常時接続サーバ２００とは、ＨＴＴＰプロトコルを使用して、ＷｅｂＳｏｃｋｅｔを利用した常時接続状態を確立する（ステップＳ０１０、ステップＳ０１２）。具体的には、クライアントＡＰＩ１１２は、ＨＴＴＰプロトコルを使用して、通信インターフェイス１６０を介して常時接続サーバ２００にハンドシェイク要求を送る。ＷＳサーバコア２１２は、通信インターフェイス２６０を介してハンドシェイク応答を返す。これによって、クライアント１００と常時接続サーバ２００との間で、ＷｅｂＳｏｃｋｅｔプロトコルによる常時接続が有効になる。
【００８４】
クライアントＡＰＩ１１２は、通信インターフェイス１６０を介して認証情報を常時接続サーバ２００に送信する（ステップＳ０１４）。ＷＳサーバコア２１２またはＷＳ接続バランシング機能２１１は、クライアント１００からの認証情報と予め保存している認証情報とに基づいて、クライアント１００を認証する（ステップＳ０１６）。認証に成功すると、ＷＳサーバコア２１２またはＷＳ接続バランシング機能２１１は、アプリケーションサーバ３００がクライアント１００を識別するための接続ＩＤを発行する（ステップＳ０１８）。
【００８５】
すなわち、ＷＳサーバコア２１２またはＷＳ接続バランシング機能２１１は、常時接続中のクライアント１００と接続ＩＤとの対応関係を、接続状態管理情報として記憶する。クライアント１００は、接続ＩＤを受信して、記憶する（ステップＳ０２０）。アプリケーションサーバ３００も、接続ＩＤを受信して、記憶する（ステップＳ０２２）。このとき、ＷＳサーバコア２１２またはＷＳ接続バランシング機能２１１は、接続ＩＤと常時接続サーバ２００Ａを特定する情報とアプリケーションサービスを特定する情報とを対応付けて、通信インターフェイス２６０を介して当該対応関係を対応関係ＤＢ５００に登録する。
【００８６】
その後、サーバＡＰＩ３１２は、サーバＡＰＰ３１１からの要求に応じて、データ本体と送り先のクライアント１００を特定するための接続ＩＤとを通信インターフェイス３６０を介して常時接続サーバ２００に送信する（ステップＳ０３２）。
【００８７】
本実施の形態においては、ステップＳ０３３として、アプリケーションサーバ３００からのデータは、負荷分散サーバ４００が受信する。負荷分散サーバ４００のロードバランサ機能４１１は、常時接続サーバ２００のそれぞれの負荷を取得して、当該負荷に基づいてデータを送信すべき常時接続サーバ２００を選択する。ロードバランサ機能４１１は、通信インターフェイス４６０を介して、選択された常時接続サーバ２００にデータを送信する。
【００８８】
たとえば、ロードバランサ機能４１１は、複数の常時接続サーバ２００のうちの、現在かかっている負荷が小さい常時接続サーバ２００に優先的にデータを送信する。あるいは、ロードバランサ機能４１１は、常時接続中のクライアント１００の数が少ない常時接続サーバ２００に優先的にデータを送信してもよい。あるいは、ロードバランサ機能４１１は、ランダムにデータを送信してもよい。
【００８９】
常時接続サーバ２００は、負荷分散サーバ４００からデータ本体と接続ＩＤとを受信する（ステップＳ０３４）。ＷＳ接続バランシング機能２１１は、接続状態管理情報を参照して、接続ＩＤに基づいてクライアント１００を特定する（ステップＳ０３６）。
【００９０】
接続ＩＤに対応するクライアント１００が常時接続サーバ２００と常時接続中である場合、ＷＳ接続バランシング機能２１１はＷＳサーバコア２１２にクライアントへのデータ送信を依頼する。すなわち、ＷＳサーバコア２１２は、ＷｅｂＳｏｃｋｅｔプロトコルを使用して、通信インターフェイス２６０を介して、特定されたクライアント１００にデータ本体を送信する（ステップＳ０３８−１）。クライアント１００は、データ本体を受信する（ステップＳ０４０）。
【００９１】
クライアント１００は、ＷｅｂＳｏｃｋｅｔプロトコルを使用して、受信結果を常時接続サーバ２００に送信する（ステップＳ０４２）。常時接続サーバ２００は、受信結果を受信すると、当該受信結果をアプリケーションサーバ３００に送信する（ステップＳ０４４）。アプリケーションサーバ３００は、受信結果を受信する（ステップＳ０４６）。
【００９２】
一方、接続ＩＤに対応するクライアント１００が常時接続サーバ２００と常時接続中でない場合、ＷＳ接続バランシング機能２１１はＷＳサーバコア２１２に他の常時接続サーバ２００へのデータ転送を依頼する。すなわち、ＷＳ接続バランシング機能２１１は、通信インターフェイス２６０を介して、対応関係ＤＢ５００を参照することによって、接続ＩＤに対応するクライアント１００と常時接続中の他の常時接続サーバ２００を特定する。
【００９３】
ＷＳ接続バランシング機能２１１は、ＷＳサーバコア２１２に他の常時接続サーバ２００へのデータ送信を依頼する。ＷＳサーバコア２１２は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して、特定された常時接続サーバ２００にデータを転送する（ステップＳ０３８−１）。他の常時接続サーバ２００のＷＳサーバコア２１２は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して接続ＩＤに対応するクライアント１００にデータを送信する（ステップＳ０３９）。
【００９４】
このように、本実施形態にかかるネットワークシステム１では、クライアント１００が常時接続サーバ２００と常時接続している最中であっても、負荷分散サーバ４００が複数の常時接続サーバ２００の間で負荷を分散することができる。
＜第２の実施の形態＞
＜ネットワークシステムの全体構成＞
【００９５】
次に、第２の実施の形態について説明する。本実施の形態にかかるネットワークシステム１Ｂは、第１の実施の形態のネットワークシステム１に後述する負荷分散サーバ６００を追加したものである。
【００９６】
まず、本実施の形態にかかるネットワークシステム１Ｂの全体構成について説明する。図８は、本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第１のイメージ図である。図９は、本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第２のイメージ図である。図１０は、本実施の形態にかかるネットワークシステム１Ｂの全体構成と動作概要とを示す第３のイメージ図である。
【００９７】
図８を参照して、ネットワークシステム１Ｂは、住居またはオフィスなどに配置される複数の家電１００Ａ，１００Ｄと、ネットワークを介して家電１００Ａ，１００Ｄと接続される複数の常時接続サーバ２００Ａ，２００Ｂと、家電１００Ａ，１００Ｄに関する様々なサービスを提供する複数のアプリケーションサーバ３００Ａ，３００Ｂと、常時接続サーバ２００Ａ，２００Ｂにかかる負荷を分散するための負荷分散サーバ４００と、クライアント１００が常時接続サーバ２００Ａ，２００Ｂと再接続するための負荷分散サーバ６００とを含む。
【００９８】
なお、以下では、常時接続サーバ２００Ａ，２００Ｂが２つの場合について説明するが、常時接続サーバは１つであってもよいし、３つ以上であっても良い。アプリケーションサーバも１つであってもよいし、３つ以上であっても良い。家電も１つであってもよいし、３つ以上であってもよい。負荷分散装置と常時接続補助サーバは２つ以上であってもよい。
【００９９】
家電、常時接続サーバ、アプリケーションサーバ、負荷分散サーバの定義は、第１の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
【０１００】
そして、本実施の形態においては、掃除機１００Ａおよびエアコン１００Ｄの各々が、常時接続サーバ２００Ａ，２００Ｂのいずれかと常時接続される。これによって、掃除機用のアプリケーションサーバ３００Ａおよびエアコン用のアプリケーションサーバ３００Ｂは、常時接続サーバ２００Ａ，２００Ｂを介して任意のタイミングで掃除機１００Ａおよびエアコン１００Ｄにデータをプッシュ送信することができる。
【０１０１】
すなわち、本実施形態にかかるネットワークシステム１Ｂも、多数の家電の各々が、自身に適したサービスを提供する複数のアプリケーションサーバの全てと、直接的に常時接続する必要がない。また、逆に、複数のアプリケーションサーバの各々が、対応する多数の家電の全てと、直接的に常時接続する必要がない。
＜ネットワークシステムの動作概要＞
【０１０２】
次に、本実施の形態にかかるネットワークシステム１Ｂの動作概要について説明する。なお、以下では、説明の重複をさけるために、掃除機１００Ａ、エアコン１００Ｄなどの家電を総称して、クライアント１００ともいう。同様に、ノード１の常時接続サーバ２００Ａと、ノード２の常時接続サーバ２００Ｂとを総称して、常時接続サーバ２００ともいう。同様に、掃除機用のアプリケーションサーバ３００Ａおよびエアコン用のアプリケーションサーバ３００Ｂなどのような、各種のサービスをクライアント１００およびユーザなどに提供するためのアプリケーションサーバを総称して、アプリケーションサーバ３００ともいう。
【０１０３】
まず、図８を参照して、掃除機１００Ａは、常時接続サーバ２００Ａ，２００Ｂのいずれかと常時接続を開始するために、まず、ＨＴＴＰプロトコルを利用して、負荷分散サーバ６００を介して常時接続サーバ２００に、複数の稼働中の常時接続サーバ２００のアドレスが格納されたノードリストを要求する。
【０１０４】
常時接続サーバ２００は、負荷分散サーバ６００からのノードリスト要求に応じて対応関係ＤＢ５００にノードリストを要求する。あるいは、常時接続サーバは、ノードリスト要求を受け付けた際に、複数の常時接続サーバ２００Ａ，２００Ｂに接続確認用データ（ping）を送信し、その応答に応じてノードリストを作成する。掃除機１００Ａは、常時接続サーバ２００から負荷分散サーバ６００を介して受信した当該ノードリストに基づいて、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、ノード１としての常時接続サーバ２００Ａと常時接続を開始する。
【０１０５】
このようにして、掃除機１００Ａは、常時接続サーバ２００Ａを介して、掃除機用のアプリケーションサーバ３００Ａにデータを送信することができる。逆に、掃除機用のアプリケーションサーバ３００Ａも、常時接続サーバ２００Ａを介して、掃除機１００Ａにデータをプッシュすることができる。
【０１０６】
同様に、エアコン１００Ｄは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、ノード２としての常時接続サーバ２００Ｂと常時接続している。すなわち、エアコン１００Ｄは、常時接続サーバ２００Ｂを介して、エアコン用のアプリケーションサーバ３００Ｂにデータを送信することができる。逆に、エアコン用のアプリケーションサーバ３００Ｂも、常時接続サーバ２００Ｂを介して、掃除機エアコン１００Ｄにデータをプッシュすることができる。
【０１０７】
第１の実施の形態と同様に、本実施形態においても、常時接続サーバ２００Ａ，２００Ｂとアプリケーションサーバ３００Ａ，３００Ｂの間に、負荷分散サーバ４００が配備される。負荷分散サーバ４００は、複数の常時接続サーバ２００Ａ，２００Ｂの一部のみに大きな負荷がかかり、複数の常時接続サーバ２００Ａ，２００Ｂの他の部分に小さな負荷しかからないという状況を避けるために利用される。
【０１０８】
たとえば、負荷分散サーバ４００は、アプリケーションサーバ３００Ａ，３００Ｂのいずれかからデータを受信したときに、常時接続サーバ２００Ａ，２００Ｂの負荷を調べる。そして、負荷分散サーバ４００は、負荷が少ない方の常時接続サーバ２００に優先的にデータを送信する。
【０１０９】
あるいは、負荷分散サーバ４００は、常時接続中のクライアント１００の数が少ない常時接続サーバ２００に優先的にデータを送信してもよい。あるいは、負荷分散サーバ４００は、ランダムにデータを送信してもよい。あるいは、負荷分散サーバ４００と時間帯の常時接続サーバ２００の優先順位を記憶しておき、時間帯ごとに優先順位が高い常時接続サーバ２００に優先的にデータを送信してもよい。
【０１１０】
第１の実施の形態と同様に、本実施形態においても、常時接続サーバ２００Ａは、負荷分散サーバ４００からデータを受信したときに、当該データが常時接続サーバ２００Ａと常時接続中の家電に向けたものであるかを判断する。そして、当該データが常時接続サーバ２００Ａと常時接続中の家電（たとえば、掃除機１００Ａ）に向けたものである場合、常時接続サーバ２００Ａは、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、当該データを掃除機１００Ａに送信する。
【０１１１】
一方、当該データが常時接続サーバ２００Ａと常時接続中の家電に向けたものでない場合、常時接続サーバ２００Ａは、当該データの送信先としての家電（たとえば、エアコン１００Ｄ）が常時接続中の常時接続サーバ２００Ｂを特定する。常時接続サーバ２００Ａは、当該データを、送信先に指定されたエアコン１００Ｂが常時接続中の常時接続サーバ２００Ｂへと転送する。常時接続サーバ２００Ｂは、当該データが自身と常時接続中のエアコン１００Ｂに向けたものであるため、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、当該データをエアコン１００Ｂに送信する。
【０１１２】
ただし、負荷分散サーバ４００が、対応関係ＤＢ５００を参照することによって、データの送信先である家電と常時接続中の常時接続サーバ２００を特定するものであってもよい。この場合、負荷分散サーバ４００が、データの送信先である家電（たとえば、エアコン１００Ｄ）と常時接続中の常時接続サーバ２００Ｂにデータを送信することができるため、常時接続サーバ２００Ａに第１の実施の形態のようなＷＳ接続バランシング機能２１１を搭載する必要がない。
【０１１３】
図９を参照して、掃除機１００Ａと常時接続中の常時接続サーバ２００Ａが正常に稼働しなくなる場合がある。すなわち、掃除機１００Ａが常時接続サーバ２００Ａと常時接続通信を行えなくなる場合がある。
【０１１４】
このような場合は、図１０を参照して、掃除機１００Ａは、他の常時接続サーバ２００Ｂと常時接続を開始するために、まず、ＨＴＴＰプロトコルを利用して、負荷分散サーバ６００を介して常時接続サーバ２００のいずれかに、複数の稼働中の常時接続サーバ２００のアドレスが格納されたノードリストを要求する。掃除機１００Ａは、当該ノードリストに基づいて、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、稼働中のノード２としての常時接続サーバ２００Ｂと常時接続を開始する。
【０１１５】
これによって、掃除機１００Ａは、常時接続サーバ２００Ｂを介して、再度、掃除機用のアプリケーションサーバ３００Ａにデータを送信することができる。逆に、掃除機用のアプリケーションサーバ３００Ａも、常時接続サーバ２００Ｂを介して、再度、掃除機１００Ａにデータをプッシュすることができる。
【０１１６】
このように、本実施形態にかかるネットワークシステム１Ｂでは、クライアントが１つの常時接続サーバと通信できなくなった場合でも、アプリケーションサーバが別の常時接続サーバを介してクライアントに情報をプッシュできるようにすることができる。なお、本実施形態にかかるネットワークシステム１Ｂにおいても、第１の実施の形態と同様に、クライアント１００が常時接続サーバ２００と常時接続するシステムであるにかかわらず、負荷分散サーバ４００が複数の常時接続サーバ２００にかかる負荷を分散することができる。
【０１１７】
以下、このような機能を実現するためのネットワークシステム１Ｂの具体的な構成について詳述する。
＜クライアント１００のハードウェア構成＞
【０１１８】
クライアント１００のハードウェア構成は、第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜常時接続サーバ２００のハードウェア構成＞
【０１１９】
常時接続サーバ２００のハードウェア構成も、第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜アプリケーションサーバ３００のハードウェア構成＞
【０１２０】
アプリケーションサーバ３００のハードウェア構成も、第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜対応関係ＤＢ＞
【０１２１】
対応関係ＤＢの構成も、第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜負荷分散サーバ４００のハードウェア構成＞
【０１２２】
負荷分散サーバ４００のハードウェア構成も、第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜負荷分散サーバ６００のハードウェア構成＞
【０１２３】
負荷分散サーバ６００のハードウェア構成の一態様について説明する。図１１は、本実施の形態にかかる負荷分散サーバ６００のハードウェア構成を表わすブロック図である。
【０１２４】
図１１を参照して、負荷分散サーバ６００は、主たる構成要素として、ＣＰＵ６１０と、メモリ６２０と、入出力部６３０と、通信インターフェイス６６０とを含む。負荷分散サーバ６００のハードウェア構成は、常時接続サーバ２００のハードウェア構成と比較して、ＣＰＵ６１０の動作、メモリ６２０に格納されているデータに関して異なる。よって、以下では、ＣＰＵ６１０の動作と、メモリ６２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【０１２５】
ＣＰＵ６１０は、メモリ６２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、負荷分散サーバ６００の各部を制御する。具体的には、ＣＰＵ６１０は、メモリ６２０に記憶されているプログラムを実行することによって、ＨＴＴＰプロトコルを利用してクライアント１００および他の装置から受信したデータを複数の常時接続サーバ２００や複数のアプリケーションサーバ３００に割り振る。
【０１２６】
メモリ６２０は、ＣＰＵ６１０によって実行されるプログラムや、ＣＰＵ６１０によるプログラムの実行により生成されたデータ、入出力部６３０を介して入力されたデータ、対応関係ＤＢ５００から取得した稼働中の常時接続サーバ２００の情報を格納するノードリストを記憶する。
＜ネットワークシステム１Ｂの機能構成＞
【０１２７】
次に、本実施の形態にかかるネットワークシステム１Ｂ全体の機能構成について説明する。図１２は、本実施の形態にかかるネットワークシステム１Ｂ全体の機能構成を示すブロック図である。なお、本実施形態にかかるクライアント１００、常時接続サーバ２００、アプリケーションサーバ３００、負荷分散サーバ４００は、第１の実施の形態のそれらが有する機能と同様の機能を有している。よって、以下では、第１の実施の形態と比較して本実施形態にのみ追加された機能について説明する。
【０１２８】
図１２を参照して、クライアントＡＰＩ１１２は、常時接続サーバ２００Ａ，２００Ｂのいずれかと常時接続を開始する際に、通信インターフェイス１６０を利用することによって、負荷分散サーバ６００を介して常時接続サーバ２００Ａ，２００Ｂのいずれかにノードリストを要求する。
【０１２９】
常時接続サーバ２００Ａ，２００ＢのＷＳサーバコア２１２Ａ，２１２Ｂは、予め、あるいはノードリスト要求を受けた際に、対応関係ＤＢ５００から複数の常時接続サーバ２００のアドレスのリスト（ノードリスト）を取得する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、当該ノードリストをクライアント１００に送信する。
【０１３０】
あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、予めメモリ２２０に記憶されている複数の常時接続サーバ２００のアドレスのリストをノードリストとしてクライアント１００に送信する。
【０１３１】
あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、予め、あるいはノードリスト要求を受けた際に、複数の常時接続サーバ２００Ａ，２００Ｂに接続確認用データ（ping）を送信し、その応答に応じて稼働中の常時接続サーバ２００のみのアドレスを含むノードリストを作成する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、当該ノードリストをクライアント１００に送信する。
【０１３２】
あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、予め、あるいはノードリスト要求を受けた際に、複数の常時接続サーバ２００に接続確認用データ（ping）を送信し、その応答として複数の常時接続サーバ２００の負荷および／または接続中のクライアント１００の数を取得する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリストとして、稼働中の常時接続サーバ２００のみに関する、負荷および／または接続中のクライアント１００の数を格納するリストを作成する。あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリストとして、予め登録されている常時接続サーバ２００に関する、負荷および／または接続中のクライアント１００の数を格納するリストを作成する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、当該ノードリストをクライアント１００に送信する。
【０１３３】
あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、予め、あるいはノードリスト要求を受けた際に、常時接続サーバ２００の負荷に基づいて、負荷の小さい順に常時接続サーバ２００をソートしたリストをノードリストとして作成する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、当該ノードリストをクライアント１００に送信する。
【０１３４】
あるいは、ＷＳサーバコア２１２Ａ，２１２Ｂは、予め、あるいはノードリスト要求を受けた際に、常時接続サーバ２００に接続中のクライアント１００の数に基づいて、接続中のクライアントが少ない順に常時接続サーバ２００をソートしたリストをノードリストとして作成する。ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリスト要求を受けた際に、当該ノードリストをクライアント１００に送信する。
【０１３５】
ＷＳサーバコア２１２Ａ，２１２Ｂは、ノードリストをクライアント１００に送信する際に、他の常時接続サーバ２００が参照可能なように、対応関係ＤＢ５００に格納（更新）してもよい。
【０１３６】
クライアントＡＰＩ１１２は、ノードリストに格納されている稼働中の常時接続サーバ２００と接続する。
【０１３７】
そして、再接続可能な常時接続サーバが複数あった時は、例えば、クライアントＡＰＩ１１２は、常時接続サーバ２００でソートされているノードリストの一番目の常時接続サーバ２００を選択する。あるいは、クライアントＡＰＩ１１２は、負荷が最も小さい常時接続サーバ２００を選択する。あるいは、クライアントＡＰＩ１１２は、接続中のクライアント１００の数が最も少ない常時接続サーバ２００を選択する。あるいは、クライアントＡＰＩ１１２は、ランダムに常時接続サーバ２００を選択する。クライアントＡＰＩ１１２は、選択された常時接続サーバ２００と常時接続を開始する。
＜常時接続に関する装置間のデータのやり取り＞
【０１３８】
次に、本実施の形態にかかるネットワークシステム１Ｂにおける常時接続に関する装置間のデータのやり取りの概要について説明する。本実施の形態に係る常時接続に関する装置間のデータのやり取りは、第１の実施の形態のそれと比較して、クライアント１００が常時接続サーバ２００と再接続を開始するときの動作のみが異なる。その他の動作は第１の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
【０１３９】
まず、クライアント１００のクライアントＡＰＩ１１２は、常時接続を開始する際に、負荷分散サーバ６００を介して常時接続サーバ２００のいずれかにノードリストを要求する。クライアントＡＰＩ１１２は、ノードリストを参照して、常時接続する常時接続サーバ２００を選択する。
【０１４０】
図７を参照して、クライアントＡＰＩ１１２は、ＨＴＴＰプロトコルを使用して、通信インターフェイス１６０を介して、アプリケーションサーバ３００に認証情報を要求する（ステップＳ００２）。このとき、クライアントＡＰＩ１１２は、アプリケーションサーバ３００に、認証に利用されるクライアントＩＤと選択された常時接続サーバ２００を特定するための情報とを送信する。アプリケーションサーバ３００のサーバＡＰＩ３１２は、当該要求に応じてＨＴＴＰプロトコルを使用して、通信インターフェイス３６０を介して認証情報を送信する（ステップＳ００４）。
【０１４１】
サーバＡＰＩ３１２は、通信インターフェイス３６０を介して、選択された常時接続サーバ２００にも認証情報を送信する（ステップＳ００６）。常時接続サーバ２００のＷＳサーバコア２１２は、アプリケーションサーバ３００から受信した認証情報を保存する（ステップＳ００８）。これ以降の動作（ステップＳ０１０〜ステップＳ０４６）は第１の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
【０１４２】
本実施形態においては、クライアントＡＰＩ１１２が、常時接続サーバ２００との常時接続通信が行えなくなったときに、再度、負荷分散サーバ６００を介して常時接続サーバ２００に最新のノードリストを要求する。クライアントＡＰＩ１１２は、最新のノードリストを参照して、常時接続する常時接続サーバ２００を選択する。そして、クライアントＡＰＩ１１２は、ステップＳ００２からの処理を繰り返す。
【０１４３】
このように、本実施形態にかかるネットワークシステム１Ｂでは、クライアントが常時接続サーバと通信できなくなった場合でも、アプリケーションサーバがクライアントに情報をプッシュできるようにすることができる。そして、クライアント１００が常時接続サーバ２００と常時接続するシステムであるにもかかわらず、負荷分散サーバ４００が複数の常時接続サーバ２００の間で負荷を分散することができる。
＜第３の実施の形態＞
【０１４４】
上記の第２の実施の形態では、ネットワークシステム１Ｂが、２つの負荷分散サーバ４００，６００とＷＳ接続バランシング機能２１１を含むものであった。
【０１４５】
しかしながら、第３の実施の形態として、ネットワークシステムは、負荷分散サーバ６００のみを含み、負荷分散サーバ４００とＷＳ接続バランシング機能２１１（第１の実施の形態に含まれる部分）を有さない構成であっても良い。すなわち、クライアント１００が常時接続サーバ２００Ａと通信できなくなった場合に、クライアント１００が別の常時接続サーバ２００Ｂと常時接続できる構成だけであってもよい。
＜第４の実施の形態＞
【０１４６】
上記の第１および第２の実施の形態では、負荷分散サーバ４００は、アプリケーションサーバ３００Ａ，３００Ｂのいずれかからデータを受信したときに、常時接続サーバ２００Ａ，２００Ｂの負荷および／または接続中のクライアント１００の数を調べるものであった。
【０１４７】
しかしながら、第４の実施の形態として、負荷分散サーバ４００は、定期的に常時接続サーバ２００Ａ，２００Ｂの負荷を調べてもよい。あるいは、負荷分散サーバ４００は、同様の構成にした系を複数用意して処理要求を順番に割り振る、いわゆるラウンドロビン方式でデータを常時接続サーバ２００Ａ，２００Ｂに割り振ってもよい。
＜第５の実施の形態＞
【０１４８】
上記の第１および第２の実施の形態では、接続ＩＤと常時接続サーバ２００を特定する情報とアプリケーションサービスを特定する情報との対応関係を常時接続サーバ２００の外部の対応関係ＤＢ５００に格納するものであった。そして、常時接続サーバ２００が、他の常時接続サーバ２００にデータを転送する際に、対応関係ＤＢ５００を参照して他の常時接続サーバ２００を選択していた。
【０１４９】
しかしながら、第５の実施の形態として、接続ＩＤと常時接続サーバ２００を特定する情報とアプリケーションサービスを特定する情報との対応関係を常時接続サーバ２００が自身のメモリ２２０に格納してもよい。そして、常時接続サーバ２００同士で当該対応関係をやり取りしてもよい。
＜第６の実施の形態＞
【０１５０】
上記の第２の実施の形態では、常時接続サーバ２００のいずれかが複数の稼働中の常時接続サーバ２００のアドレスが格納されたノードリストをクライアント１００に送信するものであった。そして、クライアント１００が、ノードリストに基づいて、常時接続を開始する常時接続サーバ２００を選択するものであった。
【０１５１】
しかしながら、第６の実施の形態として、常時接続サーバ２００のいずれかが、複数の常時接続サーバ２００のアドレスが格納されたノードリストに基づいて、クライアント１００と常時接続すべき（たとえば、現在の負荷が小さい）常時接続サーバ２００を選択してもよい。この場合は、常時接続サーバ２００のいずれかは、選択された常時接続サーバ２００を特定する情報をクライアント１００に送信する。そして、クライアント１００は、常時接続サーバ２００のいずれかに指定された常時接続サーバ２００と常時接続を開始する。
＜第７の実施の形態＞
【０１５２】
上記の第２の実施の形態では、常時接続サーバ２００が、予め、あるいはノードリストの要求があったときに、複数の常時接続サーバ２００に接続確認用データ（ping）を送信し、その応答に基づいてノードリストを更新していた。
【０１５３】
しかしながら、対応関係ＤＢ５００のコンピュータが、予め、あるいはノードリストの要求があったときに、複数の常時接続サーバ２００に接続確認用データ（ping）を送信し、その応答に基づいてノードリストを更新してもよい。この場合、ノードリストのソートは、常時接続サーバ２００が行ってもよいし、対応関係ＤＢ５００のコンピュータが行ってもよい。
＜その他の応用例＞
【０１５４】
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体（あるいはメモリ）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１５５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５６】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１５７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１５８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１５９】
１        ：ネットワークシステム
１００    ：クライアント
１１０    ：ＣＰＵ
１１２    ：クライアントＡＰＩ
１２０    ：メモリ
１５０    ：家電制御回路
１６０    ：通信インターフェイス
２００    ：常時接続サーバ
２１０    ：ＣＰＵ
２１１    ：ＷＳサーバコア
２１２    ：ＷＳ接続バランシング機能
２２０    ：メモリ
２６０    ：通信インターフェイス
３００    ：アプリケーションサーバ
３１０    ：ＣＰＵ
３１１    ：サーバＡＰＰ
３１２    ：サーバＡＰＩ
３２０    ：メモリ
３６０    ：通信インターフェイス
４００    ：負荷分散サーバ
４１０    ：ＣＰＵ
４１１    ：負荷分散機能
４２０    ：メモリ
４６０    ：通信インターフェイス
５００    ：対応関係データベース
６００    ：負荷分散サーバ
６１０    ：ＣＰＵ
６１１    ：リスト提供機能
６２０    ：メモリ
６６０    ：通信インターフェイス
【図１】
2015103124.tif 000003
【図２】
2015103124.tif 000004
【図３】
2015103124.tif 000005
【図４】
2015103124.tif 000006
【図５】
2015103124.tif 000007
【図６】
2015103124.tif 000008
【図７】
2015103124.tif 000009
【図８】
2015103124.tif 000010
【図９】
2015103124.tif 000011
【図１０】
2015103124.tif 000012
【図１１】
2015103124.tif 000013
【図１２】
2015103124.tif 000014
【図１３】
2015103124.tif 000015