高级软件工程课件.ppt

上传人(卖家):三亚风情 文档编号:3223126 上传时间:2022-08-07 格式:PPT 页数:119 大小:3.05MB
下载 相关 举报
高级软件工程课件.ppt_第1页
第1页 / 共119页
高级软件工程课件.ppt_第2页
第2页 / 共119页
高级软件工程课件.ppt_第3页
第3页 / 共119页
高级软件工程课件.ppt_第4页
第4页 / 共119页
高级软件工程课件.ppt_第5页
第5页 / 共119页
点击查看更多>>
资源描述

1、高级软件工程高级软件工程 平台即服务平台即服务 2/119高级软件工程高级软件工程l第一部分:动因云计算l第二部分:平台即服务l第三部分:实例 平台即服务平台即服务 3/119高级软件工程高级软件工程 平台即服务平台即服务 4/119高级软件工程高级软件工程云复制和云粘贴云复制和云粘贴小张在实验室下载了电影按下Ctrl+C就回家了,晚上躺在床上按下Ctrl+V用笔记本继续观看,舍友小李惊呆了。小张淡淡的说:“这叫云复制,云粘贴。”平台即服务平台即服务 5/119高级软件工程高级软件工程 平台即服务平台即服务 6/119高级软件工程高级软件工程l云计算是近年来得到广泛关注和快速发展的一种新型的计

2、算方式l云计算借助互联网实现计算资源和信息的按需供给l云计算是一个发展中的概念,其中的很多定义和标准都在激烈的讨论中 平台即服务平台即服务 7/119高级软件工程高级软件工程l云计算的定义还在广泛而激烈的讨论中l不同组织对云计算有着不同的理解l核心观点基本一致,具体实现截然不同的各种云计算产品已经大量出现 平台即服务平台即服务 8/119高级软件工程高级软件工程lCloud Computing refers to both the applications delivered as services over the Internet and the hardware and systems

3、software in the datacenters that provide those services.平台即服务平台即服务 9/119高级软件工程高级软件工程云计算是一种基于互联网的计算方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算。云计算的资源是动态易扩展而且虚拟化的,终端用户不需要了解云中基础设施的细节,只关注自己需要什么样的资源以及如何得到相应的服务。平台即服务平台即服务 10/119高级软件工程高级软件工程云计算是一种计算形式,其基础是用公有或私有网络实现服务、软件及处理能力的交付。云计算本身也是一种实现基础设施共享的方式,云服务使用者看到的只有服务的本

4、身,而不用关心相关基础设施的具体实现。平台即服务平台即服务 11/119高级软件工程高级软件工程云计算是一个模型,这个模型可以方便地按需访问一个可配置的计算资源(例如,网络、服务器、存储设备、应用程序以及服务)的公共集。这些资源可以被迅速提供并发布,同时最小化管理成本或服务提供商的干涉。云模型由五个特征、三个服务模型和四个发布模型组成,如此使以上成为可能。平台即服务平台即服务 12/119高级软件工程高级软件工程l按需自助服务l随时随地的网络访问l资源共享l快速的可伸缩性l可度量的服务 平台即服务平台即服务 13/119高级软件工程高级软件工程服务模型:软件即服务(SaaS)平台即服务(Paa

5、S)架构即服务(IaaS)发布模型:私有云社区云公有云混合云 平台即服务平台即服务 14/119高级软件工程高级软件工程应用层对应SaaS:Google Apps、Salesforce ERP Apps平台层对应PaaS:Google App Engine、F基础设施层对应IaaS:Amazo Ec2、IBM Blue Cloud 平台即服务平台即服务 15/119高级软件工程高级软件工程基于虚拟化技术快速部署资源或获得服务实现动态的、可伸缩的扩展按需求提供资源、按使用量付费通过互联网提供、面向海量信息处理用户可以方便地参与形态灵活,聚散自如减少用户终端的处理负担降低用户对于IT专业知识的依赖

6、 平台即服务平台即服务 16/119高级软件工程高级软件工程l资源高度集中大量的硬件、大量的软件、大量的数据以在线形式向用户提供服务资源利用率高l用户使用方便接入简单(本地用最小化的设施,浏览器)数目处于不断变化之中要求服务质量高 平台即服务平台即服务 17/119高级软件工程高级软件工程 平台即服务平台即服务 18/119高级软件工程高级软件工程l云计算的三种基本服务模式lIaaS:Infrastructure as a Service,基础设施即服务。服务的提供者将计算机基础设施作为计量服务提供给用户。lPaaS:Platform as a Service,平台即服务。服务的提供者将软件应

