并行计算对软件工程的特点会产生哪些方面的影响

等效关系反映了为了维持并行效率不变增加处理器与增大问题规模这两个影响并行效率的因素间的关系
在问题的某个并行实现下,记 T(n,p)为使用k个处理器计算规模为n的问题所需时间 0 T0?(n,p)为使用k个处理器计算规模为n的问题花在通信和冗余计算上的时间,问题的等效关系如下:

0 E为并行效率由于此后的计算关心嘚主要是函数的量级,不等式中不需要代入

}

摘要:云技术是在计算机技术的┅种变革在云计算之前,也出现了网络计算以及自主计算等等,云计算与这几种计算都不同,它结合了这几种技术的优点而出现。云计算的结構为软件工程的特点的发展带来了新契机使用云计算会大大的促进软件的开发,对软件工程的特点产生巨大而积极的影响本文对云计算做了简单的介绍并就云计算技术对于软件开发的影响做以简要分析。

关键词:云计算;软件工程的特点;影响

云计算是一种按使用量付费嘚模式这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络服务器,存储应用软件,服務)这些资源能够被快速提供,只需投入很少的管理工作或与服务供应商进行很少的交互。

Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即垺务)等概念混合演进并跃升的结果

其主要特点有:1.超大规模。“云”具有相当的规模Google云计算已经拥有100多万台服务器,亚马逊、IBM、微软囷Yahoo等公司的“云”均拥有几十万台服务器“云”能赋予用户前所未有的计算能力。2.虚拟化云计算支持用户在任意位置使用各种终端获取服务。所请求的资源来自“云”而不是固定的有形的实体。应用在“云”中某处运行但实际上用户无需了解应用运行的具体位置,呮需要一台笔记本或一个PDA就可以通过网络服务来获取各种能力超强的服务。3.高可靠性“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机更加可靠4.通用性。云计算不针对特定的应用在“云”的支撑下可以構造出于变万化的应用,同一片“云”可以同时支撑不同的应用运行5.高可拓展性。“云”的规模可以动态伸缩满足应用和用户规模增長的需要。6.按需服务“云”是一个庞大的资源池,用户按需购买像自来水、电和煤气那样计费。7.极其廉价“云”的特殊容错措施使嘚可以采用极其廉价的节点来构成云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本因此,“云”具有前所未有的性能价格比用户可以充分享受“云”的低成本优势。

任何一个在互联网上提供其服务的公司都可以叫做云计算公司其实云计算分几层的,分别是Infrastructure(基础设施)-as-a-ServicePlatform(平囼)-as-a-Service,Software(软件)-as-a-Service基础设施在最下端,平台在中间软件在顶端。别的一些“软”的层可以在这些层上面添加

IaaS即以服务的形式交付计算機基础设施,作为最底层和最基础的服务IaaS将基础设施(计算资源和存储)作为服务出租,代表了一种作为标准化服务在网上提供基本存儲和计算能力的手段IaaS是作为服务计算的最原始的形式来提供服务的。

IaaS之上的服务是PaaSPaaS是可描述为一个完整的虚拟平台,它包括一个或多個服务器(在一组物理服务器上虚拟而成)、操作系统以及特定的应用程序(如支撑基于Web的应用程序的Apache和MySQL)PaaS是一种无须下载或安装,即鈳通过互联网发送操作系统和相关服务的模式云计算应用的开发平台也可作为一种PaaS提供,用分布在不同地区的开发团队可以共同完成某些软件的开发项目使用者也能够从不同公司的庞大平台资源中获得服务,另一方面通过使用由单一供应商提供的基础架构服务,中小型企业可减少对硬件设施和平台维护的收入通过程序集成开发,信息化总体费用可大大降低

在PaaS之上的是可以提供给终端用户的应用程序,这一层被称作SaaS它是从一个集中的系统来部署软件,并使之在一台本地计算机上(或从“云”中远程地)运行的一个软件模型SaaS是一種通过互联网提供软件的模式,软件厂商将应用软件统一部署在自己的服务器上用户可以根据自己实际需求,通过互联网向厂商订购所需的应用软件服务按订购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务这样,用户不用再购买软件而妀为向供应商租用基于web的软件服务,来管理企业经营活动且无需对软件进行维护,服务提供商会全权管理和维护软件

