民航机场生产统计系统的设计与应用
2013-09-17徐国友高文霞
徐国友,高文霞,刘 晶
(1. 民航职业技术学院 民航经营管理学院,广东 广州 510403;2. 民航职业技术学院 飞机维修工程学院,广东 广州 510403)
0 引言
民航地区管理局原机场生产统计系统是在DOS平台下开发的,数据库采用Foxpro 2.0开发。随着民航业的快速发展,航空运输总周转量、货邮运输量和旅客运输量的急剧增加,该系统逐渐暴露出诸多问题,已不能满足现在的管理要求。原统计系统存在的问题主要表现在:技术落后,操作困难,数据需重复录入;统计分析方式固定,统计报表样式单一;民航地区管理局无法同步得到其管辖机场的生产统计数据。
为了解决上述问题,本课题组利用轻量级J2EE开发了一套新的民航机场生产统计系统,客户端采用智能客户端[1-6](smart client)技术,设计了2个数据库:中心数据库和本地数据库,中心数据库采用Oracle软件开发,本地数据库采用Access软件开发,且实现了2个数据库的数据同步。民航地区管理局利用该统计系统可更好地对民航机场进行科学管理和宏观决策,且该统计系统得到了用户一致好评。
1 系统总体设计
民航机场生产统计系统采用三层体系架构,即数据访问层、业务逻辑层和表示层,并在客户端增加了数据本地存储功能。服务器端程序采用Jbuilder软件开发,智能客户端程序采用Delphi软件开发。
智能客户端技术是一种新型的客户端技术,将胖客户端与瘦客户端应用程序的部署和可管理性的优点结合起来。智能客户端[3]具有以下特征:
1)利用本地资源。智能客户端可利用客户端硬件资源以及其它软件资源,且可集成或协调其它客户端应用程序。
2)利用网络资源。智能客户端可通过网络共享异地的服务和数据,并通过网络获得资源和服务。
3)支持偶尔连接。智能客户端可为偶尔连接到网络的用户提供服务,从而使用户在脱机、低带宽或高延迟网络的状态下,继续高效地工作。
4)支持智能安装。智能客户端能提供灵活的管理部署方式,当系统运行或位于后台工作时,对自身进行智能更新。
5)支持多种客户端设备。智能客户端可提供自定义的客户端环境,通过选择合适平台,为运行时所在设备提供适当的功能支持。
这些特征符合系统对客户端的需求。
目前流行的大型数据库开发软件有SQL Server,DB2, Oracle, Sybase等,就其平台的开放性、安全性、易操作性等方面做了比较后,本文采用Oracle软件开发中心数据库。由Oracle软件开发的数据库管理系统能在大部分系统平台运行,能支持不同的硬件结构,具有良好的伸缩性和移植性,有丰富的开发工具,且支持客户机/服务器体系结构及混合的体系结构,能够满足民航机场生产统计系统的要求。由于Access软件具有界面友好、开发简单、单文件易于发布等优点,智能客户端的本地数据库采用Access软件开发。
采用轻量级J2EE作为本系统的开发平台。轻量级J2EE是对传统J2EE的简化,在保留传统J2EE的应用架构、良好的可维护性和可扩展性的基础上,简化J2EE 应用的开发,降低J2EE 应用的部署成本,并有多款第三方软件能为多服务器集群和负载均衡提供有力支持,例如Websphere,Weblogic等。当机场生产统计量不断增加时,可将本系统平滑地迁移到更好的硬件平台。
系统用户分为两类:机场用户和管理局用户。机场用户登录智能客户端完成本机场的生产数据录入和查询统计,通过数据同步完成生产数据上报地区管理工作。管理局用户登录网页客户端,查看中心服务器数据,并统计其管辖机场的生产统计报表。网页客户端也对机场用户开放部分功能,如机场用户可查看地区管理局发布的信息等。
民航机场生产统计系统体系架构如图1所示。
图 1 系统体系架构Fig.1 System architecture
2 关键技术实现
2.1 智能客户端
智能客户端的主要特点是智能升级。只需将新版本的程序文件发布在服务器对应目录中,客户端将自动发现最新版本的程序文件和应用组件,并自动下载更新。这样能方便系统发布和更新,且可将最初的安装程序最小化,便于客户端部署。智能升级实现流程是:先获取服务器端程序的版本号,将其与本地版本号进行比较,再生成需要更新的的文件清单,根据该清单从服务器端下载文件,最后更新本地程序。
智能客户端充分利用本地操作系统丰富的界面元素,为用户提供友好的操作界面,方便用户操作。录入进出港数据界面采用关联技术,从而减轻录入工作人员的工作量,降低出错率。例如:当工作人员输入机号,程序将自动查询机号表,找到该机号的机型、最大座位、最大业载、可供座位和可供业载等数据,并自动填入相应的输入框。
2.2 数据同步
为了解决部分机场用户网络状况差,同时又需要快速录入和统计本机场生产数据的问题,本文在客户端增加了数据本地存储功能。智能客户端可直接对本地数据库进行操作,加快了程序响应速度,但同时也出现中心数据库和本地数据库如何保持一致的问题。为解决数据同步的问题,本系统还开发了数据同步功能。
为实现数据同步功能,服务器端和客户端采用的技术手段如下:服务器端实现了Sdatasync类,提供Download()和Upload()2个方法供客户端调用;客户端采用“多线程+Windows异步消息”的方式实现,即运行多个线程调用服务器端方法,通过异步消息协调各线程进度,加快数据同步速度。将服务器Oracle数据库表与本地Access数据库表的格式设计成一致的结构,并在航班数据表中设置了一个长整型字段,其字段名为“上传时间”,用来记录上传服务器的流水号,将其作为判断数据同步的依据。若流水号字段被置空,则表示该记录与服务器数据不同步;否则,表示该记录已和服务器同步。因此,约定本地用户在录入新航班数据和修改航班数据时,流水号字段被置空。
数据同步的设计思想是先下载,后上传。具体实现步骤如下:先在本地数据库的航班表中获取流水号的最大值,然后根据该值向服务器提出请求,要求服务器传回中心数据库的航班表中流水号大于该值的所有数据记录;客户端接收这些记录后,再在本地航班表中查找“上传时间”字段值为空的记录,即新录入或修改过的记录,并将其上传至服务器,服务器接收后,利用Oracle序列生成新的同步流水号,并保存及上传记录,再将每条记录对应的流水号返回给客户端,客户端收到后,将其写回本地数据的相应航班表中,以完成数据同步。
机场用户在客户端录入的生产数据,通过数据同步功能上报地区管理局,从而使得地区管理局可及时获得其管辖机场的生产统计数据。
2.3 灵活报表
采用Delphi软件的第三方控件FastReport进行统计分析报表的设计。灵活报表模块包含3个功能:
1)设计报表样式,可根据用户的需求,设计和保存报表样式;
2)显示报表,能根据报表设计样式显示报表;
3)导出报表,可将显示的报表导出为PDF或EXCEL文件形式。
通过报表设计模块,可生成不同类型的统计分析报表。例如:设定不同时间段,生成日报、月报和年报等报表;根据不同航线分类,生成国内航线、地区航线和国际航线等报表;设定不同统计方式,生成以公司、机型、机号和航班等为单位的报表。
2.4 数据导入与导出
由于地区管理局和管辖机场都存有部分历史数据,因此,需将这些历史数据批量导入本系统中;另外,部分机场用户继续使用原系统或自主开发系统来录入数据,也需将这部分数据导入本系统中。为解决以上问题,本系统设计了数据导入功能,从而避免机场用户重复录入数据。同样,如果机场用户使用新统计系统录入数据,也可利用数据导出功能将数据按民航局所要求的格式导出,以便上报。
数据导入与导出是基于Delphi的ADO控件实现的。数据导入实现了3个类:DataIMP, IMPAdapter和IMPAdapterImplement。DataIMP是导入控件的界面,用户通过该界面指定数据源的类型、连接方式、需导入的表或视图、对应字段等。导入的不同类型数据库既存在相同点,又存在着差异。相同点是能通过ADO组件读写数据,并将其相同的属性构成IMPAdapter类,而IMPAdapter能被DataIMP调用,用来适配不同类型的数据库。差异是建立连接时指定的参数不同,例如:SQL Server需要指定服务器网络地址、服务器名、用户名和密码;Access需要指定数据库文件路径、访问密码;另外,不同数据库在实现数据类型时不完全相同,相应的在建立数据库表时,创建SQL语句也不尽相同。IMPAdapterImplement类是对IMPAdapter类的继承,解决不同类型数据源的数据在导入中存在的差异性。
数据导出同样也实现了3个类:DataEXP,EXPAdapter和EXPAdapterImplement。DataEXP是导出控件的界面;EXPAdapter是数据导出适配器,用于适配不同的数据库;EXPAdapterImplement是对适配器的继承。
3 结语
针对原民航地区管理局原机场生产统计系统存在的问题,本课题组开发了一个新的机场生产统计系统,以满足地区管理局和机场用户的机场生产统计需求。本统计系统投入使用后,得到了用户的一致好评。随着机场生产业务量的不断增加,本系统的优势会得到更充分的体现,因其能平滑地迁移到更好的硬件平台。
[1] 刘建伟,林延君,王家宝. 基于智能客户端技术的售票系统改良方案[J]. 计算机系统应用,2006(8):2-5.Liu Jianwei,Lin Yanjun,Wang Jiabao. The Implement of the Improved Ticketing Systems Based on Smart-Client Technology[J]. Computer Systems Applications,2006(8):2-5.
[2] 汤 静. 智能客户端研究及应用[D]. 长沙:长沙理工大学,2011.Tang Jing. The Research and Application of Smart Client[D]. Changsha:Changsha University of Science and Technology,2011.
[3] 邢承杰,张治坤. 管理信息系统的新架构:智能客户端[J]. 实验技术与管理,2011,28(5):219-221.Xing Chengjie,Zhang Zhikun. A New Architecture of Management Information System:Smart Client[J].Experimental Technology and Management,2011,28(5):219-221.
[4] 翼庆斌,靳 祯. 基于智能客户端技术的系统升级及应用[J]. 中北大学学报:自然科学版,2010,31(1):23-28.Yi Qingbin,Jin Zhen. Upgrading and Application of System Based on Smart Client Technology[J]. North University of China:Natural Science Edition,2010,31(1):23-28.
[5] 侯少林. J2EE轻量级架构的研究与应用[D]. 成都:电子科技大学,2010.Hou Shaolin. The Research and Application of Light-Weight J2EE Frameworks[D]. Chengdu:University of Electronic Science and Technology of China,2010.
[6] 代俊雅. 基于智能客户端的采血管理系统的设计与实现[D]. 太原:中北大学,2007.Dai Junya. Design and Realization of Blood Collection Management System Based on Smart Client[D]. Taiyuan:North University of China,2007.
[7] 陈 伟. 基于J2EE架构的协同办公系统设计与开发[D].广州:华南理工大学,2010.Chen Wei. Design and Development of Coordination Office System Base of J2EE Architecture[D]. Guangzhou:South China University of Technology,2010.
[8] 聂锦波. 基于J2EE框架的移动网上商城运营管理系统的设计[D]. 广州:华南理工大学,2011.Nie Jinbo. The Designing of Mobile Online Store Operation and Management System Based on J2EE Framework[D].Guangzhou:South China University of Technology,2011.
[9] 李 洋,孙永维,许 冰,等. 基于Ajax, Structs,Hibernate和Spring的J2EE架构[J]. 吉林大学学报:信息科学版,2011,29(6):576-584.Li Yang,Sun Yongwei,Xu Bing,et al. J2EE Based on Ajax, Struts, Hibernate and Spring[J]. Journal of Jilin University:Information Science Edition,2011,29(6):576-584.