數(shù)據(jù)處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)處理方法及裝置,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。所述方法包括:將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定;當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù);當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從所述用于修改數(shù)據(jù)的所述應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照所述綁定順序的反方向,根據(jù)所述影子數(shù)據(jù)對(duì)已調(diào)用的各所述應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。本發(fā)明通過采用上述方案,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),均可以根據(jù)影子數(shù)據(jù)進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,從而能夠有效地提高數(shù)據(jù)處理的效率。
【專利說明】數(shù)據(jù)處理方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種數(shù)據(jù)處理方法及裝置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)軟件的迅猛發(fā)展,各種軟件的應(yīng)用使用越來越普及。在應(yīng)用中,可以通 過各種應(yīng)用程序接口(Application Programming Interface ;API)進(jìn)行數(shù)據(jù)的增加 ,刪除、 修改和查詢等操作。
[0003] 例如,以游戲中購買道具為例詳細(xì)介紹各種API進(jìn)行數(shù)據(jù)處理的操作流程。第一 種購買道具的方式具體為:當(dāng)應(yīng)用(Application ;App)接收到API接收的購買道具請求之 后,App先通過調(diào)用讀取道具API,讀取道具的數(shù)量,再調(diào)用發(fā)放道具API向購買用戶發(fā)放道 具,該操作修改了道具的值,即使用戶擁有的道具值為在原來讀取的道具的數(shù)量上加上本 次新發(fā)放的道具值;修改完后提交(commit)數(shù)據(jù)。Commit成功之后,再通過調(diào)用讀取金幣 API,讀出金幣值,再調(diào)用扣除金幣API扣除本購買道具需要的金幣,該操作修改了金幣值, 即使用戶的金幣值為用戶原來的金幣減去本次所付的金幣,修改完后commit數(shù)據(jù)。調(diào)用發(fā) 放道具API和調(diào)用扣除金幣API的操作處理互相獨(dú)立,當(dāng)調(diào)用發(fā)放道具API發(fā)送道具成功, 調(diào)用扣除金幣API扣除金幣失敗,用戶可以利用該漏洞瘋狂購買道具,而不用支付金幣。第 二種購買道具的方式具體為:當(dāng)App通過調(diào)用API接收到購買道具請求之后,App先調(diào)用 讀取金幣API,讀出金幣值,再調(diào)用扣除金幣API扣除本購買道具需要的金幣,該操作修改 了金幣值,即使用戶的金幣值為用戶原來的金幣減去本次所付的金幣,修改完后commit數(shù) 據(jù)。Commit成功之后,先通過讀取道具API,讀取道具的數(shù)量,再通過調(diào)用發(fā)放道具API向 購買用戶發(fā)放道具,該操作修改了道具的值,即使用戶擁有的道具值為在原來讀取的道具 的數(shù)量上加上本次新發(fā)放的道具值;修改完后commit數(shù)據(jù)。當(dāng)調(diào)用扣除金幣API扣除金幣 成功,調(diào)用發(fā)放道具API發(fā)送道具失敗,會(huì)遭到用戶的投訴。其中的用戶采用用戶的賬戶來 標(biāo)識(shí),即所述用戶具體指的是用戶賬戶。
[0004] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005] 當(dāng)現(xiàn)有技術(shù)中的數(shù)據(jù)處理中包括多種調(diào)用API的處理時(shí),各種API的調(diào)用互相獨(dú) 立,其處理結(jié)果無法同步,導(dǎo)致了一旦某個(gè)API寫數(shù)據(jù)失敗,其他API無法獲知該處理結(jié)果, 而繼續(xù)進(jìn)行數(shù)據(jù)處理操作,會(huì)造成數(shù)據(jù)處理錯(cuò)誤,從而導(dǎo)致該數(shù)據(jù)處理的效率較低。
【發(fā)明內(nèi)容】
[0006] 為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法及裝置。所述 技術(shù)方案如下:
[0007] -方面,提供了一種數(shù)據(jù)處理方法,所述方法包括:
[0008] 將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定;
[0009] 當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程序接口之 前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù);當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從所述 用于修改數(shù)據(jù)的所述應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照所述綁定順 序的反方向,根據(jù)所述影子數(shù)據(jù)對(duì)已調(diào)用的各所述應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。
[0010] 可選地,如上所述的數(shù)據(jù)處理方法中,還包括:
[0011] 當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照所述綁定的順序,對(duì) 剩余的各所述應(yīng)用程序接口的調(diào)用操作按照順序調(diào)用。
[0012] 可選地,如上所述的數(shù)據(jù)處理方法中,所述應(yīng)用程序接口的調(diào)用操作包括所述修 改數(shù)據(jù)的操作,寫入數(shù)據(jù)的操作或者讀取數(shù)據(jù)的操作。
[0013] 可選地,如上所述的數(shù)據(jù)處理方法中,當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改 數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù)之前,還包括:
[0014] 調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到所述數(shù)據(jù)。
[0015] 可選地,如上所述的數(shù)據(jù)處理方法中,調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到 所述數(shù)據(jù)之后,調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)之前,所述方法還包括:
[0016] 將獲取到的所述數(shù)據(jù)進(jìn)行解碼。
[0017] 可選地,如上所述的數(shù)據(jù)處理方法中,當(dāng)調(diào)用所述應(yīng)用程序接口修改所述數(shù)據(jù)后 之后,提交所述修改后的數(shù)據(jù)之前,還包括:
[0018] 對(duì)所述修改后的數(shù)據(jù)進(jìn)行編碼。
[0019] 另一方面,提供了一種數(shù)據(jù)處理裝置,所述裝置包括:
[0020] 綁定模塊,用于將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁 定;
[0021] 復(fù)制模塊,用于當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng) 用程序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù);
[0022] 回滾模塊,用于當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從所述用于修 改數(shù)據(jù)的所述應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照所述綁定順序的反 方向,根據(jù)所述影子數(shù)據(jù)對(duì)已調(diào)用的各所述應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。
[0023] 可選地,如上所述的數(shù)據(jù)處理裝置中,還包括:
[0024] 調(diào)用模塊,用于調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù);
[0025] 所述調(diào)用模塊,還當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照所 述綁定的順序,對(duì)剩余的各所述應(yīng)用程序接口的調(diào)用操作按照順序調(diào)用。
[0026] 可選地,如上所述的數(shù)據(jù)處理裝置中,所述應(yīng)用程序接口的調(diào)用操作包括所述修 改數(shù)據(jù)的操作,寫入數(shù)據(jù)的操作或者讀取數(shù)據(jù)的操作。
[0027] 可選地,如上所述的數(shù)據(jù)處理裝置中,還包括:
[0028] 查詢模塊,用于當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng) 用程序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù)之前,調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲 取到所述數(shù)據(jù)。
[0029] 可選地,如上所述的數(shù)據(jù)處理裝置中,還包括:
[0030] 解碼模塊,用于在所述查詢模塊調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到所述 數(shù)據(jù)之后,調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)之前,將獲取到的所述數(shù)據(jù)進(jìn)行解碼。
[0031] 可選地,如上所述的數(shù)據(jù)處理裝置中,還包括:
[0032] 編碼模塊,用于當(dāng)調(diào)用所述應(yīng)用程序接口修改所述數(shù)據(jù)后之后,提交所述修改后 的數(shù)據(jù)之前,對(duì)所述修改后的數(shù)據(jù)進(jìn)行編碼。
[0033] 本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0034] 通過將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定;當(dāng)應(yīng)用程 序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用應(yīng)用程序接口之前,復(fù)制數(shù)據(jù)作為影子數(shù)據(jù);當(dāng) 調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從用于修改數(shù)據(jù)的應(yīng)用程序接口的調(diào)用操作的 前一個(gè)最近鄰調(diào)用開始,按照綁定順序的反方向,根據(jù)影子數(shù)據(jù)對(duì)已調(diào)用的各應(yīng)用程序接 口的調(diào)用進(jìn)行回滾操作。本發(fā)明實(shí)施例的技術(shù)方案,由于將數(shù)據(jù)處理過程中各應(yīng)用程序接 口的調(diào)用操作按調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),均可以根 據(jù)影子數(shù)據(jù)進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部分寫數(shù)據(jù)失敗 的缺陷,從而能夠有效地提高數(shù)據(jù)處理的效率。
【專利附圖】
【附圖說明】
[0035] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0036] 圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法的流程圖。
[0037] 圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法的流程圖;
[0038] 圖3為本發(fā)明實(shí)施例提供的一種關(guān)于事務(wù)操作的數(shù)據(jù)處理流程示意圖;
[0039] 圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖;
[0040] 圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置。
【具體實(shí)施方式】
[0041] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。
[0042] 圖1為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法的流程圖。如圖1所示,本實(shí)施例的數(shù) 據(jù)處理方法,具體可以包括如下步驟:
[0043] 100、將數(shù)據(jù)處理過程中各API的調(diào)用操作按調(diào)用的順序綁定;
[0044] 101、當(dāng)API的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用該API之前,復(fù)制數(shù)據(jù)作為影子數(shù) 據(jù);
[0045] 具體指的是,按照綁定順序,依次調(diào)用數(shù)據(jù)處理過程中的各API的調(diào)用操作時(shí),先 判斷即將要調(diào)用的API的調(diào)用操作是否為修改數(shù)據(jù)的操作,若為修改數(shù)據(jù)時(shí),在調(diào)用該API 之前,復(fù)制數(shù)據(jù)作為影子數(shù)據(jù)。
[0046] 102、當(dāng)調(diào)用該API修改數(shù)據(jù)后提交失敗時(shí),從用于修改數(shù)據(jù)的該API的調(diào)用操作 的前一個(gè)最近鄰調(diào)用開始,按照綁定順序的反方向,根據(jù)影子數(shù)據(jù)對(duì)已調(diào)用的各API的調(diào) 用進(jìn)行回滾操作。
[0047] 每一次調(diào)用API修改數(shù)據(jù)之后,都要進(jìn)行commit數(shù)據(jù),當(dāng)commit成功,
[0048] 才表示本次調(diào)用API修改數(shù)據(jù)成功,否則,若本次commit失敗,表示本次修改數(shù)據(jù) 不成功。因此本實(shí)施例中,在修改數(shù)據(jù)不成功時(shí),用于修改數(shù)據(jù)的該API的調(diào)用操作的前一 個(gè)最近鄰調(diào)用開始,按照綁定順序的反方向,根據(jù)該影子數(shù)據(jù)對(duì)已調(diào)用的各API的調(diào)用進(jìn) 行回滾操作,從而將本次數(shù)據(jù)處理流程中所有修改后的數(shù)據(jù)還原。因此根據(jù)影子數(shù)據(jù)對(duì)已 調(diào)用的各API的調(diào)用進(jìn)行回滾操作,主要也是對(duì)涉及到修改數(shù)據(jù)的調(diào)用API操作進(jìn)行回滾, 以使得修改后的數(shù)據(jù)還原。
[0049] 例如以購買道具的過程描述本發(fā)明的技術(shù)方案,若按照先發(fā)放道具,后扣除金幣 的流程來實(shí)施,首先將讀取道具API,發(fā)放道具API和讀取金幣API和扣除金幣API綁定起 來。調(diào)用API的具體過程為:首先調(diào)用讀取道具API讀出道具值,接著調(diào)用發(fā)放道具AP,因 為發(fā)放道具API為修改數(shù)據(jù)的操作,因此在調(diào)用發(fā)放道具API之前,需要復(fù)制讀取的道具值 作為到道具值的影子數(shù)據(jù)。然后調(diào)用發(fā)放道具API,向用戶發(fā)放道具。該操作用于修改道具 的值,即使用戶擁有的道具值為在原來讀取的道具的數(shù)量上加上本次新發(fā)放的道具值;修 改完后commit數(shù)據(jù)。其中的commit的過程主要是一個(gè)保存修改后的數(shù)據(jù)的過程,當(dāng)commit 成功,便成功向用戶發(fā)放道具。然后先調(diào)用讀取金幣API讀取金幣的數(shù)值,接著準(zhǔn)備調(diào)用扣 除金幣API。由于扣除金幣API為修改數(shù)據(jù)的操作,在調(diào)用扣除金幣API之前,復(fù)制讀取的 金幣的數(shù)值。然后調(diào)用扣除金幣API,扣除用戶的金幣數(shù)。該扣除金幣API的操作用于修改 金幣的值,即使用戶擁有的金幣數(shù)量在原來讀取的金幣的數(shù)量的基礎(chǔ)上減去本次應(yīng)付的金 幣數(shù)量;修改完后commit數(shù)據(jù),當(dāng)commit成功,便成功向扣除金幣。本實(shí)施例中需要說明 的是,當(dāng)本次commit失敗,本發(fā)明實(shí)施例中由于將數(shù)據(jù)處理流程中的各API進(jìn)行綁定,因此 本發(fā)明實(shí)施例中,可以根據(jù)影子數(shù)據(jù)對(duì)已調(diào)用的各API的調(diào)用進(jìn)行回滾操作。由于讀取的 回滾操作不影響數(shù)據(jù)的修改,該回滾操作主要是針對(duì)于涉及到修改數(shù)據(jù)的調(diào)用API操作, 例如該方案中,對(duì)上次發(fā)放道具API調(diào)用進(jìn)行回滾操作,收回發(fā)放給用戶的道具,從而得以 將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而能夠有效地提高 數(shù)據(jù)處理的效率。
[0050] 本實(shí)施例的技術(shù)方案對(duì)于購買道具的過程若先扣除金幣,再發(fā)放道具的方案同樣 可以適用,其實(shí)施過程同上述過程類似,在此不再贅述。
[0051] 本實(shí)施例的數(shù)據(jù)處理方法的執(zhí)行主體為一數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置可以采 用軟件集成。
[0052] 本實(shí)施例的數(shù)據(jù)處理方法,通過將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按 調(diào)用的順序綁定;當(dāng)應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用應(yīng)用程序接口之前, 復(fù)制數(shù)據(jù)作為影子數(shù)據(jù);當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從用于修改數(shù)據(jù)的 應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照綁定順序的反方向,根據(jù)影子數(shù) 據(jù)對(duì)已調(diào)用的各應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。本實(shí)施例的技術(shù)方案,由于將數(shù)據(jù)處 理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后 提交失敗時(shí),均可以根據(jù)影子數(shù)據(jù)進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技 術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而能夠有效地提高數(shù)據(jù)處理的效率。
[0053] 可選地,在上述圖1所示實(shí)施例的技術(shù)方案的基礎(chǔ)上,上述實(shí)施例的數(shù)據(jù)處理方 法還包括:當(dāng)調(diào)用API修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照綁定的順序,對(duì)剩余的各API的調(diào) 用操作按照順序調(diào)用。
[0054] 需要說明的是,上述圖1所示實(shí)施例的技術(shù)方案中的API的調(diào)用操作包括修改數(shù) 據(jù)的操作,寫入數(shù)據(jù)的操作或者讀取數(shù)據(jù)的操作。
[0055] 可選地,在上述圖1所示實(shí)施例的技術(shù)方案的基礎(chǔ)上,在步驟101 "當(dāng)API的調(diào)用 操作用于修改數(shù)據(jù)時(shí),在調(diào)用API之前,復(fù)制數(shù)據(jù)作為影子數(shù)據(jù)"之前,還包括:調(diào)用查詢 (query)數(shù)據(jù)的API,獲取到該查詢的數(shù)據(jù)。例如具體可以從后端數(shù)據(jù)庫中讀取該要查詢的 數(shù)據(jù)。
[0056] 進(jìn)一步可選地,在調(diào)用查詢數(shù)據(jù)的API,獲取到數(shù)據(jù)之后,調(diào)用API修改數(shù)據(jù)之前, 還可以包括將獲取到的數(shù)據(jù)進(jìn)行解碼。例如具體可以將后端數(shù)據(jù)庫中存儲(chǔ)的二進(jìn)制數(shù)據(jù)解 碼為可以供識(shí)別和修改的數(shù)據(jù)。例如具體可以采用騰訊公司移動(dòng)互聯(lián)網(wǎng)事業(yè)群開發(fā)的一套 類似于protocol buffer的數(shù)據(jù)交換格式j(luò)ce,可以稱為jce交換格式。
[0057] 進(jìn)一步可選地,同理,在上述實(shí)施例中"當(dāng)調(diào)用API修改數(shù)據(jù)后"之后,"提交修改 后的數(shù)據(jù)"之前,還可以包括:對(duì)修改后的數(shù)據(jù)進(jìn)行編碼。該過程為上述編碼的逆過程,同 理采用jce交換格式進(jìn)行編碼,為上述實(shí)施例中的jce交換格式的解碼的逆過程。
[0058] 上述實(shí)施例的數(shù)據(jù)處理方法中,所有可選技術(shù)方案可以采用可以結(jié)合的方式任意 組合形成本發(fā)明的可選實(shí)施例,在此不再贅述。
[0059] 上述實(shí)施例的數(shù)據(jù)處理方法中,由于將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操 作按調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),均可以根據(jù)影子數(shù)據(jù) 進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而 能夠有效地提高數(shù)據(jù)處理的效率。
[0060] 圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理方法的流程圖。如圖2所示,本實(shí)施例的數(shù) 據(jù)處理方法,在上述圖1及上述可選實(shí)施例的基礎(chǔ)上,進(jìn)一步更加詳細(xì)地介紹本發(fā)明的技 術(shù)方案。如圖2所示,本實(shí)施例的數(shù)據(jù)處理方法,具體可以包括如下步驟:
[0061] 200、將數(shù)據(jù)處理過程中3個(gè)API的調(diào)用操作按調(diào)用的順序綁定;
[0062] 例如數(shù)據(jù)處理過程中的各API操作包括寫數(shù)據(jù)的API操作、修改數(shù)據(jù)的API操作 和讀取數(shù)據(jù)的API操作中的一個(gè)或者多個(gè)。本實(shí)施例中以一個(gè)包括3各API調(diào)用的數(shù)據(jù)處 理過程為例來介紹本發(fā)明的技術(shù)方案。例如本實(shí)施例中的3個(gè)API調(diào)用操作按照調(diào)用順序 依次為讀取數(shù)據(jù)的API、修改數(shù)據(jù)的API和寫入數(shù)據(jù)的API。
[0063] 201、調(diào)用讀取數(shù)據(jù)的API,獲取讀取的數(shù)據(jù);
[0064] 202、復(fù)制讀取后的數(shù)據(jù),作為影子數(shù)據(jù);
[0065] 203、對(duì)讀取的數(shù)據(jù)進(jìn)行jce解碼;
[0066] 204、調(diào)用修改數(shù)據(jù)的API,進(jìn)行數(shù)據(jù)修改;
[0067] 205、將修改后的數(shù)據(jù)進(jìn)行jce編碼;
[0068] 206、commit編碼后的數(shù)據(jù);
[0069] 207、判斷commit是否成功,當(dāng)commit成功時(shí),執(zhí)行步驟208,否則結(jié)束;
[0070] 此處需要注意的是,此處commit失敗,按照本發(fā)明實(shí)施例應(yīng)該執(zhí)行回滾操作的, 但是由于commit失敗,當(dāng)前的該修改數(shù)據(jù)的API調(diào)用不會(huì)滾,該修改數(shù)據(jù)的API調(diào)用的前 一個(gè)最近鄰調(diào)用為讀取API的調(diào)用,未涉及到修改數(shù)據(jù),因此不用回滾。
[0071] 208、調(diào)用寫數(shù)據(jù)的API,寫入新數(shù)據(jù);執(zhí)行步驟209 ;
[0072] 209、將寫入的新數(shù)據(jù)進(jìn)行jce編碼;執(zhí)行步驟210 ;
[0073] 210、commit編碼后的新數(shù)據(jù);執(zhí)行步驟211 ;
[0074] 211、判斷commit是否成功,當(dāng)commit成功時(shí)結(jié)束,否則執(zhí)行步驟212 ;
[0075] 該步驟中,當(dāng)commit成功表示數(shù)據(jù)處理流程結(jié)束。
[0076] 212、根據(jù)影子數(shù)據(jù)對(duì)修改數(shù)據(jù)的API調(diào)用進(jìn)行回滾操作,使得修改后的數(shù)據(jù)還 原。
[0077] 同理,本實(shí)施例的數(shù)據(jù)處理方法的執(zhí)行主體也為數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置 可以采用軟件集成。
[0078] 本實(shí)施例的數(shù)據(jù)處理方法,由于將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按 調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),均可以根據(jù)影子數(shù)據(jù)進(jìn)行 回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而能夠 有效地提高數(shù)據(jù)處理的效率。
[0079] 下面實(shí)施例中抽象出兩類對(duì)象來描述本發(fā)明的實(shí)現(xiàn)方案。其中兩類對(duì)象,一個(gè)是 "數(shù)據(jù)源對(duì)象(Data source)",另一個(gè)是"事務(wù)對(duì)象(Transaction)"。
[0080] 其中Transaction,中文叫做事務(wù),是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè) 程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫操縱語言或編程語言(如SQL,C++或Java) 書寫的用戶程序的執(zhí)行所引起,并用形如begin Transaction和commit Transaction或 rollback Transaction語句(或函數(shù)調(diào)用)來界定。事務(wù)由事務(wù)開始(begin Transaction) 和事務(wù)結(jié)束(commit Transaction或rollback Transaction)之間執(zhí)行的全體操作組成。
[0081] Data source,中文叫數(shù)據(jù)源,是對(duì)后端數(shù)據(jù)接口的封裝,并對(duì)外提供Query、 Commit、Delete等接口??梢詥为?dú)使用,更多時(shí)候是配合Transaction -起使用。
[0082] Data source實(shí)際上就是對(duì)普通API的包裝,它本身會(huì)抽象出4個(gè)接口 :查詢 (Query)接口,提交(Commit)接口,刪除(Delete)接口,回滾(RollBack)接口。Query 對(duì)應(yīng) API的"查詢",Commit對(duì)應(yīng)API的"增加、改動(dòng)",Delete對(duì)應(yīng)API的"刪除"。Data source 可以定義任意多個(gè),不同的Data source對(duì)應(yīng)不同類型的API。比如操作"道具"的API可 以被包裝成"道具Data source",起名為:PropDataSource ;操作"金幣"的API可以被包裝 成"金幣Data source",起名為:MoneyDataSource。由于Delete接口被調(diào)用時(shí)直接刪除 數(shù)據(jù),無法進(jìn)行回滾,因此本申請技術(shù)方案中不涉及Delete接口的使用。
[0083] Transaction驅(qū)動(dòng)一系列Data source的執(zhí)行,它本身會(huì)抽象出4個(gè)接口 :查詢 (Query)接 口,提交(Commit)接口,刪除(Delete)接口,這 3 個(gè)接 口 跟 Data source 對(duì) 應(yīng)。除此之外,還提供一叫做綁定(Bind)的接口,調(diào)用Bind接口可以將Data source跟 Transaction綁定起來。
[0084]例如:
[0085] j sfc ?|?承幸承傘木木?|?承幸承傘 ^^|** ?|?承?|? *承傘木?|?承?|? *承傘^? * ?|?承幸j Transaction Transaction; // 定義事務(wù)又十象 PropDataSource propds; //定義道具數(shù)據(jù)源對(duì)象,內(nèi)部持有道具的jce結(jié)構(gòu)體 MoneyDataSource moneyds; //定義金幣數(shù)據(jù)源對(duì)象,內(nèi)部持有金幣的jce結(jié)構(gòu)體 y承承承聿承承氺承承承承聿窣承串傘承承凄欠寺居源?βρ定串傘尜承聿窣承串傘承承承聿承承氺承承承承y Transaction.BInd(propds); //鄭定道具數(shù)據(jù)源對(duì)象 Transaction.Bind(moneyds); // 綁定金幣欲據(jù)源對(duì)象 ,*氺*本氺本氺本串氺*本*本*本串氺*本氺本才丸才亍杏詢才乘本*本串氺*本氺本*本串氺*本**, Transaction.Query(); // Transaction內(nèi)部依次調(diào)用被綁定數(shù)據(jù)源的Query接口, II獲取到原始的二進(jìn)制數(shù)據(jù)后,內(nèi)部會(huì)自動(dòng)進(jìn)行jce的解碼, //將二進(jìn)制數(shù)據(jù)解碼成jce結(jié)構(gòu)體 ,氺氺氺氺*氺幸氺承氺氺本本數(shù)據(jù)修改· 扣除金幣、加道具幸氺*氺*氺承氺氺本氺氺/ y串承串本傘氺傘本串本傘**本串承串本 j亍才是交才乘窣傘承承串串串串串傘承傘車串承窣幸傘承承 *ιγ Transaction.CommitQ; // Transaction內(nèi)部依次調(diào)用被綿定數(shù)據(jù)源的Commit接口 , //數(shù)據(jù)源的Commit在執(zhí)行之前會(huì)先自動(dòng)將修改后的jce結(jié)構(gòu)體 //編碼成二進(jìn)制數(shù)據(jù)。 //如果某個(gè)數(shù)據(jù)源提交失敗,從該失敗的上一個(gè)數(shù)據(jù)源
[0086] II開始進(jìn)行反向回滾(RollBack),回滾的方向提交的方向相反
[0087] 圖3為本發(fā)明實(shí)施例提供的一種關(guān)于事務(wù)操作的數(shù)據(jù)處理流程示意圖。如圖3所 示,本實(shí)施例的關(guān)于事務(wù)操作的數(shù)據(jù)處理流程,包括如下步驟:
[0088] 第一步、將3個(gè)數(shù)據(jù)源數(shù)據(jù)源1 (Data source 1)、數(shù)據(jù)源2 (Data source 2)和 數(shù)據(jù)源3 (Data source 3)依次Bind(綁定)到事務(wù)處理(Transaction)對(duì)象;
[0089] 第二步、執(zhí)行Query接口進(jìn)行查詢,查詢完后現(xiàn)將各數(shù)據(jù)源進(jìn)行拷貝得到各數(shù)據(jù) 源的影子數(shù)據(jù),然后自動(dòng)將Query獲取的二進(jìn)制數(shù)據(jù)進(jìn)行jce解碼;
[0090] 第三步、對(duì)各個(gè)數(shù)據(jù)源,將查詢后編碼得到的數(shù)據(jù)進(jìn)行修改;
[0091] 第四步、對(duì)各個(gè)數(shù)據(jù)源,對(duì)修改后的數(shù)據(jù)進(jìn)行jce編碼;
[0092] 第五步、對(duì)各個(gè)數(shù)據(jù)源,對(duì)編碼后的數(shù)據(jù)進(jìn)行Commit ;
[0093] 例如,可以同時(shí)對(duì)各個(gè)修改后的數(shù)據(jù)一起打包,一起Commit。
[0094] 第六步、若commit成功,數(shù)據(jù)處理結(jié)束。若commit失敗,以提交順序相反的方向 進(jìn)行回滾操作。其中需要注意的提交失敗的數(shù)據(jù)源本身不進(jìn)行回滾。
[0095] 本實(shí)施例中以各個(gè)數(shù)據(jù)源為對(duì)象介紹本發(fā)明的實(shí)施例,實(shí)際應(yīng)用中,多個(gè)數(shù)據(jù)源 的查詢,修改和提交可以有先后順序,也可以沒有先后順序。但是只要Commit失敗,就必須 以該次修改數(shù)據(jù)操作前的最近鄰一次操作開始,按照調(diào)用的反方向,進(jìn)行回滾操作。
[0096] 其中查詢時(shí),按照3個(gè)數(shù)據(jù)源的調(diào)用順序依次執(zhí)行,如查詢(Query)Data sourcel 之后,先解碼,再修改,修改完后再編碼,編碼后再commit。在commit成功之后,再查詢 (Query) Data source2,然后也是先解碼,再修改,修改完后再編碼,編碼后再commit。在 commit成功之后,再查詢(Query) Data source3,同理,也是先解碼,再修改,修改完后再編 碼,編碼后再commit。
[0097] 其中的執(zhí)行流程包括Query、Commit。Query跟Commit的執(zhí)行方向相同,RollBack 跟它們的方向相反。上述實(shí)施例中也可以只進(jìn)行Query操作,不進(jìn)行Commit操作。但是 如果有Commit,在之前必須先Query。上述圖3所示的流程示意圖以RollBack隱藏在 Transaction內(nèi)部,當(dāng)Commit失敗時(shí)調(diào)用的,夕卜部無須顯式調(diào)用。需要說明的是,Delete操 作是獨(dú)立的,不用依賴任何Query、Commit、RollBack操作。
[0098] 上述實(shí)施例,由于將3個(gè)數(shù)據(jù)源Data sourcel>Data source2和Data source3依 次Bind(綁定)到Transaction對(duì)象,并在Commit失敗時(shí),執(zhí)行RollBack回滾操作,以將修 改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而能夠有效地提高數(shù)據(jù) 處理的效率。
[0099] 圖4為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。如圖4所示,本實(shí)施例 的數(shù)據(jù)處理裝置,具體可以包括:綁定模塊10、復(fù)制模塊11和回滾模塊12。
[0100] 其中綁定模塊10用于將數(shù)據(jù)處理過程中各API的調(diào)用操作按調(diào)用的順序綁定;復(fù) 制模塊11用于在數(shù)據(jù)處理過程中,當(dāng)某API的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用API之前, 復(fù)制數(shù)據(jù)作為影子數(shù)據(jù);回滾模塊12分別與綁定模塊10和復(fù)制模塊11連接,回滾操作12 用于當(dāng)調(diào)用API修改數(shù)據(jù)后提交失敗時(shí),從用于修改數(shù)據(jù)的API的調(diào)用操作的前一個(gè)最近 鄰調(diào)用開始,按照綁定模塊10綁定的綁定順序的反方向,根據(jù)復(fù)制模塊12復(fù)制得到的影子 數(shù)據(jù)對(duì)已調(diào)用的各API的調(diào)用進(jìn)行回滾操作。
[0101] 本實(shí)施例的數(shù)據(jù)處理裝置,通過采用上述模塊實(shí)現(xiàn)數(shù)據(jù)處理的實(shí)現(xiàn)機(jī)制與上述相 關(guān)方法實(shí)施例的實(shí)現(xiàn)機(jī)制相同,詳細(xì)可以參考上述相關(guān)實(shí)施例的記載,在此不再贅述。
[0102] 本實(shí)施例的數(shù)據(jù)處理裝置,通過采用上述模塊實(shí)現(xiàn)將數(shù)據(jù)處理過程中各應(yīng)用程序 接口的調(diào)用操作按調(diào)用的順序綁定;當(dāng)應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用 應(yīng)用程序接口之前,復(fù)制數(shù)據(jù)作為影子數(shù)據(jù);當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí), 從用于修改數(shù)據(jù)的應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照綁定順序的反 方向,根據(jù)影子數(shù)據(jù)對(duì)已調(diào)用的各應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。本實(shí)施例的技術(shù)方 案,由于將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程 序接口修改數(shù)據(jù)后提交失敗時(shí),均可以根據(jù)影子數(shù)據(jù)進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行 還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失敗的缺陷,從而能夠有效地提高數(shù)據(jù)處理的效率。
[0103] 圖5為本發(fā)明實(shí)施例提供的數(shù)據(jù)處理裝置。如圖5所示,本實(shí)施例的數(shù)據(jù)處理裝 置,在上述圖4所示實(shí)施例的基礎(chǔ)上,進(jìn)一步還包括如下技術(shù)方案。
[0104] 如圖5所示,本實(shí)施例的數(shù)據(jù)處理裝置還包括調(diào)用模塊13。該調(diào)用模塊13與綁定 模塊10連接,調(diào)用模塊13用于當(dāng)調(diào)用API修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照綁定模塊10 綁定的順序,對(duì)剩余的各API的調(diào)用操作按照順序調(diào)用。其中調(diào)用模塊13還用于調(diào)用API 修改數(shù)據(jù)。
[0105] 可選地,上述實(shí)施例中的API的調(diào)用操作包括修改數(shù)據(jù)的操作,寫入數(shù)據(jù)的操作 或者讀取數(shù)據(jù)的操作。
[0106] 可選地,如圖5所示,本實(shí)施例的數(shù)據(jù)處理裝置還包括查詢模塊14。該查詢模塊 14用于當(dāng)API的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用API之前,復(fù)制模塊12復(fù)制數(shù)據(jù)作為影 子數(shù)據(jù)之前,調(diào)用查詢數(shù)據(jù)的API,獲取到數(shù)據(jù)。復(fù)制模塊12與查詢模塊14連接,復(fù)制模塊 14用于在數(shù)據(jù)處理過程中,當(dāng)某API的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用API之前,復(fù)制查 詢模塊14查詢的數(shù)據(jù)作為影子數(shù)據(jù)。
[0107] 進(jìn)一步可選地,如圖5所示,本實(shí)施例的數(shù)據(jù)處理裝置還包括解碼模塊15。其中該 解碼模塊15與查詢模塊14連接,解碼模塊15用于在查詢模塊14調(diào)用查詢數(shù)據(jù)的API,獲 取到數(shù)據(jù)之后,調(diào)用API修改數(shù)據(jù)之前,將獲取到的數(shù)據(jù)進(jìn)行解碼。調(diào)用模塊13也與解碼 模塊15連接,調(diào)用模塊13還用于調(diào)用API修改解碼模塊15解碼后的數(shù)據(jù)。
[0108] 進(jìn)一步可選地,如圖5所示,本實(shí)施例的數(shù)據(jù)處理裝置,還包括編碼模塊16。其中 編碼模塊16與調(diào)用模塊13連接,編碼模塊16用于當(dāng)調(diào)用模塊13調(diào)用API修改數(shù)據(jù)后之 后,對(duì)修改后的數(shù)據(jù)進(jìn)行編碼,然后才能提交修改后的數(shù)據(jù)。
[0109] 本實(shí)施例的數(shù)據(jù)處理裝置中,所有可選技術(shù)方案可以采用可以結(jié)合的方式任意組 合形成本發(fā)明的可選實(shí)施例,在此不再贅述。
[0110] 本實(shí)施例的數(shù)據(jù)處理裝置,通過采用上述模塊實(shí)現(xiàn)將數(shù)據(jù)處理過程中各應(yīng)用程序 接口的調(diào)用操作按調(diào)用的順序綁定,當(dāng)調(diào)用應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),均可以 根據(jù)影子數(shù)據(jù)進(jìn)行回滾操作,以將修改的數(shù)據(jù)進(jìn)行還原,克服了現(xiàn)有技術(shù)中部門寫數(shù)據(jù)失 敗的缺陷,從而能夠有效地提高數(shù)據(jù)處理的效率。
[0111] 需要說明的是:上述實(shí)施例提供的數(shù)據(jù)處理裝置在數(shù)據(jù)處理時(shí),僅以上述各功能 模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模 塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功 能。另外,上述實(shí)施例提供的數(shù)據(jù)處理裝置與數(shù)據(jù)處理方法實(shí)施例屬于同一構(gòu)思,其具體實(shí) 現(xiàn)過程詳見方法實(shí)施例,這里不再贅述。
[0112] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件 來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀 存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0113] 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種數(shù)據(jù)處理方法,其特征在于,所述方法包括: 將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定; 當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程序接口之前,復(fù) 制所述數(shù)據(jù)作為影子數(shù)據(jù); 當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從所述用于修改數(shù)據(jù)的所述應(yīng)用程 序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照所述綁定順序的反方向,根據(jù)所述影子 數(shù)據(jù)對(duì)已調(diào)用的各所述應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照所述綁定的順序,對(duì)剩余 的各所述應(yīng)用程序接口的調(diào)用操作按照順序調(diào)用。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述應(yīng)用程序接口的調(diào)用操作包括所述 修改數(shù)據(jù)的操作,寫入數(shù)據(jù)的操作或者讀取數(shù)據(jù)的操作。
4.根據(jù)權(quán)利要求1-3任一所述的方法,其特征在于,當(dāng)所述應(yīng)用程序接口的調(diào)用操作 用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù)之前,還包 括: 調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到所述數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取 到所述數(shù)據(jù)之后,調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)之前,所述方法還包括: 將獲取到的所述數(shù)據(jù)進(jìn)行解碼。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,當(dāng)調(diào)用所述應(yīng)用程序接口修改所述數(shù)據(jù) 后之后,提交所述修改后的數(shù)據(jù)之前,所述方法還包括: 對(duì)所述修改后的數(shù)據(jù)進(jìn)行編碼。
7. 一種數(shù)據(jù)處理裝置,其特征在于,所述裝置包括: 綁定模塊,用于將數(shù)據(jù)處理過程中各應(yīng)用程序接口的調(diào)用操作按調(diào)用的順序綁定; 復(fù)制模塊,用于當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程 序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù); 回滾模塊,用于當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交失敗時(shí),從所述用于修改數(shù) 據(jù)的所述應(yīng)用程序接口的調(diào)用操作的前一個(gè)最近鄰調(diào)用開始,按照所述綁定順序的反方 向,根據(jù)所述影子數(shù)據(jù)對(duì)已調(diào)用的各所述應(yīng)用程序接口的調(diào)用進(jìn)行回滾操作。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 調(diào)用模塊,用于調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù); 所述調(diào)用模塊,還用于當(dāng)調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)后提交成功時(shí),繼續(xù)按照所 述綁定的順序,對(duì)剩余的各所述應(yīng)用程序接口的調(diào)用操作按照順序調(diào)用。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述應(yīng)用程序接口的調(diào)用操作包括所述 修改數(shù)據(jù)的操作,寫入數(shù)據(jù)的操作或者讀取數(shù)據(jù)的操作。
10.根據(jù)權(quán)利要求7-9任一所述的裝置,其特征在于,所述裝置還包括: 查詢模塊,用于當(dāng)所述應(yīng)用程序接口的調(diào)用操作用于修改數(shù)據(jù)時(shí),在調(diào)用所述應(yīng)用程 序接口之前,復(fù)制所述數(shù)據(jù)作為影子數(shù)據(jù)之前,調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到 所述數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述裝置還包括: 解碼模塊,用于在所述查詢模塊調(diào)用查詢所述數(shù)據(jù)的應(yīng)用程序接口,獲取到所述數(shù)據(jù) 之后,調(diào)用所述應(yīng)用程序接口修改數(shù)據(jù)之前,將獲取到的所述數(shù)據(jù)進(jìn)行解碼。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 編碼模塊,用于當(dāng)調(diào)用所述應(yīng)用程序接口修改所述數(shù)據(jù)后之后,提交所述修改后的數(shù) 據(jù)之前,對(duì)所述修改后的數(shù)據(jù)進(jìn)行編碼。
【文檔編號(hào)】G06F9/44GK104142818SQ201310172484
【公開日】2014年11月12日 申請日期:2013年5月10日 優(yōu)先權(quán)日:2013年5月10日
【發(fā)明者】周齡 申請人:騰訊科技(深圳)有限公司