本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種用于客戶端的數(shù)據(jù)處理方法和裝置。
背景技術(shù):
應(yīng)用程序(application),指為完成某項(xiàng)或多項(xiàng)特定工作而被開(kāi)發(fā)運(yùn)行于操作系統(tǒng)之上的計(jì)算機(jī)程序,它運(yùn)行在用戶模式,可以和用戶進(jìn)行交互,具有可視的用戶界面。
現(xiàn)有技術(shù)中,基于服務(wù)器和客戶端的應(yīng)用程序之間的數(shù)據(jù)處理方式,一般是客戶端根據(jù)服務(wù)器固定的配置方式對(duì)接收的數(shù)據(jù)執(zhí)行相應(yīng)的操作。這種處理方式有如下缺點(diǎn):
1、客戶端一旦出現(xiàn)無(wú)法實(shí)現(xiàn)該操作或執(zhí)行該操作出現(xiàn)異常時(shí),客戶端將不做任何處理或者報(bào)錯(cuò)體現(xiàn),這種用戶體驗(yàn)方式非常差;
2、在服務(wù)器端配置一致的情況下,如果客戶端的版本碎片化嚴(yán)重,很可能導(dǎo)致部分客戶端無(wú)法正常處理服務(wù)器端的配置,兼容性差,可擴(kuò)展性不好;
3、服務(wù)器端對(duì)應(yīng)用程序的處理配置無(wú)法全面,當(dāng)應(yīng)用程序因?yàn)楦露鴮?dǎo)致數(shù)據(jù)處理方式有變更時(shí),有時(shí)只能通過(guò)升級(jí)客戶端來(lái)解決該問(wèn)題,這樣非常不利于軟件的可持續(xù)開(kāi)發(fā)。
技術(shù)實(shí)現(xiàn)要素:
為解決相關(guān)技術(shù)問(wèn)題,本發(fā)明提供一種用于客戶端的數(shù)據(jù)處理方法和裝置,客戶端按照設(shè)定協(xié)議處理協(xié)議數(shù)據(jù),實(shí)現(xiàn)客戶端對(duì)協(xié)議數(shù)據(jù)的智能處理。
為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例采用如下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供了一種用于客戶端的數(shù)據(jù)處理方法,包括:
從服務(wù)器端獲取協(xié)議數(shù)據(jù),所述協(xié)議數(shù)據(jù)為所述服務(wù)器將傳輸數(shù)據(jù)封裝在設(shè)定協(xié)議中形成的數(shù)據(jù);
解析所述協(xié)議數(shù)據(jù);
根據(jù)解析結(jié)果,識(shí)別所述設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分;
根據(jù)所述協(xié)議頭、協(xié)議體和協(xié)議異常處理部分處理所述協(xié)議數(shù)據(jù)。
第二方面,本發(fā)明實(shí)施例提還對(duì)應(yīng)地供了一種用于客戶端的數(shù)據(jù)處理裝置,包括:
協(xié)議數(shù)據(jù)獲取模塊,用于從服務(wù)器端獲取協(xié)議數(shù)據(jù),所述協(xié)議數(shù)據(jù)為所述服務(wù)器將傳輸數(shù)據(jù)封裝在設(shè)定協(xié)議中形成的數(shù)據(jù);
協(xié)議數(shù)據(jù)解析模塊,用于解析所述協(xié)議數(shù)據(jù);
設(shè)定協(xié)議識(shí)別模塊,用于根據(jù)解析結(jié)果,識(shí)別所述設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分;
協(xié)議數(shù)據(jù)處理模塊,用于根據(jù)所述協(xié)議頭、協(xié)議體和協(xié)議異常處理部分處理所述協(xié)議數(shù)據(jù)。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果:
本技術(shù)方案中,服務(wù)器和客戶端之間約定一個(gè)統(tǒng)一的設(shè)定協(xié)議,在服務(wù)器向客戶端傳輸數(shù)據(jù)時(shí),將要傳輸?shù)臄?shù)據(jù)先封裝在設(shè)定協(xié)議中形成協(xié)議數(shù)據(jù)再傳輸,客戶端獲取該協(xié)議數(shù)據(jù)后,對(duì)協(xié)議數(shù)據(jù)解析,識(shí)別出設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分,根據(jù)協(xié)議頭、協(xié)議體和協(xié)議異常處理部分執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),實(shí)現(xiàn)客戶端執(zhí)行應(yīng)用程序?qū)f(xié)議數(shù)據(jù)的智能處理,避免客戶端在后續(xù)的擴(kuò)展及更新過(guò)程中,出現(xiàn)由于數(shù)據(jù)不兼容或無(wú)法滿足現(xiàn)有需求而導(dǎo)致無(wú)法正常執(zhí)行應(yīng)用程序處理的問(wèn)題,有益于服務(wù)器與客戶端之間軟件開(kāi)發(fā)的可持續(xù)性。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)本發(fā)明實(shí)施例的內(nèi)容和這些附圖獲得其他的附圖。
圖1a是本發(fā)明實(shí)施例一提供的一種用于客戶端的數(shù)據(jù)處理方法的流程示意圖;
圖1b是本發(fā)明實(shí)施例提供的設(shè)定協(xié)議的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例二提供的一種用于客戶端的數(shù)據(jù)處理方法的流程示意圖;
圖3a是本發(fā)明實(shí)施例三提供的一種用于客戶端的數(shù)據(jù)處理裝置的架構(gòu)示意圖;
圖3b是圖3a中協(xié)議數(shù)據(jù)處理模塊340的架構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明解決的技術(shù)問(wèn)題、采用的技術(shù)方案和達(dá)到的技術(shù)效果更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例的技術(shù)方案作進(jìn)一步的詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
請(qǐng)參考圖1a和圖1b,其中,圖1a是本發(fā)明實(shí)施例一提供的一種用于客戶端的數(shù)據(jù)處理方法的流程示意圖;圖1b是本發(fā)明實(shí)施例提供的設(shè)定協(xié)議的結(jié)構(gòu)示意圖。本實(shí)施例的方法適用于客戶端處理從服務(wù)器端獲取的數(shù)據(jù)的場(chǎng)景,可以由客戶端來(lái)執(zhí)行。
如圖1a所示,本實(shí)施提供的一種用于客戶端的數(shù)據(jù)處理方法,可以包括如下步驟:
s110:從服務(wù)器端獲取協(xié)議數(shù)據(jù),協(xié)議數(shù)據(jù)為服務(wù)器將傳輸數(shù)據(jù)封裝在設(shè)定協(xié)議中形成的數(shù)據(jù)。
示例性的,客戶端是指與服務(wù)器相對(duì)應(yīng),為客戶提供本地服務(wù)的程序,客戶端與服務(wù)器端之間保持通信連接。本實(shí)施例中,服務(wù)器和客戶端針對(duì)特定的應(yīng)用程序預(yù)先約定好設(shè)定協(xié)議,服務(wù)器根據(jù)設(shè)定協(xié)議制定客戶端應(yīng)用程序,在向客戶端傳輸業(yè)務(wù)數(shù)據(jù)時(shí),先將要傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)封裝在上述設(shè)定協(xié)議中,形成協(xié)議數(shù)據(jù),客戶端從服務(wù)器端獲取該協(xié)議數(shù)據(jù)。
如圖1b所示,客戶端和服務(wù)器之間約定的設(shè)定協(xié)議主要包括協(xié)議頭、協(xié)議體和協(xié)議異常處理部分。其中,協(xié)議頭主要標(biāo)識(shí)上述設(shè)定協(xié)議的版本信息,以及適用該設(shè)定協(xié)議的客戶端信息;協(xié)議體可以包括正常處理邏輯和異常處理邏輯兩部分,客戶端主要根據(jù)協(xié)議體的內(nèi)容執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),其中,正常處理邏輯是指客戶端能夠按照其包括的內(nèi)容能正常執(zhí)行應(yīng)用程序處理的協(xié)議內(nèi)容,異常處理邏輯是指客戶端由于不能按照正常處理邏輯執(zhí)行應(yīng)用程序處理時(shí),需要按照不同于正常處理邏輯且適合客戶端當(dāng)前情況去執(zhí)行應(yīng)用程序處理的協(xié)議內(nèi)容;協(xié)議異常處理部分是指根據(jù)上述協(xié)議頭判斷出設(shè)定協(xié)議不適用于客戶端時(shí),客戶端需要執(zhí)行的協(xié)議內(nèi)容,此外,當(dāng)適用該設(shè)定協(xié)議的客戶端無(wú)法根據(jù)協(xié)議體的內(nèi)容處理執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)時(shí),客戶端也根據(jù)該協(xié)議異常處理部分的內(nèi)容執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)。
s120:解析協(xié)議數(shù)據(jù)。
示例性的,解析協(xié)議數(shù)據(jù)也即對(duì)協(xié)議數(shù)據(jù)進(jìn)行解封裝,解封裝是s110中數(shù)據(jù)封裝的逆過(guò)程,客戶端拆解獲取到的協(xié)議數(shù)據(jù),得到協(xié)議數(shù)據(jù)的設(shè)定協(xié)議部分和被封裝的業(yè)務(wù)數(shù)據(jù)部分。舉例來(lái)說(shuō),解封裝時(shí),可以將協(xié)議數(shù)據(jù)解析到協(xié)議頭容器、協(xié)議體容器和協(xié)議異常容器三個(gè)不同的容器中。
s130:根據(jù)解析結(jié)果,識(shí)別設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分。
示例性的,根據(jù)上述解析協(xié)議數(shù)據(jù)時(shí)三個(gè)不同容器中獲得的內(nèi)容,識(shí)別設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分。優(yōu)選的,如圖1b所示,協(xié)議體又可以包括正常處理邏輯和異常處理邏輯,其中,客戶端根據(jù)正常處理邏輯執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),根據(jù)異常處理邏輯執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),當(dāng)根據(jù)異常處理邏輯執(zhí)行應(yīng)用程序無(wú)法處理協(xié)議數(shù)據(jù)時(shí),進(jìn)一步根據(jù)上述協(xié)議異常處理部分執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)。
優(yōu)選的,協(xié)議體和協(xié)議異常處理部分為設(shè)定協(xié)議的相互獨(dú)立的內(nèi)容,這樣做的好處在于,當(dāng)客戶端根據(jù)協(xié)議體的內(nèi)容可以應(yīng)用程序處理時(shí),無(wú)需解讀異常處理部分的內(nèi)容,減少處理時(shí)間和占用資源。在其他實(shí)施例中,也可以將協(xié)議體和協(xié)議異常處理部分合在一起,即協(xié)議體也可以包括協(xié)議異常處理部分,在執(zhí)行協(xié)議體時(shí)將協(xié)議異常處理部分的內(nèi)容一并解讀。
s140:根據(jù)協(xié)議頭、協(xié)議體和協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
示例性的,客戶端根據(jù)協(xié)議頭中的標(biāo)識(shí)信息,判斷該設(shè)定協(xié)議是否使用與當(dāng)前客戶端,客戶端選擇根據(jù)解讀協(xié)議體的內(nèi)容處理協(xié)議數(shù)據(jù),或根據(jù)解讀協(xié)議異常處理部分的內(nèi)容處理協(xié)議數(shù)據(jù)。
綜上,在本技術(shù)方案中,服務(wù)器和客戶端之間約定一個(gè)統(tǒng)一的設(shè)定協(xié)議,在服務(wù)器向客戶端傳輸數(shù)據(jù)時(shí),將要傳輸?shù)臄?shù)據(jù)先封裝在設(shè)定協(xié)議中形成協(xié)議數(shù)據(jù)再傳輸,客戶端獲取該協(xié)議數(shù)據(jù)后,對(duì)協(xié)議數(shù)據(jù)解析,識(shí)別出設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分,根據(jù)協(xié)議頭、協(xié)議體和協(xié)議異常處理部分執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),實(shí)現(xiàn)客戶端應(yīng)用程序?qū)f(xié)議數(shù)據(jù)的智能處理,避免客戶端在后續(xù)的擴(kuò)展及更新過(guò)程中出現(xiàn)由于數(shù)據(jù)不兼容或無(wú)法滿足現(xiàn)有需求而導(dǎo)致無(wú)法正常執(zhí)行應(yīng)用程序處理的問(wèn)題,有益于服務(wù)器與客戶端之間軟件開(kāi)發(fā)的可持續(xù)性。
實(shí)施例二
請(qǐng)參考圖2,其是本發(fā)明實(shí)施例二提供的一種用于客戶端的數(shù)據(jù)處理方法的流程示意圖。本實(shí)施例與實(shí)施例一的主要區(qū)別在于,進(jìn)一步提供了客戶端根據(jù)設(shè)定協(xié)議執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)的可選實(shí)施方式。
本實(shí)施例提供的一種用于客戶端的數(shù)據(jù)處理方法,可以包括如下步驟:
s210:從服務(wù)器端獲取協(xié)議數(shù)據(jù),協(xié)議數(shù)據(jù)為服務(wù)器將傳輸數(shù)據(jù)封裝在設(shè)定協(xié)議中形成的數(shù)據(jù)。
s220:解析協(xié)議數(shù)據(jù)。
s230:根據(jù)解析結(jié)果,識(shí)別設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分。
s240:根據(jù)協(xié)議頭判斷設(shè)定協(xié)議是否適用于客戶端。
示例性的,協(xié)議頭中包括設(shè)定協(xié)議的版本信息,以及適用該設(shè)定協(xié)議的客戶端信息,當(dāng)前客戶端根據(jù)協(xié)議頭的內(nèi)容,判斷設(shè)定協(xié)議是否適用于當(dāng)前客戶端以及設(shè)定協(xié)議的版本是否適用于當(dāng)前客戶端。如果判斷設(shè)定協(xié)議適用于當(dāng)前客戶端,則執(zhí)行下述s241,否則執(zhí)行下述s242。
s241:根據(jù)協(xié)議體處理協(xié)議數(shù)據(jù)。
s242:根據(jù)協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
優(yōu)選的,在s241中,當(dāng)客戶端在根據(jù)協(xié)議體的內(nèi)容執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)時(shí),先根據(jù)協(xié)議體中的正常處理邏輯執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),如果處理失敗,則再根據(jù)協(xié)議體中的異常處理邏輯執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)。
進(jìn)一步的,當(dāng)客戶端根據(jù)協(xié)議體中的異常處理邏輯執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù)失敗時(shí),則跳轉(zhuǎn)執(zhí)行上述s242,根據(jù)協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
綜上,在本技術(shù)方案中,服務(wù)器和客戶端之間約定一個(gè)統(tǒng)一的設(shè)定協(xié)議,在服務(wù)器向客戶端傳輸數(shù)據(jù)時(shí),將要傳輸?shù)臄?shù)據(jù)先封裝在設(shè)定協(xié)議中形成協(xié)議數(shù)據(jù)再傳輸,客戶端獲取該協(xié)議數(shù)據(jù)后,對(duì)協(xié)議數(shù)據(jù)解析,識(shí)別出設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分,根據(jù)協(xié)議頭判斷設(shè)定協(xié)議是否適用于客戶端,如果是,則根據(jù)協(xié)議體執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),如果否,則根據(jù)協(xié)議異常處理部分執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),實(shí)現(xiàn)客戶端應(yīng)用程序?qū)f(xié)議數(shù)據(jù)的智能處理,避免客戶端在后續(xù)的擴(kuò)展及更新過(guò)程中出現(xiàn)由于數(shù)據(jù)不兼容或無(wú)法滿足現(xiàn)有需求而導(dǎo)致無(wú)法正常執(zhí)行應(yīng)用程序處理的問(wèn)題,有益于服務(wù)器與客戶端之間軟件開(kāi)發(fā)的可持續(xù)性。
以下為本發(fā)明實(shí)施例提供的一種用于客戶端的數(shù)據(jù)處理裝置的實(shí)施例,一種用于客戶端的數(shù)據(jù)處理裝置和一種用于客戶端的數(shù)據(jù)處理方法屬于同一個(gè)發(fā)明構(gòu)思,在裝置的實(shí)施例中未詳盡描述的細(xì)節(jié)內(nèi)容,請(qǐng)參考上述方法的實(shí)施例。
實(shí)施例三
請(qǐng)參考圖3a和圖3b,其中,圖3a是本發(fā)明實(shí)施例三提供的一種用于客戶端的數(shù)據(jù)處理裝置的架構(gòu)示意圖;圖3b是圖3a中協(xié)議數(shù)據(jù)處理模塊340的架構(gòu)示意圖。
本實(shí)施例提供的一種用于客戶端的數(shù)據(jù)處理裝置300,可以包括如下內(nèi)容:
協(xié)議數(shù)據(jù)獲取模塊310,用于從服務(wù)器端獲取協(xié)議數(shù)據(jù),協(xié)議數(shù)據(jù)為服務(wù)器將傳輸數(shù)據(jù)封裝在設(shè)定協(xié)議中形成的數(shù)據(jù)。
協(xié)議數(shù)據(jù)解析模塊320,用于解析協(xié)議數(shù)據(jù)。
設(shè)定協(xié)議識(shí)別模塊330,用于根據(jù)解析結(jié)果,識(shí)別設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分。
協(xié)議數(shù)據(jù)處理模塊340,用于根據(jù)協(xié)議頭、協(xié)議體和協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
優(yōu)選的,上述協(xié)議體包括正常處理邏輯和異常處理邏輯。
優(yōu)選的,如圖3b所示,協(xié)議數(shù)據(jù)處理模塊340可以包括:
第一處理單元341,用于如果根據(jù)協(xié)議頭確定設(shè)定協(xié)議適用于客戶端,則根據(jù)協(xié)議體處理協(xié)議數(shù)據(jù)。
第二處理單元342,用于如果根據(jù)協(xié)議頭確定設(shè)定協(xié)議不適用于客戶端,則根據(jù)協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
進(jìn)一步的,上述根據(jù)協(xié)議體處理協(xié)議數(shù)據(jù)可以包括:
根據(jù)正常處理邏輯處理協(xié)議數(shù)據(jù),如果處理失敗,則根據(jù)異常處理邏輯處理協(xié)議數(shù)據(jù)。
更進(jìn)一步的,上述根據(jù)異常處理邏輯處理協(xié)議數(shù)據(jù)之后,還可以包括:
如果根據(jù)異常處理邏輯處理協(xié)議數(shù)據(jù)失敗,則根據(jù)協(xié)議異常處理部分處理協(xié)議數(shù)據(jù)。
綜上,在本技術(shù)方案中,服務(wù)器和客戶端之間約定一個(gè)統(tǒng)一的設(shè)定協(xié)議,在服務(wù)器向客戶端傳輸數(shù)據(jù)時(shí),將要傳輸?shù)臄?shù)據(jù)先封裝在設(shè)定協(xié)議中形成協(xié)議數(shù)據(jù)再傳輸,客戶端獲取該協(xié)議數(shù)據(jù)后,對(duì)協(xié)議數(shù)據(jù)解析,識(shí)別出設(shè)定協(xié)議的協(xié)議頭、協(xié)議體和協(xié)議異常處理部分,根據(jù)協(xié)議頭、協(xié)議體和協(xié)議異常處理部分執(zhí)行應(yīng)用程序處理協(xié)議數(shù)據(jù),實(shí)現(xiàn)客戶端應(yīng)用程序?qū)f(xié)議數(shù)據(jù)的智能處理,避免客戶端在后續(xù)的擴(kuò)展及更新過(guò)程中出現(xiàn)由于數(shù)據(jù)不兼容或無(wú)法滿足現(xiàn)有需求而導(dǎo)致無(wú)法正常執(zhí)行應(yīng)用程序處理的問(wèn)題,有益于服務(wù)器與客戶端之間軟件開(kāi)發(fā)的可持續(xù)性。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來(lái)說(shuō)能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過(guò)以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說(shuō)明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。