APP下载

基于中间件的统一验票系统

2014-10-10郑琪蒋盛益

电脑知识与技术 2014年24期
关键词:数据共享中间件

郑琪 蒋盛益

摘要:为了解决一场演出的票务委托多家票务公司销售而造成票务信息不统一,无法通过验票终端统一验票的问题,设计开发了票务中间件,所有票务信息通过票务中间件进行集中和共享。详细介绍了基于中间件进行统一验票的信息处理流程和系统设计。

关键词:统一验票;中间件;数据共享

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)21-5692-03

The Unified Checking System Based on Middleware

ZHENG Qi, JIANG Sheng-yi

(School of Informatics, Guangdong University of Foreign Studies, Guangzhou 510006, China)

Abstract:The tickets of a show are consigned to different ticketing companies to sell. The selling information is separated and hard to be unified to check by devices. The ticket service middleware is developed to solve this problem. All the ticket information are The information processing flow and system design of unified checking system based on middleware are introduced.

Key words: unified checking system; middleware; sharing data

随着网络技术的发展和互联网的普及,剧院传统的购票和检票模式也发生了很大的变化。用户购票从传统的购票窗口购票,发展为可以利用电脑、移动设备在线购票。剧院检票也从人工检票转变为利用闸机、手持设备实时检票。这些模式的变化也给票务系统设计带来了新的挑战。由于剧院的一场演出票务往往会由票务总代理委托给多家网上票务公司进行代理销售。例如目前规模较大的网上票务公司有中演票务通、大麦网、永乐票务等。由于多家票务公司在售票过程中使用各自的售票系统,数据格式各不相同,生成的票务验证信息也不一致,所以售票数据无法统一,导致无法在检票过程中利用终端进行统一验票,而只能通过人工方式进行验票。为了改变目前场所验票终端不能服务于多家票务公司的现状,我们设计开发了统一的中间件平台,从而实现票务信息的统一管理。本文主要介绍如何通过中间件平台实现票务的统一验票。

1 票务系统的系统架构

票务系统的架构见图1。该系统以票务服务中间件服务器为核心。票务服务中间件服务器对外提供统一的XMLHTTP接口,并为每个访问客户分配用户码和Key,通过调用统一的接口来实现售票数据的上传和下载[1][2]。票务总代理、票务公司、检票方在进行数据交换时都需要通过中间件服务器。

2 票务系统的处理流程

票务系统的处理流程如下:

1)票务信息的发布。票务总代理将所有的可售票信息通过票务总代理的接口服务器发布到中间件服务器。

2)售票。各票务公司通过本票务公司的接口服务器将该票务公司可代理的售票信息下载到本公司的票务系统中,通过票务公司自己的售票系统进行发售,同时及时将售票信息更新到中间件服务器。

3)验票。验票的流程如图2。剧院在验票开始前利用剧院的接口服务器从中间件服务器下载所有的票务信息。在进行验票时,将每张票面的二维码信息与本地数据库中的本场演出的MD5编码进行比对[3]。如果未查找到该票面的相关信息,则通过中间件更新本次的票务信息后进行二次比对。如果比对成功,则认为验票成功;否则认为验票失败。

3 基于中间件的验票系统实现

该验票系统主要包括两大部分的通信。一部分是通过互联网将验票信息从中间件服务器下载到本地局域网内的验票服务器。另一部分是各种验票设备将票面上的二维码信息传递给验票服务器进行比对。

3.1 验票数据的下载

验票服务器与中间件服务器的通讯接口遵循XMLHTTP接口协议,并统一采用UTF-8编码。为了避免票务信息的非法获取或篡改,并且唯一标志每个访问客户,每个需要访问中间件服务器接口的合作伙伴都会分配一个合作伙伴编号和密钥。双方传输的消息报文包括请求报文和应答报文两种类型,采用XML格式,由报文头和报文体两部分构成[4]。报文头包括版本号、消息服务类型、合作伙伴编号、报文签名和时间戳。在报文头中加入消息服务名称,用来定位访问何种数据服务。在报文头中对报文进行签名,防止报文内容在传输途中被篡改。报文签名规则为将合作伙伴密钥、消息服务类型、合作伙伴编号和时间戳构造的字符串使用MD5算法进行散列后再进行Base64编码[5]。验票数据的下载需要使用的中间件的接口如下。

