• 
    

    
    

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

      ?

      多線程異地備份發(fā)動機(jī)數(shù)據(jù)軟件設(shè)計與應(yīng)用

      2016-12-12 06:51:34黃國良羅朝輝
      火箭推進(jìn) 2016年4期
      關(guān)鍵詞:服務(wù)器端線程異地

      黃國良,張 銳,羅朝輝

      (1.西安航天動力研究所,陜西西安710100;2.北京航天動力研究所,北京 100076)

      多線程異地備份發(fā)動機(jī)數(shù)據(jù)軟件設(shè)計與應(yīng)用

      黃國良1,張 銳2,羅朝輝1

      (1.西安航天動力研究所,陜西西安710100;2.北京航天動力研究所,北京 100076)

      通過開發(fā)發(fā)動機(jī)信息管理系統(tǒng)后臺數(shù)據(jù)的異地備份軟件,介紹了以Delphi 10 Seattle為開發(fā)工具,應(yīng)用Indy組件,多線程方式實現(xiàn)客戶端向服務(wù)器端發(fā)送備份指令,完成數(shù)據(jù)的備份、加密壓縮以及向異地客戶端推送數(shù)據(jù),以客戶端完成壓縮數(shù)據(jù)的接收結(jié)束異地傳輸,同時服務(wù)器端實時向不同客戶端發(fā)送執(zhí)行過程信息。因發(fā)動機(jī)數(shù)據(jù)量較大,備份和傳輸時間較長,在異地客戶端采用同步進(jìn)度條顯示。軟件設(shè)計采用TCP可靠傳輸,提高數(shù)據(jù)傳輸?shù)陌踩浴?/p>

      發(fā)動機(jī)信息管理;多線程異地備份;Delphi 10 Seattle;Indy;軟件設(shè)計

      0 引言

      發(fā)動機(jī)信息管理系統(tǒng)項目投入使用后,該系統(tǒng)的數(shù)據(jù)具有數(shù)據(jù)增速快、業(yè)務(wù)依賴性高、數(shù)據(jù)交換頻繁等特點。同時,保障管理系統(tǒng)數(shù)據(jù)的安全越來越成為系統(tǒng)長期穩(wěn)定運行的關(guān)鍵,也成為保障科研生產(chǎn)、試驗順利進(jìn)行的關(guān)鍵,而數(shù)據(jù)備份的重要性卻往往被忽視,只要在網(wǎng)絡(luò)中發(fā)生數(shù)據(jù)的傳輸、存儲和交換,就有可能產(chǎn)生數(shù)據(jù)故障,不及時采取數(shù)據(jù)備份,有時造成的損失是無法彌補(bǔ)與估量的。

      數(shù)據(jù)備份不是單純的數(shù)據(jù)復(fù)制,尤其是關(guān)系型數(shù)據(jù)庫,各種關(guān)系圖、數(shù)據(jù)表和視圖等組成的數(shù)據(jù)之間的邏輯關(guān)系,如控制文件、數(shù)據(jù)文件。使用單純的文件復(fù)制方式無法保障數(shù)據(jù)的完整性,數(shù)據(jù)恢復(fù)后會造成應(yīng)用系統(tǒng)因缺少數(shù)據(jù)之間的邏輯控制而崩潰。數(shù)據(jù)庫雖然提供簡單的備份工具,但遠(yuǎn)不能滿足多客戶端對異地數(shù)據(jù)備份的需要。多線程方式發(fā)動機(jī)數(shù)據(jù)異地備份軟件是基于封裝系統(tǒng)數(shù)據(jù)庫的動態(tài)鏈接庫,獨立開發(fā)服務(wù)器應(yīng)用系統(tǒng),采用服務(wù)器端多線程數(shù)據(jù)備份,以客戶端交互方式實時顯示備份和異地文件傳輸?shù)倪M(jìn)度,既解決了多客戶端任務(wù)處理、數(shù)據(jù)備份、異地傳輸、數(shù)據(jù)安全性的問題,也便于客戶端直觀了解數(shù)據(jù)在備份和網(wǎng)絡(luò)傳輸過程中的進(jìn)度。

      1 軟件需求分析

      發(fā)動機(jī)數(shù)據(jù)備份軟件的功能需求:軟件由兩部分組成,第一部分由服務(wù)器應(yīng)用程序配置服務(wù)器端,將連接到服務(wù)器上的客戶端分配不同ID的線程,處理來自客戶端的消息、會話及指令,由指令完成數(shù)據(jù)庫的備份、壓縮及數(shù)據(jù)的推送;第二部分由客戶端向服務(wù)器端發(fā)送客戶端消息、會話及指令,并接收來自服務(wù)器TCP傳輸?shù)臄?shù)據(jù)包,存儲備份文件,以進(jìn)度條形式顯示、接收服務(wù)器端推送數(shù)據(jù),完成客戶端的異地存儲。

      2 軟件設(shè)計

      2.1軟件功能設(shè)計

      軟件功能設(shè)計見圖1,分服務(wù)器端和客戶端,根據(jù)需求服務(wù)器端軟件主要包括:服務(wù)器設(shè)置、數(shù)據(jù)處理、文件壓縮、Tcp數(shù)據(jù)傳輸4個功能模塊。客戶端軟件主要包括:連接設(shè)置、客戶端數(shù)據(jù)處理兩個功能模塊。

      2.1.1服務(wù)器端

      1)服務(wù)器設(shè)置。服務(wù)器設(shè)置包括端口設(shè)置、基本設(shè)置、數(shù)據(jù)庫設(shè)置、傳輸設(shè)置,分別對服務(wù)器IP地址、服務(wù)器端口號、數(shù)據(jù)庫備份文件目錄、壓縮文件目錄、壓縮應(yīng)用文件目錄及口令、數(shù)據(jù)庫IP地址、用戶名口令、數(shù)據(jù)庫名稱、傳輸端口號進(jìn)行配置等。

      2)服務(wù)端數(shù)據(jù)處理。在數(shù)據(jù)處理功能中包括客戶端多線程處理、指令多線程處理、客戶端到服務(wù)器端消息處理、客戶端至客戶端會話處理、來自客戶端指令處理等。

      3)文件壓縮。文件壓縮功能包括文件壓縮處理,調(diào)用配置好的壓縮工具對需要備份的數(shù)據(jù)庫進(jìn)行加密壓縮,減少數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)膲毫μ岣邆鬏敯踩浴?/p>

      4)Tcp數(shù)據(jù)傳輸。Tcp數(shù)據(jù)傳輸包括流文件傳輸、備份進(jìn)度數(shù)據(jù)傳輸。在服務(wù)端將壓縮的文件以流文件的形式傳輸?shù)娇蛻舳?,同時交換傳輸進(jìn)度數(shù)據(jù)。

      2.1.2客戶端

      1)連接設(shè)置??蛻舳诉B接設(shè)置功能包括基本設(shè)置、傳輸設(shè)置、連接的服務(wù)器IP地址、服務(wù)器端口號、存儲備份文件目錄及傳輸端口號設(shè)置。

      2)客戶端數(shù)據(jù)處理??蛻舳讼蚍?wù)器端發(fā)送消息、對話和指令數(shù)據(jù),接收由服務(wù)器端反饋的消息、流文件以及其他客戶發(fā)送的對話,流文件接收過程中顯示接收的進(jìn)度,全部接收后對文件進(jìn)行解壓處理,完成數(shù)據(jù)庫在異地存儲。

      2.2軟件邏輯設(shè)計

      發(fā)動機(jī)信息管理系統(tǒng)的管理客戶端分布在局域網(wǎng)的不同物理接入點,每個客戶端連接服務(wù)器程序,同時數(shù)據(jù)備份的沖突較大,相互并不知道管理系統(tǒng)后臺的數(shù)據(jù)庫在執(zhí)行狀態(tài),服務(wù)器應(yīng)用程序創(chuàng)建多線程,分別解析每一個連接的客戶端的請求,服務(wù)器端向客戶端發(fā)送不同的實時信息,執(zhí)行相應(yīng)的操作。一個客戶端就是一個獨立線程直到該用戶退出時銷毀該線程釋放內(nèi)存,為創(chuàng)建下一個線程做準(zhǔn)備,以此反復(fù)。

      圖1 軟件功能設(shè)計Fig.1 Function design of software

      2.2.1服務(wù)器端程序邏輯設(shè)計

      服務(wù)器端應(yīng)用程序正確配置后以系統(tǒng)的服務(wù)模式運行,在指定的端口監(jiān)聽客戶端的連接請求,客戶端向服務(wù)器端發(fā)出請求后,創(chuàng)建一個新的唯一的線程ID,區(qū)別不同客戶,同時創(chuàng)建指令線程,以客戶端發(fā)送的請求作為條件,服務(wù)器端根據(jù)記錄類型參數(shù)中的標(biāo)示判斷不同的客戶端,提供相應(yīng)的服務(wù)。如果是指令則執(zhí)行備份指令線程,客戶端可以通過進(jìn)度條實時了解服務(wù)器端的備份狀態(tài),備份完成后查看壓縮配置的文件是否正確,如果配置正確調(diào)用壓縮程序壓縮備份文件,壓縮完成后將打開文件傳輸端口以流文件的形式向客戶端傳輸文件,此時客戶端同樣以進(jìn)度條的狀態(tài)了解流文件傳輸?shù)倪M(jìn)度,當(dāng)傳輸完畢后一個完整的備份指令流程執(zhí)行完成。在整個流程中如果客戶端發(fā)出的是消息或?qū)υ?,則要判斷是對所有客戶端還是對某一個IP地址的客戶端,服務(wù)器端應(yīng)用程序判斷后執(zhí)行會話的操作完成客戶之間的會話。備份指令執(zhí)行后要調(diào)用壓縮應(yīng)用程序,如果配置不正確程序?qū)⑥D(zhuǎn)入查找客戶端線程ID發(fā)送消息或?qū)υ捒蛲ㄖ蛻舳?,修改服?wù)器端的配置。

      2.2.2客戶端程序邏輯設(shè)計

      客戶端通過連接服務(wù)器端的IP地址和端口,利用TCP協(xié)議連接雙方,選擇發(fā)送消息、對話或指令,同時接收服務(wù)器端的反饋信息,如果向服務(wù)器端發(fā)送的是指令則實時顯示備份的進(jìn)度,等待備份完成后,客戶端接收到服務(wù)器端發(fā)送的壓縮消息,等待接收流文件,在接收的過程中,分離服務(wù)器端傳輸?shù)臄?shù)據(jù)獲得流文件的大小,顯示接收文件的進(jìn)度,同時判斷接收是否完成,沒有完成循環(huán)接收,接收結(jié)束后判斷解壓應(yīng)用程序配置是否正確,配置正確則調(diào)用解壓應(yīng)用程序,錯誤則提示對話框結(jié)束程序,重新配置后再重復(fù)一個流程,將文件解壓恢復(fù)備份文件,完成客戶端的實時異地文件的備份,服務(wù)器端和客戶端程序邏輯設(shè)計見圖2。

      3 開發(fā)環(huán)境及關(guān)鍵代碼實現(xiàn)

      3.1開發(fā)環(huán)境

      發(fā)動機(jī)信息管理系統(tǒng)的開發(fā)采用的是Borland公司的可視化開發(fā)工具Delphi7,后臺數(shù)據(jù)庫使用的是Microsoft的關(guān)系數(shù)據(jù)庫SQL Server 2000。為與原系統(tǒng)開發(fā)語言保持一致,選擇了Delphi 10 Seattle開發(fā)工具,它是原開發(fā)工具的升級版,擁有全新的可視化集成開發(fā)環(huán)境 (IDE),基于組件的開發(fā)結(jié)構(gòu)框架和采用ObjectPascal面向?qū)ο蟮木幊陶Z言,可以直接編譯生成可執(zhí)行代碼,編譯速度快,運行效率高,程序運行穩(wěn)定。支持一個項目包含客戶端或服務(wù)器端同時開發(fā)方案,而且允許開發(fā)人員建立組件或組件集合,封裝所有的規(guī)則,并獨立于服務(wù)器端和客戶端,所有的數(shù)據(jù)傳輸通過標(biāo)準(zhǔn)組件來完成。這樣,大大減少了對服務(wù)器的請求和網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了開發(fā)應(yīng)用的速度。Delphi 10 Seattle包含的INDY組件,支持大部分Internet協(xié)議,包括TCP,UDP,DNS,F(xiàn)TP,HTTP,POP3,SMTP,TELNET,WHOIS等,提供INTERNET協(xié)議的客戶端和服務(wù)器組件,方便快速的建造各種服務(wù)器、客戶端程序,并且這些組件都是支持多線程的。在本軟件開發(fā)過程中主要用到了INDY的idTCPServer和idTCPClient兩個組件建立客戶端與管理端之間的TCP連接。操作系統(tǒng)支持Windows xp及以上版本。

      圖2 服務(wù)器端和客戶端程序邏輯設(shè)計Fig.2 Program logic design for server end and customer end

      3.2關(guān)鍵代碼實現(xiàn)

      3.2.1記錄類型聲明

      定義服務(wù)器端和客戶端信息交換的標(biāo)準(zhǔn),分別在服務(wù)器端和客戶端聲明后,引用該聲明單元。程序片段如下:

      3.2.2服務(wù)器端創(chuàng)建新的線程和指令線程

      服務(wù)器端使用第一個idTCPServer組件監(jiān)控客戶端的請求,對于接收的每一個客戶端,都創(chuàng)建一個新的線程來提供服務(wù),所有與這一客戶端相關(guān)的事務(wù)都由該線程來處理,由于執(zhí)行數(shù)據(jù)庫備份指令也是多線程,在一個新線程創(chuàng)建后同時創(chuàng)建一個指令線程。創(chuàng)建過程在idTCPServer組件被請求連接過程中完成。程序片段如下:

      3.2.3服務(wù)器端文件傳輸

      使用第二個idTCPServer組件傳輸壓縮后的流文件,服務(wù)器端創(chuàng)建流文件,進(jìn)入監(jiān)聽狀態(tài),文件壓縮完成后開始發(fā)送文件,服務(wù)器端根據(jù)流文件傳輸位置按接收緩沖區(qū)大小一塊一塊的發(fā)送給客戶端,直到整個文件流發(fā)送完畢,客戶端接受后再保存到接收文件。

      程序片段如下:

      3.2.4客戶端備份進(jìn)度顯示

      服務(wù)器端在執(zhí)行備份指令過程中,調(diào)用SQLDOM類,SQLDOM是SQL server2000企業(yè)管理器的應(yīng)用程序接口,客戶端實現(xiàn)遠(yuǎn)程備份和恢復(fù)功能,在客戶端聲明TBackupSink.PercentComplete函數(shù),在SQLDOM被調(diào)用時函數(shù)將顯示備份進(jìn)度。程序片段如下:

      3.2.5客戶端接收文件進(jìn)度顯示

      使用第二個idTCPClient組件接收壓縮后的流文件,在一個線程中,以緩沖區(qū)大小一塊一塊的接收流文件,與流文件總字節(jié)數(shù)之比形成接收的進(jìn)度,直至接收完畢,保存到文件。程序片段如下:

      4 軟件測試與應(yīng)用

      經(jīng)過調(diào)試和運行后,為測試多線程的并發(fā)執(zhí)行的效率,又鑒于整個執(zhí)行過程有大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,受到當(dāng)時網(wǎng)絡(luò)狀態(tài)的影響較大,于是選擇將服務(wù)器端應(yīng)用程序和數(shù)據(jù)庫部署在一臺服務(wù)器上由一個用戶單獨執(zhí)行備份指令,三個用戶并發(fā)執(zhí)行備份指令以及十五個用戶并發(fā)執(zhí)行備份指令,由程序發(fā)出指令自動計時到數(shù)據(jù)庫備份至服務(wù)器完成的時間進(jìn)行測試。通過對測試結(jié)果分析,多線程的并發(fā)并未明顯延遲指令的執(zhí)行時間,指令反應(yīng)及時,有細(xì)微的時間消耗,而執(zhí)行過程中有大量的IO操作并未進(jìn)行時間的統(tǒng)計,時間對比見表1。

      表1 指令執(zhí)行時間對比Tab.1 Comparison of instruction executing time

      在應(yīng)用過程中,該軟件服務(wù)器端可以和數(shù)據(jù)庫部署在同一個服務(wù)器上,也可以部署在應(yīng)用程序服務(wù)器上,通過軟件的配置連接數(shù)據(jù)庫服務(wù)器,充分利用服務(wù)器硬件資源提高應(yīng)用程序的執(zhí)行效率,減小并發(fā)程序時服務(wù)器的運行壓力。

      5 結(jié)論

      多線程異地備份發(fā)動機(jī)數(shù)據(jù)軟件以服務(wù)器端應(yīng)用軟件為核心,基于TCP傳輸協(xié)議傳輸備份流文件。采用多線程編程技術(shù),客戶端方便及時了解數(shù)據(jù)庫備份進(jìn)度,解決了發(fā)動機(jī)信息管理系統(tǒng)多用戶實時數(shù)據(jù)庫異地備份的要求,在系統(tǒng)數(shù)據(jù)庫出現(xiàn)故障或系統(tǒng)癱瘓時能及時通過異地備份的數(shù)據(jù)快速、完整、簡捷地恢復(fù)系統(tǒng)的正常運行。經(jīng)過實際應(yīng)用,軟件運行良好、性能穩(wěn)定,提高了異地數(shù)據(jù)備份效率,為發(fā)動機(jī)信息管理系統(tǒng)數(shù)據(jù)安全提供了可靠的保障。

      [1]王文龍,張少博,陳海峰.一種試驗數(shù)據(jù)處理軟件設(shè)計[J].火箭推進(jìn),2012,38(1):76-80. WANG Wenlong,ZHANG Shaobo,CHEN Haifeng. Design of a test data processing software[J].Journal of rocket propulsion,2012,38(1):76-80.

      [2]鮑敏,吳昊.Delphi網(wǎng)絡(luò)高級編程[M].北京:人民郵電出版社,2001.

      [3]何進(jìn),謝松巍.基于Socket的TCP/IP網(wǎng)絡(luò)通訊模式研究[J].計算機(jī)應(yīng)用研究,2001(8):134-135.

      (編輯:王建喜)

      Software design and application for multithreading offsite backup of liquid rocket engine data

      HUANG Guoliang1,ZHANG Rui2,LUO Zhaohui1
      (1.Xi’an Aerospace Propulsion Institute,Xi’an 710100,China;2.Beijing Aerospace Propulsion Institute,Beijing 100076,China)

      Software for background data offsite backup of liquid rocket engine information management system is developed.Based on Delphi 10 Seattle as developing tool and Indy component, the data backup,encryption,compression and data pushing to offsite client-side are realized by sending the backup instruction from customer end to server end in multithreading mode.The data offsite transmission is finished at the end of the compressed data reception of client-side.The information in executing process is sent to different client-sides in real time by server end.Transmission of the data backup needs a long time period due to large size of the engine data,so a synchronous progress bar is displayed at each client-side.The reliable TCP transmission is adopted in the software design to ensure the safetyofdata transmission.

      engine information management;multithreading offsite backup;Delphi 10 Seattle; Indy;software design

      V434-34

      A

      1672-9374(2016)04-0062-06

      2016-06-15;

      2016-06-22

      黃國良(1970—),男,工程師,研究領(lǐng)域為數(shù)據(jù)庫技術(shù)

      猜你喜歡
      服務(wù)器端線程異地
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      淺談linux多線程協(xié)作
      推進(jìn)醫(yī)保異地結(jié)算 穩(wěn)字當(dāng)先
      如何開拓異地市場?
      在Windows中安裝OpenVPN
      你適不適合異地戀
      文苑(2015年10期)2015-10-09 11:21:50
      破除異地結(jié)算的地方抵制
      Linux線程實現(xiàn)技術(shù)研究
      網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
      么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
      都江堰市| 乐陵市| 汤原县| 海宁市| 大兴区| 如东县| 赤峰市| 柯坪县| 安福县| 衡山县| 旌德县| 绍兴县| 武宁县| 通榆县| 秀山| 连州市| 抚顺市| 静宁县| 友谊县| 南开区| 长白| 大安市| 灌阳县| 会宁县| 普陀区| 牡丹江市| 敦煌市| 新密市| 泽州县| 临安市| 辰溪县| 达尔| 临沂市| 神池县| 吴旗县| 嘉兴市| 锡林郭勒盟| 临清市| 体育| 墨玉县| 永州市|