本發(fā)明涉及計算機軟件版本兼容技術(shù),尤其涉及一種低版本軟件兼容高版本文件的方法以及客戶端和服務(wù)器。
背景技術(shù):
隨著計算機軟件的發(fā)展,許多的軟件都不可避免的進行不斷的升級。有些是一些對文件結(jié)構(gòu)影響不大的變更,有的則可能導(dǎo)致軟件發(fā)生巨大變化。由于個人喜好、網(wǎng)絡(luò)條件等原因,有可能造成不同設(shè)備之間的軟件版本出現(xiàn)差異。這樣就會造成了不同的版本存在于用戶端,如果用戶要在多個設(shè)備上使用軟件產(chǎn)品,那么就會存在不同的設(shè)備上軟件版本不一致的情況。
這種不同版本之間的差異,產(chǎn)生出文件兼容性的問題。例如,低版本軟件保存出的文件為低版本文件,高版本軟件保存出的文件為高版本文件,低版本軟件很難完全兼容高版本的文件。因為低版本軟件的開發(fā)階段,很難預(yù)知文件格式將如何變化,因此低版本軟件難以處理高版本文件。
為了解決這種問題,一般的方案是低版本軟件選取高版本文件中可以識別的部分(即高版本文件格式相對低版本文件格式保持不變的部分),放棄解析高版本文件的不可識別部分(即高版本文件格式相對低版本文件格式變動的部分)。但是,在低版本軟件解析高版本文件時,可能會丟失較多信息。
因此,存在需求來提供一種方案,使得在不同版本間的軟件可以兼容,尤其是低版本上能夠?qū)崿F(xiàn)對高版本的兼容。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種低版本軟件兼容高版本文件的方法,用于解決不同版本間軟件兼容的問題,包括如下步驟:
步驟1:服務(wù)器接收低版本軟件客戶端發(fā)來的高版本文件,識別該高版本文件所對應(yīng)的軟件版本,并調(diào)用相應(yīng)版本的軟件;
步驟2:服務(wù)器利用相應(yīng)版本軟件中的解析器解析所接收的高版本文件,生成新的低版本文件;
步驟3:服務(wù)器將生成的低版本文件發(fā)送回所述低版本軟件客戶端。
進一步,所述服務(wù)器上存儲軟件的所有已發(fā)布版本。
進一步,每個版本的軟件都包含有一個本版本的文件解析器,和所有低版本的文件解析器。
進一步,步驟1中,服務(wù)器同時從客戶端接收高版本文件的版本信息。
本發(fā)明實施例還提供一種用于低版本軟件兼容高版本文件的客戶端,包括判斷和提示模塊、上傳模塊和接收模塊,其中,
判斷和提示模塊用于判斷客戶端的軟件版本是否低于當(dāng)前文件的軟件版本,客戶端的軟件版本低于當(dāng)前文件的軟件版本時,提示進行高版本文件的上傳操作;
上傳模塊用于將高版本文件上傳到服務(wù)器;
接收模塊用于從服務(wù)器接收經(jīng)轉(zhuǎn)換后與該客戶端低版本軟件匹配的文件。
進一步,接收模塊用于從服務(wù)器接收按照所述方法轉(zhuǎn)換后與該客戶端低版本軟件匹配的文件。
進一步,所述客戶端還包括:
版本告知模塊,將客戶端的軟件版本告知服務(wù)器。
本發(fā)明實施例還提供一種用于低版本軟件兼容高版本文件的服務(wù)器,包括:
存儲模塊,其存儲軟件的所有已發(fā)布版本,其中每個版本的軟件都包含有一個本版本的文件解析器,和所有低版本的文件解析器;
接收模塊,接收客戶端發(fā)來的高版本文件;
識別模塊,識別出該文件對應(yīng)的軟件版本;
調(diào)用模塊,調(diào)用與所述高版本文件對應(yīng)的版本軟件,利用該版本軟件中的解析器解析所接收的高版本文件,生成新的低版本文件,所生成的低版本文件能夠由對應(yīng)的低版本軟件打開;
發(fā)送模塊,將生成的低版本文件發(fā)送回所述低版本軟件客戶端。
進一步,所述服務(wù)器還包括:
客戶端軟件版本確定模塊,其通過客戶端發(fā)送過來的軟件版本信息,確定客戶端的軟件版本。
本發(fā)明實施例還提供一種低版本軟件兼容高版本文件的系統(tǒng),包括上述客戶端以及上述服務(wù)器。
本發(fā)明實施例的技術(shù)方案是通過客戶端和服務(wù)器設(shè)置的形式,利用服務(wù)器上的各版本軟件解析器,實現(xiàn)低版本客戶端上打開高版本文件。由此,通過這樣的方案可以更完整地使低版本軟件兼容高版本文件。
附圖說明
圖1是本發(fā)明實施例的低版本軟件兼容高版本文件的方法流程圖;
圖2是本發(fā)明實施例的方法中服務(wù)器所存儲的各版本軟件的示意圖;
圖3是本發(fā)明實施例的低版本軟件兼容高版本文件的系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。但本領(lǐng)域技術(shù)人員知曉,本發(fā)明并不局限于附圖和以下實施例。
參照附圖1、2,服務(wù)器上存儲軟件的所有已發(fā)布版本。例如,在圖2中,服務(wù)器包括三個已經(jīng)發(fā)布的版本,V1.0、V2.0和V3.0。其中,V1.0版本為舊版本,V2.0版本為次新版本,V3.0版本為最新版本。每個版本的軟件都包含有一個本版本的文件解析器,和所有低版本的文件解析器。文件解析器用來打開存儲的文件,解析里面存儲的內(nèi)容,并根據(jù)解析的內(nèi)容還原存儲的元素,最終呈現(xiàn)給用戶。在圖2中,V1.0版本只包括V1.0解析器,V2.0版本中包含V1.0解析器和V2.0解析器,而V3.0版本中包含V1.0解析器和V2.0解析器和V3.0解析器。
接著,參照圖1,將描述本發(fā)明實施例中實現(xiàn)低版本軟件兼容高版本文件方法的具體流程。
步驟1:當(dāng)一個安裝有低版本軟件的客戶端需要解析高版本軟件生成的高版本文件時,客戶端會將高版本文件上傳至服務(wù)器,并將客戶端的軟件版本告知服務(wù)器。
例如,在具體實施例中,V1.0版本軟件的客戶端需要解析V2.0版本的文件時,通常情況下,此時由于V1.0版本較低,客戶端無法打開或無法部分顯示該高版本的文件內(nèi)容。此時,客戶端將該文件上傳到服務(wù)器中,同時,向服務(wù)器告知目前客戶端的版本為V1.0。
優(yōu)選的,客戶端上可以具有提示模塊,當(dāng)識別出當(dāng)前客戶端版本無法打開文件時,提示客戶端進行相應(yīng)的上傳操作。
步驟2:服務(wù)器接收低版本軟件客戶端發(fā)來的高版本文件,識別該高版本文件所對應(yīng)的軟件版本,并調(diào)用相應(yīng)版本的軟件。
步驟3:服務(wù)器利用相應(yīng)版本軟件中的解析器解析所接收的高版本文件,生成新的低版本文件,所生成的低版本文件能夠由對應(yīng)的低版本軟件打開;
具體的,服務(wù)器接收來自客戶端的V1.0版本上傳文件。
當(dāng)服務(wù)器收到V1.0的客戶端發(fā)來的V2.0的文件后,識別出該文件對應(yīng)于V2.0版本軟件?;蛘撸?wù)器通過客戶端發(fā)送過來的版本信息,確定客戶端的版本為V1.0。
接著,服務(wù)器調(diào)用存儲在服務(wù)器的V2.0版本軟件。如上所述的,服務(wù)器中的V2.0版本軟件中包含V1.0解析器和V2.0解析器。因此,V2.0版本的軟件通過其中的V2.0解析器解析發(fā)來的文件,并將解析得到的信息通過V2.0軟件的V1.0解析器保存為V1.0的文件。這樣,服務(wù)器就將生成與V1.0版本客戶端相對應(yīng)的V1.0文件。
步驟4:服務(wù)器將生成的低版本文件發(fā)送回所述低版本軟件的客戶端,客戶端可以完整的處理該文件。
具體的,服務(wù)器將V1.0的文件發(fā)送給客戶端,V1.0客戶端可以對該文件進行打開、編輯等操作。
在本發(fā)明的一個優(yōu)選實施例中,當(dāng)安裝有V1.0版本軟件的客戶端需要解析V3.0版本的文件時,由于V1.0版本較低,所以客戶端無法打開或無法部分顯示該高版本的文件內(nèi)容,客戶端需將該文件上傳到服務(wù)器中。
服務(wù)器接收到V1.0版本軟件客戶端發(fā)來的V3.0高版本文件,識別出該高版本文件所對應(yīng)的軟件版本V3.0,并調(diào)用V3.0版本的軟件。
服務(wù)器利用V3.0版本軟件中的解析器V1.0、解析器V2.0和解析器V3.0解析所接收的V3.0版本文件,生成新的V1.0版本文件,所生成的V1.0版本文件能夠由V1.0版本軟件打開。
服務(wù)器將生成的V1.0版本文件發(fā)送回所述V1.0版本軟件的客戶端,該客戶端可以利用V1.0版本軟件打開所接收到的文件,不會發(fā)生文件內(nèi)容的損失。
參照圖3,本發(fā)明實施例還提供了一種用于低版本軟件兼容高版本文件的客戶端,包括判斷和提示模塊、上傳模塊和接收模塊,其中:
判斷和提示模塊用于判斷客戶端的軟件版本是否低于當(dāng)前文件的軟件版本,客戶端的軟件版本低于當(dāng)前文件的軟件版本時,提示進行高版本文件的上傳操作;
上傳模塊用于將高版本文件上傳到服務(wù)器;
接收模塊用于從服務(wù)器接收經(jīng)轉(zhuǎn)換后與該客戶端低版本軟件匹配的文件。
進一步的,客戶端還包括版本告知模塊,將客戶端的軟件版本告知服務(wù)器。
通過該客戶端,用戶可以將無法解析的高版本文件及時上傳,由服務(wù)器對高版本文件進行解析,生成與客戶端上的低版本軟件匹配的文件,返回給客戶端,從而解決了高版本文件在低版本軟件中無法全部顯示、操作的問題。
本發(fā)明實施例還提供了一種用于低版本軟件兼容高版本文件的服務(wù)器,包括:
存儲模塊,其存儲軟件的所有已發(fā)布版本,其中每個版本的軟件都包含有一個本版本的文件解析器,和所有低版本的文件解析器;
接收模塊,接收客戶端發(fā)來的高版本文件;
識別模塊,識別出該文件對應(yīng)的軟件版本;
客戶端軟件版本確定模塊,其通過客戶端發(fā)送過來的軟件版本信息,確定客戶端的版本。
調(diào)用模塊,調(diào)用與所述高版本文件對應(yīng)的版本軟件,利用該版本軟件中的解析器解析所接收的高版本文件,生成新的低版本文件,所生成的低版本文件能夠由對應(yīng)的低版本軟件打開;
發(fā)送模塊,將生成的低版本文件發(fā)送回所述低版本軟件客戶端。
此外,上述客戶端和服務(wù)器共同構(gòu)成一個系統(tǒng),其可以有效實現(xiàn)低版本軟件對高版本文件的兼容。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認(rèn)為是用于實現(xiàn)邏輯功能的可執(zhí)行指令的定序列表,可以具體實現(xiàn)在任何計算機可讀介質(zhì)中,以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(如基于計算機的系統(tǒng)、包括處理器的系統(tǒng)或其他可以從指令執(zhí)行系統(tǒng)、裝置或設(shè)備取指令并執(zhí)行指令的系統(tǒng))使用,或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用。就本說明書而言,“計算機可讀介質(zhì)”可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備或結(jié)合這些指令執(zhí)行系統(tǒng)、裝置或設(shè)備而使用的裝置。
計算機可讀介質(zhì)的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質(zhì)甚至可以是可在其上打印所述程序的紙或其他合適的介質(zhì),因為可以例如通過對紙或其他介質(zhì)進行光學(xué)掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
以上,對本發(fā)明的實施方式進行了說明。但是,本發(fā)明不限定于上述實施方式。凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。