一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

服务部署方法及装置、电子设备和存储介质与流程

2022-02-19 12:13:07 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,尤其涉及计算机视觉和深度学习技术,可应用于图像处理场景中,具体涉及一种服务部署方法、装置、电子设备、计算机可读存储介质和计算机程序产品。


背景技术:

2.网络服务(web service,下文简称“服务”)是一种在服务端运行的、用于提供特定功能的软件。有些复杂的服务可以提供多种功能,每种功能通过一个代码模块来实现。例如,智能交通场景中的视频监控服务可以包括用于提供诸如车型识别、车牌号识别、车速检测、驾驶者姿态识别等多种功能的多个代码模块。
3.在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。


技术实现要素:

4.本公开提供了一种服务部署方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
5.根据本公开的一方面,提供了一种服务部署方法,包括:获取用于提供服务的多个处理模块、多个处理模块之间的依赖信息、以及与上述多个处理模块分别对应的多个性能参数;基于上述多个性能参数确定线程配置信息,线程配置信息包括上述多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及将上述多个处理模块、依赖信息、以及线程配置信息进行打包,以生成用于提供服务的镜像。
6.根据本公开的一方面,提供了一种服务部署方法,包括:获取服务的镜像,该镜像是通过对用于提供该服务的多个处理模块、多个处理模块之间的依赖信息、以及线程配置信息进行打包而生成的,线程配置信息包括多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及基于上述镜像启动容器,其中,容器包括上述多个处理模块各自对应的线程池。
7.根据本公开的一方面,提供了一种服务部署装置,包括:获取模块,被配置为获取用于提供服务的多个处理模块、多个处理模块之间的依赖信息、以及与上述多个处理模块分别对应的多个性能参数;确定模块,被配置为基于上述多个性能参数确定线程配置信息,线程配置信息包括上述多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及打包模块,被配置为将上述多个处理模块、依赖信息、以及线程配置信息进行打包,以生成用于提供服务的镜像。
8.根据本公开的一方面,提供了一种服务部署装置,包括:获取模块,被配置为获取服务的镜像,该镜像是通过对用于提供该服务的多个处理模块、多个处理模块之间的依赖信息、以及线程配置信息进行打包而生成的,线程配置信息包括多个处理模块各自的线程
数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及实例化模块,被配置为基于上述镜像启动容器,其中,容器包括上述多个处理模块各自对应的线程池。
9.根据本公开的一方面,提供了一种电子设备,包括:至少一个处理器;以及与上述至少一个处理器通信连接的存储器,该存储器存储有可被上述至少一个处理器执行的指令,该指令被上述至少一个处理器执行,以使上述至少一个处理器能够执行上述任一方面的方法。
10.根据本公开的一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行上述任一方面的方法。
11.根据本公开的一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述任一方面的方法。
12.根据本公开的一个或多个实施例,基于各处理模块的性能参数来确定各处理模块的线程数量(即线程配置信息),将各处理模块、各处理模块之间的依赖信息、以及线程配置信息打包成一个镜像进行服务部署,能够使各处理模块作为一个整体被部署于同一台机器中,各处理模块共享内存,无需进行网络数据传输,并且各处理模块的计算性能相匹配,从而提高了服务的整体计算效率。
13.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
14.附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
15.图1示出了根据本公开的实施例的服务部署方法的流程图;
16.图2a

