软件平台及开发技术0717课件.ppt

上传人(卖家):ziliao2023 文档编号:5672593 上传时间:2023-05-01 格式:PPT 页数:81 大小:3.84MB
下载 相关 举报
软件平台及开发技术0717课件.ppt_第1页
第1页 / 共81页
软件平台及开发技术0717课件.ppt_第2页
第2页 / 共81页
软件平台及开发技术0717课件.ppt_第3页
第3页 / 共81页
软件平台及开发技术0717课件.ppt_第4页
第4页 / 共81页
软件平台及开发技术0717课件.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、LOGO软件平台及开发技术软件平台及开发技术南京理工大学计算机学院南京理工大学计算机学院徐徐 建建报告内容报告内容软件平台与开发技术概述软件平台与开发技术概述1软件开发核心技术软件开发核心技术2 云计算模式的软件与开发技术云计算模式的软件与开发技术3一、软件平台与开发技术概述一、软件平台与开发技术概述3基本概念基本概念v程序与软件l程序为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合l程序是人们求解问题的逻辑思维活动的代码化描述l软件是各种程序和有关资料的总称l软件=程序+数据+文档 l软件即服务软件平台软件平台v软件平台是指用来构建或支撑应用软件的独立软件系统,是开发与运行应用

2、软件的基础。v软件平台的思想源于分层理论,本质就是将复杂的软件系统分层;操作系统平台操作系统平台 (WindowsWindows,UnixUnix,LinuxLinux)基础构架平台基础构架平台(WebsphereWebsphere,WebLogicWebLogic)业务基础平台业务基础平台 (NetweaverNetweaver,UAPUAP)软件平台之基础构架平台v一种为复杂应用软件系统提供软件开发、部署、一种为复杂应用软件系统提供软件开发、部署、通信、安全和管理等通用技术基础架构的软件平通信、安全和管理等通用技术基础架构的软件平台台 ;降低了复杂应用软件系统与异构分布的操作系统、硬件平台

3、、通讯协议之间的依赖性;屏蔽了与操作系统平台交互、系统之间的通信、安全管理等技术细节 提高开发效率vIBMIBM的的WebSphereWebSphere,BEABEA的的WebLogicWebLogic v中国科学院软件研究所的网驰信息化基础软件核中国科学院软件研究所的网驰信息化基础软件核心平台心平台 OnceAsOnceAs软件平台之业务基础平台软件平台之业务基础平台v指以业务导向和驱动的、可快速构建应用软件的指以业务导向和驱动的、可快速构建应用软件的软件平台。软件平台。解决了管理软件的业务描述以及与操作系统、软件基础构架平台之间的交互管理问题;屏蔽技术细节,使开发人员能够集中全力关注产品研

4、发中的业务与管理问题;提高产品研发效率。vSAPSAP的的NetWeaverNetWeaver、BAANBAAN公司的公司的DEM DEM v思维加速的思维加速的TIBTIB、东软金算盘的、东软金算盘的VPVP、用友的、用友的UAPUAP、金蝶的金蝶的BOS BOS 软件开发技术软件开发技术v包括软件开发方法学、工具和环境支持,其主体包括软件开发方法学、工具和环境支持,其主体内容是:软件开发方法学内容是:软件开发方法学 。软件开发模型 软件开发方法 软件开发平台与工具 系统分析与建模技术 软件构架技术 软件设计模式 软件项目管理 软件测试 软件质量保证二、软件开发核心技术二、软件开发核心技术9

5、(1)软件架构技术)软件架构技术vC/S架构架构vB/S架构架构v分布式多层应用程序架构分布式多层应用程序架构v云计算(分布式并行计算)架构云计算(分布式并行计算)架构C/S架构架构v C/S模型从本质上讲是一种软件结构模型从本质上讲是一种软件结构,三种逻辑成分:三种逻辑成分:表示逻辑 业务处理逻辑 数据管理逻辑 (1)(2)(3)C/S架构的特征架构的特征v 计算和处理分布在服务器和客户机之间,数据管理集中在计算和处理分布在服务器和客户机之间,数据管理集中在服务器端。软件驻留在服务器和客户机。服务器端。软件驻留在服务器和客户机。v 分布数据分布数据。出于安全性和负载平衡的考虑,数据库可以分。

