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

面向核電分析軟件耦合計算的實時數據庫服務平臺的設計與實現

2016-09-08 10:30:55莫文濤劉陸光張蕊峰
計算機應用與軟件 2016年8期
關鍵詞:程序數據庫

劉 碩 莫文濤 劉陸光 張蕊峰 肖 爽

(國家核電技術有限公司北京軟件技術中心 北京 102209) (國家能源核電軟件重點實驗室 北京 102209)

?

面向核電分析軟件耦合計算的實時數據庫服務平臺的設計與實現

劉碩莫文濤劉陸光張蕊峰肖爽

(國家核電技術有限公司北京軟件技術中心北京 102209) (國家能源核電軟件重點實驗室北京 102209)

針對核電分析軟件耦合計算過程中遇到的數據交換效率低下和數據格式不統一等技術難點,提出一種利用網絡通信和內存存儲技術,將實時數據庫作為數據交換中心,并設計實現統一的訪問接口,應用于多個計算程序之間耦合計算過程的解決方案,從而實現了計算程序之間的高速數據交互及簡單通用的數據庫訪問接口。該成果目前已經應用于核電廠全范圍仿真環境中,為多個仿真計算程序提供數據共享服務,其高效性和通用性完全滿足仿真環境的性能和功能需求。同時,其可擴展的特性也支持在不同編程語言開發的計算程序耦合過程中進行應用。

實時數據庫耦合計算高速存儲

0 引 言

目前,核電分析軟件自主化正在我國穩步的推進,但是一些功能模塊的計算分析程序仍然需要引用國外已有的成熟軟件進行計算。例如核電廠仿真程序,在模擬核電廠運行環境的時候,需要根據一定的時間間隔,實時地控制多個計算程序進行計算,同時在每個時間間隔的同步點上,會有大量的數據進行交互。為了保證運行仿真環境的實時性,必須要求數據交換效率非常高,原有的以文件存儲形式作為數據交換的手段很難滿足需求。因此如何控制這類計算程序的運行和實現計算程序之間的數據共享,成為了核電分析軟件開發人員必須要面對的問題。

針對上述核電分析軟件開發中所面臨的問題,需要找到一個可行的解決方法,從而使各個計算程序得以有效的控制和數據資源共享。

1 核電分析軟件耦合計算面臨的困難

1.1Fortran語言的局限性

核電分析軟件一般采用Fortran語言進行軟件開發,原因在于Fortran語言具備強大的計算能力,它可以解決很多數值問題和非數值問題。因此,在數值計算、科學和工程技術領域,具有強大的優勢。但是,由于Fortran語言本身的局限性,并不支持面向網絡通信的API接口,無法通過消息機制傳遞數據信息。

1.2計算流程復雜

核電分析軟件與一般應用軟件存在著本質區別,它是通過建立數學模型和數學方程表達式進行方程式的數值求解。針對不同的求解模塊采用多種數學模型進行建模,通過求解多元高次方程得到計算結果,其中還包括迭代等計算過程,使得這類軟件具有求解多種數學模型的能力。在計算過程中,每次迭代計算之前都需要對計算內核中的計算變量進行初始化。這些變量的數值一般來自用戶預先的設置、其他計算程序的計算結果或者計算程序上一次迭代的計算結果。特別是對于其他計算程序的計算結果,往往很難將數據引入計算內核中。

1.3數據交換效率低下

核電分析軟件耦合計算的交互方式通常使用文本文件或二進制文件進行數據交互,但這種交互方式需要進行耦合計算的程序具有數據輸出和數據解析的業務功能。這就要求該類程序在交互的過程中需要遵守統一的數據格式約定。同時,在數據讀寫過程中會占用大量的時間和存儲空間,交互效率非常低下。

2 實時數據庫的設計

2.1架構設計

實時數據庫是一種服務程序,主要由服務平臺和通信函數類庫兩部分組成,如圖1所示。服務平臺主要負責接收計算程序發送的請求信息。然后,對請求信息進行解析并創建線程單獨完成指派的任務,包括對內存數據資源進行數據的增、刪、改、查以及檢查等操作。最終,將操作結果信息進行響應反饋至計算程序。通信函數類庫主要負責為計算程序提供訪問服務平臺的接口,將計算程序執行過程中的實時數據封裝打包,并發送至服務平臺[1]。

