项目动态部署方法、系统、电子设备及可读存储介质与流程

文档序号:31672078发布日期:2022-09-28 01:10阅读:52来源:国知局
项目动态部署方法、系统、电子设备及可读存储介质与流程

1.本发明涉及项目部署技术领域,尤其涉及一种项目动态部署方法、系统、电子设备及可读存储介质。


背景技术:

2.目前,随着业务开发的不断复杂,关系型数据库成为了业务开发的必备组件。由于业务理解不同、业务变化较大、开发水平不齐、库表结构不规范等原因,不可避免会出现数据库表的表结构设计不统一、不合理的情况,因此,需要对数据库表的表结构进行重构,再根据重构后的表结构对原先的数据库表进行数据迁移,使得整个数据库表采用相同的表结构,提高整个业务开发的开发效率和查询性能,进而基于重构后的数据库表部署目标项目。
3.但是,由于业务开发的不断深入,数据库表也逐渐庞大和复杂,不仅导致数据迁移的时间过长,还容易出现信号终端、内存不足(oom,out ofmemory)等数据错误,导致开发周期不断延长,进而降低项目的部署效率,无法满足业务需求。


技术实现要素:

4.为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
5.鉴于以上所述现有技术的缺点,本发明公开了一种项目动态部署方法、系统、电子设备及可读存储介质,以减少开发周期,提高项目的部署效率。
6.本发明公开了一种项目动态部署方法,包括:获取目标项目对应的目标数据库表和源数据库表;对所述源数据库表进行数据拉取,得到全量数据,根据所述全量数据对所述目标数据库表进行数据迁移,得到第一数据库表;根据所述第一数据库表对所述目标项目进行项目部署,并根据所述源数据库表进行拉取,得到所述源数据库表对应的数据更新日志;根据所述源数据库表的增量数据对所述第一数据库表进行数据迁移,得到第二数据库表,并基于所述第二数据库表对所述目标项目进行更新,其中,所述增量数据通过对所述数据更新日志进行日志解析得到。
7.可选地,获取目标项目对应的目标数据库表和源数据库表之后,对所述源数据库表进行数据拉取之前,所述方法还包括:根据所述源数据库表和所述目标数据库表建立库表迁移项目,其中,所述库表迁移项目包括全量迁移任务和增量迁移任务;所述全量迁移任务用于对所述源数据库表进行数据拉取,得到全量数据,根据所述全量数据对所述目标数据库表进行数据迁移,得到第一数据库表;所述增量迁移任务用于对所述数据更新日志进行日志解析,得到增量数据,根据所述源数据库表的增量数据对所述第一数据库表进行数据迁移,得到第二数据库表。
8.可选地,根据所述源数据库表和所述目标数据库表建立库表迁移项目之后,所述方法还包括:获取数据迁移方式信息,将所述数据迁移方式信息导入所述库表迁移项目,其
中,所述数据迁移方式信息包括映射迁移、算法迁移中的至少一种。
9.可选地,根据所述源数据库表和所述目标数据库表建立库表迁移项目之后,所述方法还包括:建立所述库表迁移项目对应的用户交互界面;响应于所述用户交互界面接收到迁移项目任务对应的任务执行指令,执行所述迁移项目任务,并通过所述用户交互界面展示所述迁移项目任务对应的当前任务进度,其中,所述迁移项目任务包括所述全量迁移任务和所述增量迁移任务中的至少一种;响应于所述用户交互界面接收到项目建立指令,则根据所述第一数据库表建立目标项目,并通过所述用户交互界面展示所述目标项目的当前建立进度;响应于所述用户交互界面接收到预设运行环境对应的项目部署指令,将所述目标项目部署到所述预设运行环境中。
10.可选地,对所述源数据库表进行数据拉取,得到全量数据,包括:对所述源数据库表进行主键查询,根据查询结果确定所述源数据库表对应的主键存在状态;若所述主键存在状态包括存在主键,则将查询到的最新主键作为所述源数据库表的截止主键,对所述截止主键之前的源数据库表进行分页拉取,得到全量数据;若所述主键存在状态包括缺失主键,则对所述源数据库表进行全表拉取,得到全量数据。
11.可选地,根据所述源数据库表进行拉取,得到所述源数据库表对应的数据更新日志,包括;获取所述源数据库表所在的源数据库,并建立本地缓存空间;对所述源数据库进行日志拉取,得到数据库记录日志,其中,所述数据库记录日志用于记录所述源数据库对应的数据更新语句;将所述数据库记录日志记录在所述本地缓存空间,得到所述源数据库表对应的数据更新日志。
12.可选地,通过以下方法获取所述增量数据:对所述源数据库表对应的数据更新日志进行日志解析,得到解析成功的增量数据和解析失败的待处理数据;将所述待处理数据发送至预设的日志处理接口,使得所述日志处理接口响应于接收到所述预设更新日志对应的用户解析数据,将所述用户解析数据加入增量数据。
13.本发明公开了一种项目动态部署系统,包括:获取模块,用于获取目标项目对应的目标数据库表和源数据库表;全量迁移模块,用于对所述源数据库表进行数据拉取,得到全量数据,根据所述全量数据对所述目标数据库表进行数据迁移,得到第一数据库表;部署模块,用于根据所述第一数据库表对所述目标项目进行项目部署,并根据所述源数据库表进行拉取,得到所述源数据库表对应的数据更新日志;增量迁移模块,用于根据所述源数据库表的增量数据对所述第一数据库表进行数据迁移,得到第二数据库表,并基于所述第二数据库表对所述目标项目进行更新,其中,所述增量数据通过对所述数据更新日志进行日志解析得到。
14.本发明公开了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
15.本发明公开了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
16.本发明的有益效果:
17.通过获取目标项目对应的目标数据库表和源数据库表,根据对源数据库表进行数据拉取得到的全量数据对目标数据库表进行数据迁移,得到第一数据库表,并通过第一数
以及他们的任何变形,意图在于覆盖不排他的包含。
29.除非另有说明,术语“多个”表示两个或两个以上。
30.本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,a/b表示:a或b。
31.术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,a和/或b,表示:a或b,或,a和b这三种关系。
32.结合图1所示,本公开实施例提供了一种项目动态部署方法,包括:
33.步骤s101,获取目标项目对应的目标数据库表和源数据库表;
34.步骤s102,对源数据库表进行数据拉取,得到全量数据,根据全量数据对目标数据库表进行数据迁移,得到第一数据库表;
35.步骤s103,根据第一数据库表对目标项目进行项目部署,并根据源数据库表进行拉取,得到源数据库表对应的数据更新日志;
36.步骤s104,根据源数据库表的增量数据对第一数据库表进行数据迁移,得到第二数据库表,并基于第二数据库表对目标项目进行更新;
37.其中,增量数据通过对数据更新日志进行日志解析得到,增量数据不包括全量数据。
38.采用本公开实施例提供的项目动态部署方法,通过获取目标项目对应的目标数据库表和源数据库表,根据对源数据库表进行数据拉取得到的全量数据对目标数据库表进行数据迁移,得到第一数据库表,并通过第一数据库表对目标项目进行项目部署,再根据源数据库表进行拉取,得到源数据库表对应的数据更新日志,根据数据更新日志进行日志解析得到的增量数据对第一数据库表进行数据迁移,得到第二数据库表,并基于第二数据库表对目标项目进行更新。这样,通过数据拉取得到全量数据,根据全量数据得到用于部署目标项目的第一数据库表,再通过日志解析得到增量数据,根据增量数据向第一数据库表进行数据迁移,得到用于更行目标项目的第二数据库表,实现对目标项目的动态部署,不需要将数据库表的所有数据迁移后再进行项目部署,通过减少数据的迁移数据量,既降低了数据迁移的时间,还避免因数据过大造成的内存不足等问题,从而减少项目的开发周期,提高项目的部署效率。
39.可选地,获取目标项目对应的目标数据库表和源数据库表,包括:获取目标数据库信息和源数据库信息,其中,目标数据库信息包括目标url(uniform resource locator,统一资源定位系统)、目标账号、目标密码,源数据库信息包括源url、源账号、源密码;根据目标数据库信息连接对应的目标数据库,并根据源数据库信息连接对应的源数据库表;从目标数据库中选择目标数据库表,并从源数据库中选择源数据库表。
40.结合图2所示,用户通过用户交互界面(ui,user interface)输入目标数据库信息和源数据库信息,其中,目标数据库信息包括目标url、目标账号、目标密码,源数据库信息包括源url、源账号、源密码。
41.可选地,获取目标项目对应的目标数据库表和源数据库表之后,对源数据库表进行数据拉取之前,该方法还包括:根据源数据库表和目标数据库表建立库表迁移项目,其中,库表迁移项目包括全量迁移任务和增量迁移任务;全量迁移任务用于对源数据库表进行数据拉取,得到全量数据,根据全量数据对目标数据库表进行数据迁移,得到第一数据库表;增量迁移任务用于对数据更新日志进行日志解析,得到增量数据,根据源数据库表的增
量数据对第一数据库表进行数据迁移,得到第二数据库表。
42.可选地,根据源数据库表和目标数据库表建立库表迁移项目,通过库表迁移项目进行全量迁移和增量迁移,通过库表迁移项目解耦源数据库表与目标数据库表,降低数据迁移耦合度的同时提高了数据迁移的灵活性,便于用户对库表迁移项目进行维护。
43.在一些实施例中,库表迁移项目包括一个java(一门面向对象的编程语言)项目,该java项目通过springboot(用于简化新spring应用的搭建及开发的项目框架)项目框架和mybatis(基于java的持久层框架)项目框架建立,并且,该java项目根据目标数据库表和源数据库表分别生成对应的domain类。
44.可选地,该方法还包括:若目标项目部署成功且增量数据迁移完成,则将库表迁移项目下线。
45.可选地,根据源数据库表和目标数据库表建立库表迁移项目之后,该方法还包括:获取数据迁移方式信息,将数据迁移方式信息导入库表迁移项目,其中,数据迁移方式信息包括映射迁移、算法迁移中的至少一种。
46.在一些实施例中,将库表迁移项目导入数据迁移方式信息对应的ide(integrated development environment,集成开发环境),以将数据迁移方式信息导入库表迁移项目。
47.可选地,若数据迁移方式信息包括映射迁移,则数据迁移包括建立源数据库表和目标数据库表之间的映射关系,基于映射关系对全量数据或增量数据的字段进行查询,根据查询结果确定目标数据,在对目标数据进行预处理后,将目标数据填入目标数据库表或第一数据库表,其中,预处理包括数据清洗、数据去重、数据格式转换等中的一种或多种。
48.在一些实施例中,通过syncfunc接口实现映射迁移,其中,syncfunc接口入参为当前行数据,出参为需要填充的数据内容,通过该syncfunc接口对单个字段做数据迁移操作。
49.可选地,若数据迁移方式信息包括算法迁移,则数据迁移包括获取预设数据算法,根据预设数据算法对全量数据或增量数据进行计算,得到目标数据,将目标数据填入目标数据库表或第一数据库表。
50.在一些实施例中,通过sync接口实现算法迁移,其中,sync接口在对应的操作方法下实现开发者需要的业务逻辑,并通过映射语句(mapper)对目标数据进行迁移操作。
51.可选地,根据源数据库表和目标数据库表建立库表迁移项目之后,该方法还包括:建立库表迁移项目对应的用户交互界面;响应于用户交互界面接收到迁移项目任务对应的任务执行指令,执行迁移项目任务,并通过用户交互界面展示迁移项目任务对应的当前任务进度,其中,迁移项目任务包括全量迁移任务和增量迁移任务中的至少一种;响应于用户交互界面接收到项目建立指令,则根据第一数据库表建立目标项目,并通过用户交互界面展示目标项目的当前建立进度;响应于用户交互界面接收到预设运行环境对应的项目部署指令,将目标项目部署到预设运行环境中。
52.在一些实施例中,用户交互界面展示当前任务进度、当前建立进度,并展示maven(项目对象模型)等开发工具发送的警告信息。
53.这样,通过用户交互界面接收用户指令,并展示当前任务进度、当前建立进度等信息,便于用户掌握进度和排查问题。同时,根据项目建立指令建立目标项目、并根据项目部署指令部署目标项目,提高了目标项目建立和部署的灵活性。
54.可选地,对源数据库表进行数据拉取,得到全量数据,包括:对源数据库表进行主
键查询,根据查询结果确定源数据库表对应的主键存在状态;若主键存在状态包括存在主键,则将查询到的最新主键作为源数据库表的截止主键,对截止主键之前的源数据库表进行分页拉取,得到全量数据;若主键存在状态包括缺失主键,则对源数据库表进行全表拉取,得到全量数据。
55.这样,在对源数据库表进行数据拉取之前,查询在当前时刻最新生成的主键,将查询到的主键作为截止主键进行分页拉取,得到全量数据,避免因源数据库表数据量过大导致的内存不足问题,提高全量数据的拉取效率,从而减少项目的开发周期,提高项目的部署效率。
56.可选地,根据源数据库表进行拉取,得到源数据库表对应的数据更新日志,包括;获取源数据库表所在的源数据库,并建立本地缓存空间;对源数据库进行日志拉取,得到数据库记录日志,其中,数据库记录日志用于记录源数据库对应的数据更新语句;将数据库记录日志记录在本地缓存空间,得到源数据库表对应的数据更新日志。
57.在一些实施例中,源数据库包括mysql(关系型数据库管理系统)数据库,数据库记录日志包括binlog(binnarylog,二进制日志)日志,其中,binlog日志以事件形式记录了对mysql数据库更改的所有操作。
58.在一些实施例中,库表迁移项目还包括syncbinloghandler接口,该syncbinloghandler接口用于打印当前的binlog日志。
59.可选地,通过以下方法获取增量数据:对源数据库表对应的数据更新日志进行日志解析,得到解析成功的增量数据和解析失败的待处理数据;将待处理数据发送至预设的日志处理接口,使得日志处理接口响应于接收到预设更新日志对应的用户解析数据,将用户解析数据加入增量数据。
60.在一些实施例中,通过canal(一种基于java开发、用于数据库增量日志解析的解析工具)对binlog日志进行日志解析。
61.在一些实施例中,日志处理接口包括syncbinlog接口,若未能成功解析binlog日志,则将解析失败的binlog日志加入syncbinlog接口进行人工处理。
62.结合图3所示,本公开实施例提供了一种项目动态部署方法,包括:
63.步骤s301,获取目标项目对应的目标数据库表和源数据库表;
64.步骤s302,将源数据库表对应的数据库记录日志记录在本地缓存空间;
65.步骤s303,判断源数据库表是否存在主键,若是,跳转步骤s304,若否,跳转步骤s305;
66.步骤s304,对截止主键之前的源数据库表进行分页拉取,得到全量数据,跳转步骤s306;
67.步骤s305,对源数据库表进行全表拉取,得到全量数据,跳转步骤s306;
68.步骤s306,确定全量数据对应的数据迁移方式信息是否包括映射迁移,若是,跳转步骤s307,若否,跳转步骤s308;
69.步骤s307,根据全量数据对目标数据库表进行映射迁移,得到第一数据库表,跳转步骤s309;
70.步骤s308,根据全量数据对目标数据库表进行算法迁移,得到第一数据库表,跳转步骤s309;
71.步骤s309,根据第一数据库表对目标项目进行项目部署;
72.步骤s310,对数据更新日志进行日志解析,得到增量数据;
73.其中,增量数据不包括全量数据;
74.步骤s311,确定增量数据对应的数据迁移方式信息是否包括映射迁移,若是,跳转步骤s312,若否,跳转步骤s313;
75.步骤s312,根据增量数据对第一数据库表进行映射迁移,得到第二数据库表,跳转步骤s314;
76.步骤s313,根据增量数据对第一数据库表进行算法迁移,得到第二数据库表,跳转步骤s314;
77.步骤s314,基于第二数据库表对目标项目进行更新。
78.采用本公开实施例提供的项目动态部署方法,通过获取目标项目对应的目标数据库表和源数据库表,根据对源数据库表进行数据拉取得到的全量数据对目标数据库表进行数据迁移,得到第一数据库表,并通过第一数据库表对目标项目进行项目部署,再根据源数据库表进行拉取,得到源数据库表对应的数据更新日志,根据数据更新日志进行日志解析得到的增量数据对第一数据库表进行数据迁移,得到第二数据库表,并基于第二数据库表对目标项目进行更新,具有以下优点:
79.第一、通过数据拉取得到全量数据,根据全量数据得到用于部署目标项目的第一数据库表,再通过日志解析得到增量数据,根据增量数据向第一数据库表进行数据迁移,得到用于更行目标项目的第二数据库表,实现对目标项目的动态部署,不需要将数据库表的所有数据迁移后再进行项目部署,通过减少数据的迁移数据量,既降低了数据迁移的时间,还避免因数据过大造成的内存不足等问题,从而减少项目的开发周期,提高项目的部署效率;
80.第二、通过用户交互界面接收用户指令,并展示当前任务进度、当前建立进度等信息,便于用户掌握进度和排查问题;
81.第三、根据项目建立指令建立目标项目、并根据项目部署指令部署目标项目,提高了目标项目建立和部署的灵活性;
82.第四、在对源数据库表进行数据拉取之前,查询在当前时刻最新生成的主键,将查询到的主键作为截止主键进行分页拉取,得到全量数据,避免因源数据库表数据量过大导致的内存不足问题,提高全量数据的拉取效率,从而减少项目的开发周期,提高项目的部署效率。
83.结合图4所示,本公开实施例提供了一种项目动态部署系统,包括获取模块401、全量迁移模块402、部署模块403和增量迁移模块404,其中,获取模块401用于获取目标项目对应的目标数据库表和源数据库表;全量迁移模块402用于对源数据库表进行数据拉取,得到全量数据,根据全量数据对目标数据库表进行数据迁移,得到第一数据库表;部署模块403用于根据第一数据库表对目标项目进行项目部署,并根据源数据库表进行拉取,得到源数据库表对应的数据更新日志;增量迁移模块404用于根据源数据库表的增量数据对第一数据库表进行数据迁移,得到第二数据库表,并基于第二数据库表对目标项目进行更新,其中,增量数据通过对数据更新日志进行日志解析得到,增量数据不包括全量数据。
84.采用本公开实施例提供的项目动态部署系统,通过获取目标项目对应的目标数据
库表和源数据库表,根据对源数据库表进行数据拉取得到的全量数据对目标数据库表进行数据迁移,得到第一数据库表,并通过第一数据库表对目标项目进行项目部署,再根据源数据库表进行拉取,得到源数据库表对应的数据更新日志,根据数据更新日志进行日志解析得到的增量数据对第一数据库表进行数据迁移,得到第二数据库表,并基于第二数据库表对目标项目进行更新。这样,通过数据拉取得到全量数据,根据全量数据得到用于部署目标项目的第一数据库表,再通过日志解析得到增量数据,根据增量数据向第一数据库表进行数据迁移,得到用于更行目标项目的第二数据库表,实现对目标项目的动态部署,不需要将数据库表的所有数据迁移后再进行项目部署,通过减少数据的迁移数据量,既降低了数据迁移的时间,还避免因数据过大造成的内存不足等问题,从而减少项目的开发周期,提高项目的部署效率。
85.图5示出了适于用来实现本技术实施例的电子设备的计算机系统的结构示意图。需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
86.如图5所示,计算机系统500包括中央处理单元(central processing unit,cpu)501,其可以根据存储在只读存储器(read-only memory,rom)502中的程序或者从储存部分508加载到随机访问存储器(random access memory,ram)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在ram 503中,还存储有系统操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(input/output,i/o)接口505也连接至总线504。
87.以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(cathode ray tube,crt)、液晶显示器(liquid crystal display,lcd)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如lan(local area network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
88.特别地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本技术的系统中限定的各种功能。
89.需要说明的是,本技术实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任
意合适的组合。在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
90.本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
91.本公开实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
92.本实施例公开的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
93.在本实施例中,存储器可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
94.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、图形处理器(graphics processing unit,简称gpu),网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
95.以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本技术中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和
“”
(the)旨在同样包括复数形式。类似地,如在本技术中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本技术中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法
部分相对应,那么相关之处可以参见方法部分的描述。
96.本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
97.本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
98.附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1