6、出于安全性和负载平衡的考虑,数据库可以分布在多个数据库服务器上。布在多个数据库服务器上。v 分布过程分布过程。不同的过程(事务处理、数据库连接等)可以。不同的过程(事务处理、数据库连接等)可以在不同服务器上进行。在不同服务器上进行。v 客户为中心客户为中心。把需要在客户端执行的程序和定制的程序放。把需要在客户端执行的程序和定制的程序放在客户端,以使客户快速得到响应。把对数据进行处理的在客户端,以使客户快速得到响应。把对数据进行处理的过程放在数据库服务器端,以加快数据处理速度。过程放在数据库服务器端,以加快数据处理速度。v 异构硬件和软件异构硬件和软件。在。在C/S体系结构中很容易加入多层结体系

7、结构中很容易加入多层结构,屏蔽不同的硬件和软件。例如,加入应用服务器可以构,屏蔽不同的硬件和软件。例如,加入应用服务器可以基于不同的操作系统和计算机主机,同样客户端安装的中基于不同的操作系统和计算机主机,同样客户端安装的中间件可以基于不同的客户端系统,例如,间件可以基于不同的客户端系统,例如,Linux,Windows。C/S架构的技术目标架构的技术目标v 集成处理资源集成处理资源。把客户和服务器端的处理能力集成。把客户和服务器端的处理能力集成。v 降低开发资源要求降低开发资源要求。在客户端和服务器端运行的程序分别。在客户端和服务器端运行的程序分别存放,使得程序调试方便,开发比较简单,所需资源

8、也减存放,使得程序调试方便,开发比较简单,所需资源也减少。少。v 降低硬件和软件的要求降低硬件和软件的要求。在。在 C/S系统中,客户机既有部系统中,客户机既有部分处理能力,价格相对较低,可以降低系统软硬件成本。分处理能力,价格相对较低,可以降低系统软硬件成本。v 降低系统维护成本降低系统维护成本。在服务器端的处理和计算程序只需在。在服务器端的处理和计算程序只需在服务器端维护,与客户机无关,而客户端程序比较简单,服务器端维护,与客户机无关,而客户端程序比较简单,所以系统维护较方便,成本较低。所以系统维护较方便,成本较低。v 可扩充能力强可扩充能力强。C/S应用容易扩充,只要应用容易扩充,只要C

9、/S联入网络联入网络即可。即可。C/S系统构成系统构成v C/S结构发展经历了两个阶段:两层结构和三(多)层结构发展经历了两个阶段:两层结构和三(多)层结构。结构。C/S结构的局限性结构的局限性v C/S结构的计算能力过于分散,网络中服务器和客户机结构的计算能力过于分散,网络中服务器和客户机的数目正发生的数目正发生“细胞细胞”分裂,使得系统的管理费用以几何级分裂,使得系统的管理费用以几何级数的方式增长。数的方式增长。v C/S结构中数据库信息的使用只限于局域网的范围内,结构中数据库信息的使用只限于局域网的范围内,无法利用无法利用Internet的网络资源。的网络资源。v 在在C/S结构中,无论

10、多小的企业都必须安装自己的服务结构中,无论多小的企业都必须安装自己的服务器,而服务器和服务器软件的管理和维护都是非常复杂的器,而服务器和服务器软件的管理和维护都是非常复杂的工作,需要专门人员负责,小企业往往无力购买高性能的工作,需要专门人员负责,小企业往往无力购买高性能的服务器和聘用专门人员。因此,服务器和聘用专门人员。因此,C/S结构不利于小企业结构不利于小企业计算机应用的发展。计算机应用的发展。B/S架构架构v表示逻辑、业务处理逻辑和数据处理逻辑集中。表示逻辑、业务处理逻辑和数据处理逻辑集中。B/S架构的特点架构的特点 B/S系统采用系统采用B/W/D结构结构。即客户端只安装一个浏览。即客

11、户端只安装一个浏览器(器(Browser)。中间层是)。中间层是Web服务器。再根据需要服务器。再根据需要安装小支持库,如安装小支持库,如Java 或或VB的的DDL以处理特殊应用。以处理特殊应用。B/S结构简化了客户端结构简化了客户端。客户机上只需安装通用的浏览。客户机上只需安装通用的浏览器软件。节省客户机的硬盘空间与内存器软件。节省客户机的硬盘空间与内存.简化了系统的开发和维护简化了系统的开发和维护。系统的开发者只需把所有的。系统的开发者只需把所有的功能都实现在功能都实现在Web服务器上,并就不同的功能为各个组服务器上,并就不同的功能为各个组别的用户设置权限就可以了。相对于别的用户设置权限

