首页> 中国专利> 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序

网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序

摘要

公开了网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序。提供具备第一和第二电子设备的网络系统。第一和第二电子设备通过使用能够进行保持连接的第一协议来进行数据通信;并且在满足规定的条件的情况下通过使用第二协议来进行数据通信。或者,提供一种具备电子设备、用于与所述电子设备进行保持连接的保持连接服务器以及用于对应于来自所述电子设备的轮询来向所述电子设备发送数据的应用服务器的网络系统。所述应用服务器通过所述保持连接服务器向所述电子设备推送轮询命令。

著录项

  • 公开/公告号CN104683434A

    专利类型发明专利

  • 公开/公告日2015-06-03

    原文格式PDF

  • 申请/专利权人 夏普株式会社;

    申请/专利号CN201410694214.3

  • 申请日2014-11-27

  • 分类号

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人张涛

  • 地址 日本大阪府大阪市

  • 入库时间 2023-12-18 09:04:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-06

    授权

    授权

  • 2015-07-01

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20141127

    实质审查的生效

  • 2015-06-03

    公开

    公开

说明书

技术领域

本发明涉及用于使电子设备彼此保持连接的技术,特别是涉及使客户端与服务器保持连接的网络系统、保持连接方法、电子设备、保持连接服务器、应用服务器、程序。或者,本发明涉及客户端与服务器之间的数据的发送和接收的技术,特别是涉及利用保持连接进行数据的发送和接收的网络系统、通信方法、电子设备、应用服务器、程序。

背景技术

以往,已知有用于通信设备相互向对方发送数据的各种技术。例如,在特开2010-277492号公报(专利文献1)中公开了电子会议服务器及计算机程序。根据特开2010-277492号公报(专利文献1),实现在以web应用程序(web application)提供电子会议系统的情况下能够确保实时性以及附随电子会议系统的运用的未解决课题的管理等。具体地,应用服务器以Comet服务器接收来自各电子设备的HTTP请求并变为保留状态的方式进行控制。若是应用服务器从某电子设备接收到消息数据,则应用服务器从会议数据库调出需要的数据,并将其与消息数据一起从Comet服务器发送到该电子设备。在发送之后,所述应用服务器以接收来自各电子设备的HTTP请求并再次变为保留状态的方式进行控制。

然而,在Comet中,由于每次进行通信时都需要HTTP会话,因此客户端与服务器之间需要多次交换相同的数据。因此,近年来,开发出了在TCP(Transmission Control Protocol:传输控制协议)上进行动作的WebSocket这样的技术。WebSocket是由作为因特网的标准化组织的W3C和IETF进行的web服务器与web浏览器之间的双向通信用的技术标准。WebSocket协议的规范被规定为RFC(Request For Comment,请求注释)6455。

然而,当利用利用了WebSocket协议的保持连接来发送和接收很多的数据时,存在导致保持连接的通信路径被占用的可能性。其结果,存在重要的数据未被快速地传送到服务器或客户端的可能性。

另外,还已知如下的技术:对应于来自客户端侧的轮询,服务器进行与客户端之间的数据的发送和接收。

作为与轮询有关的技术,在特开2009-130438号公报(专利文献2)公开了一种数据通信装置、数据通信装置的控制方法、数据通信装置控制程序以及记录有该程序的计算机可读取的记录介质。根据特开2009-130438号公报(专利文献2),便携式通信终端具备:事件检测部,检测在本装置中发生的事件;轮询信息数据库,与事件相对应地存储轮询间隔;轮询设定部,从轮询信息数据库取得与事件检测部检测出的事件相对应的轮询间隔,在规定的时间变更为该轮询间隔;以及电子邮件取得部,以轮询设定部变更的轮询间隔,在规定的时间实施轮询。因此,能够减轻电池的消耗,并且能够以对于用户来说最佳的轮询间隔取得数据。

在特开2013-172519号公报(专利文献3)公开了电力控制装置、通信控制方法以及通信控制程序。根据特开2013-172519号公报(专利文献3),电力控制装置所具有的控制装置(通信控制装置)向各供电装置询问来取得各供电装置的状态。而且,控制装置根据取得的各供电装置的状态,预测各供电装置的控制所需要的通信频度,越是需要高的通信频度的供电装置,越是将来自控制装置的直到进行下一次询问的时间(轮询间隔)设定得短。另外,控制装置每次进行询问时,都更新轮询间隔。

然而,在直到进行轮询的期间,不能从服务器向客户端推送数据。为此还公开了与WebSocket这样的保持连接有关的技术。

然而,虽然只要利用WebSocket就能够在任意的定时从服务器向客户端推送数据,但是存在并非网络系统所包括的所有客户端对应WebSocket的情况。

发明内容

本发明是为了解决所关系到的问题而作出的发明,其目的在于提供一种能够减低导致保持连接的通信路径被占用的可能性的网络系统、保持连接方法、电子设备、程序。或者,本发明的目的在于提供一种能够在如以往那样使得能够进行不能保持连接的客户端与服务器之间的通信的状况下,进行能够保持连接的客户端与服务器利用保持连接的通信的网络系统、通信方法、电子设备、应用服务器、程序。

依照本发明的某方式,提供一种具备第一电子设备和第二电子设备的网络系统。第一电子设备和第二电子设备通过使用能够进行保持连接的第一协议来进行数据通信,并且在满足规定的条件的情况下,通过使用第二协议来进行数据通信。

优选的是,第一电子设备是服务器。第二电子设备是客户端。服务器关于向客户端的数据发送判断是否满足规定的条件。

优选的是,服务器在满足规定的条件的情况下,通过使用第一协议来向客户端发送示出被发送的数据的保存场所的信息。客户端通过使用第二协议来从保存场所下载数据。

优选的是,服务器通过使用第一协议来将用于确定向客户端的数据发送的事物ID发送到客户端。客户端在从保存场所下载数据时将事物ID发送到服务器。服务器根据事物ID向其它服务器通知下载完成的意思。

优选的是,第一电子设备是服务器。第二电子设备是客户端。客户端关于向服务器的数据发送判断是否满足规定的条件。客户端在满足规定的条件的情况下,通过使用第一协议来从服务器接收示出数据的发送目的地的信息,通过使用第二协议来向发送目的地上传数据。

优选的是,客户端通过使用第一协议来将用于确定向服务器的数据发送的事物ID发送到服务器。客户端在向发送目的地上传数据时将事物ID发送到服务器。服务器根据事物ID向其它服务器通知上传完成的意思。

优选的是,满足规定的条件包括所发送的数据的大小大于规定值。

优选的是,满足规定的条件包括通信速度比规定值慢。

优选的是,满足规定的条件包括发送数据所需要的时间比规定值长。

优选的是,满足规定的条件包括使用第一协议的数据发送和接收的频度多于规定值。

依照本发明的其它方式,提供一种保持连接方法,具备以下步骤:第一电子设备和第二电子设备通过使用能够进行保持连接的第一协议来进行数据通信;判断第一电子设备和第二电子设备中的任一个是否满足规定的条件;以及在满足规定的条件的情况下,第一电子设备和第二电子设备通过使用第二协议来进行数据通信。

依照本发明的其它方式,提供一种电子设备,具备:通信接口;存储器,其保存规定的条件;以及处理器,经由通信接口,通过使用能够进行保持连接的第一协议来进行数据通信,并且在满足规定的条件的情况下,通过使用第二协议来进行数据通信。

依照本发明的其它方式,提供一种在包括处理器、存储器以及通信接口的电子设备中使用的程序。程序使处理器执行以下步骤:经由通信接口,通过使用能够进行保持连接的第一协议来进行数据通信;判断是否满足规定的条件;以及在满足规定的条件的情况下,经由通信接口,通过使用第二协议来进行数据通信。

如以上那样,根据本发明,提供一种能够减低导致保持连接的通信路径被占用的可能性的网络系统、保持连接方法、电子设备、程序。

另外,依照本发明的其它方式,提供一种网络系统,具备:电子设备;保持连接服务器,用于与电子设备进行保持连接;以及应用服务器,用于对应于来自电子设备的轮询向电子设备发送数据。应用服务器将用于向应用服务器进行轮询的轮询命令通过保持连接服务器推送到电子设备。

优选的是,应用服务器对应于受理的命令的种类,决定是否通过保持连接服务器向电子设备推送轮询命令。

优选的是,应用服务器在受理用于即时地开始录像的命令的情况(或者,期望即时地开始录像的情况)下,通过保持连接服务器向电子设备推送轮询命令,在受理用于预约录像的命令的情况(或者,也可以不即时地开始录像的情况)下,不推送轮询命令而等待来自电子设备的轮询。

优选的是,应用服务器在受理用于即时地开始摄影的命令的情况下,通过保持连接服务器向电子设备推送轮询命令,在受理用于预约摄影的命令的情况下,不推送轮询命令而等待来自电子设备的轮询。

优选的是,应用服务器在发送与有偿服务有关的数据的情况下,通过保持连接服务器向电子设备推送轮询命令,在发送与无偿服务有关的数据的情况下,不推送轮询命令而等待来自电子设备的轮询。

优选的是,应用服务器在从其它电子设备接收消息的情况下,通过保持连接服务器向电子设备推送轮询命令,电子设备通过向应用服务器进行轮询来接收消息,并输出消息。

优选的是,电子设备包括摄像机。应用服务器在从其它电子设备接收到命令的情况下,通过保持连接服务器向电子设备推送轮询命令。电子设备通过向应用服务器进行轮询,来从应用服务器接收摄影命令,使用摄像机进行摄影。

优选的是,电子设备具有对节目进行录像的功能。应用服务器在从其它电子设备接收命令的情况下,通过保持连接服务器向电子设备推送轮询命令。电子设备通过向应用服务器进行轮询,来从应用服务器接收录像命令,对节目进行录像。

依照本发明的其它方式,提供一种通信方法,具备以下步骤:电子设备开始与保持连接服务器进行保持连接;应用服务器通过保持连接服务器向电子设备推送轮询命令;电子设备向应用服务器进行轮询;以及应用服务器对应于轮询来向电子设备发送数据。

依照本发明的其它方式,提供一种电子设备,具备:通信接口,用于与保持连接服务器进行保持连接,与应用服务器进行数据通信;以及处理器,用于通过利用通信接口,来从保持连接服务器接收轮询命令,向应用服务器进行轮询,从应用服务器接收数据。

依照本发明的其它方式,提供一种应用服务器,具备:通信接口,用于与保持连接服务器和电子设备进行通信;以及处理器,用于通过利用通信接口,来通过保持连接服务器向电子设备推送轮询命令,对应于来自电子设备的轮询来向电子设备发送数据。

依照本发明的其它方式,提供一种在包括处理器以及通信接口的电子设备中利用的程序。程序使处理器执行以下步骤:通过利用通信接口来与保持连接服务器开始保持连接;通过利用通信接口来从保持连接服务器接收轮询命令;通过利用通信接口来向应用服务器进行轮询;以及通过利用通信接口来从应用服务器接收数据。

依照本发明的其它方式,提供一种在包括处理器以及通信接口的应用服务器中利用的程序。程序使处理器执行以下步骤:通过利用通信接口,来通过保持连接服务器向电子设备发送轮询命令;通过利用通信接口来接受来自电子设备的轮询;以及通过利用通信接口向电子设备发送数据。

如上所述,根据本发明,提供一种能够在如以往那样使得能够进行不能保持连接的客户端与服务器之间的通信的状况下,进行能够保持连接的客户端与服务器利用保持连接的通信的网络系统、通信方法、电子设备、应用服务器、程序。

详细的说明中明确记载了进一步的特征及优点。或者,对于本领域技术人员来说,从详细说明的记载内容能够马上清楚进一步的特征及优点、或者通过实施包括详细的说明、权利要求书、添附附图的此处所记载的发明而认识到进一步的特征及优点。而且,与所述的背景技术等有关的记载以及与下述的详细说明有关的记载只是例示,应该理解到是提供用于理解权利要求书所记载的本发明的本质和特征的概要或框架的记载。

附图说明

图1是示出本实施方式的网络系统1的整体结构的图形图。

图2是示出本实施方式的网络系统1中的保持连接开始时的动作概要的第一图形图。

图3是示出本实施方式的网络系统1中的保持连接开始时的动作概要的第二图形图。

图4是示出本实施方式的网络系统1中的来自应用服务器300的连接确认时的动作概要的图形图。

图5是示出本实施方式的网络系统1中的来自客户端100的连接确认时的动作概要的图形图。

图6是示出本实施方式的网络系统1中的来自应用服务器300的通常的信息推送时的动作概要的图形图。

图7是示出本实施方式的网络系统1中的来自应用服务器300的大容量的信息推送时的动作概要的图形图。

图8是示出本实施方式的网络系统1中的来自客户端100的通常的信息推送时的动作概要的图形图。

