国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MES系統(tǒng)客戶端程序一體化自動更新方案研究

2018-09-18 09:57施曉廉李佳王建祥曹翔
數(shù)碼設(shè)計 2018年2期
關(guān)鍵詞:線程代碼客戶端

施曉廉,李佳,王建祥,曹翔

(上海無線電設(shè)備研究所,上海 200090)

引言

目前,在MES系統(tǒng)(Manufacture Execution System),即制造企業(yè)車間執(zhí)行的信息化管理系統(tǒng)中,普遍采用 C/S模式。隨著信息化程度的不斷加深,客戶端程序需要提供更多功能;同時,程序也會不可避免的出現(xiàn)bug,軟件需要經(jīng)常進行更新。由于部署在實際的生產(chǎn)環(huán)境中,為了便捷高效的實現(xiàn)各設(shè)備客戶端程序的更新操作,必須采用自動更新系統(tǒng)。

目前應(yīng)用的客戶端更新系統(tǒng)中,更新方式主要是HTTP方式[7]、FTP方式[5-6,8]。大部分系統(tǒng)只解決了程序部署到服務(wù)器之后的問題[1-3,9],還需要人工進行版本控制及服務(wù)器部署,增加了不必要的工作量,也可能引入錯誤。另外,當更新模塊本身需要更新時,系統(tǒng)無法進行自動操作,只能手動部署到客戶端。

1 方案設(shè)計

本系統(tǒng)包括兩個子系統(tǒng),一部分是供開發(fā)人員使用的發(fā)布子系統(tǒng),一部分是供軟件操作人員使用的更新子系統(tǒng),即狹義上的更新系統(tǒng)。圖 1給出了系統(tǒng)簡要工作流程。

圖1 (a) 自動發(fā)布子系統(tǒng)

圖1 (b) 自動更新子系統(tǒng)

在使用發(fā)布子系統(tǒng)之前,需要先對代碼項目文件進行預(yù)處理,保證版本號能夠動態(tài)修改。

當啟動發(fā)布程序時,該程序會調(diào)用批處理腳本實現(xiàn)主程序的編譯工作。編譯完成后,發(fā)布程序會根據(jù)XML配置文件[4],通過web服務(wù)有選擇性的上傳文件到服務(wù)器上。

當操作人員在客戶端啟動主程序時,主程序會首先啟動檢查線程,對服務(wù)器的程序版本進行檢測。當發(fā)現(xiàn)服務(wù)器的程序版本更高時,會啟動更新程序,并退出。更新程序?qū)⒏甙姹镜奈募螺d完成后,重啟主程序。

2 版本控制實現(xiàn)

程序采用 Tortoise SVN對代碼進行管理,它提供了一個命令行工具SubWCRev.exe,能夠讀取運行目錄的代碼版本號并替換相應(yīng)模板。本系統(tǒng)應(yīng)用這個工具實現(xiàn)了編譯時程序版本的控制。

為了使得程序的版本一直保持最新,需要在編譯前提交代碼。經(jīng)過編譯后,程序的版本就被替換成了當前代碼版本,實現(xiàn)了版本控制。

3 發(fā)布及更新程序設(shè)計

3.1 發(fā)布程序設(shè)計

程序流程如下:

圖2 發(fā)布程序流程

發(fā)布程序的主要功能是調(diào)用腳本,編譯主程序,并根據(jù)配置文件上傳壓縮后的主程序及庫文件,最后采用web方式上傳各文件的版本信息及壓縮包的MD5碼。

3.2 更新程序設(shè)計

3.2.1 主程序內(nèi)自檢線程設(shè)計

當主程序開始運行時,首先啟動一個自檢線程。該線程會下載服務(wù)器上的版本記錄文件,與本地模塊版本進行對比,檢查服務(wù)器是否有文件需要更新或有新增文件。當需要更新時將信息寫入待更新記錄文件中,并拉起更新程序,最后自身退出。線程流程如下:

圖3 自檢線程流程圖

3.2.2 更新程序設(shè)計

