摘要:分析了三層和n層架構(gòu)模式的Web熱力學數(shù)據(jù)庫在數(shù)值計算方面存在的問題。提出了基于MCR框架的、多層的、分布式計算的Web熱力學數(shù)據(jù)庫架構(gòu)模式,將Web熱力學數(shù)據(jù)庫業(yè)務(wù)邏輯層與數(shù)值計算過程分離,簡化了數(shù)值計算的過程。同時,利用服務(wù)器群集技術(shù)構(gòu)建數(shù)值計算引擎集群,大大提高了Web熱力學數(shù)據(jù)庫數(shù)值計算能力和速度、
關(guān)鍵詞:MCR;Web Service;架構(gòu)模式;數(shù)值計算;熱力學數(shù)據(jù)庫
O 引言
隨著Internet技術(shù)的不斷發(fā)展,基于瀏覽器/Web服務(wù)器結(jié)構(gòu)模型(即B/S結(jié)構(gòu)模型)的熱力學數(shù)據(jù)庫得到了廣泛的應用。在這種結(jié)構(gòu)模型下,一部分事務(wù)邏輯在客戶端瀏覽器實現(xiàn),大部分事務(wù)邏輯在熱力學數(shù)據(jù)庫服務(wù)器端實現(xiàn)。然而,由于在熱力學數(shù)據(jù)庫的應用中涉及到大量的數(shù)值計算,會大量消耗服務(wù)器CPU和內(nèi)存的資源,導致熱力學數(shù)據(jù)庫服務(wù)器的負載加重,增大響應時間,因此,如不能很好地解決數(shù)值計算的速度問題,熱力學數(shù)據(jù)庫系統(tǒng)整體性能將受到較大的影響。
在熱力學數(shù)據(jù)庫的開發(fā)過程中,開發(fā)人員不僅要集中精力將熱力學數(shù)據(jù)庫中的數(shù)學模型轉(zhuǎn)換為計算機控制代碼,而且還需要花費大量精力去實現(xiàn)、驗證、優(yōu)化數(shù)學模型中所涉及的數(shù)值計算方法,從而加大了熱力學數(shù)據(jù)庫的開發(fā)周期和難度。
本文針對Web熱力學數(shù)據(jù)庫數(shù)值計算的特點和性能要求,使用面向服務(wù)的架構(gòu)思想,提出了基于MCR框架的Web熱力學數(shù)據(jù)庫架構(gòu)模式,實現(xiàn)了Web熱力學數(shù)據(jù)庫計算模型控制與數(shù)值計算過程的分離,大大提高了系統(tǒng)數(shù)值計算能力和速度,用時簡化了熱力學數(shù)據(jù)庫系統(tǒng)數(shù)值計算方法的實現(xiàn)過程。1Web熱力學數(shù)據(jù)庫架構(gòu)模式研究
隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,Web熱力學數(shù)據(jù)庫已成為當前熱力學數(shù)據(jù)庫技術(shù)發(fā)展的主流并得到廣泛應用。但是圍繞著提高Web熱力學數(shù)據(jù)庫系統(tǒng)性能的研究依然沒有停止。這些研究主要集中在兩個方面。一方面是對熱力學數(shù)學模型的理論研究,目的在于建立解決特定熱力學問題的正確、高效的數(shù)學模型;另一方面是對Web熱力學數(shù)據(jù)庫架構(gòu)模式的研究,目的在于降低系統(tǒng)開發(fā)難度和縮短系統(tǒng)開發(fā)周期,優(yōu)化網(wǎng)絡(luò)計算性能,提高應用系統(tǒng)的效率和共享能力。在后一這類研究中,普遍采用多層架構(gòu)思想,將系統(tǒng)不同類型的工作任務(wù)分配到不同的層中執(zhí)行,這樣不僅便于網(wǎng)絡(luò)用戶使用熱力學數(shù)據(jù)庫,同時也便于系統(tǒng)的協(xié)同開發(fā),提高系統(tǒng)代碼的復用性,便于業(yè)務(wù)邏輯的共享、重組和系統(tǒng)的維護。
1.1三層架構(gòu)模式的Web熱力學數(shù)據(jù)庫
在圖1所示的三層架構(gòu)模式中,客戶端采用瀏覽器作為的系統(tǒng)界面訪問工具;數(shù)據(jù)庫服務(wù)器提供高效、安全的數(shù)據(jù)存儲操作;Web Server則實現(xiàn)整個系統(tǒng)的控制。
三層架構(gòu)模式主要解決了熱力學數(shù)據(jù)庫業(yè)務(wù)邏輯控制與數(shù)據(jù)存儲控制的分離,實現(xiàn)了“瘦客戶端”,便于用戶使用,系統(tǒng)部署簡單,維護成本低。從圖1可以看出,熱力學數(shù)據(jù)庫系統(tǒng)的工作負載主要集中在Web Server,導致Web Server負載過重,成為影響系統(tǒng)性能的瓶頸。

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