專利名稱:可執(zhí)行文件版本更新系統(tǒng)及方法
技術領域:
本發(fā)明涉及一種可執(zhí)行文件版本更新系統(tǒng)及方法。
背景技術:
在C/S (客戶端/服務器)模式下,應用系統(tǒng)的結構層次關系體現(xiàn)為兩層,即第一層是安 裝在客戶端的可執(zhí)行文件,第二層是通過網(wǎng)絡結合的服務器。其特點是數(shù)據(jù)的交互性能強大 ,并提供了更為安全的存取模式。
但是,由于c/s模式是應用程序在多個客戶端運行,當系統(tǒng)需要功能擴充、修改等需求
異動時,需要對應用系統(tǒng)的代碼重新編譯,再將編譯好的可執(zhí)行文件逐個復制到客戶端重新 安裝,如此浪費人力工時,亦不能保證系統(tǒng)功能的同步,且若用戶在某一個時間同時復制, 會造成服務器擁擠,甚至導致服務器癱瘓。
發(fā)明內(nèi)容
鑒于以上內(nèi)容,有必要提供一種可執(zhí)行文件版本更新系統(tǒng),其可以在客戶端啟動對應的 可執(zhí)行文件之后自動將服務器上最新版本的可執(zhí)行文件更新到客戶端。
此外,還有必要提供一種可執(zhí)行文件版本更新方法,其可以在客戶端啟動對應的可執(zhí)行 文件之后自動將服務器上最新版本的可執(zhí)行文件更新到客戶端。
一種可執(zhí)行文件版本更新系統(tǒng),包括服務器、客戶端計算機,其特征在于,所述服務器
包括設置模塊,用于當用戶將需要生成可執(zhí)行文件的源代碼存放于服務器時,設置該源代 碼的編譯時間;讀取模塊,用于讀取所述源代碼中的屬性信息及服務器中存放該源代碼對應 的可執(zhí)行文件的屬性信息;判斷模塊,用于判斷讀取的源代碼中的屬性信息與服務器中存放 該源代碼對應的可執(zhí)行文件的屬性信息是否一致;編譯模塊,用于當源代碼中的屬性信息及 可執(zhí)行文件中的屬性信息不一致時,在設置的編譯時間對該源代碼進行編譯,使其成為可執(zhí) 行文件;更新模塊,用于當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯成 功的可執(zhí)行文件一致;修改模塊,用于修改編譯成功后所生成的可執(zhí)行文件的版本號;所述 客戶端計算機包括獲取模塊,用于當啟動客戶端計算機的可執(zhí)行文件時,獲取服務器中對 應的可執(zhí)行文件的版本號;比較模塊,用于比較客戶端計算機上啟動的可執(zhí)行文件的版本號 與服務器上對應的可執(zhí)行文件的版本號是否一致;下載模塊,用于當客戶端計算機上啟動的 可執(zhí)行文件的版本號與服務器上對應的可執(zhí)行文件的版本號不一致時,將服務器上的可執(zhí)行文件下載到客戶端計算機上,并安裝該可執(zhí)行文件。
一種可執(zhí)行文件版本更新方法,其特征在于,該方法包括如下步驟當用戶將需要生成 可執(zhí)行文件的源代碼存放于服務器時,設置該源代碼的編譯時間;讀取所述源代碼中的屬性 信息及服務器中存放該源代碼對應的可執(zhí)行文件的屬性信息;當源代碼中的屬性信息與服務 器中存放該源代碼對應的可執(zhí)行文件的屬性信息不一致時,在設置的時間對源代碼進行編譯 ,使其成為可執(zhí)行文件;當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯成 功的可執(zhí)行文件一致;修改編譯成功后所生成的可執(zhí)行文件的版本號;當啟動客戶端計算機 的可執(zhí)行文件時,讀取服務器中對應的可執(zhí)行文件的版本號;當客戶端計算機上啟動的可執(zhí) 行文件的版本號與服務器上對應的可執(zhí)行文件的版本號不一致時,將服務器上的可執(zhí)行文件 下載到客戶端計算機上,并安裝該可執(zhí)行文件。
相較于現(xiàn)有技術,其可以在客戶端啟動對應的可執(zhí)行文件之后自動將服務器上最新版本 的可執(zhí)行文件更新到客戶端,避免了人為的更新可執(zhí)行文件,提高了效率,節(jié)約了服務器資 源。
圖l是本發(fā)明可執(zhí)行文件版本更新系統(tǒng)的較佳實施例的硬件框架圖。 圖2是本發(fā)明可執(zhí)行文件版本更新系統(tǒng)較佳實施例的功能模塊圖。 圖3是本發(fā)明可執(zhí)行文件版本更新方法較佳實施例的流程圖。
具體實施例方式
如圖1所示,是本發(fā)明一種可執(zhí)行文件版本更新系統(tǒng)較佳實施例的硬件架構圖。該系統(tǒng) 包括客戶端計算機IO、網(wǎng)絡20及服務器30。該服務器30可以是個人計算機、網(wǎng)絡服務器,還 可以是任意其它適用的計算機。
此外,該服務器30通過網(wǎng)絡20與至少一客戶端計算機10相連,該客戶端計算機10用于提 供一個互動式界面給用戶,便于用戶進行操作并在操作過程中將服務器30中最新的可執(zhí)行文 件版本更新到客戶端計算機10中。所述網(wǎng)絡20可以是互聯(lián)網(wǎng)、局域網(wǎng)或者無線通訊網(wǎng)絡。
如圖2所示,是本發(fā)明可執(zhí)行文件版本更新系統(tǒng)較佳實施例的功能模塊圖。所述服務器 30包括設置模塊301、讀取模塊302、判斷模塊303、編譯模塊304、更新模塊305、修改模塊 306及寫入模塊307。所述客戶端計算機10包括讀取模塊101、比較模塊102及下載模塊103。 本發(fā)明所稱的模塊是完成一特定功能的計算機程序段,比程序更適合于描述軟件在計算機中 的執(zhí)行過程,因此在本發(fā)明以下對軟件描述中都以模塊描述。
所述設置模塊301用于當用戶將需要生成可執(zhí)行文件的源代碼存放于服務器時,設置該源代碼的編譯時間。用戶可以根據(jù)需要在任意時間進行設置,通常為減輕服務器30的負載, 提高服務器30的處理效率,將編譯時間設置在服務器30數(shù)據(jù)處理任務較少的時候。
所述讀取模塊302用于讀取所述源代碼中的屬性信息及服務器30中存放該源代碼對應的 可執(zhí)行文件的屬性信息。所述的屬性信息包括編寫日期、修改日期及作者等資料。若服務器 30中存放該源代碼對應的可執(zhí)行文件不存在,則可執(zhí)行文件的屬性信息為空。
所述判斷模塊303用于判斷讀取的源代碼中的屬性信息與服務器30中存放該源代碼對應 的可執(zhí)行文件的屬性信息是否一致。
所述編譯模塊304用于當源代碼中的屬性信息及服務器30中存放該源代碼對應的可執(zhí)行 文件的屬性信息不一致時,在設置的編譯時間對源代碼進行編譯,使其成為可執(zhí)行文件。在 本較佳實施例中,編譯的方式有兩種, 一種為增量編譯,S卩只對新增加的功能所編寫的源 代碼進行編譯,另一種為完全編譯,S卩對所編寫的源代碼全部進行編譯。通常判斷使用哪 一種編譯的方式是在存放可執(zhí)行文件的目錄下査找是否存在對應的可執(zhí)行文件,若存在對應 的可執(zhí)行文件,則為增量編譯,若不存在對應的可執(zhí)行文件,則為完全編譯。
所述更新模塊305用于當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯 成功的可執(zhí)行文件一致。根據(jù)對源代碼的編譯方式的不同,更新的方式有兩種,若編譯的方 式為增量編譯,則將編譯成功后生成的可執(zhí)行文件覆蓋該源代碼對應的可執(zhí)行文件,若編譯 的方式為完全編譯,則將編譯成功后生成的可執(zhí)行文件存放在服務器30用于存放可執(zhí)行文件 的目錄下。
所述修改模塊306用于修改編譯成功后所生成的可執(zhí)行文件的版本號。在本較佳實施例 中,修改的方式為,若編譯成功一次,則對版本號遞增一個數(shù)字,具體而言,假設原有的可 執(zhí)行文件的版本號文l.l,若編譯成功,生成新的可執(zhí)行文件,則將版本號修改為1.2。然而 ,視不同情況,在其他實施例中,用戶可以設定其它方式修改版本號,例如,以遞減的方式 修改版本號。
所述寫入模塊307用于當源代碼編譯失敗時,將異常報告寫入日志文件,并通知管理員 。在本較佳實施例中,通知的方式是以郵件的形式通知管理員。
所述獲取模塊101用于當啟動客戶端計算機10的可執(zhí)行文件時,獲取服務器30中對應的 可執(zhí)行文件的版本號。通常在客戶端計算機安裝好的可執(zhí)行文件都有對應的圖標,用戶點擊 該圖標就會啟動對應的可執(zhí)行文件,之后獲取模塊IOI自動獲取服務器30上的該可執(zhí)行文件 的版本號。具體而言,假設用戶需要使用某一個軟件(例如瀏覽器),點擊瀏覽器圖標, 啟動瀏覽器對應的可執(zhí)行文件,之后客戶端計算機IO自動獲取取服務器30上瀏覽器對應的可執(zhí)行文件的版本號。
所述比較模塊102用于比較客戶端計算機10上啟動的可執(zhí)行文件的版本號與服務器30上 對應的可執(zhí)行文件的版本號是否一致。
所述下載模塊103用于當客戶端計算機10上啟動的可執(zhí)行文件的版本號與服務器30上對 應的可執(zhí)行文件的版本號不一致時,將服務器30上的可執(zhí)行文件下載到客戶端計算機10上, 并安裝該可執(zhí)行文件。
如圖3所示,是本發(fā)明一種可執(zhí)行文件版本更新方法的較佳實施例的流程圖。
首先,步驟SIO,當用戶將需要生成可執(zhí)行文件的源代碼存放于服務器時,設置模塊 301設置該源代碼的編譯時間。用戶可以根據(jù)需要在任意時間進行設置,通常為減輕服務器 30的負載,提高服務器30的處理效率,將編譯時間設置在服務器30數(shù)據(jù)處理任務較少的時候
步驟S11 ,讀取模塊302讀取所述源代碼中的屬性信息及服務器30中存放該源代碼對應的 可執(zhí)行文件的屬性信息。所述的屬性信息包括編寫日期、修改日期及作者等資料。若服務器 30中存放該源代碼對應的可執(zhí)行文件不存在,則可執(zhí)行文件的屬性信息為空。
步驟S12,判斷模塊303判斷讀取的源代碼中的屬性信息與服務器30中存放該源代碼對應 的可執(zhí)行文件的屬性信息是否一致。
步驟S13,當源代碼中的屬性信息及可執(zhí)行文件中的屬性信息不一致時,編譯模塊304在 設置的時間對源代碼進行編譯,使其成為可執(zhí)行文件。在本較佳實施例中,編譯的方式有兩 種, 一種為增量編譯,S卩只對新增加的功能所編寫的源代碼進行編譯,另一種為完全編譯 ,艮卩對所編寫的源代碼全部進行編譯。通常判斷使用哪一種編譯的方式是在存放可執(zhí)行文 件的目錄下査找是否存在對應的可執(zhí)行文件,若存在對應的可執(zhí)行文件,則為增量編譯,若 不存在對應的可執(zhí)行文件,則為完全編譯。
步驟S14,判斷編譯是否成功。若編譯成功,則生成可執(zhí)行文件,若編譯不成功,則進 入步驟S20,提示異常,將異常報告寫入日志文件,并及時通知管理員。在本較佳實施例中 ,通知的方式是以郵件的形式通知管理員。
步驟S15,當源代碼編譯成功時,更新模塊305更新服務器上的可執(zhí)行文件,使其與編譯 成功的可執(zhí)行文件一致。根據(jù)對源代碼的編譯方式的不同,更新的方式有兩種,若編譯的方 式為增量編譯,則將編譯成功后生成的可執(zhí)行文件覆蓋該源代碼對應的可執(zhí)行文件,若編譯 的方式為完全編譯,則將編譯成功后生成的可執(zhí)行文件存放在服務器30用于存放可執(zhí)行文件 的目錄下。步驟S16,修改模塊306修改編譯成功后所生成的可執(zhí)行文件的版本號。在本較佳實施例 中,修改的方式為,若編譯成功一次,則對版本號遞增一個數(shù)字,具體而言,假設原有的可 執(zhí)行文件的版本號文l.l,若編譯成功,生成新的可執(zhí)行文件,則將版本號修改為1.2。然而 ,視不同情況,在其他實施例中,用戶可以設定其它方式修改版本號,例如,以遞減的方式 修改版本號。
步驟S17,當啟動客戶端計算機10的可執(zhí)行文件時,獲取模塊101獲取服務器30中對應的 可執(zhí)行文件的版本號。通常在客戶端計算機安裝好的可執(zhí)行文件都有對應的圖標,用戶點擊 該圖標就會啟動對應的可執(zhí)行文件,之后獲取模塊101會自動獲取服務器30上的該可執(zhí)行文 件的版本號。具體而言,假設用戶需要使用瀏覽器,點擊瀏覽器對應的圖標,啟動瀏覽器對 應的可執(zhí)行文件,之后客戶端計算機IO自動讀取服務器30上瀏覽器對應的可執(zhí)行文件的版本 號。
步驟S18,比較模塊102判斷客戶端計算機10上啟動的可執(zhí)行文件的版本號與服務器30上 對應的可執(zhí)行文件的版本號是否一致。
步驟S19,當客戶端計算機10上啟動的可執(zhí)行文件的版本號與服務器30上對應的可執(zhí)行 文件的版本號不一致時,下載模塊103將服務器30上的可執(zhí)行文件下載到客戶端計算機10上 ,并安裝該可執(zhí)行文件。
在步驟S12中,當源代碼中的屬性信息及可執(zhí)行文件中的屬性信息一致時,則直接結束 流程。
在步驟S18中,當客戶端計算機10上啟動的可執(zhí)行文件的版本號與服務器30上對應的可 執(zhí)行文件的版本號一致時,則直接結束流程。
最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制,盡管參照以上 較佳實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技 術方案進行修改或等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
權利要求
權利要求1一種可執(zhí)行文件版本更新系統(tǒng),包括服務器、客戶端計算機,其特征在于,所述服務器包括設置模塊,用于當用戶將需要生成可執(zhí)行文件的源代碼存放于服務器時,設置該源代碼的編譯時間;讀取模塊,用于讀取所述源代碼中的屬性信息及服務器中存放該源代碼對應的可執(zhí)行文件的屬性信息;判斷模塊,用于判斷讀取的源代碼中的屬性信息與服務器中存放該源代碼對應的可執(zhí)行文件的屬性信息是否一致;編譯模塊,用于當源代碼中的屬性信息及可執(zhí)行文件中的屬性信息不一致時,在設置的編譯時間對該源代碼進行編譯,使其成為可執(zhí)行文件;更新模塊,用于當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯成功的可執(zhí)行文件一致;修改模塊,用于修改編譯成功后所生成的可執(zhí)行文件的版本號;所述客戶端計算機包括獲取模塊,用于當啟動客戶端計算機的可執(zhí)行文件時,獲取服務器中對應的可執(zhí)行文件的版本號;比較模塊,用于比較客戶端計算機上啟動的可執(zhí)行文件的版本號與服務器上對應的可執(zhí)行文件的版本號是否一致;下載模塊,用于當客戶端計算機上啟動的可執(zhí)行文件的版本號與服務器上對應的可執(zhí)行文件的版本號不一致時,將服務器上的可執(zhí)行文件下載到客戶端計算機上,并安裝該可執(zhí)行文件。
2 如權利要求l所述的可執(zhí)行文件版本更新系統(tǒng),其特征在于,所述 屬性信息包括作者、源代碼的編寫日期及修改日期。
3 如權利要求l所述的可執(zhí)行文件版本更新系統(tǒng),其特征在于,所述服務器還包括寫入模塊,所述寫入模塊用于當源代碼編譯失敗時,將異常報告寫入日志文件 ,并通知管理員。
4 一種可執(zhí)行文件版本更新方法,其特征在于,該方法包括如下步驟當用戶將需要生成可執(zhí)行文件的源代碼存放于服務器時,設置該源代碼的編譯時間; 讀取所述源代碼中的屬性信息及服務器中存放該源代碼對應的可執(zhí)行文件的屬性信息當源代碼中的屬性信息與服務器中存放該源代碼對應的可執(zhí)行文件的屬性信息不一致 時,在設置的時間對源代碼進行編譯,使其成為可執(zhí)行文件;當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯成功的可執(zhí)行文件一致;修改編譯成功后所生成的可執(zhí)行文件的版本號;當啟動客戶端計算機的可執(zhí)行文件時,讀取服務器中對應的可執(zhí)行文件的版本號; 當客戶端計算機上啟動的可執(zhí)行文件的版本號與服務器上對應的可執(zhí)行文件的版本號 不一致時,將服務器上的可執(zhí)行文件下載到客戶端計算機上,并安裝該可執(zhí)行文件。
5 如權利要求4所述的可執(zhí)行文件版本更新方法,其特征在于,所述 屬性信息包括作者、源代碼的編寫日期及修改日期。
6 如權利要求4所述的可執(zhí)行文件版本更新方法,其特征在于,該方 法還包括如下步驟當源代碼編譯失敗時,將異常報告寫入日志文件,并通知管理員。
全文摘要
一種可執(zhí)行文件版本更新方法,其特征在于,該方法包括如下步驟設置源代碼編譯的時間;讀取源代碼中的屬性信息及可執(zhí)行文件中的屬性信息;當源代碼中的屬性信息及可執(zhí)行文件中的屬性信息不一致時,在設置的時間對源代碼進行編譯,使其成為可執(zhí)行文件;當源代碼編譯成功時,更新服務器上的可執(zhí)行文件,使其與編譯成功的可執(zhí)行文件一致;修改編譯成功后所生成的可執(zhí)行文件的版本號;當啟動客戶端計算機的可執(zhí)行文件時,讀取服務器中對應的可執(zhí)行文件的版本號;當客戶端計算機上啟動的可執(zhí)行文件的版本號與服務器上對應的可執(zhí)行文件的版本號一致時,將服務器上的可執(zhí)行文件更新到客戶端計算機上。另外,本發(fā)明還提供一種可執(zhí)行文件版本更新系統(tǒng)。
文檔編號G06F9/45GK101546269SQ200810300769
公開日2009年9月30日 申請日期2008年3月28日 優(yōu)先權日2008年3月28日
發(fā)明者晶 王, 黃軍偉 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司