浅谈云计算时代

一、简述###

   这几年,在互联网技术不断发展的推动下,云计算、大数据、中间件等一系列的新概念不断涌现,并且在微软(Azure)、IBM(SoftLayer)等几大巨头的推动下,更是几乎没有程序员未曾听闻云计算的大名的,似乎IT行业已经进入到了云计算的时代。

   然而,任何一项技术的产生都不是凭空出现的,都具有其特定的原因;而一般新技术的发展,都需要两方面的力的作用:一个是需求的拉动,一个是技术的推动。没有社会和产业的需求,科学家所构想出的新的概念或者程序员新开发的一个项目很难在市场上走通;比如云计算融合的一项技术就是网格技术,虽然在科学计算领域取得了不错的效果,但是很难在商业环境中取得更大规模的流通。而随着互联网技术的发展,人们越来越不满足现在的现在硬件的发展速度,更强大的计算能力、更高的资源利用效率、更低的成本,这些现实的需求也在不断得拉动云计算概念的发展。同时,若是没有分布式计算、并行计算、网格存储、虚拟化等一系列的计算机技术和互联网技术的积淀和支撑,云计算的发展也是寸步难行。

二、什么是云计算###

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

  云计算可以认为包括以下几个层次的服务:

  • 基础架构即服务(LaaS)####

   IaaS(Infrastructure-as-a- Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。

  • 平台即服务(PaaS)####

   PaaS(Platform-as-a- Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用的开发速度。

  • 软件即服务(SaaS)####

   SaaS(Software-as-a- Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。

   我们应该怎么理解云计算呢?

   云计算的一个特点是用户的公众性:就如以前的网格计算一般,不过网格计算是科学家在使用,而云计算不仅仅可以为科学家服务,政府、企业和个人都可以使用云计算。另一个特点是设备的多样性:在这方面来说,云计算与物联网和互联网是联系在一起的;我们使用的计算机、手机、平板电脑以及其他的智能设备等都可以成为云计算的终端,为云计算提供计算资源。从技术角度来看,云计算的本质更容易概括成融合,主要是三个方面的融合:第一方面是使用方式即SaaS的方式,通过Internet为用户提供软件服务;第二方面是技术基础,云计算的基础来自分布式计算和SOA架构(面向服务的体系结构),通过网格计算和SOA,实现分布应用;第三方面是设施的虚拟化,通过分区计算和集群计算的融合,把多台计算机虚拟成一台,从而大幅提高计算能力。

三、云计算下的软件工程及其特点###

   软件的发展大体上经历了程序、软件产品和软件服务三个阶段,早期的计算机系统受计算机硬件的限制,只能在有限的硬件平台上开发规模简单的程序,开发效率受到个人能力的限制。随着时代的发展,计算机硬件性能的不断提高和应用的扩展,个人的开发模式越来越不能满足软件开发的需求,工程化的思想以及相关的设计方法在软件开发中占的比重愈来愈重。1968年在德国举行的NATO软件工程会议上,为应对“软件危机”的挑战,提出了“软件工程”的术语。1972年IEEE学会的计算机协会第一次出版了《软件工程学报》。此后,“软件工程”这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用“软件工程”这个术语,很多大学的计算机科学系先后设立软件工程课程。

   一般而言,企业计算系统资源按照分层的方式进行设计,体现在“应用—中间件/数据库—操作系统—硬件服务器”紧耦合的模式部署。这种资源架构是软件工程设计开发模式的先决条件。云计算的服务架构由IaaS、PaaS、SaaS构成,通过标准架构体系的中间件,屏蔽不同操作系统间的差异,在虚拟化硬件和操作系统上提供可靠稳定的业务保障。

   云计算环境下,软件技术、架构将发生显著变化。首先,所开发的软件必须与云相适应,能够与虚拟化为核心的云平台有机结合,适应运算能力、存储能力的动态变化;二是要能够满足大量用户的使用,包括数据存储结构、处理能力;三是要互联网化,基于互联网提供软件的应用;四是安全性要求更高,可以抗攻击,并能保护私有信息,五是可工作于移动终端、手机、网络计算机等各种环境。同时软件开发的环境和工作模式也将发生变化,基于云平台的开发工具、开发环境、开发平台将为敏捷开发、项目组内协同以及异地开发等带来便利。项目组内也可以利用云平台,实现在线开发,并通过云实现知识积累和软件复用。

   在云计算环境下,由于软件开发工作的变化,也必将对软件测试带来相应的影响和变化,测试重点必然会做出相应的调整;同时,在关注传统软件质量的同时,还应该关注云计算环境下所带来的新的质量要求。同时,云计算环境也要求软件测试的工具、环境、工作模式也应发生相应的转变。软件测试工具也应工作于云平台之上,测试工具的使用也应可通过云平台来进行,而不再是传统的本地方式;软件测试的环境也可移植到云平台上,通过云构建测试环境;软件测试也应该可以通过云实现协同、知识共享、测试复用。

四、软件工程的发展趋势###

   云计算给软件工程带来的影响已经体现在诸多企业的实际行动之上,传统软件企业的价值链收到冲击。但是,云计算下的软件工程并不可能完全推到旧有的一些模式,多元并存最终走向融合是较长时期内的一种比较可能存在的状态。软件系统的复杂程度在不断得提高,而复杂性的提高本质上是丰富而不是取代。而且云计算领域也不能囊括如今软件开发环境的全部,无论从技术性、安全性还是推广性都有待在实践中去加以验证。

posted @ 2016-10-22 18:59  Farrow  阅读(819)  评论(0编辑  收藏  举报