APP下载

基于区块链的消息中间件技术研究

2019-09-10许华根

河南科技 2019年13期
关键词:中间件区块链

许华根

摘 要:消息中间件是实现信息系统信息共享的基础设施,传统的消息中间件通常采用集中服务的方式实现,依赖于可信的消息中心。区块链可以实现去中心化的数据一致性,并确保信息不可篡改。由此,本文基于区块链设计了一种消息中间件架构,可以实现去中心化的信息共享,保护用户的数据隐私。

关键词:中间件;区块链;共识协议;不可篡改

中图分类号:TP311.52 文献标识码:A 文章编号:1003-5168(2019)13-0016-03

Absrtact: Message middleware is an infrastructure for information sharing in information systems. Traditional message middleware is usually implemented by centralized service and relies on trusted message centers. Blockchain can achieve de-centralized data consistency and ensure that information can not be tampered with. A message middleware architecture based on block chain was designed, which could realize decentralized information sharing and protect users' data privacy.

Keywords: middleware;blockchain;consensus protocol;non-tampering

1 研究背景

计算机技术和网络技术的发展使得信息系统发展成为多台计算机协同工作的集群,不同计算机共同完成一项任务。早期的计算机系统通过直接的客户端/服务器(C/S)架构实现计算机间的数据交换与共享。但是,随着计算机应用的日益复杂以及计算机网络规模的逐渐扩大,C/S架构的局限性逐渐凸显:C/S架构仅能形成点到点的通信模式,适用于少量计算机的连接及简单业务的交互;C/S架构业务逻辑调整困难,平台通用性不强。因此,需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,中间件技术就此应运而生。

中间件[1]是介于操作系统(包括底层通信协议)和各种分布式应用程序之间的一个软件层。中间件屏蔽了底层操作系统以及网络的异构性,为分布式业务逻辑提供统一的接口支持,实现不同计算机之间的通信与数据同步。传统的中间件系统[2]需要依赖一个中心化的节点实现接口注册、服务寻址、节点管理等功能。中心节点可以管理与控制整个中间件系统的运行,其失效也将引起整个中间件系统的失效。同时,中心节点可以获取整个中间件的数据交换内容[3]。

在对隐私保护要求较高的应用中,難以找到各方都信任的中心节点控制系统的数据交换,因此需要一种去中心化的中间件技术[4]。近年来出现的区块链技术是一种无中心的分布式计算系统,没有单一的节点可以控制数据的交换与存储。由此,本文提出一种基于区块链的中间件架构,利用该架构实现无中心化的分布式中间件系统。

2 传统的中间件技术

中间件是介于应用软件和系统软件之间的一类软件,其使用系统软件所提供的基础功能,衔接网络上应用软件的各个部分或不同的应用,能达到资源共享、功能共享的目的。一般认为,中间件具有以下特点:标准的协议和接口;分布计算,提供网络、硬件、操作系统透明性;满足大量应用的需要;能运行于多种硬件和操作系统平台。

中间件实现的标准接口和协议是首要的特征,因为其可以实现不同硬件和操作系统的差异屏蔽,实现数据共享和应用互操作的一致性。中间件按照以下机制工作:在客户端上的应用程序需要从网络中的某个地方获取一定的数据或服务,这些数据或服务可能处于一个运行着不同操作系统和特定查询语言数据库的服务器中。应用程序中负责寻找数据的部分只需访问一个中间件系统,由中间件完成到网络中找到数据源或服务,进而传输客户请求、重组答复信息,最后将结果送回应用程序的任务。在具体实现过程中,中间件是一个用API定义的分布式软件层,具有通用的通信能力和良好的可扩展性的分布式软件管理框架。

分布计算中间件是一种具有承上(应用软件)启下(系统软件)作用的支撑软件,其支持一体化网络计算,故又称为网络计算中间件,或称为软件中间件,简称中间件。中间件的功能在不同系统中也各有不同。按照通信机制和实现的功能,可将中间件分为消息中间件、远程过程调用中间件、面向对象中间件、面向服务中间件等不同类型。

3 区块链技术

区块链是近年来伴随着密码数字货币兴起而产生的一种分布式共识协议。除了在密码数字货币中取得的成功外,基于区块链共识机制结合智能合约等技术可以实现更广泛意义上的安全多方计算,因此区块链技术可应用领域更加广泛。在区块链提出之前,类似的功能通常基于安全多方计算实现,如通过著名的拜占庭协议实现多方参与者的共识。区块链技术的独特之处主要有以下几方面。

①区块链共识机制无需可信第三方参与。无需可信第三方参与意味着任何用户均可自由参与区块链系统,因此区块链又称为无许可(Permissionless)系统。在传统的安全多方计算环境中,攻击者可注册足够数量的用户,从而实施女巫攻击(Sybil Attack)。Barak等人系统研究了无许可机制系统下的女巫攻击问题,区块链技术通过工作量证明机制有效抵抗了此类攻击。

②区块链共识机制可扩展性极高。传统的安全多方计算协议均较为复杂,通信复杂性及计算复杂性限制了其在大规模环境中的使用。区块链技术是第一种可在全球范围分布式部署的共识协议[5]。区块链系统通过简单的无认证广播信道以及区块链长度竞争机制,实现了高效的共识协议。

正因为区块链技术具有以上显著优势,因此其不仅可用于建立安全有效的密码数字货币系统,还可用于新型安全多方计算系统的安全模型,设计具备可扩展性的安全多方计算协议。

由于区块链技术可以在避免中心节点参与的情况下实现分布式系统的数据一致性存储、访问与使用,因此,区块链技术可以用于分布式系统,并提高系统的安全性。其安全性的提升主要表现在以下几方面。

