你好,游客 登录
背景:
阅读新闻

对大数据时代下的软件技术所面临的挑战

[日期:2014-04-28] 来源:中国计算机学会通讯  作者:贺佳慧 [字体: ]

    大数据给传统的软件技术带来了一系列新的挑战。认识大数据问题的科学和技术本质,研究其在软件编程语言、系统软件、软件开发方法等方面的新需求,思考大数据对软件乃至计算机学科未来发展可能产生的变革和影响,对我们深入理解数据科学与技术、准确把握研究方向具有重要意义。

互联网及其延伸,催生了“大数据”时代

    迅速发展的互联网产业正在逐步演化为“一台全球泛在的计算机(global ubiquitous computer)”,也催生了一个“创新”的代。在技术方面,网格计算、云计算、服务计算、普适计算以及物联网等新概念不断被提出。如何利用以互联网为核心的多网融合技术,实现高性价比、高效能、高可信的信息化技术已得到社会广泛关注。在应用方面,智慧地球、虚拟世界、社交网络等新的应用模式不断涌现,如何利用以互联网为核心的信息化技术,实现成本控制、资产增值、业务创新,也成了企业竞争的热点。

    其中,大数据、云计算和移动互联网是近期“最热”的几个概念。云计算围绕数据中心提供计算、存储、网络和应用服务;大数据提供海量、异构、实时数据的存储、组织、分析和处理服务;移动互联网支持用户通过各种智能移动终端设备更加广泛便利地接入互联网。这三者本质上均是互联网计算及其延伸,彼此交叠,相辅相成,只是呈现的视角和关注点有所不同。这些热点产生的背景包括3个方面:技术能力的不断进步,我们现在拥有更快的网络带宽、更广的网络接入方式、更强的计算能力、更小的计算设备、更低的计算成本;应用需求的促进,需要更方便、更优惠的服务,需要实时交易、社交网络、位置服务等多种多样、无处不在、融入社会生活各个角落的服务;IT巨头的市场战略,跨国IT企业顺势而为、乘势而上、革故鼎新,不断推动热点技术持续升温。

    在技术、应用和市场如火如荼的发展过程中,我们更要冷静地思考问题的本质,探讨究竟什么是大数据的科学和技术。如果用简单的一句话来定义“科学”,就是观察现象、发现规律。大数据是信息技术普适应用所带来的“自然”现象和客观存在。就此而言,探索大数据中的规律就属于科学,可以称之为是“数据科学”。技术是指基于科学原理发明的、用于管控或改造“被察对象”的手段和方法。大数据技术则指以大数据为“对象”而开展的有效、高效的数据处理方法的研究,而不仅仅是用基于数据的方法来解决问题。就其本质特性而言,大数据不会是一个可完全“解决”的问题,只能通过各种技术手段逐步“逼近”它,以缓解大数据给我们带来的困扰。因此,当前尚不存在有效的大数据技术!大数据和计算技术密切相关。大数据问题源于互联网及其延伸带来的无处不在的信息技术应用以及信息化成本的不断降低。解决大数据问题,并且有效、高效地应用基于数据的方法,其关键依然是需要依靠有效、高效的计算技术。

    大数据给我们带来了一系列新的挑战。要应对这些挑战,需要多个学科的交叉合作,模型、方法和算法都非常重要。然而,无论模型和算法如何先进,面对大数据,人力、人脑均无能为力,必须依靠计算技术和工具,才能满足数据的获取和筛选、组织和存储、处理和应用等各个环节的计算需要。在此过程中,可能需要转变传统的计算模式及其计算系统演进方式,例如,以计算为中心的数据管理和处理模式由于其自身的局限性,难以有效应对“4V”问题:数据体量大(volume)、数据来源和类型繁多(variety)、数据增加和变化的速度快 (velocity)、数据的真实性难以保证(veracity);数据仅是计算设备的输入 /输出,难以靠提速、扩容来适应数据增长,等等。

