随着计算机技术和网络技术的迅猛发展,Web热力学数据库已成为当前热力学数据库技术发展的主流并得到广泛应用,目的在于建立解决特定热力学问题的正确、高效的数学模型。.
1引言随着Internet技术的不断发展。基于浏览器/Web服务器结构模型(即B/S结构模型)的热力学数据库得到了广泛的应用。在这种结构模型下,一部分事务逻辑在客户端浏览器实现,大部分事务逻辑在热力学数据库服务器端实现。然而,由于在热力学数据库的应用中涉及到大量的数值计算,会大量消耗服务器CPU和内存资源,从而导致热力学数据库服务器的负载加重,增大响应时间,因此,如不能很好地解决数值计算的速度问题,系统整体性能将受到较大的影响。
同时,在热力学数据库的开发过程中,开发人员不仅要集中精力将热力学数据库中的数学模型转换为计算机控制代码,而且还需要花费大量精力去实现、验证、优化数学模型中所涉及的数值计算方法。从而加大了热力学数据库的开发周期和难度。
本文针对Web热力学数据库数值计算的特点和对性能的要求。使用面向服务的架构思想,提出了基于MCR框架的Web热力学数据库架构模式,实现了Web热力学数据库计算模型控制与数值计算过程的分离,大大提高了系统数值计算能力和速度,同时简化了热力学数据库系统实现数值计算方法的过程。
2Web热力学数据库架构模式研究随着计算机技术和网络技术的迅猛发展,Web热力学数据库已成为当前热力学数据库技术发展的主流并得到广泛应用。但是围绕着提高Web热力学数据库系统性能的研究依然没有停止。这些研究主要集中在两个方面,一方面是对热力学数学模型的理论研究数值计算,目的在于建立解决特定热力学问题的正确、高效的数学模型。另一方面是对Web热力学数据库架构模式的研究,目的在于降低系统开发难度和缩短系统开发周期,优化网络计算性能,提高应用系统的效率和共享能力,在这类研究中,普遍采用了多层架构模式思想,将系统不同类型的工作任务分配到不同的层中执行,这样不仅便于网络用户使用热力学数据库,同时也便于系统的协同开发,提高了系统代码的复用性,便于业务逻辑的共享、重组和系统的维护。
2.1 三层架构模式的Web热力学数据库
图1. Architecture ofthree-TIers
在图1所示的三层架构模式中,客户端采用浏览器作为的系统界面访问工具。数据库服务器提供高效、安全的数据存储 *** 作。WebServer则实现整个系统的控制核心期刊。
三层架构模式主要解决了热力学数据库业务逻辑控制与数据存储控制的分离,实现了“瘦客户端”访问,便于用户使用,系统部署简单,维护成本低。从图1可以看出,热力学数据库系统的工作负载主要集中在Web Server,从而导致WebServer负载过重,成为影响系统性能的瓶颈。
2.2 n层架构模式的Web热力学数据库
图2. Architecture of n-TIers
为了减轻三层架构模式下Web热力学数据库系统Web Server的工作负载,系统架构师们提出了如图2所示的n层架构模式。其中,业务逻辑层负责热力学数据库的核心功能----计算模型控制和数值计算。表示层负责用户界面控制,数据访问层负责热力学数据库的访问并屏蔽使用数据库的细节信息。
采用n层架构模式使整个系统的工作负载分布到不同的服务器中,避免因某台服务器负载过重而成为影响系统性能的瓶颈,也便于系统的协同开发和维护,增加了系统部署的灵活性。例如,能够在业务逻辑层利用负载均衡技术构建应用服务器集群,解决复杂业务逻辑控制和大量用户并发访问的性能问题,在数据访问层引入中间件技术,解决高效访问数据库的问题。
3基于MCR框架的Web热力学数据库架构模式虽然n层架构模式的Web热力学数据库具有很多优势,但是在具体实现架构模式中的核心层----业务逻辑层时,面临两个比较棘手的问题。
一是如何实现热力学数据库数学模型中的数值计算,例如积分、方程组求解等,这需要热力学数据库开发人员耗费大量的时间和精力去编程实现各种相关数值计算求解程序。如果能够在系统中直接引用目前成熟的科学计算软件来解决数值计算求解问题,将大大简化数值计算实现过程。
二是如何提高数值计算的效率。数值计算往往会消耗计算机大量的内存和CPU资源,加重应用服务器的负载,从而导致系统的响应时间增长,成为影响系统性能的瓶颈。如果能够将数值计算过程从业务逻辑层中分离出来,将其转移到专用的数值计算服务器中数值计算,不仅能够减轻应用服务器的负载,而且专用的数值计算服务器能提供更好的执行效率,从而改善系统的性能。
本文提出的基于MCR框架的Web热力学数据库架构模式能够很好的解决以上两个问题。该架构模式的核心思想是利用MCR框架构建高性能的、易于使用的热力学数据库数值计算引擎,避免了在热力学数据库的开发过程中直接编程实现数值计算算法,同时使热力学数据库计算模型控制与热力学数据库数值计算过程分离,从而达到简化热力学数据库的开发过程和提高系统性能的目的。
MCR(MATLAB CompilerRunTIme)是建立在MATLAB基础上的一个独立的应用框架,能够执行MATLAB文件和函数。而MATLAB是世界上公认的功能强大、应用广泛的科学计算软件,具有丰富的数值计算工具和高效的数值计算效率,占据世界上数值计算软件的主导地位。利用MATLAB提供的MATLAB Builder NE编译工具,能够将MATLAB数值计算函数转换成MCR组件(.net类)。因此,在.net框架中安装MCR就能够实现.net应用调用MCR组件(.net类),进而可以在程序中直接使用MATLAB强大的数值计算功能。为此,本文扩展了n层架构模式,构建了如图3所示的基于MCR框架的Web热力学数据库架构模式。
图3. Architecture of Basedon MCR
从图3可以看出,数值计算引擎将数值计算功能从业务逻辑层中独立出来,数值计算引擎的构建采用了Service-OrientedArchitecture(面向服务体系架构)的思想,利用Web Service技术实现SOA。SOA 是一种IT体系结构样式,支持将业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。SOA将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的基于XML的语言(也称为Web服务描述语言,Web Services DefiniTIon Language,WSDL)定义的,它独立于实现服务的硬件平台、 *** 作系统和编程语言。这使得不同类型的业务逻辑层可以以一种统一和通用的方式与数值计算引擎进行交互,便于各种异构热力学数据库业务逻辑层与数值计算引擎的集成和复用,同时也能够利用服务群集技术构建数值计算引擎集群,动态均衡数值计算负载,满足网络高并发、高密集的数值计算需求,优化了系统性能,大大提高了Web热力学数据库数值计算引擎的计算能力和速度。
1)数值计算引擎接口
对外提供统一的热力学数值服务接口,例如焓、熵计算等。只要通信双方定义好服务契约,数值计算引擎可以为各种同构或者异构系统提供热力学数值计算服务,从而使数值计算引擎能够实现跨系统的业务集成和复用。
2)数值计算类
实现数值计算引擎接口定义的具体的热力学数值计算方法,这些方法封装了各种热力学基本计算公式的求解过程,例如求解焓、熵的基本积分公式等。并在方法中调用MCR组件(.net类)利用MATLAB完成具体的数值计算过程。例如定积分运算或矩阵运算等核心期刊。此外,数值计算类还要负责本地调用语言数据类型与MATLAB数据类型的转换,以及错误处理等辅助工作。
3)MCR
根据数值计算类的调用请求,执行相应的MATLAB函数。
4基于MCR框架的Web热力学数据库架构模式的优点在基于MCR框架的Web热力学数据库架构模式中,建立数值计算引擎将数值计算功能从热力学数据库业务逻辑层中分离出来,具有以下优点。
1)采用SOA思想,实现了业务逻辑层与数值计算引擎之间的松耦合数值计算,便于各种异构热力学数据库共享数值计算引擎服务。
2)采用SOA思想,能够使用服务器集群技术建立数值计算服务器群,通过负载均衡技术分担各个数值计算引擎的工作负荷,支持高密集数值计算,可灵活的增减系统数值计算能力。
3)减轻了热力学数据库应用服务器的负载,有利于提高系统的整体性能。
4)热力学数据库的业务逻辑层只关注如何使用数值计算服务,而不关心如何实现数值计算,简化了业务逻辑层的实现过程,提高了热力学数据库系统开发效率。
5)能够充分利用MATLAB丰富的数值计算工具,屏蔽了使用MATLAB的复杂的过程。同时借助于MATLAB卓越的数值计算性能提高了数值计算效率。
6)可对数值计算引擎做进一步的优化。如直接利用MATLAB并行计算功能构建多核、多处理器并行计算服务器。或利用MATLAB分布式并行计算功能构建MATLAB分布式计算计算机集群。进一步提高数值计算引擎的数值计算速度。
5结束语在冶金、化工领域的生产和研究中,热力学数据库作为基本工具得到了越来越广泛的应用,对热力学数据库的计算性能要求也越来越高,而系统的架构模式是影响热力学数据库系统性能的关键因素之一,是热力学数据库系统软件开发的基础。本文分析了三层和n层架构模式的Web热力学数据库所存在的问题,根据热力学数据库数值计算的特点,在n层架构模式的基础上,提出了基于MCR框架的、多层、分布式计算的Web热力学数据库架构模式,可以方便的实现对MATLAB计算功能的调用而无需了解具体的技术细节,从而大大简化了Web热力学数据库开发过程中实现数值计算功能过程,同时也为Web热力学数据库在重负载网络环境下的应用和异构热力学数据库共享热力学数值计算服务提供了一种可行方案。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)