CN104142818B - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN104142818B CN104142818B CN201310172484.3A CN201310172484A CN104142818B CN 104142818 B CN104142818 B CN 104142818B CN 201310172484 A CN201310172484 A CN 201310172484A CN 104142818 B CN104142818 B CN 104142818B
- Authority
- CN
- China
- Prior art keywords
- data
- application programming
- programming interfaces
- calling
- called
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法及装置,属于计算机技术领域。所述方法包括:将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据;当调用所述应用程序接口修改数据后提交失败时,从所述用于修改数据的所述应用程序接口的调用操作的前一个最近邻调用开始,按照所述绑定顺序的反方向,根据所述影子数据对已调用的各所述应用程序接口的调用进行回滚操作。本发明通过采用上述方案,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,从而能够有效地提高数据处理的效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据处理方法及装置。
背景技术
随着计算机软件的迅猛发展,各种软件的应用使用越来越普及。在应用中,可以通过各种应用程序接口(Application Programming Interface;API)进行数据的增加,删除、修改和查询等操作。
例如,以游戏中购买道具为例详细介绍各种API进行数据处理的操作流程。第一种购买道具的方式具体为:当应用(Application;App)接收到API接收的购买道具请求之后,App先通过调用读取道具API,读取道具的数量,再调用发放道具API向购买用户发放道具,该操作修改了道具的值,即使用户拥有的道具值为在原来读取的道具的数量上加上本次新发放的道具值;修改完后提交(commit)数据。Commit成功之后,再通过调用读取金币API,读出金币值,再调用扣除金币API扣除本购买道具需要的金币,该操作修改了金币值,即使用户的金币值为用户原来的金币减去本次所付的金币,修改完后commit数据。调用发放道具API和调用扣除金币API的操作处理互相独立,当调用发放道具API发送道具成功,调用扣除金币API扣除金币失败,用户可以利用该漏洞疯狂购买道具,而不用支付金币。第二种购买道具的方式具体为:当App通过调用API接收到购买道具请求之后,App先调用读取金币API,读出金币值,再调用扣除金币API扣除本购买道具需要的金币,该操作修改了金币值,即使用户的金币值为用户原来的金币减去本次所付的金币,修改完后commit数据。Commit成功之后,先通过读取道具API,读取道具的数量,再通过调用发放道具API向购买用户发放道具,该操作修改了道具的值,即使用户拥有的道具值为在原来读取的道具的数量上加上本次新发放的道具值;修改完后commit数据。当调用扣除金币API扣除金币成功,调用发放道具API发送道具失败,会遭到用户的投诉。其中的用户采用用户的账户来标识,即所述用户具体指的是用户账户。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
当现有技术中的数据处理中包括多种调用API的处理时,各种API的调用互相独立,其处理结果无法同步,导致了一旦某个API写数据失败,其他API无法获知该处理结果,而继续进行数据处理操作,会造成数据处理错误,从而导致该数据处理的效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据处理方法及装置。所述技术方案如下:
一方面,提供了一种数据处理方法,所述方法包括:
将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;
当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据;当调用所述应用程序接口修改数据后提交失败时,从所述用于修改数据的所述应用程序接口的调用操作的前一个最近邻调用开始,按照所述绑定顺序的反方向,根据所述影子数据对已调用的各所述应用程序接口的调用进行回滚操作,以使得所述数据处理过程中修改后的数据还原为修改前的数据。
可选地,如上所述的数据处理方法中,还包括:
当调用所述应用程序接口修改数据后提交成功时,继续按照所述绑定的顺序,对剩余的各所述应用程序接口的调用操作按照顺序调用。
可选地,如上所述的数据处理方法中,所述应用程序接口的调用操作包括所述修改数据的操作,写入数据的操作或者读取数据的操作。
可选地,如上所述的数据处理方法中,当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据之前,还包括:
调用查询所述数据的应用程序接口,获取到所述数据。
可选地,如上所述的数据处理方法中,调用查询所述数据的应用程序接口,获取到所述数据之后,调用所述应用程序接口修改数据之前,所述方法还包括:
将获取到的所述数据进行解码。
可选地,如上所述的数据处理方法中,当调用所述应用程序接口修改所述数据后之后,提交所述修改后的数据之前,还包括:
对所述修改后的数据进行编码。
另一方面,提供了一种数据处理装置,所述装置包括:
绑定模块,用于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;
复制模块,用于当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据;
回滚模块,用于当调用所述应用程序接口修改数据后提交失败时,从所述用于修改数据的所述应用程序接口的调用操作的前一个最近邻调用开始,按照所述绑定顺序的反方向,根据所述影子数据对已调用的各所述应用程序接口的调用进行回滚操作,以使得所述数据处理过程中修改后的数据还原为修改前的数据。
可选地,如上所述的数据处理装置中,还包括:
调用模块,用于调用所述应用程序接口修改数据;
所述调用模块,还当调用所述应用程序接口修改数据后提交成功时,继续按照所述绑定的顺序,对剩余的各所述应用程序接口的调用操作按照顺序调用。
可选地,如上所述的数据处理装置中,所述应用程序接口的调用操作包括所述修改数据的操作,写入数据的操作或者读取数据的操作。
可选地,如上所述的数据处理装置中,还包括:
查询模块,用于当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据之前,调用查询所述数据的应用程序接口,获取到所述数据。
可选地,如上所述的数据处理装置中,还包括:
解码模块,用于在所述查询模块调用查询所述数据的应用程序接口,获取到所述数据之后,调用所述应用程序接口修改数据之前,将获取到的所述数据进行解码。
可选地,如上所述的数据处理装置中,还包括:
编码模块,用于当调用所述应用程序接口修改所述数据后之后,提交所述修改后的数据之前,对所述修改后的数据进行编码。
又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序由处理器执行以实现一方面所述的方法。
本发明实施例提供的技术方案带来的有益效果是:
通过将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;当应用程序接口的调用操作用于修改数据时,在调用应用程序接口之前,复制数据作为影子数据;当调用应用程序接口修改数据后提交失败时,从用于修改数据的应用程序接口的调用操作的前一个最近邻调用开始,按照绑定顺序的反方向,根据影子数据对已调用的各应用程序接口的调用进行回滚操作。本发明实施例的技术方案,由于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部分写数据失败的缺陷,从而能够有效地提高数据处理的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据处理方法的流程图。
图2为本发明实施例提供的数据处理方法的流程图。
图3为本发明实施例提供的一种关于事务操作的数据处理流程示意图。
图4为本发明实施例提供的数据处理装置的结构示意图。
图5为本发明实施例提供的数据处理装置。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明实施例提供的数据处理方法的流程图。如图1所示,本实施例的数据处理方法,具体可以包括如下步骤:
100、将数据处理过程中各API的调用操作按调用的顺序绑定;
101、当API的调用操作用于修改数据时,在调用该API之前,复制数据作为影子数据;
具体指的是,按照绑定顺序,依次调用数据处理过程中的各API的调用操作时,先判断即将要调用的API的调用操作是否为修改数据的操作,若为修改数据时,在调用该API之前,复制数据作为影子数据。
102、当调用该API修改数据后提交失败时,从用于修改数据的该API的调用操作的前一个最近邻调用开始,按照绑定顺序的反方向,根据影子数据对已调用的各API的调用进行回滚操作。
每一次调用API修改数据之后,都要进行commit数据,当commit成功,才表示本次调用API修改数据成功,否则,若本次commit失败,表示本次修改数据不成功。因此本实施例中,在修改数据不成功时,用于修改数据的该API的调用操作的前一个最近邻调用开始,按照绑定顺序的反方向,根据该影子数据对已调用的各API的调用进行回滚操作,从而将本次数据处理流程中所有修改后的数据还原。因此根据影子数据对已调用的各API的调用进行回滚操作,主要也是对涉及到修改数据的调用API操作进行回滚,以使得修改后的数据还原。
例如以购买道具的过程描述本发明的技术方案,若按照先发放道具,后扣除金币的流程来实施,首先将读取道具API,发放道具API和读取金币API和扣除金币API绑定起来。调用API的具体过程为:首先调用读取道具API读出道具值,接着调用发放道具AP,因为发放道具API为修改数据的操作,因此在调用发放道具API之前,需要复制读取的道具值作为到道具值的影子数据。然后调用发放道具API,向用户发放道具。该操作用于修改道具的值,即使用户拥有的道具值为在原来读取的道具的数量上加上本次新发放的道具值;修改完后commit数据。其中的commit的过程主要是一个保存修改后的数据的过程,当commit成功,便成功向用户发放道具。然后先调用读取金币API读取金币的数值,接着准备调用扣除金币API。由于扣除金币API为修改数据的操作,在调用扣除金币API之前,复制读取的金币的数值。然后调用扣除金币API,扣除用户的金币数。该扣除金币API的操作用于修改金币的值,即使用户拥有的金币数量在原来读取的金币的数量的基础上减去本次应付的金币数量;修改完后commit数据,当commit成功,便成功向扣除金币。本实施例中需要说明的是,当本次commit失败,本发明实施例中由于将数据处理流程中的各API进行绑定,因此本发明实施例中,可以根据影子数据对已调用的各API的调用进行回滚操作。由于读取的回滚操作不影响数据的修改,该回滚操作主要是针对于涉及到修改数据的调用API操作,例如该方案中,对上次发放道具API调用进行回滚操作,收回发放给用户的道具,从而得以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
本实施例的技术方案对于购买道具的过程若先扣除金币,再发放道具的方案同样可以适用,其实施过程同上述过程类似,在此不再赘述。
本实施例的数据处理方法的执行主体为一数据处理装置,该数据处理装置可以采用软件集成。
本实施例的数据处理方法,通过将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;当应用程序接口的调用操作用于修改数据时,在调用应用程序接口之前,复制数据作为影子数据;当调用应用程序接口修改数据后提交失败时,从用于修改数据的应用程序接口的调用操作的前一个最近邻调用开始,按照绑定顺序的反方向,根据影子数据对已调用的各应用程序接口的调用进行回滚操作。本实施例的技术方案,由于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
可选地,在上述图1所示实施例的技术方案的基础上,上述实施例的数据处理方法还包括:当调用API修改数据后提交成功时,继续按照绑定的顺序,对剩余的各API的调用操作按照顺序调用。
需要说明的是,上述图1所示实施例的技术方案中的API的调用操作包括修改数据的操作,写入数据的操作或者读取数据的操作。
可选地,在上述图1所示实施例的技术方案的基础上,在步骤101“当API的调用操作用于修改数据时,在调用API之前,复制数据作为影子数据”之前,还包括:调用查询(query)数据的API,获取到该查询的数据。例如具体可以从后端数据库中读取该要查询的数据。
进一步可选地,在调用查询数据的API,获取到数据之后,调用API修改数据之前,还可以包括将获取到的数据进行解码。例如具体可以将后端数据库中存储的二进制数据解码为可以供识别和修改的数据。例如具体可以采用腾讯公司移动互联网事业群开发的一套类似于protocol buffer的数据交换格式jce,可以称为jce交换格式。
进一步可选地,同理,在上述实施例中“当调用API修改数据后”之后,“提交修改后的数据”之前,还可以包括:对修改后的数据进行编码。该过程为上述编码的逆过程,同理采用jce交换格式进行编码,为上述实施例中的jce交换格式的解码的逆过程。
上述实施例的数据处理方法中,所有可选技术方案可以采用可以结合的方式任意组合形成本发明的可选实施例,在此不再赘述。
上述实施例的数据处理方法中,由于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
图2为本发明实施例提供的数据处理方法的流程图。如图2所示,本实施例的数据处理方法,在上述图1及上述可选实施例的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的数据处理方法,具体可以包括如下步骤:
200、将数据处理过程中3个API的调用操作按调用的顺序绑定;
例如数据处理过程中的各API操作包括写数据的API操作、修改数据的API操作和读取数据的API操作中的一个或者多个。本实施例中以一个包括3各API调用的数据处理过程为例来介绍本发明的技术方案。例如本实施例中的3个API调用操作按照调用顺序依次为读取数据的API、修改数据的API和写入数据的API。
201、调用读取数据的API,获取读取的数据;
202、复制读取后的数据,作为影子数据;
203、对读取的数据进行jce解码;
204、调用修改数据的API,进行数据修改;
205、将修改后的数据进行jce编码;
206、commit编码后的数据;
207、判断commit是否成功,当commit成功时,执行步骤208,否则结束;
此处需要注意的是,此处commit失败,按照本发明实施例应该执行回滚操作的,但是由于commit失败,当前的该修改数据的API调用不会滚,该修改数据的API调用的前一个最近邻调用为读取API的调用,未涉及到修改数据,因此不用回滚。
208、调用写数据的API,写入新数据;执行步骤209;
209、将写入的新数据进行jce编码;执行步骤210;
210、commit编码后的新数据;执行步骤211;
211、判断commit是否成功,当commit成功时结束,否则执行步骤212;
该步骤中,当commit成功表示数据处理流程结束。
212、根据影子数据对修改数据的API调用进行回滚操作,使得修改后的数据还原。
同理,本实施例的数据处理方法的执行主体也为数据处理装置,该数据处理装置可以采用软件集成。
本实施例的数据处理方法,由于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
下面实施例中抽象出两类对象来描述本发明的实现方案。其中两类对象,一个是“数据源对象(Data source)”,另一个是“事务对象(Transaction)”。
其中Transaction,中文叫做事务,是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin Transaction和commit Transaction或rollback Transaction语句(或函数调用)来界定。事务由事务开始(begin Transaction)和事务结束(commit Transaction或rollback Transaction)之间执行的全体操作组成。
Data source,中文叫数据源,是对后端数据接口的封装,并对外提供Query、Commit、Delete等接口。可以单独使用,更多时候是配合Transaction一起使用。
Data source实际上就是对普通API的包装,它本身会抽象出4个接口:查询(Query)接口,提交(Commit)接口,删除(Delete)接口,回滚(RollBack)接口。Query对应API的“查询”,Commit对应API的“增加、改动”,Delete对应API的“删除”。Data source可以定义任意多个,不同的Data source对应不同类型的API。比如操作“道具”的API可以被包装成“道具Data source”,起名为:PropDataSource;操作“金币”的API可以被包装成“金币Datasource”,起名为:MoneyDataSource。由于Delete接口被调用时直接删除数据,无法进行回滚,因此本申请技术方案中不涉及Delete接口的使用。
Transaction驱动一系列Data source的执行,它本身会抽象出4个接口:查询(Query)接口,提交(Commit)接口,删除(Delete)接口,这3个接口跟Data source对应。除此之外,还提供一叫做绑定(Bind)的接口,调用Bind接口可以将Data source跟Transaction绑定起来。
例如:
/***************对象定义*******************/
Transaction Transaction;//定义事务对象
PropDataSource propds;//定义道具数据源对象,内部持有道具的jce结构体
MoneyDataSource moneyds;//定义金币数据源对象,内部持有金币的jce结构体
/******************数据源绑定********************/
Transaction.Bind(propds);//绑定道具数据源对象
Transaction.Bind(moneyds);//绑定金币数据源对象
/**********************执行查询操作*****************/
Transaction.Query();//Transaction内部依次调用被绑定数据源的Query接口,
//获取到原始的二进制数据后,内部会自动进行jce的解码,
//将二进制数据解码成jce结构体
/*************数据修改:扣除金币、加道具**************/
/********************执行提交操作***********************/
Transaction.Commit();//Transaction内部依次调用被绑定数据源的Commit接口,
//数据源的Commit在执行之前会先自动将修改后的jce结构体
//编码成二进制数据。
//如果某个数据源提交失败,从该失败的上一个数据源
//开始进行反向回滚(RollBack),回滚的方向提交的方向相反
图3为本发明实施例提供的一种关于事务操作的数据处理流程示意图。如图3所示,本实施例的关于事务操作的数据处理流程,包括如下步骤:
第一步、将3个数据源数据源1(Data source 1)、数据源2(Data source 2)和数据源3(Data source 3)依次Bind(绑定)到事务处理(Transaction)对象;
第二步、执行Query接口进行查询,查询完后现将各数据源进行拷贝得到各数据源的影子数据,然后自动将Query获取的二进制数据进行jce解码;
第三步、对各个数据源,将查询后编码得到的数据进行修改;
第四步、对各个数据源,对修改后的数据进行jce编码;
第五步、对各个数据源,对编码后的数据进行Commit;
例如,可以同时对各个修改后的数据一起打包,一起Commit。
第六步、若commit成功,数据处理结束。若commit失败,以提交顺序相反的方向进行回滚操作。其中需要注意的提交失败的数据源本身不进行回滚。
本实施例中以各个数据源为对象介绍本发明的实施例,实际应用中,多个数据源的查询,修改和提交可以有先后顺序,也可以没有先后顺序。但是只要Commit失败,就必须以该次修改数据操作前的最近邻一次操作开始,按照调用的反方向,进行回滚操作。
其中查询时,按照3个数据源的调用顺序依次执行,如查询(Query)Data source1之后,先解码,再修改,修改完后再编码,编码后再commit。在commit成功之后,再查询(Query)Data source2,然后也是先解码,再修改,修改完后再编码,编码后再commit。在commit成功之后,再查询(Query)Data source3,同理,也是先解码,再修改,修改完后再编码,编码后再commit。
其中的执行流程包括Query、Commit。Query跟Commit的执行方向相同,RollBack跟它们的方向相反。上述实施例中也可以只进行Query操作,不进行Commit操作。但是如果有Commit,在之前必须先Query。上述图3所示的流程示意图以RollBack隐藏在Transaction内部,当Commit失败时调用的,外部无须显式调用。需要说明的是,Delete操作是独立的,不用依赖任何Query、Commit、RollBack操作。
上述实施例,由于将3个数据源Data source 1、Data source 2和Data source3依次Bind(绑定)到Transaction对象,并在Commit失败时,执行RollBack回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
图4为本发明实施例提供的数据处理装置的结构示意图。如图4所示,本实施例的数据处理装置,具体可以包括:绑定模块10、复制模块11和回滚模块12。
其中绑定模块10用于将数据处理过程中各API的调用操作按调用的顺序绑定;复制模块11用于在数据处理过程中,当某API的调用操作用于修改数据时,在调用API之前,复制数据作为影子数据;回滚模块12分别与绑定模块10和复制模块11连接,回滚操作12用于当调用API修改数据后提交失败时,从用于修改数据的API的调用操作的前一个最近邻调用开始,按照绑定模块10绑定的绑定顺序的反方向,根据复制模块12复制得到的影子数据对已调用的各API的调用进行回滚操作。
本实施例的数据处理装置,通过采用上述模块实现数据处理的实现机制与上述相关方法实施例的实现机制相同,详细可以参考上述相关实施例的记载,在此不再赘述。
本实施例的数据处理装置,通过采用上述模块实现将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;当应用程序接口的调用操作用于修改数据时,在调用应用程序接口之前,复制数据作为影子数据;当调用应用程序接口修改数据后提交失败时,从用于修改数据的应用程序接口的调用操作的前一个最近邻调用开始,按照绑定顺序的反方向,根据影子数据对已调用的各应用程序接口的调用进行回滚操作。本实施例的技术方案,由于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
图5为本发明实施例提供的数据处理装置。如图5所示,本实施例的数据处理装置,在上述图4所示实施例的基础上,进一步还包括如下技术方案。
如图5所示,本实施例的数据处理装置还包括调用模块13。该调用模块13与绑定模块10连接,调用模块13用于当调用API修改数据后提交成功时,继续按照绑定模块10绑定的顺序,对剩余的各API的调用操作按照顺序调用。其中调用模块13还用于调用API修改数据。
可选地,上述实施例中的API的调用操作包括修改数据的操作,写入数据的操作或者读取数据的操作。
可选地,如图5所示,本实施例的数据处理装置还包括查询模块14。该查询模块14用于当API的调用操作用于修改数据时,在调用API之前,复制模块12复制数据作为影子数据之前,调用查询数据的API,获取到数据。复制模块12与查询模块14连接,复制模块14用于在数据处理过程中,当某API的调用操作用于修改数据时,在调用API之前,复制查询模块14查询的数据作为影子数据。
进一步可选地,如图5所示,本实施例的数据处理装置还包括解码模块15。其中该解码模块15与查询模块14连接,解码模块15用于在查询模块14调用查询数据的API,获取到数据之后,调用API修改数据之前,将获取到的数据进行解码。调用模块13也与解码模块15连接,调用模块13还用于调用API修改解码模块15解码后的数据。
进一步可选地,如图5所示,本实施例的数据处理装置,还包括编码模块16。其中编码模块16与调用模块13连接,编码模块16用于当调用模块13调用API修改数据后之后,对修改后的数据进行编码,然后才能提交修改后的数据。
本实施例的数据处理装置中,所有可选技术方案可以采用可以结合的方式任意组合形成本发明的可选实施例,在此不再赘述。
本实施例的数据处理装置,通过采用上述模块实现将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定,当调用应用程序接口修改数据后提交失败时,均可以根据影子数据进行回滚操作,以将修改的数据进行还原,克服了现有技术中部门写数据失败的缺陷,从而能够有效地提高数据处理的效率。
需要说明的是:上述实施例提供的数据处理装置在数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据处理方法,其特征在于,所述方法包括:
将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;
当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据;
当调用所述应用程序接口修改数据后提交失败时,从所述用于修改数据的所述应用程序接口的调用操作的前一个最近邻调用开始,按照所述绑定顺序的反方向,根据所述影子数据对已调用的各所述应用程序接口的调用进行回滚操作,以使得所述数据处理过程中修改后的数据还原为修改前的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当调用所述应用程序接口修改数据后提交成功时,继续按照所述绑定的顺序,对剩余的各所述应用程序接口的调用操作按照顺序调用。
3.根据权利要求1所述的方法,其特征在于,所述应用程序接口的调用操作包括所述修改数据的操作,写入数据的操作或者读取数据的操作。
4.根据权利要求1-3任一所述的方法,其特征在于,当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据之前,还包括:
调用查询所述数据的应用程序接口,获取到所述数据。
5.根据权利要求4所述的方法,其特征在于,调用查询所述数据的应用程序接口,获取到所述数据之后,调用所述应用程序接口修改数据之前,所述方法还包括:
将获取到的所述数据进行解码。
6.根据权利要求5所述的方法,其特征在于,当调用所述应用程序接口修改所述数据后之后,提交所述修改后的数据之前,所述方法还包括:
对所述修改后的数据进行编码。
7.一种数据处理装置,其特征在于,所述装置包括:
绑定模块,用于将数据处理过程中各应用程序接口的调用操作按调用的顺序绑定;
复制模块,用于当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据;
回滚模块,用于当调用所述应用程序接口修改数据后提交失败时,从所述用于修改数据的所述应用程序接口的调用操作的前一个最近邻调用开始,按照所述绑定顺序的反方向,根据所述影子数据对已调用的各所述应用程序接口的调用进行回滚操作,以使得所述数据处理过程中修改后的数据还原为修改前的数据。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
调用模块,用于调用所述应用程序接口修改数据;
所述调用模块,还用于当调用所述应用程序接口修改数据后提交成功时,继续按照所述绑定的顺序,对剩余的各所述应用程序接口的调用操作按照顺序调用。
9.根据权利要求7所述的装置,其特征在于,所述应用程序接口的调用操作包括所述修改数据的操作,写入数据的操作或者读取数据的操作。
10.根据权利要求7-9任一所述的装置,其特征在于,所述装置还包括:
查询模块,用于当所述应用程序接口的调用操作用于修改数据时,在调用所述应用程序接口之前,复制所述数据作为影子数据之前,调用查询所述数据的应用程序接口,获取到所述数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
解码模块,用于在所述查询模块调用查询所述数据的应用程序接口,获取到所述数据之后,调用所述应用程序接口修改数据之前,将获取到的所述数据进行解码。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
编码模块,用于当调用所述应用程序接口修改所述数据后之后,提交所述修改后的数据之前,对所述修改后的数据进行编码。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序由处理器执行以实现权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172484.3A CN104142818B (zh) | 2013-05-10 | 2013-05-10 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310172484.3A CN104142818B (zh) | 2013-05-10 | 2013-05-10 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104142818A CN104142818A (zh) | 2014-11-12 |
CN104142818B true CN104142818B (zh) | 2018-07-10 |
Family
ID=51852002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310172484.3A Active CN104142818B (zh) | 2013-05-10 | 2013-05-10 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104142818B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727318A (zh) * | 2008-10-10 | 2010-06-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
CN102402623A (zh) * | 2011-12-28 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 面向嵌入式数据库系统的无日志事务处理方法 |
CN102760155A (zh) * | 2012-05-30 | 2012-10-31 | 中兴通讯股份有限公司 | 一种基于数据库的事务控制方法及装置 |
-
2013
- 2013-05-10 CN CN201310172484.3A patent/CN104142818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727318A (zh) * | 2008-10-10 | 2010-06-09 | 因特伟特公司 | 用于促进持久化应用编程接口的方法和装置 |
CN102402623A (zh) * | 2011-12-28 | 2012-04-04 | 北京人大金仓信息技术股份有限公司 | 面向嵌入式数据库系统的无日志事务处理方法 |
CN102760155A (zh) * | 2012-05-30 | 2012-10-31 | 中兴通讯股份有限公司 | 一种基于数据库的事务控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104142818A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2554847C2 (ru) | Контрольные точки для файловой системы | |
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
CN104077335B (zh) | 一种结构化数据的序列化、反序列化方法、装置和系统 | |
JP2008541225A5 (zh) | ||
US9430160B2 (en) | Consistency without ordering dependency | |
CN106599018A (zh) | 库存操作方法和系统 | |
CN110795287B (zh) | 数据恢复方法、系统、电子设备及计算机存储介质 | |
Keller et al. | File systems deserve verification too! | |
CN109189613A (zh) | 一种数据库数据恢复方法及相关装置 | |
CN109165192A (zh) | 一种数据存储方法及装置、一种计算设备及存储介质 | |
CN104572238A (zh) | 一种高效的生成可执行软件包的方法及系统 | |
CN105512276B (zh) | 一种构建垃圾文件的方法、装置及电子设备 | |
CN102024021A (zh) | 一种逻辑文件系统元数据的日志方法 | |
WO2020259516A1 (zh) | 一种单元测试系统及测试方法 | |
CN108255938A (zh) | 一种机载嵌入式内存数据库映像生成和加载方法 | |
CN104142943B (zh) | 一种数据库扩容方法和一种数据库 | |
Bergström et al. | Adopting the rational unified process: success with the RUP | |
CN104142818B (zh) | 数据处理方法及装置 | |
CN109472680A (zh) | 一种账务处理方法及系统 | |
CN111143463B (zh) | 一种基于主题模型的银行数据仓库的构建方法及装置 | |
CN103136234B (zh) | 处理数据的方法和装置 | |
CN110515645A (zh) | 一种bios的功能更新的实现方法及相关装置 | |
CN101382961A (zh) | 升级文件的制作与数据升级方法 | |
Larsen et al. | Recent industrial applications of VDM in Japan | |
CN103049302B (zh) | 由程序生成优化的strcpy标准库函数汇编代码的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |