欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    高级软件工程.ppt

    • 资源ID:1694638       资源大小:2.67MB        全文页数:85页
    • 资源格式: PPT        下载积分:25金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要25金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    高级软件工程.ppt

    高级软件工程,云计算与平台即服务,北京大学软件研究所魏豪,主要内容,第一部分 :云计算第二部分:SASE云时代的软件工程第三部分:SASEPSASE的一个具体实现,第一部分 云计算,Just A Joke,一个大学生勤工兼学,办了个路边摊卖东西,因为数学基础好,不带计算器,习惯动作抬头望天,用心算计算钱数。顾客纷纷掏出计算器验证,发现这个大学生从来没出过错,顾客们都大为惊讶,于是他们也抬头望天,惊恐地问到:“莫非这是传说中的云计算?”,什么是云计算,云计算是一个崭新的互联网概念云计算是一次互联网应用的革新云计算代表了互联网发展的趋势云计算综合使用了大量的现有技术云计算体现了IT服务化的思想,云计算是一个崭新的概念,云计算目前还没有得到公认的明确的定义Berkeley的观点:Cloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.,不同组织对云计算的定义,Wiki云计算是一种基于互联网的计算方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。云计算的资源是动态易扩展而且虚拟化的,终端用户不需要了解云中基础设施的细节,只关注自己需要什么样的资源以及如何得到相应的服务。,不同组织对云计算的定义,IBM云计算是一种计算形式,其基础是用公有或私有网络实现服务、软件及处理能力的交付。云计算本身也是一种实现基础设施共享的方式,云服务使用者看到的只有服务的本身,而不用关心相关基础设施的具体实现。,不同组织对云计算的定义,NIST(美国国家标准及技术研究所,信息技术实验室 )云计算是一个模型,这个模型可以方便地按需访问一个可配置的计算资源(例如,网络、服务器、存储设备、应用程序以及服务)的公共集。这些资源可以被迅速提供并发布,同时最小化管理成本或服务提供商的干涉。云模型由五个特征、三个服务模型和四个发布模型组成,如此使以上成为可能。,NIST:云计算的基本特征,按需自助服务。随时随地的网络访问。资源共享。快速的可伸缩性。可度量的服务。,NIST:服务模型和发布模型,服务模型: 软件即服务 (SaaS) 平台即服务 (PaaS) 架构即服务 (IaaS发布模型: 私有云社区云公有云混合云,云计算的关键特征,基于互联网面向服务按需配置和共享资源动态可扩展实现细节透明化,云计算的主要特点,资源高度集中大量的硬件、大量的软件、大量的数据以在线形式向用户提供服务资源利用率高用户使用方便接入简单(本地用最小化的设施,浏览器)数目处于不断变化之中要求服务质量高,云计算是互联网应用的革新,信息技术的四次革新计算机商用化(IBM360系列)个人计算机移动通信和互联网云计算的兴起,云计算代表了互联网发展的趋势,云计算的优势更加低廉的用户设备开销更高的性能更少的维护性能更低的软件成本实时的软件更新强大的运算能力无限的存储空间增强的数据安全方便的共享与协作不依赖于特定的设备,制约云计算发展的因素需要持久的因特网连接低速连接会降低用户体验功能有可能受限获取用户的信任需要长时间的努力,云计算能得到想象中的发展吗,互联网接入方式的多样性提高了云计算网络连接的持久性问题吉比特以太网逐渐成为主流光纤接入的范围不断扩大继3G移动网络之后,基于LTE的4G网络登上了历史舞台街头巷尾开始出现大量的wifi热点智能移动设备的出货量超过了个人计算机,客户端服务器合作模式的发展逐步减少了基于云的服务的功能局限性RIA(Rich Internet Application)大幅度提高了WEB应用的用户体验Flash(Flex)SlivaLightiOS App Store、Goole App StoreHTML5,互联网接入速度的提高保证了云计算的用户体验吉比特以太网:100MB/s3G、3.5G移动网络:1-2MB/s4G LTE移动网络:50MB/sWifi:60MB/s(802.11n),云计算一定能够获得用户的信任我的数据安全吗?安全,存储在云供应商服务器上的数据,就像存在银行里的钱一样安全。云计算能节省我的成本吗?能,IT设施的使用有规模效益。我能够随时随地享受云计算的服务吗?只要你能够随时随地地访问互联网,在这个移动通信高速发展的时代,这似乎并不困难。,云计算综合使用了大量的现有技术,分布式存储和计算规模更大,密度更高,能力更强硬件虚拟化层次更丰富,效率更高资源隔离粒度更细,扩展性更强服务驱动以面向服务的思想为基础,扩展了SaaS,在其基础上发展出了XaaS,云计算体现了IT服务化的思想,云计算的三种基本服务模式IaaS:Infrastructure as a Service,基础设施即服务。服务的提供者将计算机基础设施作为计量服务提供给用户。PaaS:Platform as a Service,平台即服务。服务的提供者将软件应用的开发环境、运行环境等作为计量服务提供给用户。SaaS:Software as a Service,软件即服务。服务的提供者将应用软件部署在服务器上,用户根据需求通过互联网访问应用并获得服务。,基础设施即服务,服务的提供者将IT设基础设施资源的利用作为服务提供给用户,这些资源通常包括处理器资源、存储资源、网络带宽等。用户可以在这些基础设施上部署和运行软件,包括操作系统和应用软件。Amazon的EC2是一个典型的IaaS,通过互联网访问,向用户提供按需计费的计算能力和存储空间。Amazon的AWS是一个新的IaaS,可以直接向用户提供基于VMware的虚拟机,支持windows和Linux等操作系统。,平台即服务,服务的提供者把应用程序的开发和运行环境作为一种服务提供给用户,用户在平台的基础上开发或者部署自己的应用程序,并借助平台的服务器通过互联网交付给应用程序的最终用户。PaaS可以给企业或个人提供研发的中间件平台如数据库、应用服务器等资源。典型的PaaS平台有GAE、Force.com等。,Google App Engine,Google App Engine提供了一个集成的应用开发环境,提供对Java和Python的支持。利用Google提供的开发工具,可以构建易于构建、易于维护、易于扩展的应用。Google App Engine的环境具有以下特征:动态的Web服务。具有查询、分类和实物存储的持久存储能力。自动扩展和自动负载平衡基于Google API的单点登录机制,Force.Com,SalesForce为Force.Com平台提供了一套完整的API和开发工具集,以登录次数为单位进行计费。Force.Com提供了AppExchange机制,AppExchange是一个以Web为基础的应用的目录,提供应用软件的分享、授权和销售接口。,软件即服务,软件即服务是最普遍的一类服务模式。服务的提供者将软件应用部署在服务器上,通过互联网分发给最终用户。用户往往不再为“拥有”软件支付费用,而是为“使用”软件支付费用。服务的提供者所服务的每一个个人或者组织被称之为“租户”,这种配置模式被称为多租户架构。服务的提供者的资源被虚拟地划分为多个部分,使得每个租户都可以利用定制的实例进行工作。对于最终用户来说,使用SaaS无需前期的服务器或者软件许可投资。对于应用的开发者来说,只需要为多个客户端维护一个应用。,典型的SaaS无处不在,第二部分 SASE 云时代的软件工程,软件工程能否从云计算中获益?,本地开发的软件需要部署到云中部署的困难能否直接在云中开发开发工具也是软件将开发工具部署到云里会怎么样代码直接在云里,服务支持的软件开发方法,面向构件的,软件开发方法,服务化的软件,面向行业领域的软件,支持软件开发的工具软件,软件开发方法,发展,面向对象的,软件开发方法,面向过程的,软件开发方法,面向服务的软件开发,面向服务的软件开发方法,服务支持的软件开发方法,服务提供者角色的分化,平台的提供者 工具服务收集与管理,通过使用各种类型的优化技术,为大量的、数目不断变化的用户提供高质量的服务,并提高平台中硬件、数据、能源等各类资源的利用率服务的监测与分析、决策与控制是核心研究内容与进程的调度是传统操作系统的核心相类似审核与部署、挖掘及推荐是软件服务管理平台特有的研究内容与传统操作系统不同,服务运营平台不仅需要掌握资源的动态信息,还要记录服务的访问历史信息(例如,什么时候、被什么用户访问过,效果如何,对系统资源的消耗如何,等等),并掌握关于用户总体甚至特定用户的大量信息,以提供优质的、个性化的服务,服务的开发者 软件开发与演化过程,开发符合云平台规范的工具支持用户直接使用支持程序调用挖掘用户使用习惯完善工具新工具参与云平台的高层管理,服务的消费者组合、构造适合自己的WEB IDE,IDE不再“千人一面”集成不同功能的工具支持完整的软件生命周期管理集成多个类似功能的工具提高服务的质量集成服务化的工具与本地工具合理地利用服务,SASE的优势,服务化带来的一般性优势不用本地安装维护、升级简单编程协同: Bepsin制导:大量习惯用法、利用其它人的编程技巧编译云中收集大量的程序库,工具的配置开发人员比较方便地配置自己的开发环境工具的测试使用过程是最好的测试永远处于测试中!工具的演化服务运行平台可以很方便地为服务化的软件收集到运行相关的信息对于后续维护、升级等演化活动非常有价值,SASE发展面临的挑战,技术挑战:不是简单的工具 web 化!SASE特有的: 新的协作方式更高起点:开发环境与运行环境的接近协同编程:项目成员间更密切的显式合作深度复用:项目之间更丰富的隐式合作远程调试:资源不在本地受限测试: 有喜有忧细致部署:侧重点的转移,SaaS共有的:集中的管理与挖掘静态分析:老技术、新需求动态监测:日趋重要优化控制:好说难做挖掘推荐:潜力无限浏览器图形图像处理能力的局限性FlexHTML5,更高起点:开发平台与运行平台接近,创建项目时得到更多的支持面向领域(数据模型、领域模型)更明确的引导更丰富的代码框架因为IDE掌握运行平台细节传统分发的模式IDE 开发者难以详细地假定应用开发者、系统实际运行的环境,协同编程:项目成员间更密切的合作,项目级并发SVN:同时编辑同一项目中的不同文件任务分配、进展监控文件级并发协同编辑:同时编辑同一文件中的不同方法极限编程:异地结对进行?项目组内更多的实时协作组内成员的活动,深度复用:项目之间的隐式合作,复用编码习惯推荐使用公共类中某些方法推荐联合使用公共类库复用缺陷模式避免常见的不当用法基于编程动作挖掘传统方法收集困难云环境中收集方便,远程调试:设施不在本地,大量的交互够快吗?陌生的平台能多深入?底层改动不了?涉及硬件信息?潜在的风险是否会有残留信息到上线?协同的调试如何共享项目组其他成员的信息?,受限测试:有喜有忧,永远处于测试用户体验错误发送开发者不能过分影响其它服务的运行不能对服务系统进行压力测试避免影响上线后的系统开发环境与部署环境的接近消费者有时需要支付服务费用,有时不能做全程测试?可以通过服务的方式获取待测对象的历史运行数据,以判断待测对象是否与自己的需求相匹配,提供 更完备的代码框架作为 更高的编程起点,促进 文件级并发编程超越 SVN,开发环境与运行环境的接近,项目组成员之间逻辑距离更近,项目之间更多的复用,在线测试信息收集方便,挖掘、推荐 编程风格收集、整理 领域知识,挖掘 缺陷模式提示 演化方向,工具软件 服务化,框架生成,编程调试,静态分析,测试维护,细致部署:侧重点的转移,RightScale: 拓扑结构、调优、规划部署环境与开发环境非常接近比传统本地开发然后部署到服务器上的方法快相近的应用服务可以共享公共库节省存储在哪里运行?物理节点、虚拟机多少个实例?提高服务质量如何动态调整?热升级热迁移,静态分析:老技术、新需求,Safety:避免不必要的资源占用内存泄漏死循环Security安全漏洞保护用户私密数据资源占用:支持合理部署、调度服务预计CPU占用预计内存占用预计磁盘占用预计网络带宽占用,动态监测:日趋重要,资源使用信息服务信息是否存活?运行正常?响应时间?资源占用?访问安全?图形化显示,Qianxiang Wang, Jin Shao, Fang Deng, Yonggang Liu, Min Li, Jun Han, and Hong Mei, An Online Monitoring Approach for Web Service Requirements, IEEE Transactions on Services Computing, No.3(Oct-Dec), 2009.,优化控制:好说难做,修改配置停止启动升级迁移,Jefferey Kephart, David Chess, The Vision of Autonomic Computing, IEEE Computer, Jan. 2003,挖掘推荐:潜力无限,服务、用户、资源自动获取某段时间内最受欢迎的服务访问次数最多成功提供服务的次数最多自动获得用户的使用偏好信息地区、时间编码习惯 自动获得大量的出错信息 为维护、演化提供支持,Guangtai Liang, Ling Wu, Qian Wu, Qianxiang Wang, Tao Xie, Hong Mei, Automatic Construction of an Effective Training Set for Prioritizing Static Analysis Warnings, to appear in International Conference on Automated Software Engineering (ASE) 2010,面向服务特征的运行管理,其它问题,工具服务的形式用户通过 web 页面 使用程序通过 服务接口 调用用户的习惯云与端结合?与本地代码的同步?应用挑战软件开发者对于代码放在云里放心吗?如何让用户平滑过渡过来?云安全:谁为可能出现的问题负责?更多的角色层次:云平台管理者、工具管理者、项目管理者、编程人员找谁处理?,实践现状,你已经在使用大量的云了网络搜索:google search电子邮件:gmail查病毒:自动更新病毒库 云输入:自动更新常用输入你甚至可能已经有过“云开发”的经历了CVS、SVNIssue Tracker,谁在探索,Microsoft IBMOnline IDEMozila BespinZoho CreatorECCO Delft University: AdindaVMWare+Salefore: VMforce中国移动:我们的实践Web IDE:Web IDE软件工程服务平台:SASEP,第三部分:SASEPSASE的一个具体实现,SASEPBy MASS.PKU,SASEP概述,软件的开发、维护离不开工具软件的支持,例如建模工具、编辑工具、静态分析工具、测试工具等。传统上,这些工具都安装在使用者的本地。随着SaaS逐步为人们所接受,许多开发人员正努力让自己的工具支持基于 web 的使用方式。SASEP将大量的服务化软件工具汇聚到一个平台上,为最终的开发人员提供服务化的工具支持。SASEP将软件工程活动作为支持领域,是一个“服务支持的软件工程”(Service Aided Software Engineering)的平台。,SASEP的总体架构,SASEP中对服务的分类,SASEP按照服务之间的调用关系将服务分为原子服务与组合服务。原子服务是指不需要调用其他服务就可以独立运行的服务。目前SASEP运行了很多的原子服务,比如代码静态分析类服务中的PMD,Findbugs等。组合服务不能独立运行,需要通过对一种或多种其他服务进行调用,并结合自身的业务逻辑来实现某种功能的服务。例如,目前 SASEP 上部署的CODAS是SASEP上的一个典型的组合服务实例,它以PMD、Findbugs、JLint等静态分析工具的分析结果为基础,对报出的警告信息进行排序。,管理服务的相关信息开发者信息,部署信息,版本信息,组合信息,分类信息等等实现服务部署的半自动化部署前检查、审核,制定部署策略,部署后的升级监测服务的运行状态实时的发现问题并报警动态为服务分配资源利用云的优势将资源利用最大化收集服务的使用情况发现使用者的使用习惯,为开发者提供反馈意见,SASEP的管理功能,SASEP中的角色,SASEP中的角色、模块和实体,SASEP中服务的管理,对服务的生命周期与活动进行分析原始静态服务调整后的静态服务服务实例建立一个服务管理的框架协助用户部署服务自动寻找符合要求的节点支持用户对服务的管理行为在SASEP中实现框架,SASEP服务管理的行为分析,用户主导的服务管理框架,服务管理系统的体系结构,DS,Agent,DS,Agent,AS,Agent,AS,Agent,WS,Agent,WebServer,DatabseServer,ApplicationServer,Manager,Front end,对Server的管理通过Agent来实施,Manager统一调度,指导Agent进行操作,系统的前端UI层,服务的部署,部署策略服务对于资源的占用情况服务对于资源包与服务的依赖情况服务的部署与升级分发服务依赖的相关文件控制请求的转发配置服务的相关配置分析冲突配置替换配置文件,服务包代码:war文件 => Application Server数据:sql文件 => Database Server执行sql文件,导入数据规范:数据访问部署前数据库信息(如ip等)是未知的强制要求使用Hibernate或JPA框架由部署程序修改hibernate.cfg.xml和persistent.xml等如果直接使用JDBC,必须从database.xml读取数据库信息Sql文件只允许进行表结构的CRUD以及数据记录的CRUD文件访问:通过定制的sdk进行,不允许直接访问(防止危害系统安全)禁止通过代码调用本地命令禁止通过代码开放端口,步骤上传服务包(war+sql):保存在一个统一的仓库中检查服务包(静态分析)规范检查:是否满足规范(数据库、文件、端口等)安全性检查:是否具有恶意代码(死循环、压力测试等)代码依赖完整性检查:是否将使用到的全部第三方lib上传服务特征分析:I/O密集还是计算密集分配Database Server根据负载均衡等策略,选择一个Database server,通知Agent配置数据库(创建用户、创建数据库、导入sql文件)扩展点:数据库集群分配Application Server根据数据库的分配结果,修改数据库配置文件根据负载均衡等策略,选择一个或多个(组成集群)Application Server,通知Agent部署服务代码修改Web Server配置,开放访问服务的URL,服务的部署过程,DS,Agent,DS,Agent,AS,Agent,AS,Agent,WS,Agent,Manager,Uploader,war,sql,sql,war,服务包,Service storage,服务的升级,基于Web的应用更新频繁一直是Beta版升级中断服务不中断服务(如Google):良好的用户体验理想情况:新版本的服务部署好后,立即停止老版本的服务,所有请求都使用新版本服务制约:部署新版本服务需要一定时间;新版本服务部署好后,老版本服务上保存着之前的请求信息(Session等),需要将这些信息复制到新服务上。实现机制比较复杂用户体验不够平滑,次优方案“延迟”升级包含一个过渡期新、老版本服务同时运行老请求使用老服务;新请求使用新服务所有老请求完成后,终止老服务,完成升级技术Application Server的FilterApplication Server的Session监控目前只涉及服务代码的升级扩展点:数据库升级,服务的升级过程,Application Server,Application Server,Web Serverrule:forwad to old,Old version service,Upgrade Filter,S2,Session,S1,Agent,Agent,Manager,request1,request2,New version service,Upgrade,Broweser,Enable,request3,S3,Remove,Config,Web Serverrule:forwad to new,request4,Agent,服务的控制,运行控制提供服务的运行控制界面以监测为基础的服务运行状态控制访问控制提供文件访问接口通过静态分析发现非法代码通过在线监测捕获非法操作,服务的智能调整,Agent对服务的运行情况进行监测根据监测结果进行调整服务不可用:重新部署服务空闲:减少资源服务烦忙:增加资源服务异常:删除服务主要工作服务的监测:参数(CPU/内存/IO等)、策略(频度/统计策略等)服务的调整规则和策略:阈值的设定,挑战平台上的服务来自不同的提供者,大量服务共享同一个运行环境解决方案部署前的静态分析发现潜在的代码缺陷定义安全策略:比如,不允许使用某些类的某些方法运行时的动态监测监视可疑行为和操作,平台的安全性保障,服务的静态分析,对服务的源代码进行全面的静态分析,并给出详细的分析报告,防止有缺陷的代码被部署到平台上,保护服务的公共运行环境代码违禁调用分析安全类缺陷分析代码低效调用分析资源泄漏分析将在后面的课程中由梁广泰学长展开来讲,服务的在线监测,提供多角度的监测视图,掌握系统状态系统管理员视图服务提供者视图用户视图通过监测提高系统的可用性和可靠性监测记录帮助调整部署策略监测系统及时发现系统故障对监测信息的挖掘形成推荐信息帮助用户找到感兴趣的服务帮助服务的提供者改进和演化服务将在后面的课程中由邵津学姐展开来讲,目前平台概况,30多个服务用户自由使用服务注册用户使用服务程序调用服务覆盖软件的各个生命周期阶段分析设计编码测试,目前服务的主要贡献者,北京大学信息学院软件工程研究所王千祥老师、张路老师、张伟老师、赵俊峰老师、课程高级软件工程编译实习Java语言软件学院郁莲老师,目前服务的主要贡献者,北京大学信息学院软件工程研究所王千祥老师、张路老师、张伟老师、赵俊峰老师、课程高级软件工程编译实习Java语言软件学院郁莲老师,Q & A,

    注意事项

    本文(高级软件工程.ppt)为本站会员(创****公)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开