您现在的位置是:网站首页>技术百科技术百科
软件架构总览
小大寒2024-01-01[技术百科]博学多闻
软件架构总览本文介绍了软件架构总览的基本概念及其在系统设计中的应用。讨论了如何通过垂直和水平扩展来应对增加的工作负载,并指出了扩展过程中的线性可扩展性问题。文章还探讨了任务并行化、负载平衡、多任务处理及多线程的概念,强调了为实现系统的高效扩展,任务必须能够独立并并行执行。此外,还提到了一些特殊硬件的利用以及并行化任务的要求。 《本文来源》
软件架构总览
软件架构与软件设计是同一主题的两个方面。它们共同讨论的是如何构建软件系统,以便能够高效执行特定任务。通常,术语“软件架构”指的是软件系统的较大结构,而“软件设计”则专注于较小的结构部分。
架构与设计的边界
软件架构和软件设计之间的界限并不容易划分,因为系统的架构对设计有直接影响,较大的结构设计往往会影响到较小结构的设计。在本文中,我将界限设定为流程级别。具体来说,软件设计涉及单一软件流程的内部设计,而软件架构则关注多个软件流程如何协同工作以完成任务。

软件架构与分布式系统的关系
从我的观点来看,软件架构为各种分布式算法提供了运行的基础框架。尽管“软件架构”和“分布式系统”这两个术语之间有些重叠,但不同的分布式算法可以在相同的底层架构上执行。
此外,软件架构往往受到硬件架构的影响。根据所使用的硬件,可能需要不同的架构或设计,或者反过来,根据所选架构来选择硬件。
常见的软件架构类型
虽然软件架构的类型繁多,但以下几种架构模式较为常见:
- 单一进程
- 客户端/服务器架构(两个进程协作)
- 三层架构(三个流程以链式方式协作)
- N层架构(N个流程以链式方式协作)
- 面向服务的架构(多个流程相互交互)
- 对等架构(多个进程无需中央服务器即可进行交互)
- 混合架构(多种架构的组合)
架构类型说明

以上架构模式有不同的适用场景,选择合适的架构类型取决于系统的需求和目标。
进程通信通道
进程之间的通信可以通过以下三种媒介进行:
- 网络
- 磁盘
- 管道
进程可以通过计算机网络进行通信。这种方式支持同一计算机上的进程间通信,也支持不同计算机间的进程通信,前提是两台计算机通过网络连接。
同一台计算机上的进程也可以通过硬盘(或其他存储设备,如USB磁盘)进行通信。进程A可以将数据写入磁盘,进程B随后读取并处理这些数据。
此外,进程间还可以通过网络存储进行通信。网络存储本质上是连接到计算机网络的硬盘,进程可通过该存储与其他进程通信。
在同一计算机上,进程还可以通过操作系统提供的管道进行通信。管道的优势在于数据交换更快,因为它们在计算机的RAM中进行,不涉及网络协议的开销。
另外,进程还可以通过RAM磁盘进行通信。RAM磁盘是计算机RAM的一部分,看起来像磁盘,但速度比硬盘更快,因为数据直接存储在RAM中。
进程通信模式
进程之间的通信可以采用两种模式:
- 同步模式:进程A向进程B发送消息后,必须等待进程B的回复才能继续执行其他操作。
- 异步模式:进程A发送消息给进程B后,不等待回复,而是继续执行其他任务。进程B在某个时刻会返回消息,进程A可以在空闲时处理这条消息。

同步和异步通信各有其优缺点。异步通信能够提高系统效率,而同步通信则适用于需要等待对方处理的情况。
阅读完毕,很棒哦!
上一篇:软件开发的三个境界
下一篇:分布式场景下的稳定性保障