999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

通用升級程序設(shè)計與實(shí)現(xiàn)

2010-12-31 00:00:00鄔劍飛
現(xiàn)代商貿(mào)工業(yè) 2010年9期

摘 要:在闡述了軟件在線自動升級的功能特點(diǎn)的基礎(chǔ)上,詳細(xì)地介紹了通用升級程序的設(shè)計以及實(shí)現(xiàn)原理。該系統(tǒng)采用了I/O網(wǎng)絡(luò)模型以及加密技術(shù),能夠自動、及時、準(zhǔn)確地對客戶使用產(chǎn)品進(jìn)行穩(wěn)定的升級。

關(guān)鍵詞:自動升級;多線程; I/O模型

中圖分類號:TP

文獻(xiàn)標(biāo)識碼:A

文章編號:1672-3198(2010)09-0296-01

1 系統(tǒng)特性 

1.1 安全性

安全性分為兩個部分,即服務(wù)端安全性和客戶安全性。服務(wù)端安全性主要由服務(wù)主機(jī)安全性決定,由于服務(wù)主機(jī)將存放原始版數(shù)據(jù),因此必須確保本類數(shù)據(jù)不被竊取。

客戶端安全主要防止同一許可證多用及泄露情況。對于同一許可證,為了防止多用戶采用,升級服務(wù)程序?qū)⒉捎靡淮我幻艿姆?wù)方式,即本次升級時將下次升級密鑰進(jìn)行約定,保證每個密鑰只能使用一次。

為了防止泄露情況,對每個客戶端發(fā)送的數(shù)據(jù)將進(jìn)行處理,即在數(shù)據(jù)部分采用對無關(guān)數(shù)據(jù)進(jìn)行水印方式,有效保證每個客戶端所獲得的數(shù)據(jù)功能上無差異,但可以根據(jù)最后生成的樣本等進(jìn)行有效的區(qū)分。

1.2 分離性

分離性主要分為兩部分,即不同產(chǎn)品的分離以及不同用戶等級的分離。不同產(chǎn)品的分離將通過對不同的目錄進(jìn)行區(qū)分來實(shí)現(xiàn),即用戶將首先進(jìn)行驗證,驗證成功后,升級程序根據(jù)數(shù)據(jù)庫保存內(nèi)容,對相應(yīng)的目錄進(jìn)行處理,與用戶通訊并分離。

不同用戶等級的分離原理類似不同產(chǎn)品的分離,有著不同等級的用戶可以針對不同目錄進(jìn)行區(qū)分。

1.3 通用性

通用性主要指升級服務(wù)程序可以對所有產(chǎn)品進(jìn)行升級服務(wù)。這部分功能將由具體設(shè)計進(jìn)行保證,使之適用于所有情況的升級服務(wù)。

2 升級程序的設(shè)計

2.1 服務(wù)器端工作流程

(1)服務(wù)器護(hù)進(jìn)程監(jiān)聽8167端口。

(2)有用戶連接時,創(chuàng)建線程進(jìn)行處理。

(3)進(jìn)行身份驗證,查詢數(shù)據(jù)庫與用戶提供密碼是否一致。

(4)通過驗證后,生成一個新密碼,更新數(shù)據(jù)庫并發(fā)送給用戶(*)。

(5)確認(rèn)用戶產(chǎn)品和身份,尋找對應(yīng)的目錄。

(6)確認(rèn)用戶更新日期。

(7)遍歷目錄下所有的文件,依次發(fā)送文件名(*)。

(8)用戶確認(rèn)是否存在此文件,如否,轉(zhuǎn)(11) (*)。

(9)發(fā)送此文件MD5,用戶確認(rèn)是否一致,如否,轉(zhuǎn)(11) (*)。

(10)轉(zhuǎn)(7)。

(11)發(fā)送此文件內(nèi)容(*)。

(12)轉(zhuǎn)(7)直至文件更新結(jié)束。

(13)更新數(shù)據(jù)庫中用戶相關(guān)信息。

其中,所有帶(*)號的步驟均為DES加密傳送數(shù)據(jù)。

2.2 管理程序的設(shè)計

