一种调用请求的处理方法、系统及测试设备与流程

文档序号:27914261发布日期:2021-12-11 10:14阅读:105来源:国知局
一种调用请求的处理方法、系统及测试设备与流程

1.本发明涉及数据处理技术领域,具体涉及一种调用请求的处理方法、系统及测试设备。


背景技术:

2.在当前的分布式测试环境中,通常会涉及不同方法之间的调用情况。例如,python提供了图像识别、机器学习等丰富的业务功能,ruby在进行自动化测试时,可能需要调用python中的部分业务功能。
3.现有技术中,通常会将被调用的方法编译为第三方库,然后通过调用第三方库的方式来实现不同方法之间的调用过程。以ruby和python为例,通常会对python方法进行封装,并带上python方法的运行环境,从而将python方法编译为ruby的一个第三方库。
4.这种方式在使用时往往不够便捷,原因在于,如果编译后的第三方库中不具备所需的业务功能,那么就需要等待第三方库的作者编写原生的业务功能,并将编写后的业务功能进行编译,从而对第三方库的业务功能进行更新。由于业务功能的更新通常不会很及时,而且编译第三方库的过程也比较繁琐,从而导致这种以第三方库的形式进行方法调用的过程有较大的局限性,并且效率较低。


技术实现要素:

5.有鉴于此,本发明实施方式提供了一种调用请求的处理方法、系统及测试设备,能够提高方法调用的效率和适配性。
6.本发明一方面提供了一种调用请求的处理方法,所述方法包括:在监听端口接收到调用请求的情况下,识别所述调用请求指向的业务接口;其中,所述调用请求的数据结构与所述业务接口支持的数据结构保持一致;将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所述调用请求对应的业务数据;将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述调用请求的发起方。
7.本技术提供的技术方案,并不需要将提供业务功能的方法编译为第三方库,而是通过改进不同方法之间的数据传输过程,从而实现不同方法之间的调用。具体地,发起方可以对生成的调用请求进行数据结构的封装,该数据结构可以与业务接口支持的数据结构保持一致。这样,业务接口可以识别调用请求,并对调用请求进行处理。在生成业务数据后,同样可以将业务数据封装为上述的数据结构,这样,发起方也能够识别出反馈的业务数据。在这种情况下,如果当前不具备调用请求所需的业务功能,可以直接在测试设备本地编写业务功能。在编写完业务功能后,并不需要对其进行编译,而是可以通过上述的数据传输过程,对业务功能进行调用,从而极大地提高了方法调用的效率和适配性。
8.在一个实施方式中,识别所述调用请求指向的业务接口包括:确定所述调用请求对应的业务功能,并将用于调用所述业务功能的业务接口作为所述调用请求指向的业务接
口。
9.不同的业务功能可以通过不同的业务接口来调用,从而提高业务功能的响应速度,进而提高调用请求的处理效率。
10.在一个实施方式中,所述调用请求为http请求,所述监听端口的端口标识包括本机ip地址和用于接收http请求的端口号。
11.通过将监听端口设置在本地的测试设备中,表明调用请求只需要在本地的测试设备中进行处理,从而便捷地对本地的数据进行处理和传输。
12.在一个实施方式中,所述业务接口按照以下方式进行配置:为所述业务接口设定接口类型,所述接口类型与所述调用请求的请求方式对应一致;为所述业务接口绑定业务功能;其中,所述业务功能的入参的数据结构与所述调用请求的数据结构保持一致。
13.在生成业务接口后,可以设置业务接口的接口类型,并可以为业务接口绑定对应的业务功能。其中,业务接口的接口类型需要与调用请求的请求方式保持一致,并且,业务功能的入参的数据结构也需要与调用请求的数据结构保持一致,从而可以正常地对调用请求进行处理。
14.在一个实施方式中,所述调用请求由所述发起方按照以下方式生成:获取待调用的请求标识,并对所述请求标识进行编码后,将编码结果封装为指定数据结构的调用请求;其中,所述指定数据结构与所述业务接口支持的数据结构保持一致;封装后的调用请求的请求体中,按照所述发起方的原生数据结构记录请求数据。
15.发起方生成的调用请求的数据结构,需要与业务接口支持的数据结构保持一致,这样,发起方发出的调用请求到达监听端口后,才能正常地被传递给业务接口进行处理。
16.在一个实施方式中,所述方法应用于分布式系统的测试设备中;所述方法还包括:在所述分布式系统的第一测试设备和第二测试设备的默认目录下配置业务环境;在所述第一测试设备的测试目录下创建所述业务环境对应的虚拟运行环境,并将所述虚拟运行环境打包后,拷贝至所述第二测试设备的测试目录下;在所述第二测试设备中运行打包后的所述虚拟运行环境。
17.为了保证分布式系统中测试环境的一致性,可以在多个测试设备的默认目录下先配置业务环境。然后,可以在第一测试设备的测试目录下对虚拟运行环境进行打包,并将打包后的虚拟运行环境拷贝至其它的测试设备中。这样,分布式系统中的各个测试设备就具备了统一的业务环境以及虚拟运行环境,从而在确保各个测试设备的独立性的前提下,能够保证测试环境的一致性。
18.在一个实施方式中,所述方法还包括:创建批处理脚本程序,所述批处理脚本程序用于将运行所述业务环境的脚本添加至系统的启动程序内;在对所述调用请求进行处理之前,执行所述批处理脚本程序,以启动所述业务环境。
19.通过将执行业务环境的脚本设置为开机自启动,使得在分布式测试之前启动测试环境,为后续的调用请求的处理过程提供基础,这样可以提高调用请求的处理速度。
20.本发明另一方面提供了一种调用请求的处理系统,所述系统包括:接口识别单元,用于在监听端口接收到调用请求的情况下,识别所述调用请求指向的业务接口;其中,所述调用请求的数据结构与所述业务接口支持的数据结构保持一致;请求处理单元,用于将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所
述调用请求对应的业务数据;数据封装单元,用于将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述调用请求的发起方。
21.本发明另一方面提供了一种分布式系统中的测试设备,所述测试设备中运行有测试线程和业务服务,其中:所述测试线程,用于生成指定数据结构的调用请求,并将所述调用请求发送至所述测试设备的监听端口;所述业务服务,用于识别所述调用请求指向的业务接口;其中,所述指定数据结构与所述业务接口支持的数据结构保持一致;将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所述调用请求对应的业务数据;将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述测试线程。
22.在一个实施方式中,所述测试线程还用于获取待调用的请求标识,并对所述请求标识进行编码后,将编码结果封装为指定数据结构的调用请求;其中,封装后的调用请求的请求体中,按照原生数据结构记录请求数据。
23.本发明另一方面提供了一种分布式系统中的测试设备,所述测试设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的调用请求的处理方法。
24.本发明另一方面提供了一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的调用请求的处理方法。
附图说明
25.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
26.图1示出了本发明一个实施方式中调用请求的处理方法示意图;
27.图2示出了本发明一个实施方式中ruby线程和python服务之间的交互示意图;
28.图3示出了本发明一个实施方式中环境部署的示意图;
29.图4示出了本发明一个实施方式中调用请求的处理系统的功能模块示意图;
30.图5示出了本发明一个实施方式中测试设备的结构示意图。
具体实施方式
31.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
32.本技术提供的调用请求的处理方法,可以应用于分布式系统中。在该分布式系统中,可以包括多个测试设备,这些测试设备可以执行分布式的测试任务。在本技术中,每个测试设备上都可以运行ruby测试脚本,同时还可以安装python服务。在实际应用中,ruby测试脚本可以通过测试设备中的测试线程来运行,若ruby测试脚本在运行过程中需要调用python服务的功能,ruby线程可以向python服务发起调用请求,python服务针对调用请求处理得到业务数据后,可以将业务数据反馈给ruby线程。
33.具体地,请参阅图1和图2,本技术一个实施方式提供的调用请求的处理方法,可以包括以下多个步骤。
34.s1:在监听端口接收到调用请求的情况下,识别所述调用请求指向的业务接口;其中,所述调用请求的数据结构与所述业务接口支持的数据结构保持一致。
35.在本实施方式中,为了使得测试设备中的ruby线程与python服务之间能够进行数据传输,可以对ruby线程与python服务之间的通信方式进行改进。具体地,可以在测试设备中建立本机的http端口,然后通过该http端口来传递统一数据结构的数据,从而实现ruby线程与python服务之间的调用过程。
36.在本实施方式中,针对python服务中不同业务功能,可以设置不同的业务接口。具体地,可以采用python fastapi的方式,在测试设备中创建各个业务服务对应的业务接口。在创建业务接口时,可以对业务接口的接口属性进行定义。举例来说,可以为业务接口设定接口类型,该接口类型需要与ruby线程发来的调用请求的请求方式对应一致。在本实施方式中,ruby线程与python服务之间可以通过http请求进行通信,而http请求的请求方式通常包含get和post方式,因此,业务接口的接口类型也可以设置为get/post形式。此外,还需要为创建的业务接口绑定对应的业务功能。其中,python服务能够实现的业务功能可以包括图像识别、机器学习、文字识别等。各个业务功能可以通过后台的程序代码来实现,这样,可以将后台的程序代码与业务接口进行关联。后续,当业务接口需要处理调用请求时,可以调用关联的程序代码执行对应的业务功能。可见,通过将不同的业务接口与不同的业务功能相绑定,可以准确地对后台的程序代码进行调用,从而提高调用请求的处理效率。
37.在本实施方式中,在为业务接口绑定了业务功能后,还需要限定业务功能的入参(input parameters)的数据结构。由于业务接口后续需要对ruby线程发来的调用请求进行处理,因此业务功能的入参的数据结构就应当与调用请求的数据结构保持一致。实际上,ruby线程与python服务之间是通过http请求进行通信的,因此业务功能的入参的数据结构可以设置为json数据结构。同理,业务接口输出的业务数据的数据结构,也可以是json数据结构。
38.在实际应用中,可以在python服务中定义basemodel类的入参的数据结构,该数据结构就可以是ruby线程与python服务之间进行数据通信时的统一数据结构。例如,该数据结构可以是上述的json数据结构。那么在创建了业务接口,并为业务接口绑定了业务功能后,可以将业务功能的入参的数据结构和业务接口输出的业务数据的数据结构都设置为basemodel类中的入参的数据结构。
39.在本实施方式中,ruby线程与python服务之间是在测试设备本地进行数据传输,因此在python服务中可以设置本地的监听端口,该监听端口可以用于接收ruby线程发来的调用请求。具体地,本地的监听端口可以由端口标识来表示。其中,端口标识通常包含ip地址和端口号,而由于是在本地进行调用请求的处理,ip地址就可以设置为本机ip地址:127.0.0.1。调用请求的类型为http请求,因此端口号可以设置为用于接收http请求的端口号(例如8080)。这样,本地的监听端口的端口标识就可以表示为:127.0.0.1:8080。在python服务的主程序入口中,除了定义python服务运行时的一些基本参数,还可以定义该监听端口的端口标识,从而使得python服务能够对监听端口接收到的调用请求进行处理。当然,在实际应用中,监听端口的端口标识同样可以定义在业务接口的接口属性中,这样,
业务接口可以识别调用请求中携带的端口标识,从而只处理本地的监听端口接收到的调用请求。
40.在一个具体的应用场景中,业务接口经过上述的配置之后,就可以对测试设备中8080端口处接收到的get/post形式的http请求进行处理。通过将监听端口设置在本地的测试设备中,表明调用请求只需要在本地的测试设备中进行处理,从而便捷地对本地的数据进行处理和传输。
41.经过上述的过程,python服务就可以监听ruby线程发来的调用请求。在监听端口接收到调用请求的情况下,python服务的主程序可以先识别该调用请求指向的业务接口。具体地,在调用请求中,通常会携带所调用的业务功能的功能标识,通过识别该功能标识,python服务的主程序就能够确定该调用请求对应的业务功能。根据业务功能与业务接口之间的绑定关系,可以将用于调用该业务功能的业务接口作为该调用请求指向的业务接口。可见,不同的业务功能可以通过不同的业务接口来调用,从而提高业务功能的响应速度,进而提高调用请求的处理效率。
42.s3:将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所述调用请求对应的业务数据。
43.在本实施方式中,python主程序识别出调用请求指向的业务接口后,就可以将该调用请求传递至对应的业务接口处。当然,在实际应用中,python主程序也可以从调用请求中提取出待处理的指令或者数据,并将提取出的指令或者数据传递至业务接口处。
44.针对待处理的调用请求,业务接口可以调用后台的程序代码,从而运行相绑定的业务功能,对该调用请求进行处理。举例来说,ruby线程需要在数据库中搜索与目标图片具备一定相似度的图片,那么ruby线程发送给python服务的调用请求中就可以携带该目标图片的数据或者目标图片的标识,同时可以在调用请求中限定所调用的业务功能为图片搜索(或者图片相似度计算)。python服务的主程序在接收到该调用请求后,可以提取出其中的目标图片的数据或者标识,并将该目标图片的数据或者标识传递至负责图片搜索的业务接口处。该业务接口可以调用图片搜索的业务功能,并对该目标图片的数据或者标识进行处理,从而在数据库中查询到与目标图片相似的图片。查询到的图片的数据或者标识,就可以作为业务接口生成的业务数据。
45.s5:将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述调用请求的发起方。
46.在本实施方式中,业务接口在调用业务功能对调用请求进行处理后,生成的业务数据的数据结构可能并不是ruby线程与python服务之间约定好的数据结构。鉴于此,为了使得业务数据能够被ruby线程识别,业务接口提供的业务数据需要按照业务接口支持的数据结构进行封装。例如,可以将业务数据封装为json数据结构。这样,封装后的业务数据就能够被调用请求的发起方ruby线程正常识别。
47.举例来说,python服务中的业务接口在调用了图片搜索的业务功能,并查询到与目标图片相似的图片后,生成的业务数据可以是这些查询得到的图片的坐标(该坐标用于表征图片在数据库中的位置),那么这些图片的坐标可以被封装为json格式的数据,并被提供给ruby线程。
48.在本实施方式中,ruby线程在生成调用请求时,也需要进行一定的改进。具体地,
请参阅图2,可以在ruby中定义函数封装层,该函数封装层可以对向外发出的调用请求进行封装,从而使得发送给python服务的调用请求能够符合python服务的入参的数据结构。在该函数封装层中,可以定义调用请求的请求方式。由于调用请求是http请求,那么调用请求的请求方式可以是http的get/post方式。
49.在实际应用中,可以采用ruby的net/http头文件中原生的net::http类的方法进行http请求的发送。具体地,ruby线程可以获取待调用的请求标识,该请求标识可以是一个url,然后可以使用uri.parse方法对该请求标识进行编码,从而将该请求标识转义为utf

