一种提高服务可靠性和用户体验的方法和装置与流程

文档序号:15521343发布日期:2018-09-25 19:32阅读:142来源:国知局

本发明涉及计算机及软件技术领域,特别地涉及一种提高服务可靠性和用户体验的方法和装置。



背景技术:

目前在联网服务的领域,在网络环境下由于网络或服务设备故障等原因并非所有来自客户端的操作都能全部成功。为确保服务设备成功接收并执行操作指令,客户端通常需要对一个操作发送相同的多次指令。网络环境、所采用的服务设备并不相同,发送的指令数目过多虽然可以提高可靠性,但同时也降低了用户体验;而发送的指令数目过少虽然可以通过减少回复等待时间来提高用户体验,但同时也降低了可靠性。服务设备对于来自客户端的操作,其响应速度是由其自身的软硬件性能决定的。通常,回复等待时间越长,操作失败的可能性越小,即服务可靠性越高;反之,回复等待时间越短,操作失败的可能性越大,即服务可靠性越低。但是回复等待时间越长则将导致用户体验越差。这导致了用户体验和服务可靠性成为一对矛盾:即,提高用户体验则可能牺牲服务可靠性,提高服务可靠性则可能牺牲用户体验。

因此在现有技术中,由于目前的技术方案在网络通信中多采用udp(userdatagramprotocol,用户数据报协议)通信。为提高服务可靠性,客户端通常在单个线程中发送多个相同的指令,并在一定时间内等待对应的服务设备的反馈结果。图1是现有技术中客户端逐个发送指令以与服务设备进行通信的示意图。如图1所示,客户端多次发送指令,在每个指令发送后的较短时间内等待来自服务设备的回复,如果没有接收到回复,则继续发送指令,直至发送预定数目的指令。图2是现有技术中客户端连续发送指令以与服务设备进行通信的示意图。如图2所示,客户端连续多次发送预定数目的指令,然后在所有指令发送后的较长时间内等待来自服务设备的回复。图1和图2中的技术方案均考虑到网络环境下udp传输的不可靠性而多次发送指令;考虑到服务设备执行操作需要一定时间而设置回复等待时间。

从上述现有技术中,可以发现现有技术存在如下缺点:回复等待时间和指令发送数目均为固定值,但服务设备的软硬件性能各有不同,所采用的网络性能也不尽相同,因此固定的回复等待时间和指令发送数目无法完全适应不同的服务设备和网络情况,也无法知道在不同的服务设备和网络性能下的回复等待时间和指令发送数目的最优值,从而无法根据当前情况下的最优值调整回复等待时间和指令发送数目以在保证服务可靠性的同时提高用户体验。



技术实现要素:

有鉴于此,本发明提供一种基于机器学习提高服务可靠性和用户体验的方法和装置,有助于根据不同的服务设备和网络情况自适应地调整回复等待时间和指令发送数目,以最大程度地利用服务设备和网络的性能,从而在保证服务可靠性的同时提高用户体验。本发明适用于诸如智能家居等联网服务领域,客户端通过机器学习策略自适应地获得与智能家居设备通信相关联的回复等待时间和指令发送数目,以在保证服务可靠性的同时提高用户体验

为实现上述目的,根据本发明的一个方面,提供了一种提高服务可靠性和用户体验的方法。

本发明的一种提高服务可靠性和用户体验的方法包括机器学习阶段和实际操作阶段,其特征在于:在所述机器学习阶段,客户端在多个线程内向服务设备发送试探数据包,并对收到针对试探数据包的试探回复的所述线程记录从发出所述试探数据包至收到所述试探回复的反馈时间,将对于收到所述试探回复的所述线程的最短反馈时间设置为回复等待时间;在所述实际操作阶段,所述客户端根据所述回复等待时间等待对在单个所述线程上所发出的指令的回复。

