版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件平台及开发技术南京理工大学计算机学院徐建dolphin.xu@报告内容软件平台与开发技术概述1软件开发核心技术2云计算模式的软件与开发技术3一、软件平台与开发技术概述3基本概念程序与软件程序为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合程序是人们求解问题的逻辑思维活动的代码化描述软件是各种程序和有关资料的总称软件=程序+数据+文档
软件即服务软件平台软件平台是指用来构建或支撑应用软件的独立软件系统,是开发与运行应用软件的基础。软件平台的思想源于分层理论,本质就是将复杂的软件系统分层;操作系统平台(Windows,Unix,Linux)基础构架平台(Websphere,WebLogic)业务基础平台(Netweaver,UAP)软件平台之基础构架平台一种为复杂应用软件系统提供软件开发、部署、通信、安全和管理等通用技术基础架构的软件平台;降低了复杂应用软件系统与异构分布的操作系统、硬件平台、通讯协议之间的依赖性;屏蔽了与操作系统平台交互、系统之间的通信、安全管理等技术细节提高开发效率IBM的WebSphere,BEA的WebLogic
中国科学院软件研究所的网驰信息化基础软件核心平台
OnceAs软件平台之业务基础平台指以业务导向和驱动的、可快速构建应用软件的软件平台。解决了管理软件的业务描述以及与操作系统、软件基础构架平台之间的交互管理问题;屏蔽技术细节,使开发人员能够集中全力关注产品研发中的业务与管理问题;提高产品研发效率。SAP的NetWeaver、BAAN公司的DEM思维加速的TIB、东软金算盘的VP、用友的UAP、金蝶的BOS软件开发技术包括软件开发方法学、工具和环境支持,其主体内容是:软件开发方法学。软件开发模型软件开发方法软件开发平台与工具系统分析与建模技术软件构架技术软件设计模式软件项目管理软件测试软件质量保证二、软件开发核心技术9(1)软件架构技术C/S架构B/S架构分布式多层应用程序架构云计算(分布式并行计算)架构C/S架构C/S模型从本质上讲是一种软件结构,三种逻辑成分:表示逻辑业务处理逻辑数据管理逻辑
(1)(2)(3)C/S架构的特征计算和处理分布在服务器和客户机之间,数据管理集中在服务器端。软件驻留在服务器和客户机。分布数据。出于安全性和负载平衡的考虑,数据库可以分布在多个数据库服务器上。分布过程。不同的过程(事务处理、数据库连接等)可以在不同服务器上进行。客户为中心。把需要在客户端执行的程序和定制的程序放在客户端,以使客户快速得到响应。把对数据进行处理的过程放在数据库服务器端,以加快数据处理速度。异构硬件和软件。在C/S体系结构中很容易加入多层结构,屏蔽不同的硬件和软件。例如,加入应用服务器可以基于不同的操作系统和计算机主机,同样客户端安装的中间件可以基于不同的客户端系统,例如,Linux,Windows。C/S架构的技术目标集成处理资源。把客户和服务器端的处理能力集成。降低开发资源要求。在客户端和服务器端运行的程序分别存放,使得程序调试方便,开发比较简单,所需资源也减少。降低硬件和软件的要求。在C/S系统中,客户机既有部分处理能力,价格相对较低,可以降低系统软硬件成本。降低系统维护成本。在服务器端的处理和计算程序只需在服务器端维护,与客户机无关,而客户端程序比较简单,所以系统维护较方便,成本较低。可扩充能力强。C/S应用容易扩充,只要C/S联入网络即可。C/S系统构成C/S结构发展经历了两个阶段:两层结构和三(多)层结构。C/S结构的局限性C/S结构的计算能力过于分散,网络中服务器和客户机的数目正发生“细胞”分裂,使得系统的管理费用以几何级数的方式增长。C/S结构中数据库信息的使用只限于局域网的范围内,无法利用Internet的网络资源。在C/S结构中,无论多小的企业都必须安装自己的服务器,而服务器和服务器软件的管理和维护都是非常复杂的工作,需要专门人员负责,小企业往往无力购买高性能的服务器和聘用专门人员。因此,C/S结构不利于小企业计算机应用的发展。B/S架构表示逻辑、业务处理逻辑和数据处理逻辑集中。B/S架构的特点⑴B/S系统采用B/W/D结构。即客户端只安装一个浏览器(Browser)。中间层是Web服务器。再根据需要安装小支持库,如Java或VB的DDL以处理特殊应用。⑵B/S结构简化了客户端。客户机上只需安装通用的浏览器软件。节省客户机的硬盘空间与内存.⑶简化了系统的开发和维护。系统的开发者只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。相对于C/S模式,B/S的维护具有更大的灵活性。如果一个公司有上千台客户机,并且分布在不同的地点,那么便于维护将显得更加重要。⑷用户操作更简单。客户端只用浏览器。不用培训即可使用。B/S和C/S的技术比较B/S架构的软件将全面取代C/S架构的软件数据安全性数据一致性数据实时性数据溯源性服务响应及时性网络应用限制分布式多层应用程序架构JEE架构架构的纵向视图云计算架构(2)设计模式设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式
经典的设计模式MVC模式(structs)FrontController模式Facede模式应用设计模式的架构OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeMVC设计模式MVC模式的运行机制ViewControllerrequestDatadochooseviewReturnresultUserinputModelRenderDataAccessAccess应用设计模式的架构OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeFrontController设计模式前端控制器设计模式,FrontController
通过让单个控制器负责传输所有请求。控制器本身通常分为以下两部分实现:处理程序,负责检索参数和选择命令命令层次结构,命令代表具体的操作,命令对象完成操作之后,将由命令选择使用哪个视图来显示页面。FrontController模式执行机制优点:集中化控制。线程安全可配置性缺点:可能产生性能瓶颈应用设计模式的架构OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeFacade模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。应用案例Facade模式Facade(3)软件复用—基于构件的软件开发构件面向软件体系架构的可复用软件模块。构件技术是基于OO技术上的更高级的抽象。它把底层的对象集合打成包,组成功能“插件”。基于构件技术的软件生产就是把已存在的构件组装(集成、复用)到当前软件系统的框架结构中,从而生产出新的软件产品。从抽象程度来看,OO技术已达到了类级重用(以类为封装单位);而构件技术是对一组类的组合进行封装,可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现。显然,构件技术将抽象的程度提到了一个更高的层次。实现构件技术的必备条件有标准软件体系结构,保证构件间通信协议统一,实现同步和异步操作控制,突破本地空间限制,充分利用网络环境。构件有标准接口,保证系统可分解成多个功能独立的单元,用构件组装而成。构件独立于编程语言。构件提供版本兼容,来实现应用系统的扩展和更新。构件设计构件依赖于平台环境,所以设计时有特殊要求:⑴以接口为核心,使用开放标准。⑵构件语义的描述要形式化。⑶提炼封装构件过程要严格记录。⑷设计模式可以重用。⑸利用开发工具。例如,开放标准有:CORBA、DCOM、EJB等。例如,Jbuilder、EJBMaker、Eclipse等。优点;代码、设计、解决方案都能重用。要保证第三方用户能正确地理解、使用构件。如EJB中有会话Bean和实体Bean事务描述符等。软件复用软件复用就是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率、开发成本的目的。可复用的软件成分称为可复用构件(ReusableComponent)或组件,可从软件中提取,也可以专门为复用而开发。软件复用不仅是对构件的复用,它包括对软件生产过程中任何活动所产生的制成品的复用。如:项目计划、可行性报告、需求定义、分析模型、详细说明、源程序和测试用例等。软件构件与构件工程基于软件构件的软件工程也称为构件工程,是以面向对象的方法为基础,实现软件重用,构造新系统的过程。为了实现软件重用,基于软件构件的软件工程强调领域工程与软件工程同时进行。领域工程创建应用领域的模型,标识、构造、分类和传播一组可重用的软件。软件工程师则在软件开发过程中重用它们。一个典型的重用过程模型,描述了领域工程与软件工程的关系。图2领域分析设计软件体系结构开发可重用的软件成分中心库可重用软件成分/构件领域模型结构模型系统分析规格说明与设计建造系统规格说明分析与设计模型应用软件用户需求软件工程领域工程重用的过程模型领域分析(DomainAnalysis)是针对一类软件系统的应用领域,进行系统化分析,以发现其共同的特征、知识和需求和规约。领域分析是特定类领域软件重用的基础,领域分析又称作领域工程(DomainEngineering),是软件工程的发展与延伸。其目标是:发现和挖掘在特定领域内可以被复用的构件。领域分析活动中输入和输出如图所示:
领域分析领域分析输入信息技术文献已有应用专家经验/建议当前与未来的需求输出信息
领域语言复用标准分类方法功能/行为模型领域分析的输入和输出构件的开发与构件库
构件的开发
领域分析的结果为构件的选取和开发提供了指导性的原则。此外,构件开发还需要遵循一定的设计概念和原则。
构件应该具有相当的一般性和抽象性。能够用于满足一类相似的需求,一个过于特殊的构件是很难被重复使用的。
为用户对构件的调整和修改留出余地。
即使一个通用性很高的构件也不可能完全适应用户的需求和运行环境,所以一个构件被不同的应用复用时,对它的某些部分进行修改是不可避免的。例如,继承、参数化、模板和宏都是典型的提高构件灵活性和可调整性的机制。一个软件只有在多个系统中被使用才可称为“可复用构件”,必须具备的条件:
(1)独立性
(2)完整性
(3)可标识性
(4)
通用性
(5)适应性
(6)可靠性
(7)标准化可复用构件
解决一个相对独立的问题,或大问题中某个相对独立的部分。提供较完整的解决,不要遗留很多缺口,让复用者做大量补充。构件所解决的问题应该是可标识的,可命名,有简要介绍,便于理解和使用。
构件解决的问题,应在同类应用中具有一般性。
应用场合有某些变化时,构件仍是可用的,使构件的某些数据参数化和数据类型参数化。要求构件对预计将要使用它的系统是可靠的。
可复用构件的标准化对于软件复用是至关重要的。构件库
构件库(ComponentLibrary)用于对可复用构件进行存储和管理。它是支持软件复用的必要设施。构件库必须有大量的可复用构件。构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等。关键是支持使用者高效而准确地发现所需的可复用构件。相关的主要技术是分类方法和检索方法。支持方便的、友好的用户管理和使用界面。构件分类构件检索涉及两个基本问题:基于构件的软件开发基于构件的软件开发是使用可复用构件组装开发新的应用系统的过程。1)构件的鉴定 考察构件能否满足应用的需要,是否达到应用所需的性能、可靠性、质量的保证。
2)构件的调整 经过必要的调整和修改的构件,才能适应复用的需要。
3)构件的组装 将经过鉴定和调整后的构件组装到应用系统中。为此,必须建立一个基础设施,提供构件协同的模型和使构件能够交互并完成共同任务的特定服务。(4)软件开发工具用于辅助软件生命周期过程管理的基于计算机的工具。大致有:
软件需求工具软件设计工具软件构造工具软件测试工具软件维护工具配置管理工具过程管理工具软件质量工具Rational全面解决方案(商用)开发工具组件可视化建模软件自动测试与质量认证需求管理软件配置管理及过程自动化
RationalApex
RationalRose
TestMate
SoDAPureseriesClearCase
RequisiteProSQASuiteVisualTestRational全面解决方案(商用)开发工具组件可视化建模软件自动测试与质量认证需求管理软件配置管理及过程自动化
RationalApex
RationalRose
TestMate
SoDAPureseriesClearCase
RequisiteProSQASuiteVisualTestRational产品线Apex集成化软件工程环境Rose可视化建模SoDA文档自动化PureSeries白盒测试ClearCase配置管理SQASuite黑盒测试ISEE:集成化软件工程环境体系结构控制版本控制建立控制分发控制Apex环境PersistentIntermediateRepresentation(PIR)Fast-PathCompilerCodeGeneratorDebugger
Editor/BrowserSubsystems/ConfigurationManagementCommonEmbeddedTargetsRationalCross-CompilerFamily文档自动化工具需求软件分析软件设计编码测试SoDA需求文档分析文档设计文档测试文档需求工具建模工具编程环境测试工具配置管理工具代码高级调试PureLink配置管理工具软件开发过程报表警告工作空间管理版本控制建立管理过程控制ClearCase黑盒测试工具测试计划测试设计测试开发测试执行测试评估SQA开源的开发工具软件构造工具:Eclipse软件测试工具:JMeter软件项目管理:Teamlab…三、云计算模式下的软件及其开发技术52云计算定义Wikipedia上的定义:云计算是这样一种计算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解“云”中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。云计算模式下的软件是运行在云平台上,并具有在线租赁服务形式、按用量可伸缩性占用资源、按需要个性化定制等特性的软件。5354云计算使用方式云计算的使用方式将计算和存储等资源以服务的方式提供,用户按需使用,按用量付费55云计算的服务体系服务多租赁化平台可伸缩化资源虚拟化56平台即服务PlatformasaServiceHighVolumeTransactionsSoftwareasaService服务器网络存储Metering监控计费服务云开发云企业云多租赁安全中间件协作业务服务CRM/ERP/HR定制服务数据中心虚拟化,动态供应服务管理J2EEOn-ramps服务封装Ajax开发On-rampsOn-ramps开发工具与其他云的互操作软件即服务基础设施即服务云计算的服务体系云软件的实例57Goole提供的云软件服务搜索引擎GmailGoogleDocsGooglePicasaWeb云计算时代软件的新变化58用户只需要使用软件,而不用自己去运行和管理软件。使用云上的软件只需注册、客户化、应用即可。用户变成租户,单一实例的软件使用模式变成多租赁的服务模式网站从Web信息发布平台变成Web应用软件运行平台,变成系统托管平台,变成多租户的软件服务平台软件运行在因特网上的共享数据中心上,而不是运行在自有的服务器和计算机上。应对用量变化的手段,从制作网络镜像手工增删资源,到系统和平台的自动伸缩。可个性化定制59在云计算平台中,如何开发、运行和维护那些为(最终)用户提供云服务的软件系统(包括系统软件、工具软件和应用软件等各类软件)本报告关注的主题关注云计算模式下的软件开发与设计技术GoogleAppEngine提供运行和开发的基础平台,允许开发人员编写网络应用,上传至AppEngine部署运行支持Java和Python两种开发语言AppEngine应用程序易于构建和维护,并可根据访问量和数据存储需要,进行伸缩。将应用程序隔离在它自己的安全可靠环境中,该环境与网络服务器的硬件、操作系统和物理位置无关利用AppEngineSDK进行开发GAE应用本地创建Web应用项目本地编译Web应用项目上传应用程序到GoogleAppEngine分布并行数据处理技术GoogleMap/ReduceHadoopMap/Reduce分布式文件系统GoogleFileSystemHadoop
DistributedFileSystem分布式数据库Google
BigTableHadoop
HBase分布并行编程技术分布并行数据处理62Map/Reduce用于大规模数据并行处理数据量大(超过1TB)在成百上千个CPU上并行处理用户只需实现下面接口 map(in_key,in_value)-> (out_key,intermediate_value)list reduce(out_key,intermediate_valuelist)->
out_valuelistMap/Reduce架构63MapReduce实现原理分布式文件系统65GoogleFileSystem(GFS)需求:在廉价、相对不可靠的计算机上对巨量数据进行冗余存储。为什么不用现有的文件系统?--Google面对特殊的挑战文件较大,每个都在100M以上,通常为几个GB文件通常需要频繁的追加用流方式读取高吞吐量低延迟针对上述问题,GFS在文件系统性能和可伸缩性方面进行了优化设计。文件用块存储每个块固定为64MB通过冗余解决可靠性问题每个块同时拷贝在3个块服务器上主服务器负责协调访问和保存元数据简单化的集中管理定制化的API无数据缓存较大文件块和流式读取使得缓存效果不佳66GFS的设计理念分布式数据库系统GoogleBigTable为了处理Google内部大量的格式化以及半格式化数据而构建的大规模分布式数据存储系统特点面向大规模处理、容错性强的自我管理系统,拥有TB级的内存和PB级的存储能力,每秒可以处理数百万的读写操作能够保存记录的不同时段的版本构建于GFS和Map/Reduce基础之上67BigTable的设计理念面向网页数据的发布、搜索和浏览等特定处理的需要,简化数据管理系统的设计,并提高性能不支持关联不支持SQL查询简化数据的一致性管理网页数据的管理对一致性要求不高简化事务管理网页数据的处理(搜索、发布)对事务管理要求不高面向海量数据管理要求设计分割和合并管理机制(基于元数据)设计自动伸缩功能(根据数据量调整资源用量)68分布式数据库系统软件工程国家重点实验室69BigTable架构F云计算平台架构F的云计算平台基于Web的随需应变的企业级软件开发和运行平台开发的软件能在F平台上运行由一组集成的工具和应用程序服务组成F云计算应用设计开发使GoogleAppEngine平台上Web应用的开发人员可以运行和使用驻留在F平台上的企业应用和数据提供了Java和Python库,允许开发人员从GoogleAppEngine中的应用软件,通过使用F中Web服务的API接口,查询和处理F中的数据,从而实现GoogleAppEngine中应用软件与F中应用软件的无缝地集成。FforGoogleAppEngine工具云计算模式下应用软件的设计采用基于SOA的SaaS模式。SaaS是指软件以在线服务的方式供租户使用,具备特性:服务(Service)面向企业的服务(Line-of-businessservice)面向个人消费者的服务(Consumer-orientedservice)多租赁(Multi-tenancy)动态可伸缩性(DynamicScalable)动态可配置性(DynamicConfigurable)云计算应用软件的体系结构是一种基于SOA技术体系的软件体系结构具有面向业务、粗粒度、基于服务、松散耦合和动态绑定等特点基于SOA的SaaS模式的软件体系结构设计云计算应用软件的体系结构设计更关注软件系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题组成员培训
- 专科护士培训收获
- 3.1 水循环(分层练习)高一地理同步高效课堂(人教版2019必修第一册)
- T-YNZYC 0083-2023 绿色药材 云黄连种苗生产技术规程
- T-YNAEPI 0001-2024 有机固废低温绝氧碳化处理工程技术规范
- 期中模拟试卷(1-4单元)(试题)2024-2025学年六年级上册数学人教版
- 穿越刺绣的时尚语言-抽纱刺绣与现代时装设计探索
- Windows Server网络管理项目教程(Windows Server 2022)(微课版)9.2 任务1 安装VPN服务器
- 幼儿教育绘本分享-幼儿教育专家
- 山东省滕州市2024-2025学年上学期中练习九年级英语试题(无答案)
- 小学四年级数学三位数除以两位数过关考核口算题带答案
- 2024年湖南湘潭市公安局招聘留置看护巡逻警务辅助人员28人历年高频难、易错点500题模拟试题附带答案详解
- 2025高考一轮复习:15位古代名人传记文言文挖空练习高考语文文言文备考总复习(全国)
- 2024-2030年中国电表行业发展分析及投资前景预测研究报告
- 供应链管理师技能竞赛理论考试题及答案
- 2024秋期国家开放大学《政治学原理》一平台在线形考(形考任务一)试题及答案
- 《创意改善生活》课件 2024-2025学年湘美版(2024)初中美术七年级上册
- 应急救援方案
- 2024-2025学年 浙教版七年级数学上册期中(第1-4章)培优试卷
- 2024北京朝阳区高三二模数学试题及答案
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
评论
0/150
提交评论