万物皆可互联,一切均可编程
2018-07-17梅宏
梅宏
网络本身是因为什么而产生价值?互联网能够产生价值的核心机理就是连接,著名的梅特卡夫定律,说的就是网络的价值与网络用户节点数的平方成正比。所以,网络的规模与节点数的平方是成正比的,网络的价值也就相应越大。
这个时代的一个非常重要的趋势,叫作“软件正开始成为人类社会的基础设施”。可以从两方面理解,第一方面就是在信息基础设施里面,软件是非常重要的构成成分。第二个方面就是随着人、机、物融合时代的到来,传统物理世界的基础设施也面临着一次新的改变,我们要用软件去重新定义传统的基础设施,把传统物理世界的基础设施完成数字化以及可定制化。这导致了软件将会成为人类社会的基础设施和支撑我们人类社会运行的一个不可或缺的元素。
所以说,软件无处不在。它在为我们的社会、为我们每个人赋能、赋值、赋智。我再用两个名人的话来总结一下,一个是Netscape(网景,第一个浏览器公司)的创始人马克·安德森说过一句话:软件在“吞噬”世界。美国的工程院院士、C++语言的发明人本贾尼·斯特劳斯特卢普说,人类文明将运行在软件之上。
软件时代的信息安全
现在的国家安全,信息安全是其中非常重要的一个方面,信息安全问题已经成为事关经济安全、社会安全、国防安全的“第一安全”。软件实现了对信息的存储、加工和传输,因此说软件的安全对信息安全是至关重要的,它是整个网络空间安全里非常重要的要素。未来随着软件的“基础设施化”,很多事物都要靠软件来管理;比如,工业控制靠软件。工业要联网,形成工业互联网,这是必然的趋势,但是,这其中也带来了一个很重大的安全问题。未来,我们的军事、工业、金融等都要联网,都要和各网络关联,这些重大领域的安全都必须建立在软件安全的基础之上。现在,国内很多制造业都在完成新一轮的和信息化的结合,比如,要解决数字化问题、网络化问题和进一步的智能化问题。这其中,软件的作用非常重要,它不仅是一个使能技术,而且如果它的安全问题解决不了,在工业制造领域所带来的损失会比我们日常生活中其他的一些应用所带来的损失大得多。
软件定义的未来世界
现在我们的社会已经离不开软件了,未来会怎么样?可以说,“软件定义的未来世界”。
未来是一个人、机、物融合的环境,在这个环境里面,信息基础设施是什么?是海量异构的各种软硬件资源。这就是经常讲的云、管、端,还有物,各种设备在一个网上连接,当然还有人的介入,各种资源是海量异构的。同样在这个环境之下,各種新型的应用需求层出不穷,需求形态多样。各种新的计算模式,要支撑共享经济,支撑各种应用商店,支撑社交网络、人工智能应用、电子商务、电子政务等。
在这种情况下要解决这种问题,按照软件长期发展的思路,我们需要构建一个软件平台。平台为各种各样的应用提供共性的服务,也就是要凝练共性,把各种应用需求的共性凝练下来,放到平台里。软件平台要把这些资源管起来,把海量的异构资源管起来。
软件平台要应对应用场景的动态多变,即能不能做到按需定制。给不同的人可以定制不同的平台,给不同的组织定制不同的平台,这就是软件定义。那什么是软件定义?软件定义就是把硬件连接的一体化的基础设施的中间的一些部件,通过软件虚拟化的方式提供可操控的接口,然后用软件把这些接口连起来,使得硬件能够实现灵活互联。
所以,软件定义的本质是通过虚拟化及应用编程接口把硬件的可操控的成分暴露出来,然后按需实现硬件的管理。总结起来就是两句话:基础资源虚拟化,管理任务可编程。其实,我们的计算机操作系统已经就是这么做的,向下管硬件资源,向上支撑各种各样的应用服务。
编写出一个软件操作系统,我们的能力是具备的。但问题是,怎么让它的生态建立起来。因为做出一个操作系统,做出一个系统软件,要有人用,要有人在这上面开发各种应用软件,这才是最关键的的一点。现在我们要破解这样一个问题,这个不是靠喊口号的,要靠一代一代的人努力才能做到。
比如说软件定义的城市。2012年,BBC报道了伦敦在部署所谓的“智能城市操作系统”。智能城市也是软件的架构,把传感器层、控制层、监控层和应用层弄起来,形成一个平台,形成一个整个城市的软件定义。随着这种人、机、物的融合在物理世界的延伸,城市里面各种信息物理基础设施以开放、共享、智能、连接的方式,通过软件的方式来实现,从而支持城市对各种硬件基础设施以及人的活动的精细化管理,这就是“软件定义的城市”。
现在人工智能很火,各种人工智能的应用成为发展的一个大热潮,但实际上,我们现在的人工智能总体上还是算法人工智能。那么,我们通过一种通用的平台,提供通用的框架能不能支持各种人工智能应用的按需定制呢?我想这应该是值得探讨的一条思路。我们要通过软件的角度打造一个支撑各种智能化应用的平台,这是软件的思路。
基于软件定义,就是刚刚讲的操作系统本身,实际上,我们要解决什么问题?就是要解决一个各种各样的物体、各种各样的平台、各种各样的组织的操作系统的问题。这就是我提出的一个概念,叫作“泛在操作系统”(Ubiquitous Operating System,UOS)。这也就是未来的操作系统将从计算机的操作系统要变成各行业、各组织的甚至家庭的、城市的操作系统,这些东西都是通过软件定义来实现的。所以,我把软件定义看作是一种技术方法、一种思维途径、一种实现途径和一种操作系统平台展现,它实际上是可以画上等号的。
我们正在进入一个新时代,一个好时代。而且,中国这个火车头已经开起来,谁也挡不住,我们的发展是必然的。我们和发达国家比,优势在哪里?那就是后发优势,我们没有前面那么多的历史包袱,和发展中国家比,我们的优势是什么?我们正当其时,他们没准备好,我们准备好了。所以我想这是历史给我们的窗口期。
20多年来,我们取得了长足的进步。我没有留过学,只是在1999年去贝尔实验室待过一年,其余时间一直在国内成长。我觉得,我们现在的很多学术成果,很多的技术产品,和国际上比并不差,所以这就比我们过去仰头看西方的时期的差距大大地缩小了。
但科学研究、技术发展有它的规律,很难一蹴而就,毕竟我们是从一个一穷二白的基础上开始发展的。在新的生态模式之下——比如说现在可以看到硬件开放的趋势已经很明显,软件开源也已经成为气候——所以在这个基础之上,我相信我们要构建一个自己的、可控的体系应该是可能的,只要我们有自信心,同时有大家共同的努力。
万物皆可互联
未来世界是一个人、机、物融合的世界,我们需要把各种各样的信息资源连到一起,同时信息资源又要和各种社会资源、各种物件、各种设备硬件资源关联起来,还有支撑我们各种各样的应用模式,在大数据、人工智能、共享经济、平台经济等新的概念之下形成的一个场景。这个场景是什么?从软件的视角来看,就是“万物皆可互联,一切均可编程”。这些东西要靠软件定义的方式来实现,所以说未来世界一定是一个离不开软件的世界。这就是我今天讲的主题:为什么叫软件定义的未来世界。(作者系北京理工大学副校长、中国科学院院士,本文为作者在2017年10月26日举行的2017中国计算机大会上的演讲稿节选。)