JP2015103123A - ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム - Google Patents

ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム Download PDF

Info

Publication number
JP2015103123A
JP2015103123A JP2013244544A JP2013244544A JP2015103123A JP 2015103123 A JP2015103123 A JP 2015103123A JP 2013244544 A JP2013244544 A JP 2013244544A JP 2013244544 A JP2013244544 A JP 2013244544A JP 2015103123 A JP2015103123 A JP 2015103123A
Authority
JP
Japan
Prior art keywords
polling
server
application server
electronic device
command
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.)
Pending
Application number
JP2013244544A
Other languages
English (en)
Inventor
佳世 森長
Kayo Morinaga
佳世 森長
戸嶋 朗
Akira Toshima
朗 戸嶋
瑞 作田
Tama Sakuta
瑞 作田
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 JP2013244544A priority Critical patent/JP2015103123A/ja
Priority to CN201410694214.3A priority patent/CN104683434B/zh
Priority to US14/555,651 priority patent/US20150149536A1/en
Publication of JP2015103123A publication Critical patent/JP2015103123A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Selective Calling Equipment (AREA)
  • Telephonic Communication Services (AREA)

Abstract

【課題】常時接続できないクライアントとサーバとの通信を従来通り可能にしたままで、常時接続できるクライアントとサーバとが常時接続を利用した通信ができるネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラムを提供する。
【解決手段】電子機器と、前記電子機器と常時接続するための常時接続サーバと、前記電子機器からのポーリングに応じて前記電子機器にデータを送信するためのアプリケーションサーバとを備えるネットワークシステムが提供される。前記アプリケーションサーバは、前記常時接続サーバを介して前記電子機器にポーリング命令をプッシュする。
【選択図】図1

Description

