网站首页 走近凯科 产品中心 解决方案 下载中心 文章资料 渠道合作 服务支持 联系我们
您现在位置:首页 >> 文章资料
 


 

 


 


 

 

 
 

任何一个应用程序的设计开发的最重要的元素之一就是如何进行系统架构。系统架构定义一个应用程序的各个模块之间如何相互作用,以及每个模块负责执行什么样的功能。从纯功能的观点来看,大多数应用程序主要处理如下三种任务:获取用户输入,将输入存储为数据,按预定的操作程序处理这些数据。目前流行的主要有三种应用程序体系结构模型,各应用体系模型就是根据在用户与数据之间所具有的层次来划分的。每一层次一般都运行在不同的系统或是相同系统的不同进程空间内。这三种应用体系结构模型分别就是单层应用体系结构模型、两层应用体系结构模型、多层(可以是三层或三层以上)应用体系结构模型。

1. 单层应用体系结构模型

单层应用体系结构模型在单一的应用层内实现用户界面、商业规则、数据管理。对数据本身来说,它可以是物理上位于一个远端位置,但是存取数据的逻辑却是应用程序的一部分。在这样的体系结构中,数据处理主要不是通过数据库,而是文件来存取数据,应用程序自己定义如何进行数据的存储、查询、读取等运算逻辑。单层应用的一个最普遍的例子就是字处理器:它有一个用户界面用于接收键盘输入以及显示输出,它有众多商业规则来完成页码标记、拼写检查等功能,它还有一些文件存取程序来管理数据文档。单机应用特别是Windows应用程序多数属于这种单层模型。这种模型的好处在于应用程序的前期分析和设计比较简单,但是后期的维护会变得非常麻烦,因为用户界面、商业规则、数据管理交织在一起,对任何一部分的改动都会影响到其它部分。

2. 两层应用体系结构模型

在两层应用体系结构模型中,商业规则和用户界面仍然结合在一起构成应用程序的客户端。但是数据的存取和管理独立出来由单独的通常是运行在不同的系统上的程序来来完成,这样的数据存取和管理程序通常就是象SQL Server 或 Oracle这样的数据库系统。熟知的Client/Server就是这样的两层结构,基于Client/Server结构的应用在局域网的应用中占绝大多数。

在两层应用体系结构模型中,还有一种情况是用户界面单独为一层,商业规则和数据处理合而为一构成另一层。这种结构的典型例子就是商业规则以存放在数据库服务器内的存储过程来体现。存储过程是数据库系统的一个重要功能,每个存储过程就是存储在数据库服务器上的一段程序,它指明如何进行一系列的数据库操作。存储过程可以直接被客户端调用,此外还有一种触发机制可以调用执行存储过程:当数据满足一定条件时,触发一个事件,引起相应的存储过程被调用执行。

Client/Server结构模型的一个最大的好处在于:通过允许多用户同时存取相同的数据,来自一个用户的数据更新可以立即被连接到服务器上的所有用户访问。这种结构的缺点也很明显:当客户端的数目增加时,服务器端的负载会逐渐加大,直到系统承受不了众多的客户请求而崩溃;此外,由于商业规则的处理逻辑和用户界面程序交织在一起,因此商业规则的任何改动都将是费钱、费时、费力的。虽然两层结构模型为许多小规模商业应用带来简便、灵活性,但是对快速数据访问以及更短的开发周期的需求驱使应用系统开发人员去寻找一条新的创建分布式应用的道路,那就是多层应用体系结构模型。

3. 多层应用体系结构模型

在多层应用体系结构模型中,商业规则被进一步从客户端独立出来,运行在一个介于用户界面和数据存储的单独的系统之上。现在,客户端程序提供应用系统的用户界面,用户输入数据,查看反馈回来的请求请求结果,对于Web应用,浏览器是客户端用户界面,对于非Web应用,客户端是独立的编译后的前端应用程序;商业中间层由封装了商业逻辑的组件构成,这些商业逻辑组件模拟日常的商业任务,通常是一种COM组件或者CORBA组件;数据层可以是一个象SQL Server这样的数据库管理系统,或者是象Exchange这样的非结构化数据交换系统,还可以是象事务处理或消息队列这样事务处理机制,应用程序可以选择一个或多个这样的数据服务。

商业规则处理并确保所有的商业过程正确执行。在这种多层体系模型中,客户端程序不能直接直接存取数据,从而为数据的安全性和完整性带来保障。这种结构带来的好处就是应用系统的每一个部分都可以被单独修改而不会影响到另外两个部分。此外,因为每一层之间是通过接口来相互通信的,所以只要接口保持不变,内部程序的变化就不会影响到系统的应用其余部分。

在多层体系结构模型中,各应用层并不一定要分布在网络上不同机器的物理位置上,而可以只是分布在逻辑上的不同位置,此外各应用层和网络物理拓扑之间并不需要有一一对应关系,每个应用层在物理拓扑上的分布可以按系统需求而变化。比如,商业中间层和数据处理层可以位于装有IIS Web服务器和SQL Server数据库服务器的同一台机器。

使用多层体系结构模型为应用程序的生命周期带来诸多好处,包括:可复用性、适应性、易管理性、可维护性、可伸缩性。你可以将你创建的组件和服务共享和复用,并按需求通过计算机网络分发。你可以将大型的、复杂的工程项目分解成简单安全的众多子模块,并分派给不同的开发人员或开发小组。你可以在服务器上配置组件和服务以帮助跟踪需求的变化,并且当应用程序的用户基础、数据、交易量增加时可以重新部署。

多层应用程序将每个主要的功能隔离开来。用户显示层独立于商业中间层,而商业中间层独立于数据处理层。设计这样的多层应用程序需要进行权衡:它在初始阶段需要更多的分析和设计,但在后期阶段会大大减少维护费用并且增加功能适应性。

