中科院院士李未
第四届中国云计算大会进入第二天,中科院院士李未从深入剖析物联网和云计算的本质,从软件工程的角度提出了群体软件工程的理念,并对比了传统软件工程和群体软件工程的方方面面,最终提出了群体软件工程的开发原则。
以下为文字实录:
我今天要谈的题目是云计算和群体软件工程。最近这几年大家都非常关心云计算和物联网,我也想谈谈我的一孔之见,和大家一起讨论。
什么是物联网呢?因为谈了很多,我简单讲一讲。99年MIT的教授在使用电子标签的时候首先提出的。物联网是一个什么东西大家都知道,是面向特定领域和行业的,拥有超量数据的复杂信息应用系统。我不详细讲了。
物联网在各个方面,比如智能交通,智能电网,现代物流,医疗健康,信息删除方面,这都是今后要使用的。所以物联网是未来信息社会的基础设施,我们的目标是搞工业信息化,工业信息化的标志性成果是在这些振兴行业里头都实现物联网,也是我们战略性新兴产业的切入点。所以逃跑关键技术,拥有自主知识产权是今后信息领域的主要任务。
物联网怎么实现呢?我认为云计算提出一个实现方法。李德毅院士上午大会讲了,什么是云计算?云计算是一种基于互联网的大众参与的计算模式,它的计算资源包括计算能力、存储能力、交互能力等等,是动态、可伸缩、被虚拟化的,而且以服务的方式提供的。我认为云计算的实质在哪里呢?实质是对用户屏蔽有关计算、存储、通信和控制的底层操作细节。目的是为用户提供简单易用、安全可靠、需用即得的服务。用户变得很方便了,为什么用户变得很方便了呢?因为所有实现过程全部对用户屏蔽了,想要什么取就可以了,这是云计算的基本思想。
比如说大家都了解的事,云计算提出了一个以服务为纲的体系结构。第一个是软件即服务,终端用户无需关心使用了哪些特定应用软件和资源,直接得到所需的服务。平台即服务,下一层的应用软件无需关心操作系统以及中间件的底层模块的具体操作和运行,直接获得所需要的功能。什么是基础设施即服务呢?平台无需关心硬件设备的细节,直接得到所要求的计算和处理的资源,这是最著名的三个S——SaaS、PaaS、IaaS。
所以云计算为物联网的实现,特别是软件系统的实现提供了解决方案,所以它的作用我认为是一种解决方案,理念是服务用户,怎么样实现它最核心的是要屏蔽最下层的那些东西。
下面我重点谈一谈所谓群体软件工程。
云计算使得用户变得很简单了,想要什么直接获取就行了,但是获取的整个过程是十分复杂的,那么这个部分怎么样才能完成呢?这是咱们在软件界所有的人们都要付出巨大的劳动来满足这些用户们、使用者们的需求,特别是对于基于云计算的这些社会服务系统。比如各种物联网和面向行业的超量信息,它和我们过去所做的软件有些不同,主要在三个方面:具有超、变、散的特点。
首先是超,所有的物联网和由云计算这个方法实现的这套物联网,成千上万上亿的人来使用,所以都是一些超大规模的系统。比如说大量感知受控的设备,这些感知设备要十的七次方,千万级。同时在网上进行海量信息和通讯进程大约要10的12次方,兆级每秒,这么多的进程在进行。第三个是超量的非结构化动态数据,10的18次方。第一是超大规模。
第二是这些系统,不论是智能电网、智能交通,甚至军事信息栅格这些东西,都在不间断、持续演化和部署。所以有什么改进都是在运行当中的改进,和过去一个软件版本可以用很长时间不同。这是变。
第三是散,任何物联网都涉及到多部门、多领域、多产业、多地域。比如美国的CyberInfrastructure系统,是覆盖全美范围,包括很多学科领域,涉及几十所高校和研究院。这种要求和这种量对软件工程,对系统的,过去传统的软件工程提出了一个挑战,咱们大家想想,传统的软件工程到现在为止我们有什么特点呢?我认为至少有三点:一是精英化,不论是各种软件公司,在里面工作的人都毕业于优秀的大学,至少硕士毕业的优等生。我说的精英不是天才,是经过系统有效训练的人,高等教育的人,精英化。二是计划性,要做一个软件预先规划需求,而且需求能够提得很清楚,然后把需求不断的展开,做到细节。开发的时候是自底向下的开发,自底向下的测试,整个活动是自闭的,不对外开放的。有的时候我们增加一些什么Alpha测试、Beta测试,但是总体是不开放的,这是咱们传统软件工程的来法。面对超量的信息系统这就遇到麻烦。
传统软件工程与超量的信息系统的对比
举一个例子。世界上最好的软件公司是Microsoft。WindowsVista的功能模块约6万个,代码6000万行,9千熟练的专业人士,微软的这些骨干们,耗时五年完成的Vista,这个量应该说在传统的软件工程的框架之下的杰作,这个量级。但是咱们现在讨论的,各位专家今天上午或者以前会议上讨论的云计算,社会服务系统,它的规模远远超过Windows的代码量。举一个例子,比如说Facebook每个月都有60亿张照片上传,这是他们自己说的。如果把每张照片都要和个人的信息等情况关联起来,我们国家重点实验室提出一个四面体全信息的标注和处理方法。经过这三年的试验,要把一张照片四方面的信息标注连接起来,一张照片大概需要12分钟。如果按照一万人开发来做这个事的话,需要41年才完成,但是咱用了吗?没有。Facebook是怎么解决的信息如此超量的问题呢?采用的群体模式。
Facebook有8.5亿个用户,这些用户都对自己上传的照片加以标注,或者至少一半以上加以标注,假设8.5亿个人,每个人负责自己的照片,或者一个朋友的照片,一个半小时就可以完成。这就是面对着超量信息以后新的解决办法,从软件工程角度这是一个重要的东西。以前我说是精英化的团体,一万个精英开发Windows,或者Vista这样的系统,现在在处理大量的、超量的,18次方信息的情况下,8亿人同时上就可以解决这个超量的问题,这是第一个例子。
第二个例子,咱们天天都在得意的APPStore和AndroidMarket,08年7月开始,大家都有手机,都使用这些应用程序,前后有多少人参加?70万人,WindowsVista有1万人,现在70万人,至少是70万人次,在四年之内完成了60万个应用,这是咱们过去从来没有过的现象。过去为什么软件贵?就是因为这个,现在都是精英经过专门研究出来,现在我们达到至少是应用软件这个行业,应用程序我们已经达到了极大的丰富,70万。另外一个是45万。这个例子说明什么呢?用群体开发模式解决超大规模建设人力不足问题的另外一个很有说服力的例子。但是目前APPStore的技术只是群体开发的一个初级阶段,而且只支持互相独立的应用开发程序。这是第二个例子。