水利领域云计算的现状分析与思考
2014-04-06毛声录王志坚
叶 枫,张 鹏,毛声录,王志坚
(1. 河海大学计算机与信息学院,江苏 南京 211100;
2. 江苏省水利工程规划办公室,江苏 南京 210029;
3. 南京市六合区水利局,江苏 南京 211500)
水利领域云计算的现状分析与思考
叶 枫1,张 鹏2,毛声录3,王志坚1
(1. 河海大学计算机与信息学院,江苏 南京 211100;
2. 江苏省水利工程规划办公室,江苏 南京 210029;
3. 南京市六合区水利局,江苏 南京 211500)
云计算是一种基于互联网的新型计算与服务范型,能为技术密集和问题复杂的水利行业提供一种全新思路和方法。在介绍云计算概念、关键技术等的基础上,根据水利信息化的发展现状,强调云计算在水利信息化中的必要性和迫切性,总结当前云计算和与水利信息化领域结合方面存在的 2个突出问题;并结合水利行业信息化特点和 IBM“蓝云”计算平台,从软件工程的角度提出构建水利领域云应用的过程,提供一整套比较完整的实施步骤。通过对已有云应用经验总结,该研究是可行的。
云计算;数据驱动;水利领域;关键技术;现状分析
1 研究背景
作为一种全新的计算和服务范型,云计算[1-3]是虚拟化技术、效用计算、并行计算、分布式计算等混合演进并跃升的结果,代表了信息技术发展的最前沿。运用云计算,可以整合计算、存储、网络等基础设施资源,充分共享软、硬件,实现绿色计算的目标;也可以支持不同环境下运行的遗产系统,让用户通过虚拟桌面以一致化方式访问数据,降低运维成本。随着学术界和工业界不断地大力推动,云计算的概念已逐步落地,并在诸多行业得到应用,如:生物信息计算、语义分析应用、计算机病毒处理及高性能并行计算等。当前,水利信息化领域也开展了对云计算的研究和应用,并且取得了一些成果,在很大程度上解决了水利信息化领域存在的“基础资源整合难、遗产系统重用难、业务系统协同难”等共性问题[4-9],为水利信息化发展探索出新的途径。
在这样的背景下,越来越多的水利信息化单位考虑或正着手建设各自的云平台,研发云服务,也憧憬能受益于云计算并取得丰硕的成果。但是,必须认识到云计算本身具有较高的学习和应用门槛,建设云平台和应用往往需要投入相当多的人力、物力。不合理的目标设定或误用的云计算模式,易于重蹈 Google 公司“医疗云”失败的覆辙,造成巨大的浪费,最终结果可能只是由一堆服务器、PC 机等组成的信息孤“云”或伪“云”。当前的研究主要集中于云计算的开发和应用,尚未对云计算建设中的关键问题进行分析和讨论,如:针对不同的水利业务,如何进行云计算模式的选型。这样,在一定程度上缺乏全面性和前瞻性。因此,研究水利领域云计算的特点,避免云计算建设中的潜在问题,明确能用云计算来解决的问题和业务,以及掌握构建云应用的一般流程是非常有必要的。
2 云计算关键技术和发展现状
2.1 基本概念
云计算的出现并非偶然。早在 20 世纪 60年代,就有学者提出把计算能力看成一种像水、电等一样的公用设施提供给用户的理念,这成为云计算思想的起源。随着虚拟化技术、效用计算、分布式计算等发展,云计算成为它们发展融合的产物。但是,云计算尚未有统一的定义和规约,一个最综合的定义是由美国国家标准技术研究所(NIST)提出的,即:“云计算是一种记次付费的模式,该模式能通过可用的、随需的网络来访问资源可动态配置的共享池,该共享池包括:网络、服务器、存储、应用和服务等。并且,资源可配置的共享池可以通过最少的管理或与服务提供商的交互来实现资源的快速配置和释放”[2]1-16,其中所包含的弹性、按需访问、网络化服务等是云计算中的关键要素。
云计算可以被看成是一系列的服务。文献 [1]中给出了一个最为基本的云计算模型的栈结构。整个栈结构的底层是服务器、存储、网络等基础设施资源;在其上为虚拟化层,它可以提供对硬件资源的抽象,降低用户和资源具体实现之间的耦合度;在虚拟化层之上,是基础设施即服务层(IaaS),指的是将计算、网络、存储等硬件基础设施作为服务供用户使用,比如:亚马逊云计算的弹性计算云EC2;IaaS 层之上的平台即服务层(PaaS),对资源的抽象程度更高,是将程序的运行平台作为服务提供给用户,Google App Engine 是 PaaS 的代表;栈结构的顶层是软件即服务层(SaaS),指的是将某些特定软件作为服务,允许用户通过网络来访问这些软件应用,Saleforce.com 是 SaaS 的代表。
从部署的角度看,云计算可以分为 3 种基本类型:公有云、私有云和混合云。公有云是由若干用户或企业共享的云环境;私有云的基础架构是企业或组织单独拥有和使用的;混合云则是公有云和私有云的混合形式。由于安全性、隐私性是当前公有云所面临的严峻挑战,私有云和混合云成为当前企业主要的采用形式。
2.2 关键技术
虚拟化[10-11]与面向服务的体系结构(SOA)、Web 服务[12]是实施云计算最为关键的技术,虚拟机技术可用于计算、存储和网络资源的整合,能为有效地解决资源整合难提供可行途径;遵循 SOA,目的是利用 SOA 的开放性和标准化实现多样的集成机制,进而解决数据资源共享难、系统横向业务协同难的问题。
虚拟化现在还是个广泛而变化的概念。IBM 的定义为“虚拟化是资源的逻辑表示,它不受物理限制的约束”,而 Open Grid Services Architecture 提出“虚拟化是对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源”[13];还可认为虚拟化是“一种将应用程序及其底层组件从硬件上抽象出来的方式,并且把这些资源表示成逻辑或虚拟的视图”[10]。不难看出,虚拟化的理念是以通用、透明的方式向用户提供各类抽象资源,且对用户隐藏不必要的细节。根据被虚拟的资源的不同,虚拟化技术可分为网络化、存储、系统和软件的虚拟化等。其中,系统虚拟化的核心思想是使用虚拟化软件在 1 台物理机上虚拟出多台虚拟机。服务器虚拟化是将系统虚拟化技术应用于服务器,将 1 台物理服务器虚拟成若干个服务器使用,通过虚拟化软件向上提供对硬件设备的抽象和对虚拟服务器的管理。
从软件工程角度,SOA 包含了一组用来设计、开发和部署软件系统的原则和方法,最大的优点在于为软件系统提供松耦合机制、跨平台的特性;Web服务是具有自包含、自描述特性的,基于标准技术的组件,可以通过 Web 进行访问,也是实现 SOA 的最主要方式。通常,云服务被设计成标准的 Web 服务,并纳入到 SOA 体系进行管理和使用。另外,Web 2.0 与 Mashup 技术为方便用户使用云计算平台提供了接口,支持了多租户模式的开展。
2.3 发展现状
当前,云计算业界内处于领先地位的是Google,IBM,亚马逊和微软等公司。Google 的云计算技术具体包括:Google 文件系统 GFS、分布式计算编程模型 MapReduce、分布式结构化数据存储系统 BigTable 和分布式锁服务 Chubby。其中,GFS提供了大数据规模的数据存储和访问能力,BigTable适用于大数据的组织管理,MapReduce 能并行处理海量数据,Chubby 则保证分布式环境下并发操作的同步性。亚马逊最具代表性的云计算服务是弹性计算云 EC2、简单存储服务 S3、简单队列服务 SQS等,所有服务都是按需获取资源,具有良好的可扩展性和灵活性。微软推出的 Windows Azure Service Platform,属于 PaaS 模式,用户可以使用该平台通过互联网访问微软数据中心,运行 Windows 和存储应用程序数据。
另外,云计算发展的动力还有开源的云计算软件。当前,已有不少开源的云计算解决方案或基础架构[14-17],如:Xen Cloud Platform(XCP),Nimbus,OpenNebula,Eucalyptus,TPlatform,Apache VCL,Enomaly,Abicloud,Apache CloudStack[18],OpenStack,Zenoss,Convirt 等,这些不同的解决方案有着不同的应用目的、体系结构、虚拟机管理机制等。比如:Apache CloudStack是构建基础设施即服务云的解决方案,具有成熟的功能和丰富的文档。
中小规模企业应根据自身业务的需求选择是使用大的 IT 公司提供的公有云服务,还是使用开源云计算软件构建自己的私有云。从数据安全、隐私保护的角度,构建私有云是合适的;如果企业要应对特定时间段的并发访问压力,可通过“私有云+租用公有云”的形式,这样可以有效节约维护成本。
3 水利云计算建设现状与问题
3.1 建设现状
对于水利信息化应用而言,水利行业技术密集、问题复杂、协作性强,应用上要求信息共享、知识智能、协同工作等[19],很多具体应用需求和未来发展需要[20-22]也普遍存在,例如:水利信息化应用中不乏需要高性能计算的用例。显然,水利信息化可受益于云计算所能提供的灵活随需、动态可扩展的架构,运用云计算技术解决水利领域中存在的“基础资源整合难、遗产系统重用难、业务系统协同难”等共性问题。
当前,很多水利信息化单位开展基于云计算系统的建设,也有了一些成功案例或研究。河海大学许峰教授等研发了水利云平台,研究成果已通过项目“基于云计算的防汛防旱信息集成平台的研究”和“水利云平台关键技术研究与应用示范”的开展得到体现[5],该平台基于 SaaS 的理念,用户通过门户自定义不同的服务流程,实现访问云中的遗产系统和云服务,为解决跨部门、异构的业务系统协同提供了可行方案;文献 [6] 研究了将云计算技术应用到水利工程视频监控中,但是设计方案尚待成熟,没能解释“从视频信息里提取什么信息、如何用云计算提取,智能化信息如何体现”等关键问题的具体方法;文献 [7] 介绍了基于 Eucalyptus 建立的“水利信息云”平台的构想,但是尚没有原型系统或应用实例支撑和验证;在文献 [8] 中,作者提出基于Hadoop[23]的水文云平台的设计方案,但是没有给出云的规模信息、各类水文属性数据的组织方式和实现效果,而这些是判断一个云应用是否成功的标准;文献 [9] 认为云存储和云桌面是水利应用的重点并做了讨论,但缺乏具体的实现和细节研究。
综上可见,水利信息化领域对于云计算应用的重视度很高,很多研究或应用已经基于云计算或采用了云计算的关键技术。但是,事实上成功的云应用和平台还处于星星之火的阶段,依然缺乏更为系统的、方法论层面的研究。因此,对建设云计算系统过程中存在的问题应更加引起重视,而不是仅仅关注美好应用前景。
3.2 存在问题
当前,在云计算与水利信息化领域结合方面,存在诸多问题,比如:选型、架构、成本核算、云服务方式、水利信息化特定场景应用等,最为突出的问题是缺乏统一标准和亟待明确的应用方式。
3.2.1 统一标准缺乏
由于云计算尚未有统一的标准,各大 IT 公司、开源组织也提出侧重不同场景的解决方案,这就使得云计算研究和应用存在以邻为壑的现象。不同标准的云计算体系,将直接带来数据、资源管理、安全及互操作方面的问题,具体如下:
1)如何设定最优的数据的存储方式?如何保证云中数据的可扩展性?
2)如何将数据从一个云平台迁移到另外的云平台?
3)如何保证在不同的基础设施上有一致性的资源访问机制?
4)没有标准统一的访问协议,不同的云平台之间如何进行互操作?
5)如果用户希望维护多个云之间的数据、应用版本同步,如何实现?
类似上述的问题还有很多,从根本上说是缺乏统一标准导致的。但是如果对此类问题不加以考虑,将不可避免会出现“从一个难题跳到另一个难题”的窘境。试想,如果水利领域上下级单位或者横向部门不能通盘考虑,采用不同技术手段的云计算解决方案,必然导致各种应用之间不能协同工作,信息孤岛仅是变成了信息孤“云”,计算、数据资源还是根本不能充分利用,必然使得云计算的“威力”大打折扣。
3.2.2 应用方式待明确
对于水利领域云应用的建设思路,应与水利“十二五”规划中的要求保持一致,即“以信息共享、互联互通为重点,大力推进水利信息化资源整合与共享,向全社会提供进出信息服务”,通过集中人力、物力构建云计算平台,减少不必要的软硬件投资,各级、各地水利部门可以在水利云平台上拥有自己的私有云,将自身的信息化资源纳入共享、整合的机制下,用户通过网络按需访问云中的信息服务,实现水利信息资源畅达“最后一公里”。
但是,当前对于以何种方式开展云应用并非很明确,往往选用了某个解决方案或选型软件就建立云平台,最后发现花了高昂的建设成本,却没能解决期望解决的业务问题。云计算不是万能的技术,不可能解决所有的信息化问题,如果没有明确的应用方式,将事倍功半。打个比方,一个城市应根据人口规模和城市定位等建立发电厂、自来水厂,而不必每家每户都建自己的发电厂或水处理厂。特别对于中小规模的单位而言,创建一个私有云,既是云用户,又当云管理者,应用和管理成本会很高。另外,有些单位的应用需要保证数据资源的安全,而有些单位的应用需要考虑低成本地快速扩展所需的计算资源,这就需要采用不同的云应用方式。
当前,云计算在生物信息计算、语义分析应用、计算机病毒处理及高性能并行计算方面的成功应用,均有明确的应用方式。因此,在水利领域中明确云应用方式非常关键。
4 水利云应用建设关键
4.1 水利云应用建设关键点
对于水利信息化单位,是否需要建云平台或者云应用?如何开展云计算的选型?如何将云计算与领域化特定业务具体结合?通过分析存在的问题,总结已有的成功云应用的例子,认为有以下 3个关键点:
1)数据驱动将是建设云应用平台的动力。水利单位可以根据自身拥有的数据资源类型、规模分析是否需要云计算平台。数据作为一种资源,是为应用而生的,云计算用于整合资源,也是为了处理相应规模的、多样化数据。这些数据往往存在于数据库、文件系统或者是遗产系统中。近来的大数据热潮,就将云计算的优势体现得淋漓尽致。可见,水利单位积累的海量业务数据,使得传统的计算范型难以有效地提供相应的资源,那建立云应用就是必要的。
2)没有“一成不变”的解决方案。建立云平台和云应用,在先明确数据和业务需求的基础上,再选择具体的技术、工具以适应特定的或多样化场景。例如,利用某些工具集建立的云应用适用于文本类型的大数据处理,但是未必对实时数据和流数据的处理有效;如要处理一些敏感或保密数据,那就需要自己利用开源的云计算解决方案,而不能租用商业公有云;若需要开展计算密集型的应用,就要考虑能方便监控、管理 CPU 及内存等资源和状态的方案,或者直接按需租用共有云。
3)服务化即为云计算本质。软件即服务(SaaS)、平台即服务(PaaS)、硬件即服务(HaaS)、数据库或桌面即服务(DaaS)、框架即服务(FaaS)、组织即服务(OaaS)、集成即服务(InaaS)、测试即服务(TaaS)等,均是不同的云服务形式[2]13-20。从服务的角度说,建设云应用就是基于面向服务的思想构建是一系列的服务。就水利行业的单位而言,如果拥有丰富的硬件资源和具备维护云平台的技术人员,可以建设基础设施云,向其它相关单位提供租用虚拟机或存储空间类型的服务;如果积累了丰富的软件资源,可以采用 SaaS 类型的服务,将软件资源的使用机制提供给相关单位。
4.2 水利云应用构建流程
为进一步说明如何开展水利领域的云计算应用,结合 IBM 的“蓝云”计算平台[24],从软件工程的角度提出构建水利领域云应用的过程。整个过程可分为以下 4个主要阶段:
1)规划阶段。不同的云计算模式有着不同的应用目的和业务价值。在规划阶段,首先要以水利领域的特定应用需求为牵引,明确用户期待解决的主要问题。在此基础上,进一步完成用户业务模型研究、组织架构分析和操作流程识别,以及一些非功能性需求。在规划阶段,用户能判定云计算的应用价值并做好云模式选型的准备。
2)设计阶段。根据规划阶段的工作,设计并出台具体的办法和计划,以确保客户能够使用云计算达到期望的业务目标。这包括体系架构、业务架构、云服务的设计,以及非功能性属性保障等,并选择相应的技术和工具。此阶段,要紧密联系水利领域的业务特点,比如在汛期,跟历史数据的比较是个计算密集型的应用,要考虑计算资源的整合能力;而访问实时水雨情信息,则可能要保障网络资源和快速的扩展能力。
3)开发阶段。利用规划阶段的详细设计报告,选用相应的开发、测试等工具,构建基于云计算的集成开发环境,又包括开发、测试和升级完善 3个环节。开发环节主要完成对信息和数据的处理,对业务流程的实现,对安全机制的实现,对表现层和访问机制的实现,对遗产系统集成的实现,以及对弹性、可靠性等非功能性特性的实现。对于复杂的云计算应用,测试和升级完善是必要的步骤,本质上与其它类型的软件开发没有特别的不同。
4)部署实施阶段。指将开发的云平台投入使用的过程,具体又可以分为配置云应用、管理系统、故障检修和系统精化等内容。
4.3 水利云平台应用实例
以下以所参与设计开发的水利云平台[5]为例,做个简述。在规划阶段,用户主要表达以下期望:
1)由于分散建设、规范标准不统一等原因,导致基础设施资源利用率低且难以整合,影响防汛防旱工作的成效,希望能将过剩的硬件资源重新组织,服务于更多用户;
2)由于历史规划差异、人员变动、软硬件环境升级等原因,造成很多水利业务遗产系统的升级维护困难,希望能对多年开发的业务系统以简便、统一的方式管理,以一致化的方式供用户访问;
3)将业务逻辑重新封装成可用的服务,用于数据分布和共享。
通过分析需求,不难看出,用户希望能细粒度地管理基础设施资源,将遗产系统统一管理到云平台上,并将业务逻辑封装成云服务。因此,决定采用 IaaS 的云模式构建应用平台,并通过调研和对比VMWare,Eucalyptus,Apache CloudStack 等软件的功能、可维护性、成本等方面,选择了开源、文档齐全、界面友好的 CloudStack 构建 IaaS 云。然后,分析了不同的遗产系统集成到云平台的方式,比如迁移到虚拟机上或者通过门户方式进行集成。在开发阶段,针对常用的水雨情查询、防汛预警、历史数据分析等业务逻辑,基于SOA 的理念、采用 Web服务技术封装成具体的云服务及服务流程。在部署实施阶段,配置 CloudStack 的云环境,建立虚拟机并部署服务环境和具体的云服务,并建立相应的镜像和配置文件,然后在运行中不断调优。
综上,以水利领域化的数据为驱动,以特定业务为主导,遵循适合于云计算的软件工程方法,综合运用多种工具和技术,是成功构建水利云计算平台的保证。
5 结语
通过建设云计算平台的实践经验,证明了该方法的可行性,并且从方法学的角度扩展了水利领域云计算研究和应用的视角,对水利领域云平台和云应用的建设具有启发意义和实用价值。但是,由于当前水利领域中云计算的应用还比较少,对于方法的完善还需要进一步研究。另外,如何开拓云计算所能服务的业务范围,也需要更多的思考。
后面的研究工作将从以下 2个方面开展:1)从软件工程的角度,进一步精化水利领域云计算软件的开发流程;2)充分发挥云计算的自身优势,利用已有的云平台工作基础开展水利领域大数据分析和挖掘的研究。
[1] Borko Furht, Armando Escalante. Handbook of Cloud Computing[M]. New York: Springer, 2010: 1-18.
[2] WANG Lizhe , Rajiv Ranjan, CHEN Jinjun , et al. Cloud Computing: Methodology, Systems and Applications[M]. Boca Raton: CRC Press, 2012.
[3] 陈康,郑玮民. 云计算:系统实例与研究现状[J]. 软件学报,2009, 20 (5): 1337-1348.
[4] 朱跃龙. 水利信息化与云计算. 水利水电技术,2013, 44 (1): 7-11.
[5] 许峰,朱跃龙,叶枫. 水利云平台的研究与应用[C]// 中国电子政务年鉴(2012). 北京:社会科学文献出版社,2012: 510-516.
[6] 赵峥,韩汝春. 水利工程视频监控系统建设与技术支撑[J]. 水利信息化,2012 (5): 53-57.
[7] 刘庆涛,崔瑞玲,耿丁蕤. 水利信息云建设初探 [J]. 水利信息化,2012 (2): 5-9.
[8] 尹炜靖,万定生,关兴中. 基于云计算的水文数据共享平台的应用研究. 信息技术,2013 (8): 68-72.
[9] 柳林,刘恒伟,王哲. 云计算在水利信息化建设中的应用探讨. 海河水利,2012 (4): 52-56.
[10] Dan Kusnetzky. Virtualization: A Manager's Guide[M]. Sebastopol: O'Reilly, 2011: 1-3.
[11] Jim Smith, Ravi Nair. VIRTUAL MACHINES: Versatile Platforms for Systems and Processes[M]. San Francisco: Morgan Kaufmann, 2005: 1-24.
[12] Mike Rosen, Boris Lublinsky, Kevin T Smith, et al. Applied SOA: Service-Oriented Architecture and Design Strategies. Indianapolis: Wiley Publishing, 2008: 33-73.
[13] “虚拟化与云计算”小组. 虚拟化与云计算[M]. 北京:电子工业出版社,2009: 27-33.
[14] Donald Kossmann, Tim Kraska. Data Management in the Cloud: Promises, State-of-art, and Open Questions[J]. Datenbank Spektrum, 2010 (10): 121-129.
[15] PENG Junjie, ZHANG Xuejun, ZHOU Lei, et al. Comparison of Several Cloud Computing Platform[C]// Second International Symposium on Information Science and Engineering. IEEE Computer Society Washington DC, 2009: 23-27.
[16] Patrícia Takako Endo, Glauco Estácio Gonçalves, Judith Kelner, et al. A Survey on Open-source Cloud Computing Solution[C]//Proceedings of VIII Workshop em Clouds, Grids Aplicacoes, 2010: 3-16.
[17] JI Changqing, LI Yu, QIU Wenming, et al. Big Data Processing in Cloud Computing Environment[C]//2012 International Symposium on Pervasive System, Algorithms and Networks. San Marcos: IEEE, 2012: 17-23.
[18] Apache CloudStack[EB/OL]. [2013-10-10]. http://incubator.apache.org/cloudstack/.
[19] 解建仓,罗军刚. 水利信息化综合集成服务平台及应用模式[J]. 水利信息化,2010 (4): 19-20.
[20] 蔡阳. 扎实工作, 全力推进水利信息化建设[J]. 水利信息化,2011 (1): 1-3.
[21] 张秋文,张勇传,王乘,等. 数字流域整体架构及实现策略[J]. 水电能源科学,2001, 19 (3): 4-7.
[22] 陈子丹. 水利信息化工作中若干问题的探讨[J]. 水利信息化,2012 (2): 1-4.
[23] Chuck Lam. Hadoop in Action[M]. Stamford: Manning, 2011: 1-20.
[24] Borko Furht, Armando Escalante. Handbook of Cloud Computing[M]. New York: Springer, 2010: 25-30.
Status Analysis and Reflection of Cloud Computing in Water Conservation Area
YE Feng1, ZHANG Peng2, MAO Shenglu3, WANG Zhijian1
(1. College of Computer and Information, Hohai University, Nanjing 211100, China;
2. Hydraulic Engineering Planning Office of Jiangsu, Nanjing 210029, China;
3. Water Conservancy Bureau of Luhe District, Nanjing 211500, China)
As a novel Internet-based computing and service paradigm, cloud computing can provide a completely fresh idea and solution for water conservation area, which is technology-intensive and has complex issues. After introducing the related concepts, key technologies of cloud computing, the paper emphasizes the necessity and urgency of applying it in water resources informatization according to the current status. It summarizes two outstanding issues in the field of which combination of cloud computing and water resources informatization. From the perspective of software engineering, it integrates the characteristic of water resources informatization and IBM “Blue Cloud”, proposes the processes of constructing the cloud computing applications, and provides a set of relatively entire implementation steps. Through the experience summary of constructing the cloud application existing, the study is feasible.
cloud computing; data driven; water conservation area; key technologies; status analysis
TP393;TV211
A
1674-9405(2014)01-0006-06
2013-10-11
江苏水利科技项目“‘智慧河流’研究及其在六合滁河管理中的应用”(2013025);河海大学中央高校基本科研业务费项目(2009B21614)。
叶 枫(1980-),男,山东济南人,讲师,主要从事云计算、大数据和水信息学的研究。