系统是通过整合公路客运行业客票资源,解决北京市长途客运信息分散,乘客难于获得出行信息,必须到站买票等问题,并实现站间互售、社会代售、网络订售票相结合的全新的公路长途票务服务。
北京市客运站隶属于不同的经营主体,所以系统采用集中与分布式相结合的体系结构。客票中心配置中心应用服务器和中心数据库,汇总全部客票信息。每个客运站都拥有独立的信息管理系统,客运站和社会代售点通过城域网络接入中心服务器,网络用户通过Internet连接网上订票WEB服务器,实现订售票服务。整个系统构成松散的“邦联式”结构。软件系统采用分布式多层架构。客运站信息系统包括售、检、调、结等功能;票务中心包括管理、票务、结算功能。
开发中着重解决数据库同步问题,采用了两阶段数据提交,操作同步完成或同步放弃,确保断线恢复后的数据更新一致。使用了交易中间件,保证了消息的可靠传递和事务完展性保护、并发事务处理、异构系统的透明支持;使用 Web Service 和XML技术:提供了分布式计算,通过XML协议展现商务服务;实现了分布数据库的互备容灾、断线自动切换以及应用服务的集群技术,确保系统运行稳定和数据安全可靠。
关键词:公路客运、联网售票、数据库、同步
第一章 项目实施的目的和意义
北京市省际公路客运是全市对外旅客运输的重要组成部分,全市目前拥有客运场站16 个,运营线路1022条,日均客运量6.2万人次,年客运量2200万人次。十五”期间,公路客运年平均增长率为7%,高于铁路、民航客运同期增长速度。但是,由于市场形成的历史原因,北京市省际客运行业分散于不同的客运站企业和客运公司,经营管理各自为战,客运信息分散、闭塞,乘客无法获得必要的出行信息,必须到站买票,导致了乘车的盲目性和安全隐患;同时行业管理部门缺乏必要的管理、服务手段。这些不利因素制约了行业的进一步发展,降低了行业的社会服务能力,不符合北京市作为国际化大都市的整体形象。
为解决上述问题,我们希望通过以公路客运行业联网售票作为切入点,通过整合行业资源,提高全行业的社会服务能力和竞争力,鼓励品牌经营、规模经营。该项目已被确定为北京市政府2004年为民办的56件实事之一,将于2004年年底建成并投入运营。
第二章 项目实施的技术方案
一、 项目体系结构
考虑到北京市客户站隶属于不同的经营主体,特别是考虑到在系统建成后一段时间内,客运站售票仍是售票的主要方式,不能因为系统的其它故障导致客运站售票活动的中止,从而使旅客在客运站集结,影响社会正常的工作、生产秩序。所以系统采用一种集中与分布式相结合的系统结构:即每个客运站都拥有独立的站务管理系统,并通过城域网络与票务中心交换数据。整个系统构成一种松散的“邦联式”结构。如图1所示:
图1:系统体系结构
二、 物理网络结构
系统的物理网络体系结构是在票务中心配置中心数据库服务器,建立中心数据库,汇总整个省际车辆及售票信息。客运站通过VPN通信方式连接中心数据库服务器,实现联网售票。社会代售点通过ADSL、PSTN拨号或VPN方式接入服务器,实现联网售票。客运企业通过VPN方式连接平台或各车站,统计或查询业务信息。用户可通过Internet网连接省际客运网上预定系统WEB站点进行订票。数据库使用了微软的SQL Server 2000企业版。物理结构如图2所示:
图2:系统网络结构图
三、 软件结构和主要功能
系统采用分布式多层软件架构,采用WEB Service和交易中间件技术。业务逻辑在应用服务层,接受客户机的业务请求,根据请求访问数据层,作出处理后将结果返回客户机。所有的数据库操作都不直接针对数据库,只能通过中间层的交易中间件对MS SQL Server 2000进行访问。客运站内部考虑到出票速度,采用C/S为主模式,社会代售点考虑到使用的方便性,将采用B/S结构。软件结构如图3所示:
图3:系统软件结构图
客运站站务系统包括售票、检票、调度、结算等功能;票务中心系统包括管理、票务、结算功能。
第三章 解决的技术关键点
一、 分步式事务处理和数据库同步技术
由于各客运站平时大量的事务是操作本站相关数据,并且要严格保证客运站票务工作的正常运转(特别是春运、五一黄金周期间),不能因为通信线路和中心处理系统的故障而导致客运站系统的瘫痪。在数据库结构设计上,采用了分步式数据库概念,分布式数据库是物理上分散在计算机网络各结点上,而逻辑上属于同一个系统的数据集合。它具有数据的分布性和数据库间的协调性两大特点。在本系统中,设立了中心数据库,保存了北京市全部长途客运线路、班次和客票信息,即全部数据信息的冗余。各客运站本地数据库则存放本站所经营的班次和客票信息。系统中必须保证各站数据库和中心数据库的一致性,否则就会出现重复票的情况。如果因线路问题和中心故障,客运站会自动转为本地操作模式,在故障恢复后,也必须要保证中心数据库和分站数据库的一致性。
二、 交易中间件技术
北京市长途客运联网售票项目应满足大并发访问和集中与分布相结合的数据库应用模式的需求。要满足这一需求,将引入交易中间件技术屏蔽复杂的技术基础细节,简化应用逻辑,构造企业商务应用的平台,来实现项目的应用、开发和管理。
中间件应用设计是从异构的计算资源中创建一个“虚拟主机”,在分布式应用环境下提供可管理的相互关联的资源。交易中间件提供了一个基础的框架来帮助建立、运行和管理一个三层客户机/服务器模式的应用,不需要从零做起,缩短应用开发的时间,提高了应用开发的成功率。中间件在对事务完整性的保证、对大规模并发处理的响应、对异构系统互联的透明支持,以及对应用数据的安全性保护等方面的表现将成为应用系统成败的决定性因素。
交易中间件将提供从可靠消息传输到对象事务处理管理以及Internet应用服务等全方位的功能,是实现联网售票的关键应用。它将用于售票,退票,管理,财务统计,数据维护等模块从低层向高层,或同一层次之间的访问。车站系统应用通过交易中间件来实现网络数据操作。三层结构应用体系将业务逻辑放在应用服务层,应用服务层接受客户机的业务请求,根据请求访问数据库,做相关处理,并将处理结果返回客户机。应用服务层从物理上和逻辑上都可以独立出来,客户机(层)不直接访问数据库服务器(层),而是访问应用服务器(层)。客户层发出的不再是数据请求而是业务(事务)请求。其模型如图5所示:
图5:交易中间件处理模型
交易中间件具有开放的体系结构、大用户量与实时性、保证交易完整性、任务优先级、多服务进程、负载平衡和故障恢复、信息发布与事件触发、数据的集中与分布、动态伸缩性与数据路由、安全控制、网络调度、数据压缩和加密、监控管理等优点。
三、 容灾备份技术
公路客运联网售票系统不仅是一个实时的电子商务系统,同时也关系到北京市公共运输秩序和社会稳定。必须需要保证系统运行的可靠性和灾难可恢复性。因此,在系统的容灾和备份上,我们主要采用了数据库的容灾备份和应用集群技术。
1、 数据库的容灾和备份
据库的可靠性不仅依赖于技术手段,同时也要依靠管理手段,对数据库进行定期的备份,为系统数据特别是关键数据的备份、恢复提供保障。目前在系统中,主要采用以下技术手段实现数据库的容灾和备份:
(1)实行数据库的磁盘镜像;
(2)采用数据库的备份和恢复机制,备份和恢复组件是SQL Server 的重要组成部分。备份就是指对SQL Server 数据库或事务日志进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,如果数据库因意外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库。售票系统中主要采用了数据库备份(Database Backups)和事务日志备份(Transaction Log Backup)相结合的备份机制。即每天进行一次数据库备份,而以一个或几个小时的频率备份事务日志。这样利用事务日志备份,我们就可以将数据库恢复到任意一个创建事务日志备份的时刻。;
(3)依靠SQL的完整性约束的实现以保证信息不会被不当删除和插入;
(4)在两阶段提交协议完成之前一旦发生系统故障,数据库管理系统能将数据自动恢复到处理前的状态;
(5)对敏感字段提供不可逆加密,防止非授权篡改。
2、 应用服务集群
在某些情况下,需要将多台计算机组织起来进行协同工作来模拟一台功能更强大解决问题。这种技术称为集群技术。目前应用最为广泛的集群计算技术可以分为三大类:高可用性集群技术、高性能计算集群技术和高可扩展性集群技术。联网售票系统中,应用服务器承担着全部售票业务的处理工作,它的稳定运行对于系统的稳定至关重要。任何的宕机都会造成严重的损失。因此,我们在系统中采用了主/主 (Active/active)工作方式的高可用性集群技术。两个服务器都同时处于活动状态,也就是在两个节点上同时运行应用程序,当一个节点出现故障时,运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上。
在MSCS(Microsoft Cluster Server)中,所有的资源都处于资源监视器的监视之下,资源监视器通过资源动态链接库文件与资源进行通信,这些资源动态链接库会侦测对应资源的状态,并通知资源监视器,之后,监视器再把信息提供给集群服务(Cluster Service)。资源监视器根据设定的时间间隔对资源进行LookAlive和IsAlive两种级别的检查,一旦发现某一个资源不可用,就会试图重新启动该资源。根据阀值的设定,如果在某一时间段内,资源不可用的情况达到了设定的阀值时,就会发生故障切换。经过故障切换的过程,对应的资源组在另外一个节点上重新启动了,继续为客户机提供服务,对客户来说,工作没有影响,这就完成了一次故障切换。当出现故障的节点恢复正常以后,如果事先对该资源组设定了首选节点,就会把该资源组移回该首选节点。在MSCS的资源中,有一个非常重要的资源,Quorum,它是一个可以被两个节点访问的物理硬盘,用来保存集群的信息。这些信息是用来维护集群的完整性以及使节点保持同步,特别是当节点不能与另一个节点通信的时候。Quorum盘在某一时刻只能被一个节点所拥有,并用来决定由哪个节点来拥有集群的所有资源。Quorum必须位于共享的磁盘子系统中,一般都是使用外接的磁盘柜。一般情况下,不建议把应用程序和数据保存到包含Quorum的硬盘上。
我们采用的是MS Windows 2000 Server 企业版、IBM IBM xSeries 360以及IBM 磁盘阵列Exp300来实现应用集群的。如图6所示:
图6:应用服务集群示意图
Windows Server 2003 是迄今为止最快、最可靠和最安全的 Windows 服务器操作系统。,支持多达 8 个处理器。 支持高达 32 GB 内存等,以及支持多达 8 个节点的服务器群集。Windows Server 2003 还支持网络负载平衡 (N·LB, network load balancing),它在群集中各个结点之间平衡传入的 Internet 协议 (IP) 通讯。IBM eServer®xSeries®365服务器采用了为关键业务设计的企业级X架构技术,灵活的4路处理器,第二代IBM 企业级X-架构™(EXA)设计和运行速度高达3.0GHz的Intel® Xeon™处理器MP提供强大的功能以运行关键任务应用。
第四章 今后发展方向
北京市长途客运联网售票项目今后发展将以政府的管理需求、企业的运营需求、百姓的服务需求为契机,通过统一的省际长途客运公共信息服务平台,扩展宾馆、银行等票务代理业务,建立广泛的社会代售网络;通过与银行建立结算关系实现面向Internet电子商务应用的网上车站;不断探索省际客运公共服务平台的运营模式,实现自负盈亏;为旅客提供出行信息服务和快捷购票服务。同时,随着各个客运站客运管理ERP的建立,通过售票、检票、报班、调度、结算等基础业务系统,改善企业的运营管理水平,为客运企业提供营运上的决策分析,从而平衡客运供应与客运需求之间的关系,实现资源的优化配置,为企业自身深入进行站务信息化的建设打下基础。“联邦”式的客运管理系统的建立,将在全面提高客运行业的现代化管理水平的同时,为政府提供监管应急调控方面的支持,通过加强政府主管部门的监管力度,全面提升客运企业自身服务质量,为百姓提供更加快捷方便的客运服务。
本文出自 51CTO.COM技术博客