方志宁,郭 峰,张金营,曹亚南,谢 华
(1.国电电力发展股份有限公司,北京 100000;2.国能信控互联技术有限公司,北京 100000)
随着信息技术的飞速发展,各类企业也跟随时代潮流使用信息技术完成自己的信息化升级,节约企业人力,构建更完善的管理体系,提高了企业竞争力。互联网时代中,网络中数据量呈现出爆发式增长的势态,各类企业都有可能从海量的数据中发掘出巨大的价值。但是由于技术和企业的发展,不同系统之间产生了不能相互兼容的问题。这些数据系统中的数据不能共享,相互调用困难重重,形成一个个“信息孤岛”,造成了巨大的资源浪费。
目前,通过大数据平台的建设提升了企业在全面监测管控、优化分析决策、预控防范风险、横向协同管理等方面的能力,全面提升了企业管理水平,但对于大型集团企业存在所属单位多,主营业务多样;数据各自表述、定义和编码各异;管理、统计口径不一致等问题,导致各类平台、系统数据中的数据共享不便,从而造成大量冗余数据,降低分析效率。如何实现不同系统、不同平台之间的数据方便地调用成为了一个有待解决的问题。
针对上述现状,文献[1]提出了异地数据中心的数据同步与调度方案,文献[2]提出了跨数据中心的网络流量传输优化方案,文献[3]设计了跨境增量数据同步系统,文献[4]基于数据同步机制,设计了数据管理系统,文献[5]设计了多级系统的同步接口,实现了电力通信网的数据同步。上述研究对跨数据中心的数据同步技术做了深度探讨,或是针对数据同步系统设计了同步方案,但对于数据同步过程中的数据处理流程没有提出相应的解决方案。因为区块链技术还具备去中心化、安全性高及分布式自治等的技术特点。文献[6]给出了一种利用区块链等相关网络技术而设计出来的分布式数据自动同步处理及分布式数据自动处理的系统,而文献[7]则认为区块链技术去中心化、防篡改及分布式存储等技术优点,更适合于有效处理当前分布式的电力数据交易处理过程中出现的各种问题,探究出了一种与当前分布式的电力数据交易处理过程相结合的基于区块链技术设计的分布式数据自动同步类算法。文献[8]提出了融合区块链和Rsync的可信数据同步机制提高边缘节点数据同步效率和安全可控性。文献[9]基于区块链网络的Gossip算法,对数据同步流程进行改进和优化。文献[10]面向轻算力区块链的P2P数据同步机制,提出了新的数据同步协议和信任模型。
因此,通过采用区块链技术的公开透明、高安全性、程序化和去中心化等技术特性,保证大数据平台与数据中心之间始终保持高度可靠且实时高效的数据协同能力,实现各个数据中心之间双向、实时、安全、易管理的数据交换。同时,区块链技术可以在保证数据完整性的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,通过数据加密、数据校验保证数据安全。
数据同步与调度系统总体架构设计采用覆盖子平台侧及数据中心等两级多地部署的软件服务模型,数据同步与调度系统的各个服务之间基于专线网络通信环境实现服务访问与功能联动。
首先,在数据中心将现有数据同步管控平台的扩展功能接口构建完成后,并与数据中心大数据平台的数据源进行纳管对接。其次,在子平台侧实施过程中伴随项目交付进度,结合现场实际情况完成各个子平台侧的数据资源调度接口适配及其各数据资源模型接口适配、服务部署、数据纳管,并与数据中心数据同步管控平台环境进行异地联调和上线验证。总体架构设计如图1。
图1 数据同步总体架构图Fig.1 Overall architecture of data synchronization
建立多方信息参与的数据同步与交换的系统,首先需要界定同步传输任务中所要涉及到的数据信息类别,从而才能对传输同步与传送的任务信息进行统一调度控制与管理。为此,本文将异地数据同步系统定义明确为如下5种子系统,包括:
1)异地数据采集传输子系统,包括发送任务管理模块和接收任务管理模块。
2)数据任务管理子系统,包含任务分析模块、任务调度模块、任务实施模块、负载计算模块、任务线程管理模块以及任务队列管理模块。
3)数据调度管理子系统,包括消息发送模块、消息接收模块、消息解析模块、消息封装模块和协议接收模块。
4)任务信息执行子系统,包括用户信息的增删查改模块。
5)任务监测子系统,包括任务进度监控模块、任务队列监控模块和系统资源监控模块。
对于数据同步过程中的数据处理流程为:数据中心下发调度指令,子平台侧负责接收数据中心调度指令和将数据推送到本部。每个子平台侧节点都可以向本部传输数据,数据中心节点既可以作为客户端向子平台侧节点发出调度命令,也能作为服务端接收来自其它点的请求。数据处理的流程规范如图2。
图2 数据处理流程图Fig.2 Data processing flow chart
1)子平台侧将变化数据实时写入到子平台侧数据存储中心。
2)数据中心通过本部数据同步调度系统进行调度命令下发。
3)子平台侧在接收到本部数据中心下发的调度命令后,将存储中心数据直接传向本部数据存储中心。
4)本部数据中心在接收到子平台数据后,将数据直接写入本部数据存储库。
各子平台侧的数据资源和数据中心完成数据同步,支持企业级各类数据资源在数据中心、子平台侧之间的按需数据流转。经过获取、推送、传输、缓存、订阅、路由、写入等过程将子平台侧数据资源同步至数据中心大数据平台。由数据中心大数据平台统一对各数据资源进行存储、处理、分析后,数据通过数据同步与调度系统传输至各子平台侧大数据平台,从而实现统一规划、统一部署、统一维护。
区块链技术是一种“链”式结构,由一系列数据块按照创建顺序有序排列在一起组成的数据块链。每个数据块都含有索引、哈希值,前一个块的哈希值、时间戳、证明和打包的交易记录。
区块链技术具有6层:即数据层、网络层、共识层、激励层、合约层和应用层。数据层主要是链式结构和数据区块以及相关的数据加密技术、哈希算法和时间戳等基本算法,维护用户数据的安全,保证用户数据真实性和数据有效性;网络层是指计算机网络系统中整个网络通信层,包含分布式的组网机制、数据的传递交换机制以及数据的校验交换机制等,从而可以完成分布式组网、传输交换以及数据校验交换等功能。公有链的节点上可允许任何人之间相互交易且这些交易都可同时被系统有效地确认,但其过程会要耗费大量计算节点资源,所以需要激励层通过内部激励机制来提高运算链节点收益,保证系统稳定性与安全性;合约层奠定了区块链可编程控制的基础特性;应用层为行业区块链中开发的各类去中性化应用。其技术架构如图3。
图3 区块链技术结构图Fig.3 Block chain technology structure
区块链集合了分布式存储技术、共识算法、非对称加密算法、智能合约等各种新兴技术,可以运用于激发数据资源价值,在构建能源领域数据同步的新生态、新模式方面其具有独特优势。其技术优势体现在:
1)数据安全
去中心化是区块链最主要的特点,区块链中数据分散存储在多个节点上,各节点都包含有一个账本记录区块链上的完整信息,所有节点共同参与维护存储在链上的数据,所有节点的数据同步更新。
采用这种分布式存储技术与加密算法、哈希算法等技术对存储在区块链上的信息进行加密,有力地保障了存储在区块链上的数据的信息安全,确保了数据持久性。
2)数据交易
区块链包含数据交易环节的所有信息,且不能篡改数据,发现问题可以溯源任何环节。通过区块链不可篡改、可追溯等特性确保了数据同步过程中的权责问题,能有效保障数据合法使用,区块链公开透明的特点帮助建立各个数据中心之间双向、安全、可信的数据交换,打破数据共享壁垒。
3)数据溯源
由于将数据交易环节的所有信息都存储在区块链上,因而数据信息可随时被溯源、查询和审计,并被有效证明。区块链去中心化、可溯源、公开透明的特性,使系统可以溯源、查证数据的使用情况,降低使用风险。这意味着区块链数据同步模式发生较大改变,促进数据中心之间数据资源共享交换。
本文利用区块链技术具有的去中心化、分布式账本、不可篡改、可溯源等特性,将区块链技术与数据同步与调度系统深度融合,解决了数据同步、数据调度中面临的数据确权、数据可信流动、信息隐私保护、数据安全管理等一系列问题。为此,研究将区块链技术应用到数据中心之间的数据同步与调度模型构建中,实现不同数据系统之间数据资源的实时共享与安全可信交换。
区块链技术在数据同步方面的优势,为解决不同系统、不同平台之间的数据共享中数据互信、数据安全、数据壁垒等问题提供了可行性。
区块链网络层的传播机制是实现不同节点之间数据传播的基础。区块链网络层中有3类传播算法:流言算法、泛洪路由算法、定向扩散路由算法。流言(gossip)算法完全去中心化,不存在任何中心节点,其余每个节点均对等,能够实时同步数据。泛洪(flooding)路由算法中各节点都使用广播转发收到的数据包,若收到重复分组则进行丢弃处理。泛洪路由算法有简单、鲁棒性高、时延短、路径容错能力高的优势,能解决实时数据同步问题。定向扩散(directed diffusion,DD)路由算法与Gossip和泛洪路由算法最大的不同是其引入了梯度的概念,其执行由兴趣扩散过程、梯度建立过程及路径加强过程组成。通过对区块链网络层的传播算法进行比较,得到网络层传播算法对比见表1。
表1 网络层传播算法对比表Table 1 Comparison of network layer propagation algorithms
如表1所示,泛洪(flooding)路由算法相比于其他算法的优势在于鲁棒性强、数据时延短、容错域范围大,适用于解决实时数据同步问题。但由于盲目使用资源、信息重复多、信息传输量大,容易在大型网络中产生网络风暴,导致因此很少直接用于大规模场景中。但对于企业和小规模用户来说,该数据同步算法较其他算法更高效。因此,可以通过使用泛洪路由算法进行区块链节点之间的数据传播,实现不同数据系统、不同平台之间的数据同步与调度。
区块链技术的核心算法是共识算法,它的目的是达成各个数据中心之间的互相信任,是实现区块链去中心化、不可篡改特性的核心算法,保障数据安全。目前主流的共识算法主要有3类:证明类、拜占庭故障类、失效-停止类。通过结合具体应用场景,对3类主流共识算法的结合使用,可以达成数据一致性、安全性、可信任度方面的要求。通过对区块链共识层共识算法进行比较,结果见表2。
表2 区块链共识层共识算法对比表Table 2 Comparison of consensus algorithms of blockchain consensus layer
证明类共识算法主要有PoW、PoS、PoM等,它们更适用于公有链环境下。在可信环境下,联盟链多采用拜占庭故障类共识算法。失效停止类算法不会造成散列能力集中、资源浪费和分叉等问题,最多可以容忍50%的节点崩溃故障,算法的安全性能极高,缺点是不适用于公有链和大规模联盟链。
共识层的算法是区块链技术在分布式节点之间实现一致性,保证数据安全同步、达成信任的关键算法。PoS的优势在于大幅减少了节点数量,提高了共识速度,劣势也是由于节点数量太少,违背了去中心化原则。拜占庭容错(Practical byzantine fault tolerance,PBFT)是当系统中的节点出现故障,或节点之间的联系出现问题时,要实现共识,达成一致性会用到这种算法。当某个节点出现问题时,信息在节点间互相传播后各节点列出所有得到的信息,一个节点代表一票,根据少数服从多数的原则,选择大多数的信息作为结果,达成共识。PBET正常运行只需要系统全部节点2/3的正常节点,即容错量可达1/3。通过对上述共识算法优缺点的对比,考虑到具体场景的应用,在应用到平台与数据中心间数据同步与调度系统时,采用将证明类与拜占庭故障类共识算法结合使用,利用互补的方式。
异地电力数据同步调用系统中的各个数据中心节点是联盟成员,主体是各个数据平台,数据同步与调度以传播算法、共识机制、智能合约、加密技术等为技术支撑,构建可信的数据同步与调度系统。基于区块链的异地电力数据共享交换流程如图4。
图4 区块链数据共享流程Fig.4 Blockchain data sharing process
在数据同步过程中每个节点联盟成员都有本地数据中心,数据同步与调度过程中是源数据存储在本地数据中心,链上存储数据需求发送、数据请求授权信息、数据调用交易记录、数据目录摘要信息等。区块链中数据同步的3个阶段为:
1)发送最新状态数据请求
因为待同步节点并不知道当前区块链的最新数据状态,所以待同步节点需首先向区块链网络发起最新状态兴趣请求,联盟区块链待同步节点成员根据本身数据资源按照标准将源数据信息进行加工封装。数据加工包括数据加密处理、哈希值计算,然后抽取数据区块摘要,即哈希指纹、数据权属信息、数据名称、数据项、数据项描述、数据访问方式等。然后发送最新状态兴趣请求,该请求携带本节点最高区块号,以向网络通告自己当前的不完整状态。
2)数据对比
待最新状态兴趣请求到达区块链任意网络节点后,会与到达的网络节点的区块数据进行比较。如果待同步节点的区块号小于到达节点的最高区块号,则说明到达节点的数据状态较新,就会向待同步节点传回到达节点的最高区块号信息,即传回最新区块状态信息。如果待同步节点的区块号不小于到达节点的最高区块号,则说明是该区块链网络节点非实时区块链节点。该区块链网络节点也会变为待同步节点执行上述同样的区块同步步骤,而原先的最新状态兴趣请求会继续向其它数据节点发送,直到被其它实时区块链节点满足后执行对应的步骤。
3)数据同步
待同步节点根据实时节点要求发起数据同步请求,并将请求信息哈希指纹、数据使用成员等上传到链,实时区块链节点根据待同步节点提供的数据使用成员、哈希指纹等信息,使用哈希加密算法、数字签名等方法验证授权信息的真实性。请求信息验证通过后,通过链上的数据区块号进行匹配,将相关数据进行加密传输返回,最终完成数据的同步更新。
需指出的是,由于数据发送记录、数据授权信息、数据调用等交易过程信息全部上链存储,当中间节点满足区块同步兴趣请求时,可直接将中间节点缓存的区块数据传回,再无需传输区块同步兴趣请求至实时区块链节点,从而优化其它相似待同步节点(所缺区块号相同的节点)的数据同步效率。
本文基于区块链技术的数据同步方法旨在解决调度系统异地大数据平台之间数据存在壁垒的问题,提供了对于异地数据平台面临的节点数据传输受带宽限制、资源负载不均衡,数据内容完整性、数据传输安全性、用户检测,以及多方参与情况下数据传输等问题的解决方案。此外,利用可视化的操作形式使得对于调度系统数据同步显得十分直观,简化了数据同步操作的复杂度,很大程度上提升了业务效率。