当前位置:首页 > 名家讲坛 > 详细内容

中国科学院院士梅宏:软件定义的时代

[2017年6月29日在第二十一届中国国际软件博览会上中国科学院院士、北京理工大学副校长梅宏作了题为《软件定义的时代》的主旨报告。以下为报告全文]
 
目前我们正在进入一个新的时代,不同的人对这个时代赋予了不同的标签。从基础设施角度可以称之为互联网+时代,从计算模式的角度可以叫做云计算时代,从信息资源的视角则是大数据时代或者人工智能时代,今天我想从最基本的使能技术的角度,我们把它称之为软件定义的时代。
什么是软件定义?我们从软件的发展开始谈起。过去的软件发展经历了三个阶段,早期我们称之为软硬一体化的阶段,从程序变成软件一直是作为硬件的一个附属品存在。七十年代中期软件开始成为独立的产品,并且开始逐步创造了一个巨大的产业,应用覆盖到我们生活的方方面面。九十年代中期随着互联网商用的起步,软件产品走向服务化、走向网络化,开始渗透到人类社会生活的每一个角落。无处不在的软件已经渗透到了我们生活的方方面面,举几个例子:
现在的汽车发展工业软件的比重一直在持续地增加,有的已经占到了全车成本的40%以上,比如宝马7系的软件总量超过了2亿行,特斯拉S总量超过4亿行,飞机空客A380软件总量超过了10亿行,2016年全球软件的销售是200亿美元,互联网延伸给我们催生了软件新的模式的变化,基于云的新的软件使用模式就是软件服务,按照Gartner的报告,2016年全球公共云服务市场规模是2000亿美元,其中SaaS已经到了277亿美元,年增长率为20%。在移动互联网的环境下,通过软件定义的每一台手机加上后台的云的服务,一种新的模式就是我们的APP。两大阵营APP-Stare和Google Play大概有300亿以上的应用,累计下载量是1500亿次。2016年全球移动商家的收入达到了448亿美元,年增长率是40%,远远超过其它的新兴产业。
 
