本文从网络应用的结构分析了C/S和WEB应用的特征以及各自的优势和限制;讲述了W EB应用中数据处理过程;还讲述了WEB应用中各部分的功能划分;最后详尽分析了应用从C /S向WEB平台移植的步骤。
从90年代开始,客户机/服务器(Client/Server,以下简称为C/S)结构代替了原来的主机/终端(Host/Terminal)结构,并且在整个IT发展中发挥了巨大的作用。但随着Interne t的不断普及和应用的迅速升级,C/S的应用感到有些力不从心。
一、C/S结构的限制
网络应用绝大部分都可分为以下四个层次:表现层、事务层、数据逻辑层和数据存储层。在C/S结构中,表现层和事务层都放在客户端,而数据逻辑层和数据存储层则置于服务器端。这种组织安排带来诸多的限制:
1、客户端很庞大,以致于应用程序升级和维护时十分困难且耗资很大;
2、事务层不能与跨平台的客户端共享;
3、孤立了不同的逻辑组件;
4、没有统一的数据逻辑层来提供不同种类的数据存储层;
5、C/S组织结构不支持Internet。
做过C/S结构下的MIS开发和维护的人们对第1点体会颇深:对应用程序一个小小的改动,就必须通知或亲临每一个客户端去更新;新增或升级一台机器,都要把应用及其相关的文件安装在客户端上。如果整个系统有成千上万个客户端,可以想象维护的工作量有多大。
二、Web应用的解决方案
Web平台是一个调度任务集中的、以客户为中心的应用程序平台;它是一个分布式、开放、适用性强、高性能、端到端的平台;它使企业利用技术获取竞争优势。
1. 分布式
C/S技术的出现,给系统集成方案带来了集中的信息和本地的PC环境,但其数据的共享程度是很不够的,大家可以想想,在C/S应用中,有多少人能够得到你想发布的信息。当今的信息技术需要新的解决方案,它提供以客户为中心的用户界面和Web的分布结构,它带有IT环境的个人特征,如数据存取、安全性能等,这就是我们通常所说的三层结构。
2. Web结构的优势
在Web结构中,事务层和数据逻辑层放在中间组件层,这是关键,是与C/S结构的最大区别,它能解决以下几个问题:
(1) 客户端很瘦小,并且很容易在运行时自动升级;
(2) 事务层可在跨平台的客户端上共享;
(3) 不同逻辑组件的分离意味着图形设计人员、事务逻辑开发人员和数据库分析人员可以独立地设计他们各自的部分;
(4) 统一的、抽象的用户界面可使用户更有效地从同一数据源中存取数据;
(5) 这种结构可更有效地在企业内部网、国际互联网和外联网上运行。
中间组件层充当一个服务器,这就是通常所说的应用服务器。
3. 开放性
Web是一个开放的环境,应用由复用组件集成,通过标准语言汇编、跨平台的统一协议发布,用标准用户界面显示,它与硬件平台和操作系统无关。现在有三种组件模型:Activ eX、JavaBeans和CORBA,每一种模型有它自己的通信协议:ActiveX用COM和DCOM,JavaBea ns和CORBA用ⅡOP。但并不是每一种浏览器都支持动态的HTML,Java脚本的扩充至少支持三种模型:Active Server、LiveWire和PowerDynamo。
4. 适应性
一个可适应的开发环境是非常重要的,采用应用服务器的目的在于它支持多种组件模型,但在客户端和数据库服务器端需要有更强的适应性。
随着Web技术的介入,用户界面设计已发生了巨大的变化,因为在站点上,并没有类似迷惑用户的东西或用户手册。一个成功的站点应首先吸引用户,而后留住用户。而引入新的、面向图形化的和直觉的用户界面标准,就允许最终用户可以直接与它们交流。
三、Web结构中各部分的分工
1. Web发布部分
如上图,Web服务器仅仅是把要显示的内容从站点上以文件的形式读取,然后以静态的HTML格式送到客户端的浏览器;也可以Applet增强表现能力,但它仅仅是利用 ActiveX或JavaBeans通过页面或组件,并没有通过任何事务数据服务器。
2. Web数据处理部分
Web数据处理增强了标准Web站点存取数据的能力,包括许多数据类型。我们可根据数据的存取容量把数据分成两大组类:标准的在线事务处理(OLTP)程序将花费大量时间去检索和操作核心在线数据,这种数据需要连续读取和回写。而另一种辅助数据是只读的,如帮助文件、用户信息和文档等。Web数据处理主要集中在辅助数据,而Web OLTP主要集中在核心在线数据。
3. 客户端
客户端是表现逻辑层,执行含有各种扩展的HTML(包括动态HTML)页面,这些扩展既来自浏览器,也来自可视化JavaBeans和ActiveX组件。在任何情况下,我们至少需要一个HT ML页面,由此HTTP可从服务器端传至客户端,应用程序的其它部分可以是一个整体。因为大部分的Web应用都是为Internet编写的,对专业的IT应用而言,Web是一个成功的平台,用户可以在断开连接后继续工作,这就意味着远程象本地一样可存取事务和逻辑数据。这样不仅要分发应用程序,而且还要分发数据。[本文共有 2 页,当前是第 1 页] <<上一页 下一页>>