基于区块链的纺织机数据分析平台设计
2019-02-26呼阳,陈干
呼 阳,陈 干
(西安工程大学 计算机科学学院,陕西 西安710600)
0 引言
随着大数据时代的到来,纺织企业已经认识到数据是企业的战略资产,如何从海量数据中挖掘价值,洞察数据规律,支撑企业实时、精准、敏捷的决策,已成为当下企业迫切的业务需求,在此需求下,大量纺织机数据分析工具层出不穷,产品逐步趋于成熟与同质化[1]。通过接口通信、数据监测、数据预处理、数据存储构建的高炉生产数据分析平台[2],优点是在一定程度上解决了数据分析的“信息孤岛”,缺点是通用性差,成本高;借助大数据技术与业务相结合设计的煤矿安全生产大数据分析平台[3],优点是降低了成本,提高了扩展性,缺点是分析链条的割裂导致分析效率不够高效。因此,纺织企业也迫切需要一个可以覆盖数据接入、处理、建模、可视化的数据分析全过程的数据分析平台。
区块链技术[4]指通过去中心化集体维护一个可靠数据库的技术,区块链技术利用非对称加密技术实现区块数据的存储,利用共识机制实现数据的更新,区块链维护了一个按时间顺序将数据块组合成类似链表的数据结构,具有无中心、共同参与、不可篡改、非对称加密的匿名安全性等特性。
在纺织机数据分析平台架构中引入区块链技术,利用区块链的分布式共享账本将数据分析四个过程的数据进行共享传递,借助区块链的不可篡改性确保在数据分析全过程中的数据安全并且可追溯,解决了数据分析过程中因分析链条割裂而造成分析效率下降的问题,同时增强了对业务需求响应的及时性。
1 平台整体架构
纺织机数据分析平台利用区块链技术去中心化的分布式共享账本,提供数据分析全过程的数据存储和访问服务,区块链技术对数据分析平台所有接入的数据按照时间顺序用非对称加密算法进行加密,将加密数据存入数据块,并将数据块按照先后顺序链接成区块链,保证区块链数据的不可篡改性,可有效实现数据价值追溯性。因此,基于区块链的数据分析平台为数据分析的四个过程提供统一的安全可靠的共享数据账本,保证了数据的真实性和不可篡改性[5]。基于区块链的纺织机数据分析平台总体架构如图1所示。
1.1 区块链网络
网络内的每台服务器节点上的共享账本保存着数据分析全过程中的数据信息,该信息包含外部接入数据、处理后数据、建模数据、结果发布等。利用编写的智能合约来约束外界对公共账簿的数据访问,借助区块链的共识机制保证网络内每台服务器节点数据一致性。
1.2 接口层
纺织机数据分析平台对区块链中业务调用接口的一种封装,成为SDK工具包,SDK中数据分析平台调用区块链查询业务的2类方法。
1.3 数据验证中心
存储数据的所有者的公私钥对,对交互数据进行加密解密,其中所有者的私钥由专门的加密节点设备进行创建与保存,并不提供查询功能。数据验证中心提供了两类接口,一是对数据所有者公私钥对初始化的接口,二是对数据解密的接口,最后将数据所有者的公钥和签名在区块链网络内进行广播。当外部调用解密接口时,由加密节点对传入的加密数据进行解密,返回解密结果。
1.4 数据分析业务系统
纺织机数据分析的数据接入、处理、建模、结果发布等各业务系统借助SDK调用区块链的共享账簿的接口进行数据的查询与存储,SDK所提供的接口包括接入查询与提交、处理数据结果的查询与提交、建模数据的存储与查询、发布结果数据的存储与查询等。
1.5 管理应用层
管理应用层包含区块链网络管理、资源文件目录和权限管理、业务查询管理三部分。
图1 区块链纺织机数据分析平台
2 纺织机数据分析共享数据流程
2.1 数据提交
借助SDK提供的接口实现数据提交。提交过程中,数据验证中心参与对数据所有者公私钥的发放,以增加数据的安全性,通过区块链的共享账本实现数据的共享。以数据分析建模阶段的数据提交为例,如图2所示,具体过程为:
(1)数据分析各阶段按照业务标准打包业务数据,并制定对外共享的数据和权限。
(2)调用SDK提供的建模数据提交接口方法,提交数据所有者和封装的业务数据。
(3)SDK接收到数据后,先在服务器节点上查询是否有数据所有者的公钥。若有,用该公钥加密业务数据;否则,调用数据验证中心的公私钥接口获取公钥。
(4)系统的认证授权(CA)使用自身的私钥对封装的业务数据和数据者进行数字签名。
(5)SDK调用自身建模数据提交接口进行提交数据,数据验证中心对业务数据进行签名验证,验证成功后将业务数据进行保存。
图2 数据提交流程
2.2 数据查询
纺织机数据分析共享平台的查询也是通过SDK提供的查询接口实现对业务数据的查询,SDK将查询数据发送给数据验证中心进行解密,同时验证该数据的访问权限,然后根据访问权限返回数据结果。以数据分析建模过程的数据查询为例,如图3所示,具体过程为:
(1)外部调用SDK的数据查询接口并传入参数,具体参数包含数据所有者和查询选择项等信息。
(2)SDK借助系统的认证授权管理CA对访问请求进行私钥签名。
(3)SDK调用服务器节点上查询接口进行查询,服务器节点验证签名,验证通过,返回加密的查询结果。
(4)SDK返回各加密查询结果统一发送给数据验证中心进行解密,从而得到解密的建模数据。
(5)SDK返回解密后的建模数据。
图3 数据查询流程图
3 关键技术
3.1 区块链
区块链技术[6]是一种共享的分布式数据库技术,具备去中心化、集体维护、多方监督、不可纂改等特性,区块链将信息按照时间顺序封装成数据块,并将数据块按先后顺序组合成链表结构,利用共识机制保证区块链网络内所有的节点数据一致,通过智能合约来控制数据访问的权限。
3.2 智能合约
智能合约概念最先被Nick Szabo博士[7]提出,被认为是以数字形式定义的能够自动执行条款的合同。在区块链领域,智能合约是定义资产并且可以用于修改资产的事务指令的软件,它制定了执行读取或修改键值对以及其他状态数据库信息操作的规则[8]。智能合约通过一个事务请求来执行对账本的当前状态数据库操作。
3.3 共识机制
区块链共识机制[9]可使网络内各节点的数据账簿保持一致,是区块链节点协同一致工作的核心。平台采用拜占庭容错[10](Practical Byzantine Fault Tolerance,PBFT)共识算法实现其共识过程。在区块链网络内,利用工作量证明选出主节点,其余节点为从节点,之后执行共识过程。具体步骤为:
(1)主节点将一段时间的数据封装成一个数据区块,然后将该数据区块、数据区块哈希值、主节点的数字签名发送给从节点进行审计。
(2)从节点接收到主节发送的数据后,对其合法性进行验证,将审计结果和自身数字签名发送给其他从节点。
(3)从节点收到其他从节点的审计结果,将自身验证结果、收到的全部审计结果、所有审计结果对比的最终结果、自身的数字签名返回给主节点。
(4)主节点汇总所有从节点返回的审计结果。如果所有的验证结果都表示当前数据块合法,主节点将当前数据区块、对应的数字签名、从节点证书列表发送给全部从节点,保证网络内节点数据一致。
(5)若存在从节点不同意审计结果,主节点将数据块重新发送给这些从节点再次审计,若仍然有部分从节点反对审计结果,则按少数服从多数原则审计。
4 系统功能
4.1 纺织机数据源信息共享
数据源为后续的数据分析提供基础的数据支撑,数据可从文件、数据库、第三方平台获取。在数据分析共享平台建立统一的数据源库,避免了相同数据多次导入,提高了数据分析过程中数据接入的效率。
4.2 数据预处理结果共享
数据预处理是为下一阶段数据建模提供基础数据,包括数据源的选取、数据字段的过滤、数据类型的转换、数据列的隐藏等。在数据分析共享平台建立统一的数据预处理结果库,为后续分析数据提供直接的质量数据。
4.3 建模数据共享
建模数据主要根据业务需求进行模型构建,满足不同的场景应用,数据从预处理数据中获取。在数据分析共享平台建立建模数据库,方便不同场景相同业务使用同一模型,提高了数据分析的能力。
4.4 成果数据共享
将已完成的分析结果及时共享,以此来提高业务工作的效率,在数据分析共享平台建立统一的成果数据库,所有的用户都可以及时看到对应业务的分析结果。
5 系统测试及分析
系统利用5台相同型号的服务器搭建分布式测试环境,每台服务器的基本硬件配置为:Intel八核3.80GHz CPU,16G内存,Cent Os6.5操作系统。在同一局域网中并且相同的共识机制环境下测试,排除网络带宽对测试结果的影响。
系统测试的主要目标是观察数据源的平均重复率和数据预处理结果重复率对数据分析效率的影响。数据源平均重复率指多次数据分析中数据源相同的数据分析次数占总分析次数的比率;数据预处理结果重复率指多次数据分析中需要相同预处理结果的分析次数占总分析次数的比率。计算公式为:
数据源平均重复率=数据源重复的次数/总分析次数 (1)
预处理数据重复率=与处理数据重复次数/总分析次数 (2)
图4为测试时数据源重复率与预处理数据重复率及数据分析效率的关系。
通过测试结果可以看出,随着数据源重复率和预处理数据重复率的增加,数据分析的效率也随之增加。当数据源有重复时,第一次分析需要数据接入的步骤,之后每次分析就可免去过程,直接使用数据源;当预处理数据有重复时,第一次分析前面的数据接入、数据预处理正常执行,之后每次分析都可以直接使用之前的预处理书,所以大大提高了数据分析的效率。
从表1可以看出,区块链数据分析平台能达到数据分析的基本功能和性能要求,同时可以跨系统交互,从而保证数据分析链的完整性,同时也能够做到对业务决策的及时响应。
图4 数据源和预处理数据重复率对数据分析的影响
表1 区块链数据分析平台与传统数据分析平台性能对比
6 结语
针对数据分析各阶段的数据传递不及时而造成的数据分析链割裂问题,研究设计了基于区块链的数据分析平台。利用区块链的分布式公共账本,实现对数据分析全过程数据的全局共享;借助区块链的不可纂改特性实现数据分析的可追溯性。系统测试结果表明区块链数据分析平台进行多次数据分析时,数据分析效率大大提高。平台采用PBFT共识算法实现共识过程,使分析平台的容错能力为区块链网络内节点数量1/3。在今后的工作中,可考虑进一步改进区块链的共识机制,使区块链数据分析共享平台达到更高的容错能力。