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

PB10.0實現C/S模式下客戶端軟件自動升級

2010-12-29 09:15:10
銅業工程 2010年4期

嚴 紅

(江西銅業集團公司德興銅礦,江西德興 334224)

PB10.0實現C/S模式下客戶端軟件自動升級

嚴 紅

(江西銅業集團公司德興銅礦,江西德興 334224)

文章分析了以C/S模式開發的軟件系統,客戶端采用通過Intranet自動下載最新版本的軟件升級原理,升級軟件在PB環境下開發成功。該方法在德興銅礦采礦場已經得到推廣應用,使軟件的升級維護在客戶端自動下載完成,方便快速。

C/S模式;軟件維護;自動升級

1 引言

在M IS系統的開發過程中,大多數采用客戶端/服務器(C/S)模式[1]或瀏覽器/服務器(B/S)模式。由于B/S模式是一種以Web技術為基礎的新型開發模式,正在以其優勢逐漸占據主流地位。但是,C/S模式是當前開發應用軟件非常成熟的模式,特別是在解決工作組問題中非常有效,市場上仍然被大量采用,而且C/S模式的歷史比較長,所以在實際應用當中,C/S模式的軟件占據了很大的比例,德興銅礦采礦場目前開發的各類應用程序如:生產調度管理系統、計件工資管理系統、電動輪設備管理系統、生產統計經營報表系統、備件管理系統等都是采用此種模式(PowerBuilder10.0/Sql Server2000)。C/S模式需要在每個客戶端安裝應用程序,隨著現場管理的需要的變化,這些應用程序經常需要修改,應用程序一經修改客服端需要重新安裝應用程序,而現場客戶端地理位置又非常分散,導致計算機維護人員的工作量非常大。為了有效解決這一問題,我們自行開發了一個應用軟件自動升級程序,應用程序修改后只需上傳到服務器,客服端運行就實現自動升級更新。

2 自動升級原理

客戶端軟件在運行前,首先進行初始化,通過局域網從Sql Server服務器數據庫得到該軟件的最新版本信息NewVersion(存放在服務器的數據庫中),同時讀取本地文件中(Version.ini文件)存放的上次升級后的版本信息OldVersion,比較兩者,判斷現行系統是否為最新版本。如果兩者一致則證明當前系統已經是最新版本,啟動系統;若不一致,提示用戶軟件有新版本,詢問是否要更新,如果選擇是(如圖1所示),則從服務器上下載新版本,下載成功后刪除舊版本并更新當地文件中的版本變量值OldVis-Num,啟動新系統,如果選擇否,不更新軟件,直接啟動老版本軟件。如果由于網絡堵塞等原因導致下載不成功,則啟動原先版本,版本變量值不變,直到下次運行該系統時再次升級[2]。

圖1 程序升級提示信息窗口

3 程序實現方法和結構

開發工具使用Powerbuilder10.0,數據庫使用Sql2000Server。建立如下數據表SofVisAttribute(表1),用于記錄各個軟件和模塊的相應版本等屬性:

表1 SofVisAttribute表結構

其中,用字段 ID作表的主鍵,用記錄的行號作為 ID字段的值,保證唯一性。

程序分為服務器和客戶端兩部分,服務器部分安裝在FTP服務器上,用于操作屬性表SofVis Attribute,向其中“添加”或者“刪除”記錄,主要是軟件維護人員在更新軟件時用來修改數據庫中的相應記錄。客戶端部分跟隨應用程序的客戶端軟件安裝在C/S模式的客戶機上,用于實現客戶端軟件的自動下載更新。下面分別進行描述:

網絡下載使用FTP或者HTTP協議。在本文的程序實例中選用FTP協議下載。FTP協議,全名Fi1e Transfer Protocol(文件傳輸協議),簡單點來說,它就是一種專門用來傳送文件的網絡協議。比起大家所熟知的HTTP協議(Hypertext Transfer Protocol,超文本傳送協議),FTP協議具有傳輸速度快、管理簡單、界限更大的優點,對于服務器端來說,FTP可以節省更多的系統資源。

由于Powerbuilder10.0本身并未提供任何FTP的功能,因此想在PB10.0中進行FTP傳輸,只能應用PB10.0以外的資源,一般情況有以下幾種常用方法:

