软总线只是个名字而已, 随便起这个没什么好抨击的, 换台湾人可能还叫汇排流呢.
说软总线是个错误设计指的是它退回了 RPC.
RPC 是个有态的东西, 而且是操作语义的, 这个自由度太大了, 还没有好的抽象, 这直接导致 ab 两点之间只能 end-to-end, 这个抽象程度是不够的.
b 不能是一组服务吗? 不能是 facade 模式一样聚合的吗? a/b 能对称吗? 重用一个 transport?
这些都是更宽泛的场景. 实际上 HTTP 有一点历史原因做得不够纯粹, 但 restful 毫无疑问是正确的(指资源模型和 crud); 而 mqtt 在另一侧, 它是资源语义实现了观察者模式, 重要的是它虽然也是有态的东西, 但态即资源, 服务端可以 scale.
一个系统的架构和通讯能力决定了这个系统能走多远, 鸿蒙的设计者仅仅是有关个模糊的想法, 可以基于 wan 实现 (90 年代的) 分布式 OS 的设计理念, 但是设计者没设计过系统级通讯协议, 也不知道系统级的通讯协议 (例如 9P) 的设计取舍原则是什么, 没有准确的 vision 当然也不会有正确的设计.
使用 end-to-end 的操作语义 RPC 设计已经把这个系统限制在无法应对未来场景了, 当节点数量多的时候, 协同的难度是几何级数增加的. 这是 20 年前的东西, 如果 RPC 是正确的, jini 早就统治了世界.
来源: https://segmentfault.com/a/1190000040119662