当前位置 >> 课程学习 >> 第1章 >> 1.2. Web程序设计的方法

1.2. Web程序设计的方法

1.2.1 浏览器-服务器方式及原理

    通常网络程序设计所采取的大都是一种叫客户-服务器(Client/Server,C/S)方式,这种方式的应用一般是基于小型局域网的。客户机软件一般由应用程序及相应的数据库连接程序组成,主要是用于处理与用户的交互,而服务器软件一般是某种数据库系统,能根据客户机软件的请求进行数据库操作,然后将结果传送给客户机软件。服务器进程与客户机通信主要是通过SQL语句,这种方式的软件开发工作主要集中于客户机软件上,而且当系统软件开发完成以后,整个系统的安装也非常繁杂,既要在每一台客户机上都需要安装相关的应用程序,另外,还必须安装相应的数据库连接驱动程序,而且还需要大量系统配置工作。如果系统稍加改动后,所有客户机上的应用软件都需要重新进行更新。随着计算机网络技术的迅猛发展,网络的覆盖范围越来越广,一个企业如果其分支机构跨越几个城市,要采用对信息的统一管理,显然用这种客户-服务器方式对数据库进行访问就不能适应这种网络覆盖范围的要求。那么有一种解决方式就是原来在单机或局域网中使用的数据库移植到互联网(即因特网——Internet)上,这也将成为在网络上对数据库访问发展的必然趋势,即浏览器-服务器(Browser/Server,B/S)方式。
    前面提到客户-服务器方式主要应用于小型局域网,而浏览器-服务器方式主要应用于Internet/Intranet(把Internet技术应用于企业网的内部称为Intranet)。起初,这两种技术几乎处于平行线上,两者互相独立,无法作出集成性的设计,主要原因在于前几年浏览器-服务器方式对于数据库访问非常困难,另外,这两种方式所指的服务器也各不相同,在客户-服务器方式中的服务器指的是数据库服务器,浏览器-服务器方式中的服务器指的是WWW服务器(或称为Web服务器)。直到微软公司提出Web Computing的概念,才很好地解决了这一难题。其原理如图1-1所示。
   

图1-1 浏览器-服务器原理示意图

    Web Computing所设计的这种结构,前端是一个标准的Web浏览器,后端则是数据库服务器,利用微软的网络操作系统Windows NT自带的Internet Informating Service 4.0 (IIS)中的Web服务器,加上Active Server Pages(ASP,动态服务器页,其中的“动态”指的是交互性)构成三层式Web结构的中间一层。这种方式的最大好处是把所有的应用程序都存储在Web服务器上,需要时才下载,客户端无须安装其他任何软件,也无须进行任何的配置,仅需要一个浏览器软件即可。与传统的C/S方式相比较,开发和管理的工作向服务器端转移,这样当需要对整个系统进行修改时仅需对存储在Web服务器上的应用程序进行一次改动即可,而不必在每个客户端进行改动,这在很大程度上减少了系统管理和维护的工作量。
    这种三层方式工作原理如下。
    (1)客户Web浏览器发出请求要求访问Web服务器的某一网页,Web服务器检查文件的扩展名是不是特殊的网页(如asp页或者aspx页),如果是,则Web服务器就调用相应的程序处理该页。
    (2)Web服务器对该页进行语法检查和编译。在分析的过程中,HTML和脚本编程代码被分开。IIS确定哪个脚本编程引擎负责脚本的哪些部分,还将语法检查和编译工作分配给合适的脚本编程引擎(如VBScript、JavaScript)。
    (3)若在脚本程序中使用了ADD(ActiveX Data Objects)对象,则Web服务器会根据ADO对象所设置的参数来启动对应的ODBC驱动程序,而启动ODBC驱动程序之后,程序可以直接利用ADO对象来访数据库,或通过ADO对象来发送SQL指令,进而达到存取数据库的目的。
    (4)如果有数据必须显示在浏览器上,则脚本程序会利用动态网页所提供的输出对象送出数据形成动态的HTML文档,并且和静态HTML文档进行合并,然后由Web服务器传送给前端的客户浏览器。
    这种浏览器-服务器方式的三层结构有以下好处。
    (1)对于远程的前端用户来讲,不再需要特殊设置与软件安装,仅需要有能够支持HTML文档的浏览器(如IE)即可,这样大大降低了学习障碍与培训成本。
    (2)对于Web开发者而言,所有的应用软件集中在服务器端开发管理,那么今后当Web开发者进行软件改变或升级时,仅需在服务端进行变动,而无须在远程的前端用户进行任何操作,对于远程的前端用户来讲程序的升级几乎是透明的。并且减少了构件维护成本,加快联机过程。后端可存取任何数据库(如SQL Server、Oracle Server、Access等)。