本発明は、クライアントとサーバとの間のデータの送受信の技術に関し、特に常時接続を利用してデータの送受信を行うネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラムに関する。
従来から、通信機器が互いにデータを送受信するための様々な技術が知られている。たとえば、クライアント側からのポーリングに応じて、サーバがクライアントとのデータの送受信を行う技術が知られている。
ポーリングに関する技術として、特開2009−130438号公報(特許文献1)には、データ通信装置、データ通信装置の制御方法、データ通信装置制御プログラムおよび該プログラムを記録したコンピュータ読み取り可能な記録媒体が開示されている。特開2009−130438号公報(特許文献1)によると、携帯通信端末は、自装置で発生したイベントを検知するイベント検知部と、イベントと対応付けてポーリング間隔を記憶しているポーリング情報データベースと、イベント検知部が検知したイベントと対応付けられたポーリング間隔をポーリング情報データベースから取得し、所定の時間、該ポーリング間隔に変更するポーリング設定部とポーリング設定部が変更したポーリング間隔で、所定の時間、ポーリングを実施する電子メール取得部と、を備えている。そのため、バッテリーの消耗を軽減するとともに、ユーザにとって最適なポーリング間隔でデータを取得できる。
特開2013−172519号公報(特許文献2)には、電力制御装置、通信制御方法及び通信制御プログラムが開示されている。特開2013−172519号公報(特許文献2)によると、電力制御装置が有する制御装置(通信制御装置)は、各給電装置に問合せをし、各給電装置の状態を取得する。そして、制御装置は、取得した各給電装置の状態により、各給電装置の制御に必要な通信頻度を予測し、高い通信頻度が必要な給電装置ほど、制御装置から次回の問合せをするまでの時間(ポーリング間隔)を短く設定する。また、制御装置は、問合せを行なう度に、ポーリング間隔を更新する。
しかしながら、ポーリングが行われるまでの間、サーバからクライアントへデータをプッシュすることができない。そこで、近年では、TCP(Transmission Control Protocol)上で動作するWebSocketという常時接続に関する技術が開発されている。WebSocketは、インターネットの標準化団体であるW3CとIETFがウェブサーバとウェブブラウザとの間の双方向通信用の技術規格である。WebSocketプロトコルの仕様はRFC(Request For Comment)6455に規定されている。
特開2009−130438号公報 特開2013−172519号公報
WebSocketを利用すれば任意のタイミングでサーバからクライアントへデータをプッシュできるが、ネットワークシステムに含まれる全てのクライアントがWebSocketに対応していない場合がある。本発明の目的は、常時接続できないクライアントとサーバとの通信を従来通り可能にしたままで、常時接続できるクライアントとサーバとが常時接続を利用した通信ができるネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラムを提供することにある。
この発明のある態様に従うと、電子機器と、電子機器と常時接続するための常時接続サーバと、電子機器からのポーリングに応じて電子機器にデータを送信するためのアプリケーションサーバとを備えるネットワークシステムが提供される。アプリケーションサーバは、アプリケーションサーバに向けてポーリングさせるためのポーリング命令を常時接続サーバを介して電子機器にプッシュする。
好ましくは、アプリケーションサーバは、受け付けた命令の種類に応じて、常時接続サーバを介して電子機器にポーリング命令をプッシュするか否かを決定する。
好ましくは、アプリケーションサーバは、即時に録画を開始するための命令を受け付けた場合(あるいは、即時に録画を開始することが望ましい場合)、常時接続サーバを介して電子機器にポーリング命令をプッシュし、録画の予約のための命令を受け付けた場合(あるいは、即時に録画を開始しなくてもよい場合)、ポーリング命令をプッシュすることなく電子機器からのポーリングを待つ。
好ましくは、アプリケーションサーバは、即時に撮影を開始するための命令を受け付けた場合、常時接続サーバを介して電子機器にポーリング命令をプッシュし、撮影の予約のための命令を受け付けた場合に、ポーリング命令をプッシュすることなく電子機器からのポーリングを待つ。
好ましくは、アプリケーションサーバは、有料サービスに関するデータを送信する場合、常時接続サーバを介して電子機器にポーリング命令をプッシュし、無料サービスに関するデータを送信する場合、ポーリング命令をプッシュすることなく電子機器からのポーリングを待つ。
好ましくは、アプリケーションサーバは、他の電子機器からメッセージを受信した場合、常時接続サーバを介して電子機器にポーリング命令をプッシュし、電子機器は、アプリケーションサーバにポーリングすることによってメッセージを受信し、メッセージを出力する。
好ましくは、電子機器は、カメラを含む。アプリケーションサーバは、他の電子機器から命令を受信した場合、常時接続サーバを介して電子機器にポーリング命令をプッシュする。電子機器は、アプリケーションサーバにポーリングすることによってアプリケーションサーバから撮影命令を受信して、カメラを用いて撮影する。
好ましくは、電子機器は、番組を録画する機能を有する。アプリケーションサーバは、他の電子機器から命令を受信した場合、常時接続サーバを介して電子機器にポーリング命令をプッシュする。電子機器は、アプリケーションサーバにポーリングすることによってアプリケーションサーバから録画命令を受信して、番組を録画する。
この発明の別の態様に従うと、電子機器が常時接続サーバと常時接続を開始するステップと、アプリケーションサーバが、常時接続サーバを介して電子機器にポーリング命令をプッシュするステップと、電子機器が、アプリケーションサーバにポーリングするステップと、アプリケーションサーバが、ポーリングに応じて電子機器にデータを送信するステップとを備える、通信方法が提供される。
この発明の別の態様に従うと、常時接続サーバと常時接続し、アプリケーションサーバとデータを通信するための通信インターフェイスと、通信インターフェイスを利用することによって、常時接続サーバからポーリング命令を受信し、アプリケーションサーバにポーリングし、アプリケーションサーバからデータを受信するためのプロセッサとを備える、電子機器が提供される。
この発明の別の態様に従うと、常時接続サーバと電子機器と通信するための通信インターフェイスと、通信インターフェイスを利用することによって、常時接続サーバを介して電子機器にポーリング命令をプッシュし、電子機器からのポーリングに応じて電子機器にデータを送信するためのプロセッサとを備える、アプリケーションサーバが提供される。
この発明の別の態様に従うと、プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、常時接続サーバと常時接続を開始するステップと、通信インターフェイスを利用することによって、常時接続サーバからポーリング命令を受信するステップと、通信インターフェイスを利用することによって、アプリケーションサーバにポーリングするステップと、通信インターフェイスを利用することによって、アプリケーションサーバからデータを受信するステップとをプロセッサに実行させる。
この発明の別の態様に従うと、プロセッサと通信インターフェイスとを含むアプリケーションサーバで利用されるプログラムが提供される。プログラムは、通信インターフェイスを利用することによって、常時接続サーバを介して電子機器にポーリング命令を送信するステップと、通信インターフェイスを利用することによって、電子機器からのポーリングを受けるステップと、通信インターフェイスを利用することによって、電子機器にデータを送信するステップとをプロセッサに実行させる。
以上のように、この発明によれば、常時接続できないクライアントとサーバとの通信を従来通り可能にしたままで、常時接続できるクライアントとサーバとが常時接続を利用した通信ができるネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラムが提供される。
第1の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 本実施の形態にかかるクライアント100のハードウェア構成を表わすブロック図である。 本実施の形態にかかる常時接続サーバ200のハードウェア構成を表わすブロック図である。 本実施の形態にかかるアプリケーションサーバ300のハードウェア構成を表わすブロック図である。 本実施の形態にかかるスマートフォン500のハードウェア構成を表わすブロック図である。 本実施の形態にかかるネットワークシステム1における常時接続に関するデータのやり取りの処理手順を示すシーケンス図である。 第1の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。 第1の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。 第2の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第2の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。 第2の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。 第3の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第3の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。 第3の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。 第4の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第4の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。 第4の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
また、以下では、常時接続の一例として、WebSocketプロトコルを利用した通信について説明する。しかしながら、常時接続サーバから任意のタイミングでクライアントにデータをプッシュできればよく、本発明はWebSocketプロトコルを利用する常時接続に限定されるものではない。
<第1の実施の形態>
<ネットワークシステムの全体構成>
まず、本実施の形態にかかるネットワークシステム1の全体構成について説明する。図1は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。
図1を参照して、ネットワークシステム1は、住居またはオフィスなどに配置される複数のクライアント100A,100B,100Cと、クライアント100A,100Bと常時接続が可能な常時接続サーバ200と、クライアント100A,100B,100Cに関する様々なサービスを提供するアプリケーションサーバ300とを含む。クライアントとしては、たとえば、掃除機100A、テレビ100B、エアコン100C、洗濯機、冷蔵庫、炊飯器、空気清浄器、床暖房、IH(Induction Heating)クッキングヒーター、電子レンジ、照明などの家電が挙げられる。さらに、クライアントは、通信機器であればよく、たとえば、パーソナルコンピュータ、テレビ以外のAV機器、インターホンシステムなどを含んでもよい。また、常時接続サーバ200とアプリケーションサーバ300とは、クライアントと同じ住居内、オフィス内、ビル内、会社あるいは学校の構内に存在するサーバなどを含んでもよい。
家電と各サーバ間は、光ファイバ等の回線を経由し、途中に、光回線終端装置、無線LAN通信を行うためのアクセスポイント、ルータ等が接続されてもよい。家電は、ネットワークに接続する手段として、IEEE802.11a/b/g/n/acなどの無線LAN通信、あるいは、有線LANなどが用いられるが、接続方法はこれらに限定されるものではない。
そして、本実施の形態においては、掃除機100Aおよびテレビ100Bは、WebSocketプロトコルを利用して、常時接続サーバ200と常時接続が可能である。そして、掃除機100Aは、HTTPプロトコルを利用して、各種のサービスを提供するためのアプリケーションサーバ300とデータを送受信することもできる。同様に、テレビ100Bも、HTTPプロトコルを利用して、各種のサービスを提供するためのアプリケーションサーバ300とデータを送受信することもできる。
一方、エアコン100Cは、WebSocketプロトコルに対応していないため、常時接続サーバ200と常時接続ができない。あるいは、エアコン100Cは、図示しないプロキシサーバを介してインターネットに接続されるため、常時接続サーバ200と常時接続ができない。しかしながら、エアコン100Cは、従来通りのHTTPプロトコルを利用して、各種のサービスを提供するためのアプリケーションサーバ300と直接的にデータを送受信することはできる。
なお、本実施の形態においては、常時接続サーバ200とアプリケーションサーバ300とが別々のコンピュータである。換言すれば、常時接続サーバ200において、クライアントと常時接続するためのサービスプログラムが稼働する。そして、アプリケーションサーバ300において、クライアントに情報を送信することによってクライアントを制御するためのサービスプログラムや、クライアントからの情報を取得することによって当該情報を他の電子機器で利用するためのサービスプログラムなどが稼働する。
しかしながら、常時接続サーバとアプリケーションサーバとが同一のコンピュータであってもよい。たとえば、1つのコンピュータ、すなわち装置としてのサーバが、クライアントと常時接続するための通信サービスプログラムと、クライアントを制御するためのアプリケーションサービスプログラムとを搭載してもよい。また、1つのアプリケーションサーバが複数のアプリケーションサービスプログラムを搭載してもよい。
また、本実施の形態にかかる構成は、HTTP/WebSocketプロトコルの他に、SSLで通信路を暗号化できるHTTPS/WSSプロトコルでも利用可能である。すなわち、本実施形態にかかるネットワークシステム1は、HTTPS/WSSプロトコルを利用するシステムにも適応できる。
<ネットワークシステムの動作概要>
次に、本実施の形態にかかるネットワークシステム1の動作概要について説明する。まず、掃除機100A、テレビ100B、エアコン100Cなどのクライアントの各々は、定期的に、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングしている。ただし、常時接続サーバ200との常時接続が可能な掃除機100Aおよびテレビ100Bは、定期的なポーリングをしない形態であってもよい。
ここでは、スマートフォン500あるいはパーソナルコンピュータなどの通信機器のユーザが、外出中に、アプリケーションサーバ300の提供するサービスを利用する場合について説明する。スマートフォン500は、掃除機100Aに対するサービス用の命令(以下、サービスデータともいう。)をアプリケーションサーバ300に送信する(ステップS102)。
アプリケーションサーバ300は、常時接続サーバ200を介して、掃除機100Aにポーリングをさせるためのポーリング動作実行命令(以下、単にポーリング命令ともいう。)を送信する(ステップS104、ステップS106)。具体的には、アプリケーションサーバ300は、掃除機100Aと掃除機用のサービスとの組み合わせを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する(ステップS104)。
常時接続サーバ200は、接続IDに基づいて、WebSocketプロトコルを利用して、ポーリング命令を掃除機100Aに送信する(ステップS106)。
掃除機100Aは、WebSocketプロトコルを利用して、ポーリング命令を受信した旨を常時接続サーバ200に送信する(ステップS108)。掃除機100Aは、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする(ステップS110)。
アプリケーションサーバ300は、ポーリングに応じて、HTTPプロトコルを利用して、サービスデータを掃除機に送信する(ステップS112)。
掃除機100Aは、サービスデータに応じて動作する(ステップS114)。掃除機100Aは、サービスデータを受け付けた旨、および/または、動作が完了した旨を、HTTPプロトコルを利用して、アプリケーションサーバ300に送信する(ステップS116)。
アプリケーションサーバ300は、クライアント100からのデータをスマートフォン500などに送信してもよい(ステップS118)。スマートフォン500は、入力された命令に対応する動作が完了した旨をディスプレイに表示したりスピーカから音声出力したりする。
このように、本実施の形態においては、掃除機100Aからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300から掃除機100Aにサービスデータを送ることができる。同様に、常時接続サーバ200と常時接続されているテレビ100Bに関しても、テレビ100Bからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300からテレビ100Bにサービスデータを送ることもできる。
そして、常時接続に対応していないエアコン100Cやその他の家電(他の掃除機を含む。)に対しては、従来通り、アプリケーションサーバ300がエアコン100Cやその他の家電からのポーリングに応じて、サービスデータをエアコン100Cやその他の家電に送信することができる。
すなわち、本実施の形態においては、常時接続を利用しつつ、常時接続に対応していないクライアントとサーバとの送受信を従来通りに可能にする。以下では、このような機能を実現するためのネットワークシステム1の構造について詳細に説明する。
<クライアント100のハードウェア構成>
まず、クライアント100のハードウェア構成の一態様について説明する。図2は、本実施の形態にかかるクライアント100のハードウェア構成を表わすブロック図である。
図2を参照して、クライアント100は、主たる構成要素として、CPU110と、メモリ120と、入出力部130と、カメラ140と、クライアント制御回路150と、通信インターフェイス160とを含む。
CPU110は、メモリ120あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、クライアント100の各部を制御する。より詳細には、CPU110は、クライアントAPP(Application software)として動作するとともに、クライアントAPI(ApplicationProgramming Interface)として動作する。すなわち、CPU110は、メモリ120に格納されているプログラムを実行することによって、図6に記載のクライアント100の動作、図8、図11、図14、図17に記載の各処理(ステップS)を実行する。
メモリ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(ErasableProgrammable Read Only Memory)、EEPROM(Electronically Erasable Programmable Read-Only Memory)などの記憶媒体などによって実現されてもよい。
メモリ120は、CPU110によって実行されるプログラムや、CPU110によるプログラムの実行により生成されたデータ、入出力部130を介して入力されたデータ、掃除機100A、テレビ100B、エアコン100Cなどのようなクライアント100として動作するためのAPPデータ、クライアントAPPとデータをやり取りしながら外部の機器と通信するためのAPIデータを記憶する。たとえば、メモリ120は、常時接続サーバの接続先、アプリケーションサーバ接続先、サービス識別コード、サービス認証トークン、接続ID、クライアント識別IDなどを記憶する。
入出力部130は、ボタン、タッチパネル、キーボードなどによって実現され、ユーザからの命令を受け付けて、当該命令をCPU110に入力する。入出力部130は、ディスプレイ、ライトなどによって実現され、CPU110からの信号に基づいて、文字や画像を出力する。入出力部130は、スピーカなどによって実現され、CPU110からの信号に基づいて、文字や画像を出力する。
カメラ140は、CPU110からの信号に基づいて、静止画像や動画像を撮影する。具体的には、カメラ140は、撮影した画像データをCPU110に受け渡す。CPU110は、画像データを逐次メモリ120に記憶させていく。
クライアント制御回路150は、CPU110からの信号に基づいて、クライアントの各部(モータなど)を制御する。
通信インターフェイス160は、IEEE802.11a/b/g/n/acなどの無線LAN通信、ZigBee(登録商標)、BlueTooth(登録商標)、あるいは、イーサネット(登録商標)などの有線LANなどの通信モジュールによって実現される。通信インターフェイス160は、有線通信あるいは無線通信によって他の装置との間でデータをやり取りする。CPU110は、通信インターフェイス160を介して、他の装置からプログラム、制御命令、画像データ、テキストデータなどを受信したり、他の装置にテキストデータ、画像データなどを送信したりする。
なお、WebSocketプロトコルが利用可能なクライアント100(たとえば、掃除機100Aおよびテレビ100Bなど)に関しては、CPU110は、通信インターフェイス160を介して、常時接続サーバ200と常時接続を行うことができるし、HTTPプロトコルを利用してアプリケーションサーバ300と通信することもできる。一方、WebSocketプロトコルが利用できないクライアント100(たとえば、エアコン100C)に関しては、CPU110は、通信インターフェイス160を介して、HTTPプロトコルを利用してアプリケーションサーバ300と通信することはできるが、常時接続サーバ200と常時接続することはできない。
<常時接続サーバ200のハードウェア構成>
次に、常時接続サーバ200のハードウェア構成の一態様について説明する。図3は、本実施の形態にかかる常時接続サーバ200のハードウェア構成を表わすブロック図である。なお、常時接続サーバ200は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
図3を参照して、常時接続サーバ200は、主たる構成要素として、CPU210と、メモリ220と、入出力部230と、通信インターフェイス260とを含む。常時接続サーバ200のハードウェア構成は、クライアント100のハードウェア構成と比較して、カメラ140とクライアント制御回路150とを有さない点、CPU210の動作、メモリ220に格納されているデータに関して異なる。以下では、CPU210の動作とメモリ220が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU210は、メモリ220あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、常時接続サーバ200の各部を制御する。具体的には、CPU210は、メモリ220に記憶されているプログラムを実行することによって、モジュールとしてのWSサーバとして動作する。すなわち、CPU210は、メモリ220に格納されているプログラムを実行することによって、図6に記載の常時接続サーバ200の動作を実行する。
メモリ220は、CPU210によって実行されるプログラムや、CPU210によるプログラムの実行により生成されたデータ、入出力部230を介して入力されたデータ、サービスID、サービス名、アプリケーションサーバ300の接続先URL、サービス認証トークン生成情報、認証情報(ワンタイムキー)、接続IDなどを記憶する。
<アプリケーションサーバ300のハードウェア構成>
次に、アプリケーションサーバ300のハードウェア構成の一態様について説明する。図4は、本実施の形態にかかるアプリケーションサーバ300のハードウェア構成を表わすブロック図である。なお、アプリケーションサーバ300は、apache、tomcat、mysqlなど、一般的なサーバモジュールで担保できる機能は標準的に利用可能である。
図4を参照して、アプリケーションサーバ300は、主たる構成要素として、CPU310と、メモリ320と、入出力部330と、通信インターフェイス360とを含む。アプリケーションサーバ300のハードウェア構成は、クライアント100のハードウェア構成と比較して、カメラ140とクライアント制御回路150とを有さない点、CPU310の動作、メモリ320に格納されているデータに関して異なる。よって、以下では、CPU310の動作と、メモリ320が記憶するデータとについて説明するものとし、その他のハードウェア構成については説明を繰り返さない。
CPU310は、メモリ320あるいは外部の記憶媒体に記憶されているプログラムを実行することによって、アプリケーションサーバ300の各部を制御する。具体的には、CPU310は、メモリ320に記憶されているプログラムを実行することによって、サーバAPPとして動作するとともに、サーバAPIとして動作する。すなわち、CPU310は、メモリ320に格納されているプログラムを実行することによって、図6に記載のアプリケーションサーバ300の動作、図7、図10、図13、図16に記載の各処理(ステップS)を実行する。
メモリ320は、CPU310によって実行されるプログラムや、CPU310によるプログラムの実行により生成されたデータ、入出力部330を介して入力されたデータ、アプリケーションサーバ300として動作するためのAPPデータ、サーバAPPとデータをやり取りしながらクライアント100と常時接続サーバ200とスマートフォン500と通信するためのAPIデータを記憶する。たとえば、メモリ320は、常時接続サーバのURL、サービスIDとサービス認証トークン、認証情報(ワンタイムキー)生成情報、接続IDなどを記憶する。
<スマートフォン500のハードウェア構成>
次に、スマートフォン500あるいはパーソナルコンピュータなどの通信機器のハードウェア構成の一態様について説明する。図5は、本実施の形態にかかるスマートフォン500のハードウェア構成を表わすブロック図である。
図5を参照して、スマートフォン500は、主たる構成要素として、CPU510と、メモリ520と、ボタン530と、ディスプレイ540と、通信インターフェイス560とを含む。なお、近年のスマートフォンでは、ボタン530とディスプレイ540の代わりにタッチパネルが利用されることが多い。
スマートフォン500のハードウェア構成は、クライアント100のハードウェア構成と比較して、クライアント制御回路150を有さない点、CPU510の動作、メモリ520に格納されているデータに関して異なる。そして、CPU510の動作、メモリ520に格納されているデータは、一般的なスマートフォンのものと同様である。よって、ここでは、ハードウェア構成の各部については説明を繰り返さない。
<常時接続に関する装置間のデータのやり取り>
次に、本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りについて説明する。なお、図6は、本実施の形態にかかるネットワークシステム1における常時接続に関するデータのやり取りの処理手順を示すシーケンス図である。
なお、図6におけるクライアント100の動作は、クライアントAPI110Aが実現するものである。図2および図6を参照して、クライアントAPI110Aは、クライアント100のCPU110がプログラムを実行することによって実現されるものである。クライアントAPI110Aは、通信インターフェイス160を介して、WebSocketプロトコルを使用して常時接続サーバ200と通信する。クライアントAPI110Aは、通信インターフェイス160を介して、HTTPプロトコルを使用して常時接続サーバ200およびアプリケーションサーバ300と通信する。
同様に、図6における常時接続サーバ200の動作は、WSサーバ210Aが実現するものである。図3および図6を参照して、WSサーバ210Aは、常時接続サーバ200のCPU210がプログラムを実行することによって実現されるものである。WSサーバ210Aは、通信インターフェイス260を介して、WebSocketプロトコルを利用してクライアント100と常時接続する。WSサーバ210Aは、通信インターフェイス260を介して、HTTPプロトコルを利用してアプリケーションサーバ300と通信する。
同様に、図6におけるアプリケーションサーバ300の動作は、サーバAPI310Aが実現するものである。図4および図6を参照して、サーバAPI310Aは、アプリケーションサーバ300のCPU310がプログラムを実行することによって実現されるものである。サーバAPI310Aは、通信インターフェイス360を介して、HTTPプロトコルを利用してクライアント100と常時接続サーバ200とスマートフォン500などの他の通信装置と通信する。
図6を参照して、クライアント100は、HTTPプロトコルを使用して、アプリケーションサーバ300に認証情報を要求する(ステップS002)。このとき、クライアント100は、アプリケーションサーバ300に、認証に利用されるクライアントIDを送信する。アプリケーションサーバ300は、当該要求に応じてHTTPプロトコルを使用して認証情報を送信する(ステップS004)。
アプリケーションサーバ300は、常時接続サーバ200にも認証情報を送信する(ステップS006)。常時接続サーバ200は、アプリケーションサーバ300から受信した認証情報を保存する(ステップS008)。
クライアント100と常時接続サーバ200とは、HTTPプロトコルを使用して、WebSocketを利用した常時接続状態を確立する(ステップS010、ステップS012)。具体的には、クライアント100は、HTTPプロトコルを使用して、常時接続サーバ200にハンドシェイク要求を送る。常時接続サーバ200は、ハンドシェイク応答を返す。これによって、クライアント100と常時接続サーバ200との間で、WebSocketプロトコルによる常時接続が有効になる。
クライアント100は、認証情報を常時接続サーバ200に送信する(ステップS014)。常時接続サーバ200は、クライアント100からの認証情報と予め保存している認証情報とに基づいて、クライアント100を認証する(ステップS016)。認証に成功すると、常時接続サーバ200は、アプリケーションサーバ300がクライアント100を識別するための接続IDを発行する(ステップS018)。
具体的には、常時接続サーバ200は、常時接続中のクライアント100と接続IDとの対応関係を、接続状態管理情報として記憶する。常時接続サーバ200は、アプリケーションサーバ300とクライアント100とに接続IDを送信する。クライアント100は、常時接続サーバ200から接続IDを受信して、記憶する(ステップS020)。同様に、アプリケーションサーバ300も、接続IDを受信して、記憶する(ステップS022)。
その後、アプリケーションサーバ300は、必要に応じて、データ本体(たとえば、ポーリング命令など)と送り先のクライアント100を特定するための接続IDとを常時接続サーバ200に送信する(ステップS032)。常時接続サーバ200は、アプリケーションサーバ300からデータ本体と接続IDとを受信する(ステップS034)。常時接続サーバ200は、接続状態管理情報を参照して、接続IDに基づいてクライアント100を特定する(ステップS036)。
常時接続サーバ200は、WebSocketプロトコルを使用して、特定されたクライアント100にデータ本体を送信する(ステップS038)。クライアント100は、データ本体を受信する(ステップS040)。クライアント100は、WebSocketプロトコルを使用して、受信結果を常時接続サーバ200に送信する(ステップS042)。常時接続サーバ200は、受信結果を受信すると、当該受信結果をアプリケーションサーバ300に送信する(ステップS044)。アプリケーションサーバ300は、受信結果を受信する(ステップS046)。
<アプリケーションサーバの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図7は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。
図7を参照して、アプリケーションサーバ300のCPU310は、通信インターフェイス360を介して、スマートフォン500またはパーソナルコンピュータなどの他の機器から、命令を受信したか否かを判断する(ステップS122)。CPU310は、命令を受信した場合(ステップS122にてYESである場合)、当該命令の対象となるクライアント100を特定するためのクライアント識別IDと受信した当該命令とをメモリ320に記憶する(ステップS124)。
CPU310は、即時にクライアント100に命令を伝える必要があるか否かを判断する(ステップS126)。たとえば、CPU310は、所定の即時条件を満たすか否かを判断する。CPU310は、即時に命令を伝える必要がないと判断した場合(ステップS126にてNOである場合)、ステップS122から処理を繰り返す。
CPU310は、即時に命令を伝える必要があると判断した場合(ステップS126にてYESである場合)、通信インターフェイス360を介して、常時接続サーバ200を介してクライアント100にポーリング命令をPUSHする(ステップS128)。具体的には、CPU310は、クライアントを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する。
CPU310は、命令を受信しなかった場合(ステップS122にてNOの場合)、通信インターフェイス360を介してクライアント100からポーリングを受けたか否かを判断する(ステップS130)。CPU310は、クライアント100からポーリングを受けていない場合(ステップS130にてNOの場合)、ステップS122からの処理を繰り返す。
CPU310は、クライアント100からのポーリングを受けた場合(ステップS130にてYESである場合)、メモリ120に当該クライアント100に向けた命令が記憶されているか否かを判断する(ステップS132)。メモリ120にクライアント100に向けた命令が記憶されていない場合(ステップS132にてNOの場合)、ステップS122からの処理を繰り返す。
CPU310は、メモリ120にクライアント100に向けた命令が記憶されている場合(ステップS132にてYESである場合)、通信インターフェイス360を介してHTTPプロトコルを利用して当該命令をクライアント100に送信する(ステップS134)。CPU310は、メモリ120から当該命令を削除する(ステップS136)。CPU310は、ステップS122からの処理を繰り返す。
<クライアントの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図8は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。
図8を参照して、クライアント100のCPU110は、メモリ120からポーリングフラグとクライアント識別IDとを読み出す(ステップS152)。CPU110は、メモリ120を参照して、ポーリングフラグがONであるか否かを判断する(ステップS154)。CPU110は、ポーリングフラグがOFFの場合(ステップS154にてNOの場合)、所定時間スリープする(ステップS156)。CPU110は、ステップS152からの処理を繰り返す。
CPU110は、ポーリングフラグがONである場合(ステップS154にてYESである場合)、HTTPプロトコルを利用して、通信インターフェイス160を介してアプリケーションサーバ300にポーリングする(ステップS158)。CPU110は、通信インターフェイス160を介して、アプリケーションサーバ300から制御データを受け付ける(ステップS160)。制御データは、ポーリングの成功および失敗を示す成功失敗フラグ、制御命令、ポーリングフラグ、ポーリング間隔、などの情報を含む。
CPU110は、成功フラグがONであるか否かを判断する(ステップS162)。CPU110は、成功フラグがOFFである場合(ステップS162にてNOの場合)、ポーリング間隔の間だけ、通信インターフェイス160を介して、常時接続サーバ200からのポーリング命令を待つ(ステップS164)。
CPU110は、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングする。そして、ステップS160からの処理を繰り返す。一方、常時接続サーバ200からのポーリング命令を受信しなかった場合、CPU110は、ステップS152からの処理を繰り返す。
CPU110は、成功フラグがONである場合(ステップS162にてYESである場合)、制御データに含まれるポーリングフラグがONであるか否かを判断する(ステップS166)。CPU110は、制御データに含まれるポーリングフラグがOFFである場合(ステップS166にてNOの場合)、メモリ120のポーリングフラグをOFFに設定する(ステップS168)。CPU110は、ステップS156からの処理を繰り返す。
CPU110は、制御データに含まれるポーリングフラグがONである場合(ステップS166にてYESである場合)、時計を設定しなおす(ステップS170)。CPU110は、制御データに含まれるポーリング間隔でメモリ120のポーリング間隔を更新する(ステップS172)。
CPU110は、制御データに制御命令が含まれているか否かを判断する(ステップS174)。CPU110は、制御データに制御命令が含まれていない場合(ステップS174にてNOの場合)、ステップS164からの処理を繰り返す。
CPU110は、制御データに制御命令が含まれている場合(ステップS174にてYESである場合)、制御命令を実行する(ステップS176)。CPU110は、ステップS164からの処理を繰り返す。
ただし、CPU110は、ステップS156の代わりに、所定時間の間、常時接続サーバ200からのポーリング命令を待ち受けるステップ(ステップS164)を実行しても良い。つまり、CPU110は、ステップS156の代わりに、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングしてもよい。
<第2の実施の形態>
次に、第2の実施の形態として、クライアント100が掃除機100Aであり、アプリケーションサーバ300がメッセージ伝達サービスを提供するネットワークシステム1について説明する。つまり、スマートフォン500のユーザが、掃除機100Aに所望のメッセージを出力させるためのサービスを利用する場合について説明する。なお、本実施の形態にかかるネットワークシステム1の全体構成は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<ネットワークシステムの動作概要>
以下では、本実施の形態にかかるネットワークシステム1の動作概要について説明する。図9は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。
図9を参照して、掃除機100A、テレビ100B、エアコン100Cなどのクライアント100は、定期的に、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする。ただし、常時接続サーバ200との常時接続が可能な掃除機100Aおよびテレビ100Bは、定期的なポーリングをしない形態であってもよい。
スマートフォン500は、ユーザからのメッセージの入力を受け付ける。スマートフォン500は、掃除機100Aに対するメッセージ出力命令をアプリケーションサーバ300に送信する(ステップS202)。スマートフォン500から送信されるメッセージ出力命令は、メッセージを示すテキストデータを含む。
アプリケーションサーバ300は、常時接続サーバ200を介して、掃除機100Aにポーリング命令を送信する(ステップS204、ステップS206)。具体的には、アプリケーションサーバ300は、掃除機100Aと掃除機用のサービスとの組み合わせを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する(ステップS204)。
常時接続サーバ200は、接続IDに基づいて、WebSocketプロトコルを利用して、ポーリング命令を掃除機100Aに送信する(ステップS206)。
掃除機100Aは、WebSocketプロトコルを利用して、ポーリング命令を受信した旨を常時接続サーバ200に送信する(ステップS208)。掃除機100Aは、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする(ステップS210)。
アプリケーションサーバ300は、ポーリングに応じて、メッセージ出力命令に含まれるテキストデータを音声データに変換する。アプリケーションサーバ300は、HTTPプロトコルを利用して、当該音声データを含むメッセージ出力命令を掃除機100Aに送信する(ステップS212)。
掃除機100Aは、メッセージ出力命令に応じてスピーカからメッセージを音声出力する(ステップS214)。ただし、掃除機100Aは、メッセージ出力命令に応じてメッセージをディスプレイに表示してもよい。掃除機100Aは、メッセージ出力命令を受け付けた旨、メッセージの出力が完了した旨を、HTTPプロトコルを利用して、アプリケーションサーバ300に送信する(ステップS216)。
アプリケーションサーバ300は、クライアント100がメッセージ出力命令を受け付けた旨、メッセージの出力が完了した旨をスマートフォン500に送信する(ステップS218)。スマートフォン500は、メッセージの出力が完了した旨をディスプレイに表示したりスピーカから音声出力したりする。
このように、本実施の形態においては、掃除機100Aからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300から掃除機100Aにサービスデータを送ることができる。同様に、テレビ100Bからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300からテレビ100Bにサービスデータを送ることができる。
そして、常時接続に対応していないエアコン100Cやその他の家電(他の掃除機を含む。)に対しては、従来通り、アプリケーションサーバ300がエアコン100Cやその他の家電からのポーリングに応じて、サービスデータをエアコン100Cやその他の家電に送信することができる。
<各装置のハードウェア構成と>
クライアント100と常時接続サーバ200とアプリケーションサーバ300とスマートフォン500のハードウェア構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<常時接続に関する装置間のデータのやり取り>
本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りも、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<アプリケーションサーバの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図10は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。
図10を参照して、アプリケーションサーバ300のCPU310は、通信インターフェイス360を介して、スマートフォン500からメッセージ出力命令を受信したか否かを判断する(ステップS222)。CPU310は、スマートフォン500からメッセージ出力命令を受信した場合(ステップS222にてYESである場合)、スマートフォン500またはそのユーザに対応付けられているクライアント100を特定するためのクライアント識別IDと受信したメッセージ出力命令とをメモリ320に記憶する(ステップS224)。メッセージ出力命令は、メッセージを示すテキストデータを含む。
CPU310は、即時にメッセージ出力命令をクライアント100に伝える必要があるか否かを判断する(ステップS226)。ここでは、CPU310は、スマートフォン500のユーザが有料サービスの会員か否かを判断する。CPU310は、スマートフォン500のユーザが有料サービスの会員でない場合(ステップS226にてNOである場合)、ステップS222から処理を繰り返す。
CPU310は、スマートフォン500のユーザが有料サービスの会員である場合(ステップS226にてYESである場合)、通信インターフェイス360を介して、常時接続サーバ200を介してクライアント100にポーリング命令をPUSHする(ステップS228)。具体的には、CPU310は、クライアントとサービスとを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する。
CPU310は、メッセージ出力命令を受信しなかった場合(ステップS222にてNOの場合)、通信インターフェイス360を介してクライアント100からポーリングを受けたか否かを判断する(ステップS230)。CPU310は、クライアント100からポーリングを受けていない場合(ステップS230にてNOの場合)、ステップS222からの処理を繰り返す。
CPU310は、クライアント100からのポーリングを受けた場合(ステップS230にてYESである場合)、当該クライアント100に対応するメッセージ出力命令がメモリ120に記憶されているか否かを判断する(ステップS232)。メモリ120にクライアント100に対応するメッセージ出力命令が記憶されていない場合(ステップS232にてNOの場合)、ステップS222からの処理を繰り返す。
CPU310は、メモリ120にクライアント100に対応するメッセージ出力命令が記憶されている場合(ステップS232にてYESである場合)、メッセージ出力命令に含まれるテキストデータを音声データに変換する(ステップS233)。CPU310は、通信インターフェイス360を介してHTTPプロトコルを利用して音声データをクライアント100に送信する(ステップS234)。CPU310は、メモリ120からメッセージ出力命令を削除する(ステップS236)。CPU310は、ステップS222からの処理を繰り返す。
<クライアントの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図11は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。
図11を参照して、クライアント100のCPU110は、メモリ120からポーリングフラグとクライアント識別IDとを読み出す(ステップS252)。CPU110は、メモリ120を参照して、ポーリングフラグがONであるか否かを判断する(ステップS254)。CPU110は、ポーリングフラグがOFFの場合(ステップS254にてNOの場合)、所定時間スリープする(ステップS256)。CPU110は、ステップS252からの処理を繰り返す。
CPU110は、ポーリングフラグがONである場合(ステップS254にてYESである場合)、HTTPプロトコルを利用して、通信インターフェイス160を介してアプリケーションサーバ300にポーリングする(ステップS258)。CPU110は、通信インターフェイス160を介して、アプリケーションサーバ300から制御データを受け付ける(ステップS260)。制御データは、ポーリングの成功および失敗を示す成功失敗フラグ、音声データ、ポーリングフラグ、ポーリング間隔、などの情報を含む。
CPU110は、成功フラグがONであるか否かを判断する(ステップS262)。CPU110は、成功フラグがOFFである場合(ステップS262にてNOの場合)、ポーリング間隔の間、通信インターフェイス160を介して、常時接続サーバ200からのポーリング命令を待つ(ステップS264)。
CPU110は、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングする。そして、ステップS260からの処理を繰り返す。一方、常時接続サーバ200からのポーリング命令を受信しなかった場合、CPU110は、ステップS252からの処理を繰り返す。
CPU110は、成功フラグがONである場合(ステップS262にてYESである場合)、制御データに含まれるポーリングフラグがONであるか否かを判断する(ステップS266)。CPU110は、制御データに含まれるポーリングフラグがOFFである場合(ステップS266にてNOの場合)、メモリ120のポーリングフラグをOFFに設定する(ステップS268)。CPU110は、ステップS256からの処理を繰り返す。
CPU110は、制御データに含まれるポーリングフラグがONである場合(ステップS266にてYESである場合)、時計を設定しなおす(ステップS270)。CPU110は、制御データに含まれるポーリング間隔でメモリ120のポーリング間隔を更新する(ステップS272)。
CPU110は、制御データに音声データが含まれているか否かを判断する(ステップS274)。CPU110は、制御データに音声データが含まれていない場合(ステップS274にてNOの場合)、ステップS264からの処理を繰り返す。
CPU110は、制御データに音声データが含まれている場合(ステップS274にてYESである場合)、入出力部130としてのスピーカにメッセージの音声を出力させる(ステップS276)。CPU110は、ステップS264からの処理を繰り返す。
ただし、CPU110は、ステップS256の代わりに、所定時間の間、常時接続サーバ200からのポーリング命令を待ち受けるステップ(ステップS264)を実行しても良い。つまり、CPU110は、ステップS256の代わりに、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングしてもよい。
<第3の実施の形態>
次に、第3の実施の形態として、クライアント100が掃除機100Aであり、アプリケーションサーバ300が室内撮影サービスを提供するネットワークシステム1について説明する。つまり、スマートフォン500のユーザが、掃除機100Aに室内を撮影させるためのサービスを利用する場合について説明する。なお、本実施の形態にかかるネットワークシステム1の全体構成は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<ネットワークシステムの動作概要>
以下では、本実施の形態にかかるネットワークシステム1の動作概要について説明する。図12は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。
図12を参照して、掃除機100A、テレビ100B、エアコン100Cなどのクライアント100は、定期的に、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする。ただし、常時接続サーバ200との常時接続が可能な掃除機100Aおよびテレビ100Bは、定期的なポーリングをしない形態であってもよい。
スマートフォン500は、掃除機100Aに対する撮影命令をアプリケーションサーバ300に送信する(ステップS302)。
アプリケーションサーバ300は、常時接続サーバ200を介して、掃除機100Aにポーリング命令を送信する(ステップS304、ステップS306)。具体的には、アプリケーションサーバ300は、掃除機100Aと掃除機用のサービスとの組み合わせを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する(ステップS304)。常時接続サーバ200は、接続IDに基づいて、WebSocketプロトコルを利用して、ポーリング命令を掃除機100Aに送信する(ステップS306)。
掃除機100Aは、WebSocketプロトコルを利用して、ポーリング命令を受信した旨を常時接続サーバ200に送信する(ステップS308)。掃除機100Aは、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする(ステップS310)。
アプリケーションサーバ300は、ポーリングに応じて、HTTPプロトコルを利用して、撮影命令を掃除機に送信する(ステップS312)。
掃除機は、撮影命令に応じて室内の静止画像または動画像を撮影する(ステップS314)。掃除機は、撮影命令を受け付けた旨、撮影が完了した旨、静止画像データ、動画像データを、HTTPプロトコルを利用して、アプリケーションサーバ300に送信する(ステップS316)。
アプリケーションサーバ300は、クライアント100が撮影命令を受け付けた旨、撮影が完了した旨、静止画像データ、動画像データをスマートフォン500に送信する(ステップS318)。スマートフォン500は、メッセージの出力が完了した旨をディスプレイに表示したりスピーカから音声出力したりする。
このように、本実施の形態においては、掃除機100Aからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300から掃除機100Aにサービスデータを送ることができる。同様に、テレビ100Bからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300からテレビ100Bにサービスデータを送ることができる。
そして、常時接続に対応していないエアコン100Cやその他の家電(他の掃除機を含む。)に対しては、従来通り、アプリケーションサーバ300がエアコン100Cやその他の家電からのポーリングに応じて、サービスデータをエアコン100Cやその他の家電に送信することができる。
<各装置のハードウェア構成>
クライアント100と常時接続サーバ200とアプリケーションサーバ300とスマートフォン500のハードウェア構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<常時接続に関する装置間のデータのやり取り>
本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りも、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<アプリケーションサーバの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図13は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。
図13を参照して、アプリケーションサーバ300のCPU310は、通信インターフェイス360を介して、スマートフォン500から撮影命令を受信したか否かを判断する(ステップS322)。なお、撮影命令は、静止画撮影命令であってもよいし、動画撮影命令であってもよい。CPU310は、スマートフォン500から撮影命令を受信した場合(ステップS322にてYESである場合)、スマートフォン500に対応付けられているクライアント100を特定するためのクライアント識別IDと受信した撮影命令とをメモリ320に記憶する(ステップS324)。
CPU310は、即時にクライアント100命令を伝える必要があるか否かを判断する(ステップS326)。ここでは、CPU310は、スマートフォン500のユーザが有料サービスの会員か否かを判断する。CPU310は、スマートフォン500のユーザが有料サービスの会員でない場合(ステップS326にてNOである場合)、ステップS322から処理を繰り返す。
CPU310は、スマートフォン500のユーザが有料サービスの会員である場合(ステップS326にてYESである場合)、通信インターフェイス360を介して、常時接続サーバ200を介してクライアント100にポーリング命令をPUSHする(ステップS328)。具体的には、CPU310は、クライアントを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する。
CPU310は、撮影命令を受信しなかった場合(ステップS322にてNOの場合)、通信インターフェイス360を介してクライアント100からポーリングを受けたか否かを判断する(ステップS330)。CPU310は、クライアント100からポーリングを受けていない場合(ステップS330にてNOの場合)、ステップS322からの処理を繰り返す。
CPU310は、クライアント100からのポーリングを受けた場合(ステップS330にてYESである場合)、当該クライアント100に対応する撮影命令がメモリ120に記憶されているか否かを判断する(ステップS332)。メモリ120にクライアント100に対応する撮影命令が記憶されていない場合(ステップS332にてNOの場合)、ステップS322からの処理を繰り返す。
CPU310は、メモリ120にクライアント100に対応する撮影命令が記憶されている場合(ステップS332にてYESである場合)、通信インターフェイス360を介してHTTPプロトコルを利用して撮影命令をクライアント100に送信する(ステップS334)。CPU310は、メモリ120から撮影命令を削除する(ステップS336)。CPU310は、ステップS322からの処理を繰り返す。
<クライアントの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図14は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すシーケンス図である。
図14を参照して、クライアント100のCPU110は、メモリ120からポーリングフラグとクライアント識別IDとを読み出す(ステップS352)。CPU110は、メモリ120を参照して、ポーリングフラグがONであるか否かを判断する(ステップS354)。CPU110は、ポーリングフラグがOFFの場合(ステップS354にてNOの場合)、所定時間スリープする(ステップS356)。CPU110は、ステップS352からの処理を繰り返す。
CPU110は、ポーリングフラグがONである場合(ステップS354にてYESである場合)、HTTPプロトコルを利用して、通信インターフェイス160を介してアプリケーションサーバ300にポーリングする(ステップS358)。CPU110は、通信インターフェイス160を介して、アプリケーションサーバ300から制御データを受け付ける(ステップS360)。制御データは、ポーリングの成功および失敗を示す成功失敗フラグ、撮影命令、ポーリングフラグ、ポーリング間隔、などの情報を含む。
CPU110は、成功フラグがONであるか否かを判断する(ステップS362)。CPU110は、成功フラグがOFFである場合(ステップS362にてNOの場合)、ポーリング間隔の間、通信インターフェイス160を介して、常時接続サーバ200からのポーリング命令を待つ(ステップS364)。
CPU110は、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングする。そして、ステップS160からの処理を繰り返す。一方、常時接続サーバ200からのポーリング命令を受信しなかった場合、CPU110は、ステップS152からの処理を繰り返す。
CPU110は、成功フラグがONである場合(ステップS362にてYESである場合)、制御データに含まれるポーリングフラグがONであるか否かを判断する(ステップS366)。CPU110は、制御データに含まれるポーリングフラグがOFFである場合(ステップS366にてNOの場合)、メモリ120のポーリングフラグをOFFに設定する(ステップS368)。CPU110は、ステップS356からの処理を繰り返す。
CPU110は、制御データに含まれるポーリングフラグがONである場合(ステップS366にてYESである場合)、時計を設定しなおす(ステップS370)。CPU110は、制御データに含まれるポーリング間隔でメモリ120のポーリング間隔を更新する(ステップS372)。
CPU110は、制御データに撮影命令が含まれているか否かを判断する(ステップS374)。CPU110は、制御データに撮影命令が含まれていない場合(ステップS374にてNOの場合)、ステップS364からの処理を繰り返す。
CPU110は、制御データに撮影命令が含まれている場合(ステップS374にてYESである場合)、カメラ140に静止画像または動画像を撮影させる(ステップS376)。CPU110は、通信インターフェイス160を介して、HTTPプロトコルを利用して、静止画像データまたは動画像データをアプリケーションサーバ300に送信する(ステップS378)。CPU110は、ステップS364からの処理を繰り返す。
ただし、CPU110は、ステップS356の代わりに、所定時間の間、常時接続サーバ200からのポーリング命令を待ち受けるステップ(ステップS364)を実行しても良い。つまり、CPU110は、ステップS356の代わりに、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングしてもよい。
<第4の実施の形態>
次に、第4の実施の形態として、クライアント100がテレビ100Bあるいはハードディスクレコーダであり、アプリケーションサーバ300が録画命令中継サービスを提供するネットワークシステム1について説明する。つまり、スマートフォン500のユーザが、テレビ100Bに番組を録画させるためのサービスを利用する場合について説明する。なお、本実施の形態にかかるネットワークシステム1の全体構成は、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<ネットワークシステムの動作概要>
以下では、本実施の形態にかかるネットワークシステム1の動作概要について説明する。図15は、本実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。
図15を参照して、掃除機100A、テレビ100B、エアコン100Cなどのクライアント100は、定期的に、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする。ただし、常時接続サーバ200との常時接続が可能な掃除機100Aおよびテレビ100Bは、定期的なポーリングをしない形態であってもよい。
スマートフォン500は、ユーザからの録画命令を受け付ける。スマートフォン500は、テレビ100Bに対する録画命令をアプリケーションサーバ300に送信する(ステップS402)。
アプリケーションサーバ300は、常時接続サーバ200を介して、テレビ100Bにポーリング命令を送信する(ステップS404、ステップS406)。具体的には、アプリケーションサーバ300は、テレビ100Bとテレビ用のサービスとの組み合わせを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する(ステップS404)。
常時接続サーバ200は、接続IDに基づいて、WebSocketプロトコルを利用して、ポーリング命令をテレビ100Bに送信する(ステップS406)。
テレビ100Bは、WebSocketプロトコルを利用して、ポーリング命令を受信した旨を常時接続サーバ200に送信する(ステップS408)。テレビ100Bは、HTTPプロトコルを利用して、アプリケーションサーバ300にポーリングする(ステップS410)。
アプリケーションサーバ300は、ポーリングに応じて、HTTPプロトコルを利用して、録画命令を掃除機に送信する(ステップS412)。
テレビ100Bは、録画命令に応じて番組を録画したり、録画予約をしたりする(ステップS414)。テレビ100Bは、録画命令を受け付けた旨、録画が完了した旨を、HTTPプロトコルを利用して、アプリケーションサーバ300に送信する(ステップS416)。
アプリケーションサーバ300は、クライアント100が録画命令を受け付けた旨、録画が完了した旨をスマートフォン500に送信する(ステップS418)。スマートフォン500は、録画の命令が受領された旨をディスプレイに表示したりスピーカから音声出力したりする。
このように、本実施の形態においては、テレビ100Bからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300からテレビ100Bにサービスデータを送ることができる。同様に、掃除機100Aからアプリケーションサーバ300への定期的なポーリングを待たずに、アプリケーションサーバ300から掃除機100Aにサービスデータを送ることができる。
そして、常時接続に対応していないエアコン100Cやその他の家電に対しては、従来通り、アプリケーションサーバ300がエアコン100Cやその他の家電からのポーリングに応じて、サービスデータをエアコン100Cやその他の家電に送信することができる。
<各装置のハードウェア構成と>
クライアント100と常時接続サーバ200とアプリケーションサーバ300とスマートフォン500のハードウェア構成は、第1の実施の形態のそれらと同様であるため、ここでは説明を繰り返さない。
<常時接続に関する装置間のデータのやり取り>
本実施の形態にかかるネットワークシステム1における常時接続に関する装置間のデータのやり取りも、第1の実施の形態のそれと同様であるため、ここでは説明を繰り返さない。
<アプリケーションサーバの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図16は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すシーケンス図である。
図16を参照して、アプリケーションサーバ300のCPU310は、通信インターフェイス360を介して、スマートフォン500から録画命令を受信したか否かを判断する(ステップS422)。なお、録画命令は、録画予約命令または即時録画命令である。そして、録画命令は、録画日付、録画開始時刻、録画終了時刻、チャンネルなどを示す情報を含むものである。録画命令は、開始時刻に関係なく即時に録画を開始するためのフラグを含んでも良い。
CPU310は、スマートフォン500から録画命令を受信した場合(ステップS422にてYESである場合)、スマートフォン500またはそのユーザに対応付けられているクライアント100を特定するためのクライアント識別IDと受信した録画命令とをメモリ320に記憶する(ステップS424)。
CPU310は、即時にクライアント100に録画命令を伝える必要があるか否かを判断する(ステップS426)。ここでは、CPU310は、録画命令が即時録画命令であるか否かを判断する。たとえば、CPU110は、録画開始時刻を既に経過しているか否かを判断する。あるいは、CPU110は、録画命令における、即時に録画を開始するためのフラグがONであるか否かを判断する。
CPU310は、録画命令が録画予約命令である場合、すなわち未だ録画開示時刻前である場合あるいは録画命令の即時に録画を開始するためのフラグがOFFである場合(ステップS426にてNOである場合)、ステップS422から処理を繰り返す。
CPU310は、録画命令が即時録画命令である場合、すなわち既に録画開始時刻を過ぎている場合あるいは録画命令の即時に録画を開始するためのフラグがONである場合(ステップS426にてYESである場合)、通信インターフェイス360を介して、常時接続サーバ200を介してクライアント100にポーリング命令をPUSHする(ステップS428)。具体的には、CPU310は、クライアントを特定するための接続IDとポーリング命令とを常時接続サーバ200に送信する。
CPU310は、録画命令を受信しなかった場合(ステップS422にてNOの場合)、通信インターフェイス360を介してクライアント100からポーリングを受けたか否かを判断する(ステップS430)。CPU310は、クライアント100からポーリングを受けていない場合(ステップS430にてNOの場合)、ステップS422からの処理を繰り返す。
CPU310は、クライアント100からのポーリングを受けた場合(ステップS430にてYESである場合)、メモリ120にクライアント100に対応する録画命令が記憶されているか否かを判断する(ステップS432)。メモリ120にクライアント100に対応する録画命令が記憶されていない場合(ステップS432にてNOの場合)、ステップS422からの処理を繰り返す。
CPU310は、メモリ120にテレビ100Bに対応する録画命令が記憶されている場合(ステップS432にてYESである場合)、通信インターフェイス360を介してHTTPプロトコルを利用して録画命令をテレビ100Bに送信する(ステップS434)。CPU310は、メモリ120から録画命令を削除する(ステップS436)。CPU310は、ステップS422からの処理を繰り返す。
<テレビ100Bの処理手順の詳細>
次に、本実施の形態にかかるネットワークシステム1におけるテレビ100Bの処理手順の詳細について説明する。図17は、本実施の形態にかかるネットワークシステム1におけるテレビ100Bの処理手順の詳細を示すシーケンス図である。
図17を参照して、テレビ100BのCPU110は、メモリ120からポーリングフラグとクライアント識別IDとを読み出す(ステップS452)。CPU110は、メモリ120を参照して、ポーリングフラグがONであるか否かを判断する(ステップS454)。CPU110は、ポーリングフラグがOFFの場合(ステップS454にてNOの場合)、所定時間スリープする(ステップS456)。CPU110は、ステップS452からの処理を繰り返す。
CPU110は、ポーリングフラグがONである場合(ステップS454にてYESである場合)、HTTPプロトコルを利用して、通信インターフェイス160を介してアプリケーションサーバ300にポーリングする(ステップS458)。CPU110は、通信インターフェイス160を介して、アプリケーションサーバ300から制御データを受け付ける(ステップS460)。制御データは、ポーリングの成功および失敗を示す成功失敗フラグ、録画命令、ポーリングフラグ、ポーリング間隔、などの情報を含む。
CPU110は、成功フラグがONであるか否かを判断する(ステップS462)。CPU110は、成功フラグがOFFである場合(ステップS462にてNOの場合)、ポーリング間隔の間、通信インターフェイス160を介して、常時接続サーバ200からのポーリング命令を待つ(ステップS464)。
CPU110は、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングする。そして、ステップS460からの処理を繰り返す。一方、常時接続サーバ200からのポーリング命令を受信しなかった場合、CPU110は、ステップS452からの処理を繰り返す。
CPU110は、成功フラグがONである場合(ステップS462にてYESである場合)、制御データに含まれるポーリングフラグがONであるか否かを判断する(ステップS466)。CPU110は、制御データに含まれるポーリングフラグがOFFである場合(ステップS466にてNOの場合)、メモリ120のポーリングフラグをOFFに設定する(ステップS468)。CPU110は、ステップS456からの処理を繰り返す。
CPU110は、制御データに含まれるポーリングフラグがONである場合(ステップS466にてYESである場合)、時計を設定しなおす(ステップS470)。CPU110は、制御データに含まれるポーリング間隔でメモリ120のポーリング間隔を更新する(ステップS472)。
CPU110は、制御データに即時録画命令が含まれているか否かを判断する(ステップS474)。CPU110は、制御データに即時録画命令が含まれていない場合(ステップS474にてNOの場合)、ステップS464からの処理を繰り返す。
CPU110は、制御データに即時録画命令が含まれている場合(ステップS474にてYESである場合)、即時録画命令に含まれるチャンネルに基づいて録画を開始する(ステップS476)。CPU110は、ステップS464からの処理を繰り返す。
CPU110は、制御データに即時録画命令が含まれていない場合(ステップS474にてNOの場合)、制御データに録画予約命令が含まれているか否かを判断する(ステップS478)。CPU110は、制御データに録画予約命令が含まれている場合(ステップS478にてYESである場合)、メモリ120に録画予約を登録する(ステップS480)。CPU110は、ステップS464からの処理を繰り返す。
CPU110は、制御データに録画予約命令が含まれていない場合(ステップS478にてNOである場合)、ステップS464からの処理を繰り返す。
ただし、CPU110は、ステップS456の代わりに、所定時間の間、常時接続サーバ200からのポーリング命令を待ち受けるステップ(ステップS464)を実行しても良い。つまり、CPU110は、ステップS456の代わりに、常時接続サーバ200からのポーリング命令を受けた場合に、HTTPプロトコルを利用して通信インターフェイス160を介してアプリケーションサーバ300にポーリングしてもよい。
<第5の実施の形態>
なお、上記の第3の実施の形態においては、アプリケーションサーバ300が、有料サービスか無料サービスかに基づいて、クライアント100にポーリング命令を送るか否かを判断するものであった。しかしながら、上記の第4の実施の形態のように、アプリケーションサーバ300は、即時に撮影するための命令を受け付けたか、撮影の予約の命令を受け付けたかに基づいて、クライアント100にポーリング命令を送るか否かを判断してもよい。
すなわち、図13のステップS326において、図16のステップS426と同様に、アプリケーションサーバ300のCPU310は、即時撮影命令を受け付けたか否かを判断してもよい。そして、即時撮影命令を受け付けた場合(ステップS326にてYESである場合)に、CPU310は、通信インターフェイス360を介して、常時接続サーバ200を介してクライアント100にポーリング命令をPUSHする(ステップS328)。逆に、CPU310は、即時撮影命令を受け付けなかった場合 (ステップS326にてNOである場合)、すなわち撮影予約命令(撮影開始時刻および/または定期的に撮影するための撮影周期などを含む。)を受け付けた場合、ステップS322から処理を繰り返す。
同様に、図14のステップS374〜ステップS378においては、図17のステップS474〜ステップS480と同様に、CPU110は、制御データに即時撮影命令が含まれているか否かを判断する。CPU110は、制御データに即時撮影命令が含まれている場合、即時撮影命令に基づいてカメラ140を用いて動画像または静止画像を撮影する。
CPU110は、制御データに即時撮影命令が含まれていない場合、制御データに撮影予約命令が含まれているか否かを判断する。CPU110は、制御データに撮影予約命令が含まれている場合、メモリ120に撮影予約命令を登録する。CPU110は、制御データに撮影予約命令が含まれていない場合、ステップS364からの処理を繰り返す。
<第6の実施の形態>
なお、第2の実施の形態においては、アプリケーションサーバ300でテキストデータから音声データへと変換している。しかしながら、クライアント100でテキストデータから音声データへと変換するものであってもよい。
すなわち、アプリケーションサーバ300は、クライアント100からのポーリングに応じて、テキストデータをクライアント100に送信する。クライアント100が、テキストデータを音声データに変換する。そして、クライアント100が、音声データに基づいて、スピーカからメッセージを音声出力する。
この場合には、アプリケーションサーバ300からクライアント100へと音声データを送信する必要がなくなるので、通信データ量を減らすことができる。
<第7の実施の形態>
また、第2の実施の形態においては、クライアント100が、スピーカからメッセージを音声出力するものであった。しかしながら、クライアント100は、ディスプレイからメッセージを表示するものであってもよい。
すなわち、アプリケーションサーバ300は、クライアント100からのポーリングに応じて、テキストデータをクライアント100に送信する。そして、クライアント100が、テキストデータに基づいて、ディスプレイにメッセージを表示する。
<第8の実施の形態>
また、第2の実施の形態においては、クライアント100が、スピーカからメッセージを音声出力するものであった。しかしながら、クライアント100は、ディスプレイからメッセージを表示するとともに、スピーカからメッセージを音声出力するものであってもよい。
すなわち、アプリケーションサーバ300は、クライアント100からのポーリングに応じて、テキストデータを音声データに変換する。アプリケーションサーバ300は、クライアント100にテキストデータと音声データとをクライアント100に送信する。そして、クライアント100が、テキストデータに基づいてディスプレイにメッセージを表示するとともに、音声データに基づいてスピーカに音声出力する。
なお、第6の実施の形態のように、第8の実施の形態においても、クライアント100がテキストデータを音声データに変換しても良い。この場合にも、アプリケーションサーバ300からクライアント100へと音声データを送信する必要がなくなるので、通信データ量を減らすことができる。
<その他の応用例>
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体(あるいはメモリ)を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 :ネットワークシステム
100 :クライアント
110 :CPU
110A :クライアントAPI
120 :メモリ
140 :カメラ
150 :クライアント制御回路
160 :通信インターフェイス
200 :常時接続サーバ
210 :CPU
210A :WSサーバ
220 :メモリ
260 :通信インターフェイス
300 :アプリケーションサーバ
310 :CPU
310A :サーバAPI
320 :メモリ
360 :通信インターフェイス
500 :スマートフォン
第1の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 本実施の形態にかかるクライアント100のハードウェア構成を表わすブロック図である。 本実施の形態にかかる常時接続サーバ200のハードウェア構成を表わすブロック図である。 本実施の形態にかかるアプリケーションサーバ300のハードウェア構成を表わすブロック図である。 本実施の形態にかかるスマートフォン500のハードウェア構成を表わすブロック図である。 本実施の形態にかかるネットワークシステム1における常時接続に関するデータのやり取りの処理手順を示すシーケンス図である。 第1の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。 第1の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。 第2の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第2の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。 第2の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。 第3の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第3の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。 第3の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。 第4の実施の形態にかかるネットワークシステム1の全体構成と動作概要とを示すイメージ図である。 第4の実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。 第4の実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図7は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図8は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図10は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図11は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図13は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細について説明する。図14は、本実施の形態にかかるネットワークシステム1におけるクライアント100の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細について説明する。図16は、本実施の形態にかかるネットワークシステム1におけるアプリケーションサーバ300の処理手順の詳細を示すフローチャートである。
次に、本実施の形態にかかるネットワークシステム1におけるテレビ100Bの処理手順の詳細について説明する。図17は、本実施の形態にかかるネットワークシステム1におけるテレビ100Bの処理手順の詳細を示すフローチャートである。

