今天我要讲一讲中间件与软件定义系统的关系。
中间件是软件定义系统的核心技术与基础架构。我第一次提软件定义系统是在软件无线电创新论坛2018年欧洲会议上的一篇论文中,论文的题目就包含软件定义系统几个字,论文主要讲针对软件定义系统需求设计实现中间件。后来,我发现无线创新论坛成立了一个委员会,名字就叫软件定义系统委员会,主要从事软件通信系统架构的标准化工作。
当时我就讲中间件技术是实现软件定义系统的基础技术,没有中间件软件定义系统是不可能或者讲很难实现的,所以我们需要对中间件技术进行深入的研究。然而,业内对这一方面的研究并不深入,这也是我这一次想公布一系列的材料的原因,这些材料包含了我所在团队与我一起取得的成果,也有很多成果是从网络上搜集的,由于来源众多,没有一一注明。这些材料的公开也源于最近的一个契机,近期需要去一个合作单位做一次讲座,就在中间件方面一起合作所取得的一些成果开展研讨,积累了一些素材,又因为一直想做些开源、开放的工作,为技术进步的进步、相关工作标准化的进步做些贡献,因此就开始了这项工作。我希望通过这一些工作,能够统一业内,尤其是软件定义系统领域,对中间件的认识,能够理清一些概念,统一一些思想,使得从业人员之间的交流更加的顺畅,也能够促进这一领域的持续有序发展。
讲到中间件,我们就不得不讲,在软件定义系统当中,为什么需要中间件?从2017年以来,在对外交流的不同的场合,我就讲以软件通信体系架构为基础的软件无线电系统的核心组成单元是组件。软件定义系统实际上就是一个组件化系统,所以我也提出了一个概念,就叫一切皆组件,这个概念也得到了很多认可,但似乎也产生了些误导,当然这是后话了。
所谓组件是软件定义系统当中的最小的可管理、可重构、可定义、可配置的功能单元/软件模块,这种功能单元既可以是对硬件功能的封装,也可以是对软件功能的抽象。在软件定义系统当中,组件或者由多个组件组成的应用需要根据用户需要动态重构。由于组件与组件之间并不是绝对独立存在的,它们之间有着相互关联性。这种关联性包括应用组件对服务组件、设备组件、框架控制组件的依赖,也包括应用组件与应用组件之间的信息交互。所以我讲中间件技术实际上为软件定义系统中组件之间的信息交互提供的基础,为动态重构、灵活部署的情况下提供互联支撑,这也是中间件与软件定义系统最紧密的联系。