技术领域
[0001] 本发明属于底层算法生成技术领域,尤其涉及算法的生成方法及终端设备。
相关背景技术
[0002] 保险系统包括不同的子系统,而各个子系统可能涉及不同的底层算法。
[0003] 目前,在实现保险系统的底层算法时,通常是由业务员提供EXCEL模版,IT工程师再将EXCEL模板描述的算法翻译成SQL脚本,然后再将翻译结果编写在脚本中。由于需要IT工程师翻译算法,因此,需要耗费过多的人力资源,此外,在需翻译的算法较多时,成倍增加的开发工作量将增加IT工程师的负担,从而导致开发周期变长,开发效率低下。
[0004] 故,需要提供一种新的算法生成方法,以解决上述技术问题。
具体实施方式
[0023] 以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0024] 为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0025] 图1示出了本发明实施例提供的一种算法的生成方法的流程图,详述如下:
[0026] 步骤S11,接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数。
[0027] 可选地,在所述步骤S11之前,包括:
[0028] 将保险系统中的算法对应的算法参数通过所述算法参数的关键字生成可拖拉的选项,所述算法参数的关键字显示在预先开发的可视化配置界面。其中,可视化配置界面主要用于展示保险系统中涉及的各个算法的算法参数(或算法参数的唯一标识-----如算法参数的关键字)和运算符号,当算法参数(或算法参数的唯一标识-----如算法参数的关键字)和运算符号较多时,可通过下拉菜单隐藏,或者,通过多个界面(或页面)呈现。当然,该可视化配置界面还包括为生成的目标算法设置名称或备注信息的设置项。由于算法参数的关键字的字符长度会小于或等于算法参数的字符长度,因此,在可视化配置界面显示的是算法参数的关键字而不是算法参数本身,能够有效减少需显示的字符长度,从而提高显示效率。
[0029] 对应地,所述步骤S11包括:
[0030] A1、接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,所述算法参数拖拉指令携带算法参数的关键字信息。
[0031] A2、根据所述算法参数的关键字信息拖拉对应的算法参数。
[0032] 具体地,用户在可视化配置界面查找到需拖拉的算法参数关键字,再拖拉查找到的算法参数关键字以实现对算法参数的拖拉。
[0033] 步骤S12,根据预设的映射关系,将拖拉的算法参数映射为对应的数据库的字段。
[0034] 具体地,所述预设的映射关系通过以下方式生成:
[0035] B1、统计保险系统中各种算法涉及到的算法参数,并将统计的算法参数对应的算法参数关键字存入宽表中,所述宽表包括以下至少一种算法参数对应的算法参数关键字:保单信息、险种信息、被保人信息、投保人信息。
[0036] B2、将与统计的算法参数对应的算法参数关键字对应的数据库的字段存入所述宽表中,得到预设的映射关系。
[0037] 具体地,整理出保险系统中各种算法涉及到的算法参数,并将算法参数对应的算法参数关键字存入宽表中,该宽表是指字段比较多的数据库表,通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。在本发明实施例的宽表中,主要包括保单信息、险种信息,被保人信息、投保人信息等算法参数对应的算法参数关键字,同时,该宽表还包括与算法参数关键字对应的数据库的字段。在可视化配置界面显示算法参数对应的算法参数关键字,当用户选择某个算法参数关键字后,表明该用户选择该算法参数关键字对应的算法参数,以及,选择该算法参数关键字对应的数据库的字段。例如,比如宽表A上有字段flag_value系数、pol_yr保单年度,则系数为算法参数关键字,该“系数”对应的数据库的字段为flag_value,同理,“保单年度”这一算法参数关键字对应的数据库的字段为“pol_yr”。
[0038] 可选地,可预先提取本发明实施例的宽表涉及的算法参数关键字对应的算法参数,这样,当可视化配置界面需要使用到该算法参数时,能够直接获取该算法参数对应的数据,不需要重新计算,从而提高执行效率。当然,为了使得预先提取的算法参数都能被调用,则需要统计指定阶段(如上一日或上一月)中宽表涉及的算法参数关键字对应的算法参数的使用频率,则预先提取使用频率大于预设频率阈值的算法参数关键字对应的算法参数。
[0039] 步骤S13,接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法。
[0040] 其中,算法参数组合指令包括被拖拉的算法参数、被拖拉的算法参数的先后顺序,以及,被拖拉的算法参数之间的运算符号等信息。具体地,在可视化配置界面显示运算符号,根据用户选择的算法参数关键字与选择的运算符号的先后顺序,生成目标算法。例如,当用户选择“系数”这一算法参数关键字后,接着选择“*”这一运算符号,再选择“保单年度”这一算法参数关键字,则生成的目标算法为“系数*保单年度”。
[0041] 可选地,为了便于用户获知组合成的目标算法的层级结构,直观、方便地判断出组合的目标算法是否有误,则在所述步骤S13之后,包括:
[0042] 以树形的方式展示所述目标算法的层级结构。
[0043] 可选地,所述以树形的方式展示所述目标算法的层级结构,包括:
[0044] C1、确定组成所述目标算法的算法所在的层数,以及,确定组成所述目标算法的算法涉及的算法参数关键字和运算符号。
[0045] C2、以树形的方式分层展示组成所述目标算法的算法以及组成所述目标算法的算法涉及的算法参数关键字和运算符号。
[0046] 例如,在以树形的方式显示组合成的目标算法有2层算法时,可通过以下方式显示:
[0047] 1层算法:
[0048] MAX(基本保额算法结果,保费算法结果,现金价值算法结果)
[0049] 2层算法:
[0050] 基本保额算法结果:系数/100*MIN(保单年度,交费年度)*基本保额
[0051] 保费算法结果:(1+系数/100*(MAX(1,保单期数-交费期数+1)+保单期数)/2)*MIN(保单期数,交费期数)*期交保费
[0052] 现金价值算法结果:系数/100*现金价值
[0053] 只有1层的算法时,可通过以下方式显示:系数/100*基本保额-因重疾或残疾已给付的金额。
[0054] 即,在树形显示时,将显示该目标算法由哪几个算法组成,每个算法下面涉及哪些算法参数关键字。
[0055] 可选地,在树形显示时,也可以包括显示每个算法涉及的哪个表的哪个字段,以便用户进一步确认生成的目标算法是否有误,从而减少生成错误目标算法的概率。
[0056] 由于以树形的方式展示目标算法的层级结构,因此,便于用户(业务员和IT工程师)直观地核查组合成的目标算法是否正常,是否有性能问题,若组合成的目标算法正常,则开发公共调用程序,预先计算组合成的目标算法,若能够正常计算出目标算法的计算结果,则判定没有性能问题,若不能计算出目标算法的计算结果,则判定有性能问题。例如,当判断出目标算法是有多个层级的算法组成,或者,涉及的算法参数关键字有20个以上时,用树形结构展示方便查看,业务员可以直观地看出目标算法是否符合要求,有没有手误。IT工程师查看目标算法是否能计算出结果。
[0057] 可选地,由于性能问题通常与目标算法关联的表的数量有关,因此,也可在步骤“以树形的方式展示所述目标算法的层级结构”之后或步骤C2之后设置一个判断步骤,当判断出目标算法关联的表的数量大于预设的表数量阈值,或者,判断出关联的表的数据量大于预设的数据量阈值时,通过在数据库验证是否能够得到所述目标算法的计算结果,若不能,则表示有性能问题,并将关联的全部表或部分表存入后台的宽表中,并预先计算宽表存入的全部表或部分表的计算结果,或者,将关联的数据量大于预设的数据量阈值的表存入后台的宽表中,并预先计算宽表存入的数据量大于预设的数据量阈值的表的计算结果,这样,后续可直接调用预先计算的计算结果,从而降低在计算目标算法时出现的性能问题的概率。
[0058] 需要指出的是,公共调用程序是1个执行框架,可以把算法作为1个参数传进去执行,或者从表中读取算法执行。调用方式有2种方式:第1种是直接在可视化配置界面上点击触发,第2种是在后台通过批处理任务定时执行。具体设置时,将涉及的数据量比较少的简单算法的调用方式设置为第1种,得到计算结果后,用户通过在可视化配置界面发出下载指令下载该计算结果。将数据量比较大的复杂算法的调用方式设置为第2种:把算法插入到后台的算法表中,后台在满足条件后(如,需处理的算法的个数达到预设的个数阈值,或者,在预设的时间到达时),按算法表存储的算法的先后顺序批处理执行,当然,在执行结束后,可显示处理结果。
[0059] 步骤S14,根据所述目标算法以及映射的数据库的对应字段匹配出对应的SQL语句。
[0060] 具体地,将目标算法包括的算法参数关键字对应的数据库的字段以及运算符号根据预设的匹配规则匹配出对应的SQL语句。例如,用户在可视化配置界面设置了算法:系数/100*least(保单年度,交费年度)*基本保额,则该可视化配置界面在读取宽表的结构后,匹配用户设置的算法,可以翻译为后台执行SQL:flag_value/100*least(pol_yr,prem_term)*sum_ins。需要指出的是,系数对应的数据库的字段为“flag_value”,“保单年度”、“交费年度”、“基本保额”对应的数据库的字段分别为“pol_yr”、“prem_term”、“sum_ins”。
[0061] 本发明实施例中,接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数,根据预设的映射关系,将拖拉的算法参数映射为数据库的对应字段,接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法,根据所述目标算法以及映射的数据库的对应字段匹配出对应的SQL语句。由于用户在可视化配置界面发出算法参数拖拉指令就能拖拉对应的算法参数,再根据被拖拉的算法参数生成对应的目标算法,以及,将目标算法匹配出SQL语句,因此,无需人工将目标算法转换为SQL语句,从而极大减轻了IT工程师的负担,缩短了开发周期,提高了SQL算法的开发效率,此外,由于目标算法不是底层算法,其涉及的算法参数也更容易被用户明白,因此,也能降低生成错误SQL语句的概率。
[0062] 图2示出了本发明实施例提供的一种算法的生成装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
[0063] 该算法的生成装置2包括:算法参数拖拉指令接收单元21、数据库字段确定单元22、算法参数组合指令接收单元23、SQL语句生成单元24。其中:
[0064] 算法参数拖拉指令接收单元21,用于接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数。
[0065] 可选地,所述算法的生成装置2包括:
[0066] 可拖拉的选项生成模块,用于将保险系统中的算法对应的算法参数通过所述算法参数的关键字生成可拖拉的选项,所述算法参数的关键字显示在预先开发的可视化配置界面。当算法参数(或算法参数的唯一标识-----如算法参数的关键字)和运算符号较多时,可通过下拉菜单隐藏,或者,通过多个界面(或页面)呈现。当然,该可视化配置界面还包括为生成的目标算法设置名称或备注信息的设置项。
[0067] 对应地,所述算法参数拖拉指令接收单元21包括:
[0068] 算法参数拖拉指令接收模块,用于接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,所述算法参数拖拉指令携带算法参数的关键字信息。
[0069] 算法参数拖拉模块,用于根据所述算法参数的关键字信息拖拉对应的算法参数。
[0070] 数据库字段确定单元22,用于根据预设的映射关系,将拖拉的算法参数映射为对应的数据库的字段。
[0071] 其中,所述预设的映射关系通过以下方式生成:
[0072] 统计保险系统中各种算法涉及到的算法参数,并将统计的算法参数对应的算法参数关键字存入宽表中,所述宽表包括以下至少一种算法参数对应的算法参数关键字:保单信息、险种信息、被保人信息、投保人信息;
[0073] 将与统计的算法参数对应的算法参数关键字对应的数据库的字段存入所述宽表中,得到预设的映射关系。
[0074] 可选地,可预先提取本发明实施例的宽表涉及的算法参数关键字对应的算法参数,这样,当可视化配置界面需要使用到该算法参数时,能够直接获取该算法参数对应的数据,不需要重新计算,从而提高执行效率。当然,为了使得预先提取的算法参数都能被调用,则需要统计指定阶段(如上一日或上一月)中宽表涉及的算法参数关键字对应的算法参数的使用频率,则预先提取使用频率大于预设频率阈值的算法参数关键字对应的算法参数。
[0075] 算法参数组合指令接收单元23,用于接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法。
[0076] 其中,算法参数组合指令包括被拖拉的算法参数、被拖拉的算法参数的先后顺序,以及,被拖拉的算法参数之间的运算符号等信息。
[0077] 可选地,为了便于用户获知组合成的目标算法的层级结构,直观、方便地判断出组合的目标算法是否有误,则所述算法的生成装置2包括:
[0078] 树形展示单元,用于以树形的方式展示所述目标算法的层级结构。
[0079] 可选地,所述树形展示单元包括:
[0080] 确定组成所述目标算法的算法所在的层数,以及,确定组成所述目标算法的算法涉及的算法参数关键字和运算符号;
[0081] 以树形的方式分层展示组成所述目标算法的算法以及组成所述目标算法的算法涉及的算法参数关键字和运算符号。
[0082] 可选地,在树形显示时,也可以包括显示每个算法涉及的哪个表的哪个字段,以便用户进一步确认生成的目标算法是否有误,从而减少生成错误目标算法的概率。
[0083] 可选地,由于性能问题通常与目标算法关联的表的数量有关,因此,所述算法的生成装置2还可包括:关联的表的数量判断单元,用于在判断出目标算法关联的表的数量大于预设的表数量阈值,或者,判断出关联的表的数据量大于预设的数据量阈值时,通过在数据库验证是否能够得到所述目标算法的计算结果,若不能,则表示有性能问题,并将关联的全部表或部分表存入后台的宽表中,并预先计算宽表存入的全部表或部分表的计算结果,或者,将关联的数据量大于预设的数据量阈值的表存入后台的宽表中,并预先计算宽表存入的数据量大于预设的数据量阈值的表的计算结果,这样,后续可直接调用预先计算的计算结果,从而降低在计算目标算法时出现的性能问题的概率。
[0084] 需要指出的是,公共调用程序是1个执行框架,可以把算法作为1个参数传进去执行,或者从表中读取算法执行。调用方式有2种方式:第1种是直接在可视化配置界面上点击触发,第2种是在后台通过批处理任务定时执行。具体设置时,将涉及的数据量比较少的简单算法的调用方式设置为第1种,得到计算结果后,用户通过在可视化配置界面发出下载指令下载该计算结果。将数据量比较大的复杂算法的调用方式设置为第2种:把算法插入到后台的算法表中,后台在满足条件后(如,需处理的算法的个数达到预设的个数阈值,或者,在预设的时间到达时),按算法表存储的算法的先后顺序批处理执行,当然,在执行结束后,可显示处理结果。
[0085] SQL语句生成单元24,用于根据所述目标算法以及映射的数据库的对应字段匹配出对应的SQL语句。
[0086] 本发明实施例中,由于用户在可视化配置界面发出算法参数拖拉指令就能拖拉对应的算法参数,再根据被拖拉的算法参数生成对应的目标算法,以及,将目标算法匹配出SQL语句,因此,无需人工将目标算法转换为SQL语句,从而极大减轻了IT工程师的负担,缩短了开发周期,提高了SQL算法的开发效率,此外,由于目标算法不是底层算法,其涉及的算法参数也更容易被用户明白,因此,也能降低生成错误SQL语句的概率。
[0087] 图3是本发明一实施例提供的终端设备的示意图。如图3所示,该实施例的终端设备3包括:处理器30、存储器31以及存储在所述存储器31中并可在所述处理器30上运行的计算机程序32。所述处理器30执行所述计算机程序32时实现以下操作:
[0088] 接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数;
[0089] 根据预设的映射关系,将拖拉的算法参数映射为对应的数据库的字段;
[0090] 接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法;
[0091] 根据所述目标算法以及映射的数据库的对应字段匹配出对应的SQL语句。
[0092] 可选地,在所述接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数之前,所述处理器执行所述计算机程序时还实现以下操作:
[0093] 将保险系统中的算法对应的算法参数通过所述算法参数的关键字生成可拖拉的选项,所述算法参数的关键字显示在预先开发的可视化配置界面;
[0094] 对应地,所述接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数包括:
[0095] 接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,所述算法参数拖拉指令携带算法参数的关键字信息;
[0096] 根据所述算法参数的关键字信息拖拉对应的算法参数。
[0097] 可选地,所述预设的映射关系通过以下方式生成:
[0098] 统计保险系统中各种算法涉及到的算法参数,并将统计的算法参数对应的算法参数关键字存入宽表中,所述宽表包括以下至少一种算法参数对应的算法参数关键字:保单信息、险种信息、被保人信息、投保人信息;
[0099] 将与统计的算法参数对应的算法参数关键字对应的数据库的字段存入所述宽表中,得到预设的映射关系。
[0100] 可选地,在所述接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法之后,所述处理器执行所述计算机程序时还实现以下操作:
[0101] 以树形的方式展示所述目标算法的层级结构。
[0102] 可选地,所述以树形的方式展示所述目标算法的层级结构,包括:
[0103] 确定组成所述目标算法的算法所在的层数,以及,确定组成所述目标算法的算法涉及的算法参数关键字和运算符号;
[0104] 以树形的方式分层展示组成所述目标算法的算法以及组成所述目标算法的算法涉及的算法参数关键字和运算符号。
[0105] 或者,所述处理器30执行所述计算机程序32时实现上述各装置实施例中各模块/单元的功能,例如图2所示模块21至24的功能。
[0106] 示例性的,所述计算机程序32可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序32在所述终端设备3中的执行过程。例如,所述计算机程序32可以被分割成算法参数拖拉指令接收单元、数据库字段确定单元、算法参数组合指令接收单元、SQL语句生成单元,各模块具体功能如下:
[0107] 算法参数拖拉指令接收单元,用于接收用户在预先生成的可视化配置界面发出的算法参数拖拉指令,以拖拉对应的算法参数;
[0108] 数据库字段确定单元,用于根据预设的映射关系,将拖拉的算法参数映射为对应的数据库的字段;
[0109] 算法参数组合指令接收单元,用于接收用户发出的算法参数组合指令,根据所述算法参数组合指令将用户已拖拉的所有算法参数组合成目标算法;
[0110] SQL语句生成单元,用于根据所述目标算法以及映射的数据库的对应字段匹配出对应的SQL语句。
[0111] 所述终端设备3可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器30、存储器31。本领域技术人员可以理解,图3仅仅是终端设备3的示例,并不构成对终端设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
[0112] 所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0113] 所述存储器31可以是所述终端设备3的内部存储单元,例如终端设备3的硬盘或内存。所述存储器31也可以是所述终端设备3的外部存储设备,例如所述终端设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器31还可以既包括所述终端设备3的内部存储单元也包括外部存储设备。所述存储器31用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
[0114] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0115] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0116] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0117] 在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0118] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0119] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0120] 所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0121] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。