||
文/本刊记者王玲摄影/张琨
对中国来说,如何应对新的挑战和机遇,在软件技术核心领域实现真正自主创新,成为业内人士深入思考的问题。就此,《高科技与产业化》专访了中国科学院院士、北京大学信息科学技术学院院长梅宏教授。
历史回望
本刊记者:请您简要介绍一下软件技术和产业发展的历史
梅宏:计算机软件是计算机系统执行某项任务所需的程序、数据及文档的集合,是计算机系统的“灵魂”。从本质来讲,软件是客观事物的一种虚拟反映,是知识的凝炼和体现,是知识在计算系统中的固化。
如果用还原论的观点看,信息技术及其产业的基础可以分成微电子和软件两部分,分别代表了系统的硬件和软件构成的基本要素,在此基础上我们可以构造计算系统、通信系统、各类网络和应用系统等。现在,软件已经无处不在,成为人们生活、工作不可或缺的组成。
其实在计算机刚刚发明的时候,并没有“软件”这个术语,最初计算机的运行是通过输入指令序列操作硬件,那时叫计算机程序。直到1950年代末,“软件”作为与“硬件”对应的词才被人们创造出来,在1960年代才开始广为流行。
早期软件是作为计算机的配套附属品捆绑出售的,移植性和灵活性很差。以IBM/360计算机为代表,软件开始与硬件分离,成为相对独立的成分,不再是硬件的附属品,兼容性就成为必须具备的特性,也就是说,新的硬件系统出来以后,原先的软件系统还能在其上运行,从而最大限度地保留软件开发的投入。
软件从计算机中分立出来,使得计算机系统的灵活性和领域适用性得到了很大的提升,极大地促进了计算机系统的应用。然而,在软件重要性日益凸显的同时,软件也变得越来越复杂。图灵奖得主、IBM的研究者Brooks曾经写了一本名为《人月神话》的书,内容源于他在IBM公司任System/360计算机及其庞大的软件系统OS/360项目经理时的实践经验与教训,其中有两个著名的论点:一是向一个已经延期的项目中投入更多的人力资源只会让它更延后(此即“人月神话”的主要出处);二是没有一种策略、技术或者技巧可以极大地提高程序员的生产力(此即著名的软件开发“没有银弹”的论点)。这实际上是阐述了控制软件复杂性及提升其开发效率的难度。
说到真正的软件产业,还是以美国微软的崛起为代表。在这之前做软件虽然能卖钱,但并没有真正形成大的产业。微软把软件变成了一种产业,从此软件成为信息产业中非常重要的一部分,软件产业也成为信息产业中的支柱性产业。到了现在,随着互联网的全面渗透、各种终端、特别是移动终端的高速普及等等,软件已成为一种普遍存在,产业发展非常迅猛。
本刊记者:这样来看,软件实际上是硬件功能的拓展,是软件使得硬件功能得到最大程度的发挥,使得计算机系统的功能更加强大。
梅宏:一般来说,硬件的复杂度相对软件而言要低。实际上,硬件作为一个平台,提供了共性的、基础性的计算能力,然后通过软件更高效地发挥底层各种硬件资源所提供的计算能力,解决复杂问题。从这个意义上说,操作系统可视为构架在硬件资源上的软件虚拟机,但这个软件虚拟机提供了比硬件裸机更大的使用灵活性。经过长期的发展,软件已成为一门独立的学科分支。软件技术研究主要涉及两个方面,一个是怎样高效率地开发出高质量的软件,即软件工程的研究;第二个就是怎样把一台硬件机器变成一台软件机器,即软件系统技术的研究,基本途径是逐层的虚拟化技术和系统优化技术。
本刊记者:在这个过程中,软件的实现形式发生了什么样的变化?
梅宏:软件的发展大体分成这么几个阶段,早期称为机器语言或汇编语言时代,人们使用低级的机器指令和汇编语句编写程序,这种程序代码可以直接在硬件机上执行。后来出现了高级语言,人们可以在较高的抽象层次上用高级语句编程,再通过编译系统将高级语言程序自动变成机器能执行的代码。高级语言大大提高了程序编写的效率,也提高了编程质量。1960年代末,由于软件开发人员极度短缺、开发效率和软件质量不能满足用户的需求,对软件的需求增长超过了供应能力,出现了软件危机,软件工程概念应运而生。软件工程试图用工程的观点,将软件作为一种产品来对待,研究软件的模型和结构、软件开发方法学、软件开发过程,以及软件开发工具等,支持高效率和高质量的软件开发。
在软件技术的发展历程中,软件范型的发展变迁是一条很重要的主线,而所谓的软件范型是从软件工程师(或者程序员)视角看到的软件模型及其构造原理,是软件技术体系的核心。在过去的40多年,软件范型经历了无结构、结构化、面向对象、面向构件/面向服务等的变迁,每次软件范型的变迁,都会导致软件技术的一次螺旋上升。软件范型的演变,反映了推动计算机软件技术发展的几个基本动因——追求更具表达能力、更符合人类思维模式、易构造、易演化的软件模型,支持高效率和高质量的软件开发,支持高效能、高可靠和易管理的软件运行等。
软件新范型
本刊记者:在互联网时代,软件范型有什么特征?
梅宏:概括来说,目前的软件范型在编程层面仍然是面向对象的编程,在系统构造层面是基于构件的软件开发,而从网络分布视角看是面向服务的体系结构,这也体现了在互联网时代软件发展的一个趋势。
本刊记者:您的研究团队也提出了网构软件(Internetware)的概念,这是一种新的软件范型吗?
梅宏:准确地说,这是北京大学和南京大学的同行在2000年讨论973项目建议的时候共同提出的一个概念。我们当时认为,互联网对软件技术发展带来了一系列挑战和机遇,使得软件正在呈现一种新的形态,蕴涵了一种新的软件范型,我们将其称为网构软件。
从上个世纪90年代末期开始,互联网的蓬勃发展使整个信息产业的基础设施发生了变化,互联网早期仅仅是作为ISP(信息服务提供者),人们可以通过网络沟通、交流、传递信息。然而随着进一步的发展,人们并不满足于此,进而希望互联网成为计算能力的提供者。在某种意义上,这意味着将互联网视为一种全球泛在的计算基础设施,形成一个互联网计算平台。
在单机时代,计算机需要软件来管理。如果把互联网也当作一台计算机(Internetasacomputer)来看的话,同样需要有软件把它管理起来。当时我们就在想,如果把互联网平台作为一台计算机来看,其软件应该“长成什么样”?我们需要研究这种新型软件与传统软件相比有哪些不同的特点,当时我们凝练了网构软件的5个性质:自主性、协同性、情景性、涌现性和演化性。同时也指出,可信性保障是网构软件不可或缺的质量需求。
从技术上来讲,这样的软件是网状结构的,运行在网络上,各个软件实体相互间通过协同机制进行跨网络的互连、互通、协作和联盟,从而形成一种与WWW类似的软件Web(softwareWeb)。当时找不出一个英文单词能很好地描述它,因此我们自己还生造了一个英文词:Internetware,作为网构软件的英文翻译。
当时还有一个出发点,就是希望在互联网时代,我们中国应该有自己的声音。应该说,互联网催生了“创新”时代,互联网产业发展迅速,概念、热点频出。互联网正在演化为一台全球泛在计算机,从技术和应用角度都出现很多新的概念和术语。例如,网格计算(GridComputing)试图将互联网连接的计算和存储资源整合并统一管理,云计算(CloudComputing)则将范围缩小到了数据中心;服务计算(ServiceComputing)为互联网上的应用/程序制定了规范化的交互协议,支持“不求拥有,但求使用”的新型计算模式;智慧地球(SmarterPlanet)希望将互联网与物联网互联互通,成为地球的“大脑”;如此等等,还有很多新术语。而往往是西方出现了什么术语和概念,我们的中文术语翻译就紧随其后出现。当时我们就想为什么一定要跟随别人?都是面向互联网,我们能否有自己的想法,走出一条我们自己的路?我们也关注到,当时国际上并没有一个概念是从软件技术的角度来看待互联网,而网构软件正是从软件的视角来观察互联网计算。虽然现在回过头来看,我们的道路也并非完全革命性的东西,和其他的概念/术语在内涵和外延方面也均存在一定交叠和相似的地方,都是传统技术面向新的基础设施和应用需求的发展,也都可归为互联网计算,但至少在当时,从软件的视角去看互联网,我们是第一个。我们希望从这个视角做出有国际影响的东西,最低目标,我们希望网构软件的研究能够成为国际互联网计算中的一个“中国流派”。
本刊记者:具体来讲,网构软件是怎样构成的?
梅宏:具体而言,网构软件应该符合我前面提到的5个基本性质。概括些说,网构软件包括一组分布于Internet环境下各个节点的、具有主体化特征的软件实体,以及一组用于支撑这些软件实体以各种交互方式进行协同的连接子。这些实体能够感知外部环境的变化,通过体系结构演化的方法(主要包括软件实体与连接子的增加、减少与演化、以及系统拓扑结构的变化等)来适应外部环境的变化,展示上下文适应的行为,从而使系统能够以足够满意度来满足用户的多样性目标。
网构软件这种不同于传统软件的形态,在微观上表现为实体之间按需协同的行为模式,在宏观上表现为实体自发形成应用领域的组织模式。相应地,网构软件的开发活动呈现为通过将原本“无序”的基础软件资源组合为“有序”的基本系统,随着时间推移和新应用需求的增加,这些系统和资源在功能、质量、数量上的变化,导致它们再次呈现出“无序”的状态,需要新的一轮组合。这种由“无序”到“有序”的过程往复循环,以一种自底向上、由内向外的螺旋方式实现系统的演化。
本刊记者:听起来像是有智慧和思考能力的软件,能够根据环境自主适应。
梅宏:有点这样的意思,这是软件技术发展的目标,当然现在还远不能达到,离真正智能的软件还有漫长的路要走。目前的状态只能是称为软件具有较好的自适应能力。还有一个问题需要提到,网构软件具有高度的复杂性,一方面,由于软件是客观世界的虚拟反映,要把复杂的世界映射到软件空间来运行,而客观世界的复杂性也导致了软件的复杂性,这是与生俱来的;另一方面,软件技术本身也在不断演化中,技术的演化也带来了系统实现的复杂性。软件工程想做的事情就是要能够有效地控制软件系统的复杂性,但至少现在而言,完全解决复杂性问题可能还做不到,软件技术研究的目标是希望软件开发既快又好,多快好省。
本刊记者:现在网构软件概念是否已经被认同?
梅宏:我们是2000年提出网构软件这个概念,2002年正式获得国家973项目的支持开展相关研究工作,2009年得到第二期973项目支持,到现在已经十几年了。经过十余年的努力,我们在网构软件的研究与实践方面已取得了一些进展,形成了一套以软件体系结构为中心的技术体系。网构软件研究在国内外均形成了较好影响,国内有很多机构开展了网构软件的研究,国家863计划和国家自然科学基金都支持了不少关于网构软件的研究课题。我们也通过多种方式和途径宣传和推广网构软件理念,受到国际同行关注,如:多次在国际会议上受邀作关于网构软件的特邀报告;和IBM研究院建立了以网构软件研究为主题的联合实验室,开展了合作研究;连续举办了5届网构软件国际研讨会,数十位海外学者参会;Internetware这个生造的英文词也已经被人接受,在国际会议或者期刊上正式出现,最近我们还在IEEEComputer发表了一篇系统介绍Internetware的文章。不过,我还是想强调一下,不管怎么叫,网构软件本质上还是软件,仍然符合软件技术长期以来包容式发展的规律,既有传承,也有演进和创新,我们只是用这个新的术语来命名互联网时代的新的软件范型……
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 20:28
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社