我的架构思想(十):你所关注的系统——知识的构建(系统的识得,是在架构意图的逐步清晰中渐行渐显的)

阅读数:17 2019 年 10 月 12 日 16:52

我的架构思想(十):你所关注的系统——知识的构建(系统的识得,是在架构意图的逐步清晰中渐行渐显的)

意图,是“识得”的核心,即“你想要什么”决定了系统如何构画,而不仅仅是对现实系统的复制。

意图是架构真正的灵魂。架构活动只是将这种意图表达在架构产出中,并阐述这一意图的合理性;如何得到或形成意图才是架构的精髓,其本质是通过抽象过程,对既有系统的再认识与再创造。简单地说,如果架构师没有意图,那么系统只是目标系统的某一时间上的静态映像5;而架构师如果有意图,那么系统也就有了灵魂,就能跟随目标系统的实际需求的发展而演化,或至少为这种演化留备了可能。

5 这并非不可取。许多生产系统就只需要“再造”现实系统的现场即可,但这也并不表明架构师不需要“意图”,因为再造的过程本身也是动态的,也可能是阶段性的(例如一期、二期这样的分期工程)等。

“管理”是为了“应对不同类型的办公室成员”而引入到系统中的概念,而“组织机构”则是对现实系统的“管理行为”的一种映射。我们并没有要求——事实上也很难做到——用软件系统来映射现实中的全部管理行为,譬如尽管我们可以通过公文流转去映射“总经理向营销经理下达了业务指标”,也能够通过授权变更去映射“人事任命”,但是却很难设计一个东西来反映“某员工因业绩受到了表扬而积极性大增”——尽管这也是现实中的一个管理活动。

但究竟是什么决定了我们选择“组织机构”而不是其他的东西去映射现实行为呢?

我认为这存在两个条件:其一,它首先必须是能够被规则化的6,这是主要条件;其二,作为附加收益,规则化也可以为其他系统构件带来便利。只有在主要条件成立,并且附加收益丰厚的时候,我们才会确认这一“意图”的必要性。

6 仔细分析“规则化”本身,它可能是结构化的另一个代名词。在现实系统中的一部分行为可以被抽象为“逻辑的规则”,例如营销活动策略、折扣策略等等;另一部分则可以被抽象为上述行为“依赖的信息”,例如参与者信息、依赖资源的信息、事件信息等。这两类规则化行为与结构程序设计中的“数据 + 算法”有着抽象上的近似。

对这两个条件的思考是架构过程中的一种权衡,即从“想要什么”到“能要什么”的一个过渡。这个过程中,“控制架构欲望”是一种关键素质。而这一素质的源起与核心,是架构师对自身职责的不断的、反复地省思,即“想要什么”应当能决定一个系统在时间与空间两个方面的特性,而不是(仅仅)出于客户需求或自我喜好。

组织机构表达的“人与人的授权7以及“被授权者是可以行使系统行为的角色8这两点是可以被规则化的。这很明显。但是它能带来哪些便利呢?表 2 是一个简要的考察。

7 它决定了逻辑“if Auth.isManager(User1) then Auth.assign(User1, User2, 'aAuthDescription')”的合理性。

8 它决定了逻辑“if Auth.has(User2, 'aAuthDescription') then doSomething(…)”的合理性。

表 2 面向架构话题的考察:授权与角色规则化带来的主要收益

我的架构思想(十):你所关注的系统——知识的构建(系统的识得,是在架构意图的逐步清晰中渐行渐显的)

(续表)

我的架构思想(十):你所关注的系统——知识的构建(系统的识得,是在架构意图的逐步清晰中渐行渐显的)

注:对于表中“可移植性”的进一步说明:对于“角色集”及其权限来说,可移植性的主要方向为抽取独立的数据层,表达为格式文本或数据库;对于系统的其他功能或逻辑部分,“可移植性”涉及跨平台、跨系统以及交互设备兼容性等多方面的因素。

在这些考量中最重要的是“概念完整性”,它决定了整个系统的核心逻辑,以及描述架构、功能与内部关系的一般方法。如果一个架构设定没有概念完整性方面的必要,通常它的价值收益就会偏小、偏局部,或者可备选。

最后需要补充的是:这样完备地考察通常是不必要的。这是因为,其一,很少有类似授权这样的架构意图,是能够影响到系统全局并在各考察点上都有相对平衡的重要性的;其二,架构意图通常是反向论证的,即“它不与哪些考察点冲突”;其三,核心架构意图通常是明显的、一贯的以及关键的,因此它的影响面也就巨大,这意味着多个这样的意图并存时将是轻重缓急的问题,而并不是是非取舍问题;其四,如上的轻重缓急是一时的选择,可能会随着所架构的系统——或者说项目——的推进而有变化,这既说明了多种意图的必然性,也说明了多种意图间冲突的根源,亦即是需求的内容与焦点会随时间与空间变化。

最关键的架构意图是架构师对上述第四个因素的推定,而并非依赖当前的、静止的需求。这种推定的合理性是建立在一个非常完整、缜密、基于抽象概念的逻辑推理基础上的,其背景多数已经超出了“软件系统”本身。例如,对于办公管理系统而言,一个推理的基础是“将更多的管理功能置于办公系统是一种趋势”,这一推断可能来自于:

  • 跨地域的办公环境中,网络办公系统是一种成本更低的选择;
  • 更大规模的公司中,办公资源的管理是人力难为的;
  • 流程化是复杂的公司组织中减少错误的必需;
  • 文档的管理可能失控;
  • ……

而最终在这些信息的基础上推理逻辑可能是:

成本控制指数 = 企业规模(电子化投入增幅 / 管理投入增幅)

只要在相对应的企业规模下,成本控制指数小于 1,则企业将必然“乐意于”将更多的管理功能置于办公系统。

评论

发布