12、就可以了。相对于C/S模式,模式,B/S的的维护具有更大的灵活性。如果一个公司有上千台客户机,维护具有更大的灵活性。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将显得更加重要。并且分布在不同的地点,那么便于维护将显得更加重要。用户操作更简单用户操作更简单。客户端只用浏览器。不用培训即可使。客户端只用浏览器。不用培训即可使用。用。B/S 和和C/S的技术比较的技术比较vB/S架构的软件将全面取代架构的软件将全面取代C/S架构架构的软件的软件 数据安全性 数据一致性 数据实时性 数据溯源性 服务响应及时性 网络应用限制分布式多层应用程序架构分布式多层应用程序架构JEE架构架构架构

13、的纵向视图架构的纵向视图云计算架构云计算架构(2)设计模式)设计模式v设计模式是一套被反复使用、多数人知晓设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总的、经过分类编目的、代码设计经验的总结。结。v设计模式有助于对框架结构的理解,成熟设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式的框架通常使用了多种设计模式 v经典的设计模式经典的设计模式 MVC模式(structs)FrontController模式 Facede模式 应用设计模式的架构应用设计模式的架构Operational ManagementSecurityCommunicationUI Co

14、mponentsUI Process ComponentsData Access ComponentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesMVC设计模式设计模式MVC模式的运行机制模式的运行机制ViewControllerrequestDatadochoose viewReturn resultUser inputModelRenderData AccessAccess应用设计模式的架构应用设计模式的架构Ope

15、rational ManagementSecurityCommunicationUI ComponentsUI Process ComponentsData Access ComponentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesFront Controller设计模式设计模式v 前端控制器设计模式,前端控制器设计模式,Front Controller 通过让单个通过让单个控制器负责传输所有请求。控制器负责传输所

16、有请求。v 控制器本身通常分为以下两部分实现:控制器本身通常分为以下两部分实现:处理程序,负责检索参数和选择命令 命令层次结构,命令代表具体的操作,命令对象完成操作之后,将由命令选择使用哪个视图来显示页面。Front Controller模式执行机制模式执行机制v 优点:优点:集中化控制。集中化控制。线程安全线程安全 可配置性可配置性v 缺点:可能产生性能瓶颈可能产生性能瓶颈应用设计模式的架构应用设计模式的架构Operational ManagementSecurityCommunicationUI ComponentsUI Process ComponentsData Access Comp

17、onentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesFacade模式模式v 为子系统中的一组接口提供一个一致的界面,为子系统中的一组接口提供一个一致的界面,Facade模模式定义了一个高层接口,这个接口使得这一子系统更加容式定义了一个高层接口,这个接口使得这一子系统更加容易使用易使用。v 应用案例应用案例Facade模式模式Facade(3)软件复用)软件复用基于构件的软件开发基于构件的软件开发v 构件面向软件体系

18、架构的可复用软件模块构件面向软件体系架构的可复用软件模块。v 构件技术是基于构件技术是基于OO技术上的更高级的抽象。它把底层的技术上的更高级的抽象。它把底层的对象集合打成包,组成功能对象集合打成包,组成功能“插件插件”。基于构件技术的软件。基于构件技术的软件生产就是把已存在的构件组装(集成、复用)到当前软件生产就是把已存在的构件组装(集成、复用)到当前软件系统的框架结构中,从而生产出新的软件产品。系统的框架结构中,从而生产出新的软件产品。v 从抽象程度来看,从抽象程度来看,OO技术技术已达到了类级重用(以类为封已达到了类级重用(以类为封装单位);而装单位);而构件技术构件技术是对一组类的组合进

19、行封装,可以是对一组类的组合进行封装,可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现。显然,构件技术将抽象级、架构级到系统级都可能实现。显然,构件技术将抽象的程度提到了一个更高的层次。的程度提到了一个更高的层次。实现构件技术的必备条件实现构件技术的必备条件v 有标准软件体系结构,保证构件间通信协议统一,实现同有标准软件体系结构,保证构件间通信协议统一,实现同步和异步操作控制,突破本地空间限制,充分利用网络环步和

