本發(fā)明涉及軟件國際化領(lǐng)域,具體地說是一種國際化同名資源文件部署更新的實現(xiàn)方法。
背景技術(shù):
在國際化的背景下,為適應(yīng)國際化業(yè)務(wù),企業(yè)應(yīng)用軟件也需進行國際化,為不同地區(qū)分支機構(gòu)或用戶提供多語種的用戶界面。很多開發(fā)語言都提供對國際化的支持,為軟件國際化開發(fā)提供了基礎(chǔ),但是,不同開發(fā)語言采用的國際化機制也不相同。比如Java的資源文件為.Properties格式,而.NET Framework采用.Resources。而這些資源文件在不同語言之間進行切換過程中所需要的資源信息又往往都是文件名相同的,這就給更新過程中的文件下載和文件的部署造成不小的麻煩。
如何能夠?qū)崿F(xiàn)不同語言的國際化資源配置下載項和下載單元信息,對國際化資源進行統(tǒng)一的描述是目前現(xiàn)有技術(shù)中急需解決的技術(shù)問題。
專利號為CN 101719073 B的專利文獻公開了一種基于智能客戶端的按需下載實現(xiàn)方法,旨在解決低速網(wǎng)絡(luò)下的智能客戶端程序更新問題,并且通過可配置的方式以功能為單位進行程序的更新。提供了可配置和可擴展的下載定義配置,應(yīng)用程序可以根據(jù)實際情況靈活配置。客戶端的下載更新過程完全自動化,無需人工干預(yù)。部署環(huán)節(jié)中加強了對異常的處理,發(fā)生異常之后,程序在下載啟動時會自動更新。下載項可以在使用時下載,變相的降低了網(wǎng)絡(luò)的流量,降低了新補丁對客戶端的影響范圍。但是該技術(shù)方案不能實現(xiàn)不同語言的國際化資源配置下載項和下載單元信息,對國際化資源進行統(tǒng)一的描述。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種國際化同名資源文件部署更新的實現(xiàn)方法,來解決如何能夠?qū)崿F(xiàn)不同語言的國際化資源配置下載項和下載單元信息,對國際化資源進行統(tǒng)一的描述的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種國際化同名資源文件部署更新的實現(xiàn)方法,該實現(xiàn)方法包括如下步驟:
(1)、資源類型定義:設(shè)計時,為需要部署的國際化同名資源文件定義統(tǒng)一的描述規(guī)則,不同語言的所有國際化資源均按照該描述規(guī)則進行預(yù)置;
(2)、資源文件搜索:運行時,根據(jù)描述規(guī)則描述文件類型,搜索查詢文件,并根據(jù)描述規(guī)則描述信息生成不同語言文件的部署包;
(3)、客戶端獲取更新文件列表:客戶端在更新時能夠獲取更新文件的描述信息,并根據(jù)描述信息判斷出文件的路徑和語言,計算出文件部署位置;
(4)、本地文件部署:將需要更新的文件放置到客戶端路徑下所對應(yīng)語言文件夾下,完成同名文件的部署更新。
作為優(yōu)選,所述步驟(1)中描述規(guī)則是通過配置的方式對資源和文件的基本屬性信息以及文件之間的層次引用關(guān)系進行描述;
其中,資源文件的基本屬性信息包括下載項的唯一標識、資源文件名、文件在客戶端相對路徑、文件在服務(wù)端相對路徑、部署包文件名(服務(wù)端壓縮文件包名稱,改名成為生成壓縮文件包的文件名稱;對于國際化資源文件,在生成過程中自動添加語言標識后綴)、部署方式和文件類型;
文件之間的層次引用關(guān)系包括下載單元的唯一標識(觸發(fā)時機)、下載單元引用的下載項列表和下載單元引用的其他下載單元列表;其中,下載項描述的是文件的基本屬性內(nèi)容,下載單元描述的是下載文件之間的引用關(guān)系。
更優(yōu)地,所述文件類型包括資源衛(wèi)星程序集、資源文件和非國際化普通文件(包含程序文件,配置文件等國際化不相關(guān)文件)。
更優(yōu)地,所述步驟(2)中資源文件搜索是根據(jù)文件類型的加載規(guī)則進行搜索,對于不同類型的文件的搜索具體如下:
對于同名的資源衛(wèi)星程序集只需要配置程序文件即可,因為對于單獨的資源衛(wèi)星程序集而言,它并沒有單獨存在的價值,所以這里需要通過程序文件去關(guān)聯(lián)資源衛(wèi)星程序集;是通過下載項配置中的服務(wù)端路徑獲取文件所在路徑并根據(jù)路徑父文件夾下的語言文件夾中去搜索程序文件相關(guān)聯(lián)的資源衛(wèi)星程序集,再根據(jù)衛(wèi)星程序集所屬的語言和名稱自動構(gòu)造衛(wèi)星程序集的下載項,生成相應(yīng)的部署文件包;
對于同名的資源文件僅僅只需要配置其中一個資源文件,在進行資源文件的搜索過程中,通過下載項配置中的服務(wù)端路徑以及文件名計算出文件所在的服務(wù)端路徑,獲取文件所在的位置;再搜索資源所在的文件夾下的語言標識為名稱的文件夾,搜索的文件名為下載項配置文件中的文件名稱,并根據(jù)下載項配置信息中的部署包名稱生成服務(wù)端的部署包;
對于非國際化普通文件,由于不存在同名的問題,只需要獲取文件所在路徑,生成部署文件包即可。
作為優(yōu)選,所述步驟(3)中當客戶端觸發(fā)更新事件時,會根據(jù)下載單元的引用關(guān)系,計算出該次更新事件相關(guān)聯(lián)的下載項信息,并對獲取到的下載項信息,對客戶端和服務(wù)端的相關(guān)文件進行比較,客戶端和服務(wù)端存在差異的內(nèi)容,為需要更新的內(nèi)容;根據(jù)需要更新的文件下載項信息,客戶端從服務(wù)端下載獲取文件。
更優(yōu)地,所述服務(wù)端部署的步驟如下:
(Ⅰ)、啟動服務(wù)端部署工具;
(Ⅱ)、判斷資源文件是否是國際化資源:
①、若是,則執(zhí)行步驟(Ⅵ)和步驟(Ⅶ);
②、若不是,則執(zhí)行步驟(Ⅲ);
(Ⅲ)、判斷部署的資源文件是否具有國際化資源:
①、若是,則執(zhí)行步驟(Ⅳ);
②、若不是,則正常部署;
(Ⅳ)、判斷資源文件對應(yīng)的國際化語言是否存在:
①、若是,則執(zhí)行步驟(Ⅴ);
②、若不是,則拋錯;
(Ⅴ)、根據(jù)不同的語言生成相應(yīng)的版本信息和壓縮包文件,下一步執(zhí)行步驟(Ⅹ);
(Ⅵ)、根據(jù)文件夾路徑識別出該資源語言編號,下一步執(zhí)行步驟(Ⅶ);
(Ⅶ)、根據(jù)語言編號生成相應(yīng)的版本信息,下一步執(zhí)行步驟(Ⅹ);
(Ⅷ)、根據(jù)文件夾名稱找出對應(yīng)的程序文件,下一步執(zhí)行步驟(Ⅸ);
(Ⅸ)、根據(jù)程序文件的引用關(guān)系修改下載單元的版本信息,下一步執(zhí)行步驟(Ⅹ);
(Ⅹ)、服務(wù)端部署結(jié)束。
更優(yōu)地,所述客戶端更新的步驟如下:
(?。⒖蛻舳碎_始更新;
(ⅱ)、將下載單元信息上傳至服務(wù)端;
(ⅲ)、判斷下載單元版本是否改變:
①、若是,則執(zhí)行步驟(ⅳ);
②、若不是,則直接返回;
(ⅳ)、判斷下載項是否具有國際化資源:
①、若是,則執(zhí)行步驟(ⅴ);
②、若不是,則直接將下載項信息添加并返回;
(ⅴ)、將國際化資源信息添加到列表并返回。
作為優(yōu)選,所述步驟(4)中當客戶端下載完需要更新的文件后,根據(jù)下載項信息中的客戶端位置以及文件類型,將下載的文件直接解壓放置到對應(yīng)目錄下;對于同名的國際化資源文件會將文件放置到客戶端路徑下所對應(yīng)語言文件夾下,最終完成同名文件的部署更新。
本發(fā)明的國際化同名資源文件部署更新的實現(xiàn)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
1、本發(fā)明旨在解決軟件國際化過程中不同語言下對國際化同名資源文件部署更新的問題,該部署更新方式通過配置的方式對資源和文件的基本屬性信息以及文件之間的層次引用關(guān)系進行描述,具有語言無關(guān)性、結(jié)構(gòu)簡單、實現(xiàn)方式統(tǒng)一的特點;
2、本發(fā)明客戶端獲取更新文件列表在配置規(guī)范中,下載單元描述了文件之間的引用關(guān)系以及文件更新的觸發(fā)時機;當某一個下載單元的更新被觸發(fā)時,客戶端會將觸發(fā)的下載單元信息傳遞到服務(wù)端,服務(wù)端會拿著記錄了該下載單元版本信息的參數(shù),跟服務(wù)端記錄最新的版本信息進行比較,如果不同則認為該下載單元所引用的文件中有內(nèi)容被更新,這時服務(wù)端會根據(jù)引用關(guān)系獲取這個下載單元所有的引用文件,然后將引用文件的攜帶有文件版本信息的下載項列表返回到客戶端,然后客戶端根據(jù)該列表與本地版本信息的比較,計算出那些文件需要更新,更新文件的下載項信息,將文件下載到客戶端本地,簡單易實現(xiàn)。
故本發(fā)明具有設(shè)計合理、使用方便、一物多用等特點,因而,具有很好的推廣使用價值。
附圖說明
下面結(jié)合附圖對本發(fā)明進一步說明。
附圖1為服務(wù)端部署的流程框圖;
附圖2為客戶端更新的流程框圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明。
實施例1
本發(fā)明的國際化同名資源文件部署更新的實現(xiàn)方法,該實現(xiàn)方法包括如下步驟:
(1)、資源類型定義:設(shè)計時,為需要部署的國際化同名資源文件定義統(tǒng)一的描述規(guī)則,不同語言的所有國際化資源均按照該描述規(guī)則進行預(yù)置;
(2)、資源文件搜索:在運行時,根據(jù)描述規(guī)則描述文件類型,搜索查詢文件,并根據(jù)描述規(guī)則描述信息生成不同語言文件的部署包;
(3)、客戶端獲取更新文件列表:客戶端在更新時能夠獲取更新文件的描述信息,并根據(jù)描述信息判斷出文件的路徑和語言,計算出文件部署位置;
(4)、本地文件部署:將需要更新的文件放置到客戶端路徑下所對應(yīng)語言文件夾下,完成同名文件的部署更新。
步驟(1)中描述規(guī)則是通過配置的方式對資源和文件的基本屬性信息以及文件之間的層次引用關(guān)系進行描述;
其中,資源文件的基本屬性信息包括下載項的唯一標識、資源文件名、文件在客戶端相對路徑、文件在服務(wù)端相對路徑、部署包文件名(服務(wù)端壓縮文件包名稱,改名成為生成壓縮文件包的文件名稱;對于國際化資源文件,在生成過程中自動添加語言標識后綴)、部署方式和文件類型;
文件之間的層次引用關(guān)系包括下載單元的唯一標識(觸發(fā)時機)、下載單元引用的下載項列表和下載單元引用的其他下載單元列表;其中,下載項描述的是文件的基本屬性內(nèi)容,下載單元描述的是下載文件之間的引用關(guān)系。文件類型包括資源衛(wèi)星程序集、資源文件和非國際化普通文件(包含程序文件,配置文件等國際化不相關(guān)文件)。針對以上不同的文件類型以及文件運行時加載規(guī)則搜索相互關(guān)聯(lián)的文件,并根據(jù)不同文件的下載項信息,生成相應(yīng)的壓縮部署包。
步驟(2)中資源文件搜索是根據(jù)文件類型的加載規(guī)則進行搜索,對于不同類型的文件的搜索具體如下:
對于同名的資源衛(wèi)星程序集只需要配置程序文件即可,因為對于單獨的資源衛(wèi)星程序集而言,它并沒有單獨存在的價值,所以這里需要通過程序文件去關(guān)聯(lián)資源衛(wèi)星程序集;是通過下載項配置中的服務(wù)端路徑獲取文件所在路徑并根據(jù)路徑父文件夾下的語言文件夾中去搜索程序文件相關(guān)聯(lián)的資源衛(wèi)星程序集,再根據(jù)衛(wèi)星程序集所屬的語言和名稱自動構(gòu)造衛(wèi)星程序集的下載項,生成相應(yīng)的部署文件包;
對于同名的資源文件僅僅只需要配置其中一個資源文件,在進行資源文件的搜索過程中,通過下載項配置中的服務(wù)端路徑以及文件名計算出文件所在的服務(wù)端路徑,獲取文件所在的位置;再搜索資源所在的文件夾下的語言標識為名稱的文件夾,搜索的文件名為下載項配置文件中的文件名稱,并根據(jù)下載項配置信息中的部署包名稱生成服務(wù)端的部署包;
對于非國際化普通文件,由于不存在同名的問題,只需要獲取文件所在路徑,生成部署文件包即可。
步驟(3)中當客戶端觸發(fā)更新事件時,會根據(jù)下載單元的引用關(guān)系,計算出該次更新事件相關(guān)聯(lián)的下載項信息,并對獲取到的下載項信息,對客戶端和服務(wù)端的相關(guān)文件進行比較,客戶端和服務(wù)端存在差異的內(nèi)容,為需要更新的內(nèi)容;根據(jù)需要更新的文件下載項信息,客戶端從服務(wù)端下載獲取文件。
如附圖1所示,服務(wù)端部署的步驟如下:
(Ⅰ)、啟動服務(wù)端部署工具;
(Ⅱ)、判斷資源文件是否是國際化資源:
①、若是,則執(zhí)行步驟(Ⅵ)和步驟(Ⅶ);
②、若不是,則執(zhí)行步驟(Ⅲ);
(Ⅲ)、判斷部署的資源文件是否具有國際化資源:
①、若是,則執(zhí)行步驟(Ⅳ);
②、若不是,則正常部署;
(Ⅳ)、判斷資源文件對應(yīng)的國際化語言是否存在:
①、若是,則執(zhí)行步驟(Ⅴ);
②、若不是,則拋錯;
(Ⅴ)、根據(jù)不同的語言生成相應(yīng)的版本信息和壓縮包文件,下一步執(zhí)行步驟(Ⅹ);
(Ⅵ)、根據(jù)文件夾路徑識別出該資源語言編號,下一步執(zhí)行步驟(Ⅶ);
(Ⅶ)、根據(jù)語言編號生成相應(yīng)的版本信息,下一步執(zhí)行步驟(Ⅹ);
(Ⅷ)、根據(jù)文件夾名稱找出對應(yīng)的程序文件,下一步執(zhí)行步驟(Ⅸ);
(Ⅸ)、根據(jù)程序文件的引用關(guān)系修改下載單元的版本信息,下一步執(zhí)行步驟(Ⅹ);
(Ⅹ)、服務(wù)端部署結(jié)束。
如附圖2所示,客戶端更新的步驟如下:
(?。⒖蛻舳碎_始更新;
(ⅱ)、將下載單元信息上傳至服務(wù)端;
(ⅲ)、判斷下載單元版本是否改變:
③、若是,則執(zhí)行步驟(ⅳ);
④、若不是,則直接返回;
(ⅳ)、判斷下載項是否具有國際化資源:
③、若是,則執(zhí)行步驟(ⅴ);
④、若不是,則直接將下載項信息添加并返回;
(ⅴ)、將國際化資源信息添加到列表并返回。
步驟(4)中當客戶端下載完需要更新的文件后,根據(jù)下載項信息中的客戶端位置以及文件類型,將下載的文件直接解壓放置到對應(yīng)目錄下;對于同名的國際化資源文件會將文件放置到客戶端路徑下所對應(yīng)語言文件夾下,最終完成同名文件的部署更新。
實施例2
場景:某基于.net開發(fā)的ERP管理系統(tǒng)支持兩種不同的語言:簡體中文和英文。需要在桌面智能客戶端登錄時,獲取到更新的對應(yīng)語言的資源文件。
步驟一、定義資源的下載項
定義Test.dll示例文件,該文件含有衛(wèi)星程序集
<DownloadFileInfo>
<ID>Test.dll</ID>
<ServerPath>pub</ServerPath>
<ClientPath />
<FileName>Test.dll</FileName>
<DownloadFileName>Test.zip</DownloadFileName>
<ActionModes>
<Modes />
</ActionModes>
<Feature>Satelite</Feature>
</DownloadFileInfo>
步驟二、資源文件的查找搜索
在定義好下載項之后,根據(jù)文件名稱以及文件在服務(wù)端的路徑,可以定位出文件的路徑,然后根據(jù)路徑父目錄查找zh-CHS和EN兩個文件夾查找相應(yīng)路徑下的Test.resources.dll文件并生成文件的版本信息,將文件壓縮然后放置到下載路徑上。
步驟三、客戶端資源文件更新
客戶端根據(jù)觸發(fā)時機獲取了需要更新的文件Test.dll的下載項信息,根據(jù)下載項信息判定文件為帶資源衛(wèi)星程序集的程序文件,并根據(jù)服務(wù)器地址和生成的部署包名稱將程序文件以及程序文件所關(guān)聯(lián)的資源衛(wèi)星程序集從服務(wù)端更新到本地。然后根據(jù)客戶端路徑將文件解壓到對應(yīng)的目錄下面,并更新客戶端記錄Test.dll文件的版本信息。
通過上面具體實施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實現(xiàn)本發(fā)明。但是應(yīng)當理解,本發(fā)明并不限于上述的兩種具體實施方式。在公開的實施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。