您现在的位置是:首页 > IT基础架构 > 计算存储 >
云计算为物联网提供解决方案
2013-09-16 15:40:23作者:中国科学院院士 李未来源:
摘要目前,在智能交通、智能电网、现代物流、医疗健康等方面,都需要使用物联网技术,物联网实际上是未来信息社会的一个基础设施。...
1999年,MIT教授针对使用RFID电子标签的物流网首先提出了物联网的概念。物联网是面向特定领域和行业的、拥有超量数据的复杂信息应用系统。在智能交通、智能电网、现代物流、医疗健康等方面,都需要使用物联网技术,物联网实际上是未来信息社会的一个基础设施。我们的目标是实现工业信息化,工业信息化的标志性成果就是在战略行业里都实现物联网。这也是我们发展新兴产业建设的切入点。突破关键技术,拥有自主知识产权是今后信息领域的主要任务。
云计算环境下软件的现状
云计算是一种基于互联网的大众参与的计算模式,计算资源包括计算能力、存储能力、交互能力等,是动态可伸缩的。云计算的实质是对用户屏蔽有关计算、存储、通信和控制的底层操作细节,目的是为用户提供简单易用、安全可靠的服务。
比如说,云计算提出一个以服务为纲的体系结构,第一个就是软件即服务,终端用户无需关心使用哪些特定应用软件和资源就可以直接得到所需服务。平台即服务就是应用软件无需关心操作系统以及中间件、底层模块的具体操作和运行,直接获得所需要的功能。平台无需关心硬件设备的细节,直接得到所要求的计算和处理资源,这就是基础设施及服务。
云计算为各种物联网、特别是软件系统的实现提供解决方案,云计算的理念是服务用户,其技术核心是实现最核心的内容以及屏蔽下层的内容。
云计算使用户的操作变得简单,需要什么直接获取就可以,但是获取的整个过程是十分复杂的,这些需要软件工作者付出巨大的劳动,特别是对于基于云计算的社会服务系统,比如各种互联网,还有面向行业的超量信息等。这些系统和过去软件的不同之处,主要表现在三方面,即其具有“超”“变”“散”的特点。
首先是“超”,由云计算方法实现的物联网成千上万,有上亿人使用,所以都是超大规模的系统,比如大量感知受控设备,可以同时在网上进行海量信息和通信进程,每秒大约有10的12次方兆级的进程在进行。
其次是“变”,这些系统不论是智能电网还是智能交通,都是在不断的持续演化和部署,有什么变化都是在硬性中进行改进。现在,一个版本可以用很长时间。这和过去换了版本系统就不能再用相比,节省了很多成本。
第三是“散”,即物联网涉及各种各样的部门、领域,具有多产业和多地域性。比如美国的CYBER系统,覆盖很多学科领域,服务于数十万科研和教育人员高度分布的环境。这种要求量对于过去传统的软件工程是一个挑战。
传统软件工程的特点
传统软件工程有三个特点,第一是精英化,众多著名软件公司的工作人员都毕业于优秀大学,至少是硕士毕业,这里的精英不是指天才,而是指经过系统的有效训练、受过高等教育的人。
第二是计划性,以前,我们要做一个软件都是预先规划需求,需求可以提的很清楚,把需求不断展开,完善细节,就是开发。整个开发过程非常封闭,虽然有时候我们会增加一些测试,但总体上来说并不开放。
第三是传统软件工程面对超量信息系统会遇到麻烦。世界上最好的视窗电脑操作系统是Windows,Windows Vista的功能模块有6千万个,代码是6千万行,共有9千名熟练的专业人士开发,微软骨干耗时5年完成的Vista,是在传统软件工程框架之下完成的杰作。
我们现在讨论的云计算社会服务系统的规模远超过Windows 6千万行的代码量。比如, Facebook每个月大概有60亿张照片上传。如果把每张照片和个人信息情况关联起来,用四面体全信息标注和处理方法,即把一张照片用的快门、技术角度、文字描述以及这张照片的信息四方面信息都标注连接起来,一张照片需要12分钟。如果一万人开发做这个事,需要41年才完成,Facebook如何解决这个问题?它采用群体模式,Facebook有8.5亿用户,这些用户每人负责自己的照片或者朋友的照片进行标注,一个半小时就可以完成,这是面对超量信息的新的解决办法,从软件工程角度来看是重要的内容。以前是精英化团体, 一万人精英开发一个Windows Vista这样的系统,现在在处理大量的超量信息时,8亿人同时操作就可以解决超量问题。
第二个例子是APP Store和安卓Market,这些应用程序有多少人使用?APP Store有70万人,4年内完成了60万应用,这是过去从来没有过的现象。这个例子就是一个用群体开发模式解决超大规模建设人力不足问题的很有说服力的例子。但是目前,APP Store技术还处于群体开发初级阶段。
第三个例子是TOP coder,据统计,共有25万名开发人员加入到其开发社区。美国在线委托Top coder开发通信后端系统。按照传统软件工程,这个系统要一年才能完成,他们用群体开发模式,有效组织后,5个月就完成了,而且质量很高。最终产品完全达到了客户要求,并且程序中每一千行代码只有0.98漏 洞,低于业内的要求。
群体软件工程
群体软件工程是一种新的软件工程,即面对超量信息系统采用群体竞争的研发方式产生安全可靠的软件的新的工程。
群体软件工程的核心理论是开发过程从封闭走向开放,开发人员从精英走向大众,开发组织从工厂走向社区,开发方法从机械工程转向社会。
开发体制应注重群体性、大众化的软件研发和计划性、精英化的软件整体规划和管理相结合,群体性和大众化解决软件超量开发问题,这是群体性竞争机制对软件资源形成,组合、测试、维护生产的基础性作用。精英是计划性和精英化整体规划和管理,精英化的管理机制对软件的构架、组织法则有宏观的决策作用。
群体软件工程的开发原则是什么?原来使用者和开发者是分离的,现在使用者就是开发者,就是设计者,同时也是维护者,而且这个观念要一直深入下去,不仅仅只是应用程序,还包括下层的开发。
基本内容至少包括以下几方面。首先,整个的体系结构必须是多层体系结构。这是因为要保证群体参加,又要保证安全。传统软件系统实际就两层,一层是操作系统本身,另外一层是用户,用户拿了操作系统之后,按照各种规定来操作,进入里面修改某部分不可能的。APP Store实现了群体参加, 第一步在应用层面把群体积极性调动起来,实际从软件结构看变成三层,最下面是操作系统,第二层是开发环境,第三层是用户,用户怎么样?用户和操作系统中间增加一层,整个开发环境是对用户开放的。从理论上说三层实际作用是什么? 临层开放隔层屏蔽,临层用户直接面对安卓开发环境,但是隔层操作系统不是每个人可以开放。这样至少应用程序层面动员了千千万万应用程序爱好者,调动起群众的积极性,同时操作系统这块儿还能够保证安全。
推而广之,如果想把群体软件群体开发深入到整个云计算开发里,我们就应该把整个超量信息的云计算系统分成众多层次,使每一个层次里面都遵从临层开放,隔层封闭,这样安全性问题就解决了。每层三样东西,第一个是函数库,第二个是开发环境,第三方面是数据库,都对上层临层开放,对上上层封闭。
群件怎么样?每层都有基本群件和组合群件,组合群件是为了云计算里组合服务,组合服务其实就是一些基本程序,怎么组合这个层次里的服务?首先基本的服务是由下一层提供的,比如函数库。基本组合通过顺序语句和循环语句组合,通过发行接收并行语句通信。每一个层次都是如此,只是不同的层次里基本群件由其下一层提供。
每一个层次都是这样,所以是多态层次。什么是多态?比如说我们在运用函数的时候,整形除和实数除法类似,但是态不同,一个实数一个整数,这是多态。什么叫群件基本达标?每层开发者数量和该层群件数量都遵从二八定律,这才达到了群体参与开发的要求。
(以上内容系根据李未院士的公开演讲整理而成)
(本文不涉密)
责任编辑:
上一篇:云计算为物联网提供解决方案