我们看到过去互联网带来的变化已经深刻地改变了我们人类社会,颠覆了很多原有的行业:我们的唱片、我们的邮政、交通出行、票务旅游,甚至传统的电信,同时互联网也创造了新型的应用和经济模式,电子商务、政务和每年出行的导航都在缩小,平台经济、共享经济、API经济等各种新名词也是层出不穷。
互联网的核心价值是什么?是连接,从连接终端到连接用户到实现我们应用的互联正在走向万物互联,其网络的价值是和节点成正比的,软件正是实现互联网核心价值的重要技术。无处不在的软件正在定义整个世界,我借用两位名人的话:一位是网景的创始人Edson,他说软件正在吞噬我们的世界。美国工程院院士C++的发明人Strom给了一个说法,人类文明运行在软件之上。
软件定义的信息是源自于2008年斯坦福大学的一个项目,把传统的交换机通过软件的方式按照三层结构开发出了一个Open Floor,2013年正式在云中心落脚,广泛地应用于云的网络管理,从此被广泛采用,软件定义的网络在2015年Gartner的报告当中首次出现。某种意义上,不夸张地说,SDN重新定义了传统的网络架构甚至通信产业,ABC的报告说2016年市场是37亿美元。
软件定义网络的技术原理是什么?它的本质是分成了三层:硬件层、控制层和应用层分开,通过一个应用编程结构对网络设备进行任意的编程,从而可以实现新型的网络协议、新型的投入结构,而不需要改变网络设备的硬件本身。因此就它的本质而言,软件定义的原理就和我们计算机操作的原理是一样的。
如果我们从操作系统的视角来看,对任何一个普通的计算机用户,我们看到的操作系统实际上给了你一台软件定义的计算机。从我作为一个软件研究者的视角,操作系统的很多原理已经体现到了我们软件定义的集大成。主要的两大功能是项下通过硬件资源的虚拟化管理各种各样的资源,向上通过管理功能的可编程提供各种公共的服务。因此,软件定义的本质就是把一体化硬件基础设施变成部件化,通过管控软件对虚拟的部件实现的按需管理、按需使用,进而可以实现整体系统功能的灵活定制和灵活扩展。
我们正在从SDN走向一个软件定义不断延伸和泛化的时代,现在可以看到软件定义的一系列发展。首先是横向的延伸,IT领域出现了软件定义硬件,比如软件定义的存储、软件定义的计算、软件定义的环境以及软件定义的数据中心,这是我们在计算机的硬件领域被软件定义的,还有很多软件定义的X。随着人机物融合的发展,软件定义也开始向物理世界延伸,比如软件定义的城市,把实现城市各类的信息设施、物理基础设施的开放共享和智能化的互联互通,可以支持动态高效精细化的管理。城市操作系统同样可以分成三个层次:设备层、控制层和上面的应用层。
软件定义正像我们传统的行业,特别是工业制造业进行转变。我们的工业互联网、工业4.0,包括中国制造2025,所有的这些战略盯着的目标都是新一轮的工业革命,而我以为在新一轮的工业革命里面软件技术将是非常核心的竞争力。很多传统的制造业公司都宣称向软件公司转型,洛克西德马丁的代码数量已经超过了微软公司,计算行业怎么实现新一轮的软件化?就是硬件和各种智能设备,它的知识和工艺流程要软件化和虚拟化,进而实现软件的平台化,本质上这也是软件定义的思路。
软件定义的智能制造平台应该是什么?首先是制造全程的数字化,通过生产制造全生命周期的数字化实时地采集和分析数据,支持我们的智能决策。生产知识软件化,产品的设计、产品的仿真、工艺和制造等技术和经验都不断地成长,通过软件固化下来,沉淀到平台上基于软件使用实现我们知识的智能化。制造平台的电子化是实现机器硬件的组合,通过智能通信的互联和智能控制,同时面向每一个特定领域的需求个性化地生产,以及任务驱动的软件定义进行深入的定制。这是横向的延伸,我们也可以看到软件定义正在进行纵向泛化,从单一资源的按需管控走向全网资源的互联互通,因此软件也正在不断定义它的平台、数据甚至应用。
这里可以看到一个例子,我们怎样用软件定义的方式来支持数据的开放共享?《大数据行动纲要》是国务院发布的,一个重要的任务就是进行资源的开放共享,也有明确的时间表在2017年实现数据目录,2018年实现统一共享,但是由于各种原因出现了大量的信息孤岛,阻碍了数据的开放共享。比如部门行业的利益本位思想导致很多单位不愿意放空,相关的数据风险和系统风险使得大家不敢来做,系统的技术成本也导致了我们不太容易。因此要解决的问题是政策法规、标准规范和技术手段三管齐下。
单就技术手段而言,现有的技术方式要实现全国政务系统的开放共享和互联,初步和保守的估计也是千亿人民币的投入。我们也尝试用软件定义的方式来实现数据的开放和共享,给了一个软件定义方案,就是数据总件加上系统智能的适配,可以智能学习一个孤岛系统的内部状态和内部行为,重建它的体系结构,构建它的数据访问的结果,不需要开放后台的数据,也不需要延续最后的原代码,也不需要原有开发商的支持,可以实现尽可能少的协调,风险尽可能降低,也省时省力省钱。软件定义技术已经在全国进行推广进行示范应用,春节以后我们用了一个月的时间在贵阳做了一次全贵阳市的数据开放共享,没有原系统开发商的配合,缺少数据试点的情况下完成了全市50多家单位300多个系统2300多个功能项目的梳理,形成了1000多项数据目录,也形成了一个可以访问的、活化的数据资源。
未来我们正在进入一个软件定义的时代,其基本的特征表现在万物皆可互联,一切均可编程,在这个基础上支撑人工智能应用和大数据应用,这是我们的共享数据智能制造。这个时代给了我们挑战,我们怎么应对这些挑战?可以看到未来海量多元的信息资源,我们需要新的软件定义的方式进行管理,我们的云管端物甚至大量的设备异构多样,怎么实现它的有效管理?人机物融合的环境下涌现了很多新的应用,新的应用模式也正在不断地诞生。在这种情况下怎样支撑那么多各种各样的应用,构建一个相对共性的软件平台?
软件定义基础设施目标也在发生变化,过去我们的方式是基于已有的硬件资源构建平台,上面搭建应用,如果硬件发生变化必须要变化平台,同时也要变化上面的部分。能不能更换一种思路?当硬件发生变化的时候我透过一个深度软件定义的平台可以灵活地定义管理各种资源,也就是说从硬件资源为核心走向软件平台为核心,在这个基础上力保我们的平台和上面的应用系统不再发生变化,这是我们软件定义目标的重大挑战。当然还有其它的技术挑战,比如体系结构的问题、软硬到底怎样划分?它的界限在哪里?力度是多少?安全性有没有问题?由于软件定义使得系统的脆弱性增加,安全的成本也会增加,风险漏洞的可能性也偏大,系统质量的问题、软件带来的性能的损耗能不能尽可能检测到最小?还有那么多异构设备。
因此一系列技术挑战正在导致整个软件体系、方法学、思维方式的重构,这给了我们非常重要的机遇。这也是技术和产业洗牌的机遇,怎样抓住这个机遇迎接挑战?党中央国务院高度重视信息技术和信息产业发展,十八届五中全会明确指出实施网络强国战略、实施互联网+行动计划,发展分享经济,实施国家的大数据战略。如何抓住机遇发展我们自己的软件技术体系?我想从这几个方面给出建议:坚持创新驱动的发展战略,全面贯彻软件应用到每一个行业和工业体系,构建自主可控的软件体系,助力社会经济的转型升级,推进开源软件的生态建设,构建产学研用的创新体系,营造良好的产业发展环境,大力培养优秀的软件人才。