梅宏2008中国电子技术年会
来源:新浪 更新时间:2012-04-14

  4月18日,由工业和信息化部、科技部、中国科学技术协会指导,中国电子学会和中国电子报社共同主办的2008中国电子技术年会在北京举行。中国电子学会理事长吴基传、工业和信息化部副部长娄勤俭出席了会议。本次大会的主题是“科学技术是第一生产力”。

   北京大学电子信息学院院长梅宏。以下为其发言内容:

  很高兴今天可以给大家做一个演讲,我今天讲的主题跟大家讲的相关,前面的张教授讲的网络,我讲的问题和他们的工作相关。

  我的工作是在软件的领域,就是网络建成以后,软件带来了什么。

  我大概讲三个方面,前两个方面是主题,就是谈一下趋势。第一是看看过去,第二我们是看看未来。第三点,我们是想做一个广告,介绍介绍我们的工作。但是,我想这部分具体的技术细节多一些,我尽可能说得快一点。

  从发展趋势来看,我们说任何一个技术的走向,如果我们想看看未来的话,过去的历史我们要分析。通过分析过它怎么组建,我们实际上可以看到一个脉络,看到一个机理的技术走向。假如说从软件的技术角度来看,过去我们总结出了4个模型,称之为驱动力。到底是什么在促使软件技术的变化?这个驱动力是更具表达能力,更符合我们人类的自然思维模式,更具构造形和演化性的计算模型,软件本身只是一个人造的产物。

  所以,基于一个人造的东西,或者是一个系统而言,它的基本构成都是由一个实体的元素连接起来,我们的世界大千都是这么构成的。

  那么,实际上我们看到软件的演化,在最早最早的时代,我们是机器语言的编程。所以,我们的处理是机器指令。那么,我们在机器指令之间,它只有一个顺序执行,还有一个跳转的指令,这就构成了我们当时的控制。后来,我们发现机器的语言太低级了,没有办法做了,后来我们实现了高级语言。高级语言每一条语句之间,大概是三个控制结构,一个是顺序执行,一个是条件,还有一个是循环。

  那么,根据这个,我们希望给用户提出适合谈平常习惯的语言来描述。到最后我们是机器的函数和过程,到现在是80年代的面向对象,从工程化的角度讲是面向构建。

  大家可以看到,我们走的过程中,力度是越来越大,所以从语言指令走向模块,然后走向构建。那么,研究方式也越来越简单化,现在的服务,给的构造一个SIP协议,所以是越来越简单化。所以,这样的模式,我们希望能够结构性,能够演化,这样我们人就可以写出更好的思维方案。从80年代开始,有两任的语言是面向对象的,到现在为止,程序语言没有变化。

  比如说我们操作系统的发展,从引导程序、管理程序,到多道程序设计,最后到了资源管理,就是现代的操作系统。那么,当时的软件有一个速度差,我们可以让多个程序在里面同时存在,分时运行。这样,对于用户来看,所有的人看到的就是我的模型。但是,这个运行速度太快了,每一个时刻总体上来看,它能够服务于很多的方面。

  第三个来看是尽可能多地凝练共性和提高软件开发的小和质量。那么,过去的软件编程是在某个机制上,要写程序。那么,后来到了操作系统的层面,后来到了操作系统的层面需要网络性,这就有了中间件和我们应用系统的开发。那么,这就是我们人类共同财富的积累。如果说我们把过去的这种阶段,看成了手工作坊的阶段,现在正在向软件的工业化方式转变。这就是软件的复用,这就是我们追求的基本。

  第四个我们希望我们可以尽可能平滑地桥接异构性,增加互操作性。实际上异构是我们市场行为的自然产物,任何一个公司要推行自己独特的产物,一定要做好自己的营销圈。而这种营销圈,往往会成为他们的异构的市场行为。那么,他们所有开发出的自己的版本和自己的方言,实际上很多的产品都是这样的,他一定要有自己的东西,但是又由于没有任何一个厂家,他可以完全地把所有的市场都控制下来,所以他必须保留和别人的连接。

  所以,过我们看到很多的硬件厂商,我们是用操作系统的硬件平台,把我们的应用系统变成了应用型把它屏蔽掉了。那么,当多种的网络出现的情况下,如果面向这么多的操作系统的解耦合的程序,我们干脆在中间加一个中间件。这么多的中间件,它使得我们的编程的操作程序不一样了。实际上,现在的中间件很多了,像微软的,现在在提出一个Web的服务器。那么,我们把所有的硬件包装成了一个服务。所以,我们实际上可以看到,软件的技术发展本身,本身是在桥接异构性。

  那么,未来会怎么样?服务器会不会出现应用?我们现在觉得还是一个可能,虽然现在服务器并没有用进去,虽然人们在企业当中用,但是广域范围的服务器,并没有真正的应用。那么,如果面向这样的应用,当所有的厂商都可以在新的应用的层面上有互操作。

  那么,这都是过去人们研究的热点,不断地有人在做事情。那么,现阶段软件的中间件,它就成为了驱动力的自然的产物,就是我们的软件构成模型,那么我们的变成模型到了这个程度。这是网络硬件上的各类软硬件的综合管理。这方面屏蔽了网络带来的驱动力。那么,从现在的软件平台,从计算机到PC到模型。那么,现在我们希望把Inter网上软件技术可以转型,这就使得软件技术进入了一个变革的阶段,他是很重要的。

 那么,我们说中间件过去应用软件是直接操作所有的硬件,操作系统出来以后,把所有的硬件都管理了。但是,我们要面临操作系统的异构。但是,后来说不行,随着网络时代我要解决很多的问题,比如说我要远程调用、负载均衡、事务处理、容错、安全保障,那么把这些融到一块,就变成了现在的中间件。所以,这需要我们新的软件,来支撑我网络上的所有的应用系统开发。

  那么,在这个意义上讲,我如果把新的网络中间件,设为新型的系统软件,针对网络环境下的操作系统,把它的操作系统之中构建出一个新的系统软件。同时,在Inter网的时代,构建出了新理论、新方法的综合形态,那么它就成为了网络形态下的关键的技术和基础设施,同时它也引发了软件产业新一论的竞争。

  这几年,围绕着网络计算,很多的概念都在呈现,比如说我们前几年热炒的组织计算、服务计算,这样的研究开始出现了云计算等等,所有的一系列的东西,都想做一件事。就是大家想把Inter网做成我能够给人们提供什么样的东西。但是,不管你提什么东西,总的是变不了的,他都需要支撑。

  那么,第二个方面我讲一下Inter网到来带来的什么东西。实际上,仅仅从用户的角度来看,Internet最重要的是开放的,你随时可以进去,也随时可以退出。它动态的随时在变,你根本找不出某一个瞬间它到底是什么,今天是这样,明天是那样,所以,它是在变化的。

  那么我们统一起来,我们讲分布也好,Internet的分布,是节点高度自制,不可预测,人、设备、软件是多重运动。使用的方式也非常个性化,那么由于这样的东西出现,我们在面向这么一个开放的环境,未来的软件系统,我们可以设想在Internet上它形成了一个封闭的集群,这种软件系统是不一样的。

  它要求我们软件系统是开放的系统,因为它要随时和外部连接。它要是一个动态的系统,同时要在线的演化。过去我们用软件要更新换代,我需要把我的应用停下来,换新的应用,然后再进入系统。但是现在,可以提供你7×24小时不断地提供服务,在服务的同时,你可以完成自己的更新换代。那么,环境的感知,是你对周边而言的感知力度。那么,到了环境的变化之后,你有一个自主适应的力度。所以这是Internet所具备的。

  那么,从这个角度来看,每一个单元和每一个实体,它是一些异步的构建的它分布到网络上,每一个异步的构建是具有独立性、主动性、自适应性。但是我们是通过多种静态连接和动态合作方式来连接的,那么最后是把它们变成的互联互通和协作的联盟。那么,这就是我们自己的运营,就是网构软件,这就是Internetware,这也是我们自己造的词。那么,实际上这就是从信息化到软件化。

  大家知道,我们到目前为止,Internet上的应用,最最好的应用还是www,还是Web,所以回顾历史,Internet几代最早的E-mail的应用,到后来出现的FTP等等的资源共享。那么,到了Web的出现,实际上使得整个的Internet走向了一个集成。

  但是,当我们想到Internet不仅仅是一个信息的提供者,不是一个数据的提供者,不仅仅是一个知识的提供者,它要给我们提供集散能力、软件能力的时候,我们就把它变成的一个软件,它能提供给我们功能、计算。

  我记得在10年前大概有一个ASP叫做应用服务提供商,那个时候应用没有起来。但是,现在的服务提供商的概念,就是SA、AP、SOA等等这样的概念出现了,使得软件变成了服务了,在整个的Internet里面提供服务,就成为了一种现实。

  那么,这样的网络有没有什么特点?我们总结出了5个特点。

  每一个软件的实体具有相对独立性、主动性和自适应性。软件实体之间有多种方式的互联、互通、协作和联盟,这就是协同性。

  那么软件实体具有感知外部运行和使用环境的能力,这就是反应性。那么结构和实体的演化能力,包括元素数目的可变性、结构关系的可调节性和结构形态的动态可配置性,这就是演化性。那么最后一个是多态性,网构软件实体具有目标制导能力和多目标的特征协同能力,从而使系统的效果体现出相容的多目标性。这就是我们过去的软件强调的是单一性,过去的软件是从输入给你映射出了一个输出。而这个输入到输出,就是I到O是固定的。这个正确率是需要保证的,而外部的软件就不是这样的,有没有绝对的正确率?不一定,像我们网上搜索的信息一样,你今天的搜索和明天的搜索是不一样的,但是它大概可以满足你的要求就可以了。

  所以,我这种多态性体现了新的软件形态,它的性质是足够好够可以了。不一定要追求绝对的满足我的要求。

  那么,网构软件对软件技术的挑战,第一个是确定目标、有序控制,因为我们的目标不一样,所以我们需要确定目标。那么,新的软件形态是在软件运行平台上,我们可以对外提供服务,这些服务实现了我本身的站点功能,从无序到有序的过程。而新的服务来了之后,又会产生新的一轮从无序到有序的过程。那么,我再把这个用起来,它是一个动态的目标,可能渐趋稳态,可能永远达不到稳态,但是可能达到80%到90%,但是我们可以接受。

  那么,从目标、协同方式等等本身,这一系列的东西,是我们现在值得研究的,也是我们国际上大家很关注的,怎么样实现这么一类,以大计算平台为目标的软件技术的转型。

  那么,现在的技术体系,到现在为止,模型没有产生变化,就是因为它符合了我们的需求。那么现在的核心是两个部分,就是数据和操作,就构成了我们的对象。那么它的实体是固定的,我们要解决对象A到对象B的调用,就要变成RPC式硬连接的方式。那么,系统结构与目标的确定性,是缺少一个感受的能力。那么,现有的软件是在开放性下面,缺少协同和演化的设置。

  那么,到60年代的结构化的方法,80、90年代的面向对象方法,到了20世纪末的软件Agent方法,那么到了现在,在Agent就实现的开放的应用,倒不一定说Agent是一定要有的,但是到实体性等等是我们网络一定要解决的。

  那么,从简单的实体操作来看,我们的网构软件结构是网络软件实体加网构软件协同,加网构软件描述。这比简简单单的操作复杂得多,它要求你要感知外界的变化等等。

  那么,从中间件来讲,它的发展趋势围绕着这样的东西,刚才我们说的有几个大的趋势。那么要支持Internet的应用。中间件过去是局域网下面的东西,那么要支持SOA的结构。那么,它要面向适应性的开放环境的变化。同时,刚才张教授也谈到了移动,中间件不能够仅仅是主流的计算,那么还有轻量级的计算,就是面向移动的。是整个的无缝平台,那么支持普适计算,那么传统电信的概念在这里面也要有体现,而且要有相关的反射机制。

  那么,我还得对中间件进行调控,所以我们需要在中间加一个东西,提供我能够随时了解中间件的运行状态,对它进行调控,这就是中间件的反射机制。更进一步的东西,我们就需要自治计算。希望我们系统在运行的同时,我能够自己调整系统的变化。或者是怎么样人软件自己来关系,就是支持中间件,我们要形成这么一个回路,它能够有机制自己实行上面的中间件和下面的软件来形成整个一个信息,来形成自我的调节,变成性能最优。

  那么,这些都是我们需要解决的一些问题。

  前面我讲了两个部分,一个部分是从过去的几个主要的驱动力,第二部分主要是说我们在Internet时代,软件的变化。

  第三部分是我们自己提出的面向构建,集中软件开发化的ABC方法。

  实际上当时在98年的时候,在青鸟工程攻关工作中,从构建青鸟工程基础理论体系的角度,针对构件组装中面临的种种问题,提出了ABC“基于体系结构的构件组装”方法,主要关注体系结构设计阶段。后来,我们考虑了Internet的发展,我们把这个东西换到了整个的生命周期,换到了Internet的环境,所以我们进行组装,所以它整个的改了。所以,做了SA的模型,我们希望为软件的开发提供一种简单的方式。它是以结构为核心、蓝图来指导系统的开发过程,每一个阶段都以结构来指导。

  那么,以分布式的结构技术,就是我们中间件的平台,作为组建的方向通过共的方式来支持映射规则。这里面,我们制定了软件核心模型,那么这每一个过程都是软件的体系结构构成起来了。

  那么,这个从头到尾是三个层次,是领域工程和体系结构设计还有运行支撑。这就构成了我们三个小的阶段。一个是面向特征进行需求建模,一个是进行平台独立的体系设计,还有平台特立的体系结构部署、运行和维护。我们是以这样的步骤来支持我们整个的开发。

  那么,目的是需求规约结构化,支持从需求规约到体系结构设计的映射。这个来源就是电信,这个平台之上,开发商可以做不同的服务,这每一个服务就叫需求建模。那么,呼叫等待,这就是我们开发性的增量。那么,像Internet某种意义上就是提供了基本的电信通信手段,但是不一样,电信是连起来的,而Internet走的是包交换。但是,从概念上是一样的,人们不断地在Internet上开发不同的服务和能力,而这种能力最后怎么连起来?所以,这就是我们为什么采取了软件的原因。

  第二个阶段,我们加强了结构的设计,在概念上把结构设计好,形成一个模型,然后再设计实现一些工具。第三部分,我们做了一个中间件的平台。前面的平台在操作系统上是不可能进行的,如果说编程模式的变化,而不带来运行模式的变化,就是说你编程的时候是中间件,而在运行的时候不是,所以我们自己做了一套符合规范的东西,就是为ABC方法提供运行支撑,就是我们的中间件平台。它基本的思想是从构件和业务实现之间,构成了一个环境,这就是一个连接子管理,那么这个称之为互操作框架,形成一个小的软件。那么,我们通过运营体制的研究,我们开发工具,和部署工具还有部署的管理工具形成的一个特点。

  那么,它本身是构件化的,那么既然要强调构件化,是一个系统的结构好了以后,他就便于修改、便于操作等等,那么我们做了一个内核心那么,当你要替换某一个构件的同时,你不需要把它停止,整个的系统照常运行,它仍然对外提供服务,但是在服务的同时,你把新的构件部署上去了。我们这个部署的环境,是由体系框架来支持部署的。同时,整个的管理也有一个结构来进行统一的管理。

  在我们的界面上,对于这个结构图拖、拉、拽就可以实现对于整个结构图的配置和运行。

  那么,在这个基础之上,我们也做了一些专利。学术上的东西我不说了,那么我们ABC的方法,我们在山东中创公司等多个软件企业得到应用,特别是在2008北京奥运会信息系统建模中发挥了重要的作用。那么我们为北京的奥运提供的支撑,也为奥组委提供了谈判的依据。

  那么我们这个PKUAS被集成到国家863计划“十五”中间件的集成套件,在“四方国件”中并行和世界著名开源软件组织开展合作,与JonAS对等合并。那么PKUAS已在20余个应用系统中得到应用,直接经济效益过1000万。在中低端已经具备替代商用应用服务其的能力。

  当然了,传统软件的东西我们还没有解决,但是我们在这个主流的基础研究之上,我们是最终希望建立一个在Internet环境下的高可信软件系统开发的理论、方法和技术体系。谢谢大家!