可选地,还包括:在所述机器学习阶段,所述客户端在多个所述线程内向所述服务设备连续发送数量不同的所述试探数据包,并对收到所述试探回复的所述线程记录所述线程内的所述试探数据包的数目,将在收到所述试探回复的所述线程中的最少试探数据包数目设置为指令发送数目;在所述实际操作阶段,所述客户端在单个所述线程内向所述服务设备发送所述指令发送数目的指令。

可选地,其特征在于:如果在所述实际操作阶段所述客户端未收到对在单个所述线程上所发出的指令的回复,则所述客户端重新进入所述机器学习阶段,以确定所述回复等待时间。

可选地,其特征在于:如果在所述实际操作阶段所述客户端未收到对在单个所述线程上所发出的指令的回复,则所述客户端重新进入所述机器学习阶段,以确定所述指令发送数目。

可选地,其特征在于:如果对于所有发出的所述试探数据包在预定时间内均未收到所述试探回复,则在所述机器学习阶段确定出现网络或所述服务设备故障。

可选地,其特征在于:采用折半测量的方法确定所述回复等待时间,即,在所述机器学习阶段,首先在所述预定时间内等待所述试探回复,如果收到所述试探回复,则尝试在所述预定时间的一半时间内等待所述试探回复,以此类推,直至无法收到所述试探回复时将前次尝试中对于收到所述试探回复的所述线程的所述最短反馈时间设置为所述回复等待时间。

可选地,其特征在于:采用折半测量的方法确定所述指令发送数目,即,在所述机器学习阶段,首先在所述线程内设置预定数目的所述试探数据包,如果收到所述试探回复,则尝试在所述线程内设置预定数目的一半的所述试探数据包,以此类推,直至无法收到所述试探回复时将前次尝试中收到所述试探回复的所述线程的所述最少试探数据包数目设置为所述指令发送数目。

为实现上述目的,根据本发明的另一方面,提供了一种提高服务可靠性和用户体验的装置。

本发明的一种提高服务可靠性和用户体验的装置包括机器学习模块和实际操作模块,其特征在于:所述机器学习模块在多个线程内向服务设备发送试探数据包,并对收到针对试探数据包的试探回复的所述线程记录从发出所述试探数据包至收到所述试探回复的反馈时间,将对于收到所述试探回复的所述线程的最短反馈时间设置为回复等待时间;所述实际操作模块根据所述回复等待时间等待对在单个所述线程上所发出的指令的回复。

可选地,还包括:所述机器学习模块在多个所述线程内向所述服务设备连续发送数量不同的所述试探数据包,并对收到所述试探回复的所述线程记录所述线程内的所述试探数据包的数目,将在收到所述试探回复的所述线程中的最少试探数据包数目设置为指令发送数目;所述实际操作模块在单个所述线程内向所述服务设备发送所述指令发送数目的指令。

可选地,其特征在于:如果所述实际操作模块未收到对在单个所述线程上所发出的指令的回复,则所述实际操作模块通知所述机器学习模块重新确定所述回复等待时间。

可选地,其特征在于:如果所述实际操作模块未收到对在单个所述线程上所发出的指令的回复,则所述实际操作模块通知所述机器学习模块重新确定所述指令发送数目。

可选地,其特征在于:如果对于所有发出的所述试探数据包在预定时间内均未收到所述试探回复,则所述机器学习模块确定出现网络或所述服务设备故障。

可选地,其特征在于:采用折半测量的方法确定所述回复等待时间,即,所述机器学习模块首先在所述预定时间内等待所述试探回复,如果收到所述试探回复,则尝试在所述预定时间的一半时间内等待所述试探回复,以此类推,直至无法收到所述试探回复时将前次尝试中对于收到所述试探回复的所述线程的所述最短反馈时间设置为所述回复等待时间。

可选地,其特征在于:采用折半测量的方法确定所述指令发送数目,即,所述机器学习模块首先在所述线程内设置预定数目的所述试探数据包,如果收到所述试探回复,则尝试在所述线程内设置预定数目的一半的所述试探数据包,以此类推,直至无法收到所述试探回复时将前次尝试中收到所述试探回复的所述线程的所述最少试探数据包数目设置为所述指令发送数目。

