三层架构部署企业级数据库业务系统开发

什么是三层构架

    随着软件工程的不断进步和规范已经面向对象编程思想的应用,开发人员对封装、复用、扩展、移置等方面的认识和专业化,使得双层架构显然更加臃肿繁琐,三层程序架构体系应运而生。可以说,三层架构体系结构是面向对象思想发展的必然产物。当然三层构架对于目前已经不是什么新鲜事物了,最早产生这个词应该是几年前的Java的运用,j2ee三层构架体系流行了这么多年,一直没有使用过。不过j2ee三层架构体系的提出,对软件系统的架构产生了巨大的影响,微软等公司也针对sun的j2ee三层架构推出了.net平台。更有了C#为java之子。那么何谓三层架构?三层架构就是在客户/服务之间加入一个中间层,或者叫组件层。它与客户层、服务器层共同构成了三层体系。这里所说的三层体系不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,三层是指逻辑上的三层。通过引入中间层,将复杂的商业逻辑从传统的双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易与访问、易与管理的方法,可以将多种应用服务分别封装部署与应用服务器,同时增加了应用程序可用行。安全行、封装复用性、可扩展性和可移置性,使用户在管理上所发费的时间最小化,从而实现便捷、高效、安全、稳定的企业级系统应用。

 描述三层架构

  三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是中间层向外提供接口,通过COM/DCOM通讯或者Http等方式与中间层建立连接,再经由中间层与数据库进行交互。当然数据通过中间层进行中转无疑是降低了效率,但是它脱离于界面与数据库的完美封装,使得它的缺点显然不值得一提。

典型的三层结构分为表示(presentation)层,领域(domain)层,以及基础架构(infrastructure)层

,而微软的DNA架构定义了三个层:表示层(presentation),业务层(business),数据存储层(data access),当然J2ee也有它不同飞分法不过大同小异。如果想详细下去其实可以分为7层:界面外观层,界面规则层,业务接口层、业务逻辑层、

实体层、数据访问层、数据存储层。

由上图可以看出,其实就是从三层架构在详细每个层的架构。从根本上说这个七层架构是三层架构设计思想。单从这个图来看,数据的调用显得繁琐而抽象,也许你只想实现界面上与用户交互,然后根据用户的请求将数据读出与写入数据库就达到目的了,那为什么要做如此复杂的分层调用呢?从这个问题中我们也只看到界面与数据库,也就是说从用户的需求来说,就是这两层而已,但是这里我们必需先搞清的是三层架构它主要是为程序员为了实现部署、开发、维护企业级数据库系统而服务的。如果我们在中间层实现了对表示层和数据库层的完全脱离,其部署、开发、维护系统的费用和时间将显著的减少。

 一个企业级数据库应用系统上的三层构架

系统通过浏览器或应用程序客户端提供与用户的交互平台,并向服务器提交请求(界面外观层);用户提交请求后,界面规则层对用户的数据按照业务逻辑层要求的接口参数封装规则封装用户数据,然后调用业务接口层对外提供的相应命令接口(界面规则层),业务接口层通过对数据进行解析并分别送入不同的逻辑处理并向用户返回处理结果(业务接口层);对于数据和命令的不同,处理方式也不同,我们将不同的处理方式都归类,并将接口层传入的数据及命令流入对应处理流程(业务规则层);这时,不同的处理流程分析数据和命令产生出对应的一个实体,这个实体根据其本身的属性和方法以及上层传入的命令,将数据处理为数据访问层需要的接口参数,并向数据访问层提交访问数据库的请求,并向业务接口层返回访问结果(实体层);数据访问层会将数据转化为数据库可识别的语句(SQL),并访问数据库层,访问结果会返回给实体层(数据访问层);数据库层处理上层传入的SQL,读写数据库内置对象,并根据其内置对象本身的关系对数据做进一步校验和处理(数据库层)。这里我所讲到的企业级数据库应用系统,不论它是基于B/S应用系统上的三层架构设计,还是基于C/S应用系统上的三层架构设计,基本上是一样的,所不同的只是两种方式常用的数据传输协议的不同,B/S应用系统设计一般数据传递是通过HTTP来完成的,C/S应用系统设计则更多的是基于TCP/IP协议来传送数据的,当然,随着企业级应用系统对安全性方面要求的要求越来越高,更多的防火墙架设于物理线路之间,C/S应用系统的设计也越来越多地趋向于HTTP,典型的方式如:

CLIENTàISAPI/CGIàServer Database;

CLIENTàWeb ServiceàServer Database;

既然提到这两种方式,我简单地提一下它们两者的区别及应用,它们的不同主要是中间层向客户端提供服务的方式不同,一般情况下这两种方式都需要架设专门用于受理客户端请求的Web Server,很明显,它更进一步地体现了三层架构的安全性。中间层基于ISAPI/CGI的方式可以说正在被Web Service方式所取代,这也正是面向对象思想的进一步应用。ISAPI/CGI向客户端提供的服务实际上是远程调用函数,数据一般由程序员自定义结构存储,并基于HTTP与Web Server交互,而Web Service向客户端提供的服务是远程调用类,常常采用XML存储数据,并基于SOAP与Web Server交互。两者的优劣势也很明显,前者较XML封装方式,数据量小,传输速度快,后者因为XML的臃肿速度上来说是它的劣势,不过它的安全性以及开发速度占有明显得优势。

 

 

参考网页:http://www.uml.org.cn/zjjs/200905201.asp;这个更加详细

你可能感兴趣的:(三层架构部署企业级数据库业务系统开发)