1.1.1 Web架构与工作原理
Web软件开发架构一般包括C/S(Client/Server,客户机/服务器)架构和B/S (Browser/Server,浏览器/服务器)架构,这也是目前网络编程领域主流的两大开发架构。C/S模式的Web应用,分为客户机应用程序与服务器端应用程序,在客户端安装相应的应用程序方可使用,如目前流行的QQ、旺旺、带有客户端的各种网络游戏等。B/S模式的Web应用,将应用程序安装部署在服务器端,客户端直接通过网页浏览器访问,如网络上常见的门户网站、论坛、商城等。随着Internet的兴起与快速铺开,B/S模式的Web应用以成本低廉、维护简便、覆盖范围广、功能易实现等众多优势,成为网络编程的首选技术架构而得到广泛的应用。通常所说的Web开发或Web程序,主要指B/S架构,这也是目前网络开发的主流趋势。本书基于B/S架构介绍,全书所提到的Web开发应用均为B/S模式。
B/S模式采用开放式的客户-服务器结构,其基本结构一般包括Web服务器、Web页面、Web浏览器和HTTP通信协议等部分,如图1-1所示。HTTP是基于客户-服务器模型的信息分布方式,原意为“请求-响应模型”,即包含信息等网页文件存放在Web服务器上,客户端以Web浏览器为媒介,通过程序向Web服务器发出请求并访问相应的网页。
图1-1 Web基本结构及原理
Web系统(即Web应用程序)的基础架构则为经典的三层架构,即表现层、业务逻辑层、数据访问层,如图1-2所示。
图1-2 Web系统三层架构
(1)表现层(UI):负责使用者与整个系统的交互。通俗地讲就是展现给用户的界面,即用户在使用一个系统时的所见所得。
(2)业务逻辑层(BLL):与系统所应对的业务(领域)逻辑有关,关注于业务规则的制定、业务流程的实现等。针对具体问题的操作,即对数据业务逻辑处理,是针对数据层的操作。业务逻辑层扮演两个不同的角色,对于数据访问层而言是调用者;对于表示层而言,是被调用者。
(3)数据访问层(DAL):该层所做事务直接操作数据库,主要负责数据库的访问,实现对数据表的Select、Insert、Update、Delete的数据操作。
Web应用程序主要分为Web客户端与Web服务器端两层,即通常所说的Web前台与Web后台。Web客户端,通常指表现层;Web服务器端,则包括业务逻辑层与数据访问层。对应于Web系统的三层架构,从物理角度划分,依次为数据服务器、Web服务器、客户端(浏览器),如图1-3所示。整个Web系统开发完成后,将编译后的Web应用程序部署在Web服务器中,用户通过客户端的网页浏览器访问。
图1-3 Web系统的逻辑结构
分层的Web系统架构设计,具有很多优势:开发人员可以只关注整个结构中的其中一层;可以很容易地用新的实现来替换原有层次的实现;可以降低层与层之间的依赖;有利于标准化;有利于各层逻辑的复用;等等。现有很多Web系统采用多层的系统架构设计,使系统具备良好的数据兼容性、可移植性,维护方便。在Web发展过程中,用户需求和技术进步是推动架构做出进步的原动力。一个Web应用系统在系统架构设计中,要切实满足当前用户需求,同时考虑应对发展变化的灵活性。因此,Web系统架构设计的扩展性非常关键。如果每次需求变化都要对架构做出重大改动,那么这无疑是一个失败的设计。