根据本发明的又一方面,提供了一种电子设备。

本发明的一种电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有能够被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行本发明所提供的基于机器学习提高服务可靠性和用户体验的方法。

根据本发明的再一方面,提供了一种可读存储介质。

本发明的一种非暂态计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明所提供的提高服务可靠性和用户体验的方法。

根据本发明的技术方案,通过使用机器学习来提高服务可靠性和用户体验的方法和装置,克服了固定回复等待时间和指令发送数目无法完全适应不同的服务设备和网络情况,有助于根据不同的服务设备和网络情况自适应地调整回复等待时间和指令发送数目,以最大程度地利用服务设备和网络的性能,从而在保证服务可靠性的同时提高用户体验。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是现有技术中客户端逐个发送指令以与服务设备进行通信的示意图;

图2是现有技术中客户端逐个发送指令以与服务设备进行通信的示意图;

图3a是根据本发明实施例的客户端进行机器学习以获得回复等待时间和指令发送数目的示意图;

图3b是根据本发明实施例的客户端应用回复等待时间和指令发送数目来进行实际操作的示意图;

图4是根据本发明实施例的客户端的机器学习阶段和实际操作阶段的运行周期的示意图;

图5是根据本发明实施例的学习回复等待时间的示意图;

图6是根据本发明实施例的由于未学习到回复等待时间而判断网络或者服务设备故障的示意图;

图7是根据本发明实施例的学习指令发送数目的示意图;

图8是根据本发明实施例的由于未学习到指令发送数目而判断网络或者服务设备故障的示意图;

图9是根据本发明实施例的客户端进行机器学习和实际操作的流程图;

图10是根据本发明实施例的实现提高服务可靠性和用户体验的方法的装置的示意图;

图11是根据本发明实施例的实现提高服务可靠性和用户体验的方法的电子设备的硬件结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

与客户端实际操作相关的主要有两个参数:为完成一个操作需要重复发送的指令的数目,即指令发送数目;发送指令后等待服务设备的反馈的时间,即回复等待时间。发送的指令数目越多,收到对于指令的反馈的可能性越大,但需要等待反馈的时间越长,即提高了服务可靠性而损失了用户体验;发送的指令数目越少,收到对于指令的反馈的可能性越小,但需要等待反馈的时间越短,即提高了用户体验而损失了服务可靠性。

在提供联网服务的环境中,客户端的运行周期包括两种:机器学习阶段和实际操作阶段。

图3a是根据本发明实施例的客户端进行机器学习以获得回复等待时间和指令发送数目的示意图。在机器学习阶段客户端通过同时启用多线程的方式来学习受网络和服务设备性能影响的回复等待时间和指令发送数目,其中,每个线程中具有实现试探和采样功能的多个试探数据包。采用多线程的原因在于提高学习效率,从而缩短机器学习时间。

图3b是根据本发明实施例的客户端应用回复等待时间和指令发送数目来进行实际操作的示意图。在完成机器学习之后,客户端将学习到的回复等待时间和指令发送数目应用到对服务设备的操作中,在图5至图8中将详细描述本发明的实施例所采用的学习回复等待时间和指令发送数目的策略。在实际操作阶段,客户端通常需要启用一个线程以向服务设备发送指令,在该线程中设置所学习到的指令发送数目的指令,并根据学习到的回复等待时间来等待来自服务设备的回复。

例如,客户端在实际操作阶段中在单个线程内可向服务设备逐个发送所学习到的指令发送数目的指令,并在每次发送指令后在所学习到的回复等待时间内等待来自服务设备的回复。再例如,客户端在实际操作阶段中在单个线程内向服务设备连续发送所学习到的指令发送数目的指令,并在发送全部指令后在比所学习到的回复等待时间适当增大的时间内等待来自服务设备的回复。

进一步,如果在实际操作过程当中出现操作失败,则需要重新进入机器学习阶段,以便学习到最新的回复等待时间和指令发送数目,并将其重新应用到新的实际操作中。

