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

        ?

        面向核電分析軟件耦合計算的實時數(shù)據(jù)庫服務(wù)平臺的設(shè)計與實現(xiàn)

        2016-09-08 10:30:55莫文濤劉陸光張蕊峰
        計算機(jī)應(yīng)用與軟件 2016年8期
        關(guān)鍵詞:類庫服務(wù)平臺核電

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

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

        ?

        面向核電分析軟件耦合計算的實時數(shù)據(jù)庫服務(wù)平臺的設(shè)計與實現(xiàn)

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

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

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

        實時數(shù)據(jù)庫耦合計算高速存儲

        0 引 言

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

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

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

        1.1Fortran語言的局限性

        核電分析軟件一般采用Fortran語言進(jìn)行軟件開發(fā),原因在于Fortran語言具備強(qiáng)大的計算能力,它可以解決很多數(shù)值問題和非數(shù)值問題。因此,在數(shù)值計算、科學(xué)和工程技術(shù)領(lǐng)域,具有強(qiáng)大的優(yōu)勢。但是,由于Fortran語言本身的局限性,并不支持面向網(wǎng)絡(luò)通信的API接口,無法通過消息機(jī)制傳遞數(shù)據(jù)信息。

        1.2計算流程復(fù)雜

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

        1.3數(shù)據(jù)交換效率低下

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

        2 實時數(shù)據(jù)庫的設(shè)計

        2.1架構(gòu)設(shè)計

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

        圖1 系統(tǒng)架構(gòu)示意圖

        2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計

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

        表1 實時數(shù)據(jù)庫命名數(shù)據(jù)列表

        2.3服務(wù)平臺設(shè)計

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

        圖2 實時數(shù)據(jù)庫工作流程示意圖

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

        圖3 BYTE數(shù)組存儲方式示意圖

        2.4通信函數(shù)類庫設(shè)計

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

        表2 通信函數(shù)類庫接口定義表

        續(xù)表2

        3 實時數(shù)據(jù)庫服務(wù)平臺的實現(xiàn)

        3.1服務(wù)平臺

        服務(wù)平臺使用C#語言實現(xiàn),運(yùn)行在.net Framework框架上。利用Socket網(wǎng)絡(luò)編程、多線程、XML解析等技術(shù),將計算程序發(fā)送的請求信息經(jīng)過收包、組包、解析消息、任務(wù)判定、任務(wù)創(chuàng)建、任務(wù)執(zhí)行等一系列流程后,最終將結(jié)果反饋至計算程序[2-6]。

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

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

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

        3.2通信函數(shù)類庫

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

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

        圖4 計算程序運(yùn)行流程

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

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

        (3) 初始化計算內(nèi)核啟動參數(shù);

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

        (5) 當(dāng)接收到任務(wù)指令后,根據(jù)任務(wù)指令類型,執(zhí)行不同的計算功能模塊;

        (6) 向?qū)崟r數(shù)據(jù)庫服務(wù)平臺發(fā)送獲取變量數(shù)值請求,并等待反饋結(jié)果;

        (7) 執(zhí)行任務(wù)指令,比如運(yùn)行、停止、暫停、重啟動等;

        (8) 向?qū)崟r數(shù)據(jù)庫服務(wù)平臺發(fā)送更新變量數(shù)值請求,將計算完成的結(jié)果反饋至實時數(shù)據(jù)庫服務(wù)平臺;

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

        4 應(yīng) 用

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

        圖5 核電廠全范圍仿真環(huán)境

        5 結(jié) 語

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

        [1] 李德泉,何文春,阮志宇,等.氣象實時數(shù)據(jù)庫服務(wù)監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2012,27(2):147-152.

        [2] 納永良.大型實時數(shù)據(jù)庫關(guān)鍵技術(shù)及應(yīng)用研究[D].北京:北京化工大學(xué),2010.

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

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

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

        [6] 李光明.應(yīng)用Socket實現(xiàn)網(wǎng)絡(luò)通信[J].煤炭技術(shù),2012,31(8):156-157.

        [7] 金舒,戴宏斌,賈志敏.面向?qū)ο蟮母咝阅軐崟r數(shù)據(jù)庫ChRDB[J].電力自動化設(shè)備,2009,29(12):88-93.

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

        [9] 徐慧.實時數(shù)據(jù)庫中數(shù)據(jù)壓縮算法的研究[D].浙江:浙江大學(xué),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)。劉碩,工程師,主研領(lǐng)域:核電軟件開發(fā)。莫文濤,高工。劉陸光,助理工程師。張蕊峰,助理工程師。肖爽,助理工程師。

        TP311

        A

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

        猜你喜歡
        類庫服務(wù)平臺核電
        密碼服務(wù)平臺
        打造一體化汽車服務(wù)平臺
        第四代核電 高溫氣冷堆
        中國核電(2021年3期)2021-08-13 08:56:26
        百年初心精神 點(diǎn)亮核電未來
        中國核電(2021年3期)2021-08-13 08:55:56
        論基于云的電子政務(wù)服務(wù)平臺構(gòu)建
        2020年核電活動安排
        中國核電(2020年2期)2020-06-24 03:33:28
        用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
        Python在數(shù)據(jù)可視化中的應(yīng)用
        基于云計算的民航公共信息服務(wù)平臺
        數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
        軟件工程(2017年12期)2018-01-29 17:35:55
        久久精品中文字幕有码| 五月婷婷激情小说| 麻豆国产VA免费精品高清在线| 亚洲一区二区懂色av| 欧美男生射精高潮视频网站| 日韩高清在线观看永久| 日韩欧美在线播放视频| 一区二区三区观看在线视频| 国产自拍视频免费在线| 少妇太爽了在线观看免费视频| 无码的精品免费不卡在线| 午夜精品一区二区久久做老熟女 | 日本人视频国产一区二区三区| 伊人久久大香线蕉av不卡| 日韩A∨精品久久久久| 亚洲国产精品一区二区第一 | 国内精品久久久久久久亚洲| 日本久久视频在线观看| 亚洲色图片区| 老少交欧美另类| 一区二区三区不卡免费av| 亚洲国产av一区二区四季| 成人区人妻精品一区二区不卡网站| 99久久国产视频| 一区二区三区在线观看精品视频| 无码国产精成人午夜视频一区二区| 欧美两根一起进3p做受视频 | 日本一区二区三深夜不卡| 一区二区三区人妻少妇| 中文字字幕在线精品乱码| 精品91亚洲高清在线观看| 日本淫片一区二区三区| 男女做爰高清免费视频网站| 无码人妻丰满熟妇精品区| 亚洲乱码中文字幕综合| 日韩精品熟妇一区二区三区| 3d动漫精品一区二区三区| 免费视频成人 国产精品网站| 亚洲av产在线精品亚洲第三站| 东京热人妻无码一区二区av| 动漫在线无码一区|