20、异步操作控制,突破本地空间限制,充分利用网络环境。境。v 构件有标准接口,保证系统可分解成多个功能独立的单元,构件有标准接口,保证系统可分解成多个功能独立的单元,用构件组装而成。用构件组装而成。v 构件独立于编程语言。构件独立于编程语言。v 构件提供版本兼容,来实现应用系统的扩展和更新。构件提供版本兼容,来实现应用系统的扩展和更新。构件设计构件设计v 构件依赖于平台环境,所以设计时有特殊要求:构件依赖于平台环境,所以设计时有特殊要求:以接口为核心,使用开放标准以接口为核心,使用开放标准。构件语义的描述要形式化构件语义的描述要形式化。提炼封装构件过程要严格记录提炼封装构件过程要严格记录。设计模式

21、可以重用设计模式可以重用。利用开发工具利用开发工具。例如,开放标准有:例如,开放标准有:CORBA、DCOM、EJB等。等。例如,例如,Jbuilder、EJBMaker、Eclipse等。等。优点;代码、设计、解决方案都能重用。优点;代码、设计、解决方案都能重用。要保证第三方用户能正确地理解、使用构件。要保证第三方用户能正确地理解、使用构件。如如EJB中有会话中有会话Bean和实体和实体Bean事务描述符等。事务描述符等。软件复用软件复用v软件复用就是将已有的软件成分用于构造新软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质的软件系统,以达到提高软件系统的开发质量

22、与效率、开发成本的目的。量与效率、开发成本的目的。v可复用的软件成分称为可复用构件可复用的软件成分称为可复用构件(Reusable ComponentReusable Component)或组件,可从软件)或组件,可从软件中提取,也可以专门为复用而开发。中提取,也可以专门为复用而开发。v软件复用不仅是对构件的复用,它包括对软软件复用不仅是对构件的复用,它包括对软件生产过程中任何活动所产生的制成品的复件生产过程中任何活动所产生的制成品的复用。如:项目计划、可行性报告、需求定义、用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等。分析模型、详细说明、源程序和测试用例等。

23、软件构件与构件工程软件构件与构件工程v 基于软件构件的软件工程也称为构件工程基于软件构件的软件工程也称为构件工程,是以面向对象,是以面向对象的方法为基础,实现软件重用,构造新系统的过程。的方法为基础,实现软件重用,构造新系统的过程。v 为了实现软件重用,为了实现软件重用,基于软件构件的软件工程强调领域工基于软件构件的软件工程强调领域工程与软件工程同时进行。程与软件工程同时进行。v 领域工程创建应用领域的模型,标识、构造、分类和传播领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件。软件工程师则在软件开发过程中重用一组可重用的软件。软件工程师则在软件开发过程中重用它们。它们。v

24、一个典型的重用过程模型,描述了领域工程与软件工程的一个典型的重用过程模型,描述了领域工程与软件工程的关系。关系。图图领域分析领域分析设计软件设计软件体系结构体系结构开发可重用开发可重用的软件成分的软件成分中心库中心库可重用软件可重用软件成分构件成分构件领域领域模型模型结构结构模型模型系统分析系统分析规格说明规格说明与设计与设计建造建造系统规系统规格说明格说明分析与分析与设计模型设计模型应用应用软件软件用户用户需求需求重用的过程模型重用的过程模型领域分析领域分析(Domain Analysis)是是针对一类软件系针对一类软件系统的应用领域,进行系统化分析,以发现其共同的统的应用领域,进行系统化分

25、析,以发现其共同的特征、知识和需求特征、知识和需求和规约。领域分析是特定类领域和规约。领域分析是特定类领域软件重用的基础,领域分析又称作领域工程软件重用的基础,领域分析又称作领域工程(Domain(Domain Engineering)Engineering),是软件工程的发展与延伸。,是软件工程的发展与延伸。其目标是:发现和挖掘在特定领域内可以被复其目标是:发现和挖掘在特定领域内可以被复用的构件。领域分析活动中输入和输出如图所示:用的构件。领域分析活动中输入和输出如图所示:领域分析领域分析输入信息输入信息技术文献技术文献已有应用已有应用专家经验专家经验/建议建议当前与未来的需求当前与未来的需

