信息工程学院
课程设计报告书
题目: 航空订票系统的设计实现
专 业: 计算机科学技术
班 级: 03084**
学 号: 030840***
学生姓名: * *
指导教师: * *
2011 年 9 月 20 日
信息工程学院课程设计任务书
摘 要
随着互联网的飞速发展,网络业务也得到了迅猛地发展。网上订票系统就是互联网和网络业务发展的产物。该类系统的出现和应用扩展了票务销售的业务领域,丰富了票据业务营销的方式和手段,同时也在一定程度上改变了人们的社会活动方式。
本课题的任务就是开发一套国内网上订票系统,要求能通过 Internet 为顾客提供航班查询,购买机票以及退票的服务。该系统能够完成客户登录,查询航班,出票等功能;在航空公司内部能够完成管理员添加或删除航班、用户管理、票务管理和维护等功能。
本系统采用 Struts+Hibernate+Spring 的 J2EE 框架。该 WEB 开发架构采用的MVC 模式使页面的显示与处理分离,使前台页面人员更专注于页面的设计,而不 用关注业务逻辑,编程人员只需集中精力于业务逻辑的实现提高开发效率。此项 目是 IT 公司的热门项目,技术应用先进。在系统开发过程中不断学习新知识,紧跟技术前沿,对本系统开发团队具有十分积极的训练价值;另外,由于该项目也具有一定的市场应用价值和经济效益。
关键词: 网上订票系统;MVC;Struts;Hibernate;Spring
目 录
1 任务提出与方案论证 ............................................................................................................. 3
1.1国内外现状及相关技术的发展 ....................................................................... 3
2.2 研究目标 .......................................................................................................... 4 2 总体设计 .................................................................................................................................... 5
2.1 整体系统架构及模块简介 .............................................................................. 5
2.2系统功能需求和整体功能框架 ....................................................................... 5
2.3 子模块设计与功能分析 .................................................................................. 7
2.4 系统开发的技术架构 ...................................................................................... 8 3 详细设计 .................................................................................................................................. 10
3.1系统业务流程分析与设计 ............................................................................. 10
3.2数据库设计 ..................................................................................................... 13
3.3 网上订票子系统的分层实现 ........................................................................ 16 4 总结 ........................................................................................................................................... 18 参考文献 ...................................................................................................................................... 19
1 任务提出与方案论证
订票系统是一种新兴的现代商务方式,近几年来得到了迅速发展,显现了巨大的现代商业价值。有理由相信,订票系统将逐渐方便盛会生活,也将成为数字化社会的一种重要体现。近年来,随着Internet的蓬勃发展,电子商务也在迅速崛起。电子商务是利用Internet提供的信息网络在网上进行的商务活动。网上订票也是电子商务的一种,它变了传统的买卖双方面堆满的交流方式,也打破了旧有工作经营模式,它通过网络使航空公司面对整个世界,为用户提供每周7天,每天24小时的全天候服务。网上订票的规模正在逐年迅速增长,它带来的商机是巨大而深远的。
订票系统研究的主攻方向是通过公共计算机通信网络进行网上订票活动,突破传统商务在时间、地域上的限制,成为方便、快捷、安全可靠的新兴电子化商务活动模式。是网上订票活动更安全、可靠、快速、明确和方便。
对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。建设航空订票管理系统是体现和提高航空公司领导业绩的一条捷径,此外还具有重要意义:
1、改善航空公司服务质量; 2、创造和提升航空公司的品牌优势;
3、优化航空公司的服务流程; 4、提升信息化的水平;
1.1国内外现状及相关技术的发展
20 世纪 70 年代起,欧美及日本等发达国家就开始利用计算机开发售票业 务,如英国的 Tribute 系统、日本的 MARS 系统和德国的 TRAINS 系统等。随着 互联网技术与电子商务的迅猛发展,利用 Web 技术开发的网络售票系统也得到 了蓬勃的发展并日益影响到人们的日常生活,例如澳大利亚的 BASS 系统。20世纪 90 年代开始,我国的部分大型企业为了适应市场经济的条件下自身发展的需要,陆续研究和开发了利用计算机和计算机网络运行的票务系统,如我国的铁路售票系统,该系统通过十年左右的开发、应用和完善,系统已经覆盖了全国的铁路主干网络,平均每天发售火车票达 250 万张,计算机网络售票业务额占票务总收入的 90%以上。
目前网上订票系统及其类似应用软件的开发技术大多基于B/S架构,在系统开发过程中用到的主要技术包括:动态网页设计技术(如ASP、JSP和PHP技术 等)、.NET和J2EE技术等[1-5]。在这些技术中,ASP 是一个 Web 服务器端的开发环境,它的应用可以产生 和运行动态交互的 Web 服务应用程序,其开发语言一般为 VBScript 或者JAVAScript。具有简单易懂、无需编译、与浏览器无关、兼容性和扩展性较好等特性。PHP 是一种跨平台的
服务器端的嵌入式脚本语言,具有便于与数据库连接和面向对象等特点。JSP 是由 SUN 公司推出的站点开发语言,具有代码生成和显示分离、可重用性能好页面开发简单等特点。 .NET 技术是为了适应基于 Web 的应用程序和 Web 服务而产生的,它基于XML 和 SOAP 等互联网标准,将远程服务器所提供的计算能力和允许用户交互操作所必需的通信结合在一起,实现了基于 Web 的分布式计算模式。.NET 采用的 CLR 技术规范允许开发者应用自己最熟悉的语言来创建应用程序。J2EE[6-8]是一套全然不同于传统应用开发的技术架构,包含许多组件,主要 可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层 次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好 的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外 部难以互通的窘境。J2EE体系结构提供中间层集成框架用来满足无需太多费用 而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。
2.2 研究目标
本课题的目的是开发一个机票网络订票系统,系统的主要功能包括:
(1)通过基于计算机网络的 Web 页面为顾客提供航班查询,购买机票以及退票的服务;
(2)在营业网点内能够完成营业员登录,查询航班,出票等功能;
(3)在航空公司内部能够按照要求完成管理员添加或删除航班、用户管理和订票维护等功能。系统开发基于 Struts+Spring+Hibernate 的 J2EE 框架实现,将页面显示和后台业务处理分开,从而简化页面设计人员和编程人员的开发工作。
2 总体设计
2.1 整体系统架构及模块简介
本系统用于航空公司用户进行网上订票、公司管理员实施票务管理和客户管 理,以顺利扩展公司业务。系统底层为基础网络存储平台,在这基础上构建了数
图 2.1 系统整体架构和模块分析
据库和应用服务器平台,服务组件包括安全认证、异常管理和报表引擎等三个子 模块,应用层的底层包括前台管理和后台管理两个模块,而前台模块又包括用户 注册登录、网上订票退票、网上支付三个子模块,后台管理包括数据采集、用户 管理、报表统计和订单管理维护等子模块。应用层的上层是系统门户和用户认证模块。系统整体框架和模块分析如图 2.1 所示。
2.2系统功能需求和整体功能框架
2.2.1 系统功能概述
网上订票系统是为了适应互联网的飞速发展和航空公司业务拓展的需要而产生的课题。该系统应用于航空公司的各营业网点,主要功能有:
1.顾客在营业网点可以通过该系统获得航班的查询、机票的购买和退票服务;
2.各营业网点的工作人员可以通过系统完成营业员登录、航班查询、售票 查询和出票等功能;
2.2.2 系统的整体功能框架 3.管理员在航空公司的信息中心能够完成航班、营业网点和营业员的添加或删除功能。
网上订票系统的整体功能框架如下图所示。该系统的主要功能模块有四个:
图 2.1 网上订票功能框架
航班管理、票务管理和系统管理。航班管理和票务管理功能需完成营业员登录功能完成后才能进行,而系统管理则需先完成管理员登录才能继续。下面阐述其具体功能需求:
(1)网上订票:完成查询(包括航空公司名、航班(航班号)、起飞时间(全天 24 小时所
有航班起飞时间)、到达时间(到达目的地时间)、机型、舱况(头等舱、经舱、折扣信息等) 、查询订票状态、机票预定、退订以及网上支付。
(2)订单管理:对订单审核及管理、订单维护。
(3)系统管理:营业网点的添加、修改或删除;营业员的添加、修改或删除。
(4)客户注册与登录:完成客户的注册与登录流程。
2.3 子模块设计与功能分析
根据系统的功能需求,网上订票系统可以分为网上订票、订单管理和系统管理等三个子模块。下面分别阐述这些子模块的设计与功能分析。
(1)网上订票子模块
图 2.2 网上订票子模块业务流程
网上订票子模块业务流程如图 3.2 所示,客户首先实施查询票务信息,接着 根据票务信息进行订票信息登记,然后执行订票操作,经确认后进入网上支付,此后系统将显示订票状态。如果客户仅执行订票操作,操作就此结束。假如客户需要选择退票,则进入退票流程,经退票信息确认后系统将出现退票结果提示。
(2)客户注册
客户注册流程如下:客户进入 Web 页面,填写注册信息,然后提交信息,最好系统将出现注册结果提示信息。客户注册流程如图 3.3 所示。
图 3.3 客户注册流程
(3)客户信息维护
该模块的用户是系统管理员,通过登录操作后,管理员可以查看用户信息,然后执行客户信息审核和维护等操作,最后生成客户信息表。如图 3.4 所示。
图 3.4 客户信息维护流程
(4)订票审核与管理
该子模块的用户为系统管理员或票务员,首先输入管理员账号和密码,进入系统查看订单列表,实施订单审核与维护操作,最后生成订票统计报表。如图3.5 所示。
图 3.5 订票审核与管理
2.4 系统开发的技术架构
本系统在设计开发过程中,采用了 J2EE 的 Web开发技术,在开发层次中沿用了 Web 开发的层次型架构。在客户端采用 HTML 的静态网页设计技术,并利用 HTTP 协议来实现客户端和服务器端的通信。在服务器端 J2EE 的 Tomcat 服务器技术,使用 JSP Servlet 实现,并使用 JAVABean 来实现业务层处理。系统持久层采用 Hibernate 3.1 实现,提高了系统开发的灵活性和伸缩性。数据库平台为 MySQL Server5.0,具有安全性高,性能好的特点。
图 2.4 系统开发的层次型技术架构
根据上述技术架构分析和系统开发原则,不难得出本系统的基本性能特征:
1.良好的交互性:本项目在使用过程中存在着大量的人机交互环节,系统 通过层次型开发架构满足了这一功能需求。
2.较好的可扩展性:系统的 SSH 架构凸显了这一特点。比如当系统的客户端需要产生变更时,只需 HTML 开发变化和 HTTP 通信做出更改即可,其他系统层无需重新开发。 3.良好的可维护性:系统维护人员只需针对不同层次的变化实施系统维护故障实现了离。 4.良好的系统兼容性:本系统继承了 J2EE 架构的良好的系统兼容性,能够应用于不同的操作系统平台和软件环境。
3 详细设计
3.1系统业务流程分析与设计 3.1.1 网上订票流程
用户选中航班后,可以选择舱型进行网上预订机票,生成相应的订单,用户需要进行网上支付,支付成功则订票成功。在所订飞机起飞前,用户可以在网上进行退票操作,详细流程见 3-1-2。网上订票流程的时序图见图 3-1-1 所示。
用户 :
输入查询条件显示航班列表
选择航班
输入旅客信息
选择网上支付
提示订票成功
图 3-1-1 网上订票流程时序图
3.1.2 网上退票流程
客户可以在飞机起飞前实施退票操作。用户首先提出退票申请,进入票务管 理页面,输入订票号后就能查询自己的订票状态信息,然后选择退票并确认,就
能完成网上退票操作。退票操作确认完成后,系统管理员通过票务管理和维护操
作,实施网上退费。网上退票的时序图如图 3-1-2 所示。
用户 :
提交退票请求
3.1.3 用户注册登录流程
返回订单信息
输入订单号查询
选择退票
提示退票成功
图 3-1-2 网上退票流程时序图
用户在门户页面选择注册后,进入注册页面,填入注册信息,系统进行注册处理并返回用户注册信息,用户得到这些信息后,输入正确的用户名和密码就能 完成登录操作。详细的流程时序图如图 3-1-3 所示。
用户 :
选择注册
输入注册信息
提示注册成功信息
输入正确的用户名和密码
进入系统
图 3-1-3 用户注册与登录时序图
3.1.4 订单管理流程
系统管理员(票务员)完成登录后,提交查看订单的请求,进入订票列表,然后就可以什么订单的内容,做出更改订单状态的操作。具体时序图如图 3.1.4所示。
票务员 :
输入正确的用户名和密码
提交查看订单请求
审核 更新订单状态
图 3-1-4订票管理时序图
3.1.5 报表统计流程
管理员(票务员)输入正确的用户名和密码后,完成了登录,提交报表统计类型,输入统计条件,进入报表统计页面,系统管理员就能够得到报表统计的信息显示。如图 3.1.所示。
票务员 :
图 3-1-5 报表统计时序图
3.2数据库设计 3.2.1 数据表设计
本系统的数据表主要有 user 表、admin 表、order 表、flight 表、account 表等。 1.User 表
user 表如下图中的 userid 表示用户 ID 号,name 字段表示用户名称,password 表示密码,idcard 表示 ID 卡号,gender 表示性别,phone 表示电话号码address 表示地址,email 表示 email 地址。
2.Admin 表
表admin 如图2 所示,id 表示管理员的 ID 号,name 表示姓名,password 表示密码,role 表示角色。
图1 user 表
图2 admin 表
3.Order 表
如图3所示,id 号表示订单 ID 号,travellername 表示旅行人的姓名,number表示联系电话号码,airlineID 表示航线 ID 号,flightID 表示航班号码,classtype表示航班类型,setuptime 表示出发时间,ordertime 表示订票时间,state 表示状态信息。
4.Flight 表
图3 order 表
Flight 表 id 字段是主键,表示航班 ID 号,flighttype 表示航班类型,f_classnu字
段表示航班等级,f_classprice 表示航班票价。如图4 所示。
5.Account 表
在 account 表中,id 字段表示账户 ID 号,points 表示积分值,account 表示 账户信息。如图 5 所示。
图4 flight 表
图 5 account 表
3.2.2 数据库内部依赖性分析
通常关系数据库表的关系模式设计应该满足一定的规范,数据库表数据库的关系模
式的规范形式有:
(1)第一范式:每个属性的值域都是不可再分的简单数据项。
(2)第二范式:关系模式 R 是第一范式,而且每一个非主键属性都完全函数依赖于 R 的键(即不存在“部分函数依赖”。转换为第二范式的方法是消除部分函数依赖。) (3)第三范式:关系模式 R 是第二范式,而且它的任何一个非主键属性都不 传递依赖于 R 的任何候选键。转换为第三范式的方法是:消除传递函数依赖。
这里数据库表的关系图如图 3-2-2 所示。
图 3-2-2 数据表依赖关系图
3.3 网上订票子系统的分层实现
3.3.1 用户表示层
网上订票系统的用户表示层用Struts 2.0 框架MVC实现,主要包括视图实现 和控制器实现两个部分。JSP文件用来提供视图实现,建立用户界面,接收用户的输入数据,并进行表单的验证。控制器包括FilterDispatcher和Action两类组件。FilterDispatcher是Struts 2.0框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。Action类通常用来处理用户请求,调用处理业务逻辑的接口。下表显示了客户管理模块主要的JSP页面组件和相应功能。
表 3-3-1 客户管理模块 JSP 页面组件与功能对应关系表:
3.3.2 业务逻辑层
下面我们以航班信息查询和网上订票模块为例阐述本系统业务逻辑层的实现。
1.航班信息查询
航班信息查询的类图如下图所示。
FlightService
> flightdao > getAllFlight() > getFlightById() > getFlightsByType() > addFlight() > delFlightById() > updateFlight() > getFlightsByAirlineID()
2.网上订票子模块
图 1 航班信息类图
网上订票子模块的类分为订单业务类和订单控制类,如图 2 所示。订单业务类用来实现 OrderService 接口中的方法,实现订单的生成、更新、按条件查看、删除。订单控制类用来实现 OrderAction,根据用户选择的航班生成相应的订单,并更新订单的信息状态等。并且控制用户的订单查询。
图 2 网上订票子模块类图
3.3.3 数据持久层
数据持久层由 Hibernate 框架实现,主要任务是实现与数据库的交互。该层将业务层的处理结果持久化到数据库,或者从数据库中读取数据送到业务逻辑层。Hibernate 组件从数据源中读取数据,并生成持久对象,再把持久对象送到业务逻辑层。本系统用 DAO 模式对数据源进行封装,实现数据的持久化并与数据库交互。而 Hibernate 提供了封装对象和数据表之间的接口。
4 总结
通过以上分析,主要分析了系统的各个组成部分,并给出了具体的逻辑设计。用户模型主要是简单的介绍了用户的特征与工作状态的相关关系。系统主要描述了各分系统管理的用途,设计方法以及一些相应的策略。主要是以全局的整体的角度描述整个系统的功能和框架,它所涉及的理论分析和设计为后面的算法设计和实现打下基础。
在刚开始的测试中遇到的一个主要问题是,我的后台数据库用的是MySql它对中文的支持比较麻烦,除了你要在链接数据库的字符串做编码,而且你要保证你数据库中表的字段编码是GBK或者GB2312,才能在插入数据库中显示中文。由于在做需求分析时有可能不充分,有些问题考虑不周全因此在满足用户需求方面还有所欠缺,数据库设计方面有个别设计的不太合理要在以后的开发中多注意这方面的问题。在整个开发过程中数据库设计有位于整个开发的最关键的位置,数据库设计是否合理高效是向下开发顺利进展的关键。在这之后的开发都是在以数据设计之后在此基础上进行的开发,因此要把数据库设计作为明确需求之后的头等大事来做,以免在开发进行中再来更改数据库那就太浪费时间了。
参考文献
[1] ( 美)PaulJ.Perrone,etal. 著, 张志伟等译. J2EE 构建企业系统 [M]. 清华大学 版, 2001.
[2]( 美 )BrettMcLaughlin 著 , 孙 兆 林 等 译 . JAVA 与 XML [M]. 中 国 电 力 出 版 社, 2001.
[3](美)MarkWutka著,程显华等译. JSP和Servlet程序设计使用专辑 [M].机械工 业出版社, 2002
[4]田勇,孙新等编著. 最新JBuilder开发人员指南 [M].机械工业出版社, 2001.
[5]方美琪主编. 电子商务概论 [M].清华大学出版社, 2002.
[6](美)BruceEckel著,侯捷译. Java编程思想 [M].机械工业出版社, 2002.
[7]杨琳洁. 网上订票系统的研究与应用. 铁路计算机应用,2004.10:30—31.
[8]孙福振,李艳,李业刚. 基于 J2EE 的 MVC 设计模式的研究与实现. 山东理 工大学学报(自然科学版),2006,20(2): 50-53.
[9]夏阳,胡平,基于 Struts 体系结构的 Web 应用. 计算机与现代化,2005,(6), 56-59.
[10]段昌敏. 一种基于 J2EE 的火车订票系统的设计. 电脑知识与技术,2008
(5):864—868.
[11]苏文清,李忠. 基于 Struts+Spring+Hibernate 的 Web 开发框架及实现研究. 甘 肃科技,2009(11):30—32.
[12]谢艳平,胡家宝,谢承旺. 基于 Struts 和 Hibernate 的 MVC 设计模式,交通 与计算机,2005,23(4): 62-64.
[13]宋汉增,沈琳. 利用 Hibernate 对象持久化服务简化 Java 数据库访问,计算 机应用,2003,23(12): 135-137.
[14]RodJohnsn,Spring 框架高级编程,机械工业出版社,2006(4).
[15]Grady Booch,Jams Rumbaugh,Ivar Jacoboson 著. 邵维忠等译.UML 用 户指南(第二版).北京:机械工业出版社,2003.
[16]梁立新,项目实践精解:基于 Struts-Spring-Hibernate 的 Java 应用开发. 电 子工业出版社,2006(8).
信息工程学院
课程设计报告书
题目: 航空订票系统的设计实现
专 业: 计算机科学技术
班 级: 03084**
学 号: 030840***
学生姓名: * *
指导教师: * *
2011 年 9 月 20 日
信息工程学院课程设计任务书
摘 要
随着互联网的飞速发展,网络业务也得到了迅猛地发展。网上订票系统就是互联网和网络业务发展的产物。该类系统的出现和应用扩展了票务销售的业务领域,丰富了票据业务营销的方式和手段,同时也在一定程度上改变了人们的社会活动方式。
本课题的任务就是开发一套国内网上订票系统,要求能通过 Internet 为顾客提供航班查询,购买机票以及退票的服务。该系统能够完成客户登录,查询航班,出票等功能;在航空公司内部能够完成管理员添加或删除航班、用户管理、票务管理和维护等功能。
本系统采用 Struts+Hibernate+Spring 的 J2EE 框架。该 WEB 开发架构采用的MVC 模式使页面的显示与处理分离,使前台页面人员更专注于页面的设计,而不 用关注业务逻辑,编程人员只需集中精力于业务逻辑的实现提高开发效率。此项 目是 IT 公司的热门项目,技术应用先进。在系统开发过程中不断学习新知识,紧跟技术前沿,对本系统开发团队具有十分积极的训练价值;另外,由于该项目也具有一定的市场应用价值和经济效益。
关键词: 网上订票系统;MVC;Struts;Hibernate;Spring
目 录
1 任务提出与方案论证 ............................................................................................................. 3
1.1国内外现状及相关技术的发展 ....................................................................... 3
2.2 研究目标 .......................................................................................................... 4 2 总体设计 .................................................................................................................................... 5
2.1 整体系统架构及模块简介 .............................................................................. 5
2.2系统功能需求和整体功能框架 ....................................................................... 5
2.3 子模块设计与功能分析 .................................................................................. 7
2.4 系统开发的技术架构 ...................................................................................... 8 3 详细设计 .................................................................................................................................. 10
3.1系统业务流程分析与设计 ............................................................................. 10
3.2数据库设计 ..................................................................................................... 13
3.3 网上订票子系统的分层实现 ........................................................................ 16 4 总结 ........................................................................................................................................... 18 参考文献 ...................................................................................................................................... 19
1 任务提出与方案论证
订票系统是一种新兴的现代商务方式,近几年来得到了迅速发展,显现了巨大的现代商业价值。有理由相信,订票系统将逐渐方便盛会生活,也将成为数字化社会的一种重要体现。近年来,随着Internet的蓬勃发展,电子商务也在迅速崛起。电子商务是利用Internet提供的信息网络在网上进行的商务活动。网上订票也是电子商务的一种,它变了传统的买卖双方面堆满的交流方式,也打破了旧有工作经营模式,它通过网络使航空公司面对整个世界,为用户提供每周7天,每天24小时的全天候服务。网上订票的规模正在逐年迅速增长,它带来的商机是巨大而深远的。
订票系统研究的主攻方向是通过公共计算机通信网络进行网上订票活动,突破传统商务在时间、地域上的限制,成为方便、快捷、安全可靠的新兴电子化商务活动模式。是网上订票活动更安全、可靠、快速、明确和方便。
对航空公司来说,航空订票管理系统既能扩大服务范围,扩大公司影响,减少营业费用,又对稳固航空公司的客源有着重要的辅助作用;站在旅客的角度,航空公司提供的这种服务提供了更多的方便,节省了很多时间。建设航空订票管理系统是体现和提高航空公司领导业绩的一条捷径,此外还具有重要意义:
1、改善航空公司服务质量; 2、创造和提升航空公司的品牌优势;
3、优化航空公司的服务流程; 4、提升信息化的水平;
1.1国内外现状及相关技术的发展
20 世纪 70 年代起,欧美及日本等发达国家就开始利用计算机开发售票业 务,如英国的 Tribute 系统、日本的 MARS 系统和德国的 TRAINS 系统等。随着 互联网技术与电子商务的迅猛发展,利用 Web 技术开发的网络售票系统也得到 了蓬勃的发展并日益影响到人们的日常生活,例如澳大利亚的 BASS 系统。20世纪 90 年代开始,我国的部分大型企业为了适应市场经济的条件下自身发展的需要,陆续研究和开发了利用计算机和计算机网络运行的票务系统,如我国的铁路售票系统,该系统通过十年左右的开发、应用和完善,系统已经覆盖了全国的铁路主干网络,平均每天发售火车票达 250 万张,计算机网络售票业务额占票务总收入的 90%以上。
目前网上订票系统及其类似应用软件的开发技术大多基于B/S架构,在系统开发过程中用到的主要技术包括:动态网页设计技术(如ASP、JSP和PHP技术 等)、.NET和J2EE技术等[1-5]。在这些技术中,ASP 是一个 Web 服务器端的开发环境,它的应用可以产生 和运行动态交互的 Web 服务应用程序,其开发语言一般为 VBScript 或者JAVAScript。具有简单易懂、无需编译、与浏览器无关、兼容性和扩展性较好等特性。PHP 是一种跨平台的
服务器端的嵌入式脚本语言,具有便于与数据库连接和面向对象等特点。JSP 是由 SUN 公司推出的站点开发语言,具有代码生成和显示分离、可重用性能好页面开发简单等特点。 .NET 技术是为了适应基于 Web 的应用程序和 Web 服务而产生的,它基于XML 和 SOAP 等互联网标准,将远程服务器所提供的计算能力和允许用户交互操作所必需的通信结合在一起,实现了基于 Web 的分布式计算模式。.NET 采用的 CLR 技术规范允许开发者应用自己最熟悉的语言来创建应用程序。J2EE[6-8]是一套全然不同于传统应用开发的技术架构,包含许多组件,主要 可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。
J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层 次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好 的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外 部难以互通的窘境。J2EE体系结构提供中间层集成框架用来满足无需太多费用 而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。
2.2 研究目标
本课题的目的是开发一个机票网络订票系统,系统的主要功能包括:
(1)通过基于计算机网络的 Web 页面为顾客提供航班查询,购买机票以及退票的服务;
(2)在营业网点内能够完成营业员登录,查询航班,出票等功能;
(3)在航空公司内部能够按照要求完成管理员添加或删除航班、用户管理和订票维护等功能。系统开发基于 Struts+Spring+Hibernate 的 J2EE 框架实现,将页面显示和后台业务处理分开,从而简化页面设计人员和编程人员的开发工作。
2 总体设计
2.1 整体系统架构及模块简介
本系统用于航空公司用户进行网上订票、公司管理员实施票务管理和客户管 理,以顺利扩展公司业务。系统底层为基础网络存储平台,在这基础上构建了数
图 2.1 系统整体架构和模块分析
据库和应用服务器平台,服务组件包括安全认证、异常管理和报表引擎等三个子 模块,应用层的底层包括前台管理和后台管理两个模块,而前台模块又包括用户 注册登录、网上订票退票、网上支付三个子模块,后台管理包括数据采集、用户 管理、报表统计和订单管理维护等子模块。应用层的上层是系统门户和用户认证模块。系统整体框架和模块分析如图 2.1 所示。
2.2系统功能需求和整体功能框架
2.2.1 系统功能概述
网上订票系统是为了适应互联网的飞速发展和航空公司业务拓展的需要而产生的课题。该系统应用于航空公司的各营业网点,主要功能有:
1.顾客在营业网点可以通过该系统获得航班的查询、机票的购买和退票服务;
2.各营业网点的工作人员可以通过系统完成营业员登录、航班查询、售票 查询和出票等功能;
2.2.2 系统的整体功能框架 3.管理员在航空公司的信息中心能够完成航班、营业网点和营业员的添加或删除功能。
网上订票系统的整体功能框架如下图所示。该系统的主要功能模块有四个:
图 2.1 网上订票功能框架
航班管理、票务管理和系统管理。航班管理和票务管理功能需完成营业员登录功能完成后才能进行,而系统管理则需先完成管理员登录才能继续。下面阐述其具体功能需求:
(1)网上订票:完成查询(包括航空公司名、航班(航班号)、起飞时间(全天 24 小时所
有航班起飞时间)、到达时间(到达目的地时间)、机型、舱况(头等舱、经舱、折扣信息等) 、查询订票状态、机票预定、退订以及网上支付。
(2)订单管理:对订单审核及管理、订单维护。
(3)系统管理:营业网点的添加、修改或删除;营业员的添加、修改或删除。
(4)客户注册与登录:完成客户的注册与登录流程。
2.3 子模块设计与功能分析
根据系统的功能需求,网上订票系统可以分为网上订票、订单管理和系统管理等三个子模块。下面分别阐述这些子模块的设计与功能分析。
(1)网上订票子模块
图 2.2 网上订票子模块业务流程
网上订票子模块业务流程如图 3.2 所示,客户首先实施查询票务信息,接着 根据票务信息进行订票信息登记,然后执行订票操作,经确认后进入网上支付,此后系统将显示订票状态。如果客户仅执行订票操作,操作就此结束。假如客户需要选择退票,则进入退票流程,经退票信息确认后系统将出现退票结果提示。
(2)客户注册
客户注册流程如下:客户进入 Web 页面,填写注册信息,然后提交信息,最好系统将出现注册结果提示信息。客户注册流程如图 3.3 所示。
图 3.3 客户注册流程
(3)客户信息维护
该模块的用户是系统管理员,通过登录操作后,管理员可以查看用户信息,然后执行客户信息审核和维护等操作,最后生成客户信息表。如图 3.4 所示。
图 3.4 客户信息维护流程
(4)订票审核与管理
该子模块的用户为系统管理员或票务员,首先输入管理员账号和密码,进入系统查看订单列表,实施订单审核与维护操作,最后生成订票统计报表。如图3.5 所示。
图 3.5 订票审核与管理
2.4 系统开发的技术架构
本系统在设计开发过程中,采用了 J2EE 的 Web开发技术,在开发层次中沿用了 Web 开发的层次型架构。在客户端采用 HTML 的静态网页设计技术,并利用 HTTP 协议来实现客户端和服务器端的通信。在服务器端 J2EE 的 Tomcat 服务器技术,使用 JSP Servlet 实现,并使用 JAVABean 来实现业务层处理。系统持久层采用 Hibernate 3.1 实现,提高了系统开发的灵活性和伸缩性。数据库平台为 MySQL Server5.0,具有安全性高,性能好的特点。
图 2.4 系统开发的层次型技术架构
根据上述技术架构分析和系统开发原则,不难得出本系统的基本性能特征:
1.良好的交互性:本项目在使用过程中存在着大量的人机交互环节,系统 通过层次型开发架构满足了这一功能需求。
2.较好的可扩展性:系统的 SSH 架构凸显了这一特点。比如当系统的客户端需要产生变更时,只需 HTML 开发变化和 HTTP 通信做出更改即可,其他系统层无需重新开发。 3.良好的可维护性:系统维护人员只需针对不同层次的变化实施系统维护故障实现了离。 4.良好的系统兼容性:本系统继承了 J2EE 架构的良好的系统兼容性,能够应用于不同的操作系统平台和软件环境。
3 详细设计
3.1系统业务流程分析与设计 3.1.1 网上订票流程
用户选中航班后,可以选择舱型进行网上预订机票,生成相应的订单,用户需要进行网上支付,支付成功则订票成功。在所订飞机起飞前,用户可以在网上进行退票操作,详细流程见 3-1-2。网上订票流程的时序图见图 3-1-1 所示。
用户 :
输入查询条件显示航班列表
选择航班
输入旅客信息
选择网上支付
提示订票成功
图 3-1-1 网上订票流程时序图
3.1.2 网上退票流程
客户可以在飞机起飞前实施退票操作。用户首先提出退票申请,进入票务管 理页面,输入订票号后就能查询自己的订票状态信息,然后选择退票并确认,就
能完成网上退票操作。退票操作确认完成后,系统管理员通过票务管理和维护操
作,实施网上退费。网上退票的时序图如图 3-1-2 所示。
用户 :
提交退票请求
3.1.3 用户注册登录流程
返回订单信息
输入订单号查询
选择退票
提示退票成功
图 3-1-2 网上退票流程时序图
用户在门户页面选择注册后,进入注册页面,填入注册信息,系统进行注册处理并返回用户注册信息,用户得到这些信息后,输入正确的用户名和密码就能 完成登录操作。详细的流程时序图如图 3-1-3 所示。
用户 :
选择注册
输入注册信息
提示注册成功信息
输入正确的用户名和密码
进入系统
图 3-1-3 用户注册与登录时序图
3.1.4 订单管理流程
系统管理员(票务员)完成登录后,提交查看订单的请求,进入订票列表,然后就可以什么订单的内容,做出更改订单状态的操作。具体时序图如图 3.1.4所示。
票务员 :
输入正确的用户名和密码
提交查看订单请求
审核 更新订单状态
图 3-1-4订票管理时序图
3.1.5 报表统计流程
管理员(票务员)输入正确的用户名和密码后,完成了登录,提交报表统计类型,输入统计条件,进入报表统计页面,系统管理员就能够得到报表统计的信息显示。如图 3.1.所示。
票务员 :
图 3-1-5 报表统计时序图
3.2数据库设计 3.2.1 数据表设计
本系统的数据表主要有 user 表、admin 表、order 表、flight 表、account 表等。 1.User 表
user 表如下图中的 userid 表示用户 ID 号,name 字段表示用户名称,password 表示密码,idcard 表示 ID 卡号,gender 表示性别,phone 表示电话号码address 表示地址,email 表示 email 地址。
2.Admin 表
表admin 如图2 所示,id 表示管理员的 ID 号,name 表示姓名,password 表示密码,role 表示角色。
图1 user 表
图2 admin 表
3.Order 表
如图3所示,id 号表示订单 ID 号,travellername 表示旅行人的姓名,number表示联系电话号码,airlineID 表示航线 ID 号,flightID 表示航班号码,classtype表示航班类型,setuptime 表示出发时间,ordertime 表示订票时间,state 表示状态信息。
4.Flight 表
图3 order 表
Flight 表 id 字段是主键,表示航班 ID 号,flighttype 表示航班类型,f_classnu字
段表示航班等级,f_classprice 表示航班票价。如图4 所示。
5.Account 表
在 account 表中,id 字段表示账户 ID 号,points 表示积分值,account 表示 账户信息。如图 5 所示。
图4 flight 表
图 5 account 表
3.2.2 数据库内部依赖性分析
通常关系数据库表的关系模式设计应该满足一定的规范,数据库表数据库的关系模
式的规范形式有:
(1)第一范式:每个属性的值域都是不可再分的简单数据项。
(2)第二范式:关系模式 R 是第一范式,而且每一个非主键属性都完全函数依赖于 R 的键(即不存在“部分函数依赖”。转换为第二范式的方法是消除部分函数依赖。) (3)第三范式:关系模式 R 是第二范式,而且它的任何一个非主键属性都不 传递依赖于 R 的任何候选键。转换为第三范式的方法是:消除传递函数依赖。
这里数据库表的关系图如图 3-2-2 所示。
图 3-2-2 数据表依赖关系图
3.3 网上订票子系统的分层实现
3.3.1 用户表示层
网上订票系统的用户表示层用Struts 2.0 框架MVC实现,主要包括视图实现 和控制器实现两个部分。JSP文件用来提供视图实现,建立用户界面,接收用户的输入数据,并进行表单的验证。控制器包括FilterDispatcher和Action两类组件。FilterDispatcher是Struts 2.0框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。Action类通常用来处理用户请求,调用处理业务逻辑的接口。下表显示了客户管理模块主要的JSP页面组件和相应功能。
表 3-3-1 客户管理模块 JSP 页面组件与功能对应关系表:
3.3.2 业务逻辑层
下面我们以航班信息查询和网上订票模块为例阐述本系统业务逻辑层的实现。
1.航班信息查询
航班信息查询的类图如下图所示。
FlightService
> flightdao > getAllFlight() > getFlightById() > getFlightsByType() > addFlight() > delFlightById() > updateFlight() > getFlightsByAirlineID()
2.网上订票子模块
图 1 航班信息类图
网上订票子模块的类分为订单业务类和订单控制类,如图 2 所示。订单业务类用来实现 OrderService 接口中的方法,实现订单的生成、更新、按条件查看、删除。订单控制类用来实现 OrderAction,根据用户选择的航班生成相应的订单,并更新订单的信息状态等。并且控制用户的订单查询。
图 2 网上订票子模块类图
3.3.3 数据持久层
数据持久层由 Hibernate 框架实现,主要任务是实现与数据库的交互。该层将业务层的处理结果持久化到数据库,或者从数据库中读取数据送到业务逻辑层。Hibernate 组件从数据源中读取数据,并生成持久对象,再把持久对象送到业务逻辑层。本系统用 DAO 模式对数据源进行封装,实现数据的持久化并与数据库交互。而 Hibernate 提供了封装对象和数据表之间的接口。
4 总结
通过以上分析,主要分析了系统的各个组成部分,并给出了具体的逻辑设计。用户模型主要是简单的介绍了用户的特征与工作状态的相关关系。系统主要描述了各分系统管理的用途,设计方法以及一些相应的策略。主要是以全局的整体的角度描述整个系统的功能和框架,它所涉及的理论分析和设计为后面的算法设计和实现打下基础。
在刚开始的测试中遇到的一个主要问题是,我的后台数据库用的是MySql它对中文的支持比较麻烦,除了你要在链接数据库的字符串做编码,而且你要保证你数据库中表的字段编码是GBK或者GB2312,才能在插入数据库中显示中文。由于在做需求分析时有可能不充分,有些问题考虑不周全因此在满足用户需求方面还有所欠缺,数据库设计方面有个别设计的不太合理要在以后的开发中多注意这方面的问题。在整个开发过程中数据库设计有位于整个开发的最关键的位置,数据库设计是否合理高效是向下开发顺利进展的关键。在这之后的开发都是在以数据设计之后在此基础上进行的开发,因此要把数据库设计作为明确需求之后的头等大事来做,以免在开发进行中再来更改数据库那就太浪费时间了。
参考文献
[1] ( 美)PaulJ.Perrone,etal. 著, 张志伟等译. J2EE 构建企业系统 [M]. 清华大学 版, 2001.
[2]( 美 )BrettMcLaughlin 著 , 孙 兆 林 等 译 . JAVA 与 XML [M]. 中 国 电 力 出 版 社, 2001.
[3](美)MarkWutka著,程显华等译. JSP和Servlet程序设计使用专辑 [M].机械工 业出版社, 2002
[4]田勇,孙新等编著. 最新JBuilder开发人员指南 [M].机械工业出版社, 2001.
[5]方美琪主编. 电子商务概论 [M].清华大学出版社, 2002.
[6](美)BruceEckel著,侯捷译. Java编程思想 [M].机械工业出版社, 2002.
[7]杨琳洁. 网上订票系统的研究与应用. 铁路计算机应用,2004.10:30—31.
[8]孙福振,李艳,李业刚. 基于 J2EE 的 MVC 设计模式的研究与实现. 山东理 工大学学报(自然科学版),2006,20(2): 50-53.
[9]夏阳,胡平,基于 Struts 体系结构的 Web 应用. 计算机与现代化,2005,(6), 56-59.
[10]段昌敏. 一种基于 J2EE 的火车订票系统的设计. 电脑知识与技术,2008
(5):864—868.
[11]苏文清,李忠. 基于 Struts+Spring+Hibernate 的 Web 开发框架及实现研究. 甘 肃科技,2009(11):30—32.
[12]谢艳平,胡家宝,谢承旺. 基于 Struts 和 Hibernate 的 MVC 设计模式,交通 与计算机,2005,23(4): 62-64.
[13]宋汉增,沈琳. 利用 Hibernate 对象持久化服务简化 Java 数据库访问,计算 机应用,2003,23(12): 135-137.
[14]RodJohnsn,Spring 框架高级编程,机械工业出版社,2006(4).
[15]Grady Booch,Jams Rumbaugh,Ivar Jacoboson 著. 邵维忠等译.UML 用 户指南(第二版).北京:机械工业出版社,2003.
[16]梁立新,项目实践精解:基于 Struts-Spring-Hibernate 的 Java 应用开发. 电 子工业出版社,2006(8).