另选地,在机器学习阶段同样可以进行对服务设备的各种操作,但客户端可能因同时进行机器学习和实际操作而付出性能代价。

图4是根据本发明实施例的客户端的机器学习阶段和实际操作阶段的运行周期的示意图。如图所示,客户端的运行周期呈现出机器学习过程和实际操作过程交替出现的特征。在t2和t4两个时刻客户端未收到对所发出的指令的回复,因此客户端判断当前回复等待时间和指令发送数目不适应当前网络或服务设备的性能情况,从而启动了重新学习,以学习回复等待时间和指令发送数目。

图5是根据本发明实施例的试探回复等待时间的示意图。客户端在多个线程内向服务设备发送试探数据包,并对每个线程记录从发出试探数据包至收到针对试探数据包的试探回复的反馈时间。如图5所示,对于线程1、线程2均未收到来自服务设备的反馈;对于线程x,从发出线程x到收到对于线程x的反馈的时间为tx;对于线程n,从发出线程n到收到对于线程n的反馈的时间为tn。因此,在图5的示例中,对于收到试探回复的线程的最短反馈时间为tx,tx即为学习到的回复等待时间。此外,在学习回复等待时间时,客户端在每个线程内发送的试探数据包要足够多,以排除试探数据包数目对学习结果的干扰。

图6是根据本发明实施例的由于未试探到回复等待时间而判断网络或者服务设备故障的示意图。如图6所示,在预定时间(未示出)内,对于所有线程均未收到来自服务设备的反馈,所以可以确定网络或者服务设备出现故障,可以通过提示将网络或服务设备存在故障的情况告知用户。

图7是根据本发明实施例的试探指令发送数目的示意图。与图5类似,客户端在多个线程内向服务设备连续发送数量不同的试探数据包,并对收到针对试探数据包的试探回复的线程记录该线程内的试探数据包的数目。如图7所示,对于线程1、线程2均未收到来自服务设备的反馈;对于线程x,由于收到对于线程x的反馈,所以记录其含有x个试探数据包;对于线程n,由于收到对于线程n的反馈,所以记录其含有n个试探数据包。因此,在图7的示例中,对于收到试探回复的线程的最少试探数据包数目为x,x即为学习到的指令发送数目。此外,在学习指令发送数目时,客户端等待试探回复的时间要足够长,以排除等待时间对学习结果的干扰。

图8是根据本发明实施例的由于未试探到指令发送数目而判断网络或者服务设备故障的示意图。如图8所示,在预定时间(未示出)内,无论线程中含有多少个数据包,对于所有线程均未收到来自服务设备的反馈,则可以确定网络或者服务设备出现故障,可以通过提示将网络或服务设备存在故障的情况告知用户。

此外,可以采用折半测量的方法确定回复等待时间,即,在机器学习阶段,首先在预定时间内等待所述试探回复,如果收到试探回复,则尝试在预定时间的一半时间内等待试探回复,以此类推,直至无法收到试探回复时将前次尝试中对于收到试探回复的线程的最短反馈时间设置为回复等待时间。类似地,可以采用折半测量的方法确定指令发送数目,即,在机器学习阶段,首先在线程内设置预定数目的试探数据包,如果收到试探回复,则尝试在线程内设置预定数目的一半的试探数据包,以此类推,直至无法收到试探回复时将前次尝试中收到试探回复的线程的最少试探数据包数目设置为指令发送数目。采用折半测量的方法确定回复等待时间和指令发送数目,可以以较快的速度确定回复等待时间和指令发送数目的最优值。

此外,为进一步确保服务的可靠性,在实际操作阶段,客户端可在大于所学习到的回复等待时间的时间内等待对在单个线程上所发出的指令的回复,例如在所学习到的回复等待时间的1.1倍的时间内等待对在单个线程上所发出的指令的回复。类似地,在实际操作阶段,客户端在单个线程内向服务设备发送大于所学习到的指令发送数目的指令,例如在单个线程内向服务设备发送所学习到的指令发送数目的1.1倍的指令。

