一种账户数据管理方法、装置及服务器与流程

文档序号:12825067阅读:173来源:国知局
一种账户数据管理方法、装置及服务器与流程

本发明涉及互联网通信技术领域,具体而言,涉及一种账户数据管理方法、装置及服务器。



背景技术:

现有技术中,大多是通过数据库对虚拟账户的数据进行管理。当一个账户需要与多个其他账户之间进行交易操作时,由于是对数据库中同一个账户的数据进行写操作,为了保证数据更新的准确性,必须采用数据库行锁实行串行交易,即每一次写操作仅根据该账户与其他账户之间的交易数据对数据库中记录的该账户的业务数据进行更新。但是,由于数据库访问速度慢,数据库行锁耗时长,导致账户之间交易操作的效率低下。比如,按照每一次数据库行锁耗时5毫秒计算,交易效率最高只能达到每秒200次。因此,目前亟需一种高效、可靠的账户数据管理机制提升账户之间的交易效率。



技术实现要素:

本发明的目的在于提供一种账户数据管理方法、装置及服务器,以改善上述问题。

本发明较佳实施例提供一种账户数据管理方法,该方法包括:

依据第一账户与第二账户的交易数据对一个缓存中记录的该第一账户的第一余额数据进行更新;

在一个管理数据库中插入包含所述交易数据的交易流水信息,该管理数据库中记录有所述第一账户的第二余额数据;

当达到设定的管理数据库的更新周期时,根据该周期内所述管理数据库中插入的交易流水信息对所述第二余额数据进行更新。

本发明另一较佳实施例提供一种账户数据管理装置,该装置包括:

缓存更新模块,用于依据第一账户与第二账户的交易数据对一个缓存中记录的该第一账户的第一余额数据进行更新;

数据插入模块,用于在一个管理数据库中插入包含所述交易数据的交易流水信息,该管理数据库中记录有所述第一账户的第二余额数据;

数据库更新模块,用于当达到设定的管理数据库的更新周期时时,根据该周期内所述管理数据库中插入的交易流水信息对所述第二余额数据进行更新。

本发明另一较佳实施例提供一种服务器,该服务器包括:

存储器;

处理器;以及

账户数据管理装置,该装置包括一个或多个存储于所述存储器并由所述处理器执行的模块,所述账户数据管理装置包括:

缓存更新模块,用于依据第一账户与第二账户的交易数据对一个缓存中记录的该第一账户的第一余额数据进行更新;

数据插入模块,用于在一个管理数据库中插入包含所述交易数据的交易流水信息,该管理数据库中记录有所述第一账户的第二余额数据;

数据库更新模块,用于当达到设定的管理数据库的更新周期时时,根据该周期内所述管理数据库中插入的交易流水信息对所述第二余额数据进行更新。

本发明较佳实施例提供的账户数据管理方法、装置及服务器,采用缓存记录第一账户的第一余额数据,采用管理数据库记录第一账户的第二余额数据。所述第一余额数据的初始值与所述第二余额数据的初始值相同。然后,当该第一账户与其他账户(所述第二账户)之间进行交易操作时,依据交易数据对缓存中的第一余额数据进行实时同步更新。每对缓存更新一次,在管理数据库插入一条包含本次更新对应的交易数据的交易流水信息。当达到设定的更新周期时(如插入交易流水信息的次数达到预设阈值时),对管理数据库中记录的该第一账户的第二余额数据进行一次异步更新,计算出异步更新后的第一账户新的第二余额数据并记录。下一次异步更新时,则是根据该次更新后得到的新的第二余额数据以及一个更新周期内管理数据库中插入的交易流水信息进行计算和更新。