①访问公平性。在区块链系统中,所有数据记录是全体参与者共同确定的,不存在控制所有数据读写的中心节点。因此,对数据记录、使用与访问是由系统参与者共同维护的,可避免中心节点带来的数据访问不公平的问题。

②数据不可篡改。区块链通过共识算法形成的链式数据结构具有不可篡改的特性,系统中全体用户维护了系统整体的安全性。在此假设下,少量用户无法擦除区块链中已有的数据,因此为系统带来了良好的不可篡改特性。

③系统高可用性。区块链系统的运行不依赖主节点的调度与系统管理,所有的参与节点都是对等的,因此,系统不存在单点故障问题,可大大提高系统的可用性。这种可用性不依赖于节点热备等额外措施,在高对抗环境中更加可靠。为提高系统的可管理性,本项目采用面向自主芯片同时弱中心控制节点注册的机制,中心不参与系统的运行过程。

4 基于区块链的消息中间件设计

4.1 消息中间件

消息中间件是面向消息传输需求的中间件技术,此类中间件屏蔽了底层平台之间网络的异构性,简化了应用之间的数据传输,为分布式应用系统提供高效透明的通信服务。消息中间件的模式有点对点、消息队列、发布/订阅三种。点对点模式的通信灵活性往往有很大的限制,因为其时间和空间的耦合性较强;消息队列模式虽然可以解决时间和空间的松耦合问题,但其队列服务器需要单独配置,因此易出现单点故障的问题,可用性和可靠性较低;发布/订阅模式中消息的发布者和订阅者是通过主题关联的,可以实现通信双方时间、空间和数据通信的多维松耦合[6]。

消息中间件需要具有高可靠性、易扩展性、时效性和多态性,关键技术包括对等式结构、多种服务质量、多态功能的支持以及跨平台。

4.2 基于区块链的消息中间件

传统的中间件设计往往使用一个中心节点来支持上层应用以及屏蔽底层设施,但中心节点一旦出现问题,会影响整个系统的运行。在多用户参与的信息系统中,难以找到一个所有参与者可以信任的中间件,分布式消息中间件不依赖于可信的中心,因此更加适合弱信任的信息系统。

图1是一种典型的信息系统架构。在这种系统架构中,由于需要中间件进行数据流转和消息传送,所以应用端需要将其数据及端口信息一定程度地暴露给中间件,端口的暴露也经常会带来安全隐患。在应用系统较多的情况下,也会带来防火墙配置繁杂的问题。信息系统中开放的端口也越多,存在的安全隐患就越大,只能通过端口扫描、防火墙等传统安全技术手段被动地防范安全攻击。

使用基于区块链的分布式中间件可以保证多个应用系统之间的安全协作,各个业务子系统通过主动访问、获取以及提供数据,从而避免暴露自身的网络地址与端口,避免因為端口暴露而引起的安全隐患。

基于区块链的消息中间件利用了区块链本身的去中心化特点,并结合消息队列与发布/订阅的优势,使应用系统可以在不暴露端口的情况下与其他应用系统进行数据流转和消息传递。为了提高数据共享与存储效率,数据和消息摘要会被记录在区块链上,其具体内容会存放于对应的数据库中。区块链上的内容用于保证数据库中的数据不可篡改,数据库提供高性能数据查找与访问。具体设计架构如图2所示。

每个共识节点维护两个消息队列,分别是请求消息队列与应答消息队列。当共识节点接收到数据请求类消息时,将请求的消息内容压入请求消息队列中,并向全网广播;当共识节点接收到响应类消息时,会将响应的消息内容压入响应消息队列中,同时进行全网广播。应用端节点需要定期查看消息队列中的消息,看是否有自己可以提供的服务或对自己请求消息的应答。在整个系统中,所有用户经由区块链的消息都会被记录下来,保存在区块链系统中,并且通过共识协议,在各个共识节点中达成一致,且不可篡改。

5 总结

区块链具有去中心化、防篡改、数据可追踪的特点,能使分布式系统在无信任的情况下安全稳定运行。消息中间件是用来屏蔽底层异构平台、支撑上层应用的中间件技术,为分布式应用系统提供高效透明的通信服务,一个可靠的中间服务器往往是最理想的选择,因为中间服务器可以为应用系统提供灵活高效的消息传递。但是,这样的消息中间件模式太过依赖于中间服务器,一旦中间服务器出现故障,整个系统都将受到极大影响,而且对中间服务器来说也没有隐私安全可言。而区块链系统正是用多节点来取代单一节点的分布式系统,且多节点之间无需信任关系。因此,本文用区块链来构建消息中间件,有效解决了单点故障问题,且各个应用系统无需暴露端口,只需要向区块链中的共识节点发消息,且通过发布/订阅的模式接受服务或对请求进行响应。

参考文献:

[1]陈凤娟,郭群.普适计算中间件技术的研究[J].计算机时代,2010(9):1-4.

[2]周园春,李淼,张建,等.中间件技术综述[J].计算机工程与应用,2002(15):80-82.

[3]刘昌威.基于SDN网络的发布/订阅中间件路由计算模块的性能优化[D].北京:北京邮电大学,2017.

[4]张应刚.分布计算中间件技术的探讨[J].科技创新导报,2009(2):33.

[5]张联梅,王和平.软件中间件技术现状及发展[J].信息通信,2018(5):183-184.

[6] Garay J, Kiayias A, Leonardos N. The Bitcoin Backbone Protocol: Analysis and Applications[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques.2015.

猜你喜欢

中间件区块链
我国自主可控中间件发展研究
保险企业的区块链技术应用方向选择研究
区块链技术在金融领域的应用与前景研究
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
基于区块链技术的数字货币与传统货币辨析
用“区块链”助推中企走出去
以实力证明 用事实说话
中移动集采:东方通中间件脱颖而出
国产中间件苦尽甘来