摘要:分析了三層和n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)在數(shù)值計(jì)算方面存在的問(wèn)題。提出了基于MCR框架的、多層的、分布式計(jì)算的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式,將Web熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層與數(shù)值計(jì)算過(guò)程分離,簡(jiǎn)化了數(shù)值計(jì)算的過(guò)程。同時(shí),利用服務(wù)器群集技術(shù)構(gòu)建數(shù)值計(jì)算引擎集群,大大提高了Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算能力和速度、
關(guān)鍵詞:MCR;Web Service;架構(gòu)模式;數(shù)值計(jì)算;熱力學(xué)數(shù)據(jù)庫(kù)
O 引言
隨著Internet技術(shù)的不斷發(fā)展,基于瀏覽器/Web服務(wù)器結(jié)構(gòu)模型(即B/S結(jié)構(gòu)模型)的熱力學(xué)數(shù)據(jù)庫(kù)得到了廣泛的應(yīng)用。在這種結(jié)構(gòu)模型下,一部分事務(wù)邏輯在客戶端瀏覽器實(shí)現(xiàn),大部分事務(wù)邏輯在熱力學(xué)數(shù)據(jù)庫(kù)服務(wù)器端實(shí)現(xiàn)。然而,由于在熱力學(xué)數(shù)據(jù)庫(kù)的應(yīng)用中涉及到大量的數(shù)值計(jì)算,會(huì)大量消耗服務(wù)器CPU和內(nèi)存的資源,導(dǎo)致熱力學(xué)數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載加重,增大響應(yīng)時(shí)間,因此,如不能很好地解決數(shù)值計(jì)算的速度問(wèn)題,熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)整體性能將受到較大的影響。
在熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)過(guò)程中,開發(fā)人員不僅要集中精力將熱力學(xué)數(shù)據(jù)庫(kù)中的數(shù)學(xué)模型轉(zhuǎn)換為計(jì)算機(jī)控制代碼,而且還需要花費(fèi)大量精力去實(shí)現(xiàn)、驗(yàn)證、優(yōu)化數(shù)學(xué)模型中所涉及的數(shù)值計(jì)算方法,從而加大了熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)周期和難度。
本文針對(duì)Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算的特點(diǎn)和性能要求,使用面向服務(wù)的架構(gòu)思想,提出了基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式,實(shí)現(xiàn)了Web熱力學(xué)數(shù)據(jù)庫(kù)計(jì)算模型控制與數(shù)值計(jì)算過(guò)程的分離,大大提高了系統(tǒng)數(shù)值計(jì)算能力和速度,用時(shí)簡(jiǎn)化了熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)值計(jì)算方法的實(shí)現(xiàn)過(guò)程。1Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式研究
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,Web熱力學(xué)數(shù)據(jù)庫(kù)已成為當(dāng)前熱力學(xué)數(shù)據(jù)庫(kù)技術(shù)發(fā)展的主流并得到廣泛應(yīng)用。但是圍繞著提高Web熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)性能的研究依然沒(méi)有停止。這些研究主要集中在兩個(gè)方面。一方面是對(duì)熱力學(xué)數(shù)學(xué)模型的理論研究,目的在于建立解決特定熱力學(xué)問(wèn)題的正確、高效的數(shù)學(xué)模型;另一方面是對(duì)Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式的研究,目的在于降低系統(tǒng)開發(fā)難度和縮短系統(tǒng)開發(fā)周期,優(yōu)化網(wǎng)絡(luò)計(jì)算性能,提高應(yīng)用系統(tǒng)的效率和共享能力。在后一這類研究中,普遍采用多層架構(gòu)思想,將系統(tǒng)不同類型的工作任務(wù)分配到不同的層中執(zhí)行,這樣不僅便于網(wǎng)絡(luò)用戶使用熱力學(xué)數(shù)據(jù)庫(kù),同時(shí)也便于系統(tǒng)的協(xié)同開發(fā),提高系統(tǒng)代碼的復(fù)用性,便于業(yè)務(wù)邏輯的共享、重組和系統(tǒng)的維護(hù)。
1.1三層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)
在圖1所示的三層架構(gòu)模式中,客戶端采用瀏覽器作為的系統(tǒng)界面訪問(wèn)工具;數(shù)據(jù)庫(kù)服務(wù)器提供高效、安全的數(shù)據(jù)存儲(chǔ)操作;Web Server則實(shí)現(xiàn)整個(gè)系統(tǒng)的控制。
三層架構(gòu)模式主要解決了熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯控制與數(shù)據(jù)存儲(chǔ)控制的分離,實(shí)現(xiàn)了“瘦客戶端”,便于用戶使用,系統(tǒng)部署簡(jiǎn)單,維護(hù)成本低。從圖1可以看出,熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)的工作負(fù)載主要集中在Web Server,導(dǎo)致Web Server負(fù)載過(guò)重,成為影響系統(tǒng)性能的瓶頸。
1.2n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)
為了減輕三層架構(gòu)模式下Web熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)WebServer的工作負(fù)載,系統(tǒng)架構(gòu)師們提出了如圖2所示的n層架構(gòu)模式。其中,業(yè)務(wù)邏輯層負(fù)責(zé)熱力學(xué)數(shù)據(jù)庫(kù)的核心功能——計(jì)算模型控制和數(shù)值計(jì)算,表示層負(fù)責(zé)用戶界面控制,數(shù)據(jù)訪問(wèn)層負(fù)責(zé)熱力學(xué)數(shù)據(jù)庫(kù)的訪問(wèn)并屏蔽使用數(shù)據(jù)庫(kù)的細(xì)17信息。
采用n層架構(gòu)模式使整個(gè)系統(tǒng)的工作負(fù)載分布到不同的服務(wù)器中,避免了因某臺(tái)服務(wù)器負(fù)載過(guò)重而成為影響系統(tǒng)性能的瓶頸,也便于系統(tǒng)的協(xié)同開發(fā)和維護(hù),增加了系統(tǒng)部署的靈活性。例如,可以在業(yè)務(wù)邏輯層利用負(fù)載均衡技術(shù)構(gòu)建應(yīng)用服務(wù)器集群,解決復(fù)雜業(yè)務(wù)邏輯控制和大量用戶并發(fā)訪問(wèn)的性能問(wèn)題;在數(shù)據(jù)訪問(wèn)層引入中間件技術(shù),解決高效訪問(wèn)數(shù)據(jù)庫(kù)的問(wèn)題。
2 基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式
雖然n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)具有很多優(yōu)勢(shì),但是,在具體實(shí)現(xiàn)架構(gòu)模式中的核心層一業(yè)務(wù)邏輯層時(shí),面臨兩個(gè)比較棘手的問(wèn)題。
一是如何實(shí)現(xiàn)熱力學(xué)數(shù)據(jù)庫(kù)數(shù)學(xué)模型中的數(shù)值計(jì)算,例如積分、方程組求解等,這需要熱力學(xué)數(shù)據(jù)庫(kù)開發(fā)人員耗費(fèi)大量的時(shí)間和精力去編程實(shí)現(xiàn)各種相關(guān)數(shù)值計(jì)算求解程序。如果能夠在系統(tǒng)中直接引用目前成熟的科學(xué)計(jì)算軟件來(lái)解決數(shù)值計(jì)算求解問(wèn)題,將大大簡(jiǎn)化數(shù)值計(jì)算的實(shí)現(xiàn)過(guò)程。
二是如何提高數(shù)值計(jì)算的效率。數(shù)值計(jì)算往往會(huì)消耗計(jì)算機(jī)大量的內(nèi)存和CPU資源,加重應(yīng)用服務(wù)器的負(fù)載,從而導(dǎo)致系統(tǒng)響應(yīng)時(shí)間增長(zhǎng),成為影響系統(tǒng)性能的瓶頸。如果能夠?qū)?shù)值計(jì)算過(guò)程從業(yè)務(wù)邏輯層中分離出來(lái),將其轉(zhuǎn)移到專用的數(shù)值計(jì)算服務(wù)器中,不僅能夠減輕應(yīng)用服務(wù)器的負(fù)載,而且專用的數(shù)值計(jì)算服務(wù)器能提供更好的執(zhí)行效率,從而改善系統(tǒng)的性能。
本文提出的基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式能夠很好地解決以上兩個(gè)問(wèn)題。該架構(gòu)模式的核心思想是,利用MCR框架構(gòu)建高性能的、易于使用的熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算引擎,避免了在熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)中直接編程實(shí)現(xiàn)數(shù)值計(jì)算算法;同時(shí)使熱力學(xué)數(shù)據(jù)庫(kù)計(jì)算模型控制與熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算過(guò)程分離,從而達(dá)到簡(jiǎn)化熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)過(guò)程和提高系統(tǒng)性能的目的。
MCR(MATLAB Compiler Runtime)是建立在MATLAB基礎(chǔ)上的一個(gè)獨(dú)立的應(yīng)用框架,能夠執(zhí)行MATLAB文件和函數(shù)。而MATLAB是世界上公認(rèn)的功能強(qiáng)大、應(yīng)用廣泛的科學(xué)計(jì)算軟件,具有豐富的數(shù)值計(jì)算工具和高效的數(shù)值計(jì)算效率,占據(jù)了世界上數(shù)值計(jì)算軟件的主導(dǎo)地位。利用MATLAB提供的MATLAB Builder NE編譯工具,能夠?qū)ATLAB數(shù)值計(jì)算函數(shù)轉(zhuǎn)換成MCR組件(.net類)。因此,在,net框架中安裝MCR就能夠?qū)崿F(xiàn).net應(yīng)用MCR組件(.net類),進(jìn)而可以在程序中直接使用MATLAB強(qiáng)大的數(shù)值計(jì)算功能。為此,本文擴(kuò)展了n層架構(gòu)模式,構(gòu)建了如圖3所示的基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式。
從圖3可以看出,數(shù)值計(jì)算引擎將數(shù)值計(jì)算功能從業(yè)務(wù)邏輯層中獨(dú)立了出來(lái),數(shù)值計(jì)算引擎的構(gòu)建采用了Service-OrientedArchitecture(面向服務(wù)體系架構(gòu))的思想,利用Web Service技術(shù)實(shí)現(xiàn)SOA。SOA是一科,IT體系結(jié)構(gòu)樣式,支持將業(yè)務(wù)作為鏈接服務(wù)或可重復(fù)業(yè)務(wù)任務(wù)進(jìn)行集成,可在需要時(shí)通過(guò)網(wǎng)絡(luò)訪問(wèn)這些服務(wù)和任務(wù)。SOA將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)服務(wù)之間定義好的接口和契約聯(lián)系起來(lái)。接口是采用中立的基于XML的語(yǔ)言(也稱為Web服務(wù)描述語(yǔ)言,WebServices Definition Language,WSDL)定義的,它獨(dú)立于現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得不同類型的業(yè)務(wù)邏輯層可以以一種統(tǒng)一和通用的方式與數(shù)值計(jì)算引擎進(jìn)行交互,便于各種異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層與數(shù)值計(jì)算引擎的集成和復(fù)用,同時(shí)也能夠利用服務(wù)群集技術(shù)構(gòu)建數(shù)值計(jì)算引警集群,動(dòng)態(tài)均衡數(shù)值計(jì)算負(fù)載,滿足網(wǎng)絡(luò)高并發(fā)、高密集的數(shù)值計(jì)算需求,優(yōu)化了系統(tǒng)性能,大大提高了Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算引擎的計(jì)算能力和速度。
(1)數(shù)值計(jì)算引擎接口
本系統(tǒng)對(duì)外提供統(tǒng)一的熱力學(xué)數(shù)值服務(wù),例如焓、熵計(jì)算等的接口。只要通信雙方定義好服務(wù)契約,數(shù)值計(jì)算引擎用以為各種同構(gòu)或者異構(gòu)系統(tǒng)提供熱力學(xué)數(shù)值計(jì)算服務(wù),從而使數(shù)值計(jì)算引擎能夠?qū)崿F(xiàn)跨系統(tǒng)的業(yè)務(wù)集成和復(fù)用。
(2)數(shù)值計(jì)算類
數(shù)值計(jì)算引擎接口定義的熱力學(xué)數(shù)值計(jì)算方法,封裝了各種熱力學(xué)基本計(jì)算公式的求解過(guò)程,例如求解焓、熵的基本積分公式等。并在方法中調(diào)用MCR組件(net類)利用MATLAB完成具體的數(shù)值計(jì)算過(guò)程,例如定積分運(yùn)算或矩陣運(yùn)算等。此外,數(shù)值計(jì)算類還負(fù)責(zé)本地調(diào)用語(yǔ)言數(shù)據(jù)類型與MATLAB數(shù)據(jù)類型的轉(zhuǎn)換,以及錯(cuò)誤處理等輔助工作。
(3)MCR
系統(tǒng)根據(jù)數(shù)值計(jì)算類的調(diào)用請(qǐng)求,執(zhí)行相應(yīng)的MATLAB函數(shù)。
3基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式的優(yōu)點(diǎn)
在基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式中,數(shù)值計(jì)算引擎的數(shù)值計(jì)算功能與熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層中分離,具有以下優(yōu)點(diǎn)。
實(shí)現(xiàn)了業(yè)務(wù)邏輯層與數(shù)值計(jì)算引擎之間的松耦合,便于各種異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)共享數(shù)值計(jì)算引擎服務(wù)。
采用SOA思想,能夠使用服務(wù)器集群技術(shù)建立數(shù)值計(jì)算服務(wù)器群,各個(gè)數(shù)值計(jì)算引擎分擔(dān)工作負(fù)荷,支持高密集數(shù)值計(jì)算,可靈活地增減系統(tǒng)數(shù)值計(jì)算能力。
減輕了熱力學(xué)數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器的負(fù)載,有利于提高系統(tǒng)的整體性能。
熱力學(xué)數(shù)據(jù)庫(kù)的業(yè)務(wù)邏輯層只需關(guān)注如何使用數(shù)值計(jì)算服務(wù),而用不關(guān)心如何實(shí)現(xiàn)數(shù)值計(jì)算,簡(jiǎn)化了業(yè)務(wù)邏輯層的實(shí)現(xiàn)過(guò)程,提高了熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)效率。
能夠充分利用MATLAB豐富的數(shù)值計(jì)算工具,屏蔽了使用MATLAB的復(fù)雜過(guò)程。同時(shí)借助于MATLAB卓越的數(shù)值計(jì)算性能提高了數(shù)值計(jì)算效率。
可對(duì)數(shù)值計(jì)算引擎做進(jìn)一步的優(yōu)化。如可直接利用MATLAB并行計(jì)算功能構(gòu)建多核、多處理器并行計(jì)算服務(wù)器,或利用MATLAB分布式并行計(jì)算功能構(gòu)建MATLAB分布式計(jì)算計(jì)算機(jī)集群,提高數(shù)值計(jì)算引擎的數(shù)值計(jì)算速度。
4 結(jié)束語(yǔ)
在冶金、化工領(lǐng)域的生產(chǎn)和研究中,熱力學(xué)數(shù)據(jù)庫(kù)作為基本工其得到了越來(lái)越廣泛的應(yīng)用,對(duì)熱力學(xué)數(shù)據(jù)庫(kù)的計(jì)算性能要求也越來(lái)越高。系統(tǒng)的架構(gòu)模式是影響熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)性能的關(guān)鍵因素之一,是熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)軟件開發(fā)的基礎(chǔ)。本文分析了三層和n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)所存在的問(wèn)題,根據(jù)熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算的特點(diǎn),在n層架構(gòu)模式的基礎(chǔ)上,提出了基于MCR框架的、多層、分布式計(jì)算的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式。該模式可方便地實(shí)現(xiàn)對(duì)MATLAB計(jì)算功能的調(diào)用而無(wú)需了解具體的技術(shù)細(xì)節(jié),從而大大簡(jiǎn)化了數(shù)值計(jì)算功能的實(shí)現(xiàn)過(guò)程,同時(shí)也為Web熱力學(xué)數(shù)據(jù)庫(kù)在重負(fù)載網(wǎng)絡(luò)環(huán)境下的應(yīng)用和異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)共享熱力學(xué)數(shù)值計(jì)算服務(wù)提供了一種可行方案?;贛CR框架的熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式設(shè)計(jì)
胡元
摘要:分析了三層和n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)在數(shù)值計(jì)算方面存在的問(wèn)題。提出了基于MCR框架的、多層的、分布式計(jì)算的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式,將Web熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層與數(shù)值計(jì)算過(guò)程分離,簡(jiǎn)化了數(shù)值計(jì)算的過(guò)程。同時(shí),利用服務(wù)器群集技術(shù)構(gòu)建數(shù)值計(jì)算引擎集群,大大提高了Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算能力和速度、
關(guān)鍵詞:MCR;Web Service;架構(gòu)模式;數(shù)值計(jì)算;熱力學(xué)數(shù)據(jù)庫(kù)
O 引言
隨著Internet技術(shù)的不斷發(fā)展,基于瀏覽器/Web服務(wù)器結(jié)構(gòu)模型(即B/S結(jié)構(gòu)模型)的熱力學(xué)數(shù)據(jù)庫(kù)得到了廣泛的應(yīng)用。在這種結(jié)構(gòu)模型下,一部分事務(wù)邏輯在客戶端瀏覽器實(shí)現(xiàn),大部分事務(wù)邏輯在熱力學(xué)數(shù)據(jù)庫(kù)服務(wù)器端實(shí)現(xiàn)。然而,由于在熱力學(xué)數(shù)據(jù)庫(kù)的應(yīng)用中涉及到大量的數(shù)值計(jì)算,會(huì)大量消耗服務(wù)器CPU和內(nèi)存的資源,導(dǎo)致熱力學(xué)數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載加重,增大響應(yīng)時(shí)間,因此,如不能很好地解決數(shù)值計(jì)算的速度問(wèn)題,熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)整體性能將受到較大的影響。
在熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)過(guò)程中,開發(fā)人員不僅要集中精力將熱力學(xué)數(shù)據(jù)庫(kù)中的數(shù)學(xué)模型轉(zhuǎn)換為計(jì)算機(jī)控制代碼,而且還需要花費(fèi)大量精力去實(shí)現(xiàn)、驗(yàn)證、優(yōu)化數(shù)學(xué)模型中所涉及的數(shù)值計(jì)算方法,從而加大了熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)周期和難度。
本文針對(duì)Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算的特點(diǎn)和性能要求,使用面向服務(wù)的架構(gòu)思想,提出了基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式,實(shí)現(xiàn)了Web熱力學(xué)數(shù)據(jù)庫(kù)計(jì)算模型控制與數(shù)值計(jì)算過(guò)程的分離,大大提高了系統(tǒng)數(shù)值計(jì)算能力和速度,用時(shí)簡(jiǎn)化了熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)值計(jì)算方法的實(shí)現(xiàn)過(guò)程。1Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式研究
隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,Web熱力學(xué)數(shù)據(jù)庫(kù)已成為當(dāng)前熱力學(xué)數(shù)據(jù)庫(kù)技術(shù)發(fā)展的主流并得到廣泛應(yīng)用。但是圍繞著提高Web熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)性能的研究依然沒(méi)有停止。這些研究主要集中在兩個(gè)方面。一方面是對(duì)熱力學(xué)數(shù)學(xué)模型的理論研究,目的在于建立解決特定熱力學(xué)問(wèn)題的正確、高效的數(shù)學(xué)模型;另一方面是對(duì)Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式的研究,目的在于降低系統(tǒng)開發(fā)難度和縮短系統(tǒng)開發(fā)周期,優(yōu)化網(wǎng)絡(luò)計(jì)算性能,提高應(yīng)用系統(tǒng)的效率和共享能力。在后一這類研究中,普遍采用多層架構(gòu)思想,將系統(tǒng)不同類型的工作任務(wù)分配到不同的層中執(zhí)行,這樣不僅便于網(wǎng)絡(luò)用戶使用熱力學(xué)數(shù)據(jù)庫(kù),同時(shí)也便于系統(tǒng)的協(xié)同開發(fā),提高系統(tǒng)代碼的復(fù)用性,便于業(yè)務(wù)邏輯的共享、重組和系統(tǒng)的維護(hù)。
1.1三層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)
在圖1所示的三層架構(gòu)模式中,客戶端采用瀏覽器作為的系統(tǒng)界面訪問(wèn)工具;數(shù)據(jù)庫(kù)服務(wù)器提供高效、安全的數(shù)據(jù)存儲(chǔ)操作;Web Server則實(shí)現(xiàn)整個(gè)系統(tǒng)的控制。
三層架構(gòu)模式主要解決了熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯控制與數(shù)據(jù)存儲(chǔ)控制的分離,實(shí)現(xiàn)了“瘦客戶端”,便于用戶使用,系統(tǒng)部署簡(jiǎn)單,維護(hù)成本低。從圖1可以看出,熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)的工作負(fù)載主要集中在Web Server,導(dǎo)致Web Server負(fù)載過(guò)重,成為影響系統(tǒng)性能的瓶頸。
1.2n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)
為了減輕三層架構(gòu)模式下Web熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)WebServer的工作負(fù)載,系統(tǒng)架構(gòu)師們提出了如圖2所示的n層架構(gòu)模式。其中,業(yè)務(wù)邏輯層負(fù)責(zé)熱力學(xué)數(shù)據(jù)庫(kù)的核心功能——計(jì)算模型控制和數(shù)值計(jì)算,表示層負(fù)責(zé)用戶界面控制,數(shù)據(jù)訪問(wèn)層負(fù)責(zé)熱力學(xué)數(shù)據(jù)庫(kù)的訪問(wèn)并屏蔽使用數(shù)據(jù)庫(kù)的細(xì)17信息。
采用n層架構(gòu)模式使整個(gè)系統(tǒng)的工作負(fù)載分布到不同的服務(wù)器中,避免了因某臺(tái)服務(wù)器負(fù)載過(guò)重而成為影響系統(tǒng)性能的瓶頸,也便于系統(tǒng)的協(xié)同開發(fā)和維護(hù),增加了系統(tǒng)部署的靈活性。例如,可以在業(yè)務(wù)邏輯層利用負(fù)載均衡技術(shù)構(gòu)建應(yīng)用服務(wù)器集群,解決復(fù)雜業(yè)務(wù)邏輯控制和大量用戶并發(fā)訪問(wèn)的性能問(wèn)題;在數(shù)據(jù)訪問(wèn)層引入中間件技術(shù),解決高效訪問(wèn)數(shù)據(jù)庫(kù)的問(wèn)題。
2 基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式
雖然n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)具有很多優(yōu)勢(shì),但是,在具體實(shí)現(xiàn)架構(gòu)模式中的核心層一業(yè)務(wù)邏輯層時(shí),面臨兩個(gè)比較棘手的問(wèn)題。
一是如何實(shí)現(xiàn)熱力學(xué)數(shù)據(jù)庫(kù)數(shù)學(xué)模型中的數(shù)值計(jì)算,例如積分、方程組求解等,這需要熱力學(xué)數(shù)據(jù)庫(kù)開發(fā)人員耗費(fèi)大量的時(shí)間和精力去編程實(shí)現(xiàn)各種相關(guān)數(shù)值計(jì)算求解程序。如果能夠在系統(tǒng)中直接引用目前成熟的科學(xué)計(jì)算軟件來(lái)解決數(shù)值計(jì)算求解問(wèn)題,將大大簡(jiǎn)化數(shù)值計(jì)算的實(shí)現(xiàn)過(guò)程。
二是如何提高數(shù)值計(jì)算的效率。數(shù)值計(jì)算往往會(huì)消耗計(jì)算機(jī)大量的內(nèi)存和CPU資源,加重應(yīng)用服務(wù)器的負(fù)載,從而導(dǎo)致系統(tǒng)響應(yīng)時(shí)間增長(zhǎng),成為影響系統(tǒng)性能的瓶頸。如果能夠?qū)?shù)值計(jì)算過(guò)程從業(yè)務(wù)邏輯層中分離出來(lái),將其轉(zhuǎn)移到專用的數(shù)值計(jì)算服務(wù)器中,不僅能夠減輕應(yīng)用服務(wù)器的負(fù)載,而且專用的數(shù)值計(jì)算服務(wù)器能提供更好的執(zhí)行效率,從而改善系統(tǒng)的性能。
本文提出的基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式能夠很好地解決以上兩個(gè)問(wèn)題。該架構(gòu)模式的核心思想是,利用MCR框架構(gòu)建高性能的、易于使用的熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算引擎,避免了在熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)中直接編程實(shí)現(xiàn)數(shù)值計(jì)算算法;同時(shí)使熱力學(xué)數(shù)據(jù)庫(kù)計(jì)算模型控制與熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算過(guò)程分離,從而達(dá)到簡(jiǎn)化熱力學(xué)數(shù)據(jù)庫(kù)的開發(fā)過(guò)程和提高系統(tǒng)性能的目的。
MCR(MATLAB Compiler Runtime)是建立在MATLAB基礎(chǔ)上的一個(gè)獨(dú)立的應(yīng)用框架,能夠執(zhí)行MATLAB文件和函數(shù)。而MATLAB是世界上公認(rèn)的功能強(qiáng)大、應(yīng)用廣泛的科學(xué)計(jì)算軟件,具有豐富的數(shù)值計(jì)算工具和高效的數(shù)值計(jì)算效率,占據(jù)了世界上數(shù)值計(jì)算軟件的主導(dǎo)地位。利用MATLAB提供的MATLAB Builder NE編譯工具,能夠?qū)ATLAB數(shù)值計(jì)算函數(shù)轉(zhuǎn)換成MCR組件(.net類)。因此,在,net框架中安裝MCR就能夠?qū)崿F(xiàn).net應(yīng)用MCR組件(.net類),進(jìn)而可以在程序中直接使用MATLAB強(qiáng)大的數(shù)值計(jì)算功能。為此,本文擴(kuò)展了n層架構(gòu)模式,構(gòu)建了如圖3所示的基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式。
從圖3可以看出,數(shù)值計(jì)算引擎將數(shù)值計(jì)算功能從業(yè)務(wù)邏輯層中獨(dú)立了出來(lái),數(shù)值計(jì)算引擎的構(gòu)建采用了Service-OrientedArchitecture(面向服務(wù)體系架構(gòu))的思想,利用Web Service技術(shù)實(shí)現(xiàn)SOA。SOA是一科,IT體系結(jié)構(gòu)樣式,支持將業(yè)務(wù)作為鏈接服務(wù)或可重復(fù)業(yè)務(wù)任務(wù)進(jìn)行集成,可在需要時(shí)通過(guò)網(wǎng)絡(luò)訪問(wèn)這些服務(wù)和任務(wù)。SOA將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)服務(wù)之間定義好的接口和契約聯(lián)系起來(lái)。接口是采用中立的基于XML的語(yǔ)言(也稱為Web服務(wù)描述語(yǔ)言,WebServices Definition Language,WSDL)定義的,它獨(dú)立于現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得不同類型的業(yè)務(wù)邏輯層可以以一種統(tǒng)一和通用的方式與數(shù)值計(jì)算引擎進(jìn)行交互,便于各種異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層與數(shù)值計(jì)算引擎的集成和復(fù)用,同時(shí)也能夠利用服務(wù)群集技術(shù)構(gòu)建數(shù)值計(jì)算引警集群,動(dòng)態(tài)均衡數(shù)值計(jì)算負(fù)載,滿足網(wǎng)絡(luò)高并發(fā)、高密集的數(shù)值計(jì)算需求,優(yōu)化了系統(tǒng)性能,大大提高了Web熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算引擎的計(jì)算能力和速度。
(1)數(shù)值計(jì)算引擎接口
本系統(tǒng)對(duì)外提供統(tǒng)一的熱力學(xué)數(shù)值服務(wù),例如焓、熵計(jì)算等的接口。只要通信雙方定義好服務(wù)契約,數(shù)值計(jì)算引擎用以為各種同構(gòu)或者異構(gòu)系統(tǒng)提供熱力學(xué)數(shù)值計(jì)算服務(wù),從而使數(shù)值計(jì)算引擎能夠?qū)崿F(xiàn)跨系統(tǒng)的業(yè)務(wù)集成和復(fù)用。
(2)數(shù)值計(jì)算類
數(shù)值計(jì)算引擎接口定義的熱力學(xué)數(shù)值計(jì)算方法,封裝了各種熱力學(xué)基本計(jì)算公式的求解過(guò)程,例如求解焓、熵的基本積分公式等。并在方法中調(diào)用MCR組件(net類)利用MATLAB完成具體的數(shù)值計(jì)算過(guò)程,例如定積分運(yùn)算或矩陣運(yùn)算等。此外,數(shù)值計(jì)算類還負(fù)責(zé)本地調(diào)用語(yǔ)言數(shù)據(jù)類型與MATLAB數(shù)據(jù)類型的轉(zhuǎn)換,以及錯(cuò)誤處理等輔助工作。
(3)MCR
系統(tǒng)根據(jù)數(shù)值計(jì)算類的調(diào)用請(qǐng)求,執(zhí)行相應(yīng)的MATLAB函數(shù)。
3基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式的優(yōu)點(diǎn)
在基于MCR框架的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式中,數(shù)值計(jì)算引擎的數(shù)值計(jì)算功能與熱力學(xué)數(shù)據(jù)庫(kù)業(yè)務(wù)邏輯層中分離,具有以下優(yōu)點(diǎn)。
實(shí)現(xiàn)了業(yè)務(wù)邏輯層與數(shù)值計(jì)算引擎之間的松耦合,便于各種異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)共享數(shù)值計(jì)算引擎服務(wù)。
采用SOA思想,能夠使用服務(wù)器集群技術(shù)建立數(shù)值計(jì)算服務(wù)器群,各個(gè)數(shù)值計(jì)算引擎分擔(dān)工作負(fù)荷,支持高密集數(shù)值計(jì)算,可靈活地增減系統(tǒng)數(shù)值計(jì)算能力。
減輕了熱力學(xué)數(shù)據(jù)庫(kù)應(yīng)用服務(wù)器的負(fù)載,有利于提高系統(tǒng)的整體性能。
熱力學(xué)數(shù)據(jù)庫(kù)的業(yè)務(wù)邏輯層只需關(guān)注如何使用數(shù)值計(jì)算服務(wù),而用不關(guān)心如何實(shí)現(xiàn)數(shù)值計(jì)算,簡(jiǎn)化了業(yè)務(wù)邏輯層的實(shí)現(xiàn)過(guò)程,提高了熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)效率。
能夠充分利用MATLAB豐富的數(shù)值計(jì)算工具,屏蔽了使用MATLAB的復(fù)雜過(guò)程。同時(shí)借助于MATLAB卓越的數(shù)值計(jì)算性能提高了數(shù)值計(jì)算效率。
可對(duì)數(shù)值計(jì)算引擎做進(jìn)一步的優(yōu)化。如可直接利用MATLAB并行計(jì)算功能構(gòu)建多核、多處理器并行計(jì)算服務(wù)器,或利用MATLAB分布式并行計(jì)算功能構(gòu)建MATLAB分布式計(jì)算計(jì)算機(jī)集群,提高數(shù)值計(jì)算引擎的數(shù)值計(jì)算速度。
4 結(jié)束語(yǔ)
在冶金、化工領(lǐng)域的生產(chǎn)和研究中,熱力學(xué)數(shù)據(jù)庫(kù)作為基本工其得到了越來(lái)越廣泛的應(yīng)用,對(duì)熱力學(xué)數(shù)據(jù)庫(kù)的計(jì)算性能要求也越來(lái)越高。系統(tǒng)的架構(gòu)模式是影響熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)性能的關(guān)鍵因素之一,是熱力學(xué)數(shù)據(jù)庫(kù)系統(tǒng)軟件開發(fā)的基礎(chǔ)。本文分析了三層和n層架構(gòu)模式的Web熱力學(xué)數(shù)據(jù)庫(kù)所存在的問(wèn)題,根據(jù)熱力學(xué)數(shù)據(jù)庫(kù)數(shù)值計(jì)算的特點(diǎn),在n層架構(gòu)模式的基礎(chǔ)上,提出了基于MCR框架的、多層、分布式計(jì)算的Web熱力學(xué)數(shù)據(jù)庫(kù)架構(gòu)模式。該模式可方便地實(shí)現(xiàn)對(duì)MATLAB計(jì)算功能的調(diào)用而無(wú)需了解具體的技術(shù)細(xì)節(jié),從而大大簡(jiǎn)化了數(shù)值計(jì)算功能的實(shí)現(xiàn)過(guò)程,同時(shí)也為Web熱力學(xué)數(shù)據(jù)庫(kù)在重負(fù)載網(wǎng)絡(luò)環(huán)境下的應(yīng)用和異構(gòu)熱力學(xué)數(shù)據(jù)庫(kù)共享熱力學(xué)數(shù)值計(jì)算服務(wù)提供了一種可行方案。