99精品久久这里只有精品,三上悠亚免费一区二区在线,91精品福利一区二区,爱a久久片,无国产精品白浆免费视,中文字幕欧美一区,爽妇网国产精品,国产一级做a爱免费观看,午夜一级在线,国产精品偷伦视频免费手机播放

    <del id="eyo20"><dfn id="eyo20"></dfn></del>
  • <small id="eyo20"><abbr id="eyo20"></abbr></small>
      <strike id="eyo20"><samp id="eyo20"></samp></strike>
    • 通用軟件更新系統(tǒng)設(shè)計(jì)

      前言:本站為你精心整理了通用軟件更新系統(tǒng)設(shè)計(jì)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢。

      編者按:本論文主要從問題的提出;問題的分析;HTTP協(xié)議特點(diǎn);數(shù)據(jù)流程及數(shù)據(jù)結(jié)構(gòu);客戶端工作流程等進(jìn)行講述,包括了客戶端運(yùn)行的版本也越來(lái)越雜、創(chuàng)建自動(dòng)升級(jí)程序的線程、網(wǎng)絡(luò)狀況很差的時(shí)候更新所需要的時(shí)間很長(zhǎng)、因?yàn)檎w打包之后會(huì)出現(xiàn)客戶端只需要更新一個(gè)文件而不得不下載整個(gè)壓縮包的情況等,具體資料請(qǐng)見:

      摘要:針對(duì)桌面應(yīng)用程序在之后版本難以維護(hù)的問題,提出了基于HTTP協(xié)議的解決方案,并對(duì)該解決方案進(jìn)行了深入研究。提取出通用的自動(dòng)更新平臺(tái),對(duì)解決版本維護(hù)難題有一定的參考意義。

      關(guān)鍵詞:自動(dòng)升級(jí);更新平臺(tái);網(wǎng)絡(luò)更新

      1問題的提出

      隨著桌面應(yīng)用程序新版本的不斷,客戶端運(yùn)行的版本也越來(lái)越雜,版本、數(shù)據(jù)結(jié)構(gòu)的兼容也成為后續(xù)開發(fā)必須考慮的問題,而且兼容性方面的問題越來(lái)越多,開發(fā)及維護(hù)成本越來(lái)越高。

      2問題的分析

      隨著因特網(wǎng)的普及,通過網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)桌面應(yīng)用程序的更新升級(jí)已經(jīng)成為可能。在程序中加入在線更新的功能將能有效地解決前面討論的版本維護(hù)難題。

      關(guān)于通信協(xié)議,可以編寫程序?qū)崿F(xiàn)Socket通信,也可以采用比較成熟的HTTP協(xié)議??紤]到諸多因素,筆者選擇了HTTP協(xié)議。

      3HTTP協(xié)議特點(diǎn)

      HTTP協(xié)議(超文本傳輸協(xié)議)的主要特點(diǎn)可概括如下:

      (1)簡(jiǎn)單快速:客戶向服務(wù)器請(qǐng)求服務(wù)時(shí),只需傳送請(qǐng)求方法和路徑。請(qǐng)求方法常用的有GET、HEAD、POST。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同。

      (2)由于HTTP協(xié)議簡(jiǎn)單,使得HTTP服務(wù)器的程序規(guī)模小,因而通信速度很快。

      (3)靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對(duì)象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記。

      (4)無(wú)連接:無(wú)連接的含義是限制每次連接只處理一個(gè)請(qǐng)求。服務(wù)器處理完客戶的請(qǐng)求,并收到客戶的應(yīng)答后,即斷開連接。采用這種方式可以節(jié)省傳輸時(shí)間。

      (5)無(wú)狀態(tài):HTTP協(xié)議是無(wú)狀態(tài)協(xié)議。無(wú)狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導(dǎo)致每次連接傳送的數(shù)據(jù)量增大。另一方面,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快。

      另外,筆者在實(shí)驗(yàn)中發(fā)現(xiàn)很多網(wǎng)絡(luò)都設(shè)置了防火墻,考慮到安全問題,網(wǎng)絡(luò)管理員會(huì)屏蔽很多端口。而對(duì)于HTTP最常用的80端口通常是開放的,這也是筆者選擇HTTP協(xié)議的一個(gè)重要因素。

      4數(shù)據(jù)流程及數(shù)據(jù)結(jié)構(gòu)

      實(shí)際應(yīng)用中可以對(duì)流程進(jìn)行擴(kuò)展,例如自動(dòng)程序線程定時(shí)啟動(dòng)、開始更新前檢查上次留下的緩存、斷點(diǎn)續(xù)傳等。

      該平臺(tái)中有多個(gè)軟件產(chǎn)品,存儲(chǔ)在U_Products表中。每個(gè)軟件產(chǎn)品有多個(gè)用于客戶端驗(yàn)證的序列號(hào),存儲(chǔ)在U_Clients。序列號(hào)是客戶端的憑證,只有授權(quán)了的序列號(hào)才能訪問平臺(tái)。而且序列號(hào)表還標(biāo)出了該序列號(hào)允許升級(jí)的版本范圍。同時(shí),每個(gè)軟件產(chǎn)品對(duì)應(yīng)的多個(gè)文件,通過服務(wù)端腳本輸出一個(gè)文件列表??蛻舳诉B接上服務(wù)器后首先要做的就是下載屬于它的文件列表。

      文件列表用于比較客戶端文件與服務(wù)器上的各個(gè)文件的新舊。其中的時(shí)間戳是主要比較字段,文件名用于記錄定位。

      5客戶端工作流程

      需要指出的是表1列出的是基本的流程。實(shí)際中客戶端工作流程會(huì)比表1復(fù)雜的多。

      主程序啟動(dòng)之后,創(chuàng)建自動(dòng)升級(jí)程序的線程。該線程在后臺(tái)運(yùn)行,首先讀出產(chǎn)品的序列號(hào),通過URL參數(shù)傳值的形式傳到Web端。此處傳值可以更加靈活,可以在用戶允許的前提下,將更多的信息傳給服務(wù)器。例如當(dāng)前軟件版本,客戶端操作系統(tǒng)版本,客戶端計(jì)算機(jī)硬件信息等等。

      運(yùn)行在Web端的腳本響應(yīng)請(qǐng)求,判斷序列號(hào)是否合法,即序列號(hào)是否正確,是否過期。通過之后輸出與該序列號(hào)對(duì)應(yīng)的軟件的所有文件列表。

      自動(dòng)升級(jí)程序開始通過HTTP協(xié)議下載這個(gè)列表。下載完畢后讀出上一次升級(jí)之后,保存下來(lái)的文件列表,并與下載下來(lái)的列表進(jìn)行對(duì)比,通過時(shí)間戳對(duì)比找出新文件。通常只要時(shí)間戳不一樣就將文件加入的需要下載的文件列表中,也可以采用時(shí)間戳轉(zhuǎn)成浮點(diǎn)數(shù)后大小對(duì)比的策略。例如平臺(tái)中放的是穩(wěn)定的正式版,而有些客戶端已經(jīng)通過其他途徑得到新版本更高的測(cè)試版。第二種策略就可以避免高版本文件通過升級(jí)之后版本降低。這也是為什么采用時(shí)間戳,而不是文件MD5唯一哈希值的原因。

      得到新文件列表之后,再次通過HTTP協(xié)議逐一下載新文件到緩存目錄中。下載新文件的URL由文件編號(hào)和序列號(hào)共同確定。每下載一個(gè)文件,更新一次本地的文件列表。這樣如果出現(xiàn)網(wǎng)絡(luò)中斷,用戶退出等異常,下次啟動(dòng)可以跳過已經(jīng)下載過的文件。雖然這不是嚴(yán)格意義上的斷點(diǎn)續(xù)傳,但在一定程度上提高了程序的容錯(cuò)能力。

      數(shù)據(jù)全部下載完畢之后詢問用戶是否立即應(yīng)用更新。如果是則退出主程序,將緩存文件夾中的文件移動(dòng)到主程序所在的目錄中,并覆蓋。否則保持緩存中的文件,供下次升級(jí)使用。

      6改進(jìn)及結(jié)束語(yǔ)

      網(wǎng)絡(luò)狀況很差的時(shí)候更新所需要的時(shí)間很長(zhǎng)。對(duì)于該問題,可以對(duì)文件進(jìn)行逐個(gè)ZIP壓縮,通過HTTP協(xié)議傳輸壓縮流,而不是文件本身的數(shù)據(jù)流??蛻舳讼螺d之后進(jìn)行解壓縮。此處是對(duì)文件逐個(gè)壓縮,而不是整體打包。因?yàn)檎w打包之后會(huì)出現(xiàn)客戶端只需要更新一個(gè)文件而不得不下載整個(gè)壓縮包的情況。而且整體打包也對(duì)斷點(diǎn)續(xù)傳提出了更高的要求。

      另外出于某種原因的考慮,有時(shí)需要更多考慮數(shù)據(jù)安全。例如未授權(quán)的序列號(hào)不能獲得新版本的文件,且一個(gè)序列號(hào)只能對(duì)應(yīng)一個(gè)客戶端。對(duì)此可以采用動(dòng)態(tài)序列號(hào)的方式,即下載完文件列表時(shí)或更新結(jié)束時(shí),都將原有的序列號(hào)作廢,動(dòng)態(tài)創(chuàng)建一個(gè)新的值。

      另外對(duì)于重大缺陷的修復(fù)更新,更希望能強(qiáng)制更新。對(duì)此可以在自動(dòng)更新程序發(fā)現(xiàn)更新時(shí),強(qiáng)制停止主程序的響應(yīng)。通過這一策略甚至可以做到所有的新版本之后,客戶端迅速跟進(jìn),并全部更新到最新版本。

      筆者使用微軟的C#語(yǔ)言來(lái)實(shí)現(xiàn),經(jīng)過反復(fù)測(cè)試,發(fā)現(xiàn)ZIP壓縮之后,對(duì)網(wǎng)絡(luò)要求低了很多,更新效率提高很多。通過動(dòng)態(tài)序列號(hào)及強(qiáng)制更新策略也基本能保證客戶端版本可控。

      亚洲综合偷自成人网第页色| av色综合久久天堂av色综合在| 99久久婷婷国产综合精品电影| 午夜精品久久久| 国产精品亚洲精品日产久久久| 国产精品国产三级国产专区不| 国产xxx69麻豆国语对白| 精品欧美一区二区在线观看| 一本色道久久综合中文字幕| 阴唇两边有点白是怎么回事 | 国产极品视觉盛宴| 亚洲av成人无码久久精品| 福利网在线| 特级黄色大片性久久久| 久久96国产精品久久久| 亚洲精品国偷拍自产在线观看蜜臀| 黄 色 成 年 人 网 站免费| 女同恋性吃奶舌吻完整版| 国产美女亚洲精品一区| 一本一本久久a久久精品综合| 国产精品av免费网站| 免费国产自拍在线观看| 四虎国产精品免费久久| 亚洲av无码专区在线亚| 国产在线一区二区三区不卡| 高h喷水荡肉爽文np肉色学校| 4444亚洲人成无码网在线观看| 精品久久亚洲一级α| 精品一区二区三区亚洲综合| 日本19禁啪啪吃奶大尺度| 伊人婷婷在线| 亚洲美女av二区在线观看| 夜夜爽夜夜叫夜夜高潮| 国产色秀视频在线播放| 久久久久久无中无码| 成人国产一区二区三区av| 国产成人精品a视频| 97色噜噜| 国产我不卡在线观看免费| 中文字幕无线码免费人妻| 国产AV边打电话边出轨|