26、求输出信息输出信息领域语言领域语言复用标准复用标准分类方法分类方法功能功能/行为模型行为模型领域分析的输入和输出 构构件的开发件的开发领域分析的结果为构件的选取和开发提供了指导性领域分析的结果为构件的选取和开发提供了指导性的原则。此外,构件开发还需要遵循一定的设计概念和原的原则。此外,构件开发还需要遵循一定的设计概念和原则。则。构件应该具有相当的一般性和抽象性构件应该具有相当的一般性和抽象性。能够用于满足一类相似的需求,一个过于特殊的构件能够用于满足一类相似的需求,一个过于特殊的构件是很难被重复使用的。是很难被重复使用的。为用户对构件的调整和修改留出余地。为用户对构件的调整和修改留出余地。即使

27、一个通用性很高的构件也不可能完全适应用户的即使一个通用性很高的构件也不可能完全适应用户的需求和运行环境,所以一个构件被不同的应用复用时,对需求和运行环境,所以一个构件被不同的应用复用时,对它的某些部分进行修改是不可避免的。它的某些部分进行修改是不可避免的。例如,继承、参数化、模板和宏都是典型的提高构件例如,继承、参数化、模板和宏都是典型的提高构件灵活性和可调整性的机制。灵活性和可调整性的机制。一个软件只有在多个系统中被使用才可称为一个软件只有在多个系统中被使用才可称为“可复用可复用构件构件”,必须具备的条件:,必须具备的条件:(1)(1)独立性独立性(2)(2)完整性完整性(3)(3)可标识性

28、可标识性(4)(4)通用性通用性(5)(5)适应性适应性(6)(6)可靠性可靠性(7)(7)标准化标准化 解决一个相对独立解决一个相对独立的问题,或大问题中某的问题,或大问题中某个相对独立的部分。个相对独立的部分。提供较完整的解提供较完整的解决,不要遗留很多缺决,不要遗留很多缺口,让复用者做大量口,让复用者做大量补充。补充。构件所解决的问题构件所解决的问题应该是可标识的,可命应该是可标识的,可命名,有简要介绍,便于名,有简要介绍,便于理解和使用理解和使用。构件解决的问题,构件解决的问题,应在同类应用中具有应在同类应用中具有一般性。一般性。应用场合有某些变化应用场合有某些变化时,构件仍是可用的,

29、使时,构件仍是可用的,使构件的某些数据参数化和构件的某些数据参数化和数据类型参数化数据类型参数化。要求构件对预计将要要求构件对预计将要使用它的系统是可靠的。使用它的系统是可靠的。可复用构件的标准化可复用构件的标准化对于软件复用是至关重要对于软件复用是至关重要的。的。构件库构件库构件库(Component Library)用于对可复用构件进用于对可复用构件进行存储和管理。它是支持软件复用的必要设施。构件行存储和管理。它是支持软件复用的必要设施。构件库必须有大量的可复用构件。库必须有大量的可复用构件。构件库系统应提供的主要功能:构件的存储、管构件库系统应提供的主要功能:构件的存储、管理、检索以及库

30、的浏览与维护等。理、检索以及库的浏览与维护等。关键是支持使用者高效而准确地发现所需的可复关键是支持使用者高效而准确地发现所需的可复用构件。相关的主要技术是分类方法和检索方法。用构件。相关的主要技术是分类方法和检索方法。支持方便的、友好的用户管理和使用界面。支持方便的、友好的用户管理和使用界面。构件分类构件分类构件检索构件检索基于构件的软件开发基于构件的软件开发v 基于构件的软件开发是使用可复用构件组装开发新的应用基于构件的软件开发是使用可复用构件组装开发新的应用系统的过程。系统的过程。1)构件的鉴定构件的鉴定 考察构件能否满足应用的需要,是否达到应用所需的考察构件能否满足应用的需要,是否达到应

31、用所需的性性 能、可靠性、质量的保证。能、可靠性、质量的保证。2)构件的调整)构件的调整 经过必要的调整和修改的构件,才能适应复用的需要。经过必要的调整和修改的构件,才能适应复用的需要。3)构件的组装构件的组装 将经过鉴定和调整后的构件组装到应用系统中。为此,将经过鉴定和调整后的构件组装到应用系统中。为此,必须建立一个基础设施,提供构件协同的模型和使构件能必须建立一个基础设施,提供构件协同的模型和使构件能够交互并完成共同任务的特定服务。够交互并完成共同任务的特定服务。(4)软件开发工具)软件开发工具v用于辅助软件生命周期过程管理用于辅助软件生命周期过程管理的基于计算机的工具。大致有:的基于计算