8编码。后续,可以通过net::http::post.new()将编码结果封装为指定数据结构的调用请求。其中,在对编码结果进行封装时,可以封装请求头、请求体以及请求格式。其中,请求头用于记录调用请求的描述信息,例如可以记录请求体中数据的长度、调用请求所遵循的协议等。请求体中可以按照ruby的原生数据结构记录请求数据。例如,请求体中的请求数据可以是ruby的哈希结构。请求格式可以与python服务规定的入参的数据结构保持一致。例如,可以是python服务的业务接口中规定的basemodel类的入参的数据结构。在完成调用请求的封装后,可以调用start方法发送将该调用请求发送至python服务的监听端口处。
50.这样,ruby线程和python服务都可以对传输的数据进行封装,从而使得ruby线程与python服务之间通过http请求的json格式进行数据传输。ruby线程在接收到python服务反馈的业务数据后,可以按照测试脚本中的内容继续进行后续的业务逻辑。
51.可见,上述实施方式提供的技术方案,并不需要将提供业务功能的方法编译为第三方库,而是通过改进不同方法之间的数据传输过程,从而实现不同方法之间的调用。具体地,发起方可以对生成的调用请求进行数据结构的封装,该数据结构可以与业务接口支持的数据结构保持一致。这样,业务接口可以识别调用请求,并对调用请求进行处理。在生成业务数据后,同样可以将业务数据封装为上述的数据结构,这样,发起方也能够识别出反馈的业务数据。在这种情况下,如果当前不具备调用请求所需的业务功能,可以直接在测试设备本地编写业务功能。在编写完业务功能后,并不需要对其进行编译,而是可以通过上述的数据传输过程,对业务功能进行调用,从而极大地提高了方法调用的效率和适配性。
52.考虑到分布式系统中各个测试设备的测试环境都是相互独立的,而为了有效地对分布式任务进行测试,通常需要保持各个测试设备中运行环境的一致性。鉴于此,在一个实施方式中,可以对分布式系统的各个测试设备中的测试环境进行同步配置。
53.请参阅图3,测试环境的配置可以包含两个步骤:一是在各个测试设备中安装python主程序,从而完成基础的业务环境的部署;二是在各个测试设备中部署实际测试项目所需的虚拟运行环境。
54.以分布式系统中的第一测试设备和第二测试设备为例,为了保证在第一测试设备和第二测试设备中部署相同的业务环境,可以采用静默安装的方式,在第一测试设备和第二测试设备的默认目录下配置业务环境。具体地,静默安装的方式可以通过/quiet targetdir=c:\python3的命令来实现。其中,quiet表示静默安装的命令符,targetdir表示默认目录的命令符,c:\python3则表示默认目录。当然,在实际应用中,默认目录可以是自定义的目录,只要在第一测试设备和第二测试设备中采用相同的默认目录即可。这样,通过静默安装的方式,可以保证第一测试设备与第二测试设备中基本的业务环境是一致的。
55.在实际应用中,对于不同的测试项目,使用的库的版本可能不一致。例如,一个测
试项目使用的版本是django 2.2,另一个测试项目使用的版本那是django 3.0。在执行同一个分布式测试项目时,第一测试设备与第二测试设备中采用的库的版本应当是一致的。库的版本可以由虚拟运行环境决定。在本实施方式中,可以在第一测试设备的测试目录下创建业务环境对应的虚拟运行环境,并将该虚拟运行环境打包后,拷贝至第二测试设备的测试目录下,从而保证两个测试设备中的虚拟运行环境也是一致的。具体地,该测试目录例如可以是c:\autotest,创建虚拟运行环境的指令可以是python