7、用的开发环境、运行环境等作为计量服务提供给用户。lSaaS:Software as a Service,软件即服务。服务的提供者将应用软件部署在服务器上,用户根据需求通过互联网访问应用并获得服务。平台即服务平台即服务 19/119高级软件工程高级软件工程服务的提供者将IT设基础设施资源的利用作为服务提供给用户,这些资源通常包括处理器资源、存储资源、网络带宽等。用户可以在这些基础设施上部署和运行软件,包括操作系统和应用软件。Amazon的EC2是一个典型的IaaS,通过互联网访问,向用户提供按需计费的计算能力和存储空间。Amazon的AWS是一个新的IaaS,可以直接向用户提供基于VMware的

8、虚拟机,支持windows和Linux等操作系统。平台即服务平台即服务 20/119高级软件工程高级软件工程lIaaSInfrustructure as a Servicel向客户提供处理、存储、网络以及其他基础计算资源,客户可以在上运行任意软件,包括操作系统和应用程序。用户不管理或者控制底层的云基础架构,但是可以控制操作系统、存储、发布应用程序,以及可能限度的控制选择的网络组件(例如,防火墙)。平台即服务平台即服务 21/119高级软件工程高级软件工程l服务的提供者把应用程序的开发和运行环境作为一种服务提供给用户,用户在平台的基础上开发或者部署自己的应用程序,并借助平台的服务器通过互联网交付

9、给应用程序的最终用户。PaaS可以给企业或个人提供研发的中间件平台如数据库、应用服务器等资源。l典型的PaaS平台有GAE、F等。平台即服务平台即服务 22/119高级软件工程高级软件工程lPaaSPlatform as a Servicel客户使用云供应商支持的开发语言和工具,开发出应用程序,发布到云基础架构上。客户不管理或者控制底层的云基础架构,包括网络、服务器、操作系统或者存储设备,但是能控制发布应用程序和可能的应用程序运行环境配置。平台即服务平台即服务 23/119高级软件工程高级软件工程软件即服务是最普遍的一类服务模式。服务的提供者将软件应用部署在服务器上,通过互联网分发给最终用户。

10、用户往往不再为“拥有”软件支付费用,而是为“使用”软件支付费用。服务的提供者所服务的每一个个人或者组织被称之为“租户”,这种配置模式被称为多租户架构。服务的提供者的资源被虚拟地划分为多个部分,使得每个租户都可以利用定制的实例进行工作。对于最终用户来说,使用SaaS无需前期的服务器或者软件许可投资。对于应用的开发者来说,只需要为多个客户端维护一个应用。平台即服务平台即服务 24/119高级软件工程高级软件工程SaaSSoftware as a Service客户所使用的服务商提供的这些应用程序运行在云基础设施上。这些应用程序可以通过各种各样的客户端设备所访问,通过瘦客户端界面像WEB浏览器(例如

11、,基于WEB的电子邮件)。客户不管理或者控制底层的云基础架构,包括网络、服务器、操作系统、存储设备,甚至独立的应用程序机能,在可能异常的情况下,限制用户可配置的应用程序设置。平台即服务平台即服务 25/119高级软件工程高级软件工程l你已经在使用大量的云了网络搜索:google search电子邮件:gmail查病毒:自动更新病毒库 云输入:自动更新常用输入l你甚至可能已经有过“云开发”的经历了CVS、SVNIssue Tracker 平台即服务平台即服务 26/119高级软件工程高级软件工程l平台即服务技术概览l平台即服务的基础设施l平台运行的相关技术l服务支持的相关技术lPaaS上的服务

12、平台即服务平台即服务 27/119高级软件工程高级软件工程l平台即服务发展大事记 平台即服务平台即服务 28/119高级软件工程高级软件工程lPaaS上的角色约定PaaS ProviderPaaS ConsumerService Consumer(SaaS Consumer)平台即服务平台即服务 29/119高级软件工程高级软件工程 平台即服务平台即服务 30/119高级软件工程高级软件工程lPaaS上的服务概念约定应用PaaS-Consumer View应用服务SaaS-Consumer View应用服务实例PaaS-Provider View 平台即服务平台即服务 31/119高级软件工程