本发明较佳实施例采用缓存与管理数据库相结合的方式,将数据库行锁操作转换成缓存的读写操作和数据库顺序插入操作,解决了由于数据库行锁耗时长导致交易效率低下的问题。缓存更新成功后,管理数据库顺序插入交易流水信息。当达到设定的更新周期时,触发一次异步更新操作,计算交易的总数额并更新管理数据库中的第二余额数据。换句话说,缓存中记录的是第一账户的实时余额,管理数据库存储的是第一账户的最终余额,采用缓存同步更新,管理数据库异步更新的方式可以实现较高的账户交易效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提供的一种第一应用服务器的方框示意图;

图2为本发明实施例提供的一种服务器集群的交互示意图;

图3为本发明实施例提供的上述服务器集群中第二应用服务器的方框示意图;

图4为本发明实施例提供的一种账户数据管理方法的流程图;

图5为本发明实施例提供的另一种账户数据管理方法的流程图;

图6为本发明实施例提供的一种账户数据管理装置的功能模块框图;

图7为本发明实施例提供的另一种账户数据管理装置的功能模块框图。

附图标记:100-第一应用服务器;110-内部存储器;120-外部存储器;130-第一处理器;140-账户数据管理装置;112-第一缓存;122-第一管理数据库;200-第二应用服务器;300-数据库服务器;400-缓存服务器;302-第二管理数据库;402-第二缓存;210-存储器;220-第二处理器;1402-缓存更新模块;1404-数据插入模块;1406-插入检测模块;1408-余额恢复模块;1410-周期检测模块;1412-数据库更新模块;1414-缓存锁检测模块;1416-余额检测模块;1418-缓存锁设置模块;1420-余额矫正模块;1422-缓存锁释放模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,是本发明实施例提供的一种应用账户数据管理方法的第一应用服务器100的方框示意图。所述第一应用服务器100可以是,但不限于,网络服务器、数据库服务器等。如图1所示,该第一应用服务器100包括内部存储器110、外部存储器120、第一处理器130以及账户数据管理装置140。

其中,所述内部存储器110中开辟有用于暂存账户业务数据的缓冲区(下述简称第一缓存112)。该第一缓存112可以是,但不限于,位于主存储器(内存条)或者高速缓冲存储器甚至是寄存器中的存储空间。所述外部存储器120中存储有用于永久存储账户业务数据的第一管理数据库122。该外部存储器120可以是,但不限于,ssd固态硬盘、软盘、光盘等。所述第一管理数据库122可以是,但不限于,redis数据库、mysql数据库、oracle数据库等。

上述内部存储器110、外部存储器120与第一处理器130之间直接或间接的电性连接,以实现数据的传输或交互,例如所述第一处理器130可以选择性访问所述第一缓存112或所述第一管理数据库122。所述账户数据管理装置140包括至少一个可以软件或固件的形式存储于所述内部存储器110或外部存储器120中,或者固化在第一应用服务器100操作系统中的软件功能模块。所述第一处理器130用于执行所述内部存储器110或外部存储器120中存储的可执行模块,例如所述账户数据管理装置140包括的软件功能模块或计算机程序。

请参阅图2,是本发明实施例提供的一种应用所述账户数据管理方法的服务器集群的交互示意图。该服务器集群包括第二应用服务器200以及通过网络与该第二应用服务器200进行交互的数据库服务器300和缓存服务器400。

其中,所述数据库服务器300中包括用于永久存储账户业务数据的第二管理数据库302。所述缓存服务器400中包括用于暂存账户业务数据的第二缓存402。该缓存服务器400可以是,但不限于,基于内存对象的分布式缓存系统,如memcached服务器。所述第二应用服务器200与数据库服务器300通信连接以访问所述第二管理数据库302。所述第二应用服务器200与缓存服务器400通信连接以访问所述第二缓存402。

请参阅图3,是本发明实施例提供的上述第二应用服务器200的方框示意图。该第二应用服务器200包括存储器210、第二处理器220以及所述账户数据管理装置140。所述存储器210用于存储所述账户数据管理装置140所包括的软件功能模块。所述第二处理器220用于执行所述存储器210中所存储的可执行模块,例如所述账户数据管理装置140所包括的软件功能模块或计算机程序。