Claims (13)

  1. 電子機器と、
    前記電子機器と常時接続するための常時接続サーバと、
    前記電子機器からのポーリングに応じて前記電子機器にデータを送信するためのアプリケーションサーバとを備え、
    前記アプリケーションサーバは、前記アプリケーションサーバに向けてポーリングさせるためのポーリング命令を前記常時接続サーバを介して前記電子機器にプッシュする、ネットワークシステム。
  2. 前記アプリケーションサーバは、受け付けた命令の種類に応じて、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュするか否かを決定する、請求項1に記載のネットワークシステム。
  3. 前記アプリケーションサーバは、即時に録画を開始するための命令を受け付けた場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、録画の予約のための命令を受け付けた場合に、前記ポーリング命令をプッシュすることなく前記電子機器からのポーリングを待つ、請求項1または2に記載のネットワークシステム。
  4. 前記アプリケーションサーバは、即時に撮影を開始するための命令を受け付けた場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、撮影の予約のための命令を受け付けた場合に、前記ポーリング命令をプッシュすることなく前記電子機器からのポーリングを待つ、請求項1から3のいずれか1項に記載のネットワークシステム。
  5. 前記アプリケーションサーバは、有料サービスに関するデータを送信する場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、無料サービスに関するデータを送信する場合、前記ポーリング命令をプッシュすることなく前記電子機器からのポーリングを待つ、請求項1から4のいずれか1項に記載のネットワークシステム。
  6. 前記アプリケーションサーバは、他の電子機器からメッセージを受信した場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、
    前記電子機器は、前記アプリケーションサーバにポーリングすることによって前記メッセージを受信し、前記メッセージを出力する、請求項1から5のいずれか1項に記載のネットワークシステム。
  7. 前記電子機器は、カメラを含み、
    前記アプリケーションサーバは、他の電子機器から命令を受信した場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、
    前記電子機器は、前記アプリケーションサーバにポーリングすることによって前記アプリケーションサーバから撮影命令を受信して、前記カメラを用いて撮影する、請求項1から6のいずれか1項に記載のネットワークシステム。
  8. 前記電子機器は、番組を録画する機能を有し、
    前記アプリケーションサーバは、他の電子機器から命令を受信した場合、前記常時接続サーバを介して前記電子機器に前記ポーリング命令をプッシュし、
    前記電子機器は、前記アプリケーションサーバにポーリングすることによって前記アプリケーションサーバから録画命令を受信して、前記番組を録画する、請求項1から7のいずれか1項に記載のネットワークシステム。
  9. 電子機器が常時接続サーバと常時接続を開始するステップと、
    アプリケーションサーバが、前記常時接続サーバを介して前記電子機器にポーリング命令をプッシュするステップと、
    前記電子機器が、前記アプリケーションサーバにポーリングするステップと、
    前記アプリケーションサーバが、前記ポーリングに応じて前記電子機器にデータを送信するステップとを備える、通信方法。
  10. 常時接続サーバと常時接続し、アプリケーションサーバとデータを通信するための通信インターフェイスと、
    前記通信インターフェイスを利用することによって、前記常時接続サーバからポーリング命令を受信し、前記アプリケーションサーバにポーリングし、前記アプリケーションサーバからデータを受信するためのプロセッサとを備える、電子機器。
  11. 常時接続サーバと電子機器と通信するための通信インターフェイスと、
    前記通信インターフェイスを利用することによって、前記常時接続サーバを介して前記電子機器にポーリング命令をプッシュし、前記電子機器からのポーリングに応じて前記電子機器にデータを送信するためのプロセッサとを備える、アプリケーションサーバ。
  12. プロセッサと通信インターフェイスとを含む電子機器で利用されるプログラムであって、
    前記通信インターフェイスを利用することによって、常時接続サーバと常時接続を開始するステップと、
    前記通信インターフェイスを利用することによって、前記常時接続サーバからポーリング命令を受信するステップと、
    前記通信インターフェイスを利用することによって、アプリケーションサーバにポーリングするステップと、
    前記通信インターフェイスを利用することによって、前記アプリケーションサーバからデータを受信するステップとを前記プロセッサに実行させる、プログラム。
  13. プロセッサと通信インターフェイスとを含むアプリケーションサーバで利用されるプログラムであって、
    前記通信インターフェイスを利用することによって、常時接続サーバを介して電子機器にポーリング命令を送信するステップと、
    前記通信インターフェイスを利用することによって、前記電子機器からのポーリングを受けるステップと、
    前記通信インターフェイスを利用することによって、前記電子機器にデータを送信するステップとを前記プロセッサに実行させる、プログラム。