32、机的工具。大致有:Rational 全面解决方案(商用)全面解决方案(商用)开发工具开发工具组件组件可视化建模可视化建模软件自动测试与质量认证软件自动测试与质量认证需求管理需求管理软件配置管理及过程自动化软件配置管理及过程自动化Rational 全面解决方案(商用)全面解决方案(商用)开发工具开发工具组件组件可视化建模可视化建模软件自动测试与质量认证软件自动测试与质量认证需求管理需求管理软件配置管理及过程自动化软件配置管理及过程自动化Rational 产品线产品线Persistent Intermediate Representation(PIR)Fast-Path CompilerCode

33、GeneratorDebugger Editor/BrowserSubsystems/Configuration ManagementCommon Embedded TargetsRational Cross-Compiler Family文档自动化工具文档自动化工具需求工具需求工具建模工具建模工具编程环境编程环境测试工具测试工具配置管理工具配置管理工具代码高级调试代码高级调试PureLinkPureLink配置管理工具配置管理工具报表警告黑盒测试工具黑盒测试工具开源的开发工具开源的开发工具v软件构造工具:软件构造工具:Eclipsev软件测试工具:软件测试工具:JMeterv软件项目管理:软

34、件项目管理:Teamlabv三、云计算模式下的软件及其开发技术三、云计算模式下的软件及其开发技术52云计算定义云计算定义v WikipediaWikipedia上的定义:上的定义:云计算是这样一种计算方式,计算资云计算是这样一种计算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解户不需要了解“云云”中基础设施的细节,不必具有相应的中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。专业知识,也无需直接进行控制。v 云计算模式下的软件是运行在云平台上,并具有在线租赁云计算模式下的软件是运行在云平台上,并具有在线

35、租赁服务形式、按用量可伸缩性占用资源、按需要个性化定制服务形式、按用量可伸缩性占用资源、按需要个性化定制等特性的软件。等特性的软件。5354云计算使用方式云计算使用方式v 云计算的使用方式云计算的使用方式将计算和存储等资将计算和存储等资源以服务的方式提源以服务的方式提供,用户按需使用,供,用户按需使用,按用量付费按用量付费55云计算的服务体系云计算的服务体系服务多租赁化服务多租赁化平台可伸缩化平台可伸缩化资源虚拟化资源虚拟化56平台即服务平台即服务Platform as a ServiceHigh VolumeTransactionsSoftware as a Service服务器服务器网络网

36、络存储存储Metering监控监控计费计费服务云服务云开发云开发云企业云企业云多租赁多租赁安全安全中间件中间件协作协作业务服务业务服务CRM/ERP/HR定制服务定制服务数据中心数据中心虚拟化,动态供应虚拟化,动态供应服务管理服务管理J2EEOn-ramps服务封装服务封装Ajax开发开发On-rampsOn-ramps开发工具开发工具与其他云的互操作与其他云的互操作软件即服务软件即服务基础设施即服务基础设施即服务云计算的服务体系云计算的服务体系云软件的实例云软件的实例57vGoole提供的云软件服务提供的云软件服务 搜索引擎搜索引擎 Gmail Google Docs Google Pica

37、sa Web云计算时代软件的新变化云计算时代软件的新变化58v 用户只需要使用软件,而不用自己去运行和管理软件。使用户只需要使用软件,而不用自己去运行和管理软件。使用云上的软件只需注册、客户化、应用即可。用云上的软件只需注册、客户化、应用即可。v 用户变成租户,单一实例的软件使用模式变成多租赁的服用户变成租户,单一实例的软件使用模式变成多租赁的服务模式务模式v 网站从网站从Web信息发布平台变成信息发布平台变成Web应用软件运行平台,变应用软件运行平台,变成系统托管平台,变成多租户的软件服务平台成系统托管平台,变成多租户的软件服务平台v 软件运行在因特网上的共享数据中心上,而不是运行在自软件运