m venv[环境名称]。在对虚拟运行环境打包时,可以采用自解压的install.exe,这样,在将打包后的虚拟运行环境拷贝至第二测试设备后,就可以解压到c:\autotest的测试目录下。通过在第二测试设备中运行打包后的虚拟运行环境,就可以在第二测试设备中部署对应的虚拟运行环境。
[0056]
通过上述的处理方式,分布式系统中的各个测试设备就具备了统一的业务环境以及虚拟运行环境,从而在确保各个测试设备的独立性的前提下,能够保证测试环境的一致性。
[0057]
在一个实施方式中,为了提高测试任务的处理效率,可以在测试设备开机时,自启动业务环境的部署过程。具体地,可以在测试设备中创建批处理脚本程序。在该批处理脚本程序中,可以限定业务环境的程序所在的磁盘。举例来说,如果业务环境的程序在c盘(系统盘),那么就可以直接在c盘中执行对应的程序。而如果业务环境的程序在其它磁盘,那么就需要切换至对应的磁盘进行处理。此外,在该批处理脚本程序中,还可以限定业务环境的程序所在的文件夹,这样,结合磁盘和文件夹,可以最终定位出需要执行的业务环境的程序。
[0058]
该批处理脚本程序在执行时,可以将运行业务环境的脚本添加至系统的启动程序内。例如,可以将运行业务环境的脚本添加至windows系统的开始菜单的启动程序内。这样,在测试设备开机后,可以自动执行上述的批处理脚本程序,从而在对调用请求进行处理之前,启动对应的业务环境,以便后续直接对调用请求进行处理。
[0059]
可见,通过将执行业务环境的脚本设置为开机自启动,使得在分布式测试之前启动测试环境,为后续的调用请求的处理过程提供基础,这样可以提高调用请求的处理速度。
[0060]
请参阅图4,本技术一个实施方式提供一种调用请求的处理系统,所述系统包括:
[0061]
接口识别单元,用于在监听端口接收到调用请求的情况下,识别所述调用请求指向的业务接口;其中,所述调用请求的数据结构与所述业务接口支持的数据结构保持一致;
[0062]
请求处理单元,用于将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所述调用请求对应的业务数据;
[0063]
数据封装单元,用于将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述调用请求的发起方。
[0064]
请参阅图2,本技术一个实施方式还提供一种分布式系统中的测试设备,所述测试设备中运行有测试线程和业务服务,其中:
[0065]
所述测试线程,用于生成指定数据结构的调用请求,并将所述调用请求发送至所述测试设备的监听端口;
[0066]
所述业务服务,用于识别所述调用请求指向的业务接口;其中,所述指定数据结构与所述业务接口支持的数据结构保持一致;将所述调用请求发送至所述业务接口,以通过所述业务接口对所述调用请求进行处理,生成所述调用请求对应的业务数据;将所述业务数据按照所述业务接口支持的数据结构进行封装,并将封装后的业务数据提供给所述测试
线程。
[0067]
在一个实施方式中,所述测试线程还用于获取待调用的请求标识,并对所述请求标识进行编码后,将编码结果封装为指定数据结构的调用请求;其中,封装后的调用请求的请求体中,按照原生数据结构记录请求数据。
[0068]
请参阅图5,本技术一个实施方式还提供一种分布式系统中的测试设备,所述测试设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的调用请求的处理方法。
[0069]
本技术一个实施方式还提供一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的调用请求的处理方法。
[0070]
在本技术中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0071]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
[0072]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0073]
本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read

only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid

state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0074]
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1