(1)直接調用外部命令:此方法的優點是簡單易行,既不需要調用API函數,也不需加入OLE。缺點也很明顯,一是要運行外部命令,將會打開dos窗口,顯得不夠和諧;二是數據傳輸成功與否無法判斷,在編程時不好控制;

(2)使用Internet Transfer控件:Internet Transfer控件的功能很強大,利用它足以制作一個功能比較完善的FTP工具,而且它是操作系統自帶的,在編程時不需要注冊新的控件。但此控件也有不能忽視的缺點,它的數據上傳下載是異步傳輸的,在每次只運行一個FTP命令時尚可,如果一次運行多個FTP命令就會出錯。

我們采取一種新的方式:將FTP的命令用VC ++打包,做成動態鏈接庫(DLL)文件,從系統中調用函數。動態庫函數說明如下[3]:

(1)檢查您的計算機是否在線:function int IsInternetConnection()Library"seinweb.DLL";

(2)下載函數(通過FTP):

function int Ge tWebFile(string host,string user, string pas sword,string remotefile,string localfile,int UpDowntype,ref string RtnError)Library"seinweb. DLL"[4];

說明:參數UpDowntype為0表示下載文件,為1表示上載文件,如需下載文件,則:

3.1 服務器端程序

服務器部分,功能相對簡單,程序設計主要步驟如下:

(1)建立PB10.0的應用,并且連接SQl2000數據庫,數據庫的連接示例如下:

(2)連接表空間SofVi sAttribute,建立數據窗口d_vision,選擇所有字段,并且將字段 ID設為自動增加屬性,如getrow()等,以保證主鍵的唯一性。

(3)建立主窗口,并添加數據窗口控件dw_1,連接d_vision,添加按鈕“增加”,“刪除”,“保存”,填寫相應功能代碼,如“增加”按鈕的代碼部分如下:

建議用當前日期和時間的字符串作為版本號,在“添加”按鈕中根據當前計算機的日期和時間自動填寫該字段內容,當然也可以根據需要用其他類型的版本號。

“保存”按鈕的部分代碼如下:

(4)編譯完成。記錄填寫示例如下(以生產調度管理系統為例,表2)。

表2 生產調度管理系統數據記錄表

3.2 客戶端程序

客戶端部分用于實現軟件的版本號識別和軟件自動下載,功能較服務器端復雜,主要設計步驟如下:

(1)建立PB10.0的應用,并且連接SQl2000數據庫,申明實現FTP功能的兩個外部函數,如前面所述。

(2)在本地機建立初始化文件Download.ini,格式示例如下:

(3)連接表空間SofVi sAttribute,建立數據窗口d_vision,選擇所有字段。

(4)建立主窗口,并添加數據窗口控件dw_1,連接d_vision,填寫相應功能代碼。

(5)增加按鈕“下載”,用于填寫FTP下載功能代碼,并且設置Visible屬性為No,即:不可見。

下載文件在“下載”按鈕的clicked事件中完成,在主程序中當版本號不一致時觸發該事件,示例如下:

上述列出了自動升級軟件的客戶端部分的主要功能,以及主要的實現方法。如果做一個完整的程序,還需要有進一步的美化和完善,例如:

(1)當下載新版本軟件時,如果耗時較長,那么就需要彈出一個等待窗口,我們可以根據當前下載的字節數和軟件總的大小的比值來做一個動態的滾動條,以使操作界面更人性化如圖2所示。

圖2 程序升級文件傳輸過程圖

(2)為了操作方便,可以在系統服務器上建立FTP服務器,給每個軟件系統分配一個用戶名,即客戶端軟件通過此用戶名登陸FTP服務器后下載更新程序。

(3)當下載不成功時,彈出對話框給予提示失敗的原因等。

(4)另外,為了防止文件的意外丟失,在主程序中備份Download.ini,如果檢測到該文件丟失,則啟用備份文件來恢復,這樣不致于程序陷入癱瘓狀態。

(5)為了實現更好的通用性,可以把有關FTP的屬性設置存放在數據庫中,這樣當FTP服務器有所變動時,只要修改這一條記錄即可,而不用到客戶機上修改Download.ini文件。

4 結束語

