知识卡片

客户机/服务器风格与浏览器/服务器风格

普通读书笔记卡

内容

客户机/服务器(C/S)风格针对”资源不对等”问题提出,客户机和服务器是两个相互独立的逻辑系统,客户机发请求、服务器处理请求并返回结果;若两者在同一台机器上可用消息、共享存储区等方式通信,若在分布式环境中则需要RPC协议。两层C/S架构中客户机对小的特定数据集(如表的行)加锁而非整个文件,减少网络传输量、提升并发性;服务器负责数据安全性、并发访问控制、数据完整性规则和备份恢复。两层C/S的优点是分布式数据组织处理便利、位置透明、客户端与服务端可跨操作系统运行、组件独立隔离带来配置灵活性;缺点集中在六方面:客户机软硬件配置要求随版本升级越来越高、开发成本高;客户机负荷重、设计复杂度高;界面信息形式单一;升级维护需要到现场逐台更新客户机;单一服务器难以扩展到Intranet/Internet;数据安全性不高(客户机可直接访问数据库服务器)。三层C/S架构把部分业务逻辑抽成功能层放到应用服务器上,客户机只保留表示层——好处是逻辑结构更清晰、可维护可扩充性提升,安全性更高(未授权用户难以绕过功能层访问数据层),但代价是层间通信效率若不高,整体性能不会因单层硬件配置高而提升,通信方法/频率/数据量必须被仔细权衡。浏览器/服务器(B/S)风格是三层C/S的一种具体实现,用WWW浏览器取代专用客户端软件、Web服务器充当应用服务器:用户在浏览器输入URL发起HTTP请求,Web服务器调用应用程序并向数据库服务器发送数据操作请求、拿到结果后用HTML封装呈现——实现”零客户端”,系统安装修改维护全在服务器端完成,客户端升级只需升级浏览器即可同步更新所有用户。B/S的优点是开发成本低、跨平台通信统一、维护简单;缺点是个性化程度低、客户端数据处理能力差加重服务器负担、动态交互性不强不利于在线事务处理、可扩展性和安全性较差、查询速度通常慢于C/S。正因两者互有优劣,实践中C/S和B/S长期共存是常态。

参考来源

- 位置:《软件架构理论与实践》第4章《软件架构的风格与模式》"4.3.11 客户机/服务器风格"及"4.3.12 浏览器/服务器风格"节(源文件:_epub-src/OEBPS/text00034.html) - 结论依据:原文分别列出两层C/S的优点与六个缺点、三层C/S相对两层的优点及需注意的两个问题,以及B/S架构"零客户端"的运作模式和其三个优点五个缺点,直接支撑本卡片对两种风格的归纳对比。 - 原始内容:在三层C/S架构中,系统安装、修改和维护全在服务器端解决,客户端无任何业务逻辑,用户在使用系统时,仅仅需要一个浏览器就可运行全部模块,真正达到了"零客户端"的运作模式……但是,B/S架构风格也存在一些问题,具体表现在以下5个方面。