图9是示出本实施方式的网络系统1中的来自客户端100的大容量的信息推送时的动作概要的图形图。

图10是示出本实施方式的网络系统1整体的通信结构的框图。

图11是表示本实施方式的客户端100的硬件结构的框图。

图12是表示本实施方式的保持连接服务器200的硬件结构的框图。

图13是表示本实施方式的应用服务器300的硬件结构的框图。

图14是表示本实施方式的智能电话500的硬件结构的框图。

图15是示出与本实施方式的网络系统1中的保持连接有关的装置间的数据交换的处理过程的时序图。

图16是示出本实施方式的网络系统1中的保持连接开始时的处理过程的详细内容的时序图。

图17是示出本实施方式的网络系统1中的来自客户端的保持连接切断时的处理过程的详细内容的时序图。

图18是示出本实施方式的网络系统1中的来自应用服务器300的保持连接切断时的处理过程的详细内容的时序图。

图19是示出本实施方式的网络系统1中的来自客户端100的连接确认时的处理过程的详细内容的时序图。

图20是示出本实施方式的网络系统1中的来自应用服务器300的连接确认时的处理过程的详细内容的时序图。

图21是示出本实施方式的网络系统1中的来自应用服务器300的通常的数据推送时的处理过程的详细内容的时序图。

图22是示出本实施方式的网络系统1中的来自应用服务器300的大容量的数据推送时的处理过程的详细内容的时序图。

图23是示出本实施方式的网络系统1中的来自客户端100的通常的数据推送时的处理过程的详细内容的时序图。

图24是示出本实施方式的网络系统1中的来自客户端100的大容量的数据推送时的处理过程的详细内容的时序图。

图25是示出本实施方式的WS数据的构造的图形图。

图26是示出第五实施方式的网络系统1的通信结构的图形图。

图27是示出第六实施方式的网络系统1的通信结构的图形图。

图28是示出第七实施方式的网络系统1的通信结构的图形图。

图29是示出第九实施方式的网络系统1的整体结构和动作概要的图形图。

图30是示出第九实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

图31是示出第九实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

图32是示出第十实施方式的网络系统1的整体结构和动作概要的图形图。

图33是示出第十实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

图34是示出第十实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

图35是示出第十一实施方式的网络系统1的整体结构和动作概要的图形图。

图36是示出第十一实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

图37是示出第十一实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

图38是示出第十二实施方式的网络系统1的整体结构和动作概要的图形图。

图39是示出第十二实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

图40是示出第十二实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

具体实施方式

以下,一边参照附图并说明本发明的实施方式。在以下的说明中,对同一部件附加了同一附图标记。它们的名称以及功能也是相同的。因而,不重复关于它们的详细说明。

另外,以下,作为保持连接的一个例子,说明利用了WebSocket协议的通信。然而,只要能够在任意的定时从应用服务器、保持连接服务器向客户端推送数据即可,本发明不是限定于利用WebSocket协议的保持连接的发明。

另外,虽然下述的实施方式的网络系统1是利用HTTP/WebSocket协议的网络系统,但是也能够利用能够以SSL对通信路径加密的HTTPS/WSS协议。即,本实施方式的技术也能够应用于利用HTTPS/WSS协议的网络系统。

<第一实施方式>

<网络系统的整体结构>

首先,说明本实施方式的网络系统1的整体结构。图1是示出本实施方式的网络系统1的整体结构的图形图。

参照图1,网络系统1包括配置在住所或办公室等的多个家用电器100A、100B、通过网络与家用电器100A、100B连接的保持连接服务器200、以及提供与家用电器100A、100B有关的各种服务的多个应用服务器300A、300B。作为家用电器,例如可列举吸尘器100A、空调100B、电视、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating:感应加热)烹调加热器等。进一步地,家用电器只要是在住所内或办公室内的通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。另外,保持连接服务器200和应用服务器300也可以与家用电器同样地包括存在于住所内、办公室内、大厦内、公司或学校的庭院内的服务器等。

另外,家用电器以及各服务器间也可以经由光纤等线路,在中途连接光线路终端装置、用于进行无线LAN通信的接入点、路由器等。作为家用电器与网络连接的方案,虽然使用IEEE802.11a/b/g/n/ac等无线LAN通信、或有线LAN等,但是连接方法不限定于这些。

而且,在本实施方式中,吸尘器100A和空调100B与保持连接服务器200进行保持连接。由此,吸尘器用的应用服务器300A能够通过保持连接服务器200在任意的定时向吸尘器100A推送发送数据。同样地,空调用的应用服务器300B能够通过保持连接服务器200在任意的定时向空调100B推送发送数据。

即,在本实施方式的网络系统1中,很多的家用电器的每个不需要与提供适合于自己的服务的所有应用服务器直接地进行保持连接。另外,反过来,多个应用服务器的每个不需要与所有对应的家用电器直接地进行保持连接。

此外,在本实施方式中,保持连接服务器200与应用服务器300A、300B是不同的计算机。换言之,在保持连接服务器200中,运行用于与家用电器进行保持连接的服务程序。而且,在应用服务器300A、300B中,运行用于通过向家用电器发送信息来控制家用电器的服务程序、用于通过取得来自家用电器的信息来在其它的电子设备中利用该信息的服务程序等。

然而,作为其它的实施方式,如后面描述的那样,一个应用服务器也可以搭载多个应用服务程序。另外,保持连接服务器和应用服务器也可以是同一计算机。例如,作为一个计算机、即装置的服务器也可以搭载用于与家用电器进行保持连接的通信服务程序以及用于控制家用电器的一个或多个应用服务程序。

<网络系统的动作概要>

接着,说明本实施方式的网络系统1的动作概要。此外,以下,也可以对吸尘器100A、空调100B等家用电器进行统称,称为客户端100。另外,以下,也可以将吸尘器用的应用服务器300A和空调用的应用服务器300B等用于向客户端100和用户等提供各种服务的应用服务器进行统称,称为应用服务器300。

<保持连接开始时的动作概要>

首先,说明网络系统1中的保持连接开始时的动作概要。图2是示出本实施方式的网络系统1中的保持连接开始时的动作概要的第一图形图。图3是示出本实施方式的网络系统1中的保持连接开始时的动作概要的第二图形图。

参照图2,客户端100使用HTTP协议,向应用服务器300请求认证信息。于是,应用服务器300生成认证信息,使用HTTP协议向客户端100发送认证信息。应用服务器300也向保持连接服务器200发送认证信息。

参照图3,客户端100使用HTTP协议,根据认证信息来向保持连接服务器200请求开始保持连接。保持连接服务器200根据来自客户端100的认证信息和来自应用服务器300的认证信息,进行客户端100的认证处理。当认证成功时,保持连接服务器200使用WebSocket协议,确立与客户端100的保持连接。保持连接服务器200创建用于唯一地确定客户端100与服务器300之间的WebSocket连接的连接ID,将连接ID通知给应用服务器300。由此,应用服务器300能够根据连接ID,通过保持连接服务器200,向客户端100推送信息。

<来自应用服务器的连接确认时的动作概要>

接着,说明来自应用服务器300的连接确认时的动作概要。图4是示出本实施方式的网络系统1中的来自应用服务器300的连接确认时的动作概要的图形图。

参照图4,应用服务器300向保持连接服务器200请求关于与客户端100的保持连接是否有效(例如客户端100、保持连接服务器200是否正在正常地进行动作)的连接确认(存活确认)。保持连接服务器200响应于该请求,使用WebSocket协议向客户端100发送连接确认数据。

客户端100在接收到连接确认数据时,使用WebSocket协议向保持连接服务器200发送结果通知数据。保持连接服务器200在接收到结果通知数据的情况下,向应用服务器300发送与客户端100的保持连接为有效的意思。另一方面,保持连接服务器200在未接收到结果通知数据的情况下,向应用服务器300发送与客户端100的保持连接为无效的意思。

如以下那样利用像这样的结构。例如,应用服务器300在受理来自智能电话500的某些命令时或在智能电话500上显示受理命令的画面时,向保持连接服务器200请求连接确认。而且,应用服务器300只在保持连接有效的情况下,继续受理针对家用电器的命令。另一方面,在保持连接并非有效的情况下,应用服务器300通过智能电话500向用户通知不能执行命令的意思。

<来自客户端的连接确认时的动作概要>

接着,说明来自客户端100的连接确认时的动作概要。图5是示出本实施方式的网络系统1中的来自客户端100的连接确认时的动作概要的图形图。

参照图5,客户端100为了对保持连接服务器200调查保持连接是否有效,使用WebSocket协议向保持连接服务器200发送连接确认数据。保持连接服务器200在能够接收到连接确认数据时,使用WebSocket协议向客户端100发送结果通知数据。此时,保持连接服务器200还向应用服务器300发送与客户端100的保持连接为有效的意思。

<来自应用服务器的通常的信息推送时的动作概要>

接着,说明从应用服务器300向客户端100推送通常的信息时的动作概要。图6是示出本实施方式的网络系统1中的来自应用服务器300的通常的信息推送时的动作概要的图形图。

参照图6,应用服务器300向保持连接服务器200发送用于确定客户端100的连接ID和用于向客户端100发送的数据主体。保持连接服务器200判断该数据主体是否大于规定的数据量。保持连接服务器200在该数据主体为规定的数据量以下的情况下,使用WebSocket协议,向与连接ID对应的客户端100发送数据主体和用于确定本次的数据发送的事务ID。

客户端100当接收到数据主体时,使用WebSocket协议,向保持连接服务器200发送示出接收到该数据主体的结果信息和所述事务ID。保持连接服务器200根据接收到的结果信息和事务ID,向应用服务器300通知数据发送的结果。

<来自应用服务器的大容量的信息推送时的动作概要>

接着,说明从应用服务器300向客户端100推送大容量的信息时的动作概要。图7是示出本实施方式的网络系统1中的来自应用服务器300的大容量的信息推送时的动作概要的图形图。此外,更详细地,为了防止大容量文件占用通过保持连接进行的通信并减轻与保持连接有关的网络资源的负荷,本实施方式的网络系统1具有如下功能。

参照图7,应用服务器300向保持连接服务器200发送用于确定客户端100的连接ID和用于向客户端100发送的数据主体。保持连接服务器200判断该数据主体是否大于规定的数据量。保持连接服务器200在该数据主体大于规定的数据量的情况下,使用WebSocket协议向与连接ID对应的客户端100发送示出数据的取得方法的URL信息和用于确定本次的数据发送的事务ID。

客户端100当接收到URL信息和事务ID时,使用HTTP协议向保持连接服务器200发送事务ID。保持连接服务器200根据事务ID,向客户端100发送数据主体。客户端100当从与URL信息对应的保存地址下载数据主体时,将示出接收到数据主体的结果信息和所述事务ID发送到保持连接服务器200。保持连接服务器200根据接收到的结果信息和事务ID,向应用服务器300通知数据发送的结果。

此外,也可以代替保持连接服务器200而由应用服务器300进行与数据的容量有关的所述判断。在这种情况下,在数据的容量大于规定值的情况下,应用服务器300通过保持连接服务器200向客户端100发送URL信息。客户端100根据URL信息,利用HTTP协议来从保持连接服务器200或应用服务器300下载数据。

<来自客户端的通常的信息推送时的动作概要>

接着,说明来自客户端100的通常的信息推送时的动作概要。图8是示出本实施方式的网络系统1中的来自客户端100的通常的信息推送时的动作概要的图形图。

参照图8,客户端100判断要发送的数据主体是否大于规定的数据量。在该数据主体为规定的数据量以下的情况下,客户端100使用WebSocket协议把要发送的用于确定应用服务器300的服务ID、数据主体以及用于确定本次的数据发送的事务ID发送到保持连接服务器200。

保持连接服务器200向与服务ID对应的应用服务器300B发送该数据主体和与客户端100对应的连接ID。应用服务器300B当接收到数据主体时,与连接ID相对应地存储该数据主体。应用服务器300B将示出接收到数据主体的意思的结果通知发送到保持连接服务器200。保持连接服务器200根据结果通知,使用WebSocket协议向客户端100发送事务ID和发送结果。

<来自客户端的大容量的信息推送时的动作概要>

接着,说明来自客户端100的大容量的信息推送时的动作概要。图9是示出本实施方式的网络系统1中的来自客户端100的大容量的信息推送时的动作概要的图形图。

参照图9,客户端100判断要发送的数据主体是否大于规定的数据量。在该数据主体大于规定的数据量的情况下,客户端100使用WebSocket协议把要发送的用于确定应用服务器300的服务ID、数据量以及用于确定本次的数据发送的事务ID发送到保持连接服务器200。

保持连接服务器200使用WebSocket协议向客户端100通知事务ID和数据的上传目的地。客户端100使用HTTP协议,根据事务ID将数据主体上传到上传目的地。