当然,可以理解的是,上述提供的应用场景仅是示例性的,不对所述账户数据管理方法的应用范围构成具体限制。例如,在其他实施例中,上述服务器集群还可以仅包括第二应用服务器200以及分布式的缓存服务器400。其中,所述第二应用服务器200的存储器210中承载有可以用于永久记录账户业务数据的数据库。

请参阅图4,是本发明实施例提供的一种账户数据管理方法的示意性流程图,应用于图1所示的第一应用服务器100或图2所示的第二应用服务器200。所应说明的是,本发明提供的方法不以图4以及下述的具体顺序为限制。下面对图4中示出的各步骤进行详细阐述。

步骤s101:依据第一账户与第二账户的交易数据对缓存中记录的该第一账户的第一余额数据进行更新。

本实施例中,下述管理数据库可以是图1所示的第一管理数据库122或图2所示的第二管理数据库302。下述缓存可以是图1所示的第一缓存112或图2所示的第二缓存402。所述管理数据库和缓存中都记录有关于第一账户的业务数据。详细地,缓存中记录的是第一账户的第一余额数据,其随着第一账户与其他账户(本实施例中统称为不同于所述第一账户的第二账户)之间的交易操作进行实时同步更新。而管理数据库中记录的是所述第一账户的第二余额数据,其为异步更新模式,即每隔一个设定的更新周期进行一次异步更新。所述设定的更新周期可以是,但不限于,该第一账户每与第二账户交易预设次数(如100次)即为一个更新周期,或者一个设定的时长(如24小时)即为一个更新周期。

可以理解,一般情况下,所述缓存中记录的第一余额数据的初始值与所述管理数据库中记录的第二余额数据的初始值相同。而后,当应用服务器(指上述第一应用服务器100或第二应用服务器200,下同)接收到第一账户与第二账户之间的交易请求时,则依据本次请求对应的交易数据对缓存中的第一余额数据进行同步更新。所述交易数据包括交易数额,但不限于此。在对第一余额数据进行更新后的一段时间内,所述管理数据库中当前记录的第二余额数据与该缓存记录的第一余额数据可能不同,因为该管理数据库还没有进行更新。

需要说明的是,本实施例中,所述交易操作可以是指对所述第一账户的扣减操作或添加操作。具体地,所述扣减操作可以是指在所述第一账户的第一余额数据中减去一定的交易数额,并向第二账户中添加相应的交易数额。所述添加操作可以是指在所述第一账户的第一余额数据中添加一定的交易数额,并从所述第二账户扣减相应的交易数额。

步骤s103,在所述管理数据库中插入包含所述交易数据的交易流水信息。

本实施例中,每当所述第一账户与一第二账户进行一次交易,即可在所述管理数据库中顺序插入相应的交易流水信息,以用于后续对管理数据库中记录的所述第一账户的第二余额数据进行异步更新。所述交易流水信息可以包括流水号、所述交易数额、交易时间、第一账户的信息以及第二账户的信息等。

步骤s105,检测所述交易流水信息是否插入成功。

本实施例中,为了保证数据更新的可靠性和准确性,只有在所述交易流水信息插入成功后,才认为整个交易操作成功。

若插入失败,则执行下述步骤s107。若插入成功,则执行下述步骤s109。

步骤s107,将所述缓存中记录的第一余额数据恢复到本次更新前的数值。

本实施例中,作为一种实施方式,当所述缓存为内存中开辟的缓冲区或者为基于内存对象的缓存系统(如memcached)时,可以利用该缓存的原子性操作对缓存中记录的第一余额数据进行更新。

当然,可以理解的是,在其它实施例中,若能保证数据执行的准确性,上述步骤s105和s107在其他实施例中也可以省略,即可以由步骤s103直接进入下述步骤s109。换句话说,这两个步骤是优选的,但是非必须的。