13、高级软件工程 平台即服务平台即服务 32/119高级软件工程高级软件工程lPaaS平台可以大体分为以下几个层次l平台的最底层是基础设施层,为平台本身以及部署在平台上的各种服务提供硬件支持l基础设施层的上层是PaaS平台层,PaaS平台的核心功能都在这一层实现,为部署在平台上的服务提供运行时环境的支持。l平台的最高层是应用层,平台自身定制的各种服务,以及服务提供者部署在平台上的各种服务都运行在这一层。平台即服务平台即服务 33/119高级软件工程高级软件工程 平台即服务平台即服务 34/119高级软件工程高级软件工程 Azure Services Platform 平台即服务平台即服务 35/1

14、19高级软件工程高级软件工程35 平台即服务平台即服务 36/119高级软件工程高级软件工程l平台即服务技术概览l平台即服务的基础设施l平台运行的相关技术l服务支持的相关技术lPaaS上的服务 平台即服务平台即服务 37/119高级软件工程高级软件工程l基础设施层是PaaS的硬件基础,为PaaS平台提供硬件和系统软件的支持,这一层又可以细分为以下几个层次:硬件设备层虚拟化层操作系统层 平台即服务平台即服务 38/119高级软件工程高级软件工程l硬件设备层是组成平台的硬件设备通俗地说,就是服务器机群。l硬件设备层的性能是平台性能的重要决定因素CPU内存外存储器大小和读写速率网络带宽l在大多数已经

15、公开的PaaS平台中,硬件设备层对平台上的应用是透明的主要原因是硬件虚拟化层的存在。l硬件设备层的硬件可以是同构的,也可以是异构的机架式服务器PC服务器小型机混搭机群 平台即服务平台即服务 39/119高级软件工程高级软件工程l隐藏硬件细节,实现抽象的硬件平台通俗的说就是用一台高性能计算机模拟多台中低性能的计算机l提高硬件资源的利用率l实现资源的隔离和较细粒度的管理l实现节点的快速复制、迁移l技术不断走向成熟vSphere(VMware)Citrix(Microsoft)XEN(OPEN SOURCE)平台即服务平台即服务 40/119高级软件工程高级软件工程l虚拟化层为平台模拟除了大量逻辑上

16、的计算机l逻辑计算机的运行仍然要借助操作系统l为了支持更多种类的服务,就必须为逻辑计算机安装种类丰富的操作系统WindowsLinux 平台即服务平台即服务 41/119高级软件工程高级软件工程l平台即服务技术概览l平台即服务的基础设施l平台运行的相关技术l服务支持的相关技术lPaaS上的服务 平台即服务平台即服务 42/119高级软件工程高级软件工程l平台运行支持的相关技术主要体现在PaaS的平台层,与服务的支持技术有所重叠。为了便于理解,本节先介绍平台层的基本情况,然后介绍平台运行支持的相关技术。整体分为以下几点:PaaS平台层简介平台交互信息控制平台运行控制平台用户身份认证平台路由Paa

17、S平台的中间件PaaS平台的数据库管理系统 平台即服务平台即服务 43/119高级软件工程高级软件工程l平台层为应用提供运行时环境(系统软件)系统类库中间件数据库l平台层为应用的运行提供基本服务服务的部署服务的负载控制服务信息的分析和推荐服务和平台的安全保障用户的身份认证 平台即服务平台即服务 44/119高级软件工程高级软件工程l统管平台层上各种信息的传递l实现的方式多种多样RPC(远程程序调用)客户端控制服务调用消息总线l信息的种类控制命令资源路径 平台即服务平台即服务 45/119高级软件工程高级软件工程 平台即服务平台即服务 46/119高级软件工程高级软件工程l管理员可以直接使用Wi

18、ndows Azure门户来管理程序门户提供了创建,删除项目,创建,删除,更新部署,等众多功能。此外还提供了Management API,让开发人员自行开发程序来管理他们的部署。今后还会将System Center与Windows Azure集成,从而可以使用同一套工具,同时管理企业内部的服务器,以及云端的资产。平台即服务平台即服务 47/119高级软件工程高级软件工程l屏蔽不同文件系统对应用的影响网盘FTPHadoopl提供平台相关文件的存储空间l提供应用相关文件的存储空间l控制应用的文件操作权限 平台即服务平台即服务 48/119高级软件工程高级软件工程四种存储服务Blob类似文件系统的存

