李未:云计算、物联网与群体软件工程(3)
物联网提出来以后,一个非常重要的事就是造成了每一个物联网将来都会成为超大规模的系统,所谓超大规模是什么意思呢?大量的感知和受控设备,最高可以达到千万量级传感器、各种各样摄像头,在执行过程中可以达到含量的计算和通讯进程,达到10个12次方的任务同时进行,而且使用了超量的非结构化的动态数据,比如照片、声音、录像等等,达到什么程度呢?最高达到10的18次方,超量导致什么呢?导致对传统软件工程提出了挑战,传统软件工程是什么样呢?比如咱们现在所有的大的软件公司,首先精英化,在座各位都是优秀的大学毕业生,整个软件的设计是计划性,预先规划所有的需求,然后向下开发,这是计划性,另外整个开发过程是封闭的,按照这种方法,最典型的东西就是咱们经常使用的Windows,按照50年来发展软件工程方法开发的典型产品,功能模块大约6万个,代码6千万行,使用9千名专业人才,历时5年完成,任何一个在网上的物联网甚至不是物联网的信息系统的规模都要比6千万行代码来得大,比如FACEBOOK,按照我们查的结果,每个月要上传60亿张照片,要对60亿张照片进行标注,照片谁写的是基础信息,照片用的摄像技术,照片本身,另外对照片文字解释,要把四方面内容进行全面的标注和处理,核高基项目搞了四面体模型,实验了三年,加工一张照片需要12分钟,如果按照传统的方法,Vista的规模,一万人,需要40年才能完成,按照工作量算是41年,实际上并没有用41年,怎么完成的呢?实际上靠超过量的用户,解决办法是群体模式,FACEBOOK一共有8.5亿用户,如果每个用户都对自己上传的照片自己加以标注的话,一个半小时就把这些事完成了,现在没有做到这点,1亿的用户一天也可以完成,这是一个例子,现在网上对付的办法就是发动群体做这件事,因此人们就想我们的软件开发能不能也可以发动群体来干这件事呢?这就是苹果APP Store和谷歌Android Market,Apple2008年7月开始,把手机上用户程序开放,允许70万人参加,谷歌Android Market估计达到45个手机的应用程序,60万人参加。
软件应用系统的开发可不可以采用群体方式呢?比如美国TopCoder公司,采用竞争性的群体软件开发模式,25万名开发人员加入到开发社区,他们承担了美国在线委托的通讯后端系统的开发,TopCoder采用这个办法把系统分成52个部分,然后由社区招标,传统软件工程需要1年完成的事他们5个月就完成了,而且因为是招标,有群体竞争过程,虽然完成的快,质量比规定的还好,行业要求是每千行不超过6个错误,做完以后经过测试发现没千行只有0.98错误。面对超量软件,群体软件开发能不能从FACEBOOK应用程序到APP Store应用数据到App Store的应用程序和简单的TopCoder服务程序进入云计算模式下物联网软件开发呢?我认为主要解决这么一个问题,第一,超量信息的挑战,系统超大规模的信息系统,像物联网整的这些东西,群体的开发模式是有希望解决超量信息的模式,群体介入以后也会带来安全的问题,所以需要有一个群体的润色工程,这个软件工程做什么事呢?面对超量信息系统使用群体竞争的模式设计和开发安全可靠的物联网,这是群体软件工程的目标,对着超量信息系统来,最终目的是通过群体方式达到安全可靠的软件。理念是什么呢?开发过程从封闭到开放,开发人员从精英走向大众,开发组织从工厂走向社区,在理念上和开源有共同之处,作为软件工程,开发方法从机器工程到社会工程,就像城市建设一样,不能够全部拆毁然后重新再建,都是在原来的基础上不断进化,这也是超大规模系统的特征之一。
开发体制怎样呢?我觉得有两点:群体性、大众化的软件研发和计划性、精英化的软件整体规划和管理相结合,群体竞争机制做什么事呢?对软件资源的形成、组合、测试、维护和服务起着基本的开发、研制的作用。开发原则是什么呢?APP所带来的这些东西,原来使用者和开发者是分离的,现在使用者就是开发者,使用者就是设计者,使用者也是维护者,而且这个观念要一直深入下去,不仅仅只是应用程序,包括下层的开发。软件工程的基本内容:群件的多层体系结构,云计算核心是屏蔽原理,群件组合服务原理,用户身份的多重性原理,开发者竞争选择原理,竞争性测试原理,对抗性的安全原理。我解释一下多重性,为什么以前变成分离的呢?比如Windows7上面就是用户,实际上之间只有两层,变成APP Store以后通过三层解决,把开发环境开放了,任何一个用户都可以使用开发环境自己开发自己需要的应用程序,至少要三层,怎么保证安全呢?既然用户一定要使用开发层,所以邻层是开放的,隔层怎么样?用户不能直接到操作系统里,隔层是屏蔽的,多层结构出来以后屏蔽原理能够保证层层都有群体来开发,多层结构允许邻层开放、隔层封闭,原则上就能够保证安全性。每一层都由三部分组成:一部分是开发环境,一部分是服务的形成,叫组合服务机制,另外一部分是数据库。
组合原理,首先有基本服务,就是函数,基本函数可以调用,然后由基本函数通过顺序、通过分支、通过循环和并发、通信、同步机制就可以组成所有的服务组合,因为等价于可计算性,凡是程序能够做到的七个机制就都可以做到,而且群件多层是多态层次结构,比如一个函数,实数加法和自然数的加法类型都是一样的,但是定义域不同,这块也一样,多层结构以后,服务组合的方式都是一样的,但是基础服务不一样,因为每一层提供的基础服务不一样,而且基础服务部能够打开往下走的。开发者竞争选择原理,既然是群体,我对开源不太懂,核心是每层开发者数量和直接用户数量应该遵从二八定律,20%以上开发者作为群体软件开发必要条件,这样才能形成竞争环境。
TopCoder25万人,活跃的开发者4.8万人,相当于注册人数的20%,来自204个国家,其中中国的选手占了23.6%,一万多人,很多人通过TopCoder参加美国群体软件开发,前途很光明。
(责任编辑:admin)- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。