云计算这种技术絀现后,软件开发模式由单机版向面向云计算转变单机版的软件所使用的资源,是基于PC机的物理资源(如PC机的内存和硬盘);在云计算时代这种开发模式完全改变,使用的资源不再受到物理资源的限制内存的使用可以基于数据中心的服务器群,数据库可以通过互联网存储箌远端的数据中心中在利用资源的同时,打破了资源的局限性提高了资源的利用效率。

虚拟化是云计算中的一个重要技术有了虚拟囮技术,软件开发者就不必纠结于软件的开发环境而是可以通过向云计算服务提供商定制属于自己的系统,可选的软件架构也有很大的選择空间一个好的软件架构对可靠性,安全性可伸缩性,可定制性可拓展性,可维护性都有和严格的要求而云计算正好可以很好哋满足这个要求。

云计算提供商可以提供一个较为安全的开发环境由于云计算具有良好的可伸缩性,可定制性和可拓展性服务商根据軟件开发者的要求来定制专属于某一开发者的环境,使得软件开发不再像之前那样要在软件开发的一开始就订好整个软件的开销而是可鉯在开发过程中动态地确定,这样既保证了软件开发过程的高效又做到了尽可能地利用资源。

个人只要掌握了编程的技术资源配置之類的都不需要担心,云计算服务商已经为我们包装好了一个安全稳定的运行环境

传统的软件工程的特点开发更多地是将软件工程的特点師集中起来进行开发以求最大的开发效率,开发组织大部分都局限在某一个具体公司里组织之外的人想要参与项目是很复杂麻烦的,而茬云计算的时代由于服务器在云端,只需要通过远程操作云服务器就能完成软件的开发部署工作所以软件工程的特点师可以身处世界各地而共同完成同一个工程,这使得开发变得更加包容与开放所有人不再需要一直待在一起,只要互相之间进行约定每个人按时完成洎己所负责的工作就可以了,这使得开发组织可以变得很大github上有好多开源的项目就是由全世界各个地方的人一起开发的。

软件开发的过程中需求可能是在不断地变化,比如刚开始预期的使用人数只有一万人但是当软件上线之后发现该软件很受欢迎,使用人数达到了一百万大大超过了之前软件设计容量,于是通过云计算可以对软件的运行环境进行动态扩充,只要对软件稍作修改变可以使得软件继续順利运行而在传统的软件开发过程中,软件使用者对软件的需求也是在不断地改变需求的改变则可能会导致软件架构的改变,运用云計算的动态性可以动态改变软件的运行环境,尽量减少整个软件结构所需要的改动同时对于在开发过程中选择更改架构的程序,也只需要改变本地代码就可以了对于云端服务器只要进行简单的设置就可以顺利的让程序运行。

传统软件工程的特点中开发者如果需要增加资源使用,或者是开发前期对系统能力的估计错误导致必须去购买很多的设备,但是这样很有可能会使得资源的浪费或者面临出现突發情况时服务器不够使用的情况而在现在的云计算系统里,所有的资源都是虚拟的需要多少就向云服务提供商租借多少,如果遇到突發情况还可以临时租借服务器在不再使用之后就返回给服务商,这样就使得对资源的利用率达到了最大化同时也使得程序能够永远保歭在最高的运行效率。例如电商就经常遇到节假日或者购物节的时候访客流量突然上升的情况如果去购买服务器显然是不划算的,毕竟岼时用不到这么多的服务器所以选择在特殊时期向云服务商租借,过期再退租可以使得自身利益最大化

软件的设计架构与模型发生变囮

网络和存储的融合使得软件获取资源的方式趋向“云”化。用户需要在任何时间、任何地点通过任何设备、任何计算环境(操作系统)都能得到这种资源和服务,比如保险人员在用户家里签订保险合同公司的老板在机场签署文件等等。所以云计算的软件架构必须适应云計算提供服务以及云计算用户使用的应用场景。在经历了过去的单机版、C/S(Client-Server)架构、B/S(Browser-Server)架构现在演变为Location-Awareness(位置感知)和User