获得场次信息:查询指定日期内的场次信息,消息服务名称getunits。

获取验票数据:获取某个场次的所有未检票数据,消息服务名称getticketinfo。

上传检票结果:上传某个场次的所有已检票数据, 消息服务名称upcheckticket。

3.2 验票数据的更新

由于验票数据是在检票开始前从中间件服务器下载到本地的,而在检票过程中票务公司可能会有新的售票信息更新到中间件服务器。验票服务器与中间件服务器数据的不一致,会导致无法对验票数据下载后售出的票进行校验。因此当验票服务器发现对某张票匹配失败后,主动向中间件服务器再次发送获取检票数据的请求。验票服务器只需获取上次票务数据下载后的最新数据。为了便于区分新旧票务信息,按照出售时间的先后顺序赋予检票数据消息体中的每张票一个序列号。在请求更新验票数据时,向中间件服务器提交当前场次本地验票数据的最大序列号。中间件服务器只返回大于该序列号的验票数据。

3.3 验票设备与验票服务器的通信

为了实现验票的灵活性,同时提供了闸机和PDA两种验票设备。闸机和PDA验票客户端均基于windows CE嵌入式操作系统[6]。闸机通过有线局域网连接到验票服务器,PDA通过无线局域网连接到验票服务器。验票时验票设备扫描票面上的二维码,二维码的信息是每张票对应的唯一MD5码。将二维码信息通过网络传输到验票服务器。验票服务器利用二维码匹配票务数据库中的门票MD5编码,如果匹配成功,则返回成功信息给验票设备。否则自动更新票务数据后,进行二次匹配。如果匹配依然失败,则返回失败信息。

为了保证验票信息传输的可靠,闸机客户端和PDA客户端均通过TCP协议与验票服务器通信。验票服务器采用多线程的方式分别监听两个不同的端口,一个端口接收闸机客户端发送的请求,另一个端口接收PDA客户端发送的请求[7][8]。闸机客户端和PDA客户端均定期向验票服务器发送心跳请求以保证连接的可靠性。当收到来自闸机或者PDA客户端发送的MD5编码验证请求后,验票服务器查询本地数据库,进行验证。如果验证通过,则返回成功信息。闸机客户端收到成功信息后,发送开闸信号,运行观众通过。PDA客户端收到成功信息后,在PDA窗口显示验证通过信息,检票员允许观众通过。如果验证不通过,则闸机客户端和PDA客户端收到失败信息后,通过语言和显示屏提示验票失败。

4 小结

本文介绍了如何利用中间件技术完成票务信息的集中和共享,统一进行验票,改变了剧院验票终端只能服务于一家票务公司的现状,使剧院验票终端服务多家票务公司,为多家票务公司良性竞争创造了技术条件

参考文献:

[1] Wikipedia. XMLHttpRequest [EB/OL]. http://en.wikipedia.org/wiki/XMLHttpRequest.

[2] 朱泽民, 熊盛武. 基于扩展标准语言(XML)Web Service的实时票务系统的研究[J]. 湖北民族学院学报:自然科学版, 2007, 25(1):61-64.

[3] Wikipedia. MD5[EB/OL]. http://en.wikipedia.org/wiki/Md5.

[4] 孙更新, 裴红义, 杨金龙. XML完全开发指南[M]. 北京:科学出版社, 2008.

[5] Wikipedia. Base64[EB/OL]. http://en.wikipedia.org/wiki/Base64.

[6] 薛大龙, 陈世帝, 王韵. Windows CE嵌入式系统开发从基础到实践[M]. 北京:电子工业出版社, 2008.

[7] 罗斌. Visual C++ 2008开发经验与技巧宝典[M]. 北京:中国水利水电出版社, 2010.

[8] 殷肖川. 网络编程与开发技术[M]. 西安:西安交通大学出版社, 2009.

猜你喜欢

数据共享中间件
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
基于Android 平台的OSGi 架构中间件的研究与应用
科学大数据的发展态势及建议
数字化迎新系统宿舍分配模块的设计与实现
贵州大数据产业发展战略理解和实施建议
面向海上平台机械电气设备的数据共享平台的设计与实现
基于协同办公的会议管理系统设计与实现
中间件在高速公路领域的应用
基于SAF规范的高可用电信中间件设计