单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,软件工程国家重点实验室,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,软件工程国家重点实验室,*,把软件写到云上,提纲,一、云计算时代,二、云计算时代的软件,三、云计算时代的软件开发技术,四、云计算时代给数据挖掘带来的契机,五、总结,山西大学,1,一、云计算时代,山西大学,2,1.1,软件工程的变化,70,年代强调面向过程,80,年代强调面向对象,90,年代强调面向构件,新世纪强调面向领域,现在我们强调面向服务,山西大学,3,1.2,交互方式的变化,从键盘到鼠标到触摸再到语音。软件工程长期以来面向机器,面向语言,面向中间件,面向实现等面向主机的形态。,渐渐人们发现面向主机没有必要,要面向网络,面向需求。使得人们围绕着计算机时代改为面向人转。交互、分享都远远超出了原来的范畴。,山西大学,4,1.3,云生态,我们可以把云看作是天上的云彩,雨是用户的需求,水蒸气是信息。服务就是水蒸发到天上形成云再降雨,这就是云的生态循环。,水库、河流,好比各种各样的云计算中心。比如说客户关系管理中心、数据中心都可以叫做水库,在地面上。,云是共享的,水库可以是私有的。,山西大学,5,1.4,云计算,云计算定义可以有千万种,但是基本都是聚焦的,方向是一致的。,定义:,云计算是这样一种计算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解,“,云,”,中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。,云计算时代的软件是运行在云平台上,并具有在线租赁服务形式、按用量可伸缩性占用资源、按需要个性化定制等特性的软件。,山西大学,6,山西大学,7,1.4,云计算,云计算的使用方式,将计算和存储等资源以服务的方式提供,用户按需使用,按用量付费,8,山西大学,有了云计算,我们可以,无需购买昂贵的软硬件设备,更少的技术维护,按需获取海量的,IT,资源,按用量支付费用,聚焦于业务,1.4,云计算,9,山西大学,1.5,云计算的服务体系,服务多租赁化,平台可伸缩化,资源虚拟化,让人振奋的许多云计算特性主要是靠软件技术实现的,软件技术将在云计算时代开发出令人惊讶的应用系统,1.6,云计算的应用举例,试想,用数码相机照一张相片的时候不需要存储卡,随时拍随时发到云端的相片存储中心,之后如果用户还租用了云端的图片加工工具,就会享用图片加工的服务,你没有回到家里面,你的好照片已经在亲戚家电视机上出现了,而相册存储也被虚拟化了。,山西大学,10,二、云计算时代的软件,山西大学,11,云计算时代软件的新变化,12,山西大学,用户只需要使用软件,而不用自己去运行(软件始终在网上运行着)和管理软件。使用云上的软件只需注册、客户化、应用即可。,用户变成租户,单一实例的软件使用模式变成多租赁的服务模式。,网站从,Web,信息发布平台变成,Web,应用软件运行平台,变成系统托管平台,变成多租户的软件服务平台。,云计算时代软件的新变化,13,山西大学,软件运行在因特网上的共享数据中心上,而不是运行在自有的服务器和计算机上。,应对用量变化的手段,从制作网络镜像手工增删资源,到系统和平台的自动伸缩。,可个性化定制,快速开发,三、云计算时代软件的开发技术,山西大学,14,3.1,主要关注点,15,山西大学,用户界面与程序内核演算功能分离,山西大学,16,云计算的分布并发编程和数据库技术的现状是:提供,API,支持和简单的工具支持,欠缺编程模式的开发框架和方法学体系,适用于较简单的海量数据高效处理,欠缺对复杂关系的数据处理能力。在云平台中,对于开发大规模复杂的企业应用系统而言,是不充分的,这是现状。,3.2,云计算时代的分布并行编程技术,山西大学,17,云计算是在分布式计算、并行计算和网格计算的基础上,经一系列技术的创新和融合而形成的。,目前,云计算平台本身以及云计算平台上的应用软件的开发都使用分布式并行编程技术。,3.2,云计算时代的分布并行编程技术,云计算时代的分布并行编程技术,分布并行数据处理技术,分布式文件系统,分布式数据库,3.2,云计算时代的分布并行编程技术,山西大学,18,GAE(Google App Engine)是针对软件开发者设计的PaaS 级的云计算服务平台,Google 提供超强的计算能力和庞大的存储空间并且代为管理,用户可以直接在Google 的云计算基础设施上运行网络应用程序,。,GAE,平台上的应用程序,上传后即可发布,SaaS,级的软件服务,开发者不需要维护网页服务器。,3.3 Google,云计算软件开发平台,19,山西大学,3.3Google,云计算软件开发平台,GAE,平台提供了,Java,语言和,Python,语言两种开发级的环境,用户通过使用其中的应用服务引擎提供大量的,API,、函数库和网页服务器应用程序,开发类似于,Google,提供的云平台上的应用软件。,开发级用户需要搭建,GAE,软件开发的环境,在此基础上按照规定步骤开发具有个性需求的云计算软件。,山西大学,20,3.4 JAVA,环境的,GAE,平台搭建,山西大学,21,3.5,技术评价,已有的编程技术主要面向特定领域,软件开发平台还待完善和发展,云计算时代的软件工程方法学需要创新,山西大学,22,四、云计算时代给数据挖掘带来的契机,山西大学,23,4.1,前言,目前,云计算的研究与应用尚处于初级阶段,结合云计算的特点以及数据挖掘领域面临的困难,和大家探讨下云计算时代会给数据挖掘领域带来怎么样的推动。,山西大学,24,4.2,数据挖掘瓶颈,数据挖掘就是从数据中发现隐含的规律性内容,提供并挖掘有用的知识。随着互联网的发展,对网络的海量数据分析与挖掘都面临着在计算能力和存储空间方面的瓶颈。,有些很高效的算法在处理大数据的时候会失效。,山西大学,25,4.3,契机,设计与云计算特有的技术(数据存储计算、数据管理技术、编程模式)相融合的数据挖掘算法。,利用云计算的思想(分布式处理、并行处理、网络计算),设计可以处理大数据的数据挖掘算法。,山西大学,26,五、总结,山西大学,27,结束语,软件是,IT,系统的灵魂,软件作为独立产品,针对用户需求采用向不逐步求进方向,让用户安装并拥有软件系统,这样的时代已经成为历史。,人类创造出的软件开发技术不会随着,IT,技术的发展而失去作用或降低重要性。它是我们在新的,IT,环境中开发更大规模、更复杂、更创新的应用软件系统的有力武器。,山西大学,28,结束语,软件开发技术不但会跟随,IT,技术的发展而变化,而且它自己也处在不断的发展过程中。新的软件开发技术将提高人类开发软件系统的能力,云计算为人类使用更大、更复杂的软件系统,提供了可能。,云服务软件系统的开发技术,需要创新、发展和积累。,云服务软件系统的开发技术将提高人类的软件生产能力,满足开发更大规模、更复杂软件系统的社会需求,山西大学,29,山西大学,30,谢谢,