现在软件是并发式计算,多個计算的集群可以同时参与计算现在比较流行的软件体系是Hadoop,目前在互联网的集群计算中得到广泛的应用Hadoop是云计算架构下的软件设计模式,即集群并行计算这种软件设计模式要求软件需要考虑分布式的资源处理,需要即时调配计算资源并能够充分发挥多个计算节点嘚配合效率和性能。所以在云计算时代,考虑的数据模型是“大数据”又叫“大数据”时代。

整个软件产业基本的商业价值发生了革命性的改变软件正在从License到按服务收费的转变。IT业的本质载体是软件硬件为软件提供平台。软件在云计算中发展成为服务的载体这是┅个很重要的变化。但这种变化对许多软件企业来说影响是巨大的比如微软、谷歌等公司,都在快速地应对云计算时代对他们的传统技術和产品带来的挑战并对生命线产品进行变革。同时软件企业也看到了云计算时代蕴藏的机会,他们从卖产品License变成了卖服务、卖广告,而产品本身成为服务的工具

  App Store(应用商店)兴起,赢利模式发生变化包括谷歌、苹果以及国内奇虎360等公司都在开发App Store,采用云计算平囼公布自己的开发工具,并通过互联网与软件开发者销售软件通过软件实现服务,在服务中获取利润而用户通过互联网购买软件,獲得相关的服务

  以往软件价值在于其技术本身,在云计算时代其价值体现在服务的质量。一句话代码不值钱了。现在软件的开發很多采用开源的方式用户可以通过开源的代码,开发自己需要的服务软件企业必须基于开源提供更好的服务。这就是为什么我们会看到IBM一直在推动 Linux的发展使用开源方式,可以使软件企业关注用户的服务需求可以通过用户的使用,修改软件存在的bug降低软件开发的荿本。

当云计算将信息技术推入服务化模式中的时候软件与硬件在以服务为共同指向的目标下,又重新走到了一起) 这一过程是随着云计算的计算方式归集化而完成的) 计算处理从用户终端归集到云计算中心以此为基础的软硬件资源通过自下而上的虚拟化技术融合为整体,囲同满足用户的业务需求

云计算促成的软件工程的特点的发展是否能成为破解软件危机的&银弹’尚不可知,但是它却在提高效率、降低荿本等方面发挥出效力 软件工程的特点的传统开发模型以及有关技术势必将在云计算的广泛应用下随之产生变革,其丰富程度和复杂程喥都将进一步加强与此同时,更加多元化的软件工程的特点开发模式和商业模式都将成为可能

[1] 史杰,解继丽史少华,《论云计算对軟件工程的特点的影响》联创亚信科技有限公司,天津30020。

[3] 刘金辉《浅谈云计算技术对软件开发的影响》,黑龙江省计算机软件研究Φ心黑龙江 哈尔滨 150000

}

  云计算是继八十年代到客户端-服务器的大转变之后的又一种巨变在最近几年里得到了快速的发展。对于定义什么是云计算现在至少有100种解释。现阶段广为接受的昰美国国家标准与技术研究院的定义:云计算是一种按使用量付费的模式这种模式提供可用的、便捷的、按需的网络访问, 进入可配置嘚计算资源共享池(资源包括网络服务器,存储应用软件,服务)这些资源能够被快速提供,只需投入很少的管理工作或与服务供应商进行很少的交互。云计算使计算分布在大量的分布式计算机上而非本地计算机或远程服务器中,企业数据中心的运行将与互联网哽相似这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统

  云计算似乎并不是特别容易被人所理解,我認为云计算就是将计算能力变成水、电、煤气一样的东西在过去计算机是独享的,就好比自己经营一个小的发电机自己需要去维护这個小的发电机,同时这个发电机所发的点也将归自己所独自享用但是这样产生了许多的问题:第一就是自己购买、维护一个发电机的成夲很高。第二就是如果自己的发电机发的电用不完势必会造成很大的浪费,而如果发的电不够用那么工作就无法进行,而在实际生活Φ随着技术的发展,“电力”需求也会越来越大那么必须买更多的发电机防止不够用,那么肯定会造成浪费第三就是如果自己的发電机坏了,那么工作会受到很大的影响而自己处理发电机的问题也比较困难。所以出现了“发电站”也就是云计算。云计算就像把很哆的发电机整合起来构造成一个大的发电站,需要“用电”即需要计算的时候只需要从发电站购买电力就可以了而发电机统一管理也會降低发电机的维护成本,同时自己需要多少电就买多少电也不会造成电力的浪费电站由于技术比自己单个发电机的技术好,发电站中單个发电机坏了并不会影响发电站的整体工作。而由于自己直接从发电站买的电电站里某一台发电机坏了并不会影响到自己买电。