19、储方式Table结构化的存储方式Queue先进先出的存储方式Drive使用标准的NTFS API读写文件 平台即服务平台即服务 49/119高级软件工程高级软件工程沙盒无法向文件系统写入只允许读取与该应用程序一起上传的“资源”文件。无法产生子进程或线程无法打开套接字或直接访问另一主机禁用不适用于 GAE的 java.lang.System 类的功能允许应用程序对自己的类进行完全、无限制的反射访问,无法对不属于自己的任何其他类进行反射,也无法使用 setAccessible()方法来避开这些限制 平台即服务平台即服务 50/119高级软件工程高级软件工程l平台运行参数的设置与调整l平台各模块运行

20、的控制与协调l平台运行管理的控制接口 平台即服务平台即服务 51/119高级软件工程高级软件工程l请求计时器请求处理程序对请求生成和返回响应的时间是有限的,通常约为 30 秒。达到限制时间后,请求处理程序将中断。lJava 运行时环境通过引发com.google.apphosting.api.DeadlineExceededException中断 servlet。l如果请求处理程序不捕获此异常,那么和所有未捕获的异常一样,运行时环境将向客户端返回 HTTP 500 服务器错误。平台即服务平台即服务 52/119高级软件工程高级软件工程负责系统中的所有状态改变保证所有的依赖可用将服务和应用绑定所

21、有影响用户、应用和服务的操作都由cloud controller来进行PushInstancescreate-service当应用被组装好以后,cloud controller负责将应用和一个DEA执行单元连接起来 平台即服务平台即服务 53/119高级软件工程高级软件工程l平台用户的身份认证l平台用户的权限分配部署在平台上的服务的使用者部署在平台上的服务的提供者l平台上服务的用户身份统一认证单点登录oAuth身份认证 平台即服务平台即服务 54/119高级软件工程高级软件工程l隔离平台内外网络环境l实现应用的弹性扩展l实现应用的负载平衡 平台即服务平台即服务 55/119高级软件工程高级软件

22、工程l路由负责接收外界的所有请求,并负责维护外网URL到内部服务实例的映射l除了对应用的请求,对所有的Cloud Foundry的API的请求(一般是由vmc和STS发出的)也会经过路由l路由同时也是一个负载均衡器,负责把请求平均的分发给一个给定应用的所有实例 平台即服务平台即服务 56/119高级软件工程高级软件工程l控制平台上的WEB服务器lWEB服务器的配置与部署l保证服务在运行时环境上的隔离性l两个层面的应用服务器管理平台核心服务所使用的应用服务器部署在平台上的服务所使用的应用服务器l服务管理的基本单位服务的部署服务的迁移服务的监测 平台即服务平台即服务 57/119高级软件工程高级软

23、件工程l控制平台上的数据库管理系统l保证应用在数据库上的隔离性l两个层面的数据库管理平台自身所需的数据库l平台的相关信息l用户的相关信息l服务的相关信息应用所需的数据库l权限分配l冲突配置的分析与排除 平台即服务平台即服务 58/119高级软件工程高级软件工程l部署在云端的关系型数据库引擎l绝大多数的管理工作都由微软为你完成,因此你不用担心任何诸如备份,集群,等管理方面的问题lSQL Server 2008 Management Studio R2(目前为CTP版本)针对SQL Azure也提供了很强大的支持 平台即服务平台即服务 59/119高级软件工程高级软件工程l平台即服务技术概览l平台

24、即服务的基础设施l平台运行的相关技术l服务支持的相关技术lPaaS上的服务 平台即服务平台即服务 60/119高级软件工程高级软件工程lPaaS平台层的重要功能是对服务进行支持,本节主要介绍平台层如何对服务整个生命周期提供支持。本节主要从以下几个方面展开讨论:服务的上传服务的部署服务的状态管理服务的运行时监测 平台即服务平台即服务 61/119高级软件工程高级软件工程l将应用的代码包装入服务器端的文件系统l检查并调整应用代码中与平台冲突的配置l利用静态分析技术检查代码中的缺陷 平台即服务平台即服务 62/119高级软件工程高级软件工程l帮助用户完成服务在平台上的上传客户端及IDE插件(GAE)

