软件体系结构——基本架构演变

软件的三大类型

单机架构、C\S、B\S

单机架构

最开始的软件,不需要进行网络互联,只要在本地运行就可以了,比如说输入法、画图板。

C\S

到了后来,数据量越来庞大,有的程序需要统一的管理软件本身和运行期间产生的数据,于是产生了数据库。那么,将软件服务部分,和其数据库部署到不同的主机,所有用户访问时从数据库主机获取数据,这就产生了C\S的雏形。我们将客户安装的软件叫客户端(Client),统一管理数据的叫服务器(Server)。

到了后来,服务器端不止进行数据的管理,还进行一定的逻辑处理了,这就是完整的C\S。

至于哪些逻辑放在客户端,哪些逻辑放在服务器,是一个见仁见智的问题。

业务放在服务器端,从数据角度更加安全,稳定性强,容易升级好管理。

业务放在客户端,可以降低服务器的成本和负载压力,但安全和稳定可能会出现问题,升级也比较麻烦(不升级需要一定的版本兼容),另外,为了网络资源传输的数据要尽可能少。

C\S架构有两个主要的问题:

首先,软件开发需要提供两个版本

其次,用户使用时需要安装,且后续不断面临更新升级。(障碍导致使用成本增加)。

为了解决使用门槛和频繁升级的问题,出现了B\S架构。

B\S

用户只需要安装浏览器,通过访问,便可使用各种服务。广义的B\S,事实上你的微信与小程序也充当这样一个角色。

BS只需要普遍使用的统一客户端,根据相应协议,用通用的服务器程序开发部署,就可以实现。

BS开发最简单,使用最方便,功能强大,从访问量上现在应用最广。但不是说BS最好,适合的才是最好的,要根据场景决定。

另外,BS架构的灵活性和处理效率不如CS架构,所以像大型游戏采用的还都是CS架构。

BS架构中:

网络层采用IP协议

传输层是TCP协议

应用层是HTTP协议,在HTTP基础之上,还有相关规范,如Java Web开发中使用的是Servlet标准。此外,还用到了DNS协议。

综上,无论架构如何,程序的稳定性和速度都是最主要的问题。对于速度,最核心的就是要解决海量数据 问题和高并发 问题。

我们下节课见,下课。

相关推荐
QN1幻化引擎13 分钟前
DalinX Phi 性能突破:跨层秩保持对齐与意识涌现度量的实证研究
人工智能·ai·架构·agi·asi
Warren2Lynch1 小时前
从提示词到架构:Visual Paradigm VPasCode AI 驱动更新完全指南
人工智能·架构
ZGIAI1 小时前
ZGI 发布治理:同一个 Agent 服务多个入口
人工智能·架构
ZGIAI1 小时前
ZGI 批量测试:上线前验证 Agent
人工智能·架构
国科安芯4 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
一几文6 小时前
2026年上半年软考高级-系统架构设计师考试真题回顾与解析-综合知识选择题6
小程序·架构·系统架构·软考高级·软考·it证书
人间凡尔赛7 小时前
2026 后端架构三驾马车:Wasm 容器上 K8s、存算分离与 AI 原生
后端·云原生·架构
Dawson Zhu9 小时前
从CPU到AI:用操作系统存储哲学,治疗Agent的“失忆症“
人工智能·架构·aigc·agi
xierui12312311 小时前
AI Agent 隐私架构:本地化重点为什么是登录态与执行权限
java·人工智能·网络安全·架构
国科安芯11 小时前
ASL622S:把“信号失真“挡在门外的航天级运放
网络·单片机·嵌入式硬件·架构·状态模式·低轨卫星星座