智慧燃气物联网燃气表圈存机的实现

学术论文 2019.05.30 浏览:11
作者:屈博,杨沙沙,徐新源,李博
单位:1.陕西航天动力高科技股份有限公司,陕西西安,710119;2.陕西航天动力高科技股份有限公司,陕西西安,710119;3.陕西航天动力高科技股份有限公司,陕西西安,710119;4.陕西航天动力高科技股份有限公司,陕西西安,710119
关键词:圈存机;预加载;IC卡;JavaEE;消息互锁;智慧燃气
DOI:10.16667/j.issn.2095-1302.2019.05.024

摘要 IC卡燃气圈存机着眼于"智慧燃气"的理念,本着"方便生活,方便社区"的初衷设计实现,主要应用于IC卡燃气表的写卡操作.整个系统采用B/S架构,利用JavaEE技术平台,采用身份自动验证登录系统、预加载技术、消息互锁机制以及数据加密等多项技术,具有更强的可移植性、可靠的安全性、更好的体验性.

(陕西航天动力高科技股份有限公司,陕西 西安 710119)

0 引 言

伴随网络帝国的崛起、移动技术的融合发展以及创新的民主化进程,智慧城市已经渗入到人们生活的各个方面,“互联网+燃气”的新式理念融入到大江南北。本文提出的燃气 IC卡圈存机针对普通 IC卡燃气表设计,联合中国银行,使 IC卡表普通居民用户、工商业用户可以24小时随时随地购买天然气,大大提高了用户体验,降低了燃气公司的运维成本。

1 圈存机设计思路

燃气缴费一直以来只能在燃气公司或代理机构进行办理,燃气 IC卡圈存机的出现完全摒弃了这种模式,用户只需在手机网络缴费后,在就近的燃气 IC卡圈存机上将气量写入 IC卡,便可继续正常使用燃气。

1.1 圈存机网络结构

圈存机的网络结构以最简应用为主,同时具备数据传输安全、访问速度快的特点。交换机与各终端节点间采用易维护、配置灵活、故障隔离检测容易、网络传输数据快的星型结构,主干线路选用10/100 Mbit/s到桌面,100 Mbit/s连接到主机的快速以太网[1]。另外,公司及各营业厅可通过 VPN连接到中心交换机。网络拓扑结构如图1所示。

整个结构自顶向下,数据库居于顶端,是整个网络的核心;Web服务器主要负责应用系统的发布,以及售气点终端机对系统进行访问的管理;各营业厅售气终端通过 Web服务器对系统进行操作,完成客户档案管理、售气等管理业务;售气终端即圈存机,放置于社区、燃气公司、银行等公共场所,方便用户使用。

图1 网络拓扑结构图

1.2 软件系统架构

软件系统主要采取开源的 iBatis持久层框架,圈存机通过互联网与燃气表服务器连接,两者之间传输的数据均经过加密。燃气表服务器与中国银行服务器间利用 VPN(虚拟专用网络)专线实现,确保支付及充值确认码的安全[2]。软件系统架构如图2所示。

1.3 系统业务流程

圈存机的充值实现需要由燃气公司、中国银行、燃气表厂家共同参与,进而完成向 IC卡充值,满足“让网络数据多跑路,让群众少跑路”的智慧城市建设要求。用户可直接在中国银行手机银行上进行缴费,输入燃气表对应的14位燃气卡号,核对信息无误后输入要购买的气量或金额,缴费成功后会收到充值确认码。用户可在就近的圈存机上进行写卡操作,写卡时核对信息无误后,输入充值确认码,点击写卡,成功后便可插入自家燃气表内,正常使用天然气。圈存机写卡业务流程如图3所示。

图3 圈存机写卡业务流程图

圈存机除了写卡外,还可进行读卡操作,以便用户进行信息查询。正确插入燃气 IC卡,点击屏幕上的“读卡”,会出现如图4所示的用户信息。

图4 读卡信息界面

2 关键技术的使用

本文系统主要实现以下功能:

(1)通过预加载技术,提高用户操作的体验度

圈存机在设计时专门添加预加载技术,在网页全部加载之前,对一些主要内容进行加载,以提供给用户更好的体验,减少等待时间[3]。用户在使用圈存机时,后台将所需资源提前请求加载到本地,需要用到时直接从缓存提取资源,避免了页面内容过于庞大,而未使用预加载技术的页面就会长时间地展现为一片空白。

安装圈存机时,必须通过加密狗+授权文件双重身份验证完成注册,缺一不可,一定程度上可防止非法终端的连接。圈存机利用 Obj,DLL,Active控件提供操作软件狗的接口函数,在应用函数中直接对其进行调用,一定程度上有效地阻止了潜在威胁。安装圈存机所需的序列号、注册码以及注册文件均通过 AES的加密方式进行传送。