38、行在因特网上的共享数据中心上,而不是运行在自有的服务器和计算机上。有的服务器和计算机上。v 应对用量变化的手段,从制作网络镜像手工增删资源,到应对用量变化的手段,从制作网络镜像手工增删资源,到系统和平台的自动伸缩系统和平台的自动伸缩。v 可个性化定制可个性化定制59v 在云计算平台中,如何开发、运行和维护那些为在云计算平台中,如何开发、运行和维护那些为(最终)用户提供云服务的软件系统(包括系统(最终)用户提供云服务的软件系统(包括系统软件、工具软件和应用软件等各类软件)软件、工具软件和应用软件等各类软件)本报告关注的主题本报告关注的主题关注云计算模式下的关注云计算模式下的软件开发与设计技术软件

39、开发与设计技术Google App Enginev 提供运行和开发的基础平台,允许开发人员编写网络应用,提供运行和开发的基础平台,允许开发人员编写网络应用,上传至上传至App Engine部署运行部署运行v 支持支持Java和和Python两种开发语言两种开发语言v App Engine 应用程序易于构建和维护,并可根据访问应用程序易于构建和维护,并可根据访问量和数据存储需要,进行伸缩量和数据存储需要,进行伸缩。v 将应用程序隔离在它自己的安全可靠环境中,该环境与网将应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关络服务器的硬件、操作系统和物理位置无关v

40、利用利用App Engine SDK进行进行开发开发GAE应用应用本地创建Web应用项目本地编译Web应用项目上传应用程序到Google AppEnginev 分布并行数据处理技术分布并行数据处理技术 Google Map/Reduce Hadoop Map/Reducev 分布式文件系统分布式文件系统 Google File System Hadoop Distributed File Systemv分布式数据库 Google BigTable Hadoop HBase分布并行编程技术分布并行编程技术分布并行数据处理分布并行数据处理62v Map/Reduce 用于大规模数据并行处理用于大规