2c示出了根据本公开的实施例的示例性有向无环图的示意图;
17.图3示出了根据本公开的另一实施例的服务部署方法的流程图;
18.图4示出了根据本公开的实施例的服务部署装置的结构框图;
19.图5示出了根据本公开的另一实施例的服务部署装置的结构框图;以及
20.图6示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
21.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
22.在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
23.在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目
的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
24.服务是一种在服务器中执行的、用于提供特定功能的软件。有些复杂的服务可以提供多种功能,每种功能通过一个代码模块来实现。服务使用的代码模块由开发者进行编写。当开发者编写完各代码模块后,可以将各代码模块部署至服务器中,即,将服务部署于服务器中。随后,服务器便可以向用户提供该服务。下文中,将服务中的用于提供特定功能的代码模块记为“处理模块”。
25.在相关技术中,对于包括多个处理模块的复杂的服务,通常由开发者分别对各处理模块进行开发、测试和打包,然后将各处理模块分别部署至不同的服务器中。基于各处理模块之间的执行顺序和依赖关系,通过网络来实现各处理模块之间的数据传输和调用,从而使各处理模块能够作为一个整体来提供服务。在该方法中,各处理模块的网络通信效率和计算性能不协调,并且存在网络资源浪费,导致整体服务的计算效率较低。
26.例如,基于相关技术,可以针对智能交通场景部署视频监控服务。视频监控服务例如可以包括三个处理模块,即车型识别模块、人体检测模块、人体姿态识别模块。基于相关技术,需要将这三个处理模块分别进行开发、测试、打包,并部署至不同的服务器中。随后,各处理模块可以联合提供视频监控服务。
27.具体地,在提供视频监控服务的过程中,道路上的摄像头连续采集多帧图像,并对图像进行编码,分别上传至车型识别模块和人体检测模块进行处理。车型识别模块对图像进行解码,并识别图像中的车辆的车型。人体检测模块对图像进行解码,并识别图像中的驾驶者的位置。随后,人体检测模块对图像进行编码,并将图像的编码和图像中的驾驶者的位置通过网络传输至人体姿态识别模块。人体姿态识别模块对图像进行解码,并基于已标注的驾驶者的位置,识别图像中的驾驶者的姿态。可见,在视频监控服务中,处理模块之间的调用需要通过网络来进行数据传输,并且每次调用均需要对图像进行编解码,造成了不必要的性能浪费。此外,三个处理模块的计算性能可能不协调,导致整体服务的计算效率较低。
28.针对相关技术中存在的问题,本公开提供一种服务部署方案,能够对包括多个处理模块的复杂服务进行部署,以提高其计算效率。
29.以下结合附图详细描述本公开的实施例。
30.需要说明的是,在本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
31.图1示出了根据本公开实施例的服务部署方法100的流程图。方法100在服务器中执行,即,方法100的执行主体可以是服务器。
32.如图1所示,方法100包括:
33.步骤110、获取用于提供服务的多个处理模块、多个处理模块之间的依赖信息、以及与上述多个处理模块分别对应的多个性能参数;
34.步骤120、基于上述多个性能参数确定线程配置信息,线程配置信息包括上述多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及
35.步骤130、将上述多个处理模块、依赖信息、以及线程配置信息进行打包,以生成用于提供服务的镜像。
36.根据本公开的实施例,基于各处理模块的性能参数来确定各处理模块的线程数量(即线程配置信息),将各处理模块、各处理模块之间的依赖信息、以及线程配置信息打包成一个镜像进行服务部署,能够使各处理模块作为一个整体被部署于同一台机器中,各处理模块共享内存,无需进行网络数据传输,并且各处理模块的计算性能相匹配,从而提高了服务的整体计算效率。
37.以下详细描述方法100的各个步骤。
38.在步骤110中,获取用于提供服务的多个处理模块、多个处理模块之间的依赖信息、以及与上述多个处理模块分别对应的多个性能参数。
39.处理模块是用于实现特定功能的代码模块。例如,处理模块可以是用于进行图像处理、音频处理、自然语言处理的人工智能模型,或者是业务逻辑代码。根据一些实施例,处理模块可以实现为动态库,动态库中包括一个或多个库函数。
40.多个处理模块之间的依赖信息用于表示多个处理模块的执行顺序和数据流向。根据一些实施例,多个处理模块之间的依赖信息可以通过有向无环图(directed acyclic graph,dag)来表示。有向无环图是一个没有回路的有向图。有向无环图是描述工作流的有效工具。采用有向无环图来表示多个处理模块之间的依赖信息,能够便于对处理模块之间的依赖关系进行配置和分析。例如,可以利用有向无环图来分析各处理模块组成的服务能否被顺利执行、估算服务的整体响应时间,等等。
41.图2a

