资源描述
深圳航空公司机票预定系统
摘 要:在市场经济浪潮下,航空运输的快速对铁路运输和公路运输构成了很大的冲击.在对客运服务存在的问题进行调查后我们发现,购票难是客运服务需要首先解决的问题. 由此,我们推出了网上机票预订系统,以更加高效快速的完成乘客购买机票的过程.
本航空订票系统是一个基于Internet的WEB开发,根据现今航空业的飞速发展,为了缓解航空公司对机票管理的压力而开发的这个订票系统. 论文首先阐述了本课题的研究背景和研究的意义以及现今国内外对于本课题研究概况做了简要的介绍.
在系统设计阶段,对页面的设计采用了Spring+MyBatis框架,结合JSP+Easyui实现了网页的动态显示,在后台业务层的实现采用了MVC分层模式实现了对前台页面请求的处理.
在数据库设计阶段,通过对本行业的调查的具体的规划,在此基础上进一步的抽象规划得到了整个数据表的整体框架和数据库表。并进一步的详细阐述了数据库之间的关联.
在系统的测试阶段,具体介绍了测试的目的,任务和方法,并对本系统进行了详细功能的测试.
结合着整个项目,本项目采用B/S结构,使用JSP技术进行动态页面的设计. 后台数据库选用Oracle数据库. 从快速开发方面考虑,运用了MyBatis框架实现对数据库的各项操作.
关键词:Oracle; Java; SpringMVC; Easyui;B/S结构
The Flight Reservation System of Shenzhen Air Lines Inc
Abstract: With the rapid development of market economy, the hign-speed of air transport has greately influenced railway transport and highway transport. After an investigation of problems come from passenger services, we find that the long-standing problem is the greatest difficulty of passenger services. Thus, we release this ticket reservation system to help passengers buy tickets more efficiently and quickly.
The air booking system is a development of Internet-based WEB, in accordance with the current rapid development of the aviation industry, airlines in order to ease the pressure on the management of the development of the booking system. First the paper elaborated the research background and the significance on the subject and international profile of this issue on a brief introduction.
In the system design stage, the design of the pages using the Spring+Mybatis framework to achieve the JSP+Easyui page with the dynamic display, in the background of the business to achieve a layered model of the MVC on the prospects of achieving the pages dealing with the request.
In the database design stage, through the investigation of the industry's specific planning, on the basis of further planning by the abstract of the entire data table of the overall framework and database tables. And further I elaborated the link among databases.
In the testing phase, the specific purpose of the test on the tasks and methods, and the system carried out a detailed functional testing.
According to entire project , the system uses B/S structure, while the use of JSP technology for the design of dynamic pages, installed. The database we used is Oracle . From the rapid development considerations, use Mybatis framework to achieve the operation of the database.
Key words: Oracle; Java; SpringMVC; Easyui;B/S structure
目录
1 绪论 1
1.1 开发目的及其意义 1
1.2 国内外研究状况 2
1.3 研究方法 2
2 系统开发技术简介 3
2.1 系统开发简介 3
2.1.1 服务器端: 3
2.2 Java开发结构的介绍 3
2.2.1 Java及J2EE简介 3
2.2.2 ORACLE数据库简介 5
2.2.3 MyBatis简介 6
2.2.4 Spring简介 7
2.3 B/S结构简介 8
3 可行性分析 9
3.1 系统分析 9
3.2 业务流程分析 9
3.2.1 业务流程分析的目的 9
3.2.2 业务流程分析 9
3.3 系统安全性分析 11
3.4 可行性分析 14
3.4.1 社会可行性 14
3.4.2 经济可行性 14
3.4.3 方案可行性 14
3.4.4 技术可行性 14
4 需求分析报告 15
4.1 任务概述 15
4.1.1 目标 15
4.1.2 用户的特点 15
4.2 对性能的规定 15
4.2.1 精度 15
4.2.2 灵活性 15
4.2.3 输入输出要求 16
4.2.4 故障处理要求 16
4.2.5 运行环境规定 16
4.3 需求规定 17
4.3.1 模块流程图 17
4.3.2 数据流图 17
4.3.3 数据字典 18
4.4 功能需求分析 19
4.4.1 代理商操作模块 19
4.4.2 系统管理员操作模块 19
4.4.3 普通用户操作模块 19
5 详细设计 20
5.1 系统体系结构设计 20
5.1.1 B/S体系结构 20
5.1.2 机票预订系统基于WEB的三层体系结构 21
5.1.3 机票预订系统基于MVC的体系结构 22
5.2 数据库设计 23
5.2.1 实体分析 23
5.2.2 实体E-R图 23
5.2.3 实体模型的关系分析 25
5.2.4 数据库表设计 25
6 系统的实现 28
6.1 系统登录 28
6.2 系统管理员模块 30
6.2.1 用户信息管理 30
6.3 代理商模块 34
7 系统测试 35
7.1 系统测试的目标 35
7.2 测试的实现 35
7.2.1 模块测试 35
7.2.2 系统及子系统测试 35
8 程序维护说明 37
8.1 程序维护简介 37
8.2 程序维护过程 37
8.2.1 规则 37
8.2.2 验证过程 38
8.2.3 出错及纠正方法 38
9 结 论 39
参考文献 40
致 谢 41
附 录 42
1 绪论
1.1 开发目的及其意义
深圳航空有限责任公司成立于1992年11月,1993年9月17号正式开航,是主要经营航空客、货、邮运输业务的股份制航空运输企业.目前深圳航空公司总资产超过200亿,员工14000多人,拥有波音747、空客320、319等各类型飞机130多架,经营国内国际航线280多条,引入国际先进的战略、安全、人力资源、品牌策划、财务等管理理念和管理方法,引领深圳航空从一个小优秀企业向着卓越的航空企业迈进,荣获“深圳市市长质量奖”、“国际五星钻石奖”等荣誉.
航空客运业务诞生已有近一个世纪了,作为现有交通工具中最方便快捷的一种,它确确实实地给民众的生活、出行带来了极大的方便.互联网、邮寄机票以及电子机票技术的发展正在改变航空公司的销售业务,使全世界的消费者不出户就可以买到机票.自九十年代以来,因特网技术的飞速发展正在迅速地改变着人们的生活方式,因特网正在由科学工作者的工具变为普通百姓获取信息、进行交流的场所,而因特网的商业应用则尤为引人注目.航空公司在因特网上建立网上售票系统不仅方便了旅客,还节省了航空公司的代理费用,加速了资金周转,这为售票成本居高不下的深圳航空公司带来了无限生机.网上售票的另一优点是扩充了航空公司的销售网点,使航空公司通过因特网将其销售网点扩展到全世界.
在中国还有很多地方不能实现网上订票,这就需要完善的机票售票系统来完成这些功能.中国民航高达500亿元以上人民币的客运销售额是网上售票的巨大潜在市场.国际民航业的激烈竞争又迫使担负国际航线运输任务的航空公司必须尽快推出自己的因特网售票系统,而这些又必须由一个安全的网上订票与支付系统作支持.更重要的还要提供票务管理.面对不同种类的信息,需要合理的数据库结构来保存数据信息以及有效的程序结构支持各种数据操作的执行.航空业身处信息时代的电子商务大潮中,加之传统的售票方式已经不能满足现今航空业的发展,于是航空售票管理系统就自然而然被应用. 网上售票系统是一个非常合适的电子商务项目,因为它打破了旧有经营模式(坐店经营、按点上下班)所带来的地理和时间上的限制,通过网络使企业面对整个世界,直接接触成千上万的新用户,为用户提供每周7天,每天24小时的服务,从而接触更多的潜在市场,创造了新的商业机会另外,在售票系统中不涉及到物流(订机票者可以到机场取票),因此,较其他电子商务系统更易于实现和运作.网上售票系统实际上是一个特殊的售票点,是一个利用因特网技术建立的计算机系统.一方面它与因特网相连,向广大上网用户提供各类航班信息,接受用户在线订票,另一方面它与传统订票网络系统连接,实时获取及更改机票余额等信息,起到一个特殊售票点的作用.
1.2 国内外研究状况
电子航空售票系统不仅有利于航空公司降低成本、增加利润、提高工作效率,也为航空公司带来一个广阔的市场.航空公司可以利用Web Services的“互操作性”与其他电子商务进行“耦合”,提供更综合、更高级的服务;也可以通过兼并、收购等多种方式组成电子商务的连锁环节,发展规模经营,提高整体竞争力.电子航空售票系统通过计算机互联网为用户提供全方位全功能的服务,给用户带来极大的便利. 与国外迅速发展的趋势不同,国内电子机票的推广经历了一个曲折的过程.1999 年,南方航空公司率先利用DCOM技术在国内推出自己的网上订票系统.2001 年南航电子客票销售达到 1.45 亿元,2004 年,南航电子客票的销售额超过20亿元,2005 年更达41.43 - 3亿元.但电子机票的发展并非一帆风顺.我国南航、东航、国航这三大航空集团都先后应用CORBA和 DOCM技术推出了自己的电子机票. 这两种紧密捆绑的分布式对象技术在使用运行于相同平台的软件和紧密管理的局域网创建企业应用程序时非常优秀, 但是在创建跨平台、适应Internet的可伸缩性的应用程序时力不从心,遇到了很多问题,例如如何通过防火墙、协议的复杂性等.由于各个航空公司的电子航空售票系统开发平台各异、技术系统互不配套,难以互通,无法实现系统间互操作,使得机票改期、改签与升降舱等的操作都遇到了麻烦,有的电子客票成为不能改动的客票,使旅客深感不便,因此,实现电子客票技术系统的兼容是当务之急.
基于以上分析采用MVC技术开发的电子航空售票系统能够解决当前存在的系统间不兼容造成的资源浪费、重复开发问题,这种基于组件的分布式技术变革的必然产物为使用新方法进行商务和公司事务处理打开了方便之门.
1.3 研究方法
本系统使用Spring MVC +MyBatis技术开发,使用Oracle数据库保存数据,集成开发环境可使用支持可视化GUI界面设计的主流工具(如eclipse\ant bean\jbuilder).本系统使用JSP技术,其目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作.系统稳定性、安全性、可移植性更强.
开发工具使用Eclipse,运行环境为sun公司的jdk1.7.
2 系统开发技术简介
2.1 系统开发简介
本系统可以实现对代理商信息、航班信息、飞机信息的增删改查;另外还可以对机票预订信息进行查看.下面是对这几部分进行的说明和分析:
2.1.1 服务器端:
1.代理商信息管理
主要包括:添加代理商、修改代理商信息、删除代理商、查询代理商信息.这其中大部分是标准数据的维护,包括新增、修改、删除等;
2.航班管理
主要包括:添加航班、修改已存在航班信息、查询航班信息、删除航班信息.这里是对航班管理的模块.
3.飞机信息管理
主要用包括:添加飞机类型、修改飞机类型、删除飞机类型、查看飞机类型.这里是对飞机型号管理的模块.
4.预定机票管理
主要是查看已预订机票的信息.
2.2 Java开发结构的介绍
本系统采用JAVA语言和Oracle数据库实现,采用JSP、MyBatis、SpringMVC、JQuery技术.从技术上来说是可以实现的.
2.2.1 Java及J2EE简介
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称.
Java主要特性:
1.Java语言是简单的,Java语言的语法与C语言和C++语言很接近, Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧.
2、Java语言是一个纯的面向对象程序设计语言.
3、Java语言是分布式的.Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(J)
4、Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证.Java的安全检查机制使得Java更具健壮性.
5、Java语言是安全的.Java提供了一个安全机制以防恶意代码的攻击.
6、Java语言是体系结构中立的.Java程序在Java平台上被编译为体系结构中立的字节码格式,可以在实现这个Java平台的任何系统中运行.
7、Java语言是可移植的.这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度.Java系统本身也具有很强的可移植性,
8、Java是解释型,高性能的.与那些解释型的高级脚本语言相比,Java的确是高性能的.
9、Java语言是多线程的.Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized).
10、Java语言是动态的.Java语言的设计目标之一是适应于动态变化的环境.Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类.
Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用.Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本.Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式.
在1998年joke发表1.2版时,sun公司使用了新名称Java2platform来称呼,修改后joke称为j2sdk,并分为:
标准版(Standard Edition)又称J2SE;
企业版(Enterprise Edition)又称J2EE;
微型版(MicorEdition)又称J2ME.
简单的说,J2EE是一种商业应用系统模型或者说是一种规范,它包含java远程方法调用(RMI)企业级Java Bean、Java消息服务(JMS)、Java服务器页面(jip)等技术体系.利用的资源我们是可以方便、快速的创建一个强大的企业级应用,比如电信的话务系统,企业的知识管理系统等.
JSP(Java Server Pager)JSP是一种运行于Web服务器的脚本语言,是开发Web动态网页快速而有效的工具.JSP页面由HTML代码和嵌入其中的Java代码所组成,当客户端发送请求时,服务器端由JSP容器处理JSP页面中的Java代码,然后将生成的HTML页面返回给客户端浏览器.
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI.Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术.Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制.
jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多).jQuery是免费、开源的,使用MIT许可协议.jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能.除此以外,jQuery提供API让开发者编写插件.其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页.
2.2.2 ORACLE数据库简介
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能.但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它.
ORACLE相比其他数据库的优点包括:
1.提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵.加上它有许多优秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性.
2.支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等.
3. 提供了基于角色(ROLE)分工的安全保密管理.在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现.
4.ORACLE7.X以来引入了共享SQL和多线索服务器体系结构.这减少了 ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台 上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成很多用 户.
ORACLE的特性包括:
1. 完整的数据管理功能:
(1)数据的大量性
(2)数据的保存的持久
(3)数据的共享性
(4)数据的可靠性
2.完备关系的产品:
(1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
(2)保证访问的准则
(3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化.
(4)数据物理性和逻辑性独立准则
3.分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由Oracledbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成.
4.用ORACLE能轻松的实现数据仓库的操作.
2.2.3 MyBatis简介
MyBatis 是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得.SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得.用xml文件构建SqlSessionFactory实例是非常简单的事情.推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例.MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源.
Mybatis的功能架构分为三层:
(1) API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理.
(2) 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等.它主要的目的是根据调用的请求完成一次数据库操作.
(3) 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件.为上层的数据处理层提供最基础的支撑.
MyBatis框架讲解:
加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中.
SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数.
SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果.
结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回.
2.2.4 Spring简介
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益.
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器 框架.
Spring的特性:
1.方便解耦,简化开发
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合.有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用.
2.AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的 功能可以通过AOP轻松应付.
3.声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量.
4.方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的 操作,而是随手可做的事情.
5. Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持.
2.3 B/S结构简介
本系统采用B/S结构,在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性.任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端.
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护.系统的扩展非常容易.
软件系统的改进和升级越发频繁,B/S架构的产品明显体现着更为方便的特性.对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护.无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享.所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向.今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的.因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器.航空订票系统是面向全国人的一个系统,用户数量庞大,对于这样的要求,我们只能采用B/S结构来做这个系统.
大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位. 当前的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高.所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用windows作为桌面电脑操作系统不受影响,这就使得最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行.
B/S 结构图如图2-1所示:
图2-1 B/S 结构图
3 可行性分析
3.1 系统分析
服务端:
1.代理商信息管理
主要包括:添加代理商、修改代理商信息、删除代理商、查询代理商信息. 这其中大部分是标准数据的维护,包括新增、修改、删除等;
2.航班管理
主要包括:添加航班、修改已存在航班信息、查询航班信息、删除航班信息. 这里是对航班管理的模块.
3.飞机信息管理
主要用包括:添加飞机类型、修改飞机类型、删除飞机类型、查看飞机类型. 这里是对飞机型号管理的模块.
4.预定机票管理
主要是查看已预订机票的信息.
3.2 业务流程分析
3.2.1 业务流程分析的目的
运用业务流程图可以为用户进行方便的操作进行指导,另外系统模块的业务流程图在管理员或是程序员在进行系统的维护以及系统升级是会有很大的帮助,当然,在进行业务流程分析的同时会对一些系统的数据流进行分析,进而为系统的数据库设计进行分析作了准备.
3.2.2 业务流程分析
深圳航空公司机票预定系统的服务器端系统流程图如图3-1:
启动本系统程序后,系统用户进行系统登录,用户输入管理口令,系统对其输入信息进行验证,如果口令不正确则重新进入登陆界面,提示口令错误;口令输入正确后进入系统本界面,对系统进行管理.主要包括:航班管理、系统用户管理、飞机类型管理、机票预定信息.航班管理主要是:添加新航班、修改航班信息、删除航班、按条件查看航班信息;飞机类型管理包括:删除信息、查询信息、修改信息、增加飞机类型信息;用户管理包括:增加系统新用户、查看用户信息、删除用户信息、修改用户信息;预定机票管理:查看预定机票信息.
管理员登录
口令是否正确
进入主界面
用户管理
航班管理
飞机型号管理
机票订单管理
添加用户
修改用户
查看用户
删除用户
添加航班
修改航班
删除航班
查看航班
添加飞机
查看飞机
修改飞机
删除飞机
查看机票
否
是
图3-1 服务器业务流程图
深圳航空公司机票预定系统客户端流程图如图3-2:
客户端登陆界面,并提示用户输入口令,用户输入口令后,系统对其进行验证.如果口令错误返回登录界面重新登录;如果验证通过,则进入用户界面.用户可以使用本系统进行:航班管理,可以按条件查询航班信息.
用户
口令是否正确
进入主界面
查
询
航
班
查
看
机
票
订
单
否
图3-2 客户端业务流程图
3.3 系统安全性分析
1. 基于系统平台的安全措施:防止系统被破坏和盗窃;防止非法数据输入;防止非法使用; 防止非法文件操作;防止非法访问信息: 防止非法窃听信息.基于系统平台的可靠性:硬件故障对策; 软件故障对策;操作错误对策: 数据错误对策.
2. 操作系统安全性:在操作系统方面.应用操作系统具有的日志功能,记载运行及用户的使用情况,发生系统错误时具有自恢复能力;同时加强系统文件和用户访问控制管理,严格限制用户权限,根据访问控制的要求,对用户采取一些控制措施.如:校验注册用户的合法性和口令的有效性,校验用户权限,控制对系统资源的使用权限等.
3. 数据库安全性:数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪.数据库系统作为信息的聚集体,是计算机信息系统的核心部件,其安全性至关重要.要保护数据库安全,关键在于加密.我们不仅要为发往互联网的数据库中的数据加密,还要为从硬盘转移到后端系统的过程中的数据加密.数据库系统的安全性很大程度上依赖于数据库管理系统.如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好.
为了较好的保证数据库的安全,一般采取以下几种措施:
(1)用户角色的管理
这是保护数据库系统安全的重要手段之一.它通过建立不同的用户组和用户口令验证,可以有效地防止非法用户进入数据库系统,造成不必要的麻烦和损坏;另外在数据库中,可以通过授权来对用户的操作进行限制,即允许一些用户可以对服务器进行访问,也就是说对整个数据库具有读写的权利,而大多数用户只能在同组内进行读写或对整个数据库只具有读的权利.
(2)数据库的加密
由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容.
数据库管理系统分层次的安全加密方法主要用来解决这一问题,它可以保证当前面的层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制.解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读.
我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层.
在OS层加密.在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难.所以,对大型数据库来说,在OS层对数据库文件进行加密很难实现.
在DBMS内核层实现加密.这种加密是指数据在物理存取之前完成加解密工作.这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合.其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持.
在DBMS外层实现加密.比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加解密处理.采用这种加密方式进行加密,加解密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差.
(3)数据保护
数据库的数据保护主要是数据库的备份,当计算机的软硬件发生故障时,利用备份进行数据库恢复,以恢复破坏的数据库文件或控制文件或其他文件.Oracle数据库通常有以下安全策略:
1. SQL注入的防护
SQL注入就是利用插入有害字符进行攻击的术,也称SQL注射式攻击.SQL注入攻击是攻击者把SQL语句插入到Web表单的输入域或页面请求查询字符串中,欺骗服务器执行恶意SQL语句的操作,它是应用程序级攻击Web主要途径,是黑客攻击的最常见手段,是构建网络安全的一大障 碍.目前来说,对于SQL注入攻击的防范主要是要找到一种能保证代码兼容性的方法 Oracle虽然没有直接提供防止SQL注入攻击的对象和方法,但它却提供了丰富的、强大的防御工具.合理地利用这些机制,对防止SQL注入攻击很重要.其次,构建安全的参数类型,进一步过滤掉组装的SQL语句对Web站点的注入攻击.把用户验证的SQL语句构造到存储过程中是行之有效的方法.
2. 采用标准协议
并利用防火墙限制外部IP地址直接访问在
展开阅读全文