41、模数据并行处理 数据量大(超过数据量大(超过1TB)在成百上千个在成百上千个CPU上并行处理上并行处理 用户只需实现下面接口用户只需实现下面接口map (in_key,in_value)-(out_key,intermediate_value)listreduce(out_key,intermediate_value list)-out_value listMap/Reduce架构架构63MapReduce实现原理实现原理分布式文件系统分布式文件系统65v Google File System(GFS)v 需求:在廉价、相对不可靠的计算机上对巨量数据进行冗余需求:在廉价、相对不可靠的计算机上对

42、巨量数据进行冗余存储。存储。为什么不用现有的文件系统?-Google面对特殊的挑战 文件较大,每个都在100M以上,通常为几个GB 文件通常需要频繁的追加 用流方式读取 高吞吐量 低延迟 针对上述问题,GFS在文件系统性能和可伸缩性方面进行了优化设计。v 文件用块存储文件用块存储 每个块固定为64MBv 通过冗余解决可靠性问题通过冗余解决可靠性问题 每个块同时拷贝在3个块服务器上v 主服务器负责协调访问和保存元数据主服务器负责协调访问和保存元数据 简单化的集中管理v 定制化的定制化的APIv 无数据缓存无数据缓存 较大文件块和流式读取使得缓存效果不佳66GFS的设计理念的设计理念分布式数据库系

43、统分布式数据库系统v Google BigTable 为了处理Google内部大量的格式化以及半格式化数据而构建的大规模分布式数据存储系统v 特点特点 面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和PB级的存储能力,每秒可以处理数百万的读写操作 能够保存记录的不同时段的版本 构建于GFS和Map/Reduce基础之上67v BigTable的设计理念的设计理念 面向网页数据的发布、搜索和浏览等特定处理的需要,简化数据管理系统的设计,并提高性能 不支持关联 不支持SQL查询 简化数据的一致性管理网页数据的管理对一致性要求不高 简化事务管理网页数据的处理(搜索、发布)对事务管理要求不高

44、 面向海量数据管理要求 设计分割和合并管理机制(基于元数据)设计自动伸缩功能(根据数据量调整资源用量)68分布式数据库系统分布式数据库系统软件工程国家重点实验室69BigTable架构架构F云计算平台架构云计算平台架构v F的的云计算平台云计算平台v基于基于Web的随需的随需应变的企业级软应变的企业级软件开发和运行平件开发和运行平台台v开发的软件能在开发的软件能在F平台平台上运行上运行v由一组集成的工由一组集成的工具和应用程序服具和应用程序服务组成务组成F云计算应用设计开发云计算应用设计开发v 使使Google App Engine平台上平台上Web应用的开应用的开发人员可以运行和使用驻留在发

45、人员可以运行和使用驻留在F平台平台上的企业应用和数据上的企业应用和数据v 提供了提供了Java和和Python库,允许开发人员从库,允许开发人员从Google App Engine中的应用软件,通过使用中的应用软件,通过使用F中中Web服务的服务的API接口,查询和处接口,查询和处理理F中的数据,从而实现中的数据,从而实现Google App Engine中应用软件与中应用软件与F中应用中应用软件的无缝地集成。软件的无缝地集成。F for Google App Engine工具工具云计算模式下应用软件的设计云计算模式下应用软件的设计v 采用基于采用基于SOA的的SaaS模式。模式。v SaaS

46、是指软件以在线服务的方式供租户使用,具备特性:是指软件以在线服务的方式供租户使用,具备特性:服务(Service)面向企业的服务(Line-of-business service)面向个人消费者的服务(Consumer-oriented service)多租赁(Multi-tenancy)动态可伸缩性(Dynamic Scalable)动态可配置性(Dynamic Configurable)v 云计算应用软件的体系结构是一种基于云计算应用软件的体系结构是一种基于SOA技术体系的技术体系的软件体系结构软件体系结构 具有面向业务、粗粒度、基于服务、松散耦合和动态绑定等特点基于基于SOASOA的的S

47、aaSSaaS模式的软件体系结构设计模式的软件体系结构设计v 云计算应用软件的体系结构设计云计算应用软件的体系结构设计 更关注软件系统的质量属性,例如高性能、伸缩性、并发性、分布性、安全性和容错性等 软件整体的并发性和分布性设计 服务自身的并发性和分布性设计 满足软件系统的质量属性成为难题和挑战,成为不可回避的问题 如何建模、实现和测试这些属性,需要新的有效技术和方法。v 设计关注点设计关注点 数据和应用隔离 多租户间最大程度共享资源的同时,严格区分和隔离属于不同租户的数据,以及应用的配置。例如:用数据表的字段或视图,区分不同租户的数据 可配置性 功能服务可以根据用户个性化需求灵活配置。可伸缩

48、特性 动态自动地适应大量的租户、大量的数据以及高并发的要求 性能 需要最大程度地提高系统并发性,更有效的使用系统资源多租赁特征的设计发展需求与机遇发展需求与机遇流动人口服务流动人口服务软件工程国家重点实验室76生殖健康生殖健康犯罪预防犯罪预防危机应对危机应对社会保障社会保障外来流动人口的压力外来流动人口的压力 人口流动形态推动了珠三角地区的现代化人口流动形态推动了珠三角地区的现代化进程,也在人口、社会、经济等方面带来新问进程,也在人口、社会、经济等方面带来新问题,不断冲击着以往的管理机制,对公共管理题,不断冲击着以往的管理机制,对公共管理与服务部门提出新的要求与服务部门提出新的要求技术需求:技

49、术需求:专业化专业化信息、应用分层处理,信息、应用分层处理,多中心,多中心,海量终端海量终端教育卫生教育卫生民主法制民主法制城镇化与城镇化与工业化进程工业化进程发展需求与机遇发展需求与机遇中小企业业务信息服务中小企业业务信息服务软件工程国家重点实验室77面向中小企业面向中小企业商务的云服务商务的云服务技术需求技术需求:低成本专业信息服务、按需服务,数据密集服务低成本专业信息服务、按需服务,数据密集服务中小企业支持珠三角地区经济社会发展中小企业支持珠三角地区经济社会发展中小企业中小企业 1000,000 1000,000增加就业增加就业增加经济活力增加经济活力改善产业结构改善产业结构扩大内需扩大

50、内需克服:克服:技术实力弱技术实力弱缺乏资金缺乏资金长远的预见性差长远的预见性差信息化实施能力差信息化实施能力差促进自主创新促进自主创新发展需求与机遇发展需求与机遇大众健康服务大众健康服务软件工程国家重点实验室健康作为服务健康作为服务健康的公民才能劳动创造价值健康的公民才能劳动创造价值技术需求技术需求:低成专业健康服务、按需服务,数据密集服务低成专业健康服务、按需服务,数据密集服务vWeb应用开发与云服务软件开发应用开发与云服务软件开发软件工程国家重点实验室79J2EEMap/ReduceStruts、SpringEclipse、Oracle JdeveloperNetBeansJ2EE设计模

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

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

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


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

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


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