图9是根据本发明实施例的客户端进行机器学习和实际操作的流程图。在s91中,客户端首先开始进行机器学习,根据图5和图7所示的策略学习回复等待时间和指令发送数目。即,客户端在多个线程内向服务设备发送试探数据包,并对收到针对试探数据包的试探回复的线程记录从发出试探数据包至收到试探回复的反馈时间,将对于收到试探回复的线程的最短反馈时间设置为回复等待时间。进一步,客户端在多个线程内向服务设备连续发送数量不同的试探数据包,并对收到试探回复的线程记录线程内的试探数据包的数目,将在收到试探回复的线程中的最少试探数据包数目设置为指令发送数目。在s92中,如果客户端因在预定时间内未收到针对所发出的试探数据包的反馈,从而导致为学习到回复等待时间或指令发送数目,则流程进入s94,即客户端向用户报告可能存在网络或服务设备故障。在s92中,如果客户端学习到回复等待时间或指令发送数目,则流程进入s93,即客户端进入实际操作阶段。在s93中,客户端在一个线程内向服务设备发送指令,在该线程中设置所学习到的指令发送数目的指令,并根据学习到的回复等待时间来等待来自服务设备的回复。在s94中,如果客户端未收到对在单个线程上所发出的指令的回复——即出现操作异常,则客户端进入s91并重新开始机器学习阶段,以确定新的回复等待时间和指令发送数目。在s94中,如果为出现操作异常,则客户端继续处于实际操作阶段。

图10是根据本发明实施例的实现提高服务可靠性和用户体验的方法的装置的示意图。如图10所示,本实施例中的客户端装置包括机器学习模块和实际操作模块。机器学习模块向服务设备发送试探数据包,以学习回复等待时间和指令发送数目,并将所学习到的回复等待时间和指令发送数目传送给实际操作模块。实际操作模块将回复等待时间和指令发送数目应用于向服务设备发送实际指令中,并且在出现操作异常时,触发机器学习模块重新学习回复等待时间和指令发送数目。

根据本发明的实施例,本发明还提供了一种电子设备和一种非暂态计算机可读存储介质。

本发明的电子设备包括:至少一个处理器;以及,与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器执行本发明所提供的基于机器学习提高服务可靠性和用户体验的方法。

本发明的非暂态计算机可读存储介质存储有计算机指令,该计算机指令用于使计算机执行本发明所提供的基于机器学习提高服务可靠性和用户体验的方法。

图11是根据本发明实施例的实现提高服务可靠性和用户体验的方法的电子设备的硬件结构示意图。如图11所示,该电子设备包括:一个或多个处理器111以及存储器112,图11中以一个处理器111为例。其中,存储器112即为本发明所提供的非暂态计算机可读存储介质。

基于机器学习提高服务可靠性和用户体验的方法的电子设备还可以包括:输入装置113和输出装置114。

处理器111、存储器112、输入装置113和输出装置114可以通过总线或者其他方式连接,图11中以通过总线连接为例。

存储器112作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序指令以及模块,如与本发明实施例中的自动呼叫分配的方法对应的程序指令——例如,图10所示的机器学习模块和实际操作模块。处理器111通过运行存储在存储器112中的非暂态软件程序、指令以及模块,从而执行基于机器学习提高服务可靠性和用户体验的各种功能应用以及数据处理,即实现上述方法实施例中的提高服务可靠性和用户体验的方法。

存储器112可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储所学习到的回复等待时间和指令发送数目等。此外,存储器112可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器112可选包括相对于处理器111远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置113可接收例如输入的与在机器学习阶段等待反馈的预定时间相关的数字或字符信息。输出装置114可包括显示屏等显示设备

所述一个或者多个模块存储在存储器112中,当被一个或者多个处理器111执行时,执行实现上述任意方法实施例中的提高服务可靠性和用户体验的方法。

上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1