• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      引言

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

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

      1 方案設(shè)計(jì)

      本系統(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)之前,需要先對代碼項(xiàng)目文件進(jìn)行預(yù)處理,保證版本號能夠動態(tài)修改。

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

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

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

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

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

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

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

      程序流程如下:

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

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

      3.2 更新程序設(shè)計(jì)

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

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

      圖3 自檢線程流程圖

      3.2.2 更新程序設(shè)計(jì)

      程序流程如下:

      圖4 更新程序流程圖

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

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

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

      4 結(jié)束語

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

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

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

      [3]張志彬, 白劍坤.HIS系統(tǒng)客戶端軟件自動更新實(shí)現(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è)計(jì)與實(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è)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2007, 28(18): 4561-4563.

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

      猜你喜歡
      主程序線程代碼
      淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
      電控冰箱軟件模塊化設(shè)計(jì)
      日用電器(2019年12期)2019-02-26 01:53:06
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      時光倒流 換回PotPlayer老圖標(biāo)
      淺談linux多線程協(xié)作
      Linux線程實(shí)現(xiàn)技術(shù)研究
      未經(jīng)授權(quán)的第三方軟件侵權(quán)問題研究
      ——以“騰訊與360之爭”為視角*
      宁阳县| 繁峙县| 巴楚县| 温泉县| 商水县| 修文县| 邹平县| 韶山市| 轮台县| 楚雄市| 开原市| 商丘市| 嵩明县| 台中市| 霸州市| 华宁县| 裕民县| 石台县| 麟游县| 阿瓦提县| 靖州| 泾川县| 南木林县| 囊谦县| 民丰县| 陵水| 略阳县| 大方县| 西充县| 湘潭县| 平塘县| 漯河市| 漳平市| 鄂托克前旗| 西乌珠穆沁旗| 土默特左旗| 富蕴县| 乳源| 廊坊市| 调兵山市| 库尔勒市|