基于WEB的车辆加油信息系统的设计与实现

2011-02-05 06:37林开颜江儒秀
微型电脑应用 2011年1期
关键词:公交公司用油范式

林开颜,江儒秀

0 引言

对于国内多数的大型钢铁、交通物流、港口码头等企业内,有内部加油站为本公司车辆加油,而且油料在生产成本中占据了很大比重。以IC卡为媒介,以数据库技术为基础,以网络通信为桥梁构建IC卡加油机管理系统,可以实现对车辆的用油统计和管理,杜绝用油中的漏洞,加油站信息管理系统是利用信息技术对油品销售、油料配给等进行实时、高效、智能的监控和管理,从而极大地降低运行和管理成本,减少投入,以较低代价获取最佳的经济价值,因此具有明显的经济和社会效益。本文以上海巴士一汽公交公司为例,设计并构建了公交公司油站车辆油耗信息管理系统。上海巴士一汽有1000多辆公交车,下设7个子公司,运营数十条公交线路。以往的用油模式是,凭票加油,再手工统计,这样不仅手工统计工作量巨大,而且存在用油上的漏洞,因此建立便捷、高效的加油站信息管理系统显得十分必要。

1 需求分析

为了最大程度的发挥车辆用油信息管理系统的优势,合理配置油料资源,最大限度降低管理成本、杜绝用油漏洞,需要实现对人员、车辆、用油的综合一体化全程管理。通过与巴士一汽公交公司的多次讨论和相关信息的收集整理,所设计的管理系统应满足以下要求,

(1)统一集中管理

为避免各公交公司在车辆用油信息管理系统上的重复投资,考虑“人-车-油”交易数据的统一集中管理。整个系统中,只需配置一台核心数据库服务器(系统构架图中“数据中心”)对整个系统的上行、下行数据进行管理。各公交分公司应用端在系统的基本框架内,可根据本公司的实际情况进行相应数据处理。这样既可避免投资浪费,亦保证了各个公交分公司独立核算、独立管理的灵活性。

(2)查询、统计方便快捷

公司内部VPN网内的用户利用IE浏览器,不仅可以查询公司、单位、加油明细等信息,还可以按各种需求统计加油明细数据,如:按单位-日期,车型等统计。查询和统计出来的数据可以打印、导入Excel等以方便查看。另外,用户可以自由设定需要显示的字段以及显示时按什么字段进行排序。

(3)用户权限限制

此系统包括六个功能模块的设计,而模块的操作权限是不同的,对于普通员工,系统只给予加油信息明细查询和加油信息统计两个模块的操作权限;而管理员或班长可以操作包括这两个模块在内的所有模块。

(4)系统灵活、扩展性强

整个系统需具有配置灵活、可扩展性强的特点,以便于系统升级和公交公司级扩展(含各公交公司内部扩展)。

2 系统设计

系统采用C#作为开发语言,利用ASP.NET设计界面,数据库采用 MS SQLSERVER 2000,Web服务程序部署在windows 2003 server上。

2.1 系统构架

如图1示,在加油站端计算机与液位仪控制器、加油机通讯控制器、IC卡读卡器等通过RS232连接,卡机联动控制器安装于加油机上,与计算机之间采用RS485方式通讯。当车辆停在加油机边上时,加油员工首先刷卡在卡机联动控制器上刷卡认证,验证通过后,允许油枪加油,可进行一次加油。加油结束后,卡机联动控制器将加油数据发送到计算机,各加油站再将本站加油数据上传到数据中心进行汇总,各分公司职能部通过本地 IE浏览器连接至数据中心 WEB服务器,这样就可方便地对本单位车辆的油耗情况进行查询、统计和分析,本文设计的系统就是运行在数据中心的Web服务器上。

图1 IC卡加油机管理系统网络拓扑结构

3.2 功能模块设计

为了实现职能部门通过网络访问数据中心上的数据,设计了基于Web的IC卡加油机信息管理系统。通过在服务器上部署该加油机信息管理系统,各用户通过VPN接入公司内部网络,以利用浏览器访问该系统,获取所需要的信息,系统包括以下六个主要功能模块:

(1)单位信息查询模块,主要实现单位油料信息查询,对公司内部各单位、部门的管理,部门信息的查询等。

(2)车型信息查询模块,实现车型信息查询,可根据车型编号、车型、车型描述等条件查询,输入任意条件即可查询所有符合该条件的结果。

(3)车卡信息查询模块,实现对车卡编号、车牌、油量限额、油种、车卡状态等信息的查询及管理。

(4)人卡信息查询模块,实现对驾驶员姓名、性别、卡号、是否司机等信息查询,从而有效管理人卡信息。

(5)加油明细查询模块,可根据时间、单位、车号、司机姓名、线路、油品等多种条件,对各单位的车辆用油信息进行明细查询,同时统计这段时间内加油总油量、油量总金额,显示在最后一行对应列的位置。

(6)报表统计模块,实现多种方式的加油信息统计,主要统计字段包括:单位-内部编号,单位-线路-内部编号,单位-日期,日期-单位,单位-车号,加油机枪号,油量档,车型,综合报表,加油员工,月-单位。系统详细流程如图2所示。

图2 系统功能模块流程图

系统首先进入登录界面,要求用户输入自己的用户名和密码,系统根据用户的角色规定相应的页面访问权限。用户角色为管理员或者班长时,便具有图2中六个模块所具有的访问权限,其中加油明细查询除了正常的查询功能外,还提供用户设定字段,选择排序字段的功能。此外,所有模块均给用户提供打印、导入Excel等便捷操作。当用户只具有操作员权限时,只允许访问2个功能模块。

