程序原本(九十八):系统的基础部件——系统(聚焦领域之于系统的主要需求:维护状态或接受消息)

阅读数:20 2019 年 10 月 5 日 13:43

程序原本(九十八):系统的基础部件——系统(聚焦领域之于系统的主要需求:维护状态或接受消息)

答案是:忽略。

忽略掉一部分问题,是我们在系统实施中所必需的策略2。除了能降低当前系统与外部系统的耦合关系、减少系统处理异常情况时的成本之外,更重要的一点是,这样的策略有助于我们快速地将问题聚焦到该系统的核心领域。

2 对于灾害,一个简单而实用的策略是:备灾甚于防灾。例如考虑到海底光缆断裂,那么就让 30% 的数据通过陆路光缆;考虑到地震频发,那么就将应用分布到不同地区的机房,并在各机房做全镜像数据。这样的措施也被扩展到类似的系统问题上,例如考虑到战争,就将重要的计算资源部署在中立国;考虑到断电,就要增加备用电源,以及设计机械解决方案。但总的来看,这一类措施都是“忽略问题本身”的。

除开计算机的两个关键问题——计算总量与数据总量之外,我们将领域之于系统的主要需求变成一个简单的定义:计算系统如何应对外部系统的需要。而进一步地考察这一需要,就可以发现:在“可计算”方面,任意领域的系统对“当前系统”的需要只有两个,即寻求计算资源,或寻求数据资源。

换言之,任何一个子系统——作为一个更大系统的组成部件——对外部系统只需要承担这样两种责任3

3 或之一,或全部,取决于系统设计的具体策略。

  • 维护可对外公示的状态,使得外部系统可以将明确的行为(逻辑)施于自身;
  • 接受外部的消息,使得外部可以通过传递数据来影响自身。

对于接下来要讨论的问题来说,“系统由子系统构成”是一个基本设定。更具体地说系统包括子系统通信验证三个基础部件4,而本书的下一章将基于这些部件,来讨论与架构实施相关的技术方法,以及通讯与验证相关的问题。

4子系统通信验证作为系统的三个基础部件,是在《我的架构思想:基本模型、理论与原则》一书中讨论架构组成论的一个基础。

评论

发布