
3.3.4 B/S系统的结构
传统的基于C/S结构的管理信息系统经过30多年(从1985年至今)的发展已得到了广泛的应用,它为企业管理信息系统的共享集成和分布式应用做出了巨大贡献。但是传统的C/S结构也存在着许多的缺点,如安装、升级、维护困难;使用不方便,培训费用高;软件建设周期长,适应性差;系统生命周期短,移植困难,升级麻烦;系统建设质量难以保证。随着In-ternet的兴起以及电子商务的发展,人们对数据库应用系统结构提出了新的要求。
进入20世纪90年代后,数字信号处理技术、网络通信技术、多媒体技术和产业发展逐渐成熟并汇合,从而奠定了智能联网的技术基础。Internet技术掀起了全球信息产业的一场深刻革命,它不仅改变了人们的生活方式和商业行为,而且改变了人们的办公方式。
同时,Intranet在各个技术领域都为电子商务的应用创造了条件,其具有以下特点。
(1)安全性强。Intranet可以理解为防火墙后面的企业内部Internet。从安全性方面考虑,Intranet是在企业内部,它和Internet之间有一道防火墙,从而可保证企业的信息不受外界攻击,同时又不是与外界隔绝的。通过防火墙,可以在企业内部对信息进行严格控制,保证信息在有控制、有监视的状态下被适当的人使用。
(2)Web技术的应用。Intranet很重要的一个技术就是Web技术。Web技术在政府办公和业务处理中的应用使得政府信息系统的开发、维护和升级产生了飞跃性、根本性的变化。
(3)管理信息的“集中器”。“Hub”是一个把物理设备、网卡连接在一起的“集中器”,而Intranet实际上是一个企业管理信息的“Hub”,是在更高层次上的一种集中器。它把信息集中管理起来,让用户能够在适当的时候得到适当的信息。
Intranet独创性地将C/S结构扩展为B/S结构,以不变应万变。基于Intranet的B/S结构的发展为信息系统开发人员提供了一个新的框架结构,使他们能很快地把注意力从用户界面等细节问题转移到更核心的问题上去,不管开发的是哪种应用程序、哪种平台,在浏览器上都能使用。通过Intranet,信息系统的维护、培训和分销变得很容易,软件版本的升级更新也无须牵扯到用户,只需将服务器端的软件更新,所有的用户就都能自动更新应用。
基于Internet/Intranet的B/S结构从本质上讲,与传统的C/S结构都是用一种请求和应答方式来执行应用的。但传统的C/S结构在客户端集中了大量的应用软件,而B/S结构则是一种基于Hyperlink(超链接)、HTML(超文本标识语言)、Java的三层或多层C/S结构,其客户端仅需要单一的浏览器软件,是一种全新的体系结构。B/S结构解决了跨平台问题,通过浏览器可以访问几个应用平台,形成一种一点对几点、多点对多点的结构模式。
早期的B/S系统也是两层,Web服务器只是简单地接受Web浏览器通过HTTP提交的请求,进行所需要的处理,并且以HTML格式化的文档作为响应。浏览器上见到的是静态的HTML页面。
随着应用的扩大和技术的发展,两层的B/S结构自然延伸为三层的浏览器/Web服务器/数据库服务器结构,或多层的结构模式。浏览器/Web服务器/数据库服务器的三层体系结构示意图如图3.4所示。

