一、前言
传统的管理信息系统(MIS)开发采用客户/服务器(CLIENT/SERVER)模式,从体系结构上讲,一般采用两层结构,即应用(客户层)和数据服务层。客户端(应用层)提供用户操作界面,接受数据输入,向数据服务层发出数据请求并接受返回的数据结果,根据业务逻辑进行相关的运算,向客户显示相关信息;数据服务层接受客户端的数据请求,做相关数据处理,并将数据集或数据处理返回客户端。
在现在一些系统中,由于客户机较多,访问量和数据传输量都较大。为解决相应的瓶颈以及出于安全因素等方面的考虑,往往采用中间件组成三层(多层)结构应用体系(在两层结构应用开发中,常常会编写一些存储过程放在数据库端以供客户端调用,这已经有点类似三层结构)。三层结构应用体系将业务逻辑放在应用服务层,应用服务层接受客户机的业务请求,根据请求访问数据库,做相关处理,将处理结果返回客户机。应用服务层从物理上和逻辑上都可以独立出来,客户机(层)不直接访问数据库服务器(层),而是访问应用服务器(层)。客户层发出的不再是数据请求而是业务(事务)请求。
二、三层应用体系结构的优点
两层体系结构在实际应用中已暴露出一些问题。如:客户机直接(或通过存储过程)访问数据库,所有客户机均访问数据库,不利于安全控制,难以防止黑客的恶意攻击。同时,网络流量很大,易形成网络瓶颈。还会造成数据库访问瓶颈及数据库连接数过多,影响数据库的响应速度,降低系统性能。另外,两层应用体系结构还有维护、扩展方面的问题。相比之下,三层应用体系结构显示以下优点。
进程管理:通过对服务进程的管理,使得在正常情况下,能用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数。在峰值情况下,控制服务进程的总数,使得服务器在设定的负载下工作,不被压跨。总之,通过中间件对服务进程的有效管理,可以使系统在额定的功率下稳定工作,当请求服务的数量超过了服务器的处理速度时,中间件会把请求排队进行缓冲。
保持和复用数据库连接:服务进程访问数据库都要和数据库建立连接,如打开和关闭数据库等。中间件通过采用长驻服务进程的手段,使得与数据库的连接被保持和复用,从而大大减少与数据库连接的次数和时间。
支持交易优先级:通过对交易优先级的支持,保证优先级高的交易能尽快得到响应。
2.1 优化了系统结构
将系统分为三层(或多层),业务逻辑放在应用服务层,软件的维护集中在应用服务层,客户端的维护就相对简单多了,有利于软件维护及系统管理。
2.2 提高了应用系统的安全性
将客户端与数据库隔离起来,客户端无权限直接访问数据库,有利于安全管理,可有效防止恶意攻击。还可以利用中间件的安全管理特性进一步加强权限控制管理。
2.3 便于业务(事务)级权限管理
三层结构应用中可划分出业务(事务)级权限,一种业务一个服务程序(Service),利用中间件的安全管理对其进行访问控制。数据库的权限只分为对表(或表中的列)的插入(Insert)、删除(Delete)、修改(Update)、查询(Select)权限,它属于数据库表级的权限,而实际应用中往往以业务(事务)为主线,也就要求对业务(事务)实现权限控制,三层结构应用可以方便地对客户端实现事务权限管理控制。业务(事务)级权限控制的引入丰富和方便了权限控制与管理,实际上两层应用体系结构中可通过存储过程类似地实现业务(事务)级权限控制,但采用三层应用体系结构实现业务(事务)级权限控制更加灵活、方便、实效。
2.4 卓越的扩展能力
若要提高系统性能、处理速度,可增加应用服务器,分担一部分应用服务工作即可,而原来的应用服务器几乎可以不动。
2.5 减少网络数据流量和提高数据库响应速度
两层应用体系结构中客户机直接(或通过存储过程)访问数据库,会造成数据库访问瓶颈及网络瓶颈,从而降低了整个系统的性能。
三层应用体系结构中,应用服务层的引入有效地解决了网络瓶颈和数据库连接数过多引起数据库性能下降的问题。应用服务层往往有多台服务器,可有效地解决客户机访问服务层瓶颈。应用服务器与数据库服务器(物理距离很近)可方便地采用宽带网连接,不会产生与数据库服务层网络瓶颈。
2.6 保护现有投资
原有性能较差的设备(微机、小型机)均可发挥作用。大量复杂计算的工作均可放在应用服务器上(可由多台小型机组成),对硬件要求不是很高,客户机只做用户输入与显示,原有微机即可。采用三层应用体系结构后整个系统性能有很大地提高,也不会造成原有系统资源浪费。
2.7 提高系统性能
三层应用体系结构能更好地调整应用体系,还可利用中间件的特点来选择路由、平衡负载,提高整个系统的性能。
总的来说,三层应用体系结构使应用系统的性能、安全性、扩展性有了很大的提高,也方便了系统的维护和管理。