现行计算机软件技术面临的挑战

    围绕某种软件范型,如何开发软件?如何运行软件?如何度量和评估软件?这是软件技术体系所面临的几个基本问题(如图1所示)。其中,软件范型探讨从软件工程师或程序员视角看到的软件模型及其构造原理,是软件技术体系的核心。回顾软件技术发展的主线,大体可概括为:向下,研究如何更高效地发挥硬件资源所提供的计算能力;向上,研究目标是构建表达能力强、更符合人类思维模式、易构造和演化的软件模型;面向应用,凝练并沉淀共性,提高应用软件开发、运行的效率和质量;面向用户,更好地满足用户对易用性的需求。

    1 计算机软件技术体系

    大数据给软件的编程模型及其编程语言带来了新的挑战。编程模型可分为 3 个层次(1) 低级模型及语言,直接面向计算机硬件体系结构,通常由计算机专业人员使用,具有性能可控、可预测的优点,但编程难度较大,在软件系统开发中编程效率较低、错误率高(2) 高级模型及语言,直接面向系统软件,一般通用性较好,但性能依赖于软件工程师的编程水平和编译器的能力,语言机制设计和实现难度大;(3) 终端模型及编程,希望面向终端用户,为了便于业务人员使用,即提高易用性,可能仅针对特定的应用领域进行优化设计,因此会造成应用面窄、性能不可预测等问题。对于大数据应用来说,最理想的是采用终端编程模型,可以面向不同领域的大数据应用,为最终用户提供直接的数据应用编程能力。但这种模型很可能遇到较大的性能问题,需要底层软硬件在结构上的支持以及高效的编译实现。如何能够在编程语言中充分体现大数据的特点,以方便最终用户更快更好地开发大数据应用,这是程序设计语言研究所面临的挑战。理想的编程模型及其语言在支持通用语言(如 C/C++ 等)的基础上,可针对大数据应用类型提供有针对性的编程模型(如 MapReduce等);能够根据数据的结构化或半结构化特点进行分析、处理以及类型检查;能够根据数据内容,通过感知大数据系统结构特点来优化性能。例如,在输入/ 输出 (I/O) 层可区分文件系统的存储和访问方式,在内存层可区分异构系统的不同性质,在处理器层可区分不同性质的并行线程等等。现有的层次化的系统软件栈及其层间接口,有利于控制软件系统的复杂性,也有利于跨平台移植,但难以根据多层信息优化并最大限度地利用系统资源。
        系统软件的可伸缩性是大数据带来的另一个挑战。大数据突破了线性期望,简单的提速、扩容的资源扩展方法已无法满足数据量大规模变化时的弹性资源需求。随着大数据应用的日益广泛,不同类型的应用在规模、易用性、成本、能耗等方面需求迥异,系统伸缩性的解决方案也受多方面的条件制约,因此需要能够针对不同需求灵活选择技术途径,而非固定通用模式。表 1对比了大数据、云计算、高性能、嵌入式系统等不同类型的应用对计算单元的速度 / 功耗、外存 / 内存的存储带宽、局域网 (LAN)/ 广域网 (WAN) 带宽等系统资源的需求。表中红色对勾表示主要的资源瓶颈。例如,在存储资源方面,与其他应用相比,大数据具有更高的外存带宽需求。实验研究表明,在现有的文件系统中,大数据访问性能受到磁盘存储粒度和存储方式的影响,其访问性能差异可达 3 倍以上。而在 Linux 系统中,访问超过4GB大小的文件会造成访问效率急剧下降。根据应用需求,通过改变数据的存储方式,将需要访问的数据集中存放,可以使访问性能提高数百倍。

1 不同类型的应用对系统资源的需求


    能耗是大数据资源管理中的另一个突出问题。2012年《纽约时报》中的数据显示,全球范围内的数据中心服务器和散热系统每年消耗大约30亿瓦的电能,相当于 20 座核电站的发电量。一个数据中心的耗电量甚至比美国一座中型城市还要高。针对如何降低大数据应用的能耗这一问题,目前国际上也开展了多方面研究,包括选择合适的硬件和算法、提高数据选择和取舍的智能性、设计特定的数据存储分布和计算调度迁移机制等。例如,美国伊利诺伊大学香槟分校和雅虎公司在一项联合研究中提出了绿色数据存储方法(GreenHDFS),把数据按照访问频率分为热数据和冷数据,并分别存放。在 hadoop集群上的实验结果显示,冷数据大约占全部数据的70%,优化之后可有效降低24%的系统能耗。面向大数据应用的能耗优化技术也同样需要系统软件和编程语言研究的支持。

 

猜您喜欢:

  1.大数据时代哪些数据分析不了

  2.大数据时代来了

  3.《大数据时代》读后感

 





收藏 推荐 打印 | 录入: | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款