图3.4 浏览器/Web服务器/数据库服务器的三层体系结构
在浏览器/Web服务器/数据库服务器的三层体系结构中,表示层存在于客户端,只需安装一个浏览器软件,客户端的工作很简单,负担很轻。Web服务器既作为一个浏览服务器,又是应用服务器。应用逻辑层存在于这个中间服务器中,可以把整个应用逻辑和商业规则驻留其上,而且支持多种DBMS和数据结构。Web服务器的主要功能是:作为一个HTTP服务器,处理HTTP协议,接受请求并按照HTTP格式生成响应;执行服务器端脚本(如VB-Script、JavaScript等);对于数据库应用,能够创建、读取、修改、删除视图实例。Web服务器通过对象中间件技术(如Java、DCOM、CORBA等),在网络上寻找对象应用程序,完成对象间的通信。数据层存在于数据库服务器上,安装有DBMS,提供SQL查询、数据库管理等服务。Web服务器与数据库服务器的接口方式有ODBC、ADO、OLE/DB、JDBC、Native Call等。
与传统的C/S结构相比,B/S结构具有许多优点。
(1)B/S结构是一种“瘦客户机”模式,客户端软件仅需安装浏览器,应用界面单一,客户端硬件配置要求较低,可由相对价廉的网络计算机(NC)替代。
(2)B/S结构具有同一的浏览器客户端软件,易于管理和维护。在C/S结构中,操作人员必须熟悉不同的界面,为此需要对操作人员进行大量的培训。而在B/S结构中,因客户端浏览器的人机界面风格单一,系统的开发和维护工作变得简单易行,这有利于提高效率,不仅节省了开发成本,减少了维护客户端软件的时间和精力,而且方便了用户的使用。B/S结构中客户端的数量几乎不受限制,具有极大的可扩展性。
(3)B/S结构无须开发客户端软件,浏览器软件容易从网上下载或升级。
(4)B/S结构应用的开发效率高,开发周期短,见效快。对于开发人员的技术要求低,其版本更新只需集中维护放在服务器端的代码即可。
(5)B/S结构具有平台无关性。B/S结构具有极强的伸缩性,可以透明地跨越异质网络、计算机平台,无缝地联合使用数据库、超文本、多媒体等多种形式的信息,可以选择不同的厂家提供的设备和服务。
(6)B/S结构具有开放性。B/S结构采用公开的标准和协议,系统资源的冗余度小,可扩充性良好。
采用B/S结构的系统有以下三种工作方式。
(1)简单式。
简单式即基于浏览器的B/S结构,利用HTML页面在用户的计算机上表示信息。在静态页面中,Web浏览器需要一个HTML页面,提交一个URL地址到Web服务器。Web服务器从Internet上检索到所需要的本地或远程的网页,并将所需网页返回到Web浏览器上。Web浏览器显示由HTML写成的文档、图片、声音和图像,而Web服务器则是将Web页发送至浏览器的具有特殊目的的文件服务器。浏览器打开一个和服务器的连接,服务器返回页面结果并关闭连接。
有时也可以使用Java Applet、ActiveX和Java Bean来加强表达能力。通常,Applet给网页带来了动态特性,可将其和静态页面放置在同一个应用中。
(2)交互式。
在交互式中,浏览器显示的不只是静态的和服务器端传送来的页面信息。在打开与服务器的连接及传输数据以前,HTML页面显示供用户输入的表单、文本域、按钮,通过这些内容与用户交互。HTTP服务器将用户输入的信息传递给客户服务器程序或脚本进行处理,Web服务器再从DBMS服务器中检索数据,然后把结果组成新页面返回给浏览器,最后中断浏览器和服务器的本次连接。这个模型允许用户从各种后端服务器中请求信息。
通过使用HTTP作为中间件,利用调用CGI服务器程序和脚本,该模型支持简单的C/S通信方式。由于每一个浏览器和服务器间的通信都要建立一个连接,因此相对于服务器资源而言,这种模型造价昂贵。Web服务器就像检索一个普通的HTML页一样,将检索到的内容返回到浏览器中并进行显示。在用户填完并提交输入表单后,就返回到服务器中执行CGI程序。一个典型的CGI程序把从表单中取出的键入值汇入文件,或组成一个包含键入值的E-mail信息,再将它发送出去。
从被访问的数据来看,该模型所访问的数据往往是只读的,如帮助文件、文档、用户信息等。这些非核心数据一般没有处理能力,它们总是处在低访问率上。这种模型已是一个三层结构了,浏览器通过中间层软件CGI间接操作Server程序,CGI与服务器端的数据库互相沟通,再将查询结果传送至客户端,而不是一味地将服务器端的资料全部接受过来。
(3)分布式。
这种模型将机构中目前的已有设施与分布式数据源结合起来,最终会代替真正开放的C/S应用程序。它无须下载HTML页面,客户程序是由可下载的Java编写的,并可以在任何支持Java的浏览器(目前流行的IE或Navigator)上执行Applet。当HTTP服务器将含有Java Applet的页面下载到浏览器时,Applet在浏览器端运行并通过构件(Component)支持的通信协议(IIOP, DCOM)与传输服务器上的小服务程序(Servlet)通信会话。这些小程序按构件的概念撰写,它收到信息后,经过JDBC、ODBC或本地方法向数据库服务器发出请求,数据库服务器接到命令后,再将结果传送给Servlet,最后将结果送至浏览器显示出来。
目前,在浏览器上发布信息常用的文件格式有HTML文件和Java Applet类文件两种。
HTML文件只能发布超文本格式的信息。HTML是Web上的第一种标记语言,用于编制Web网页。在其基础上发展出了功能更为强大的DHTML(动态标记语言)和XML(可扩展标记语言)。其中XML具有许多优点,如提供了表达数据库视图的标准方法,明确区分了结构、内容和实例化,能够对文档进行有效性检查,允许各行业定制自己的专用XML等。因此,有人认为XML是从关系模型以来对数据库应用的最重要的发展。
Java Applet类文件嵌入在HTML文件中,可发布图形信息。
HTML文件和Java Applet类文件与数据库相联系的方法基本相同,都可以通过CGI方式、API(Application Interface)方式、ODBC方式来发布数据库中的数据。另外,在Java Applet类文件中,还可以通过JDBC方式来与数据库建立联系。
下面以Microsoft的解决方案为例来说明B/S系统的实现方法。
B/S系统的Microsoft解决方案如图3.5所示。在客户端配置Windows 2000及以上操作系统,Internet Explorer 4.0以上浏览器。在Web服务器端配置Windows Server 2000及以上操作系统,Internet Information Server 4.0(IIS),Internet Server Application Programming Inter-face(ISAPI),Active Server Page(APS)。在数据库服务器端配置Windows Server 2000及以上和SQL Server 2005。
Web服务器的构成如图3.5所示。其中ASP可以配合使用JavaScript、VBScript、Perl、ActiveX等代码。定制的应用程序可用Java或C++编写。
数据库服务器可以选择Oracle、Sybase、MS SQL Server、DB2等DBMS,用于存放和管理企业共享数据。

图3.5 B/S系统的Microsoft解决方案