为上层应用提供统一的api接

申屠青春/文

当中间件遇上区块链,将会碰撞出怎样的火花?两种技术跨界融合后,又会带来怎样的应用和客户体验呢?

区块链浪潮

区块链是新一代金融基础设施的底层架构技术,它将推动金融基础设施变革和金融商业模式的变革。世界经济论坛宣称,90多家央行正在讨论区块链应用,并预计2017年世界上80%的商业银行都会研发区块链应用;R3联合摩根大通、高盛等42家超大型金融机构打造Corda清结算区块链;LINUX基金会联合INTEL、IBM等近百家科技公司和金融机构研发分布式账本Hyperledger

中国成立了金链盟和Chinaledger这两个金融区块链联盟组织开展区块链研究;工信部推出了区块链技术白皮书和区块链参考架构标准;央行成立数字货币研究所并研发和试运行数字货币原型。

区块链将给金融行业节省巨大成本。金融行业每年花费约1500亿美元在IT和运营开销上,此外还有1000亿美元的交易后和证券服务费用,华尔街认为区块链能给他们节省一半的费用。德勤估计区块链在审计行业的应用,在5年内将给德勤节省60-80亿美元。西班牙最大银行桑坦德发布的报告显示,如果2020年左右全世界银行内部都使用区块链技术,每年可节约近200亿美元成本。

金融机构因其被高度监管的特性,难以在主营业务的生产环境中快速采用区块链技术,其他行业如供应链、物联网、互联网等反而有可能率先落地在生产环境中。目前公认的一些区块链应用点有:数字资产、供应链、身份信用、股权债券、公示公证、电子票据、医疗记录、物联网、数据共享等。

中间件概念

中间件(Middleware),维基百科上的定义是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的沟通,特别是应用软件对于系统软件的集中的逻辑,在现代信息技术应用框架如Web服务、面向服务的体系结构中,应用比较广泛。百度百科定义中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。

由此可见,中间件是位于平台(硬件、操作系统、通用软件)和应用之间的通用服务,如图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统、硬件平台和其他通用软件,它们可以有符合接口和协议规范的多种实现方式。

中间件具有如下一些特点:

满足大量应用的需要;

运行于多种硬件平台、操作系统、通用软件;

支持分布计算,提供跨网络、硬件平台、操作系统、通用软件的透明性的应用或服务的交互;

支持标准的协议接口。

由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:

远程过程调用中间件(Remote Procedure Call)

面向消息的中间件(MesSAge-Oriented Middleware)

对象请求代理中间件(object RequeST Brokers)

区块链应用难点

技术始终应该为业务服务,空有”屠龙术”,但没有龙,这样的技术体现不出价值;区块链也是如此,必须与应用场景相结合才能真正体现出它的潜力。大量国内外金融机构正在研究区块链技术,以期与业务相结合、促进应用落地。但他们面临着不少问题,阻碍了应用落地的进程:

(1)应用落地周期长。金融机构更关注如何把区块链技术应用到业务,提升业务效率或服务质量,而非停留于区块链底层技术本身。但目前要做区块链应用,得先掌握区块链技术和理念,再选取应用场景,选用区块链,熟悉该种区块链的开发技术,最后进行区块链应用开发,业务改造,整个周期较长。

(2)从业人才成本高。区块链技术和应用对从业人才层次、技术积累和理念改变提出了较高的要求,金融机构难以在短时间内培养出金融和区块链的交叉人才,人才成本和成长成本很高。

(3)区块链选用难。目前区块链底层技术平台如比特币区块链、以太坊、超级账本、Corda、Chain等,其发展前景不确定,金融机构在实施区块链应用时必须考虑选用的区块链能否长期存在、合规性、版权、运维等一系列问题。

因而,解决以上三个难点,就成了区块链应用的关键。以上的问题恰好可以用中间件技术来解决。

区块链中间件

区块链中间件可以封装多种异构的区块链如Bitcoin、Ethereum、Fabric、Corda等,以及未来符合工信部标准的区块链、央行开发的区块链等,使客户随时切换区块链底层技术平台,无需考虑它们的编程语言、设计风格、适用场景、后续发展、存在风险和技术不确定性。如果工信部或央行的区块链平台出现,区块链中间件一样可以支持。

区块链中间件对上层应用如抵押品、积分、供应链、贸易金融、支付预算、公示公证等提供了统一的API接口,如用户管理、资产管理、智能合约等API接口。区块链中间件的应用架构如图2所示:

图2 区块链中间件的应用架构图

区块链中间件在区块链应用和区块链底层技术平台之间架起一座桥梁,可以认为是区块链应用的入口,意义重大。

区块链中间件可以以区块链云服务方式运行于公网,客户只需前端和JAVA开发人员,调用API函数,在1-2月内即可完成区块链应用原型开发,无需理解底层技术,大大降低中小型企事业单位实施”区块链+”的时间成本、人力成本和人员要求,更快地实施”区块链+”战略。

区块链中间件还可以进行私有化部署,适用于大中型企事业单位。一些金融机构和大型企事业单位出于更高的数据安全性和保密性要求,希望把区块链中间件建立在机构内部。因而区块链中间件私有化方案的提供,可以用来满足私有化需求。

区块链中间件架构设计

上文已经明确了区块链中间件的概念、功能,以及解决的问题。那如何来设计和实现区块链中间件呢?首先我们给出区块链中间件的应用场景以及系统组件。

图3 区块链中间件的应用场景

图3中的各个系统组件的功能设计如下:

开发者管理平台,让开发者注册、获得应用接入许可、查询API日志、发行资产查询、费用支付的管理平台,方便开发者开发区块链应用。

区块链管理平台,主要针对管理员,对开发者账号进行审核、暂停、封号等操作,并且可以查询开发者的API统计信息、查询各种发行的资产、核算开发者支付的费用、对各种区块链底层技术平台进行配置和管理等。

API网关,给开发者的区块链应用一个特定的API接入点,API网关接受各个开发者的API请求,封装成区块链交易发送到各种区块链上;或者根据API请求返回对各个区块链的信息获取结果。

SDK和DEMO,还需提供开发SDK和一些区块链应用DEMO,以供开发者快速开发。

区块链中间件的应用场景:

开发者注册账号,通过区块链中间件管理员的审核后,获得APP ID和KEY;

开发者使用SDK或DEMO,开发出自己的区块链应用;

开发者的区块链应用使用APP ID和KEY,通过API网关访问各种区块链;

管理员通过区块链管理平台对各种区块链底层技术平台进行配置和管理。

区块链中间件要解决的关键问题:

区块链应用需求适应性。区块链应用不断变化,需求不断增加,区块链中间件要适应这种变化,满足或推出更多的API接口;

区块链发展的适应性。目前区块链底层技术平台的数量已经不少,还在不断的增多或消亡;同一种区块链会不断分叉,引起软件和接口变化;区块链不同版本的接口也不尽相同。区块链中间件要及时跟进区块链的这些变化;

可管理性。随着区块链中间件支持的区块链类型越来越多,节点越来越多,对于区块链和节点的管理是一个大问题,区块链中间件的可管理性决定了区块链应用API服务的质量,要能做到像目前的云计算VPS一样随到随用,不用就关;对于区块链的管理也是如此。

高可用性,支持高流量的并发访问,提供99.99%以上的系统可用性,API网关、数据库都要做到负载均衡,防止系统崩溃,从而减少对企业带来的损失。

虽然区块链中间件有不少优势,但是目前还很少有面市的产品或服务,其研发上存在不少困难,希望更多的区块链从业人员加入到区块链中间件的研发中来,为区块链应用的落地做出贡献。

点赞

发表评论