步骤s109,检测是否达到设定的更新周期,若已达到,则执行下述步骤s111,否则,结束本次流程。

本实施例中,所述更新周期可以有多种设定方式,例如可以以交易次数、时长或者所述交易数额的总和中的一种或多种为准则设定不同的周期标准。

作为一种实施方式,以所述第一账户每与第二账户交易次数达到预设阈值(如100次)为一个更新周期进行示例。所述检测是否达到设定的更新周期的方式可以是:判断所述管理数据库从最近一次进行异步更新至当前的时间段内总共插入交易流水信息的次数是否等于所述预设阈值,若等于,则判定已达到设定的更新周期。特别地,当所述管理数据库中记录的所述第一账户的第二余额数据未进行过异步更新时(第一次更新之前),则可直接判断该管理数据库中从首次插入交易流水信息至当前的时间段内总共插入交易流水信息的次数是否等于所述预设阈值,若等于,则判定已达到设定的更新周期。更为详细地,具体实施时,可以采用缓存计数器(例如存储于缓存中的用于计数的记录条目)对交易次数进行统计。该缓存计数器的初始值为预设阈值,管理数据库中每插入一条交易流水信息,缓存计数器的数值自减一。所述管理数据库中插入的数据(包括插入的交易流水信息以及异步更新后插入的用于记录所述第一账号当前第二余额数据的记录条目)可以对应有按照插入管理数据库的顺序自增的唯一id。当所述缓存计数器的数值归零时,获取上一次异步更新后插入的所述记录条目的id,然后查询比该获取到的id还大的id所对应的交易流水信息对第一账户进行异步更新。

作为另一种实施方式,以每间隔预设时长(如24小时或12小时)为一个更新周期进行示例。所述检测是否达到设定的更新周期的方式可以是:判断当前时间至最近一次进行异步更新的时间间隔是否达到预设时长,若达到,则判定已达到设定的更新周期。特别地,当所述管理数据库中记录的所述第一账户的第二余额数据未进行过异步更新时(第一次更新之前),判断当前时间至所述第一账户的第二余额数据在管理数据库中被首次记录的时间间隔是否达到预设时长,若达到,则判定已达到设定的更新周期。该种更新周期的设定形式一般适用于交易稀疏的管理数据库,相当于是采取被动异步更新的方式对账户的数据进行定期更新处理。

步骤s111,根据该周期内所述管理数据库中插入的交易流水信息对该管理数据库中记录的所述第二余额数据进行更新,获得更新后的该第一账户的第二余额数据并记录。

详细地,在一种实施方式中,每隔一个更新周期对所述管理数据库中记录的第二余额数据进行异步更新的具体过程是:首先计算该更新周期内管理数据库中插入的所有交易流水信息中包含的交易数额的总和,获得总交易数额;然后,从该管理数据库中记录的第一账户的第二余额数据中“减去”上述计算出的总交易数额,得到更新后的第二余额数据;最后,在管理数据库中记录本次更新后的第二余额数据。

可以理解的是,在其他实施方式中,还可以是对每一次更新的后第二余额数据都进行记录。这样,对管理数据库进行异步更新时可以是从该管理数据库中最近一次记录的所述第一账户的第二余额数据中“减去”上述计算出的总交易数额,得到更新后的第二余额数据并记录。

值得注意的一点是,为了在对所述第二余额数据进行异步更新时能够采用所述“减去”操作对第二余额数据进行更新,本实施例中,当对所述第一账号进行扣减操作时,其对应的交易流水信息中所包含的交易数额应为正值,当对所述第一账号进行添加操作时,其对应的交易流水信息中所包含的交易数额应为负值。

请参阅图5,是本发明实施例提供的另一种账户数据管理方法的流程示意图。与上述不同的是,该方法中还包括如下步骤:

