本發(fā)明涉及同步時間修正方法及其裝置。
背景技術(shù):
農(nóng)村集體資產(chǎn)交易平臺的建設(shè)正在我國逐漸發(fā)展開來,其中有一個業(yè)務(wù)模塊是網(wǎng)上交易,網(wǎng)上交易是指使用軟件在網(wǎng)絡(luò)上進行競投標(biāo)的業(yè)務(wù),用戶競投標(biāo)的過程中涉及到用戶報名競投、用戶交保證金、標(biāo)的開標(biāo)、用戶叫價競投和標(biāo)的結(jié)束;在競投標(biāo)的過程中競投規(guī)則里有一條是離標(biāo)的結(jié)束時間倒數(shù)三分鐘里,如果有用戶進行出價競投,標(biāo)的結(jié)束時間就會自動延遲3分鐘,延遲次數(shù)少于100次,這些競標(biāo)規(guī)則都和時間有很大的關(guān)聯(lián)性。但是在這種網(wǎng)上交易平臺上因為用戶端的時間和服務(wù)器的時間不對等影響競投過程的公平性和公正性。
針對以上問題現(xiàn)有技術(shù)對時間的不同步進行了相關(guān)修正的方法:第一種是獲取服務(wù)器時間作為用戶端的時間,但是這種簡單的同步,用戶端和服務(wù)器的時間仍有較大的偏差,是因為缺少網(wǎng)絡(luò)通信數(shù)據(jù)傳輸?shù)暮臅r時間;第二種是向服務(wù)器獲取時間的同時獲取手機本地時間T1和T2,以及服務(wù)器時間T’,當(dāng)獲取服務(wù)器時間成功使用(T2-T1)/2計算出單向通信時間,再把T’+(T2-T1)/2,以修正用戶端的時間,這種方法在網(wǎng)絡(luò)通信不穩(wěn)定的情況下還是有較大的誤差,原因是缺少考慮上下行通信耗時有不對等。當(dāng)用戶端發(fā)送與接收不對等或服務(wù)器接收與發(fā)送不對等時,使用(T2-T)/2計算出來的單向通信耗時是不準(zhǔn)確的,所以T’+(T2-T1)/2也是不準(zhǔn)確的。
例如,現(xiàn)有A、B、C、D、E三個用戶進行報名競投標(biāo),會出現(xiàn)一下情況:1、由于A的手機通信不太穩(wěn)定,通過T’+(T2-T1)/2算法得到的時間比服務(wù)器時間慢了7秒,當(dāng)A離報名倒計時結(jié)束時間還有6秒時進行標(biāo)的報名,此時A手機還可以報名,但實際服務(wù)器的報名時間已經(jīng)報名結(jié)束了,此時出現(xiàn)了報名失敗的情況。
2、由于B的手機通信不太穩(wěn)定,通過T’+(T2-T1)/2算法得到的時間比服務(wù)器時間慢了7秒,當(dāng)B離競投結(jié)束倒計時還有6秒時進行出價競投,此時B手機還可以出價競投,但實際服務(wù)器的出價競投時間已經(jīng)結(jié)束了,此時出現(xiàn)競投出價失敗。
3、由于C的手機通信不太穩(wěn)定,通過T’+(T2-T1)/2算法得到的時間比服務(wù)器時間快了7秒,當(dāng)C離競投結(jié)束倒計時還有6秒時進行出價競投,C的手機此時出現(xiàn)競投出價已經(jīng)結(jié)束,但服務(wù)器還有6秒的可操作時間。
4、競標(biāo)的出價延遲次數(shù)為0,由于D的手機通信不太穩(wěn)定,通過T’+(T2-T1)/2算法得到的時間比服務(wù)器時間快了3秒,當(dāng)D離競投結(jié)束倒計時還有5秒時進行出價競投,D出價成功,D的P1標(biāo)的競投結(jié)束時間延時3分鐘,但此時C的P1標(biāo)的已經(jīng)是結(jié)束狀態(tài),所以C不可以操作,D可以繼續(xù)操作,會引致不公平的現(xiàn)象。
5、競標(biāo)的出價延遲次數(shù)為最后一次。由于E的手機通信不太穩(wěn)定,通過T’+(T2-T1)/2算法得到的時間比服務(wù)器時間快了7秒,當(dāng)E離倒計時結(jié)束時間還有1秒時,出價競投,E出價成功了,但服務(wù)器的結(jié)束時間還有8秒,2秒后E的手機顯示競投時間已經(jīng)結(jié)束,但服務(wù)器還有6秒,此時D的手機通信不太穩(wěn)定,通過T’+(T2-T)/2算法得到的時間比服務(wù)器時間快了3秒,此時D手機顯示競投結(jié)束還有3秒,這個時候D進行出價,D可以成功出價,但E顯示P1標(biāo)的競投時間已經(jīng)結(jié)束了就會讓E誤認為自己是最后一個出價,肯定會中標(biāo)。但此時D是最后一個出價的,6秒后P1標(biāo)的在服務(wù)器上已經(jīng)結(jié)束了,此時中標(biāo)人為D。
6、競標(biāo)的標(biāo)的投標(biāo)結(jié)果是D中標(biāo)了,其實這過程中由于這個時間的誤差問題導(dǎo)致A、B、C、E都錯過了競標(biāo)的時機。
所以如果客戶與服務(wù)器時間偏差越小勢就越大;如果客戶與服務(wù)器時間偏差越大優(yōu)勢就越小。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供同步時間修正方法及其裝置,其能解決在網(wǎng)上競標(biāo)交易的時間不同步的問題。
本發(fā)明的目的采用以下技術(shù)方案實現(xiàn):
同步時間修正方法,應(yīng)用于用戶端和服務(wù)器,包括如下步驟:
S1、獲取用戶端發(fā)送請求指令的時間T1,以及獲取用戶端結(jié)束請求指令時的時間T2;
S2、獲取服務(wù)器接收到請求指令的時間T’1;
S3、根據(jù)公式P=T2-(T’1+(T2-T1)/2)得到誤差值P;
S4、判斷P是否小于或等于預(yù)設(shè)誤差值N,如果是執(zhí)行S6,否則執(zhí)行S5;
S5、計算誤差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同時將誤差值P加上誤差修正值P’,得到新的誤差值P,返回S4;
S6、將用戶端的時間T減去誤差值P,得到新的用戶端的時間T。
作為優(yōu)選,S5返回S4的次數(shù)不能超過E次,當(dāng)?shù)贓次返回S4的判斷仍為否,則結(jié)束。
同步時間修正裝置,包括:
第一獲取模塊,用于獲取用戶端發(fā)送請求指令的時間T1,以及獲取用戶端結(jié)束請求指令時的時間T2;
第二獲取模塊,用于獲取服務(wù)器接收到請求指令的服務(wù)器的時間T’1;
第一計算模塊,用于根據(jù)公式P=T2-(T’1+(T2-T1)/2)得到誤差值P;
判斷模塊,用于判斷P是否小于或等于預(yù)設(shè)誤差值N,如果是執(zhí)行修正模塊,否則執(zhí)行第二計算模塊;
第二計算模塊,計算誤差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同時將誤差值P加上誤差修正值P’,得到新的誤差值P,返回判斷模塊;
修正模塊,用于將用戶端的時間T減去誤差值P,得到新的用戶端的時間T。
作為優(yōu)選,第二計算模塊返回判斷模塊的次數(shù)不能超過E次,當(dāng)?shù)贓次返回判斷模塊的判斷仍為否,則結(jié)束。
相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:通過用戶端發(fā)送請求指令的時間T1、用戶端結(jié)束請求指令時的時間T2和服務(wù)器接收到請求指令的時間T’1可以獲取到服務(wù)器和用戶端的時間的誤差值,并將獲取到的誤差值對用戶端的時間進行修正。
附圖說明
圖1為本發(fā)明的同步時間修正方法的流程圖;
圖2為本發(fā)明的同步時間修正裝置的模塊圖。
具體實施方式
下面,結(jié)合附圖以及具體實施方式,對本發(fā)明做進一步描述:
同步時間修正方法,應(yīng)用于用戶端和服務(wù)器,如圖1所示,包括如下步驟:
步驟101、獲取用戶端發(fā)送請求指令的時間T1,以及獲取用戶端結(jié)束請求指令時的時間T2;
其中,服務(wù)器發(fā)送請求指令至服務(wù)器。時間T1和時間T2均是用戶端的時間。
步驟102、獲取服務(wù)器接收到請求指令的服務(wù)器的時間T’1;
時間T’1是服務(wù)器的時間。
步驟103、根據(jù)公式P=T2-(T’1+(T2-T1)/2)得到誤差值P;
步驟104、判斷P是否小于或等于預(yù)設(shè)誤差值N,如果是執(zhí)行步驟106,否則執(zhí)行步驟105;
步驟105、計算誤差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同時將誤差值P加上誤差修正值P’,得到新的誤差值P,即誤差值P=P+P’,返回步驟104;
進一步地,步驟105返回104的次數(shù)不能超過E次,當(dāng)?shù)贓次返回步驟104的判斷仍為否,則結(jié)束。E的意義在于控制迭代執(zhí)行的次數(shù),防止用戶端的網(wǎng)絡(luò)不好時無限制的執(zhí)行。
步驟106、將用戶端的時間T減去誤差值P,得到新的用戶端的時間T,即T=T-P,在誤差范圍N內(nèi)將用戶端的時間T進行了校正。
如果P不大于誤差值N,則意味著,該誤差值P是符合要求的可以直接進入步驟106計算新的時間T;如果P大于誤差值N,則意味著誤差值P不符合要求,需要計算誤差修正值P’進行修正誤差后得到新的誤差值P,再利用新的誤差值P計算新的時間T。
本方法中,由于使用了P不斷修正時間,讓客戶端時間更接近服務(wù)器時間,時間偏差控制在可接受的范圍內(nèi)(如500毫秒),讓用戶的時間偏差在這個設(shè)定的閥值內(nèi),可以讓用戶公平公正的競價。
同步時間修正裝置,如圖2所示,包括:
第一獲取模塊,用于獲取用戶端發(fā)送請求指令的時間T1,以及獲取用戶端結(jié)束請求指令時的時間T2;
第二獲取模塊,用于獲取服務(wù)器接收到請求指令的服務(wù)器的時間T’1;
第一計算模塊,用于根據(jù)公式P=T2-(T’1+(T2-T1)/2)得到誤差值P;
判斷模塊,用于判斷P是否小于或等于預(yù)設(shè)誤差值N,如果是執(zhí)行修正模塊,否則執(zhí)行第二計算模塊;
第二計算模塊,用于計算誤差修正值P’=(T2-P)-(T’1+((T2-P)-(T1-P))/2),同時將誤差值P加上誤差修正值P’,得到新的誤差值P,返回判斷模塊;
修正模塊,用于將用戶端的時間T減去誤差值P,得到新的用戶端的時間T。
進一步地,第二計算模塊返回判斷模塊的次數(shù)不能超過E次,當(dāng)?shù)贓次返回判斷模塊的判斷仍為否,則結(jié)束。
對本領(lǐng)域的技術(shù)人員來說,可根據(jù)以上描述的技術(shù)方案以及構(gòu)思,做出其它各種相應(yīng)的改變以及形變,而所有的這些改變以及形變都應(yīng)該屬于本發(fā)明權(quán)利要求的保護范圍之內(nèi)。