軟件開發者和維護人員充分利用Intranet網絡,開發具有自動升級功能的軟件具有很強的實際意義。在德興銅礦采礦場生產調度管理系統的開發和維護過程中,這套自動升級的方法得到了非常成功的應用。現在己成功推廣到全場各種應用軟件,使用戶軟件升級更加方便快捷,大大減少了維護人員的工作量。

[1] 梅怡紅.如何使客戶端的應用程序自動升級[J].微電子技術, 2007.2.

[2] 喬俊玲,閆曉婷.信息管理系統客戶端軟件自動升級的實現[J].福建電腦,2007,(4).

[3] 凌小鵬.用VB創建支持斷點續傳的Internet傳輸控件[J].計算機應用研究,2006.

[4] 王志霞.文件傳輸協議FTP命令詳解[J].黑龍江氣象,2008.2.

PB10.0 Realizes Client Software Automatic Upgrade under C/SM ode

YAN Hong

(JCC Dexing CopperMine,DeXing,Jiangxi,China 334224)

In this article,the software system developed with C/S mode is analyzed.The clients adopt Intranet to automatically download the software of the latest edition to get upgrade principle.The upgrade software is developed successfully under the PB environment.Thismethod has already got an expansion application in Dexing CopperMine.Software’s upgrade andmaintenance can be automatic download at the customerwith convenience and fast.

C/Smode;software support;automatic update

TP31

B

1009-3842(2010)04-0072-03

2010-10-14

嚴紅(1977-),男,漢族,江西分宜人,學士,工程師,主要從事計算機軟件開發及系統安全工作,E-mail:ychy28@sina.com

主站蜘蛛池模板: 欧美午夜网站| 国产精品一老牛影视频| 伊人久久久久久久久久| A级全黄试看30分钟小视频| 无码啪啪精品天堂浪潮av| 国产精品视频第一专区| 欧美国产另类| 亚洲欧美不卡视频| a级毛片网| 欧美日韩第二页| 99精品国产自在现线观看| 久久久国产精品无码专区| 高清乱码精品福利在线视频| 日韩av电影一区二区三区四区| 国产精品乱偷免费视频| 在线观看av永久| 国产精品成人不卡在线观看| 日本AⅤ精品一区二区三区日| h视频在线播放| 国产在线观看精品| 国产精品永久不卡免费视频| 在线播放精品一区二区啪视频| 天天综合网亚洲网站| 99久久国产综合精品2020| 成人国产精品网站在线看 | 被公侵犯人妻少妇一区二区三区| 精品91自产拍在线| 亚洲天堂久久| 成人国产小视频| 国产9191精品免费观看| 狠狠躁天天躁夜夜躁婷婷| 国产精品深爱在线| 国产白浆在线观看| 婷婷色狠狠干| 激情综合网址| 国产免费羞羞视频| 三级毛片在线播放| 亚洲一本大道在线| 好吊色国产欧美日韩免费观看| 亚洲综合精品香蕉久久网| 无码精油按摩潮喷在线播放 | 毛片国产精品完整版| 无码中文AⅤ在线观看| 亚洲日韩精品欧美中文字幕 | 国产全黄a一级毛片| 日本不卡免费高清视频| 国产黄网站在线观看| 国产视频a| 国产精品分类视频分类一区| 日韩欧美中文在线| 成人毛片在线播放| 亚洲国产精品久久久久秋霞影院| 欧美一区二区三区国产精品| 国产成人精品男人的天堂| 亚洲欧美在线精品一区二区| 欧美特黄一免在线观看| 亚洲国产日韩欧美在线| 日韩免费中文字幕| 亚洲bt欧美bt精品| 亚洲视频影院| 精品国产www| 女同国产精品一区二区| 久久精品国产精品青草app| 伊人激情综合网| 精品国产一二三区| 色屁屁一区二区三区视频国产| 国产一区二区三区免费观看| 日韩少妇激情一区二区| 黄色一级视频欧美| 国产特级毛片aaaaaaa高清| 青青草原国产免费av观看| 日韩无码视频专区| 中文字幕va| 日韩无码黄色| V一区无码内射国产| 人妻免费无码不卡视频| 欧美日韩在线亚洲国产人| 亚洲成A人V欧美综合天堂| 欧美日韩v| 久草视频中文| 91视频日本| 免费看黄片一区二区三区|