圖1 系統架構示意圖

2.2數據結構設計

實時數據庫采用了“命名數據”的方案,即數據庫中每個記錄點都有一個全局唯一的名稱以及相關的數據信息,如表1所示。數據處理模塊根據記錄點名稱找到該數據所有的對應地址,并執行相應的訪問操作(讀或寫)。為了提高訪問效率,記錄點名稱與數據地址的映射關系采用Hash表進行保存,并通過不同的前綴進行區分。通常計算程序發送的請求信息只會更新記錄點的實時值,而記錄點的其他數據信息則由服務平臺進行更新。

表1 實時數據庫命名數據列表

2.3服務平臺設計

服務平臺作為實時數據庫的核心引擎,負責計算程序發送的請求信息的監聽、處理和響應。服務平臺包括連接監聽、連接管理、消息處理、任務處理、數據處理和變量注冊等功能模塊。實時數據庫的工作流程如圖2所示。

圖2 實時數據庫工作流程示意圖

在數據存儲方式方面,該服務平臺采用內存作為存儲介質,以BYTE數組的方式向內存中連續的存儲一組數據。同時,利用HASHTABLE存儲某一組數據的索引和長度。如圖3所示,采用上述存儲方式的原因是,一般的數組存儲方式是將數據逐個存儲到數組開辟的內存空間中,這種方式雖然靈活、快捷,但是到達毫秒級數據訪問時,就無法滿足性能需求;而采用BYTE數組存儲方式,可以使用HASHTABLE快速查找需要更新的數據索引,然后一次性訪問該索引所對應的數據信息。假設我們要更新要素A到要素F這6個值,在使用一般數組存儲的時候,需要根據索引更新6次。但是,在使用BYTE數組方式時,首先定義一個要更新的數據列表并取得索引編號,然后根據索引更新這6個數據對應的數值。當同一時刻數據訪問量達到數以萬次時,所述方式基本上沒有延遲。如果是非相鄰的情況,則需要更新若干次,比如更新數據A、數據B、數據E、數據F,則需要更新兩次,因為AB是相鄰的,EF是相鄰的,但是他們在內存中的存儲位置并不相鄰。

圖3 BYTE數組存儲方式示意圖

2.4通信函數類庫設計

通信函數類庫為計算程序提供了訪問服務平臺的接口,如表2所示。

表2 通信函數類庫接口定義表

續表2

3 實時數據庫服務平臺的實現

3.1服務平臺

服務平臺使用C#語言實現,運行在.net Framework框架上。利用Socket網絡編程、多線程、XML解析等技術,將計算程序發送的請求信息經過收包、組包、解析消息、任務判定、任務創建、任務執行等一系列流程后,最終將結果反饋至計算程序[2-6]。

該平臺的內部存在C#類型的Dictionary定義的哈希表,用于記錄耦合計算過程中的中間數據。通過全局唯一的“記錄點名稱”作為唯一標識,并通過增加不同的前綴來區分該“記錄點名稱”相關的其他屬性。同時,由于采用內存空間進行實時數據的存儲,這樣可以達到高速讀取數據的預期效果,增強了整個應用環境的實時性[7]。

在一次同步計算的過程中,計算程序的每一次同步周期都會通過通信函數類庫提供的接口訪問實時數據庫服務平臺,進行一次數據交換,并且利用鎖的機制,控制訪問數據庫的線程不允許同時進行讀寫操作[8]。既實現了數據的共享,也保證了數據的一致性,增強了計算程序耦合計算的執行效率。

在運行調度方面,利用多線程技術實現任務調度管理模塊。當服務端收到客戶端的任務指令時,啟動獨立的線程向任務管理隊列中添加任務,并在運行開始時,自動讀取任務線程,控制固定數量的空余線程,并發式地從任務隊列中讀取任務進行處理。所有任務都繼承自一個任務基類,根據類型來區分不同任務的流程,使程序盡量的松耦合,方便以后的擴展及維護。

