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