1.3 云计算技术延伸
1.3.1 边缘计算及雾计算
随着云计算技术的逐渐成熟,人们开始追求通信速率与通信能效,边缘计算技术应运而生。本节将详细介绍边缘计算及雾计算。
1. 边缘计算[121]
边缘计算概念最早可以追溯至内容分发网络(Content Delivery Network,CDN)中的功能缓存[122-123]。2015年,边缘计算进入快速发展期后,以边缘计算为主题的协会与联盟相继成立,各类定义、标准与规范逐渐形成。旨在推动云操作系统的发展、传播和使用的OpenStack基金会,以及由华为技术有限公司、中国科学院沈阳自动化研究所等联合成立的边缘计算联盟(Edge Computing Consortium,ECC)等组织对边缘计算进行了定义,尽管这些定义的描述不尽相同,但它们在边缘计算的核心概念上达成了共识:边缘计算是指在网络边缘执行计算的一种新型计算模型。这里的边缘是指从数据源到云数据中心之间的任意资源,其操作对象包括来自云服务的下行数据和万物互联服务的上行数据[123-126]。与云计算模型不同的是,边缘计算中的终端设备与云数据中心的请求与响应是双向的,终端设备不仅向云数据中心发出请求,也能够完成云数据中心下发的计算任务[127]。云数据中心不再是数据生产者和消费者的唯一中继,终端设备兼顾了数据生产者和消费者的角色,部分服务可以直接在边缘完成响应,并返回终端设备,云数据中心和边缘分别形成了两个服务响应流[128]。边缘计算的核心是在靠近数据源或物的一侧提供计算、存储和应用服务,这与雾计算将计算和分析能力扩展至网络“边缘”的定义非常相近。雾计算也是云计算模型的延伸,但雾计算的核心是将云数据中心的能力下沉至接近物的一侧,它具有更平坦的架构,属于通用性较高的基础设施[129-131],仍然依赖于网络,多使用本地服务器或路由器实现。从实现架构来看,雾计算也属于边缘计算的一种,除在雾计算中部署通用性较高的基础设施外,边缘计算还可以将终端设备侧的能力进行升级,使其依赖不构成网络的终端节点。
云边协同的联合式网络结构一般可以分为终端层、边缘计算层和云计算层[132-134],各层可以进行层间及跨层通信,各层的组成决定了层级的计算和存储能力,进而决定了各个层级的功能。
1)终端层
终端层由各种物联网设备(如传感器、摄像头、智能手机等)组成,主要完成收集原始数据并上报的功能[135]。在终端层,只考虑各种物联网设备的感知能力,而不考虑它们的计算能力。终端层的数十亿台物联网设备源源不断地收集各类数据,以事件源的形式作为应用服务的输入。
2)边缘计算层
边缘计算层是由网络边缘节点构成的,广泛分布在终端设备与计算中心之间,它既可以是智能终端设备本身(如智能手环、智能摄像头等),也可以被部署在网络连接中(如网关、路由器等)。显然,边缘节点的计算资源和存储资源是差别很大的,并且边缘节点的资源是动态变化的。例如,智能手环的可使用资源是随着人的使用情况动态变化的。因此,如何在动态的网络拓扑结构中对计算任务进行分配和调度是值得研究的问题。边缘计算层通过合理部署和调配网络边缘侧的计算和存储能力,实现基础服务响应。
3)云计算层
在云边计算的联合式服务中,云数据中心仍然是最强大的数据处理中心,边缘计算层的上报数据将在云数据中心进行永久性存储,边缘计算层无法处理的分析任务和综合全局信息的处理任务也仍然需要在云数据中心完成。除此之外,云数据中心还可以根据网络资源分布动态调整边缘计算层的部署策略和算法。边缘计算的参考框架是众多组织关注的焦点,它将抽象的边缘计算通用框架进行具象,提供了边缘计算框架的实现范式。
2. 雾计算[136]
2011年,思科全球研发中心总裁Dr. Flavio Bonomi和他的团队首次提出雾计算的概念,并于2012年对此概念进行了开创性的描述。雾计算是由多个独立的雾节点组成的系统[137],位于云与终端用户之间,是连接云服务器(Cloud Server)与移动终端设备(Mobile Terminal Device)的桥梁。雾计算是一种分布式的服务计算模型,它将云计算提供的计算、存储和网络服务等扩展到网络的边缘,使服务更加接近终端用户。雾计算不仅包含向上和向下的网关,还包含临时数据计算和存储的设备[137]。雾计算能够对待加工的数据进行预判断,如果数据量较大或需要长期存储,则直接将数据转发到云数据中心进行处理;如果数据量较小或只需要临时计算和存储,则在本地完成数据处理。这样不仅会降低本地服务时延,减少能量消耗,还能减轻云数据中心的压力,提高服务效率。
云计算主要由高性能的计算设备组成,整体的计算能力较强。而雾计算则强调计算设备的数量,通过数量优势来弥补雾节点计算能力弱的缺点。与云计算相比,雾计算的特点如图1.35所示。
图1.35 雾计算的特点[136]
雾计算是一种系统级架构[138],在沿云到物统一体的数据产生源附近提供计算、存储、控制和联网功能。如图1.36所示,雾计算架构主要分为三层:云计算层、雾计算层和终端设备层。雾计算架构使服务更接近终端用户,降低时延,节省功耗,增强了用户体验。
图1.36 雾计算架构[136]
雾计算架构具体介绍如下[139]。
雾计算架构的底层是终端设备层,该层包含大量的智能设备和传感器。数据收集、服务请求等都来自该层的终端设备,智能终端设备可以对数据进行预处理和压缩,过滤掉一部分无用数据。同时,终端设备之间还可以通过基站或路由器等设备进行通信,实现数据共享。
雾计算层位于云计算层与终端设备层之间,是连接云服务器与终端设备的桥梁。在该层检测到简单事件和紧急事件,从而对用户做出快速响应。雾计算层由部署在物联网设备周围的雾节点组成,雾节点与基站或路由器等设备相连,从而减少设备到设备之间的传输时延。另外,大量的雾节点都被部署在网络边缘,甚至相同的服务被部署在多个雾节点上。这样不仅可以降低一个雾节点出现故障而导致服务中断的风险,还可以使一个雾节点为多个基站或路由器等设备处理数据。网络中的雾节点还可以与云数据中心相连,当物联网设备产生海量数据需要处理,并且单个雾节点的计算能力不能满足需求时,雾节点就会把数据转发到云端进行处理,这无疑会产生较大的通信时延,降低服务效率。
最高层是云计算层,包括云数据中心和服务器等,负责大量数据的存储、分析和集中控制。另外,云端通过互联网与雾服务器相连,从而可以充分发挥它强大的计算能力,也为雾计算提供了丰富的服务资源。因此,未来雾计算不会取代云计算,而是成为云计算的延伸和补充。
随着物联网和智能传感器的快速发展,物联网移动设备广泛应用于人们的日常生活。当前云计算模式在很多场景下几乎都不能满足移动性、定位感知和低时延等要求。而雾计算在很多方面继承了云计算的优点,同时拥有边缘计算特有的优势,可以就近为终端设备提供本地服务,及时响应本地用户的服务请求,为各领域的发展创造新的机遇。目前雾计算的应用领域越来越广,其应用场景及作用[139]如表1.4所示。
表1.4 雾计算应用场景及作用
物联网的迅速发展,使移动终端设备成了主要的服务对象。据报道,超过90%的移动用户直接或间接地依赖云服务。云计算作为一种集中式的服务模型,在低时延、移动性和实时性等方面已不能满足移动用户的需求。而雾计算的提出为解决以上问题提供了新的可能。雾计算与云计算比较[140]如表1.5所示。
表1.5 雾计算与云计算比较
1.3.2 云端融合计算
随着边缘计算技术的逐渐发展,人们开始将云计算和移动终端联系起来。本节将详细介绍云端融合计算[1]。
云端融合计算将网络核心的云数据中心和网络边缘终端节点上的各类资源有机聚合成更大规模的资源池,更好地整合了互联网和不同设备上的信息和应用,实现了高效率、低成本的计算目标。简而言之,云端融合计算就是云计算与对等计算进行有效的融合,这种融合体现在以下两个方面。
(1)计算环境的融合:将原本相互隔离与独立的云计算环境和对等计算环境融合在一起,基于虚拟化机制将环境中包含的软硬件融合到基于Internet的资源池中,统一进行任务的部署和资源的调度。
(2)技术的融合:将云计算系统和对等计算系统中的机制、算法和技术(如任务调度、网络拓扑结构、资源管理、性能监控等)相互融合与渗透,如将适用于P2P网络的DHT技术应用于云计算/云存储服务器集群的网络拓扑结构。
云端融合计算是一个融合计算环境,拥有云计算和对等计算各自独立的特征,同时带来了一些新的特征和问题[141],具体如下。
(1)资源丰富:云端融合计算环境除了云计算服务商提供的集群服务器端的资源,还包括大量网络边缘终端节点上的各类资源。
(2)负载均衡:云端融合计算环境的负载由用户端和云端共同承担,减少了“超载”现象,合理的负载分配提高了任务处理的效率。
(3)可靠性低:云端融合计算环境不仅存在较稳定的云服务器节点,还融合了相对动态的网络终端节点。
终端节点池中存在两种节点:一种是长期稳定在线,便于控制,并可积极提供服务的可信赖边缘(Peer)节点;另一种是具有很强随机性,即经常动态加入或退出网络,不能保证服务质量的Peer节点,即不可信赖Peer节点。此外,这两种节点也有可能动态交换。所以,云端融合计算环境包括三类节点:稳定的云服务器节点、较稳定的Peer节点和不稳定的Peer节点。这就造成云端数据存储的不可靠性。
除上述特征外,云端融合计算环境还有易编程、高容错、可扩展等特征,云端融合计算弥补了云计算和对等计算的不足,但更复杂的计算环境也带来了一定的管理难度。
1.3.3 区块链
作为云计算的延伸技术,区块链(Blockchain)技术在近几年有着良好的发展势头。下面主要为大家介绍区块链[142]。
1. 区块链概念
在2008年的金融危机中,许多金融机构遭受重创,有些金融机构甚至一夜之间就倒闭了。虽然这次危机加快了人们对去中心化技术探索的步伐,但一直发展缓慢,直到区块链技术的诞生,才出现了令人振奋的去中心化技术[143]。
区块链首次出现在Satoshi Nakamoto的Bitcoin: A Peer-to-Peer Electronic Cash System一文中,其核心是去中心化。区块链是一个个数据块,块与块通过Hash值构成链。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式[144]。互联网上的大部分可靠交易都需要依赖可信的第三方机构,即采用了基于信用的模式。而区块链技术是基于密码学的,任何达成一致的双方都可以直接进行交易,不需要可信第三方的介入,它可以实现一个全球同步的分布式账本,该账本记录着所有交易,具有高透明性、不可篡改、可追溯等特点,有效地提高了交易的安全性。区块链的全网络都采用点对点模式,并且所有交易都通过随机散列的方式加上时间戳,然后连上已有的链,形成记录交易的区块链,区块链上的所有信息都无法被篡改,除非重新完成所有的工作量。区块链形成的最长的链是全网所有记录的证明,在该网络中,只要所有诚实节点的实力大于合作攻击者的实力,那么诚实节点所拥有的链就可以保持全网最长,以避免攻击。欧美金融业直到2015年才认识到区块链采用的是一种潜在的分布式总账制度[145],在金融领域也得到了极大的关注。区块链技术除可以应用在金融行业外,还可以应用于互联网、数字取证、政府信息管理、财务情况公开、医疗信息记录等多个领域。
到目前为止,区块链主要在以下几个方面得到了实现和应用。
(1)公正防伪:公证通(Factom)、Monegraph、Stampery、BitProof等。
(2)物联网:ADEPT、Filament、Tilepay、Slock.it等。
(3)身份验证:BolckScore、Shocard、LaunchKey、BitNation等。
(4)预测市场:Augur、Truthcoin、Futarchy等。
(5)资产交易:OpenLedger、Medici、SETL等。
(6)电子商务:OpenBazaar、Eris、BitXBay、Purse等。
(7)文件存储:MaidSafe、Enigma、Filecoin等。
(8)社交通信:Gems、Codius、Twister等。
同时,区块链的高速发展引起了很多国家金融机构和政府机构的高度重视。2015年年底,美国纳斯达克率先利用区块链技术成立了金融证券交易平台Linq,奠定了金融行业去中心化的基础[146];中国人民银行也积极探索区块链技术,并召开数字货币研讨会,研究利用区块链技术发行虚拟货币,从而有效提高银行交易的透明性、安全性和便利性。2016年1月,英国政府发布了区块链专题研究报告[147],积极推行区块链在金融和政府事务中的应用;韩国交易所启动了一项全新服务“韩国创业市场”,以帮助创业公司的普通股在公开市场交易,这项服务由韩国交易所和韩国区块链公司Blocko联合推出,后者拥有一个名为Coinstack的区块链服务平台;新加坡央行测试发行数字货币,该数字货币在新加坡金融管理局(MAS)的区块链系统试验中用于银行间支付,可以简化跨行支付流程和降低交易成本。
如今,全世界的媒体、政府、科研机构和产业都在积极关注区块链的发展,美国甚至考虑将区块链技术运用到政策层面上。据不完全统计[148],全世界有超过90%的央行都在研究区块链和数字货币政策。世界经济论坛预测,到2025年,10%的全球GDP将会以区块链呈现。在我国,区块链作为一项新兴技术和产业,受到了各方关注。可见,区块链技术具有巨大的发展前景。
2. 区块链架构[149]
近年来,区块链技术[150-153]在全球范围内得到广泛关注。区块链本质上是一种点对点网络下不可篡改的分布式数据库。区块链用某种共识算法保证节点间数据的一致性,并用加密算法保证数据的安全性,同时通过时间戳和Hash值形成首尾相连的链式结构,创造了一套公开、透明、可验证、不可篡改、可追溯的技术体系,具有公开透明、可验证、不可篡改、可追溯等技术特征。如图1.37所示,区块链架构分为六层。
图1.37 区块链架构[149]
(1)数据层。数据层封装底层数据,构建链式结构,通过Hash算法和Merkle树,将某一时间段内收到的交易纪录打包成一种带有时间戳的数据区块,并连接到区块链网络上。
(2)网络层。网络层封装了区块链系统的P2P组网方式、消息传播协议和数据验证机制等要素,使区块链网络中每一个节点都能参与区块数据的校验和记账过程,仅当区块数据通过全网大部分节点验证时才能记入区块链。
(3)共识层。共识机制是区块链的核心,也是区块链网络中各个节点达成一致的方法,能够在决策权高度分散的去中心化系统中使各节点高效地针对区块数据的有效性达成共识。区块链网络按能参与共识过程的人是否需要有准入门槛可分为公共链、私有链和联盟链。共识算法主要基于工作量证明(Proof of Work,PoW)机制、权益证明(Proof of Stake,PoS)机制、股份授权证明(Delegated Proof of Stakes,DPoS)机制、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)机制实现。
(4)激励层。激励层将价值度量、账户等集成到区块链中,建立合适的价值激励发行机制和分配机制,通过经济激励遵守规则的记账节点,惩罚不遵守规则的节点,使整个区块链系统朝着良性循环的方向发展。
(5)合约层。合约层集成各类脚本、算法和智能合约,建立可监管、可审计的合约形式化规范,是区块链可编程特性的基础。
(6)应用层。区块链系统中的链式数据具有不可篡改性及去中心化的特点,可用来承载智能合约的运行,同时链上数据具有安全性高和隐私保护能力强等显著特点,因而区块链可以应用于金融、供应链、物联网、医疗和公共服务等领域。
3. 关键问题与挑战[154]
区块链作为一种新兴的技术,在众多领域推广及应用的同时,面临着诸多的挑战。下面将从技术挑战和非技术挑战两方面进行分析。
1)技术挑战
(1)拓展挑战。一方面,区块链技术为了验证数据,必须存储所有的数据信息,但随着事务量的增加,加入区块链中的区块会越来越多,整个区块链系统越来越庞大,所需要的存储空间并不是普通存储设备能承受的。另一方面,随着区块数量的增加,验证区块信息需要更多的时间,每秒处理的数据量无法满足实时处理数以百万计的交易需求,从而产生更大的成本。以太坊创始人Vitalik提出可拓展性、安全性、去中心化只能择其三选二,即如果追求安全性和去中心化,则无法满足可拓展性的要求,而区块链的分布式特性是区块链去中心化的重要保证,所以可拓展性问题是区块链技术发展的一大重要挑战。
(2)能源挑战。为了挖掘区块并对事务进行验证,必须解决复杂的密码学难题,利用计算机强大的计算能力提高挖矿的成功率。密码学的复杂性会造成算力和能源的巨大消耗。
(3)安全挑战。区块链中一个重要的安全问题是51%攻击。按照区块链的共识机制原理,当两名矿工同时开采两个不同的区块时,随着加入两个区块的后继区块越来越多,形成两条叉链,最终较长的叉链会被验证,短的叉链会被废弃。但是如果有人想要恶意篡改数据信息,只需要想方设法形成一条更长的叉链,原来的叉链就会被废弃。因此,叉链越多,整个系统被攻击的可能性就越大。可见,区块链的安全性问题亟须解决。
(4)隐私挑战。区块链技术具有不可篡改性,被认为是一种安全的技术。由于在进行交易时不需要用户提供真实身份,只需要使用用户生成的地址,并且交易包含相关用户的地址信息是不可篡改的,因此如果一个地址对应用户的身份信息被泄露,则使用该地址的用户所有交易信息都会被泄露。虽然信息泄露可以通过生成其他多个地址进行身份转移,但是对用户来说,是否符合用户简便操作的心理需求还有待考证。综上,区块链技术对用户的隐私并不能提供绝对的保证。
2)非技术挑战
除了以上技术挑战,区块链技术还面临用户、人才、社会适应、法律监管等方面的挑战。
(1)用户挑战。就目前区块链在各个行业的发展来看,它具有非常广泛的应用前景,其去中心化的分布式对等网络可促进社会信任问题的解决,智能合约有利于社会向智能化迈进,而且区块链技术作为一种新兴的数字技术有利于数字经济的发展。尽管区块链拥有极好的发展态势,但对用户而言,新技术应符合个体长期形成的习惯,以及可以更好地满足用户的需求,从而提高用户的体验和满意度。
(2)人才挑战。无论区块链技术有多么广阔的应用前景,没有相应的人才推动,它也是很难发展的,至少发展过程中会受到很大的约束。区块链作为一种新兴的技术,其兴起和发展所需要的人才数量是很庞大的,而且对人才的质量要求也比较高。区块链岗位要求从业人员不仅具有Go、Python等语言基础,还要熟悉共识算法、密码学、分布式计算、智能合约、数据挖掘等有关技术。可见,技术的复杂性使得与区块链技术相关的人才获取成为区块链技术未来发展的一大重要挑战。
(3)社会适应挑战。对技术本身的社会适应性而言,一项技术若想推广并在各个领域广泛应用,在很大程度上需要社会个体对该技术的认知和肯定,大多数具有革命性意义的技术从起初的“异端学说”到最后成为“伟大革命”,主要都是由社会对于技术逐步认可,即技术的社会适应性强。就目前区块链技术的发展来看,它很有可能成为下一代革命性的互联网技术,但是要想发挥其本身的优势,还需要社会和时间来检验该技术与未来社会发展动态是否相适应。
(4)法律监管挑战。在法律监管方面,区块链作为一种新兴技术,在改变社会、经济、生活等方面的同时,必然需要与现有的法律制度进行磨合。尤其是在发展的初始阶段,区块链技术的发展态势还没有明确的定论,而且技术进步与法律规范之间存在时间差,因而法律制度无法对其潜在的法律问题和风险进行制约。另外,当技术成为社会的主流时,很有可能会被各种不同的利益个体利用,在一定程度上会挑战现有的法律监管制度,引发一系列的法律问题。
综上,区块链技术面临的技术挑战和非技术挑战将会成为其未来发展的主要阻力,可见区块链技术未来的发展任重而道远。