未来软件系统构架的猜想(一)
贝壳最近接触了不少软件系统,看了不少构架。现在就来猜猜未来软件系统构架的方案吧。
贝壳的推论是按照一个观点进行的,即市场决定技术。即迎合市场的技术,无论好坏,就是将来的方向。如果说更进一步,那只有市场过程决定技术。即在过程中占领了市场的技术,无论好坏,是将来的主流。
那么,将来的市场需要什么?贝壳认为,应该是嵌入和分布。嵌入先掠过,分布角度来说,有三种不同的分布,角色分布,计算分布,资源分布,三者按层次递进。
角色分布,我们已经在实现了。大致来说,就是按照使用角色的不同,允许多个人共用一个系统,并且交互。角色分布最大的技术难点在于权限控制、对象锁定和同步。
计算分布是我们在如火如荼的进行的。其主旨在于将运算过程分散到多个机器上去,实现物尽其用。计算分布最大的难点在于计算量预测、进程间通讯和数据保密。
资源分布则是比较困难的。目前贝壳接触过两种不同风格的信息分布方法,一种是文件,一种是数据库。这两者的侧重层次不同,文件侧重于信息的传输,数据库侧重于信息的格式和内容。未来的系统中两者肯定会并存。
未来的系统必定会采用平台无关的前台构架(UI),将前台的显示和动作的响应管理交给前台的deamon程序去。而设计上采用映射相关的方法将前台的资源和行为映射到程序中加以表示。这样前台就被模拟成了一个组件,使用分布计算的构架可以轻松的和这种标准化的组件通讯。至于效率问题,你觉得会比BS模式更差吗?
未来的计算构架肯定是分布的,每个单元(cell)都是和平台无关的。单元上运行标准的组件,而组件间通讯尽力避免锁定问题。
未来的信息存储分布是我最难确定的,因为目前还没有什么方向可言。不过DHT等研究正在展开,相信一两年内应该会有一个大致的方向。