25、服务器端命令(Cloud Foundry)基于浏览器的部署(SASEP)l上传的方式一般上传方式增量上传方式支持Maven的上传方式 平台即服务平台即服务 63/119高级软件工程高级软件工程l常见的冲突配置数据库配置的冲突监听端口的冲突文件读写的冲突l调整方法重包装bean修改配置文件修改代码并重新编译 平台即服务平台即服务 64/119高级软件工程高级软件工程对服务的源代码进行全面的静态分析,并给出详细的分析报告,防止有缺陷的代码被部署到平台上,保护服务的公共运行环境代码违禁调用分析安全类缺陷分析代码低效调用分析资源泄漏分析 平台即服务平台即服务 65/119高级软件工程高级软件工程Saf

26、ety:避免不必要的资源占用内存泄漏死循环Security安全漏洞保护用户私密数据资源占用:支持合理部署、调度服务预计CPU占用预计内存占用预计磁盘占用预计网络带宽占用 平台即服务平台即服务 66/119高级软件工程高级软件工程lDEA是指Droplet Execution Agentl一个droplet就是应用的代码和它的依赖库所打成的一个包,并且要添加一个start和stop命令l系统会维护一个待命的DEA的池,也就是一个虚拟机级别的应用容器lDEA同时支持单租户和多租户的操作(即每个应用一个DEA虚拟机,或是n个应用一个DEA虚拟机)lDEA还提供了一个安全且受限的操作系统环境来运行应用

27、所在的应用服务器和应用的代码 平台即服务平台即服务 67/119高级软件工程高级软件工程l服务的部署关注初次部署和重部署两个过程l服务的初次部署服务的初次部署是服务的初始化过程初次部署对应的是服务的试用期l服务的重部署服务的重部署是服务部署策略的优化过程重部署对应的是服务的正式运行期 平台即服务平台即服务 68/119高级软件工程高级软件工程l服务初次部署的目的是观察服务的运行状况l通过服务运行时的监测来获取信息服务有无运行时的缺陷和漏洞服务的资源需求类型服务负载在时间上的分布服务之间的相互调用关系l为服务在平台上的正式运行做准备 平台即服务平台即服务 69/119高级软件工程高级软件工程l服

28、务的重部署是为服务寻找符合条件的节点l实现服务的搭配部署资源需求类型的搭配lCPU占用较高的服务和IO占用较高的服务搭配部署资源需求时间的搭配lOA类服务和休闲信息服务搭配部署交互服务的搭配l有相互调用关系的服务考虑网络拓扑上的就近搭配部署 平台即服务平台即服务 70/119高级软件工程高级软件工程l实现服务的自动部署自动为服务寻找节点,部署并使之运行l实现服务的部署策略的优化调整部署策略,充分利用服务器的各种资源应用服务实例数目的确定l实现服务部署策略的智能调整根据服务器的实时负载情况和资源消耗情况,随时调整部署使得资源利用率总是最高,用户体验总是最好热升级和热迁移技术相近的应用服务可以共享

29、公共库节省存储 平台即服务平台即服务 71/119高级软件工程高级软件工程l服务的生命周期包括试用阶段和正式运行阶段l服务试用阶段:起始:服务的上传后的初次部署结束:服务被平台拒绝或被平台重部署l服务的正式运行阶段:起始:服务被平台重部署结束:服务下线 平台即服务平台即服务 72/119高级软件工程高级软件工程l服务在试用过程中的有运行和就绪两个状态服务的就绪状态l应用服务器关闭服务的运行状态l应用服务器打开 平台即服务平台即服务 73/119高级软件工程高级软件工程 平台即服务平台即服务 74/119高级软件工程高级软件工程l服务在正式运行的过程中有就绪、运行、挂起三个状态服务的就绪状态l应

30、用服务器关闭,未加入到平台路由转发表服务的运行状态l应用服务器打开,加入平台路由转发表服务的挂起状态l应用服务器打开,未加入到平台路由转发表 平台即服务平台即服务 75/119高级软件工程高级软件工程 平台即服务平台即服务 76/119高级软件工程高级软件工程 平台即服务平台即服务 77/119高级软件工程高级软件工程l提供多角度的监测视图,掌握系统状态系统管理员视图服务提供者视图用户视图l通过监测提高系统的可用性和可靠性监测记录帮助调整部署策略监测系统及时发现系统故障l对监测信息的挖掘形成推荐信息帮助用户找到感兴趣的服务帮助服务的提供者改进和演化服务 平台即服务平台即服务 78/119高级软

