资源描述
LOGO软件平台及开发技术软件平台及开发技术南京理工大学计算机学院南京理工大学计算机学院徐徐 建建软件平台及开发技术南京理工大学计算机学院报告内容报告内容软件平台与开发技术概述软件平台与开发技术概述1软件开发核心技术软件开发核心技术2 云计算模式的软件与开发技术云计算模式的软件与开发技术3报告内容软件平台与开发技术概述1软件开发核心技术2 云计一、软件平台与开发技术概述一、软件平台与开发技术概述3一、软件平台与开发技术概述3基本概念基本概念程序与软件l程序为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合l程序是人们求解问题的逻辑思维活动的代码化描述l软件是各种程序和有关资料的总称l软件=程序+数据+文档 l软件即服务基本概念软件平台软件平台v软件平台是指用来构建或支撑应用软件的独立软件系统,是开发与运行应用软件的基础。v软件平台的思想源于分层理论,本质就是将复杂的软件系统分层;操作系统平台操作系统平台 (WindowsWindows,UnixUnix,LinuxLinux)基础构架平台基础构架平台(WebsphereWebsphere,WebLogicWebLogic)业务基础平台业务基础平台 (NetweaverNetweaver,UAPUAP)软件平台软件平台是指用来构建或支撑应用软件的独立软件系统,是软件平台之基础构架平台v一种为复杂应用软件系统提供软件开发、部署、一种为复杂应用软件系统提供软件开发、部署、通信、安全和管理等通用技术基础架构的软件平通信、安全和管理等通用技术基础架构的软件平台台 ;降低了复杂应用软件系统与异构分布的操作系统、硬件平台、通讯协议之间的依赖性;屏蔽了与操作系统平台交互、系统之间的通信、安全管理等技术细节提高开发效率vIBMIBM的的WebSphereWebSphere,BEABEA的的WebLogic WebLogic v中国科学院软件研究所的网驰信息化基础软件核中国科学院软件研究所的网驰信息化基础软件核心平台心平台 OnceAsOnceAs软件平台之基础构架平台一种为复杂应用软件系统提供软件开发、部软件平台之业务基础平台软件平台之业务基础平台v指以业务导向和驱动的、可快速构建应用软件的指以业务导向和驱动的、可快速构建应用软件的软件平台。软件平台。解决了管理软件的业务描述以及与操作系统、软件基础构架平台之间的交互管理问题;屏蔽技术细节,使开发人员能够集中全力关注产品研发中的业务与管理问题;提高产品研发效率。vSAPSAP的的NetWeaverNetWeaver、BAANBAAN公司的公司的DEM DEM v思维加速的思维加速的TIBTIB、东软金算盘的、东软金算盘的VPVP、用友的、用友的UAPUAP、金蝶的金蝶的BOS BOS 软件平台之业务基础平台指以业务导向和驱动的、可快速构建应用软软件开发技术软件开发技术v包括软件开发方法学、工具和环境支持,其主体包括软件开发方法学、工具和环境支持,其主体内容是:软件开发方法学内容是:软件开发方法学 。软件开发模型软件开发方法软件开发平台与工具系统分析与建模技术软件构架技术软件设计模式软件项目管理软件测试软件质量保证软件开发技术包括软件开发方法学、工具和环境支持,其主体内容是二、软件开发核心技术二、软件开发核心技术9二、软件开发核心技术9(1)软件架构技术)软件架构技术vC/S架构架构vB/S架构架构v分布式多层应用程序架构分布式多层应用程序架构v云计算(分布式并行计算)架构云计算(分布式并行计算)架构(1)软件架构技术C/S架构C/S架构架构vC/S模型从本模型从本质上上讲是一种是一种软件件结构构,三种三种逻辑成分:成分:表示逻辑 业务处理逻辑 数据管理逻辑(1)(2)(3)C/S架构C/S模型从本质上讲是一种软件结构,三种逻辑成分:C/S架构的特征架构的特征v计算和算和处理分布在服理分布在服务器和客器和客户机之机之间,数据管理集中在,数据管理集中在服服务器端。器端。软件件驻留在服留在服务器和客器和客户机。机。v分布数据分布数据。出于安全性和。出于安全性和负载平衡的考平衡的考虑,数据,数据库可以分可以分布在多个数据布在多个数据库服服务器上。器上。v分布分布过程程。不同的。不同的过程(事程(事务处理、数据理、数据库连接等)可以接等)可以在不同服在不同服务器上器上进行。行。v客客户为中心中心。把需要在客。把需要在客户端端执行的程序和定制的程序放行的程序和定制的程序放在客在客户端,以使客端,以使客户快速得到响快速得到响应。把。把对数据数据进行行处理的理的过程放在数据程放在数据库服服务器端,以加快数据器端,以加快数据处理速度。理速度。v异构硬件和异构硬件和软件件。在。在C/S体系体系结构中很容易加入多构中很容易加入多层结构,构,屏蔽不同的硬件和屏蔽不同的硬件和软件。例如,加入件。例如,加入应用服用服务器可以基于器可以基于不同的操作系不同的操作系统和和计算机主机,同算机主机,同样客客户端安装的中端安装的中间件件可以基于不同的客可以基于不同的客户端系端系统,例如,例如,Linux,Windows。C/S架构的特征计算和处理分布在服务器和客户机之间,数据管理C/S架构的技架构的技术术目目标标v集成集成处理理资源源。把客。把客户和服和服务器端的器端的处理能力集成。理能力集成。v降低开降低开发资源要求源要求。在客。在客户端和服端和服务器端运行的程序分器端运行的程序分别存放,使得程序存放,使得程序调试方便,开方便,开发比比较简单,所需,所需资源也减源也减少。少。v降低硬件和降低硬件和软件的要求件的要求。在。在C/S系系统中,客中,客户机既有部机既有部分分处理能力,价格相理能力,价格相对较低,可以降低系低,可以降低系统软硬件成本。硬件成本。v降低系降低系统维护成本成本。在服。在服务器端的器端的处理和理和计算程序只需在算程序只需在服服务器端器端维护,与客,与客户机无关,而客机无关,而客户端程序比端程序比较简单,所以系所以系统维护较方便,成本方便,成本较低。低。v可可扩充能力充能力强。C/S应用容易用容易扩充,只要充,只要C/S联入网入网络即即可。可。C/S架构的技术目标集成处理资源。把客户和服务器端的处理能力C/S系系统统构成构成vC/S结结构构发发展展经历经历了两个了两个阶阶段:两段:两层结层结构和三(多)构和三(多)层结层结构。构。C/S系统构成C/S结构发展经历了两个阶段:两层结构和三(多C/S结结构的局限性构的局限性vC/S结结构的构的计计算能力算能力过过于分散,网于分散,网络络中服中服务务器和客器和客户户机的机的数目正数目正发发生生“细细胞胞”分裂,使得系分裂,使得系统统的管理的管理费费用以几何用以几何级级数数的方式增的方式增长长。vC/S结结构中数据构中数据库库信息的使用只限于局域网的范信息的使用只限于局域网的范围围内,无内,无法利用法利用Internet的网的网络资络资源。源。v在在C/S结结构中,无构中,无论论多小的企多小的企业业都必都必须须安装自己的服安装自己的服务务器,器,而服而服务务器和服器和服务务器器软软件的管理和件的管理和维护维护都是非常复都是非常复杂杂的工作,的工作,需要需要专门专门人人员负责员负责,小企,小企业业往往无力往往无力购买购买高性能的服高性能的服务务器器和聘用和聘用专门专门人人员员。因此,。因此,C/S结结构不利于小企构不利于小企业计业计算机算机应应用的用的发发展。展。C/S结构的局限性C/S结构的计算能力过于分散,网络中服务器B/S架构架构v表示表示逻辑、业务处理理逻辑和数据和数据处理理逻辑集中。集中。B/S架构表示逻辑、业务处理逻辑和数据处理逻辑集中。B/S架构的特点架构的特点B/S系系统采用采用B/W/D结构构。即客。即客户端只安装一个端只安装一个浏览器(器(Browser)。中)。中间层是是Web服服务器。再根据需要安器。再根据需要安装小支持装小支持库,如,如Java或或VB的的DDL以以处理特殊理特殊应用。用。B/S结构构简化了客化了客户端端。客。客户机上只需安装通用的机上只需安装通用的浏览器器软件。件。节省客省客户机的硬机的硬盘空空间与内存与内存.简化了系化了系统的开的开发和和维护。系。系统的开的开发者只需把所有的功者只需把所有的功能都能都实现在在Web服服务器上,并就不同的功能器上,并就不同的功能为各个各个组别的用的用户设置置权限就可以了。相限就可以了。相对于于C/S模式,模式,B/S的的维护具有更大的灵活性。如果一个公司有上千台客具有更大的灵活性。如果一个公司有上千台客户机,并机,并且分布在不同的地点,那么便于且分布在不同的地点,那么便于维护将将显得更加重要。得更加重要。用用户操作更操作更简单。客。客户端只用端只用浏览器。不用培器。不用培训即可使用。即可使用。B/S架构的特点 B/S系统采用B/W/D结构。即客户端只B/S 和和C/S的技的技术术比比较较vB/S架构的架构的软件将全面取代件将全面取代C/S架构架构的的软件件数据安全性 数据一致性数据实时性数据溯源性服务响应及时性网络应用限制B/S 和C/S的技术比较B/S架构的软件将全面取代C/S架分布式多分布式多层应层应用程序架构用程序架构JEE架构架构分布式多层应用程序架构JEE架构架构的架构的纵纵向向视图视图架构的纵向视图云云计计算架构算架构云计算架构(2)设计设计模式模式v设计模式是一套被反复使用、多数人知晓设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总的、经过分类编目的、代码设计经验的总结。结。v设计模式有助于对框架结构的理解,成熟设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式的框架通常使用了多种设计模式v经典的典的设计模式模式MVC模式(structs)FrontController模式Facede模式(2)设计模式设计模式是一套被反复使用、多数人知晓的、经过分应应用用设计设计模式的架构模式的架构Operational ManagementSecurityCommunicationUI ComponentsUI Process ComponentsData Access ComponentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesPatterns&PracticesPatterns&PracticesCachingCachingData Format&exchangeData Format&exchange应用设计模式的架构Operational ManagemenMVC设计设计模式模式MVC设计模式MVC模式的运行机制模式的运行机制ViewControllerrequestDatadochoose viewReturn resultUser inputModelRenderData AccessAccessMVC模式的运行机制ViewControllerreques应应用用设计设计模式的架构模式的架构Operational ManagementSecurityCommunicationUI ComponentsUI Process ComponentsData Access ComponentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesPatterns&PracticesPatterns&PracticesCachingCachingData Format&exchangeData Format&exchange应用设计模式的架构Operational ManagemenFront Controller设计设计模式模式v前端控制器前端控制器设计模式,模式,Front Controller通通过让单个个控制器控制器负责传输所有所有请求。求。v控制器本身通常分为以下两部分实现:控制器本身通常分为以下两部分实现:处理程序,负责检索参数和选择命令命令层次结构,命令代表具体的操作,命令对象完成操作之后,将由命令选择使用哪个视图来显示页面。Front Controller设计模式前端控制器设计模式,Front Controller模式模式执执行机制行机制v优点:点:集中化控制。集中化控制。线程安全线程安全可配置性可配置性v缺点:可能产生性能瓶颈可能产生性能瓶颈Front Controller模式执行机制应应用用设计设计模式的架构模式的架构Operational ManagementSecurityCommunicationUI ComponentsUI Process ComponentsData Access ComponentsBusiness WorkflowsBusiness ComponentsUsersBusiness EntitiesService AgentsService InterfacesData SourcesServicesPatterns&PracticesPatterns&PracticesCachingCachingData Format&exchangeData Format&exchange应用设计模式的架构Operational ManagemenFacade模式模式v为子系统中的一组接口提供一个一致的界面,为子系统中的一组接口提供一个一致的界面,Facade模模式定义了一个高层接口,这个接口使得这一子系统更加容式定义了一个高层接口,这个接口使得这一子系统更加容易使用易使用。v应用案例用案例Facade模式为子系统中的一组接口提供一个一致的界面,FaFacade模式模式FacadeFacade模式Facade(3)软件复用)软件复用基于构件的软件开发基于构件的软件开发v构件面向软件体系架构的可复用软件模块构件面向软件体系架构的可复用软件模块。v构件技构件技术是基于是基于OO技技术上的更高上的更高级的抽象。它把底的抽象。它把底层的的对象集合打成包,象集合打成包,组成功能成功能“插件插件”。基于构件技。基于构件技术的的软件件生生产就是把已存在的构件就是把已存在的构件组装(集成、复用)到当前装(集成、复用)到当前软件件系系统的框架的框架结构中,从而生构中,从而生产出新的出新的软件件产品。品。v从抽象程度来看,从抽象程度来看,OO技技术已达到了已达到了类级重用(以重用(以类为封封装装单位);而位);而构件技构件技术是是对一一组类的的组合合进行封装,可以行封装,可以将底将底层的多个的多个逻辑组合成高合成高层次上的粒度更大的新构件,次上的粒度更大的新构件,甚至直接封装到一个系甚至直接封装到一个系统,使模,使模块的重用从代的重用从代码级、对象象级、架构、架构级到系到系统级都可能都可能实现。显然,构件技然,构件技术将抽象将抽象的程度提到了一个更高的的程度提到了一个更高的层次。次。(3)软件复用基于构件的软件开发构件面向软件体系架构的可复实现实现构件技构件技术术的必的必备备条件条件v有有标标准准软软件体系件体系结结构,保构,保证证构件构件间间通信通信协议统协议统一,一,实现实现同同步和异步操作控制,突破本地空步和异步操作控制,突破本地空间间限制,充分利用网限制,充分利用网络环络环境。境。v构件有构件有标标准接口,保准接口,保证证系系统统可分解成多个功能独立的可分解成多个功能独立的单单元,元,用构件用构件组组装而成。装而成。v构件独立于构件独立于编编程程语语言。言。v构件提供版本兼容,来构件提供版本兼容,来实现应实现应用系用系统统的的扩扩展和更新。展和更新。实现构件技术的必备条件有标准软件体系结构,保证构件间通信协议构件构件设计设计v构件依构件依赖于平台于平台环境,所以境,所以设计时有特殊要求:有特殊要求:以接口以接口为核心,使用开放核心,使用开放标准准。构件构件语义的描述要形式化的描述要形式化。提提炼封装构件封装构件过程要程要严格格记录。设计模式可以重用模式可以重用。利用开利用开发工具工具。例如,开放标准有:例如,开放标准有:CORBA、DCOM、EJB等。等。例如,例如,Jbuilder、EJBMaker、Eclipse等。等。优点;代码、设计、解决方案都能重用。优点;代码、设计、解决方案都能重用。要保证第三方用户能正确地理解、使用构件。要保证第三方用户能正确地理解、使用构件。如如EJB中有会话中有会话Bean和实体和实体Bean事务描述符等。事务描述符等。构件设计构件依赖于平台环境,所以设计时有特殊要求:例如,开放软件复用软件复用v软件复用就是将已有的软件成分用于构造新软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质的软件系统,以达到提高软件系统的开发质量与效率、开发成本的目的。量与效率、开发成本的目的。v可复用的软件成分称为可复用构件可复用的软件成分称为可复用构件(Reusable ComponentReusable Component)或组件,可从软件)或组件,可从软件中提取,也可以专门为复用而开发。中提取,也可以专门为复用而开发。v软件复用不仅是对构件的复用,它包括对软软件复用不仅是对构件的复用,它包括对软件生产过程中任何活动所产生的制成品的复件生产过程中任何活动所产生的制成品的复用。如:项目计划、可行性报告、需求定义、用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等。分析模型、详细说明、源程序和测试用例等。软件复用软件复用就是将已有的软件成分用于构造新的软件系统,以软件构件与构件工程软件构件与构件工程v基于软件构件的软件工程也称为构件工程基于软件构件的软件工程也称为构件工程,是以面向对象,是以面向对象的方法为基础,实现软件重用,构造新系统的过程。的方法为基础,实现软件重用,构造新系统的过程。v为了实现软件重用,为了实现软件重用,基于软件构件的软件工程强调领域工基于软件构件的软件工程强调领域工程与软件工程同时进行。程与软件工程同时进行。v领域工程创建应用领域的模型,标识、构造、分类和传播领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件。软件工程师则在软件开发过程中重用一组可重用的软件。软件工程师则在软件开发过程中重用它们。它们。v一个典型的重用过程模型,描述了领域工程与软件工程的一个典型的重用过程模型,描述了领域工程与软件工程的关系。关系。图图领域分析领域分析设计软件设计软件体系结构体系结构开发可重用开发可重用的软件成分的软件成分中心库中心库可重用软件可重用软件成分构件成分构件领域领域模型模型结构结构模型模型系统分析系统分析规格说明规格说明与设计与设计建造建造系统规系统规格说明格说明分析与分析与设计模型设计模型应用应用软件软件用户用户需求需求软件工程软件工程软件工程软件工程领域工程领域工程领域工程领域工程重用的过程模型重用的过程模型软件构件与构件工程基于软件构件的软件工程也称为构件工程,是以领领域域分分析析(Domain Analysis)是是针针对对一一类类软软件件系系统统的的应应用用领领域域,进进行行系系统统化化分分析析,以以发发现现其其共共同同的的特特征征、知知识识和和需需求求和和规规约约。领领域域分分析析是是特特定定类类领领域域软软件件重重用用的的基基础础,领领域域分分析析又又称称作作领领域域工工程程(Domain(Domain Engineering)Engineering),是软件工程的发展与延伸。,是软件工程的发展与延伸。其其目目标标是是:发发现现和和挖挖掘掘在在特特定定领领域域内内可可以以被被复复用的构件。领域分析活动中输入和输出如图所示:用的构件。领域分析活动中输入和输出如图所示:领域分析领域分析领域分析输入信息输入信息技术文献已有应用专家经验/建议当前与未来的需求输出信息输出信息领域语言领域语言复用标准复用标准分类方法分类方法功能功能/行为模型行为模型领域分析的输入和输出领域分析(Domain Analysis)是针对一类软件系统一一个个软软件件只只有有在在多多个个系系统统中中被被使使用用才才可可称称为为“可可复复用用构件构件”,必须具备的条件:,必须具备的条件:(1)(1)独立性独立性(2)(2)完整性完整性(3)(3)可标识性可标识性(4)(4)通用性通用性(5)(5)适应性适应性(6)(6)可靠性可靠性(7)(7)标准化标准化可复用构件 解解决决一一个个相相对对独独立立的的问问题题,或或大大问问题题中中某某个相对独立的部分。个相对独立的部分。提提供供较较完完整整的的解解决决,不不要要遗遗留留很很多多缺缺口口,让让复复用用者者做做大大量量补充。补充。构构件件所所解解决决的的问问题题应应该该是是可可标标识识的的,可可命命名名,有有简简要要介介绍绍,便便于于理解和使用理解和使用。构构件件解解决决的的问问题题,应应在在同同类类应应用用中中具具有有一般性。一般性。应应用用场场合合有有某某些些变变化化时时,构构件件仍仍是是可可用用的的,使使构构件件的的某某些些数数据据参参数数化化和和数据类型参数化数据类型参数化。要要求求构构件件对对预预计计将将要要使用它的系统是可靠的。使用它的系统是可靠的。可可复复用用构构件件的的标标准准化化对对于于软软件件复复用用是是至至关关重重要要的。的。一个软件只有在多个系统中被使用才可称为“可复用构件”,必须具构件库构件库构件库(Component Library)用于对可复用构件进用于对可复用构件进行存储和管理。它是支持软件复用的必要设施。构件行存储和管理。它是支持软件复用的必要设施。构件库必须有大量的可复用构件。库必须有大量的可复用构件。构件库系统应提供的主要功能:构件的存储、管构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等。理、检索以及库的浏览与维护等。关键是支持使用者高效而准确地发现所需的可复关键是支持使用者高效而准确地发现所需的可复用构件。相关的主要技术是分类方法和检索方法。用构件。相关的主要技术是分类方法和检索方法。支持方便的、友好的用户管理和使用界面。支持方便的、友好的用户管理和使用界面。构件分类构件分类构件检索构件检索涉及两个基本问题:涉及两个基本问题:涉及两个基本问题:涉及两个基本问题:构件库构件库(Component Library)用于对基于构件的软件开发基于构件的软件开发v基于构件的软件开发是使用可复用构件组装开发新的应用基于构件的软件开发是使用可复用构件组装开发新的应用系统的过程。系统的过程。1)构件的鉴定构件的鉴定考察构件能否满足应用的需要,是否达到应用所需的考察构件能否满足应用的需要,是否达到应用所需的性性能、可靠性、质量的保证。能、可靠性、质量的保证。2)构件的调整)构件的调整经过必要的调整和修改的构件,才能适应复用的需要。经过必要的调整和修改的构件,才能适应复用的需要。3)构件的组装构件的组装将经过鉴定和调整后的构件组装到应用系统中。为此,将经过鉴定和调整后的构件组装到应用系统中。为此,必须建立一个基础设施,提供构件协同的模型和使构件能必须建立一个基础设施,提供构件协同的模型和使构件能够交互并完成共同任务的特定服务。够交互并完成共同任务的特定服务。基于构件的软件开发基于构件的软件开发是使用可复用构件组装开发(4)软件开发工具)软件开发工具v用于辅助软件生命周期过程管理用于辅助软件生命周期过程管理的基于计算机的工具。大致有:的基于计算机的工具。大致有:软件需求工具软件需求工具软件需求工具软件需求工具软件设计工具软件设计工具软件设计工具软件设计工具软件构造工具软件构造工具软件构造工具软件构造工具软件测试工具软件测试工具软件测试工具软件测试工具软件维护工具软件维护工具软件维护工具软件维护工具配置管理工具配置管理工具配置管理工具配置管理工具过程管理工具过程管理工具过程管理工具过程管理工具软件质量工具软件质量工具软件质量工具软件质量工具(4)软件开发工具用于辅助软件生命周期过程管理的基于计算机的Rational 全面解决方案(商用)全面解决方案(商用)开发工具开发工具组件组件可视化建模可视化建模软件自动测试与质量认证软件自动测试与质量认证需求管理需求管理软件配置管理及过程自动化软件配置管理及过程自动化 Rational ApexRational Apex Rational RoseRational Rose TestMate TestMate SoDA SoDA Pure series Pure series Clear Case Clear Case RequisitePro RequisitePro SQA Suite SQA Suite Visual Test Visual TestRational 全面解决方案(商用)开发工具组件可视化建模Rational 全面解决方案(商用)全面解决方案(商用)开发工具开发工具组件组件可视化建模可视化建模软件自动测试与质量认证软件自动测试与质量认证需求管理需求管理软件配置管理及过程自动化软件配置管理及过程自动化 Rational ApexRational Apex Rational RoseRational Rose TestMate TestMate SoDA SoDA Pure series Pure series Clear Case Clear Case RequisitePro RequisitePro SQA Suite SQA Suite Visual Test Visual TestRational 全面解决方案(商用)开发工具组件可视化建模Rational 产产品品线线ApexApex集成化软件工程环境集成化软件工程环境集成化软件工程环境集成化软件工程环境RoseRose可视化建模可视化建模可视化建模可视化建模SoDASoDA文档自动化文档自动化文档自动化文档自动化Pure SeriesPure Series白盒测试白盒测试白盒测试白盒测试ClearCaseClearCase配置管理配置管理配置管理配置管理SQA SuiteSQA Suite黑盒测试黑盒测试黑盒测试黑盒测试Rational 产品线Apex集成化软件工程环境Rose可ISEE:集成化软件工程环境体系结构控制体系结构控制体系结构控制体系结构控制版本控制版本控制版本控制版本控制建立控制建立控制建立控制建立控制分发控制分发控制分发控制分发控制Apex环境环境Persistent Intermediate Representation(PIR)Fast-Path CompilerCode GeneratorDebugger Editor/BrowserSubsystems/Configuration ManagementCommon Embedded TargetsRational Cross-Compiler FamilyISEE:集成化软件工程环境体系结构控制版本控制建立控制分发文档自文档自动动化工具化工具需求需求需求需求软件分析软件分析软件分析软件分析软件设计软件设计软件设计软件设计编码编码编码编码测试测试测试测试SoDA需求文档需求文档需求文档需求文档分析文档分析文档分析文档分析文档设计文档设计文档设计文档设计文档测试文档测试文档测试文档测试文档需求工具需求工具建模工具建模工具编程环境编程环境测试工具测试工具配置管理工具配置管理工具文档自动化工具需求软件分析软件设计编码测试SoDA需求文档分代代码码高高级调试级调试PureLink代码高级调试PureLink配置管理工具配置管理工具工作空间管理工作空间管理工作空间管理工作空间管理版本控制版本控制版本控制版本控制建立管理建立管理建立管理建立管理过程控制过程控制过程控制过程控制ClearCase配置管理工具软件开发过程报表警告工作空间管理版本控制建立管理黑盒黑盒测试测试工具工具测试计划测试计划测试计划测试计划测试设计测试设计测试设计测试设计测试开发测试开发测试开发测试开发测试执行测试执行测试执行测试执行测试评估测试评估测试评估测试评估SQASQA黑盒测试工具测试计划测试设计测试开发测试执行测试评估SQA开源的开开源的开发发工具工具v软件构造工具:件构造工具:Eclipsev软件件测试工具:工具:JMeterv软件件项目管理:目管理:Teamlabv开源的开发工具软件构造工具:Eclipse三、云计算模式下的软件及其开发技术三、云计算模式下的软件及其开发技术52三、云计算模式下的软件及其开发技术52云计算定义云计算定义vWikipediaWikipedia上的定义:上的定义:云计算是这样一种计算方式,计算资云计算是这样一种计算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解户不需要了解“云云”中基础设施的细节,不必具有相应的中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。专业知识,也无需直接进行控制。v云计算模式下的软件是运行在云平台上,并具有在线租赁云计算模式下的软件是运行在云平台上,并具有在线租赁服务形式、按用量可伸缩性占用资源、按需要个性化定制服务形式、按用量可伸缩性占用资源、按需要个性化定制等特性的软件。等特性的软件。53云计算定义Wikipedia上的定义:云计算是这样一种计算方54云计算使用方式云计算使用方式云计算使用方式云计算使用方式v云计算的使用方式云计算的使用方式将计算和存储等资将计算和存储等资源以服务的方式提源以服务的方式提供,用户按需使用,供,用户按需使用,按用量付费按用量付费54云计算使用方式云计算的使用方式将计算和存储等资源以服务的55云计算的服务体系云计算的服务体系云计算的服务体系云计算的服务体系服务多租赁化服务多租赁化平台可伸缩化平台可伸缩化资源虚拟化资源虚拟化55云计算的服务体系服务多租赁化平台可伸缩化资源虚拟化56平台即服务平台即服务Platform as a ServiceHigh VolumeTransactionsSoftware as a Service服务器服务器网络网络存储存储Metering监控监控计费计费服务云服务云开发云开发云企业云企业云多租赁多租赁安全安全中间件中间件协作协作业务服务业务服务CRM/ERP/HR定制服务定制服务数据中心数据中心虚拟化,动态供应虚拟化,动态供应服务管理服务管理J2EEOn-ramps服务封装服务封装Ajax开发开发On-rampsOn-ramps开发工具开发工具与其他云的互操作与其他云的互操作软件即服务软件即服务基础设施即服务基础设施即服务云计算的服务体系云计算的服务体系云计算的服务体系云计算的服务体系56平台即服务Platform as a ServiceHi云软件的实例云软件的实例57vGoole提供的云软件服务提供的云软件服务搜索引擎搜索引擎GmailGoogle DocsGoogle Picasa Web云软件的实例57Goole提供的云软件服务云计算时代软件的新变化云计算时代软件的新变化58v用户只需要使用软件,而不用自己去运行和管理软件。使用户只需要使用软件,而不用自己去运行和管理软件。使用云上的软件只需注册、客户化、应用即可。用云上的软件只需注册、客户化、应用即可。v用户变成租户,单一实例的软件使用模式变成多租赁的服用户变成租户,单一实例的软件使用模式变成多租赁的服务模式务模式v网站从网站从Web信息发布平台变成信息发布平台变成Web应用软件运行平台,变应用软件运行平台,变成系统托管平台,变成多租户的软件服务平台成系统托管平台,变成多租户的软件服务平台v软件运行在因特网上的共享数据中心上,而不是运行在自软件运行在因特网上的共享数据中心上,而不是运行在自有的服务器和计算机上。有的服务器和计算机上。v应对用量变化的手段,从制作网络镜像手工增删资源,到应对用量变化的手段,从制作网络镜像手工增删资源,到系统和平台的自动伸缩系统和平台的自动伸缩。v可个性化定制可个性化定制云计算时代软件的新变化58用户只需要使用软件,而不用自己去运59v在云计算平台中,如何开发、运行和维护那些为在云计算平台中,如何开发、运行和维护那些为(最终)用户提供云服务的软件系统(包括系统(最终)用户提供云服务的软件系统(包括系统软件、工具软件和应用软件等各类软件)软件、工具软件和应用软件等各类软件)本报告关注的主题本报告关注的主题本报告关注的主题本报告关注的主题关注云计算模式下的关注云计算模式下的软件开发与设计技术软件开发与设计技术59在云计算平台中,如何开发、运行和维护那些为(最终)用户提Google App Enginev提供运行和开发的基础平台,允许开发人员编写网络应用,提供运行和开发的基础平台,允许开发人员编写网络应用,上传至上传至AppEngine部署运行部署运行v支持支持Java和和Python两种开发语言两种开发语言vAppEngine应用程序易于构建和维护,并可根据访问应用程序易于构建和维护,并可根据访问量和数据存储需要,进行伸缩量和数据存储需要,进行伸缩。v将应用程序隔离在它自己的安全可靠环境中,该环境与网将应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关络服务器的硬件、操作系统和物理位置无关v利用利用AppEngineSDK进行进行开发开发GAE应用应用本地创建Web应用项目本地编译Web应用项目上传应用程序到GoogleAppEngineGoogle App Engine提供运行和开发的基础平台,v分布并行数据处理技术分布并行数据处理技术Google Map/ReduceHadoop Map/Reducev分布式文件系统分布式文件系统Google File SystemHadoop Distributed File Systemv分布式数据库Google BigTableHadoop HBase分布并行编程技术分布并行编程技术分布并行编程技术分布并行编程技术分布并行数据处理技术分布并行编程技术分布并行数据处理分布并行数据处理62vMap/Reduce用于大规模数据并行处理用于大规模数据并行处理数据量大(超过数据量大(超过1TB)在成百上千个在成百上千个CPU上并行处理上并行处理用户只需实现下面接口用户只需实现下面接口map (in_key,in_value)-(out_key,intermediate_value)listreduce(out_key,intermediate_value list)-out_value list分布并行数据处理62Map/ReduceMap/Reduce架构架构63Map/Reduce 架构63MapReduce实现原理实现原理MapReduce实现原理分布式文件系统分布式文件系统65vGoogleFileSystem(GFS)v需求:在廉价、相对不可靠的计算机上对巨量数据进行冗余需求:在廉价、相对不可靠的计算机上对巨量数据进行冗余存储。存储。为什么不用现有的文件系统?-Google面对特殊的挑战文件较大,每个都在100M以上,通常为几个GB文件通常需要频繁的追加用流方式读取高吞吐量低延迟针对上述问题,GFS在文件系统性能和可伸缩性方面进行了优化设计。分布式文件系统65Google File System(GFv文件用块存储文件用块存储每个块固定为64MBv通过冗余解决可靠性问题通过冗余解决可靠性问题每个块同时拷贝在3个块服务器上v主服务器负责协调访问和保存元数据主服务器负责协调访问和保存元数据简单化的集中管理v定制化的定制化的APIv无数据缓存无数据缓存较大文件块和流式读取使得缓存效果不佳66GFSGFS的的的的设计设计理念理念理念理念文件用块存储66GFS的设计理念分布式数据库系统分布式数据库系统vGoogleBigTable为了处理Google内部大量的格式化以及半格式化数据而构建的大规模分布式数据存储系统v特点特点面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和PB级的存储能力,每秒可以处理数百万的读写操作能够保存记录的不同时段的版本构建于GFS和Map/Reduce基础之上67分布式数据库系统Google BigTable67vBigTable的设计理念的设计理念面向网页数据的发布、搜索和浏览等特定处理的需要,简化数据管理系统的设计,并提高性能不支持关联不支持SQL查询简化数据的一致性管理网页数据的管理对一致性要求不高简化事务管理网页数据的处理(搜索、发布)对事务管理要求不高面向海量数据管理要求设计分割和合并管理机制(基于元数据)设计自动伸缩功能(根据数据量调整资源用量)68分布式数据库系统分布式数据库系统分布式数据库系统分布式数据库系统BigTable的设计理念68分布式数据库系统软件工程国家重点实验室69BigTableBigTable架构架构架构架构软件工程国家重点实验室69BigTable架构F云计算平台架构云计算平台架构vF的的云计算平台云计算平台v基于基于Web的随需的随需应变的企业级软应变的企业级软件开发和运行平件开发和运行平台台v开发的软件能在开发的软件能在F平台平台上运行上运行v由一组集成的工由一组集成的工具和应用程序服具和应用程序服务组成务组成F云计算平台架构F的云计算平F云云计计算算应应用用设计设计开开发发F云计算应用设计开发v使使GoogleAppEngine平台上平台上Web应用的开应用的开发人员可以运行和使用驻留在发人员可以运行和使用驻留在F平台平台上的企业应用和数据上的企业应用和数据v提供了提供了Java和和Python库,允许开发人员从库,允许开发人员从GoogleAppEngine中的应用软件,通过使用中的应用软件,通过使用F中中Web服务的服务的API接口,查询和处接口,查询和处理理F中的数据,从而实现中的数据,从而实现GoogleAppEngine中应用软件与中应用软件与F中应用中应用软件的无缝地集成。软件的无缝地集成。F for Google App EngineF for Google App Engine工具工具工具工具使Google App Engine平台上Web应用的开发人云计算模式下应用软件的设计云计算模式下应用软件的设计v采用基于采用基于SOA的的SaaS模式。模式。vSaaS是指是指软件以在件以在线服服务的方式供租的方式供租户使用,具使用,具备特性:特性:服务(Service)面向企业的服务(Line-of-business service)面向个人消费者的服务(Consumer-oriented service)多租赁(Multi-tenancy)动态可伸缩性(Dynamic Scalable)动态可配置性(Dynamic Configurable)v云计算应用软件的体系结构是一种基于云计算应用软件的体系结构是一种基于SOA技术体系的技术体系的软件体系结构软件体系结构具有面向业务、粗粒度、基于服务、松散耦合和动态绑定等特点云计算模式下应用软件的设计采用基于SOA的SaaS模式。基于基于SOASOA的的SaaSSaaS模式的软件体系结构设计模式的软件体系结构设计v云计算应用软件的体系结构设计云计算应用软件的体系结构设计更关注软件系统的质量属性,例如高性能、伸缩性、并发性、分布性、安全性和容错性等软件整体的并发性和分布性设计服务自身的并发性和分布性设计满足软件系统的质量属性成为难题和挑战,成为不可回避的问题如何建模、实现和测试这些属性,需要新的有效技术和方法。基于SOA的SaaS模式的软件体系结构设计云计算应用软件的体v设计关注点设计关注点数据和应用隔离多租户间最大程度共享资源的同时,严格区分和隔离属于不同租户的数据,以及应用的配置。例如:用数据表的字段或视图,区分不同租户的数据可配置性功能服务可以根据用户个性化需求灵活配置。可伸缩特性 动态自动地适应大量的租户、大量的数据以及高并发的要求性能需要最大程度地提高系统并发性,更有效的使用系统资源多租赁特征的设计多租赁特征的设计设计关注点多租赁特征的设计发展需求与机遇发展需求与机遇流动人口服务流动人口服务软件工程国家重点实验室76生殖健康生殖健康犯罪预防犯罪预防危机应对危机应对社会保障社会保障外来流动人口的压力外来流动人口的压力 人口流动形态推动了珠三角地区的现代化人口流动形态推动了珠三角地区的现代化进程,也在人口、社会、经济等方面带来新问进程,也在人口、社会、经济等方面带来新问题,不断冲击着以往的管理机制,对公共管理题,不断冲击着以往的管理机制,对公共管理与服务部门提出新的要求与服务部门提出新的要求技术需求:技术需求:专业化专业化信息、应用分层处理,信息、应用分层处理,多中心,多中心,海量终端海量终端教育卫生教育卫生民主法制民主法制城镇化与城镇化与工业化进程工业化进程发展需求与机遇流动人口服务软件工程国家重点实验室76生殖发展需求与机遇发展需求与机遇中小企业业务信息服务中小企业业务信息服务软件工程国家重点实验室77面向中小企业面向中小企业商务的云服务商务的云服务技术需求技术需求:低成本专业信息服务、按需服务,数据密集服务低成本专业信息服务、按需服务,数据密集服务中小企业支持珠三角地区经济社会发展中小企业支持珠三角地区经济社会发展中小企业中小企业 1000,000 1000,000增加就业增加就业增加经济活力增加经济活力改善产业结构改善产业结构扩大内需扩大内需克服:克服:技术实力弱技术实力弱缺乏资金缺乏资金长远的预见性差长远的预见性差信息化实施能力差信息化实施能力差促进自主创新促进自主创新发展需求与机遇中小企业业务信息服务软件工程国家重点实验室发展需求与机遇发展需求与机遇大众健康服务大众健康服务软件工程国家重点实验室健康作为服务健康作为服务健康的公民才能劳动创造价值健康的公民才能劳动创造价值技术需求技术需求:低成专业健康服务、按需服务,数据密集服务低成专业健康服务、按需服务,数据密集服务发展需求与机遇大众健康服务软件工程国家重点实验室健康作为vWeb应用开发与云服务软件开发应用开发与云服务软件开发软件工程国家重点实验室79J2EEMap/ReduceStruts、SpringEclipse、Oracle JdeveloperNetBeansJ2EE设计模式设计模式IBM MapReduce Tools for Eclipse?基础基础API与与技术架构技术架构开发框架开发框架IDE工具工具开发方法学开发方法学云服务软件开发技术需要创新发展云服务软件开发技术需要创新发展Web应用开发与云服务软件开发软件工程国家重点实验室79J2vWeb数据库与云数据服务数据库与云数据服务软件工程国家重点实验室80JDBCHerbernat、JPA、SDO、JDO传统的关系型数据库传统的关系型数据库(Oracle、MySQL)云数据库服务云数据库服务(BigTable、HBase)Bigtable API、Hbase API?开发框架开发框架API数据库数据库关系代数关系代数?理论体系理论体系云服务软件开发技术需要创新发展云服务软件开发技术需要创新发展Web数据库与云数据服务软件工程国家重点实验室80JDBCHLOGOThank You!
展开阅读全文