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

一种云持续集成告警处理方法、服务器及存储介质与流程

2021-10-22 22:23:00 来源:中国专利 TAG:告警 器及 持续 集成 通讯


1.本发明涉及通讯领域,尤其涉及一种云持续集成告警处理方法、服务器及存储介质。


背景技术:

2.近年来,ci(continuous integration,持续集成)的微服务云化后,很好地解决了传统ci中的问题,但同时,随着行业对代码的质量要求和安全要求不断提高,也给云ci的运维监控带来了新的挑战:为了满足对代码质量与安全的要求,越来越多的检测组件和检测服务加入到ci流程中,导致一旦云集成平台出现故障,就需要运维人员人工核查异常,启动解决方案,这不仅需要运维人员熟悉云ci的全流程,了解ci基础设施和操作,导致对运维人员的要求门槛高,同时,需要运维人员在任何时候都准备应对故障,随时待命,而且,当云ci全流程中有大量的检测组件和检测服务时,人工处理的效率低下,导致告警长久得不到响应,影响云集成平台用户的体验。


技术实现要素:

3.本发明实施例提供的云持续集成告警处理方法、服务器及存储介质,主要解决的技术问题是:相关技术中由运维人员人工识别并响应云ci告警,处理效率不高,且运维人员负担大的问题。
4.为解决上述技术问题,本发明实施例提供一种云持续集成告警处理方法,包括:
5.根据受检代码的在云集成平台的检测执行日志识别受检代码对应的即时告警;
6.查询告警-响应映射表确定即时告警所对应的目标响应事件,告警-响应映射表中包含各告警与各响应事件之间的对应关系;
7.触发即时告警对应的目标响应事件。
8.本发明实施例还提供一种服务器,服务器包括处理器、存储器及通信总线;
9.通信总线用于实现处理器和存储器之间的连接通信;
10.处理器用于执行存储器中存储的一个或者多个程序,以实现上述云持续集成告警处理方法的步骤。
11.本发明实施例还提供一种存储介质,其特征在于,存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述云持续集成告警处理方法的步骤。
12.本发明的有益效果是:
13.本发明实施例提供的云持续集成告警处理方法、服务器及存储介质,首先云集成平台的服务器根据受检代码的在云集成平台的检测执行日志自动识别受检代码对应的即时告警,然后通过查询告警-响应映射表,在告警-响应映射表中包含各告警与各响应事件之间的对应关系,通过查询可以确定即时告警所对应的目标响应事件,随后,服务器可以自动触发即时告警对应的目标响应事件,从而响应即时告警,自动解决云ci相关故障,避免了
对运维人员人工处理的依赖,降低了对运维人员的要求以及运维人员本身的负担。而且,服务器提供的响应方案遵循告警-响应映射表,不会像人工响应方案一样受到运维人员本身学识、经验以及主观性的影响,有利于保证响应方案的有效性。同时,因为服务器的自动化处理,可以在获取到受检代码的检测执行日志后的第一时间识别出即时告警并做出相应的响应,处理效率高,有利于降低对云集成平台用户的影响,维护用户体验。
14.本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
15.图1为本发明实施例一中提供的云持续集成告警处理方法的一种流程图;
16.图2为本发明实施例一中示出的流水式检测链路的一种示意图;
17.图3为本发明实施例二中提供的一种典型的云ci框架的示意图;
18.图4为本发明实施例二中提供的云持续集成告警处理系统的一种示意图;
19.图5为本发明实施例三中提供的服务器的一种硬件结构示意图。
具体实施方式
20.为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
21.实施例一:
22.为了解决相关技术中针对云ci过程的异常,只能人工识别告警然后再启动响应事件,处理效率低下,且运维人员负担重的问题,本实施例提供一种云持续集成告警处理方法,该云持续集成告警处理方法可以由云集成平台的服务器执行,下面请结合图1示出的流程图:
23.s102:服务器根据受检代码的在云集成平台的检测执行日志识别受检代码对应的即时告警。
24.当代码提交者提交一份代码到云集成平台后,该代码作为受检代码需要接受云集成平台的各种检测扫描,例如,check in pipeline(代码检入流水线),jenkins(詹金斯)的pipeline、ut(unit testing,单元测试)、代码静态检查、编译build(生成)等,通过云集成平台的检测扫描,可以确定受检代码的质量与安全。云集成平台对各受检代码的检测是流水线式的检测,多个检测项目被设置在检测链路中,如图2所示,开发检测项目21、配置检测项目22、集成检测项目23、构建检测项目24、测试检测项目25、部署检测项目26以及容器云检测项目27依次排列在检测链路上,当代码提交者提交一份代码到云集成平台后,该代码作为受检代码将依次接受开发检测项目21、配置检测项目22
……
容器云检测项目27的检测的扫描。
25.在云集成平台上的各检测项目对受检代码进行检测扫描的过程中,云集成平台将会根据执行检测扫描的过程生成检测执行日志。在对应于某一检测项目的执行日志中通常记录有受检代码在该检测项目下的检测起始时间、检测结束时间、状态信息以及关键字等基础信息。本领域技术人员应当理解的是,检测执行日志中的基础信息除了上述几种以外,
还可以包括其他内容,例如,包括受检代码进入检测项目队列的时间等。当一份受检代码通过全部检测项目的检测扫描后,云集成平台将得到针对该受检代码的全链路执行日志,全链路执行日志中包含该受检代码在各检测项目接受检测的基础信息。
26.服务器可以根据受检代码的在云集成平台的检测执行日志识别受检代码对应的即时告警,应当理解的是,服务器识别受检代码对应的告警,实际上就是识别受检代码在接受检测扫描的过程中存在的异常。所谓“即时告警”,实际上就是在此次检测扫描过程中发现的异常告警。除了“即时告警”以外,可能还会存在一些尚未发现,但可能已经存在了的“潜在告警”。
27.在本实施例的一些示例当中,服务器可以查询受检代码的检测执行日志确定该受检代码在各检测项目下执行的状态信息。通常,状态信息分为两种,一种是执行成功,另一种是执行失败。
28.对于检测链路中的每一个检测项目,如果受检代码在该检测项目下的检测执行日志中的状态信息表征受检代码在该检测项目下执行成功,则服务器可以根据检测执行日志确定该受检代码在该检测项目下的执行指标。所谓执行指标可以包括该受检代码在该检测项目下的执行时长等。确定出执行指标后,服务器可以将执行指标同对应的执行指标阈值进行比较,从而识别受检代码在该检测项目中是否即时告警、存在哪些即时告警。
29.如果受检代码在该检测项目下的检测执行日志中的状态信息表征受检代码在该检测项目下执行失败,则服务器可以提取检测执行日志中的关键字,然后利用预先设置的关键字-告警映射表确定提取出的关键字所对应的即时告警。
30.在本实施例的一些示例当中,服务器在查询到受检代码的检测执行日志,确定该受检代码在各检测项目下执行的状态信息之后,还可以将查询到的状态信息进行显示,从而让运维人员等在需要的时候可以通过显示屏等了解对受检代码的检测扫描情况。
31.s104:服务器查询告警-响应映射表确定即时告警所对应的目标响应事件。
32.确定出告警之后,服务器可以查询告警-响应映射表,在告警-响应映射表中存储了各告警与各响应事件之间的对应关系,因此,服务器通过以即时告警作为键值可以查询到告警-响应映射表中与该即时告警对应的响应事件。可以理解的是,在告警-响应映射表中,一个告警至少应该对应一个响应事件,在一些情况下,一个告警还可以同时对应多个响应事件。不过,不同的告警可以对应相同的响应事件。例如,针对告警a和告警c的处理方案是一样的,那么在告警-响应映射表中,告警a与告警c所对应的响应事件也是一样的。
33.一个响应事件实际上就是用于解决告警对应异常的一个方案,通常在一个解决方案中可以包含多个操作,所以,在一个响应事件中也可以包含多个操作,在本实施例的一些示例当中,一个响应事件可以由n个子响应事件构成,n大于等于1。每一个子响应事件是服务器执行的最小操作,该操作不能再被进一步分解细化,例如子响应事件可以是“重启云ci服务器”、“启用备用gerrit镜像”、“邮件通知代码提交者”等。毫无疑义的是,子响应事件间的不同组合可以构成不同的响应事件。子响应事件与响应事件之间的关系类似于微观原子与宏观物质之间的关系。
34.毫无疑义的是,如果一个即时告警在告警-响应映射表中仅对应有一个响应事件,则这个响应事件就是该即时告警的目标响应事件。但当一个即时告警在告警-响应映射表中同事对应有不只一个响应事件时,因为告警-响应映射表中对应同一告警的各响应事件
之间的关系是并列可选的关系,所以服务器并不需要将所有与该即时告警对应的响应事件均作为目标响应事件,而是从这些响应事件中选择一个即可。
35.在一些示例当中,如果告警-响应映射表中即时告警所对应的响应事件有至少两个,服务器可以基于分别执行各响应事件所需要的代价花费来确定选择哪一个响应事件作为即时告警的目标响应事件,当然,服务器会选择代价相对较低的一个作为目标响应事件。服务器在评估每一个响应事件的代价的时候,可以考虑执行该响应事件在人力成本、事件成本与资源成本几方面中至少一方面的代价。在本实施例的一些示例当中,服务器可以综合上面几方面的代价做出选择。
36.因为服务器在真正触发一个响应事件之前所做出的代价评估都仅仅是预估,所以,在本实施例中,将服务器选择目标响应事件前确定的与即时告警对应的各响应事件的代价称为“预估代价”。可选地,服务器在分别确定与即时告警所对应的各响应事件的预估代价时,可以先分别确定,每一个响应事件对应的关键代价指标x,如关键代价指标可以是代码拉取时长、verifyci时长(验证ci)、mergeci(合入ci)时长、上传制品库时长、人力成本、资源成本等几种中的至少一种。然后,服务器根据以下公式来确定各响应事件对应的预估代价:
[0037][0038]
其中,y为一个响应事件对应的预估代价,n表示该响应事件对应的关键代价指标x的总数,i表示该响应事件对应的第i个关键代价指标,x
i
表示第i个关键代价指标的值,w
i
表示第i个关键代价指标的权重。例如,假定一个响应事件的关键代价指标同时包括代码拉取时长、verifyci时长、mergeci时长,则n的取值为3,x1就表示代码拉取时长的值,w1表示代码拉取时长这一关键代价指标所对应的权重
……
x3就表示mergeci时长的值,w3表示mergeci时长这一关键代价指标所对应的权重。
[0039]
在一些实施例中,服务器分别确定与即时告警对应的各响应事件的预估代价后,选择预估代价最低一个响应事件作为该即时告警的目标响应事件。当然在其他一些示例当中,服务器在选择目标响应事件的时候也不仅仅考虑预估代价的大小,例如,服务器还可以进一步考虑各响应事件对异常处理的彻底性或者有效性等因素。
[0040]
s106:服务器触发即时告警对应的目标响应事件。
[0041]
服务器确定出即时告警所对应的目标响应事件后,可以触发目标响应事件。具体地,服务器就是要触发执行目标响应事件中的每一个子响应事件。
[0042]
可以理解的是,当服务器触发执行完目标响应事件之后,就可以确定目标响应事件对应的“实际代价”,利用目标响应事件的实际代价,服务器可以采用逻辑回归算法反过来确定更新各关键代价指标对应的权重w,所以,在本实施例中,各更新各关键代价指标对应的权重值并不是长期固定不变的。
[0043]
在本实施例的一些示例当中,服务器根据检测执行日志确定受检代码在各检测项目下的执行指标之后,还可以为受检代码的本次提交生成代码提交记录,例如,服务器按照受检代码经历各检测项目的顺序为该受检代码的本次提交生成代码提交记录,在代码提交记录中可以包括但不限于以下几种信息中的部分:受检代码的commit id(提交标识)、提交者标识信息、云持续集成初次入队时间、kw(klocwork)扫描详情、sm(source monitor,资源
监控)扫描详情、verifyci时长、mergeci时长。在本实施例的另一些示例当中,如果受检代码在检测链路中出现过即时告警,则在代码提交记录中还可以进一步包括即时告警对应的告警编码和对应的目标响应事件。在服务器生成代码提交记录之后,可以将该代码提交记录存储到数据库中,该数据库可以设置在服务器本地的存储控件中,也可以设置在其他存储设备上。
[0044]
数据库中存储的代码提交记录可供服务器进行整体分析,从而分析出当前尚未被识别出、但可能已经存在问题的“潜在告警”,在本实施例的一种实施例当中,服务器可以根据数据库中存储的代码提交记录进行执行指标拟合,然后根据拟合结果分析确定针对云集成平台的潜在告警。例如,服务器可以根据各代码提交记录中的verifyci时长计算verifyci平均时长,根据各代码提交记录中的mergeci时长计算mergeci平均时长。然后根据verifyci平均时长来确定verifyci这一检测项目是否存在异常,根据mergeci平均时长来确定mergeci这一检测项目是否存在异常。识别潜在告警有助于对云ci场景做提前预测和干预,防止指标深度恶化。
[0045]
另一方面,服务器也可以根据代码提交记录对历史信息进行回归和统计分析,得出verifyci成功率,mergeci成功率,平均verifyci时长、平均mergeci时长等,然后以这些统计值更新相关的执行指标阈值。
[0046]
本实施例提供的云持续集成告警处理方法,由服务器执行云持续集成告警处理流程,自动根据受检代码在云集成平台上的检测执行日志识别受检代码对应的即时告警,然后基于预先设置的告警与响应事件之间的对应关系确定可以解决即时告警的目标响应事件,并自动触发目标响应事件,从而可以快速定位异常、排除异常,避免人工处理效率不高的问题;且目标响应事件的确定不受运维人员学识、个人经验、临时应变能力等的影响,保证了响应方案的有效性与可靠性。同时该云持续集成告警处理方法可以降低对运维人员的要求,环节运维人员的压力。
[0047]
实施例二:
[0048]
为了使本领域技术人员能够更清楚云持续集成告警处理方法的优点与细节,本实施例将结合具体示例继续对该方案进行阐述:
[0049]
图3示出了一种典型的云ci框架的示意图:在云ci流程中,开发人员向gerrit代码库30提交代码后,可自动触发云ci的checkin pipeline32,jenkins的pipeline并发执行单元测试、代码静态检查、编译build等job,job成功后编译的版本将被以服务为粒度提交到制品库。随着devops (development和operations的组合词,即开发运维一体化)的发展,相关的静态代码扫描、合规治理、安全监测等的需求也陆续开发出来并加入到云ci检测链路中。例如,在图3当中就有五种扫描检查:ut、sm、kw以及coverity、package(打包),所以,在实际流程中,就需要配套的五个docker(应用容器引擎)来支撑。
[0050]
从图3中可以看出对云集成平台用户(即代码提交者)来说非常简单的一次代码提交背后,是云ci的多次甚至数十次的调用和反馈。一旦出现故障,必须快速实现故障的定位与反馈,否则就会造成大量用户投诉,影响用户体验:
[0051]
本实施例提供一种与实施例一中云持续集成告警处理方法对应的云持续集成告警处理系统,请参见图4示出的云持续集成告警处理系统的一种示意图:
[0052]
云持续集成告警处理系统4包括数据库400、日志处理模块402、状态显示模块404
以及日志应用模块406、告警知识库408,其中日志处理模块402通过获取并处理受检代码在云集成平台上的检测执行日志,实时查询检测执行日志状态,并将状态信息的查询结果反馈给状态显示模块404进行显示。
[0053]
同时,如果状态信息表征受检代码在某个检测项目下执行成功,则日志处理模块402可以根据检测执行日志确定该受检代码在该检测项目下的执行指标。另外,日志处理模块402还可以在根据检测执行日志确定受检代码在各检测项目下的执行指标之后,为受检代码的本次提交生成代码提交记录,并将代码提交记录存储值数据库400中,例如,日志处理模块402按照受检代码经历各检测项目的顺序为该受检代码的本次提交生成代码提交记录,在代码提交记录中可以包括受检代码的commit id、提交者标识信息、云持续集成初次入队时间、kw扫描详情、sm扫描详情、verifyci时长、mergeci时长等。数据库中存储的代码提交记录可供日志应用模块406进行统计分析,进行执行指标拟合,从而识别潜在告警。
[0054]
随后,日志应用模块406可以将执行指标同对应的执行指标阈值进行比较,从而识别受检代码在该检测项目中是否即时告警、存在哪些即时告警。如果日志处理模块402查询出的状态信息表征受检代码在某个检测项目下执行失败,则日志应用模块406可以提取检测执行日志中的关键字,然后利用预先设置的关键字-告警映射表确定提取出的关键字所对应的即时告警。
[0055]
日志应用模块406识别出即时告警后,依据告警知识库408提供的告警-响应映射表,确定目标响应事件并触发对应的目标响应事件。告警-响应映射表实际就是一组消息映射map<r,a>,其中r代表告警,a代表响应事件。告警知识库408前期通过人工知识汇总、告警分类整理、典型日志分析等操作形成告警规则,由运维人员提供与各告警对应的常规处理方案作为配套的响应事件,一个响应事件可以由一个或多个子响应事件组成。在本实施例的一些示例当中,告警知识库408中的内容还可基于历史数据进行学习和优化。
[0056]
下面对指定告警-响应映射表的细节进行介绍:
[0057]
在本实施例的一种示例当中告警-响应映射表种r包括告警编码以及对应的告警内容,在一些示例当中,采用告警编码中的第一位数据来表征告警所对应的异常大类,采用第二位和第三位用来标识云ci具体环节的异常小类,例如下面的表1中示出了告警编码中的第一位数据各数值与异常大类间的对应关系:
[0058]
表1
[0059]
告警编码第一位数据数值告警所属异常大类0未知类型1配置错误2人为报错3gerrit服务器问题4制品库问题5mvn代理库问题6虚机环境问题7代码问题
[0060]
表2中示出了告警编码中的第二、三位数据各数值与异常小类间的对应关系:
[0061]
表2
[0062][0063][0064]
例如,结合表1与表2可知“210”代表配置阶段分支被锁定,“012”代表初始阶段的未知错误,“416”代表制品库组件中制品库返回码,“403”表示拒绝访问,一般为网络问题,“418”代表制品库链接超时或崩溃。
[0065]
下面介绍告警-响应映射表中响应事件的设置:可选地,可以通过对子响应事件进行“原子化”编排组合形成响应事件。具体地,先提供子响应事件,每个子响应事件的影响因子不同,这里的影响因子可以是[0,1]之间的任意值,其表征了子响应事件对ci流程、环境、ci服务能力的影响,例如请参见表3:
[0066]
表3
[0067][0068]
每个响应事件,可由上述一个或多个子响应事件组成,合成后的响应事件的影响因子,为每个子响应事件的影响因子之和。
[0069]
由于告警-响应映射表中一个告警可以同时对应多个响应事件,因此下面对日志应用模块406选择目标响应事件的过程进行介绍:
[0070]
日志应用模块406可以先分别确定每一个响应事件对应的关键代价指标x,例如代码拉取时长、verifyci时长、mergeci时长、上传制品库时长、人力成本、资源成本等。然后,日志应用模块406根据以下公式来确定各响应事件对应的预估代价:
[0071][0072]
其中,y为一个响应事件对应的预估代价,n表示该响应事件对应的关键代价指标x的总数,i表示该响应事件对应的第i个关键代价指标,x
i
表示第i个关键代价指标的值,w
i
表示第i个关键代价指标的权重。
[0073]
在本实施例中,日志应用模块406分别确定与即时告警对应的各响应事件的预估代价后,选择预估代价最低一个响应事件作为该即时告警的目标响应事件。日志应用模块406确定出即时告警所对应的目标响应事件后,可以触发目标响应事件。
[0074]
本实施例提供的云持续集成告警处理系统,可以有效识别云ci环节的异常告警,并根据告警规则,触发对应的响应事件,保证云ci环境的稳健性,减少运维人员的工作量的同时,也可提升用户满意度。
[0075]
实施例三:
[0076]
本实施例提供一种存储介质,该存储介质中可以存储有一个或多个可供一个或多个处理器读取、编译并执行的计算机程序,在本实施例中,该存储介质可以存储有云持续集成告警处理程序,云持续集成告警处理程序可供一个或多个处理器执行实现前述实施例介绍的任意一种云持续集成告警处理方法的流程。
[0077]
本实施例中还提供一种服务器,如图5所示:服务器5包括处理器51、存储器52以及
用于连接处理器51与存储器52的通信总线53,其中存储器52可以为前述存储有云持续集成告警处理程序的存储介质。处理器51可以读取云持续集成告警处理程序,进行编译并执行实现前述实施例中介绍的云持续集成告警处理方法的流程:
[0078]
处理器51根据受检代码的在云集成平台的检测执行日志识别受检代码对应的即时告警,然后查询告警-响应映射表确定即时告警所对应的目标响应事件,该告警-响应映射表中包含各告警与各响应事件之间的对应关系;最后,处理器51触发即时告警对应的目标响应事件。
[0079]
在本实施例的一些示例当中,处理器51查询告警-响应映射表确定即时告警所对应的目标响应事件时,如果告警-响应映射表中即时告警所对应的响应事件有至少两个,则处理器51分别确定与即时告警所对应的各响应事件对应的预估代价,预估代价为预估执行响应事件在人力成本、事件成本与资源成本几方面中至少一方面的代价。然后,处理器51根据各响应事件的预估代价选择即时告警对应的目标响应事件。
[0080]
在一种示例当中,处理器51分别确定与即时告警所对应的各响应事件对应的预估代价时,对于与即时告警所对应的任意一个响应事件,处理器51确定响应事件对应的各个关键代价指标x;然后根据以下公式确定响应事件对应的预估代价:
[0081][0082]
其中,y为响应事件对应的预估代价,n表示响应事件对应的关键代价指标x的总数,i表示响应事件对应的第i个关键代价指标,x
i
表示第i个关键代价指标的值,w
i
表示第i个关键代价指标的权重。
[0083]
在本实施例的一些示例当中,处理器51触发即时告警对应的目标响应事件之后,还会确定触发告警所对应的响应事件的实际代价,然后根据实际代价结合逻辑回归算法更新各关键代价指标对应的权重w。
[0084]
可选地,处理器51根据受检代码的在云集成平台的检测执行日志识别受检代码对应的即时告警时,可以先查询受检代码的检测执行日志确定受检代码在各检测项目下执行的状态信息。对于任意一个检测项目,若状态信息表征受检代码在检测项目下执行成功,则处理器51根据检测执行日志确定受检代码在检测项目下的执行指标,并将受检代码在各检测项目下的执行指标同对应的执行指标阈值进行比较,识别各检测项目中的即时告警。
[0085]
对于任意一个检测项目,如果状态信息表征受检代码在检测项目下执行失败,则处理器51提取检测执行日志中的关键字,然后查询关键字-告警映射表确定关键字所对应的即时告警,在关键字-告警映射表中包含多个关键字与多种告警之间的映射关系。
[0086]
在本实施例的一些示例当中,处理器51根据检测执行日志确定受检代码在各检测项目下的执行指标之后,还会按照受检代码经历各检测项目的顺序为受检代码的本次提交生成代码提交记录,并将代码提交记录存储至数据库。可选地,代码提交记录中包括受检代码的提交标识commit id、提交者标识信息、云持续集成初次入队时间、kw扫描详情、sm扫描详情、verifyci时长、mergeci时长中的至少部分。
[0087]
在本实施例的一些示例当中,处理器51还可以根据数据库中存储的代码提交记录进行执行指标拟合,然后根据拟合结果分析确定针对云集成平台的潜在告警。
[0088]
显然,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系
统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram,rom,eeprom、闪存或其他存储器技术、cd-rom,数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
[0089]
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