31、件工程高级软件工程l资源使用信息l服务信息是否存活?运行正常?响应时间?资源占用?访问安全?l图形化显示 平台即服务平台即服务 79/119高级软件工程高级软件工程健康管理器与云控制器和DEA紧密的配合,来保证所有的应用都保持高的可用性如果一个应用崩溃了,健康管理器会及时的发现,并安排一个替代的实例如果健康管理器发现快速、重复的应用崩溃,它就会宣布应用进入“flapping”状态,并且停止恢复这个应用 平台即服务平台即服务 80/119高级软件工程高级软件工程l平台即服务技术概览l平台即服务的基础设施l平台运行的相关技术l服务支持的相关技术lPaaS上的服务 平台即服务平台即服务 81/119

32、高级软件工程高级软件工程l平台层PaaS上的服务都运行在PaaS的平台层,可以大体分为平台定制服务和PaaS Consumer部署的服务两大类l平台定制服务由平台提供的,可供其他服务调用的基本服务lPaaS Consumer部署的服务PaaS Consumer开发并部署到平台上的服务可能调用了平台定制服务,甚至其他PaaS Consumer的既有服务 平台即服务平台即服务 82/119高级软件工程高级软件工程l为了防止用户无意或恶意对平台进行攻击或对资源进行滥用,平台应当对服务的资源占用进行约束。l资源的限制和配额的设定应当合理,不能过大,否则会失去限制意义;也不能太小,使得很多服务无法正常运

33、行。要保证满足绝大多数服务的正常要求。l平台一般要提供一些临时性的方案使得无恶意的轻微资源超额能够得到满足。并且用户能够方便地拓展资源配额。平台即服务平台即服务 83/119高级软件工程高级软件工程l文件系统的约束上传的文件的大小、数量l运算的约束任务队列的执行时间、等待任务的数量l命名空间的约束通配符、非法字符、保留字l数据库的约束访问权限l网络连接的约束最大连接数、连接池容量、连接保持时间 平台即服务平台即服务 84/119高级软件工程高级软件工程l文件系统的约束一般通过操作系统的文件操作权限控制来实现l运算的约束一般通过操作系统的进程管理接口来强行中止超限进程l一般通过命名空间的约束一般

34、通过静态分析和异步交互检查来进行限制l数据库的约束一般通过数据库用户权限的分配,借助数据库自身的权限控制机制来实现l网络连接的约束一般通过应用服务器的配置来实现 平台即服务平台即服务 85/119高级软件工程高级软件工程l目录或文件名不允许含有以下字符:*?|,目录或文件名的开始与结束也不允许有空格。l上传单个文件大小不超过20M。l单个目录下的文件个数不能超过2000个。l每个应用代码总大小不超过100M。l单个版本代码总大小不超过50M。l只允许存在10个以内的版本,并且版本号必须为正整数。平台即服务平台即服务 86/119高级软件工程高级软件工程SAE:connect_timeout 5

35、秒send_timeout 15秒read_timeout 20秒抓取文件大小8MB禁用头:Content-Length、Host、Vary、Via、X-Forwarded-For、FetchUrl、AccessKey、TimeStamp、Signature等GAE:UrlFetch API Calls:65700calls/day&3,000 calls/minUrlFetch Data Sent:22 MB/minUrlFetch Data Received:22 MB/min 平台即服务平台即服务 87/119高级软件工程高级软件工程Memcache定时任务App Engine Cron

36、 服务允许在指定时间执行或按指定间隔执行定期计划任务:cron job网址抓取应用程序可使用 App Engine 网址抓取服务分别向端口 80 和 443 上的其他主机发出 HTTP 和 HTTPS 请求Email用户认证图形地图等等 平台即服务平台即服务 88/119高级软件工程高级软件工程lService BusService Bus可以被用于将本地的服务暴露给Internetl解决:内网服务没有对外地址所以无法被直接访问lAppFabric在云中,权限管理往往要比在企业内部来的困难。这是因为你无法直接使用诸如活动目录之类的产品来统一管理你的程序的访问控制。l其他将现今Windows S

37、erver AppFabric中的功能移植到Windows Azure platform AppFabric中来:如分布式缓存等。平台即服务平台即服务 89/119高级软件工程高级软件工程 平台即服务平台即服务 90/119高级软件工程高级软件工程l目前,已经有大量的优秀的PaaS平台涌现出来,包括:Google App EngineMicrosoft Windows AzureVmware Cloud Foundary还有Salesforce,Amazon,IBM等等l国内的软件企业也进行了大量的尝试:Sina App Engine阿里云以及腾讯开放平台、人人开放平台等,也具有一些PaaS的

