(57)【特許請求の範囲】
【請求項１】
複数の電子機器と、
前記複数の電子機器と常時接続するための常時接続サーバとを備え、
前記常時接続サーバは、前記複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶し、前記グループＩＤの指定に基づいて、対応するグループに属する少なくとも１つの電子機器にデータをプッシュするものであって、
前記対応関係は、前記複数のグループの階層関係を含み、
前記常時接続サーバは、上位のグループを特定するためのグループＩＤの指定に基づいて、当該上位のグループに属する下位のグループに属する電子機器にデータをプッシュする、ネットワークシステム。
【請求項２】
前記複数の電子機器は、その配置位置によってグループ分けされ、
前記上位のグループは広い地域に対応し、当該上位のグループに属する前記下位のグループは当該広い地域に含まれる狭い地域に対応する、請求項１に記載のネットワークシステム。
【請求項３】
前記複数の電子機器は、製品の種類によってグループ分けされ、
前記上位のグループは商品の種類に対応し、当該上位のグループに属する前記下位のグループは当該商品の種類に含まれる型番に対応する、請求項１に記載のネットワークシステム。
【請求項４】
前記電子機器は、前記常時接続サーバにグループ加入要求を送り、
前記常時接続サーバは、前記グループ加入要求に応じて、前記電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを前記対応関係に追加する、請求項１から３のいずれか１項に記載のネットワークシステム。
【請求項５】
他の電子機器をさらに含み、
前記他の電子機器は、前記常時接続サーバに前記電子機器を指定するための情報とグループ加入要求とを送り、
前記常時接続サーバは、前記情報と前記グループ加入要求とに応じて、前記電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを前記対応関係に追加する、請求項１から４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記電子機器は、前記常時接続サーバにグループ脱退要求を送り、
前記常時接続サーバは、前記グループ脱退要求に応じて、前記電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを前記対応関係から削除する、請求項１から５のいずれか１項に記載のネットワークシステム。
【請求項７】
他の電子機器をさらに含み、
前記他の電子機器は、前記常時接続サーバに前記電子機器を指定するための情報とグループ脱退要求とを送り、
前記常時接続サーバは、前記情報と前記グループ脱退要求とに応じて、前記電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを前記対応関係から削除する、請求項１から６のいずれか１項に記載のネットワークシステム。
【請求項８】
前記電子機器が、前記グループＩＤと前記データとを前記常時接続サーバに送信し、
前記常時接続サーバが、前記グループＩＤに対応する少なくとも１つの電子機器に前記データをプッシュする、請求項１から７のいずれか１項に記載のネットワークシステム。
【請求項９】
アプリケーションサーバをさらに備え、
前記アプリケーションサーバが、前記グループＩＤと前記データとを前記常時接続サーバに送信し、
前記常時接続サーバが、前記グループＩＤに対応する少なくとも１つの電子機器に前記データをプッシュする、請求項１から８のいずれか１項に記載のネットワークシステム。
【請求項１０】
前記常時接続サーバは、前記グループＩＤと前記データとを受信した際に、前記電子機器に前記データをプッシュする前に、プッシュ命令を受信した旨を前記データの送信元に送信する、請求項８または９に記載のネットワークシステム。
【請求項１１】
前記常時接続サーバは、前記グループＩＤに対応する少なくとも１つの電子機器の全てに前記データをプッシュしてから、前記データの送信結果を前記データの送信元に送信する、請求項８から１０のいずれか１項に記載のネットワークシステム。
【請求項１２】
前記送信結果は、前記グループＩＤに対応する少なくとも１つの電子機器の全てに関する前記データのプッシュの成否を示すリストを含む、請求項１１に記載のネットワークシステム。
【請求項１３】
前記送信結果は、前記グループＩＤに対応する少なくとも１つの電子機器への前記データのプッシュの成功率を含む、請求項１１または１２に記載のネットワークシステム。
【請求項１４】
前記常時接続サーバは、前記グループＩＤに対応する少なくとも１つの電子機器の各々に前記データをプッシュする度に、前記データの送信結果を前記データの送信元に送信する、請求項８から１０のいずれか１項に記載のネットワークシステム。
【請求項１５】
前記常時接続サーバは、前記送信結果を外部から参照可能に蓄積する、請求項１１から１４のいずれか１項に記載のネットワークシステム。
【請求項１６】
前記常時接続サーバは、データをプッシュするための命令を受け付けた際に、当該命令を外部から参照可能に蓄積する、請求項１から１５のいずれか１項に記載のネットワークシステム。
【請求項１７】
複数の電子機器と常時接続サーバとが常時接続を開始するステップと、
前記常時接続サーバが、前記複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶するステップと、
前記常時接続サーバが、前記グループＩＤの指定に基づいて対応するグループに属する少なくとも１つの電子機器にデータをプッシュするステップとを備え、
前記データをプッシュするステップは、前記常時接続サーバが、上位のグループを特定するためのグループＩＤの指定に基づいて、当該上位のグループに属する下位のグループに属する電子機器にデータをプッシュするステップを含む、通信方法。
【請求項１８】
複数の電子機器と常時接続するための通信インターフェイスと、
前記複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶するメモリと、
前記通信インターフェイスを利用することによって、前記グループＩＤの指定に基づいて、対応するグループに属する少なくとも１つの電子機器にデータをプッシュするためのプロセッサとを備え、
前記対応関係は、前記複数のグループの階層関係を含み、
前記プロセッサは、上位のグループを特定するためのグループＩＤの指定に基づいて、前記通信インターフェイスを利用することによって、当該上位のグループに属する下位のグループに属する電子機器にデータをプッシュする、常時接続サーバ。
【請求項１９】
プロセッサとメモリと通信インターフェイスとを含むコンピュータで利用されるプログラムであって、
前記通信インターフェイスを利用することによって、複数の電子機器と常時接続を開始するステップと、
前記メモリに、複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を格納するステップと、
前記通信インターフェイスを利用することによって、前記グループＩＤの指定に基づいて、対応するグループに属する少なくとも１つの電子機器にデータをプッシュするステップとを前記プロセッサに実行させ、
前記データをプッシュするステップは、上位のグループを特定するためのグループＩＤの指定に基づいて、前記通信インターフェイスを利用することによって、当該上位のグループに属する下位のグループに属する電子機器にデータをプッシュするステップを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器間の常時接続の技術に関し、特にサーバと複数のクライアントとの間の常時接続を利用した通信技術に関する。
【背景技術】
【０００２】
従来から、データを送受信するための様々な技術が知られている。たとえば、特開２００７−１５７０８５号公報（特許文献１）には、ＳＩＰサーバ共有モジュール、ＳＩＰメッセージ中継方式、プログラムが開示されている。特開２００７−１５７０８５号公報（特許文献１）によると、メッセージ送信元グループ識別部は端末が送信したＳＩＰメッセージをインターセプトし、送信元端末が所属するクライアントグループを識別する。グループタグ挿入部はメッセージ送信元グループ識別部が識別したグループに対応するグループタグをＳＩＰメッセージに挿入する。グループタグ削除部はＳＩＰプロキシサーバが送信したサーバ送信ＳＩＰメッセージからグループタグを削除する。メッセージ送信先グループ識別部はグループタグ削除部が削除したグループタグに対応するクライアントグループを識別し、サーバ送信ＳＩＰメッセージが当該グループに所属しないクライアント端末へ送信されることを防止する。
【０００３】
一方で、通信機器が互いにデータをプッシュし合う技術として、近年では、ＴＣＰ（TransmissionControl Protocol）上で動作するＷｅｂＳｏｃｋｅｔという技術が開発されている。ＷｅｂＳｏｃｋｅｔは、インターネットの標準化団体であるＷ３ＣとＩＥＴＦとが規定したウェブサーバとウェブブラウザとの間の双方向通信用の技術規格である。ＷｅｂＳｏｃｋｅｔプロトコルの仕様はＲＦＣ（Request For Comment）６４５５に規定されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１５７０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、現状では、常時接続の技術を用いてサーバからクライアントにデータを送る際には、サーバは常時接続中の全てのクライアントにデータを送ってしまう。本発明の目的は、常時接続中のクライアントのうちの一部のクライアントを指定してデータをプッシュすることができるネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
この発明のある態様に従うと、複数の電子機器と、複数の電子機器と常時接続するための常時接続サーバとを備えるネットワークシステムが提供される。常時接続サーバは、複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶し、グループＩＤの指定に基づいて対応するグループに属する少なくとも１つの電子機器にデータをプッシュする。
【０００７】
好ましくは、対応関係において、グループは階層化されている。常時接続サーバは、上位のグループを特定するためのグループＩＤの指定に基づいて、当該上位のグループに属する下位のグループに属する電子機器にデータをプッシュする。
【０００８】
好ましくは、電子機器は、常時接続サーバにグループ加入要求を送る。常時接続サーバは、グループ加入要求に応じて、電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを対応関係に追加する。
【０００９】
好ましくは、ネットワークシステムは、他の電子機器をさらに含む。他の電子機器は、常時接続サーバに電子機器を指定するための情報とグループ加入要求とを送る。常時接続サーバは、情報とグループ加入要求とに応じて、電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを対応関係に追加する。
【００１０】
好ましくは、電子機器は、常時接続サーバにグループ脱退要求を送る。常時接続サーバは、グループ脱退要求に応じて、電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを対応関係から削除する。
【００１１】
好ましくは、ネットワークシステムは、他の電子機器をさらに含む。他の電子機器は、常時接続サーバに電子機器を指定するための情報とグループ脱退要求とを送る。常時接続サーバは、情報とグループ脱退要求とに応じて、電子機器に対応する常時接続用ＩＤとグループＩＤとの組み合わせを対応関係から削除する。
【００１２】
好ましくは、電子機器が、グループＩＤとデータとを常時接続サーバに送信する。常時接続サーバが、グループＩＤに対応する少なくとも１つの電子機器にデータをプッシュする。
【００１３】
好ましくは、ネットワークシステムは、アプリケーションサーバをさらに備える。アプリケーションサーバが、グループＩＤとデータとを常時接続サーバに送信する。常時接続サーバが、グループＩＤに対応する少なくとも１つの電子機器にデータをプッシュする。
【００１４】
好ましくは、常時接続サーバは、グループＩＤとデータとを受信した際に、電子機器にデータをプッシュする前に、プッシュ命令を受信した旨をデータの送信元に送信する。
【００１５】
好ましくは、常時接続サーバは、グループＩＤに対応する少なくとも１つの電子機器の全てにデータをプッシュしてから、データの送信結果をデータの送信元に送信する。
【００１６】
好ましくは、送信結果は、グループＩＤに対応する少なくとも１つの電子機器の全てに関するデータのプッシュの成否を示すリストを含む。
【００１７】
好ましくは、送信結果は、グループＩＤに対応する少なくとも１つの電子機器へのデータのプッシュの成功率を含む。
【００１８】
好ましくは、常時接続サーバは、グループＩＤに対応する少なくとも１つの電子機器の各々にデータをプッシュする度に、データの送信結果をデータの送信元に送信する。
【００１９】
好ましくは、常時接続サーバは、送信結果を外部から参照可能に蓄積する。
【００２０】
好ましくは、常時接続サーバは、データをプッシュするための命令を受け付けた際に、当該命令を外部から参照可能に蓄積する。
【００２１】
この発明の別の態様に従うと、複数の電子機器と常時接続サーバとが常時接続を開始するステップと、常時接続サーバが、複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶するステップと、常時接続サーバが、グループＩＤの指定に基づいて対応するグループに属する少なくとも１つの電子機器にデータをプッシュするステップとを備える、通信方法が提供される。
【００２２】
この発明の別の態様に従うと、通信インターフェイスと、通信インターフェイスを利用することによって、常時接続サーバと常時接続し、常時接続サーバにグループ加入要求を送るためのプロセッサとを備える、電子機器が提供される。
【００２３】
この発明の別の態様に従うと、複数の電子機器と常時接続するための通信インターフェイスと、複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を記憶するメモリと、通信インターフェイスを利用することによって、グループＩＤの指定に基づいて、対応するグループに属する少なくとも１つの電子機器にデータをプッシュするためのプロセッサとを備える、常時接続サーバが提供される。
【００２４】
この発明の別の態様に従うと、プロセッサとメモリと通信インターフェイスとを含む電子機器で利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、常時接続サーバと常時接続を開始するステップと、通信インターフェイスを利用することによって、常時接続サーバにグループ加入要求を送るステップとをプロセッサに実行させる。
【００２５】
この発明の別の態様に従うと、プロセッサとメモリと通信インターフェイスとを含むコンピュータで利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、複数の電子機器と常時接続を開始するステップと、メモリに、複数の電子機器を特定するための常時接続用ＩＤと複数のグループを特定するためのグループＩＤとの対応関係を格納するステップと、通信インターフェイスを利用することによって、グループＩＤの指定に基づいて、対応するグループに属する少なくとも１つの電子機器にデータをプッシュするステップとをプロセッサに実行させる。
【発明の効果】
【００２６】
以上のように、この発明によれば、常時接続中のクライアントのうちの一部のクライアントを指定してデータをプッシュすることができるネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラムが提供される。
【図面の簡単な説明】
【００２７】
【図１】第１の実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【図２】本実施の形態にかかるクライアント１００のハードウェア構成を表わすブロック図である。
【図３】本実施の形態にかかる常時接続サーバ２００のハードウェア構成を表わすブロック図である。
【図４】第１の実施の形態にかかるグループ名称とグループＩＤとの対応関係ＤＢ２２１を示すイメージ図である。
【図５】第１の実施の形態にかかるグループＩＤと接続ＩＤとの対応関係ＤＢ２２２を示すイメージ図である。
【図６】第１の実施の形態にかかるグループの階層を示す対応関係ＤＢ２２３を示すイメージ図である。
【図７】本実施の形態にかかるアプリケーションサーバ３００のハードウェア構成を表わすブロック図である。
【図８】本実施の形態にかかるスマートフォン５００のハードウェア構成を表わすブロック図である。
【図９】本実施の形態にかかるネットワークシステム１における常時接続に関するデータのやり取りの処理手順を示すシーケンス図である。
【図１０】本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ加入の処理手順の詳細を示すシーケンス図である。
【図１１】本実施の形態にかかるグループ加入時における対応関係ＤＢ２２２の変化を示すイメージ図である。
【図１２】本実施の形態にかかるクライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細を示すシーケンス図である。
【図１３】本実施の形態にかかるユーザ指定のグループへの加入の処理手順の詳細を示すシーケンス図である。
【図１４】本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント加入の処理手順の詳細を示すシーケンス図である。
【図１５】本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるクライアント加入の処理手順の詳細を示すシーケンス図である。
【図１６】本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるグループ作成の処理手順の詳細を示すシーケンス図である。
【図１７】本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細を示すシーケンス図である。
【図１８】本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ脱退の処理手順の詳細を示すシーケンス図である。
【図１９】本実施の形態にかかるグループ脱退時における対応関係ＤＢ２２２の変化を示すイメージ図である。
【図２０】本実施の形態にかかるクライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細を示すシーケンス図である。
【図２１】本実施の形態にかかるユーザ指定のグループからの脱退の処理手順の詳細を示すシーケンス図である。
【図２２】本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント脱退の処理手順の詳細を示すシーケンス図である。
【図２３】本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細を示すシーケンス図である。
【図２４】本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図２５】本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図２６】第２の実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図２７】第３の実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図２８】第４の実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図２９】第５の実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図３０】第６の実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図３１】第７の実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【図３２】第８の実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【図３３】第８の実施の形態にかかるグループ名称とグループＩＤとの対応関係ＤＢ２２４を示すイメージ図である。
【図３４】第８の実施の形態にかかるグループＩＤと接続ＩＤとの対応関係ＤＢ２２５を示すイメージ図である。
【図３５】第９の実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【図３６】第９および第１０の実施の形態にかかるグループ名称とグループＩＤとの対応関係ＤＢを示すイメージ図である。
【図３７】第１０の実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２９】
また、以下では、常時接続の一例として、ＷｅｂＳｏｃｋｅｔプロトコルを利用した通信について説明する。しかしながら、常時接続サーバから任意のタイミングでクライアントにデータをプッシュできればよく、本発明はＷｅｂＳｏｃｋｅｔプロトコルを利用する常時接続に限定されるものではない。
【００３０】
また、下記の実施の形態にかかる構成は、ＨＴＴＰ／ＷｅｂＳｏｃｋｅｔプロトコルの他に、ＳＳＬで通信路を暗号化できるＨＴＴＰＳ／ＷＳＳプロトコルでも利用可能である。すなわち、本実施形態にかかるネットワークシステム１は、ＨＴＴＰＳ／ＷＳＳプロトコルを利用するシステムにも適応できる。
＜第１の実施の形態＞
＜ネットワークシステムの全体構成＞
【００３１】
まず、本実施の形態にかかるネットワークシステム１の全体構成について説明する。図１は、本実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【００３２】
図１を参照して、ネットワークシステム１は、住居またはオフィスなどに配置される複数のクライアント１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ，１００Ｅを含む。以下では、クライアント１００Ａ，１００Ｂ，１００Ｃ，１００Ｄ，１００Ｅを総称して、クライアント１００ともいう。ネットワークシステム１は、クライアント１００と常時接続が可能な常時接続サーバ２００と、様々なサービスを提供するアプリケーションサーバ３００と、スマートフォン５００またはパーソナルコンピュータなどを含む。
【００３３】
クライアント１００としては、たとえば、掃除機、テレビ、エアコン、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、ＩＨ（Induction Heating）クッキングヒーター、電子レンジ、照明などの家電が挙げられる。さらに、クライアントは、通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のＡＶ機器、インターホンシステムなどを含んでもよい。
【００３４】
常時接続サーバ２００とアプリケーションサーバ３００とは、クライアントのいずれかと同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
【００３５】
また、クライアント１００と各サーバ間は、光ファイバ等の回線を経由し、途中に、光回線終端装置、無線ＬＡＮ通信を行うためのアクセスポイント、ルータ等が接続されてもよい。クライアント１００は、ネットワークに接続する手段として、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃなどの無線ＬＡＮ通信、あるいは、有線ＬＡＮなどが用いられるが、接続方法はこれらに限定されるものではない。
【００３６】
本実施の形態においては、常時接続サーバ２００とアプリケーションサーバ３００とが別々のコンピュータである。しかしながら、常時接続サーバ２００とアプリケーションサーバ３００とが同一のコンピュータであってもよい。たとえば、１つのコンピュータ、すなわち装置としてのサーバが、クライアントと常時接続するための通信サービスプログラムと、クライアントを制御するためのアプリケーションサービスプログラムとを搭載してもよい。また、１つのアプリケーションサーバが複数のアプリケーションサービスプログラムを搭載してもよい。
＜ネットワークシステムの動作概要＞
【００３７】
次に、本実施の形態にかかるネットワークシステム１の動作概要について説明する。本実施の形態においては、複数のクライアント１００が複数のグループに分けられている。具体的には、常時接続サーバ２００が接続可能な対応関係ＤＢサーバあるいは常時接続サーバ２００自身が、当該グループ分けを示すデータを記憶している。そして、アプリケーションサーバ３００は、スマートフォン５００および外部のパーソナルコンピュータなどからのデータをクライアント１００に伝えるサービスを提供する。
【００３８】
まずは、スマートフォン５００または外部のパーソナルコンピュータなどが、グループを指定するためのグループＩＤと、当該グループに送信するためのデータ本体とをアプリケーションサーバ３００に送信する。アプリケーションサーバ３００は、グループを指定するためのグループＩＤと、当該グループに送信するためのデータ本体とを常時接続サーバ２００に送信する。常時接続サーバ２００は、対応関係ＤＢを参照することによって、Ｗｅｂソケットプロトコルを利用して、グループＩＤに対応する複数のクライアント１００にデータ本体をプッシュする。
【００３９】
あるいは、クライアント１００のいずれかが、グループを指定するためのグループＩＤと、当該グループに送信するためのデータ本体とを常時接続サーバ２００に送信する。常時接続サーバ２００は、対応関係ＤＢを参照することによって、Ｗｅｂソケットプロトコルを利用して、グループＩＤに対応する複数のクライアント１００にデータ本体をプッシュする。このとき、常時接続サーバ２００は、当該データ本体をログ情報としてアプリケーションサーバ３００に送信しても良い。常時接続サーバ２００は、さらに、アプリケーションサーバ３００を介して当該データ本体をスマートフォン５００まで送信しても良い。
【００４０】
このように、本実施の形態においては、スマートフォン５００、外部のパーソナルコンピュータ、アプリケーションサーバ３００、クライアント１００が、常時接続サーバ２００と常時接続している複数のクライアント１００のうちの、所望のグループに属するクライアント１００のみにデータをプッシュすることができる。以下では、このような機能を実現するためのネットワークシステム１の構成について詳細に説明する。
＜クライアント１００のハードウェア構成＞
【００４１】
まず、クライアント１００のハードウェア構成の一態様について説明する。図２は、本実施の形態にかかるクライアント１００のハードウェア構成を表わすブロック図である。
【００４２】
図２を参照して、クライアント１００は、主たる構成要素として、ＣＰＵ１１０と、メモリ１２０と、入出力部１３０と、カメラ１４０と、家電制御回路１５０と、通信インターフェイス１６０とを含む。
【００４３】
ＣＰＵ１１０は、メモリ１２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、クライアント１００の各部を制御する。より詳細には、ＣＰＵ１１０は、クライアントＡＰＰ（Application software）として動作するとともに、クライアントＡＰＩ（ApplicationProgramming Interface）として動作する。すなわち、ＣＰＵ１１０は、メモリ１２０に格納されているプログラムを実行することによって、後述する各種の処理を実行する。
【００４４】
メモリ１２０は、各種のＲＡＭ（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）などの記憶媒体などによって実現されてもよい。
【００４５】
メモリ１２０は、ＣＰＵ１１０によって実行されるプログラムや、ＣＰＵ１１０によるプログラムの実行により生成されたデータ、入出力部１３０を介して入力されたデータ、掃除機、テレビ、エアコンなどのような家電として動作するためのＡＰＰデータ、クライアントＡＰＰとデータをやり取りしながら外部の機器と通信するためのＡＰＩデータを記憶する。たとえば、メモリ１２０は、常時接続サーバの接続先、アプリケーションサーバ接続先、サービス識別コード、サービス認証トークン、接続ＩＤ、クライアント識別ＩＤなどを記憶する。
【００４６】
入出力部１３０は、ボタン、タッチパネル、キーボードなどによって実現され、ユーザからの命令を受け付けて、当該命令をＣＰＵ１１０に入力する。入出力部１３０は、ディスプレイ、ライトなどによって実現され、ＣＰＵ１１０からの信号に基づいて、文字や画像を出力する。入出力部１３０は、スピーカなどによって実現され、ＣＰＵ１１０からの信号に基づいて、文字や画像を出力する。
【００４７】
カメラ１４０は、ＣＰＵ１１０からの信号に基づいて、静止画像や動画像を撮影する。具体的には、カメラ１４０は、撮影した画像データをＣＰＵ１１０に受け渡す。ＣＰＵ１１０は、画像データを逐次メモリ１２０に記憶させていく。
【００４８】
家電制御回路１５０は、ＣＰＵ１１０からの信号に基づいて、クライアントの各部（モータなど）を制御する。
【００４９】
通信インターフェイス１６０は、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎ／ａｃなどの無線ＬＡＮ通信、ＺｉｇＢｅｅ(登録商標)、ＢｌｕｅＴｏｏｔｈ（登録商標）、あるいは、イーサネット（登録商標）などの有線ＬＡＮなどの通信モジュールによって実現される。通信インターフェイス１６０は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。ＣＰＵ１１０は、通信インターフェイス１６０を介して、他の装置からプログラム、制御命令、画像データ、テキストデータなどを受信したり、他の装置にテキストデータ、画像データなどを送信したりする。本実施の形態においては、ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して常時接続サーバ２００と常時接続を行うことができるし、ＨＴＴＰプロトコルを利用してアプリケーションサーバ３００と通信することもできる。
＜常時接続サーバ２００のハードウェア構成＞
【００５０】
次に、常時接続サーバ２００のハードウェア構成の一態様について説明する。図３は、本実施の形態にかかる常時接続サーバ２００のハードウェア構成を表わすブロック図である。なお、常時接続サーバ２００は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
【００５１】
図３を参照して、常時接続サーバ２００は、主たる構成要素として、ＣＰＵ２１０と、メモリ２２０と、入出力部２３０と、通信インターフェイス２６０とを含む。常時接続サーバ２００のハードウェア構成は、クライアント１００のハードウェア構成と比較して、カメラ１４０と家電制御回路１５０とを有さない点、ＣＰＵ２１０の動作、メモリ２２０に格納されているデータに関して異なる。以下では、ＣＰＵ２１０の動作とメモリ２２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【００５２】
ＣＰＵ２１０は、メモリ２２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、常時接続サーバ２００の各部を制御する。具体的には、ＣＰＵ２１０は、メモリ２２０に記憶されているプログラムを実行することによって、モジュールとしてのＷＳサーバとして動作する。すなわち、ＣＰＵ２１０は、メモリ２２０に格納されているプログラムを実行することによって、後述する各種の動作を実行する。
【００５３】
メモリ２２０は、ＣＰＵ２１０によって実行されるプログラムや、ＣＰＵ２１０によるプログラムの実行により生成されたデータ、入出力部２３０を介して入力されたデータ、サービスＩＤ、サービス名、アプリケーションサーバ３００の接続先ＵＲＬ、サービス認証トークン生成情報、認証情報（ワンタイムキー）、接続ＩＤなどを記憶する。
＜対応関係ＤＢ＞
【００５４】
本実施の形態においては、図１および図４に示すように、常時接続サーバ２００とは別の対応関係ＤＢ（データベース）サーバ２５０が、グループ名称とグループＩＤとの対応関係ＤＢ２２１を記憶する。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２１を記憶してもよい。
【００５５】
また、図１および図５に示すように、対応関係ＤＢサーバ２５０が、グループＩＤと接続ＩＤとの対応関係ＤＢ２２２を記憶する。なお、接続ＩＤとは、アプリケーションサーバ３００が提供するサービスとクライアント１００との関係を特定するための情報である。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２２を記憶してもよい。
【００５６】
さらに、本実施の形態においては、図１および図６に示すように、対応関係ＤＢサーバ２５０が、グループの階層を示す対応関係ＤＢ２２３を記憶する。たとえば、対応関係ＤＢ２２３は、上位のグループＩＤの各々に対応付けて、中位の複数のグループＩＤを格納する。対応関係ＤＢ２２３は、中位のグループＩＤの各々に対応付けて、下位の複数のグループＩＤを格納する。図６には示されていないが、対応関係ＤＢ２２３は、下位のグループＩＤの各々に対応付けて、さらに下位の複数のグループＩＤを格納してもよい。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２３を記憶してもよい。
＜アプリケーションサーバ３００のハードウェア構成＞
【００５７】
次に、アプリケーションサーバ３００のハードウェア構成の一態様について説明する。図７は、本実施の形態にかかるアプリケーションサーバ３００のハードウェア構成を表わすブロック図である。なお、アプリケーションサーバ３００は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
【００５８】
図７を参照して、アプリケーションサーバ３００は、主たる構成要素として、ＣＰＵ３１０と、メモリ３２０と、入出力部３３０と、通信インターフェイス３６０とを含む。アプリケーションサーバ３００のハードウェア構成は、クライアント１００のハードウェア構成と比較して、カメラ１４０と家電制御回路１５０とを有さない点、ＣＰＵ３１０の動作、メモリ３２０に格納されているデータに関して異なる。よって、以下では、ＣＰＵ３１０の動作と、メモリ３２０が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
【００５９】
ＣＰＵ３１０は、メモリ３２０あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、アプリケーションサーバ３００の各部を制御する。具体的には、ＣＰＵ３１０は、メモリ３２０に記憶されているプログラムを実行することによって、サーバＡＰＰとして動作するとともに、サーバＡＰＩとして動作する。すなわち、ＣＰＵ３１０は、メモリ３２０に格納されているプログラムを実行することによって、後述する各種の処理を実行する。
【００６０】
メモリ３２０は、ＣＰＵ３１０によって実行されるプログラムや、ＣＰＵ３１０によるプログラムの実行により生成されたデータ、入出力部３３０を介して入力されたデータ、アプリケーションサーバ３００として動作するためのＡＰＰデータ、サーバＡＰＰとデータをやり取りしながらクライアント１００と常時接続サーバ２００とスマートフォン５００と通信するためのＡＰＩデータを記憶する。たとえば、メモリ３２０は、常時接続サーバのＵＲＬ、サービスＩＤとサービス認証トークン、認証情報（ワンタイムキー）生成情報、接続ＩＤなどを記憶する。
＜スマートフォン５００のハードウェア構成＞
【００６１】
次に、スマートフォン５００あるいはパーソナルコンピュータなどの通信機器のハードウェア構成の一態様について説明する。図８は、本実施の形態にかかるスマートフォン５００のハードウェア構成を表わすブロック図である。
【００６２】
図８を参照して、スマートフォン５００は、主たる構成要素として、ＣＰＵ５１０と、メモリ５２０と、ボタン５３０と、ディスプレイ５４０と、通信インターフェイス５６０とを含む。なお、近年のスマートフォンでは、ボタン５３０とディスプレイ５４０の代わりにタッチパネルが利用されることが多い。
【００６３】
スマートフォン５００のハードウェア構成は、クライアント１００のハードウェア構成と比較して、家電制御回路１５０を有さない点、ＣＰＵ５１０の動作、メモリ５２０に格納されているデータに関して異なる。そして、ＣＰＵ５１０の動作、メモリ５２０に格納されているデータは、一般的なスマートフォンのものと同様である。よって、ここでは、ハードウェア構成の各部については説明を繰り返さない。
＜常時接続に関する装置間のデータのやり取り＞
【００６４】
次に、本実施の形態にかかるネットワークシステム１における常時接続に関する装置間のデータのやり取りについて説明する。なお、図９は、本実施の形態にかかるネットワークシステム１における常時接続に関するデータのやり取りの処理手順を示すシーケンス図である。
【００６５】
なお、図９におけるクライアント１００の動作は、クライアントＡＰＩ１１０Ａが実現するものである。図２および図９を参照して、クライアントＡＰＩ１１０Ａは、クライアント１００のＣＰＵ１１０がプログラムを実行することによって実現されるものである。クライアントＡＰＩ１１０Ａは、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを使用して常時接続サーバ２００と通信する。クライアントＡＰＩ１１０Ａは、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを使用して常時接続サーバ２００およびアプリケーションサーバ３００と通信する。
【００６６】
同様に、図９における常時接続サーバ２００の動作は、ＷＳサーバ２１０Ａが実現するものである。図３および図９を参照して、ＷＳサーバ２１０Ａは、常時接続サーバ２００のＣＰＵ２１０がプログラムを実行することによって実現されるものである。ＷＳサーバ２１０Ａは、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用してクライアント１００と常時接続する。ＷＳサーバ２１０Ａは、通信インターフェイス２６０を介して、ＨＴＴＰプロトコルを利用してアプリケーションサーバ３００と通信する。
【００６７】
同様に、図９におけるアプリケーションサーバ３００の動作は、サーバＡＰＩ３１０Ａが実現するものである。図７および図９を参照して、サーバＡＰＩ３１０Ａは、アプリケーションサーバ３００のＣＰＵ３１０がプログラムを実行することによって実現されるものである。サーバＡＰＩ３１０Ａは、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用してクライアント１００と常時接続サーバ２００とスマートフォン５００などの他の通信装置と通信する。
【００６８】
図９を参照して、クライアント１００は、ＨＴＴＰプロトコルを使用して、アプリケーションサーバ３００に認証情報を要求する（ステップＳ００２）。このとき、クライアント１００は、アプリケーションサーバ３００に、認証に利用されるクライアントＩＤを送信する。アプリケーションサーバ３００は、当該要求に応じてＨＴＴＰプロトコルを使用して認証情報を送信する（ステップＳ００４）。
【００６９】
アプリケーションサーバ３００は、常時接続サーバ２００にも認証情報を送信する（ステップＳ００６）。常時接続サーバ２００は、アプリケーションサーバ３００から受信した認証情報を保存する（ステップＳ００８）。
【００７０】
クライアント１００と常時接続サーバ２００とは、ＨＴＴＰプロトコルを使用して、ＷｅｂＳｏｃｋｅｔを利用した常時接続状態を確立する（ステップＳ０１０、ステップＳ０１２）。具体的には、クライアント１００は、ＨＴＴＰプロトコルを使用して、常時接続サーバ２００にハンドシェイク要求を送る。常時接続サーバ２００は、ハンドシェイク応答を返す。これによって、クライアント１００と常時接続サーバ２００との間で、ＷｅｂＳｏｃｋｅｔプロトコルによる常時接続が有効になる。
【００７１】
クライアント１００は、認証情報を常時接続サーバ２００に送信する（ステップＳ０１４）。常時接続サーバ２００は、クライアント１００からの認証情報と予め保存している認証情報とに基づいて、クライアント１００を認証する（ステップＳ０１６）。認証に成功すると、常時接続サーバ２００は、アプリケーションサーバ３００がクライアント１００を識別するための接続ＩＤを発行する（ステップＳ０１８）。
【００７２】
具体的には、常時接続サーバ２００は、常時接続中のクライアント１００と接続ＩＤとの対応関係を、接続状態管理情報として記憶する。常時接続サーバ２００は、アプリケーションサーバ３００とクライアント１００とに接続ＩＤを送信する。クライアント１００は、常時接続サーバ２００から接続ＩＤを受信して、記憶する（ステップＳ０２０）。同様に、アプリケーションサーバ３００も、接続ＩＤを受信して、記憶する（ステップＳ０２２）。
【００７３】
その後、アプリケーションサーバ３００は、必要に応じて、データ本体（たとえば、ポーリング命令など）と送り先のクライアント１００を特定するための接続ＩＤとを常時接続サーバ２００に送信する（ステップＳ０３２）。常時接続サーバ２００は、アプリケーションサーバ３００からデータ本体と接続ＩＤとを受信する（ステップＳ０３４）。常時接続サーバ２００は、接続状態管理情報を参照して、接続ＩＤに基づいてクライアント１００を特定する（ステップＳ０３６）。
【００７４】
常時接続サーバ２００は、ＷｅｂＳｏｃｋｅｔプロトコルを使用して、特定されたクライアント１００にデータ本体を送信する（ステップＳ０３８）。クライアント１００は、データ本体を受信する（ステップＳ０４０）。クライアント１００は、ＷｅｂＳｏｃｋｅｔプロトコルを使用して、受信結果を常時接続サーバ２００に送信する（ステップＳ０４２）。常時接続サーバ２００は、受信結果を受信すると、当該受信結果をアプリケーションサーバ３００に送信する（ステップＳ０４４）。アプリケーションサーバ３００は、受信結果を受信する（ステップＳ０４６）。
＜クライアントがグループに加入する際の処理手順の詳細＞
【００７５】
次に、本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ加入の処理手順の詳細について説明する。図１０は、本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ加入の処理手順の詳細を示すシーケンス図である。
【００７６】
図１０を参照して、クライアント１００は、グループに加入するための要求を常時接続サーバ２００に送信する(ステップＳ１０２)。具体的には、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信する。グループ加入要求は、グループを特定するためのグループＩＤを含む。
【００７７】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信してもよい。この場合は、グループ加入要求は、クライアント１００を特定するための接続ＩＤも含む。
【００７８】
常時接続サーバ２００は、クライアント１００を特定するための接続ＩＤをグループＩＤに対応付けて対応関係ＤＢ２２２に記憶する(ステップＳ１０６)。具体的には、図１１に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを追加する。
【００７９】
常時接続サーバ２００は、クライアント１００にグループ加入が完了した旨を示すデータ送信する(ステップＳ１０８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
【００８０】
以下では、より詳細に、クライアント１００のグループ加入の処理手順の詳細について説明する。まずは、クライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細について説明する。図１２は、本実施の形態にかかるクライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細を示すシーケンス図である。
【００８１】
図１２を参照して、たとえば、クライアント１００は、電源がＯＮされたときに、常時接続サーバ２００にグループに加入するための要求を送信する(ステップＳ１１２)。具体的には、クライアント１００のＣＰＵ１１０は、電源がＯＮされたときに、メモリ１２０からグループＩＤを読み出す。そして、ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信する。グループ加入要求は、グループを特定するためのグループＩＤを含む。
【００８２】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信してもよい。この場合は、グループ加入要求は、クライアント１００を特定するための接続ＩＤも含む。
【００８３】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１１４)。ＣＰＵ１１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、新たにグループＩＤを作成して、対応関係ＤＢ２２１と対応関係ＤＢ２２２とに追加する。ただし、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、ＣＰＵ２１０は、グループ加入要求を却下してもよい。
【００８４】
ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、クライアント１００を特定するための接続ＩＤをグループＩＤに対応付けてメモリ２２０に記憶する(ステップＳ１１６)。具体的には、図１１に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを追加する。
【００８５】
常時接続サーバ２００は、クライアント１００にグループ加入が完了した旨を示すデータ送信する(ステップＳ１１８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
【００８６】
次に、ユーザ指定のグループへの加入の処理手順の詳細について説明する。すなわち、ユーザが、所望のグループＩＤをクライアント１００に入力できる場合について説明する。図１３は、本実施の形態にかかるユーザ指定のグループへの加入の処理手順の詳細を示すシーケンス図である。
【００８７】
図１３を参照して、たとえば、クライアント１００は、ユーザから、グループＩＤの入力を受け付ける(ステップＳ１２１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介して、グループＩＤの入力を受け付ける。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信する(ステップＳ１２２)。グループ加入要求は、グループを特定するためのグループＩＤを含む。
【００８８】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信してもよい。この場合は、グループ加入要求は、クライアント１００を特定するための接続ＩＤも含む。
【００８９】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１２４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、新たにグループＩＤを作成して、対応関係ＤＢ２２１と対応関係ＤＢ２２２とに追加する。ただし、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、ＣＰＵ２１０は、グループ加入要求を却下してもよい。
【００９０】
ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、クライアント１００を特定するための接続ＩＤをグループＩＤに対応付けて対応関係ＤＢ２２２に記憶する(ステップＳ１２６)。具体的には、図１１に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを追加する。
【００９１】
常時接続サーバ２００は、クライアント１００にグループ加入が完了した旨を示すデータ送信する(ステップＳ１２８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
＜アプリケーションサーバによるクライアント加入の処理手順の詳細＞
【００９２】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント加入の処理手順の詳細について説明する。図１４は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント加入の処理手順の詳細を示すシーケンス図である。
【００９３】
図１４を参照して、アプリケーションサーバ３００は、常時接続サーバ２００にクライアント１００をグループに加入させるための加入要求を送信する(ステップＳ１３２)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、管理人またはサービス用のアプリケーションプログラムなどの要求に応じて、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にクライアント加入要求を送信する。たとえば、クライアント加入要求は、グループＩＤとグループに属するクライアントの接続ＩＤとを含む。
【００９４】
常時接続サーバ２００のＣＰＵ２１０は、クライアント加入要求に応じて、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１３４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ加入要求を却下する。
【００９５】
受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、ＣＰＵ２１０は、図１１に示すように、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを登録する(ステップＳ１３６)。常時接続サーバ２００は、アプリケーションサーバ３００にクライアント１００のグループへの加入が完了した旨を示すデータ送信する(ステップＳ１３８)。
【００９６】
次に、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細について説明する。図１５は、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるクライアント加入の処理手順の詳細を示すシーケンス図である。
【００９７】
図１５を参照して、スマートフォン５００または外部のパーソナルコンピュータは、ユーザまたはアプリケーションプログラムからの要求に応じて、アプリケーションサーバ３００に、クライアント１００をグループに加入させるためのクライアント加入要求を送信する(ステップＳ１４０)。クライアント加入要求は、グループを特定するためのグループＩＤとグループに属するクライアントの接続ＩＤとを含む。
【００９８】
アプリケーションサーバ３００は、常時接続サーバ２００にクライアント加入要求を送信する(ステップＳ１４２)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にクライアント加入要求を送信する。
【００９９】
常時接続サーバ２００のＣＰＵ２１０は、受信したクライアント加入要求に含まれるグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１４４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ加入要求を却下する。
【０１００】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、図１１に示すように、対応関係ＤＢ２２１に、グループＩＤとグループに属するクライアントの接続ＩＤとの組み合わせを登録する(ステップＳ１４６)。常時接続サーバ２００は、アプリケーションサーバ３００に、グループへのクライアント１００の加入が完了した旨を示すデータを送信する(ステップＳ１４８)。
＜新たなグループ作成の処理手順の詳細＞
【０１０１】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるグループ作成の処理手順の詳細について説明する。図１６は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるグループ作成の処理手順の詳細を示すシーケンス図である。
【０１０２】
図１６を参照して、アプリケーションサーバ３００は、常時接続サーバ２００に新たなグループを作成するための要求を送信する(ステップＳ１５１)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、管理人またはサービス用のアプリケーションプログラムなどからの要求に応じて、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ作成要求を送信する。たとえば、グループ作成要求は、新たなグループを特定するためのグループ名称およびグループＩＤと、新たなグループに属するべきクライアントの接続ＩＤとを含む。
【０１０３】
常時接続サーバ２００のＣＰＵ２１０は、グループ作成要求に応じて、対応関係ＤＢ２２１に、新たなグループ名称とグループＩＤと組み合わせを追加する。さらに、ＣＰＵ２１０は、対応関係ＤＢ２２２に新たなグループＩＤと新たなグループに属するべきクライアントの接続ＩＤとの組み合わせを追加する。ＣＰＵ２１０は、通信インターフェイス２６０を介して、グループの作成が成功した旨をアプリケーションサーバ３００に送信する。
【０１０４】
クライアント１００のＣＰＵ１１０は、ユーザからの命令に応じて、あるいはアプリケーションサーバ３００からの要求に応じて、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信する(ステップＳ１５２)。グループ加入要求は、作成されたグループを特定するためのグループＩＤを含む。
【０１０５】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１５４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ加入要求を却下する。ただし、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、ＣＰＵ２１０は、新たにグループＩＤを作成して、対応関係ＤＢ２２１と対応関係ＤＢ２２２とに追加してもよい。
【０１０６】
ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、クライアント１００を特定するための接続ＩＤをグループＩＤに対応付けて対応関係ＤＢ２２２に記憶する(ステップＳ１５６)。具体的には、図１１に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを追加する。
【０１０７】
常時接続サーバ２００は、クライアント１００にグループ加入が完了した旨を示すデータ送信する(ステップＳ１５８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
【０１０８】
次に、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細について説明する。図１７は、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細を示すシーケンス図である。
【０１０９】
図１７を参照して、スマートフォン５００または外部のパーソナルコンピュータは、ユーザまたはアプリケーションプログラムからの要求に応じて、アプリケーションサーバ３００に、新たなグループを作成するためのグループ作成要求を送信する(ステップＳ１６０)。グループ作成要求は、新たなグループを特定するためのグループ名称およびグループＩＤと、新たなグループに属するべきクライアントの接続ＩＤとを含む。
【０１１０】
アプリケーションサーバ３００は、常時接続サーバ２００にグループ作成要求を送信する(ステップＳ１６１)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ作成要求を送信する。グループ作成要求は、新たなグループを特定するためのグループ名称およびグループＩＤと、新たなグループに属するべきクライアントの接続ＩＤとを含む。
【０１１１】
常時接続サーバ２００のＣＰＵ２１０は、グループ作成要求に応じて、対応関係ＤＢ２２１に、新たなグループＩＤを追加する。さらに、ＣＰＵ２１０は、対応関係ＤＢ２２２に新たなグループＩＤと新たなグループに属するべきクライアントの接続ＩＤとの組み合わせを追加する。
【０１１２】
クライアント１００のＣＰＵ１１０は、ユーザからの命令に応じて、あるいはアプリケーションサーバ３００からの要求に応じて、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ加入要求を送信する(ステップＳ１６２)。グループ加入要求は、作成されたグループを特定するためのグループＩＤを含む。
【０１１３】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ１６４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ加入要求を却下する。ただし、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、ＣＰＵ２１０は、新たにグループＩＤを作成して、対応関係ＤＢ２２１と対応関係ＤＢ２２２とに追加してもよい。
【０１１４】
ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、クライアント１００を特定するための接続ＩＤをグループＩＤに対応付けて対応関係ＤＢに記憶する(ステップＳ１６６)。具体的には、図１１に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２に、接続ＩＤとグループＩＤとの組み合わせを追加する。
【０１１５】
常時接続サーバ２００は、クライアント１００にグループ加入が完了した旨を示すデータを送信する(ステップＳ１６８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
＜クライアントがグループから脱退する際の処理手順の詳細＞
【０１１６】
次に、本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ脱退の処理手順の詳細について説明する。図１８は、本実施の形態にかかるネットワークシステム１におけるクライアント１００のグループ脱退の処理手順の詳細を示すシーケンス図である。
【０１１７】
図１８を参照して、クライアント１００は、常時接続サーバ２００にグループから脱退するための要求を送信する(ステップＳ２０２)。具体的には、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信する。グループ脱退要求は、グループを特定するためのグループＩＤを含む。
【０１１８】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信してもよい。この場合は、グループ脱退要求は、クライアント１００を特定するための接続ＩＤも含む。
【０１１９】
常時接続サーバ２００は、図１９に示すように、ＣＰＵ２１０が、対応関係ＤＢ２２２から、接続ＩＤとグループＩＤとの組み合わせを削除する(ステップＳ２０６)。
【０１２０】
常時接続サーバ２００は、クライアント１００にグループ脱退が完了した旨を示すデータ送信する(ステップＳ２０８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
【０１２１】
以下では、より詳細に、クライアント１００のグループ脱退の処理手順の詳細について説明する。まずは、クライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細について説明する。図２０は、本実施の形態にかかるクライアント１００に予めグループＩＤが書き込まれている場合のグループ加入の処理手順の詳細を示すシーケンス図である。
【０１２２】
図２０を参照して、たとえば、クライアント１００は、常時接続サーバ２００にグループから脱退するための要求を送信する(ステップＳ２１２)。具体的には、クライアント１００のＣＰＵ１１０は、入出力部１３０を介してユーザからのリセット命令を受け付けたとき、あるいは入出力部１３０を介してユーザからの脱退命令を受け付けたときなどに、メモリ１２０からグループＩＤを読み出す。そして、ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信する。グループ脱退要求は、グループを特定するためのグループＩＤを含む。
【０１２３】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信してもよい。この場合は、グループ脱退要求は、クライアント１００を特定するための接続ＩＤも含む。
【０１２４】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ２１４)。ＣＰＵ１１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ脱退要求を却下してもよい。
【０１２５】
受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、ＣＰＵ２１０は、図１９に示すように、対応関係ＤＢ２２２から、接続ＩＤとグループＩＤとの組み合わせを削除する(ステップＳ２１６)。
【０１２６】
常時接続サーバ２００は、クライアント１００にグループ脱退が完了した旨を示すデータ送信する(ステップＳ２１８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
【０１２７】
次に、ユーザ指定のグループからの脱退の処理手順の詳細について説明する。図２１は、ユーザ指定のグループからの脱退の処理手順の詳細を示すシーケンス図である。
【０１２８】
図２１を参照して、たとえば、クライアント１００は、ユーザから、グループＩＤの入力を受け付ける(ステップＳ２２１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介して、グループＩＤの入力を受け付ける。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信する(ステップＳ２２２)。グループ脱退要求は、グループを特定するためのグループＩＤを含む。
【０１２９】
なお、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ脱退要求を送信してもよい。この場合は、グループ脱退要求は、クライアント１００を特定するための接続ＩＤも含む。
【０１３０】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ２２４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ脱退要求を却下してもよい。
【０１３１】
受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、ＣＰＵ２１０は、図１９に示すように、対応関係ＤＢ２２２から、接続ＩＤとグループＩＤとの組み合わせを削除する(ステップＳ２２６)。
【０１３２】
常時接続サーバ２００は、クライアント１００にグループ脱退が完了した旨を示すデータ送信する(ステップＳ２２８)。具体的には、ＣＰＵ２１０が、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して当該データをクライアント１００に送信する。
＜アプリケーションサーバによるクライアント脱退の処理手順の詳細＞
【０１３３】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント脱退の処理手順の詳細について説明する。図２２は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００によるクライアント脱退の処理手順の詳細を示すシーケンス図である。
【０１３４】
図２２を参照して、アプリケーションサーバ３００は、常時接続サーバ２００にクライアント１００を脱退させるための脱退要求を送信する(ステップＳ２５２)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、管理人またはサービス用のアプリケーションプログラムなどの要求に応じて、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にクライアント脱退要求を送信する。たとえば、クライアント脱退要求は、グループＩＤとグループに属するクライアントの接続ＩＤとを含む。
【０１３５】
常時接続サーバ２００のＣＰＵ２１０は、クライアント脱退要求に応じて、受信したグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ２５４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ脱退要求を却下する。
【０１３６】
受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、ＣＰＵ２１０は、図１９に示すように、対応関係ＤＢ２２２から、接続ＩＤとグループＩＤとの組み合わせを削除する(ステップＳ２５６)。常時接続サーバ２００は、アプリケーションサーバ３００にクライアント１００のグループからの脱退が完了した旨を示すデータ送信する(ステップＳ２５８)。
【０１３７】
次に、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるグループ作成の処理手順の詳細について説明する。図２３は、本実施の形態にかかるネットワークシステム１におけるスマートフォン５００または外部のパーソナルコンピュータによるクライアント脱退の処理手順の詳細を示すシーケンス図である。
【０１３８】
図２３を参照して、スマートフォン５００または外部のパーソナルコンピュータは、ユーザまたはアプリケーションプログラムからの要求に応じて、アプリケーションサーバ３００に、クライアント１００をグループから脱退させるためのクライアント脱退要求を送信する(ステップＳ２６０)。クライアント脱退要求は、グループを特定するためのグループＩＤとグループに属するクライアントの接続ＩＤとを含む。
【０１３９】
アプリケーションサーバ３００は、常時接続サーバ２００にクライアント脱退要求を送信する(ステップＳ２６２)。具体的には、アプリケーションサーバ３００のＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にクライアント脱退要求を送信する。
【０１４０】
常時接続サーバ２００のＣＰＵ２１０は、受信したクライアント脱退要求に含まれるグループＩＤが、対応関係ＤＢ２２２に含まれているか否かを判断する(ステップＳ２６４)。ＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれていない場合、グループ脱退要求を却下する。
【０１４１】
常時接続サーバ２００のＣＰＵ２１０は、受信したグループＩＤが対応関係ＤＢ２２２に含まれている場合、図１９に示すように、対応関係ＤＢ２２１から、グループＩＤとグループに属するクライアントの接続ＩＤとの組み合わせを削除する(ステップＳ２６６)。常時接続サーバ２００は、アプリケーションサーバ３００に、グループからのクライアント１００の脱退が完了した旨を示すデータを送信する(ステップＳ２６８)。
＜クライアントからグループへのデータ送信の処理手順の詳細＞
【０１４２】
次に、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細について説明する。図２４は、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１４３】
図２４を参照して、クライアント１００は、ユーザからメッセージを受け付ける(ステップＳ３１１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介してユーザからのメッセージの入力とグループＩＤの指定を受け付ける(ステップＳ３１１)。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ３１２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１４４】
なお、ユーザからのメッセージ入力に限らず、たとえば、ＣＰＵ１１０は、所定の時刻になった際に、常時接続サーバ２００にグループ一斉送信要求を送信しても良い。あるいは、ＣＰＵ１１０は、センサからの入力に応じて、常時接続サーバ２００にグループ一斉送信要求を送信しても良い。
【０１４５】
また、クライアント１００のＣＰＵ１１０は、通信インターフェイス１６０を介して、ＨＴＴＰプロトコルを利用して、常時接続サーバ２００にグループ一斉送信要求を送信してもよい。この場合は、グループ一斉送信要求は、クライアント１００を特定するための接続ＩＤも含むことが好ましい。
【０１４６】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、指定されたグループＩＤに対応する接続ＩＤを順に読み出して(ステップＳ３１４)、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ３１６)。ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３１４とステップＳ３１６の送信処理を繰り返す。
【０１４７】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３１４とステップＳ３１６のデータ送信処理が完了すると、送信結果を集計する(ステップＳ３１７)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して送信元のクライアント１００に集計された送信結果を送信する(ステップＳ３１８)。
【０１４８】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜アプリケーションサーバからグループへのデータ送信の処理手順の詳細＞
【０１４９】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について説明する。図２５は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１５０】
図２５を参照して、アプリケーションサーバ３００は、管理人、自身のアプリケーションプログラム、スマートフォン５００、外部のパーソナルコンピュータなどからメッセージを受け付ける(ステップＳ４１１)。ここでは、ＣＰＵ３１０は、入出力部３３０を介して管理人からのメッセージの入力を受け付ける。ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４１２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１５１】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ４１４)。ＣＰＵ１２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ４１６)。ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４１４とステップＳ４１６の送信処理を繰り返す。
【０１５２】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４１４とステップＳ４１６の送信処理が完了すると、送信結果を集計する(ステップＳ４１７)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して送信元のアプリケーションサーバ３００に集計された送信結果を送信する(ステップＳ４１８)。
【０１５３】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第２の実施の形態＞
【０１５４】
第１の実施の形態においては、送信元のクライアント１００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のクライアント１００に送信するものであった。しかしながら、本実施の形態においては、常時接続サーバ２００が、送信先のクライアント１００にデータを送信するたびに送信結果を送信元のクライアント１００へと送信するものである。
【０１５５】
なお、本実施の形態は、第１の実施の形態と比較して、図２４に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１５６】
以下では、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細について説明する。図２６は、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１５７】
図２６を参照して、クライアント１００は、ユーザからメッセージを受け付ける(ステップＳ３２１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介してユーザからのメッセージの入力を受け付ける(ステップＳ３２１)。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ３２２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１５８】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ３２４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ３２６)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して送信元のクライアント１００に送信結果を通知する(ステップＳ３２８)。本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
【０１５９】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３２４とステップＳ３２６とステップＳ３２８の送信処理と送信結果通知処理とを繰り返す。
＜第３の実施の形態＞
【０１６０】
第１の実施の形態においては、送信元のクライアント１００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のクライアント１００に送信するものであった。しかしながら、本実施の形態においては、送信元のクライアント１００からグループ一斉送信要求を受信した際に常時接続サーバ２００が要求を受け付けた旨を送信元のクライアント１００に送信し、かつグループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のクライアント１００に送信するものである。
【０１６１】
なお、本実施の形態は、第１の実施の形態と比較して、図２４に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１６２】
以下では、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細について説明する。図２７は、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１６３】
図２７を参照して、クライアント１００は、ユーザからメッセージを受け付ける(ステップＳ３３１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介してユーザからのメッセージの入力を受け付ける。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ３３２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１６４】
常時接続サーバ２００のＣＰＵ２１０は、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、クライアント１００からのグループ一斉送信要求を受け付けた旨を、送信元のクライアント１００に送信する(ステップＳ３３３)。
【０１６５】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ３３４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ３３６)。ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３３４とステップＳ３３６の送信処理を繰り返す。
【０１６６】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３３４とステップＳ３３６の送信処理が完了すると、送信結果を集計する(ステップＳ３３７)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して送信元のクライアント１００に集計された送信結果を送信する(ステップＳ３３８)。
【０１６７】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第４の実施の形態＞
【０１６８】
第１の実施の形態においては、送信元のクライアント１００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のクライアント１００に送信するものであった。しかしながら、本実施の形態においては、送信元のクライアント１００からグループ一斉送信要求を受信した際に常時接続サーバ２００が要求を受け付けた旨を送信し、送信先のクライアント１００に送信するたびに送信結果を送信元のクライアント１００へと送信するものである。
【０１６９】
なお、本実施の形態は、第１の実施の形態と比較して、図２４に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１７０】
以下では、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細について説明する。図２８は、本実施の形態にかかるネットワークシステム１におけるクライアント１００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１７１】
図２８を参照して、クライアント１００は、ユーザからメッセージを受け付ける(ステップＳ３４１)。具体的には、ＣＰＵ１１０は、入出力部１３０を介してユーザからのメッセージの入力を受け付ける。ＣＰＵ１１０は、通信インターフェイス１６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ３４２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１７２】
常時接続サーバ２００のＣＰＵ２１０は、通信インターフェイス２６０を介して、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、クライアント１００からのグループ一斉送信要求を受け付けた旨を、送信元のクライアント１００に送信する(ステップＳ３４３)。
【０１７３】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ３４４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ３４６)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００に送信結果を送信する(ステップＳ３４８)。本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
【０１７４】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ３４４とステップＳ３４６とステップＳ３４８の送信処理と送信結果通知処理とを繰り返す。
＜第５の実施の形態＞
【０１７５】
第１の実施の形態においては、アプリケーションサーバ３００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のアプリケーションサーバ３００に送信するものであった。しかしながら、本実施の形態においては、送信先のクライアント１００に送信するたびに送信結果をアプリケーションサーバ３００へと送信するものである。
【０１７６】
なお、本実施の形態は、第１の実施の形態と比較して、図２５に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１７７】
以下では、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について説明する。図２９は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１７８】
図２９を参照して、アプリケーションサーバ３００は、管理人、自身のアプリケーションプログラム、スマートフォン５００、外部のパーソナルコンピュータなどメッセージを受け付ける(ステップＳ４２１)。ここでは、ＣＰＵ３１０が、入出力部３３０を介して管理人からのメッセージの入力を受け付ける。ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４２２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１７９】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ４２４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ４２６)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介してアプリケーションサーバ３００に送信結果を送信する(ステップＳ４２８)。本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
【０１８０】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４２４とステップＳ４２６とステップＳ４２８の送信処理と送信結果通知処理とを繰り返す。
＜第６の実施の形態＞
【０１８１】
第１の実施の形態においては、送信元のアプリケーションサーバ３００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のアプリケーションサーバ３００に送信するものであった。しかしながら、本実施の形態においては、アプリケーションサーバ３００からグループ一斉送信要求を受信した際に常時接続サーバ２００が要求を受け付けた旨をアプリケーションサーバ３００に送信し、かつグループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果を送信元のアプリケーションサーバ３００に送信するものである。
【０１８２】
なお、本実施の形態は、第１の実施の形態と比較して、図２５に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１８３】
以下では、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について説明する。図３０は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１８４】
図３０を参照して、アプリケーションサーバ３００は、管理人、自身のアプリケーションプログラム、スマートフォン５００、外部のパーソナルコンピュータなどメッセージを受け付ける(ステップＳ４３１)。ここでは、ＣＰＵ３１０が、入出力部３３０を介して管理人からのメッセージの入力を受け付ける。ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４３２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１８５】
常時接続サーバ２００のＣＰＵ２１０は、通信インターフェイス２６０を介して、ＨＴＴＰプロトコルを利用して、アプリケーションサーバ３００からのグループ一斉送信要求を受け付けた旨を、送信元のアプリケーションサーバ３００に送信する(ステップＳ４３３)。
【０１８６】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ４３４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ４３６)。ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４３４とステップＳ４３６の送信処理を繰り返す。
【０１８７】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４３４とステップＳ４３６の送信処理が完了すると、送信結果を集計する(ステップＳ４３７)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して送信元のアプリケーションサーバ３００に集計された送信結果を送信する(ステップＳ４３８)。
【０１８８】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第７の実施の形態＞
【０１８９】
第１の実施の形態においては、アプリケーションサーバ３００からグループへのデータ送信の際に、常時接続サーバ２００が、グループに属する全ての送信先のクライアント１００へのデータ送信が完了してから送信結果をアプリケーションサーバ３００に送信するものであった。しかしながら、本実施の形態においては、アプリケーションサーバ３００からグループ一斉送信要求を受信した際に常時接続サーバ２００が要求を受け付けた旨を送信し、送信先のクライアント１００に送信するたびに送信結果をアプリケーションサーバ３００へと送信するものである。
【０１９０】
なお、本実施の形態は、第１の実施の形態と比較して、図２５に係る動作が異なるだけであって、他の構成は同様である。そのため、他の構成についての説明は、ここでは繰り返さない。
【０１９１】
以下では、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について説明する。図３１は、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細を示すシーケンス図である。
【０１９２】
図３１を参照して、アプリケーションサーバ３００は、管理人、自身のアプリケーションプログラム、スマートフォン５００、外部のパーソナルコンピュータなどメッセージを受け付ける(ステップＳ４４１)。ここでは、ＣＰＵ３１０は、入出力部３３０を介して管理人からのメッセージの入力を受け付ける。ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４４２)。グループ一斉送信要求は、グループＩＤおよびメッセージを含む。
【０１９３】
常時接続サーバ２００のＣＰＵ２１０は、通信インターフェイス２６０を介して、ＨＴＴＰプロトコルを利用して、アプリケーションサーバ３００からのグループ一斉送信要求を受け付けた旨を、送信元のアプリケーションサーバ３００に送信する(ステップＳ４４３)。
【０１９４】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２２を参照することによって、グループＩＤに対応する接続ＩＤを順に読み出す(ステップＳ４４４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介してクライアント１００にメッセージを送信する(ステップＳ４４６)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介してアプリケーションサーバ３００に送信結果を送信する(ステップＳ４４８)。本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
【０１９５】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４４４とステップＳ４４６とステップＳ４４８の送信処理と送信結果通知処理とを繰り返す。
＜第８の実施の形態＞
【０１９６】
次に、第８の実施の形態として、特定の型番の家電のみにデータを送信する形態について説明する。
＜ネットワークシステムの全体構成＞
【０１９７】
まず、本実施の形態にかかるネットワークシステム１の全体構成について説明する。図３２は、本実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【０１９８】
図３２を参照して、ネットワークシステム１は、住居またはオフィスなどに配置されるテレビ１００Ａ，１００Ｂ，１００Ｃ、掃除機１００Ｄ，１００Ｅ，１００Ｆ、エアコン１００Ｇ，１００Ｈを含む。以下では、クライアント１００Ａ〜１００Ｈを総称して、クライアント１００ともいう。ネットワークシステム１は、クライアント１００と常時接続が可能な常時接続サーバ２００と、様々なサービスを提供するアプリケーションサーバ３００とを含む。
【０１９９】
クライアント１００としては、たとえば、掃除機、テレビ、エアコン、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、ＩＨクッキングヒーター、電子レンジ、照明などの家電が挙げられる。さらに、クライアントは、通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のＡＶ機器、インターホンシステムなどを含んでもよい。
【０２００】
常時接続サーバ２００とアプリケーションサーバ３００とは、クライアントのいずれかと同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
【０２０１】
本実施の形態においては、常時接続サーバ２００とアプリケーションサーバ３００とが別々のコンピュータである。しかしながら、常時接続サーバとアプリケーションサーバとが同一のコンピュータであってもよい。たとえば、１つのコンピュータ、すなわち装置としてのサーバが、クライアントと常時接続するための通信サービスプログラムと、クライアントを制御するためのアプリケーションサービスプログラムとを搭載してもよい。また、１つのアプリケーションサーバが複数のアプリケーションサービスプログラムを搭載してもよい。
＜ネットワークシステムの動作概要＞
【０２０２】
次に、本実施の形態にかかるネットワークシステム１の動作概要について説明する。ここでは、複数のクライアント１００が商品および／または型番毎に複数のグループに分けられている。具体的には、常時接続サーバ２００が接続可能な対応関係ＤＢサーバあるいは常時接続サーバ２００自身が、当該グループ分けを示すデータを記憶している。そして、アプリケーションサーバ３００は、スマートフォン５００および外部のパーソナルコンピュータなどからのデータをクライアント１００に伝えるサービスを提供する。
【０２０３】
スマートフォン５００または外部のパーソナルコンピュータなどが、商品または型番を指定するためのグループＩＤと、当該グループに送信するためのメッセージとをアプリケーションサーバ３００に送信する。アプリケーションサーバ３００は、グループを指定するためのグループＩＤと、当該グループに送信するためのメッセージとを常時接続サーバ２００に送信する。常時接続サーバ２００は、グループＩＤに対応する複数のクライアント１００にデータ本体をプッシュする。たとえば、常時接続サーバ２００は、常時接続中のクライアント１００のうちの、テレビ１００Ａ，１００Ｂ，１００Ｃだけにリコール情報に関するメッセージを送る。
【０２０４】
このように、本実施の形態においては、スマートフォン５００、外部のパーソナルコンピュータ、アプリケーションサーバ３００、クライアント１００が、常時接続サーバ２００と常時接続している複数のクライアント１００のうちの、所望の商品のみに、または所望の型番の家電のみにデータを送信することができる。以下では、このような機能を実現するための対応関係ＤＢと、常時接続サーバ２００のＣＰＵ２１０の動作について説明する。なお、本実施の形態にかかるネットワークシステム１の他の構成および動作などについては、第１の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
＜対応関係ＤＢ＞
【０２０５】
本実施の形態においては、図３３に示すように、常時接続サーバ２００とは別の対応関係ＤＢサーバ２５０が、グループ名称とグループＩＤとの対応関係ＤＢ２２４を記憶する。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２４を記憶してもよい。
【０２０６】
また、図３４に示すように、常時接続サーバ２００とは別の対応関係ＤＢサーバ２５０が、グループＩＤと接続ＩＤとの対応関係ＤＢ２２５を記憶する。なお、接続ＩＤとは、アプリケーションサーバ３００が提供するサービスとクライアント１００との関係を特定するための情報である。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２４を記憶してもよい。
【０２０７】
なお、図示してはいないが、対応関係ＤＢは、グループの階層を示す対応関係ＤＢを含んでもよい。たとえば、対応関係ＤＢは、上位のグループＩＤとしての商品毎のグループＩＤを記憶し、中位の複数のグループＩＤとしての型番毎のグループＩＤを記憶しても良い。この場合、対応関係ＤＢは、商品のグループＩＤの各々に対応付けて、複数の型番のグループＩＤを格納する。
＜アプリケーションサーバからグループへのデータ送信の処理手順の詳細＞
【０２０８】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について、図２５を参照しながら説明する。
【０２０９】
アプリケーションサーバ３００は、商品のメーカなどからリコール情報を受け付ける(ステップＳ４１１)。具体的には、ＣＰＵ３１０は、入出力部３３０を介してと商品名または型番を示すグループＩＤとメッセージの入力を受け付ける。ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４１２)。ここでは、グループ一斉送信要求は、テレビの型番１を特定するためのグループＩＤ「００２００１」と「このテレビはリコール対象製品だよ。電話して確認してもらってね。」というメッセージとを含む。
【０２１０】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢ２２５を参照することによって、グループＩＤ「００２００１」に対応する接続ＩＤ「ＣＣＣ」を順に読み出す(ステップＳ４１４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して接続ＩＤ「ＣＣＣ」を有するテレビ１００Ａにメッセージを送信する(ステップＳ４１６、図３２を参照。)。ＣＰＵ２１０は、グループＩＤ「００２００１」に対応する接続ＩＤ「ＦＦＦ」「ＪＪＪ」を有するテレビ１００Ｂ，１００Ｃに関しても、ステップＳ４１４とステップＳ４１６の送信処理を繰り返す（図３２を参照。）。
【０２１１】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４１４とステップＳ４１６の送信処理が完了すると、送信結果を集計する(ステップＳ４１７)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して送信元のアプリケーションサーバ３００に集計された送信結果を送信する(ステップＳ４１８)。
【０２１２】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第９の実施の形態＞
【０２１３】
次に、第９の実施の形態として、マンションの特定の階層にある家電のみにデータを送信する形態について説明する。
＜ネットワークシステムの全体構成＞
【０２１４】
まず、本実施の形態にかかるネットワークシステム１の全体構成について説明する。図３５は、本実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【０２１５】
図３５を参照して、ネットワークシステム１は、住居またはオフィスなどに配置される掃除機１００Ａ〜１００Ｅを含む。以下では、クライアント１００Ａ〜１００Ｅを総称して、クライアント１００ともいう。ネットワークシステム１は、クライアント１００と常時接続が可能な常時接続サーバ２００と、様々なサービスを提供するアプリケーションサーバ３００と、アプリケーションサーバ３００と、スマートフォン５００またはパーソナルコンピュータなどとを含む。
【０２１６】
クライアント１００としては、たとえば、掃除機、テレビ、エアコン、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、ＩＨ（Induction Heating）クッキングヒーター、電子レンジ、照明などの家電が挙げられる。さらに、クライアントは、通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のＡＶ機器、インターホンシステムなどを含んでもよい。
【０２１７】
常時接続サーバ２００とアプリケーションサーバ３００とは、クライアントのいずれかと同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
【０２１８】
また、本実施の形態においては、常時接続サーバ２００とアプリケーションサーバ３００とが別々のコンピュータである。しかしながら、常時接続サーバとアプリケーションサーバとが同一のコンピュータであってもよい。たとえば、１つのコンピュータ、すなわち装置としてのサーバが、クライアントと常時接続するための通信サービスプログラムと、クライアントを制御するためのアプリケーションサービスプログラムとを搭載してもよい。また、１つのアプリケーションサーバが複数のアプリケーションサービスプログラムを搭載してもよい。
＜ネットワークシステムの動作概要＞
【０２１９】
次に、本実施の形態にかかるネットワークシステム１の動作概要について説明する。ここでは、複数のクライアント１００が国および地方のグループに分けられ、さらに都市のグループに分けられ、さらにマンションのグループに分けられ、さらに階層のグループに分けられている。具体的には、常時接続サーバ２００が接続可能な対応関係ＤＢサーバあるいは常時接続サーバ２００自身が、当該グループ分けを示すデータを記憶している。そして、アプリケーションサーバ３００は、スマートフォン５００および外部のパーソナルコンピュータなどからのデータをクライアント１００にプッシュするサービスを提供する。
【０２２０】
スマートフォン５００または外部のパーソナルコンピュータなどが、マンションの階層を指定するためのグループＩＤと、当該グループに送信するためのメッセージとをアプリケーションサーバ３００に送信する。アプリケーションサーバ３００は、グループを指定するためのグループＩＤと、当該グループに送信するためのメッセージとを常時接続サーバ２００に送信する。常時接続サーバ２００は、グループＩＤに対応する複数のクライアント１００にデータ本体をプッシュする。たとえば、常時接続サーバ２００は、常時接続中のクライアント１００のうちの、１０階以上の家電だけに「９月２１日はマンションの清掃日だよ。」とメッセージを送り、１０階未満の家電だけに「９月２２日はマンションの清掃日だよ。」とメッセージを送る。
【０２２１】
このように、本実施の形態においては、スマートフォン５００、外部のパーソナルコンピュータ、アプリケーションサーバ３００、クライアント１００が、常時接続サーバ２００と常時接続している複数のクライアント１００のうちの、所望の階数の部屋にある家電のみにデータを送信することができる。以下では、このような機能を実現するための対応関係ＤＢと、常時接続サーバ２００のＣＰＵ２１０の動作について説明する。なお、本実施の形態にかかるネットワークシステム１の他の構成については、第１の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
＜対応関係ＤＢ＞
【０２２２】
本実施の形態においては、図３６に示すように、常時接続サーバ２００とは別の対応関係ＤＢサーバ２５０が、上位階層としてのグループ名称とグループＩＤとの対応関係ＤＢ２２６と、中位階層としてのグループ名称とグループＩＤとの対応関係ＤＢ２２７と、下位階層としてのグループ名称とグループＩＤとの対応関係ＤＢ２２８と、さらに下位階層としてのグループ名称とグループＩＤとの対応関係ＤＢ２２９とを記憶する。なお、常時接続サーバ２００のメモリ２２０が、対応関係ＤＢ２２６，２２７，２２８，２２９を記憶してもよい。
＜アプリケーションサーバからグループへのデータ送信の処理手順の詳細＞
【０２２３】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について、図２５を参照しながら説明する。
【０２２４】
アプリケーションサーバ３００は、管理人のスマートフォン５００またはパーソナルコンピュータからグループＩＤとメッセージとを受け付ける(ステップＳ４１１)。具体的には、ＣＰＵ３１０は、通信インターフェイス３６０を介して、日本の近畿地方を特定するためのグループＩＤと、奈良県奈良市を特定するためのグループＩＤと、Ｃマンションを特定するためのグループＩＤと、１０階〜１９階の各々を特定するためのグループＩＤとメッセージとを管理人のスマートフォン５００から受信する。
【０２２５】
ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４１２)。ここでは、グループ一斉送信要求は、グループＩＤとメッセージとを含む。グループＩＤは、上位階層としてのグループＩＤ「２０２」と中位階層としてのグループＩＤ「５０１」と下位階層「２２３」と下位階層「５１０」〜「５１９」とを組み合わせた「２０２５０１２２３５１０」〜「２０２５０１２２３５１９」である。メッセージは、「９月２１日はマンションの清掃日だよ。」というテキストである。
【０２２６】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢを参照することによって、グループＩＤ「２０２５０１２２３５１０」〜「２０２５０１２２３５１９」に対応する接続ＩＤを順に読み出す(ステップＳ４１４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して接続ＩＤを有する掃除機１００Ａにメッセージを送信する(ステップＳ４１６、図３５を参照。)。ＣＰＵ２１０は、グループＩＤに対応する接続ＩＤを有する掃除機１００Ｂ，１００Ｃに関して、ステップＳ４１４とステップＳ４１６の送信処理を繰り返す（図３５を参照。）。
【０２２７】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４１４とステップＳ４１６の送信処理が完了すると、送信結果を集計する(ステップＳ４１７)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して送信元のアプリケーションサーバ３００に集計された送信結果を送信する(ステップＳ４１８)。
【０２２８】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第１０の実施の形態＞
【０２２９】
次に、第１０の実施の形態として、特定のエリアにある家電のみにデータを送信する形態について説明する。
＜ネットワークシステムの全体構成＞
【０２３０】
まず、本実施の形態にかかるネットワークシステム１の全体構成について説明する。図３７は、本実施の形態にかかるネットワークシステム１の全体構成と動作概要とを示すイメージ図である。
【０２３１】
図３７を参照して、ネットワークシステム１は、住居またはオフィスなどに配置される複数のクライアント１００を含む。ネットワークシステム１は、クライアント１００と常時接続が可能な常時接続サーバ２００と、様々なサービスを提供するアプリケーションサーバ３００と、アプリケーションサーバ３００と、スマートフォン５００またはパーソナルコンピュータなどとを含む。
【０２３２】
クライアント１００としては、たとえば、掃除機、テレビ、エアコン、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、ＩＨクッキングヒーター、電子レンジ、照明などの家電が挙げられる。さらに、クライアントは、通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のＡＶ機器、インターホンシステムなどを含んでもよい。
【０２３３】
常時接続サーバ２００とアプリケーションサーバ３００とは、クライアントのいずれかと同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
【０２３４】
本実施の形態においては、常時接続サーバ２００とアプリケーションサーバ３００とが別々のコンピュータである。しかしながら、常時接続サーバとアプリケーションサーバとが同一のコンピュータであってもよい。たとえば、１つのコンピュータ、すなわち装置としてのサーバが、クライアントと常時接続するための通信サービスプログラムと、クライアントを制御するためのアプリケーションサービスプログラムとを搭載してもよい。また、１つのアプリケーションサーバが複数のアプリケーションサービスプログラムを搭載してもよい。
＜ネットワークシステムの動作概要＞
【０２３５】
次に、本実施の形態にかかるネットワークシステム１の動作概要について説明する。ここでも、複数のクライアント１００が国および地方のグループに分けられ、さらに都市のグループに分けられ、さらにマンションのグループに分けられ、さらに階層のグループに分けられている。具体的には、常時接続サーバ２００が接続可能な対応関係ＤＢサーバあるいは常時接続サーバ２００自身が、当該グループ分けを示すデータを記憶している。そして、アプリケーションサーバ３００は、スマートフォン５００および外部のパーソナルコンピュータなどからのデータをクライアント１００にプッシュするサービスを提供する。
【０２３６】
スマートフォン５００または外部のパーソナルコンピュータなどが、都市・マンション・階層などを指定するためのグループＩＤと、当該グループに送信するためのメッセージとをアプリケーションサーバ３００に送信する。アプリケーションサーバ３００は、グループを指定するためのグループＩＤと、当該グループに送信するためのメッセージとを常時接続サーバ２００に送信する。常時接続サーバ２００は、グループＩＤに対応する複数のクライアント１００にデータ本体をプッシュする。たとえば、常時接続サーバ２００は、常時接続中のクライアント１００のうちの、特定のエリアにある家電だけに市長からの挨拶を送信する。
【０２３７】
このように、本実施の形態においては、スマートフォン５００、外部のパーソナルコンピュータ、アプリケーションサーバ３００、クライアント１００が、常時接続サーバ２００と常時接続している複数のクライアント１００のうちの、所望のエリアにある家電のみにデータを送信することができる。以下では、このような機能を実現するための常時接続サーバ２００のＣＰＵ２１０の動作について説明する。なお、本実施の形態にかかるネットワークシステム１の他の構成については、第１の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。そして、対応関係ＤＢに関しては、第９の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
＜アプリケーションサーバからグループへのデータ送信の処理手順の詳細＞
【０２３８】
次に、本実施の形態にかかるネットワークシステム１におけるアプリケーションサーバ３００からグループへのデータ送信の処理手順の詳細について説明する。
【０２３９】
図２５を参照して、アプリケーションサーバ３００は、市長のスマートフォン５００またはパーソナルコンピュータからグループＩＤとメッセージとを受け付ける(ステップＳ４１１)。具体的には、ＣＰＵ３１０は、通信インターフェイス３６０を介して、日本の近畿地方を特定するためのグループＩＤ「２０２」と、奈良県奈良市を特定するためのグループＩＤ「５０１」とメッセージとを受信する。なお、市長のスマートフォン５００またはパーソナルコンピュータは、２つのグループＩＤをマージして、日本の近畿地方の奈良県奈良市を特定するための１つのグループＩＤ「２０２５０１」とメッセージとをアプリケーションサーバ３００に送信しても良い。
【０２４０】
ＣＰＵ３１０は、通信インターフェイス３６０を介して、ＨＴＴＰプロトコルを利用して常時接続サーバ２００にグループ一斉送信要求を送信する(ステップＳ４１２)。ここでは、グループ一斉送信要求は、グループＩＤと市民向けの挨拶とを含む。なお、グループＩＤは、上位階層としてのグループＩＤ「２０２」と中位階層としてのグループＩＤ「５０１」とを別のデータとして含むものであってもよいし、上位階層としてのグループＩＤ「２０２」と中位階層としてのグループＩＤ「５０１」とを組み合わせた１つのグループＩＤ「２０２５０１」であってもよい。これによって、「２０２５０１」よりも下位の全てのグループに属するクライアント１００が送信対象となる。
【０２４１】
常時接続サーバ２００のＣＰＵ２１０は、対応関係ＤＢを参照することによって、グループＩＤ「２０２５０１」に対応する接続ＩＤを順に読み出す(ステップＳ４１４)。ＣＰＵ２１０は、ＷｅｂＳｏｃｋｅｔプロトコルを利用して、通信インターフェイス２６０を介して接続ＩＤを有するクライアント１００にメッセージを送信する(ステップＳ４１６、図３５を参照。)。ＣＰＵ２１０は、グループＩＤに対応する接続ＩＤを有するクライアント１００に関して、ステップＳ４１４とステップＳ４１６の送信処理を繰り返す（図３５を参照。）。
【０２４２】
ＣＰＵ２１０は、グループＩＤに対応するクライアント１００全てに関して、ステップＳ４１４とステップＳ４１６の送信処理が完了すると、送信結果を集計する(ステップＳ４１７)。ＣＰＵ２１０は、ＨＴＴＰプロトコルを利用して、通信インターフェイス２６０を介して送信元のアプリケーションサーバ３００に集計された送信結果を送信する(ステップＳ４１８)。
【０２４３】
なお、送信結果は、データが無事にクライアント１００に受信されたか否かに関する情報を含む。また、集計された送信結果は、送信結果のリストおよび／または通信成功率（＝データを無事に受信したクライアント１００の数／グループに属するクライアント１００の数）を含む。そして、本実施形態においては、常時接続サーバ２００は、送信結果または集計された送信結果をメモリ２２０に蓄積する。ただし、送信結果または集計された送信結果の蓄積場所は常時接続サーバ２００のメモリ２２０に限定されるものではなく、常時接続サーバ２００は、送信結果または集計された送信結果を他のデータベース（たとえば、対応関係ＤＢ２５０など）またはＮＡＳ（Network Attached Storage）などの外部ストレージに蓄積してもよい。これによって、アプリケーションサーバ３００およびクライアント１００などの外部の機器が送信結果を参照することができる。
＜第１１の実施の形態＞
【０２４４】
上記の実施の形態においては、外部のアプリケーションサーバ３００、クライアント１００、スマートフォン５００などから参照可能なように、常時接続サーバ２００が送信結果および集計された送信結果を蓄積するものであった。
【０２４５】
しかしながら、常時接続サーバ２００は、送信結果だけでなく、アプリケーションサーバ３００およびクライアント１００などから受け付けた、グループ一斉送信要求（データのプッシュ命令）も、外部のアプリケーションサーバ３００、クライアント１００、スマートフォン５００などから参照可能なように、蓄積してもよい。
＜その他の応用例＞
【０２４６】
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体（あるいはメモリ）を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０２４７】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２４８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０２４９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０２５０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２５１】
１        ：ネットワークシステム
１００    ：クライアント
１１０    ：ＣＰＵ
１１０Ａ  ：クライアントＡＰＩ
１２０    ：メモリ
１４０    ：カメラ
１５０    ：家電制御回路
１６０    ：通信インターフェイス
２００    ：常時接続サーバ
２１０    ：ＣＰＵ
２１０Ａ  ：ＷＳサーバ
２２０    ：メモリ
２６０    ：通信インターフェイス
３００    ：アプリケーションサーバ
３１０    ：ＣＰＵ
３１０Ａ  ：サーバＡＰＩ
３２０    ：メモリ
３６０    ：通信インターフェイス
５００    ：スマートフォン
【図１】
0005870079.tif 000002
【図２】
0005870079.tif 000003
【図３】
0005870079.tif 000004
【図４】
0005870079.tif 000005
【図５】
0005870079.tif 000006
【図６】
0005870079.tif 000007
【図７】
0005870079.tif 000008
【図８】
0005870079.tif 000009
【図９】
0005870079.tif 000010
【図１０】
0005870079.tif 000011
【図１１】
0005870079.tif 000012
【図１２】
0005870079.tif 000013
【図１３】
0005870079.tif 000014
【図１４】
0005870079.tif 000015
【図１５】
0005870079.tif 000016
【図１６】
0005870079.tif 000017
【図１７】
0005870079.tif 000018
【図１８】
0005870079.tif 000019
【図１９】
0005870079.tif 000020
【図２０】
0005870079.tif 000021
【図２１】
0005870079.tif 000022
【図２２】
0005870079.tif 000023
【図２３】
0005870079.tif 000024
【図２４】
0005870079.tif 000025
【図２５】
0005870079.tif 000026
【図２６】
0005870079.tif 000027
【図２７】
0005870079.tif 000028
【図２８】
0005870079.tif 000029
【図２９】
0005870079.tif 000030
【図３０】
0005870079.tif 000031
【図３１】
0005870079.tif 000032
【図３２】
0005870079.tif 000033
【図３３】
0005870079.tif 000034
【図３４】
0005870079.tif 000035
【図３５】
0005870079.tif 000036
【図３６】
0005870079.tif 000037
【図３７】
0005870079.tif 000038