中间商业层组件可以按响应时间或其它规则的需要移动到不同的位置。例如,移动到用户层以加强用户界面处理功能并且可以减少网络的数据往复,通过存储过程将数据规则移动到数据层来实现。只有当具有多重数据源时,数据规则独立为一层才变得至关重要。

在多层体系结构模型中,客户端应用程序变得比在Client/Server这样的两层体系结构模型中更为小巧,因为服务组件已经分布在中间商业层。这种方式带来的结果是在用户上的一般管理费用降低,但是由于服务组件分布在不同的机器上,因此系统的通信量会大大增加。

4.Internet应用采用的体系结构模型

过去的一段时间,许多大大小小的公司都在为功能越来越强大、费用越来越低廉的个人计算机建立强壮的应用程序。而当这些应用程序每天被成百上千万的用户使用时,新兴的技术也同时为应用软件开发人员及应用软件系统平台带来意义深远的影响。

Internet技术的发展为全球信息在大小企业以及个人之间的共享奠定了基础。Internet催动着技术创新,竞争和加速的变化脚步使得对快速开发具有高适应性应用程序的方法模型的需求日益迫切。各种应用体系结构模型都可以用于Internet应用开发,但是在这三种模型中,多层应用体系结构模型是开发Internet应用的最好的应用模型。

基于Web的应用多数属于多层应用体系结构。Web技术如HTML、DHTML、XML等表示的标记语言为用户层界面带来了更好的信息显示方式,丰富了用户界面层的应用;Web服务器如IIS、Apache等架设在用户层浏览器和数据层数据库服务器之间,一方面通过CGI、ASP等直接为Web应用提供中间商业层服务,另一方面驱动商业逻辑组件提供中间层服务:接受来自浏览器的服务请求,传递给数据库服务器,并将从数据库服务器返回而来的数据提供给用户层浏览器;随着Web应用的增加,数据层数据库服务器也变得日益重要。

应用于Internet的三层应用体系结构模型也有很大的缺限。这种模型将绝大部分工作交由服务器进行:数据存储在服务器,商业应用程序代码存储在服务器,数据的加工、处理在服务器端进行,程序的执行也在服务器端,客户端浏览器只简单地用于显示由服务器端传来的标记语言页面。这是一种瘦客户端-胖服务器端模式,它缺点之一是代价昂贵,能满足要求的服务器价格是不菲的;缺点之二是客户端计算功能的严重浪费,今天的PC机已具有相当大的运算能力以及相当低廉的价格,真正好的应用模式应该对PC运算能力加以充分利用;缺点之三是写服务器商业应用程序的要求是很苛刻的,应用程序的任何微小的失误在多用户访问情况下将很快导致服务器系统的崩溃;缺点之四是集中式的数据访问将会在Web服务器上产生数据传输瓶颈。

如果采用单层或两层体系结构模型,那么当用户想要运行一个应用程序时,必须将该应用程序整个下载到客户端用户机器,即便用户只需要该应用程序的部分功能或只须临时用一下该应用程序。不言而喻,这种模式不适合Web应用。Web应用的一个特点是Web上存在着无数的应用程序,如果用户每访问一个这样的应用程序都必须先完全下载完全安装然后才能运行,那么无论是时间效率还是用户的机器都是不现实的。此外,这种应用模式在安装、升级、维护方面都极为不便,这是因为每次安装、升级、维护都必须在每台用户机器上进行。

分析一下从单层体系结构到两层体系结构再到多层体系结构的发展过程,可以看出隐含其间的是一个完整的应用程序逐步被分割为不同的组成成份:先是数据存取和管理独立出来成为单独的数据层,然后是商业逻辑处理独立出来构成单独的商业中间层。每一次的分割都带来不同层度的好处。分割到最后,一个完整的应用就包括用户层显示页面、商业中间层的商业逻辑组件、数据层数据库系统。当前流行的商业逻辑组件主要是基于COM/DCOM组件模型或者基于CORBA组件模型。所有的这些页面或组件都成为不可再分割的单元。

设想这样一种组件模型:它能将组件按外观、属性、方法、事件分割为细小的单元,每一个单元可以分别传输然后重新组合。有了这样的组件模型,我们就可以定义这样的体系结构模型:它以这种可分割的组件模型将用户界面层和商业逻辑中间层的大部分逻辑功能紧密结合在一起,初始放置在服务器上,当通过浏览器访问时分块下载到客户端运行;Web服务器保留一部分商业逻辑中间层,主要是用于在用户层和数据层之间提供中间桥梁作用;数据层数据库系统仍继续保持它的数据存取和管理功能。由于这种体系结构模型将商业逻辑中间层的大部分逻辑功能放置到客户端运行,优点是多方面的:由于组件可分割,因此应用程序可以即访即用,而不必等到全部的页面信息和逻辑下载后才能运行;大大减轻了服务器端的负担,使得每台服务器可以同时支持更多的应用请求;客户端资源得到很好的利用;客户端的处理速度明显加快,因为不需要有通过网络的请求——反馈过程;缓解了服务器数据传输瓶颈问题。

以上设想的组件模型有一种很好的实现,就是KCOM组件模型。如果将建立在这种组件模型基础之上的上述体系结构模型应用到Internet应用开发,那将会是最为有效的应用方式。

采取合适的应用体系结构模型是一个应用程序成功与否的关键,多层应用体系结构模型有许多的优点,特别适合于Internet应用程序,但是并不是所有的应用程序都应该采取多层模型,一个应用程序采取何种体系结构模型应根据实际情况而定。

版权所有 ◎ 1999-2007 凯科思特(北京)科技有限公司 京ICP备05028623号