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

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

Info

Publication number
CN104683433A
CN104683433A CN201410694099.XA CN201410694099A CN104683433A CN 104683433 A CN104683433 A CN 104683433A CN 201410694099 A CN201410694099 A CN 201410694099A CN 104683433 A CN104683433 A CN 104683433A
Authority
CN
China
Prior art keywords
server
group
client
data
electronic equipment
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.)
Granted
Application number
CN201410694099.XA
Other languages
English (en)
Other versions
CN104683433B (zh
Inventor
中村智之
西川仁
古川裕史
户岛朗
森长佳世
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2013244548A external-priority patent/JP6000231B2/ja
Priority claimed from JP2013244543A external-priority patent/JP5870079B2/ja
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN104683433A publication Critical patent/CN104683433A/zh
Application granted granted Critical
Publication of CN104683433B publication Critical patent/CN104683433B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

公开了网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序。提供一种网络系统,具备:多个电子设备,与识别信息相对应;保持连接服务器,用于与多个电子设备进行保持连接;以及应用服务器,根据识别信息,通过保持连接服务器向多个电子设备中的任一个推送信息。或者,提供一种具备多个电子设备以及用于与多个电子设备进行保持连接的保持连接服务器的网络系统。保持连接服务器存储用于确定多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系,根据组ID的指定,向属于对应的组的至少一个电子设备推送数据。

Description

网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序
技术领域
本发明涉及用于使电子设备彼此保持连接的技术,特别是涉及使客户端与服务器保持连接的网络系统、保持连接方法、电子设备、保持连接服务器、应用服务器、程序。
或者,本发明涉及电子设备间的保持连接的技术,特别是涉及利用服务器与多个客户端之间的保持连接的通信技术。
背景技术
以往,已知有用于通信设备相互向对方发送数据的各种技术。例如,在特开2010-277492号公报(专利文献1)中公开了电子会议服务器及计算机程序。根据特开2010-277492号公报(专利文献1),实现在以web应用程序(web application)提供电子会议系统的情况下能够确保实时性以及附随电子会议系统的运用的未解决课题的管理等。具体地,应用服务器以Comet服务器接收来自各电子设备的HTTP请求并变为保留状态的方式进行控制。若是应用服务器从某电子设备接收到消息数据,则应用服务器从会议数据库调出需要的数据,并将其与消息数据一起从Comet服务器发送到该电子设备。在发送之后,所述应用服务器以接收来自各电子设备的HTTP请求并再次变为保留状态的方式进行控制。
另外,在特开2007-157085号公报(专利文献2)中公开了SIP服务器共享模块、SIP消息中继方式、程序。根据特开2007-157085号公报(专利文献2),消息发送源组识别部拦截终端所发送的SIP消息,识别发送源终端所属的客户端组。组标志插入部将与消息发送源组识别部识别出的组对应的组标志插入到SIP消息中。组标志删除部从SIP代理服务器所发送的服务器发送SIP消息删除组标志。消息发送目的地组识别部识别与组标志删除部删除的组标志对应的客户端组,防止服务器发送SIP消息被发送到不属于该组的客户端终端。
然而,在Comet中,由于每次进行通信时都需要HTTP会话,因此客户端与服务器之间需要多次交换相同的数据。因此,作为通信设备相互间互相推送数据的技术,近年来,开发出了在TCP(Transmission Control Protocol:传输控制协议)上进行动作的WebSocket这样的技术。WebSocket是由作为因特网的标准化组织的W3C和IETF进行的web服务器与web浏览器之间的双向通信用的技术标准。WebSocket协议的规范被规定为RFC(Request For Comment,请求注释)6455。
然而,在以往的利用WebSocket协议的保持连接中,来自服务器的数据被组播传输到了保持连接中的多个客户端。即,以往难以将来自服务器的数据推送给所选择的一个客户端。换言之,在现有情况下,在使用保持连接的技术从服务器向客户端给送数据时,导致服务器向保持连接中的所有客户端给送了数据。
发明内容
本发明是为了解决所述的问题而作出的发明,其目的在于,关于保持连接技术,提供一种能够将来自服务器的数据推送给所选择的一个客户端的网络系统、保持连接方法、电子设备、保持连接服务器、应用服务器、程序。
或者,本发明的目的在于提供一种能够指定保持连接中的客户端中的一部分客户端来推送数据的网络系统、通信方法、电子设备、保持连接服务器、程序。
依照本发明的某一方式,提供一种网络系统,其具备:多个电子设备,该多个电子设备与识别信息相对应;保持连接服务器,用于与多个电子设备保持连接;以及应用服务器,根据识别信息,经由保持连接服务器向多个电子设备中的任一个推送信息。此外,此处所说的保持连接服务器是包括作为计算机的硬件以及作为服务程序的软件的概念。同样地,应用服务器也是包括作为计算机的硬件以及作为服务程序的软件的概念。
优选的是,保持连接服务器搭载于第一计算机。应用服务器搭载于第二计算机。
优选的是,保持连接服务器和应用服务器搭载于一个计算机中。
优选的是,多个电子设备的每个与保持连接服务器在开始保持连接之后,使用能够保持连接的协议来交换识别信息。
优选的是,应用服务器向多个电子设备中的任一个和保持连接服务器发布认证信息。保持连接服务器根据来自应用服务器的认证信息和来自多个电子设备中的任一个的认证信息,向应用服务器和多个电子设备中的任一个发布识别信息。
优选的是,作为应用服务器,网络系统具备多个应用服务器。多个应用服务器的每个通过利用识别信息,来经由保持连接服务器向多个电子设备中的任一个推送信息。
优选的是,保持连接服务器向电子设备发送数据主体和事务ID。电子设备在数据主体的接收完成之后,将事务ID发送到保持连接服务器。保持连接服务器根据来自电子设备的事务ID,把向电子设备的数据发送完成的意思通知给应用服务器。
优选的是,电子设备向保持连接服务器发送数据主体和事务ID。保持连接服务器在数据主体的接收完成之后,将事务ID发送到电子设备。保持连接服务器根据来自电子设备的事务ID,把来自电子设备的数据接收完成的意思通知给应用服务器。
依照本发明的其它方式,提供一种保持连接方法,其具备以下步骤:多个电子设备与保持连接服务器开始保持连接;将识别信息与多个电子设备进行对应;以及应用服务器根据识别信息,通过保持连接服务器向多个电子设备中的任一个推送信息。
依照本发明的其它方式,提供一种电子设备,其具备:存储器,保存识别信息;通信接口,用于与保持连接服务器进行保持连接;以及处理器,通过利用通信接口,根据识别信息,通过保持连接服务器接收来自应用服务器的信息。
依照本发明的其它方式,提供一种保持连接服务器,其具备:存储器,保存与多个电子设备对应的识别信息;通信接口,用于与多个电子设备进行保持连接,并与应用服务器进行通信;以及处理器,通过利用通信接口,根据识别信息,把来自应用服务器的信息推送给多个电子设备中的任一个。
依照本发明的其它方式,提供一种应用服务器,其具备:存储器,保存与多个电子设备对应的识别信息;通信接口,用于与保持连接服务器进行通信;以及处理器,通过利用通信接口,根据识别信息,通过保持连接服务器向多个电子设备中的任一个推送信息。
依照本发明的其它方式,提供一种在包括处理器、存储器以及通信接口的电子设备中利用的程序。程序使处理器执行以下步骤:通过通信接口与保持连接服务器开始保持连接;将识别信息保存到存储器;以及通过利用通信接口,根据识别信息,通过保持连接服务器接收来自应用服务器的信息。
依照本发明的其它方式,提供一种在包括处理器、存储器以及通信接口的计算机中利用的程序。程序使处理器执行以下步骤:通过利用通信接口,与多个电子设备开始保持连接;把与多个电子设备对应的识别信息保存到存储器;以及通过利用通信接口,根据识别信息,将来自应用服务器的信息推送给多个电子设备中的任一个。
依照本发明的其它方式,提供一种在包括处理器、存储器以及通信接口的计算机中利用的程序。程序使处理器执行以下步骤:把与多个电子设备对应的识别信息保存到存储器;以及通过利用通信接口,根据识别信息,通过保持连接服务器向多个电子设备中的任一个推送信息。
如上所述,根据本发明,关于保持连接技术,提供一种能够把来自服务器的数据推送给所选择的一个客户端的网络系统、保持连接方法、电子设备、保持连接服务器、应用服务器、程序。
另外,依照本发明的某一方式,提供一种具备多个电子设备以及用于与多个电子设备进行保持连接的保持连接服务器的网络系统。保持连接服务器存储用于确定多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系,根据组ID的指定,向属于对应的组的至少一个电子设备推送数据。
优选的是,在对应关系中,对组进行层级化。保持连接服务器根据用于确定上位的组的组ID的指定,向属于下位的组的电子设备推送数据,该下位的组属于该上位的组。
优选的是,电子设备向保持连接服务器给送加入组请求。保持连接服务器与加入组请求相应地把与电子设备对应的保持连接用ID和组ID的组合追加到对应关系。
优选的是,网络系统还包括其它的电子设备。其它的电子设备向保持连接服务器给送用于指定电子设备的信息和加入组请求。保持连接服务器与信息和加入组请求相应地把与电子设备对应的保持连接用ID和组ID的组合追加到对应关系。
优选的是,电子设备向保持连接服务器给送退出组请求。保持连接服务器与退出组请求相应地从对应关系删除与电子设备对应的保持连接用ID和组ID的组合。
优选的是,网络系统还包括其它的电子设备。其它的电子设备向保持连接服务器给送用于指定电子设备的信息和退出组请求。保持连接服务器与信息和退出组请求相应地从对应关系删除与电子设备对应的保持连接用ID和组ID的组合。
优选的是,电子设备将组ID和数据发送到保持连接服务器。保持连接服务器向与组ID对应的至少一个电子设备推送数据。
优选的是,网络系统还具备应用服务器。应用服务器将组ID和数据发送到保持连接服务器。保持连接服务器向与组ID对应的至少一个电子设备推送数据。
优选的是,保持连接服务器在接收到组ID和数据时,在向电子设备推送数据之前,将接收到推送命令的意思发送到数据的发送源。
优选的是,保持连接服务器向与组ID对应的至少一个电子设备的全部推送数据后,将数据的发送结果发送到数据的发送源。
优选的是,发送结果包括示出与组ID对应的至少一个电子设备的全部相关的数据的推送成功与否的列表。
优选的是,发送结果包括向与组ID对应的至少一个电子设备推送数据的成功率。
优选的是,保持连接服务器每次向与组ID对应的至少一个电子设备的每个推送数据时,都将数据的发送结果发送到数据的发送源。
优选的是,保持连接服务器以能够从外部参照的方式累积发送结果。
优选的是,保持连接服务器在受理用于推送数据的命令时,以能够从外部参照的方式累积该命令。
依照本发明的其它方式,提供一种通信方法,其具备以下步骤:多个电子设备与保持连接服务器开始保持连接;保持连接服务器存储用于确定多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系;以及保持连接服务器根据组ID的指定,向属于对应的组的至少一个电子设备推送数据。
依照本发明的其它方式,提供一种电子设备,其具备:通信接口;以及处理器,用于通过利用通信接口,与保持连接服务器进行保持连接,并向保持连接服务器给送加入组请求。
依照本发明的其它方式,提供一种保持连接服务器,其具备:通信接口,用于与多个电子设备进行保持连接;存储器,存储用于确定多个电子设备的保持连接用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是示出第九实施方式的组名称与组ID之间的对应关系DB 221的图形图。
图31是示出第九实施方式的组ID与连接ID之间的对应关系DB 222的图形图。
图32是示出第九实施方式的组的层级的对应关系DB 223的图形图。
图33是示出本实施方式的网络系统1中的客户端100加入组的处理过程的详细内容的时序图。
图34是示出本实施方式的加入组时的对应关系DB 222的变化的图形图。
图35是示出本实施方式的对客户端100预先写入了组ID的情况下的加入组的处理过程的详细内容的时序图。
图36是示出本实施方式的加入用户指定的组的处理过程的详细内容的时序图。
图37是示出本实施方式的网络系统1中的通过应用服务器300进行的客户端加入的处理过程的详细内容的时序图。
图38是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的客户端加入的处理过程的详细内容的时序图。
图39是示出本实施方式的网络系统1中的通过应用服务器300进行的组创建的处理过程的详细内容的时序图。
图40是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的组创建的处理过程的详细内容的时序图。
图41是示出本实施方式的网络系统1中的客户端100的退出组的处理过程的详细内容的时序图。
图42是示出本实施方式的退出组时的对应关系DB 222的变化的图形图。
图43是示出本实施方式的对客户端100预先写入了组ID的情况下的退出组的处理过程的详细内容的时序图。
图44是示出本实施方式的从用户指定的退出组的处理过程的详细内容的时序图。
图45是示出本实施方式的网络系统1中的通过应用服务器300进行的使客户端从组退出的处理过程的详细内容的时序图。
图46是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的用于使客户端从组退出的处理过程的详细内容的时序图。
图47是示出本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
图48是示出本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
图49是示出第十实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
图50是示出第十一实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
图51是示出第十二实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
图52是示出第十三实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
图53是示出第十四实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
图54是示出第十五实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
图55是示出第十六实施方式的网络系统1的整体结构和动作概要的图形图。
图56是示出第十六的实施方式的组名称与组ID之间的对应关系DB 224的图形图。
图57是示出第十六实施方式的组ID与连接ID之间的对应关系DB 225的图形图。
图58是示出第十七实施方式的网络系统1的整体结构和动作概要的图形图。
图59是示出第十七和第十八实施方式的组名称与组ID之间的对应关系DB的图形图。
图60是示出第十八实施方式的网络系统1的整体结构和动作概要的图形图。
具体实施方式
以下,一边参照附图并说明本发明的实施方式。在以下的说明中,对同一部件附加了同一附图标记。它们的名称以及功能也是相同的。因而,不重复关于它们的详细说明。
另外,以下,作为保持连接的一个例子,说明利用了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、100D、100E。以下,对客户端100A、100B、100C、100D、100E进行统称,还称为客户端100。网络系统1包括能够与客户端100进行保持连接的保持连接服务器200、提供各种服务的应用服务器300以及智能电话500或个人计算机等。
作为客户端100,例如可列举吸尘器、电视、空调、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating,感应加热)烹调加热器、电子微波炉、照明等家用电器。进一步地,客户端只要是通信设备即可,例如也可以包括例如个人计算机、电视以外的AV设备、内线电话系统等。
保持连接服务器200和应用服务器300也可以与客户端中的任一个相同地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。
另外,客户端100与各服务器之间也可以经由光纤等线路,在中途连接光线路终端装置、用于进行无线LAN通信的接入点、路由器等。客户端100使用IEEE802.11a/b/g/n/ac等无线LAN通信、或有线LAN等作为与网络连接的方案,但是连接方法不限定于这些。
在本实施方式中,保持连接服务器200和应用服务器300是不同的计算机。然而,保持连接服务器200和应用服务器300也可以是相同的计算机。例如,作为一个计算机、即装置的服务器也可以搭载用于与客户端保持连接的通信服务程序以及用于控制客户端应用服务程序。另外,一个应用服务器也可以搭载多个应用服务程序。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。在本实施方式中,多个客户端100被分开为多个组。具体地,保持连接服务器200能够连接的对应关系DB服务器或保持连接服务器200自身存储有示出该分组的数据。而且,应用服务器300提供将来自智能电话500及外部的个人计算机等的数据传送到客户端100的服务。
首先,智能电话500或外部的个人计算机等将用于指定组的组ID和用于向该组发送的数据主体发送到应用服务器300。应用服务器300将用于指定组的组ID和用于向该组发送的数据主体发送到保持连接服务器200。保持连接服务器200通过参照对应关系DB,来利用WebSocket协议向与组ID对应的多个客户端100推送数据主体。
或者,客户端100中的任一个将用于指定组的组ID和用于向该组发送的数据主体发送到保持连接服务器200。保持连接服务器200通过参照对应关系DB,利用WebSocket协议向与组ID对应的多个客户端100推送数据主体。此时,保持连接服务器200也可以将该数据主体作为日志信息发送到应用服务器300。保持连接服务器200进一步地可以通过应用服务器300将该数据主体发送到智能电话500。
这样,在本实施方式中,智能电话500、外部的个人计算机、应用服务器300、客户端100能够只向与保持连接服务器200保持连接的多个客户端100中的、属于期望的组的客户端100推送数据。以下,详细地明用于实现这样的功能的网络系统1的结构。
<客户端100的硬件结构>
首先,关于客户端100的硬件结构的一个方式,由于与图11所示的第一实施方式的客户端100的硬件结构相同,因此在此不重复说明。
<保持连接服务器200的硬件结构>
接着,关于保持连接服务器200的硬件结构的一个方式,由于与图12所示的第一实施方式的保持连接服务器200的硬件结构相同,因此在此不重复说明。
<对应关系DB>
在本实施方式中,如图29和图30所示,与保持连接服务器200不同的对应关系DB(数据库)服务器250存储组名称与组ID的对应关系DB 221。此外,保持连接服务器200的存储器220也可以存储对应关系DB 221。
另外,如图29和图31所示,对应关系DB服务器250存储组ID与连接ID的对应关系DB 222。此外,连接ID是指用于确定应用服务器300所提供的服务与客户端100的关系的信息。此外,保持连接服务器200的存储器220也可以存储对应关系DB 222。
进一步地,在本实施方式中,如图29和图32所示,对应关系DB服务器250存储示出组的层级的对应关系DB 223。例如,对应关系DB 223与上位的各个组ID对应地保存中位的多个组ID。对应关系DB 223与中位的各个组ID对应地保存下位的多个组ID。虽然在图32中没有示出,但是对应关系DB 223也可以与下位的各个组ID对应进而保存下位的多个组ID。此外,保持连接服务器200的存储器220也可以存储对应关系DB 223。
<应用服务器300的硬件结构>
接着,关于应用服务器300的硬件结构的一个方式,由于与图13所示的第一实施方式的应用服务器300的硬件结构相同,因此在此不重复说明。
<智能电话500的硬件结构>
接着,关于智能电话500或个人计算机等通信设备的硬件结构的一个方式,由于与图14所示的第一实施方式的保持连接服务器200的硬件结构相同,因此在此不重复说明。
<与保持连接有关的装置间的数据交换>
接着,关于本实施方式的网络系统1中的与保持连接有关的装置间的数据交换,由于与图15所示的第一实施方式的网络系统1中的与保持连接有关的装置间的数据交换相同,因此在此不重复说明。
此外,图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中的客户端100加入组的处理过程的详细内容。图33是示出本实施方式的网络系统1中的客户端100加入组的处理过程的详细内容的时序图。
参照图33,客户端100将用于加入组的请求发送到保持连接服务器200(步骤S102)。具体地,客户端100的CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送加入组请求。加入组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送加入组请求。在这种情况下,加入组请求还包括用于确定客户端100的连接ID。
保持连接服务器200将用于确定客户端100的连接ID与组ID相对应地存储到对应关系DB 222(步骤S106)。具体地,如图34所示,CPU 210向对应关系DB 222追加连接ID与组ID的组合。
保持连接服务器200向客户端100发送示出加入组完成的意思的数据(步骤S108)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
以下,更详细地说明客户端100加入组的处理过程的详细内容。首先,说明对客户端100预先写入组ID的情况下的加入组的处理过程的详细内容。图35是示出本实施方式的对客户端100预先写入了组ID的情况下的加入组的处理过程的详细内容的时序图。
参照图35,例如客户端100在电源接通时,向保持连接服务器200发送用于加入组的请求(步骤S112)。具体地,客户端100的CPU 110在电源被接通时,从存储器120读出组ID。而且,CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送加入组请求。加入组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送加入组请求。在这种情况下,加入组请求还包括用于确定客户端100的连接ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222中(步骤S114)。CPU 110在接收到的组ID未包括在对应关系DB 222中的情况下,新创建组ID并追加到对应关系DB 221和对应关系DB 222。但是,在接收到的组ID未包括在对应关系DB 222中的情况下,CPU 210也可以拒绝加入组请求。
CPU 210在接收到的组ID包括在对应关系DB 222的情况下,将用于确定客户端100的连接ID与组ID相对应地存储到存储器220(步骤S116)。具体地,如图34所示,CPU 210向对应关系DB 222追加连接ID与组ID的组合。
保持连接服务器200向客户端100发送示出加入组完成的意思的数据(步骤S118)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
接着,说明加入到用户指定的组的处理过程的详细内容。即,说明用户能够将期望的组ID输入到客户端100的情况。图36是示出本实施方式的加入到用户指定的组的处理过程的详细内容的时序图。
参照图36,例如客户端100从用户受理组ID的输入(步骤S121)。具体地,CPU 110通过输入输出部130受理组ID的输入。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送加入组请求(步骤S122)。加入组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送加入组请求。在这种情况下,加入组请求还包括用于确定客户端100的连接ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222中(步骤S124)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,新创建组ID并追加到对应关系DB 221和对应关系DB 222中。但是,在接收到的组ID未包括在对应关系DB 222的情况下,CPU 210也可以拒绝加入组请求。
CPU 210在接收到的组ID包括在对应关系DB 222的情况下,将用于确定客户端100的连接ID与组ID相对应地存储到对应关系DB 222(步骤S126)。具体地,如图34所示,CPU 210向对应关系DB 222追加连接ID与组ID的组合。
保持连接服务器200向客户端100发送示出加入组完成的意思的数据(步骤S128)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
<通过应用服务器进行的客户端加入的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的通过应用服务器300进行的客户端加入的处理过程的详细内容。图37是示出本实施方式的网络系统1中的通过应用服务器300进行的客户端加入的处理过程的详细内容的时序图。
参照图37,应用服务器300向保持连接服务器200发送用于使客户端100加入组的加入请求(步骤S132)。具体地,应用服务器300的CPU 310对应于管理人或服务用的应用程序等的请求,通过通信接口360,利用HTTP协议向保持连接服务器200发送客户端加入请求。例如客户端加入请求包括组ID和属于组的客户端的连接ID。
保持连接服务器200的CPU 210对应于客户端加入请求,判断接收到的组ID是否包括在对应关系DB 222(步骤S134)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,拒绝加入组请求。
在接收到的组ID包括在对应关系DB 222的情况下,CPU 210如图34所示那样向对应关系DB 222登记连接ID与组ID的组合(步骤S136)。保持连接服务器200向应用服务器300发送示出客户端100向组的加入完成的意思的数据(步骤S138)。
接着,说明本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的组创建的处理过程的详细内容。图38是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的客户端加入的处理过程的详细内容的时序图。
参照图38,智能电话500或外部的个人计算机对应于来自用户或应用程序的请求,向应用服务器300发送用于使客户端100加入组的客户端加入请求(步骤S140)。客户端加入请求包括用于确定组的组ID和属于组的客户端的连接ID。
应用服务器300向保持连接服务器200发送客户端加入请求(步骤S142)。具体地,应用服务器300的CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送客户端加入请求。
保持连接服务器200的CPU 210判断接收到的客户端加入请求所包括的组ID是否包括在对应关系DB 222中(步骤S144)。CPU 210在接收到的组ID未包括在对应关系DB 222中的情况下,拒绝加入组请求。
保持连接服务器200的CPU 210在接收到的组ID包括在对应关系DB 222的情况下,如图34所示那样向对应关系DB 221登记组ID与属于组的客户端的连接ID的组合(步骤S146)。保持连接服务器200向应用服务器300发送示出客户端100向组的加入完成的意思的数据(步骤S148)。
<新组创建的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的通过应用服务器300进行的组创建的处理过程的详细内容。图39是示出本实施方式的网络系统1中的通过应用服务器300进行的组创建的处理过程的详细内容的时序图。
参照图39,应用服务器300向保持连接服务器200发送用于创建新组的请求(步骤S151)。具体地,应用服务器300的CPU 310对应于来自管理人或服务用的应用程序等的请求,通过通信接口360,利用HTTP协议向保持连接服务器200发送组创建请求。例如,组创建请求包括用于确定新组的组名称和组ID以及要属于新的组的客户端的连接ID。
保持连接服务器200的CPU 210对应于组创建请求,向对应关系DB 221追加新的组名称与组ID的组合。进一步地,CPU 210向对应关系DB 222追加新的组ID与要属于新的组的客户端的连接ID的组合。CPU 210通过通信接口260,将组的创建成功的意思发送到应用服务器300。
客户端100的CPU 110对应于来自用户的命令、或者对应于来自应用服务器300的请求,通过通信接口160,利用WebSocket协议向保持连接服务器200发送加入组请求(步骤S152)。加入组请求包括用于确定所创建的组的组ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222(步骤S154)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,拒绝加入组请求。但是,在接收到的组ID未包括在对应关系DB 222的情况下,CPU 210也可以新创建组ID并追加到对应关系DB 221和对应关系DB 222。
CPU 210在接收到的组ID包括在对应关系DB 222的情况下,将用于确定客户端100的连接ID与组ID对应地存储到对应关系DB 222(步骤S156)。具体地,如图34所示,CPU 210向对应关系DB 222追加连接ID与组ID的组合。
保持连接服务器200向客户端100发送示出加入组完成的意思的数据(步骤S158)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
接着,说明本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的组创建的处理过程的详细内容。图40是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的组创建的处理过程的详细内容的时序图。
参照图40,智能电话500或外部的个人计算机对应于来自用户或应用程序的请求,向应用服务器300发送用于创建新的组的组创建请求(步骤S160)。组创建请求包括用于确定新组的组名称和组ID以及要属于新的组的客户端的连接ID。
应用服务器300向保持连接服务器200发送组创建请求(步骤S161)。具体地,应用服务器300的CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组创建请求。组创建请求包括用于确定新组的组名称和组ID以及要属于新的组的客户端的连接ID。
保持连接服务器200的CPU 210对应于组创建请求,向对应关系DB 221追加新的组ID。进一步地,CPU 210向对应关系DB 222追加新的组ID与要属于新组的客户端的连接ID的组合。
客户端100的CPU 110对应于来自用户的命令、或者对应于来自应用服务器300的请求,通过通信接口160,利用WebSocket协议,向保持连接服务器200发送加入组请求(步骤S162)。加入组请求包括用于确定所创建的组的组ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222(步骤S164)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,拒绝加入组请求。但是,在接收到的组ID未包括在对应关系DB 222的情况下,CPU 210也可以新创建组ID并追加到对应关系DB 221和对应关系DB 222。
CPU 210在接收到的组ID包括在对应关系DB 222、的情况下,将用于确定客户端100的连接ID与组ID对应地存储到对应关系DB(步骤S166)。具体地,如图34所示,CPU 210向对应关系DB 222追加连接ID与组ID的组合。
保持连接服务器200向客户端100发送示出加入组完成的意思的数据(步骤S168)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
<客户端从组退出时的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的客户端100的退出组的处理过程的详细内容。图41是示出本实施方式的网络系统1中的客户端100的退出组的处理过程的详细内容的时序图。
参照图41,客户端100向保持连接服务器200发送用于从组退出的请求(步骤S202)。具体地,客户端100的CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送退出组请求。退出组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送退出组请求。在这种情况下,退出组请求还包括用于确定客户端100的连接ID。
关于保持连接服务器200,如图42所示,CPU 210从对应关系DB 222删除连接ID与组ID的组合(步骤S206)。
保持连接服务器200向客户端100发送示出退出组完成的意思的数据(步骤S208)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
以下,更详细地说明客户端100的退出组的处理过程的详细内容。首先,说明对客户端100预先写入了组ID的情况下的加入组的处理过程的详细内容。图43是示出本实施方式的对客户端100预先写入了组ID的情况下的加入组的处理过程的详细内容的时序图。
参照图43,例如客户端100向保持连接服务器200发送用于从组退出的请求(步骤S212)。具体地,客户端100的CPU 110在通过输入输出部130受理来自用户的复位命令时、或者通过输入输出部130受理来自用户的退出命令时等,从存储器120读取组ID。而且,CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送退出组请求。退出组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送退出组请求。在这种情况下,退出组请求还包括用于确定客户端100的连接ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222(步骤S214)。CPU 110也可以在接收到的组ID未包括在对应关系DB 222的情况下,拒绝退出组请求。
在接收到的组ID包括在对应关系DB 222的情况下,CPU 210如图42所示那样从对应关系DB 222删除连接ID与组ID的组合(步骤S216)。
保持连接服务器200向客户端100发送示出退出组完成的意思的数据(步骤S218)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
接着,说明从用户指定的退出组的处理过程的详细内容。图44是示出从用户指定的退出组的处理过程的详细内容的时序图。
参照图44,例如客户端100从用户受理组ID的输入(步骤S221)。具体地,CPU 110通过输入输出部130受理组ID的输入。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送退出组请求(步骤S222)。退出组请求包括用于确定组的组ID。
此外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送退出组请求。在这种情况下,退出组请求还包括用于确定客户端100的连接ID。
保持连接服务器200的CPU 210判断接收到的组ID是否包括在对应关系DB 222(步骤S224)。CPU 210也可以在接收到的组ID未包括在对应关系DB 222的情况下,拒绝退出组请求。
在接收到的组ID包括在对应关系DB 222的情况下,CPU 210如图42所示那样从对应关系DB 222删除连接ID与组ID的组合(步骤S226)。
保持连接服务器200向客户端100发送示出退出组完成的意思的数据(步骤S228)。具体地,CPU 210通过通信接口260,利用WebSocket协议将该数据发送到客户端100。
<通过应用服务器进行的客户端退出的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的通过应用服务器300进行的客户端退出的处理过程的详细内容。图45是示出本实施方式的网络系统1中的通过应用服务器300进行的客户端退出的处理过程的详细内容的时序图。
参照图45,应用服务器300向保持连接服务器200发送用于使客户端100退出的退出请求(步骤S252)。具体地,应用服务器300的CPU 310对应于管理人或服务用的应用程序等的请求,通过通信接口360,利用HTTP协议向保持连接服务器200发送客户端退出请求。例如客户端退出请求包括组ID和属于组的客户端的连接ID。
保持连接服务器200的CPU 210对应于客户端退出请求,判断接收到的组ID是否包括在对应关系DB 222(步骤S254)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,拒绝退出组请求。
在接收到的组ID包括在对应关系DB 222的情况下,CPU 210如图42所示那样从对应关系DB 222删除连接ID与组ID的组合(步骤S256)。保持连接服务器200向应用服务器300发送示出客户端100从组的退出完成的意思的数据(步骤S258)。
接着,说明本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的组创建的处理过程的详细内容。图46是示出本实施方式的网络系统1中的通过智能电话500或外部的个人计算机进行的客户端退出的处理过程的详细内容的时序图。
参照图46,智能电话500或外部的个人计算机对应于来自用户或应用程序的请求,向应用服务器300发送用于使客户端100从组退出的客户端退出请求(步骤S260)。客户端退出请求包括用于确定组的组ID和属于组的客户端的连接ID。
应用服务器300向保持连接服务器200发送客户端退出请求(步骤S262)。具体地,应用服务器300的CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送客户端退出请求。
保持连接服务器200的CPU 210判断接收到的客户端退出请求所包括的组ID是否包括在对应关系DB 222(步骤S264)。CPU 210在接收到的组ID未包括在对应关系DB 222的情况下,拒绝退出组请求。
保持连接服务器200的CPU 210在接收到的组ID包括在对应关系DB 222的情况下,如图42所示那样从对应关系DB 221删除组ID与属于组的客户端的连接ID的组合(步骤S266)。保持连接服务器200向应用服务器300发送示出客户端100从组退出完成的意思的数据(步骤S268)。
<从客户端向组发送数据的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容。图47是示出本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
参照图47,客户端100从用户受理消息(步骤S311)。具体地,CPU 110通过输入输出部130受理来自用户的消息的输入和组ID的指定(步骤S311)。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送组同时发送请求(步骤S312)。组同时发送请求包括组ID和消息。
此外,不限于来自用户的消息输入,例如CPU 110也可以在达到规定的时刻时向保持连接服务器200发送组同时发送请求。或者,CPU 110也可以对应于来自传感器的输入,向保持连接服务器200发送组同时发送请求。
另外,客户端100的CPU 110也可以通过通信接口160,利用HTTP协议向保持连接服务器200发送组同时发送请求。在这种情况下,优选的是,组同时发送请求还包括用于确定客户端100的连接ID。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读取与指定的组ID对应的连接ID(步骤S314),利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S316)。CPU 210关于与组ID对应的所有客户端100重复步骤S314和步骤S316的发送处理。
CPU 210当关于与组ID对应的所有客户端100完成步骤S314和步骤S316的数据发送处理时,对发送结果进行合计(步骤S317)。CPU 210利用WebSocket协议,通过通信接口260向发送源的客户端100发送合计的发送结果(步骤S318)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计得到的发送结果的累积场所不限定于保持连接服务器200的存储器220,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<从应用服务器向组发送数据的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。图48是示出本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
参照图48,应用服务器300从管理人、自身的应用程序、智能电话500、外部的个人计算机等受理消息(步骤S411)。在此,CPU 310通过输入输出部330受理来自管理人的消息的输入。CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S412)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读取与组ID对应的连接ID(步骤S414)。CPU 1210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S416)。CPU 210关于与组ID对应的所有客户端100重复步骤S414和步骤S416的发送处理。
CPU 210当关于与组ID对应的所有客户端100完成步骤S414和步骤S416的发送处理时,对发送结果进行合计(步骤S417)。CPU 210利用HTTP协议,通过通信接口260向发送源的应用服务器300发送合计的发送结果(步骤S418)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计得到的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计得到的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所不限定于保持连接服务器200的存储器220,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十实施方式>
在第九实施方式中,是在从发送源的客户端100向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的客户端100。然而,在本实施方式中,是保持连接服务器200每次向作为发送目的地的客户端100发送数据时,都将发送结果发送到作为发送源的客户端100。
此外,本实施方式与第九实施方式相比,仅图47的动作不同,其他结构相同。因此,在此,不重复说明其它结构。
以下,说明本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容。图49是示出本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
参照图49,客户端100从用户受理消息(步骤S321)。具体地,CPU 110通过输入输出部130受理来自用户的消息的输入(步骤S321)。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送组同时发送请求(步骤S322)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读出与组ID对应的连接ID(步骤S324)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S326)。CPU 210利用WebSocket协议,通过通信接口260向作为发送源的客户端100通知发送结果(步骤S328)。在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所不是限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果合计的发送结果累积到其它数据库(例如对应关系DB 250等)或NAS(Network Attached Storage,网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
CPU 210关于与组ID对应的所有客户端100重复进行步骤S324、步骤S326及步骤S328的发送处理以及发送结果通知处理。
<第十一实施方式>
在第九实施方式中,是在从作为发送源的客户端100向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的客户端100。然而,在本实施方式中,是在从作为发送源的客户端100接收到组同时发送请求时,保持连接服务器200将受理请求的意思发送到作为发送源的客户端100,并且在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的客户端100。
此外,本实施方式与第九实施方式相比,仅图47的动作不同,其它结构相同。因此,在此不重复关于其它结构的说明。
以下,说明本实施方式的网络系统1中的从客户端100向组的数据发送的处理过程的详细内容。图50是示出本实施方式的网络系统1中的从客户端100向组的数据发送的处理过程的详细内容的时序图。
参照图50,客户端100从用户受理消息(步骤S331)。具体地,CPU 110通过输入输出部130受理来自用户的消息的输入。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送组同时发送请求(步骤S332)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过通信接口260,利用WebSocket协把受理来自客户端100的组同时发送请求的意思发送到作为发送源的客户端100(步骤S333)。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读出与组ID对应的连接ID(步骤S334)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S336)。CPU 210关于与组ID对应的所有客户端100重复步骤S334和步骤S336的发送处理。
CPU 210当关于与组ID对应的所有客户端100完成步骤S334和步骤S336的发送处理时,对发送结果进行合计(步骤S337)。CPU 210利用WebSocket协议,通过通信接口260向作为发送源的客户端100发送合计的发送结果(步骤S338)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220。但是,发送结果或合计得到的发送结果的累积场所不是限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十二实施方式>
在第九实施方式中,是在从作为发送源的客户端100向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的客户端100。然而,在本实施方式中,在从作为发送源的客户端100接收到组同时发送请求时,保持连接服务器200发送受理请求的意思,在每次向作为发送目的地的客户端100发送时都将发送结果发送到作为发送源的客户端100。
此外,本实施方式与第九实施方式相比,仅图47的动作不同,其它结构相同。因此,在此不重复关于其它结构的说明。
以下,说明本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容。图51是示出本实施方式的网络系统1中的从客户端100向组发送数据的处理过程的详细内容的时序图。
参照图51,客户端100从用户受理消息(步骤S341)。具体地,CPU 110通过输入输出部130受理来自用户的消息的输入。CPU 110通过通信接口160,利用WebSocket协议向保持连接服务器200发送组同时请求(步骤S342)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过通信接口260,利用WebSocket协议将受理来自客户端100的组同时发送请求的意思发送到作为发送源的客户端100(步骤S343)。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读取与组ID对应的连接ID(步骤S344)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S346)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送发送结果(步骤S348)。在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220。但是,发送结果或合计的发送结果的累积场所不是限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果合计的发送结果累积到其它数据库(例如对应关系DB 250等)或NAS(Network Attached Storage,网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
CPU 210关于与组ID对应的所有客户端100重复进行步骤S344、步骤S346及步骤S348的发送处理以及发送结果通知处理。
<第十三实施方式>
在第九实施方式中,是在从应用服务器300向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的应用服务器300。然而,在本实施方式中,每次向作为发送目的地的客户端100发送时都将发送结果发送到应用服务器300。
此外,本实施方式与第九实施方式相比,仅图48的动作不同,其它结构相同。因此,在此不重复关于其它结构的说明。
以下,说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。图52是示出本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
参照图52,应用服务器300受理管理人、自身的应用程序、智能电话500、外部的个人计算机等的消息(步骤S421)。在此,CPU 310通过输入输出部330受理来自管理人的消息的输入。CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S422)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读出与组ID对应的连接ID(步骤S424)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S426)。CPU 210利用HTTP协议,通过通信接口260向应用服务器300发送发送结果(步骤S428)。在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所不是限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果合计的发送结果累积到其它数据库(例如对应关系DB 250等)或NAS(Network Attached Storage,网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
CPU 210关于与组ID对应的所有客户端100重复进行步骤S424、步骤S426及步骤S428的发送处理以及发送结果通知处理。
<第十四实施方式>
在第九实施方式中,是在从作为发送源的应用服务器300向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的应用服务器300。然而,在本实施方式中,是在从应用服务器300接收到组同时发送请求时,保持连接服务器200将受理请求的意思发送到应用服务器300,并且在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到作为发送源的应用服务器300。
此外,本实施方式与第九实施方式相比,仅图48的动作不同,其它结构相同。因此,在此不重复关于其它结构的说明。
以下,说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。图53是示出本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
参照图53,应用服务器300受理自管理人、自身的应用程序、智能电话500、外部的个人计算机等的消息(步骤S431)。在此,CPU 310通过输入输出部330受理来自管理人的消息的输入。CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S432)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过通信接口260,利用HTTP协议把受理来自应用服务器300的组同时发送请求的意思发送到作为发送源的应用服务器300(步骤S433)。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读出与组ID对应的连接ID(步骤S434)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S436)。CPU 210关于与组ID对应的所有客户端100重复步骤S434和步骤S436的发送处理。
CPU 210当关于与组ID对应的所有客户端100完成步骤S434和步骤S436的发送处理时,对发送结果进行合计(步骤S437)。CPU 210利用HTTP协议,通过通信接口260向作为发送源的应用服务器300发送合计的发送结果(步骤S438)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所是不限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十五实施方式>
在第九实施方式中,是在从应用服务器300向组发送数据时,保持连接服务器200在向属于组的所有作为发送目的地的客户端100的数据发送完成后将发送结果发送到应用服务器300。然而,在本实施方式中,是在从应用服务器300接收到组同时发送请求时,保持连接服务器200发送受理请求的意思,在每次向作为发送目的地的客户端100发送时都将发送结果发送到应用服务器300。
此外,本实施方式与第九实施方式相比,仅图48的动作不同,其它结构相同。因此,在此不重复关于其它结构的说明。
以下,说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。图54是示出本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容的时序图。
参照图54,应用服务器300受理管理人、自身的应用程序、智能电话500、外部的个人计算机等的消息(步骤S441)。在此,CPU 310通过输入输出部330受理来自管理人的消息的输入。CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S442)。组同时发送请求包括组ID和消息。
保持连接服务器200的CPU 210通过通信接口260,利用HTTP协议把受理来自应用服务器300的组同时发送请求的意思发送到作为发送源的应用服务器300(步骤S443)。
保持连接服务器200的CPU 210通过参照对应关系DB 222,依次读出与组ID对应的连接ID(步骤S444)。CPU 210利用WebSocket协议,通过通信接口260向客户端100发送消息(步骤S446)。CPU 210利用HTTP协议,通过通信接口260向应用服务器300发送发送结果(步骤S448)。在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所是不限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果合计的发送结果累积到其它数据库(例如对应关系DB 250等)或NAS(Network Attached Storage,网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
CPU 210关于与组ID对应的所有客户端100重复进行步骤S444、步骤S446及步骤S448的发送处理以及发送结果通知处理。
<第十六实施方式>
接着,作为第十六实施方式,说明只向特定型号的家用电器发送数据的方式。
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图55是示出本实施方式的网络系统1的整体结构和动作概要的图形图。
参照图55,网络系统1包括配置于住所或办公室等的电视100A、100B、100C、吸尘器100D、100E、100F、空调100G、100H。以下,还对客户端100A~100H进行统称,还称为客户端100。网络系统1包括能够与客户端100保持连接保持连接服务器200以及提供各种服务的应用服务器300。
作为客户端100,例如可列举吸尘器、电视、空调、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH烹调加热器、电子微波炉、照明等家用电器。进一步地,客户端只要是通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。
保持连接服务器200和应用服务器300也可以与任一个客户端相同地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。
在本实施方式中,保持连接服务器200和应用服务器300是不同的计算机。然而,保持连接服务器和应用服务器也可以是相同的计算机。例如作为一个计算机、即装置的服务器也可以搭载用于与客户端保持连接的通信服务程序以及用于控制客户端的应用服务程序。另外,一个应用服务器也可以搭载多个应用服务程序。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。在此,多个客户端100按每一商品和/或型号被分为多个组。具体地,保持连接服务器200能够连接的对应关系DB服务器或保持连接服务器200自身存储有示出该分组的数据。而且,应用服务器300提供将来自智能电话500及外部的个人计算机等的数据传送客户端100的服务。
智能电话500或外部的个人计算机等将用于指定商品或型号的组ID和用于向该组发送的消息发送到应用服务器300。应用服务器300将用于指定组的组ID和用于向该组发送的消息发送到保持连接服务器200。保持连接服务器200向与组ID对应的多个客户端100推送数据主体。例如保持连接服务器200仅向保持连接中的客户端100中的电视100A、100B、100C发送与回收信息有关的消息。
像这样,在本实施方式中,智能电话500、外部的个人计算机、应用服务器300、客户端100能够只向与保持连接服务器200保持连接的多个客户端100中的期望的商品、或者期望型号的家用电器发送数据。以下,说明用于实现这样的功能的对应关系DB和保持连接服务器200的CPU 210的动作。此外,关于本实施方式的网络系统1的其它结构以及动作等,与第九实施方式的结构及动作等相同,因此在此不重复说明。
<对应关系DB>
在本实施方式中,如图56所示,与保持连接服务器200不同的对应关系DB服务器250存储组名称和组ID之间的对应关系DB 224。此外,保持连接服务器200的存储器220也可以存储对应关系DB 224。
另外,如图57所示,与保持连接服务器200不同的对应关系DB服务器250存储组ID与连接ID之间的对应关系DB 225。此外,连接ID是指用于确定应用服务器300所提供的服务与客户端100之间的关系的信息。此外,保持连接服务器200的存储器220也可以存储对应关系DB 224。
此外,虽然没有图示,但是对应关系DB也可以包括示出组的层级的对应关系DB。例如对应关系DB也可以存储作为上位的组ID的每个商品的组ID,存储作为中位的多个组ID的每个型号的组ID。在这种情况下,对应关系DB与商品的组ID的每个对应地保存多个型号的组ID。
<从应用服务器向组发送数据的处理过程的详细内容>
接着,一边参照图48一边说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。
应用服务器300从商品的制造商等受理回收信息(步骤S411)。具体地,CPU 310通过输入输出部330受理示出商品名或型号的组ID和消息的输入。CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S412)。在此,组同时发送请求包括用于确定电视的型号1的组ID“002001”以及“该电视是回收对象产品哦。请致电确认。”这样的消息。
保持连接服务器200的CPU 210通过参照对应关系DB 225,依次读出与组ID“002001”对应的连接ID“CCC”(步骤S414)。CPU 210利用WebSocket协议,通过通信接口260向具有连接ID“CCC”的电视100A发送消息(步骤S416、参照图55。)。CPU 210关于具有与组ID“002001”对应的连接ID“FFF”、“JJJ”的电视100B、100C也重复进行步骤S414和步骤S416的发送处理(参照图55)。
CPU 210当关于与组ID对应的所有客户端100完成步骤S414和步骤S416的发送处理时,对发送结果进行合计(步骤S417)。CPU 210利用HTTP协议,通过通信接口260向作为发送源的应用服务器300发送合计的发送结果(步骤S418)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所是不限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十七实施方式>
接着,作为第十七实施方式,说明只向处于公寓的特定楼层的家用电器发送数据的方式。
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图58是示出本实施方式的网络系统1的整体结构和动作概要的图形图。
参照图58,网络系统1包括配置于住所或办公室等的吸尘器100A~100E。以下,还对客户端100A~100E进行统称,还称为客户端100。网络系统1包括能够与客户端100保持连接的保持连接服务器200、提供各种服务的应用服务器300、应用服务器300以及智能电话500或个人计算机等。
作为客户端100,例如可列举吸尘器、电视、空调、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating,感应加热)烹调加热器、电子微波炉、照明等家用电器。并且,客户端只要是通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。
保持连接服务器200和应用服务器300也可以与任一个客户端相同地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。
另外,在本实施方式中,保持连接服务器200和应用服务器300是不同的计算机。然而,保持连接服务器和应用服务器也可以是相同的计算机。例如作为一个计算机、即装置的服务器也可以搭载用于与客户端保持连接的通信服务程序以及用于控制客户端的应用服务程序。另外,一个应用服务器也可以搭载多个应用服务程序。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。在此,多个客户端100被分为国家组和地区组,进一步被分为城市组,进一步被分为公寓组,进一步被分为楼层组。具体地,保持连接服务器200能够连接的对应关系DB服务器或保持连接服务器200自身存储有示出该分组的数据。而且,应用服务器300提供把来自智能电话500及外部的个人计算机等的数据推送给客户端100的服务。
智能电话500或外部的个人计算机等将用于指定公寓的楼层的组ID和用于向该组发送的消息发送到应用服务器300。应用服务器300将用于指定组的组ID和用于向该组发送的消息发送到保持连接服务器200。保持连接服务器200向与组ID对应的多个客户端100推送数据主体。例如保持连接服务器200仅向保持连接中的客户端100中的10层以上的家用电器给送“9月21日是公寓的清扫日哦。”这样的消息,仅向不满10层的家用电器给送“9月22日是公寓的清扫日哦。”这样的消息。
像这样,在本实施方式中,智能电话500、外部的个人计算机、应用服务器300、客户端100能够只向与保持连接服务器200保持连接的多个客户端100中的处于期望的楼层数的房屋的家用电器发送数据。以下,说明用于实现这样的功能的对应关系DB以及保持连接服务器200的CPU 210的动作。此外,关于本实施方式的网络系统1的其它结构,与第九实施方式的结构相同,在此不重复说明。
<对应关系DB>
在本实施方式中,如图59所示,与保持连接服务器200不同的对应关系DB服务器250存储作为上位层级的组名称与组ID之间的对应关系DB 226、作为中位层级的组名称与组ID之间的对应关系DB 227、作为下位层级的组名称与组ID之间的对应关系DB 228以及进一步地作为更下位层级的组名称与组ID之间的对应关系DB 229。此外,保持连接服务器200的存储器220也可以存储对应关系DB 226、227、228、229。
<从应用服务器向组发送数据的处理过程的详细内容>
接着,一边参照图48一边说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。
应用服务器300从管理人的智能电话500或个人计算机受理组ID和消息(步骤S411)。具体地,CPU 310通过通信接口360,从管理人的智能电话500接收用于确定日本的近畿地区的组ID、用于确定奈良县奈良市的组ID、用于确定C公寓的组ID、用于确定10层~19层的各层的组ID以及消息。
CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S412)。在此,组同时发送请求包括组ID和消息。组ID是将作为上位层级的组ID“202”、作为中位层级的组ID“501”、下位层级“223”以及下位层级“510”~“519”组合得到的“202501223510”~“202501223519”。消息是“9月21日是公寓的清扫日哦。”这样的文本。
保持连接服务器200的CPU 210通过参照对应关系DB,依次读出与组ID“202501223510”~“202501223519”对应的连接ID(步骤S414)。CPU 210利用WebSocket协议,通过通信接口260向具有连接ID的吸尘器100A发送消息(步骤S416、参照图58。)。CPU 210关于具有与组ID对应的连接ID的吸尘器100B、100C重复进行步骤S414和步骤S416的发送处理(参照图58)。
CPU 210当关于与组ID对应的所有客户端100完成步骤S414和步骤S416的发送处理时,对发送结果进行合计(步骤S417)。CPU 210利用HTTP协议,通过通信接口260向作为发送源的应用服务器300发送合计的发送结果(步骤S418)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所是不限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十八实施方式>
接着,作为第十八实施方式,说明只向处于特定区域的家用电器发送数据的方式。
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图60是示出本实施方式的网络系统1的整体结构和动作概要的图形图。
参照图60,网络系统1包括配置于住所或办公室等的多个客户端100。网络系统1包括能够与客户端100保持连接的保持连接服务器200、提供各种服务的应用服务器300、应用服务器300以及智能电话500或个人计算机等。
作为客户端100,例如可列举吸尘器、电视、空调、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH烹调加热器、电子微波炉、照明等家用电器。进一步地,客户端只要是通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。
保持连接服务器200和应用服务器300也可以与任一个客户端相同地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。
在本实施方式中,保持连接服务器200和应用服务器300是不同的计算机。然而,保持连接服务器和应用服务器也可以是相同的计算机。例如作为一个计算机、即装置的服务器也可以搭载用于与客户端保持连接的通信服务程序以及用于控制客户端的应用服务程序。另外,一个应用服务器也可以搭载多个应用服务程序。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。在此也同样,多个客户端100被分为国家组和地区组,进一步被分为城市组,进一步被分为公寓组,进一步被分为楼层组。具体地,保持连接服务器200能够连接的对应关系DB服务器或保持连接服务器200自身存储有示出该分组的数据。而且,应用服务器300提供把来自智能电话500及外部的个人计算机等的数据推送给客户端100的服务。
智能电话500或外部的个人计算机等将用于指定城市/公寓/楼层等的组ID以及用于向该组发送的消息发送到应用服务器300。应用服务器300将用于指定组的组ID以及用于向该组发送的消息发送到保持连接服务器200。保持连接服务器200向与组ID对应的多个客户端100推送数据主体。例如,保持连接服务器200仅向保持连接中的客户端100中的处于特定区域的家用电器发送来自市长的问候。
像这样,在本实施方式中,智能电话500、外部的个人计算机、应用服务器300、客户端100能够只向与保持连接服务器200保持连接的多个客户端100中的处于期望的区域的家用电器发送数据。以下,说明用于实现这样的功能的保持连接服务器200的CPU 210的动作。此外,关于本实施方式的网络系统1的其它结构,与第九实施方式的结构相同,因此在此不重复说明。而且,关于对应关系DB,与第十七实施方式的对应关系DB相同,因此在此不重复说明。
<从应用服务器向组发送数据的处理过程的详细内容>
接着,说明本实施方式的网络系统1中的从应用服务器300向组发送数据的处理过程的详细内容。
参照图48,应用服务器300从市长的智能电话500或个人计算机受理组ID和消息(步骤S411)。具体地,CPU 310通过通信接口360接收用于确定日本的近畿地区的组ID“202”、用于确定奈良县奈良市的组ID“501”以及消息。此外,市长的智能电话500或个人计算机也可以将两个组ID合并来向应用服务器300发送用于确定日本的近畿地区的奈良县奈良市的一个组ID“202501”以及消息。
CPU 310通过通信接口360,利用HTTP协议向保持连接服务器200发送组同时发送请求(步骤S412)。在此,组同时发送请求包括组ID和向市民的问候。此外,组ID也可以是包括作为上位层级的组ID“202”和作为中位层级的组ID“501”作为不同的数据的组ID,还可以是将作为上位层级的组ID“202”和作为中位层级的组ID“501”组合得到的一个组ID“202501”。由此,属于比“202501”更下位的所有组的客户端100成为发送对象。
保持连接服务器200的CPU 210通过参照对应关系DB,依次读出与组ID“202501”对应的连接ID(步骤S414)。CPU 210利用WebSocket协议,通过通信接口260向具有连接ID的客户端100发送消息(步骤S416、参照图58。)。CPU 210关于具有与组ID对应的连接ID的客户端100重复进行步骤S414和步骤S416的发送处理(参照图58)。
CPU 210当关于与组ID对应的所有客户端100完成步骤S414和步骤S416的发送处理使,对发送结果进行合计(步骤S417)。CPU 210利用HTTP协议,通过通信接口260向作为发送源的应用服务器300发送合计的发送结果(步骤S418)。
此外,发送结果包括与数据是否安全地被客户端100接收到有关的信息。另外,合计的发送结果包括发送结果的列表和/或通信成功率(=安全地接收到数据的客户端100的个数/属于组的客户端100的个数)。而且,在本实施方式中,保持连接服务器200将发送结果或合计的发送结果累积到存储器220中。但是,发送结果或合计的发送结果的累积场所是不限定于保持连接服务器200的存储器220的累积场所,保持连接服务器200也可以将发送结果或合计的发送结果累积到其它的数据库(例如对应关系DB 250等)或NAS(Network Attached Storage:网络附加存储)等外部存储。由此,应用服务器300及客户端100等外部设备能够参照发送结果。
<第十九实施方式>
在所述的实施方式中,保持连接服务器200是以能够从外部的应用服务器300、客户端100、智能电话500等参照的方式累积发送结果以及合计的发送结果的服务器。
然而,不只是发送结果,保持连接服务器200也可以以能够从外部的应用服务器300、客户端100、智能电话500等参照的方式累积从应用服务器300以及客户端100等受理的组同时发送请求(数据的推送命令)。
<其它应用例>
不用说,本发明当然还能够应用于通过向系统或装置供给程序来达成的情况。而且,通过向系统或装置供给保存有通过用于达成本发明的软件表示的程序的存储介质(或存储器),由该系统或装置的计算机(或CPU、MPU)读出并执行保存在存储介质中的程序代码,也能够享受本发明的效果。
在这种情况下,成为从存储介质读出的程序代码本身实现了所述实施方式的功能,变为由存储有该程序代码的存储介质构成本发明。
另外,不用说,通过执行计算机所读出的程序代码,不仅实现了所述实施方式的功能,且当然还包括如下的情况:根据该程序代码的指示,在计算机上运行的OS(操作系统)等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。
进一步地,不用说,当然还包括如下的情况:从存储介质读出的程序代码在被写入到插入于计算机的功能扩展端口、与计算机连接的功能扩展单元所具备的其它记录介质之后,根据该程序代码的指示,该功能扩展端口、功能扩展单元所具备的CPU等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。
虽然详细地说明了本发明,但是这只是用于例示而不成为限定,应该清楚地理解到发明的范围由添附的权利要求书解释。

