从软件构架设计看“民主集中制”的现实意义

  最近在研究集群可用性管理框架的过程中,对分布式软件构架的设计又有了更深一层的理解。发散思维的时候,不小心诞生一个预料之外的结果——领悟到了“民主集中制”在我国现阶段社会发展中的现实意义。

  (本文并非为论道而谈政治,仅仅希望籍软件与政治的内在联系来分享一种特别的理解)

  在集群可用性管理框架中,有一个居于最高领导者地位的中央主席——“Server”(当然,还有一个在主席身体不适时主持工作的副主席——“Standby Server”),以及分层分布的各级干部——“Agent”,最后是代表广大民众的“Application”。在一个典型的管理模型中,“Server”总是拥有绝对的领导权,任何下级的Agent都必须无条件的服从它且只能是它的指令,这就是所谓的“权力集中”。那么“决策民主”是如何体现的呢?当出现资源(Resource)或组件(Component)级别的故障时,可用性管理机制需要作出一个积极的响应,而这个决策正是通过“民主参议”的方式产生的。举例来说,当A出现了故障,负责管理A的Agent会收集相关组件的倾向性,比如A自己的“遗书”中声明最好是“重启我”;一个A的客户反馈“我不在乎,因为我已经找到新的供应商了”;而与A一起工作的B、C、D都说“三缺一没法玩了,只能全部重开一局”。于是Agent综合各方意见,作出了一并重启A、B、C、D的决议。如果故障的影响较大,则Agent可能需要将意见汇报给其上级来作更大范围的“民主参议”。

  OK,上面这个模型似乎工作的不错。但为什么我们不借鉴西方所谓更高级的“自由民主”制度呢?试想一下,如果将“自由民主”引入上述模型中会引发什么后果?任何一个“Application”都可以被全民公选为“Server”,重要的决策都由“民主投票”(注意与“民主参议”的区别)来决定…… 相信任何一个对软件构架有基本认识的人都能预见其直接后果。

  为什么“民主集中制”才是目前软件构架中被普遍采用的管理机制呢?原因就在于“智慧和信息的不对称性”。在现在这个发展阶段,软件设计中的诸多制约因素还远不足以让集群中的所有软件实体具备对等的“智慧”,而信息的对称显然是建立在智慧对等的基础之上。正如我国目前尚处于社会主义初级阶段,十余亿民众在思想觉悟和民主意识上的不对称也是普遍存在的。如果一定要照搬西方的“自由民主制”,只会对社会发展产生难以预料的影响。(从台湾政坛的现状可见一斑)

  或许在将来的某一天,软硬件技术高度发展让我们可以实现“Cellular Computer”时,“自由民主”可能已成为了软件构架设计中的普遍原则。

Written on November 4, 2006