云计算时代的软件开发技术及其应用.ppt
《云计算时代的软件开发技术及其应用.ppt》由会员分享,可在线阅读,更多相关《云计算时代的软件开发技术及其应用.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、云计算时代的软件开发技术云计算时代的软件开发技术云计算时代的软件开发技术云计算时代的软件开发技术及其应用及其应用及其应用及其应用软件工程国家重点实验室软件工程国家重点实验室(武汉大学武汉大学)武汉大学计算机学院武汉大学计算机学院应时应时2010-05-22提纲提纲一、云计算时代的软件一、云计算时代的软件二、云计算时代软件的开发技术二、云计算时代软件的开发技术三、云计算时代软件开发技术的创新与发展三、云计算时代软件开发技术的创新与发展四、我们的工作四、我们的工作五、总结五、总结软件工程国家重点实验室2一、云计算时代的软件一、云计算时代的软件软件工程国家重点实验室31.1云计算云计算vWikipe
2、diaWikipedia上的定义:上的定义:云计算是这样一种计云计算是这样一种计算方式,计算资源是动态易扩展而且虚拟化算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解的,往往通过互联网提供。用户不需要了解“云云”中基础设施的细节,不必具有相应的中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。专业知识,也无需直接进行控制。v云计算时代的软件是运行在云平台上,并具云计算时代的软件是运行在云平台上,并具有在线租赁服务形式、按用量可伸缩性占用有在线租赁服务形式、按用量可伸缩性占用资源、按需要个性化定制等特性的软件。资源、按需要个性化定制等特性的软件。软件工程国
3、家重点实验室4软件工程国家重点实验室51.11.1云计算云计算云计算云计算v云计算的使用方式云计算的使用方式将计算和存储等资将计算和存储等资源以服务的方式提源以服务的方式提供,用户按需使用,供,用户按需使用,按用量付费按用量付费6软件工程国家重点实验室v有了云计算,我们可以有了云计算,我们可以无需购买昂贵的软硬件设备无需购买昂贵的软硬件设备更少的技术维护更少的技术维护按需获取海量的按需获取海量的IT资源资源按用量支付费用按用量支付费用聚焦于业务聚焦于业务图片来源:IBM公司1.11.1云计算云计算云计算云计算7软件工程国家重点实验室图片来源:IBM公司1.21.2云计算的服务体系云计算的服务体
4、系云计算的服务体系云计算的服务体系服务多租赁化服务多租赁化平台可伸缩化平台可伸缩化资源虚拟化资源虚拟化让人振奋的许多云计算特性主要是靠软件技术实现的让人振奋的许多云计算特性主要是靠软件技术实现的软件技术将在云计算时代开发出令人惊讶的应用系统软件技术将在云计算时代开发出令人惊讶的应用系统8软件工程国家重点实验室平台即服务平台即服务Platform as a ServiceHigh VolumeTransactionsSoftware as a Service服服务器器网网络存存储Metering监控控计费服服务云云开开发云云企企业云云多租多租赁安全安全中中间件件协作作业务服服务CRM/ERP/H
5、R定制服定制服务数据中心数据中心虚虚拟化,化,动态供供应服服务管理管理J2EEOn-ramps服服务封装封装Ajax开开发On-rampsOn-ramps开开发工具工具与其他云的互操作与其他云的互操作软件即服务软件即服务基础设施即服务基础设施即服务图片来源:IBM公司1.21.2云计算的服务体系云计算的服务体系云计算的服务体系云计算的服务体系1.3云软件的实例云软件的实例9软件工程国家重点实验室vGoole提供的云软件服务提供的云软件服务搜索引擎搜索引擎GmailGoogleDocsGooglePicasaWeb1.3云软件的实例云软件的实例10软件工程国家重点实验室vS于于1999年创新地以
6、在线租年创新地以在线租赁的模式,提供按需定制的客户关系管理的赁的模式,提供按需定制的客户关系管理的软件服务软件服务功能的增删,用户界面的个性化等功能的增删,用户界面的个性化等用户只需支付租用费,就可以使用用户只需支付租用费,就可以使用CRM服务,服务,包括普通的联系人管理,产品目录到订单管理,包括普通的联系人管理,产品目录到订单管理,机会管理,销售管理等服务。机会管理,销售管理等服务。提供一个平台,使得客户无需花费大量资金和人提供一个平台,使得客户无需花费大量资金和人力而拥有自己的软件,所有的软件和数据都储存力而拥有自己的软件,所有的软件和数据都储存在在平台上。平台上。1.3云软件的实例云软件
7、的实例11软件工程国家重点实验室v据据Gartner预计,到预计,到2010年企业年企业30%的软件的软件应用将通过服务来提供。应用将通过服务来提供。1.4云计算时代软件的新变化云计算时代软件的新变化12软件工程国家重点实验室v用户只需要使用软件,而不用自己去运行用户只需要使用软件,而不用自己去运行(软件始终在网上运行着)和管理软件。使(软件始终在网上运行着)和管理软件。使用云上的软件只需注册、客户化、应用即可。用云上的软件只需注册、客户化、应用即可。v用户变成租户,单一实例的软件使用模式变用户变成租户,单一实例的软件使用模式变成多租赁的服务模式成多租赁的服务模式v网站从网站从Web信息发布平
8、台变成信息发布平台变成Web应用软件应用软件运行平台,变成系统托管平台,变成多租户运行平台,变成系统托管平台,变成多租户的软件服务平台的软件服务平台1.4云计算时代软件的新变化云计算时代软件的新变化13软件工程国家重点实验室v软件运行在因特网上的共享数据中心上,而软件运行在因特网上的共享数据中心上,而不是运行在自有的服务器和计算机上。不是运行在自有的服务器和计算机上。v应对用量变化的手段,从制作网络镜像手工应对用量变化的手段,从制作网络镜像手工增删资源,到系统和平台的自动伸缩。增删资源,到系统和平台的自动伸缩。v可个性化定制可个性化定制v快速开发快速开发1.5本报告关注的主题本报告关注的主题1
9、4软件工程国家重点实验室v云计算时代软件需要新的开发技术云计算时代软件需要新的开发技术v软件工程师也需要使用云计算时代的软件开软件工程师也需要使用云计算时代的软件开发技术去提高开发能力发技术去提高开发能力v开发作为服务开发作为服务15软件工程国家重点实验室v在云计算平台中,如何开发、运行和维护那些为在云计算平台中,如何开发、运行和维护那些为(最终)用户提供云服务的软件系统(包括系统(最终)用户提供云服务的软件系统(包括系统软件、工具软件和应用软件等各类软件)软件、工具软件和应用软件等各类软件)1.51.5本报告关注的主题本报告关注的主题本报告关注的主题本报告关注的主题关注云计算模式下的关注云计
10、算模式下的软件开发与设计技术软件开发与设计技术软件工程国家重点实验室图片来源:美国加州大学圣巴巴拉分校二、云计算时代软件的开发技术二、云计算时代软件的开发技术软件工程国家重点实验室16软件工程国家重点实验室17v云计算是在分布式计算、并行计算和网格云计算是在分布式计算、并行计算和网格计算的基础上,经一系列技术的创新和融计算的基础上,经一系列技术的创新和融合而形成的。合而形成的。v目前,云计算平台本身以及云计算平台上目前,云计算平台本身以及云计算平台上的应用软件的开发都使用分布式并行编程的应用软件的开发都使用分布式并行编程技术。技术。2.1 2.1 2.1 2.1 云计算时代的分布并行编程技术云
11、计算时代的分布并行编程技术云计算时代的分布并行编程技术云计算时代的分布并行编程技术v云计算时代的分布并行编程技术云计算时代的分布并行编程技术分布并行数据处理技术分布并行数据处理技术GoogleMap/ReduceHadoopMap/Reduce分布式文件系统分布式文件系统GoogleFileSystemHadoopDistributedFileSystem分布式数据库分布式数据库GoogleBigTableHadoopHBase2.1 2.1 2.1 2.1 云计算时代的分布并行编程技术云计算时代的分布并行编程技术云计算时代的分布并行编程技术云计算时代的分布并行编程技术2.2 2.2 分布并行
12、数据处理分布并行数据处理19软件工程国家重点实验室vMap/Reduce用于大规模数据并行处理用于大规模数据并行处理数据量大(超过数据量大(超过1TB)在成百上千个在成百上千个CPU上并行处理上并行处理用户只需实现下面接口用户只需实现下面接口map (in_key,in_value)-(out_key,intermediate_value)listreduce(out_key,intermediate_value list)-out_value list2.2 2.2 分布并行数据处理分布并行数据处理20软件工程国家重点实验室vMap/Reduce架构架构图片来源:美国华盛顿大学课件2.2 2
13、.2 分布并行数据处理分布并行数据处理MapReduce实现原理实现原理图片来源:Google Research Publication2.3 2.3 分布式文件系统分布式文件系统软件工程国家重点实验室22vGoogleFileSystem(GFS)v需求:在廉价、相对不可靠的计算机上对巨量数据需求:在廉价、相对不可靠的计算机上对巨量数据进行冗余存储。进行冗余存储。为什么不用现有的文件系统?为什么不用现有的文件系统?-Google面对特殊的挑战面对特殊的挑战文件较大,每个都在文件较大,每个都在100M以上,通常为几个以上,通常为几个GB文件通常需要频繁的追加文件通常需要频繁的追加用流方式读取用
14、流方式读取高吞吐量高吞吐量低延迟低延迟针对上述问题,针对上述问题,GFS在文件系统性能和可伸缩性在文件系统性能和可伸缩性方面进行了优化设计。方面进行了优化设计。vGFS的设计理念的设计理念文件用块存储文件用块存储每个块固定为每个块固定为64MB通过冗余解决可靠性问题通过冗余解决可靠性问题每个块同时拷贝在每个块同时拷贝在3个块服务器上个块服务器上主服务器负责协调访问和保存元数据主服务器负责协调访问和保存元数据简单化的集中管理简单化的集中管理定制化的定制化的API无数据缓存无数据缓存较大文件块和流式读取使得缓存效果不佳较大文件块和流式读取使得缓存效果不佳软件工程国家重点实验室232.3 2.3 2
15、.3 2.3 分布式文件系统分布式文件系统分布式文件系统分布式文件系统GFS架构架构2.3 2.3 2.3 2.3 分布式文件系统分布式文件系统分布式文件系统分布式文件系统图片来源:Google Research PublicationvGFS集群集群一个一个GFS集群有一个主服务器和多个块服务器集群有一个主服务器和多个块服务器文件被分割成固定尺寸的块。文件被分割成固定尺寸的块。块服务器把块作为块服务器把块作为linux文件保存在本地硬盘上,文件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。并根据指定的块句柄和字节范围来读写块数据。主服务器管理文件系统所有的元数据,包括名字空间、
16、主服务器管理文件系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所访问控制信息和文件到块的映射信息,以及块当前所在的位置。在的位置。客户端与主服务器交互,处理元数据客户端与主服务器交互,处理元数据客户端与块服务器交互,存取数据本身客户端与块服务器交互,存取数据本身2.3 2.3 2.3 2.3 分布式文件系统分布式文件系统分布式文件系统分布式文件系统2.4 2.4 分布式数据库系统分布式数据库系统vGoogleBigTable为了处理为了处理Google内部大量的格式化以及半格式化数据内部大量的格式化以及半格式化数据而构建的大规模分布式数据存储系统而构建的大规模分布
17、式数据存储系统v特点特点面向大规模处理、容错性强的自我管理系统,拥有面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和级的内存和PB级的存储能力,每秒可以处理数百万的级的存储能力,每秒可以处理数百万的读写操作读写操作能够保存记录的不同时段的版本能够保存记录的不同时段的版本构建于构建于GFS和和Map/Reduce基础之上基础之上软件工程国家重点实验室26vBigTable的设计理念的设计理念面向网页数据的发布、搜索和浏览等特定处理的需要,面向网页数据的发布、搜索和浏览等特定处理的需要,简化数据管理系统的设计,并提高性能简化数据管理系统的设计,并提高性能不支持关联不支持关联不支持不支持S
18、QL查询查询简化数据的一致性管理简化数据的一致性管理网页数据的管理对一致性要求不高网页数据的管理对一致性要求不高简化事务管理简化事务管理网页数据的处理(搜索、发布)对事务管理要求不高网页数据的处理(搜索、发布)对事务管理要求不高面向海量数据管理要求面向海量数据管理要求设计分割和合并管理机制(基于元数据)设计分割和合并管理机制(基于元数据)设计自动伸缩功能(根据数据量调整资源用量)设计自动伸缩功能(根据数据量调整资源用量)软件工程国家重点实验室272.4 2.4 2.4 2.4 分布式数据库系统分布式数据库系统分布式数据库系统分布式数据库系统vBigTable的实现的实现GFS为表文件、元数据和
19、日志提供存储服务为表文件、元数据和日志提供存储服务Chubby提供分布式并行处理功能提供分布式并行处理功能一个一个Table按照行被分割为多个按照行被分割为多个tablet每一个每一个tablet在物理层被存为在物理层被存为SSTable文件文件通过维护通过维护keydiskblock索引,索引,SSTable文件管理系统提供文件管理系统提供keyvalue的索引功能的索引功能2.4 2.4 2.4 2.4 分布式数据库系统分布式数据库系统分布式数据库系统分布式数据库系统vBigTable架构架构软件工程国家重点实验室292.4 2.4 2.4 2.4 分布式数据库系统分布式数据库系统分布式数
20、据库系统分布式数据库系统图片来源:Google Research Publication软件工程国家重点实验室2.5 2.5 Google App EnginevGoogleAppEngine提供运行和开发的基础平台,允许开发人员编提供运行和开发的基础平台,允许开发人员编写网络应用,上传至写网络应用,上传至AppEngine部署运行部署运行支持支持Java和和Python两种开发语言两种开发语言AppEngine应用程序易于构建和维护,并可应用程序易于构建和维护,并可根据访问量和数据存储需要,进行伸缩根据访问量和数据存储需要,进行伸缩。将应用程序隔离在它自己的安全可靠环境中,将应用程序隔离在它
21、自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理该环境与网络服务器的硬件、操作系统和物理位置无关位置无关软件工程国家重点实验室v开发开发GAE应用的方法应用的方法利用利用AppEngineSDK进行进行开发开发本地创建Web应用项目本地编译Web应用项目上传应用程序到Google AppEngine2.5 2.5 2.5 2.5 Google App EngineGoogle App Engine2.6Salesforce FvF的云计算平台的云计算平台v基于基于Web的随需应变的企业级软件开发和运行平台的随需应变的企业级软件开发和运行平台v开发的软件能在开发的软件能在F平台上运
22、行平台上运行v由一组集成的工具和应用程序服务组成由一组集成的工具和应用程序服务组成图片来源:vF云计算平台整体概览云计算平台整体概览Native ERP ConnectorsNative Desktop ConnectorsIntegration MiddlewareMash-ups from AppExchangeDeveloper Toolkits2.62.6Salesforce Salesforce FF图片来源:v元数据驱动的平台:使元数据驱动的平台:使用元数据,定义数据模用元数据,定义数据模型、对象、窗体、工作型、对象、窗体、工作流等,在运行时动态生流等,在运行时动态生成租户的应用程
23、序成租户的应用程序2.62.6Salesforce Salesforce FFApex代代码多租多租赁虚虚拟机机元数据元数据可可视化化设计v应用程序开发模式应用程序开发模式声明式开发声明式开发页面拖拽式设计页面拖拽式设计集成开发环境集成开发环境APIMetadataAPIWebServicesAPI2.62.6Salesforce Salesforce FF图片来源:vAPEX语言语言开发人员声明式开发开发人员声明式开发APEX程序程序编译后的编译后的APEX程序作为元数据存储在数据库中程序作为元数据存储在数据库中F平台解释并控制平台解释并控制APEX代码的运行代码的运行2.62.6Sales
24、force Salesforce FF图片来源:vAPEX语言语言vApex为第一个所需应变的、多租户编程语言和平台为第一个所需应变的、多租户编程语言和平台vApex是一种是一种Java式的语言,可以在式的语言,可以在S的的服务上运行。用户能够使用这种语言创建客户组件、客服务上运行。用户能够使用这种语言创建客户组件、客户化和修改现有的户化和修改现有的S代码、创建触发器和代码、创建触发器和编写程序。编写程序。vApex平台还包括一个应用程序编程接口以访问和管理复平台还包括一个应用程序编程接口以访问和管理复杂的数据关系和杂的数据关系和Ajax工具包。工具包。vApex平台中的实时消息和整合工具允许
25、其它应用程序获平台中的实时消息和整合工具允许其它应用程序获得得S中的业务事件。中的业务事件。2.62.6Salesforce Salesforce FF图片来源:vFAppExchange企业软件的企业软件的在线在线“超市超市”,用户可以自行购买,用户可以自行购买那些可以即选即用的功能模块,然后在其用户那些可以即选即用的功能模块,然后在其用户名下的名下的S上运行,其中的大部上运行,其中的大部分模块是由第三方开发并自主提供的。分模块是由第三方开发并自主提供的。提供一个开发人员与用户共享软件和数据的社提供一个开发人员与用户共享软件和数据的社区区2.62.6Salesforce Salesforce
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 时代 软件 开发 技术 及其 应用
限制150内