3.3 数据库设计

数据库是系统的核心,必须在数据库性能和编程等方面综合考虑,良好的数据库设计有以下优点:

(1)节省数据的存储空间;

(2)保证数据的完整性;

(3)方便进行数据库应用系统的开发。

本系统是为公交公司设计的加油站管理系统,每辆车配有一张车卡用以记录车辆信息,每位驾驶员有自己的员工卡,加油时必须同时验证两张卡,这样加油记录即同时含有车辆和人员信息。

表1 主要实体描述

系统的主要实体如表1所示,实体关系图如3所示。限于篇幅,只列出主要实体和实体的主要属性。图中,PK(Primary Key)表示主键,FK(Foreign Key)表示外键。数据库设计中常用以下三个范式来规范数据库[1],即

第1范式:每列数据都是不可再分的最小数据单元;

第2范式:如果一个关系满足第1范式,并且除了主键以外的其他列,都依赖于该主键,则满足第二范式,即要求每个表只描述一件事情;

第3范式:如果属性不依赖于标识符,则将它移到其他实体中,即消除非主键依存关系。

为了不让编程过于复杂以及考虑项目的实际需要,本数据库满足第1、2范式,但并不严格满足第三范式。例如,考虑车辆可能会有线路调动,调动前的加油记录必须在原单位中结算,故加油流水记录需要记录车辆的单位信息。数据库关系中有“一对一”,“一对多”,“多对多”,而“多对多”关系会导致编程复杂,不是一个好的关系,必须转换为两个“一对多”关系,本系统都是“一对多”的关系,即一个公司有多个分公司,一个分公司有多条线路,一个分公司有辆车等。

图3 实体关系图

3.4 安全策略设计

在 Web网络应用开发中,安全是一个非常关键的问题[2],本系统利用 ASP.NET的安全机制、数据库安全控制策略等构建性能安全的系统。采用的方法如下,

(1)Web服务器目录设置

Web网络应用程序,就是运行在Web应用服务器上的一个虚拟目录及其子目录下的所有文件、网页、模块以及可执行代码的总和。根据系统功能需求,建立了查询文件夹(Search)和统计文件夹(Report)等,同时还创建了数据文件夹、脚本文件夹、样式子文件夹、通用图片子文件夹等。而对数据库表的操作文件放在特殊的文件夹bin下,因为该目录是禁止任何浏览器访问的,从而避免了远程客户下载代码的可能性。

(2)数据库安全性

除了利用关系数据库系统的视图和存储过程(如创建带参数的视图)实现不同角色身份的用户对各自权限范围内的数据访问外,还通过特殊字符过滤法、利用参数实现 SQL操作及正则表达式法等来防止SQL注入[3][4]。

(3)口令验证

由于本系统主要应用于公司内部网,同时要求操作简单便捷,故采用动态口令与静态口令结合的身份认证方式解决该系统的安全登录问题。静态口令即为用户登录时需要输入的密码,而动态一次口令是根据客户端发送给服务器的申请,由服务器一次性产生以执行时的百分之一秒当随机数种子的、不可预测的字符串,分别在服务器端绘制成PNG图,传给客户端的浏览器。这样即使黑客中途获取应用程序代码,那些图的点阵代码也很难辨别,而且每次都是不同的口令,即使用Web口令破解工具也很难穷举,因此防止了“重放”攻击和口令穷举攻击。验证界面如图4所示。

图4 口令验证界面

(4)HTML表单验证(Forms Authentication)

HTML表单验证(Forms Authentication),是向开发人员提供确认客户凭证并控制访问权限的技术。在应用程序的web.config文件中添加如下语句:

授权,就是让用户拥有有效凭证,允许或拒绝访问Web应用程序。在web.config中添加如下语句:

(5)禁止调试模式提高安全策略

默认情况下,错误信息保存在栈中,如果开启调试模式,ASP.NET在运行中发生错误时,会显示错误行号,方便调试。但发布程序时,要禁用调试模式,否则出错时有泄露后台代码的隐患。

4 结束语

系统根据图4界面登陆后,进入图5所示界面,系统的功能菜单以树形列表的方式表示,以方便用户选择;用户登录后,可根据自己的权限进行相应数据查询和统计,如进行加油数据明细查询,如图6所示。

本系统已在上海巴士一汽公交公司运行了两年多,运行稳定,为各分公司的车辆用油统计、结算提供了极大方便,有效地杜绝了资源浪费和流失,极大地降低了运行和管理成本,提高了工作效率,为企业的成本核算提供科学依据,这也是公交企业增强竞争力、创造效益的关键所在。

图5 登陆后界面

图6 明细查询界面

[1]皮人杰,任洪译.关系数据库和SQL 编程[M].北京:清华大学出版社,2005:260-270.

[2]符凤平.Web网站安全技术分析[J].计算机系统应用,2008,Vol.12(6):162-165.

[3]Stephen,Thomas.On automated prepared statement generation to remove SQL injection vulnerabilities[J].Information and Software Technology,2008,Vol.51(3):589-598.

[4]袁沛沛,王民.SQL注入入侵的特点、实现以及防范[J].世界科技研究与发展,2008,Vol.30(3):290-291.

猜你喜欢
公交公司用油范式
以写促读:构建群文阅读教学范式
范式空白:《莫失莫忘》的否定之维
为一人设一站
全球船用油检测服务中心简介
适用于农业机械的多功能传动系用油性能要求
为什么白糖在锅里用油翻炒后会变色
孙惠芬乡土写作批评的六个范式
管窥西方“诗辩”发展史的四次范式转换
坐公交车受伤 应该由谁赔偿
考虑满意度的公交财政补贴绩效评价