服务的提供方法、装置及系统
技术领域
本发明涉及通信领域,具体而言,涉及一种服务的提供方法、装置及系统。
背景技术
通讯技术领域,有很多系统是属于可持续提供服务的集群服务器系统。这类系统一般分成终端和集群服务器平台两部分,而针对集群服务器平台,又可以分为集群入口服务器和业务服务器。其集群入口服务器包含两个模块,一个作为整个集群的统一接入模块,负责终端和业务服务器之间的信息转发。另一个为负载均衡模块,将每一个终端请求调度到一个合适的业务服务器服务。
这类集群服务器系统的架构如图1所示。其中,集群入口服务器,为保证可靠性提供了主备模式,两者对外提供统一的虚拟接口,该虚拟接口也为集群系统唯一对终端设备可见的部分,保证了终端对服务器访问的接口简洁性。负载均衡模块和所有业务服务器之间有信息交互,借以获得每个业务服务器的当前健康和负载状况。集群系统收到的终端请求,首先由统一接口模块接收,通知负载均衡服务模块进行处理,其根据各业务服务器的当前状况,将请求转发到其中一个业务服务器上,该业务服务器处理请求消息后,将提供服务的信息发到统一接口模块,转发给终端提供持续服务。
这类系统的可靠性可以从以下几个方面保证,首先集群入口服务器采用主备模式,保证了可靠性。对业务服务器采用多个的方式,由负载均衡统一调度。当其中一个业务服务器宕机后,负载均衡模块,会把终端的请求调度到另一个健康的业务服务器提供服务,保证用户服务不受影响。但是,在宕机的业务服务器上面,宕机前正在提供的服务,将不能继续提供,该种方法只能对终端发起的新请求可以重新选择服务,不能解决当前服务不受影响的问题。
为了解决集群服务器系统的上述问题,相关技术中采用定制终端的方式,终端对当前服务的信息现场进行保留,重新发起请求时携带这些信息,新的业务处理服务器必须对终端携带来的现场信息进行处理,接续终端的服务请求。但采用这种方法,需要定制终端,在通讯技术领域,终端经常是千变万化,种类繁多的,对所有终端都定制该种服务实际使得该种方案可实施性很小。
发明内容
针对集群服务器系统中,在当前为终端提供服务的业务服务器出现故障时,重新选择的业务服务器不能提供连续服务的问题,本发明提供了一种服务的提供方法、装置及系统,以至少解决上述问题。
根据本发明的一个方面,提供了一种服务的提供方法,包括:集群服务器系统的入口服务器记录并实时更新终端的业务数据信息;所述入口服务器确认所述集群服务器系统中当前为所述终端提供服务的第一业务服务器出现故障;所述入口服务器在所述集群服务器系统中重新选取为所述终端提供服务的第二业务服务器;所述入口服务器将所述终端的业务数据信息发送给所述第二业务服务器,使所述第二业务服务器根据所述业务数据信息为所述终端提供服务。
优选地,上述入口服务器将所述终端的业务数据信息发送给所述第二业务服务器之后,所述方法还包括:所述第二业务服务器根据所述业务数据信息为所述终端提供服务。
优选地,上述第二业务服务器根据所述业务数据信息为所述终端提供服务包括:所述第二业务服务器从所述业务数据信息中获取所述第一业务服务器出现故障时为所述终端提供所述服务的中断点;所述第二业务服务器从所述中断点开始继续为所述终端提供所述服务。
优选地,上述业务数据信息包括以下至少之一:所述终端接收所述服务的地址、所述服务的位置。
优选地,上述入口服务器在所述集群服务器系统中重新选取为所述终端提供服务的第二业务服务器,包括:所述入口服务器根据所述集群服务器系统中除所述第一业务服务器之外的其余各个业务服务器的服务能力和/或当前负载状况,从所述集群服务器系统中选择所述第二业务服务器。
根据本发明的另一方面,提供了一种服务的提供装置,包括:记录模块,用于记录并实时更新终端的业务数据信息;确认模块,用于确认集群服务器系统中当前为所述终端提供服务的第一业务服务器出现故障;选择模块,用于在所述集群服务器系统中重新选取为所述终端提供服务的第二业务服务器;发送模块,用于将所述终端的业务数据信息发送给所述第二业务服务器,使所述第二业务服务器根据所述业务数据信息为所述终端提供服务。
优选地,上述选取模块包括:获取单元,用于获取所述集群服务器系统中除所述第一业务服务器之外的其余各个业务服务器的服务能力和/或当前负载状况;选择单元,用于根据获取的所述服务能力和/或当前负载状况,从所述集群服务器系统中选择所述第二业务服务器。
根据本发明的又一方面,提供了一种服务的提供系统,包括:入口服务器,包括本发明提供的上述服务的提供装置;多个业务服务器,用于为终端提供所需服务,以及在接收到所述入口服务器发送携带所述终端的业务数据信息后,根据所述业务数据信息为所述终端提供服务。
优选地,上述业务服务器包括:获取模块,用于从所述业务数据信息中获取当前为所述终端提供服务的业务服务器出现故障时为所述终端提供所述服务的中断点;提供模块,用于从获取的所述中断点开始继续为所述终端提供所述服务。
通过本发明,集群服务器系统中的入口服务器,在业务服务器为终端提供服务的过程中,记录终端的业务数据信息,从而在当前为终端提供服务的业务服务器出现故障时,新的业务服务器能够根据记录的业务数据信息继续为终端提供所需服务,提高了为终端提供服务的连续性,保证了集群服务器系统服务提供的可靠性,提高了用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的集群服务器系统构架的示意图;
图2是根据本发明实施例的服务的提供方法的流程图;
图3是根据本发明实施例的服务的提供装置的结构框图;
图4是根据本发明实施例的一种优选的服务的提供装置的结构框图;
图5是根据本发明实施例的服务的提供系统的构架示意图;
图6是根据本发明实施例一的服务的提供系统的构架示意图;
图7是根据本发明实施例一的服务的提供方法的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例中的可持续服务,是指对一个用户或终端提供一个长时间会话保持的服务,在服务一个会话期间有持续的信息交互,即为用户提供连续的服务,不会因为业务服务器出现故障而使服务中断。例如,在IPTV系统中,流媒体服务器对用户的视频点播服务,就是持续不断的向客户端发送实时媒体码流的服务。
根据本发明实施例,提供了一种服务的提供方法,可以在集群服务器系统中,实现在当前为终端提供服务的业务服务器出现故障时,重新选取的业务服务器不间断的为终端提供服务,保证集群服务器提供服务的可靠性。
图2是根据本发明实施例的服务的提供方法的流程图,如图2所示,该方法可以包括以下几个步骤(步骤S202-步骤S208):
步骤S202,集群服务器系统的入口服务器记录并实时更新终端的业务数据信息。
终端请求服务器提供服务时,可以向集群服务器系统的入口服务器发起服务请求。入口服务器选取可提供服务的业务服务器(称为第一业务服务器)为该终端提供所请求的服务。例如,入口服务器可以根据当前各个业务服务器的健康和负载状况,从集群服务器系统中选择一个提供服务的能力较好的业务服务器为终端提供所需的服务。其中,业务服务器的健康和负载状况可以包括:业务服务器是否还存活、业务服务器是否还有能力提供服务等。
入口服务器确定为终端提供服务的业务服务器后,模拟终端的服务请求行为,向确定的业务服务器发起服务请求。其中,模拟终端的请求行为是指业务服务器需要支持相应业务请求的规范和接口,通过支持相应业务请求的接口向业务服务器发送相应规范的业务请求。例如,在网络电视(Internet Protocol Television,简称为IPTV)系统中,业务服务器可以具备机顶盒的流媒体请求服务的能力,支持实时流传输协议(Real TimeStreaming Protocol,简称为RTSP)和实时传送协议(Real-time Transport Protocol,简称为RTP)。
业务服务器收到入口服务器发送的服务请求后,响应入口服务器的服务请求为入口服务器提供服务,入口服务器接收到业务服务器的服务应答后,作为服务提供者向终端提供所请求的服务。
步骤S204,入口服务器确认集群服务器系统中当前为上述终端提供服务的第一业务服务器出现故障。
当选取的业务服务器出现故障时(例如,业务服务器宕机时),入口服务器可以从集群服务器系统的各个业务服务器中,为终端选取新的业务服务器。为了保证提供服务的不间断性,在为终端提供服务的过程中,入口服务器可以记录并实时更新终端的业务数据信息,重新选取的业务服务器可以根据记录的业务数据信息重新为终端提供服务。在本发明实施例的一个优选实施方式中,上述业务数据信息可以包括:终端接收当前服务的地址、当前服务的位置等,利用这些业务数据信息,重新选择的业务服务器就能恢复到故障前的业务服务。例如,在IPTV系统中,入口服务器可以记录此次服务的终端地址和端口号,当前已经发送码流的位置,并且实时更新当前发送的码流位置。
步骤S206,入口服务器在集群服务器系统中重新选取为上述终端提供服务的第二业务服务器。
入口服务器可以实时检测为终端提供服务的业务服务器的状况,在确定为上述终端提供服务的业务服务器出现故障时,入口服务器可以从集群服务器系统的各个业务服务器中为上述终端选取新的服务器,新的服务器可以为终端提供终端所需的服务。在本发明实施例的一个优选实施方式中,入口服务器可以根据集群服务器系统中除第一业务服务器之外的其余各个业务服务器的服务能力和/或当前负载状况,从集群服务器系统中选择继续为终端提供服务的业务服务器(称为第二业务服务器)。例如,入口服务器可以通过负载均衡算法,为终端选取业务服务器,从而能够保证集群服务器系统中各个业务服务器的负载均衡,提高服务提供的可靠性。
步骤S208,入口服务器将终端的业务数据信息发送给第二业务服务器,使第二业务服务器根据该业务数据信息为上述终端提供服务。
入口服务器确定为终端提供服务的新的业务服务器(即第二服务器)后,可以向新的业务服务器发起服务请求,在服务请求中可以携带终端的业务数据信息。新的业务服务器接收到终端的业务数据信息后,可以根据该业务数据信息为终端提供所需服务。为了保证服务提供的连续性,新的业务服务器可以根据接收到的业务数据信息,确定业务服务器出现故障时为终端提供服务的中断点,为终端提供服务时可以从确定的中断点开始。因此,在本发明实施例的一个优选实施方式中,新的业务服务器根据业务数据信息为终端提供服务可以包括:新的业务服务器从业务数据信息中获取业务服务器出现故障时为终端提供服务的中断点,从获取的中断点开始继续为上述终端提供服务。例如,在IPTV系统中,根据记录的当前已经发送码流的位置,新的业务服务器从已发送码流的位置开始继续为终端发送码流,进而保证为终端提供服务的连续性,提高用户体验。
通过本发明实施例,集群服务器系统中的入口服务器,在业务服务器为终端提供服务的过程中,记录终端的业务数据信息,从而在当前为终端提供服务的业务服务器出现故障时,新的业务服务器能够根据记录的业务数据信息继续为终端提供所需服务,提高了为终端提供服务的连续性,保证了集群服务器系统服务提供的可靠性,提高了用户体验。
根据本发明实施例,还提供了一种服务提供的装置,可以位于但不限于集群服务器系统中的入口服务器中,用于实现本发明实施例提供的上述方法。
图3是根据本发明实施例的服务的提供装置的结构框图,如图3所示,本发明实施例的服务的提供装置可以包括:记录模块10、确认模块20、选择模块30和发送模块40。其中,记录模块10,用于记录并实时更新终端的业务数据信息;确认模块20,用于确认集群服务器系统中当前为终端提供服务的第一业务服务器出现故障;选择模块30,与确认模块20相耦合,在集群服务器系统中重新选取为终端提供服务的第二业务服务器;发送模块40,与选择模块30相耦合,用于将终端的业务数据信息发送给所述第二业务服务器,使第二业务服务器根据业务数据信息为终端提供服务。
入口服务器可以实时检测为终端提供服务的业务服务器的状况,在确认模块20确定为终端提供服务的业务服务器出现故障时,选择模块30可以从集群服务器系统的各个业务服务器中为上述终端选取新的服务器,新的服务器可以为终端提供终端所需的服务。例如,选择模块30可以根据集群服务器系统中除第一业务服务器之外的其余各个业务服务器的服务能力和/或当前负载状况,从集群服务器系统中选择继续为终端提供服务的业务服务器(称为第二业务服务器)。例如,入口服务器可以通过负载均衡算法,为终端选取业务服务器,从而能够保证集群服务器系统中各个业务服务器的负载均衡,提高服务提供的可靠性。
因此,在本发明实施例的一个优选实施方式中,为了实现为终端选择新的业务服务器,如图4所示,选择模块30可以包括:获取单元302,用于获取集群服务器系统中除第一业务服务器之外的其余各个业务服务器的服务能力和/或当前负载状况;选择单元304,与获取单元302相耦合,用于根据获取的各个业务服务器的服务能力和/或当前负载状况,从集群服务器系统中选择第二业务服务器。通过本优选实施方式,根据各个业务服务器的服务能力和/或当前负载状况为终端选取第二业务服务器,使得各个业务服务器负载均衡,提高了系统的稳定性和可靠性。
通过本发明实施例,集群服务器系统中的入口服务器,在业务服务器为终端提供服务的过程中,记录并实时更新终端的业务数据信息,从而在当前为终端提供服务的业务服务器出现故障时,新的业务服务器能够根据记录的业务数据信息,从服务中断的位置开始继续为终端提供所需服务,提高了为终端提供服务的连续性,保证了集群服务器系统服务提供的可靠性,提高了用户使用业务的体验。
根据本发明实施例,还提供一种服务的提供系统,可以用于实现本发明实施例提供的上述方法,提高集群服务器系统的可靠性,为终端提供连续的服务。
图5是根据本发明实施例的服务的提供系统的构架的示意图,如图5所示,该系统可以包括:入口服务器1和业务服务器2(多个)。其中,入口服务器1,可以包含本发明上述实施例提供的服务的提供装置,用于响应终端的服务请求,从多个业务服务器2中为终端选取一个为终端提供服务的业务服务器2,记录并实时更新终端的业务数据信息,以及在为终端提供服务的业务服务器2出现故障时,重新为终端选取新的业务服务器2。业务服务器2,用于为终端提供所需服务,以及在接收到入口服务器1发送携带终端的业务数据信息后,根据业务数据信息继续为终端提供服务。
终端请求服务器提供服务时,可以向入口服务器1发起服务请求。入口服务器1选取可提供服务的业务服务器2(称为第一业务服务器)为该终端提供所请求的服务。例如,入口服务器1可以根据当前各个业务服务器2是否还存活、业务服务器是否还有能力提供服务等状况,选择一个提供服务的能力较好的业务服务器2为终端提供所需的服务。
入口服务器1确定为终端提供服务的业务服务器2后,向确定的业务服务器2发起服务请求。相应的业务服务器2收到入口服务器1发送的服务请求后,响应入口服务器1的服务请求为入口服务器1提供服务,入口服务器1接收到业务服务器的服务应答后,作为服务提供者向终端提供所请求的服务。
入口服务器1可以实时检测为终端提供服务的业务服务器2的状况,在确定为终端提供服务的业务服务器2出现故障时,入口服务器1可以从各个业务服务器2中为终端选取新的业务服务器2。为了保证提供服务的连续性,在为终端提供服务的过程中,入口服务器1可以记录并实时更新终端的业务数据信息,重新选取的业务服务器2可以根据记录的业务数据信息重新为终端提供服务。
入口服务器1确定为终端提供服务的新的业务服务器2(即第二业务服务器)后,可以向新的业务服务器2发起服务请求,并在服务请求中携带终端的业务数据信息。新的业务服务器2接收到终端的业务数据信息后,可以根据接收到的业务数据信息,确定业务服务器2出现故障时为终端提供服务的中断点,为终端提供服务时可以从确定的中断点开始。因此,在本发明实施例的一个优选实施方式中,业务服务器2可以包括:获取模块,用于从业务数据信息中获取当前为终端提供服务的业务服务器2出现故障时为终端提供服务的中断点。提供模块,用于从获取的中断点开始继续为终端提供服务。
通过本发明实施例,服务提供的系统中的入口服务器在提供服务的过程中,记录并实时更新终端的业务数据信息,从而当为终端提供服务的业务服务器出现故障时,新选取的业务服务器能够根据记录的终端的业务数据信息,从服务的终端点开始继续为终端提供服务,保证了系统的可靠性和服务的连续性,提高了用户体验。
下面通过具体实施例进行描述。
实施例一
根据本发明实施例,提供了一种服务的提供方法,可以应用在如图6所示的集群服务器系统中,实现为终端提供持续的服务。
如图6所示,在集群服务器系统中的入口服务器中增加了业务中继模块,该模块的主要功能有两方面,一是具备像终端一样能向服务器请求服务的能力,二是具备业务服务器一样能向终端提供服务的能力,业务中继模块和负载均衡模块协同工作。统一接口模块收到终端请求后,转发给业务中继模块,其模拟终端发起请求到负载均衡模块返回的业务服务器。业务服务器收到请求后,不区分是集群入口服务器还是终端的请求,直接提供服务。集群服务器收到请求后,将服务应答转发给终端提供服务。同时集群入口服务器上的业务中继模块,保存每路请求的会话信息。当负载均衡模块通知业务中继模块,当前的业务服务器宕机后,业务中继模块会重新从负载均衡模块获得可提供服务的业务服务器,并携带终端服务的现场信息(即终端的业务数据信息),重新发起服务接续请求,以保持终端服务的不间断性。
图7是根据本发明实施例一的服务的提供方法的流程图,如图7所示,该方法可以包括以下几个步骤(步骤S702-步骤S724):
步骤S702,终端向集群服务器系统中的入口服务器发起服务请求。
步骤S704,入口服务上的统一接口模块,将消息转发给业务中继模块,其收到请求后,向负载均衡模块请求可服务的业务服务器。
步骤S706,负载均衡模块根据当前各业务服务器的健康和负载状况,返回最合适的业务服务器A。本步骤中的业务服务器的健康和负载状况,可以包括:哪些业务服务器还存活,哪些业务服务器还有能力提供服务,从中选择一个能力最富余的业务服务器,返回给业务中继模块。
步骤S708,业务中继模块收到后,模拟终端的请求行为,向业务服务器A发起服务请求。本步骤中,模拟终端的请求行为要求业务中继模块需要支持相应业务请求的规范和接口。例如在IPTV里的系统里,业务中继模块需要具备机顶盒的流媒体请求服务的能力,包括支持RTSP协议和RTP协议。例如,在互联网视频点播业务中,业务中继模块需要支持HTTP协议,且HTTP客户端和HTTP服务器都需要支持HTTP协议。
步骤S710,业务服务器A收到请求后,按照正常的规范和接口响应请求,提供服务。
步骤S712,业务中继模块收到业务服务器A的服务应答后,作为业务提供者向终端提供服务。
步骤S714,业务中继模块针对向终端提供的当前服务,进行记录,并定时更新。记录的信息,主要为当前的现场信息,利用这些信息就能恢复到故障前的业务服务。比如终端的接收服务的地址、当前服务的位置等。例如在IPTV系统里,业务中继模块需要记录此次服务的终端地址和端口号,当前已经发送码流的位置。并且每隔一段时间更新当前发送的码流位置。
步骤S716,负载均衡模块检测到当前服务的业务服务器A发生故障,通知业务中继模块。
步骤S718,业务中继模块收到通知消息后,向负载均衡模块重新请求获得新的业务服务器B。
步骤S720,业务中继模块搜索出与业务服务器A相关的所有被中断的服务的现场信息。携带这些现场信息向新的业务服务器B发起服务请求。
步骤S722,业务服务器B收到请求后,判断是具备有现场信息的请求。将提供满足现场信息要求的服务返回。如在IPTV系统中,业务服务器B根据请求的当前断点信息,可以根据断电发生相应的码流。保证对终端来说,可以继续从业务服务器A的中断前的服务开始服务。
步骤S724,业务中继模块收到业务服务器B的服务应答后,作为业务提供者向终端提供服务。
从以上的描述中,可以看出,本发明实施例实现了如下技术效果:集群服务器系统中的入口服务器在业务服务器为终端提供服务的过程中,记录并实时更新终端的业务数据信息,从而在当前为终端提供服务的业务服务器出现故障时,新的业务服务器能够根据记录的业务数据信息,从服务中断的位置开始继续为终端提供所需服务,提高了为终端提供服务的连续性,保证了集群服务器系统服务提供的可靠性,提高了用户使用业务的体验。同时,终端的业务数据信息记录在入口服务器中,终端无需进行记录业务数的过程,因而不需要定制终端,从而本发明具有广泛的实用性。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。