APP下载

基于Node.js的违章查询系统设计与实现

2018-09-26鄢化鹏聂云峰汪涛吴文波

软件导刊 2018年7期
关键词:接口

鄢化鹏 聂云峰 汪涛 吴文波

摘要:为解决移动互联网背景下违章查询接口不公开的问题,提出一种基于Node.js的违章查询系统解决方案。通过分析12123APP违章查询接口及其通信加密方式,在获取12123APP与服务器之间的通信加密密匙后,通过Node.js平台下的Crypto模块实现用户与12123APP服务器之间通信的AES加密解密,最终从12123APP服务器获得违章查询结果。通过对接口进行postman功能测试及ApacheJMeter压力测试,实验结果表明,该方法能有效实现违章查询功能,并具有良好的高并发性能。

关键词:违章查询;接口;Node.js;AES;Crypto

DOI:10.11907/rjdk.173203

中图分类号:TP319

文献标识码:A文章编号:1672-7800(2018)007-0132-03

Abstract:InordertosolvetheproblemthatillegalqueryinterfacedoesnotopentothepublicinthebackgroundofmobileInternet,asolutionofillegalquerysystembasedonNode.jsisproposed.Byanalyzingthe12123APPillegalqueryinterfaceanditscommunicationencryptionmethod,weobtainthecommunicationencryptionkeybetweenthe12123APPandtheserver,andtheCryptomoduleontheNode.jsplatformisusedtorealizetheAESencryptionanddecryptionofthecommunicationbetweentheuserandthe12123APPserversothatfinally

illegalsearchresultsaerobtamedfromthe12123APPserver.ThroughthepostmanfunctionaltestingandApacheJMeterstresstestingontheinterface,theexperimentalresultsshowthatthismethodeffectivelysolvestheproblemthatillegalqueryinterfacedoesnotopentothepublic.

KeyWords:illegalquery;interface;Node.js;AES;Crypto

0引言

据公安部交管局统计,截至2017年3月底,全国机动车保有量首次突破3亿辆,其中汽车达2亿辆[1],驾车出行已成为人们出行的主流方案,与此同时,车辆违章问题也越来越突出。据调查,2017年上半年大约有12%的车主有过违章记录。因此,人们迫切需要一个有效的违章查询工具。虽然市场上的违章查询工具很多,但是质量参差不齐,大部分违章查询工具的用户体验较差。研究表明,其本质原因是没有一个开放、统一的违章查询接口。

市场上现有的违章查询接口主要分为两种:一种由地方交通管理局提供,一种由软件公司提供。地方交管局提供的接口有很大的局限性,只能查询某市或某省的车辆违章情况,给用户带来很大不便;软件公司提供的接口质量参差不齐,并且需要收费,因而无法保证用户拥有良好体验,同时也限制了一些经费不足的公司及个人进行违章查询软件开发。

为解决违章查询接口不开放与統一的问题,本文设计一种基于Node.js的违章查询系统解决方案[2-3]。选取Node.js平台下的Express框架,使系统具有良好的高并发性能。采用的12123APP违章查询接口由公安部交通管理局开发,其数据库为全国数据库,且具有权威性。通过分析12123APP违章查询接口及其通信加密方式,获取12123APP与服务器之间的通信加密密匙及偏移向量,通过Crypto模块对用户发送数据AES加密,以及对用户接收数据AES解密[4-6],从而实现具有高并发性能且接口开放的违章查询接口。

1Node.js简介

Node.js是一个基于ChromeV8引擎的JavaScript运行环境,Node.js使用了一个事件驱动、非阻塞式I/O模型,使其轻量又高效,Node.js作为服务器端JavaScript的运行平台,弱类型、基于作用域和原型链依旧是其本身的特征,其主要特点如下:①异步非阻塞I/O。这是Node.js的主要特性,也是其处理高并发请求的关键所在;②单线程。单线程的优势是无需考虑多线程下的状态同步、上下文切换、死锁、线程安全等方面问题;③事件机制。配合异步I/O操作,具有轻量级、松耦合、只关注事务点等优势。这些特点使Node.js非常适合数据量大、业务逻辑简单的应用[7-9]。Express作为Node.js下最流行的框架,其核心特点是:①可以设置中间件以响应HTTP请求;②定义路由表用于执行不同的HTTP请求动作;③历史最久、文档最全、资料最多。因此,采用Express框架搭建服务器非常简单,且搭建的服务器较为稳定[10-12]。目前在国内也有许多大公司在开发项目时使用Node.js,包括淘宝指数、淘宝数据魔方、Angular中文网站后台、CNode网站后台等。

2系统设计

根据违章查询系统需求分析,违章查询系统主要分为两大模块,分别为个人管理模块及车务管理模块。个人管理模块主要功能包括:注册、登录,以及用户基本信息、车辆信息与驾驶证信息增删改查;车务管理模块主要功能包括:违章查询、记分查询、罚款代缴。

基于Node.js的违章查询系统体系结构设计如图1所示,从顶层到底层分别为用户层、接口层、业务层及数据层。

(1)用户层主要指不同类型的客户端,包括IE浏览器、Firefox浏览器、Chrome浏览器等不同类型的PC客户端和以Android、IOS为主的移动客户端。

猜你喜欢

接口
某电站工程设计管理与施工、质量控制接口关系研究
含有二氧化钛薄膜增强虚拟阀的微流控芯片用于二维凝胶电泳分离