步骤s201:该步骤可于上述步骤s101前执行,该步骤具体为检测是否存在针对所述缓存设置的缓存锁。若存在,直接结束本次扣减流程,若不存在,再执行下述步骤s203。

本实施例中,为了保障缓存数据更新的可靠性和准确性,当对缓存中的数据进行维护时需设置缓存锁,以防止缓存维护期间进行交易操作致使缓存数据失真。所以,每当所述第一账户与第二账户进行交易操作时,首先须检测缓存是否已设置缓存锁,若未设置,方可进行后续的交易操作。

本实施例中,对缓存数据的维护可以是指,当缓存中的数据由于掉电、重启等原因致使失真时,根据管理数据库中的数据对其进行矫正的过程,但并不限制于此。

步骤s203,检测所述缓存中记录的第一余额数据是否小于所述交易数据中包括的所述交易数额。

该步骤适用于对第一账户进行扣减操作的过程。对缓存中记录的第一账户的第一余额数据执行扣减前,需检测第一余额数据是否小于所述交易数额。若小于,则表明缓存中的数据可能存在失真,可执行下述步骤s205~s209尝试矫正。若大于或等于所述交易数据,则直接执行上述步骤s101。

步骤s205,对所述缓存设置缓存锁,并根据所述管理数据库最近一次进行异步更新的时间至当前时间的间隔内所述管理数据库中插入的交易流水信息对该管理数据库中记录的第一账户的第二余额数据进行更新。

步骤s207,通过步骤s205进行异步更新后得到的第一账户的第二余额数据对缓存中记录的第一余额数据进行矫正。

本实施例中,所述“矫正”可以理解为是将缓存中记录的失真的第一余额数据更新为步骤s205中得到的异步更新后的第二余额数据。

步骤s209,释放所述缓存锁。该步骤后,再依据所述交易数据对矫正后的第一余额数据进行更新。

此处需强调的一点是,缓存中的第一余额数据不足以扣减非数据失真致使的情形不是本发明实施例考虑的重点,但并非不存在,当其出现时,对缓存设置缓存锁并采取对应的缓存数据维护措施即可。

下面以一具体示例对本实施例提供的账户数据管理方法进行进一步的说明。

目前上线运行的金币系统的一个核心功能是在活动进行前或进行中向c端账户发放金币作为活动预算,即扣减该b端账户的金币,向多个c端账户添加。其中,b端账户为部门预算账户,对应于上述第一账户。c端账号为普通用户账户,对应于上述第二账户。现有的实现方式是采用数据库行锁进行b端账户的扣减操作,以保证账户数据更新的可靠性和准确性。但是,数据库行锁耗时长,按每一次数据库行锁耗时5毫秒计算,其扣减效率最高只能达到每秒200次,如此致使金币系统中b端账户的金币发放性能低下。

采用本实施例提供的账户数据管理方法可以有效提升金币系统b端账户的金币发放性能。不失一般性地,基于上述图2中所示的应用场景,以单个b端账户为例进行说明。其中,所述第二应用服务器200为金币系统的后台服务器,所述缓存服务器400为memcached服务器。所述第二管理数据库302中存储该b端账户的第二余额数据。所述第二缓存402中以键值(key-value)对的形式存储有该b端账户的第一余额数据。初始时,所述第二管理数据库302中记录的第二余额数据与第二缓存402中记录的第一余额数据相同。

此外,所述第二缓存402中还以键值(key-value)对的形式创建有一计数器,其初始值为一预设阈值(如100),该b端账户每与c端账户交易一次,计数器减一。当计数器归零后,则触发对所述第二管理数据库302的异步更新操作。然后,该计数器再重新初始化为所述预设阈值。

