Web 应用程序模型及其Java实现之第一部分

 
  第一部分:几种典型的应用程序模型

  应用程序是什么,简单的来说,它是人类客观世界的问题领域在计算机世界的解决方案。我们生活的客观世界复杂多样,计算机世界也是博大精深,怎样从普遍的意义上来表述应用程序是一个非常有用的课题。应用程序的编程模型,也就是应用程序的拓扑结构,是一门关于应用程序的科学。从事软件设计软件开发的人员,如果能够就应用程序的编程模型有足够的重视,将受益匪浅。

  引言

  简单介绍应用程序编程模型的发展过程,以及我们常用的几种应用程序编程模型。通过对多个模型的表述加深人们对编程模型的概念,为下面进一步描述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、两层客户/服务器应用模型的三种形式

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

  多层客户服务器应用模型

  两层应用程序模型的出现极大的增加了应用程序的灵活性,同时也带来应用程序可维护性的提高。但是,在两层应用程序中仍然存在着不便维护的缺点,客户端的逻辑或是客户端的嵌入SQL极有可能随着数据库的改变或是事务逻辑的变化而变化,不得不重新实现并发布一个新的客户端,也就是说,这样的应用程序模型仍然是比较脆弱的。三层或是更多层应用模型的出现,解决了这样的问题。

  在三层的应用程序模型中,事务逻辑与用户界面和数据存取明显的分离出来,将客户端的用户界面与服务器端数据存取隔离开来,极大的改善了应用程序的可维护性。

  注意,虽然最常用的多层客户/服务器模型是三层模型,但是,现在已经出现了将事务逻辑层和数据存取层增加的趋势。这种更多更细的分层不但提高了系统的维护性能,同时也增加了系统的重用性和与分布式系统概念融合的可能性。

  图4所示为一个典型的三层模型:



图4、三层客户/服务器应用模型

  分布式系统

  在分层的客户/服务器应用模型中,下一层为上一层提供服务,上一层调用下一层提供的服务,这不利于功能的重用。为了最大限度的发挥系统的功能,分布式系统打破分层系统中对于客户和服务器的定义,将应用程序的代码实现分解为遵循某个标准规范的对象,这些对象中提供的功能被封装到接口中。在某个具体的服务逻辑中,一个对象可能充当客户端的功能,它需要调用另一个对象提供服务;但是,在另一个服务逻辑中,同一个对象可能为另一个对象提供服务,充当服务器的功能。

  常见的分布式对象规范有COM/DCOM、CORBA、Java RMI等。

  分布式系统模型如图5所示。



图5、分布式系统模型

  基于Web的多层应用模型

  WWW的发展,使得Internet的应用不再局限于提供一些静态的内容、甚至也不满足于提供一些简单的动态内容。传统以独立的软件包形式发布的一些应用程序,正逐渐被搬上Internet,以出租服务的方式提供给用户,这就是ASP(Application Service Provider)。由于Web的特点是Internet 上的HTTP,是一种请求应答式的无连接的服务形式,所以这种基于Web的应用程序在体系结构上有其独特的特点。



图6、基于Web的多层应用模型

  3、下一种编程模型是什么?

  从SUN的Jini技术、微软的Microsoft.net技术可以看出,应用程序模型正在超越目前的水平。比如,目前的分布式应用系统不得不遵循某个接口规范和实现,如RMI、CORBA、DCOM等等,这在一定程度上限制了系统的扩展性。为了解决这个缺点,微软正在开发一种基于HTTP、XML的构件自解析的网络服务构件标准。


(作者:李山责任编辑:方舟)

转载请注明地址:http://www.yujinxiangqiangzhi.com/rjdz/rjdz/21.html


  • 上一篇文章:
  • 下一篇文章:
  • 公司简介 广告合作 发布优势 服务条款 隐私保护 网站地图 版权声明