在技术领域经常能够听到software defined xxx,例如,software defined network, software defined wireless, software defined storage, software defined data center, software defined instrument, software define infrastructure等。为何会存在这么多的software defined流派,难道这个世界是大同的?

当我在做测试测量仪器的时候,这个领域最火爆的名词就是software defined instrument,软件定义仪器。这个名词的发明者是NI。美国的国家仪器公司创造了虚拟仪器,研制了庞大的模块化仪器硬件库以及简单实用、并且强大的Labview软件。在Labview软件以及硬件库的基础上,就可以像搭积木一样定义、重构自己需要的仪器设备,从而实现software defined instrument,也就是街头小巷常说的虚拟仪器。我曾经对这种东西深深着迷,回味至今。软件定义仪器,这对传统的测试测量领域是一种革命,影响极其深远,为什么?这是因为传统测试测量仪器基本都是由硬件、机械装置构成,软件在仪器设备中的影响力极弱。传统仪器的核心基本都在于弱信号检测电路、大功率发生驱动电路和精密机械装置。而software defined instrument颠覆了这种模式,使得软件在仪器中占据主导地位,这是为什么?软件定义仪器的革命不仅在形式上使得软件成为主导,例如,软件担当着复杂数据处理的任务,强有力的信号显示能力。更为重要的是数字信号处理技术在测试测量领域占据了主导地位,而数字信号处理都是在用软件的方式实现。有了强有力的数字信号处理技术之后,很多测试测量仪器模型发生了改变,测试测量方法也发生了改变,基本硬件变成了激励信号输出模块以及数据采集模块,其他的都可以采用计算机软件来完成。在相同硬件平台的基础上,采用不同的信号处理方法/软件,就变成了不同的仪器。因此,software defined instrument是测试测量领域的革命,其革命的基础是数字信号处理技术的发展。

当我在做通信芯片的时候,这个领域有一个很时髦的名词就是software defined wireless,软件定义无线电(软件无线电)。做过一点通信的人都知道,现代通信的前端处理结构基本都是雷同的。高频无线信号通过天线耦合输入之后,经过带通滤波和信号放大处理,之后进入中频处理单元进行混频处理。混频处理将载波从射频信号中去除,得到中频信号,中频信号再通过QAM之类的调制解调器进行解调处理,得到基带信号。基带信号最后通过模数转换得到数字信号,送入基带处理器。最后进行基带处理器的协议处理,得到接收数据。从这个过程来看,从射频直到基带信号,全是模拟的,全部需要硬件的方式进行处理。软件无线电需要解决的问题是由于无线通信的标准太多,一套硬件系统无法满足所有标准的应用需求。所以,如果从射频进来的信号能够直接数字化,那么这是最完美的解决方案,可以采用软件手段将所有标准归一化。但是,在射频端直接数字化难度很大,最大的问题在于射频信号频率很高,很难将其直接数字化。因此,目前的software defined wireless都没有做到射频级,最多也就将中频信号数字化,调制解调采用软件的方式完成。在软件定义无线电的想法中,其最大的技术驱动力也在于数字信号处理,难点在于宽频带模数数模转换硬件。

当我在做存储的时候,近两年这个领域有一系列非常响亮的名词是software defined storage, software defined infrastructure, software defined data center。这几个名词意思不同,最主要的区别在于涵盖的范围大小不同。Software defined storage是存储层面上的概念,software defined infrastructure是基础平台上的概念,而software defined data center是数据中心层面的宏伟蓝图。虽然这几个概念差别很大,但是本质上是相同的。剥掉华丽的外衣,里面的内涵是相同的。他们本质上都强调封装、简化管理。在此重点谈一下Software defined storage。这个概念的提出最主要是解决来自不同厂商设备集成在一起,又难于管理的一个问题。不同厂商的设备有不同的接口,管理起来异常的复杂,针对这个问题有人提出何不提供一套通用的接口,封装所有厂商设备的接口呢?由此,软件定义存储就产生了。EMCVIPR就是这么一个产品。他的好处是显然的,简化了管理。通过VIPR,客户提出需求,就可以得到自己的存储资源,也许这个存储资源来自于VMAX,也许来自于VNX,这些都对用户透明,用户只知道自己从一个资源池中得到了存储。Software defined storage就这么简单。相对于software defined instrumentsoftware defined wirelesssoftware defined storage没有技术推动力。所以,我不认为这是一种革命,这是一种资源整合。当然,software defined storage还有其他版本,VIPR不涉及数据通路,其他版本会涉及到数据通路,这样的话在技术复杂度上会有很大提升。相当于把EMCVPLEX也融合在了software defined storage中。

在其他技术领域,例如在网络也有software defined network。个人认为这个和software defined storage是类似的。在计算机领域,有一个东西是万能的,那就是虚拟化。也就是对一个对象进行抽象之后,形成新的一层,就会新的灵活性,从而达到解决问题的目的。在计算机领域的Software defined xxx,都是遵循这个准则,这是和其他领域的最大不同之处。

技术存在着相通性,无论在硬件领域还是在软件领域,当遇到庞杂问题的时候,都想将其归一化,这种归一化就是software defined技术手段。但是,挖掘技术背后的思想和推动力,每个技术领域还是有自己与众不同的独到之处。