CN104683435B - 网络系统、保持连接方法、电子设备、服务器 - Google Patents

网络系统、保持连接方法、电子设备、服务器 Download PDF

Info

Publication number
CN104683435B
CN104683435B CN201410694568.8A CN201410694568A CN104683435B CN 104683435 B CN104683435 B CN 104683435B CN 201410694568 A CN201410694568 A CN 201410694568A CN 104683435 B CN104683435 B CN 104683435B
Authority
CN
China
Prior art keywords
server
connection
holding
client
service
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.)
Expired - Fee Related
Application number
CN201410694568.8A
Other languages
English (en)
Other versions
CN104683435A (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 JP2013244547A external-priority patent/JP6057879B2/ja
Priority claimed from JP2013244546A external-priority patent/JP5858973B2/ja
Priority claimed from JP2014005058A external-priority patent/JP5940566B2/ja
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of CN104683435A publication Critical patent/CN104683435A/zh
Application granted granted Critical
Publication of CN104683435B publication Critical patent/CN104683435B/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/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Automation & Control Theory (AREA)
  • Computer And Data Communications (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)

Abstract

公开了网络系统、保持连接方法、电子设备、服务器、程序。提供具备多个保持连接服务器及与任一个保持连接服务器保持连接的电子设备的网络系统。电子设备从任一保持连接服务器取得与至少任一个保持连接服务器有关的信息,开始与任一个保持连接服务器间的保持连接。或提供具备电子设备及与电子设备保持连接的保持连接服务器的网络系统。保持连接服务器向电子设备发送包括重新连接用间隔的信息。在待机根据重新连接用间隔计算出的时间后,重复用于保持连接的处理。或提供具备多个保持连接服务器、通过任一个保持连接服务器利用服务的客户端及与客户端通信的服务器的网络系统。服务器将与至少一个保持连接服务器有关的列表发送到客户端。根据列表开始与保持连接服务器之的保持连接。

Description

网络系统、保持连接方法、电子设备、服务器
技术领域
本发明涉及一种用于将电子设备彼此保持连接的技术,特别是涉及一种将客户端与服务器保持连接的网络系统、保持连接方法、电子设备、服务器、程序。或者,本发明涉及一种保持连接的技术,特别是涉及一种客户端通过保持连接服务器来利用服务的网络系统、保持连接方法、电子设备、服务器、程序。
背景技术
以往,已知有用于通信设备相互向对方发送数据的各种技术。特别是已知有用于将在服务器侧产生的信息实时地传递到终端的各种技术。例如,在特开2010-277492号公报(专利文献1)公开了电子会议服务器及计算机程序。根据特开2010-277492号公报(专利文献1),实现在以web应用程序(web application)提供电子会议系统的情况下能够确保实时性以及附随电子会议系统的运用的未解决课题的管理等。具体地说,应用服务器以Comet服务器接收来自各电子设备的HTTP请求并变为保留状态的方式进行控制。若是应用服务器从某电子设备接收到消息数据,则应用服务器从会议数据库调出需要的数据,并将其与消息数据一起从Comet服务器发送到该电子设备。在发送之后,所述应用服务器以接收来自各电子设备的HTTP请求并再次变为保留状态的方式进行控制。接着,应用服务器当从与所述不同的电子设备接收到消息数据时,将该消息数据和从会议数据库调出的需要的数据经由Comet服务器发送到发出HTTP请求的电子设备,并解除保留。在发送之后,所述应用服务器接收到来自各电子设备的HTTP请求,再次进行控制使得成为保留状态。由此,发送了HTTP请求的电子设备能够在从应用服务器侧可准备好数据的瞬间起不间隔时间的情况下获得数据。
然而,在Comet中,由于每次通信时都需要HTTP会话,因此存在在客户端与服务器之间多次交换相同的数据的需要。另外,在Comet中,在每次进行对请求的响应的发送时都需要重新确立HTTP连接。因此,近年来,使用进行保持连接并在维持连接的状态下进行多次的双向通信的方法。例如开发出了在TCP(Transmission Control Protocol:传输控制协议)上进行动作的WebSocket这样的技术。WebSocket是由作为因特网的标准化组织的W3C和IETF进行的在web服务器与web浏览器之间的双向通信用的技术标准。WebSocket协议的规范被规定为RFC(Request For Comment,请求注释)6455。
另外,一般来说,为了提高网络系统的可用性而进行网络系统的各部的冗长化的情形较多。然而,在使保持连接服务器冗长化的情况下,产生与使通常的服务器冗长化的情况不同的问题。
另外,在使用保持连接的情况下,在服务器由于维护、未预期到的障碍而停止的情况下,目前为止连接的所有客户端与服务器之间的保持连接被暂时切断,之后,这些很多的客户端想要相对于重新开始运行的服务器或者被冗长构成而继续运行的其它服务器来一起重新开始保持连接,有时对服务器产生过大的服务器负荷,不能顺利地进行重新连接。
作为对此进行改善的方案,在特开2013-051571号公报(专利文献2)中,公开了一种客户端侧的技术,能够在将服务器的负荷分散的同时在早期确立重新连接,该客户端侧具备:通信单元,与服务器确立连接来进行通信;处理单元,根据通过所述通信从所述服务器取得的信息,执行规定的处理;切断检测单元,检测所述连接的切断;以及重新连接单元,在检测出所述连接的切断的情况下,在满足尝试的间隔的期望值为规定的固定值的条件的随机的第一定时,重复尝试与所述服务器重新连接。
然而,在专利文献2的方案中,因为重新连接的定时是固定值,没有企图变更,所以在系统运用之后与服务器连接的客户端的数目比事前预想的增加的情况下、由于功能的追加等而服务器的重新连接的处理能力下降的情况下等系统的运用环境有变化的情况下,仍然存在与重新连接有关的处理超过服务器的处理能力并对服务器产生过大的负荷的可能性。
另外,由于多个保持连接服务器负责与关于一个应用服务的客户端之间的保持连接、或者一个保持连接服务器负责与关于多个应用服务的客户端之间的保持连接,因此导致系统整体或一部分的保持连接服务器的维护、运用等变复杂。
发明内容
本发明是为了解决这样的问题而作出的发明,其目的在于解决在使保持连接服务器冗长化的情况下产生的问题。或者,其目的在于提供一种在保持连接服务器停止时、即使在系统的运用环境存在变化的情况下也能够在不对再次开始运行的保持连接服务器或被冗长构成而继续运行的其它的保持连接服务器施加课题的负荷的情况下顺利地恢复为保持连接状态的网络系统、保持连接方法、电子设备、服务器、程序。或者,其目的在于使得系统或保持连接服务器的维护或运用比以往更容易。
依照本发明的某方式,提供一种具备多个保持连接服务器以及能够与多个保持连接服务器中的至少任一个保持连接的电子设备的网络系统。电子设备从多个保持连接服务器中的任一个取得与多个保持连接服务器中的至少任一个有关的信息,根据信息开始与多个保持连接服务器中的任一个的保持连接。
优选的是,保持连接服务器取得多个保持连接服务器的列表。
优选的是,保持连接服务器发送列表来作为信息。电子设备根据列表从多个保持连接服务器中选择一个保持连接服务器。
优选的是,保持连接服务器根据列表从多个保持连接服务器中选择一个保持连接服务器,作为信息,将确定一个保持连接服务器的信息发送到电子设备。
优选的是,保持连接服务器在接受来自电子设备的请求时,取得列表。
优选的是,保持连接服务器定期地取得列表。
优选的是,保持连接服务器取得多个正在运行中的保持连接服务器的列表作为列表。
优选的是,保持连接服务器作成根据正在连接中的电子设备的数目对多个保持连接服务器排序得到的列表作为列表。
优选的是,保持连接服务器作成根据负荷对多个保持连接服务器排序得到的列表作为列表。
依照本发明的其它方式,提供一种保持连接方法,所述方法具备以下步骤:多个保持连接服务器中的任一个将与多个保持连接服务器有关的信息发送到电子设备;以及电子设备根据信息开始与多个保持连接服务器中的任一个的保持连接。
依照本发明的其它方式,提供一种电子设备,所述电子设备具备:通信接口,用于与多个保持连接服务器中的任一个进行保持连接;以及处理器,用于通过利用通信接口,从多个保持连接服务器中的任一个取得与多个保持连接服务器有关的信息,根据信息开始与多个保持连接服务器中的任一个的保持连接。
依照本发明的其它方式,提供一种服务器,所述服务器具备:通信接口,用于与电子设备进行通信;存储器,存储与多个保持连接服务器有关的信息;以及处理器,用于对应于来自电子设备的请求,通过利用通信接口,将与多个保持连接服务器有关的信息发送到电子设备。
依照本发明的其它方式,提供一种在包括处理器和通信接口的电子设备中利用的程序。程序使处理器执行以下步骤:通过利用通信接口,从多个保持连接服务器中的任一个取得与多个保持连接服务器有关的信息;以及通过利用通信接口,根据信息开始与多个保持连接服务器中的任一个的保持连接。
依照本发明的其它方式,提供一种在包括处理器、存储器以及通信接口的服务器中利用的程序。程序使处理器执行以下步骤:利用通信接口,取得与多个保持连接服务器有关的信息;以及对应于来自电子设备的请求,通过利用通信接口,将与多个保持连接服务器有关的信息发送到电子设备。
依照本发明的其它方式,提供一种网络系统,所述网络系统具备:电子设备;多个保持连接服务器,能够与电子设备进行保持连接;应用服务器,通过多个保持连接服务器中的任一个与电子设备间发送和接收信息;以及负荷分散服务器,将来自应用服务器的数据分配给多个保持连接服务器。多个保持连接服务器中的每一个向正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器传送数据。
优选的是,网络系统还具备数据库,该数据库保存多个保持连接服务器与多个电子设备之间的保持连接关系。被分配数据的多个保持连接服务器中的每一个通过参照数据库,来确定正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器。
优选的是,保持连接服务器中的每一个保存多个保持连接服务器与多个电子设备之间的保持连接关系。被分配数据的多个保持连接服务器中的每一个通过参照保持连接关系,来确定正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器。
依照本发明的其它方式,提供一种保持连接方法,所述方法具备以下步骤:应用服务器向负荷分散服务器发送数据;负荷分散服务器向多个保持连接服务器中的任一个分配数据;以及多个保持连接服务器中的任一个向正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器传送数据。
依照本发明的其它方式,提供一种服务器,所述服务器具备:通信接口,用于与电子设备进行保持连接;以及处理器,通过利用通信接口,接收负荷被分散后的数据,向正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器传送数据。
依照本发明的其它方式,提供一种在包括用于与电子设备保持连接的通信接口和处理器的保持连接服务器中利用的程序。程序使处理器执行以下步骤:通过利用通信接口,接收负荷被分散后的数据;以及通过利用通信接口,向正在与被指定为数据的发送目的地的电子设备保持连接中的其它保持连接服务器传送数据。
如以上那样,根据所述发明,能够解决在使保持连接服务器冗长化的情况下产生的问题。
另外,依照本发明的其它方式,提供一种具备电子设备以及能够与电子设备保持连接的保持连接服务器的网络系统。保持连接服务器向电子设备发送包括与保持连接服务器有关的重新连接用间隔的信息。电子设备在待机根据重新连接用间隔计算出的时间之后,重复用于进行保持连接的处理直到与保持连接服务器的保持连接成功为止。
优选的是,保持连接服务器针对每个电子设备作成以重新连接用间隔作为上限的等待时间,向电子设备发送等待时间。电子设备在与保持连接服务器间的保持连接被切断时,待机等待时间的量后进行用于保持连接的处理。
优选的是,电子设备作成以重新连接用间隔作为上限的等待时间,在与保持连接服务器间的保持连接被切断时,待机等待时间的量后进行用于保持连接的处理。
优选的是,等待时间根据通过电子设备与保持连接服务器间的保持连接进行的数据的发送和接收的频度而作成。
优选的是,保持连接服务器根据正在与保持连接服务器连接中的多个电子设备的数目和一个保持连接服务器每一秒能够重新连接的电子设备的数目来计算重新连接用间隔。
优选的是,网络系统具备能够与电子设备保持连接的多个保持连接服务器作为保持连接服务器。多个保持连接服务器中的至少一个向电子设备发送与多个保持连接服务器有关的信息。电子设备根据信息依次与多个保持连接服务器尝试保持连接直到与多个保持连接服务器中的任一个的保持连接成功为止。
优选的是,多个保持连接服务器中的至少一个根据正在与多个保持连接服务器连接中的多个电子设备的数目、一个保持连接服务器每一秒能够重新连接的电子设备的数目以及正在运行中的保持连接服务器的数目来计算重新连接用间隔。
优选的是,电子设备在给出重新连接用间隔的同时重复用于进行保持连接的处理直到与保持连接服务器间的保持连接成功为止。
优选的是,保持连接服务器通过其它的服务器将包括重新连接用间隔的信息发送到电子设备。
优选的是,电子设备在判断为起因于电子设备而保持连接被切断时,不执行待机而立即开始用于进行保持连接的处理。在判断为不是起因于电子设备而保持连接被切断时,在待机根据重新连接用间隔计算出的时间之后,开始用于进行保持连接的处理。
依照本发明的其它方式,提供一种在包括电子设备以及能够与电子设备保持连接的保持连接服务器的网络系统中的保持连接方法。保持连接方法具备以下步骤:保持连接服务器将包括重新连接用间隔的信息发送到电子设备;电子设备与保持连接服务器间的保持连接被切断;以及电子设备通过利用信息,在待机根据重新连接用间隔计算出的时间之后,重复用于进行保持连接的处理直到与保持连接服务器间的保持连接成功为止。
依照本发明的其它方式,提供一种电子设备,所述电子设备具备:能够与保持连接服务器保持连接的通信接口;以及处理器,用于通过利用与保持连接服务器有关的信息,在待机根据从保持连接服务器中的任一个给予的重新连接用间隔计算出的时间之后,重复用于进行保持连接的处理直到与保持连接服务器间的保持连接成功为止。
优选的是,处理器在判断为起因于电子设备而保持连接被切断时,不执行待机而立即开始用于进行保持连接的处理,在判断为不是起因于电子设备而保持连接被切断时,在待机根据重新连接用间隔计算出的时间之后,开始用于进行保持连接的处理。
依照本发明的其它方式,提供一种保持连接服务器,所述保持连接服务器具备:能够与电子设备保持连接的通信接口;以及处理器,用于通过通信接口,将包括与保持连接服务器有关的重新连接用间隔的信息发送到电子设备。
依照本发明的其它方式,提供一种在包括处理器和通信接口的电子设备中利用的程序。程序使处理器执行以下步骤:通过通信接口,从保持连接服务器接收包括重新连接用间隔的信息;以及通过利用信息,在待机根据重新连接用间隔计算出的时间之后,重复进行用于与保持连接服务器保持连接的处理直到与保持连接服务器间的保持连接成功为止。
依照本发明的其它方式,提供一种在包括处理器和通信接口的服务器中利用的程序。程序使处理器执行以下步骤:通过通信接口受理来自电子设备的请求;以及对应于该请求,通过通信接口将包括与保持连接服务器有关的重新连接用间隔的信息发送到电子设备。
如以上那样,根据所述发明,提供一种即使在保持连接服务器由于维护、未预期到的障碍而停止的情况下也能够在不对再次开始运行的服务器或被冗长构成而继续运行的其它的服务器施加课题的负荷的情况下顺利地恢复为保持连接状态的网络系统、保持连接方法、电子设备、服务器、程序。
另外,依照本发明的其它方式,提供一种网络系统,所述网络系统具备:多个保持连接服务器;客户端,用于通过多个保持连接服务器中的任一个来利用服务;以及能够与客户端进行通信的服务器。服务器对应于来自客户端的请求,将与多个保持连接服务器中的至少一个保持连接服务器有关的列表发送到客户端。客户端根据列表开始与对应于服务的保持连接服务器之间的保持连接。
优选的是,请求包括用于确定服务的服务信息。服务器根据服务信息,作成与对应于服务的至少一个保持连接服务器有关的列表来作为列表。
优选的是,请求包括用于确定客户端的客户端信息。服务器对与客户端信息对应的服务进行确定,作成与对应于服务的至少一个保持连接服务器有关的列表来作为列表。
优选的是,服务器及其它的服务器中的任一个根据多个保持连接服务器的各个服务器正在连接中的客户端的数目,变更对多个保持连接服务器中的各个服务器分配的服务。
优选的是,服务器及其它的服务器中的任一个根据来自多个保持连接服务器中的各个服务器的数据的推送的频度,变更对多个保持连接服务器中的各个服务器分配的服务。
优选的是,服务器及其它的服务器中的任一个根据来自多个保持连接服务器中的各个服务器的数据量,变更对多个保持连接服务器中的各个服务器分配的服务。
优选的是,服务器及其它的服务器中的任一个根据多个保持连接服务器各自的负荷,变更对多个保持连接服务器的中各个服务器分配的服务。
优选的是,多个保持连接服务器包括运行中的保持连接服务器和非运行中的保持连接服务器。服务器及其它的服务器中的任一个根据规定的条件,切换多个保持连接服务器中的各个服务器的运行和非运行。
优选的是,服务器是多个保持连接服务器中的任一个。
依照本发明的其它方式,提供一种保持连接方法,所述方法具备以下步骤:用于利用服务的客户端向服务器发送请求;服务器对应于来自客户端的请求,将与多个保持连接服务器中的至少一个保持连接服务器有关的列表发送到客户端;以及客户端根据列表,开始与对应于服务的保持连接服务器间的保持连接。
依照本发明的其它方式,提供一种服务器,所述服务器具备:用于与客户端通信的通信接口;以及处理器,用于通过通信接口,接收来自客户端的请求,将与对应于用于客户端利用的服务的至少一个保持连接服务器有关的列表发送到客户端。
依照本发明的其它方式,提供一种在包括处理器和通信接口的服务器中利用的程序。程序使处理器执行以下步骤:通过通信接口受理来自客户端的请求;以及通过通信接口,将与对应于用于客户端利用的服务的至少一个保持连接服务器有关的列表发送到客户端。
依照本发明的其它方式,提供一种电子设备,所述电子设备具备:用于与服务器通信的通信接口;以及处理器,用于通过通信接口,从服务器接收与至少一个保持连接服务器有关的列表,根据列表开始与对应于服务的保持连接服务器间的保持连接。
依照本发明的其它方式,提供一种在包括处理器和通信接口的电子设备中利用的程序。程序使处理器执行以下步骤:通过通信接口,从服务器接收与至少一个保持连接服务器有关的列表;以及通过通信接口,根据列表开始与对应于服务的保持连接服务器间的保持连接。
如以上那样,根据所述发明,能够解决在使保持连接服务器冗长化的情况下产生的问题。例如能够使得系统或一部分保持连接服务器的维护或运用比以往更容易行。
在详细的说明中明确记载了进一步的特征及优点。或者,对于本领域技术人员来说,从详细说明的记载内容立刻清楚进一步的特征及优点、或者通过实施包括详细的说明、权利要求书、添附附图的此处所记载的发明而认识到进一步的特征及优点。而且,与所述的背景技术等有关的记载以及与下述的详细说明有关的记载只是例示,应该理解到是提供用于理解权利要求书所记载的本发明的本质和特征的概要或框架的记载。
附图说明
图1是示出本实施方式的网络系统1的整体结构的图形图。
图2是表示本实施方式的客户端100的硬件结构的框图。
图3是表示本实施方式的保持连接服务器200的硬件结构的框图。
图4是表示本实施方式的应用服务器300的硬件结构的框图。
图5是表示本实施方式的负荷分散服务器400的硬件结构的框图。
图6是示出本实施方式的网络系统1整体的功能结构的框图。
图7是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
图8是示出本实施方式的网络系统1B的整体结构和动作概要的第一图形图。
图9是示出本实施方式的网络系统1B的整体结构和动作概要的第二图形图。
图10是示出本实施方式的网络系统1B的整体结构和动作概要的第三图形图。
图11是表示本实施方式的负荷分散服务器600的硬件结构的框图。
图12是示出本实施方式的网络系统1B整体的功能结构的框图。
图13是示出本实施方式的对应关系DB 500的数据构造的图形图。
图14是示出本实施方式的网络系统1的整体结构和动作概要的第一图形图。
图15是示出本实施方式的网络系统1的整体结构和动作概要的第二图形图。
图16是示出本实施方式的网络系统1的整体结构和动作概要的第三图形图。
图17是示出本实施方式的客户端100访问负荷分散服务器600的定时的图形图。
图18是表示本实施方式的客户端100的硬件结构的框图。
图19是表示本实施方式的保持连接服务器200的硬件结构的框图。
图20是表示本实施方式的应用服务器300的硬件结构的框图。
图21是表示本实施方式的保持连接辅助服务器400B的硬件结构的框图。
图22是表示本实施方式的负荷分散服务器600的硬件结构的框图。
图23是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
图24是示出本实施方式的客户端100中的重新连接处理的处理过程的流程图。
图25是示出本实施方式的客户端100中的待机子例程的处理过程的流程图。
图26是示出本实施方式的初次连接处理的处理过程的时序图。
图27是示出本实施方式的重新连接处理的处理过程的时序图。
图28是示出本实施方式的网络系统1的整体结构的图形图。
图29是表示本实施方式的第一辅助服务器600C的硬件结构的框图。
图30是示出本实施方式的服务/节点对应关系DB 510所包括的数据的构造的图形图。
图31是表示本实施方式的第二辅助服务器400C的硬件结构的框图。
图32是示出本实施方式的连接ID/节点对应关系DB 520中包括的数据的构造的图形图。
图33是表示本实施方式的监视服务器800的硬件结构的框图。
图34是示出第十八实施方式的网络系统1整体的功能结构的第一框图。
图35是示出第十八实施方式的网络系统1整体的功能结构的第二框图。
图36是示出第十八实施方式的网络系统1整体的功能结构的第三框图。
图37是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
图38是示出第十八实施方式的网络系统1整体的功能结构的第四框图。
图39是示出第十八实施方式的网络系统1整体的功能结构的第五框图。
图40是示出本实施方式的客户端100中的节点选择处理的流程图。
图41是示出本实施方式的第一辅助服务器600C中的节点选择处理的流程图。
图42是示出本实施方式的监视服务器800中的对应关系变更处理的流程图。
图43是示出第十九实施方式的网络系统1整体的功能结构的框图。
图44是示出第二十实施方式的网络系统1整体的功能结构的框图。
图45是示出第二十一实施方式的网络系统1整体的功能结构的框图。
图46是示出第二十二实施方式的网络系统1整体的功能结构的第一框图。
图47是示出第二十二实施方式的网络系统1整体的功能结构的第二框图。
图48是示出第二十三实施方式的网络系统1整体的功能结构的第一框图。
图49是示出第二十三实施方式的网络系统1整体的功能结构的第二框图。
图50是示出第二十四实施方式的网络系统1整体的功能结构的第一框图。
图51是示出第二十四实施方式的网络系统1整体的功能结构的第二框图。
图52是示出第二十五实施方式的网络系统1整体的功能结构的第一框图。
图53是示出第二十五实施方式的网络系统1整体的功能结构的第二框图。
具体实施方式
以下,一边参照附图一边说明本发明的实施方式。在以下的说明中,对相同的部件附加相同的符号。它们的名称和功能也相同。因而,不重复关于它们的详细说明。
另外,以下,作为保持连接的一个例子,关于利用WebSocket协议的通信进行说明。WebSocket主要是用于进行Web服务器与web浏览器之间的双向通信用的技术标准,协议的规范被规定为RFC(Request For Comment,请求注释)6455。WebSocket是用于保持连接的协议,由此能够在维持连接的状态多次进行双向通信。然而,只要能够从应用服务器在任意的定时向客户端推送数据即可,本发明不是限定于利用WebSocket协议的保持连接的发明。
<第一实施方式>
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图1是示出本实施方式的网络系统1的整体结构的图形图。
参照图1,本实施方式的网络系统1包括:配置在住所或办公室等的多个家用电器100A、100D;通过网络与家用电器100A、100D连接的多个保持连接服务器200A、200B;提供与家用电器100A、100D有关的各种服务的多个应用服务器300A、300B以及用于将与保持连接服务器200A、200B有关的负荷分散的负荷分散服务器400。
此外,以下,虽然关于保持连接服务器200A、200B为两个的情况进行说明,但是保持连接服务器也可以为一个、还可以为三个以上。应用服务器也可以为一个、也可以为三个以上。家用电器也可以为一个、也可以为三个以上。负荷分散装置也可以为两个以上。
在此,作为家用电器,例如可列举吸尘器100A、空调100D、电视、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating:感应加热)烹调加热器等。进一步地,家用电器只要是在住所内或办公室内的通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。另外,保持连接服务器200A、200B、应用服务器300A、300B以及负荷分散服务器400也可以与家用电器同样地包括存在于住所内、办公室内、大厦内、公司或学校的庭院内的服务器等。
另外,家用电器以及各服务器间也可以经由光纤等线路,在中途连接光线路终端装置、用于进行无线LAN通信的接入点、路由器等。虽然家用电器可使用IEEE802.11a/b/g/n/ac等无线LAN通信、或有线LAN等作为连接至网络的方案,但是连接方法不限定于这些连接方法。
而且,在本实施方式中,吸尘器100A和空调100D的每个与保持连接服务器200A、200B中的任一个进行保持连接。由此,吸尘器用的应用服务器300A和空调用的应用服务器300B能够通过保持连接服务器200A、200B在任意的定时向吸尘器100A和空调100D推送发送数据。
即,在本实施方式的网络系统1中,很多的家用电器中的每个不需要与提供适合于自己的服务的所有多个应用服务器直接地进行保持连接。另外,反过来,多个应用服务器中的每个不需要与对应的所有多个家用电器直接地进行保持连接。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。此外,以下,为了避免重复说明,也对吸尘器100A、空调100D等家用电器进行统称,称为客户端100。同样地,也对节点1的保持连接服务器200A和节点2的保持连接服务器200B进行统称,称为保持连接服务器200。同样地,也如吸尘器用的应用服务器300A和空调用的应用服务器300B等那样,对用于向客户端100和用户等提供各种服务的应用服务器进行统称,称为应用服务器300。
参照图1,吸尘器100A利用WebSocket协议,与作为节点1的保持连接服务器200A保持连接。由此,吸尘器100A能够通过保持连接服务器200A向吸尘器用的应用服务器300A发送数据。反过来,吸尘器用的应用服务器300A也能够在任意的定时通过保持连接服务器200A向吸尘器100A推送数据。
同样地,空调100D利用WebSocket协议,与作为节点2的保持连接服务器200B保持连接。即,空调100D能够通过保持连接服务器200B向空调用的应用服务器300B发送数据。反过来,空调用的应用服务器300B也能够在任意的定时通过保持连接服务器200B向吸尘器空调100D推送数据。
在本实施方式中,在保持连接服务器200A、200B与应用服务器300A、300B之间配备负荷分散服务器400。负荷分散服务器400被利用于为了避免仅对多个保持连接服务器200A、200B的一部分施加大的负荷、对多个保持连接服务器200A、200B的其它部分施加小的负荷这样的状况。
例如,负荷分散服务器400在从应用服务器300A、300B中的任一个接收到数据时,检查保持连接服务器200A、200B的负荷。而且,负荷分散服务器400向负荷较少方的保持连接服务器200发送该数据。
在本实施方式中,保持连接服务器200A在从负荷分散服务器400接收到数据时,判断该数据是否为针对正在与保持连接服务器200A保持连接中的家用电器100A的数据。而且,在该数据是针对正在与保持连接服务器200A保持连接中的家用电器100A的数据的情况下,保持连接服务器200A利用WebSocket协议将该数据发送到家用电器100A。
另一方面,在该数据不是针对正在与自身保持连接中的家用电器100A的情况下,保持连接服务器200A确定作为该数据的发送目的地的家用电器100B正在保持连接中的保持连接服务器200B。保持连接服务器200A将该数据传送到正在与被指定为发送目的地的家用电器100B保持连接中的保持连接服务器200B。由于该数据是针对正在与自身保持连接中的家用电器100B的数据,因此保持连接服务器200B利用WebSocket协议将该数据发送到家用电器100B。
像这样,在本实施方式的网络系统1中,尽管是客户端100与保持连接服务器200进行保持连接的系统,但是负荷分散服务器400能够使对多个保持连接服务器200施加的负荷分散。
以下,详细记述用于实现像这样的功能的网络系统1的具体结构。
<客户端100的硬件结构>
首先,说明客户端100的硬件结构的一个方式。图2是表示本实施方式的客户端100的硬件结构的框图。
参照图2,客户端100包括CPU 110、存储器120、输入输出部130、家用电器控制电路150以及通信接口160作为主要的结构要素。
CPU 110通过执行存储在存储器120或外部的存储介质的程序来控制客户端100的各部分。更详细地,CPU 110通过执行存储器120的程序来作为后面记述的客户端APP(Application software:应用软件)和客户端API(Application Programming Interface:应用程序接口)112(参照图7和图12。)进行动作。更详细地,客户端APP控制客户端100的各部分。客户端API 112通过后面记述的通信接口,使用HTTP协议进行通信、或者使用在HTTP协议上利用的WebSocket协议进行通信。
存储器120通过各种RAM(Random Access Memory:随机存取存储器)、各种ROM(Read-Only Memory:只读存储器)、闪速存储器等实现。此外,存储器120还通过借助接口来利用的USB(Universal Serial Bus:通用串行总线)(注册商标)存储器、CD(Compact Disc:光盘)、DVD(Digital Versatile Disk:数字通用光盘)、存储卡、硬盘、IC(IntegratedCircuit:集成电路)卡、光卡、掩膜ROM、EPROM(Erasable Programmable Read OnlyMemory:可擦除可编程只读存储器)、EEPROM(Electronically Erasable ProgrammableRead-Only Memory:电可擦除可编程只读存储器)等存储介质等实现。
存储器120存储由CPU 110执行的程序、由CPU 110进行的程序的执行所生成的数据、通过输入输出部130输入的数据、作为像吸尘器或空调等那样的客户端进行动作的APP数据、用于一边与客户端APP交换数据一边与保持连接服务器200通信的API数据。APP数据包括用于与应用服务器300发送和接收信息的服务连接信息。API数据包括WebSocket客户端API设定信息、认证信息、连接目的地服务设定信息以及连接状态信息。
输入输出部130受理来自用户的命令,将该命令输入到CPU 110。另外,输入输出部130根据来自CPU 110的信号输出字符、图像。
家用电器控制电路150根据来自CPU 110的信号,控制作为家用电器的客户端的各部分(马达等)。
通信接口160通过IEEE 802.11a/b/g/n/ac等无线LAN通信、ZigBee(紫蜂)(注册商标)、BlueTooth(蓝牙)(注册商标)、或者Ethernet(以太网)(注册商标)等有线LAN等通信模块实现。通信接口160通过有线通信或无线通信与其它装置之间交换数据。CPU 110通过通信接口160,从其它装置接收程序、控制命令、图像数据、文本数据等、或向其它装置发送文本数据、图像数据等。
<保持连接服务器200的硬件结构>
接着,说明保持连接服务器200的硬件结构的一个方式。图3是表示本实施方式的保持连接服务器200的硬件结构的框图。
参照图3,保持连接服务器200包括CPU 210、存储器220、输入输出部230以及通信接口260作为主要的结构要素。保持连接服务器200的硬件结构与客户端100的硬件结构相比,关于不具有用于控制家用电器的各部分的家用电器控制电路150这一点、CPU 210的动作、存储器220所保存的数据而不同。以下,设为说明CPU 210的动作以及存储器220所存储的数据,关于其它硬件结构不重复说明。
CPU 210通过执行存储器220或外部的存储介质中存储的程序,来控制保持连接服务器200的各部分。具体地,CPU 210通过执行存储器220存储的程序,来作为后面记述的WS服务器核心212、212A、212B(参照图6、图7、图12)以及WS连接平衡功能211、211A、211B(参照图6、图7、图12)进行动作。WS服务器核心212是指作为软件的保持连接服务器,使用WebSocket协议控制与客户端100间的保持连接通信、或者使用HTTP协议控制与负荷分散服务器400或多个应用服务器300间的通信。
存储器220存储由CPU 210执行的程序、通过由CPU 210进行的程序的执行而生成的数据、通过输入输出部230输入的数据、服务主机信息、暂时认证信息、连接状态管理信息、连接组信息、连接组加入信息等。
<应用服务器300的硬件结构>
接着,说明应用服务器300的硬件结构的一个方式。图4是表示本实施方式的应用服务器300的硬件结构的框图。
参照图4,应用服务器300包括CPU 310、存储器320、输入输出部330以及通信接口360作为主要的结构要素。应用服务器300的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 310的动作、存储器320所保存的数据而不同。因此,以下,设为说明CPU 310的动作以及存储器320所存储的数据,关于其它的硬件结构,不重复说明。
CPU 310通过执行存储器320或外部的存储介质所存储的程序来控制应用服务器300的各部分。具体地,CPU 310通过执行存储器320所存储的程序,作为后面记述的服务器APP 311A、311B(参照图6)以及服务器API 312、312A、312B(参照图6、图7)进行动作。
服务器APP 311A、311B是指作为软件的应用服务器,向客户端100、智能电话500等提供服务。服务器API 312、312A、312B控制与利用HTTP协议的负荷分散服务器400或保持连接服务器200间的通信。
存储器320存储由CPU 310执行的程序、通过由CPU 310进行的程序的执行而生成的数据、通过键盘330输入的数据、作为应用服务器300进行动作的APP数据、用于一边与服务器APP交换数据一边与保持连接服务器200通信的API数据。APP数据包括客户端信息(客户端信息包括与自身应该管理的客户端100有关的信息)、与正在保持连接中的客户端100间的连接有关的客户端连接信息以及用于新开始保持连接的连接概率临时信息。API数据包括WebSocket服务器API设定信息、认证管理信息、服务设定信息以及客户端连接状态信息。
<对应关系DB>
接着,说明在本实施方式的网络系统1中利用的对应关系DB 500。图13是示出本实施方式的对应关系DB 500的数据构造的图形图。
参照图13,对应关系DB 500针对客户端100与应用服务的组合中的每个包括用于确定客户端100的连接ID、用于确定应用服务器300所提供的服务的服务ID(也称为应用定义数据)、用于确定保持连接服务器200的节点名(可以与保持连接服务器200的地址对应,也可以是保持连接服务器200的地址本身。)、保持连接的开始时刻以及与保持连接的利用次数的对应关系。而且,对应关系DB 500能够从本实施方式的网络系统1所包括的多个应用服务器300以及多个保持连接服务器200进行参照。
<负荷分散服务器400的硬件结构>
接着,说明负荷分散服务器400的硬件结构的一个方式。图5是表示本实施方式的负荷分散服务器400的硬件结构的框图。
参照图5,负荷分散服务器400包括CPU 410、存储器420、键盘430、显示器440以及通信接口460作为主要的结构要素。负荷分散服务器400的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 410的动作、存储器420所保存的数据而不同。因此,以下,设为说明CPU 410的动作以及存储器420所存储的数据,关于其它硬件结构不重复说明。
CPU 410通过执行存储器420或外部的存储介质存储的程序,来控制负荷分散服务器400的各部分。具体地,CPU 410通过执行存储器420所存储的程序,来实现后面记述的负载平衡器功能411(参照图6和图7)。
存储器420存储由CPU 410执行的程序、通过CPU 410进行的程序的执行而生成的数据、通过键盘430输入的数据以及用于作为负荷分散服务器400进行动作的保持连接服务器列表和保持连接服务器负荷状态。保持连接服务器列表保存当前能够与负荷分散服务器400通信的每个保持连接服务器200的地址。保持连接服务器负荷状态保存施加于当前能够与负荷分散服务器400通信的每个保持连接服务器200的负荷。
<网络系统1的功能结构>
接着,说明本实施方式的网络系统1整体的功能结构。图6是示出本实施方式的网络系统1整体的功能结构的框图。此外,以下,为了容易理解说明,作为家用电器,设为客户端100A~100F被保持连接。
参照图6,客户端100A~100C使用WebSocket协议与作为节点1的保持连接服务器200A保持连接。客户端100D~100F使用WebSocket协议与作为节点2的保持连接服务器200B保持连接。此外,客户端100A~100F也能够使用HTTP协议与保持连接服务器200A、200B以及应用服务器300A、300B进行通信。
关于应用服务器300A、300B的各个,服务器APP 311A、311B是通过CPU 310实现的服务器,委托服务器API 312A、312B进行与其它装置之间的数据交换。在本实施方式中,网络系统1包括用于控制吸尘器100A的服务器APP 311A以及用于控制空调100D的服务器APP311B。
服务器API 312A、312B是通过CPU 310实现的服务器,通过利用通信接口360,与负荷分散服务器400、对应关系DB 500、其它数据库900、智能电话700等进行数据的发送和接收。在本实施方式中,应用服务器300A、300B能够通过保持连接服务器200A、200B,在任意的定时向客户端100A~100F发送数据。
关于负荷分散服务器400,负载平衡器功能411是通过CPU 410实现的功能,从多个保持连接服务器200A、200B选择施加有更小的负荷的保持连接服务器200A、200B。而且,负载平衡器功能411将来自应用服务器300A、300B的数据发送到所选择的保持连接服务器200A、200B。
关于保持连接服务器200A、200B,WS服务器核心212A、212B是通过CPU 210实现的服务器核心,利用WebSocket协议,通过通信接口260与客户端100A~100F进行保持连接。WS服务器核心212A、212B也利用HTTP协议,通过通信接口260与其它保持连接服务器200、负荷分散服务器400、应用服务器300等进行数据通信。
WS连接平衡功能211A、211B通过CPU 210实现。以下,关于保持连接服务器200A的WS连接平衡功能211A的功能进行说明。WS连接平衡功能211A在从负荷分散服务器400接收到数据时,根据该数据所包括的连接ID和服务ID,判断是否是针对正在与保持连接服务器200A保持连接中的客户端100A~100C的数据。此外,连接ID是针对客户端100A~100F与服务器APP 311A、311B的组合的每一个且针对每个服务设定的连接ID。
在该数据是针对正在与保持连接服务器200A保持连接中的客户端100A~100C中的任一个的数据的情况下,WS连接平衡功能211A以将该数据发送到客户端100的方式对WS服务器核心212A进行委托。WS服务器核心212A利用WebSocket协议,通过通信接口260将该数据发送到客户端100。
另一方面,在该数据是针对正在与保持连接服务器200A保持连接中的客户端100A~100C的数据的情况下,WS连接平衡功能211A确定正在与作为该数据的发送目的地的客户端100保持连接中的保持连接服务器200B。具体地,WS连接平衡功能211A通过WS服务器核心212A和通信接口260访问外部的对应关系DB 500。在此,对应关系DB 500保存有很多的客户端与多个保持连接服务器之间的连接状态。WS连接平衡功能211A取得确定与连接ID对应的客户端100D~100F正在保持连接中的保持连接服务器200B的信息。WS连接平衡功能211A通过通信接口260,向保持连接服务器200B传送数据和连接ID。
保持连接服务器200B的WS服务器核心212B根据连接ID将从保持连接服务器200A传送来的数据推送给正在与保持连接服务器200B保持连接中的客户端100D~100F中的任一个。
<与保持连接有关的装置间的数据交换>
接着,说明本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的概要。此外,图7是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
参照图7,通过客户端100实现的客户端API 112使用HTTP协议,通过通信接口160向应用服务器300请求认证信息(步骤S002)。此时,客户端API 112向应用服务器300发送被利用于认证的客户端ID。应用服务器300的服务器API 312对应于该请求,使用HTTP协议,通过通信接口360向客户端100发送认证信息(步骤S004)。
服务器API 312通过通信接口360,还向保持连接服务器200发送认证信息(步骤S006)。保持连接服务器200的WS服务器核心212保存从应用服务器300接收到的认证信息(步骤S008)。
客户端100和保持连接服务器200使用HTTP协议,确立利用WebSocket的保持连接状态(步骤S010、步骤S012)。具体地,客户端API 112使用HTTP协议,通过通信接口160向保持连接服务器200给送信息交换请求。WS服务器核心212通过通信接口260返回信息交换响应。由此,在客户端100与保持连接服务器200之间,利用WebSocket协议的保持连接变为有效。
客户端API 112通过通信接口160,将认证信息发送到保持连接服务器200(步骤S014)。WS服务器核心212或WS连接平衡功能211根据来自客户端100的认证信息和预先保存的认证信息,对客户端100进行认证(步骤S016)。当认证成功时,WS服务器核心212或WS连接平衡功能211发布用于应用服务器300识别客户端100的连接ID(步骤S018)。
即,WS服务器核心212或WS连接平衡功能211将正在保持连接中的客户端100与连接ID间的对应关系作为连接状态管理信息进行存储。客户端100接收并存储连接ID(步骤S020)。应用服务器300也接收并存储连接ID(步骤S022)。此时,WS服务器核心212或WS连接平衡功能211将连接ID、确定保持连接服务器200A的信息以及确定应用服务的信息进行对应,通过通信接口260将该对应关系登记到对应关系DB 500。
之后,服务器API 312对应于来自服务器APP 311的请求,将数据主体和用于确定给送目的地的客户端100的连接ID通过通信接口360发送到保持连接服务器200(步骤S032)。
在本实施方式中,作为步骤S033,负荷分散服务器400接收来自应用服务器300的数据。负荷分散服务器400的负载平衡器功能411取得保持连接服务器200各自的负荷,根据该负荷选择要发送数据的保持连接服务器200。负载平衡器功能411通过通信接口460向所选择的保持连接服务器200发送数据。
例如,负载平衡器功能411优先向多个保持连接服务器200中的当前被施加的负荷小的保持连接服务器200发送数据。或者,负载平衡器功能411也可以优先向正在保持连接中的客户端100的数目少的保持连接服务器200发送数据。或者,负载平衡器功能411也可以随机地发送数据。
保持连接服务器200从负荷分散服务器400接收数据主体和连接ID(步骤S034)。WS连接平衡功能211参照连接状态管理信息,根据连接ID确定客户端100(步骤S036)。
在与连接ID对应的客户端100正在与保持连接服务器200保持连接中的情况下,WS连接平衡功能211委托WS服务器核心212进行向客户端的数据发送。即,WS服务器核心212使用WebSocket协议,通过通信接口260向所确定的客户端100发送数据主体(步骤S038-1)。客户端100接收数据主体(步骤S040)。
客户端100使用WebSocket协议,将接收结果发送到保持连接服务器200(步骤S042)。保持连接服务器200当接收到接收结果时,将该接收结果发送到应用服务器300(步骤S044)。应用服务器300接收接收结果(步骤S046)。
另一方面,在与连接ID对应的客户端100未与保持连接服务器200保持连接中的情况下,WS连接平衡功能211委托WS服务器核心212向其它的保持连接服务器200传送数据。即,WS连接平衡功能211通过通信接口260,参照对应关系DB 500来确定正在与连接ID所对应的客户端100保持连接中的其它的保持连接服务器200。
WS连接平衡功能211委托WS服务器核心212进行向其它的保持连接服务器200的数据发送。WS服务器核心212利用HTTP协议,通过通信接口260向所确定的保持连接服务器200传送数据(步骤S038-2)。其它的保持连接服务器200的WS服务器核心212利用WebSocket协议,通过通信接口260向与连接ID对应的客户端100发送数据(步骤S039)。
像这样,在本实施方式的网络系统1中,即使客户端100与保持连接服务器200正处于保持连接当中,负荷分散服务器400也能够在多个保持连接服务器200之间使负荷分散。
<第二实施方式>
<网络系统的整体结构>
接着,说明第二实施方式。本实施方式的网络系统1B是在第一实施方式的网络系统1追加了后面记述的负荷分散服务器600的网络系统。
首先,说明本实施方式的网络系统1B的整体结构。图8是示出本实施方式的网络系统1B的整体结构和动作概要的第一图形图。图9是示出本实施方式的网络系统1B的整体结构和动作概要的第二图形图。图10是示出本实施方式的网络系统1B的整体结构和动作概要的第三图形图。
参照图8,网络系统1B包括:配置在住所或办公室等的多个家用电器100A、100D;通过网络与家用电器100A、100D连接的多个保持连接服务器200A、200B;提供与家用电器100A、100D有关的各种服务的多个应用服务器300A、300B;用于使对保持连接服务器200A、200B施加的负荷分散的负荷分散服务器400;以及用于客户端100与保持连接服务器200A、200B重新连接的负荷分散服务器600。
此外,以下,虽然说明保持连接服务器200A、200B为两个的情况,但是保持连接服务器可以为一个,也可以为三个以上。应用服务器也可以为一个,还可以为三个以上。家用电器也可以为一个,还可以为三个以上。负荷分散装置和保持连接辅助服务器也可以为两个以上。
家用电器、保持连接服务器、应用服务器、负荷分散服务器的定义与第一实施方式的这些相同,因此在此不重复说明。
而且,在本实施方式中,吸尘器100A和空调100D的每个与保持连接服务器200A、200B中的任一个保持连接。由此,吸尘器用的应用服务器300A和空调用的应用服务器300B能够通过保持连接服务器200A、200B在任意的定时向吸尘器100A和空调100D推送数据。
即,本实施方式的网络系统1B也不需要很多的家用电器的每个与提供适合于自己的服务的所有多个应用服务器直接地进行保持连接。另外,反过来,多个应用服务器的中的每个不需要与对应的所有的很多家用电器直接地进行保持连接。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1B的动作概要。此外,以下,为了避免重复说明,也对吸尘器100A、空调100D等家用电器进行统称,称为客户端100。同样地,也对节点1的保持连接服务器200A和节点2的保持连接服务器200B进行统称,称为保持连接服务器200。同样地,也对如吸尘器用的应用服务器300A和空调用的应用服务器300B等那样的用于将各种服务提供给客户端100和用户等的应用服务器进行统称,称为应用服务器300。
首先,参照图8,为了吸尘器100A与保持连接服务器200A、200B中的任一个开始保持连接,首先,利用HTTP协议,通过负荷分散服务器600向保持连接服务器200请求保存有多个正在运行中的保持连接服务器200的地址的节点列表。
保持连接服务器200对应于来自负荷分散服务器600的节点列表请求,向对应关系DB 500请求节点列表。或者,保持连接服务器在受理到节点列表请求时,向多个保持连接服务器200A、200B发送连接确认用数据(ping),根据其响应作成节点列表。吸尘器100A根据通过负荷分散服务器600从保持连接服务器200接收到的该节点列表,利用WebSocket协议,与作为节点1的保持连接服务器200A开始保持连接。
使得像这样,吸尘器100A成为能够通过保持连接服务器200A向吸尘器用的应用服务器300A发送数据。反过来,吸尘器用的应用服务器300A也成为能够通过保持连接服务器200A向吸尘器100A推送数据。
同样地,空调100D利用WebSocket协议,与作为节点2的保持连接服务器200B进行保持连接。即,空调100D成为能够通过保持连接服务器200B向空调用的应用服务器300B发送数据。反过来,空调用的应用服务器300B也成为能够通过保持连接服务器200B向吸尘器空调100D推送数据。
与第一实施方式同样地,在本实施方式中也在保持连接服务器200A、200B与应用服务器300A、300B之间配备负荷分散服务器400。为了避免仅对多个保持连接服务器200A、200B的一部分施加大的负荷、对多个保持连接服务器200A、200B的其它部分施加小的负荷这样的状况而利用负荷分散服务器400。
例如,负荷分散服务器400在从应用服务器300A、300B中的任一个接收到数据时,检查保持连接服务器200A、200B的负荷。而且,负荷分散服务器400优先向负荷较少方的保持连接服务器200发送数据。
或者,负荷分散服务器400也可以优先向正在保持连接中的客户端100的数目少的保持连接服务器200发送数据。或者,负荷分散服务器400也可以随机地发送数据。或者,也可以事先存储负荷分散服务器400与时间带的保持连接服务器200的优先级,按每个时间带优先向优先级高的保持连接服务器200发送数据。
与第一实施方式同样地,在本实施方式中,也在保持连接服务器200A从负荷分散服务器400接收到数据时,判断该数据是否为针对正在与保持连接服务器200A保持连接中的家用电器的数据。而且,在该数据是针对正在与保持连接服务器200A保持连接中的家用电器(例如吸尘器100A)的数据的情况下,保持连接服务器200A利用WebSocket协议将该数据发送到吸尘器100A。
另一方面,在该数据不是针对正在与保持连接服务器200A保持连接中的家用电器的数据的情况下,保持连接服务器200A对作为该数据的发送目的地的家用电器(例如空调100D)正在进行保持连接中的保持连接服务器200B进行确定。保持连接服务器200A将该数据传送到被指定为发送目的地的空调100B正在进行保持连接中的保持连接服务器200B。因为该数据是针对正在与自己保持连接中的空调100B的数据,所以保持连接服务器200B利用WebSocket协议将该数据发送到空调100B。
但是,负荷分散服务器400也可以是通过参照对应关系DB 500来确定正在与作为数据的发送目的地的家用电器保持连接中的保持连接服务器200的负荷分散服务器。在这种情况下,因为负荷分散服务器400能够向正在与作为数据的发送目的地的家用电器(例如空调100D)保持连接中的保持连接服务器200B发送数据,所以不需要在保持连接服务器200A搭载第一实施方式那样的WS连接平衡功能211。
参照图9,存在正在与吸尘器100A保持连接中的保持连接服务器200A不正常地运行的情况。即,存在吸尘器100A不能与保持连接服务器200A进行保持连接通信的情况。
在像这样的情况下,参照图10,吸尘器100A为了开始与其它的保持连接服务器200B保持连接,首先利用HTTP协议,通过负荷分散服务器600向保持连接服务器200中的任一个请求保存有多个正在运行中的保持连接服务器200的地址的节点列表。吸尘器100A根据该节点列表,利用WebSocket协议开始与作为正在运行中的节点2的保持连接服务器200B保持连接。
由此,吸尘器100A能够通过保持连接服务器200B,再次向吸尘器用的应用服务器300A发送数据。反过来,吸尘器用的应用服务器300A也能够通过保持连接服务器200B,再次向吸尘器100A推送数据。
像这样,在本实施方式的网络系统1B中,即使在客户端不能与一个保持连接服务器进行通信的情况下,应用服务器也能够通过其它的保持连接服务器向客户端推送信息。此外,在本实施方式的网络系统1B中,也与第一实施方式同样地,尽管是客户端100与保持连接服务器200进行保持连接的系统,负荷分散服务器400也能够使对多个保持连接服务器200施加的负荷分散。
以下,详细记述用于实现这样的功能的网络系统1B的具体结构。
<客户端100的硬件结构>
客户端100的硬件结构与第一实施方式的硬件结构相同,因此在此不重复说明。
<保持连接服务器200的硬件结构>
保持连接服务器200的硬件结构也与第一实施方式的硬件结构相同,因此在此不重复说明。
<应用服务器300的硬件结构>
应用服务器300的硬件结构也与第一实施方式的硬件结构相同,因此在此不重复说明。
<对应关系DB>
对应关系DB的结构也与第一实施方式的结构相同,因此在此不重复说明。
<负荷分散服务器400的硬件结构>
负荷分散服务器400的硬件结构也与第一实施方式的硬件结构相同,因此在此不重复说明。
<负荷分散服务器600的硬件结构>
说明负荷分散服务器600的硬件结构的一个方式。图11是表示本实施方式的负荷分散服务器600的硬件结构的框图。
参照图11,负荷分散服务器600包括CPU 610、存储器620、输入输出部630以及通信接口660作为主要的结构要素。负荷分散服务器600的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 610的动作、保存在存储器620中的数据而不同。因此,以下,设为说明CPU 610的动作以及存储器620所存储的数据,关于其它硬件结构,不重复说明。
CPU 610通过执行存储器620或外部的存储介质存储的程序,来控制负荷分散服务器600的各部分。具体地,CPU 610通过执行存储器620所存储的程序,利用HTTP协议将从客户端100以及其它的装置接收到的数据分配给多个保持连接服务器200、多个应用服务器300。
存储器620存储由CPU 610执行的程序、通过由CPU 610进行的程序的执行而生成的数据、通过输入输出部630输入的数据、保存从对应关系DB 500取得的正在运行中的保持连接服务器200的信息的节点列表。
<网络系统1B的功能结构>
接着,说明本实施方式的网络系统1B整体的功能结构。图12是示出本实施方式的网络系统1B整体的功能结构的框图。此外,本实施方式的客户端100、保持连接服务器200、应用服务器300、负荷分散服务器400具有与第一实施方式的这些所具有的功能相同的功能。因此,以下,与第一实施方式相比仅说明在本实施方式中追加的功能。
参照图12,客户端API 112在与保持连接服务器200A、200B中的任一个开始保持连接时,通过利用通信接口160,通过负荷分散服务器600向保持连接服务器200A、200B中的任一个请求节点列表。
保持连接服务器200A、200B的WS服务器核心212A、212B预先或者在接受节点列表请求时从对应关系DB 500取得多个保持连接服务器200的地址的列表(节点列表)。WS服务器核心212A、212B在接受节点列表请求时,将该节点列表发送到客户端100。
或者,WS服务器核心212A、212B在接受节点列表请求时,将预先存储在存储器220的多个保持连接服务器200的地址的列表作为节点列表发送到客户端100。
或者,WS服务器核心212A、212B预先或者在接受节点列表请求时,向多个保持连接服务器200A、200B发送连接确认用数据(ping),根据其响应作成仅包括正在运行中的保持连接服务器200的地址的节点列表。WS服务器核心212A、212B在接受节点列表请求时,将该节点列表发送到客户端100。
或者,WS服务器核心212A、212B预先或者在接受节点列表请求时,向多个保持连接服务器200发送连接确认用数据(ping),作为其响应取得多个保持连接服务器200的负荷和/或正在连接中的客户端100的数目。作为节点列表,WS服务器核心212A、212B作成仅与正在运行中的保持连接服务器200有关的、保存负荷和/或正在连接中的客户端100的数目的列表。或者,作为节点列表,WS服务器核心212A、212B作成与预先登记的保持连接服务器200有关的、保存负荷和/或正在连接中的客户端100的数目的列表。WS服务器核心212A、212B在接受节点列表请求时,将该节点列表发送到客户端100。
或者,WS服务器核心212A、212B预先或者在接受节点列表请求时,根据保持连接服务器200的负荷,作成按负荷小的顺序对保持连接服务器200排序得到的列表作为节点列表。WS服务器核心212A、212B在接受节点列表请求时,将该节点列表发送到客户端100。
或者,WS服务器核心212A、212B预先或者在接受节点列表请求时,根据正在与保持连接服务器200连接中的客户端100的数目,作成按正在连接中的客户端少的顺序对保持连接服务器200排序得到的列表作为节点列表。WS服务器核心212A、212B在接受节点列表请求时,将该节点列表发送到客户端100。
WS服务器核心212A、212B在将节点列表发送到客户端100时,也可以以其它的保持连接服务器200能够参照的方式将节点列表保存(更新)到对应关系DB 500。
客户端API 112与保存在节点列表中的正在运行中的保持连接服务器200进行连接。
而且,在存在多个能够重新连接的保持连接服务器时,例如客户端API 112选择以保持连接服务器200排序的节点列表中的第一个保持连接服务器200。或者,客户端API 112选择负荷最小的保持连接服务器200。或者,客户端API 112选择正在连接中的客户端100的数目最少的保持连接服务器200。或者,客户端API 112随机地选择保持连接服务器200。客户端API 112与所选择的保持连接服务器200开始保持连接。
<与保持连接有关的装置间的数据交换>
接着,说明本实施方式的网络系统1B中的与保持连接有关的装置间的数据交换的概要。本实施方式的与保持连接有关的装置间的数据交换与第一实施方式的该数据交换相比,只有客户端100与保持连接服务器200开始重新连接时的动作不同。其它的动作与第一实施方式的那些相同,因此在此不重复说明。
首先,客户端100的客户端API 112在开始保持连接时,通过负荷分散服务器600向保持连接服务器200中的任一个请求节点列表。客户端API 112参照节点列表选择进行保持连接的保持连接服务器200。
参照图7,客户端API 112使用HTTP协议,通过通信接口160向应用服务器300请求认证信息(步骤S002)。此时,客户端API 112向应用服务器300发送被利用于认证的客户端ID和用于确定被选择的保持连接服务器200的信息。应用服务器300的服务器API 312对应于该请求,使用HTTP协议,通过通信接口360发送认证信息(步骤S004)。
服务器API 312通过通信接口360,还向被选择的保持连接服务器200发送认证信息(步骤S006)。保持连接服务器200的WS服务器核心212保存从应用服务器300接收到的认证信息(步骤S008)。其以后的动作(步骤S010~步骤S046)与第一实施方式的那些步骤相同,因此在此不重复说明。
在本实施方式中,客户端API 112在不能进行与保持连接服务器200之间的保持连接通信时,再次通过负荷分散服务器600向保持连接服务器200请求最新的节点列表。客户端API 112参照最新的节点列表,选择进行保持连接的保持连接服务器200。而且,客户端API 112重复从步骤S002起的处理。
像这样,在本实施方式的网络系统1B中,即使在客户端不能与保持连接服务器进行通信的情况下,也能够使应用服务器能够向客户端推送信息。而且,尽管是客户端100与保持连接服务器200进行保持连接的系统,也能够由负荷分散服务器400在多个保持连接服务器200之间分散负荷。
<第三实施方式>
在所述的第二实施方式中,网络系统1B是包括两个负荷分散服务器400、600以及WS连接平衡功能211的系统。
然而,作为第三实施方式,网络系统也可以是仅包括负荷分散服务器600而不具有负荷分散服务器400和WS连接平衡功能211(第一实施方式中包括的部分)的结构。即,在客户端100不能与保持连接服务器200A进行通信的情况下,也可以只是客户端100能够与其它的保持连接服务器200B进行保持连接的结构。
<第四实施方式>
在所述的第一和第二实施方式中,负荷分散服务器400是在从应用服务器300A、300B中的任一个接收到数据时,检查保持连接服务器200A、200B的负荷和/或正在连接中的客户端100的数目的服务器。
然而,作为第四实施方式,负荷分散服务器400也可以定期地检查保持连接服务器200A、200B的负荷。或者,负荷分散服务器400也可以以准备多个使得为同样的结构的系统来依次分配处理请求的、所谓的轮叫方式来向保持连接服务器200A、200B分配数据。
<第五实施方式>
在所述的第一和第二实施方式中,是将连接ID、确定保持连接服务器200的信息以及确定应用服务的信息之间的对应关系保存到保持连接服务器200的外部的对应关系DB500的实施方式。而且,在保持连接服务器200向其它的保持连接服务器200传送数据时,参照对应关系DB 500选择其它的保持连接服务器200。
然而,作为第五实施方式,保持连接服务器200也可以将连接ID、确定保持连接服务器200的信息以及确定应用服务的信息之间的对应关系保存到自身的存储器220。而且,保持连接服务器200彼此也可以交换该对应关系。
<第六实施方式>
在所述的第二实施方式中,是保持连接服务器200中的任一个将保存有多个正在运行中的保持连接服务器200的地址的节点列表发送到客户端100的实施例。而且,客户端100是根据节点列表,选择开始保持连接的保持连接服务器200的客户端。
然而,作为第六实施方式,保持连接服务器200中的任一个也可以根据保存有多个保持连接服务器200的地址的节点列表,选择要与客户端100保持连接(例如当前的负荷小)的保持连接服务器200。在这种情况下,保持连接服务器200中的任一个将确定所选择的保持连接服务器200的信息发送到客户端100。而且,客户端100与被保持连接服务器200中的任一个所指定的保持连接服务器200开始保持连接。
<第七实施方式>
在所述第二实施方式中,保持连接服务器200预先或者在存在节点列表的请求时,向多个保持连接服务器200发送连接确认用数据(ping),根据其响应更新节点列表。
然而,对应关系DB 500的计算机也可以预先或者在存在节点列表的请求时向多个保持连接服务器200发送连接确认用数据(ping),根据其响应更新节点列表。在这种情况下,也可以由保持连接服务器200进行节点列表的排序,也可以由对应关系DB 500的计算机进行节点列表的排序。
<第八实施方式>
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图14是示出本实施方式的网络系统1的整体结构和动作概要的第一图形图。图15是示出本实施方式的网络系统1的整体结构和动作概要的第二图形图。图16是示出本实施方式的网络系统1的整体结构和动作概要的第三图形图。
参照图14,网络系统1例如假定为远隔地操作家用电器的系统,包括:配置在住所或办公室等的多个家用电器100A、100D;通过网络与家用电器100A、100D连接的多个保持连接服务器200A、200B;提供与家用电器100A、100D有关的各种服务的多个应用服务器300A、300B;将来自应用服务器300A、300B的数据发送到合适的保持连接服务器200A、200B的保持连接辅助服务器400B;以及用于使对保持连接服务器200A、200B施加的负荷分散的负荷分散服务器600。
此外,以下,虽然说明保持连接服务器200A、200B为两个的情况,但是保持连接服务器也可以为一个,也可以为三个以上。应用服务器也可以为一个,还可以为三个以上。家用电器也可以为一个,还可以为三个以上。负荷分散装置和保持连接辅助服务器也可以为两个以上。
在此,作为家用电器,例如可列举吸尘器100A、空调100D、电视、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating,感应加热)烹调加热器等。进一步地,家用电器只要是住所内或办公室内的通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。另外,保持连接服务器200A、200B、应用服务器300A、300B、保持连接辅助服务器400B以及负荷分散服务器600也可以与家用电器同样地包括存在于住所内、办公室内、大厦内、公司或学校的院内的服务器、或者存在于这些物理服务器内的虚拟服务器等。
另外,家用电器与各服务器之间也可以经由光纤等线路,在中途连接光线路终端装置、用于进行无线LAN通信的接入点、路由器等。虽然家用电器可使用IEEE802.11a/b/g/n/ac等无线LAN通信、或者有线LAN等作为连接至网络的方案,但是连接方法不限定于这些连接方法。
而且,在本实施方式中,吸尘器100A和空调100D的每个与保持连接服务器200A、200B中的任一个进行保持连接。由此,吸尘器用的应用服务器300A和空调用的应用服务器300B能够通过保持连接服务器200A、200B,在任意的定时向吸尘器100A和空调100D推送发送数据。
即,在本实施方式的网络系统1中,很多的家用电器中的每个不需要与提供适合于自己的服务的所有多个应用服务器直接地进行保持连接。另外,反过来,多个应用服务器中的每个不需要与对应的所有多个家用电器直接地进行保持连接。
<网络系统的动作概要>
接着,说明本实施方式的网络系统1的动作概要。此外,以下,为了避免重复说明,也对吸尘器100A、空调100D等家用电器进行统称,称为客户端100。同样地,也对节点1的保持连接服务器200A和节点2的保持连接服务器200B进行统称,称为保持连接服务器200。同样地,也如吸尘器用的应用服务器300A和空调用的应用服务器300B等那样,对用于向客户端100和用户等提供各种服务的应用服务器进行统称,称为应用服务器300。
首先,参照图14,吸尘器100A为了与保持连接服务器200A、200B中的任一个开始保持连接,首先利用HTTP协议,通过负荷分散服务器600向正在运行中的保持连接服务器200中的任一个请求保存有多个保持连接服务器200的地址的节点列表。后面记述节点列表的例子。
吸尘器100A根据该节点列表,利用WebSocket协议,与作为节点1的保持连接服务器200A开始保持连接。
此外,在本实施方式中,负荷分散服务器600在从吸尘器100A受理节点列表的请求时,向保持连接服务器200A请求节点列表。而且,在不存在来自保持连接服务器200A的响应的情况下,负荷分散服务器600向其它的保持连接服务器200B请求节点列表。
更详细地,在本实施方式中,从客户端100接受节点列表请求的保持连接服务器200A、200B从对应关系DB 500取得节点列表。进一步地,对应关系DB 500在受理来自负荷分散服务器600的请求时,向多个保持连接服务器200A、200B中的任一个传送请求。
例如当保持连接服务器200A从客户端100接受请求时,保持连接服务器200A向另一方、即保持连接服务器200B发送连接确认用数据(例如ICMP的ping)。保持连接服务器200A在存在来自保持连接服务器200B的响应的情况下,视为保持连接服务器200B正在运行,从而向对应关系DB 500请求节点列表的更新以使得追加保持连接服务器200B。在不存在来自保持连接服务器200B的响应的情况下,保持连接服务器200A视为保持连接服务器200B未运行,从而向对应关系DB 500请求节点列表的更新以使得删除保持连接服务器200B。而且,保持连接服务器200A从对应关系DB 500取得更新后的节点列表整体,并向客户端100发送节点列表。
使得像这样,吸尘器用的应用服务器300A能够通过保持连接服务器200A,向吸尘器100A推送数据。
同样地,空调100D利用WebSocket协议,与保持连接服务器200A或200B进行保持连接。即,空调用的应用服务器300B也能够通过保持连接服务器200A或200B向空调100D推送数据。
在本实施方式中,在保持连接服务器200A、200B与应用服务器300A、300B之间配备保持连接辅助服务器400B。在从应用服务器300A、300B接收到发给客户端100的数据时,为了确定该客户端100正在与多个保持连接服务器200A、200B中的哪一个进行连接而利用保持连接辅助服务器400B。
例如,保持连接辅助服务器400B在从应用服务器300A、300B中的任一个接收到发给吸尘器100A的数据时,检查吸尘器100A正在与保持连接服务器200A、200B中的哪一个连接。而且,保持连接辅助服务器400B向吸尘器100A正在连接的一方的保持连接服务器200A发送该数据。
换言之,在本实施方式中,在保持连接辅助服务器400B从应用服务器300A、300B中的任何一个接收到数据时,判断该数据是否为针对正在与保持连接服务器200A保持连接中的家用电器的数据。而且,在该数据是针对正在与保持连接服务器200A保持连接中的家用电器(例如吸尘器100A)的数据的情况下,保持连接辅助服务器400B向保持连接服务器200A发送数据。保持连接服务器200A利用WebSocket协议将该数据发送到吸尘器100A。
另一方面,在该数据不是针对正在与保持连接服务器200A保持连接中的家用电器的数据的情况下,保持连接辅助服务器400B确定作为该数据的发送目的地的家用电器(例如空调100D)正在保持连接中的保持连接服务器200B。保持连接辅助服务器400B将该数据传送到被指定为发送目的地的空调100B正在保持连接中的保持连接服务器200B。保持连接服务器200B利用WebSocket协议将该数据发送到空调100B。
参照图15,存在正在与吸尘器100A保持连接中的保持连接服务器200A不能正常地运行的情况。即,存在保持连接服务器200A由于维护而暂时停止、或者由于非预期的异常而停止运行的情况等,吸尘器100A不能与保持连接服务器200A进行保持连接通信的情况。
在这样的情况下,参照图16,吸尘器100A为了与其它的保持连接服务器200开始保持连接,首先利用HTTP协议,通过负荷分散服务器600向保持连接服务器200中的任一个请求保存有正在运行的保持连接服务器200的地址的节点列表。例如,吸尘器100A根据该节点列表,利用WebSocket协议执行用于开始与作为正在运行中的节点2的保持连接服务器200B保持连接的处理。
然而,不只是吸尘器100A,还有与不能进行保持连接的保持连接服务器200A保持连接的很多的客户端100一起访问负荷分散服务器600、其它的保持连接服务器200B的可能性。为了回避这样的情形,在本实施方式的网络系统1中,构成为减低与不能进行保持连接的保持连接服务器200A保持连接的很多的客户端100在相同的定时访问负荷分散服务器600、其它的保持连接服务器200的可能性。
具体地,在本实施方式中,与不能进行保持连接的保持连接服务器200A保持连接的很多的客户端100在互不相同的定时通过负荷分散服务器600向保持连接服务器200A、200B中的任一个请求节点列表,在互不相同的定时执行用于与保持连接服务器200进行保持连接的处理。图17是示出客户端访问负荷分散服务器600的定时的图形图。
参照图17,在本实施方式中,保持连接服务器200在节点列表传送时对客户端100给出重新连接间隔T(秒)。而且,客户端100在1(秒)~重新连接间隔T(秒)的期间随机地决定等待时间。但是,也可以如后面记述的第十实施方式那样由保持连接服务器200决定等待时间。而且,也可以由保持连接服务器200向客户端100发送等待时间。
客户端100在待机根据从保持连接服务器200给出的重新连接间隔的等待时间的量之后,通过负荷分散服务器600向保持连接服务器200请求节点列表。而且,在不能正常地取得节点列表的情况下,客户端100在待机从保持连接服务器200给出的重新连接间隔的量之后,再次通过负荷分散服务器600向保持连接服务器200请求节点列表。客户端100重复待机重新连接间隔以及列表的请求,直到能够正常地取得节点列表为止。
客户端100从取得的节点列表选择保持连接服务器200A。客户端100执行与所选择的保持连接服务器200A之间的保持连接的开始处理。在不能连接到保持连接服务器200A的情况下,客户端100在待机从保持连接服务器200中的任一个给出的重新连接间隔的量之后,执行与节点列表所记述的其它的保持连接服务器200B间的保持连接的开始处理。客户端100重复待机重新连接间隔以及保持连接开始处理,直到正常地向保持连接服务器200中的任一个的连接成功为止。
像这样,在本实施方式的网络系统1中,与保持连接服务器200之间的保持连接被切断的很多的客户端100在待机等待时间的量后开始重新连接处理。即,能够防止很多的客户端100一起访问负荷分散服务器600、保持连接服务器200。其结果,客户端100与保持连接服务器200之间的重新连接处理顺利地进行,快速地进行恢复到保持连接状态。
以下,详细记述用于实现这样的功能的网络系统1的具体结构。
<客户端100的硬件结构>
首先,说明客户端100的硬件结构的一个方式。图18是表示本实施方式的客户端100的硬件结构的框图。
参照图18,客户端100包括CPU 110、存储器120、按钮130、显示器140、家用电器控制电路150以及通信接口160作为主要的结构要素。
CPU 110通过执行存储在存储器120或未图示的外部的存储介质中的程序来控制客户端100的各部分。更详细地,CPU 110通过执行存储器120的程序来作为后面记述的客户端APP 111(参照图26和图27)以及客户端API 112(参照图12、图23、图26、图27)进行动作。更详细地,客户端APP 111是对客户端100的各部分进行控制的客户端,是所谓的终端用的应用程序。客户端API 112通过后面记述的通信接口,使用HTTP协议进行通信、或者使用在HTTP协议上利用的WebSocket协议进行通信。
存储器120的实现例与第一实施方式的相同,因此在此不重复说明。
存储器120存储由CPU 110执行的程序、由CPU 110进行的程序的执行所生成的数据、通过按钮130输入的数据、作为如吸尘器或空调等那样的客户端进行动作的APP数据、用于一边与客户端APP交换数据一边与保持连接服务器200进行通信的API数据。具体地,存储器120存储保持连接服务器的连接目的地、应用服务器连接目的地、服务识别码、服务认证标识、连接ID、客户端识别ID等。
按钮130受理来自用户的命令,并将该命令输入到CPU 110。
显示器140由液晶面板等实现,根据来自CPU 110的信号输出字符、图像。
家用电器控制电路150根据来自CPU 110的信号,对作为家用电器的客户端的各部分(监视器等)进行控制。
通信接口160的实现例与第一实施方式的相同,因此在此不重复说明。CPU 110通过通信接口160,从其它装置接收程序、控制命令、图像数据、文本数据等、或者向其它装置发送文本数据、图像数据等。
<保持连接服务器200的硬件结构>
接着,说明保持连接服务器200的硬件结构的一个方式。图19是表示本实施方式的保持连接服务器200的硬件结构的框图。此外,保持连接服务器200能够标准地利用apache、tomcat、mysql等能够在一般的服务器模块中进行保证的功能。
参照图19,保持连接服务器200包括CPU 210、存储器220、键盘230、显示器240以及通信接口260作为主要的结构要素。保持连接服务器200的硬件结构与客户端100的硬件结构相比,关于代替按钮130而具有键盘230这点、不具有用于控制家用电器的各部分的家用电器控制电路150这点、CPU 210的动作、存储器220所保存的数据而不同。以下,设为说明CPU 210的动作和存储器220存储的数据,关于其它硬件结构,不重复说明。
CPU 210通过执行存储器220或外部的存储介质所存储的程序,对保持连接服务器200的各部分进行控制。具体地,CPU 210通过执行存储在存储器220的程序,来作为后面记述的WS服务器212、212A、212B(参照图12、图23、图26、图27)进行动作。WS服务器212是指作为软件的保持连接服务器,使用WebSocket协议控制与客户端100间的保持连接通信、或者使用HTTP协议控制与保持连接辅助服务器400B或多个应用服务器300间的通信。
存储器220存储由CPU 210执行的程序、由CPU 210进行的程序的执行所生成的数据、通过键盘230输入的数据、服务ID、服务名、应用服务器300的连接目的地URL、服务认证标识生成信息、认证信息(一次性秘钥)、连接ID等。
<应用服务器300的硬件结构>
接着,说明应用服务器300的硬件结构的一个方式。图20是表示本实施方式的应用服务器300的硬件结构的框图。此外,应用服务器300能够标准地利用apache、tomcat、mysql等能够在一般的服务器模块中进行保证的功能。
参照图20,应用服务器300包括CPU 310、存储器320、键盘330、显示器340以及通信接口360作为主要的结构要素。应用服务器300的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 310的动作、存储器320所保存的数据而不同。因此,以下,设为说明CPU310的动作以及存储器320存储的数据,关于其它硬件结构,不重复说明。
CPU 310通过执行存储器320或外部的存储介质中存储的程序,来控制应用服务器300的各部分。具体地,CPU 310通过执行存储器320所存储的程序,来作为后面记述的服务器APP和服务器API 312(参照图23、图26、图27)进行动作。
服务器APP是指作为软件的应用服务器,向客户端100、智能电话等提供服务。服务器API 312对与利用HTTP协议的与保持连接辅助服务器400B或保持连接服务器200之间的通信进行控制。
存储器320存储由CPU 310执行的程序、由CPU 310进行的程序的执行所生成的数据、通过键盘330输入的数据、用于作为应用服务器300进行动作的APP数据、用于一边与服务器APP交换数据一边与保持连接服务器200进行通信的API数据。具体地,存储器320存储保持连接服务器的URL、服务ID以及服务认证标识、认证信息(一次性秘钥)生成信息、连接ID、示出待机子例程执行中的暂时性的标签信息(后面记述)等。
<对应关系DB>
接着,说明在本实施方式的网络系统1中利用的对应关系DB 500。对应关系DB 500与第一实施方式的相同,因此在此不重复说明。对应关系DB 500成为能够从本实施方式的网络系统1所包括的多个应用服务器300、保持连接辅助服务器400B以及多个保持连接服务器200进行参照。
<保持连接辅助服务器400B的硬件结构>
接着,说明保持连接辅助服务器400B的硬件结构的一个方式。图21是表示本实施方式的保持连接辅助服务器400B的硬件结构的框图。
参照图21,保持连接辅助服务器400B包括CPU 410、存储器420、键盘430、显示器440以及通信接口460作为主要的结构要素。保持连接辅助服务器400B的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 410的动作、存储器420所保存的数据而不同。因此,以下,设为说明CPU 410的动作以及存储器420存储的数据,关于其它硬件结构,不重复说明。
CPU 410通过执行存储器420或外部的存储介质存储的程序,来控制保持连接辅助服务器400B的各部分。具体地,CPU 410通过执行存储器420所存储的程序,来实现保持连接辅助功能411(参照图12)。保持连接辅助功能411参照对应关系DB 500,确定作为来自应用服务器300的数据的发送目的地的客户端100正在与哪个保持连接服务器200保持连接中。保持连接辅助功能411通过通信接口460将来自应用服务器300的数据传送到所确定的保持连接服务器200。
存储器420存储由CPU 410执行的程序、由CPU 410进行的程序的执行所生成的数据、通过键盘430输入的数据。
<负荷分散服务器600的硬件结构>
说明负荷分散服务器600的硬件结构的一个方式。图22是表示本实施方式的负荷分散服务器600的硬件结构的框图。
参照图22,负荷分散服务器600包括CPU 610、存储器620、键盘630、显示器640以及通信接口660作为主要的结构要素。负荷分散服务器600的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 610的动作、存储器620所保存的数据而不同。因此,以下,设为说明CPU 610的动作以及存储器620所存储的数据,关于其它硬件结构,不重复说明。
CPU 610通过执行存储器620或外部的存储介质存储的程序,来控制负荷分散服务器600的各部分。具体地,CPU 610通过执行存储器620所存储的程序,来利用HTTP协议把从客户端100以及其它的装置接收到的数据分配给多个保持连接服务器200。
存储器620存储由CPU 610执行的程序、由CPU 610进行的程序的执行所生成的数据、通过键盘630输入的数据。作为该数据,保存从保持连接服务器200收集到的负荷状态。
<网络系统1的功能结构>
接着,说明本实施方式的网络系统1整体的功能结构。
参照图12,客户端100使用WebSocket协议与作为节点1的保持连接服务器200A进行保持连接。其它的很多的客户端100也使用WebSocket协议与作为节点1的保持连接服务器200A进行保持连接。进一步地很多其它的客户端100使用WebSocket协议与作为节点2的保持连接服务器200B进行保持连接。此外,客户端100能够使用HTTP协议,经由应用服务器300A、300B、负荷分散服务器600与保持连接服务器200A、200B进行通信。
更详细地,客户端API 112在与保持连接服务器200中的任一个开始保持连接时,利用HTTP协议,通过通信接口160向负荷分散服务器600请求节点列表。在本实施方式中,客户端API 112利用HTTP协议,通过负荷分散服务器600向保持连接服务器200请求节点列表。
即,负荷分散服务器600对应于来自客户端100的请求,向保持连接服务器200A或是200B中的任一个传送最新的节点列表的请求。
客户端API 112选择接收到的节点列表中的第一个保持连接服务器200。或者,客户端API 112从节点列表中随机地选择保持连接服务器200。或者,在节点列表包括有各保持连接服务器200的负荷或正在连接中的客户端的数目等的情况下,客户端API 112选择负荷或正在连接中的客户端的数目小的保持连接服务器200。
客户端API 112通过通信接口160,与所选择的保持连接服务器200开始保持连接。
保持连接服务器200A、200B的WS服务器212A、212B是通过CPU 210实现的WS服务器,作为WebSocket服务器而利用WebSocket协议,通过通信接口260与客户端100进行保持连接。WS服务器212A、212B还作为HTTP服务器而利用HTTP协议,通过通信接口260与其它的保持连接服务器200、应用服务器300、负荷分散服务器600等进行数据通信。
保持连接服务器200A、200B的WS服务器212A、212B对应于来自负荷分散服务器600的请求,通过利用通信接口260,向对应关系DB 500请求最新的节点列表。对应关系DB 500对应于来自保持连接服务器200A、200B中的任一个的请求,通过对多个保持连接服务器200A、200B进行连接确认来更新节点列表。
此外,在本实施方式中,保持连接服务器200把包括节点列表的如以下那样的数据发送到客户端100。
{“status”:0,“reConInterval”:600,“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]}
在此,“reConInterval”:600是指示出重新连接间隔为600秒。“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]是指示出包括多个保持连接服务器的地址的节点列表。
而且,关于本实施方式的保持连接服务器200,WS服务器212定期地从对应关系DB500所保存的数据中取得与多个保持连接服务器200连接的客户端100的总数、一个保持连接服务器200每一秒能够重新连接的数目、正在运行中的保持连接服务器200的数目。而且,WS服务器212根据以下的式(1)计算重新连接间隔T(秒)。
(重新连接间隔)=(已连接客户端数目+α)÷(每一秒能够重新连接的数目)÷(正在运行中的保持连接服务器数目)…(1)
而且,WS服务器212通过通信接口260,在客户端100请求节点列表时,将重新连接间隔传送给正在与保持连接服务器200保持连接的客户端100。
在本实施方式中,保持连接服务器200将重新连接间隔与节点列表同时地进行给送。然而,保持连接服务器200不需要将节点列表和重新连接间隔同时地进行给送。例如,保持连接服务器200也可以仅预先将重新连接间隔发送给客户端100。
<与保持连接有关的装置间的数据交换>
接着,说明本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的概要。此外,图23是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
首先,客户端API 112在开始保持连接时,通过利用通信接口160,经由负荷分散服务器600向保持连接服务器200请求节点列表。客户端API 112参照节点列表选择要进行保持连接的保持连接服务器200。
参照图23,客户端API 112使用HTTP协议,通过通信接口160向应用服务器300请求认证信息(步骤S002)。此时,客户端API 112向应用服务器300发送利用于认证的客户端ID。应用服务器300的服务器API 312对应于该请求,使用HTTP协议,通过通信接口360发送认证信息(步骤S004)。
服务器API 312通过通信接口360,还向所选择的保持连接服务器200发送认证信息(步骤S006)。保持连接服务器200的WS服务器212保存从应用服务器300接收到的认证信息(步骤S008)。
客户端100和保持连接服务器200使用WebSocket协议,确立利用WebSocket的保持连接状态(步骤S010、步骤S012)。具体地,客户端API 112通过通信接口160向保持连接服务器200给送信息交换请求。WS服务器212通过通信接口260返回信息交换响应。由此,在客户端100与保持连接服务器200之间通过WebSocket协议进行的保持连接成为有效。
客户端API 112通过通信接口160将认证信息发送到保持连接服务器200(步骤S014)。WS服务器212根据来自客户端100的认证信息和预先保存的认证信息对客户端100进行认证(步骤S016)。当认证成功时,WS服务器212在应用服务器300发布用于识别客户端100的连接ID的同时删除保存的认证信息。另外,WS服务器212如图13所示那样将连接ID、确定保持连接服务器200A的信息以及确定应用服务的信息进行对应,通过通信接口260将该对应关系登记到对应关系DB 500。(步骤S018)。
客户端100接收连接ID并进行存储(步骤S020)。应用服务器300也接收连接ID,与客户端ID进行对应并存储(步骤S022)。
之后,服务器API 312对应于来自服务器APP的请求,将数据主体以及在步骤S022中存储的与给送目的地客户端100的客户端ID对应的连接ID通过通信接口360发送到保持连接服务器200(步骤S032)。
在本实施方式中,作为步骤S033,保持连接辅助服务器400B接收来自应用服务器300的数据。通过保持连接辅助服务器400B的CPU 410实现的客户端连接节点传送功能411根据在对应关系DB 500登记的连接ID与保持连接服务器之间的对应关系,来选择要发送数据的保持连接服务器200。客户端连接节点传送411通过通信接口460向所选择的保持连接服务器200传送数据。
保持连接服务器200从保持连接辅助服务器400B接收数据主体和连接ID(步骤S034)。WS服务器212根据连接ID确定客户端100(步骤S036)。
WS服务器212使用WebSocket协议,通过通信接口260向所确定的客户端100发送数据主体(步骤S038)。客户端100接收数据主体(步骤S040)。
客户端100使用WebSocket协议将接收结果发送到保持连接服务器200(步骤S042)。保持连接服务器200当接收到接收结果时,将该接收结果发送到应用服务器300(步骤S044)。应用服务器300对接收结果进行接收(步骤S046)。
而且,在本实施方式中,在客户端API 112不能进行与保持连接服务器200间的保持连接通信时,在待机等待时间的量之后,通过利用通信接口160,来通过负荷分散服务器600向保持连接服务器200请求最新的节点列表。在从保持连接服务器200取得节点列表失败的情况下、或者在虽然节点列表的取得成功,但是WebSocket连接失败的情况下,客户端API 112在待机重新连接间隔之后,再次通过通信接口160向负荷分散服务器600请求最新的节点列表。以后,客户端API 112在待机重新连接间隔的量之后重复进行通过负荷分散服务器600向保持连接服务器200请求最新的节点列表的处理,直到节点列表的取得以及WebSocket连接成功为止。
也就是说,在不能进行与保持连接服务器200间的保持连接通信时,客户端API112在待机等待时间的量之后重复进行自步骤S002起的处理。但是,也能够如后面记述的第九实施方式中说明的那样,根据已经取得的连接ID使认证处理简略化。
<客户端100中的重新连接处理>
接着,说明本实施方式的客户端100中的重新连接处理的处理过程。图24是示出本实施方式的客户端100中的重新连接处理的处理过程的流程图。更详细地,以下,主要说明通过客户端100的CPU 110执行程序而实现的客户端API 112的动作。
参照图24,客户端API 112受理来自客户端APP 111的连接开始请求(步骤S102)。客户端API 112对应于该请求,在需要确定客户端APP 111的客户端ID的设定的情况下,将客户端ID保存到存储器120(步骤S104)。客户端API 112判断此后进行的预定的保持连接处理是通常的新的保持连接处理(也称为初次连接处理。)、还是由于未预期的切断所致的重新连接处理(步骤S106)。
例如,客户端API 112借助从客户端APP 111传递来的数据是否被设定为客户端ID来区分初次连接处理和重新连接处理。
在本实施方式中,在客户端API 112判断为是初次连接(或者,不是重新连接)的情况下(步骤S106中为“是”的情况),作为初次连接处理,客户端API 112实施WS连接用认证信息的取得处理,从应用服务器300取得认证信息,执行自步骤S132起的处理(S110)。
另一方面,在客户端API 112判断为是重新连接(或者,不是初次连接)的情况下(步骤S106中为“否”的情况),作为重新连接处理,客户端API 112从存储器120读出重新连接间隔(步骤S112)。
在本实施方式中,如上所述,客户端100在从保持连接服务器200取得节点列表时,与节点列表一起取得重新连接间隔。但是,客户端API 112在尚未取得重新连接间隔的情况下,将重新连接间隔设为编入到自身的默认值(例如600秒)。
客户端API 112执行后面记述的待机子例程(步骤S120)。之后,客户端API 112利用通信接口160,通过负荷分散服务器600向保持连接服务器200请求包括多个保持连接服务器200的信息的节点列表和最新的重新连接间隔(步骤S132)。
客户端API 112在不能从保持连接服务器200取得节点列表的情况下(步骤S134中为“否”的情况),重复自步骤S106起的处理。另一方面,客户端API 112在能够从保持连接服务器200取得节点列表和重新连接间隔的情况下(步骤S134中为“是”的情况),在存储器120存储最新的重新连接间隔(步骤S136)。此时,客户端API 112将后面记述的示出待机子例程的执行中的标签关闭。
客户端API 112根据取得的节点列表选择要进行保持连接的保持连接服务器200。客户端API 112通过通信接口160执行用于开始与所选择的保持连接服务器200之间的保持连接的处理(参照步骤S138、自图23的步骤S010起的处理)。
客户端API 112最多将所述处理重复节点列表所包括的保持连接服务器200的件数部分的量。此外,在本实施方式中,客户端API 112在步骤S138中尝试与节点列表上还未尝试保持连接的保持连接服务器200之间的保持连接。
客户端API 112当与所选择的所有保持连接服务器200之间的保持连接失败时(步骤S140中为“否”的情况),重复自步骤S106起的处理。
客户端API 112当与所选择的保持连接服务器200间的保持连接成功时(步骤S140中为“是”的情况),执行认证处理(参照步骤S142、自图23的步骤S014起的处理)。
<客户端100中的待机子例程>
接着,说明本实施方式的客户端100中的待机子例程的处理过程。图25是示出本实施方式的客户端100中的待机子例程的处理过程的流程图。以下,主要说明通过客户端100的CPU 110执行程序而实现的客户端API 112的动作。
参照图25,客户端API 112判断待机子例程的执行是否为初次(步骤S122)。例如,客户端API 112确认示出待机子例程的执行中的标签是否为开启,将关闭的情况设为是第一次,将开启的情况设为是第二次以后。
在待机子例程的执行是第一次的情况下(步骤S122中为“是”的情况),客户端API112将示出待机子例程的执行中的标签开启。客户端API 112生成等待时间(步骤S124)。更详细地,客户端API 112在1秒至重新连接间隔T秒的期间随机地设定等待时间。客户端API112待机等待时间的量(步骤S126),从待机子例程返回到重新连接处理。
在待机子例程的执行是第二次以后的情况下(步骤S122中为“否”的情况),客户端API 112将重新连接间隔设为等待时间(步骤S128)。客户端API 112待机等待时间的量(步骤S126),从待机子例程返回到重新连接处理。
像这样,在本实施方式的网络系统1中,与保持连接服务器200之间的保持连接被切断的很多的客户端100的每个在待机等待时间的量之后开始重新连接处理。即,能够防止很多的客户端100一起同时访问负荷分散服务器600、保持连接服务器200。其结果,客户端100与保持连接服务器200之间的重新连接处理顺利地进行,快速地进行恢复到保持连接状态。
<第九实施方式>
接着,说明第九实施方式。在第八实施方式的网络系统1中,在进行重新连接处理时,需要再次进行认证处理。然而,在本实施方式中,通过利用连接ID来使认证处理简略化。
本实施方式的网络系统1的整体结构、各部分的硬件结构与第八实施方式的相同,因此不重复说明。以下,说明本实施方式的网络系统1中的初次连接处理的处理过程和重新连接处理的处理过程。
<初次连接处理的处理过程>
首先,说明本实施方式的初次连接处理的处理过程。图26是示出本实施方式的初次连接处理的处理过程的时序图。
参照图26,客户端APP 111将用于开始与应用服务器300之间的保持连接的请求交付到客户端API 112(步骤S202)。此时,客户端APP 111向客户端API 112交付客户端ID。客户端API 112在未收到客户端ID时,如以下那样执行初期连接处理。
客户端API 112向客户端APP 111请求对应用服务器300的连接(步骤S204)。客户端APP 111通过通信接口160,利用HTTP协议向应用服务器300请求连接开始(步骤S206)。客户端APP 111从应用服务器300接收认证信息,并将该认证信息交付到客户端API 112。
客户端API 112通过利用通信接口160,来通过负荷分散服务器600向任一个保持连接服务器200请求节点列表(步骤S208)。客户端API 112根据节点列表选择要尝试进行保持连接的保持连接服务器200。客户端API 112为了执行用于开始与保持连接服务器200之间的保持连接的处理而启动WS连接线程(步骤S210)。
客户端API 112通过利用通信接口160,来使用WebSocket协议向保持连接服务器200发送WebSocket信息交换请求(步骤S212)。WS服务器212通过通信接口260将信息交换响应返回到客户端100(步骤S216)。由此,开始客户端100与保持连接服务器200之间的通过WebSocket协议进行的保持连接。
此外,客户端API 112当与保持连接服务器200间的信息交换失败时,再次根据节点列表选择其它的保持连接服务器200。而且,客户端API 112重复自步骤S212起的处理。
客户端API 112通过通信接口160,使用WebSocket协议向保持连接服务器200发送认证信息(步骤S218)。WS服务器212根据来自应用服务器300的认证信息和来自客户端100的认证信息来对客户端100进行认证。
当认证成功时,WS服务器212发布连接ID。WS服务器212通过通信接口260,作为连接确立状况而将客户端100的连接ID发送到应用服务器300和客户端100(步骤S220)。
客户端API 112向客户端APP 111通知保持连接开始的意思(步骤S224)。此外,保持连接服务器200在认证失败的情况下,客户端API 112重复自步骤S204起的处理。
<重新连接处理的处理过程>
接着,说明本实施方式的重新连接处理的处理过程。图27是示出本实施方式的重新连接处理的处理过程的时序图。
参照图27,客户端APP 111将用于开始与应用服务器300之间的保持连接的请求交付到客户端API 112(步骤S252)。此时,客户端APP 111向客户端API 112交付客户端ID。客户端APP 111在收到客户端ID时,如以下那样执行重新连接处理。
客户端API 112执行所述的待机子例程,待机等待时间的量(步骤S257)。客户端API 112在待机之后,通过利用通信接口160,来通过负荷分散服务器600向任一个保持连接服务器200请求节点列表(步骤S258)。
客户端API 112在不能取得节点列表的情况下,在待机重新连接间隔的量之后再次通过利用通信接口160,来通过负荷分散服务器600向任一个保持连接服务器200请求节点列表。
客户端API 112在能够取得节点列表的情况下,存储节点列表所包括的重新连接间隔,根据节点列表所包括的节点的列表,选择要尝试保持连接的保持连接服务器200。客户端API 112为了执行用于开始与保持连接服务器200之间的保持连接的处理而启动WS连接线程(步骤S260)。
客户端API 112通过利用通信接口160,使用WebSocket协议向保持连接服务器200发送信息交换请求(步骤S262)。WS服务器212通过通信接口260将信息交换响应返回给客户端100(步骤S266)。由此,开始客户端100与保持连接服务器200之间的通过WebSocket协议进行的保持连接。
此外,客户端API 112当与保持连接服务器200之间的信息交换失败时,再次根据节点列表选择其它的保持连接服务器200。而且,客户端API 112重复自步骤S260起的处理。
客户端API 112通过通信接口160,使用WebSocket协议向保持连接服务器200发送客户端ID(步骤S268)。WS服务器212通过将连接ID发送到应用服务器300来对客户端100进行认证。
当认证成功时,WS服务器212将认证成功的意思通知给客户端100和应用服务器300(步骤S270)。客户端API 112向客户端APP 111通知保持连接开始的意思(步骤S274)。
此外,在保持连接服务器200认证失败的情况下,客户端API 112重复自初次连接处理的步骤S204(参照图26)起的处理。
像这样,在本实施方式的网络系统1中也为:与保持连接服务器200之间的保持连接被切断的很多的客户端100的每个在待机等待时间的量之后开始重新连接处理。即,能够防止很多的客户端100一起访问负荷分散服务器600、保持连接服务器200。其结果,客户端100与保持连接服务器200间的重新连接处理顺利地进行,快速地进行恢复到保持连接状态。
<第十实施方式>
在所述的第八和第九实施方式中,是保持连接服务器200计算重新连接间隔,客户端100根据重新连接间隔计算等待时间的实施例。也就是说,保持连接服务器200是将重新连接间隔传送到客户端100的保持连接服务器。
然而,作为第十实施方式的网络系统,保持连接服务器200还可以计算重新连接间隔,根据重新连接间隔连等待时间也计算出。也就是说,保持连接服务器200也可以连同重新连接间隔一起还将等待时间传送到客户端100。
<第十一实施方式>
在所述的第八至第十实施方式中,客户端100是在1(秒)~重新连接间隔T(秒)的期间随机地决定待机时间的客户端。
然而,作为第十一实施方式的网络系统,保持连接服务器200的CPU 210、应用服务器300中的任一个也可以根据由保持连接进行的数据发送和接收的频度来决定等待时间。更详细地,那些CPU将客户端100与保持连接服务器200(或者,服务器APP)的组合的每一个的、每单位时间的利用WebSocket协议的数据发送和接收的次数(频度)保存到对应关系DB500中。而且,CPU以利用WebSocket协议的发送和接收的频度越高的组合等待时间越短的方式设定等待时间。例如,CPU计算该客户端的发送和接收的次数相对于存在的客户端总数的相对次数,通过求出其与重新连接间隔T(秒)之积来决定等待时间。
由此,越是频繁地进行由保持连接进行的数据的发送和接收的客户端100与保持连接服务器200的组合,保持连接恢复得越快。其结果,在保持连接被切断的情况下,能够减低产生由于不能从应用服务器300向客户端100推送信息所致的不便的可能性。
<第十二实施方式>
在所述的第八和第九实施方式中,是负荷分散服务器600把保存有正在运行中的保持连接服务器200的地址的节点列表发送到客户端100的实施例。而且,客户端100是根据节点列表选择要开始保持连接的保持连接服务器200的客户端。
然而,作为第十二实施方式,保持连接服务器200也可以根据保存有正在运行中的保持连接服务器200的地址的节点列表,选择要与客户端100进行保持连接(例如当前的负荷小)的保持连接服务器200。在这种情况下,保持连接服务器200将仅包括被选择的保持连接服务器200的节点列表发送到客户端100。而且,客户端100与由节点列表指定的保持连接服务器200开始保持连接。
<第十三实施方式>
在所述的第八和第九实施方式中,负荷分散服务器600在从客户端100受理节点列表的请求时,向保持连接服务器200请求节点列表。进一步地,保持连接服务器200向其它的多个保持连接服务器200发送连接确认用数据(ping),根据其响应更新对应关系DB 500的节点列表。进一步地,保持连接服务器200对应于从负荷分散服务器600传送的请求,来从对应关系DB 500取得节点列表。
然而,作为第十三实施方式,保持连接服务器200定期地向其它的多个保持连接服务器200发送连接确认用数据(ping),根据其响应,事先更新对应关系DB 500的节点列表。而且,保持连接服务器200也可以对应于来自负荷分散服务器600的请求而从对应关系DB500取得节点列表。
<第十四实施方式>
或者,作为第十四实施方式,保持连接服务器200也可以定期地向其它的多个保持连接服务器200发送连接确认用数据(ping),根据其响应更新节点列表,事先将更新的最新的节点列表发送到其它的保持连接服务器200。而且,保持连接服务器200也可以对应于来自客户端100的请求而将预先接收到的节点列表发送到客户端100。
<第十五实施方式>
在所述的实施方式中,客户端100是通过负荷分散服务器600从保持连接服务器200取得重新连接用间隔和节点列表的客户端。然而,作为第十五实施方式,客户端100也可以通过提供服务的应用服务器300,从保持连接服务器200取得重新连接用间隔和节点列表。
具体地,客户端100当与保持连接服务器200之间的保持连接被切断时,利用HTTP协议向应用服务器300发送节点列表请求和/或重新连接用间隔要求。应用服务器300向多个保持连接服务器200中的任一个或对应关系DB 500请求节点列表和/或重新连接间隔。多个保持连接服务器200中的任一个或对应关系DB 500将节点列表和/或重新连接间隔返回到应用服务器300。应用服务器300利用HTTP协议向客户端100发送节点列表和/或重新连接间隔。
<第十六实施方式>
在所述的实施方式中,客户端100是当与保持连接服务器200之间的保持连接被切断时,在待机重新连接时间之后开始用于与保持连接服务器200重新连接的处理的客户端。然而,作为第十六实施方式,客户端100也可以当与保持连接服务器200之间的保持连接被切断时,仅在满足规定的条件的情况下在待机重新连接时间之后开始用于与保持连接服务器200重新连接的处理,在不满足规定的条件的情况下,不进行待机而立即开始用于与保持连接服务器200重新连接的处理。
例如,仅在将保持连接服务器200设为起因的保持连接切断时,客户端100待机重新连接用间隔。反过来,在由于客户端100的原因而切断了保持连接的情况下,客户端100立即开始用于重新连接的处理。
作为具体例子,在由于保持连接服务器200切断保持连接的情况以外的原因而切断了保持连接的情况下(客户端API的再次启动等),客户端100将标签信息存储到暂时区域(将标签开启)。而且,在重新连接时,客户端100判断该标签信息是否开启。客户端100在标签信息开启的情况下,立即开始用于重新连接的处理。客户端100在重新连接成功时将标签关闭。另一方面,客户端100在标签信息关闭的情况下,在待机重新连接用间隔之后开始用于重新连接的处理。
换言之,在由于客户端100的原因保持连接被切断的情况下(客户端API的再次启动等),客户端100将标签信息存储到暂时区域(将标签开启)。
由此,在不需要使重新连接分散时,能够减低等待时间、即不能利用对保持连接进行利用的功能的时间。
<第十七实施方式>
在所述的实施方式中,网络系统1是包括多个保持连接服务器200的网络系统。然而,网络系统1也可以是包括一个保持连接服务器200的网络系统。
在这种情况下,客户端100不需要向保持连接服务器200请求节点列表。然而,客户端100需要从保持连接服务器200接收重新连接用间隔。即,客户端100在保持连接被切断时,在待机1秒~重新连接用间隔(秒)的期间的等待时间或重新连接用间隔的量之后,在不请求节点列表的情况下与以前进行了保持连接的保持连接服务器200开始信息交换处理。
而且,关于本实施方式的保持连接服务器200,WS服务器212定期地从对应关系DB500或保持连接服务器200所保存的数据取得与保持连接服务器200连接的客户端100的数目、保持连接服务器200每一秒能够重新连接的数目。而且,WS服务器212根据以下的式(2)计算重新连接间隔T(秒)。
(重新连接间隔)=(已连接客户端数+α)÷(每一秒能够重新连接的数目)…(2)
<第十八实施方式>
<网络系统的整体结构>
首先,说明本实施方式的网络系统1的整体结构。图28是示出本实施方式的网络系统1的整体结构的图形图。
参照图28,本实施方式的网络系统1包括:配置在住所或办公室等的多个家用电器100A、100B、100C;通过网络与家用电器100A、100B、100C连接的多个保持连接服务器200A、200B、200C、200D;提供与家用电器100A、100B、100C有关的各种服务的多个应用服务器300A、300B、300C;向多个家用电器100A、100B、100C提供与保持连接服务器200A、200B、200C、200D有关的列表的第一辅助服务器600C;以及用于将来自应用服务器300A、300B、300C的数据分配给保持连接服务器200A、200B、200C、200D的第二辅助服务器400C。
此外,以下,还对家用电器100A、100B、100C进行统称,称为客户端100。另外,还对保持连接服务器200A、200B、200C、200D进行统称,称为保持连接服务器200。另外,还对应用服务器300A、300B、300C进行统称,称为应用服务器300。
在此,作为客户端100,例如可列举吸尘器100A、空调100B、电视100C、洗衣机、冰箱、烧饭器、空气洁净器、地暖、IH(Induction Heating,感应加热)烹调加热器等。进一步地,客户端100只要是住所内或办公室内的通信设备即可,例如也可以包括个人计算机、电视以外的AV设备、内线电话系统等。另外,保持连接服务器200、应用服务器300、第一辅助服务器600C以及第二辅助服务器400C也可以是与客户端100相同地存在于住所内、办公室内、大厦内、公司或学校的院内的服务器等。
另外,客户端100与各服务器之间也可以经由光纤等线路进行连接,在中途连接光线路终端装置、用于进行无线LAN通信的接入点、路由器等。虽然家用电器使用IEEE802.11a/b/g/n/ac等无线LAN通信、或有线LAN等作为与网络连接的方案,但是连接方法不限定于这些。
在本实施方式中,对于一个应用服务器300或一个服务,可对应有一个以上的保持连接服务器200。而且,使得对一个保持连接服务器200,对应有一个以上的应用服务器300或一个以上的服务。也就是说,关于本实施方式的网络系统1,服务对保持连接服务器也可以为N对N。
但是,也可以是对于一个应用服务器300或一个服务对应有多个保持连接服务器200、对于一个保持连接服务器200对应有仅一个的应用服务器300或仅一个的服务。也就是说,也可以是虽然允许服务对保持连接服务器为1对N,但是不允许服务对保持连接服务器为N对N的系统。
反过来,也可以是对于一个应用服务器300或一个服务,对应有仅一个的保持连接服务器200,对于一个保持连接服务器200,对应有多个应用服务器300或多个服务。也就是说,也可以是虽然允许服务对保持连接服务器为N对1,但是不允许服务对保持连接服务器为N对N的系统。
而且,在本实施方式中,把服务与和保持连接服务器200实现的节点有关的信息之间的对应关系保存在服务/节点对应关系DB 510中。而且,客户端100的每个利用来自服务/节点对应关系DB 510的数据来与对应于自身所利用的服务的保持连接服务器200中的任一个进行保持连接。
以下,为了说明,设为一个应用服务器300提供一个服务,设为一个服务由一个应用服务器300提供。即,在本实施方式中,设为应用服务器300与服务1对1地对应。
此外,在此的与节点有关的信息也可以是保持连接服务器200的地址,也可以是确定保持连接服务器200的ID。在与节点有关的信息是确定保持连接服务器200的ID的情况下,服务/节点对应关系DB 510存储确定保持连接服务器200的ID与保持连接服务器200的地址之间的对应关系。
例如,假定第一应用服务器300A向吸尘器100A提供吸尘器用的服务、第二应用服务器300B向空调100B提供空调用的服务、第三应用服务器300C向电视100C提供电视用的服务的情况。而且,设为在某个时刻,使第一应用服务器300A与第一保持连接服务器200A和第二保持连接服务器200B对应,使第二应用服务器300B与第三保持连接服务器200C和第四应用服务器对应,使第三应用服务器300C与第三保持连接服务器200C和第四保持连接服务器200D对应。
在该状况中,在吸尘器100A尝试利用吸尘器用的服务的情况下、即在吸尘器100A尝试开始保持连接的情况下,吸尘器100A从第一辅助服务器600C取得对应于吸尘器用的服务的保持连接服务器200的列表。吸尘器100A参照该列表,进行与对应于吸尘器用的服务的第一保持连接服务器200A或第二保持连接服务器200B之间的保持连接。由此,第一应用服务器300A成为能够通过第一保持连接服务器200A或第二保持连接服务器200B,向吸尘器100A推送各种数据。即,利用吸尘器用的服务的多个客户端100通过第一保持连接服务器200A或第二保持连接服务器200B受理来自第一应用服务器300A的数据推送。
同样地,在空调100B尝试利用空调用的服务的情况下、即在空调100B尝试开始保持连接的情况下,空调100B从第一辅助服务器600C取得对应于空调用的服务的保持连接服务器200的列表。空调100B参照该列表,进行与对应于空调的服务的第三保持连接服务器200C或第四保持连接服务器200D之间的保持连接。由此,第二应用服务器300B成为能够通过第三保持连接服务器200C或第四保持连接服务器200D向空调100B推送各种数据。即,利用空调用的服务的多个客户端100通过第三保持连接服务器200C或第四保持连接服务器200D受理来自第二应用服务器300B的数据推送。
同样地,在电视100C尝试利用电视用的服务的情况下、即在电视100C尝试开始保持连接的情况下,电视100C从第一辅助服务器600C取得对应于电视用的服务的保持连接服务器200的列表。电视100C参照该列表,进行与对应于电视的服务的第三保持连接服务器200C或第四保持连接服务器200D之间的保持连接。由此,第三应用服务器300C成为能够通过第三保持连接服务器200C或第四保持连接服务器200D向电视100C推送各种数据。即,利用电视用的服务的多个客户端100通过第三保持连接服务器200C或第四保持连接服务器200D受理来自第三应用服务器300C的数据推送。
使得像这样,客户端100通过对应于自身所利用的服务的保持连接服务器200来与应用服务器300交换数据。在本实施方式中,对于客户端100与应用服务器300的组合设定连接ID。而且,将连接ID与保持连接服务器200的对应关系保存到连接ID/节点对应关系DB520。
进一步地,在本实施方式中,监视服务器800通过参照连接ID/节点对应关系DB520来监视负荷是否仅集中于一部分保持连接服务器200。换言之,监视服务器800判断与一部分的服务有关的负荷相对于对该一部分的服务分配的保持连接服务器200的数目是否过大。
而且,监视服务器800使对与负荷集中的保持连接服务器200对应的服务(例如第一服务)分配的保持连接服务器200的数目增加,使对与负荷未集中的保持连接服务器200对应的服务(第二服务)分配的保持连接服务器200的数目减少。在本实施方式中,监视服务器800将服务/节点对应关系DB 510中的对第二服务分配的保持连接服务器200的对应目的地变更为第一服务。
即,在本实施方式的网络系统1中,因为使应用服务器300或服务与保持连接服务器200对应,所以能够使仅与一部分的服务对应的保持连接服务器200休眠或对其进行维护、提高或降低仅与一部分的服务对应的保持连接服务器200的规格、或者增加或减少仅与一部分的服务对应的保持连接服务器200的台数。
而且,因为能够动态地变更应用服务器300或服务与保持连接服务器200之间的关系,所以能够减低由于访问仅集中于受欢迎的服务因而客户端100不能利用服务可能性、不能顺利地进行通过保持连接进行的数据的发送和接收的可能性。也就是说,在本实施方式的网络系统1中,使得能够按每个服务来对保持连接服务器200进行维护,同时能够减低负荷仅集中于一部分的保持连接服务器200的可能性。
以下,详细记述用于实现像这样功能的网络系统1的具体结构。
<客户端100的硬件结构>
首先,说明客户端100的硬件结构的一个方式。
参照图2,客户端100包括CPU 110、存储器120、输入输出部130、家用电器控制电路150以及通信接口160作为主要的结构要素。
CPU 110通过执行存储在存储器120或外部的存储介质的程序来控制客户端100的各部分。更详细地,CPU 110通过执行存储器120的程序来作为后面记述的客户端APP和客户端API 112(参照图37)进行动作。更详细地,客户端APP通过家用电器控制电路150对客户端100的各部分进行控制。客户端API 112通过后面记述的通信接口,使用HTTP协议进行通信、或者使用在HTTP协议上利用的WebSocket协议进行通信。
存储器120通过各种RAM(Random Access Memory:随机存取存储器)、各种ROM(Read-Only Memory:只读存储器)、闪速存储器等实现。此外,存储器120还通过借助接口来利用的USB(Universal Serial Bus:通用串行总线)(注册商标)存储器、CD(Compact Disc:光盘)、DVD(Digital Versatile Disk:数字通用光盘)、存储卡、硬盘、IC(IntegratedCircuit:集成电路)卡、光卡、掩膜ROM、EPROM(Erasable Programmable Read OnlyMemory:可擦除可编程只读存储器)、EEPROM(Electronically Erasable ProgrammableRead-Only Memory:电可擦除可编程只读存储器)等存储介质等实现。
存储器120存储由CPU 110执行的程序、由CPU 110进行的程序的执行所生成的数据、通过输入输出部130输入的数据、作为吸尘器、\空调\电视等的家用电器进行动作的APP数据、用于一边与客户端APP交换数据一边与保持连接服务器200进行通信的API数据。APP数据包括用于与应用服务器300之间发送和接收信息的服务连接信息。API数据包括WebSocket客户端API设定信息、认证信息、连接目的地服务设定信息以及连接状态信息。
输入输出部130受理来自用户的命令,将该命令输入到CPU 110。另外,输入输出部130根据来自CPU 110的信号,输出字符、图像、声音。
家用电器控制电路150根据来自CPU 110的信号,对作为吸尘器100A\空调100B\电视100C等家用电器的客户端100的各部分(监视器等)进行控制。
通信接口160通过IEEE802.11a/b/g/n/ac等无线LAN通信、ZigBee(紫蜂)(注册商标)、BlueTooth(蓝牙)(注册商标)、或者Ethernet(以太网)(注册商标)等有线LAN等通信模块实现。通信接口160利用有线通信或无线通信与其它装置之间交换数据。CPU 110通过通信接口160从其它的装置接收程序、控制命令、图像数据、文本数据、声音数据等、或向其它的装置发送图像数据、文本数据、声音数据等。
<保持连接服务器200的硬件结构>
接着,说明保持连接服务器200的硬件结构的一个方式。
参照图3,保持连接服务器200包括CPU 210、存储器220、输入输出部230以及通信接口260作为主要的结构要素。保持连接服务器200的硬件结构与客户端100的硬件结构相比,关于不具有用于控制家用电器的各部分的家用电器控制电路150这点、CPU 210的动作、存储器220所保存的数据而不同。因此,以下,设为主要说明CPU 210的动作以及存储器220所存储的数据,关于其它硬件结构,不重复说明。
CPU 210通过执行存储器220或外部的存储介质所存储的程序来控制保持连接服务器200的各部分。具体地,CPU 210通过执行存储器220存储的程序,来作为后面记述的WS服务器核心212(参照图37)进行动作。WS服务器核心212是指作为软件的保持连接服务器,使用WebSocket协议控制与客户端100之间的保持连接通信、或者使用HTTP协议控制与第一辅助服务器600C、第二辅助服务器400C、多个应用服务器300之间的通信。
存储器220存储由CPU 210执行的程序、由CPU 210进行的程序的执行所生成的数据、通过输入输出部230输入的数据、服务主机信息、暂时认证信息、连接状态管理信息、连接组信息、连接组加入信息等。
<应用服务器300的硬件结构>
接着,说明应用服务器300的硬件结构的一个方式。
参照图4,应用服务器300包括CPU 310、存储器320、输入输出部330以及通信接口360作为主要的结构要素。应用服务器300的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 310的动作、存储器320所保存的数据而不同。因此,以下,设为主要说明CPU310的动作以及存储器320所存储的数据,关于其它硬件结构,不重复说明。
CPU 310通过执行存储器320或外部的存储介质存储的程序来控制应用服务器300的各部分。具体地,CPU 310通过执行存储器320所存储的程序,来作为后面记述的服务器APP和服务器API 312(参照图37)进行动作。
服务器APP是指作为软件的应用服务器,向客户端100、智能电话等提供服务。服务器API 312利用HTTP协议,控制与第二辅助服务器400C或保持连接服务器200之间的通信。
存储器320存储由CPU 310执行的程序、由CPU 310进行的程序的执行所生成的数据、通过输入输出部330输入的数据、作为应用服务器300进行动作的APP数据、用于一边与服务器APP交换数据一边与保持连接服务器200进行通信的API数据。APP数据包括客户端信息、关于与正在保持连接中的客户端100之间的连接的客户端连接信息以及用于新开始保持连接的连接概率临时信息,该客户端信息包括与自身要管理的客户端100有关的信息。API数据包括WebSocket服务器API设定信息、认证管理信息、服务设定信息以及客户端连接状态信息。
<第一辅助服务器600C的硬件结构>
接着,说明第一辅助服务器600C的硬件结构的一个方式。图29是表示本实施方式的第一辅助服务器600C的硬件结构的框图。
参照图29,第一辅助服务器600C包括CPU 610、存储器620、输入输出部630以及通信接口660作为主要的结构要素。第一辅助服务器600C的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 610的动作、存储器620所保存的数据而不同。因此,以下,设为主要说明CPU 610的动作以及存储器620存储的数据,关于其它硬件结构,不重复说明。
CPU 610通过执行存储器620或外部的存储介质存储的程序来控制第一辅助服务器600C的各部分。具体地,CPU 610通过执行存储器620所存储的程序来实现节点列表提供功能。例如,CPU 610通过参照服务/节点对应关系DB 510来作成节点列表。另外,CPU 610通过通信接口660将作成的节点列表发送到客户端100。
存储器620存储由CPU 610执行的程序、由CPU 610进行的程序的执行所生成的数据、通过输入输出部630输入的数据等。
<服务/节点对应关系DB>
接着,说明在本实施方式的网络系统1中利用的服务/节点对应关系DB 510。图30是示出本实施方式的服务/节点对应关系DB 510所包括的数据的构造的图形图。
参照图30,服务/节点对应关系DB 510包括应用服务器300提供的服务与关于保持连接服务器200的节点的信息之间的对应关系510A。
在此,与节点有关的信息也可以是保持连接服务器200的地址,也可以是确定保持连接服务器200的ID。在与节点有关的信息是确定保持连接服务器200的ID的情况下,服务/节点对应关系DB 510存储确定保持连接服务器200的ID与保持连接服务器200的地址之间的对应关系。
由此,第一辅助服务器600C通过参照服务/节点对应关系DB 510,能够对应于来自客户端100的请求作成与客户端100将要利用的服务对应的节点的列表。在本实施方式中,第一辅助服务器600C通过从服务/节点对应关系DB 510抽出对应于由客户端100指定的服务的保持连接服务器200的地址,从而作成节点列表。
而且,第一辅助服务器600C将例如“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]这样的数据作为节点列表发送到客户端100。
<第二辅助服务器400C的硬件结构>
接着,说明第二辅助服务器400C的硬件结构的一个方式。图31是表示本实施方式的第二辅助服务器400C的硬件结构的框图。
参照图31,第二辅助服务器400C包括CPU 410、存储器420、输入输出部430以及通信接口460作为主要的结构要素。第二辅助服务器400C的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 410的动作、存储器420所保存的数据而不同。因此,以下,设为主要说明CPU 410的动作以及存储器420存储的数据,关于其它硬件结构,不重复说明。
CPU 410通过执行存储器420或外部的存储介质所存储的程序来控制第二辅助服务器400C的各部分。具体地,CPU 410通过执行存储器420所存储的程序,来实现后面记述的数据分配功能411(参照图37)。
存储器420存储由CPU 410执行的程序、由CPU 410进行的程序的执行所生成的数据、通过输入输出部430输入的数据等。
<连接ID/节点对应关系DB>
接着,说明在本实施方式的网络系统1中利用的连接ID/节点对应关系DB 520。图32是示出本实施方式的连接ID/节点对应关系DB 520所包括的数据的构造的图形图。
参照图32,连接ID/节点对应关系DB 520包括在保持连接中用于确定客户端100的连接ID与保持连接服务器200实现的节点之间的对应关系520A。由此,第二辅助服务器400C能够认识多个客户端100的各个正在与哪个保持连接服务器200进行保持连接。也就是说,第二辅助服务器400C通过参照连接ID/节点对应关系DB 520,能够确定应该把从应用服务器300向客户端100的推送数据等分配给哪个保持连接服务器200。
<监视服务器800的硬件结构>
接着,说明监视服务器800的硬件结构的一个方式。图33是表示本实施方式的监视服务器800(800B、800C、800D、800E)的硬件结构的框图。
参照图33,监视服务器800包括CPU 810、存储器820、输入输出部830以及通信接口860作为主要的结构要素。监视服务器800的硬件结构与保持连接服务器200的硬件结构相比,关于CPU 810的动作、存储器820所保存的数据而不同。因此,以下,设为主要说明CPU810的动作以及存储器820存储的数据,关于其它硬件结构,不重复说明。
CPU 810通过执行存储器820或外部的存储介质所存储的程序来控制监视服务器800的各部分。具体地,CPU 810通过执行存储器820所存储的程序,来测量、取得多个保持连接服务器200的每个的连接客户端的数目、推送频度、发送数据量、负荷等。而且,CPU 810判断多个保持连接服务器200的每个的连接客户端的个数、推送频度、发送数据量、负荷等是否超过规定值。CPU 810在多个保持连接服务器200的每个的连接客户端的个数、推送频度、发送数据量、负荷等超过规定值的情况下,变更服务/节点对应关系DB 510中的服务与节点的组合。
存储器420存储由CPU 410执行的程序、由CPU 410进行的程序的执行所生成的数据、通过输入输出部430输入的数据等。
<与保持连接开始有关的网络系统1的功能结构>
接着,说明本实施方式的与保持连接开始有关的网络系统1整体的功能结构。图34是示出第十八实施方式的网络系统1整体的功能结构的第一框图。图35是示出第十八实施方式的网络系统1整体的功能结构的第二框图。图36是示出第十八实施方式的网络系统1整体的功能结构的第三框图。
参照图34,客户端100A~100C的每个在开始保持连接时,利用HTTP协议向第一辅助服务器600C请求节点列表。具体地,将要利用第一服务的客户端100A将确定第一服务的服务ID发送到第一辅助服务器600C。
第一辅助服务器600C参照服务/节点对应关系DB 510作成与第一服务有关的节点列表。节点列表包括与第一服务对应的保持连接服务器200的地址。第一辅助服务器600C将节点列表发送到客户端100A。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]这样的数据发送到客户端100。
如图35所示,客户端100A参照节点列表,尝试与对应于第一服务的保持连接服务器200A进行连接。后面记述保持连接开始时的处理。
同样地,参照图34,将要利用第二服务的客户端100B把确定第二服务的服务ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510,作成与第二服务有关的节点列表。节点列表包括对应于第二服务的保持连接服务器200的地址。第一辅助服务器600C将节点列表发送到客户端100B。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example03.com:18080/cpush-server/echo”]这样的数据发送到客户端100。如图35所示,客户端100B参照节点列表,尝试与对应于第二服务的保持连接服务器200D进行连接。后面记述保持连接开始时的处理。
同样地,参照图34,将要利用第三服务的客户端100C把确定第三服务的服务ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510,作成与第三服务有关的节点列表。节点列表包括对应于第三服务的保持连接服务器200的地址。第一辅助服务器600C将节点列表发送到客户端100C。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example04.com:18080/cpush-server/echo”]这样的数据发送到客户端100。如图35所示,客户端100C参照节点列表,尝试与对应于第三服务的保持连接服务器200C进行连接。后面记述保持连接开始时的处理。
使得像这样,多个客户端100的每个确立与对应于自身所利用的服务的保持连接服务器200之间的保持连接。例如图36所示,多个客户端100A~100G的每个确立与多个保持连接服务器200中的对应于客户端100A~100G的每个所利用的服务的保持连接服务器200之间的保持连接。
在此,使第一保持连接服务器200A和第二保持连接服务器200B对应于第一服务。而且,利用第一服务的客户端100A、100D、100E与第一保持连接服务器200A或第二保持连接服务器200B中的任一个进行保持连接。由此,提供第一服务的应用服务器300A能够通过第一保持连接服务器200A或第二保持连接服务器200B向客户端100A、100D、100E推送数据。
同样地,使第三保持连接服务器200C和第四保持连接服务器200D对应于第二服务。而且,利用第二服务的客户端100B、100F与第三保持连接服务器200C或第四保持连接服务器200D中的任一个进行保持连接。由此,提供第二服务的应用服务器300B能够通过第三保持连接服务器200C或第四保持连接服务器200D向客户端100B、100F推送数据。
同样地,使第三保持连接服务器200C和第四保持连接服务器200D对应于第三服务。而且,利用第三服务的客户端100C、100G与第三保持连接服务器200C或第四保持连接服务器200D中的任一个进行保持连接。由此,提供第三服务的应用服务器300C能够通过第三保持连接服务器200C或第四保持连接服务器200D向客户端100C、100G推送数据。
<与保持连接有关的装置间的数据交换>
在此,详细说明本实施方式的网络系统1中的与保持连接有关的装置间的数据交换。此外,图37是示出本实施方式的网络系统1中的与保持连接有关的装置间的数据交换的处理过程的时序图。
参照图37,由客户端100实现的客户端API 112使用HTTP协议,通过通信接口160向应用服务器300请求认证信息(步骤S002)。此时,客户端API 112向应用服务器300发送被利用于认证的客户端ID。应用服务器300的服务器API 312对应于该请求,使用HTTP协议,通过通信接口360向客户端100发送认证信息(步骤S004)。
服务器API 312通过通信接口360,还向保持连接服务器200发送认证信息(步骤S006)。保持连接服务器200的WS服务器核心212保存从应用服务器300接收到的认证信息(步骤S008)。
客户端100从第一辅助服务器600C取得节点列表(步骤S009)。更详细地,客户端100利用HTTP协议向第一辅助服务器600C发送服务ID。第一辅助服务器600C参照服务/节点对应关系DB,作成与服务对应的节点列表,将该节点列表发送到客户端100。客户端100从节点列表选择一个保持连接服务器200。
客户端100所选择的保持连接服务器200与客户端100使用HTTP协议确立利用WebSocket的保持连接状态(步骤S010、步骤S012)。具体地,客户端API 112使用HTTP协议,通过通信接口160向保持连接服务器200给送信息交换请求。WS服务器核心212通过通信接口260向客户端100返回信息交换响应。由此,在客户端100与保持连接服务器200之间,通过WebSocket协议进行的保持连接成为有效。
客户端API 112通过通信接口160将认证信息发送到保持连接服务器200(步骤S014)。WS服务器核心212根据来自客户端100的认证信息和预先保存的认证信息,对客户端100进行认证(步骤S016)。当认证成功时,WS服务器核心212发布用于应用服务器300识别客户端100的连接ID(步骤S018)。
即,WS服务器核心212将正在保持连接中的客户端100与连接ID之间的对应关系作为连接状态管理信息存储。客户端100接收连接ID并存储(步骤S020)。应用服务器300也接收连接ID并存储(步骤S022)。此时,WS服务器核心212通过通信接口260将连接ID、确定保持连接服务器200的信息(与节点有关的信息)以及确定应用服务的信息之间的对应关系登记到连接ID/节点对应关系DB 520。
之后,服务器API 312对应于来自服务器APP 311的请求,将数据主体以及用于确定给送目的地的客户端100的连接ID通过通信接口360发送到保持连接服务器200(步骤S032)。
在本实施方式中,作为步骤S033,第二辅助服务器400C接收来自应用服务器300的数据。第二辅助服务器400C的分配功能411参照连接ID/节点对应关系DB 520来确定与发送目的地的客户端100对应的保持连接服务器200。第二辅助服务器400C的CPU 410通过通信接口460向所确定的保持连接服务器200发送数据。
保持连接服务器200从第一辅助服务器600C接收数据主体和连接ID(步骤S034)。WS服务器核心212参照连接状态管理信息,根据连接ID来确定客户端100(步骤S036)。WS服务器核心212通过通信接口260将数据主体推送发送到客户端100(步骤S038)。
客户端100接收数据主体(步骤S040)。客户端100使用WebSocket协议,将接收结果发送到保持连接服务器200(步骤S042)。保持连接服务器200当接收到接收结果时,将该接收结果发送到应用服务器300(步骤S044)。应用服务器300对接收结果进行接收(步骤S046)。
<与服务/节点对应关系的变更有关的网络系统1的功能结构>
接着,说明本实施方式的与服务/节点关系的变更有关的网络系统1整体的功能结构。图38是示出第十八实施方式的网络系统1整体的功能结构的第四框图。图39是示出第十八实施方式的网络系统1整体的功能结构的第五框图。
参照图38,存在对应于第一服务的第一保持连接服务器200A和第二保持连接服务器200B与很多的客户端100进行保持连接、对应于第二服务的第三保持连接服务器200C和第四保持连接服务器200D与少的客户端100进行保持连接的情况。换言之,存在对应于第一服务的保持连接服务器200每一台正在保持连接中的客户端100的个数以及对应于第二服务的保持连接服务器200每一台正在保持连接中的客户端100的个数有很大不同的情况。
本实施方式的监视服务器800通过参照连接ID/节点对应关系DB 520,判断正在连接中的客户端100的个数是否根据保持连接服务器200而有很大不同。而且,监视服务器800根据判断结果以正在连接中的客户端的个数在保持连接服务器200之间没有很大不同的方式变更服务/节点的对应关系。
例如,监视服务器800也可以对多个保持连接服务器200的每一个判断正在连接中的客户端100的个数是否多于规定值。而且,在任一个保持连接服务器200正在连接中的客户端的个数多于规定值的情况下,监视服务器800在服务器/节点对应关系D 600中增加对应于与正在连接中的客户端的个数多于规定值的第一保持连接服务器200A对应的服务的保持连接服务器200。具体地,把与正在连接中的客户端100的个数少的第三保持连接服务器200C对应的服务变更为与正在连接中的客户端的个数多于规定值的第一保持连接服务器200A对应的服务。或者,监视服务器800启动正处于停止中的保持连接服务器200,把与该保持连接服务器200对应的服务设定为与正在连接中的客户端的个数多于规定值的第一保持连接服务器200A对应的服务。
或者,监视服务器800也可以关于正在连接中的客户端100的个数多的第一保持连接服务器200A和正在连接中的客户端100的个数少的第三保持连接服务器200,判断第一保持连接服务器200正连接中的客户端的个数是否为第三保持连接服务器200C正连接中的客户端100的个数的2倍以上。而且,在第一保持连接服务器200A正连接中的客户端的个数为第三保持连接服务器200C正连接中的客户端100的个数的2倍以上的情况下,监视服务器800也可以在服务器/节点对应关系D 600中减少对应于与第三保持连接服务器200C对应的服务的保持连接服务器200、增加对应于与第一保持连接服务器200A对应的服务的保持连接服务器200。
由此,如图39所示,利用第一服务的客户端100流向第三保持连接服务器200C一方,利用第二和第三服务的客户端100集中于第四保持连接服务器200D。即,能够防止只有对应于受欢迎的服务(例如第一服务)的保持连接服务器200(例如第一保持连接服务器200A和第二保持连接服务器200B)正在连接中的客户端100的个数增加过多。
<客户端中的节点选择处理>
接着,说明本实施方式的客户端100中的节点选择处理。图40是示出本实施方式的客户端100中的节点选择处理的流程图。
参照图40,CPU 110根据保存在存储器120的程序所包括的指示执行以下处理。CPU110在开始用于利用服务的保持连接时,将包括确定该服务的信息、例如服务ID的节点列表请求通过通信接口160发送到第一辅助服务器600C(步骤S102)。CPU 110判断是否通过通信接口160从第一辅助服务器600C接收到节点列表(步骤S104)。CPU 110在没有从第一辅助服务器600C接收到节点列表时(步骤S104中为“否”的情况),重复自步骤S102起的处理。
CPU 110在从第一辅助服务器600C接收到节点列表时(步骤S104中为“是”的情况),从该节点列表选择一个保持连接服务器200(步骤S106)。CPU 110利用WebSocket协议,通过通信接口160开始与所选择的保持连接服务器200之间的保持连接(步骤S108)。即,CPU110执行自图37 中的步骤S010起的处理。
<第一辅助服务器600C中的节点列表提供处理>
接着,说明本实施方式的第一辅助服务器600C中的节点列表提供处理。图41是示出本实施方式的第一辅助服务器600C中的节点列表提供处理的流程图。
参照图41,CPU 610根据保存在存储器620的程序所包括的指示,执行以下的处理。CPU 610判断是否通过通信接口660受理来自客户端100的节点列表请求(步骤S202)。CPU610重复步骤S202的处理直到从客户端100接收到节点列表请求为止(步骤S202中为“否”的情况)。
CPU 610当接收到来自客户端100的节点列表请求时(步骤S202中为“是”的情况),通过参照服务/节点对应关系DB 510,作成与节点列表请求所包括的服务ID对应的保持连接服务器200的地址的列表来作为节点列表(步骤S204)。CPU 610通过通信接口660将节点列表发送到客户端100(步骤S206)。
<监视服务器800中的服务/节点对应关系变更处理>
接着,说明本实施方式的监视服务器800中的服务/节点对应关系变更处理。图42是示出本实施方式的监视服务器800中的对应关系变更处理的流程图。
参照图42,CPU 810根据保存在存储器820的程序所包括的指示执行以下的处理。CPU 810参照未图示的时钟,判断从前次的是否要变更对应关系的判断时起是否经过了规定时间(步骤S302)。CPU 810重复步骤S302的处理直到经过规定时间为止(步骤S302中为“否”的情况)。
CPU 810在经过了规定时间的情况下(步骤S302中为“是”的情况),取得连接ID/节点对应关系DB 520的数据(步骤S304)。CPU 810判断是否需要变更服务与保持连接服务器200的对应关系(步骤S306)。在此,CPU 810判断是否不存在正在连接中的客户端100的个数过多的保持连接服务器200。但是,如后面记述的那样,CPU 810也可以根据每一个保持连接服务器200的推送频度、每一个保持连接服务器200的发送数据量、每一个保持连接服务器200的负荷等来判断是否要变更对应关系。
CPU 810在判断为不需要变更服务与保持连接服务器200的对应关系的情况下(步骤S308中为“否”的情况),重复自步骤S302起的处理。
CPU 810在判断为需要变更服务与保持连接服务器200的对应关系的情况下(步骤S308中为“是”的情况),通过通信接口160变更服务/节点对应关系DB 510中的服务ID与保持连接服务器200之间的对应关系(步骤S310)。CPU 810重复自步骤S302起的处理。
像这样,在本实施方式的网络系统1中,因为使应用服务器300或服务与保持连接服务器200对应,所以能够对与仅仅一部分的应用服务器300或一部分的服务有关的保持连接服务器200进行维护、提高仅仅一部分的应用服务器300或一部分的服务的保持连接服务器200的规格、或者使与仅仅一部分的应用服务器300或一部分的服务对应的保持连接服务器200增加或减少。
另外,因为能够动态地变更应用服务器300或服务与保持连接服务器200之间的关系,所以能够减低由于访问仅集中于受欢迎的服务而导致客户端100不能利用服务的可能性、不能顺利地进行通过保持连接进行的数据的发送和接收的可能性。也就是说,在本实施方式的网络系统1中,能够按每个服务对保持连接服务器200进行维护,同时能够减低负荷仅集中于一部分的保持连接服务器200的可能性。
<第十九实施方式>
接着,说明第十九实施方式。第十八实施方式的网络系统1是单纯地利用服务/节点的对应关系的网络系统。然而,本实施方式的网络系统1是保持连接服务器200按服务和付费的有无而不同的网络系统。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构以及与保持连接有关的装置间的数据交换,与第十八实施方式的相同,因此在此不重复说明。
<服务/节点对应关系DB>
首先,说明在本实施方式的网络系统1中利用的服务/节点对应关系DB 510。此外,图43是示出第十九实施方式的网络系统1整体的功能结构的框图。
参照图43,服务/节点对应关系DB 510包括应用服务器300所提供的服务、与保持连接服务器200实现的节点有关的信息以及示出是否为有偿服务的信息之间的对应关系510B。进一步地,服务/节点对应关系DB 510还包括用于确定客户端的信息、即客户端ID与示出有无付费的信息之间的对应关系510C。
此外,在此的与节点有关的信息也可以是保持连接服务器200的地址、也可以是确定保持连接服务器200的ID。在与节点有关的信息是确定保持连接服务器200的ID的情况下,服务/节点对应关系DB 510存储确定保持连接服务器200的ID与保持连接服务器200的地址之间的对应关系。
由此,第一辅助服务器600C能够对应于来自客户端100的请求,作成与客户端100将要利用的服务对应的节点的列表。在本实施方式中,第一辅助服务器600C从服务/节点对应关系DB 510抽出对应于由客户端100指定的服务的保持连接服务器200的地址的列表。
<与保持连接开始有关的网络系统1的功能结构>
接着,说明本实施方式的与保持连接开始有关的网络系统1整体的功能结构。
参照图43,客户端100A~100C的每个利用HTTP协议向第一辅助服务器600C请求节点列表。具体地,将要利用有偿的第一服务的客户端100A将确定第一服务的服务ID和客户端ID发送到第一辅助服务器600C。
第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510C,根据客户端ID判断是否为付费服务。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510B,根据服务ID和付费的有无,作成第一服务中的有偿服务用的节点列表。第一辅助服务器600C将节点列表发送到客户端100A。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]这样的数据发送到客户端100。
客户端100A参照节点列表,尝试与对应于有偿的第一服务的保持连接服务器200A进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
同样地,将要利用无偿的第一服务的客户端100B把确定第一服务的服务ID和客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510C,根据客户端ID判断是否为付费服务。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510B,根据服务ID和付费的有无,作成第一服务中的无偿服务用的节点列表。
第一辅助服务器600C将节点列表发送到客户端100B。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example03.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100B参照节点列表,尝试与对应于无偿的第一服务的保持连接服务器200D进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得同样地,将要利用无偿的第二服务的客户端100C把确定第二服务的服务ID和客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB510的对应关系510C,根据客户端ID判断是否为付费服务。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510B,根据服务ID和有无付费,作成第二服务中的无偿服务用的节点列表。第一辅助服务器600C将节点列表发送到客户端100C。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example04.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100C参照节点列表,尝试与对应于无偿的第二服务的保持连接服务器200D进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得像这样,多个客户端100的每个确立与对应于所利用的服务的保持连接服务器200之间的保持连接。保持连接开始后的功能和处理与第十八实施方式的相同,因此在此不重复说明。
换言之,第十八实施方式中的第一服务对应本实施方式中的有偿的第一服务,第十八实施方式中的第二服务对应本实施方式中的无偿的第一服务,第十八实施方式中的第三服务对应本实施方式中的无偿的第二服务。
<第二十实施方式>
接着,说明第二十实施方式。第十八实施方式的网络系统1为客户端100向第一辅助服务器600C发送服务ID的网络系统。而且,第一辅助服务器600C是作成与服务ID对应的节点列表的辅助服务器。然而,在本实施方式中,客户端100不给送服务ID而给送客户端ID。即,第一辅助服务器600C是确定与客户端ID对应的服务,来作成与该服务对应的节点列表的辅助服务器。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构以及与保持连接有关的装置间的数据交换,与第十八实施方式的相同,因此在此不重复说明。
<服务/节点对应关系DB>
首先,说明在本实施方式的网络系统1中利用的服务/节点对应关系DB 510。此外,图44是示出第二十实施方式的网络系统1整体的功能结构的框图。
参照图44,服务/节点对应关系DB 510包括应用服务器300提供的服务与关于保持连接服务器200实现的节点的信息之间的对应关系510A。进一步地,服务/节点对应关系DB510还包括用于确定客户端的信息、即客户端ID与应用服务器300提供的服务之间的对应关系510D。
此外,在此的与节点有关的信息也可以是保持连接服务器200的地址,也可以是确定保持连接服务器200的ID。在与节点有关的信息是确定保持连接服务器200的ID的情况下,服务/节点对应关系DB 510存储确定保持连接服务器200的ID与保持连接服务器200的地址之间的对应关系。
由此,第一辅助服务器600C能够对应于来自客户端100的请求,作成与客户端100将要利用的服务对应的节点的列表。在本实施方式中,第一辅助服务器600C从服务/节点对应关系DB 510抽出对应于客户端100利用的服务的保持连接服务器200的地址的列表。
<与保持连接开始有关的网络系统1的功能结构>
接着,说明本实施方式的与保持连接开始有关的网络系统1整体的功能结构。
参照图44,客户端100A~100C的每个利用HTTP协议向第一辅助服务器600C请求节点列表。具体地,将要利用第一服务的客户端100A、把用于确定客户端的客户端ID发送到第一辅助服务器600C。
第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510D,确定与客户端ID对应的服务ID。而且,第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510A,作成与该服务ID对应的节点列表。第一辅助服务器600C将节点列表发送到客户端100A。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”,“ws://example03.com:18080/cpush-server/echo”]这样的数据发送到客户端100。
客户端100A参照节点列表,尝试与对应于第一服务的保持连接服务器200A进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得同样地,将要利用第二服务的客户端100B将客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510D,确定与客户端ID对应的服务ID。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510A,作成与该服务ID对应的节点列表。第一辅助服务器600C将节点列表发送到客户端100B。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example04.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100B参照节点列表,尝试与对应于第二服务的保持连接服务器200D进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得同样地,将要利用第三服务的客户端100C将客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510D,确定与客户端ID对应的服务ID。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510A,作成与该服务ID对应的节点列表。在此,节点列表包括与第三服务对应的第五保持连接服务器(未图示)的地址。第一辅助服务器600C将节点列表发送到客户端100C。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example05.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100C参照节点列表,尝试与对应于第三服务的第五保持连接服务器进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得像这样,多个客户端100确立与多个保持连接服务器200之间的保持连接。保持连接开始后的功能和处理与第十八实施方式的相同,因此在此不重复说明。
<第二十一实施方式>
接着,说明第二十一实施方式。第十九实施方式的网络系统1为客户端100向第一辅助服务器600C给送服务ID和客户端ID的网络系统。而且,第一辅助服务器600C是作成与服务ID和客户端ID对应的节点列表的辅助服务器。然而,在本实施方式中,客户端100不给送服务ID而给送客户端ID。即,第一辅助服务器600C是确定与客户端ID对应的服务,作成与该服务对应的节点列表的辅助服务器。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构以及与保持连接有关的装置间的数据交换,与第十八实施方式的相同,因此在此不重复说明。
<服务/节点对应关系DB>
首先,说明在本实施方式的网络系统1中利用的服务/节点对应关系DB 510。此外,图45是示出第二十一实施方式的网络系统1整体的功能结构的框图。
参照图45,服务/节点对应关系DB 510包括应用服务器300提供的服务、与保持连接服务器200实现的节点有关的信息、以及示出是否为有偿服务的信息之间的对应关系510B。进一步地,服务/节点对应关系DB 510还包括用于确定客户端的信息、即客户端ID、应用服务器300提供的服务、以及示出有无付费的信息之间的对应关系510E。
此外,在此的与节点有关的信息也可以是保持连接服务器200的地址,也可以是确定保持连接服务器200的ID。在与节点有关的信息是确定保持连接服务器200的ID的情况下,服务/节点对应关系DB 510存储确定保持连接服务器200的ID与保持连接服务器200的地址之间的对应关系。
由此,第一辅助服务器600C能够对应于来自客户端100的请求,作成与客户端100将要利用的服务对应的节点的列表。在本实施方式中,第一辅助服务器600C从服务/节点对应关系DB 510抽出与客户端100利用的服务对应的保持连接服务器200的地址的列表。
<与保持连接开始有关的网络系统1的功能结构>
接着,说明本实施方式的与保持连接开始有关的网络系统1整体的功能结构。
参照图45,客户端100A~100C的每个利用HTTP协议向第一辅助服务器600C请求节点列表。具体地,将要利用有偿的第一服务的客户端100A把用于确定客户端的客户端ID发送到第一辅助服务器600C。
第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510E,确定与客户端ID对应的服务ID和付费的有无。而且,第一辅助服务器600C参照服务/节点对应关系DB510的对应关系510B,作成与该服务ID和付费的有无对应的节点列表。在此,节点列表包括与有偿的第一服务对应的第一保持连接服务器200A的地址以及第二保持连接服务器200B的地址。第一辅助服务器600C将节点列表发送到客户端100A。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example01.com:18080/cpush-server/echo”,“ws://example02.com:18080/cpush-server/echo”]这样的数据发送到客户端100。
客户端100A参照节点列表,尝试与对应于有偿的第一服务的保持连接服务器200A进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得同样地,将要利用无偿的第一服务的客户端100B将客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510E,确定与客户端ID对应的服务ID和付费的有无。第一辅助服务器600C参照服务/节点对应关系DB510的对应关系510B,作成与该服务ID和付费的有无对应的节点列表。在此,节点列表包括与无偿的第一服务对应的第三保持连接服务器200C的地址。第一辅助服务器600C将节点列表发送到客户端100B。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example03.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100B参照节点列表,尝试与对应于无偿的第一服务的保持连接服务器200C进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得同样地,将要利用无偿的第二服务的客户端100C将客户端ID发送到第一辅助服务器600C。第一辅助服务器600C参照服务/节点对应关系DB 510的对应关系510E,确定与客户端ID对应的服务ID和付费的有无。第一辅助服务器600C参照服务/节点对应关系DB510的对应关系510B,作成与该服务ID和付费的有无对应的节点列表。在此,节点列表包括与无偿的第二服务对应的第四保持连接服务器200的地址。第一辅助服务器600C将节点列表发送到客户端100C。例如,作为节点列表,第一辅助服务器将“handshakeUrl”:[“ws://example04.com:18080/cpush-server/echo”]这样的数据发送到客户端100。客户端100C参照节点列表,尝试与对应于无偿的第二服务的保持连接服务器200D进行连接。关于保持连接的开始处理,与第十八实施方式的相同,因此在此不重复说明。
使得像这样,多个客户端100确立与多个保持连接服务器200之间的保持连接。保持连接开始后的功能和处理与第十八实施方式的相同,因此在此不重复说明。
换言之,第二十实施方式中的第一服务对应本实施方式中的有偿的第一服务,第二十实施方式中的第二服务对应本实施方式中的无偿的第一服务,第二十实施方式中的第三服务对应本实施方式中的无偿的第二服务。
<第二十二实施方式>
接着,说明第二十二实施方式。在第十八实施方式中,是根据正在与保持连接服务器200保持连接中的客户端100的个数来变更服务与节点之间的对应关系。然而,虽然在第十八实施方式中简单地进行了例示,但是本实施方式的网络系统1是根据保持连接服务器200的推送频度来变更服务与节点之间的对应关系的网络系统。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、服务/节点对应关系DB 510、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构、与保持连接开始有关的网络系统1的功能结构、与保持连接有关的装置间的数据交换、客户端中的节点选择处理、第一辅助服务器600C中的节点列表提供处理以及监视服务器800中的对应关系变更处理,与第十八实施方式的相同,因此在此不重复说明。
<与服务/节点关系变更有关的网络系统1的功能结构>
以下,主要说明与服务/节点关系变更有关的网络系统1的功能结构。图46是示出第二十二实施方式的网络系统1整体的功能结构的第一框图。图47是示出第二十二实施方式的网络系统1整体的功能结构的第二框图。
参照图46,存在对应于第一服务的第一保持连接服务器200A和第二保持连接服务器200B的数据推送的频度高、对应于第二服务的第三保持连接服务器200C和第四保持连接服务器200D的数据推送的频度低的情况。这可能是因为对应于第一服务的保持连接服务器200中的每一台正在保持连接中的客户端100的个数多、对应于第二服务的保持连接服务器200中的每一台正在保持连接中的客户端100的个数少。或者,可能是第一服务需要频繁地进行数据推送、第二服务只是有时需要进行数据推送。
在本实施方式中,网络系统1包括保存每个服务ID每单位时间的推送次数的监视用DB 900B。而且,本实施方式的监视服务器800B通过参照每个服务的推送次数,判断是否需要变更服务/节点的对应关系。
例如,监视服务器800B把每个服务ID的每单位时间的推送次数除以与该服务对应的保持连接服务器200的个数。而且,监视服务器800B以增加与每单位时间的一个保持连接服务器200的推送次数多的服务对应的保持连接服务器200、减少与每单位时间的一个保持连接服务器200的推送次数少的服务对应的保持连接服务器200的方式,更新服务/节点对应关系DB 510。即,如图47所示,监视服务器800B使与推送频度高的第一服务对应的保持连接服务器200的个数增加、使与推送频度低的第二服务对应的保持连接服务器200的个数减少。
此外,如后面记述的那样,监视服务器800B也可以使与每单位时间的一个保持连接服务器200的推送次数少的服务对应的保持连接服务器200中的任一个休眠或电源关闭。由此,能够减低网络系统1的运转成本。
<第二十三实施方式>
在第二十二实施方式中,是根据多个保持连接服务器200的每个的推送频度来变更服务与节点之间的对应关系。然而,虽然在第十八实施方式中也是简单地例示,但是也可以是如本实施方式那样代替推送频度而根据多个保持连接服务器200的每个利用WebSocket协议发送的数据量来变更服务与节点之间的对应关系。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、服务/节点对应关系DB 510、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构、与保持连接开始有关的网络系统1的功能结构、与保持连接有关的装置间的数据交换、客户端中的节点选择处理、第一辅助服务器600C中的节点列表提供处理以及监视服务器800中的对应关系变更处理,与第十八实施方式的相同,因此在此不重复说明。
<与服务/节点关系变更有关的网络系统1的功能结构>
以下,主要说明与服务/节点关系变更有关的网络系统1的功能结构。图48是示出第二十三实施方式的网络系统1整体的功能结构的第一框图。图49是示出第二十三实施方式的网络系统1整体的功能结构的第二框图。
参照图48,存在来自对应于第一服务的第一保持连接服务器200A和第二保持连接服务器200B的发送数据量多、来自对应于第二服务的第三保持连接服务器200C和第四保持连接服务器200D的发送数据量少的情况。这可能是因为对应于第一服务的保持连接服务器200中的每一台正在保持连接中的客户端100的个数多、对应于第二服务的保持连接服务器200中的每一台正在保持连接中的客户端100的个数少。或者,可能是第一服务需要频繁地进行数据推送、第二服务只是有时需要进行数据推送。或者,可能是第一服务需要进行大容量的数据推送、第二服务只要进行小容量的数据推送即可。
在本实施方式中,网络系统1包括保存每个服务ID的每单位时间的发送数据量的监视用DB 900C。而且,本实施方式的监视服务器800C通过参照每个服务的发送数据量来判断是否需要变更服务/节点的对应关系。
例如,监视服务器800C把每个服务ID的每单位时间的发送数据量除以与该服务对应的保持连接服务器200的个数。而且,监视服务器800C以增加与每单位时间的一个保持连接服务器200的发送数据量多的服务对应的保持连接服务器200、减少与每单位时间的一个保持连接服务器200的发送数据量少的服务对应的保持连接服务器200的方式,更新服务/节点对应关系DB 510。即,如图49所示,监视服务器800C使与发送数据量多的第一服务对应的保持连接服务器200的个数增加,使与发送数据量少的第二服务对应的保持连接服务器200的个数减少。
此外,如后面记述的那样,监视服务器800C也可以使与每单位时间的一个保持连接服务器200的发送数据量少的服务对应的保持连接服务器200中的任一个休眠或电源关闭。由此,能够减低网络系统1的运转成本。
<第二十四实施方式>
在第二十三实施方式中,是根据多个保持连接服务器200的每个的发送数据量来变更服务与节点之间的对应关系。然而,虽然在第十八实施方式中简单地进行了例示,但是也可以是如本实施方式那样,代替推送频度而根据施加于多个保持连接服务器200的每个的负荷来变更服务与节点之间的对应关系。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、服务/节点对应关系DB 510、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构、与保持连接开始有关的网络系统1的功能结构、与保持连接有关的装置间的数据交换、客户端中的节点选择处理、第一辅助服务器600C中的节点列表提供处理以及监视服务器800中的对应关系变更处理,与第十八实施方式的相同,因此在此不重复说明。
<与服务/节点关系变更有关的网络系统1的功能结构>
以下,主要说明与服务/节点关系变更有关的网络系统1的功能结构。图50是示出第二十四实施方式的网络系统1整体的功能结构的第一框图。图51是示出第二十四实施方式的网络系统1整体的功能结构的第二框图。
参照图50,存在施加于与第一服务对应的第一保持连接服务器200A和第二保持连接服务器200B的负荷重、施加于与第二服务对应的第三保持连接服务器200C和第四保持连接服务器200D的负荷轻的情况。这可能是因为与第一服务对应的保持连接服务器200中的每一台正在保持连接中的客户端100的个数多、与第二服务对应的保持连接服务器200中的每一台正在保持连接中的客户端100的个数少。或者,可能第一服务需要频繁地进行数据推送、第二服务只是有时需要进行数据推送。或者,可能是第一服务需要进行大容量的数据推送、第二服务只要进行小容量的数据推送即可。
在本实施方式中,网络系统1包括保存每个服务ID的负荷的监视用DB 900D。而且,本实施方式的监视服务器800D通过参照每个服务的负荷,判断是否需要变更服务/节点的对应关系。
例如,监视服务器800D把每个服务ID的负荷除以与该服务对应的保持连接服务器200的个数。而且,监视服务器800D以增加与一个保持连接服务器200的负荷重的服务对应的保持连接服务器200、减少与一个保持连接服务器200的负荷轻的服务对应的保持连接服务器200的方式,更新服务/节点对应关系DB 510。即,如图51所示,监视服务器800D使与负荷重的第一服务对应的保持连接服务器200的个数增加、使与负荷轻的第二服务对应的保持连接服务器200的个数减少。
此外,如后面记述的那样,监视服务器800D也可以使与一个保持连接服务器200的负荷轻的服务对应的保持连接服务器200中的任一个休眠或电源关闭。由此,能够减低网络系统1的运转成本。
<第二十五实施方式>
在第十八~二十四实施方式中,是变更多个服务与多个保持连接服务器200的组合。然而,虽然在第十八实施方式中简单地进行了例示,但是也可以如本实施方式那样,根据状况变更运行的保持连接服务器200的整体的个数。即,也可以在由保持连接进行的数据的发送和接收少时,使多个保持连接服务器200的一部分为休眠状态或电源关闭状态。
此外,关于网络系统的整体结构、客户端100的硬件结构、保持连接服务器200的硬件结构、应用服务器300的硬件结构、第一辅助服务器600C的硬件结构、服务/节点对应关系DB 510、第二辅助服务器400C的硬件结构、连接ID/节点对应关系DB 520、监视服务器800的硬件结构、与保持连接开始有关的网络系统1的功能结构、与保持连接有关的装置间的数据交换、客户端中的节点选择处理、第一辅助服务器600C中的节点列表提供处理以及监视服务器800中的对应关系变更处理,与第十八实施方式的相同,因此在此不重复说明。
<与服务/节点关系变更有关的网络系统1的功能结构>
以下,主要说明与服务/节点关系变更有关的网络系统1的功能结构。图52是示出第二十五实施方式的网络系统1整体的功能结构的第一框图。图53是示出第二十五实施方式的网络系统1整体的功能结构的第二框图。
参照图52,五个保持连接服务器200A、200B、200C、200D、200E中的一个保持连接服务器200E变为休眠状态。即,通过四个保持连接服务器200A、200B、200C、200D,可充分地维持与三个服务有关的保持连接处理。例如,关于四个保持连接服务器200A、200B、200C、200D的每个,正在连接中的客户端100的个数为1000以下。
监视服务器800D监视每一个的保持连接服务器200正在保持连接中的客户端100的数目、或每一个的保持连接服务器200的推送频度、或每一个的保持连接服务器200的发送数据量、或每一个的保持连接服务器200的负荷。而且,在每一个的保持连接服务器200正在保持连接中的客户端100的数目超过规定值、或每一个的保持连接服务器200的推送频度超过规定值、或每一个的保持连接服务器200的发送数据量超过规定值、或每一个的保持连接服务器200的负荷超过规定值的情况下,监视服务器800D使到目前为止处于待机的第五保持连接服务器200E启动。
与此同时,如图53所示,监视服务器800D在服务/节点对应关系DB 510中使启动的第五保持连接服务器200E的节点与对应于正在保持连接中的客户端100的数目超过规定值的保持连接服务器200的服务相对应。或者,监视服务器800D在服务/节点对应关系DB 510中使启动的第五保持连接服务器200E的节点与对应于推送频度超过规定值的保持连接服务器200的服务相对应。或者,监视服务器800D在服务/节点对应关系DB 510中使启动的第五保持连接服务器200E的节点与对应于发送数据量超过规定值的保持连接服务器200的服务相对应。或者,监视服务器800D在服务/节点对应关系DB 510中使启动的第五保持连接服务器200E的节点与对应于负荷超过规定值的保持连接服务器200的服务相对应。由此,在以后成为使得尝试利用该服务的客户端100与第五保持连接服务器200E进行保持连接。
此外,第五保持连接服务器200也可以是在热备份状态下待机的保持连接服务器,也可以是在冷备份状态下待机的保持连接服务器。在本实施方式中,在将第五保持连接服务器200添加在保持连接服务器节点群时,设为监视服务器800D仅更新服务/节点对应关系。然而,在将第五保持连接服务器200添加在保持连接服务器节点群时,也可以是监视服务器800D一边更新服务/节点对应关系,还一边变更DNS(Domain Name System:域名系统)服务器的保持连接服务器200的地址。
反过来,当每一个的保持连接服务器200正在保持连接中的客户端100的数目低于其它的规定值、或每一个的保持连接服务器200的推送频度低于其它的规定值、或每一个的保持连接服务器200的发送数据量低于其它的规定值、或每一个的保持连接服务器200的负荷低于其它的规定值时,监视服务器800E使与不受欢迎的服务对应的保持连接服务器200(例如第五保持连接服务器200E)转变为休眠状态、或关闭电源。
如图52所示,监视服务器800E在服务/节点对应关系DB 510中删除处于休眠状态或关闭了电源的第五保持连接服务器200E的节点与服务的记录。
<第二十六实施方式>
在第十九和第二十一实施方式中,是根据有无付费而对保持连接服务器200进行分类。
在本实施方式中,除此之外,还可以使高规格的保持连接服务器200与有偿服务相对应、使通常的保持连接服务器200与无偿服务相对应。由此,利用有偿服务的客户端100能够更顺利地进行保持连接的数据发送和接收。
<第二十七实施方式>
在第十九和第二十一实施方式中,是根据有无付费来对保持连接服务器200进行分类。
在本实施方式中,除此之外,还可以针对有偿服务将每一个的保持连接服务器200的连接客户端的个数的上限设定得低、针对无偿服务将每一个的保持连接服务器200的连接客户端的个数的上限设定得高。即,关于有偿服务,当每一个的保持连接服务器200的连接客户端的个数增加时,监视服务器800提前使对应的保持连接服务器200的个数增加。反过来,关于无偿服务,即使每一个的保持连接服务器200的连接客户端的个数增加,监视服务器800也不增加对应的保持连接服务器200的个数。
或者,也可以是针对有偿服务设定每一个的保持连接服务器200的连接客户端的个数的上限,针对无偿服务不设定每一个的保持连接服务器200的连接客户端的个数的上限。
<第二十八实施方式>
在第十八~第二十七实施方式中,第二辅助服务器400C在把来自应用服务器300的数据分配给保持连接服务器200时,通过参照连接ID/节点对应关系DB 520,来向正在与作为推送目的地的客户端100进行保持连接中的保持连接服务器200分配数据。
然而,在本实施方式中,第二辅助服务器400C在把来自应用服务器300的数据分配给保持连接服务器200时,通过参照服务/节点对应关系DB 510,向与应用服务器300对应的保持连接服务器200中的任一个分配数据。例如,第二辅助服务器400C向与应用服务器300对应的保持连接服务器200中的负荷少的保持连接服务器200分配数据。
而且,保持连接服务器200的CPU 210通过利用通信接口260,并通过参照连接ID/节点对应关系DB 520,向正在与作为推送目的地的客户端100进行保持连接中的保持连接服务器200传送数据。当然,保持连接服务器200的CPU 210对于正在与自身保持连接中的客户端100,通过利用WebSocket协议,来通过通信接口260直接推送数据。
<第二十九实施方式>
在第十八~第二十八实施方式中,是第一辅助服务器600C根据来自客户端100的数据作成与客户端100所利用的服务对应的保持连接服务器200的列表。
然而,第一辅助服务器600C也可以将所有的保持连接服务器200的地址的列表提供给客户端100。例如,第一辅助服务器600C将对应关系510A(620B、620C、620D、620E)发送到客户端100。而且,客户端100的CPU 110参照对应关系510A,选择与自身所利用的服务对应的保持连接服务器200。此时,CPU 110可以暂时作成节点列表、也可以不作成。CPU 110利用WebSocket协议,通过通信接口160与所选择的保持连接服务器200进行保持连接。
<第三十实施方式>
在第十八~第二十九实施方式中,第一辅助服务器600C是与保持连接服务器200和应用服务器300不同的装置。
然而,第一辅助服务器600C也可以是与保持连接服务器200中的任一个、或应用服务器300中的任一个相同的装置。即,保持连接服务器200中的任一个、或应用服务器300中的任一个也可以兼具第一辅助服务器600C的作用。
<第三十一实施方式>
在第十八~第三十实施方式中,监视服务器800是与保持连接服务器200、应用服务器300以及第一辅助服务器600C不同的装置。
然而,监视服务器800也可以是与保持连接服务器200中的任一个、或应用服务器300的任一个、或第一辅助服务器600C相同的装置。即,保持连接服务器200的任一个、或应用服务器300的任一个、或第一辅助服务器600C也可以兼具监视服务器800的作用。
<第三十二实施方式>
在第十八~第三十一实施方式中,应用服务器300提供一个服务,一个服务是由一个应用服务器300提供的服务。
然而,一个服务也可以由多个应用服务器300提供。在这种情况下,也与第十八~第三十一实施方式同样地,保持连接服务器200也可以与应用服务器300对应、也可以与服务对应。
反过来,应用服务器300也可以与多个服务对应。在这种情况下,也与第十八~第三十一实施方式同样地,保持连接服务器200也可以与应用服务器300对应、也可以与服务对应。
<第三十三实施方式>
在第十八~第三十二实施方式中,如图34的步骤S009所示,是在客户端100与保持连接服务器200开始保持连接时,客户端100除了认证信息以外还从第一辅助服务器600C取得与服务对应的节点列表。
然而,在客户端100与保持连接服务器200开始保持连接时,客户端100除了认证信息以外还可以从保持连接服务器200或应用服务器300取得与服务对应的节点列表(图34中的步骤S009)。即,保持连接服务器200或应用服务器300也可以兼具第一辅助服务器600C的作用的一部分。
更详细地,保持连接服务器200或应用服务器300也可以在从客户端100接受节点列表的请求时担负作成与服务对应的节点列表的角色以及将节点列表提供到客户端100的角色。或者,也可以在从客户端100接受节点列表的请求时,第一辅助服务器600C进行节点列表的作成,保持连接服务器200或应用服务器300担负从第一辅助服务器600C取得节点列表并将该节点列表提供到客户端100的角色。
<第三十四实施方式>
第十八~第三十二实施方式中,如图34的步骤S009所示那样,是在客户端100与保持连接服务器200开始保持连接时,客户端100除了认证信息以外还从第一辅助服务器600C取得与服务对应的节点列表。
然而,也可以在客户端100与保持连接服务器200开始保持连接时,应用服务器300把与服务对应的节点列表和认证信息一起发送到客户端100(图34中的步骤S004)。在这种情况下,不需要图34中的步骤S009。
更详细地,应用服务器300也可以在从客户端100接受认证信息的请求时,担负作成与服务对应的节点列表的角色以及将节点列表提供到客户端100的角色。或者,也可以在从客户端100接受认证信息的请求时,第一辅助服务器600C进行节点列表的作成,保持连接服务器200或应用服务器300担负从第一辅助服务器600C取得节点列表并将该节点列表提供给客户端100的角色。
<其它应用例>
不用说,本发明当然也能够应用于通过向系统或装置供给程序来达成的情况。而且,通过向系统或装置供给保存有通过用于达成本发明的软件表示的程序的存储介质(或存储器),通过由该系统或装置的计算机(或CPU、MPU)读出并执行保存在存储介质中的程序代码,从而能够享受本发明的效果。
在这种情况下,从存储介质读出的程序代码本身实现了所述实施方式的功能,存储有该程序代码的存储介质构成了本发明。
另外,不用说,通过执行计算机所读出的程序代码,不仅实现了所述实施方式的功能,而且当然还包括如下的情况:根据该程序代码的指示,在计算机上运行的OS(操作系统)等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。
进一步地,不用说,当然还包括如下的情况:从存储介质读出的程序代码在被写入到插入于计算机的功能扩展端口、与计算机连接的功能扩展单元所具备的其它记录介质之后,根据该程序代码的指示,该功能扩展端口、功能扩展单元所具备的CPU等进行实际处理的一部分或全部,通过该处理实现所述实施方式的功能。
应该考虑到,本次公开的实施方式是所有点都是例示而不是进行限制的实施方式。本发明的范围不由所述说明而由权利要求书示出,意图包括与权利要求书同等的意思以及范围内的所有变更。

Claims (14)

1.一种网络系统,具备:
电子设备;以及
保持连接服务器,能够与所述电子设备保持连接,
所述保持连接服务器向所述电子设备发送包括与所述保持连接服务器有关的重新连接用间隔的信息,
所述电子设备在判断为不是起因于所述电子设备而保持连接被切断时,在待机根据所述重新连接用间隔计算出的时间之后重复用于进行保持连接的处理直到与所述保持连接服务器之间的保持连接成功为止,在判断为起因于所述电子设备而保持连接被切断时,不执行所述待机而开始用于进行保持连接的处理。
2.根据权利要求1所述的网络系统,
所述保持连接服务器针对每个所述电子设备作成以所述重新连接用间隔作为上限的等待时间,向所述电子设备发送所述等待时间,
所述电子设备在与所述保持连接服务器之间的保持连接被切断时,在待机所述等待时间的量后进行用于保持连接的处理。
3.根据权利要求1所述的网络系统,
所述电子设备作成以所述重新连接用间隔作为上限的等待时间,在与所述保持连接服务器之间的保持连接被切断时,在待机所述等待时间的量后进行用于保持连接的处理。
4.根据权利要求2所述的网络系统,
所述等待时间根据由所述电子设备与所述保持连接服务器之间的保持连接进行的数据发送和接收的频度而作成。
5.根据权利要求1所述的网络系统,
所述保持连接服务器根据正在与所述保持连接服务器进行连接中的多个电子设备的数目和一个保持连接服务器每一秒能够重新连接的电子设备的数目来计算所述重新连接用间隔。
6.根据权利要求1所述的网络系统,
作为所述保持连接服务器,具备能够与所述电子设备保持连接的多个保持连接服务器,
所述多个保持连接服务器中的至少一个向所述电子设备发送与所述多个保持连接服务器有关的信息,
所述电子设备根据所述信息依次与所述多个保持连接服务器尝试保持连接直到与所述多个保持连接服务器中的任一个之间的保持连接成功为止。
7.根据权利要求6所述的网络系统,
所述多个保持连接服务器中的至少一个根据正在与所述多个保持连接服务器连接中的多个电子设备的数目、一个保持连接服务器每一秒能够重新连接的电子设备的数目以及正在运行中的保持连接服务器的个数来计算所述重新连接用间隔。
8.根据权利要求1所述的网络系统,
所述电子设备隔开所述重新连接用间隔地重复用于进行保持连接的处理直到与所述保持连接服务器之间的保持连接成功为止。
9.根据权利要求1所述的网络系统,
所述保持连接服务器通过其它的服务器将包括所述重新连接用间隔的信息发送到所述电子设备。
10.根据权利要求1所述的网络系统,
所述电子设备在由于所述电子设备的原因而保持连接被切断时存储表示其意思的信息。
11.一种网络系统中的保持连接方法,该网络系统包括电子设备以及能够与所述电子设备保持连接的保持连接服务器,该保持连接方法具备以下步骤:
所述保持连接服务器将包括重新连接用间隔的信息发送到所述电子设备;
所述电子设备与所述保持连接服务器之间的保持连接被切断;
所述电子设备判断是否起因于所述电子设备而保持连接被切断;以及
所述电子设备在判断为不是起因于所述电子设备而保持连接被切断时,通过利用所述信息,在待机根据所述重新连接用间隔计算出的时间之后,重复用于进行保持连接的处理直到与所述保持连接服务器之间的保持连接成功为止,在判断为起因于所述电子设备而保持连接被切断时,不执行所述待机而开始用于进行保持连接的处理。
12.一种电子设备,具备:
能够与保持连接服务器保持连接的通信接口;以及
处理器,用于在判断为不是起因于电子设备而保持连接被切断时,通过利用与所述保持连接服务器有关的信息,在待机根据从所述保持连接服务器中的任一个供给的重新连接用间隔计算出的时间之后,重复用于进行保持连接的处理直到与所述保持连接服务器之间的保持连接成功为止,在判断为起因于所述电子设备而保持连接被切断时,不执行所述待机而开始用于进行保持连接的处理。
13.根据权利要求12所述的电子设备,
还具备存储器,
所述处理器在由于所述电子设备的原因而保持连接被切断时将表示其意思的信息存储于所述存储器。
14.一种存储有在包括处理器和通信接口的电子设备中利用的程序的存储介质,所述程序使所述处理器执行如下步骤:
通过所述通信接口从保持连接服务器接收包括重新连接用间隔的信息;
判断是否起因于所述电子设备而保持连接被切断;以及
在判断为不是起因于所述电子设备而保持连接被切断时,通过利用所述信息,在待机根据所述重新连接用间隔计算出的时间之后,重复用于进行与所述保持连接服务器保持连接的处理直到与所述保持连接服务器之间的保持连接成功为止,在判断为起因于所述电子设备而保持连接被切断时,不执行所述待机而开始用于进行保持连接的处理。
CN201410694568.8A 2013-11-27 2014-11-27 网络系统、保持连接方法、电子设备、服务器 Expired - Fee Related CN104683435B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2013-244546 2013-11-27
JP2013244547A JP6057879B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2013244546A JP5858973B2 (ja) 2013-11-27 2013-11-27 ネットワークシステム、常時接続方法、電子機器、サーバ、プログラム
JP2013-244547 2013-11-27
JP2014005058A JP5940566B2 (ja) 2014-01-15 2014-01-15 ネットワークシステム、常時接続方法、サーバ、電子機器、プログラム
JP2014-005058 2014-01-15

Publications (2)

Publication Number Publication Date
CN104683435A CN104683435A (zh) 2015-06-03
CN104683435B true CN104683435B (zh) 2018-12-14

Family

ID=53183577

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410694568.8A Expired - Fee Related CN104683435B (zh) 2013-11-27 2014-11-27 网络系统、保持连接方法、电子设备、服务器

Country Status (2)

Country Link
US (1) US20150149524A1 (zh)
CN (1) CN104683435B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170034252A1 (en) * 2015-07-31 2017-02-02 Fuhu, Inc. Masterless websocket server system
WO2018034600A1 (en) * 2016-08-16 2018-02-22 Telefonaktiebolaget Lm Ericsson (Publ) Supporting or performing distribution of a paging message
CN107547563A (zh) * 2017-09-25 2018-01-05 新华三信息安全技术有限公司 一种认证方法及装置
US10721296B2 (en) * 2017-12-04 2020-07-21 International Business Machines Corporation Optimized rolling restart of stateful services to minimize disruption
CN108366277B (zh) * 2018-03-30 2021-06-15 武汉斗鱼网络科技有限公司 一种弹幕服务器连接方法、客户端及可读存储介质
CN111416849B (zh) * 2020-03-13 2021-07-13 腾讯科技(深圳)有限公司 断线重连方法、装置、系统和计算机设备
JP2023076038A (ja) 2021-11-22 2023-06-01 ブラザー工業株式会社 サーバシステム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012080179A (ja) * 2010-09-30 2012-04-19 Ricoh Co Ltd 通信システム、クライアント端末、クライアント端末用プログラムおよび通信システム用プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870258B2 (en) * 2001-08-08 2011-01-11 Microsoft Corporation Seamless fail-over support for virtual interface architecture (VIA) or the like
KR100542361B1 (ko) * 2003-02-12 2006-01-10 삼성전자주식회사 피피피오이 네트워크 시스템 및 이 시스템의 접속 방법
JP4251207B2 (ja) * 2006-04-28 2009-04-08 ソニー株式会社 サーバ装置、再接続制御方法、機器装置、再接続方法、プログラム、および記録媒体
US8386609B2 (en) * 2007-11-09 2013-02-26 International Business Machines Corporation Reconnection to and migration of electronic collaboration sessions
US8831817B2 (en) * 2011-03-07 2014-09-09 Ford Global Technologies, Llc Methods and apparatus for lost connection handling
JP2013051571A (ja) * 2011-08-31 2013-03-14 Seiko Epson Corp 処理端末および処理方法
US9560126B2 (en) * 2013-05-06 2017-01-31 Alcatel Lucent Stateless load balancing of connections

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012080179A (ja) * 2010-09-30 2012-04-19 Ricoh Co Ltd 通信システム、クライアント端末、クライアント端末用プログラムおよび通信システム用プログラム

Also Published As

Publication number Publication date
CN104683435A (zh) 2015-06-03
US20150149524A1 (en) 2015-05-28

Similar Documents

Publication Publication Date Title
CN104683435B (zh) 网络系统、保持连接方法、电子设备、服务器
CN105637805B (zh) 增强移动备用信道以解决有线线路网络中的节点故障
CN112511611B (zh) 节点集群的通信方法、装置、系统及电子设备
CN103001999B (zh) 用于公用云网络的私有云服务器、智能装置客户端及方法
JP2019527988A (ja) パケット伝送
JP5309496B2 (ja) 認証システムおよび認証方法
CN105554758B (zh) 一种基于云平台的多个WiFi网络统一认证系统和方法
WO2013132909A1 (ja) ホスト提供システム及び通信制御方法
WO2019134595A1 (zh) 配置系统、客户端设备、嵌入式设备配置方法及存储介质
CN106453349B (zh) 账号登录方法及装置
WO2017107871A1 (zh) 访问控制方法和网络设备
CN109561054A (zh) 一种数据传输方法、控制器及接入设备
CN111049946A (zh) 一种Portal认证方法、系统及电子设备和存储介质
CN115567594A (zh) 微服务请求处理方法、装置、计算机设备及存储介质
JP2006261827A (ja) ネットワーク機器、その管理装置、そのネットワーク接続方法およびそのネットワーク接続管理方法
CN105357239A (zh) 提供服务的方法和装置、获取服务的方法及装置
JP5917678B1 (ja) 情報処理装置、方法およびプログラム
CN101626345A (zh) 一种报文处理方法及家庭网关中的实时流协议应用层网关
CN107547680A (zh) 一种数据处理方法及装置
CN108123955A (zh) 安全表项的管理方法、装置、设备及机器可读存储介质
CN201657327U (zh) 一种移动设备与安全接入网关间密钥交换协商系统
KR101058275B1 (ko) 통신 단말기 및 그 제어방법과, p2p 서버 시스템 및 그 제어방법
CN107547618A (zh) 一种会话拆除方法和装置
CN111427703A (zh) 工业数据实时展示方法及系统
CN111010425A (zh) 一种服务器连接方法、负载均衡设备及电子设备

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: 20181214