Claims (30)

1.一种网络系统,具备:
多个电子设备,与识别信息相对应;
保持连接服务器,用于与所述多个电子设备保持连接;以及
应用服务器,根据所述识别信息,通过所述保持连接服务器向所述多个电子设备中的任一个推送信息。
2.根据权利要求1所述的网络系统,
所述保持连接服务器搭载于第一计算机,
所述应用服务器搭载于第二计算机。
3.根据权利要求1所述的网络系统,
所述保持连接服务器和所述应用服务器搭载于一个计算机。
4.根据权利要求1所述的网络系统,
所述多个电子设备的每个与所述保持连接服务器在开始保持连接之后,利用能够保持连接的协议来交换所述识别信息。
5.根据权利要求1所述的网络系统,
所述应用服务器向所述多个电子设备中的任一个和所述保持连接服务器发布认证信息,
所述保持连接服务器根据来自所述应用服务器的所述认证信息和来自所述多个电子设备中的任一个的所述认证信息,向所述应用服务器和所述多个电子设备中的任一个发布所述识别信息。
6.根据权利要求1所述的网络系统,
作为所述应用服务器,具备多个应用服务器,
所述多个应用服务器的每个通过利用所述识别信息,来通过所述保持连接服务器向所述多个电子设备中的任一个推送信息。
7.根据权利要求1所述的网络系统,
所述保持连接服务器向所述电子设备发送数据主体和事务ID,
所述电子设备在所述数据主体的接收完成之后,将所述事务ID发送到所述保持连接服务器,
所述保持连接服务器根据来自所述电子设备的所述事务ID,将向所述电子设备的数据发送完成的意思通知给所述应用服务器。
8.根据权利要求1所述的网络系统,
所述电子设备向所述保持连接服务器发送数据主体和事务ID,
所述保持连接服务器在所述数据主体的接收完成之后,将所述事务ID发送到所述电子设备,
所述保持连接服务器根据来自所述电子设备的所述事务ID,将来自所述电子设备的数据接收完成的意思通知给所述应用服务器。
9.一种保持连接方法,具备以下步骤:
多个电子设备与保持连接服务器开始保持连接;
将识别信息与所述多个电子设备进行对应;以及
应用服务器根据所述识别信息,通过所述保持连接服务器向所述多个电子设备中的任一个推送信息。
10.一种电子设备,具备:
存储器,保存识别信息;
通信接口,用于与保持连接服务器进行保持连接;以及
处理器,通过利用所述通信接口,来根据所述识别信息,通过所述保持连接服务器接收来自应用服务器的信息。
11.一种保持连接服务器,具备:
存储器,保存与多个电子设备对应的识别信息;以及
通信接口,用于与所述多个电子设备进行保持连接,并与应用服务器进行通信,
通过利用所述通信接口,来根据所述识别信息,将来自所述应用服务器的信息推送给所述多个电子设备中的任一个。
12.一种应用服务器,其具备:
存储器,保存与多个电子设备对应的识别信息;
通信接口,用于与保持连接服务器进行通信;以及
处理器,通过利用所述通信接口,来根据所述识别信息,通过所述保持连接服务器向所述多个电子设备中的任一个推送信息。
13.一种网络系统,具备:
多个电子设备;以及
保持连接服务器,用于与所述多个电子设备进行保持连接,
所述保持连接服务器存储用于确定所述多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系,根据所述组ID的指定,向属于对应的组的至少一个电子设备推送数据。
14.根据权利要求13所述的网络系统,
在所述对应关系中,对所述组进行层级化,
所述保持连接服务器根据用于确定上位的组的组ID的指定,向属于下位的组的电子设备推送数据,该下位的组属于该上位的组。
15.根据权利要求13所述的网络系统,
所述电子设备向所述保持连接服务器给送加入组请求,
所述保持连接服务器与所述加入组请求相应地将与所述电子设备对应的保持连接用ID和组ID的组合追加到所述对应关系。
16.根据权利要求13所述的网络系统,
还包括其它的电子设备,
所述其它的电子设备向所述保持连接服务器给送用于指定所述电子设备的信息和加入组请求,
所述保持连接服务器与所述信息和所述加入组请求对应地将与所述电子设备对应的保持连接用ID和组ID的组合追加到所述对应关系。
17.根据权利要求13所述的网络系统,
所述电子设备向所述保持连接服务器给送退出组请求,
所述保持连接服务器与所述退出组请求对应地从所述对应关系删除与所述电子设备对应的保持连接用ID和组ID的组合。
18.根据权利要求13所述的网络系统,
还包括其它的电子设备,
所述其它的电子设备向所述保持连接服务器给送用于指定所述电子设备的信息和退出组请求,
所述保持连接服务器与所述信息和所述退出组请求对应地从所述对应关系删除与所述电子设备对应的保持连接用ID和组ID的组合。
19.根据权利要求13所述的网络系统,
所述电子设备将所述组ID和所述数据发送到所述保持连接服务器,
所述保持连接服务器向与所述组ID对应的至少一个电子设备推送所述数据。
20.根据权利要求13所述的网络系统,
还具备应用服务器,
所述应用服务器将所述组ID和所述数据发送到所述保持连接服务器,
所述保持连接服务器向与所述组ID对应的至少一个电子设备推送所述数据。
21.根据权利要求19所述的网络系统,
所述保持连接服务器在接收到所述组ID和所述数据时,在向所述电子设备推送所述数据之前,将接收到推送命令的意思发送到所述数据的发送源。
22.根据权利要求19所述的网络系统,
所述保持连接服务器在向与所述组ID对应的至少一个电子设备的全部推送所述数据后,将所述数据的发送结果发送到所述数据的发送源。
23.根据权利要求22所述的网络系统,
所述发送结果包括示出与对应于所述组ID的至少一个电子设备的全部有关的所述数据的推送成功与否的列表。
24.根据权利要求22所述的网络系统,
所述发送结果包括向与所述组ID对应的至少一个电子设备推送所述数据的成功率。
25.根据权利要求19所述的网络系统,
所述保持连接服务器每次向与所述组ID对应的至少一个电子设备的每个推送所述数据时,都将所述数据的发送结果发送到所述数据的发送源。
26.根据权利要求22所述的网络系统,
所述保持连接服务器以能够从外部参照的方式累积所述发送结果。
27.根据权利要求13所述的网络系统,
所述保持连接服务器在受理用于推送数据的命令时,以能够从外部参照的方式累积该命令。
28.一种通信方法,具备以下步骤:
多个电子设备与保持连接服务器开始保持连接;
所述保持连接服务器存储用于确定所述多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系;以及
所述保持连接服务器根据所述组ID的指定,向属于对应的组的至少一个电子设备推送数据。
29.一种电子设备,具备:
通信接口;以及
处理器,用于通过利用所述通信接口,与保持连接服务器进行保持连接,并向所述保持连接服务器给送加入组请求。
30.一种保持连接服务器,具备:
通信接口,用于与多个电子设备进行保持连接;
存储器,存储用于确定所述多个电子设备的保持连接用ID与用于确定多个组的组ID之间的对应关系;以及
处理器,用于通过利用所述通信接口,根据所述组ID的指定,向属于对应的组的至少一个电子设备推送数据。
CN201410694099.XA 2013-11-27 2014-11-27 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器 Expired - Fee Related CN104683433B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013-244543 2013-11-27
JP2013244548A JP6000231B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム
JP2013-244548 2013-11-27
JP2013244543A JP5870079B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、通信方法、電子機器、常時接続サーバ、プログラム