2c示出了根据本公开实施例的示例性有向无环图的示意图。
42.图2a中的有向无环图200a用于表示服务1中的各处理模块之间的依赖信息。如图2a所示,服务1包括五个处理模块,即处理模块a

处理模块e。五个处理模块形成三个并行执行的分支,即,由处理模块a和处理模块b组成的第一分支,由处理模块c和处理模块d组成的第二分支,以及由处理模块e单独形成的第三分支。在每个分支中,按照连边的方向串行执行各处理模块。例如,在第一分支中,先执行处理模块a,再执行处理模块b。
43.图2b中的有向无环图200b用于表示服务2中的各处理模块之间的依赖信息。如图2b所示,服务2包括串联的三个处理模块,即处理模块a

处理模块c。三个处理模块依次执行。
44.图2c中的有向无环图200c用于表示服务3中的各处理模块之间的依赖信息。如图2c所示,服务3包括三个处理模块,即处理模块a

处理模块c。三个处理模块形成两个并行执行的分支,即,由处理模块a和处理模块b组成的第一分支,以及由处理模块c单独形成的第二分支。在第一分支中,处理模块a和处理模块b依次执行。
45.在本公开的实施例中,可以预先对每个处理模块进行性能测试,得到每个处理模块的性能参数。相应地,在步骤110中,可以获取多个处理模块各自的性能参数。性能参数用于指示相应处理模块的单位性能,单位性能指的是相应处理模块被单个线程执行时的性能。性能参数例如可以是相应处理模块被单个线程执行时的请求平均响应时间、相应处理模块被单个线程执行时的单位时间请求处理量(query per second,qps)等,但不限于此。
46.在步骤120中,可以基于多个处理模块对应的多个性能参数来确定线程配置信息。线程配置信息包括多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线
程池所包括的线程的数量。
47.根据一些实施例,对于任一模块,该处理模块的线程数量与其单位性能负相关。即,该处理模块的性能参数指示该处理模块的单位性能越低,该处理模块的线程数量越大。由此,可以增加低性能处理模块的线程数量,提高低性能处理模块的计算效率,消除服务的短板,从而提高服务的整体计算效率。
48.进一步地,根据一些实施例,步骤120进一步包括:
49.步骤122、基于多个性能参数,确定多个处理模块的线程数量的比例;以及
50.步骤124、基于上述比例,确定多个处理模块各自的线程数量。
51.基于上述实施例,可以根据各处理模块的性能比例来确定各处理模块的线程数量,从而使各处理模块的计算性能相互匹配,达到性能对齐的效果,从而提高服务的整体计算效率。
52.根据一些实施例,针对步骤122,在性能参数为相应处理模块被单个线程执行时的请求平均响应时间的情况下,多个处理模块中的任意两个处理模块的线程数量的比值与该两个处理模块的请求平均响应时间的比值成正比。在该实施例中,处理模块的请求平均响应时间越小,该处理模块的计算性能越高,需要的线程数量越少。即,线程数量与请求平均响应时间的变化趋势一致。例如,两个处理模块的请求平均响应时间的比值为1:2,则这两个处理模块的线程数量的比值也是1:2。又例如,三个处理模块的请求平均响应时间的比例为2:1:4,则这三个处理模块的线程数量的比例也是2:1:4。
53.根据一些实施例,针对步骤122,在性能参数为相应处理模块被单个线程执行时的单位时间请求处理量的情况下,多个处理模块中的任意两个处理模块的线程数量的比值与该两个处理模块的单位时间请求处理量的比值成反比。在该实施例中,处理模块的单位时间请求处理量越小,处理模块的计算性能越低,需要的线程数量越多。即,线程数量与单位时间请求处理量的变化趋势相反。例如,两个处理模块的单位时间请求处理量的比值为1:2,则这两个处理模块的线程数量的比值是2:1。又例如,三个处理模块的单位时间请求处理量的比例为2:1:4,则这三个处理模块的线程数量的比例是2:4:1。
54.在根据上述步骤122确定了多个处理模块的线程数量的比例后,可以执行步骤124,基于该比例来确定多个处理模块各自的线程数量。
55.根据一些实施例,通过步骤122所得到的各处理模块的线程数量的比例是一个最简整数比。相应地,在步骤124中,可以将该最简整数比放大n倍(n为正整数),得到各处理模块的线程数量。例如,通过步骤122所得到的三个处理模块的线程数量的最简整数比为2:1:2,则在步骤124中,可以将三个处理模块的线程数量分别设置为2、1、2,或者分别设置为4、2、4,或者分别设置为6、3、6,等等。
56.根据一些实施例,在步骤124中,可以基于步骤122得到的各处理模块的线程数量的比例,以及各处理模块的单位资源利用率来确定各处理模块的线程数量,以使服务的单机计算效率最大化。单位资源利用率为相应处理模块被单个线程执行时的资源利用率,资源利用率例如可以是cpu利用率、gpu利用率等。
57.根据一些实施例,步骤124可以进一步包括:基于各处理模块的线程数量的比例,确定多个处理模块各自的最小线程数量;基于最小线程数量和单位资源利用率,计算多个处理模块的总资源利用率;以及将最小线程数量与放大倍数的乘积确定为相应处理模块的
线程数量,其中,放大倍数为资源利用率阈值与总资源利用率的商的整数部分。
58.例如,通过步骤122,确定三个处理模块的线程数量的比例为2:1:2,则三个处理模块的最小线程数量分别为2、1、2。三个处理模块的单位cpu利用率分别为3%、6%、5%,则三个处理模块的总资源利用率为2
×
3% 1
×
6% 2
×
5%=22%。资源利用率阈值例如可以是70%,70%
÷
22%=3.1818,商的整数部分为3,即放大倍数为3。因此,将各处理模块的最小线程数量与3的乘积作为该处理模块的线程数量,即,三个处理模块的线程数量分别为6、3、6。
59.在通过步骤120确定线程配置信息(即多个处理模块各自的线程数量)后,执行步骤130。
60.在步骤130中,将上述多个处理模块、多个处理模块之间的依赖信息、以及线程配置信息进行打包,以生成用于提供服务的镜像(image)。
61.根据一些实施例,方法100还包括:
62.步骤140、基于镜像启动容器,该容器包括多个处理模块各自对应的线程池。
63.通过启动容器,可以将镜像实例化,以在线响应用户的请求,向用户提供服务。应当理解,一个容器相当于一个进程,该进程中包括多个线程池,每个线程池对应于一个处理模块,并用于执行相应的处理模块。
64.根据一些实施例,步骤140进一步包括:基于服务的请求并发量,确定容器的数量;以及基于镜像,启动上述数量的容器。由此,可以基于业务需求的并发量来确定容器数量,从而实现服务的弹性扩缩容。
65.容器的数量例如可以是请求并发量与各处理模块的线程数量的最大值的商的向上取整结果,即,容器的数量=ceil(请求并发量
÷
各处理模块的线程数量的最大值),其中,ceil()为向上取整函数。各处理模块的线程数量的最大值可以表示单个容器能够同时处理的请求的数量。
66.例如,智能交通场景中的视频监控服务包括车型识别模块、人体检测模块、人体姿态识别模块三个处理模块。通过步骤120,确定三个处理模块的线程数量分别为6、3、6,则各处理模块的线程数量的最大值为6,即单个容器可以同时处理6路视频数据。视频监控服务需要同时处理100个摄像头采集到的视频数据,即该服务的请求并发量为100,相应地,容器的数量可以设置为ceil(100/6)=17,即,需要启动17个容器。
67.需要说明的是,在步骤140启动多个容器的情况下,这多个容器可以位于不同的服务器(物理机)中,也可以位于相同的服务器中。可以理解,将多个容器设置于不同的服务器中,可以提高服务的鲁棒性和计算效率。
68.根据本公开的实施例,还提供了另一种服务部署方法。图3示出了根据本公开的另一实施例的服务部署方法300的流程图。方法300在服务器中执行,即,方法300的执行主体可以是服务器。
69.如图3所示,方法300包括:
70.步骤310、获取服务的镜像,该镜像是通过对用于提供该服务的多个处理模块、多个处理模块之间的依赖信息、以及线程配置信息进行打包而生成的,线程配置信息包括上述多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及
71.步骤320、基于上述镜像启动容器,该容器包括上述多个处理模块各自对应的线程池。
72.根据本公开的实施例,通过启动容器,可以将镜像实例化,以在线响应用户的请求,向用户提供服务。并且,可以将服务所包括的多个处理模块作为一个整体被部署于同一台机器中,各处理模块共享内存,无需进行网络数据传输,并且各处理模块的计算性能相匹配,从而提高了服务的整体计算效率。
73.根据一些实施例,步骤320包括:基于服务的请求并发量,确定容器的数量;以及基于镜像,启动上述数量的容器。由此,可以基于业务需求的并发量来确定容器数量,从而实现服务的弹性扩缩容。
74.步骤320的具体实施方式可以参考上文步骤140的相关描述,此处不再赘述。
75.根据本公开的实施例,还提供了一种服务部署装置。图4示出了根据本公开实施例的服务部署装置400的结构框图。如图4所示,装置400包括:
76.获取模块410,被配置为获取用于提供服务的多个处理模块、多个处理模块之间的依赖信息、以及与上述多个处理模块分别对应的多个性能参数;
77.确定模块420,被配置为基于上述多个性能参数确定线程配置信息,线程配置信息包括上述多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及
78.打包模块430,被配置为将上述多个处理模块、依赖信息、以及线程配置信息进行打包,以生成用于提供服务的镜像。
79.根据本公开的实施例,基于各处理模块的性能参数来确定各处理模块的线程数量(即线程配置信息),将各处理模块、各处理模块之间的依赖信息、以及线程配置信息打包成一个镜像进行服务部署,能够使各处理模块作为一个整体被部署于同一台机器中,各处理模块共享内存,无需进行网络数据传输,并且各处理模块的计算性能相匹配,从而提高了服务的整体计算效率。
80.根据一些实施例,所述性能参数用于指示相应处理模块的单位性能,所述单位性能为相应处理模块被单个线程执行时的性能,并且其中,对于任一处理模块,该处理模块的线程数量与其单位性能负相关。
81.根据一些实施例,确定模块420包括:第一确定单元,被配置为基于所述多个性能参数,确定所述多个处理模块的线程数量的比例;以及第二确定单元,被配置为基于所述比例,确定所述多个处理模块各自的线程数量。
82.根据一些实施例,所述性能参数包括相应处理模块被单个线程执行时的请求平均响应时间,并且其中,所述多个处理模块中的任意两个处理模块的线程数量的比值与该两个处理模块的请求平均响应时间的比值成正比。
83.根据一些实施例,所述性能参数包括相应处理模块被单个线程执行时的单位时间请求处理量,并且其中,所述多个处理模块中的任意两个处理模块的线程数量的比值与该两个处理模块的单位时间请求处理量的比值成反比。
84.根据一些实施例,获取模块410进一步被配置为:获取所述多个处理模块各自的单位资源利用率,所述单位资源利用率为相应处理模块被单个线程执行时的资源利用率,并且第二确定单元包括:第三确定单元,被配置为基于所述比例,确定所述多个处理模块各自
的最小线程数量;计算单元,被配置为基于所述最小线程数量和所述单位资源利用率,计算所述多个处理模块的总资源利用率;以及第四确定单元,被配置为将所述最小线程数量与放大倍数的乘积确定为相应处理模块的线程数量,其中,所述放大倍数为资源利用率阈值与所述总资源利用率的商的整数部分。
85.根据一些实施例,多个处理模块之间的依赖信息通过有向无环图来表示。
86.根据本公开的实施例,还提供了一种服务部署装置。图5示出了根据本公开实施例的服务部署装置500的结构框图。如图5所示,装置500包括:
87.获取模块510,被配置为获取服务的镜像,该镜像是通过对用于提供该服务的多个处理模块、多个处理模块之间的依赖信息、以及线程配置信息进行打包而生成的,线程配置信息包括多个处理模块各自的线程数量,线程数量为用于执行相应处理模块的线程池所包括的线程的数量;以及
88.实例化模块520,被配置为基于上述镜像启动容器,其中,容器包括上述多个处理模块各自对应的线程池。
89.根据本公开的实施例,通过启动容器,可以将镜像实例化,以在线响应用户的请求,向用户提供服务。并且,可以将服务所包括的多个处理模块作为一个整体被部署于同一台机器中,各处理模块共享内存,无需进行网络数据传输,并且各处理模块的计算性能相匹配,从而提高了服务的整体计算效率。
90.根据一些实施例,实例化模块520包括:并发确定单元,被配置为基于服务的请求并发量,确定容器的数量;以及实例化单元,被配置为基于镜像,启动上述数量的容器。
91.应当理解,图4中所示装置400的各个模块或单元可以与参考图1描述的方法100中的各个步骤相对应,图5中所示装置500的各个模块或单元可以与参考图3描述的方法300中的各个步骤相对应。由此,上面针对方法100描述的操作、特征和优点同样适用于装置400及其包括的模块以及单元,上面针对方法300描述的操作、特征和优点同样适用于装置500及其包括的模块以及单元。为了简洁起见,某些操作、特征和优点在此不再赘述。
92.虽然上面参考特定模块讨论了特定功能,但是应当注意,本文讨论的各个模块的功能可以分为多个模块,和/或多个模块的至少一些功能可以组合成单个模块。例如,上面描述的获取模块410和确定模块420在一些实施例中可以组合成单个模块。
93.还应当理解,本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。上面关于图4、图5描述的各个模块可以在硬件中或在结合软件和/或固件的硬件中实现。例如,这些模块可以被实现为计算机程序代码/指令,该计算机程序代码/指令被配置为在一个或多个处理器中执行并存储在计算机可读存储介质中。可替换地,这些模块可以被实现为硬件逻辑/电路。例如,在一些实施例中,获取模块410、确定模块420、打包模块430、获取模块510、实例化模块520中的一个或多个可以一起被实现在片上系统(system on chip,soc)中。soc可以包括集成电路芯片(其包括处理器(例如,中央处理单元(central processing unit,cpu)、微控制器、微处理器、数字信号处理器(digital signal processor,dsp)等)、存储器、一个或多个通信接口、和/或其他电路中的一个或多个部件),并且可以可选地执行所接收的程序代码和/或包括嵌入式固件以执行功能。
94.根据本公开的实施例,还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
95.参考图6,现将描述可以作为本公开的服务器或客户端的电子设备600的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
96.如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom 602以及ram 603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
97.设备600中的多个部件连接至i/o接口605,包括:输入单元606、输出单元607、存储单元608以及通信单元609。输入单元606可以是能向设备600输入信息的任何类型的设备,输入单元606可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元607可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元608可以包括但不限于磁盘、光盘。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙
tm
设备、1302.11设备、wi

fi设备、wimax设备、蜂窝通信设备和/或类似物。
98.计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如方法100或方法300。例如,在一些实施例中,方法100或方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram 603并由计算单元601执行时,可以执行上文描述的方法100或方法300的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100或方法300。
99.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至
少一个输出装置。
100.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
101.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd

rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
102.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
103.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
104.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端

服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
105.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
106.虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述
的很多要素可以由本公开之后出现的等同要素进行替换。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献