3.2通信函數類庫

通信函數類庫使用C++語言實現,因此,該類庫可以和絕大多數開發語言進行混合編程,使那些使用不具備通信機制開發語言的程序可以很容易地與實時數據庫服務平臺進行數據傳遞,具有很好的兼容性。

通常,在該類庫使用過程中會遵循如圖4所示的流程。

圖4 計算程序運行流程

(1) 讀取連接配置文件,并發送連接請求;

(2) 當連接成功后,發送變量注冊請求,將需要進行數據共享的變量列表通知實時數據庫服務平臺;

(3) 初始化計算內核啟動參數;

(4) 通知實時數據庫服務平臺,初始化成功,等待任務指令;

(5) 當接收到任務指令后,根據任務指令類型,執行不同的計算功能模塊;

(6) 向實時數據庫服務平臺發送獲取變量數值請求,并等待反饋結果;

(7) 執行任務指令,比如運行、停止、暫停、重啟動等;

(8) 向實時數據庫服務平臺發送更新變量數值請求,將計算完成的結果反饋至實時數據庫服務平臺;

(9) 完成更新后,會繼續等待下一次任務指令。

4 應 用

如圖5所示,實時數據庫服務平臺作為核電廠全范圍仿真環境的數據中心,主要負責計算程序耦合計算過程中的數據交互和數據存儲。調度控制服務所管理的模擬計算程序在進行耦合計算的過程中,每次啟動計算程序前,都會從實時數據庫中獲得本次計算周期所需要的參數集合,并進行參數初始化。當經過計算流程后,到達下一個同步節點時,就會將本次計算周期所計算出的結果參數更新回實時數據庫,最后等待下一次執行指令。在這個過程中,同一時刻會產生大約20個模擬計算程序并發訪問,總共約5萬個數值信息,為達到仿真環境的實時性,實時數據庫可以在50毫秒內完成所有請求的處理。

圖5 核電廠全范圍仿真環境

5 結 語

本文介紹了一種實時數據庫服務平臺的設計與實現,并針對核電分析軟件中的耦合計算過程進行了分析,提出一種可行的解決方案。通過提供共享數據服務和訪問接口的方式,將計算程序執行過程中產生的中間結果,通過消息傳遞至實時數據庫服務平臺上。在實時性方面,其高速存儲的特性明顯優于其他的數據存儲方式,有效地提高了計算程序耦合計算過程中數據交互效率。在通用性方面,通信函數類庫也提供了統一的接口規范,使得不同的仿真計算程序可以很容易地集成到仿真環境中,增強了仿真環境模擬計算的可擴展性。

[1] 李德泉,何文春,阮志宇,等.氣象實時數據庫服務監控系統設計與實現[J].成都信息工程學院學報,2012,27(2):147-152.

[2] 納永良.大型實時數據庫關鍵技術及應用研究[D].北京:北京化工大學,2010.

[3] 徐葉軍,謝曉鳴,俞成海.基于Socket的異地數據復制實現[J].工業控制計算機,2013,26(3):96-98.

[4] 李揚,耿昌宇,張麗芬.基于Socket通訊模式下的跨平臺數據同步[J].北京理工大學學報,2002,22(1):81-84.

[5] 黃顯信.利用Socket通信進程實現不同數據庫間數據的同步[J].計算機與數字工程,2003,31(5):28-30.

[6] 李光明.應用Socket實現網絡通信[J].煤炭技術,2012,31(8):156-157.

[7] 金舒,戴宏斌,賈志敏.面向對象的高性能實時數據庫ChRDB[J].電力自動化設備,2009,29(12):88-93.

[8] 白天,李國徽,劉云生.一種實時數據庫服務質量管理策略[J].湖南大學學報:自然科學版,2011,38(11):88-92.

[9] 徐慧.實時數據庫中數據壓縮算法的研究[D].浙江:浙江大學,2006.

DESIGN AND IMPLEMENTATION OF REAL-TIME DATABASE SERVICE PLATFORM FOR COUPLING CALCULATION OF NUCLEAR POWER ANALYSIS SOFTWARE