Publications (2)

Publication Number Publication Date
CN104683433A true CN104683433A (zh) 2015-06-03
CN104683433B CN104683433B (zh) 2018-09-07

Family

ID=53183576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410694099.XA Expired - Fee Related CN104683433B (zh) 2013-11-27 2014-11-27 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器

Country Status (2)

Country Link
US (1) US20150149523A1 (zh)
CN (1) CN104683433B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294269A (zh) * 2015-06-29 2017-01-04 卡西欧计算机株式会社 通信设备、服务器、通信设备的控制方法和服务器的控制方法
CN112565059A (zh) * 2020-12-03 2021-03-26 城云科技(中国)有限公司 基于即时通讯私有云架构的消息传输方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101218790A (zh) * 2005-07-04 2008-07-09 Sk电信股份有限公司 家庭网络系统及其控制方法、设置家庭网络系统的住宅网关的方法以及处理家庭网络系统的事件协议的方法
US20100306179A1 (en) * 2005-12-29 2010-12-02 Nextlabs, Inc. Using Information Usage Data to Detect Behavioral Patterns and Anomalies
CN102318318A (zh) * 2011-06-29 2012-01-11 华为技术有限公司 终端访问数字家庭设备的方法和设备
US20130054818A1 (en) * 2011-08-31 2013-02-28 Seiko Epson Corporation Processing terminal and processing method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3780880B2 (ja) * 2001-07-05 2006-05-31 ソニー株式会社 通信システム、サーバ装置、クライアント装置、連携処理提供方法、連携処理方法、プログラムおよび記録媒体
US8583752B2 (en) * 2005-03-24 2013-11-12 Bank Of America Corporation Wireless data device with confirmation and retry capabilities for pushed data
US8010601B2 (en) * 2007-12-21 2011-08-30 Waldeck Technology, Llc Contiguous location-based user networks
CN101534207B (zh) * 2009-04-13 2012-05-23 腾讯科技(深圳)有限公司 群组加入系统及方法
US8750507B2 (en) * 2010-01-25 2014-06-10 Cisco Technology, Inc. Dynamic group creation for managed key servers
US20120173638A1 (en) * 2010-09-30 2012-07-05 Research In Motion Limited System and Method for Managing Electronic Groups
US20120124430A1 (en) * 2010-11-17 2012-05-17 Cisco Technology, Inc. Mechanism to Prevent Escaped Associations in Multi-Association RPC Based Protocols
KR101958902B1 (ko) * 2011-09-30 2019-07-03 삼성전자주식회사 전자기기들의 그룹 제어 방법 및 그를 위한 전자기기 관리 시스템
JP6229360B2 (ja) * 2012-09-12 2017-11-15 株式会社リコー 通信サーバ、通信システム、プログラム及び通信方法
US9143550B2 (en) * 2012-12-01 2015-09-22 Qualcomm Innovation Center, Inc. Graceful degradation of websocket connections to nonpersistent HTTP-based communications
US9331967B2 (en) * 2013-02-04 2016-05-03 Oracle International Corporation Browser/HTML friendly protocol for real-time communication signaling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101218790A (zh) * 2005-07-04 2008-07-09 Sk电信股份有限公司 家庭网络系统及其控制方法、设置家庭网络系统的住宅网关的方法以及处理家庭网络系统的事件协议的方法
US20100306179A1 (en) * 2005-12-29 2010-12-02 Nextlabs, Inc. Using Information Usage Data to Detect Behavioral Patterns and Anomalies
CN102318318A (zh) * 2011-06-29 2012-01-11 华为技术有限公司 终端访问数字家庭设备的方法和设备
US20130054818A1 (en) * 2011-08-31 2013-02-28 Seiko Epson Corporation Processing terminal and processing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294269A (zh) * 2015-06-29 2017-01-04 卡西欧计算机株式会社 通信设备、服务器、通信设备的控制方法和服务器的控制方法
CN106294269B (zh) * 2015-06-29 2019-11-08 卡西欧计算机株式会社 通信设备、服务器、通信设备的控制方法和服务器的控制方法
CN112565059A (zh) * 2020-12-03 2021-03-26 城云科技(中国)有限公司 基于即时通讯私有云架构的消息传输方法和系统
CN112565059B (zh) * 2020-12-03 2022-06-28 城云科技(中国)有限公司 基于即时通讯私有云架构的消息传输方法和系统

