SQL Anywhere支撑“离线售票系统”

项目背景

关于铁路客票系统。中国铁路每年客运量高达1,356,700,000人,这就意味着平均每天要售出接近4,000,000张客票,即使是全天候24小时不间断售票,每分钟也会有数千张铁路客票发送。这是全国范围的数据密集型应用。在Sybase技术的支撑下,铁路客票发售和预订系统于1996年开始推广实施,1998年底以前逐步实现了铁路局范围内联网售票,建成了22个地区客票中心系统和1500多个车站,7000多个售票窗口投入了运用;到2003年,已经建成所有的地区中心系统,并实现地区中心范围内的集中售票和地区中心的灾难备份系统,现计算机售票系统发售的车票已占全路票额的90%以上,收入约占全路客票收入的96%以上。客票系统的成功实施,促进了铁路客运生产力和生产关系的重大变革,加强了市场竞争能力,提高了工作效率,减少了劳动强度,方便了旅客购票,促进了营销改革,提高了管理水平,发展了生产力,也推动了生产关系的变革,产生了巨大的社会效益和经济效益。

应用需求

客票连续发售的需求。由于铁路客票系统是数据和事务密集的生产系统,对系统连续性的要求很高。各车站的客票系统一旦出现问题,半小时之内,车站的售票大厅里就会造成人流淤积,购票的群众也会随之不满。铁路的相关部门希望找到一套适合的解决方案,对各车站的业务连续性进行保障。

然而,铁路客票系统的整体布局相当庞大而复杂,全路拥有一个全路的中央数据库和23个地区中心数据库,每个车站也拥有自己的数据库。客票系统需要从不同的层面加强系统的可靠性,以便把宕机时间带来的影响降到最低。

解决方案

l  SQL Anywhere®

l  MobiLink

Sybase公司旗下领先的移动数据库SQL Anywhere,它提供了数据管理和企业同步技术,可实现分布电子商务解决方案的快速开发与提交。通过针对工作组、笔记本电脑、手持设备和智能电器的专门优化,其可将企业的电子商务信息扩展到商业交易发生的任何地方。

目前,铁路客票系统原本的体系结构如下:

 

在现有的铁路客票系统中,从车站应用数据库直至全路票务中心的中央数据库均为Sybase Adaptive Enterprise (ASE)数据库。各级数据库之间依靠Sybase Replication Server (复制服务器)进行数据同步,保障数据的实时一致性。

SQL Anywhere将在车站系统级别保障客票系统的业务连续性。在每个车站系统原有的应用数据库Sybase Adaptive Server Enterprise上,再加两台服务器,上面安装SQL Anywhere数据库。Adaptive Server Enterprise按照每30分钟的时间间隔通过SQL Anywhere的偶连接数据同步解决方案MobiLink交替向两台SQL Anywhere数据库同步数据,使每台SQL Anywhere的数据库不断与车站系统的应用数据库数据保持一致(如下图中的①所示)。

在车站在线的售票系统出现故障时,每个车站将会选择拥有最新数据的那台SQL Anywhere数据库服务器,并将其数据分发至车站的每个离线售票系统数据库中。根据一定的规则,将票号段分配给每个离线售票系统。于是,位于售票窗口计算机上的桌面型离线售票系统就即刻开始发售客票(如下图中的②所示)。

当在线售票系统恢复后,离线售票系统将被统一停止,并随即切换至在线售票系统进行售票。此时,在离线售票系统上已经售出的票将被MobiLink同步至车站的应用数据库。(如下图中的③所示)

至此,离线售票系统又将进入每30分钟交替与车站应用数据库同步的循环过程。