管理程序主要負(fù)責(zé)進(jìn)行客戶數(shù)據(jù)管理及日志查詢、回溯等功能。 

(1)日志查詢。

查詢當(dāng)日日志,本周日志,本月日志。查詢用戶登陸情況。查詢指定用戶名的更新情況。可以查詢指定產(chǎn)品更新情況。

(2)用戶管理。

進(jìn)行用戶添加、刪除、修改管理。手工重置用戶的密碼。

(3)產(chǎn)品管理。

對產(chǎn)品進(jìn)行添加、刪除、發(fā)布時間修改等管理。指定產(chǎn)品對應(yīng)的目錄。

3 升級程序的實(shí)現(xiàn)

3.1 服務(wù)器端的實(shí)現(xiàn)

服務(wù)器端啟用WSAAsyncSelect模型對客戶端的請求進(jìn)行相關(guān)響應(yīng),接收FD_ACCEPT連接通知,代碼如下:

WSAAsyncSelect(Listen,m_hWnd,WM_SOCKET,F(xiàn)D_ACCEPT | FD_CLOSE);

其中Listen為服務(wù)器端套接字。接收到連接請求后,服務(wù)器端相關(guān)消息響應(yīng)代碼如下:

LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 

{

switch( message )

{

switch(WSAGETSELECTEVENT(lParam))

{

case FD_ACCEPT:

Accept = ::accept(wParam, (struct sockaddr*)clientAddr, clientlen);

WSAAsyncSelect(Accept, this->GetSafeHwnd(), WM_SOCKET, FD_READ | FD_WRITE | FD_CLOSE);

break;

case FD_READ:

DWORD threadid;

HANDLE handle;

handle = CreateThread(NULL, 5000000, ThreadProc, (LPVOID)threadtemp, NULL, threadid );

CloseHandle( handle );

break;

}

}

接收到客戶端請求,開啟FD_READ, FD_WRITE,客戶端傳送數(shù)據(jù)過來時,接收到FD_READ通知,開啟線程ThreadProc,與客戶端進(jìn)行數(shù)據(jù)驗證及交互。

3.1.1 版本比較

為了確實(shí)軟件產(chǎn)品是否需要更新,服務(wù)器端需要接收客戶端發(fā)送的升級信息。本程序?qū)⑾到y(tǒng)當(dāng)前版本的信息以一定的格式寫入文件,存放于升級服務(wù)器中。同時客戶端也存在相同類型的文件以記錄客戶端的版本信息。當(dāng)客戶端連接到升級服務(wù)器以后,首先將客戶端升級信息發(fā)送到服務(wù)器端,與服務(wù)器端的版本信息進(jìn)行比較,然后分析出當(dāng)前版本是否需要升級。

3.1.2 數(shù)據(jù)傳輸?shù)陌踩元?/p>

為了保證服務(wù)器端相關(guān)程序不被竊取,本程序采用了一次一密的加密方式,即當(dāng)用戶第一次更新時,會發(fā)送公司指定的用戶名密碼至服務(wù)器,此時客戶端程序同時會獲取用戶所用機(jī)器的硬件數(shù)據(jù)(機(jī)器特征值),發(fā)送到服務(wù)器端。用戶再次需要升級時,會驗證用戶名密碼以及機(jī)器的特征是否正確后才能完成升級服務(wù)。每次用戶提交給服務(wù)器的驗證結(jié)構(gòu)體如下定義:

typedef struct UserInfo

{

char username[100];//用戶名

char password[100];//用戶密碼

char product[20];//更新的項目ID

char machineMD5[50];//用戶PC的唯一標(biāo)識

}USERINFO,*LPUSERINFO;

machineMD5為獲取客戶機(jī)相關(guān)硬件特征值。

對于文件數(shù)據(jù)的傳輸,為避免數(shù)據(jù)泄露,均在客戶采用DES加密后進(jìn)行傳送,服務(wù)器端收到數(shù)據(jù)解密后寫文件。

3.1.3 獲取更新文件列表

客戶端將產(chǎn)品路徑中的文件中各文件信息發(fā)送到客戶端,每個文件的結(jié)構(gòu)體定義如下:

typedef struct List