Also Published As

Publication number Publication date
US20150149523A1 (en) 2015-05-28
CN104683433B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN104683434A (zh) 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序
EP2854374B1 (en) Method and device for managing terminal in home network and home network
CN111901173A (zh) 一种云边协同的系统构建方法、装置、设备及可读介质
KR102350430B1 (ko) 홈 오토메이션 시스템의 하드웨어 엘리먼트들의 무선 프로비저닝 및 구성
CN104113458A (zh) 一种移动终端与智能家电设备互联的方法及装置
JP5891559B2 (ja) インスタントメッセージングの方法、端末、サーバ及びシステム
WO2015137740A1 (ko) 로봇을 이용한 홈 네트워크 시스템 및 그 제어방법
CN106452873B (zh) 软件定义网络中的控制方法,控制设备和处理器
CN111405042B (zh) 一种电子设备的发现方法、装置、存储介质和电子装置
CN104539454B (zh) 设备管理方法、装置及系统
CN104349208A (zh) 消息处理方法、装置、网关、机顶盒及网络电视系统
WO2017020790A1 (zh) 多屏控制方法及装置
CN103747199A (zh) 视频会议电视终端视频源的接入方法和系统
CN111200805A (zh) 基于蓝牙设备的蓝牙组网方法及其系统
CN113794996B (zh) 设备通信、设备控制方法、装置、电子设备和存储介质
JP2017163333A (ja) 通信端末、通信システム、情報送信方法、及びプログラム
CN105338089A (zh) 一种远程内容共享方法、服务器及终端
CN111669333A (zh) 数据传输方法、装置、计算设备和存储介质
CN108933809B (zh) 通信控制方法和装置、远程临场机器人以及记录介质
CN104683433A (zh) 网络系统、保持连接方法、通信方法、电子设备、保持连接服务器、应用服务器、程序
CN107431641A (zh) 针对通信属性的订阅
CN113746816A (zh) 一种数据处理方法、装置、终端及存储介质
JP6000231B2 (ja) ネットワークシステム、常時接続方法、電子機器、常時接続サーバ、アプリケーションサーバ、プログラム
CN112953992A (zh) 网络系统、通信与组网方法、设备及存储介质
JP2017069936A (ja) 通信端末、通信システム、出力方法、及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180907