*章新1,,李榮興1,侯彥青2,謝剛1,3,,崔焱3,,汪晶晶1
1.昆明理工大學 冶金與能源學院,云南 昆明 650093,; 2.省部共建復雜有色金屬資源清潔利用國家重點實驗室(昆明理工大學),,云南 昆明 650093; 3.昆明冶金研究院,云南 昆明 650031
摘要:Web數(shù)據(jù)庫具有持久性,、有效性,、共享性等特點,有效實現(xiàn)了物性數(shù)據(jù)和估算公式的管理,。分析了開發(fā)基于Web的流體物性數(shù)據(jù)庫系統(tǒng)的必要性,,對系統(tǒng)開發(fā)環(huán)境的選擇、系統(tǒng)架構,、資源權限管理,、數(shù)據(jù)交互、計算模塊實現(xiàn)等方面進行了詳細闡述,。該系統(tǒng)的建立不僅解決了傳統(tǒng)方法獲取流體物性數(shù)據(jù)復雜,、繁瑣等問題,而且還克服了傳統(tǒng)數(shù)據(jù)庫移植性差,、用戶體驗性差,、數(shù)據(jù)更新慢、數(shù)據(jù)不全面等缺點,。為工程設計和研究人員提供了方便有效的應用工具,。
關鍵詞:流體物性計算;基于Web數(shù)據(jù)庫,;流體
0引言
流體物性數(shù)據(jù)是化工,、冶金、能源等領域進行工程設計和研究時必不可少的基礎數(shù)據(jù),。目前獲取物性數(shù)據(jù)的方式主要包括實驗方法和物性估算方法[12],。在實際工作中由于受到條件限制,大部分工程技術人員往往借助物性估算方法來獲取數(shù)據(jù),。傳統(tǒng)手工計算物性數(shù)據(jù)具有復雜,、繁瑣等缺點,顯然不能滿足人們的需求,。隨著計算機技術的不斷發(fā)展,,也相繼出現(xiàn)了一些基于單機版的流體物性數(shù)據(jù)庫。但是這些數(shù)據(jù)庫具有移植性差,、用戶體驗性差,、數(shù)據(jù)更新慢等缺點,,為人所詬病。
傳統(tǒng)流體物性數(shù)據(jù)庫主要以表的形式顯示物性數(shù)據(jù),,其優(yōu)點是能夠提供精確的數(shù)據(jù),。但是對于用戶獲取某些不同溫度和壓力下的物性數(shù)據(jù)的需求,卻不能得到很好的解決,。用戶仍需利用復雜的計算公式進行計算,,這種單一的機械化工作消耗了研究人員相當多的精力,降低了工作效率[3],。流體物性數(shù)據(jù)計算較為復雜,,各種理論、半經(jīng)驗,、經(jīng)驗公式各有特點,,且當前沒有一種共通的方法計算所有物性數(shù)據(jù)的情況[4],因此,,建立一種物性數(shù)據(jù)和估算公式的管理的數(shù)據(jù)庫很有必要,。
基于Web的流體物性數(shù)據(jù)庫整合了常用物質的物性數(shù)據(jù),并將其存儲在數(shù)據(jù)庫中,,作為計算系統(tǒng)的基礎數(shù)據(jù),。利用數(shù)據(jù)庫具有的持久性、有效性,、共享性等特點,,有效地實現(xiàn)了物性數(shù)據(jù)和估算公式的管理,解決了傳統(tǒng)流體數(shù)據(jù)庫數(shù)據(jù)更新慢,、共享性差的缺點,,為用戶計算提供了便利。
1系統(tǒng)集成環(huán)境的選擇
選擇一種合適的系統(tǒng)集成環(huán)境,,不僅能夠滿足軟件的業(yè)務和邏輯需求,,而且還保證了系統(tǒng)的訪問效率和運行的安全性。本節(jié)將從系統(tǒng)服務運行的操作系統(tǒng),、開發(fā)語言、服務器軟件以及數(shù)據(jù)庫4個方面進行重點介紹,。具體系統(tǒng)集成環(huán)境如表1所示,。
1.1系統(tǒng)運行的操作系統(tǒng)
目前主流的操作系統(tǒng)主要包括Windows和Linux。雖然Windows操作系統(tǒng)便捷的視窗界面深受PC用戶歡迎,,但是其先天的內(nèi)核設計,,導致其漏洞較多。因此,,對于大部分軟表1系統(tǒng)集成環(huán)境條目內(nèi)容開發(fā)語言Java[5]運行的操作系統(tǒng)Linux系統(tǒng)開發(fā)工具Eclipse 81數(shù)據(jù)庫MySQL數(shù)據(jù)庫[6]Web服務器軟件Tomcat服務器前臺開發(fā)語言JavaScript,、HtmlMVC框架Struts,、Spring、Hibernate
件開發(fā)機構,,很少使用Windows系統(tǒng)作為軟件服務器系統(tǒng),。而Linux系統(tǒng)具有穩(wěn)定的安全保護機制、高效的多任務,、多用戶能力,,且免費開源,因此選擇Linux系統(tǒng)作為系統(tǒng)運行的操作系統(tǒng),。
1.2開發(fā)語言
針對系統(tǒng)的業(yè)務和邏輯需求,,選擇了Java作為系統(tǒng)開發(fā)的基本語言。相比其他開發(fā)語言,,Java語言具有以下優(yōu)點,。
(1)跨平臺性:對于Java程序,,不管是Windows平臺還是Linux平臺或者其他平臺,,它都適用。Java編譯器把Java源程序編譯成與體系無關的字節(jié)碼指令,,只要安裝了Java運行系統(tǒng)(JVM),,Java程序就可以在任意的處理器上執(zhí)行[7]。
?。?)安全性:Java適用于網(wǎng)絡分布式環(huán)境,,適用Java可以構建防病毒、防篡改的系統(tǒng),。
?。?)健壯性:Java語言開發(fā)初期,開發(fā)人員投入了大量的精力進行問題檢測,、后期動態(tài)檢測,,采用指針模型設計消除了重寫內(nèi)存和損壞數(shù)據(jù)的可能性。
?。?)便捷性:Java語言采用了面向對象開發(fā)模式,,實現(xiàn)了代碼復用。
同時,,由于Java語言的開源性,,使得越來越多的成熟的開發(fā)框架問世,比較著名的框架有:Struts,、Spring,、Hibernate。這些優(yōu)點使得開發(fā)更加便捷,,提高了開發(fā)人員的工作效率,。
1.3系統(tǒng)服務器軟件
開發(fā)語言的選擇決定了服務器軟件的選擇,,基于Java語言開發(fā)服務器軟件主要包括:Tomcat服務器、Resin服務器,、JBoss服務器,、WebSphere服務器、WebLogic服務器,??紤]到開發(fā)成本以及系統(tǒng)運行所占的資源不大的特點,選擇了免費開源的Tomcat服務器,。
1.4數(shù)據(jù)庫的選擇
目前流行的數(shù)據(jù)庫主要包括:甲骨文的Oracle,、微軟的SQLServer、IBM的DB2以及瑞典 MySQL AB公司的MySQL,。這些數(shù)據(jù)庫的運行效率和安全性各有特點,。由于版權和開發(fā)成本的問題,系統(tǒng)采用了MySQL數(shù)據(jù)庫,。MySQL是一種跨平臺數(shù)據(jù)庫,,可以在多種平臺部署。其客戶端/服務端的架構的分布式管理模式完全滿足網(wǎng)絡運行的需求,。MySQL中的SQL語言具有功能強,、使用簡單、管理方便,、運行速度快,、可靠性高的特點。同時,,它具有免費開源的特點,,用戶可以自由地下載安裝和使用,并且可以無限制地應用到商業(yè)軟件開發(fā)中,。
2系統(tǒng)總體設計
2.1系統(tǒng)結構
系統(tǒng)由流體物性計算系統(tǒng),、數(shù)據(jù)庫管理系統(tǒng)、流體物質數(shù)據(jù)庫,、數(shù)據(jù)校驗系統(tǒng),、數(shù)據(jù)庫幫助系統(tǒng)五大模塊組成。各個模塊基于MVC模式開發(fā),,保證了系統(tǒng)的高內(nèi)聚,、低耦合,為系統(tǒng)后期功能擴展提供了條件,。系統(tǒng)功能框架圖如圖1所示。
2.2流體物質數(shù)據(jù)庫
流體物性計算系統(tǒng)需要一些參數(shù)數(shù)據(jù),。為了減輕用戶查閱相關參數(shù)數(shù)據(jù)的工作量,,系統(tǒng)提供了流體物質數(shù)據(jù)庫,,方便用戶隨時調用。目前流體數(shù)據(jù)庫包括了常見的500多種流體物質的物理化學性質,,如密度,、分子式、摩爾體積,、分子結構,、沸點、熔點,、臨界參數(shù),、偶極矩等幾十種性質數(shù)據(jù)。流體物質數(shù)據(jù)庫是整個計算系統(tǒng)的核心部分,,系統(tǒng)計算所用的基礎數(shù)據(jù)都來源于該數(shù)據(jù)庫,。維護好、擴展好數(shù)據(jù)對整個系統(tǒng)使用和發(fā)展起到了至關重要的作用,。因此,,開發(fā)人員開發(fā)了一套功能齊全的數(shù)據(jù)庫管理系統(tǒng)。通過數(shù)據(jù)庫管理系統(tǒng),,系統(tǒng)管理人員可以實時地對數(shù)據(jù)進行維護,。同時,系統(tǒng)也會定期備份數(shù)據(jù)庫中的數(shù)據(jù),,防止數(shù)據(jù)庫損壞所帶來的數(shù)據(jù)丟失[8],。
流體物質數(shù)據(jù)庫開放了數(shù)據(jù)檢索接口,為用戶提供了流體物性數(shù)據(jù)檢索服務,。系統(tǒng)檢索方式包括:關鍵字檢索,、名稱檢索、CAS號檢索以及化學式檢索,。用戶可根據(jù)需要,,切換不同檢索方式。對于數(shù)據(jù)檢索結果頁面,,系統(tǒng)提供了兩種顯示方式:概覽和細覽模式,。概覽模式能顯示所查物質的最常用的屬性;細覽模式能顯示所查物質的所有屬性并顯示其他表中與其相關聯(lián)的內(nèi)容,。流體物質數(shù)據(jù)庫還提供了數(shù)據(jù)下載和打印按鈕,,方便用戶使用相關數(shù)據(jù)。
2.3數(shù)據(jù)庫管理系統(tǒng)
為了合理有效地分配和維護流體物性數(shù)據(jù)庫系統(tǒng)的資源,,系統(tǒng)集成了數(shù)據(jù)庫管理系統(tǒng),。該系統(tǒng)提供了超級管理員、普通管理員和會員3種角色,。超級管理員可以分配普通管理員的相關操作權限,,如流體物質數(shù)據(jù)庫數(shù)據(jù)維護的增加,、刪除、更新的操作,。而普通管理員可以根據(jù)不同的普通會員的需求,,分配相關流體物性計算模塊以及數(shù)據(jù)檢索權限。以上這些操作,,管理員可以在任意的計算機上登錄數(shù)據(jù)庫管理系統(tǒng)進行管理,,而不必要遠程登錄服務器進行管理。
2.4流體物性計算系統(tǒng)的實現(xiàn)
2.4.1數(shù)據(jù)交互
系統(tǒng)提供了豐富的表單元素作為Web訪問接口[9],,如:文本框,、多選框、單選按鈕,、下拉框等,。在TCP/IP和HTTP傳輸協(xié)議的支持下,通過點擊數(shù)據(jù)提交按鈕,,即可將數(shù)據(jù)傳輸?shù)椒掌魃?,服務器?jīng)過一系列數(shù)據(jù)計算后,將數(shù)據(jù)以HTML形式反饋給用戶[1011],。對于計算量較大的模塊,,系統(tǒng)采用Ajax技術實現(xiàn)了多線程異步技術,緩解了客戶端由于長時間等待計算結果而帶來的卡頓現(xiàn)象[12],。
系統(tǒng)集成了一套基于JavaScript腳本語言開發(fā)的數(shù)據(jù)校驗模塊,。該模塊會隨時監(jiān)控用戶輸入的數(shù)據(jù),如果數(shù)據(jù)有錯系統(tǒng)會及時提示給用戶,。校驗模塊是針對客戶端的數(shù)據(jù)驗證,,所以用戶提交數(shù)據(jù)時,數(shù)據(jù)只是在本地進行驗證,。這樣的設計不僅可以降低服務器負擔,,還可以提高程序的運行速度,節(jié)省了服務器的運行資源,。
2.4.2實現(xiàn)的計算模塊
目前已完成的主要計算模塊有:氣液體臨界性質計算,、常壓/高壓下純氣體黏度計算、常壓/高壓下混合氣體黏度計算,、常壓/高壓下純氣體導熱系數(shù)計算,、常壓/高壓下混合氣體導熱系數(shù)計算。進入模塊界面前,,需要先登錄用戶界面(如圖2所示),,然后通過系統(tǒng)驗證判斷是否有權限訪問。
該模塊編碼所需的公式全部來源于文獻,每種物性計算提供了兩種計算方式,。由于模塊中的計算需要大量物性參數(shù),,因此模塊集成了一套參數(shù)智能回填系統(tǒng)。對于數(shù)據(jù)庫存在的流體物質,,用戶只需通過流體選擇界面點擊所要計算的物質。當選中物質后,,系統(tǒng)后臺會自動檢索所選物質的物性參數(shù)(臨界參數(shù),、相對分子質量、偶極矩,、密度等),,檢索完畢后系統(tǒng)則會將物性數(shù)據(jù)填寫在對應位置。針對某些物性數(shù)據(jù)計算需要基于基團貢獻法,,系統(tǒng)也收集了大量文獻中的基團貢獻值,,并且在相關的計算模塊中提供基團貢獻值查詢界面,方便用戶使用,??紤]到計算模塊操作的復雜性,系統(tǒng)在不同的計算模塊界面上提供了相關的計算幫助文檔,,用戶可以參考文檔中相關的算例,,正確地使用模塊計算。圖3是計算293 K,、1 bar下,,摩爾分數(shù)為697%甲烷和303%正丁烷混合氣體的黏度,通過系統(tǒng)計算最后得出其黏度為97987,,與實驗數(shù)據(jù)誤差為3%,。
3結論
本文對基于Web的流體物性數(shù)據(jù)庫系統(tǒng)開發(fā)環(huán)境的選擇、系統(tǒng)的架構,、資源權限的管理,、數(shù)據(jù)交互、模塊功能實現(xiàn)等方面進行了詳細的闡述,,實現(xiàn)了流體物質數(shù)據(jù)庫檢索,、流體物性數(shù)據(jù)計算以及數(shù)據(jù)下載等功能。該系統(tǒng)具有架構合理,、使用方便,、檢索快捷等優(yōu)點,可廣泛應用于化工,、冶金,、能源等領域,為流程模擬和工藝生產(chǎn)條件優(yōu)化提供可靠的物性數(shù)據(jù)。服務器端采用Java+Tomcat+MySQL開發(fā),,既保證了系統(tǒng)的安全性,,也實現(xiàn)了系統(tǒng)的跨平臺性[13]。
隨著研究工作的深入,,基于Web的流體物性數(shù)據(jù)庫系統(tǒng)功能將得到充實完善,。在不斷擴充系統(tǒng)基礎數(shù)據(jù)以及物性計算模塊的基礎上,逐步實現(xiàn)流體模擬計算,、文獻檢索,、數(shù)據(jù)評估等功能,使其適應廣大工程人員和研究人員的需求,。
參考文獻
?。?] 吳江濤, 劉志剛, 張可,等. 基于 Web 的流體熱物性遠程計算系統(tǒng)研究[J]. 計算機與應用化學, 2004, 21(4): 529532.
?。?] 王小艷. 化工物性數(shù)據(jù)庫系統(tǒng)軟件開發(fā)[D].青島:青島科技大學,2012.
?。?] 郝磊磊,方覺,王同賓,等. 冶金熱力學計算軟件的開發(fā)[J]. 河北聯(lián)合大學學報(自然科學版),2014,36(2):1316.
?。?] 張健, 陳丙珍. 基于面向對象的化工物性數(shù)據(jù)庫系統(tǒng)[J]. 計算機與應用化學, 1999, 16(4): 245248.
?。?] ASHOK S, BANSALB V K. JAVA: networkcentric enterprise computing[J]. Computer Communications, 1998, 20(16):14671480.
[6] KORHONEN K, DONADINI F, RIISAGER P, et al. GEOMAGIA50: an archeointensity database with PHP and MySQL[J]. Geochemistry Geophysics Geosystems, 2008, 9(4):366389.
?。?] 羅時民.Java程序的國際化[J]. 中文信息, 2002(3):7376.
?。?] 李東風,謝昕. 數(shù)據(jù)庫安全技術研究與應用[J]. 計算機安全,2008(1):4244.
[9] PATETOSRN L.HMTL4編程指南[M].徐征,馮文墉,等譯.杭州:浙江科學技術出版社,1998.