




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈云计算时代的软件开发技术摘要 云计算的结构为软件工程的发展带来了新契机。本文简单简绍了云计算时代软件的特点,并探讨了云计算时代软件的开发技术,指出现阶段基于云计算的软件开发主要是在云计算平台上进行的,而且对几种商业云计算平台做了比较,着重介绍了基于模型驱动体系架构(Model Driven Architecture,MDA)的云计算软件开发平台模型。关键词 云计算;软件开发;云计算平台;MDA 1.引言云计算的出现是信息技术领域的重要发展。借助于网络和虚拟化等技术,云计算实现了对软硬件资源的集中化、动态化和弹性化管控,建立了从硬件资源到软件应用的整合一体化的全新服务模式。这种服务方式给传统信息技术的诸多领域带来了新的机遇与挑战,其中一个重要的方面就是软件工程。软件工程的发展已经形成了工业化的流水线形式格局,但是云计算的出现彻底搅乱了这一模式。那么,云计算是否能成为克服软件危机的关键所在呢,传统的软件会有怎样的改变,传统的软件工程模式又会有怎样的变化呢,在云计算平台上开发软件又是怎样进行的,这都是云计算带给软件工程的新问题。2.云计算的发展与服务体系结构 2.1 云计算概述云计算的出现是在商业运营模式的推动下,在已有的分布式计算、网格计算、虚拟化等理论和技术的基础上建立和发展起来的。云计算强调按需使用、动态调配、弹性扩展的理念,以用户的需求为原则进行资源的组织和交付。具体而言,其服务内容包括了基础架构即服务(IaaS)、平台即服务(PaaS)和软件 即服务(SaaS)3 个部分。图2.1服务体系结构3 个层次中基础架构即服务为用户提供基本的计算和存储能力,通过虚拟化和智能化技术自动为用户分配计算和存储资源。平台即服务和软件即服务则是面向软件资源,两者在一定程度上存在着关联。软件即服务是通过虚拟化技术和多租户技术将单个的软件实例服务于多个用户组织,多用户共享软件架构,这样就降低了每个客户的资源消耗。但是这种应用方式在对用户个性的使用方面不可能有太多的涉及。在这种条件下,一些厂商开始逐渐将软件开发的API组件、开发工具、运行环境等资源公开给用户使用,这就是基于云计算的软件开发平台。平台为用户提供了更广泛的开发空间,使软件的开发更多的面向业务流本身。云计算的从硬件到软件的3 层服务体系创造了新的软件开发模式。2.2 云计算平台概述云计算平台有三个层面的含义: 云基础设施平台、运行云系统软件的平台和提供用户进行二次开发的云软件平台。云计算平台可以划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。3计算下的软件工程及其特点和发展趋势3.1云计算下的软件工程及其特点软件的发展大体上经历了程序、软件产品和软件服务3 个阶段。早期的计算机系统以硬件为主,在硬件上搭配规模不大的程序,程序开发的流程较为简单,开发效率依赖于程序员的个人才智。随着计算机性能的提升和应用的扩展,软件的比重不断提高。无论是从规模还是从复杂程度上,都超越了个人的设计开发能力。工程化的设计思想及其相关的技术方法逐渐开始在开发中显得愈加重要。1968 年“软件工程”的概念被首次提出。软件工程强调的可维护性和文档化以及对软件生命周期系统化的管理使软件成为一种产品。软件产品的出现使得软件与硬件分离,成为独立的研究体系。在软件开发方法上逐渐形成了分析、设计、编码、运行、维护的一般流程。软件涉及的关系主体方面也基本形成了软件开发商与用户的二元格局。在软件工程提出后的几十年间,开发方法和设计思想不断创新,但是这一基本流程和格局没有太大变化。软件的开发与计算模式和运行方式直接相关。一般而言,企业计算系统资源按照分层方式进行设计,体现在“应用中间件/数据库操作系统硬件服务器”紧耦合的模式部署。这种资源架构是软件工程设计开发模式的先决条件。云计算的服务架构由IaaS,PaaS和SaaS 构成。通过标准架构体系的中间件,屏蔽不同操作系统间的差异性,在虚拟化硬件和操作系统上提供可靠的稳定的业务保障,这也就是PaaS的核心。在云计算的模式下,软件工程在面向对象的基础上进一步抽象化,提升到面向服务的层次。面向服务也就是将业务流整体分成子业务流,对子业务流级别的模块进行组织设计,并最终形成软件系统整体。面向服务使软件在IT系统结构层次结构系统中更加接近应用。面向服务的开发模式延伸出了云计算下的软件工程。其基本特性表现在以下方面: (1) 构件的成熟度提高,软件的可复用程度得到提升。软件复用一直是提高软件开发效率克服软件危机的重要途径,而构件可以在更高抽象层次上实现大粒度的软件复用。软件复用程度的提高一方面可以运用成熟构件模块减少软件开发错误,提高软件的可信性;另一方面则可以缩短开发时间,提高开发的绩效。根据国内著名PaaS提供商800APP 提供的信息,云计算模式下开发时间可以缩减1/31/10。绩效与可靠的矛盾关系一直是软件危机的根源所在,云计算在这两方面同时具有的优势无疑为缓解软件危机带来了希望。(2) 开发者面向业务应用,需求工程成为重点。在PaaS 的平台中,开发者有可能写很少的代码甚至不需要代码,而只需按照业务流程对平台中提供的各类资源进行设计和组织即可。这种模式下,需求与开发具有了同等的语境,同时需求在软件工程中的地位也将更加重要。(3) 云计算下的软件工程打破了软件开发商与用户的二元格局,第三方云计算中心的作用更加重要。云计算模式下的软件开发和运行环境基本上都是由云计算中心来架构的,这些资源按照开发者的要求进行配置。在开发者一端省去了硬件设施架构、运行环境调试等工作,只需一个浏览器和一些简单的工具就可以实施开发。开发完成之后的测试以及运行和维护也全部由云计算中心负责。这种三足鼎立的关系是传统软件工程中所不曾有的,这既改变了工程业务链也改变了商业价值链。云计算中心将开发者与用户联系起来,并且在软件体系中占据了重要的位置。这种情况将会是云计算推广后众多的中小企业所面临的问题,对于大型的软件开发企业来讲,则可以通过构建企业私有云来完成之一嬗变。但是这也将存在着巨大的技术、资金挑战。因此,公共云与私有云的软件工程将会并存发展,这也是比较现实的一种预测。3.2 软件开发的发展趋势云计算下软件工程也进一步显现出软件工程整体的发展趋势。从软件与硬件的关系上来看,早期信息系统主要是软硬件的结合。在后期的发展中,软件的独立化程度开始提高,这也成为了软件工程存在的一个重要标志,那就软件作为一种产品进行着工业化的生产和消费流程。当云计算将信息技术推入服务化模式中的时候,软件与硬件在以服务为共同指向的目标下,又重新走到了一起。这一过程是随着云计算的计算方式归集化而完成的。计算处理从用户终端归集到云计算中心,以此为基础的软硬件资源通过自下而上的虚拟化技术融合为整体,共同满足用户的业务需求。从软件开发的过程来看,则是抽象程度和开放程度不断提高。从低级语言到高级语言,从面向过程到面向对象,再从过程函数到流程模块。在软件工程的发展过程中,抽象程度不断提高,问题空间与解空间的一致性不断加强。这也体现了技术发展中人本指向的最终归宿。而这一过程也伴随着软件开发的逐步开放,SOA(面向服务的体系结构)的出现即是典型的代表。IBM 在2004 年提出SOA,它能够将异构平台上应用程序不同的功能部件(服务)通过定义好的接口与规范,以松耦合的方式整合到一起。这种方式有效解决了IT系统的整合性和灵活性与复杂度之间的矛盾,有效的解决了异构系统的整合问题。SOA为PaaS提供了一种实现方式,也成为软件工程发展中的重要技术。开放性的出现在很大程度上也得益于网络的广泛应用。在网络环境下,软件开发从封闭的计算机平台走向互通、互联、协作的网络平台环境。网络不再仅仅是通信的工具,而逐渐具有运算和服务功能。软件开发从网络边缘走向网络中心,网络成为虚拟的超级开发平台,这在云计算中得到了最佳的体现。在网络平台出现的情况下,“网构软件”成为软件发展的一种新阶段。在网络计算技术和网络存储技术所呈现的开放性的环境下,网构软件实现了软件在原有形态上的抽象。这使其既保留了原有软件的功能性概念,同时又体现出自主、协同和多态等特征。PaaS无疑已经成为网构软件的实现平台。这种开放性在云计算中已经得到了最大的体现。3.3软件工程多元化的并存将延续云计算给软件工程带来的影响已经开始体现在诸多软件企业的行动上。传统软件工程既有的价值链开始受到冲击,但是云计算下的软件工程不可能完全推倒旧有的一些模式,多元并存是较长一段时期内比较可能的状态。软件系统的复杂程度在不断提高,一方面是应用的复杂性;另一方面也是领域的复杂性。复杂性的提高本质上是丰富而不是取代。尽管云计算模式下的软件开发运行模式有着诸多的优点,但是也有其适用的领域限定,而这个领域在目前不能够代表软件工程的全部。无论是从技术性、安全性和推广性都给这种新形式的软件工程制造了界限。其理论、技术和方法还有待在实践中探索。从另一个方面来看,软件工程的系统性和广泛性也要求多种技术并存、多种模型并存。任何一种技术只要它存在的条件尚有一定的规模,它就不会消失。总体来看,未来一段时期内,软件工程的多元并存将会是比较现实的情况。4.云计算平台概述4.1 云计算平台的内涵云基础设施平台是云基地庞大的服务器集群,这个集群提供了几近无限的存储空间并且具有超高速的网络频宽,主要提供分布式的存储功能;运行云系统软件的云平台是指在硬件设施的基础之上,安装了云系统软件的服务器集群,这样的平台具有更深意义上的云平台,能够提供云计算应该具有的一切计算功能,如高性能分布式计算、数据挖掘等; 提供用户进行二次开发的云软件平台主要是指大型IT公司推出的比较稳定也相对成熟的云计算应用平台,这类平台提供了丰富的软件服务功能,如云电子邮件、云办公软件、云财务分析软件和云差旅规划软件等,也提供了供二次开发的云计算平台,如Google公司的GoogleApp Engine( GAE) 、Yahoo 的Yahoo Application Platform( YAP ) 、Amazon 的Elastic Computer Cloud( EC2) 、S 的 以及Microsoft 的Windows Azure Platform 等。4.2 几种云计算平台的比较(1) GAE 基于Google的IaaS 云计算基础设施资源,该平台具有可弹性伸缩计算与存储资源的特点,通过Web-based GAE 网站访问,可以免费开发10 个应用程序,支持Java、Python 开发语言。(2) YAP 采用了Yahoo 的Y!OS 开放式策略,访问方式为Web-based Y! OS 网站,支持的数据库和查询语言分别是Hbase 和YQL,可以无限制地开发免费应用程序,支持PHP、Python 和Java 等开发语言。(3) AWS 包括Amazon 的EC2 计算功能、S3( Simple Storage Service) 存储功能、SimpleDB 云计算数据库和SQS( Simple Queue Service) 信息处理功能。该平台采用开放源代码的Xen 虚拟化技术,通过定制化的虚拟主机,企业需自行安装操作系统和开发平台,提供没有限制的免费应用程序的开发。(4) 是采用Visualforce 用户界面技术通过Web-based F 进行访问的云计算平台,该平台的数据库和查询语言分别是F 和Apex,支持Apex 和Flex 等开发语言,可以免费开发一个应用程序。(5) 微软的Windows Azure Platform 综合了WindowsServer 2008 与Hyper-V 虚拟化技术开发的集成开发平台与Live 服务的云计算平台,可以通过WebbasedAzure 网站访问,数据库和查询语言分别是SQLService 和SQL,可以开发数量无限制的应用程序。5.基于的云计算软件开发平台模型5.1基于的云计算软件开发平台的总体架构 云计算强调各种资源的共享和随需分配,其服务模式划分方法较多,但最终都可以归纳为三类基本服务:基础设施即服务(Iaas)、平台即服务(Paas)、软件即服务(Saas)。参照云计算技术模式的基础层、平台层和应用层的设计理念,构建基于 的云计算软件开发平台框架,如图5.1所示。图5.1基于的云计算软件开发平台框架图(1) SaaS 层面,提供软件定制开发服务接口与软件应用服务接口,对外提供软件定制与软件应用服务。客户通过统一开放的面向服务的体系结构(Service- Oriented Architecture,SOA)、服务接口调用该层面服务。(2) PaaS 层面,软件业务化定制引擎通过统一开放的API,向SaaS 层面提供软件系统定制服务,技术支持主要是MDA 平台工具、构件库和SOA。该层面是整个基于MDA 的云计算软件开发平台的核心。(3) IaaS 层面,提供内部虚拟化统一平台和分布式集群环境,向上提供基础层面的运行支撑功能,提升整体资源利用率,降低软件系统运维难度。5.2基于MDA 的云计算软件开发平台的初步实现方案 基于MDA的云计算软件开发平台,包括基于云计算环境的MDA 软件开发工具、云计算支撑环境和云存储构件库等。其中,软件开发MDA工具是主要研究目标,应围绕这个核心平台进行展开式研究。在MDA 中软件开发过程是由软件系统的建模行为驱动的。图5.2是通用软件开发流程。图5.2 通用软件开发流程基于的软件开发过程大致如下:(1) 使用平台无关模型(Platform Independent Model,PIM)来对系统进行建模。在此过程中,根据客户需求和其他因素对PIM进行精化,以使得能够更加精确地描述系统。(2) PIM可以被转换到一个或者多个特定平台模型(Platform Specific Model, PSM),对于每种特定的技术平台都会生成独立的PSM。(3) 由特定的模型转换方法将每个PSM模型转换为代码。 系统开发最初的需求捕获和分析,最后的测试和发布环节,同传统的软件开发一样。基于MDA的云计算软件平台上,应用MDA开发过程,建立系统的PIM模型之后,云端提供构件支持、环境支持、MDA工具支持,将PIM模型自动转换为一个或多个PSM 模型,然后再生成代码,最终测试,发布系统。基于云计算环境的MDA软件开发工具,应该围绕传统MDA软件开发周期进行研究和设计。根据以上分析,给出基于MDA的云计算软件开发平台模型架构,如图5.3所示。图5.3基于的云计算软件开发平台模型架构图由图5.3可见,基于MDA的云计算软件开发平台模型架构主要分布于云计算环境的两个服务层面:SaaS 和PaaS。在SaaS 层面,向用户提供了如下软件业务化定制接口:(1) 基于SOA的变换定义编辑器:PIM模型是根据变换规则转换为PSM模型的,变换规则被定义后,可以随平台环境的改变而改变,这就需要变换定义编辑器来对其进行创建和修改。(2) 基于SOA的模型编辑器(CASET工具):为PIM 模型提供的编辑器,可以创建和修改模型。(3) 基于SOA的代码编辑器(IDE):交互开发环境(Interactive Development Environment)提供的常用功能。各个PSM 模型转换为代码块之后,由于代码之间存在细节问题,需要进一步调试、编译、代码编辑。以上的用户使用接口均采用SOA 的方式提供,平台需要考虑其中的技术细节与使用形式,以及开放给用户的编辑器UI 规划等问题。在PaaS 层面,提供了该平台的核心:软件业务化定制引擎。其中,云环境下的模型交换和变换交换总线是联系整个开发平台的技术纽带,其以的架构方式,对外提供统一开放的API,其余分布在云端的各模块借以和它进行交互。该层面包括的各模块的功能概括如下:(1) 基于云存储的变换定义仓库:基于云存储,保存变换规则。(2) 基于SOA的模型校验器:用来生成PSM 模型的PIM 模型必须定义得非常精确模型校验器可以按照一组预定义或用户定义的规则来检查PIM 模型并确保模型适合进行变换。(3) 变换工具:该工具以开放的风格组合了一系列功能,如PIM 到PSM 的变换工具,PSM到代码的转换工具(内置变换规则,把符合某种预定的PSM 模型作为输入,经过转换输出代码),PIM 到代码的转换工具(同时支持从PIMD 到PSM和从PSM 到代码的变换,PSM 是隐含的),还有可调的变换工具(给变换提供一些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视工业化浪潮下的质量控制报告:2025年行业深度剖析
- 聚焦互联网医疗平台创新的2025年商业模式与患者服务满意度
- 2025年金融科技在普惠金融中的金融科技生态体系建设研究报告
- 2025年乡村旅游民宿集群项目旅游产业链协同效应研究报告
- 2025年制造业供应链数字化协同管理下的绿色供应链发展研究报告
- 艺术市场新机遇:2025年在线拍卖平台跨境电商策略
- 金融量化投资策略2025年市场风险预测与风险防范策略报告
- 中医历年考试试题及答案
- 中医免疫学试题及答案
- 中医伤科考试题及答案
- 保险基础知识简读本(2024版)
- 集团公司司库管理办法
- 住院患儿实施院内转运临床实践指南2023版课件
- 主播新手上路-打造游戏直播与娱乐新风向
- 2024-2025学年中职数学基础模块 下册高教版(2021·十四五)教学设计合集
- 第1-4章综合检测试卷2024-2025学年浙教版数学八年级上册
- 市场营销经理助理考试题库
- 初中数学新课标下综合实践-项目式学习的思与行
- 四害消杀培训
- 人工智能实验室建设规划方案
- 伐木工安全培训
评论
0/150
提交评论