38、特征l我们北大MAAS组也搭建了属于自己的PaaS平台SASEP 平台即服务平台即服务 91/119高级软件工程高级软件工程lGoogle App Engine提供了一个集成的应用开发环境,提供对Java和Python的支持。利用Google提供的开发工具,可以构建易于构建、易于维护、易于扩展的应用。lGoogle App Engine的环境具有以下特征:动态的Web服务。具有查询、分类和实物存储的持久存储能力。自动扩展和自动负载平衡基于Google API的单点登录机制 平台即服务平台即服务 92/119高级软件工程高级软件工程l作为一个部署服务的平台用户可以在Windows Azure上部

39、署自行开发的服务l作为一个软件分发平台用户可以使用Windows Azure来分发自己的软件l作为一个一般的分布式计算平台Fabric提供了极其强大的负载平衡的支持.Windows Azure支持多种开发技术。平台即服务平台即服务 93/119高级软件工程高级软件工程lCloud Foundry是Vmware支持的一项开源的PaaS计划。lCloud Foundry使用各种开源开发框架和中介软件,来提供PaaS的服务。l开发者可Cloud Foundary来建设自己的SaaS的服务。l另一方面,因为Cloud Foundry采用开源的网站平台技术,所以开发者部署在Cloud Foundry上的

40、应用程序也可以任意转移到其他平台上。lCloud Foundry可以支持多种开发框架,如Spring for Java、Ruby on Rails、Node.js等。lCloud Foundry平台提供MySQL、Redis和MongoDB等数据库服务。平台即服务平台即服务 94/119高级软件工程高级软件工程lSina App Engine(简称SAE)是新浪研发中心于2009年正式推出第一个Alpha版本的国内首个公有云计算平台lSAE选择以PHP作为首选的支持语言。lSAE的Web开发者可以在Linux/Mac/Windows上通过SDK或者Web版在线SDK进行开发、部署、调试。lSA

41、E支持团队开发时的成员协作,不同的角色将对代码、项目拥有不同的权限。lSAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储Storage、分布式数据库集群RDC、分布式缓存MemcacheX、分布式定时服务Cron、分布式异步队列TaskQueue、邮件服务Mail等。lSAE采用“所付即所用,所付仅所用”的计费理念,通过日志和统计中心精确的计算每个应用的资源消耗(包括CPU、内存、磁盘等)。平台即服务平台即服务 95/119高级软件工程高级软件工程lAli Cloud Engine(阿里云引擎,简称ACE),是阿里云(阿里巴巴的子公司)推出的一款基于弹性计算平台的web应用

42、运行环境,能够提供应用的线性伸缩、动态扩容以及多种相关服务。lACE为PHP和NodeJS两种开发语言提供支持,后续会支持更多的开发语言。lACE提供了session、storage、memcache、cron等多种服务,让开发者可以更多的关注在业务开发上,降低开发者的开发成本,其整体架构的高可靠性。lACE提供了模板功能,可以有效的衔接开发者和站长,让开发者的成果可以更加有效的传播,同时站长也有更加灵活丰富的应用可以运营。平台即服务平台即服务 96/119高级软件工程高级软件工程软件的开发、维护离不开工具软件的支持,例如建模工具、编辑工具、静态分析工具、测试工具等。传统上,这些工具都安装在使

43、用者的本地。随着SaaS逐步为人们所接受,许多开发人员正努力让自己的工具支持基于 web 的使用方式。SASEP将大量的服务化软件工具汇聚到一个平台上,为最终的开发人员提供服务化的工具支持。SASEP将软件工程活动作为支持领域,是一个“服务支持的软件工程”(Service Aided Software Engineering)的平台。平台即服务平台即服务 97/119高级软件工程高级软件工程 平台即服务平台即服务 98/119高级软件工程高级软件工程 平台即服务平台即服务 99/119高级软件工程高级软件工程SASEP按照服务之间的调用关系将服务分为原子服务与组合服务。原子服务是指不需要调用其

