株洲医保收费端系统实现方案
高速公路收费系统设计与实现目录目录
第1章绪论
………………………………………………………………………11.1高速公路收费系统概述…………………………………………………………11.2数据传输系统开发的背景………………………………………………………11.3数据传输系统设计的目标………………………………………………………1第2章系统的组成及主要功能……………………………………………………32.1闭路监视系统………………………………………………………………………32.2辅助系统……………………………………………………………………………32.3收费系统……………………………………………………………………………32.3.1车道收费子系统………………………………………………………………32.3.2服务器…………………………………………………………………………42.3.3通信机…………………………………………………………………………52.3.4收费管理系统…………………………………………………………………5第3章数据库应用……………………………………………………………………63.1数据库系统的组成和全局结构…………………………………………………63.1.1数据库系统的组成…………………………………………………………63.1.2数据库系统的全局结构……………………………………………………73.1.3dbms的工作模式和用户存取数据的过程…………………………………73.2数据库系统体系结构…………………………………………………………83.2.1集中式dbs……………………………………………………………………83.2.2客户机-服务器结构dbs……………………………………………………93.3开发数据库应用系统…………………………………………………………103.3.1数据库应用系统的简单结构………………………………………………103.3.2数据库引擎…………………………………………………………………103.3.3开发数据库应用系统的技术背景和任务…………………………………113.3.4开发数据库应用系统需要考虑的问题……………………………………12第4章系统设计与实现………………………………………………………144.1收费计算机和通信机…………………………………………………………144.1.1动态组件……………………………………………………………………144.1.2tcp报文的构成………………………………………………………………154.1.3数据包的抽象………………………………………………………………164.2牙管理工作站…………………………………………………………………174.2.1用户登录模块………………………………………………………………254.2.2主界面模块……………………………………………………………………264.2.3用户管理模块…………………………………………………………………274.2.4车辆收费模块…………………………………………………………………27第5章维护与管理…………………………………………………………………285.1事件的初步分析…………………………………………………………………285.2.1加强收费服务器的日常维护…………………………………………………285.2.2定期做好服务器的清洁工作…………………………………………………285.2.3做好紧急修复磁盘和系统启动盘……………………………………………295.2.4定期检测磁盘,察看系统的日志文件………………………………………295.2.5做好数据库的备份工作………………………………………………………295.2.6做好病毒的防治工作…………………………………………………………295.3数据管理模式的分析和比较…………………………………………………305.3.1现有某高速公路的收费管理模式……………………………………………305.3.2现有数据管理模式的优缺点…………………………………………………315.3.3数据集中管理模式的定义和特点……………………………………………315.4集中管理模式的可行性分析……………………………………………………325.4.1网络可靠性分析………………………………………………………………325.4.2服务器系统软硬件平台………………………………………………………325.4.3冗余独立磁盘阵列rard等安全措施………………………………………33结束语………………………………………………………………………………34主要参考文献…………………………………………………………………………35致谢…………………………………………………………………………………36
第1章绪论
1.1高速公路收费系统概述
高速公路收费系统实现了半自动和etc两种收费方式,可选用ic卡、磁票、二维条卡作为通行券,支持现金、预付卡、储值卡等支付方式;各级可以实现监控下级的操作异常事件;实时监测出入口车道的设备状态;各级系统可以自动统计交通量、通告量曲线图;实现了对路费、通行券、票据、设备等的严格管理,杜绝舞弊行为;提供独特的专家分析系统等。系统组成:·系统采用先进的c/s三层体系·通过广域网实现各级间互联软件特点:·符合我国现有国情·适用范围广·开放的收费系统·可定义的业务流程·友好的人机界面·安全可靠的性能高速公路收费系统系统概述:高速公路收费系统实现了半自动和etc两种收费方式,可选用ic卡、磁票、二维条卡作为通行券,支持现金、预付卡、储值卡等支付方式;各级可以实现监控下级的操作异常事件;实时监测出入口车道的设备状态;各级系统可以自动统计交通量、通告量曲线图;实现了对路费、通行券、票据、设备等的严格管理,杜绝舞弊行为;提供独特的专家分析系统等。
1.2数据传输系统开发的背景随着我国经济的快速发展,社会车辆日益增多,因此我国普遍实行贷款修路,收费还贷制度。原有的手工收费系统存在着许多弊端,而收费站的收费情况直接影响到还贷的能力和业主的经济利益。以计算机网络为基础的公路收费与监控系统,不仅最大限度地防止各种营私舞弊现象,有效制止收费过程中的漏征、作弊行为,并且大幅度提高普通公路收费过程和财务管理的自动化程度,提高工作效率和服务质量,为管理决策提供有力支持。但是目前运行的高等级公路监控收费系统的开放性、可靠性不高,对各种可能出现的问题考虑不周全,在实用暴露出很多问题或不能适应目前形势的发展,需要进一步完善和改进。为此,我在参考已有系统的基础上,设计研制了一套较为全面的收费监控系统。
1.3数据传输系统设计的目标
通常在等级公路上的收费方式为人工判别车型,人工收费,计算机打票(也可以按要求使用ic卡、非接触卡等),并对收费数据进行统计管理;cctv系统辅助监督的收费方式。
考虑到收费站的实际情况(人员计算机水平低,灰尘大等特点),我们在软件的设计上注重软件的公正、精确、简便、可靠性;并能做到应征不漏,收费准确,可有效的防止员工的作弊行为,作到作弊可查,查必有据。在软件设计中注重了以下几个方面:
1)可靠性。由于收费站存在的大量灰尘容易导致设备损坏或接触不良,因此本系统充分考虑到磁盘介质损坏可能对数据产生的影响和系统崩溃对数据产生的影响,建立了两级数据库—车道计算机数据库和服务器数据库。车道控制计算机首先将收费数据、设备状态、事故日志等数据信息存入本地硬盘上的数据库,再将其上传到服务器。当服务器或网络出现故障时,车道计算机可以独立工作,将收费数据等信息保存在本地数据库;待故障消除后,车道控制计算机调取故障时以及故障之后的数据,上传服务器,从而保证收费数据的完整性。
2)开放性。系统具备良好的开放性和兼容性,整个系统易于升级、易于维护。本系统车道数量可以灵活配置,适用于任意数量车道的收费站系统。便于联网,组建省地级监控中心。
3)高效性。保证车辆通过收费车道的高效率和业务快速处理的能力。对于车道控制计算机众多外围设备自动控制,减轻了收费人员负担,提高了工作效率。
基于以上思想,我们采用c++builder作为开发工具,sqlserver7.0作为服务器数据库,车道控制计算机数据库采用c++builder自带的paradox。
第2章系统的组成及主要功能
收费监控系统主要由收费计算机系统、cctv监视系统、内部对讲系统和辅助系统等子系统组成。下面分别描述各个子系统的主要功能。
2.1闭路监视系统
闭路监视系统是相对独立的系统,只是和收费系统存在某些关联(如收费数据叠加、抓拍、硬盘录象等)。整个闭路监视系统可以划分收费亭监视、车道监视、广场监视等几个部分。
2.2辅助系统
辅助系统是指确保收费系统正常运行的配套系统,包括内部对讲、电力供给、设备保护等多个方面。
2.3收费系统
收费系统基本上包括车道收费控制系统、收费站管理系统两大部分,其拓扑结构如图1所示。
收费站计算机与车道计算机组成局域网,采用客户机/服务器模式。根据车道到收费站的距离远近,车道和收费站之间采用光纤或双绞线连接。
2.3.1车道收费子系统
车道收费子系统是整个收费的前端,如图2所示。主要包括车道计算机、交通控制等设备,通过车道收费控制软件,实现这些设备有机的整合。具有安全管理、车型判断、收费管理、设备控制(车道灯、挡车器、测流线圈、金额显示、语音报价、字符叠加)、设备状态检测、数据传输控制、数据存储等功能。能够快速、准确地完成各种收费业务,杜绝收费过程的舞弊行为,同时保证车辆的通行高效率。
车道收费系统按照收费工作逻辑流程,集中控制所有的车道设备。车辆到来时,车道控制机接受收费员的操作,显示收费金额,并进行语音报价,同时通过字符叠加卡将金额叠加到监视图像上供监控人员参考;收费完成后,挡车器升起,车辆通行;车辆通过测流线圈后,栏杆自动放下。对免费车、月票车及特殊情况自动抓拍图像,并将图像数据上传到站服务器。
车道收费系统采用基于socket的数据传输技术,能够动态监测网络通信的工作状态,使车道收费系统的运行具有很强的独立性,实现网络工作环境和单机工作环境的动态切换。切换过程对操作人员是隐含的,不会影响车道收费系统的正常运行,保证车道的最大工作效率。当管理站计算机系统出现故障或车道和收费站之间通信线路出现故障时,车道收费系统可以立即检测到故障的出现,停止数据上传,将收费数据储存在车道计算机;当故障排除后,车道收费系统可以自动恢复数据上传。
2.3.2服务器
服务器主要进行数据的存储和收费数据处理。在数据库中编制触发器和预定义存储过程,当收费数据写入数据库或者对数据进行修改、删除时,数据库的触发器会自动更新有关统计数据(如日收费统计、班收费统计、车型分类收费统计、收费员收费统计等),从而保证收费数据的完整性和一致性。
2.3.3通信机
我们借鉴了软件工程中agent的概念,在服务器和车道控制计算机之间建立一个“代理”层,该软件可以运行在任意一台的计算机上,即通信机。根据收费站的规模,也可以运行在数据库服务器或管理计算机中。
车道计算机、通信机之间通过传输层协议连接。传输层有两种通信协议:tcp/ip和udp。
采用tcp通信时,通信双方需建立连接,通信过程中有应答和重发机制来保证所有通信数据都正确到达。采用udp通信时,不需要建立连接,也没有应答帧,而且可以广播发送,实时性较高,但缺点是发送方不能确认通信数据是否正确到达目的地。因此,我们必须根据具体要传输的信息来采用相应的传输方式。
在本系统中,实时性不是主要因素,所以我们采用tcp/ip协议来保证数据的可靠到达。
通信机的主要功能是数据库的操作、数据的传输控制及应答,即:
a、通信机通过ado(或odbc)和服务器数据库相连接,进行收费数据的数据库写入工作。
b、接收车道计算机收费人员登录信息包和收费流水数据,并将其写入收费数据库中,并返回相应应答信息。
c、通信线路故障后,计算机自动记录,并向管理人员报警提示,人工排除故障,系统恢复后,自动从收费车道计算机调取数据,保证数据的完整性。这样基于tcp/ip协议建立了多层分布式数据库的软连接。
d、代理可以迁移到系统任意一台计算机中,自动将新ip地址发布到各个车道的计算机。
当收费车道与收费站之间出现长时间的通信故障时,可以通过车道收费软件提供的数据导出功能将车道数据库中的收费数据写入软件盘后,在管理站将数据导入数据库中。
2.3.4收费管理系统
收费站管理系统具有收费监视、收费工班管理、用户管理、收费数据管理、系统维护、站点管理、报表打印等功能。
第3章
数据库应用
数据库系统的组成、全局结构和数据存取结构。数据库系统体系结构。简要讨论集中式和客户机-服务器(c/s)结构的数据库系统体系结构,本书专门讨论这两种结构的数据库应用系统实现实例。数据库应用系统的简单结构、数据库引擎、开发数据库应用系统所需的技术背景和开发任务以及开发数据库应用系统需要考虑的问题。
3.1数据库系统的组成和全局结构
数据库系统(databasesystem,dbs)是采用了数据库技术的计算机系统。dbs是以信息处理为核心的计算机系统,信息的存取是系统工作的枢纽,它是一个可运行的,按照数据库技术存储、维护和向应用系统提供数据支持的系统,是由数据库、硬件、软件和数据库用户组成的有机集合体。
3.1.1数据库系统的组成
任何数据库系统都由数据库(db)、硬件、软件和数据库用户组成。数据库是与企业具体的业务应用有关的全部数据的集合。从数据库的用途来看,数据库可分为以下两类:
物理数据库物理数据库是业务应用数据的集合,是业务应用数据库的主体。
描述数据库描述数据库又可称为数据字典或元数据库,用来描述和存储各业务应用数据库的数据结构及其定义。
硬件包括中央处理器、内存、外存、输入输出(i/o)设备等硬件设备。数据库系统特别关注内存、外存、i/o存取速度、可支持的终端数、性能稳定性、网络的支持能力、存储设备的扩充能力以及数据存取通道的能力等。不同的数据库系统对硬件的要求不同,应根据具体应用选择适当的硬件设备。
软件包括数据库管理系统(dbms)、操作系统(os)、数据库引擎和应用开发支撑环境等程序。dbms是dbs的核心,需要在os的支持下才能工作。数据库引擎是数据库应用程序和数据库交互的中间驱动程序。应用程序是数据库终端用户用来实现业务的操作界面,是提高生产效率必不可少的程序。应用开发支撑环境是数据库应用程序开发者能够以低成本、高效率开发出数据库应用程序的高效、多功能、集成的交互式程序设计系统。目前,典型的数据库应用开发环境有delphi、c++builder、powerbuilder、visualbasic、visualc++、jbuilder、c#builder以及.net开发环境等。
数据库用户就是与dbs交互的用户,按照与系统交互方式的不同,可分为如下4类:数据库管理员(dba):负责定义和修改数据库结构,负责dbs的正常运行,承担创建、监控和维护数据库的责任。
专业用户。数据库设计过程中使用专用的数据库查询语言操作数据的数据库设计专业人士,例如系统分析员。
应用程序员。使用应用开发环境和数据操作语言开发应用程序的程序员。
终端用户。使用应用程序完成具体业务应用工作的人员。通常又将这类用户称为“软件最终用户”。
3.1.2数据库系统的全局结构
从数据库系统的组成来考虑各组成模块之间的关系,数据库系统全局结构如图。3-1
3.1.3dbms的工作模式和用户存取数据的过程
dbms是dbs中对数据进行管理的软件系统,是dbs的核心组成部分。在dbs中对数据库的一切操作(数据定义、查询、更新和各种控制)都是通过dbms进行的。dbms的工作模式如图3-2所示。
图3-3是用户存取数据库的示意图。用户对数据库进行操作是由dbms把操作请求从应用程序带到外模式、模式、内模式,进而通过os操作磁盘中的数据。同时,dbms为应用程序的请求在内存中开辟一个数据库的系统缓冲区,用于数据传输和格式转换。
3.2数据库系统体系结构
根据计算机的系统结构,dbs可分为集中式、客户机-服务器式、并行式和分布式4种。本章重点讨论集中式和客户机-服务器式数据库应用系统的开发技术。
3.2.1集中式dbs集中式dbs运行在单个计算机系统中,与其他计算机系统没有联系。通常也将集中式dbs称为单机dbs。集中式dbs中的数据库、dbms和应用程序等组成部分都运行在一个计算机系统中,不同机器之间不能共享数据。
计算机系统有单用户系统和多用户系统两种,因此,可将集中式dbs分为单用户和主从式两种类型。微型计算机和工作站都属于单用户系统,单用户集中式dbs的结构如图3-4所示。通常说的桌面dbs是单用户dbs的典型应用模式。单用户dbs由一个用户独占使用,无数据共享能力。
图3-4单用户集中式dbs
主从式结构是指一个主机带多个终端的多用户结构。在这种结构的dbs中,应用程序、dbms、数据库等都集中存放在主机上,所有任务都由主机来完成,各个用户通过主机的终端并发地存取数据库,共享数据资源。主从集中式dbs的结构如图1-5所示。主从式结构的优点是简单,数据易于管理和维护。缺点是能够支持的终端数目有限,由于所有任务都由主机完成,主机的性能是dbs的瓶颈。
应用较为广泛的集中式数据库管理系统有paradox、dbase、access、visualfoxpro等。集中式dbs的应用目前主要是在小型数据管理和信息处理业务中。本书将讨论基于paradox的数据库应用系统项目的开发实例。
3.2.2客户机-服务器结构dbs客户机-服务器结构dbs通常简写为c/s结构dbs。c/s结构dbs是随着计算机网络技术的发展和应用产生的。c/s结构的关键在于功能的分布,dbs的一些功能在客户端(前端)执行,另一些功能在服务器端(后端)执行。c/s结构dbs的体系结构如图3-6所示。在c/s结构dbs中,服务器专门用来执行dbms功能、管理数据库以及完成分配在后端的功能。应用程序和应用开发工具等则安装在客户机上,支持用户的应用。服务器和客户机之间通过网络连接,并通过数据库引擎接口实现相互之间的通信。在c/s结构中,客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后只将结果返回给用户,从而减少了网络上的数据传输量,提高了系统性能、吞吐量和负载能力。同时,c/s结构的dbs具有更多的开放性、可扩展性和可移植性,能够跨平台运行。
通常将c/s结构的dbs称为两层结构的c/s系统。如果在客户端和数据库服务器之间增加应用服务器(或其他中间服务程序),则两层c/s结构演化成多层的c/s结构,例如b/s结构的dbs就是典型的三层c/s结构。
c/s结构dbs是目前应用比较广泛的dbs类型之一。应用较为广泛的c/s结构数据库管理系统有oracle、db
2、sybase、mssqlserver等,这些数据库管理系统都能够支持大型的数据应用业务。本书将讨论基于mssqlserver的两层c/s结构数据库应用系统项目的开发实例。
3.3开发数据库应用系统
以数据库为基础的信息系统通常称为数据库应用系统,它一般具有信息采集、加工、抽取和传播等功能,是实现业务应用的数据库系统。开发数据库应用系统需要对其基本结构、所需的技术背景、开发任务和需要考虑的问题有所了解。
3.3.1数据库应用系统的简单结构
如果抛开dbs中的硬件和操作系统组成部件,就可以采用如图3-7所示的简单结构描述数据库应用系统。从图3-7中可以看出,数据库应用系统由应用程序端、中间件和数据库端三部分组成。
图3-7数据库应用系统的简单结构
中间件通常由数据库管理系统或应用程序开发环境提供商提供给开发用户使用。中间件是应用程序和数据库之间进行交流的必需通道。设计数据库应用系统时,不需要自己编写,但必须要了解中间驱动的运作原理和使用方法。数据库应用系统中采用的数据库类型和开发环境不同,可使用的中间驱动也可能不同。
如果数据库应用系统使用服务器类型的数据库,应用程序必须要通过数据库服务器(数据库管理系统)才能存取数据库。如果使用的是文件类型的数据库,应用程序可直接存取数据库。数据库服务器由专门的数据库管理系统提供商提供,设计数据库系统时,不需要自己编写,但必须要了解数据库管理系统的运作原理及其提供的数据库开发能力。数据库的设计和实现是开发数据库应用系统的核心工作。
不同的数据库应用系统由于其业务要求和运行环境不同,用于存取和管理数据库中存储的信息的应用程序也不同,这是终端用户使用数据库应用系统必不可少的操作界面。如果数据库应用系统离开了应用程序,终端用户无法直接操作数据库,完成信息管理工作。
3.3.2数据库引擎
数据库引擎是数据库应用程序与数据库(或数据库服务器)进行交互的接口,负责提交、处理数据库访问请求并返回处理结果。通常,数据库应用程序开发环境都会提供相应的数据库引擎及其开发组件,也可以这样说,在客户端,数据库引擎是由一系列用于进行数据库访问的数据结构和基于这些数据结构的方法(或函数库)组成。
从服务器端响应和处理数据库请求的方式来看数据库引擎有两种基本的体系结构,分别是多进程数据库引擎(见图3-8)和单进程多线程数据库引擎(见图3-9)。图3-8多进程数据库引擎运行结构图
图3-9单进程多线程数据库引擎运行结构图
单进程多线程数据库引擎。这种数据库引擎的优点是:占用资源比较少,成本低,在比较低的配置下也能发挥较好的性能。其特征是:在一个处理进程内创建多个线程来响应多个数据库访问请求。具备比较好的可移植性,但低配置不能支持太多用户数。单进程多线程数据库引擎的代表是sqlserver2000。
3.3.3开发数据库应用系统的技术背景和任务
从dbs的组成、体系结构和数据库应用系统简单结构的讨论可知,开发数据库应用系统需要有如下一些技术背景:
应掌握数据库设计的基本理论知识,了解数据库系统的体系结构、数据库的分析建模技术、数据库的体系结构、完整性约束和数据库规范理论等。
应掌握一种桌面数据库和服务器数据库管理系统的应用技术,了解数据库管理系统提供的数据库管理和设计支持能力。
熟悉一种能够支持数据库应用程序开发的开发环境,包括相应的程序设计语言、数据结构、算法分析和应用程序架构技术等知识。
了解开发环境提供的数据库存取技术和所提供的数据库引擎。
了解软件设计和开发过程的一些基本知识,如个体软件过程、团队软件过程和软件工程等。了解应用程序的分发技术和分发工具,即如何制作应用程序的安装程序以及如何在用户环境中实施数据库应用系统。开发数据库应用系统的任务是:充分利用上述基础知识和技能,设计实现业务要求的数据库,设计终端用户操作数据库数据的应用程序,在用户环境中实施数据库应用系统以供用户完成业务工作,提高用户的生产率。
3.3.4开发数据库应用系统需要考虑的问题开发数据库应用系统和开发其他应用系统一样,需要根据用户的业务需求确定数据库应用系统的运行环境和开发环境等。从技术角度看,通常,开发数据库应用系统需要考虑以下问题。a.确定数据库应用系统的运行环境,选择合适的dbs体系结构
开发数据库应用系统的首要问题是根据业务要求确定数据库应用系统的运行环境,选择合适的dbs体系结构。如果用户只需要在单机上工作,且需要管理的数据量很小,则应选择单用户结构的数据库应用系统;如果用户的业务需要在局域网环境中同时由不同工作人员完成,则应选择c/s结构的数据库应用系统;如果业务需要在远程机器上完成,则可能需要选择b/s结构的数据库应用系统。
选择不同的体系结构将决定后续的数据库应用系统开发问题,如确定系统开发环境等。同时,开发不同体系结构的应用系统,其开发技术复杂度也不一样,实现的技术也有所不同。b.基于数据库应用系统的运行环境和体系结构确定数据库所有数据库都提供了存储和检索信息的能力,但不同数据库提供的附加功能则有所不同,主要表现在以下方面:
不同数据库提供的数据安全保证机制不同。
有的数据库基于文件锁定机制保证多用户并发操作,有的数据库则采用事务并发控制机制,后者比前者效率高很多,占用的资源也相对较大。
不同的数据库描述数据字典(或元数据)的技术不同,提供的数据字典获取和管理技术也不同。
不同数据库对数据完整性的保证措施和程度不同。有的数据库只能保证基本的实体完整性约束(主码)和参照完整性约束,而有的数据库则能够提供较全面的完整性保证技术。
根据不同dbs体系结构中应用程序存取数据库的方式,数据库可分为本地数据库和远程数据库两种类型。集中式数据库应用系统使用本地数据库,而c/s结构的数据库应用系统则需要使用远程数据库服务器。本地数据库的典型代表是paradox、dbase、visualfoxpro和access等。远程数据库服务器的典型代表是oracle、db
2、sybase、mssqlserver等。选择数据库时需要考虑数据库将要存储的数据量、存取数据库的最大用户数和数据库的效率要求这些问题。就存储量而言,本地数据库的存储量比远程数据库服务器小很多。就多用户问题而言,本地数据库也能够支持多用户同时存取数据库,但采用基于文件的锁定技术来控制并发操作;远程数据库服务器是专为多用户并发存取数据库而设计的,采用基于事务的技术控制并发操作,因而提供了更为复杂的多用户支持。就数据处理能力而言,远程数据库服务器的能力比本地数据库强大很多。
同时,选择数据库时还应考虑用户是否有移植数据库的需求。如果需要移植数据库,则开发时需要牺牲部分高效的sql功能以获得最佳的移植方式,例如遵循不同数据库公用的sql集进行sql程序开发等。
第4章系统软件实现
本系统是在按照面对对象,基于组件、数据库开发的,拥有全面的错误捕捉和异常处理机制,因此具有更好的稳定性和可扩展性。
4.1收费计算机和通信机
在收费计算机和通信机之间,我们采用了tcp/ip协议,tcp建立连接时采用客户/服务器模式,主动发起连接的进程叫做客户,被动等待连接建立的进程叫做服务器。在本系统中,收费计算机做为发起连接方,成为客户,通信机为服务器。
4.1.1动态组件
tcp是面向连接的,因而可提供可靠的、按序传送数据的服务,它提供双向的的连接,即全双工。在收费站,由于环境恶劣,可能会网络故障导致tcp连接中断,或由于通信机维护中断连接。为了故障消除后能自动恢复tcp连接,减少监控人员维护量,采用了动态组件技术,自动检测连接的状态,并给监控人员一定提示。
if(client->active==false)
//定义为tclientsocket*client{hw_sendtime++;if(hw_sendtime%20==0)
//每隔一段时间尝试重新连接
{hw_sendtime=0;client->close;deleteclient;client=null;
client=newtclientsocket(this);//新建组件
client->clienttype=ctnonblocking;
client->address=sipaddr;//通信机ip地址
client->port=atoi(sport);//通信机端口号
client->ondisconnect=clientdisconnect;//映射disconnect事件
client->onread=clientread;//映射read事件
client->onerror=clienterror;
//映射错误处理事件
try{client->open;}catch(…){client->close;}}}else{………;}//网络连通,上传数据
通过动态tclientsocket组件的建立,网络连通和中断切换过程对操作人员是隐含的。不会影响车道收费系统的正常运行,网络正常后自动恢复上传数据功能,保证了车道的最大工作效率。
4.1.2tcp报文的构成
应用层的报文传送到运输层,加上tcp的首部,构成了tcp的数据传送单位,称为报文段。在发送时,tcp的报文段作为ip数据报的数据,加上首部后,成为ip数据报。在接收时,ip数据报将其首部去除后交给运输层,得到tcp报文段。再去掉其首部,得到应用层所需的报文。
一个tcp报文问为首部和数据两部分,tcp报文段首部的前20个字节是固定的,后面有4n字节是可有可无的选项,因此tcp首部的最小长度是20字节,加上ip数据报的首部后至少有40个字节。如果tcp的数据段只有一个字节,那么网络的利用率就不会超过1/41。反之,如果tcp报文段非常长,那么在ip层传输时就可能要分解成多个短数据报片,在目的站还要将收到的各个数据报短片装配成原来的tcp报文段,加上出错时还要重传,加大了系统开销。一般认为,数据段应尽可能大些,只要在ip层不再分片就行。tcp缺省的数据段长度是536字节,因此我们在发送tcp报文时,要控制数据长度在这个范围之内,同时包含尽可能多的信息。比如我们在收费流水数据包中包含车道设备状态字节,这样我们就可以在监控室了解设备运行状态。
在本系统中,存在着多种数据包,如收费人员登录、收费流水、收费标准、通信机转移等。为此我们定义了多种数据类型。
我们定义的tcp报文的数据段由两部分构成,报头(tpackethead)和数据(packetdata)。报头是格式是固定的,用packettype来区分不同的包类型。其定义如下:
//packet=packethead+packetdatatypedefstruct{chartag[2];//version0x453bintpacketlen;//包长
charpackettype;//包类型
inttrytimes;//重传次数
charsipaddr[20];//通信机地址
charsret[2];
//标志,ok通信机写入数据库成功、er写入失败
}tpackethead;
这里以收费流水数据为例,说明packetdata结构。
typedefstruct//流水帐数据结构{charlsh[13];//流水帐号
charcxdm[3];//车型代码
intje;//金额
charfjdw[11];//车辆吨位
charskrq[20];//收款日期charsksj[20];//收款时间
chargh[11];//工号
charsky[21];//收款员
charcdh[4];//车道号
charbh[2];//班号
intcg;//冲岗标记
intmf;//免费标记
intyp;//月票标记
charticketno[9];//票据号
chardevicestate;//设备状态
}tlsz;4.1.3数据包的抽象
面对对象程序设计的本质是把数据和处理数据的过程当成一个整体——对象。c++本身就是面对对象的语言,能将各种数学模型封装成对象,因此具有更好的稳定性和扩展性。在本系统的实现过程中,由于存在着多种数据包,为此,我们抽象出数据包的基本共性,形成数据包的基类tpacketbase。
classtpacketbase{private:tpackethead*phead;char*pbuf;//发送缓冲区
public:intsendpdate(void);//发送数据包
intreadpdate(void);//接收数据包
intptypeexcute(intptype);
//按ptype类型执行相关工作};各数据包类以此为基类,实现数据包的发送和接收工作,并扩充了自己的成员变量和成员函数。以流水帐数据包为例。
classtlszpak:publictpacketbase{private:tlszlsz;public:intgetlocaldate(void);//取本地数据
intfillpacket(void);//填充数据报
};
其他类型的数据包,如登录、收费标准等的实现与流水帐数据包类似。
4.2管理工作站
随着internet的普及、城域网和广域网的发展,对监控提出了更多的要求。目前要求建立地区监控中心或者省级远程监控中心,由于各个收费站监控收费系统承包商的开发语言各不相同,基于商业利益的考虑又不会开放源代码,对监控中心的管理带来麻烦。因此,解决问题的最佳途径,就是遵循“开放系统”最大限度保护用户原有硬软件投资的原则,走开放系统结构(osa)。即新上的项目一定要符合osa标准;原有的项目,通过转换或改造接入开放系统。
对于管理工作站的软件,我们建立了基于internet收费管理系统,采用c++builder的activeform技术开发,给本地监控和远程管理带来许多鲜明的特点和优点,其软件模块划分如图3所示。
这种方式的主要优点是。同时可以在一台客户机上完成多种客户机的功能;界面统一,使用和培训相对容易便于实现多个收费站的统一管理;采用internet浏览器操作方式,自动下载最新版本,便于升级。a.收费监视
本系统运行于图像处理工作站上。工作站的显示器配置于操作台上,用于监视和显示车道设备工作状况以及收费员操作情况。系统主要功能如下:1)动态实时显示收费车道状态,其中包括:l收费员姓名l车道号
l天棚信号状态(红色“×”或绿色“↓”)l通行灯状态
l自动栏杆机的状态l收费员判定的车型车类l通信线路正常/故障
2)显示最近抓拍的车道特殊处理图像。
3)接收矩阵的输出,实时显示摄像机采集的一路视频信号。4)任意摄像机间的切换和广场摄像机的变倍变焦操作。5)图像查询打印功能
l随时来查询车道软件所捕获的所有图像。可以输入的条件有:时间如年月日,地点如车道,人员如收费员,或者是以上条件的组合l打印图像。查到所需图像以后,可以打印。b.数据查询1)入口车道过车记录查询l以卡编号为关键字查询
l以入口车道编号为关键字查询l以时间段为关键字查询l以收费员编号为关键字查询l以收费员班次为关键字查询l以卡编号为关键字查询l以车型为关键字查询l以费额为关键字查询
l以上条件之间的相互组合为关键字查询2)出口车道过车记录查询l以卡编号为关键字查询
l以出口车道编号为关键字查询l以时间段为关键字查询l以收费员编号为关键字查询l以收费员班次为关键字查询l以卡编号为关键字查询l以车型为关键字查询l以费额为关键字查询
l以上条件之间的相互组合为关键字查询c.统计报表打印预览及打印模块
包括以下统计报表:
l高速公路收费员班次报表(入口)
l高速公路收费员当班特殊处理明细表(入口)l高速公路收费员当班明细表(入口)
l高速公路收费员当班特殊处理明细表(入口)l高速公路收费员当班明细表(出口)l高速公路收费站班次汇总表(入口)l高速公路收费站班次汇总表(出口)l高速公路收费站通行费收入日报表l高速公路收费站通行费收入月报表l高速公路收费站通行费收入年报表
l高速公路收费站入口车道特殊处理明细日报表l高速公路收费站出口车道特殊处理明细日报表l高速公路收费站交通流量日报表l高速公路收费站交通流量月报表l高速公路收费站交通流量年报表l高速公路收费站交通流量od日报表l高速公路收费站交通流量od月报表l高速公路收费站交通流量od年报表l高速公路收费站交通流量日分析表l高速公路收费站交通流量月分析表l高速公路收费站交通流量年分析表d.系统管理模块l收费员信息编辑l费率信息编辑l收费站信息编辑l车道信息编辑l车型车类信息编辑e.工班清帐管理系统
结帐管理系统由以下模块组成:l管理人员登录模块l收费员工班管理模块l收费员当班数据录入模块l数据查询统计模块1)管理人员登录模块
l系统对管理人员的认证l人员登录名称,口令添加l人员登录名称,口令修改l人员登录名称,口令删除2)收费员工班管理模块l收费员工班分配l收费员工班调整l收费员工班查询
3)收费员当班数据录入模块
录入内容。收费员班次,编号,姓名,通行卡实缴数,通行费实缴数,定额票据金额,废票上缴数1,废票上缴数2,值机员编号,执行录入操作的时间(由服务器时间自动获得),备注等。4)数据查询统计模块
此处内容需要权限查看
会员免费查看随着高速公路路网的不断形成,联网收费系统对计算机网络安全性和可靠性的要求较高,因此对于服务器操作系统和数据库的选用也非常重要。目前服务器最为普遍采用的操作系统有windowsnt、unix、linix等。按照中心和分中心服务器的设计要求和作用,应首要从系统的安全性和稳定性方面人手考虑,建议优先采用以unix为核心的操作系统。同样当前可采用的数据库软件平台众多,如:sqlserver、oracle、sybase、informix和ingres、db2等,各有所长,建议选用的原则应从以下几个方面人手:支持客户/服务器体系结构;支持高性能的并发控制和联机事务处理;支持主要网际互连协义(tcp/ip、appc等)和局域网协议(如tcp/ip、spx/ipx);支持sql标准;考虑安全性、灾难恢复和事务完整性;具有良好的可移植性和可扩展性;支持大量的第三方产品,能满足不断发展中的各类业务要求;支持cluster系统,并能自动实现任务均衡和任务切换;支持smp系统;至少支持powerbuilder、delphi、microsoftvisualc++等raidg开发工具,具备完善的intemet开发工具以及确保系统升级时可移植性等等。
5.4.3冗余独立磁盘阵列raid等安全措施
采用数据集中管理模式,对设备的安全、稳定性方面的要求特别高,应充分考虑服务器的冗余备份问题。建议同时采用双机热备份服务器和磁盘阵列方式,当前很多服务器无须磁盘阵列柜就可构成磁盘阵列,磁盘阵列内置于主机中,如hp6000高档服务器,将数据库系统和应用系统放在阵列磁盘上,这样相当于有了双重硬件防护。确保在硬盘损坏时,磁盘阵列起作用,当主机出现除硬盘外的故障时启动备机,确保收费业务的不间断运行。