编程学习网 > PHP技术 > php高级 > B/S架构和C/S架构
2020
04-08

B/S架构和C/S架构


首先,什么是B/S、C/S?

它们之间的优缺点各是什么?这是一个学习软件的人都应该掌握的知识。

关于这个问题,google一下能够得到很多具体而有效的答案。



(一)、什么是C/S和B/S:


C/S又称Client/Server或客户/服务器模式。

在C/S模式中服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或 SQL Server。客户端需要安装专用的客户端软件。

B/S又称Brower/Server模式。

客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。



(二)、C/S,B/S各有什么优缺点:


1、 C/S结构

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。通过C/S可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

目前大多数应用软件系统都是C/S形式的两层结构。

由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件,因此,内部的和外部的用户都可以访问新的和现有的应用系统。


通过现有应用系统中的逻辑可以扩展出新的应用系统,这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件,加之产品的更新换代快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高,效率低。


2、B/S结构

B/S(Browser/Server)结构即浏览器和服务器结构。

它是随着Internet技术的兴起而对C/S结构的一种变化或者改进的结构。

在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。

这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。


以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握,成本也是较低的。

B/S结构是一次到位开发,能实现不同人员,从不同地点,以不同的接入方式(比如LAN、 WAN、 Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。

B/S结构主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术,成为当今应用软件的首选体系结构。

以上是比较精炼的一个B/S、C/S介绍。


用几个关键点可以总结如下:

C/S模式:

①、充分利用现在PC机的硬件优势和网络的稳定性,将逻辑处理合理分担到客户机和服务器,减轻服务器负担,也使软件产品能实现更加好的功能(尤其在视觉效果、3D处理等)

②、更新维护过程需要同时对服务器、客户端进行升级处理,成本高、效率低。(这也是这种设计模式的最大硬伤)


B/S模式:

①、将大量的事务逻辑工作放在服务器端,而在Browser端只有很少的事务逻辑。这样对前端计算机的硬件要求降低了。

②、由于相关标准的完善,B/S模式更符合工业化大规模生产的要求。用户只要在自己的电脑上安装一个浏览器,便可以浏览任何一个网站。这是C/S模式无法做到的。

③、过于标准化的B/S前端,同样可以理解成为过于呆板,这直接导致了B/S模式下的功能实现没有C/S灵活、方便、美观。如今的一些script技术和AJAX技术等已经很大程度上缓解了这个问题。但和一些3D网络游戏等等在美观角度还是无法比拟的。


那么是否能在两者之间寻找一个平衡点呢,仁者见仁吧;

那么在上述两种模式中再引入一个现在比较流行的术语——“云计算”,那么又会是怎么样的一番博弈呢。


看看我们现在的互联网:

1、越来越快、越来越稳定的网络传输速度

2、智能手机越来越像个人电脑


在这样的网络大环境下,软件产品的架构模式未来十年又会往哪个方向发展呢。其实每个人悠闲的时候都可以去思考一下。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取