Web应用程序模型及其Java实现之第一部分2010-12-31第一部分:几种典型的应用程序模型应用程序是什么,简单的来说,它是人类客观世界的问题领域在计算机世界的解决方案。我们生活的客观世界复杂多样,计算机世界也是博大精深,怎样从普遍的意义上来表述应用程序是一个非常有用的课题。应用程序的编程模型,也就是应用程序的拓扑结构,是一门关于应用程序的科学。从事软件设计、软件开发的人员,如果能够就应用程序的编程模型有足够的重视,将受益匪浅。引言简单介绍应用程序编程模型的发展过程,以及我们常用的几种应用程序编程模型。通过对多个模型的表述加深人们对编程模型的概念,为下面进一步描述Web应用模型打下基础,1、应用程序的基本功能单元组成应用程序的功能代码及其资源,按照其在应用程序中的功能,可以简单分解成为三个部分:用户界面(User Interface),事务逻辑(Business Logic)和数据存取(Data Access)。应用程序的基本功能单元如图1所示。

图1、应用程序功能分解2、几种典型的编程模型随着计算机技术的发展和应用的深入,应用程序的编程模型在不断的演化,先后出现了:单层应用模型(monolithic);两层客户/服务器应用模型(two-tier client/server);多层应用模型(multitier client/server); 分布式系统;基于Web的多层应用模型(web-based multitier client/server)。单层应用模型早期为大型机编写的应用程序,没有将应用程序三个组成部分分开,即没有将用户界面、事务逻辑和数据存取分开。这种体系结构跟当时的计算机水平和应用状况有一定的联系,当时的用户通过哑终端来共享大型机资源,哑终端没有任何处理能力,所有的用户界面、事务逻辑和数据存取功能都是在大型机上实现,这样当时使用单层体系结构而没有出现多层体系结构是合理的。单层的应用程序结构见图2所示。

图2、单层的应用程序模型两层客户/服务器应用模型PC机的出现对应用程序模型的发展带来了巨大的推动力,这时出现了客户服务器模式的应用程序,即应用程序的代码和资源被明确的划分为客户端和服务器端。因为PC机有了一定的处理能力,传统在大型机上实现的的用户界面和部分事务逻辑被移到PC机上运行(我们将这种PC机端的代码称为应用程序客户端),而大型机则提供部分事务逻辑处理和数据存取的功能(我们将这种大型机端的代码称为应用程序服务器端)。随着PC机处理能力在逐渐加大,客户端执行的任务逐渐增多,这时对服务器端的硬件要求也在逐渐的降低。根据事务逻辑在客户端和服务器端分配的不同,该种模型有图3所示几种形式。

图3、两层客户/服务器应用模型的三种形式需要值得注意的是,客户/服务器应用程序常常体现为客户端和服务器端运行在不同的计算机上,但这并不是必然的要求,在同一台计算机上同样可以实现客户/服务器应用程序。