假设当前该b端账户开始向某个c端账户发放金币,其具体实现流程如下。首先检测是否存在缓存锁,若存在,则表明第二缓存402正在进行维护中,无法完成此次扣减,直接结束。若不存在缓存锁,则检测第二缓存402中第一余额数据是否大于或等于本次扣减额度(向该c端账户发放金币的额度)。若大于或等于本次扣减额度,则执行扣减操作,即根据所述扣减额度对第二缓存402中的第一余额数据进行更新,并向第二管理数据库302中插入相应的交易流水信息,以及计数器减一。若小于本次扣减额度,则设置缓存锁并根据第二管理数据库302中记录的业务数据对第二缓存402中的第一余额数据进行矫正。具体的矫正方式可以是,查看第二管理数据库302中从最近一次进行异步更新至当前的时间间隔内是否有交易流水信息插入。若有,则进行异步更新计算出当前准确的第一余额数据以根据其对第二缓存402中的数据进行矫正。若没有,则直接根据最近一次记录的该b端账户的第二余额数据对第二缓存402中的第一余额数据进行矫正。当上述矫正完成后,再执行扣减操作。

上述扣减操作执行后,检测计数器是否已归零,若已归零,则重置所述计数器为上述预设阈值,并触发对所述第二管理数据库302的异步更新操作获得本次更新后的第一账户新的第二余额数据。

这里需要说明的一点是,本示例中,向所述第二管理数据库302中插入的交易流水信息除了包括标识从b端账户减去的交易数额的流水外,还可以包括标识向c端账户添加的交易数额的流水以及c端账户更新余额后的流水。

本示例中,所述第二管理数据库302可以是承载于ssd硬盘。如此,其允许顺序插入的速率可达20000次/秒。而memcached缓存的原子减操作可达20万次/秒。所以,若按照每次交易操作需要向第二管理数据库302中顺序插入3条流水记录计算,则b端账号的金币发放性能至少可达6000笔/秒。

请参阅图6,是本发明实施例提供的一种账户数据管理装置140的功能模块框图。该账户数据管理装置140包括缓存更新模块1402、数据插入模块1404、插入检测模块1406、余额恢复模块1408、周期检测模块1410以及数据库更新模块1412。

所述缓存更新模块1402,用于依据第一账户与第二账户的交易数据对所述缓存中记录的该第一账户的第一余额数据进行更新。

所述数据插入模块1404,用于在所述管理数据库中插入包含所述交易数据的交易流水信息。

所述插入检测模块1406,用于检测所述交易流水信息是否插入成功。

所述余额恢复模块1408,用于在判定所述交易流水信息插入失败时,将所述缓存中记录的第一余额数据恢复到本次更新前的数值。

所述周期检测模块1410,用于在判定所述交易流水信息插入成功时,检测是否达到设定的更新周期。

所述数据库更新模块1412,用于当达到设定的更新周期时,根据该周期内所述管理数据库中插入的交易流水信息对该第一账户的第二余额数据进行更新。

本实施例中各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再一一赘述。

请参阅图7,是本实施例提供的另一种账户数据管理装置140的功能模块框图。与上述不同的是,该装置还包括有缓存锁检测模块1414、余额检测模块1416、缓存锁设置模块1418、余额矫正模块1420、缓存锁释放模块1422。

所述缓存锁检测模块1414,执行于缓存更新模块1402之前,用于检测是否存在缓存锁;若不存在,再执行下述余额检测模块1416。

所述余额检测模块1416,用于检测所述缓存中记录的第一余额数据是否小于所述交易数据中包括的交易数额。

所述缓存锁设置模块1418,用于在第一余额数据小于所述交易数额时,对所述缓存设置缓存锁。

所述余额矫正模块1420,用于在所述数据库更新模块1412对管理数据库中的第二余额数据进行更新后,根据得到的该次更新后的第二余额数据对缓存中记录的第一余额数据进行矫正。

所述缓存锁释放模块1422,用于当上述矫正完成后,释放所述缓存锁。

本实施例中各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再一一赘述。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

另外,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1