刘耕阳 公安部第一研究所
计算机技术的快速发展引领着软硬件的设计与应用快速迭代更新,在一些领域中这种更新显得相对迟缓,从而导致旧有软件难以在新的环境中运行,民航安检中的信息系统,便是其中之一。近十年来,全国机场数量显著增长,实现网络化覆盖,颁证运输机场从158个增加到238个,机场密度从每10万平方公里1.6个增加到2.5个,颁证通用机场由25个增长到240个,数量超过运输机场,全国机场年旅客吞吐量从4.1亿人次增长到12.6亿人次。这一系列数字背后所透露出的是国内民航安检力度及工作强度相较十年前快速增长,使民航安全保障任务变得极为严峻。对于保障民航空防安全而言,机场的安检工作作为一个关键步骤,在民航空防、恐怖事件预防以及避免安全事故的发生中具有非常重要的地位。
安检信息系统作为保证安检工作有序顺利进行的重要手段,已被广泛应用于各类大型机场,其构成包括验证工作站、开包工作站、管理员工作站等各类安检业务相关站点,将这些站点融入同一局域网之中,便构成了安检信息系统,如图1所示。通过安检信息系统,可以把旅客信息、行李信息、安检工作人员信息等多个站点的数据信息进行整合,高效、安全、集中的存储,使得安检信息能够被有效管理,这对提高安检工作质量与效率、提高机场信息化建设具有重要作用。
构成安检信息系统的各类站点通常需要采集各种各样的外部数据以便进行分析和处理,因此需要集成多种外设,这些外设的生产厂家各异、所生产的设备型号各异,对于一些使用周期较长的安检信息系统,现场会依据实际情况同时接入不同厂家、不同型号的同类型外设,这就增加了系统的复杂程度,导致其稳定性降低,影响安检效率与信息反馈。当前,安检信息系统中常见的站点大都是把所有的外设集成在一个程序上,或者把部分外设所涉及的模块独立成一个程序,使用两套设备。对于前者,程序维护开销会随着外设数量及类型的增加而增加,导致系统稳定性下降;对于后者,则会在有限空间内放置多余的显示器、主机等设备用于处理相应的外设信息,使本已局促的工作空间变得更加局促。此外,随着Windows系统的不断升级,以及安检业务处理对计算机硬件性能的要求,Windows 32位系统的处理能力已逐渐不能满足当前业务需求,而由于历史或现实原因,部分外设只支持32位,导致集成这些外设的站点也只能设计成32位程序,这极大限制了安检信息系统的工作效率以及采用新技术的能力,导致处理潜在威胁的能力下降,从而带来一定的安全隐患。
为了既能兼容32位外设,又能利用64位系统所提供的良好硬件性能,同时能够集成各种各样的外设又不影响安检信息系统的稳定运行,笔者提出了一种桥接64位与32位程序的系统设计方法,这一方法基于Socket技术,服务端程序编译为64位,用于处理安检信息,客户端程序编译为32位,用于集成各种外设,以获取外部信息,然后把接收到的外部信息进行解析,发送给服务端程序。这样,便可在不增加额外设备的前提下使用64位系统,同时兼容各种类型的外设,并且降低系统维护成本。
桥接64位与32位程序的总体设计框图如图2所示,系统分为两个部分,分别是服务端和客户端。客户端连接各种类型的外设,用于获取通过外设得到的外部信息,然后通过Socket技术将获取到的数据发送至服务端;服务端接收到数据后,对其进行处理并判断是否满足相应的功能需求,同时,服务端还会发送当前状态给客户端,避免系统工作流程紊乱。
在编译的过程中,服务端编译为64位,以便更好的利用计算机资源,客户端编译为32位,用以兼容32位外设。通过这样的设计,安检信息系统能够在兼容性提升的同时,避免外设故障影响整个系统运行,还能避免因外设频繁更换而频繁修改整个系统程序。
基于上述设计,桥接64位与32位程序的系统设计方法的系统架构可分为七层,如图3所示。
第一至三层为客户端,包含外部信息源层、读取设备层和数据格式化层三部分内容。第四到七层为服务端,包含信息源层、数据处理层、功能应用层和反馈结果层四部分内容。接下来,将就设计中的每一层进行详细介绍。
客户端的主要功能在于获取外部信息,其数据支撑来自于外部信息源层,也即旅客或工作人员出示的证件、票据或凭证等信息,包括但不限于身份证、护照、登机牌、二维码、指纹信息等,之后通过读取设备层的各种相应设备(如身份证阅读仪、登机牌阅读仪等)把上述信息数字化,最后经过数据格式化层将这些信息打包成指定的格式发送到服务端。
以上流程都是在获取到外部信息后自动触发的,不需要与服务端进行交互。通过这一设计,无论现场信息源与外设如何变化,只要现场能够提供获取相应信息源的外设,然后以指定的格式发送数据,就能保障准确获取到外部信息。同时,客户端编译为32位独立运行,对32位外设进行兼容,由于是一个独立的程序,因此外设故障引起的程序崩溃并不会影响服务端的正常工作,从而保证了系统的稳定性。
服务端的主要目的是对外部信息进行处理,针对信息的正确性给出一个结果。这个结果的依据来自于信息源,也即整个安检信息系统的数据中心,里面存储了旅客离港信息、航班信息、行李信息等数据,通过数据处理层解析客户端发来的旅客信息,在数据中心进行存储、查询并比对,再根据功能应用层所需要满足的功能,一一判断外部信息是否满足,最后在反馈结果层给出结果。
每当接收到客户端发送过来的数据,服务端就会判断该条数据的合法性,包括判断当前流程是否应收这条数据、接收的数据格式是否正确,如数据不合法,将会给出相应提示,指导工作人员规范操作流程。
由于服务端的设计剥离了外设,因此其可以独立编译为64位程序,能够更有效的利用计算机提供的硬件资源,重点是能够和安检信息系统中的其它64位工作站相互协作,整体提升安检系统的运行效率。此外,服务端也会实时检测客户端的运行情况,若出现程序崩溃的情况,则会立即重启,避免无法自动获取外部信息的情况出现。
验证工作站作为安检信息系统中典型的外设站点,需要获取旅客的票、证、人信息,以验证旅客是否能够进行安检,集成了包括身份证阅读仪、护照阅读仪、登机牌阅读仪、人脸识别模块等在内的多种外设。这些外设有的只能用于32位程序,而验证工作站需要设计为64位,因此急需解决32位与64位程序兼容性的问题。
根据上文的设计方法,客户端用于接入验证工作站的各种外设,编译为32位,服务端用于执行验证工作站核验旅客身份的功能,最终反馈旅客核验是否成功,编译为64位。基于此,在Windows10的64位系统下,采用C#编码,成功实现了验证工作站,无需安装除外设驱动之外的其它插件就可正常运行。此外,客户端程序和服务端程序同时部署在一台主机上,通过监听本机IP 127.0.0.1的高位端口,避免了额外的硬件和网络开销,同时保证Socket通信的时效性。
通过采用客户端与服务端的方式,旅客信息获取与安检信息处理相分离,因此能够通过客户端模拟出旅客信息,将其发送给服务端,进而进行自动测试。在Windows 10的64位系统环境下,通过于上万条不间断的模拟旅客信息进行自动化测试,旅客验证信息准确记录到数据库,旅客照片和证件照片全部保存,验证结果反馈正确,工作站运行正常,说明采用文中所提出的设计方法实现的验证工作站具备可行性。
详细介绍了一种桥接64位与32位程序的系统设计方法,并以机场安检信息系统中的验证工作站为例,说明这种设计方法的有效性。相较于传统的把外部信息获取与安检信息处理集成一体的设计方法,文中所提出的设计方法基于Socket技术,把外部信息获取从安检信息处理中独立出来,分别编译为32位和64位程序,保证各自的独立性。这样的设计方法使安检信息系统中的各站点在兼容32位外设使用的前提下,又能设计为64位程序,使之能够更好的利用计算机资源,同时确保这些站点不会因为外设的故障而导致系统崩溃,保障其平稳有效运行。每当有新的外设需要接入时,只需将其开发文件封装成一个类集成到用于获取外部信息的客户端源码中即可,不需更改作为站点主程序的服务端程序,降低整个站点的维护成本。最后,通过模拟上万人次的旅客安检,结果显示采用文中所提方法设计的安检信息系统组成部分之一的验证工作站运行正常,充分说明这一设计具有切实可行性。