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

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

2022-06-11 22:02:33 来源:中国专利 TAG:
1.本发明涉及数据库领域,尤其涉及一种向量数据处理方法及装置、电子设备及存储介质。
背景技术
::2.向量数据库就是用来存储、检索和分析向量数据的数据库,适用于语音、图像、视频处理、地理信息系统(geographicinformationsystem,gis)、机器学习等需要处理多维向量数据的场景。目前的向量数据库通常是基于键值对(key-value)模式而设计的非关系型(notonlystructuredquerylanguage,nosql)数据库,而且侧重于数据分析,往往难以满足大规模向量数据的可靠存储和高效检索的需求。技术实现要素:3.有鉴于此,本发明实施例提供一种向量数据处理方法及装置、电子设备及存储介质。4.本发明的技术方案是这样实现的:5.第一方面,本发明实施例提供一种向量数据处理方法,包括:6.将待存储的多维向量数据转换为一维的有序数据;7.将有序数据进行分片得到分片数据,并确定分片数据的序列号;8.将分片数据写入高速缓冲存储器,以供高速缓冲存储器内缓存的存储状态达到触发条件时,根据序列号将分片数据写入目标文件。9.第二方面,本发明实施例提供一种向量数据处理方法,包括:10.接收读取目标向量数据的读取请求;目标向量数据包括:转换为一维的有序数据并进行分片后存储的多维向量数据;11.在高速缓冲存储器中查找目标向量数据的分片数据;12.将分片数据拼接得到目标向量数据;13.返回目标向量数据。14.第三方面,本发明实施例提供一种向量数据处理装置,包括:15.转换模块,用于将待存储的多维向量数据转换为一维的有序数据;16.分片模块,用于将有序数据进行分片得到分片数据,并确定分片数据的序列号;17.写入模块,用于将分片数据写入高速缓冲存储器,以供高速缓冲存储器内缓存的存储状态达到触发条件时,根据序列号将分片数据写入目标文件。18.第四方面,本发明实施例提供一种向量数据处理装置,包括:19.接收模块,用于接收读取目标向量数据的读取请求;目标向量数据包括:转换为一维的有序数据并进行分片后存储的多维向量数据;20.查找模块,用于在高速缓冲存储器中查找目标向量数据的分片数据;21.拼接模块,用于将分片数据拼接得到目标向量数据;22.返回模块,用于返回目标向量数据。23.第五方面,本发明实施例提供一种电子设备,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;24.处理器运行所述计算机程序时,执行前述一个或多个技术方案所述方法的步骤。25.第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令;计算机可执行指令被处理器执行后,能够实现前述一个或多个技术方案所述方法。26.本发明提供的向量数据处理方法,将待存储的多维向量数据转换为一维的有序数据;将所述有序数据进行分片得到分片数据,并确定所述分片数据的序列号;将所述分片数据写入高速缓冲存储器,以供所述高速缓冲存储器内缓存的存储状态达到触发条件时,根据所述序列号将所述分片数据写入目标文件。如此,将多维数据转化为一维有序数据,并基于序列号顺序写入目标文件,使不连续的多维数据随机写入过程,转换为有序数据的顺序写入过程,优化数据存储的效果和可读性。基于缓存中存储状态的触发条件,批量写入数据,可以使数据写入的效率得到提升,而且多维数据的存储具备了分片管理特性,使数据查询和读取的效率也得到提升。附图说明27.图1为本发明实施例提供的一种向量数据处理方法的流程示意图;28.图2为本发明实施例提供的一种向量数据处理方法的流程示意图;29.图3为本发明实施例提供的一种向量数据处理方法的流程示意图;30.图4为本发明实施例提供的一种向量数据处理方法的流程示意图;31.图5为本发明实施例提供的一种向量数据处理方法的流程示意图;32.图6为本发明实施例提供的一种向量数据处理方法的流程示意图;33.图7为本发明实施例提供的一种向量数据处理方法的流程示意图;34.图8为本发明实施例提供的一种向量数据处理方法的流程示意图;35.图9为本发明实施例提供的一种向量数据处理装置的结构示意图;36.图10为本发明实施例提供的一种向量数据处理装置的结构示意图;37.图11为本发明实施例提供的一种向量数据存储引擎的结构示意图;38.图12为本发明实施例提供的一种向量数据处理方法的流程示意图;39.图13为本发明实施例提供的一种向量数据处理方法的流程示意图;40.图14为本发明实施例提供的一种向量数据存储wal文件的结构示意图;41.图15为本发明实施例提供的一种向量数据存储vsm文件的结构示意图;42.图16为本发明实施例提供的一种向量数据存储vsm文件的结构示意图;43.图17为本发明实施例提供的一种向量数据存储vsm文件的结构示意图;44.图18为本发明实施例提供的一种向量数据处理方法的流程示意图。具体实施方式45.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。46.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。47.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。48.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的
技术领域
:的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。49.如图1所示,本发明实施例提供一种向量数据处理方法,所述方法包括:50.s110:将待存储的多维向量数据转换为一维的有序数据;51.s120:将所述有序数据进行分片得到分片数据,并确定所述分片数据的序列号;52.s130:将所述分片数据写入高速缓冲存储器,以供所述高速缓冲存储器内缓存的存储状态达到触发条件时,根据所述序列号将所述分片数据写入目标文件。53.这里,将多维向量数据转换为一维数据,可通过预设的搜索算法实现。此处的预设的搜索算法包括但不限于:hilbert空间填充曲线、z曲线、kd树等。通过预设的搜索算法转换得到的数据,是数据值仅由一个因素确定的一维有序数据,且有序数据间具有一定的排列顺序,例如可以按数据值大小、数据序列号的字典序等进行排序。对数据进行分片,是基于可配置的分片策略,例如通过轮询调度(roundrobin)等散列算法,根据构成数据库的物理节点个数,将有序数据分割为多个相互独立的分片,均衡地存储在各物理节点上。序列号是每个分片数据的序列编号,是由分片引擎确定分配的,可以是为每个分片数据进行排序的编号,也可以是为每个分片数据随机分配的序列编号。例如可以由自然数和/或字母组成。目标文件为待存储的数据最终所要写入的存储空间,例如磁盘中的文件。54.在本发明实施例中,提出一种向量分割融合树(vectorsegmentsmergedtree,vsm)存储引擎方案,基于可配置的分片引擎和搜索算法,将多维向量数据转换为多个独立的一维分片数据,并分配序列号。将分片数据存储在内存空间的高速缓冲存储器(cache)中,作为暂时性的存储。当cache中的存储状态达到一定的触发条件时,按序列号的顺序将cache中的分片数据,写入(例如,批量顺序写入)磁盘中的目标文件例如vsm文件。如此,基于散列算法得到的分片数据,可存储于性能最佳的存储节点中,降低数据库的处理压力。且分片数据在高速缓冲存储器中进行保存,可以在数据读取时实现从缓存中快速读取。将多维数据转换为一维数据,降低了数据写入的不连续性,使向量数据库对于一维数据和多维数据的存储场景均可适用,兼容性和普适性大大提高。基于一维分片数据的序列号进行存储,将数据写入过程从原有多维数据的随机写转换为一维数据的顺序写,缓存中的数据进行持久化的过程更加高效和有序,使数据库的存储性能得到提升。55.在一些实施例中,如图2所示,所述s130,包括:56.s131:将所述分片数据写入高速缓冲存储器,以供所述高速缓冲存储器中缓存的数据量达到数据量阈值时;或距离所述高速缓冲存储器上一次将数据写入目标文件的时间间隔达到时长阈值时,根据所述序列号将所述分片数据写入目标文件。57.在所述高速缓冲存储器中缓存的数据量达到数据量阈值时,或者,在距离所述高速缓冲存储器上一次将数据写入目标文件的时间间隔达到时长阈值时,根据所述序列号将所述分片数据顺序写入目标文件。58.在本发明实施例中,数据库中的压缩合并(compactor)组件,可以执行自定义的持久化策略,对存储在高速缓冲存储器cache中的数据设置触发条件,以实现数据批量写入目标文件。当cache中积累的数据达到预设的数据量阈值时,和/或,距离cache上一次批量写入目标文件的时长达到预设的时长阈值时,可根据序列号的顺序对cache中的分片数据进行归并和排序,进而顺序写入目标文件。59.在另一个实施例中,当从人机交互接口接收到写入指令时,可根据序列号的顺序对cache中当前存储的分片数据进行归并和排序,进而顺序写入目标文件。60.在一个实施例中,所述s130还可以包括:当cache中针对分片数据的某一关键字(key)的记录数达到记录数阈值时,根据所述序列号将所述分片数据顺序写入目标文件。其中,key可为分片引擎对数据进行分片所基于的属性,亦可为当前cache中所有分片数据的集合中的某一属性,例如多维向量数据的某一维度。61.如此,通过对缓存数据量或缓存时间的阈值设置,实现对数据写入目标文件的自动化控制,抑制高速缓冲存储器因缓存过多的数据而出现效率低下、响应迟缓等情况。而且可自定义的持久化策略,可以实现对数据库缓存和数据写入过程的灵活控制,提高数据写入的效率。62.在一些实施例中,如图3所示,所述s130,还包括:63.s132:建立所述分片数据的数据索引。64.在本发明实施例中,将分片数据写入目标文件后,为便于读取,建立分片数据的数据索引。例如,数据索引可以包括分片数据的内容和分片数据对应的存储位置。65.在一个实施例中,由于分片数据是根据序列号的顺序,连续写入目标文件中的,因此,分片数据在目标文件中的存储顺序以及数据索引的顺序,均与序列号的顺序相同。66.如此,在将分片数据批量写入目标文件后,可以为每一个存储在目标文件中的分片数据建立便于查询读取的数据索引。保证分片数据的存储连续且有序,在读取数据时依据数据索引可快速定位分片数据的存储位置,亦可根据数据索引的顺序,批量定位读取分片数据。67.在一些实施例中,如图4所示,所述s132,包括:68.s132a:根据所述分片数据的存储位置和所述序列号,建立所述第一索引,其中,所述第一索引至少包括:所述分片数据在所述目标文件中相对于目标文件的起始地址的偏移量以及所述分片数据的数据量;69.s132b:根据所述第一索引的存储位置,建立所述第二索引,其中,所述第二索引包括:所述第一索引中的起始数据在所述目标文件中相对于目标文件的起始地址的偏移量。70.这里,在s130中建立的所述数据索引可包括:第一索引和第二索引。在一个实施例中,所述数据索引可由第一索引和第二索引构成。71.在一个实施例中,目标文件的起始地址为目标文件在磁盘中存储的起始地址。一个目标文件例如vsm文件,由头部(header)、数据块(blocks)、索引(index)和脚注(footer)四个部分组成,其中header部分用于标识版本信息和保留字,blocks用于记录数据内容。blocks内部是一些连续的存储区block,每一个block分为校验值(例如,crc32值)和数据(data)两部分,crc32值用于校验data的内容是否有问题,data用于存储分片数据,data的内容包含分片数据的序列号和数据值。data的长度记录在之后的index部分中。第一索引记录在index部分中,用于表征分片数据的存储位置,并按序列号排列,其数据内容至少包括:分片数据在vsm文件中相对于vsm文件的起始地址的偏移量,和分片数据的数据量大小。可选地,第一索引还可以包括:vsm文件中分片数据序列号的最大值和最小值。72.在另一个实施例中,第一索引对分片数据的记录顺序,先按照关键字key的字典序进行排序,例如按照首字母的字典序进行排序。可选地,key可以是多维数据的一个属性。然后按照对应记录的分片数据的序列号进行排序。73.在本发明实施例中,第二索引存放在footer部分中,用于表征index这部分内容即第一索引的起始数据位置在目标文件中的偏移量,从而建立间接索引。可选地,当高速缓冲存储器cache中缓存的数据每次批量写入目标文件后,对第二索引进行更新。74.如此,通过数据索引的建立,使分片数据在目标文件中的存储更加有序,且可以使数据读取时的层次更加分明。由于序列号是有序的,因而仅通过相对于目标文件起始位置的偏移量,即可完成对数据位置信息的索引建立,大大减少数据索引占据的存储空间。且当数据库中存储的数据量较大时,对数据的查询和读取可以基于两级索引,实现查询效率的极大提升。75.在一些实施例中,如图5所示,所述方法还包括:76.s140:根据所述序列号,将所述分片数据写入预写日志wal文件中,其中,所述wal文件用于恢复所述高速缓冲存储器中尚未写入所述目标文件的分片数据。77.在一个实施例中,预写日志(write-aheadlogging,wal)文件用于在存储系统重启时,恢复所述高速缓冲存储器中尚未写入所述目标文件的分片数据。78.在本发明实施例中,在分片数据存储于高速缓冲存储器cache中后,按照序列号的顺序,将分片数据同步存储至wal文件中,保证wal文件的内容与cache相同,其作用是为了持久化cache中的数据。在数据库中,对于存储在同一个物理节点中的分片数据,共同使用一个wal文件。当cache中的数据批量写入目标文件的过程中出现错误,或者其他故障导致存储系统重启后,仍可通过wal文件恢复cache中尚未写入到目标文件的数据。79.在一个实施例中,数据库通过分片守护进程sharddaemon(sd)管理物理节点,sd之间采用raft协议进行vsm文件和wal文件的数据备份。当存储系统重启后,通过读取最新的vsm文件初始化内存中的第二索引,同时载入最新的wal文件完成cache数据的初始化,实现对未写入vsm文件的数据的恢复。80.如此,通过wal文件的设置,使高速缓冲存储器中缓存的数据得到备份,降低系统重启或者数据写入意外中断带来的负面影响,保持数据的一致性和容灾。且由于分片数据是按照序列号顺序插入到wal文件中,对分片数据进行批量写入时的效率大大提升。81.如图6所示,本发明实施例提供一种数据读取方法,所述方法包括:82.s210:接收读取目标向量数据的读取请求;所述目标向量数据包括:转换为一维的有序数据并进行分片后存储的多维向量数据;83.s220:在高速缓冲存储器中查找所述目标向量数据的分片数据;84.s230:将所述分片数据拼接得到所述目标向量数据;85.s240:返回所述目标向量数据。86.本发明实施例提供的数据读取方法,可用于读取前述实施例中提供过的向量数据处理方法中存储的数据。87.在本发明实施例中,对于接收到的数据读取请求,首先利用高速缓冲存储器的缓存空间,快速查找其中所存储的数据。例如,可基于存储数据时分片引擎采用的分片策略,获取目标数据的分片数据的属性信息和/或序列号,并在高速缓冲存储器中查找。如果内存中存在目标向量数据的分片数据,则对分片数据进行拼接,得到所要读取的目标数据,并返回目标数据。88.如此,对于缓存中存储的,尚未写入磁盘中目标文件的分片数据,可直接进行查询和读取,由于cache的存储容量小,且读写速度快,相较于大存储容量的目标文件,可以更加快速地获取目标数据。抑制不必要的对目标文件的访问,提升数据读取效率,且可节省查询读取资源。89.在一些实施例中,如图7所示,所述数据读取方法还包括:90.s250:若在所述高速缓冲存储器中未找到所述分片数据,则根据数据索引在所述目标文件中查找所述分片数据。91.在本发明实施例中,对于缓存中不存在目标数据的分片数据的情况,通过读取数据索引的方式,在目标文件中进行查找。由于数据索引分别存储了分片数据的存储位置信息和序列号、数据关键字key的对应关系,则根据数据写入时分片引擎所采用的分片策略,可获取对应分片数据的序列号和/或属性信息,进而获取数据索引,分级查询分片数据。92.在一个实施例中,若高速缓冲存储器中只能查找到部分分片数据,则基于属性信息和/或序列号,访问目标文件,通过数据索引对余下分片数据进行查找。93.如此,在大容量存储空间的目标文件中进行数据的查询读取,可基于数据存储时建立的两级索引,分步进行数据位置的查询和读取,大大提升数据读取的效率和性能。94.在一些实施例中,如图8所示,所述s250包括:95.s251:根据第二索引进行二分查找,得到所述分片数据的存储范围;96.s252:根据第一索引进行二分查找,得到所述分片数据的存储位置。97.在本发明实施例中,首先根据第二索引,通过二分法获取第一索引对应的关键字key,基于字典序进行比较可以定位到对应的blocks在目标文件中的存储范围。由于存储分片数据的block是按照序列号进行的有序排列,因而根据第一索引和序列号,再通过二分法定位获取对应的block,即可从目标文件中快速读取出所需要的分片数据。98.如此,基于两级索引对分片数据的存储位置进行分层次的定位查询,结合二分法的运用,可以在容量庞大的数据库中以较快的速度获取所需分片数据的存储信息。基于字典序确定存储范围,再基于序列号确定存储位置,可以减少在数据库中直接查询存储位置的不便捷性,大大提高数据查询和读取的效率。99.如图9所示,本发明实施例提供了一种向量数据处理装置,所述装置包括:100.转换模块110,用于将待存储的多维向量数据转换为一维的有序数据;101.分片模块120,用于将所述有序数据进行分片得到分片数据,并确定所述分片数据的序列号;protocol,zcsdp)、kd树(k-dimensionaltree,k-dtree)。针对向量数据,首先由系统可配置的分片引擎策略(shardingstrategy),对数据划分为多个分片数据(shard)。每个shard都有自己的cache、vsm文件(vsmfile)以及compactor,与shard对应的物理节点映射为分片区(region),同一个region的多个shard共用一个wal文件,通过wal文件记录cache中的数据,保证系统重启时可以通过该文件恢复还没有写入到vsm文件中的数据。122.具体的分片引擎流程见图12所示。针对向量数据的读/写请求,首先调用搜索算法(vectorsearchalgorithm),这些算法包括hilbert空间填充曲线、z曲线、kd树等,通过这些算法计算得到序列号(sequencecode),实现将多维的向量数据压缩成一维的有序数据,再通过可配置的分片策略(shardingstrategy),例如轮询调度(roundrobin)等散列算法将多维数据空间分割为多个独立的分片,基于上述分片计算(shardingcompute)得到的分片数据存储位置(shardlocation)和序列号建立针对向量数据的空间连续索引。根据索引位置(indexlocation)建立写入流程(writeflow)或读取流程(readflow)。123.针对数据的写入请求,在计算得到向量的索引信息之后,具体的写入流程参见图13所示。数据首先会分别写入cache和wal文件。cache在内存中是一个简单的map结构,其中key代表某个数据表(table)的一个属性,entry相当于是一个按照分片引擎计算得到的序列号存放实际值的数组。由后台运行的compactor组件通过调用自定义的持久化策略(persistencestrategy),例如针对key的记录数达到设定上限、针对cache的大小达到设定的上限或者配置间隔指定的时间等条件时触发持久化操作,将cache中的数据进行归并排序(mergesort)后刷新到vsm文件。124.wal文件的内容与cache相同,设计格式如图14所示。其作用就是为了持久化cache中的这部分数据,由于数据是按照索引顺序插入到wal文件中,所以针对同一个shard管理的数据分片进行批量写入时的效率是非常高的。125.vsm文件用于存放库表数据。单个vsm文件的格式如图15所示,包含header、blocks、index和footer四个部分。其中header部分用于标识版本信息和保留字,blocks用于记录数据内容。126.如图16所示,blocks内部是一些连续的block,每一个block分为crc32值和data两部分,crc32值用于校验data的内容是否有问题。data的长度记录在之后的index部分中。data的数据内容包含序列号和实际的值(value)。由于序列号是一个有序值,所以实际上只需要记录一个偏移信息作为索引即可快速找到对应的block,方便数据读取操作。127.index的数据结构参见图17,为了快速定位到某个block记录,实际上采用两级索引,即索引的记录顺序是先按照key的字典序排序,再按照对应记录的序列号排序。其中关键字长度(keylen)指定了邻接字段key的长度。key实际上标识一张表的某个属性,类型(type)用来标识block中data内的数据的类型。数量(count)标识该段记录包含索引的个数。后面四个部分是block的索引信息,根据count中的个数会重复出现,按照序列号排序。最小序列号(minseq)字段标识block中数据的最小序列号。最大序列号(maxseq)标识block中数据的最大序列号。偏移量(offset)字段标识对应的block在整个vsm文件中的偏移量。大小(size)字段记录block的大小,这样根据offset和size字段就可以快速读取到对应block的数据。为了更高效的查询效率,在vsm文件末尾部分的footer存放index这部分内容的起始位置在vsm文件中的偏移量,方便将索引信息加载到内存中,从而建立间接索引。128.针对数据读取请求的具体流程参见图18所示。初始化时通过读取vsm文件并且在内存中加载生成索引偏移量(indexoffsets),compactor每次持久化vsm文件时需要更新该间接索引(updateoffsets)。每次读请求时首先在cache中查找,如果内存中存在则直接返回,否则通过间接索引的方式查找。由于索引偏移量记录了每个key在vsm文件的index表中的偏移量信息,首先通过二分查找(binarysearch)拿到index对应的key,基于字典序进行比较可以定位到对应的blocks在vsm文件的存储范围,由于block是按照序列号有序排列,这样就可以再通过二分法查找到对应的block,从vsm文件中快速读取出一个block的内容。129.向量数据库的分布式特性通过共识算法(raft)协议实现。首先数据分片通过roundrobin算法根据构成数据库的物理节点个数,均衡地散列到这些节点上。与数据分片对应的物理节点映射为region,被sharddaemon(sd)所管理。每个sd管理多个region,并且sd之间采用raft协议进行vsm和wal文件的数据备份,保持数据的一致性和容灾。副本以region为单位管理,不同节点上的多个region构成一个共识组(raftgroup),互为副本,实现共识组主脑(raftgroupleader)的迁移。sd恢复服务时,通过读取最新的vsm文件初始化内存中的索引偏移量,同时载入最新的wal文件完成cache数据的初始化。130.本发明实施例还提供一种电子设备,所述电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,处理器运行所述计算机程序时,执行前述一个或多个技术方案所述方法的步骤。131.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行后,能够实现前述一个或多个技术方案所述方法。132.本实施例提供的计算机存储介质可为非瞬间存储介质。133.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它行驶的。134.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。135.另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的行驶实现,也可以采用硬件加软件功能单元的行驶实现。136.在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的方法技术方案。137.在一些情况下,上述任一两个技术特征不冲突的情况下,可以组合成新的设备技术方案。138.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。139.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

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

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

相关文献