保持连接服务器200当从客户端100的上传完成时,向与服务ID对应的应用服务器300B发送该数据主体和与客户端100对应的连接ID。应用服务器300B当接收到数据主体时,与连接ID相对应地存储该数据主体。应用服务器300B将示出接收到数据主体的意思的结果通知发送到保持连接服务器200。保持连接服务器200根据结果通知,使用WebSocket协议将事务ID和发送结果发送到客户端100。

如所述多个动作概要所示的那样,在本实施方式的网络系统1中,对客户端100赋予连接ID,因此应用服务器300能够根据该连接ID,将各种数据推送给所选择的一个客户端100。

另外,在本实施方式的网络系统1中,客户端100和应用服务器300通过保持连接服务器200进行保持连接。因此,不需要通过交换识别ID来针对作为浏览器的客户端和作为服务程序的应用服务器的每个组合确立利用WebSocket的保持连接状态。因此,与以往相比能够减低施加于网络系统1的负荷。

另外,在本实施方式的网络系统1中,因为客户端100和保持连接服务器200根据所发送的数据的容量大小来切换协议,所以能够减低利用WebSocket协议的通信路径由于一部分数据的发送和接收而被占用的可能性。即,能够减低不能进行利用WebSocket协议的其它数据的发送和接收的可能性。

以下,详细记述用于实现这样的功能的网络系统1的各部分的具体结构。

<网络系统1>

首先,说明本实施方式的网络系统1整体的通信结构。图10是示出本实施方式的网络系统1整体的通信结构的框图。

参照图10,客户端100能够使用HTTP协议与保持连接服务器200和应用服务器300进行通信,还能够使用WebSocket协议与保持连接服务器200进行保持连接。更详细地,客户端100搭载后面描述的客户端APP 110A和客户端API 110B。客户端APP 110A对客户端100的各部分进行控制。客户端API 110B经由后面描述的通信接口,使用HTTP协议进行通信、或使用在HTTP协议上利用的WebSocket协议进行通信。

此外,本实施方式的结构除了HTTP/WebSocket协议以外,还能够在能够以SSL对通信路径加密的HTTPS/WSS协议下利用。即,本实施方式的网络系统1也能够应用于利用HTTPS/WSS协议的系统。

保持连接服务器200包括作为用于使用WebSocket协议控制与客户端100的保持连接通信的程序的WS服务器(即,作为软件的保持连接服务器)210A。保持连接服务器200能够使用其它的协议还访问其它的数据库450。此外,在本实施方式中,保持连接服务器200使用HTTP协议,能够在任意的定时向应用服务器300发送数据。

本实施方式的网络系统1包括多个应用服务器300A、300B。多个应用服务器300A、300B的每个搭载作为向客户端100、智能电话500等提供服务的程序的服务器APP(即,作为软件的应用服务器)310A和用于利用HTTP协议与保持连接服务器200进行通信的服务器API 310B。

例如,网络系统1包括用于控制吸尘器100A的应用服务器300A以及用于控制空调100B的应用服务器300B等。多个应用服务器300A、300B的每个能够使用HTTP协议与保持连接服务器200、其它的数据库、智能电话500等进行通信。而且,在本实施方式中,应用服务器300A、300B使用HTTP协议,能够在任意的定时向保持连接服务器200发送数据。

<客户端100的硬件结构>

接着,说明客户端100的硬件结构的一个方式。图11是表示本实施方式的客户端100的硬件结构的框图。

参照图11,客户端100包括CPU 110、存储器120、输入输出部130、摄像机140、家用电器控制电路150以及通信接口160作为主要的结构要素。

CPU 110通过执行存储器120或外部的存储介质所存储的程序,来控制客户端100的各部分。更详细地,CPU 110根据后面描述的APP(Application software:应用软件)数据,作为客户端APP 110A(参照图16~图24)进行动作,并且根据后面描述的API(Application Programming Interface:应用编程接口)数据,作为客户端API 110B(参照图16~图24)进行动作。即,CPU 110通过执行存储器120所保存的程序,来执行后面描述的各种处理。

存储器120通过各种RAM(Random Access Memory:随机存取存储器)、各种ROM(Read-Only Memory:只读存储器)、闪速存储器等实现。此外,存储器120还通过经由接口来利用的USB(Universal Serial Bus:通用串行总线)(注册商标)存储器、CD(Compact Disc:光盘)、DVD(Digital Versatile Disk:数字通用光盘)、存储器卡、硬盘、IC(Integrated Circuit:集成电路)卡、光卡、掩膜ROM、EPROM(Erasable Programmable Read Only Memory:可擦除可编程只读存储器)、EEPROM(Electronically Erasable Programmable Read-Only Memory:电可擦除可编程只读存储器)等存储介质等实现。

存储器120存储由CPU 110执行的程序、由CPU 110进行的程序的执行所生成的数据、通过输入输出部130输入的数据、作为吸尘器或空调等那样的客户端进行动作的APP数据、用于一边与客户端APP交换数据一边与保持连接服务器200进行通信的API数据。具体地,存储器120存储保持连接服务器的连接目的地、应用服务器连接目的地、服务识别码、服务认证标识、连接ID、客户端识别ID等。

输入输出部130通过按钮、触摸面板、键盘等实现。输入输出部130受理来自用户的命令,并将该命令输入到CPU 110。另外,输入输出部130通过显示器、灯等实现,根据来自CPU 110的信号输出字符、图像。另外,输入输出部130通过扬声器等实现,根据来自CPU 110的信号输出声音。

摄像机140根据来自CPU 110的信号拍摄静止图像、运动图像。具体地,摄像机140将拍摄到的图像数据交付给CPU 110。CPU 110将图像数据逐次存储到存储器120。

家用电器控制电路150根据来自CPU 110的信号,对作为家用电器的客户端的各部分(电动机等)进行控制。

通信接口160通过IEEE802.11a/b/g/n/ac等无线LAN通信、ZigBee(紫蜂)(注册商标)、BlueTooth(蓝牙)(注册商标)、或者Ethernet(以太网)(注册商标)等有线LAN等通信模块实现。通信接口160通过有线通信或无线通信与其它装置之间交换数据。CPU 110通过通信接口160,从其它装置接收程序、控制命令、图像数据、文本数据等、或向其它装置发送文本数据、图像数据等。在本实施方式中,CPU 110能够通过通信接口160,利用WebSocket协议与保持连接服务器200进行保持连接,还能够利用HTTP协议与应用服务器300进行通信。

<保持连接服务器200的硬件结构>

接着,说明保持连接服务器200的硬件结构的一个方式。图12是表示本实施方式的保持连接服务器200的硬件结构的框图。此外,保持连接服务器200能够标准地利用apache、tomcat、mysql等能够在一般的服务器模块中进行保证的功能。

参照图12,保持连接服务器200包括CPU 210、存储器220、输入输出部230以及通信接口260作为主要的结构要素。保持连接服务器200的硬件结构与客户端100的硬件结构相比,关于不具有用于控制家用电器的各部分的家用电器控制电路150和摄像机140这点、CPU 210的动作、存储器220所保存的数据而不同。以下,设为说明CPU 210的动作以及存储器220所存储的数据,关于其它硬件结构,不重复说明。

CPU 210通过执行存储器220或外部的存储介质所存储的程序,来控制保持连接服务器200的各部分。具体地,CPU 210通过执行存储器220所存储的程序,来作为WS服务器210A(参照图16~图24)进行动作。

存储器220存储由CPU 210执行的程序、通过CPU 210进行的程序的执行而生成的数据、通过输入输出部230输入的数据、服务ID、服务名、应用服务器300的连接目的地URL、服务认证标识生成信息、认证信息(动态秘钥)、连接ID等。

<应用服务器300的硬件结构>

接着,说明应用服务器300的硬件结构的一个方式。图13是表示本实施方式的应用服务器300的硬件结构的框图。此外,应用服务器300能够标准地利用apache、tomcat、mysql等能够在一般的服务器模块中进行保证的功能。

参照图13,应用服务器300包括CPU 310、存储器320、输入输出部330以及通信接口360作为主要的结构要素。应用服务器300的硬件结构与客户端100的硬件结构相比,关于不具有用于控制家用电器的各部分的家用电器控制电路150这点、CPU 310的动作、存储器320保存的数据而不同。因此,以下,设为说明CPU 310的动作以及存储器320存储的数据,关于其它的硬件结构,不重复说明。

CPU 310通过执行存储器320或外部的存储介质所存储的程序来控制应用服务器300的各部分。具体地,CPU 310通过执行存储器320存储的程序,根据后面描述的APP数据,作为服务器APP310A(参照图16~图24)进行动作,并且根据后面描述的API数据,作为服务器API310B(参照图16~图24)进行动作。

存储器320存储由CPU 310执行的程序、通过由CPU 310进行的程序的执行而生成的数据、通过输入输出部330输入的数据、作为应用服务器300进行动作的APP数据、用于一边与服务器APP交换数据一边与保持连接服务器200进行通信的API数据。具体地,存储器320存储保持连接服务器的URL、服务ID和服务认证标识、认证信息(动态秘钥)生成信息、连接ID等。

<智能电话500的硬件结构>

接着,说明智能电话500的硬件结构的一个方式。图14是表示本实施方式的智能电话500的硬件结构的框图。

参照图14,智能电话500包括CPU 510、存储器520、按钮530、显示器540以及通信接口560作为主要的结构要素。智能电话500的硬件结构与客户端100的硬件结构相比,关于不具有用于控制家用电器的各部分的家用电器控制电路150,CPU 510的动作、存储器320保存的数据而不同。因此,在此,关于硬件结构的各部分不重复说明。此外,近年来,代替按钮530和显示器540而利用触摸面板550的情形多。

<与保持连接有关的装置间的数据交换>

接着,说明本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的概要。此外,图15是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。