程序流程如下:

圖4 更新程序流程圖

更新程序通過讀取待更新列表記錄文件,獲取待更新模塊列表。隨后從服務(wù)器上下載相應(yīng)的文件,存到臨時文件夾中,校驗通過后解壓新文件,并替換原有文件。

3.2.3 模塊互更新線程設(shè)計

在主程序確認更新已經(jīng)完成,程序正常運行后,會啟動一個線程下載記錄文件,檢查更新程序的版本是否與服務(wù)器上版本一致。當服務(wù)器上版本較高時,會在后臺下載更新程序,并進行替換,實現(xiàn)了更新程序的自動更新。程序流程與3.2.2節(jié)所述類似。

4 結(jié)束語

本文設(shè)計了一套C#客戶端下的一體化自動更新方案,包括版本控制、自動發(fā)布、自動更新與模塊互更新。該方案覆蓋了從代碼編譯到程序部署的整個流程,使得軟件開發(fā)人員只需要關(guān)注代碼功能本身,在軟件開發(fā)完畢后提交代碼以更新代碼版本,隨后運行該方案下的發(fā)布工具,即可實現(xiàn)開發(fā)端到使用端的自動更新。該方案大大提升了軟件設(shè)計人員迭代開發(fā)的速度,方便車間操作人員更好的進行生產(chǎn),具備很好的易用性。另外,該方案提供了更新程序的在線更新,即可以在線改變具體更新方式,便于后期功能的添加,而不需要重新部署,具有很強的可擴展性。最后,方案在移植時,只需要修改版本控制的部分即可,具備很好的可移植性。

[1]袁璟瑾.客戶端軟件自動更新的設(shè)計與實現(xiàn)[J].邢臺職業(yè)技術(shù)學(xué)院學(xué)報,2012, 29(5): 93-95.

[2]朱建凱, 鄭洪源, 丁秋林.基于VISUAL C++ 客戶端程序自動更新的應(yīng)用研究[J].計算機應(yīng)用與軟件, 2010, 27(2): 172-173,187.

[3]張志彬, 白劍坤.HIS系統(tǒng)客戶端軟件自動更新實現(xiàn)[J].醫(yī)療裝備, 2009,22(3): 27-28.

[4]趙宏偉, 孫永清, 崔宇寅.一種軟件自動更新方法[J].電腦知識與技術(shù),2012, 8(1): 74-76.

[5]關(guān)磊.醫(yī)院系統(tǒng)客戶端的自動更新[J].醫(yī)院數(shù)字化, 2016, 31(3): 108-110.

[6]趙衛(wèi)績, 劉井蓮.基于FTP協(xié)議的客戶端自動更新程序的設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程, 2010, 10(34): 8591-8593.

[7]李慧, 張劍霞.基于 HTTP協(xié)議下自動更新平臺的構(gòu)建[J].數(shù)字技術(shù)與應(yīng)用, 2013, 20(7): 62.

[8]楊傳偉, 孟凡榮.C/S客戶端軟件自動更新系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計, 2007, 28(18): 4561-4563.

[9]黃榮, 李剛榮, 李景波.“軍字一號”信息系統(tǒng)通用自動更新程序的設(shè)計與實現(xiàn)[J].中國醫(yī)療設(shè)備, 2014, 29(3): 43-44.

猜你喜歡
線程代碼客戶端
你的手機安裝了多少個客戶端
“人民網(wǎng)+客戶端”推出數(shù)據(jù)新聞
——穩(wěn)就業(yè)、惠民生,“數(shù)”讀十年成績單
5G終端模擬系統(tǒng)隨機接入過程的設(shè)計與實現(xiàn)
實時操作系統(tǒng)mbedOS 互斥量調(diào)度機制剖析
淺析體育賽事售票系統(tǒng)錯票問題的對策研究
神秘的代碼
一周機構(gòu)凈增(減)倉股前20名
一行代碼玩完19億元衛(wèi)星
媒體客戶端的發(fā)展策略與推廣模式
近期連續(xù)上漲7天以上的股