亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        PB客戶端軟件自動(dòng)升級(jí)的設(shè)計(jì)與實(shí)現(xiàn)

        2017-12-02 03:03:39滿洲里出入境檢驗(yàn)檢疫局姜曉龍
        電子世界 2017年22期
        關(guān)鍵詞:程序

        滿洲里出入境檢驗(yàn)檢疫局 姜曉龍

        PB客戶端軟件自動(dòng)升級(jí)的設(shè)計(jì)與實(shí)現(xiàn)

        滿洲里出入境檢驗(yàn)檢疫局 姜曉龍

        PB(PowerBuilder)應(yīng)用程序的客戶端系統(tǒng)更新絕大多數(shù)采用本地計(jì)算機(jī)完全式安裝或拷貝式安裝進(jìn)行,CS模式的程序設(shè)計(jì)在系統(tǒng)更新環(huán)節(jié)上確實(shí)浪費(fèi)了大量的人力、物力和工作時(shí)間。本文詳細(xì)地介紹一種局域網(wǎng)內(nèi)客戶端軟件自動(dòng)升級(jí)的實(shí)現(xiàn)方法,它將有效地減輕客戶端程序升級(jí)工作的重荷,彌補(bǔ)CS結(jié)構(gòu)的系統(tǒng)在更新任務(wù)方面的不足和缺陷。

        客戶端軟件;自動(dòng)升級(jí);文件服務(wù)器;配置文件;程序版本

        1.引言

        在較大的CS結(jié)構(gòu)的管理系統(tǒng)中,需求的變化、補(bǔ)丁的加載以及系統(tǒng)的升級(jí)等原因?qū)е聦?duì)客戶端應(yīng)用程序的修改會(huì)帶來(lái)大量的客戶端更新工作。維護(hù)人員必須到每臺(tái)客戶機(jī)去更新安裝,這就大大加重了維護(hù)人員的工作量。在客戶端計(jì)算機(jī)數(shù)量相對(duì)較少的情況下這種情形還可以忍受,倘若局域網(wǎng)內(nèi)存在數(shù)十臺(tái)乃至幾百臺(tái)等待更新的機(jī)器,而網(wǎng)絡(luò)節(jié)點(diǎn)分布又不集中,其工作強(qiáng)度將是不言而喻的。因此,實(shí)現(xiàn)PB客戶端軟件自動(dòng)升級(jí)的必要性是毋庸置疑的,它可以充分彌補(bǔ)CS模式在系統(tǒng)升級(jí)換代方面存在的不足和缺陷。本文結(jié)合出口果蔬隨附單據(jù)無(wú)紙化報(bào)檢系統(tǒng)客戶端應(yīng)用程序自動(dòng)升級(jí)的解決方案,介紹一種局域網(wǎng)內(nèi)可自動(dòng)升級(jí)客戶端軟件的實(shí)現(xiàn)方法。

        2.技術(shù)原理

        PB客戶端應(yīng)用程序?qū)崿F(xiàn)自動(dòng)升級(jí)的技術(shù)原理是在局域網(wǎng)內(nèi)專門放置一臺(tái)文件服務(wù)器或直接使用現(xiàn)有的數(shù)據(jù)服務(wù)器,存放最新的應(yīng)用程序文件和配置文件。啟動(dòng)客戶端程序自動(dòng)升級(jí)功能時(shí),應(yīng)用程序首先執(zhí)行配置文件,提取相應(yīng)的升級(jí)參數(shù),即本地計(jì)算機(jī)應(yīng)用程序的版本、服務(wù)器名稱或地址以及服務(wù)器保存更新文件的共享文件夾;接著根據(jù)所提取的服務(wù)器名稱或地址和共享目錄,到文件服務(wù)器下載最新應(yīng)用程序的版本信息;然后比較服務(wù)器程序版本與本地程序版本,如果服務(wù)器程序版本高于本地程序版本,說(shuō)明文件服務(wù)器上已存在更加新版的客戶端應(yīng)用程序,則提示用戶是否對(duì)本地計(jì)算機(jī)應(yīng)用程序進(jìn)行更新操作,最后再運(yùn)行新升級(jí)的主程序。

        3.功能實(shí)現(xiàn)

        ⑴創(chuàng)建一個(gè)INI類型的配置文件CSUpgrade.ini,其具體內(nèi)容如下:

        [Options]

        Version=網(wǎng)絡(luò)版V8.2.11.0723

        //程序版本號(hào),比較本地程序版本與服務(wù)器程序版本是否一致

        Server=\10.15.10.1

        //文件服務(wù)器名稱或IP地址

        Folder=CSUpgrade

        //存放更新文件的共享文件夾

        File=CS2010.exe|CS2010.dll|DBConfig.exe|EDecl.exe

        //存放應(yīng)用程序文件列表并以分隔符“|”間隔

        Notes=新增了流程控制、系統(tǒng)日志、大寫中文數(shù)字發(fā)音拼寫檢查、數(shù)據(jù)源的自動(dòng)配置和OLE控件的自動(dòng)注冊(cè)以及圖片按鈕和XP風(fēng)格按鈕等實(shí)用功能。

        //告知客戶端用戶需要更新的主要內(nèi)容說(shuō)明或注釋文本

        ⑵在用于更新提示的窗口中自定義一個(gè)函數(shù)wf_GetFileNameL-ist,用于從文件服務(wù)器提供的配置文件的文件列表中取得各個(gè)需要進(jìn)行升級(jí)的文件,分別存放在一個(gè)數(shù)組中,并返回升級(jí)文件的個(gè)數(shù)。

        ⑶定義窗口用戶事件ue_postopen,用于比較本地程序版本與服務(wù)器程序版本是否一致。如果服務(wù)器程序版本與本地程序版本互相一致,則直接啟動(dòng)系統(tǒng)的主程序,同時(shí)關(guān)閉自動(dòng)升級(jí)窗口;如果服務(wù)器程序版本高于本地程序版本,則提取文件服務(wù)器提供的配置文件的注釋文本,以便用戶決定是否進(jìn)行本地計(jì)算機(jī)應(yīng)用程序的更新工作,主要程序腳本如下:

        Ls_Local_INIFile=’CSUpgrade.ini’

        //本地或服務(wù)器INI配置文件名稱

        Ls_Local_Version=ProfileString(Ls_Local_INIFile,’Options’,’Version’,’’)

        //本地應(yīng)用程序版本

        SELECT Server_Path,File_Folder INTO :Ls_Server,:Ls_Server_Folder FROM T_CS_Parameter;

        //提取文件服務(wù)器名稱或IP地址以及共享文件夾

        Ls_Server_Folder=Ls_Server + ‘’ + Ls_Server_Folder + ‘’

        //設(shè)置文件服務(wù)器路徑

        Ls_Server_INIFile=Ls_Server_Folder + ‘CSUpgrade.ini’

        //設(shè)置文件服務(wù)器端的INI配置文件

        Ls_Server_Version=ProfileString(Ls_Server_INIFile,’Options’,’Version’,’’)

        //獲取文件服務(wù)器程序版本

        Ls_File=ProfileString(Ls_Server_INIFile,’Options’,’File’,’’)

        //獲取更新文件列表

        Ls_Notes=ProfileString(Ls_Server_INIFile,’Options’,’Notes’,’’)

        //獲取更新說(shuō)明

        IF(Ls_Server_Versiongt;Ls_Local_Version)THEN

        //比較本地與服務(wù)器程序版本號(hào)

        This.Show()

        //顯示自動(dòng)更新窗口

        mle_1.text=’文件服務(wù)器存在新的版本應(yīng)用程序,說(shuō)明如下:~r~n”’ +Ls_Notes + ‘”~r~n您是否更新本地應(yīng)用程序?’

        //顯示客戶端軟件需要更新的文本說(shuō)明

        ELSE

        Run(‘CS2010.exe’) ; Halt Close

        //啟動(dòng)主程序并退出自動(dòng)更新窗口

        END IF

        ⑷“更新(R)”按鈕主要實(shí)現(xiàn)的功能是進(jìn)行自動(dòng)升級(jí)程序的創(chuàng)建過(guò)程,自動(dòng)更新過(guò)程界面效果如右圖所示。編寫如下主要腳本:

        Li_FileCount=wf_getfilename(Ls_File)

        //獲取文件列表并保存在Is_FileName[]數(shù)組中

        L s_Text=”程序更新開始:” + String(Today(),’yyyy-mm-dd’) + ‘ ‘ +String(Now()) + ‘ ‘ + ayName(Today())

        Lit_CSUpgrade_Start=CPU()

        //獲取自動(dòng)更新的開始時(shí)間計(jì)數(shù)

        mle_1.text=Ls_Text

        mle_1.text=mle_1.text + ‘~r~n’ + ‘---’ //設(shè)置分隔符,記錄自動(dòng)更新過(guò)程并實(shí)時(shí)顯示

        Ls_Text=’~r~n’ + String(0) + ‘、’ + “版本:” + Ls_Local_Version +“→” + Ls_Server_Version

        mle_1.text=mle_1.text + Ls_Text + ‘~r~n’ + ‘---’

        Li_Rtn=FileCopy(ls_Server_Folder + Ls_Local_INIFile,Ls_Local_INIFile,True)

        IF(Li_Rtn=1)THEN ; Ls_Flag=’成功!’ ; ELSE ; Ls_Flag=’失敗!’ ; END IF

        Ls_Text=’~r~n’ + String(1) + ‘、’ + “文件:” + Ls_Local_INIFile + ‘更新’ + Ls_Flag + String(Today(),’yyyy-mm-dd’) + ‘ ‘ + String(Now())

        //更新本地計(jì)算機(jī)INI文件并標(biāo)注拷貝完成時(shí)間

        mle_1.text=mle_1.text + Ls_Text

        FOR i = 1 TO Li_FileCount

        //依次更新程序文件

        Li_Rtn=FileCopy(ls_Server_Folder + Is_FileName[i],Is_FileName[i],True)

        IF(Li_Rtn=1)THEN ; Ls_Flag=’成功!’ ; ELSE ; Ls_Flag=’失敗!’ ; END IF

        Ls_Text=’~r~n’ + String(i+1) + ‘、’ + “文件:” + Is_FileName[i] + ‘更新’+ Ls_Flag + String(Today(),’yyyy-mm-dd’) + ‘ ‘ + String(Now())

        //更新本地計(jì)算機(jī)程序文件并標(biāo)注拷貝完成時(shí)間

        mle_1.text=mle_1.text + Ls_Text

        mle_1.Scroll(i * 2)

        //滾動(dòng)系統(tǒng)當(dāng)前光標(biāo)位置

        NEXT

        UPDATE T_CS_Parameter SET Programme_Edition = :Ls_Server_Version;

        //更新客戶端的最新顯示版本

        mle_1.text=mle_1.text + ‘~r~n’ + ‘---’

        Ls_Text=”程序更新完畢:” + String(Today(),’yyyy-mm-dd’) + ‘ ‘ +String(Now()) + ‘ ‘ + DayName(Today())

        SetProfileString(Ls_Local_INIFile,’Options’,’File’,’’)

        SetProfileString(Ls_Local_INIFile,’Options’,’Notes’,’’)

        Lit_CSUpgrade_End=CPU()

        //獲取自動(dòng)更新的結(jié)束時(shí)間計(jì)數(shù)

        Ls_Text=Ls_Text + ‘ ‘ + String(Round(Long((Lit_CSUpgrade_End - Lit_CSUpgrade_Start) * 0.001),3))

        mle_1.text=mle_1.text + Ls_Text

        //統(tǒng)計(jì)自動(dòng)更新用時(shí)并顯示自動(dòng)更新全部日志

        ⑸當(dāng)服務(wù)器程序更新時(shí),技術(shù)人員只需將配置文件CSUpgrade.ini和最新版本的程序存放到文件服務(wù)器的配置文件的Folder項(xiàng)指定的目錄,并修改CSUpgrade.ini文件的程序版本號(hào)(Version)、需要更新的文件列表(File)和升級(jí)注解(Notes)等各項(xiàng)內(nèi)容即可,但必須保證服務(wù)器程序的版本號(hào)高于客戶端程序的版本號(hào)。

        ⑹實(shí)現(xiàn)圖標(biāo)欄隱式運(yùn)行升級(jí)任務(wù)。圖標(biāo)欄的應(yīng)用為客戶端軟件的自動(dòng)升級(jí)增光添色,它可以實(shí)現(xiàn)完全隱藏的運(yùn)行升級(jí)程序窗口。系統(tǒng)自動(dòng)升級(jí)窗口運(yùn)行后,在Windows操作系統(tǒng)的圖標(biāo)欄中顯示該應(yīng)用程序的圖標(biāo)。根據(jù)提取到的升級(jí)參數(shù)比較兩地程序的版本,當(dāng)服務(wù)器程序版本與本地程序版本一致時(shí),直接調(diào)用系統(tǒng)的主程序并關(guān)閉自動(dòng)升級(jí)提示窗口;而當(dāng)服務(wù)器程序版本高于本地程序版本時(shí),彈出自動(dòng)更新窗口并顯示升級(jí)程序的文本注釋。

        4.結(jié)束語(yǔ)

        PB客戶端軟件自動(dòng)升級(jí)技術(shù)已經(jīng)在各類檢驗(yàn)檢疫輔助通關(guān)系統(tǒng)中成功應(yīng)用,系統(tǒng)更新時(shí)發(fā)揮出的作用特別明顯,可以使客戶端的更新工作在本地計(jì)算機(jī)自動(dòng)完成,無(wú)需維護(hù)人員到每臺(tái)客戶機(jī)去更新安裝,從而最大限度地減少了維護(hù)的工作量,提高了技術(shù)人員的工作效率。

        [1]柯建勛,張濤,邵亮編著.PowerBuilder9.0實(shí)例與技巧[M].北京:清華大學(xué)出版社,2003.

        [2]侯志平,等.編著.PowerBuilder6.0參考手冊(cè)[M].北京:曉通數(shù)據(jù)庫(kù)研究與發(fā)展中心,2001.

        姜曉龍(1977-),男,高級(jí)工程師,計(jì)算機(jī)數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)與開發(fā)。

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        試論我國(guó)未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        基于VMM的程序行為異常檢測(cè)
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國(guó)刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        国产一精品一av一免费爽爽| 成人影院免费视频观看| 男人天堂插插综合搜索| 色天使久久综合网天天| 明星性猛交ⅹxxx乱大交| 亚洲黄色尤物视频| 在线亚洲精品免费视频| 亚洲精品久久国产精品| 中国凸偷窥xxxx自由视频妇科 | .精品久久久麻豆国产精品| 日本老年人精品久久中文字幕| 亚洲成人一区二区av| 女人被狂躁c到高潮视频| 在教室伦流澡到高潮hnp视频| 激情文学人妻中文字幕| 风韵人妻丰满熟妇老熟女视频| 内射欧美老妇wbb| 欧美日本亚洲国产一区二区| 三级黄色片一区二区三区| 国内自拍愉拍免费观看| 中国农村妇女hdxxxx| 久久国产综合精品欧美| 精品一区2区3区4区| 东北少妇不戴套对白第一次| 少妇被爽到高潮动态图| 亚洲αv在线精品糸列 | 亚洲又黄又大又爽毛片| 国产午夜视频一区二区三区| 亚洲亚洲人成综合网络| 一本无码av一区二区三区| 国产一区二区视频在线看| 久久精品国产清自在天天线| 又爽又黄禁片视频1000免费| 一区二区三区在线观看日本视频| 亚洲女优中文字幕在线观看| 久久久久女人精品毛片| 婷婷一区二区三区在线| 一区二区三区四区亚洲免费| 精品免费久久久久久久| 亚洲综合免费| 国产三级av在线精品|