参照图15,客户端100使用HTTP协议,向应用服务器300请求认证信息(步骤S002)。此时,客户端100向应用服务器300发送利用于认证的客户端ID。应用服务器300根据该请求,使用HTTP协议向客户端100发送认证信息(步骤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接收连接ID并进行存储(步骤S020)。应用服务器300也接收连接ID并进行存储(步骤S022)。

之后,应用服务器300根据需要向保持连接服务器200发送数据主体(例如,轮询命令等)和用于确定作为给送目的地的客户端100的连接ID(步骤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中的各处理过程。此外,如上所述,参照图10和图11,客户端APP 110A是通过客户端100的CPU 110执行程序来实现的客户端,对作为客户端100的动作进行控制。客户端API 110B是通过客户端100的CPU 110执行程序来实现的客户端,一边使用通信接口160一边使用HTTP协议和WebSocket协议来与保持连接服务器200进行通信。

另外,参照图10和图13,服务器APP 310A是通过应用服务器300的CPU 310执行程序来实现的服务器,作为应用服务程序进行动作。服务器API 310B是通过应用服务器300的CPU 310执行程序来实现的服务器,一边通信接口360一边与保持连接服务器200进行通信。

另外,参照图10和图12,WS服务器210A是通过保持连接服务器200的CPU 210执行程序来实现的服务器。WS服务器210A一边使用通信接口260一边使用HTTP协议来与应用服务器300进行通信。进一步地,在本实施方式中,WS服务器210A一边使用通信接口260一边使用HTTP协议和WebSocket协议与客户端100进行通信。

<保持连接开始时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的保持连接开始时的处理过程的详细内容。图16是示出本实施方式的网络系统1中的保持连接开始时的处理过程的详细内容的时序图。

参照图16,客户端APP 110A把用于开始与应用服务器300之间的保持连接的请求交付到客户端API 110B(步骤S102)。此时,客户端APP 110A向客户端API 110B交付客户端ID。

客户端API 110B通过通信接口160,使用HTTP协议向应用服务器300给送客户端ID并且请求认证信息(步骤S104)。此外,客户端APP或客户端API 110B也将服务的认证所需要的其它信息作为参数并发送到应用服务器300(步骤S106)。

服务器API 310B当接收到客户端ID和该请求时,生成认证信息(步骤S108)。服务器API 310B向服务器APP 310A通知连接开始(步骤S110)。服务器API 310B当从服务器APP 310A收到允许连接的回答时(步骤S114),通过通信接口360向保持连接服务器200发送认证信息(步骤S116)。WS服务器210A将认证信息保存到存储器120(步骤S118)。服务器API 310B通过通信接口260将认证信息发送到客户端100(步骤S120)。

客户端API 110B通过通信接口160,使用HTTP协议向保持连接服务器200发送信息交换请求(步骤S122)。WS服务器210A通过通信接口260,将信息交换响应返回给客户端100(步骤S124)。由此,开始客户端100与保持连接服务器200之间的通过WebSocket协议进行的保持连接。

客户端API 110B通过通信接口160,使用WebSocket协议向保持连接服务器200发送认证信息(步骤S126)。WS服务器210A根据之前从应用服务器300接收到的认证信息以及本次从客户端100接收到的认证信息,对客户端100进行认证(步骤S128)。

当认证成功时,WS服务器210A发布连接ID(步骤S130)。WS服务器210A通过通信接口260,作为连接确立状况,将客户端100的连接ID发送到应用服务器300(步骤S132)。服务器API 310B将连接ID存储到存储器320(步骤S134)。服务器API 310B将连接确立状况通知给服务器APP 310A(步骤S136)。服务器API 310B删除认证信息(步骤S138)。

WS服务器210A通过通信接口260,使用WebSocket协议,作为认证请求的响应,将连接ID返送给客户端100(步骤S144)。客户端API 110B存储连接ID。

客户端API 110B通过通信接口160,使用WebSocket协议请求连接确认(步骤S146)。WS服务器210A当接收到该请求时,通过通信接口260,使用WebSocket协议对连接确认进行响应(步骤S148)。客户端API 110B根据该响应,向客户端APP 100A通知开始保持连接的意思(步骤S150)。

<来自客户端的保持连接切断时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自客户端的保持连接切断时的处理过程的详细内容。图17是示出本实施方式的网络系统1中的来自客户端的保持连接切断时的处理过程的详细内容的时序图。

参照图17,客户端APP 110A将用于切断与应用服务器300的保持连接的请求交付到客户端API 110B(步骤S202)。此时,客户端100也将连接ID交付到客户端API 110B。

客户端API 110B通过通信接口160,使用WebSocket协议向保持连接服务器200请求保持连接的切断(步骤S204)。WS服务器210A通过通信接口260,使用WebSocket协议了解保持连接的切断(步骤S206)。

客户端API 110B结束与保持连接服务器200的保持连接,与保持连接服务器200之间的TCP通信也结束(步骤S208)。客户端API 110B将结束保持连接的意思通知给客户端APP 100A(步骤S210)。

WS服务器210A结束与客户端100的保持连接,与客户端100之间的TCP通信也结束(步骤S212)。WS服务器210A通过通信接口260向应用服务器300通知切断了保持连接的意思(步骤S214)。

服务器API 310B接受该通知并向服务器APP 310A通知与客户端100之间的保持连接结束的意思(步骤S218)。具体地,服务器API 310B把与结束了保持连接的客户端100对应的连接ID交付到服务器APP 310A。

<来自应用服务器的保持连接切断时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自应用服务器300的保持连接切断时的处理过程的详细内容。此外,存在应用服务器300在程序升级版本时以及针对故障进行维护时等切断与客户端100之间的保持连接的情况。图18是示出本实施方式的网络系统1中的来自应用服务器300的保持连接切断时处理过程的详细内容的时序图。

参照图18,服务器APP 310A将用于切断与客户端100之间的保持连接的请求交付到服务器API 310B(步骤S302)。此时,服务器APP 310A也向服务器API 310B交付成为对象的客户端100的连接ID。

服务器API 310B通过通信接口360向保持连接服务器200请求与客户端100之间的保持连接的切断(步骤S304)。WS服务器210A通过通信接口260了解保持连接的切断。服务器API 310B向服务器APP 310A通知与客户端100之间的保持连接结束的意思(步骤S306)。

WS服务器210A通过通信接口260,使用WebSocket协议向客户端100请求保持连接的切断(步骤S310)。客户端API 110B根据该请求,向客户端APP 100A通知保持连接的切断(步骤S312)。客户端API 110B结束与保持连接服务器200之间的保持连接,与保持连接服务器200之间的TCP通信也结束(步骤S316)。

WS服务器210A结束与客户端100之间的保持连接,与客户端100之间的TCP通信也结束(步骤S318)。WS服务器210A通过通信接口260,向服务器API 310B通知与客户端100之间的保持连接的切断完成的意思(步骤S320)。

服务器API 310B根据该通知,从存储器320所存储的连接状态管理信息删除客户端100的连接ID(步骤S322)。服务器API 310B将切断处理完成的意思通知给服务器APP 310A(步骤S324)。

<来自客户端的连接确认时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自客户端100的连接确认时的处理过程的详细内容。此外,存在客户端100在一定期间内未进行通过保持连接进行的数据接收的情况以及从用户受理关闭(OFF)保持连接功能的指示的情况等下切断与应用服务器300之间的保持连接的情况。图19是示出本实施方式的网络系统1中的来自客户端100的连接确认时的处理过程的详细内容的时序图。

参照图19,客户端APP 100A向客户端API 110B请求与保持连接服务器200的连接确认(步骤S402)。客户端API 110B通过通信接口160,使用WebSocket协议向保持连接服务器200发送连接确认请求(ping)(步骤S404)。

WS服务器210A当接收到连接确认请求(ping)时,通过通信接口260向客户端100发送连接确认响应(pong)(步骤S406)。客户端API 110B将连接状态的判定结果通知给客户端APP 100A(步骤S408)。

此外,在未从保持连接服务器200返送连接确认响应(pong)的情况下,客户端API 110B自动确认重新连接标签,调出用于请求保持连接的处理(步骤S412)。之后,网络系统1执行与开始保持连接时相同的处理(参照图15和图16)。

<来自应用服务器的连接确认时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自应用服务器300的连接确认时的处理过程的详细内容。图20是示出本实施方式的网络系统1中的来自应用服务器300的连接确认时的处理过程的详细内容的时序图。

参照图20,服务器APP 310A向服务器API 310B请求保持连接服务器200与客户端100之间的连接确认(步骤S502)。服务器API 310B通过通信接口360向保持连接服务器200请求与客户端100的连接确认(步骤S504)。

WS服务器210A通过通信接口260,使用WebSocket协议向客户端100发送连接确认请求(ping)(步骤S506)。客户端API 110B当接收到连接确认请求(ping)时,通过通信接口260,使用WebSocket协议向保持连接服务器200发送连接确认响应(pong)(步骤S508)。

WS服务器210A当接收到连接确认响应(pong)时,创建连接状态信息(步骤S510)。WS服务器210A通过通信接口260将连接状态信息发送到应用服务器300(步骤S512)。服务器API 310B将连接状态信息交付到服务器APP 310A(步骤S514)。

<来自应用服务器的通常的数据推送时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自应用服务器300的数据推送时的处理过程的详细内容。更详细地,以下,分开地对本实施方式的网络系统1中的来自应用服务器300的通常的(小容量的)数据推送时的处理过程的详细内容和大容量的数据推送时的处理过程的详细内容进行说明。

此外,作为从应用服务器300发送的小容量的数据的例子,可列举命令等文本文件、小的大小的图像/语音/运动图像文件(是要再生的内容且容量小的文件)等。另一方面,作为从应用服务器300发送的大容量的数据的例子,可列举大的大小的图像/语音/运动图像文件等。

首先,说明本实施方式的网络系统1中的来自应用服务器300的数据推送时的处理过程的详细内容。图21是示出本实施方式的网络系统1中的来自应用服务器300的通常的数据推送时的处理过程的详细内容的时序图。

参照图21,服务器APP 310A向服务器API 310B请求数据推送(步骤S602)。具体地,服务器APP 310A向服务器API 310B交付用于确定客户端100的连接ID、数据主体以及用于确定应用程序的数据。服务器API 310B发布事务ID(步骤S604)。

服务器API 310B判断WS数据构造(步骤S606)。图25是示出本实施方式的WS数据的构造的图形图。如图25所示,WS数据1000例如包括type“sendbin_”(8bytes)、事务ID、数据长度、数据名、应用定义数据长度、应用定义数据、数据长度、数据主体等。在本实施方式中,服务器API 310B判断数据主体的容量是否大于规定值。或者,服务器API 310B判断要向客户端100发送的数据整体的容量是否大于规定值。在此,说明数据量为规定值以下的情况。

服务器API 310B向保持连接服务器200请求数据推送(步骤S608)。具体地,服务器API 310B通过通信接口360向保持连接服务器200发送连接ID、事务ID、WS数据类型、数据主体以及用于确定应用的数据。

WS服务器210A接收来自应用服务器300的数据,将该数据重新构成为与WebSocket协议对应的数据(步骤S610)。WS服务器210A通过通信接口260,使用WebSocket协议将连接ID、事务ID、WS数据类型、数据主体以及用于确定应用的数据发送到客户端100(步骤S612)。

客户端API 110B通过通信接口160,使用WebSocket协议从保持连接服务器200接收数据。客户端API 110B对接收到的WS数据进行解析(步骤S614)。客户端API 110B将接收到的数据交付到客户端APP 100A(步骤S616)。

客户端API 110B通过通信接口160,使用WebSocket协议发送包括事务ID的数据,由此将数据主体到达客户端100的意思通知给保持连接服务器200。WS服务器210A通过经由通信接口260发送包括事务ID的数据,将数据主体到达客户端100的意思通知给应用服务器300(步骤S620)。

<来自应用服务器的大容量的数据推送时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自应用服务器300的大容量的数据推送时的处理过程的详细内容。图22是示出本实施方式的网络系统1中的来自应用服务器300的大容量的数据推送时的处理过程的详细内容的时序图。

参照图22,服务器APP 310A向服务器API 310B请求数据推送(步骤S702)。具体地,服务器APP 310A向服务器API 310B交付用于确定客户端100的连接ID、数据主体以及用于确定应用的数据。服务器API 310B发布事务ID(步骤S704)。

服务器API 310B判定WS数据构造(步骤S706)。在本实施方式中,服务器API 310B判断数据主体的容量是否大于规定值。或者,服务器API 310B判断要向客户端100发送的数据整体的容量是否大于规定值。在此,说明数据量大于规定值的情况。

服务器API 310B向保持连接服务器200请求数据推送(步骤S708)。具体地,服务器API 310B通过通信接口360向保持连接服务器200发送连接ID、事务ID、URL信息、WS数据类型、用于确定应用的数据以及结果通知标签。此时,服务器API 310B还向服务器APP 310A交付事务ID(步骤S710)。

WS服务器210A接收来自应用服务器300的数据,将该数据重新构成为与WebSocket协议对应的数据(步骤S712)。WS服务器210A通过通信接口260,使用WebSocket协议向客户端100发送连接ID、事务ID、URL信息、WS数据类型、用于确定应用的数据以及结果通知标签(步骤S714)。

客户端API 110B通过通信接口160,使用WebSocket协议从保持连接服务器200接收数据。客户端API 110B对接收到的数据进行解析(步骤S716)。

客户端API 110B通过通信接口160,使用HTTP协议,根据接收到的URL信息和事务ID,向应用服务器300请求数据(步骤S718)。服务器API 310B响应于该请求,构建要向客户端100发送的数据(步骤S720)。服务器API 310B通过通信接口360,使用HTTP协议将数据主体发送到客户端100(步骤S722)。即,客户端API 110B通过通信接口260,使用HTTP协议从URL所示的应用服务器300的保存位置下载数据。

客户端API 110B对接收到的数据进行解析(步骤S724)。客户端API 110B将接收到的数据交付到客户端APP 100A(步骤S726)。客户端API 110B确认结果通知标签(步骤S728)。

客户端API 110B通过通信接口160,使用HTTP协议向应用服务器300通知数据到达了客户端的意思(步骤S732)。具体地,客户端API 110B将事务ID和数据推送结果状态发送到应用服务器300。服务器API 310B将事务ID和数据推送结果状态交付到服务器APP 310A(步骤S734)。

此外,在此,参照图21和图22,虽然说明了应用服务器300判断数据大小的结构,但是也可以如图6和图7所示那样是保持连接服务器200进行该判断的结构。

另外,在此,参照图22,虽然说明了客户端100从应用服务器300下载大容量的数据的结构,但是也可以如图7所示那样客户端100从保持连接服务器200或其它Web服务器下载该数据。也就是说,也可以是先由应用服务器300向保持连接服务器200或其它Web服务器发送数据、之后由客户端100从保持连接服务器200或其它Web服务器下载数据的结构。

<来自客户端的通常的数据推送时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自客户端100的数据推送时的处理过程的详细内容。更详细地,以下,分开地对本实施方式的网络系统1中的来自客户端100的通常的(小容量的)数据推送时的处理过程的详细内容和大容量的数据推送时的处理过程的详细内容进行说明。

此外,作为从客户端100发送的小容量的数据的例子,可列举时间日志等文本文件、小的大小的图像/语音/运动图像文件(摄像机图像、或利用于语音识别的语音)等。另一方面,作为从应用服务器300发送的大容量的数据的例子,可列举几天以上的大量日志等文本文件、大的大小的图像/语言/运动图像文件等。

首先,说明本实施方式的网络系统1中的来自客户端100的通常的数据推送时的处理过程的详细内容。图23是示出本实施方式的网络系统1中的来自客户端100的通常的数据推送时的处理过程的详细内容的时序图。

参照图23,客户端APP 110A向客户端API 110B请求数据推送(步骤S802)。具体地,客户端APP 110A向客户端API 110B交付用于确定自己的连接ID、数据主体以及用于确定应用的数据。服务器API 310B发布事务ID(步骤S804)。

客户端API 110B判定WS数据构造(步骤S806)。在本实施方式中,客户端API 110B判断数据主体的容量是否大于规定值。或者,客户端API 110B判断要向保持连接服务器200发送的数据整体的容量是否大于规定值。在此,说明数据量为规定值以下的情况。

客户端API 110B将包括连接ID、事务ID、WS数据类型、数据主体以及用于确定应用的数据的WS数据重新构成为与WebSocket协议对应的数据(步骤S808)。客户端API 110B通过通信接口160,使用WebSocket协议将构建的WS数据发送到保持连接服务器200(步骤S810)。

WS服务器210A从WS数据取得连接ID(步骤S812)。WS服务器210A对接收到的WS数据进行解析(步骤S814)。WS服务器210A通过通信接口260发送来自客户端100的数据(步骤S816)。更详细地,WS服务器210A通过通信接口160,利用HTTP协议向应用服务器300发送客户端100的连接ID、数据主体以及用于确定应用的数据。

服务器API 310B将接收到的数据交付到服务器APP 310A(步骤S818)。服务器API 310B通过通信接口360发送包括事务ID的数据,由此将数据主体到达了应用服务器300的意思通知给保持连接服务器200(步骤S822)。WS服务器210A通过通信接口360,使用WebSocket协议发送包括事务ID的数据,由此通知数据主体到达了应用服务器300的意思。

<来自客户端的大容量的数据推送时的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的来自客户端100的大容量的数据推送时的处理过程的详细内容。图24是示出本实施方式的网络系统1中的来自客户端100的大容量的数据推送时的处理过程的详细内容的时序图。

参照图24,客户端APP 110A向客户端API 110B请求数据推送(步骤S902)。具体地,客户端APP 110A向客户端API 110B交付用于确定客户端100的连接ID、数据主体以及用于确定应用的数据。客户端API 110B发布事务ID(步骤S904)。

客户端API 110B判定WS数据构造(步骤S906)。在本实施方式中,客户端API 110B判断数据主体的容量是否大于规定值。或者,客户端API 110B判断要向保持连接服务器200发送的数据整体的容量是否大于规定值。在此,说明数据量大于规定值的情况。

客户端API 110B将包括连接ID、事务ID、WS数据类型、用于确定应用的数据以及数据的容量的WS数据重新构成为与WebSocket协议对应的数据(步骤S908)。客户端API 110B通过通信接口160,使用WebSocket协议将构建的WS数据发送到保持连接服务器200(步骤S910)。

WS服务器210A从接收到的WS数据取得连接ID(步骤S912)。WS服务器210A对接收到的WS数据进行解析(步骤S914)。WS服务器210A通过通信接口260向应用服务器300请求数据主体的发送目的地的URL(步骤S916)。具体地,WS服务器210A通过通信接口260将连接ID、应用定义数据以及事务ID发送到应用服务器300。

服务器API 310B对应于来自保持连接服务器200的请求,发布上传用的URL(步骤S918)。服务器API 310B通过通信接口360向保持连接服务器200请求向客户端100的数据推送(步骤S920)。具体地,服务器API 310B通过通信接口360,利用HTTP协议向保持连接服务器200发送连接ID、事务ID、发送目的地URL、WS数据类型以及用于确定应用的信息。

WS服务器210A根据从应用服务器300接收到的信息,构建与WebSocket协议对应的数据(步骤S922)。WS服务器210A通过通信接口260,使用WebSocket协议将WS数据发送到客户端100(步骤S924)。

客户端API 110B对WS数据进行解析(步骤S926)。客户端API 110B根据数据主体构建发送用(上传用)的数据(步骤S928)。客户端API 110B根据URL信息,通过通信接口160,使用HTTP协议向应用服务器300的发送目的地URL上传数据主体和事务ID(步骤S930)。

服务器API 310B对接收到的数据进行解析(步骤S932)。服务器API 310B取得事务ID和数据主体(步骤S934)。服务器API 310B将连接ID、数据主体以及用于确定应用的信息交付到服务器APP 310A(步骤S936)。

服务器API 310B通过通信接口360发送包括事务ID的数据,由此向保持连接服务器200通知数据主体到达了应用服务器300的意思。WS服务器210A通过通信接口260,使用WebSocket协议发送包括事务ID的数据,由此通知数据主体到达了应用服务器300的意思(步骤S940)。

此外,在此,虽然参照图24说明了客户端100向应用服务器300上传大容量的数据的结构,但是也可以如图9所示那样,客户端100将该数据上传到保持连接服务器200或其它服务器。而且,保持连接服务器200或其它服务器也可以向应用服务器300发送数据。

以上说明了网络系统1中的各种详细的处理过程。在本实施方式的网络系统1中,根据连接ID,能够将来自应用服务器300的数据推送给所选择的一个客户端100。另外,由于客户端100和应用服务器300通过保持连接服务器200相互推送数据,因此与以往相比能够减低施加到网络系统的负荷。进一步地,由于按发送的数据的容量切换协议,因此能够减低由于一部分数据的发送和接收而占用使用WebSocket协议的通信的可能性,并能够减低不能进行使用WebSocket协议的其它数据的发送和接收的可能性。

<第二实施方式>

接着,说明第二实施方式。在所述的第一实施方式的网络系统1中,客户端100以及保持连接服务器200中的至少任一个分别使用通常的HTTP协议和WebSocket协议。更详细地,客户端100以及保持连接服务器200中的至少任一个在发送的数据的容量大于规定值的情况下,使用HTTP协议发送和接收数据,在发送的数据的容量为规定值以下的情况下,使用WebSocket协议发送和接收数据。

然而,在本实施方式中,是根据通信速度而非数据的容量来判断合适的协议。此外,从应用服务器300发送的数据中的需要快速的通信速度的数据例如可列举需要立即发布命令的某些命令数据(空调电源接通/关闭等)、需要立即再现的图像/语音/运动图像文件(紧急的消息、例如紧急地震速报等)等。另一方面,作为从客户端100发送的数据中的需要快速的通信速度的情况,例如可列举存在需要在终端(智能电话)侧等立即再现图像、语音等的情况等。

以下,详细进行说明。首先,在图21的步骤S606和图22的步骤S706中,在本实施方式中,服务器API 310B判断当前的WebSocket协议的通信速度是否比规定值慢。或者,服务器API 310B判断以WebSocket协议发送成为对象的数据的情况下的通信速度是否比规定值慢。

具体地,服务器API 310B通过通信接口360向客户端100发送速度确认用的信号(ping),测量直到响应信号(pong)返回为止的时间,由此能够计算通信速度。或者,服务器API 310B也可以使WS服务器210A以同样的方法计算通信速度。

此外,步骤S608以后是关于通信速度为规定值以上的情况的说明。步骤S708以后是关于通信速度比规定值慢的情况的说明。

同样地,在图23的步骤S806和图24的步骤S906中,在本实施方式中,客户端API 110B判断当前的WebSocket协议的通信速度是否比规定值慢。或者,客户端API 110B判断以WebSocket协议发送成为对象的数据的情况下的通信速度是否比规定值慢。

此外,步骤S808以后是通信速度为规定值以上的情况的说明。步骤S908以后的步骤是关于通信速度比规定值慢的情况的说明。

在此,虽然说明应用服务器300进行所述判断的结构,但是与图6和图7同样地也可以是保持连接服务器200进行该判断的结构。

<第三实施方式>

进一步地,关于协议的选择方法,说明第三实施方式。在本实施方式中,是根据发送时间判断合适的协议。以下,详细地进行说明。

首先,在图21的步骤S606和图22的步骤S706中,在本实施方式中,服务器API 310B判断在以WebSocket协议发送成为对象的数据的情况下的发送时间是否比规定值长。步骤S608以后是关于发送时间为规定值以下的情况的说明。步骤S708以后是关于发送时间比规定值长的情况的说明。

同样地,在图23的步骤S806和图24的步骤S906中,在本实施方式中,客户端API 110B判断在以WebSocket协议发送成为对象的数据的情况下的发送时间是否比规定值长。步骤S808以后是关于发送时间为规定值以下的情况的说明。步骤S908以后是关于发送时间比规定值长的情况的说明。

在此,虽然说明应用服务器300进行所述判断的结构,但是也可以与图6和图7同样地是保持连接服务器200进行该判断的结构。

<第四实施方式>

进一步地,关于协议的选择方法,说明第四实施方式。在本实施方式中,是根据基于WebSocket协议的数据的发送和接收的频率判断合适的协议。此外,作为从应用服务器300发送的数据中的发送和接收的频率高的数据,例如可列举存活确认用的数据等。另一方面,作为从客户端100发送的数据中的发送和接收的频率高的数据,例如可列举存活确认用的数据及日志更新(log up)数据等。

以下,详细地进行说明。首先,在图21的步骤S606和图22的步骤S706中,在本实施方式中,服务器API 310B判断使用WebSocket协议的数据的发送和接收的频率是否比规定值多。例如,服务器API 310B测量保持连接服务器200与客户端100之间每一分钟使用WebSocket协议的数据发送和接收的次数。或者,服务器API 310B从WS服务器210A取得保持连接服务器200与客户端100之间每一分钟使用WebSocket协议的数据发送和接收的次数。步骤S608以后是关于该次数为规定值以下的情况的说明。步骤S708以后是关于该次数比规定值多的情况的说明。

同样地,在图23的步骤S806和图24的步骤S906中,在本实施方式中,客户端API 110B判断使用WebSocket协议的数据发送和接收的频率是否比规定值多。例如,客户端100测量保持连接服务器200与客户端100之间在每一分钟使用WebSocket协议的数据发送和接收的次数。客户端100判断该次数是否比规定值多。步骤S808以后是关于该次数为规定值以下的情况的说明。步骤S908以后是关于该次数比规定值多的情况的说明。

在此,虽然说明应用服务器300进行所述判断的结构,但是也可以与图6和图7同样地是保持连接服务器200进行该判断的结构。

<第五实施方式>

接着,说明第五实施方式。在所述第一至第四实施方式的网络系统1中,保持连接服务器200具有对与客户端100之间的数据发送和接收进行控制的WS服务器210A的功能,应用服务器300的每个是搭载作为程序的服务器APP 310A的功能、生成认证信息的服务器API 310B的功能的应用服务器。

然而,在本实施方式中,是保持连接服务器200具有生成认证信息的功能210B的实施例。图26是示出第五实施方式的网络系统1的通信结构的图形图。

<第六实施方式>

进一步地,说明第六实施方式。在本实施方式中,应用服务器300U具有WS服务器310W的功能、生成认证信息的功能310Z以及两个服务器APP 310A、310A的功能。图27是示出第七实施方式的网络系统1的通信结构的图形图。此外,在本实施方式的网络系统1中,关于客户端100的结构与第一实施方式的客户端的结构相同,因此关于客户端100的结构,不重复说明。

参照图27,应用服务器300U具有作为对使用WebSocket协议的通信进行控制的程序的WS服务器310W的功能、生成认证信息的功能310Z、作为第一服务程序的服务器APP 310A的功能以及作为第二服务程序的APP 310A的功能。多个服务器APP 310A、310A的每个能够使用HTTP协议与其它数据库、智能电话500等进行通信。而且,服务器APP 310A、310A能够通过WS服务器310W,使用WebSocket协议向客户端100推送发送信息。

<第七实施方式>

进一步地,说明第七实施方式。在本实施方式中,与第五和第六实施方式相反地,将WS服务器的功能、生成认证信息的功能以及两个服务器APP的功能分散地搭载于不同的计算机。图28是示出第八实施方式的网络系统1的通信结构的图形图。

参照图28,客户端100能够使用HTTP协议与保持连接服务器200T、认证信息生成服务器200U、应用服务器300A、300B进行通信,还能够使用WebSocket协议与保持连接服务器200T进行保持连接。更详细地,客户端100搭载客户端APP 110A和客户端API 110B。客户端APP 110A控制客户端100的各部分。客户端API 110B通过通信接口160使用HTTP协议进行通信、或者使用在HTTP协议上利用的WebSocket协议进行通信。

保持连接服务器200T搭载作为用于使用WebSocket协议控制与客户端100之间的保持连接通信的程序的WS服务器210A。保持连接服务器200T使用HTTP协议,也能够访问其它的数据库450。

认证信息生成服务器200U使用HTTP协议控制与多个应用服务器300之间的通信。在本实施方式中,保持连接服务器200T能够使用HTTP协议,通过认证信息生成服务器200U,在任意的定时向应用服务器300A、300B发送数据。

此外,第二~第七实施方式的网络系统1也包括多个应用服务器300A、300B。多个应用服务器300A、300B的每个搭载作为向客户端100、智能电话500等提供服务的程序的服务器APP 310A以及用于利用HTTP协议与保持连接服务器200进行通信的服务器API 310B。

例如,网络系统1包括用于控制吸尘器100A的应用服务器300A以及用于控制空调100B的应用服务器300B等。多个应用服务器300A、300B的每个能够使用HTTP协议与保持连接服务器200、其它数据库、智能电话500等进行通信。而且,在本实施方式中,应用服务器300A、300B能够使用HTTP协议,在任意的定时向保持连接服务器200发送数据。

<第八实施方式>

在所述第一至第四实施方式中,用于判断是利用WebSocket协议发送数据、还是利用HTTP协议发送数据的基准是一种。然而,客户端100、保持连接服务器200、应用服务器300也可以根据两个以上的基准进行判断。在以下,为了说明,对客户端100、保持连接服务器200、应用服务器300进行统称,还称为计算机。

例如,计算机也可以根据第一实施方式的基准和第二实施方式的基准进行判断。而且,在满足与第一实施方式有关的条件且满足与第二实施方式有关的条件的情况下,计算机也可以利用HTTP协议上传或下载数据。或者,在满足与第一实施方式有关的条件以及与第二实施方式有关的条件中的至少一个的情况下,计算机也可以利用HTTP协议上传或下载数据。

同样地,计算机也可以根据第一实施方式的基准和第三实施方式的基准进行判断,也可以根据第一实施方式的基准和第四实施方式的基准进行判断,也可以根据第二实施方式的基准和第三实施方式的基准进行判断,也可以根据第二实施方式的基准和第四实施方式的基准进行判断,还可以根据第三实施方式的基准和第五实施方式的基准进行判断。进一步地,计算机也可以根据三个以上的所述基准进行判断。而且,在满足所有条件的情况下、或者满足一部分条件的情况下,计算机也可以利用HTTP协议上传或下载数据。

<第九实施方式>

<网络系统的整体结构>

接着,说明第十实施方式的网络系统1的整体结构。图29是示出本实施方式的网络系统1的整体结构和动作概要的图形图。

参照图29,网络系统1包括配置在住所或办公室等中的多个客户端100A、100B、100C、能够与客户端100A、100B、100C保持连接的保持连接服务器200以及提供与客户端100A、100B、100C有关的各种服务的应用服务器300。作为客户端,例如列举吸尘器100A、空调100B、电视100C、洗衣机、冰箱、烧饭器、空气清新器、地暖、IH(Induction Heating,感应加热)烹调加热器、微波炉、照明等家用电器。并且,客户端只要是通信设备即可,也可以包括例如个人计算机、电视以外的AV设备、内线电话系统等。另外,保持连接服务器200和应用服务器300也可以与客户端相同地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。

家用电器与各服务器之间也可以经由光纤等线路,在中途连接光线路中断装置、用于进行无线LAN通信的接入点、路由器等。家用电器使用IEEE802.11a/b/g/n/ac等无线LAN通信、或有线LAN等作为与网络连接的方案,但是连接方法不限定于这些。

而且,在本实施方式中,吸尘器100A和电视100C能够利用WebSocket协议与保持连接服务器200进行保持连接。而且,吸尘器100A也能够利用HTTP协议,与用于提供各种服务的应用服务器300之间发送和接收数据。同样地,电视100C也能够利用HTTP协议,与用于提供各种服务的应用服务器300之间发送和接收数据。

另一方面,空调100B由于不支持WebSocket协议,因此不能与保持连接服务器200进行保持连接。或者,空调100B通过未图示的代理服务器与因特网连接,因此不能与保持连接服务器200进行保持连接。然而,空调100B能够利用以往那样的HTTP协议与用于提供各种服务的应用服务器300直接发送和接收数据。

此外,在本实施方式中,保持连接服务器200和应用服务器300是不同的计算机。换言之,在保持连接服务器200中运行用于与客户端保持连接的服务程序。而且,在应用服务器300中运行用于通过向客户端发送信息来控制客户端的服务程序、用于通过取得来自客户端的信息来在其它电子设备中利用该信息的服务程序等。

然而,保持连接服务器和应用服务器也可以是相同的计算机。例如,作为一个计算机、即装置的服务器也可以搭载用于与客户端保持连接的通信服务程序以及用于控制客户端应用服务程序。另外,一个应用服务器也可以搭载多个应用服务程序。

另外,本实施方式的结构除了HTTP/WebSocket协议以外,还能够在通过SSL对通信路径进行加密的HTTPS/WSS协议下利用。即,本实施方式的网络系统1也能够应用于利用HTTPS/WSS协议的系统。

<网络系统的动作概要>

接着,说明本实施方式的网络系统1的动作概要。首先,吸尘器100A、空调100B、电视100C等客户端分别周期性地利用HTTP协议向应用服务器300进行轮询。但是,能够与保持连接服务器200进行保持连接的吸尘器100A和电视100C也可以是不进行周期性的轮询的方式。

在此,说明智能电话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进行了保持连接的电视100C,也同样能够不等待从电视100C向应用服务器300的周期性的轮询而从应用服务器300向电视100C发送服务数据。

而且,针对不支持保持连接的空调100B、其它家用电器(包括其它吸尘器。),能够像以往那样,应用服务器300对应于来自空调100B、其它家用电器的轮询,将服务数据发送到空调100B、其它家用电器。

即,在本实施方式中,能够利用保持连接且能够像以往那样进行不支持保持连接的客户端与服务器之间的发送和接收。下面,详细说明用于实现这种功能的网络系统1的构造。

<客户端100的硬件结构>

说明客户端100的硬件结构的一个方式。参照图11,客户端100包括CPU 110、存储器120、输入输出部130、摄像机140、家用电器控制电路150以及通信接口160作为主要的结构要素。

CPU 110通过执行存储器120或外部的存储介质中存储的程序来控制客户端100的各部。更详细地说,CPU 110作为客户端APP进行动作,并且作为客户端API进行动作。即,CPU 110通过执行存储器120中所保存的程序来执行图15所记载的客户端100的动作、图31、图34、图37、图40所记载的各处理(步骤S)。

存储器120的实际例子与第一实施方式的相同,因此在此省略说明。

存储器120存储由CPU 110执行的程序、由CPU 110执行程序所生成的数据、通过输入输出部130输入的数据、用于作为吸尘器100A、空调100B、电视100C等那样的客户端100进行动作的APP数据、用于一边与客户端APP交换数据一边与外部的设备进行通信的API数据。例如,存储器120存储保持连接服务器的连接目的地、应用服务器连接目的地、服务识别码、服务认证标识、连接ID、客户端识别ID等。

关于输入输出部130、摄像机140、家用电器控制电路150、通信接口160,也与第一实施方式的那些相同,因此在此省略说明。

此外,关于能够利用WebSocket协议的客户端100(例如吸尘器100A及电视100C等),CPU 110能够通过通信接口160与保持连接服务器200进行保持连接、也能够利用HTTP协议与应用服务器300进行通信。另一方面,关于不能利用WebSocket协议的客户端100(例如空调100B),CPU 110能够通过通信接口160,利用HTTP协议与应用服务器300进行通信,但是不能与保持连接服务器200进行保持连接。

<保持连接服务器200的硬件结构>

接着,关于保持连接服务器200的硬件结构的一个方式,与图12所示的第一实施方式的保持连接服务器200的硬件结构相同,因此在此不重复说明。此外,CPU 210通过执行存储器220中保存的程序来执行图15所记载的保持连接服务器200的动作。

<应用服务器300的硬件结构>

接着,关于应用服务器300的硬件结构的一个方式,与图12所示的第一实施方式的应用服务器300的硬件结构相同,因此在此不重复说明。此外,CPU 310通过执行存储器320中保存的程序来执行图15所记载的应用服务器300的动作、图30、图33、图36、图39所记载的各处理(步骤S)。

<智能电话500的硬件结构>

接着,关于智能电话500或个人计算机等通信设备的硬件结构的一个方式,与图14所示的第一实施方式的智能电话500的硬件结构相同,因此在此不重复说明。

<与保持连接有关的装置间的数据交换>

关于本实施方式的网络系统1中的与保持连接有关的装置间的数据交换,与图15所示的第一实施方式中的相同,因此在此不重复说明。

此外,图15中的客户端100的动作由客户端API 110A实现。参照图11和图15,客户端API 110A通过客户端100的CPU 110执行程序来实现。客户端API 110A通过通信接口160,使用WebSocket协议与保持连接服务器200进行通信。客户端API 110A通过通信接口160,使用HTTP协议与保持连接服务器200和应用服务器300进行通信。

同样地,图15中的保持连接服务器200的动作由WS服务器210A实现。参照图12和图15,WS服务器210A通过保持连接服务器200的CPU 210执行程序来实现。WS服务器210A通过通信接口260,利用WebSocket协议与客户端100进行保持连接。WS服务器210A通过通信接口260,利用HTTP协议与应用服务器300进行通信。

同样地,图15中的应用服务器300的动作由服务器API 310A实现。参照图13和图15,服务器API 310A通过应用服务器300的CPU 310执行程序来实现。服务器API 310A通过通信接口360,利用HTTP协议来与客户端100、保持连接服务器200以及智能电话500等其它的通信装置进行通信。

<应用服务器的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的应用服务器300的处理过程的详细内容。图30是示出本实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

参照图30,应用服务器300的CPU 310判断是否通过通信接口360从智能电话500或个人计算机等其它设备接收到命令(步骤S122)。CPU 310在接收到命令的情况下(步骤S122:“是”的情况下),将用于确定作为该命令的对象的客户端100的客户端识别ID和接收的该命令存储到存储器320(步骤S124)。

CPU 310判断是否需要即时地向客户端100传送命令(步骤S126)。例如,CPU 310判断是否满足规定的即时条件。CPU 310在判断为不需要即时地传送命令的情况下(步骤S126:“否”的情况下),重复自步骤S122起的处理。

CPU 310在判断为需要即时地传送命令的情况下(步骤S126:“是”的情况下),通过通信接口360,经由保持连接服务器200向客户端100推送轮询命令(步骤S128)。具体地说,CPU 310将用于确定客户端的连接ID和轮询命令发送到保持连接服务器200。

CPU 310在未接收到命令的情况下(步骤S122:“否”的情况下),判断是否通过通信接口360从客户端100接受轮询(步骤S130)。CPU 310在没有从客户端100接受轮询的情况下(步骤S130:“否”的情况下),重复自步骤S122起的处理。

CPU 310在接受来自客户端100的轮询的情况下(步骤S130:“是”的情况下),判断在存储器120中是否存储了针对该客户端100的命令(步骤S132)。在存储器120中没有存储对客户端100的命令的情况下(步骤S132:“否”的情况下),重复自步骤S122起的处理。

CPU 310在存储器120中存储有对客户端100的命令的情况下(步骤S132:“是”的情况下),通过通信接口360,利用HTTP协议将该命令发送到客户端100(步骤S134)。CPU 310从存储器120中删除该命令(步骤S136)。CPU 310重复自步骤S122起的处理。

<客户端的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的客户端100的处理过程的详细内容。图31是示出本实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

参照图31,客户端100的CPU 110从存储器120读取轮询标签和客户端识别ID(步骤S152)。CPU 110参照存储器120,判断轮询标签是否开启(步骤S154)。CPU 110在轮询标签为关闭的情况下(步骤S154:“否”的情况下),休眠规定时间(步骤S156)。CPU 110重复自步骤S152起的处理。

CPU 110在轮询标签为开启的情况下(步骤S154:“是”的情况下),利用HTTP协议,通过通信接口160向应用服务器300进行轮询(步骤S158)。CPU 110通过通信接口160,从应用服务器300受理控制数据(步骤S160)。控制数据包括示出轮询的成功和失败的成功失败标签、控制命令、轮询标签、轮询间隔等信息。

CPU 110判断成功标签是否为开启(步骤S162)。CPU 110在成功标签为关闭的情况下(步骤S162:“否”的情况下),在轮询间隔的期间,经由通信接口160等待来自保持连接服务器200的轮询命令(步骤S164)。

CPU 110在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。然后,重复自步骤S160起的处理。另一方面,在未接收到来自保持连接服务器200的轮询命令的情况下,CPU 110重复自步骤S152起的处理。

CPU 110在成功标签为开启的情况下(步骤S162:“是”的情况下),判断控制数据中包括的轮询标签是否开启(步骤S166)。CPU 110在控制数据中包括的轮询标签为关闭的情况下(步骤S166:“否”的情况下),将存储器120的轮询标签设定为关闭(步骤S168)。CPU 110重复自步骤S156起的处理。

CPU 110在控制数据中包括的轮询标签为开启的情况下(步骤S166:“是”的情况下),重新设定时钟(步骤S170)。CPU 110用控制数据中包括的轮询间隔更新存储器120的轮询间隔(步骤S172)。

CPU 110判断控制数据中是否包括控制命令(步骤S174)。CPU 110在控制数据不包括控制命令的情况下(步骤S174:“否”的情况下),重复自步骤S164起的处理。

CPU 110在控制数据中包括控制命令的情况下(步骤S174:“是”的情况下),执行控制命令(步骤S176)。CPU 110重复自步骤S164起的处理。

但是,CPU 110也可以代替步骤S156,而执行在规定时间的期间等待接受来自保持连接服务器200的轮询命令的步骤(步骤S164)。也就是说,CPU 110也可以代替步骤S156,而在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。

<第十实施方式>

接着,作为第十实施方式,说明客户端100是吸尘器100A、应用服务器300提供消息传达服务的网络系统1。也就是说,针对智能电话500的用户利用用于使吸尘器100A输出期望的消息的服务的情况进行说明。此外,本实施方式的网络系统1的整体结构与第九实施方式的相同,因此在此不重复说明。

<网络系统的动作概要>

下面,说明本实施方式的网络系统1的动作概要。图32是示出本实施方式的网络系统1的整体结构和动作概要的图形图。

参照图32,吸尘器100A、空调100B、电视100C等客户端100周期性地利用HTTP协议向应用服务器300进行轮询。但是,能够与保持连接服务器200保持连接的吸尘器100A和电视100C也可以是不进行周期性的轮询的方式。

智能电话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发送服务数据。同样地,能够不等待从电视100C向应用服务器300的周期性的轮询而从应用服务器300向电视100C发送服务数据。

而且,针对不支持保持连接的空调100B、其它的家用电器(包括其它的吸尘器。),如以往那样,应用服务器300能够对应于来自空调100B、其它的家用电器的轮询将服务数据发送到空调100B、其它的家用电器。

<各装置的硬件结构>

客户端100、保持连接服务器200、应用服务器300以及智能电话500的硬件结构与第九实施方式的那些硬件结构相同,因此在此不重复说明。

<与保持连接有关的装置间的数据交换>

本实施方式的网络系统1中的与保持连接有关的装置间的数据交换也与第九实施方式的相同,因此在此不重复说明。

<应用服务器的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的应用服务器300的处理过程的详细内容。图33是示出本实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

参照图33,应用服务器300的CPU 310判断通过通信接口360是否从智能电话500接收了消息输出命令(步骤S222)。CPU 310在从智能电话500接收到消息输出命令的情况下(步骤S222:“是”的情况下),将用于确定智能电话500或与其用户对应的客户端100的客户端识别ID和接收的消息输出命令存储到存储器320(步骤S224)。消息输出命令包括示出消息的文本数据。

CPU 310判断是否需要即时地将消息输出命令传送到客户端100(步骤S226)。在此,CPU 310判断智能电话500的用户是否是有偿服务的会员。CPU 310在智能电话500的用户不是有偿服务的会员的情况下(步骤S226:“否”的情况下)、重复自步骤S222起的处理。

CPU 310在智能电话500的用户是有偿服务的会员的情况下(步骤S226:“是”的情况下)、通过通信接口360,经由保持连接服务器200向客户端100推送轮询命令(步骤S228)。具体地说,CPU 310将用于确定客户端和服务的连接ID以及轮询命令发送到保持连接服务器200。

CPU 310在未接收到消息输出命令的情况下(步骤S222:“是”的情况下),判断通过通信接口360是否从客户端100接受轮询(步骤S230)。CPU 310在没有从客户端100接受轮询的情况下(步骤S230:“否”的情况下),重复自步骤S222起的处理。

CPU 310在接受来自客户端100的轮询的情况下(步骤S230:“是”的情况下),判断与该客户端100对应的消息输出命令是否被存储在存储器120中(步骤S232)。在存储器120中没有存储与客户端100对应的消息输出命令的情况下(步骤S232:“否”的情况下),重复自步骤S222起的处理。

CPU 310在存储器120中存储有与客户端100对应的消息输出命令的情况下(步骤S232:“是”的情况下),将消息输出命令中包括的文本数据变换为声音数据(步骤S233)。CPU 310通过通信接口360,利用HTTP协议将声音数据发送到客户端100(步骤S234)。CPU 310从存储器120中删除消息输出命令(步骤S236)。CPU 310重复自步骤S222起的处理。

<客户端的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的客户端100的处理过程的详细内容。图34是示出本实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

参照图34,客户端100的CPU 110从存储器120读出轮询标签和客户端识别ID(步骤S252)。CPU 110参照存储器120判断轮询标签是否开启(步骤S254)。CPU 110在轮询标签为关闭的情况下(步骤S254:“否”的情况下),休眠规定时间(步骤S256)。CPU 110重复自步骤S252起的处理。

CPU 110在轮询标签为开启的情况下(步骤S254:“是”的情况下),利用HTTP协议,通过通信接口160向应用服务器300进行轮询(步骤S258)。CPU 110通过通信接口160,从应用服务器300受理控制数据(步骤S260)。控制数据包括示出轮询的成功和失败的成功失败标签、声音数据、轮询标签、轮询间隔等信息。

CPU 110判断成功标签是否开启(步骤S262)。CPU 110在成功标签为关闭的情况下(步骤S262:“否”的情况下),在轮询间隔的期间,通过通信接口160等待来自保持连接服务器200的轮询命令(步骤S264)。

CPU 110在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。然后,重复自步骤S260起的处理。另一方面,在未接收来自保持连接服务器200的轮询命令的情况下,CPU 110重复自步骤S252起的处理。

CPU 110在成功标签为开启的情况下(步骤S262:“是”的情况下),判断控制数据中包括的轮询标签是否开启(步骤S266)。CPU 110在控制数据中包括的轮询标签为关闭的情况下(步骤S266:“否”的情况下),将存储器120的轮询标签设定为关闭(步骤S268)。CPU 110重复自步骤S256起的处理。

CPU 110在控制数据中包括的轮询标签为开启的情况下(步骤S266:“是”的情况下),重新设定时钟(步骤S270)。CPU 110用控制数据中包括的轮询间隔更新存储器120的轮询间隔(步骤S272)。

CPU 110判断控制数据中是否包括声音数据(步骤S274)。CPU 110在控制数据中不包括声音数据的情况下(步骤S274:“否”的情况下),重复自步骤S264起的处理。

CPU 110在控制数据中包括声音数据的情况下(步骤S274:“是”的情况下),向作为输入输出部130的扬声器输出消息的声音(步骤S276)。CPU 110重复自步骤S264起的处理。

但是,CPU 110也可以代替步骤S256而执行在规定时间的期间等待接受来自保持连接服务器200的轮询命令的步骤(步骤S264)。也就是说,CPU 110也可以代替步骤S256,而在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。

<第十一实施方式>

接着,作为第十一实施方式,针对客户端100是吸尘器100A、应用服务器300提供室内摄影服务的网络系统1进行说明。也就是说,说明智能电话500的用户利用用于使吸尘器100A对室内进行摄影的服务的情况。此外,本实施方式的网络系统1的整体结构与第九实施方式相同,因此在此不重复说明。

<网络系统的动作概要>

下面,说明本实施方式的网络系统1的动作概要。图35是示出本实施方式的网络系统1的整体结构和动作概要的图形图。

参照图35,吸尘器100A、空调100B、电视100C等客户端100周期性地利用HTTP协议向应用服务器300进行轮询。但是,能够与保持连接服务器200进行保持连接的吸尘器100A和电视100C也可以是不进行周期性的轮询的方式。

智能电话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发送服务数据。同样地,能够不等待从电视100C向应用服务器300的周期性的轮询而从应用服务器300向电视100C发送服务数据。

而且,针对不支持保持连接的空调100B、其它的家用电器(包括其它的吸尘器。),如以往那样,应用服务器300能够对应于来自空调100B、其它的家用电器的轮询,将服务数据发送到空调100B、其它的家用电器。

<各装置的硬件结构>

客户端100、保持连接服务器200、应用服务器300以及智能电话500的硬件结构与第九实施方式的那些硬件结构相同,在此不重复说明。

<与保持连接有关的装置间的数据交换>

本实施方式的网络系统1中的与保持连接有关的装置间的数据交换也与第九实施方式相同,因此在此不重复说明。

<应用服务器的处理过程的详细内容>

接着,针对本实施方式的网络系统1中的应用服务器300的处理过程的详细内容进行说明。图36是示出本实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

参照图36,应用服务器300的CPU 310判断通过通信接口360是否从智能电话500接收到摄影命令(步骤S322)。此外,摄影命令既可以是静止图像摄影命令、也可以是运动图像摄影命令。CPU 310在从智能电话500接收到摄影命令的情况下(步骤S322:“是”的情况下),将用于确定与智能电话500对应的客户端100的客户端识别ID和接收的摄影命令存储到存储器320(步骤S324)。

CPU 310判断是否需要即时地向客户端100传送命令(步骤S326)。在此,CPU 310判断智能电话500的用户是否为有偿服务的会员。CPU 310在智能电话500的用户不是有偿服务的会员的情况下(步骤S326:“否”的情况下),重复自步骤S322起的处理。

CPU 310在智能电话500的用户是有偿服务的会员的情况下(步骤S326:“是”的情况下),通过通信接口360,经由保持连接服务器200向客户端100推送轮询命令(步骤S328)。具体地说,CPU 310将用于确定客户端的连接ID和轮询命令发送到保持连接服务器200。

CPU 310在未接收到摄影命令的情况下(步骤S322:“否”的情况下),判断通过通信接口360是否从客户端100接受轮询(步骤S330)。CPU 310在未从客户端100接受轮询的情况下(步骤S330:“否”的情况下),重复自步骤S322起的处理。

CPU 310在接受来自客户端100的轮询的情况下(步骤S330:“是”的情况下),判断与该客户端100对应的摄影命令是否存储在存储器120中(步骤S332)。在存储器120中没有存储与客户端100对应的摄影命令的情况下(步骤S332:“否”的情况下),重复自步骤S322起的处理。

CPU 310在存储器120中存储有与客户端100对应的摄影命令的情况下(步骤S332:“是”的情况下),通过通信接口360,利用HTTP协议将摄影命令发送到客户端100(步骤S334)。CPU 310从存储器120中删除摄影命令(步骤S336)。CPU 310重复自步骤S322起的处理。

<客户端的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的客户端100的处理过程的详细内容。图37是示出本实施方式的网络系统1中的客户端100的处理过程的详细内容的流程图。

参照图37,客户端100的CPU 110从存储器120读取轮询标签和客户端识别ID(步骤S352)。CPU 110参照存储器120,判断轮询标签是否开启(步骤S354)。CPU 110在轮询标签为关闭的情况下(步骤S354:“否”的情况下),休眠规定时间(步骤S356)。CPU 110重复自步骤S352起的处理。

CPU 110在轮询标签为开启的情况下(步骤S354:“是”的情况下),利用HTTP协议,通过通信接口160向应用服务器300进行轮询(步骤S358)。CPU 110通过通信接口160,从应用服务器300受理控制数据(步骤S360)。控制数据包括示出轮询的成功和失败的成功失败标签、摄影命令、轮询标签、轮询间隔等信息。

CPU 110判断成功标签是否为开启(步骤S362)。CPU 110在成功标签为关闭的情况下(步骤S362:“否”的情况下),在轮询间隔的期间,通过通信接口160等待来自保持连接服务器200的轮询命令(步骤S364)。

CPU 110在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。然后,重复自步骤S160起的处理。另一方面,在未接受来自保持连接服务器200的轮询命令的情况下,CPU 110重复自步骤S152起的处理。

CPU 110在成功标签为开启的情况下(步骤S362:“是”的情况下),判断控制数据中包括的轮询标签是否为开启(步骤S366)。CPU 110在控制数据中包括的轮询标签为关闭的情况下(步骤S366:“否”的情况下),将存储器120的轮询标签设定为关闭(步骤S368)。CPU 110重复自步骤S356起的处理。

CPU 110在控制数据中包括的轮询标签为开启的情况下(步骤S366:“是”的情况下),重新设定时钟(步骤S370)。CPU 110用控制数据中包括的轮询间隔更新存储器120的轮询间隔(步骤S372)。

CPU 110判断控制数据中是否包括摄影命令(步骤S374)。CPU 110在控制数据中不包括摄影命令的情况下(步骤S374:“否”的情况下),重复其步骤S364起的处理。

CPU 110在控制数据中包括摄影命令的情况下(步骤S374:“是”的情况下),使摄像机140摄影静止图像或运动图像(步骤S376)。CPU 110通通信接口160,利用HTTP协议将静止图像数据或运动图像数据发送到应用服务器300(步骤S378)。CPU 110重复自步骤S364起的处理。

但是,CPU 110也可以代替步骤S356,而执行在规定时间的期间等待接受来自保持连接服务器200的轮询命令的步骤(步骤S364)。也就是说,CPU 110也可以代替步骤S356,而在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。

<第十二实施方式>

接着,作为第十二实施方式,针对客户端100是电视100C或硬盘录像机、应用服务器300提供录像命令中继服务的网络系统1进行说明。也就是说,针对智能电话500的用户利用使电视100C对节目进行录像的服务的情况进行说明。此外,本实施方式的网络系统1的整体结构与第九实施方式相同,因此在此不重复说明。

<网络系统的动作概要>

下面,说明本实施方式的网络系统1的动作概要。图38是示出本实施方式的网络系统1的整体结构和动作概要的图形图。

参照图38,吸尘器100A、空调100B、电视100C等客户端100周期性地利用HTTP协议向应用服务器300进行轮询。但是,能够与保持连接服务器200进行保持连接的吸尘器100A和电视100C也可以是不进行周期性的轮询的方式。

智能电话500受理来自用户的录像命令。智能电话500将针对电视100C的录像命令发送到应用服务器300(步骤S402)。

应用服务器300通过保持连接服务器200,向电视100C发送轮询命令(步骤S404、步骤S406)。具体地说,应用服务器300将用于确定电视100C与电视用的服务的组合的连接ID和轮询命令发送到保持连接服务器200(步骤S404)。

保持连接服务器200根据连接ID,利用WebSocket协议将轮询命令发送到电视100C(步骤S406)。

电视100C利用WebSocket协议将接收到轮询命令的意思发送到保持连接服务器200(步骤S408)。电视100C利用HTTP协议向应用服务器300进行轮询(步骤S410)。

应用服务器300对应于轮询,利用HTTP协议将录像命令发送到吸尘器(步骤S412)。

电视100C根据录像命令对节目进行录像、或进行录像预约(步骤S414)。电视100C将受理录像命令的意思、录像完成的意思利用HTTP协议发送到应用服务器300(步骤S416)。

应用服务器300将客户端100受理录像命令的意思、录像完成的意思发送到智能电话500(步骤S418)。智能电话500将受领录像的命令的意思显示在显示器上或从扬声器输出声音。

这样,在本实施方式中,能够不等待从电视100C向应用服务器300的周期性的轮询而从应用服务器300向电视100C发送服务数据。同样地,能够不等待从吸尘器100A向应用服务器300的周期性的轮询而从应用服务器300向吸尘器100A发送服务数据。

而且,针对不支持保持连接的空调100B、其它的家用电器,如以往那样,应用服务器300能够对应于来自空调100B、其它的家用电器的轮询,将服务数据发送到空调100B、其它家用电器。

<各装置的硬件结构>

客户端100、保持连接服务器200、应用服务器300以及智能电话500的硬件结构与第九实施方式的硬件结构相同,在此不重复说明。

<与保持连接有关的装置间的数据交换>

本实施方式的网络系统1中的与保持连接有关的装置间的数据交换也与第九实施方式相同,因此在此不重复说明。

<应用服务器的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的应用服务器300的处理过程的详细内容。图39是示出本实施方式的网络系统1中的应用服务器300的处理过程的详细内容的流程图。

参照图39,应用服务器300的CPU 310判断通过通信接口360是否从智能电话500接收到录像命令(步骤S422)。此外,录像命令是录像预约命令或即时录像命令。而且,录像命令包括示出录像日期、录像开始时刻、录像结束时刻、频道等的信息。录像命令也可以包括与开始时刻无关地用于即时地开始录像的标签。

CPU 310在从智能电话500接收到录像命令的情况下(步骤S422:“是”的情况下),将用于确定与智能电话500或其用户对应的客户端100的客户端识别ID和接收的录像命令存储到存储器320(步骤S424)。

CPU 310判断是否需要即时地向客户端100传送录像命令(步骤S426)。在此,CPU 310判断录像命令是否为即时录像命令。例如,CPU 110判断是否已经经过了录像开始时刻。或者,CPU 110判断录像命令中的用于即时地开始录像的标签是否为开启。

CPU 310在录像命令为录像预约命令的情况下、即还在录像开始时刻前的情况下或录像命令的用于即时地开始录像的标签为关闭的情况下(步骤S426:“否”的情况下),重复自步骤S422起的处理。

CPU 310在录像命令为即时录像命令的情况下、即已经经过了录像开始时刻的情况下或录像命令的用于即时地开始录像的标签为开启的情况下(步骤S426:“是”的情况下),通过通信接口360,经由保持连接服务器200向客户端100推送轮询命令(步骤S428)。具体地说,CPU 310将用于确定客户端的连接ID和轮询命令发送到保持连接服务器200。

CPU 310在未接收到录像命令的情况下(步骤S422:“否”的情况下),判断通过通信接口360是否从客户端100接受轮询(步骤S430)。CPU 310在没有从客户端100接受轮询的情况下(步骤S430:“否”的情况下),重复自步骤S422起的处理。

CPU 310在接受来自客户端100的轮询的情况下(步骤S430:“是”的情况下),判断在存储器120中是否存储有与客户端100对应的录像命令(步骤S432)。在存储器120中没有存储与客户端100对应的录像命令的情况下(步骤S432:“否”的情况下),重复自步骤S422起的处理。

CPU 310在存储器120中存储有与电视100C对应的录像命令的情况下(步骤S432:“是”的情况下),通过通信接口360,利用HTTP协议将录像命令发送到电视100C(步骤S434)。CPU 310从存储器120删除录像命令(步骤S436)。CPU 310重复自步骤S422起的处理。

<电视100C的处理过程的详细内容>

接着,说明本实施方式的网络系统1中的电视100C的处理过程的详细内容。图40是示出本实施方式的网络系统1中的电视100C的处理过程的详细内容的流程图。

参照图40,电视100C的CPU 110从存储器120读取轮询标签和客户端识别ID(步骤S452)。CPU 110参照存储器120,判断轮询标签是否为开启(步骤S454)。CPU 110在轮询标签为关闭的情况下(步骤S454:“否”的情况下),休眠规定时间(步骤S456)。CPU 110重复自步骤S452起的处理。

CPU 110在轮询标签为开启的情况下(步骤S454:“是”的情况下),利用HTTP协议,通过通信接口160向应用服务器300进行轮询(步骤S458)。CPU 110通过通信接口160,从应用服务器300受理控制数据(步骤S460)。控制数据包括示出轮询的成功和失败的成功失败标签、录像命令、轮询标签、轮询间隔等信息。

CPU 110判断成功标签是否为开启(步骤S462)。CPU 110在成功标签为关闭的情况下(步骤S462:“否”的情况下),在轮询间隔的期间,通过通信接口160,等待来自保持连接服务器200的轮询命令(步骤S464)。

CPU 110在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。然后,重复自步骤S460起的处理。另一方面,在未接收到来自保持连接服务器200的轮询命令的情况下,CPU 110重复自步骤S452起的处理。

CPU 110在成功标签为开启的情况下(步骤S462:“是”的情况下),判断在控制数据中包括的轮询标签是否为开启(步骤S466)。CPU 110在控制数据中包括的轮询标签为关闭的情况下(步骤S466:“否”的情况下),将存储器120的轮询标签设定为关闭(步骤S468)。CPU 110重复自步骤S456起的处理。

CPU 110在控制数据中包括的轮询标签为开启的情况下(步骤S466:“是”的情况下),重新设定时钟(步骤S470)。CPU 110用控制数据中包括的轮询间隔更新存储器120的轮询间隔(步骤S472)。

CPU 110判断控制数据中是否包括即时录像命令(步骤S474)。CPU 110在控制数据中不包括即时录像命令的情况下(步骤S474:“否”的情况下),重复自步骤S464起的处理。

CPU 110在控制数据中包括即时录像命令的情况下(步骤S474:“是”的情况下),根据即时录像命令中包括的频道开始录像(步骤S476)。CPU 110重复自步骤S464起的处理。

CPU 110在控制数据中不包括即时录像命令的情况下(步骤S474:“否”的情况下),判断控制数据中是否包括录像预约命令(步骤S478)。CPU 110在控制数据中包括有录像预约命令的情况下(步骤S478:“是”的情况下),向存储器120登记录像预约(步骤S480)。CPU 110重复自步骤S464起的处理。

CPU 110在控制数据中不包括录像预约命令的情况下(步骤S478:“否”的情况下),重复自步骤S464起的处理。

但是,CPU 110也可以代替步骤S456,而执行在规定时间的期间等待接受来自保持连接服务器200的轮询命令的步骤(步骤S464)。也就是说,CPU 110也可以代替步骤S456,而在接受来自保持连接服务器200的轮询命令的情况下,利用HTTP协议,通过通信接口160向应用服务器300进行轮询。

<第十三实施方式>

此外,在所述的第十一实施方式中,应用服务器300根据是有偿服务还是无偿服务,来判断是否向客户端100发送轮询命令。然而,也可以如所述的第十二实施方式那样,应用服务器300根据是受理用于即时进行摄影的命令、还是受理摄影的预约的命令,来判断是否向客户端100发送轮询命令。

即,在图36的步骤S326中,与图39的步骤S426同样地,应用服务器300的CPU 310也可以判断是否即时地受理摄影命令。然后,在受理即时摄影命令的情况下(步骤S326:“是”的情况下),CPU 310通过通信接口360,经由保持连接服务器200向客户端100推送轮询命令(步骤S328)。反过来,CPU 310在未受理即时摄影命令的情况下步骤S326:“否”的情况下)、即在受理摄影预约命令(包括摄影开始时刻和/或用于周期性地进行摄影的摄影周期等。)的情况下,重复自步骤S322起的处理。

同样地,在图37的步骤S374~步骤S378中,与图40的步骤S474~步骤S480同样地,CPU 110判断控制数据中是否包括即时摄影命令。CPU 110在控制数据中包括即时摄影命令的情况下,根据即时摄影命令,利用摄像机140对运动图像或静止图像进行摄影。

CPU 110在控制数据中不包括即时摄影命令的情况下,判断在控制数据中是否包括摄影预约命令。CPU 110在控制数据中包括有摄影预约命令的情况下,向存储器120登记摄影预约命令。CPU 110在控制数据中不包括摄影预约命令的情况下,重复自步骤S364起的处理。

<第十四实施方式>

此外,在第十实施方式中,在应用服务器300中从文本数据变换为声音数据。然而,也可以是在客户端100中从文本数据变换为声音数据。

即,应用服务器300对应于来自客户端100的轮询,将文本数据发送到客户端100。客户端100将文本数据变换为声音数据。然后,客户端100根据声音数据,从扬声器以声音的方式输出消息。

在这种情况下,不需要从应用服务器300向客户端100发送声音数据,因此能够减少通信数据量。

<第十五实施方式>

另外,在第十实施方式中,客户端100从扬声器以声音的方式输出消息。然而,客户端100也可以在显示器上显示消息。

即,应用服务器300对应于来自客户端100的轮询,将文本数据发送到客户端100。然后,客户端100根据文本数据,在显示器上显示消息。

<第十六实施方式>

另外,在第十实施方式中,客户端100从扬声器以声音的方式输出消息。然而,客户端100也可以在显示器上显示消息的同时从扬声器以声音的方式输出消息。

即,应用服务器300对应于来自客户端100的轮询,将文本数据变换为声音数据。应用服务器300向客户端100发送文本数据和声音数据。然后,客户端100根据文本数据,在显示器上显示消息,同时根据声音数据从扬声器输出音声。

此外,如第十四实施方式那样,在第十六实施方式中也可以由客户端100将文本数据变换为声音数据。在这种情况下,也不需要从应用服务器300向客户端100发送声音数据,因此能够减少通信数据量。

<其它应用例>

本发明当然也能够应用于通过向系统或装置提供程序来达成的情况。而且,通过向系统或装置提供保存有利用用于达成本发明的软件示出的程序的存储介质(或存储器),由该系统或装置的计算机(或CPU、MPU)读取并执行保存在存储介质中的程序代码,也能够享有本发明的效果。

在这种情况下,从存储介质读取出的程序代码本身实现了所述实施方式的功能,存储有该程序代码的存储介质构成了本发明。

另外,通过执行计算机所读取出的程序代码,不仅实现了所述实施方式的功能,当然还包括如下的情况:根据该程序代码的指示,在计算机上运行的OS(操作系统)等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。

并且,当然还包括如下的情况:从存储介质读取出的程序代码在被写入到插入于计算机的功能扩展端口、与计算机连接的功能扩展单元所具备的其它记录介质之后,根据该程序代码的指示,该功能扩展端口、功能扩展单元所具备的的CPU等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。

应该考虑到,本次公开的实施方式是所有点都是例示而不是进行限制的实施方式。本发明的范围不由所述说明而由权利要求书示出,意图包括与权利要求书同等的意思以及范围内的所有变更。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号