(3)动态生成随机数,保证写卡安全可靠

动态口令使用便捷,且具有与平台无关性,其优势在于与各种业务系统快速无缝互操作,是一种较为稳定、高效、支持多种认证模式的身份认证技术,已应用于多种行业[4]。本文圈存机采用动态生成的方式,用户缴费成功后,系统根据专门的算法生成一个不可预测的随机数字组合(即充值确认码)返回给用户,用户在圈存机上写卡时,只有输入正确

的充值确认码,方可进行写卡操作。填写充值码界面如图5所示。

图5 填写充值码界面

(4)通过消息互锁机制,防止多卡操作的问题

本文消息互锁机制分同时间同卡号互锁和不同时间同卡号互锁两种方式。圈存机系统采用多线程访问机制,当一个线程访问该类的某个数据时,系统进行自动检索,若发现有相同卡号同时存在,锁死该卡号使其不能再进行其他操作,进而防止出现非法盗用的现象。另外,若用户的 IC卡丢失,当用户补办后,系统会自动将原先的 IC卡锁死,不得再次使用。

3 圈存机特点

圈存机的设计实现了用户就近充值写卡,改变了之前必须去燃气公司充值的局面,同时还具备以下特点:

(1)中国银行便捷缴费充值

中国银行手机 APP与终端圈存机利用接口通信,IC卡用户直接通过中国银行手机银行进行燃气缴费,对于用户、燃气公司、银行以及燃气表厂家都是利好的事情,可谓“一举四赢”。

该系统可直接利用目前现有且成熟的内部网络与相关设备,无需投入过多设备费用。用户直接在圈存机上写卡,省去了燃气公司大量的人力、物力,降低了燃气公司的运营成本。(3)系统安全性高

所有的应用程序都在中心 Web服务器上,不会暴露给客户端,降低了程序与数据被篡改的可能性[5]。由于客户端浏览器必须通过 Web服务器,降低了非法访问数据库的可能性,成熟的 Internet网络以及VPN设备保证了网络传输的安全性。(4)客户端维护方便

圈存机可实现缴费票据打印,为燃气公司燃气业务功能提供更多接口,方便业务扩展。

4 结 语

本文提出了智慧燃气物联网燃气表圈存机应用系统,该系统采用 B/S架构,利用 JavaEE技术平台进行搭建,联合中国银行,实现了用户就近充值写卡。据悉,第一批 IC卡燃气表圈存机已在阎良地区10个地方进行试点,目前效果良好,得到了广大用户一致好评。

(下转第85页)

serialPort1.DataReceived+=new SerialDataReceivedEventHandler(this.ComDataReceived);

//设置数据异步接收事件 serialPort1.ReceivedBytesThreshold=1;

//收到数据立即触发接收事件 m_comIsSetup=true;

//串口设置成功 Console.WriteLine("串口设置成功");

serialPort1.Open();

//打开串口 Console.WriteLine("打开串口成功");

return 0;

}

2.3 通信协议实现

门禁系统管理软件与单片机程序通过串口进行通信,串口通信的特点是一个字符接着一个字符进行传输,并且传输字符时总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求,因此双方必须共同遵循同一套通信协议才能保证数据传输完整正确[10]。本文通信需要实现控制器用户卡号上传与管理软件查询结果返回的功能。通信协议主要包括数据帧头、数据长度、命令类型、设备号、数据正文、 CRC校验。数据帧结构如图4所示。

图4 通信协议数据帧结构

控制器单片机通过硬件串口设备收发数据,门禁系统管理软件通过 SerialPort类调用硬件设备收发数据。为保障数据正确传输,程序设计时需要实现数据检验与重发机制。接收串口数据较为复杂,结合串口协议分析需要解决的问题为:缓存串口收到的所有数据;找到一条完整数据帧;分析数据帧的命令内容;将分析出的命令通知上层应用。缓存接收所有数据最高效的方法是利用 C#中的 List〈B〉结构,该结构能够方便地实现数据元素的增、删、改操作,因此利用 SerialPort类的 DataReceived增加接收事件将串口接收数据全部放入 List〈B〉结构后再分析。找出一条完整的数据帧,

首先在缓存的数据中找到帧头,找到后检测后面一个字节的数据长度,然后计算缓存剩下的数据是否足够,数据不够就停止分析以减少时间消耗,如果剩余数据大于数据长度,计算出数据帧 CRC校验码并与缓存数据中的 CRC校验码对比,如果校验码一致说明数据帧传输正确,解析帧内容并通知上层应用处理,否则丢弃掉该帧等待重发。

请上原文链接获取全文