JP2013244544A 2013-11-27 2013-11-27 ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム Pending JP2015103123A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013244544A JP2015103123A (ja) 2013-11-27 2013-11-27 ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム
CN201410694214.3A CN104683434B (zh) 2013-11-27 2014-11-27 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序
US14/555,651 US20150149536A1 (en) 2013-11-27 2014-11-27 Network system, constant connection method, communication method, electronic device, constant connection server, application server, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013244544A JP2015103123A (ja) 2013-11-27 2013-11-27 ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016020474A Division JP2016139414A (ja) 2016-02-05 2016-02-05 ネットワークシステム、サーバ、通信方法、および電子機器

Publications (1)

Publication Number Publication Date
JP2015103123A true JP2015103123A (ja) 2015-06-04

Family

ID=53378750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013244544A Pending JP2015103123A (ja) 2013-11-27 2013-11-27 ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム

Country Status (1)

Country Link
JP (1) JP2015103123A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017005523A (ja) * 2015-06-11 2017-01-05 三菱電機株式会社 録画予約システム及び録画予約情報の確認方法
JP2018160737A (ja) * 2017-03-22 2018-10-11 富士ゼロックス株式会社 端末装置、情報処理システムおよびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011166626A (ja) * 2010-02-12 2011-08-25 Ntt Communications Kk 遠隔制御システム、ポーリング制御方法、及びプログラム
JP2012037944A (ja) * 2010-08-03 2012-02-23 Canon Inc 画像形成装置、代行運転システム、画像形成装置の制御方法、プログラム
WO2013121487A1 (ja) * 2012-02-13 2013-08-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2013236191A (ja) * 2012-05-07 2013-11-21 Sharp Corp 遠隔制御システム、上記遠隔制御システムの設定方法、通信端末装置、電子機器、およびサーバ装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011166626A (ja) * 2010-02-12 2011-08-25 Ntt Communications Kk 遠隔制御システム、ポーリング制御方法、及びプログラム
JP2012037944A (ja) * 2010-08-03 2012-02-23 Canon Inc 画像形成装置、代行運転システム、画像形成装置の制御方法、プログラム
WO2013121487A1 (ja) * 2012-02-13 2013-08-22 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
JP2013236191A (ja) * 2012-05-07 2013-11-21 Sharp Corp 遠隔制御システム、上記遠隔制御システムの設定方法、通信端末装置、電子機器、およびサーバ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017005523A (ja) * 2015-06-11 2017-01-05 三菱電機株式会社 録画予約システム及び録画予約情報の確認方法
JP2018160737A (ja) * 2017-03-22 2018-10-11 富士ゼロックス株式会社 端末装置、情報処理システムおよびプログラム