44、他服务就可以独立运行的服务。目前SASEP运行了很多的原子服务,比如代码静态分析类服务中的PMD,Findbugs等。组合服务不能独立运行,需要通过对一种或多种其他服务进行调用,并结合自身的业务逻辑来实现某种功能的服务。例如,目前 SASEP 上部署的CODAS是SASEP上的一个典型的组合服务实例,它以PMD、Findbugs、JLint等静态分析工具的分析结果为基础,对报出的警告信息进行排序。平台即服务平台即服务 100/119高级软件工程高级软件工程管理服务的相关信息开发者信息,部署信息,版本信息,组合信息,分类信息等等实现服务部署的半自动化部署前检查、审核,制定部署策略,部署后的升级监

45、测服务的运行状态实时的发现问题并报警动态为服务分配资源利用云的优势将资源利用最大化收集服务的使用情况发现使用者的使用习惯,为开发者提供反馈意见 平台即服务平台即服务 101/119高级软件工程高级软件工程 平台即服务平台即服务 102/119高级软件工程高级软件工程 平台即服务平台即服务 103/119高级软件工程高级软件工程对服务的生命周期与活动进行分析原始静态服务调整后的静态服务服务实例建立一个服务管理的框架协助用户部署服务自动寻找符合要求的节点支持用户对服务的管理行为在SASEP中实现框架 平台即服务平台即服务 104/119高级软件工程高级软件工程 平台即服务平台即服务 105/119

46、高级软件工程高级软件工程 平台即服务平台即服务 106/119高级软件工程高级软件工程DSAgentDSAgentASAgentASAgentWSAgentWebServerDatabseServerApplicationServerManagerFront end对对Server的管理通的管理通过过Agent来实施来实施Manager统一调度,统一调度,指导指导Agent进行操作进行操作系统的前端系统的前端UI层层 平台即服务平台即服务 107/119高级软件工程高级软件工程l部署策略服务对于资源的占用情况服务对于资源包与服务的依赖情况l服务的部署与升级分发服务依赖的相关文件控制请求的转发配

47、置l服务的相关配置分析冲突配置替换配置文件 平台即服务平台即服务 108/119高级软件工程高级软件工程服务包代码:war文件=Application Server数据:sql文件=Database Server执行sql文件,导入数据规范:数据访问 部署前数据库信息(如ip等)是未知的 强制要求使用Hibernate或JPA框架 由部署程序修改hibernate.cfg.xml和persistent.xml等 如果直接使用JDBC,必须从database.xml读取数据库信息 Sql文件只允许进行表结构的CRUD以及数据记录的CRUD文件访问:通过定制的sdk进行,不允许直接访问(防止危害系

48、统安全)禁止通过代码调用本地命令禁止通过代码开放端口 平台即服务平台即服务 109/119高级软件工程高级软件工程步骤上传服务包(war+sql):保存在一个统一的仓库中检查服务包(静态分析)规范检查:是否满足规范(数据库、文件、端口等)安全性检查:是否具有恶意代码(死循环、压力测试等)代码依赖完整性检查:是否将使用到的全部第三方lib上传服务特征分析:I/O密集还是计算密集分配Database Server根据负载均衡等策略,选择一个Database server,通知Agent配置数据库(创建用户、创建数据库、导入sql文件)扩展点:数据库集群分配Application Server根据数

49、据库的分配结果,修改数据库配置文件根据负载均衡等策略,选择一个或多个(组成集群)Application Server,通知Agent部署服务代码修改Web Server配置,开放访问服务的URL 平台即服务平台即服务 110/119高级软件工程高级软件工程DSAgentDSAgentASAgentASAgentWSAgentManagerUploaderwarsqlsqlwar服务包服务包Service storageService storage 平台即服务平台即服务 111/119高级软件工程高级软件工程l基于Web的应用更新频繁一直是Beta版升级l中断服务l不中断服务(如Google)

50、:良好的用户体验 理想情况:新版本的服务部署好后,立即停止老版本的服务,所有请求都使用新版本服务 制约:部署新版本服务需要一定时间;新版本服务部署好后,老版本服务上保存着之前的请求信息(Session等),需要将这些信息复制到新服务上。实现机制比较复杂 用户体验不够平滑 平台即服务平台即服务 112/119高级软件工程高级软件工程l次优方案“延迟”升级l包含一个过渡期 新、老版本服务同时运行 老请求使用老服务;新请求使用新服务l所有老请求完成后,终止老服务,完成升级l技术 Application Server的Filter Application Server的Session监控目前只涉及服务

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(高级软件工程课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|