全国机动车缉查布控系统 卡口数据上传规范
公安部交通管理科学研究所
二○一三年四月
第一章 概述
卡口数据上传是在卡口系统将卡口车辆通行数据上传机动车缉查布控系统。本规范供有关单位、系统管理员、卡口建设公司参考。
1.1上传信息
一是通行信息文本信息;
二是图片信息,包括特征图片(即号牌图片)与过车图片,其中特征图片必须上传,过车图片可选择上传亦可选择自行保存,在接入通行信息文本信息时上传相应的图片访问路径。
1.2安装部署
安装部署涉及以下几个步骤: 1、安装发布环境的准备
这涉及到服务器和系统软件的准备,需要注意的是卡口数据上传效果不仅与接入服务器有关,还跟数据库服务器、上传服务器等有关,要仔细学习“服务器安装注意要点”。
2、安全接入平台的配置
关键在于确定采用何种网络架构,明确该架构下的配置与服务器准备。
3、接入服务软件安装
1.3接口函数基本说明
序号 函数名称 功能描述 1 InitTrans() 初始化传输连接:包含登录验证与初始化连接参数的功能,因此在调用功能函数前必须先被调用。 2 WriteVehicleInfo() 写车辆信息:用于传输各种经过车辆的基本信息。 QuerySyncTime() 时间同步:查询远程服务器时间,用于设备定时与缉查布控系统数据库服务器时间保持同步。 QueryLimitSpeed() 卡口限速同步:读法定限速值,用于卡口主动获取对应地点的机动车辆限速值。 SaveTzPicture() SaveTzPicStream() SavePicture() SavePicStream() GetLastMessage() 写特征图片:以本地文件的方式上传特征图片(号牌图片) 写特征图片:以二进制流的方式上传特征图片(号牌图片) 写过车图片:以本地文件的方式上传过车图片 写过车图片:以二进制流的方式上传过车图片 获取最新错误信息:获得本次连接最新错误信息,用于调试时上述接口调用报错后找到出错原因。 3 4 5 6 7 8 9
1、初始连接(InitTrans)
客户端在调用任何的功能函数上传任何车道通行数据之前,须先确保正确调用该函数,以完成该车道(含卡口编号、方向类型、车道号)与上传计算机在接入服务器进行注册的过程,连接成功后会在接入服务器保存该注册。
因此,当接入服务器重新初始化后,客户端都必须重新进行初始化。
返回整形值,具体返回值参考接口说明。 需要特别注意:
如果InitTrans()返回值为零与负数,意味着该设备未被注册,在下次注册尝试时,建议至少10分钟的延时,以减轻后端服务竞用的冲突,提高整个接入系统效率。
每个车道都要执行一次InitTrans,才能够正常上传数据,如非必要不要重复执行。
2、写车辆信息(WriteVehicleInfo)
上传车辆通行信息,客户端需要提供可供外部访问的FTP服务(或http服务),并确保参数中的远程图片路径参数正确。路径长度应符合要求。
3、时间同步(querySyncTime)
从数据库服务器获取时间,返回格式如:yyyy-mm-dd hh24:mi:ss。
本函数本身并不会自动对客户端设备的系统时间进行调整, 客户端程序需要主动调用该函数实现对本地设备的时钟调整。
本接口所提供时间未计算传输耗时,仅适合网络传输速率较高要求不高的时钟同步情况。
4、限速同步(QueryLimitSpeed)
卡口各车道的限速值由缉查布控系统支队平台集中管理与维护,客户端可根据卡口编号、方向类型、车道号查询对应的车辆行驶限速值。
本函数并不自动更新卡口设备的限速值,客户端程序应主动通过本函数获取中心的车辆限速,更新到的本地,并启用新速度
进行超速比对。
为了整个系统的鲁棒性考虑,如果函数返回的限速值为0公里(或小于5公里),建议使用本地缺省的限速值。这往往意味着中心库没有准确记录限速值。
5、写特征图片(SaveTzPicture、SaveTzPicStream) 上传特征图片(号牌图片),其中SaveTzPicture图片须在上传软件本机磁盘,SaveTzPicStream适用于上传程序获得图片二进制流数据后直接转发以提高上传效率。
注意上传时应与文本信息分开上传,采用多线程(或多进程)。
6、写过车图片(SavePicture、SavePicStream)
上传过车图片,其中SavePicture图片须在上传软件本机磁盘,SavePicStream适用于上传程序获得图片二进制流数据后直接转发以提高上传效率。
注意:
(1)卡口备案时图片保存位置(参考2.3节),否则上传图片无法查看。
(2)上传时应与文本信息分开上传,采用多线程(或多进程)。
7、获取最新错误信息(GetLastMessage)
获得本次连接最新错误信息,用于人工调试时,在上述接口调用报错后找到出错原因。在程序自动运行时不要调用该函数,
否则将影响上传效率。
1.4接入方式
为适应上传软件不同的开发与运行环境(如不同操作系统),提供3种不同的接入方式,分别为传输控件、共享库、Webservice与Servlet三种,其中传输控件、共享库部署在前端(即上传端),由上传软件调用,Webservice与Servlet接口则部署在后端(即接收端)接入服务器。推荐采用传输控件、共享库,以简化与规范上传软件开发,提高数据上传质量与效率。
1.4.1控件接入方式
在windows操作系统下,上传软件可采用附件所提供的控件(含ActiveX控件和COM组件),按照相关说明接入数据。
控件适用开发环境有:Delphi、Visual C++、.net、Visual Basic等,ActiveX用于有界面的上传软件,对于无界面上传软件,可选择COM组件,两者功能与性能上完全一致。
1.4.2共享库接入方式
上传软件可采取附件所提供的共享库,在linux或者unix操作系统下为.so文件,在windows操作系统下为.dll文件,按照相关说明接入数据。 linux、unix下共享库适用于C++的开
发环境,是个轻量级的接口,特别适合于嵌入式卡口系统采用。便于从前端一体机直接上传数据与图片,减少中间环节。
1.4.3 Webservice及Servlet接入方式
在不方便使用控件、共享库的情况下,可采用Webservice及Servlet接口接入数据;其中Webservice接口接入文本信息,而Servlet接口主要接入图片等文件。
开发环境为java的,比较适合采用这种接入方式。其他能够按照webservice接口生成自动代码的开发工具也可使用。但webservice、servlet接口可能微调,自动生成的代码可能因过于严格而不适用,导致上传软件需要重新编写,因而不推荐该方式。
1.5附属文件说明
本规范部分相关内容适宜单独说明的及卡口接入相关
软件、文件,作为附属文件。
序号 1 2 3 4 文件名 缉查布控系统服务器设置指导 数据接入控件.exe tmriagent.h 前置机安装步骤 用途说明 机动车缉查布控系统相关服务器安装时为须做的设置 上传控件(包括windows共享库)安装程序 DLL共享库头文件 用于跨安全接入平台指导前置机的安装 第二章 接入软件的安装部署
2.1安装发布环境 2.1.1服务器准备
按照《机动车缉查布控系统建设指导意见》要求准备接入服务器。
卡口接入需要接入服务器与文件服务器,可视情况在不影响正常功能前提下同缉查布控系统其他服务器共用,其中文件服务器要求有满足“建设指导意见”中图片保存期限的足够磁盘空间。
当网络架构为严格传统边界时,还需要准备数据库前置机与文件服务前置机(两者可共用)。
2.1.2系统软件准备
系统管理员须为各服务器安装下列软件:
序号 1 2 3 4 服务器 接入服务器 文件服务器 WebSphere(6.1版本以上) 较稳定的Ftp服务器(如FileZilla Server),文件服务与接入服务共用服务器或共享磁盘的,可不必安装。 数据库前置机 文件服务前置机 Oracle数据库(10g R2以上版本) 较稳定的Ftp服务器(如FileZilla Server),文件服务与接入服务共享磁盘的,可不必安装。 要求
2.1.3 服务器安装注意要点
在服务器准备及软件安装时应注意以下几点,将影响系统未来运行的性能,注意这里的服务器并非只有接入服务器,而是包括系统内所有服务器:
(一)服务器基本要求
1、要求采用机架式服务器,至少双电源、双网口,不得采用塔式服务器、台式机等替代;
2、公安网内服务器应采用IP保护的方式,不要安装一机两用软件;
3、操作系统与应用软件(如Oracle、Websphere)应在满足要求的前提下,采用有安装使用经验的成熟版本,不提倡使用新版本;
4、应按照《缉查布控系统服务器设置指导》进行额外配置,已尽可能实现长期无人干预下的自动化运行;
5、开启远程方式(如windows远程桌面),保证重启后能够依然能够远程;
6、各服务器应与统一时钟源进行时钟同步;
7、windows服务器应安装病毒防火墙,病毒库升级到最新版。
(二)缉查布控系统工作数据库
1、数据库服务器应选用所提供服务器中性能最好、磁盘空间足够大的;
2、缉查布控系统数据库不得与其他系统共用服务器; 3、检查服务器内存,超过4G内存的服务器必须安装64位操作系统,并安装64位的Oracle版本;
4、安装Oracle软件须保证,服务器重启后数据库能自动启动,无须人工干预。
(三)应用服务器
1、应用服务器应采用CPU性能较高、内存较多的服务器,服务器磁盘空间视情况决定,如果需要经过内外网交换平台观看图片的,磁盘空间要求较高否则可较低;
2、缉查布控系统应用服务器不得与其他系统共用服务器(视情况可与接入服务器共用);
3、检查服务器内存,超过4G内存的服务器必须安装64位操作系统,并安装64位的Websphere版本;
4、要求安装windows操作系统; 5、打开文件夹共享服务(net share)。
(四)接入服务器
1、接入服务器原则上按照建设指导意见配置,在调试期间可暂时使用性能较低的服务器,需要上传图片的可配置较大的磁盘空间(视需要上传的图片容量决定);
2、接入服务器可与其他系统共用服务器,但须保证websphere中间件能够正常运行;不得在接入服务器上安装开发工具与测试软件;
3、检查服务器内存,超过4G内存的服务器必须安装64位操作系统,并安装64位的Websphere版本;
4、安装Websphere软件须保证服务器重启后Websphere能自动启动,无须人工干预。
(五)前置机
1、前置机包含前置接入服务、前置数据库、前置文件服务,可共用一台服务器;
2、前置机必须采用性能可靠稳定的服务器,不得采用过于陈旧的服务器;使用之前需要进行检测,保证断电后恢复供电,能够自动正常重启;
3、必须保障服务器重启之后,Oracle数据库、Websphere、文件服务均能自动启动;
4、检查服务器内存,超过4G内存的服务器必须安装64位操作系统,并安装64位的Oracle、Websphere版本,尽可能采用64位文件服务版本;
5、打开文件夹共享服务(net share)。
(六)前端上传服务器
1、除了直接部署在嵌入式一体机内的,上传软件须部署在符合“服务器基本要求”的服务器上;不得采用台式机、路面工控机作为上传服务器;
2、前端上传服务器可与其他系统共用服务器,但须保证上传软件能够持续稳定运行;
3、上传软件在服务器重启后能自动运行;
4、服务器有后台保活程序,在上传软件异常退出时能够重启上传软件。
2.2安全接入平台的配置 2.2.1网络架构
根据卡口数据接入公安网的公安内外网接入平台,接入的网络架构分为二类:
一、 公安内网接入
包括由卡口公司或下级平台自行将通行数据接入公安网内再上传的和经批准允许映射方式的的公安网内外网接入(如经批准开放映射方式的严格公安网边界接入平台,使卡口所在网络与公安网之间可以映射等方式进行TCP/IP通讯)。
接入服务部署在公安网内。数据流参见如下结构图:
外网内外网接入平台公安内网文本信息文本信息前端卡口缉查布控系统数据库...图片文本信息接入服务图片前端卡口图片缉查布控系统文件服务器缉查布控系统
二、公安信息通信网边界接入平台
根据《公安信息通信网边界接入平台安全规范(试行)》(公信通[2007]191号,2007年10月)建立的边界接入平台,存在以下两种模式:
(一)公安机关驻地外接入模式
专网服务器部署在公安机关有人值守机房,通过认证(公安数字证书)并安装可信边界安全网关客户端,即可通过驻
地外接入模式与公安网之间进行TCP/IP通讯(只能单向发起通讯)。
该模式下交换的带宽有限(每秒钟几十M,视边界管理部门的分配情况),如接入卡口数少于300套,可采用文本信息与图片信息均进入公安网的模式,否则建议仅将文本信息接入公安网。数据流参见如下结构图:
外网内外网接入平台公安内网文本信息前端卡口图片接入服务文本信息...缉查布控系统数据库文本信息前端卡口图片图片缉查布控系统文件服务器缉查布控系统 注意要点:
1、协调信通部门批准以公安机关驻地外模式进行卡口数据接入:
(1)接入服务器认证;
(2)接入服务器安装可信边界安全网关客户端;
(二)严格数据交换模式
当卡口接入无法采用公安机关驻地外接入模式时,可采用严格的数据交换模式(社会企/事业接入、公安及党政军接入)。
卡口所在网络与公安网之间TCP/IP通讯不可以直接通讯(包括单向连接),仅能进行数据库记录与文件的交换。且交换的速度与带宽较为有限,尤其是文件的交换带宽难以满足卡口图片全部实时进入公安网的需要。
因而选择将文本信息以数据库记录的形式、特征图片以文件的形式交换至公安网内,而过车图片保存在外网,在访问的时候交换至公安网。
部署方式:
接入服务部署在外网,接入文本数据保存在数据库前置机上、图片数据保存在文件服务前置机上,然后通过内外网接入平台分别以数据库表、文件两种同步方式接入内网。两种前置机部署在边界接入平台的前置区,视具体情况可共用服务器。数据流参见如下结构图:
外网安全接入平台公安内网文本信息文本信息前端卡口防火墙...图片数据库前置机缉查布控系统数据库文本信息文本信息接入服务文本信息前端卡口安全接入平台缉查布控系统图片图片防火墙文件服务前置机缉查布控系统文件服务器 注意要点:
1、协调信通部门批准以数据库表的形式进行同步,提供四种同步模式:
(1)外网到公安网同步,采用奉献模式(或称剪切模式); (2)公安网到外网同步;
(3)外网到公安网同表双向同步; (4)公安网到专网同表双向同步。
2、协调信通部门,在前置机上安装Oracle数据库(可与其他系统共用)。
图片图片3、协调信通部门确定,是否可在前置机安装Websphere(可与其他系统共用),是则接入服务可部署在前置机上,减少服务器配置,否则须在外网另外部署接入服务器,且在前置机安装可靠的ftp文件服务或者将交换目录以共享等方式挂载到接入服务器。
4、协调信通部门确定数据库后置机是否可以设为工作数据库服务器,如果不能,须自行开发工作数据库与后置机交换的功能,而且效率与可靠性存在问题,不建议采用该模式。
2.2.2外网图片访问
图片访问架构主要有图片存储位置(公安网还是外网)决定,当图片存储位置为公安网时,图片访问架构较为简单不再赘述,这里主要讲图片保存在外网的情况。
图片保存在外网主要是由于内外网交换的带宽较低,影响图片访问架构的也主要是公安内外网接入平台,分以下三种:
一、公安机关驻地外接入模式
公安机关驻地外接入方式下,内网应用服务器通过部署于外网的接入服务器进行图片访问,结构图如下:
外网内外网接入平台公安内网图片返回图片请求、图片返回外网图片服务器...缉查布控系统应用服务器客户端图片请求、返回图片请求外网图片服务器接入服务缉查布控系统数据库
二、 存在视频边界接入平台
视频边界接入平台根据《公安信息通信网边界接入平台安全规范(试行)——视频接入部分》,2011年1月建立,主要用于由公安网访问外网的图片与视频(单向访问)。 对于网络架构为公安信息通信网边界接入平台,并且图片保存在外网的,可通过视频边界改善图片访问效率。结构图如下:
外网视频边界公安内网外网图片服务器.图片请求、图片返回图片请求、图片返回图片请求、图片返回..缉查布控系统接入服务器缉查布控系统应用服务器客户端外网图片服务器缉查布控系统数据库 该模式显著的不同是内网访问不是直接穿透网络访问
外网图片服务器,而是通过部署于外网的缉查布控系统接入服务器间接访问外网图片服务器。以解决不能将所有前端图片服务器认证与安装可信边界安全网关客户端。
注意须协调视频边界管理部门,对缉查布控系统应用服务器与缉查布控系统接入服务器进行认证并安装可信边界安全网关客户端。
三、 严格数据交换模式
在即不允许映射,又不存在视频边界,而且不允许直接通讯的严格数据交换模式下,可采用以下结构图提供基本的图片访问:
外网安全接入平台公安内网图片请求图片请求、图片返回外网图片服务器防火墙接入服务图片请求外网图片服务器图片安全接入平台缉查布控系统数据库图片防火墙文件服务前置机缉查布控系统文件服务器
注意该结构下不仅图片访问延时较大,而且难以支持大量图片并发访问,应限制图片访问。
2.2.3各网络架构下服务器准备
序号 网络架构 服务器 1 2 3 公安内网接入 公安机关驻地外接入模式 接入服务器(部署于内网) 接入服务器(部署于外网) 严格数据交换模式 接入服务器(部署于外网),前置机(数据库与文件服务前置机,可与接入服务器共用服务器)
2.3接入服务软件安装 2.3.1接入服务安装
接口安装由各平台系统管理员按照缉查布控系统安装说明完成。
按照《缉查布控系统接入服务安装说明》安装接入服务。
图片图片图片请求图片请求...图片数据库前置机缉查布控系统客户端按照《缉查布控系统前置机安装说明》安装前置机(前置机包含接入服务的情况)。
安装完成后在启动服务前,应根据实际情况修改配置“接入点配置”中修改配置。
以系统管理员账户登录机动车缉查布控系统应用服务(web),进入“接入点配置”菜单(卡口管理下),点击弹出如下窗口:
查询到接入点后,双击出现下图,在其中配置相关图片路径(没有接入点的可选择新建):
2.3.2接入点配置详细说明
同一网络中的一组接入服务器及其连接的一个数据库服务器(集群视为一个)组成一个接入点,负责接入该网络中的通行信息及图片。比如,在公安网内的所有接入服务器与工作数据库组成一个接入点,负责接入公安网内的通行信息与图片;在视频专网内的前置机,包括接入服务与前置数据库组成一个接入点,负责接入视频专网内的通行信息与图片。
由于公安网与视频专网可能均有卡口存在,或者卡口位于多个外网,经过多个边界进入公安网。所以接入点可能是多个。
接入点参数分以下三块: 1、接入点基本信息
包括名称、接入服务器IP、接入数据库IP,其中最重要的是接入服务器IP,它是系统获取接入点配置信息的主键,必须配置正确,多接入点时不能采用相同接入服务IP。在跨边界方式时,接入服务器IP为前置机的专网IP,配置错误时,前置机websphere日志里会有输出错误信息“未找到接入IP为:192.168.*.*的接入点,请配置该接入点”,该IP即为应填的接入服务器IP。
2、图片交换参数
图片交换参数用于特征图片或者过车图片以二进制流方式上传至机动车缉查布控系统的情况(具体就是调用SaveTzPicture和SaveTzPicStream函数)。左侧的接入路径与右侧的访问路径一一对应。
以特征图片为例(因为特征图片必须以二进制流方式上传)。须配置特征图片接入路径与特征图片访问路径,特征图片接入路径是接入服务可访问得到的磁盘路径或者ftp路径;特征图片访问路径,则是应用服务所能访问到的磁盘路径或者ftp路径。如果接入服务(rminf)和应用服务(rmweb)部署在两台服务器上,两者可能是不同的。比如,接入位置为接入服务器的
一个磁盘路径,应用服务无法访问到该磁盘路径,则必须在接入服务器安装ftp服务(http的服务比如IIS也可以),指向该接入位置,在特征图片访问位置填写接入服务器的ftp访问路径(含用户名和密码)。
当选择过车图片以二进制流方式保存至机动车缉查布控系统时,过车图片接入路径与访问路径也要配置。
注意,与配置文件方式不同,路径格式与实际访问格式一致,特殊字符不需要像配置文件里加“\\”处理。
最大图片并发访问数、单图片服务器最大并发访问数,主要为避免图片保存在前端,传路径到缉查布控系统,而前端图片服务对并发访问能力非常有限的情况。
3、图片多通道交换参数
过车图片一般只上传路径,在页面访问图片时由缉查布控系统从前端获取图片展示在页面上。跨公安网安全接入平台边界时,则是将图片请求交换到外网,由部署于前置机的接入服务从前端访问图片写入交换目录,再由安全接入平台交换至内网。
在大量图片并发访问时,单个交换通道交换能力可能不足,为此最高设置5个交换通道(经过部分边界测试,超过5个通道,交换能力不再提高),以提高图片交换效率。
左侧的交换路径与右侧的输出路径一一对应,交换路径是指前置机的写入路径,而输出路径为后置机的访问路径。
以磁盘路径为例,交换路径为接入服务安装的前置机的磁盘目录,输出路径则为缉查布控系统应用服务器的磁盘目录。在交换路径与输出路径之间,由安全接入平台配置文件外到内同步。
路径设置与图片交换参数中一致。
注意输出路径所在磁盘应当有足够磁盘空间,满足长期图片访问暂存图片的需要。为了提高下次图片访问效率和记录作用,交换至内网的图片是不删除的,长期使用会消耗大量磁盘。可在磁盘空间不足时,人工删除输出目录中的历史目录。
2.4卡口接入工作流程
卡口接入由卡口建设商或维护单位完成,主要工作为采集卡口相关信息,确定网络架构与图片存储方案,开发与调试上传软件等。系统管理员配合与监督接入工作,完成检查接入质量、保存相关资料等工作。流程如下:
(一)设计规划 1、确定网络架构
含服务器的安装位置、数据上传的位置等。
该项工作由系统管理员、卡口建设商或维护单位提出方案,咨询信通部门后,由主管领导决定。
2、确定过车图片存储位置
该工作须经系统管理员同意,选择自行保存的,应建立图片服务器(如公安网内能访问,可由前端卡口服务器充当图片服务器),保证所在网络(公安网或专网)内能够通过FTP或者SERVLET方式访问到通行数据对应图片(将路径输入公安网电脑浏览器地址栏,必须能够看到图片),并在上传通行数据时,分别上传图片路径及图片名。
3、确定接入方式
根据卡口情况确定接入方式,向系统管理员获取对应的控件、共享库或者Webservice及SERVLET接入方式访问地址。文件及安装方式参考3.1。
(二)安装部署接入服务
按照第二章的相关要求,安装部署接入服务与前置机。
(三)卡口备案、参数配置 采集卡口相关信息进行备案:
包括卡口名称(简称)、卡口类型、路段类型、卡口性质、行政区划、道路代码、位置(路口号、道路公里数、米数、经度、维度)、方向(上行别名、下行别名等)、管理部门、使用部门、是否具备特征图片(即号牌图片)等,具体参考缉查布控系统(Web)卡口备案界面:
注意其中的接入位置与过车图片位置:
序号 接入位置 说明 1 2 公安网 专网 公安内外网接入不采用传统严格边界的所有其他模式。即过车图片交换至公安网内或在公安网内可以通过链接直接访问的。 公安内外网接入采用传统严格边界(参考网络架构第二大类)模式。即过车图片不交换至公安网且在公安网内无法通过链接直接访问的
序号 过车图片位置 说明 1 2 缉查布控图片服务器 非缉查布控图片服务器 过车图片上传至缉查布控系统图片服务器,由缉查布控系统管理。 过车图片不上传,写车辆信息时提供访问路径,由卡口系统自行管理。
向缉查布控平台系统管理员提交卡口相关信息及过车图片存储位置,进行卡口备案与接口备案,通过审批后,由系统管理员提供以下四类数据:
1、卡口每个车道数据:
序号 1 2 名称 说明 卡口编号 方向类型 12位字符串 1-上行/进城/环线顺时针;2-下行/出城/环线逆时针。与卡口中的上行、下行方向别名保持对应性。 车道号 3 该车道在道路中的车道顺序号码。在顺道路方向时,从道路中间隔离带或道路中间划定界开始,从左到右依次为每个行车道所编排的正整数顺序号。在通行信息上传过程中,车道字段采集的车道号的值。 2、接口备案信息:
序号 1 2 3 名称 说明 系统类别 接口ID 接口序列号 缉查布控系统通行信息接入为62 形如62C01 3、接口地址:
接口地址即接入服务器ip地址与端口号,格式形如10.2.44.178:9080。注意透过映射方式(如网闸)接入的,该地址应为网闸在外网映射的IP地址及端口号。
4、缉查布控系统Web临时访问方式
包括地址(形如:http://ip:port/rmweb)、用户名、密码。系统管理员应当注意,该用户仅应有机动车轨迹精确查询本地查询的权限。并在调试结束后收回授权(修改密码)。
(四)数据上传软件开发、测试 1、功能要求
安排技术人员开发上传软件,根据第三章相关说明进行开发与调试。上传软件除基本功能外,应具有如下要求:
(1)应提供操作手册,尽可能提供源代码,由系统管理员备份。
(2)卡口编号、方向类型、车道号等信息应当可以使用配置文件进行配置,并在操作手册中说明。
(3)断网后或接入服务重启情况下,上传软件应有自动恢复重传功能及漏传通行数据补传功能。
(4)有保活程序,具备自身工作监测和软件异常退出后自动重启功能。
(5)上传服务器重启后,软件具备自动重启功能。 (6)提供控件(或共享库)更新操作方法,并在操作手册中有详细说明。
包括如何暂时关闭上传软件,如何替换控件或共享库,如何重新恢复上传软件。
2、数据与软件质量检查 接入完成须经系统管理员检查: (1)检查接入数据是否正确
比如是否缺项、代码类数据(如号牌种类)能否正确翻译、相关字段是否匹配、图片链接是否可访问、卡口各车道是否均有数据上传等。
(2)检查上传软件功能要求是否满足 (3)检查数据一致性
选定一个时间段,检查卡口接入数据量与前端卡口数据量一致性。
(4)检查数据上传质量 根据附录接入数据质量指标。 (5)检查上传软件运行稳定性 (6)检查移交的文档与资料
所有文档、资料应当与实际相符。如按照操作手册可完成所有相关基本操作,且清晰明了。
3、软件安装、培训与移交
安装正式发布版本上传软件,培训相关系统管理员及运维人员,移交操作手册、安装包等资料。必要的情况下,应移交上传软件的源代码,并编译检查通过。
第三章 接口功能说明
3.1接口使用 3.1.1传输控件
1、安装
安装文件:HTAgent.exe,在任何win98以上版本windows系统下双击即可安装。
安装目录:缺省为C:\\Program Files\\Tmri\\HTAgent,可以修改为任何目录,不影响使用。
安装后控件文件名为:HTAgent.dll。
2、调用说明
ActiveX控件注册的类名为CHTAgentObj,CLSID为HTAgent.HTAgentObj。
COM组件注册的类名为CHTAgentComObj,CLSID为HTAgent.HTAgentComObj。
客户端(即传输程序)如有界面,可以在界面引入ActiveX控件,如没有界面或不方便在界面上放置控件,可直接使用COM组件,两者完全同质。
3.1.2共享库
动态库libTmriAgent.so;头文件名为TmriAgent.h。 适用范围:前端操作系统为linux或unix,且开发环境为C++的。
安装目录:将共享库文件拷贝到/usr/lib/目录下;头文件添加到C++工程目录中。
注意事项:上传hphm等含有中文的参数,须自行转码为utf-8,否则中文可能丢失。
动态库HTAgent.dll(即为传输控件的安装后的dll文件);头文件名为TmriAgent.h。
适用范围:前端操作系统为windows,且开发环境为C++的。
安装目录:将共享库文件拷贝到/windows/system32/目录下;头文件添加到C++工程目录中。
3.1.3 Webservice及Servlet接入方式
Webservice引用形如:
http://ip:port/rminf/services/Trans?wsdl。 图片写入地址:
http://ip:port/rminf/uploadFile.tfc。
3.2接口函数 3.2.1传输控件
1、初始连接(InitTrans)
LONG InitTrans(BSTR kkbh, BSTR fxlx,LONG cdh, BSTR info,BSTR hostport)
2、写车辆信息(WriteVehicleInfo)
LONG WriteVehicleInfo(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR hphm,BSTR hpzl,BSTR gcsj,LONG clsd,LONG clxs,BSTR wfdm,LONG cwkc,BSTR hpys,BSTR cllx,BSTR fzhpzl,BSTR fzhphm,BSTR fzhpys,BSTR clpp,BSTR clwx,BSTR csys,BSTR tplj,BSTR tp1,BSTR tp2,BSTR tp3,BSTR tztp)
3、时间同步(querySyncTime)
BSTR QuerySyncTime()
4、限速同步(QueryLimitSpeed)
LONG QueryLimitSpeed(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR cllx)
5、写特征图片 (1)SaveTzPicture
LONG SaveTzPicture(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR hphm,BSTR gcsj,BSTR file)
(2)SaveTzPicStream
LONG SaveTzPicStream(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR hphm,BSTR gcsj,BYTE * pbuf,LONG size)
6、写过车图片 (1)SavePicture
LONG SavePicture(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR hphm,BSTR gcsj,LONG tpxh,BSTR file)
(2)SavePicStream
LONG SavePicStream(BSTR kkbh,BSTR fxlx,LONG cdh,BSTR hphm,BSTR gcsj, LONG tpxh,BYTE * pbuf,LONG size)
7、获取最新错误信息(GetLastMessage)
BSTR GetLastMessage()
3.2.2共享库
1、初始连接(InitTrans)
long InitTrans(const char *kkbh,const char *fxlx,long cdh,const char *info,const char *hostport)
2、写车辆信息(WriteVehicleInfo)
long WriteVehicleInfo(const char *kkbh,const char *fxlx,long cdh,const char *hphm,const char *hpzl,const char *gcsj,long clsd,long clxs,const char *wfdm,long cwkc,const char *hpys,const char *cllx,const char *fzhpzl,const char *fzhphm,const char *fzhpys,const char *clpp,const char *clwx,const char *csys,const char *tplj,const char *tp1,const char *tp2,const char *tp3,const char *tztp)
3、时间同步(querySyncTime)
const char *QuerySyncTime()
4、限速同步(QueryLimitSpeed)
long QueryLimitSpeed(const char *kkbh,const char *fxlx,long cdh,const char *cllx)
5、写特征图片 (1)SaveTzPicture
long SaveTzPicture(const char *kkbh,const char *fxlx,long cdh,const char *hphm,const char *gcsj,const char *file)
(2)SaveTzPicStream
long SaveTzPicture(const char *kkbh,const char *fxlx,long cdh,const char *hphm,const char *gcsj,const void * pbuf,long size)
6、写过车图片 (1)SavePicture
long SavePicture(const char *kkbh,const char *fxlx,long cdh,const char *hphm,const char *gcsj,long tpxh,const char *file)
(2)SavePicStream
long SavePicture(const char *kkbh,const char *fxlx,long cdh,const char *hphm,const char *gcsj,long tpxh,const void * pbuf,long size)
7、获取最新错误信息(GetLastMessage)
const char *GetLastMessage()
3.2.3 Webservice及Servlet接入
1、初始连接(InitTrans)
long initTrans(String kkbh, String fxlx,long cdh,String info)
2、写车辆信息(WriteVehicleInfo)
long writeVehicleInfo(String kkbh,String fxlx,long cdh, String
hphm,String hpzl, String gcsj, long clsd, long clxs,String wfdm, long cwkc, String hpys,String cllx,String fzhpzl,String fzhphm,String fzhpys,String clpp,String clwx,String csys,String tplj,String tp1, String tp2, String tp3, String tztp)
3、时间同步(querySyncTime)
String querySyncTime()
4、限速同步(QueryLimitSpeed)
long queryLimitSpeed(String kkbh,String fxlx,long cdh,String cllx)
5、写特征图片(SaveTzPicture)
http://ip:port/rminf/uploadFile.tfc?method=saveTzPicture&kkbh=&fxlx=&cdh=&hphm=&gcsj=
6、写过车图片(SavePicture)
http://ip:port/rminf/uploadFile.tfc?method=savePicture&kkbh=&fxlx=&cdh=&hphm=&gcsj=&tpxh=
7、获取最新错误信息(GetLastMessage)
String getLastMessage ()
3.3参数返回值说明
控件、共享库、Webservice接口各函数的参数与返回值基本一致。
但Servlet接口(图片接口)形式有所不同,由下一节独立说明。
1、初始连接(InitTrans)
参数说明
序号 1 2 参数名称 kkbh fxlx 参数说明 卡口编号 方向类型 备注信息 不能为空(12位编号) 不能为空(1-上行/进城/环线顺时针、2-下行/出城/环线逆时针) 不能为空(该车道在道路中的车道顺序号码。在顺道路方向时,从道路中间隔离带或道路中间划3 cdh 车道号 定界开始,从左到右依次为每个行车道所编排的正整数顺序号。在通行信息上传过程中,车道字段采集的车道号的值) 以xml格式定义的信息包(格式见附录“辅助信息包”),含接口备案信息,接口序列号(授权码)须在“接口管理”中申请与查询,注意大小写敏感 形如“10.2.44.187:9080” 4 info 辅助信息 5 hostport 地址 返回值说明
序号 1 2 返回值 零与负数 正数 说明 错误代码(具体信息参考附录错误代码表) 执行成功 2、写车辆信息(WriteVehicleInfo)
参数说明
序号 参数名称 参数说明 备注信息 1 2 3 4 kkbh fxlx cdh hphm 卡口编号 方向类型 车道号 号牌号码 不能为空(同上) 不能为空(同上) 不能为空(同上) 无牌、未识别、无法识别均用半角“-”表示,其中无号牌要注意hpzl填41 参考GA24.7(如01-大型汽车,02-小型汽车,25-农机号牌,41-无号牌,42-假号牌,99-其他号牌),不能为空; 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-09-11 11:07:23”,不能为空 最长3位,单位:公里/小时 最长3位,单位:公里/小时 参考GA408.1 最长5位,以厘米为单位 0-白色,1-黄色,2-蓝色,3-黑色,4-绿色,9-其它颜色,不能为空; 参考GA24.4(K11-大型普通客车,K21-中型普通客车,K31-小型普通客车,K33-轿车,H11-重型普通客车,H21-中型普通客车,M22-轻便二轮摩托车) 5 hpzl 号牌种类 6 7 8 9 10 11 gcsj clsd clxs wfdm cwkc hpys 过车时间 车辆速度 车辆限速 违章行为编码 车外廓长 号牌颜色 12 cllx 车辆类型 13 fzhpzl 14 辅助号牌种类 辅助号牌号码 辅助号牌颜色 车辆品牌 车辆外形 车身颜色 参考GA24.7 无牌、未识别、无法识别均用半角“-”表示,其中无号牌要注意hpzl填41 0-白色,1-黄色,2-蓝色,3-黑色,4-绿色,9-其它颜色 参考GA24.8(A-白,B-灰,C-黄,D-粉,E-红,F-紫,G-绿,H-蓝,I-棕,J-黑,Z-其他) 图片访问路径中固定部分(长度限定不能超过100个字节),如:FTP访问路径:ftp://user:666@192.168.1.1/001.jpg,其中图片路径为ftp://user:666@192.168.1.1/。 图片访问路径中变化的部分(长度限定不能超过60个字节),如:FTP访问路径:ftp://user:666@192.168.1.1/001.jpg,其中图片名称为001.jpg。 fzhphm fzhpys clpp clwx csys 15 16 17 18 19 tplj 通行图片路径 20 tp1 通行图片1 21 tp2 通行图片2 22 23 tp3 tztp 通行图片3 特征图片 扩展预留,为空 返回值说明
序号 1 2 返回值 零与负数 正数 说明 错误代码(具体信息参考附录错误代码表) 执行成功及数值(违法代码) 返回值说明
序号 1 2 返回值 说明 错误代码(具体信息参考附录错误代码表) 执行成功及数值(违法代码) 零与负数 正数 3、时间同步(querySyncTime)
返回值说明
序号 1 2 返回值 通讯错误 说明 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-10-10 11:07:00” 空 日期字符串
4、限速同步(QueryLimitSpeed)
参数说明
序号 1 2 3 4 参数名称 kkbh fxlx cdh cllx 参数说明 卡口编号 方向类型 车道号 车辆类型 不能为空 不能为空 不能为空 备注信息 0-大车,1-小车,2-其他车型 返回值说明
序号 1 2 返回值 说明 错误代码(具体信息参考附录错误代码表) 执行成功及数值(限速值) 零与负数 正数
5、写特征图片
写特征图片接口的参数,传输控件与共享库一致,但HTTP
接入方式不一致。
参数说明
(1) SaveTzPicture(传输控件与共享库) 序号 1 2 3 4 5 参数名称 kkbh fxlx cdh hphm gcsj file 参数说明 卡口编号 方向类型 车道号 号牌号码 过车时间 图片路径 不能为空(同上) 不能为空(同上) 不能为空(同上) 备注信息 无牌、未识别、无法识别均用半角“-”表示 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-10-10 11:07:00”,不能为空 须为本地磁盘路径(“\\”必须写为“\\\\”,如:D:\\\\Img\\\\1.jpg) 6 (2) SaveTzPicStream(传输控件与共享库) 序号 1 2 3 4 5 6 7 参数名称 kkbh fxlx cdh hphm gcsj pbuf size 参数说明 卡口编号 方向类型 车道号 号牌号码 过车时间 图片流 长度 不能为空(同上) 不能为空(同上) 不能为空(同上) 备注信息 无牌、未识别、无法识别均用半角“-”表示 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-10-10 11:07:00”,不能为空 图片二进制流指针 图片二进制流长度 返回值说明
序号 1 2 返回值 说明 错误代码(具体信息参考附录错误代码表) 执行成功 零与负数 正数
6、写过车图片
写过车图片接口,传输控件与共享库一致,但HTTP接入方式不一致。
参数说明
(1) SavePicture(传输控件与共享库)
序号 1 2 3 4 5 6 7 参数名称 kkbh fxlx cdh hphm gcsj tpxh file 参数说明 卡口编号 方向类型 车道号 号牌号码 过车时间 图片序号 图片路径 不能为空(同上) 不能为空(同上) 不能为空(同上) 备注信息 无牌、未识别、无法识别均用半角“-”表示 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-10-10 11:07:00”,不能为空 1-图片1,2-图片2,3-图片3 须为本地磁盘路径(“\\”必须写为“\\\\”,如:D:\\\\Img\\\\1.jpg) (2) SavePicStream(传输控件与共享库) 序号 1 2 3 4 5 6 7 8 参数名称 kkbh fxlx cdh hphm gcsj tpxh pbuf size 参数说明 卡口编号 方向类型 车道号 号牌号码 过车时间 图片序号 图片流 长度 不能为空(同上) 不能为空(同上) 不能为空(同上) 备注信息 无牌、未识别、无法识别均用半角“-”表示 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形如“2003-10-10 11:07:00”,不能为空 1-图片1,2-图片2,3-图片3 图片二进制流指针 图片二进制流长度 返回值说明
序号 1 2 返回值 说明 错误代码(具体信息参考附录错误代码表) 执行成功 零与负数 正数
3.4 Servlet接口
Servlet
接口主要用于图片上传,其图片数据为二进制输入
流,而其返回值是Response中封装的xml数据包,格式如下:
0
其中code的值即为返回值。
3.4.1特征图片写入接口
http://ip:port/rminf/uploadFile.tfc?method=saveTzPicture&kkbh=&fxlx=&cdh=&hphm=&gcsj=;
参数说明
序号 1 2 3 4 参数名称 参数说明 卡口编号 方向类型 车道号 号牌号码 不能为空(同上) 不能为空(同上) 不能为空(同上) 说明信息 kkbh fxlx cdh hphm 无牌、未识别、无法识别均用半角“-”表示;上传时经过UTF-8编码 日期格式字符串“yyyy-mm-dd hh24:mi:ss”,形5 gcsj 过车时间 如“2003-10-10 11:07:00”,不能为空,须经过UTF-8编码
java调用示例代码
public void doUploadFile() throws Exception {
String file= \"E:/ 0441600040451102_粤B567FH_20120724102334.jpg\"; String kkbh = \"430600100063\"; String fxlx = \"2\"; long cdh = 1;
String hphm = \"粤B567FH\";
String gcsj = \"2012-09-11 11:07:23\"; hphm = URLEncoder.encode(hphm, \"UTF-8\"); gcsj = URLEncoder.encode(gcsj, \"UTF-8\");
ByteArrayOutputStream bos = new ByteArrayOutputStream(); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); int len ;
while( (len = bis.read()) > -1 ){bos.write(len);} byte fileData [] = bos.toByteArray();
int tpsize1=fileData.length; String
urlstr=\"http://10.2.44.187:9080/rminf/uploadFile.tfc?method=saveTzPicture&kkbh=\"+kkbh; urlstr+= \"&fxlx=\"+fxlx; urlstr+= \"&cdh=\"+cdh; urlstr+= \"&hphm=\"+hphm;
urlstr+= \"&gcsj=\"+gcsj; URL url = new URL(urlstr);
huc.setRequestProperty(\"Content-Type\ }
huc.setDoOutput(true); huc.setDoInput(true);
huc.setRequestMethod(\"POST\"); huc.setConnectTimeout(500000); pw.write(fileData); pw.flush(); pw.close();
BufferedReader br=new BufferedReader(new String content=\"\"; while(line!=null) {
content=content+line; line=br.readLine(); }
br.close();
OutputStream pw=huc.getOutputStream();
encoded;charset=utf-8\");
HttpURLConnection huc=(HttpURLConnection)url.openConnection(); huc.setRequestProperty(\"content-type\
InputStreamReader(huc.getInputStream())); String line=br.readLine();
返回值说明
序号 1 2 返回类型 说明 错误代码(具体信息参考附录错误代码表) 执行成功 零与负数 正数
3.4.2 过车图片写入接口
http://ip:port/rminf/uploadFile.tfc?method=savePicture&kkbh=&fxlx=&cdh=&hphm=&gcsj=&tpxh=;
参数说明
序号 1 2 3 参数名称 kkbh fxlx cdh 参数说明 卡口编号 方向类型 车道号 备注信息 不能为空(同上) 不能为空(同上) 不能为空(同上) 无牌用半角“-”表示,遮挡号牌用半角“?”4 hphm 号牌号码 表示,未识别号牌用空表示;上传时经过UTF-8编码 日期格式字符串“yyyy-mm-dd 5 gcsj tpxh 过车时间 图片序号 hh24:mi:ss”,形如“2003-10-10 11:07:00”,经过UTF-8编码 1、2、3对应图片1、图片2、图片3 6
java调用示例代码
public void doUploadFile() throws Exception {
String file= \"E:/ 1441600040451102_粤B567FH_20120724102334.jpg\"; String kkbh = \"430600100063\"; String fxlx = \"2\"; long cdh = 1;
String hphm = \"粤B567FH\";
String gcsj = \"2012-09-11 11:07:23\"; hphm = URLEncoder.encode(hphm, \"UTF-8\"); gcsj = URLEncoder.encode(gcsj, \"UTF-8\");
ByteArrayOutputStream bos = new ByteArrayOutputStream(); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); int len ;
while( (len = bis.read()) > -1 ){bos.write(len);} byte fileData [] = bos.toByteArray(); int tpsize1=fileData.length; String
urlstr=\"http://10.2.44.187:9080/rminf/uploadFile.tfc?method=savePicture&kkbh=\"+kkbh;
urlstr+= \"&fxlx=\"+fxlx; urlstr+= \"&cdh=\"+cdh; urlstr+= \"&hphm=\"+hphm; urlstr+= \"&gcsj=\"+gcsj; urlstr+= \"&tpxh=1\";
URL url = new URL(urlstr);
huc.setRequestProperty(\"Content-Type\encoded;charset=utf-8\");
HttpURLConnection huc=(HttpURLConnection)url.openConnection(); huc.setRequestProperty(\"content-type\
}
huc.setDoOutput(true); huc.setDoInput(true);
huc.setRequestMethod(\"POST\"); huc.setConnectTimeout(500000); pw.write(fileData); pw.flush(); pw.close();
BufferedReader br=new BufferedReader(new String content=\"\"; while(line!=null) {
content=content+line; line=br.readLine(); }
br.close();
OutputStream pw=huc.getOutputStream();
InputStreamReader(huc.getInputStream())); String line=br.readLine();
返回值说明
序号 1 2 返回类型 说明 错误代码(具体信息参考附录错误代码表) 执行成功 零与负数 正数
3.5 代码示例 3.5.1传输控件
以visual c++调用为例,Delphi等开发工具的调用与此类似:
上传文本
void CActivexTestDlg::OnBnClickedButton1() {
string m_kkbh = \"430600100063\"; string m_fxlx = \"2\";
LONG m_cdh = 1; string info =
\"
string m_hostport = \"10.2.44.68:9080\";
string hphm=\"沪JH4194\"; string hpzl=\"02\";
string gcsj=\"2012-10-15 11:17:34\"; LONG clsd=32;
string tplj = \"ftp://ftpuser:666@10.2.44.67/pic/\"; string tp1=\"h2.jpg\";
LONG ret = m_agent.InitTrans(m_kkbh,m_fxlx,m_cdh, info.c_str(),m_hostport);
while (ret>0) { ret =
m_agent.WriteVehicleInfo(m_kkbh,m_fxlx,m_cdh,hphm.c_str(),hpzl.c_str(),gcsj.c_str(),clsd, 80, \"1\
\"2\””,””, \"\"); } }
上传图片
void CActivexTestDlg::OnBnClickedButton2() {
string m_kkbh = \"430600100063\"; string m_fxlx = \"2\";
LONG m_cdh = 1; string info =
\"
string tplj = \"ftp://ftpuser:666@10.2.44.67/pic/\"; string tp1=\"h2.jpg\";
string file = \"E:\\\ztp\\\\1.jpg\";
LONG ret = m_agent.InitTrans(m_kkbh,m_fxlx,m_cdh, info.c_str(),m_hostport);
while (ret>0) { ret =
string hphm=\"沪JH4194\"; string hpzl=\"02\";
string gcsj=\"2012-10-15 11:17:34\"; LONG clsd=32;
string m_hostport = \"10.2.44.68:9080\";
m_agent.SaveTzPicture(m_kkbh,m_fxlx,m_cdh,hphm.c_str(),gcsj.c_str(),file.c_str()); } }
3.5.2共享库
#include using namespace std; 上传文本 int main() { TmriAgent agent; string kkbh = \"430600100063\"; string fxlx = \"2\"; long cdh = 1; string info = \" agent.InitTrans(kkbh.c_str(),fxlx.c_str(),cdh,info.c_str(),hostport.c_str()); cout << nRet << endl; string hphm = \"苏B23456\"; hphm = urlencode(hphm,”utf-8”); string gcsj=\"2012-10-15 11:17:34\"; string tplj = \"ftp://ftpuser:666@10.2.44.67/pic/\"; string tp1=\"h2.jpg\"; long clsd=32; string hpzl = \"02\"; if (nRet<=0) return -1; while (nRet >0) { nRet = agent.WriteVehicleInfo(kkbh.c_str(),fxlx.c_str(),cdh,hphm.c_str(),hpzl.c_str(),gcsj.c_str(),clsd, 80, \"1\ \"2\\"\ cout << nRet << endl; } return 0; } 上传图片 int main() { TmriAgent agent; string kkbh = \"430600100063\"; string fxlx = \"2\"; long cdh = 1; string info = \" agent.InitTrans(kkbh.c_str(),fxlx.c_str(),cdh,info.c_str(),hostport.c_str()); cout << nRet << endl; string hphm = \"苏B23456\"; hphm = urlencode(hphm,”utf-8”); string gcsj=\"2012-10-15 11:17:34\"; string tplj = \"ftp://ftpuser:666@10.2.44.67/pic/\"; string tp1=\"h2.jpg\"; long clsd=32; string hpzl = \"02\"; if (nRet<=0) return -1; string file = \"/home/yzm/2.jpg\"; while (nRet >0) { nRet = agent.SaveTzPicture(kkbh.c_str(),fxlx.c_str(),cdh,hphm.c_str(),gcsj.c_str(),file.c_str(),hostport.c_str()); cout << nRet << endl; } return 0; } 第四章 常见问题分析 4.1常见问题分析与处理 4.1.1卡口备案错误 1、问题 第一次进行卡口备案时选择道路、管理部门有可能出现报错,这通常是系统内管理部门、道路代码等基础代码未能从综合应用平台同步过来的原因。 2、解决方案 由系统管理员根据缉查布控系统与综合应用平台同步配置的相关说明,排查解决问题;根据文档无法解决的,再向无锡所寻求帮助。 4.1.2卡口数据上传中断 卡口数据上传中断原因分上传端与接入端两种: 一、前端上传软件问题 (一)前端上传软件部署服务器问题 1、问题 (1)有些卡口公司没有采用托管在机房的服务器 而是采用台式机、工控机上传,并且这些电脑有其他用途;经常因掉电、误操作、其他软件干扰甚至人为关闭等原因造成上传中断。 如高速卡口上传软件部署在高速岗亭值班电脑上,高速民警、协警操作电脑时常会异常关闭上传软件。 (2)上传服务器环境异常复杂 上传服务器通常为卡口系统中已有服务器,为大量其他服务共用。安装了各种软件,如数据库软件、文件服务软件、其他上传软件甚至临时安装的开发工具、测试软件(开发中的软件)等等,卡口公司软件开发人员经常操作与测试。 2、解决方案 提出上传软件部署服务器要求: (1)部署上传软件的服务器必须在专用机房中; (2)部署上传软件的服务器不得安装开发调试环境,不得运行测试软件,临时调试需要的,调试完须恢复原状。 (二)前端上传软件保活机制问题 1、问题 上传软件并非大规模应用的商业软件,可靠性相对较低,运行中因各种原因而中断运行的情况很多,这就需要一定的保活机制: (1)系统重启后上传软件须自动启动 机房内服务器相对稳定,但也不能保证完全不出现停电、检修维护、假期关闭部分服务器甚至因其他系统需要重 启等情况出现,但部分上传软件没有在服务器操作系统重启后自动启动的功能,导致卡口数据上传停止。 (2)系统重启后未登录 目前大部分windows下上传软件为CS架构有窗口的软件,而非windows后台服务软件,类似缉查布控系统的预警中心,必须在登录桌面后才能启动运行。但windows操作系统设置密码后重启后并不会自动登录,须人工输入密码登录。一般机房管理人员重启服务器后并不会做这个事情。须有专门系统维护人员发现和处理这个问题。 (3)上传软件异常退出后没有自动启动 为保障上传软件自动化运行,往往在后台运行一个保活程序,在上传软件异常退出时,重新启动上传软件。但不少卡口公司,对于上传软件的可靠性过于自信,并没有这种保活程序。 (4)上传软件运行中卡死 上传软件一般开发仓促、简单,运行环境又复杂,质量往往难以保障,运行时又依赖于数据库、前端识别软件等外部环境,当外部环境出现异常时,上传软件出现卡死现象。在没有人工干预情况下,往往不能自动恢复运行。 比如前端数据库(卡口公司数据库)无法连接时,上传软件中读写数据的线程卡死,但上传软件本身并未退出。该 情况下,即便数据库恢复,上传软件也无法恢复正常。须人工关闭上传软件后,启动上传软件。 2、解决方案 上传软件保活问题,涉及两个问题,一个是软件开发部署问题,一个是维护问题。 (1)上传软件测试与检查 系统管理员须在上传软件开发部署时履行测试与检查流程。 (2)纳入日常维护要求 其实卡口系统的软件都有保活机制,只因卡口数据上传软件没有强制考核,不愿付出额外工作量或担心影响卡口系统其他软件正常运行,未加入保活机制更不用说纳入维护了。只要将卡口上传软件保活纳入卡口系统日常维护要求中,加强考核才能完全解决这一问题。 (三)卡口系统自身数据采集与传输问题 1、问题 (1)数据采集问题 卡口公司众多,软件质量参差不齐,前端硬件配置各异,有些卡口的故障率本身就比较高。比如某市36套市际卡口需要专人每天维护,每天都有几套卡口中断运行,需要人工恢 复。如果当地没有良好的维护与考核机制,过一段时间,大部分卡口将无法正常运行或上传数据。 (2)数据传输问题 部分地市选择了由卡口公司将卡口数据通过安全接入平台接入公安网。如某些地市由于选择将所有卡口图片交换至公安网内,造成边界的堵塞进而导致传输程序本身的异常。 2、解决方案 这需要各地建立良好的维护机制,加强对卡口公司和维护公司的考核与约束,改造不合理的传输机制。 二、接入服务端问题 (一)服务器问题 1、问题 (1)服务器意外关闭错 服务器意外关闭,自动重启后出现关闭事件跟踪程序界面。Oracle、Websphere等不能自动启动,须人工确认,如下图: (2)服务器当机或失连 数据库服务器出现过当机或失连。 2、解决方案 (1)禁用windows操作系统的“关闭事件跟踪程序”: 开始->运行->gpedit.msc->计算机配置->管理模板->系统(记住,是点击“系统”,不要展开它)->右边就能看到显示“关闭事件跟踪程序”和激活“关闭事件跟踪程序系统状态数据”,双击后选择禁用。 (2)将缉查布控系统服务器纳入日常维护,保证正常运行。 (二)websphere问题 1、问题 (1)操作系统重启后websphere无法自动重启 数据库和websphere一般要求各地自行安装,部分websphere没有安装成系统重启后自动启动的模式,或者因为安装环境因素导致websphere启动不成功不完整(部分必须的websphere后台服务未启动,须手工启动)。 尤其前置的接入服务器websphere不能自动重启成功,由于前置的接入服务器托管在公安局又无法远程登录,导致恢复相当困难。 (2)websphere序列号过期 websphere安装版本非正式版,试用期满后无法使用。 (3)websphere无法启动成功 卸载websphere后重装可解决。 (4)各种未知websphere错误导致websphere非正常运行 如的报“密钥库无法装入”错误,重启websphere后恢复正常。两处应用服务与接入服务共用同一服务器。 (5)发布包因未知原因失效 这在缉查布控系统应用服务也多次出现,发布到websphere的war包,正常运行一段时间后突然无法打开页面了,怎么也找不到原因,重启websphere和操作系统都无法恢复。但卸载后重新发布war包,即恢复正常。 有可能是发布的包在运行中,丢失了某些war包中的重要文件。 (6)websphere产生的错误日志消耗掉磁盘空间 该问题主要出现在应用服务上,接入服务未见出现,但部分地市接入服务与应用服务共用服务器,所以有影响。 主要出现在安装websphere7.1且在“数据执行保护”未将java虚拟机(java.exe,javaw.exe)配置为例外的。 2、解决方案 加强各地的维护工作,及时发现问题及时处理即可。 主要是接入服务没有界面,所以各地不容易发现问题,知道出问题了也不清楚处理哪台服务器,常根据web登录IP地址找到应用服务器。 可以考虑接入服务纳入总队的日常维护中,这种各地市偶尔出现的问题,由总队熟悉的专职维护人员处理较好。 (三)数据库问题 1、问题 (1)数据库服务器问题 部分地市选择的数据库服务器性能有问题,可靠性也有问题。 (2)数据库表空间或者磁盘空间满 由于缉查布控系统部分过车表相关表空间(比如FRM_DATA和索引表空间)增长非常快,而表空间又需要人工配置不能完全自动增长(如数据文件自动增长到一定大小 后须增加数据文件来扩展表空间)。如果预先估计的不足,就会导致卡口数据无法接入。 另外,部分Oracle软件安装后因为环境问题会不断大量生成错误日志,占用磁盘空间,导致磁盘为0,卡口数据无法接入。 (3)数据库用户锁死 由于登录时密码错误,多次后会锁死数据库用户。特别是预警中心配置完数据库后有自动登录的功能,如果配置密码错误,容易导致数据库用户锁死。进而导致接入服务无法连接数据库。 2、解决方案 数据库服务器配置要高一点,不能在数据库服务器安装数据库外其他系统。须安装64位操作系统的(内存超过4G)须安装64位操作系统和64位Oracle版本。数据库磁盘空间须满足要求。对于出现问题的数据库,需要重新安装改造。 安装预警中心等配置缉查布控系统数据库用户的情况须小心,配置完须验证数据库连接正常没有锁死现象。 数据库服务器、表空间及磁盘空间检查与管理须纳入日常维护。 4.1.3卡口数据上传延迟 (一)时钟同步 1、问题 各地卡口大部分不能完成精确时钟同步,甚至缉查布控系统各服务器(主要是数据库服务器)也未进行时钟同步。这样即使实时上传,也会被误会为未实时上传。 2、解决方案 公安网内全省建立统一NTP时钟源,所有公安网内服务器与该时钟源同步;各地市视频专网内设置统一NTP时钟源,所有前端卡口、专网服务器与该时钟源同步;专网内时钟源可使用GPS时钟同步,也可设法与公安网内时钟源同步。 (二)上传环节多 1、问题 目前大部分卡口数据上传并非卡口直传,而是经由卡口公司平台或者支队、大队汇聚平台转发的。转发过程必然消耗时间,特别是部分地市卡口数据是先入卡口公司或者汇聚平台数据库,然后由转发程序提取出来上传给缉查布控系统。这样无法满足8秒以内的要求。 2、解决方案 尽量采用前端直传,必须要转发的,应当在通行信息进入其他数据库前进行转发。 转发程序的性能需要经过测试验证。 (三)上传程序单线程堵塞 1、问题 不管是控件方式还是webservice方式,上传软件同接收端(接入服务)的通讯都是堵塞式的,单线程每秒钟的通讯能力不过几条,如果不采取多线程的方式,极容易造成堵塞,造成大部分通行信息上传延迟。部分上传软件在单线程中先传图片后传通行信息,传输图片的阻塞,也会造成上传延迟。 2、解决方案 对接入规范中已有要求多线程的说明,但相当部分的上传软件未必做到了这一点,需要对延迟地市上传软件源程序进行检查,未做到的要求改造。 (四)上传程序之前的传输延迟 1、问题 部分地市由卡口公司将数据通过安全接入平台接入公安网的。由于接入策略(全部图片进入公安网)和技术问题(将二进制图片转成xml文本文件后交换),进入公安网的延迟高达几个小时。 通过网闸进入公安网的,也存在类似问题。部分老旧网闸,传输带宽较小。由于把全部图片都传入公安网后上传,造成了堵塞。 另外部分卡口将通行图片上传至中心服务器(卡口公司自己的)然后才识别上传。由于中心服务器的处理性能瓶颈而造成延迟。 2、解决方案: 改造不合理的传输策略,存在安全接入平台和网闸传输能力不足问题的,不要将图片传入公安网。采用调用时才传入的方式。 (五)前端卡口识别与上传延迟 1、问题 部分老旧卡口性能不足。在车流高峰期间,CPU、内存性能限制不能及时完成识别、上传任务,造成堵塞,延时不断累积。 2、解决方案: 改造老旧卡口,提高设备性能。 4.1.4页面显示没有过车图片 (一)前端图片服务器故障 1、问题 大部分卡口只传图片路径,缉查布控系统显示的图片最终是从前端的图片服务器获取的。前端图片服务故障就无法看到图片。 遇到图片无法访问的问题,排查时一定要先查看下前端图片服务能否正常使用,上传给缉查布控系统的路径能否访问到图片。 (二)备案错误 1、问题 备案时卡口接入位置错误,比如因为理解错误把公安网内接入写成了专网接入,只有在通过边界接入平台接入公安网时,卡口备案时才设为专网,否则均为公安网。 还有过车图片存储位置错误,只传路径的都应当选择“非缉查布控系统图片服务器”。 (三)边界接入平台与网闸故障 1、问题 存在边界接入平台的情况下,图片是通过边界接入平台交换至内网,边界故障时也无法看图片。还有时候并非边界本身的故障,而是以下问题: (1)前置机与后置机(应用服务器)共享目录无法访问 (2)前置机或后置机上的文件服务软件无法使用 (3)过量访问图片或其他原因导致边界交换堵塞 (4)前置机接入服务、前置数据库故障 4.1.5调用上传接口不稳定 (一)数据接入控件版本问题 1、问题 试点期间提供的数据接入控件,不具有在TCP连接断开情况下自行重连的功能,须报错后自行初始化重连,在复杂网络条件下,TCP长连接不稳定,容易出现该现象。 2、解决方案: 到Ftp://10.2.41.31/下载最新接入控件。 (二)一机两用软件问题 1、问题 部分接入服务器上安装了一机两用软件,而部分上传服务器由于不是windows系统等原因没有安装一机两用软件,也未进行IP保护,它们之间的长连接受到一机两用软件的干扰,过一段时间会被切断。 2、解决方案: 接入服务器要采用IP保护方式,不要安装一机两用软件,已经安装的,要卸载干净(为彻底删除,建议系统重装)。 (三)TCP连接断连 1、问题 由于路由上的中间节点(网关、交换机、路由器等网络设备)不稳定导致TCP断连。比如大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 TCP 连接断连。 2、解决方案: (1)上传软件与接入服务器尽可能部署于同一网段内,减少通过的防火墙等中间节点; (2)建立TCP连接的保活机制,在没有过车数据上传期间,通过定时调用时钟同步接口等,保持通讯。 附 录 A (资料性附录) 机动车缉查布控系统资料(V1.2) A.1 辅助信息包 //接口XLH在“接口管理”中申请与查询,原jkxlh由3个试点省份使用至2013年底 // 其中时间为系统当前时间 A.2 错误代码表 序号 1 2 3 4 5 6 7 8 代码值 说明 服务端拒绝或返回数据包错误,检查http://ip:port/rminf/services/Trans?wsdl是否可正常访问 通讯超时 连接IP、端口失败,检查http://ip:port/rminf/services/Trans?wsdl是否可正常访问 数据或通讯错误引发的控件异常 按图片路径读取文件失败(图片上传) 特征图片上传接口不接受超过20K的图片 数据库操作异常但没有ORACLE错误码 获取接口信息数据库操作异常但没有ORACLE错误码 0 -1 -2 -3 -4 -5 -10 -101 9 10 11 12 13 14 15 16 17 18 19 -11 -12 -13 -131 -132 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -1410 -1411 -1412 -1413 -1414 -1415 -1416 -1417 -1418 -1419 -1420 -201 -202 -203 -21 -2101 -2102 java异常,可通过GetLastMessage接口获得详细错误信息 从数据库中提取不到车道信息,查看卡口备案是否添加该车道 上传IP与绑定的不一致(初始连接) 卡口状态不是为正常 没有配置该接入服务器IP地址的接入点,进入接入点配置页面新增或编辑接入点 辅助信息包格式错误 接口序列号为空,未上传接口序列号 接口ID为空 接口属性定义错误 接口类别定义错误 接口定义不规范 接口序列号不存在,缉查布控系统中没有该接口序列号,可能未申请,跨边界情况可能为RM_EWS_CONTENT、RM_EWS_CONTROL内数据未同步到专网 接口序列号异常 接口序列号不合法 验证接口校验位异常 接口校验位被非法修改 该接口序列号可访问接口不包括本接口,查看接口授权信息中该授权码的使用接口列表是否包括过车数据写入 不是合法的IP地址,查看接口授权信息中该授权码的IP地址范围 接口尚未启用,查看接口授权信息中该授权码的使用起止日期 接口已过有效期,查看接口授权信息中该授权码的使用起止日期 接口序列号验证异常,可通过GetLastMessage接口获得详细错误信息 部局已对该序列号停用本接口 当前系统已对该序列号停用本接口 接口已过申请期限 接口不存在或接口被非法修改,接口ID与接口序列号大小写敏感,注意大小写 部局未启用该接口 保存过车信息数据库操作异常但没有ORACLE错误码 获取卡口信息数据库操作异常但没有ORACLE错误码 保存违法信息数据库操作异常但没有ORACLE错误码 java异常,可通过GetLastMessage接口获得详细错误信息 号牌种类为空或长度错误 过车时间格式错误 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 -2103 -2104 -2105 -2106 -2107 -2108 -2109 -22 -221 -222 -23 -24 -25 -31 -33 -34 -35 -41 -42 -4201 -43 -44 -451 >-100000 车辆速度大于3位 车外廓长大于5位 号牌颜色为空或长度错误 号牌颜色与号牌种类不一致 号牌号码为空或者长度错误 号牌号码长度为1但不为“-” 图片路径含有图片后缀 Java异常2,可通过GetLastMessage接口获得详细错误信息 从数据库提取不到卡口信息 卡口道路米数为空 上传IP与绑定的不一致(通行信息上传) 未进行初始连接 保存过车不成功未返回过车序号 java异常,可通过GetLastMessage接口获得详细错误信息 上传IP与绑定的不一致(获取限速值等) 未进行初始连接 找不到对应车辆类型的限速值 java异常,可通过GetLastMessage接口获得详细错误信息 从数据库提取不到卡口信息 卡口过车图片保存位置为非缉查布控系统图片服务器 上传IP与绑定的不一致(上传图片) 未进行初始连接 方向类型错误 ORA错误 A.3 卡口数据质量指标 序号 1 2 3 4 5 名称 参考GAT497 参考GAT497 参考GAT497 参考GAT833 参考GAT833 说明与要求 图像捕获率 号牌识别率 号牌识别准确率 号牌颜色识别率 号牌结构识别率 采集延迟 号牌种类准确率 6 信息采集过程包括图像捕获、车辆号牌识别、车辆类型识别、速度测定等内容,以图像捕获开始,以识别内容文字信息合成到图片上为止。采集延迟即这整个过程的时间消耗,要求小于等于1秒 根据号牌颜色能够区分号牌种类,辅助以号牌号码的判断就能够区7 分大型汽车、小型汽车、警用汽车、教练汽车等。所有高清卡口要求能够识别,识别准确率不低于号牌颜色识别率(90%) 8 号牌不匹配 前后拍不匹配 识别出的号牌号码与图片上车辆号牌明显不一致,且并非由于近似字母造成。该情况不允许出现 在车辆号牌悬挂正常情况下,有前后拍的卡口出现号牌号码与车尾号牌不一致。该情况不允许出现 9 A.4 接入数据质量指标 序号 1 2 3 4 5 6 名称 计算方法 入库时间-过车时间 延迟数/总数 上传数/应当上传数 正常上传卡口数/总卡口数 小于等于8秒 小于5% 漏车率小于1% 要求 延迟时间 延迟率 漏车率 数据缺项 数据匹配 图片匹配 正常上传率 号牌号码、号牌种类、号牌颜色、过车时间、卡口、设备、方向不得为空 卡口、设备、方向必须匹配,编号必须正确 特征图片、过车图片必须同卡口通信信息相匹配 95%以上 7 因篇幅问题不能全部显示,请点此查看更多更全内容