Similar Documents

Publication Publication Date Title
JP6319992B2 (ja) Wi−Fiネットワークを利用したデバイス連結システム及びその方法
TWI533740B (zh) 經由點對點鏈結存取的分享網路
CN109587667B (zh) 一种连接建立方法及装置、设备、存储介质
CN107770761B (zh) 蓝牙设备分享请求和控制方法及设备、计算机存储介质
US20120317229A1 (en) Information processing apparatus, server apparatus, information processing method, and program
CN110830968A (zh) 一种组网方法、装置、蓝牙设备及计算机可读介质
CN107708099B (zh) 蓝牙设备分享请求和控制方法及设备、可读存储介质
US20130331097A1 (en) Method and apparatus for discovering neighbor nodes in a wireless communication network
EP2840741B1 (en) Method and apparatus for using service of home network device based on remote access
JP5359998B2 (ja) 情報処理システム、情報処理方法及び情報処理プログラム
CN104683434A (zh) 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序
WO2020133495A1 (zh) 一种智能设备管理方法、移动终端及系统
US10003949B2 (en) Communication apparatus capable of communicating with external apparatus, control method for communication apparatus, and recording medium
JP2015103123A (ja) ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム
US10091635B2 (en) Method and apparatus for communication using IP address exchanged via NFC
JP6000231B2 (ja) ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム
JP5870079B2 (ja) ネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラム
JP2016139414A (ja) ネットワークシステム、サーバ、通信方法、および電子機器
CN115883572A (zh) 外设共享方法及装置
JP2017069936A (ja) 通信端末、通信システム、出力方法、及びプログラム
JP5896975B2 (ja) ネットワークシステム、データ通信方法、電子機器、およびプログラム
TWI557643B (zh) 自動化程式下載系統與方法
JP5441967B2 (ja) ネットワークシステム、情報端末、通信設定方法及びプログラム
JP2013123126A (ja) Dlna対応機器およびその探索方法
JP7273695B2 (ja) ネットワークシステム、電気機器、およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151208