Liu ShuoMo WentaoLiu LuguangZhang RuifengXiao Shuang

(StateNuclearPowerSoftwareDevelopmentCenter,Beijing102209,China) (NationalEnergyKeyLaboratoryofNuclearPowerSoftware,Beijing102209,China)

For technical difficulties encountered in coupling calculation of nuclear power analysis software such as low data exchange efficiency and not uniform in data formats, the article presents a solution, it makes use of network communication and memory storage technology, takes the real-time database as data exchange centre, and designs and implements the unified access interface, and has been applied in the coupling calculation process between a plurality of calculation programs, so that achieves the high-speed data interaction between calculation programs and simple and universal database access interfaces. This achievement has been used in the full scope simulation environment of nuclear power plants. It provides data sharing services for multiple simulation programs with adequate efficiency and versatility that fully meet the performance and functional requirements of the simulation environment. At the same time, its scalable feature makes it possible to support the applications in coupling calculation processes developed with different programming languages.

Real-time databaseCoupling calculationHigh-speed storage

2014-12-15。國家重大專項項目(2011ZX06004-024)。劉碩,工程師,主研領域:核電軟件開發。莫文濤,高工。劉陸光,助理工程師。張蕊峰,助理工程師。肖爽,助理工程師。

TP311

A

10.3969/j.issn.1000-386x.2016.08.025

猜你喜歡
程序數據庫
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
數據庫
財經(2017年15期)2017-07-03 22:40:49
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 成年免费在线观看| 色成人综合| 久久免费成人| 欧美中文一区| 青青草国产一区二区三区| 亚洲欧美日本国产综合在线| a毛片免费在线观看| 国产免费好大好硬视频| 国产主播喷水| 色综合激情网| 日韩欧美国产精品| 中国成人在线视频| 亚洲永久精品ww47国产| 久久国产av麻豆| AV不卡无码免费一区二区三区| 亚洲欧美自拍视频| 成人一级免费视频| 青青国产在线| 92午夜福利影院一区二区三区| 91偷拍一区| 日韩人妻精品一区| 在线国产欧美| 国产一区亚洲一区| 538国产视频| 一本久道久综合久久鬼色| 亚洲第一精品福利| 老司机午夜精品视频你懂的| 国产精品专区第1页| 青青草原国产| 欧美三級片黃色三級片黃色1| 久无码久无码av无码| 5555国产在线观看| 97成人在线观看| 国产精品久久久久久久久kt| 四虎国产成人免费观看| 国产xx在线观看| 久久综合丝袜长腿丝袜| 亚洲天堂视频在线免费观看| 久久精品欧美一区二区| 国产欧美综合在线观看第七页| 中文字幕无码制服中字| 国产杨幂丝袜av在线播放| 久久这里只有精品66| 91视频首页| 久久大香伊蕉在人线观看热2| 国产精品无码影视久久久久久久| 精品一区二区三区中文字幕| 久久久久亚洲AV成人网站软件| 精品色综合| 天堂在线视频精品| 东京热高清无码精品| 国产1区2区在线观看| 久青草网站| 国产女人在线| 亚洲清纯自偷自拍另类专区| 久久天天躁夜夜躁狠狠| 99久久精品免费观看国产| 欧美不卡视频一区发布| 日韩在线播放中文字幕| 国产成年女人特黄特色毛片免| 自慰网址在线观看| 精品视频第一页| 香蕉99国内自产自拍视频| 午夜国产在线观看| 欧美一级大片在线观看| 91在线激情在线观看| 天天做天天爱天天爽综合区| 亚洲国产看片基地久久1024| 亚洲无码熟妇人妻AV在线| 91九色国产porny| 激情在线网| 国产精品手机视频一区二区| 女人18毛片水真多国产| 国产精品99一区不卡| 天天摸夜夜操| 国产精品视频观看裸模| 美女潮喷出白浆在线观看视频| 91在线高清视频| 制服丝袜无码每日更新| 欧美69视频在线| 71pao成人国产永久免费视频 | 小说区 亚洲 自拍 另类|