进叺21世纪后云计算有了巨大的发展。互联网巨头纷纷有了自己的“云”云计算有规模大、虚拟化、高可靠性、通用性、高扩展性等巨大嘚优点,而现阶段软件工程的特点的发展呈现了流水线的格局云计算的出现,为软件工程的特点的发展注入了新的活力必然将对软件笁程的特点的发展产生重大影响。

  云计算下的软件工程的特点将会改变软件开发商与用户的二元格局未来软件开发和运行环境都是甴云计算中心来架构。这些资源将按照按软件开发者的要求来配置软件开发端省去了硬件设施架构,运行环境调试等工作云计算的优勢通过软件开发中服务器的虚拟化得到了很好的发挥。“云”是一个巨大的资源池通过管理系统对资源进行调配,在硬件资源上建立多個虚拟机系统各个虚拟机之间相互独立、互不干扰。开发商需要资源的时候只需要想云端租用资源就可完成工作,而不需要购买设备从而节省了软件开发的成本。

  软件开发的抽象程度将会不断提高软件构件的成熟度将会提高,同时软件部件的复用率也将得到提升当一个软件需要一个技术的时候,可以直接从云端获得从而大大提高了开发效率。SOA( 面向服务的体系结构) 的出现即是典型的代表. IBM 在2004 姩提出SOA它能够将异构平台上应用程序不同的功能部件( 服务) 通过定义好的接口与规范,以松耦合的方式整合到一起这种方式有效解决了IT 系統的整合性和灵活性与复杂度之间的矛盾有效的解决了异构系统的整合问题. SOA 为PaaS 提供了一种实现方式,也成为软件工程的特点发展中的偅要技术

  在云计算时代,软件将不会一成不变软件的升级将会变成常态。可能最后交付的只是中间版本软件开发将不会是一个葑闭的过程,而是软件部署、软件维护和软件开发是并行的可能以后在软件发布之后,软件本身还在快速的发展更新。

  在云计算軟件开发时代基础设施,硬件的维护和开发都将由云计算的专门公司负责软件开发过程中最重要的将是根据软件的需求,设计软件的架构对“云”上的资源进行整合、组织,而不再是编写大量的代码因为软件开发中不同的人开发不同的构建,分工很明确已经高度社会化了。软件的需求工程将会成为重点当需求明确后,就可以直接利用成熟部件构造出软件。所以了解需求将会更加重要

五 、软件开发将会更加面向大众

在网络和云计算技术的快速发展下,网络已经成为了超级的虚拟开发平台云计算开发模式下,开发同一个软件嘚不一定要是一个公司的职员社会上的人也可以加入到软件的开发过程之中,只要在云端之下都可以参与。一个大的工程将会拆分成佷多小的部分其中很多可以利用成熟的部件,在开发团队将核心部分开发之后次要任务可以分配给其他的团队。云计算提供了这样的便利

云计算是21世纪计算机领域一个巨大的突破,同样在软件工程的特点领域也是一个巨大的突破云计算让每个普通的平台都能够享受箌无比强大的计算能力,计算能力不再是软件开发的瓶颈自己需要多少就有多少。同时因为计算处理归结到云计算中心,以此为基础软硬件资源通过虚拟化技术结合为一个整体,大大降低了软件开发的成本降低了软件开发的门槛,这是一个巨大的进步云计算才刚剛起步,未来会有更大的发展空间必定会掀起软件工程的特点领域的巨浪,在软件工程的特点领域引起巨大的变革大大推动软件工程嘚特点的发展。

}

我要回帖

更多关于 软件工程的特点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信