配置数据处理方法及装置、电子设备、存储介质与流程

文档序号:17396905发布日期:2019-04-13 00:53阅读:142来源:国知局
本发明实施例涉及计算机
技术领域
:,具体而言,涉及一种配置数据处理方法、配置数据处理装置、电子设备以及计算机可读存储介质。
背景技术
::再保计算需要很多参数,这些参数按照不同的功能存放在不同的配置表。这些配置表中数据大部分是通过再保系统前台页面维护到表中的,有少部分是直接在数据库中配置的。配置表之间一般通过关键字段都有一定的依赖关系,并把这些依赖关系作为后期计算时匹配参数的主要线索,根据这些线索匹配到相应的参数值。相关技术中,在获取配置信息时,一般通过逐条查询的方法,每用到一条数据就从表里查询一次配置参数。在这种方式中,由于再保计算程序需要很多配置参数,逐条查询时与数据库的交互太过频繁,操作量较大;并且从大量的数据中匹配参数耗时太长,效率较低。另外,由于再保计算采用的是多线程方式,所有的配置表都同一个类中进行初始化,当计算线程组中的每个线程获得配置参数时,会影响到线程彼此间的执行效率。需要说明的是,在上述
背景技术
:部分公开的信息仅用于加强对本发明实施例的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:本发明实施例的目的在于提供一种配置数据处理方法、装置、电子设备、存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的配置数据处理效率低以及准确率低的问题。本发明实施例的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明实施例的实践而习得。根据本发明实施例的一个方面,提供一种配置数据处理方法,包括:通过对多个配置表进行分层初始化确定所述多个配置表之间的映射关系;根据所述映射关系对所述多个配置表进行初始化,并将所述多个配置表封装在内存对应的初始化容器;对所述初始化容器中的所述多个配置表进行再次初始化,并将再次初始化后的所述多个配置表封装在镜像容器;确定每个线程对应的镜像容器,并根据所述镜像容器获取各所述线程对应的配置数据。可选地,通过对多个配置表进行分层初始化确定所述多个配置表之间的映射关系包括:分别根据累计方案编码、再保方案号码以及费率表编号,对所述多个配置表按照依赖关系分层级进行初始化,以确定所述多个配置表之间的映射关系。可选地,将所述多个配置表封装在内存对应的初始化容器包括:将所述多个配置表数据以及日志表数据存储至初始化容器中,并将所述日志表数据存储至累计方案集合;从所述累计方案集合中获取一个累计方案编码,并通过所述累计方案编码将所述多个配置表封装在所述初始化容器。可选地,通过所述累计方案编码将所述多个配置表封装在所述初始化容器包括:按照所述累计方案编码将所述累计方案编码关联的配置表封装到第一容器;按照再保方案号码将所述再保方案号码关联的配置表封装到第一容器;按照费率表编号将所述费率表编号关联的配置表封装到第一容器;其中,所述第一容器包括一对一容器或一对多容器。可选地,按照所述累计方案编码将所述累计方案编码关联的配置表封装到第一容器包括:若所述第一容器为一对一容器,则将所述累计方案编码作为主键,并将所述累计方案编码关联的配置表的数据作为值封装在第一容器中的第二容器中;若所述第一容器为一对多容器,则将所述累计方案编码作为主键,并将所述累计方案编码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器。可选地,按照再保方案号码将所述再保方案号码关联的配置表封装到第一容器包括:若所述第一容器为一对多容器,则将所述再保方案号码作为主键,并将所述再保方案号码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器;将所述累计方案编码作为主键,将每个所述第一容器分别作为值封装在另一个第一容器。可选地,按照费率表编号将所述费率表编号关联的配置表封装到第一容器包括:若所述第一容器为一对一容器,则将所述费率表编码作为主键,并将所述费率表编号关联的配置表的数据作为值封装在第一容器;若所述第一容器为一对多容器,则将所述费率表编码作为主键,并将所述费率表编码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器。可选地,所述镜像容器包括累计方案编码对应的配置数据,所述方法还包括:若更新所述累计方案编码,则清空所述镜像容器;从所述初始化容器中,重新获取更新后的累计方案编码对应的配置数据并存储至所述镜像容器。可选地,确定每个线程对应的镜像容器,并根据所述镜像容器获取各所述线程对应的配置数据包括:构建与初始化类对象匹配的扩展类对象,并将所有线程的名称与所述扩展类对象进行关联;确定所述线程对应的所述扩展类对象,并确定所述扩展类对象对应的镜像容器,以得到所述线程对应的配置数据。根据本发明实施例的一个方面,提供一种配置数据处理装置,包括:映射关系确定模块,用于通过对多个配置表进行分层初始化确定所述多个配置表之间的映射关系;初始化容器封装模块,用于根据所述映射关系对所述多个配置表进行初始化,并将所述多个配置表封装在内存对应的初始化容器;镜像容器获取模块,用于对所述初始化容器中的所述多个配置表进行再次初始化,并将再次初始化后的所述多个配置表封装在镜像容器;配置数据获取模块,用于确定每个线程对应的镜像容器,并根据所述镜像容器获取各所述线程对应的配置数据。根据本发明实施例的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的配置数据处理方法。根据本发明实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的配置数据处理方法。本发明实施例示例性实施例中提供的配置数据处理方法、装置、电子设备以及计算机可读存储介质中,一方面,通过将配置表读取到内存中的初始化容器中,从初始化容器中读取配置数据,减少了计算程序与数据库的交互次数和交互频率,减少了操作量。另一方面,通过线程关联的镜像容器得到线程关联的配置数据,能够实现从封装好的容器数据中快速查询配置参数的目的,相比于逐条查询而言,能够减少查询次数,提高查询效率以及计算效率,并且能够提高查询准确率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明实施例的实施例,并与说明书一起用于解释本发明实施例的原理。显而易见地,下面描述中的附图仅仅是本发明实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示意性示出本发明实施例中一种配置数据处理方法的流程图。图2示意性示出本发明实施例中配置表映射关系的示意图。图3示意性示出本发明实施例中第一层初始化容器的结构图。图4示意性示出本发明实施例中第二层初始化容器的结构图。图5示意性示出本发明实施例中第三层初始化容器的结构图。图6示意性示出本发明实施例中扩展类对象与线程绑定的示意图。图7示意性示出本发明实施例中获取配置数据的示意图。图8示意性示出本发明实施例中一种配置数据处理装置的框图。图9示意性示出本发明实施例中一种电子设备的框图。图10示意性示出本发明实施例中一种程序产品。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明实施例将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明实施例的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明实施例的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本发明实施例的各方面变得模糊。此外,附图仅为本发明实施例的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。本发明实施方式中提供了一种配置数据处理方法,可以应用于再保计算中获取和加载配置参数的应用场景。参考图1所示,对本发明实施例中的配置数据处理方法进行详细说明。在步骤s110中,通过对多个配置表进行分层初始化确定所述多个配置表之间的映射关系。本示例性实施例中,配置表也可以理解为物理表,物理表是具体某个数据源中的一张表。对于mysql就是一个table,对于hbase可以是一张hbase表,对于es是一个索引。mysql、hbase和es这些物理表必须要有合理的主键key。多个配置表可以包括但不限于图2中所示的再保计算中的各个表单。为了便于统计和后续计算,可对多个配置表进行分层初始化,以得到配置表之间的映射关系。具体地,可分别根据累计方案编码、再保方案号码以及费率,对所述多个配置表按照依赖关系分层级或者是分层次进行初始化,以确定所述多个配置表之间的映射关系。其中,第一层具体为,根据累计方案编码初始化累计方案定义表、累计险种/责任表、上次累计保额信息表、上次分保记录表、再保方案表和日志路径表。第二层具体为,根据再保方案号码初始化溢额线设置表、分配额设置表、分保公司定义表和再保方案计算类表。第三层具体为,根据费率表编号初始化费率表定义表、费率表更新轨迹表、费率表字段定义表、通用费率表。在分层初始化之后,可得到如图2所示的多个配置表之间的映射关系。需要说明的是,存在映射关系的配置表之间均存在相同的字段标识,例如初始化累计方案定义表、累计险种/责任表、上次累计保额信息表、上次分保记录表、再保方案表和日志路径表中均包括累计方案编码等等。在步骤s120中,根据所述映射关系对所述多个配置表进行初始化,并将所述多个配置表封装在内存对应的初始化容器。本示例性实施例中,所有的配置表会在一个静态构造器中进行初始化,且程序运行过程中只能对配置表初始化一次。构造器可以提供许多特殊的方法,构造器作为一种方法,负责类中成员变量(域)的初始化。实例构造器分为缺省构造器和非缺省构造器。构造器的作用在于创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。通过静态构造器对配置表进行初始化的同时,还可将多个配置表封装在内存中对应的初始化容器中。具体过程包括:读取配置表数据和日志表数据存放到相应的容器中,将日志表的数据存放到累计方案集合中;从累计方案集合中获取一个累计方案编码,并根据累计方案编码把所有的配置表封装到初始化容器中。将所有配置表封装到初始化容器中的过程可以理解为设计初始化容器的过程。需要说明的是,初始化容器指的是把物理表(配置表)中的数据初始化到内存中,在内存中保存这些数据的容器。容器指的是一个开源的应用容器引擎,让开发者可以打包应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。容器数据指的是存储在容器中的数据。由于配置表的映射关为通过分层级初始化确定的,因此初始化容器也可以分为三个层次。在此基础上,从所述累计方案集合中获取一个累计方案编码,并根据所述累计方案编码将所有配置表封装在初始化容器包括三个层级,三个层级依次包括按照累计方案编码封装、按照再保方案号码封装以及按照费率表编号封装。首先对第一层的初始化容器进行说明。第一层具体包括:按照所述累计方案编码将所述累计方案编码关联的配置表封装到第一容器。具体地,按照累计方案编码把累计方案定义表、合同方案险种责任关联表、再保方案表封装到第一容器中(上次累计保额信息表、上次分保记录表因为数据量太大,所以不加载到内存中,在计算过程中如果用到这两张表中的参数直接从表中读取)。第一容器可以为map容器,map容器为关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。进一步地,可根据累计方案编码和各配置表中获得数据的对应关系可将map容器分为一对一容器和一对多容器,对于一对一容器或者是一对多容器而言,其中的数据以键值对形式进行存储,且map容器的主键key值均为累计方案编码。图3中的图a示出了按照累计方案编码设计的第一种第一容器。参考图3中所示,累计方案编码和其它数据(累计方案编码对应的配置表的数据)一对一,则第一容器为一对一容器,此时可将其它数据作为map容器的v值按顺序存放在位于第一容器的第二容器中,其中第二容器可以为list容器中。参考图3中所示,合同方案险种责任关联表中的数据(是否累计、合同类别)与累计方案编码一对一,则可将累计方案编码以及是否累计、合同类别封装在map容器中。具体地,可将累计方案编码l00000xx作为map容器的主键,将是否累计、合同类别存在第二容器list容器中,并以此作为map容器的值。图3中的图b中示出了按照累计方案编码设计的第二种第一容器。参考图3中的图b所示,累计方案编码和其它数据(累计方案编码对应的配置表的数据)的对应关系为一对多,则可认为第一容器为一对多容器,此时可将累计方案编码作为主键,并将累计方案编码关联的配置表的数据作为值封装在第一容器中的第三容器中,且第三容器中包含存储每条记录的第四容器。第三容器例如可以为set容器,set容器是关联容器,类似于集合,里面的元素不会重复,而且呈现为有序性。第四容器例如可以为scham容器。可将其它数据作为map容器的v值按顺序存放在位于第一容器的第三容器中,其中第三容器可以为set容器。参考图3中的图b所示,再保方案表的数据(再保方案号码)与累计方案编码一对多,则可将累计方案编码以及再保方案号码封装在map容器中。具体地,可将累计方案编码l00000xx作为map容器的主键,将再保方案号码等其它数据作为map容器的v值存放在物理表对应的set容器中,且set容器中存放物理表每条记录对应的scham容器。也就是说,将再把方案号码存放在位于set容器的scham容器中。通过一对一以及一对多的方式分别设计不同结构的初始化容器,能够更准确地加载累计方案编码关联的配置表的配置数据。接下来对设计初始化容器的第二层进行说明,可按照所述再保方案号码将所述再保方案号码关联的配置表封装到第一容器。具体地,按照再保方案号码把溢额线设置表、分保额设置表、分保公司定义表封装到第一容器(map容器)中。根据再保方案号码和各表中获得数据的对应关系,确定map容器为一对多容器,此时可将再保方案号码作为map容器的主键k值,从其它表获得的数据作为值。参考图4所示,溢额线设置表、分保额设置表、分保公司定义表的数值均与再保方案号码的对应关系为一对多,因此可分别为溢额线设置表、分保额设置表以及分保公司定义表的数值设计一个map容器。类似地,每个map容器的主键为再保方案号码,其值为每个配置表的数值,并且可以将每个配置表的数值封装在位于map容器中的set容器,且每个set容器均包含存放物理表每条记录对应的scham容器。需要说明的是,在设计第二层初始化容器时,将每个第一容器封装在另一个第一容器中,将所述累计方案编码作为主键,将每个所述第一容器分别作为值封装在另一个第一容器。另一个第一容器指的是外套在每个map容器外的一层map容器,即外层map。外层map与再保方案号码关联的配置表的数量相同,具体地,在每个外层map中,主键k是累计方案编码,值是上述的每个map容器,以使以上的每个map容器都分别放在不同的外层map中,避免不同配置表之间的相互影响。进一步地,对初始化容器的第三层进行说明。可按照费率表编号将所述费率表编号关联的配置表封装到第一容器。具体地,第一种情况为:若所述第一容器为一对一容器,则将所述费率表编码作为主键,并将所述费率表编号关联的配置表的数据作为值封装在第一容器。参考图5中的图a所示,费率表定义表的数据与费率表编号的对应关系为一对一,则map容器为一对一容器。此时,可将费率表编码作为主键,并将费率表定义表中的费率表类型作为值封装在map容器中。参考图5中的图b所示,费率表编号与费率表更新轨迹表、费率表字段定义表、通用费率表中的数据作为map容器的值存放在各配置表对应的set容器中,且set容器中存放配置表每条记录对应的scham容器。通过一对一以及一对多的方式分别设计费率表编号对应的不同结构的初始化容器,能够更准确地加载费率表编号关联的配置表的配置数据。通过图3至图5中的方法,将多个配置表封装在内存对应的初始化容器中,通过初始化容器对多个配置表进行初始化。通过将一些表的数据读取到内存,使计算程序减少与数据库和接口的交互。除此之外,通过累计方案编码、再保方案号码以及费率表编号对所有配置表进行分层次封装在初始化容器中,能够实现多个配置表的有效加载。根据累计方案编码、再保方案号码、费率表编号分别与各自关联的配置表的数据之间的一对一关系或者是一对多关系,确定不同的封装容器和封装格式,能够准确对数据进行封装,便于多个配置表的统一管理,以利于对配置表进行处理。在步骤s130中,对所述初始化容器中的所述多个配置表进行再次初始化,并将再次初始化后的所述多个配置表封装在镜像容器。本示例性实施例中,再次初始化指的是对一次初始化后的配置表的数据继续进行二次初始化。一次初始化生成的容器数据是全集,二次初始化生成的容器数据指的是一次初始化生成的容器数据的子集。镜像容器指的是二次初始化过程中存放配置表的数据,即配置数据的容器。需要说明的是,镜像容器的也是使用容器嵌套的模式,其模式与初始化容器基本相同,此处不再赘述。镜像容器数据指的是存放在镜像容器中的二次初始化的配置数据。由于累计方案编号作为初始化容器和镜像容器的主键值,因此镜像容器中存储的数据是一个累计方案编号的完整配置数据。举例而言,当累计方案编码为l0000012时,镜像容器数据则为l0000012对应的所有配置表的配置数据。在此基础上,本示例性实施例中的方法还可以包括:若所述累计方案编码更新,则清空所述镜像容器;从所述初始化容器中,重新获取更新后的累计方案编码对应的配置数据存储至所述镜像容器。也就是说,如果检测到累计方案编码发生了变化,例如从l0000012更新为l0000034,则可以将镜像容器中的累计方案编码l0000012对应的所有数据清空或删除,以避免不同累计方案编码的配置数据之间的相互影响,并且能够减少获取数据时的操作量,提高获取数据的准确率。进一步地,可从初始化容器中获取与更新后的累计方案编码l0000034对应的完整的配置数据,存放在镜像容器中。在步骤s140中,确定每个线程对应的镜像容器,并根据所述镜像容器获取各所述线程对应的配置数据。本示例性实施例中,首先可编写或构建一个扩展类对象,且扩展类对象的结构与初始化类对象的结构相似。初始化类对象与扩展类对象均可以为配置数据在加载时程序定义的类,扩展类对象可用于根据累计方案编码获得初始化容器中的部分容器数据。在每个线程启动时,可将每个线程名称与构建的扩展类对象绑定或者进行关联。具体地,可将线程名称与每个扩展类对象一一对应,参考图6中所示,扩展类对象包括扩展类对象1、扩展类对象2以及扩展类对象n等等,其中,线程threadno1与扩展类对象1绑定、线程threadno2与扩展类对象2绑定、线程threadnon与扩展类对象n绑定等等。根据线程名称可确定扩展类对象,进而采用扩展类对象,并根据累计方案编码确定与扩展类对象关联的镜像容器,镜像容器与扩展类对象一一对应。具体地,参考图7中所示,根据线程名称确定累计方案编码l0x对应的镜像容器l0x之后,可确定镜像容器对应的初始化容器,从而从初始化容器中得到当前线程对应的所有配置数据。类似地,可根据镜像容器与线程之间爱你的一一对应关系,得到每个线程对应的配置数据。从封装好的容器汇总获取配置数据,能有效提高命中率,提高计算效率。另外,由于每个线程都拥有自己的参数初始化对象和扩展类对象,避免了相关技术中多个线程共用一个扩展类对象时造成的多个线程之间的相互影响,且提高了线程执行效率。本发明实施例中还提供了一种配置数据处理装置,参考图8所示,该配置数据处理装置800包括:映射关系确定模块801,用于通过对多个配置表进行分层初始化确定所述多个配置表之间的映射关系;初始化容器封装模块802,用于根据所述映射关系对所述多个配置表进行初始化,并将所述多个配置表封装在内存对应的初始化容器;镜像容器获取模块803,用于对所述初始化容器中的所述多个配置表进行再次初始化,并将再次初始化后的所述多个配置表封装在镜像容器;配置数据获取模块804,用于确定每个线程对应的镜像容器,并根据所述镜像容器获取各所述线程对应的配置数据。可选地,映射关系确定模块包括:关系分析模块,用于分别根据累计方案编码、再保方案号码以及费率表编号,对所述多个配置表按照依赖关系分层级进行初始化,以确定所述多个配置表之间的映射关系。可选地,初始化容器封装模块包括:存储模块,用于将所述多个配置表数据以及日志表数据存储至初始化容器中,并将所述日志表数据存储至累计方案集合;配置表封装模块,用于从所述累计方案集合中获取一个累计方案编码,并通过所述累计方案编码将所述多个配置表封装在所述初始化容器。可选地,配置表封装模块包括:第一封装模块,用于按照所述累计方案编码将所述累计方案编码关联的配置表封装到第一容器;第二封装模块,用于按照再保方案号码将所述再保方案号码关联的配置表封装到第一容器;第三封装模块,用于按照费率表编号将所述费率表编号关联的配置表封装到第一容器;其中,所述第一容器包括一对一容器或一对多容器。可选地,第一封装模块包括:第一类型控制模块,用于若所述第一容器为一对一容器,则将所述累计方案编码作为主键,并将所述累计方案编码关联的配置表的数据作为值封装在第一容器中的第二容器中;第二类型控制模块,用于若所述第一容器为一对多容器,则将所述累计方案编码作为主键,并将所述累计方案编码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器。可选地,第二封装模块包括:封装控制模块,用于若所述第一容器为一对多容器,则将所述再保方案号码作为主键,并将所述再保方案号码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器;再次封装模块,用于将所述累计方案编码作为主键,将每个所述第一容器分别作为值封装在另一个第一容器。可选地,第三封装模块包括:第一控制模块,用于若所述第一容器为一对一容器,则将所述费率表编码作为主键,并将所述费率表编号关联的配置表的数据作为值封装在第一容器;第二控制模块,用于若所述第一容器为一对多容器,则将所述费率表编码作为主键,并将所述费率表编码关联的配置表的数据作为值封装在第一容器中的第三容器中,且所述第三容器中包含存储每条记录的第四容器。可选地,所述镜像容器包括累计方案编码对应的配置数据,所述装置还包括:镜像容器清空模块,用于若更新所述累计方案编码,则清空所述镜像容器;重新存储模块,用于从所述初始化容器中,重新获取更新后的累计方案编码对应的配置数据并存储至所述镜像容器。可选地,配置数据获取模块包括:关联控制模块,用于构建与初始化类对象匹配的扩展类对象,并将所有线程的名称与所述扩展类对象进行关联;容器确定模块,用于确定所述线程对应的所述扩展类对象,并确定所述扩展类对象对应的镜像容器,以得到所述线程对应的配置数据。需要说明的是,上述配置数据处理装置中各功能模块的具体细节已经在对应的配置数据处理方法中进行了详细描述,因此此处不再赘述。应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。此外,尽管在附图中以特定顺序描述了本发明实施例中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施例的方法。在本发明实施例中,还提供了一种能够实现上述方法的电子设备。所属
技术领域
:的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。下面参照图9来描述根据本发明的这种实施方式的电子设备900。图9显示的电子设备900仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元910执行,使得所述处理单元910执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元910可以执行如图1中所示的步骤。存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)9201和/或高速缓存存储单元9202,还可以进一步包括只读存储单元(rom)9203。存储单元920还可以包括具有一组(至少一个)程序模块9205的程序/实用工具9204,这样的程序模块9205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。显示单元940可以为具有显示功能的显示器,以通过该显示器展示由处理单元910执行本示例性实施例中的方法而得到的处理结果。显示器包括但不限于液晶显示器或者是其它显示器。电子设备900也可以与一个或多个外部设备1100(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。在本发明实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。参考图10所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品1000,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其他实施例。本申请旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本
技术领域
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由权利要求指出。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1