{

char filepath[260];//文件的相對路徑

char md5hash[50];//文件的md5值

}FILELIST,*LPFILELIST;

md5hash變量取文件的md5值,客戶端產(chǎn)品路徑中的各文件的路徑及md5值與服務(wù)器端的此結(jié)構(gòu)體數(shù)組進(jìn)行比較,由于相同的文件具有相同的md5值,得出需要更新的文件信息。

3.2 客戶端的實(shí)現(xiàn)

客戶端是獨(dú)立于產(chǎn)品的工具,默認(rèn)設(shè)置為開機(jī)自動運(yùn)行的,也可以進(jìn)行手動升級。如服務(wù)器開啟,客戶端連接升級服務(wù)器,并將升級服務(wù)器的版本文件與本機(jī)的版本文件相比較,若有新版本,則將服務(wù)器傳送的文件下載到本地臨時目錄下,再進(jìn)行升級安裝。如果不需要升級,則提示后自行退出。升級服務(wù)器支持端點(diǎn)續(xù)傳功能,在客戶端下

載時,將下載文件和服務(wù)器端的文件進(jìn)行大小比較,對余下的數(shù)據(jù)進(jìn)行傳送。

參考文獻(xiàn)

[1]劉偉,耿英三.軟件自動升級系統(tǒng)的研制與開發(fā)[J].計算機(jī)工程與應(yīng)用,2002,(15).

[2]李青森,何丕廉,董旭源.軟件系統(tǒng)版本自動更新功能的設(shè)計和實(shí)現(xiàn)[J].微處理機(jī),2004,(1) .

主站蜘蛛池模板: 国产美女无遮挡免费视频网站| 69精品在线观看| 国产欧美精品一区aⅴ影院| 99精品一区二区免费视频| 美女视频黄频a免费高清不卡| 亚洲精品国产综合99| 国产成人无码久久久久毛片| aⅴ免费在线观看| 日本在线视频免费| 最新国语自产精品视频在| 97视频精品全国免费观看| AV不卡无码免费一区二区三区| 四虎成人免费毛片| 国产无人区一区二区三区| 亚洲无卡视频| 国产在线观看精品| h视频在线播放| 国禁国产you女视频网站| 综合社区亚洲熟妇p| 国产成人永久免费视频| 国产91导航| 精品国产一区91在线| 亚洲精品综合一二三区在线| 精品国产99久久| 亚洲色图欧美| 亚洲区欧美区| 国产成人一二三| 久久精品日日躁夜夜躁欧美| 色欲综合久久中文字幕网| 亚洲愉拍一区二区精品| 欧美性久久久久| 精品91在线| 久久九九热视频| 色婷婷在线播放| 亚洲香蕉伊综合在人在线| 国产精品成人AⅤ在线一二三四| 成人国产小视频| 国产福利影院在线观看| 久操线在视频在线观看| 国内精品自在自线视频香蕉| 天堂成人av| 欧美久久网| 在线免费观看AV| 久久国产黑丝袜视频| 91免费国产在线观看尤物| 91亚瑟视频| 国产男女免费视频| 日韩激情成人| 精品国产黑色丝袜高跟鞋| AV不卡无码免费一区二区三区| 蜜臀AVWWW国产天堂| 露脸国产精品自产在线播| 丝袜国产一区| 伊人久久大香线蕉影院| 伊人福利视频| 久久一级电影| 欧美成人h精品网站| 国产黄视频网站| 在线观看视频一区二区| 在线看片免费人成视久网下载| 蝴蝶伊人久久中文娱乐网| 欧美第一页在线| 日本人妻一区二区三区不卡影院| 最新国产精品鲁鲁免费视频| 欧美亚洲香蕉| 美女免费黄网站| 国产素人在线| 2021国产乱人伦在线播放| 日韩欧美一区在线观看| 黄色网在线| 成年人福利视频| 欧美a在线视频| 日本成人精品视频| 欧美另类第一页| 天天综合网色中文字幕| 天天激情综合| 国产乱子伦视频在线播放| 亚洲制服丝袜第一页| 理论片一区| 蜜芽一区二区国产精品| 日本不卡视频在线| 日韩不卡高清视频|