基于区块链的附加服务订单状态全流程跟踪系统设计与实现
2024-01-23熊国民涂卫平于明亮陈铁方
田 雨 熊国民 涂卫平 李 键 王 刚 于明亮 陈铁方
(中国民航信息网络股份有限公司,北京 101300)
0 引言
附加服务离港复核场景当前涉及软件系统链条较多,业务流程较为复杂,从而导致离港复核失败的业务场景也较为多样化,例如不正常航班保障、旅客客票变更、订座和离港系统差异、订单丢失等多种原因均会导致旅客所购买的附加服务产品在离港交付环节的复核失败。航空公司在进行后续的业务追踪和财务审核过程中,需要找到导致离港复核失败的具体原因。而当前现有技术中无法查到电子杂费单和民航电子客票断开关联的旅客信息并跟踪断开关联的具体原因,给后续为旅客办理退票业务、财务审核业务等均带来不便。
基于区块链的附加服务订单状态全流程跟踪系统通过区块链技术实现数据溯源[1]及防篡改,区块链各节点使用区块链网络将本系统拥有的附加服务订单状态信息进行发布,实现数据的共享与协同,方便后续快速精准定位跟踪问题。
1 系统架构设计
1.1 系统功能模块设计
本系统依托高性能、强隐私保护的区块链技术平台,实现了附加服务订单状态信息的共享及安全,保证订单数据获取真实且可追溯。本系统包括离港复核场景业务模块、前端页面展示模块、区块链数据上链[2]模块、后端检索模块和区块链Baas 平台。如图1 所示,其中离港复核场景业务模块主要负责提供离港复核场景旅客信息、航班信息和交易状态等数据。主要完成在离港复核场景中各个支撑系统的数据订正与同步。区块链数据上链模块主要将各个支撑系统在离港复核场景中产生的数据写入区块链账本[3]。通过gwsdk 工具(一种可执行jar 包)启动附加服务智能合约[4]客户端,发送消息到区块链Baas 平台网关,调用部署在区块链Baas 平台上的附加服务智能合约服务端,更新区块链分布式账本。
图1 系统功能模块整体架构
前端页面展示模块主要用于对后端检索模块下发附加服务订单信息查询请求或者区块链溯源请求,同时接收后端检索模块返回的订单信息并进行展示。一方面,后端检索模块提供订单基本信息查询接口,调用统一订单数据库CTR(Customer Travel Record,旅客旅行记录),查询离港复核信息表dcsDelivery_info 和离港复核杂费单表dcsDelivery_emd_info,将信息整合打包,返回给前端展示页面。另一方面,接收前端展示页面的区块链溯源请求,提供区块链溯源接口,启动附加服务智能合约客户端,调用附加服务智能合约数据查询接口,溯源多个服务支撑系统状态码变化过程。
区块链Baas 平台包括权限校验模块、智能合约模块和分布式区块链账本,实现附加服务客户端发送私钥以及用户证书给Baas 区块链平台,Baas 平台接收附加服务客户端的私钥和用户证书,进行CA 身份认证(CA 认证,即电子认证服务)、权限校验,同时,提供订单溯源接口,根据目标附加服务订单的标识交易号tid 查询订单变化过程,进行区块链溯源。
1.2 证书颁发设计
在区块链网络中设置证书颁发机构CA,核对身份信息及生成公私钥信息过程如图2 所示,CA 身份认证服务器颁发数字证书给订单交互系统和订单管理系统,由订单管理系统代理主机ICS 系统和EMD 电子杂费单系统实现身份认证。通过验证数字证书,区块链网络确认交易双方的身份。利用身份验证[5]方法,各节点能够保护和掌握本节点的身份信息,授权和拒绝其他节点使用本节点的身份信息,确保交易的合法性和安全性。
图2 证书颁发设计
1.3 身份认证启动智能合约设计
区块链技术安全可靠、可溯源、不可篡改的特性为认证过程提供必要的数据支持。智能合约作为区块链技术的重要组成部分,具有自动执行,去中心化等特点[6],使用智能合约可以自动处理规则和计算用户数据。根据用户提供的签名信息和证书进行身份验证,身份认证通过的节点可以启动附加服务智能合约,更新区块链账本信息。各系统节点通过身份认证启动智能合约设计如图3 所示。
图3 身份认证启动智能合约设计
1.4 区块链和数据库系统中存储的数据信息设计
区块链中存储的数据信息包括交易历史信息、订单交互系统状态码信息、EMD 电子杂费单系统状态码信息、主机ICS 系统状态码信息、订单管理系统状态码信息。
数据库系统中包括离港复核信息表(dcsDeliveryInfo表)和离港复核杂费单表(dcsDeliveryEmdInfo 表),其中离港复核信息表包括附加服务订单的交易号、用户订座记录、电子客票单号、旅客信息、航班信息、订单交互系统的状态信息、订单管理系统的状态信息、主机ICS 系统的状态信息和区块链交易哈希[7];离港复核杂费单表包括:目标附加服务订单的交易号、EMD 电子杂费单号、航段EMD 电子杂费单号和EMD 电子杂费单系统的状态信息。
1.5 订单信息查询和区块链溯源流程设计
本系统基于分层架构设计,采用vue+springboot+Fabric[8]区块链整合。首先前端展示页面发出查询请求,该查询请求可以是附加服务订单信息查询请求,也可以是区块链溯源请求。当后端检索模块通过功能代码funccode 识别出接收到的是附加服务订单信息查询请求时,后端检索模块调用统一订单数据库CTR,CTR 数据库返回该目标订单的订单基本信息表。订单交互系统、订单管理系统、主机ICS 系统和EMD 电子杂费单系统为在附加服务离港复核场景中的各个支撑系统,也是数据上链过程中的节点。
后端检索模块将收到的订单基本信息表打包后发送至前端页面展示模块进行展示。用户根据展示的订单基本信息,决定是否进行区块链溯源,在需要进行区块链溯源时通过展示页面发出指令,前端页面展示模块向后端检索模块发出区块链溯源请求,后端检索模块对报文进行检验,根据用户证书进行CA 身份验证,在验证通过的情况下启动附加服务智能合约客户端,调用附加服务智能合约数据查询接口,查询区块链账本上记录的附加服务订单的交易历史信息。根据该状态码变化过程可以看出在整个离港复核的数据流动过程中,具体哪个节点出现问题,方便对订单进行跟踪。
附加服务订单状态全流程跟踪系统订单信息查询和区块链溯源流程设计如图4 所示。
图4 订单信息查询和区块链溯源流程
2 系统开发平台搭建
3.1 开发环境区块链调用部署流程
上传前端调用后台检索jar 包、配置文件、服务启停脚本、密钥及证书,执行启动脚本,开启监听请求服务,开发环境区块链调用部署流程如图5 所示。
图5 开发环境区块链调用部署流程
3.2 配置项和配置项描述
配置项和配置项描述见表1,本系统开发环境的部分配置项信息包括区块链及数据入库开关、区块链网络信息以及智能合约等相关配置。
表1 配置项和配置项描述
3.3 部署后如下图
区块链中存储智能合约数据,通过部署发布智能合约并执行调用。数据入库及上链完成后,通过前端页面查询数据。系统部署启动服务后页面如图6 所示,该页面可以实现根据航班日期、航班号、订单状态等多种方式查询;或者对某一条订单状态进行区块链溯源,获取历史交易信息、状态变化信息。
图6 系统部署后页面
3 结语
本文研究在民航旅客附加服务订单状态全流程追踪的基础上,利用区块链技术安全存储旅客附加服务订单状态数据,通过将各服务支撑系统全流程建立合约并上链,将账本信息同步给链上节点,实现订单溯源、业务快速跟踪和问题精准定位,同时避免旅客信息在流通中泄露。基于区块链Baas 平台,支持多实例部署,通过动态水平扩展、负载均衡技术保障系统高性能。本系统不仅解决离港复核场景下的问题,同时监控各服务支撑系统的运转健康状况,提升数据的互信,有效降低航司人工及时间成本,提高航班数据共享的效率和准确度,增加民航数据的安全性和可靠性。
附加服务订单状态上链可以实现票务共享、座位里程积分共享、旅客行为特征数据共享,给航司营销拓客提供支持,而且将来可以实现一站式端到端的服务,比如酒店、租车等数据共享获取,用户、航司、供应商作为链上节点可以参与各个环节的数字化服务,消除信息孤岛,提升优化服务,增强用户黏性,进而间接提高民航经济效益,推动民航产业发展。