APP下载

物联网电梯数据交互平台RESTful API接口设计与实现

2022-10-26张海洋成新民徐黄镇

数字技术与应用 2022年10期
关键词:供应方令牌开发者

张海洋 成新民 徐黄镇

1.湖州师范学院信息工程学院;2.湖州师范学院信息工程学院;3.湖州市特种设备检测研究院

针对目前物联网电梯信息管理上存在的数据分散、缺乏合理统一的建设标准以及“信息孤岛”的问题,提出采用RESTful API、OAuth2.0等技术[1],设计开发电梯管理平台的企业服务接口,实现平台对第三方电梯数据供应方以及企业相关数据获取、推送、管理。同时设计出API服务接口的模式,规定了统一的接口规范,解决不同开发环境的异构系统之间数据交互问题,实现了区域电梯管理政府主导的模式,健全了整个电梯管理体系。

随着物联网、大数据、云计算等信息技术的兴起,国家也随之提出了“智慧城市”的发展战略[2]。电梯作为城市楼宇交通的一个重要组成部分,符合“智慧城市”战略的建设要求,所以需要构建一个能够获取所有电梯相关数据的接口服务体系,实现对电梯从生产、安装、运行、维保全过程的信息监督。目前,城市电梯数据分散在不同的电梯数据平台,各电梯数据平台信息系统建设时期不同,电梯数据规范不一致,无法实现电梯数据跨平台交互共享。总体而言,国家在物联网电梯领域标准化工作起步缓慢,电梯信息化建设缺乏相应的经验,本文研究的基于RESTful API的物联网电梯数据交互平台,针对所需收集的电梯各类数据,开发相应的API接口,为城市电梯信息化建设提供了一种可行的解决方案。

1 数据服务接口设计

1.1 接口数据需求分析

物联网电梯数据交互平台与第三方电梯数据供应方对接的电梯数据主要分为两类。具体的需求如下:

(1)在线管理电梯各项静态数据。这些数据包括电梯设备基础信息、相关单位基础信息、检验报告信息、维保记录信息、公众投诉信息等,数据是由第三方电梯数据供应方以及相关电梯品牌商通过平台提供的接口打包上传至本平台,此类数据经过清洗、转换、集成操作,应用于平台做数据查询、统计分析和展示。

(2)及时反馈电梯物联数据并进行分析预警。由于电梯的运行故障涉及到乘客的人身财产安全,所以在电梯运行过程中,需要获取电梯实时运行状态数据,这些数据包括电梯实时视频链接、电梯当前楼层、运行速度、运行方向、开关门状态、有无人状态等,当电梯设备检测到运行异常时,立即向API服务器发送异常状态数据,平台随即进行实时预警,响应救援单位前往电梯故障地。该部分数据主要是由第三方电梯供应商主动通过数据接口上报至平台,应用于平台做大数据分析服务,并兼顾数据查询、统计分析。

综上所述,电梯数据交互平台接口按其业务需求的实时性特点可分为实时接口和非实时接口两类接口进行设计与实现。

1.2 接口应用关键技术

(1)RESTful API技术。RESTful是一种面向资源的API架构风格[3],是目前许多公司企业使用的主流API架构风格,相比于其他风格的API构架,符合RESTful风格的API接口更加灵活,系统中每个需要被访问、调用的数据信息被看作为一个资源,用特定的URL指向每种资源,URL和服务一一对应,同一个URL对资源的操作有GET(获取资源)、POST(新建资源)、PUT(更新)、DELETE(删除资源)。

(2)OAuth2.0授权机制。OAuth2.0授权机制是以原OAuth协议为基础,升级了开发的简易性,通过允许第三方应用来代表用户获取授权,允许用户在不提供个人信息的情况下来访问平台资源,提高了系统的安全性[4]。API的范围权限采用符合IETF RFC6749的OAuth2.0的授权机制,第三方开发者早在每次访问数据类API之前,需要先API服务器申请动态令牌,在申请到有效令牌之后,开发者需要在指定时间内完成对API服务器数据类API的服务调用,超时令牌将被撤销访问。本接口基于OAuth2.0认证授权机制的访问流程如图1所示。

1.3 接口体系结构

物联网电梯数据交互平台构建的API接口层,对第三方电梯数据供应方制定统一的数据规范,保证接口数据交互格式的一致。此外,通过ETL工具Kettle对数据进行处理、转换、迁移操作[5],从而解决了目前电梯信息化管理面临的电梯数据分散、不规范的问题。由此构建的物联网电梯数据交互平台接口层完成了电梯数据的准确获取,并且实现了第三方电梯数据供应方与平台间电梯数据的灵活交互。接口体系框架图如图2所示。

接口工作流程说明如下:通过Kettle数据ETL工具将第三方电梯数据供应方传来的电梯各项数据按照实时性数据、非实时性数据类别进行抽取,汇总统一处理及存储,利用RESTful API技术高内聚低耦合的特点[6]建立开放、通用的数据接口,实现电梯数据集成平台接口服务,与第三方电梯数据供应方平滑对接。

1.4 接口设计与安全控制

1.4.1 接口设计过程

(1)数据交互流程如图3所示;

(2)数据交互的流程包括:1)规定数据类API访问的URL样式;2)在HTTP请求头中携带数据访问令牌,同时为了保证请求的唯一性,设置一个参数Request-ID,这个Request-ID一般是GUID或UUID那样的全局唯一码;3)将参数根据参数字典排序,并赋以真实值后进行MD5字符串加密,形成Sign(签名);4)构建JSON数据包样式,Post数据到服务器;5)在API服务器上对签名字符串进行比对,无效的数据将返回访问失败;6)签名串比对成功,服务器将响应结果组装成JSON格式数据返回给客户端,并返回200状态码表示访问成功。

1.4.2 接口安全控制

(1)OAuth2.0认证授权。在OAuth2.0协议流的定义下,第三方获取资源必须按照获取认证、获取访问资源令牌、通过令牌获取指定资源的顺序。

(2)IP认证。对于测试应用API,无IP地址限定要求,而对于正式应用,需在开发者中心申请IP地址白名单并经审核,平台只会接受提前认证的IP推送的数据,IP地址白名单以外的IP,无法访问正式应用API。

(3)端口指定。物联网电梯数据交互平台与第三方企业平台以及机构之间约定指定端口进行数据交互。

(4)签名比对。从第三方电梯数据供应方发往API服务器的数据请求,都需要加入签名,签名为MD5加密字符串,签名不符合的数据将视为垃圾数据而不予处理。

(5)规定数据交互的格式。平台与第三方之间的数据交互,需按照指定的数据格式进行传输,对于不合规的数据格式,会被系统视作垃圾数据处理。

2 接口实现与示例

2.1 接口部署

接口部署网络架构图如图4所示。第三方电梯数据供应方以及相关机构的电梯数据首先要经过ETL数据处理,从数据源中取出业务所需的数据,进行数据清洗,把不完整、错误、重复的数据源过滤掉,最终按照预先定义好的数据中心模型,将数据加载到数据中心,把数据转换成信息。数据传输是基于HTTP协议对接API服务器,调用业务API接口,将第三方电梯数据供应方的电梯数据上传至物联网电梯数据交互平台。

2.2 接口调用

2.2.1 创建应用

第三方电梯数据供应方、相关机构以及上级主管部门的开发者需要登录平台,即进入开发者应用中心,创建一个新应用,应用分为测试应用和正式应用两类。开发者在测试应用中上传的数据,系统只会保留72h,之后会被自动清除。而正式应用中上传的数据,即为正式数据,一个开发者应用需要平台管理员审核后,才可以开通。

2.2.2 应用公匙与私匙

当开发者创建了应用之后,开发者可以从“应用>基础信息”中获得应用公匙(AppKey)与私匙(AppSecret),公匙与私匙均为256为DES加密字符串。应用公匙和私匙都是用于表示第三方开发者身份的可公开ID和私有密匙。

2.2.3 获取动态令牌

动态令牌即Token,为操作数据核心加密动态标识,每次访问数据之前,开发者都需要先向API服务器申请动态令牌,申请的格式为:

http://api.hztjzx.cn:9095/api_lift?action=token&appKey=YOUR_APP_KEY& appSecret=YOUR_APP_SECRET×tamp=YOUR_TIME STAMP&sign=YOUR_SIGNATURE。

其中相关参数的意义如表1所示。

表1 URL相关参数解释Tab.1 URL related parameters

返回的JSON文本:

{

"ret_status":{

"ret_code":”200”,

"ret_msg":"访问成功"

},

"ret_data":{

"app_token":"ADEDF45AFF9AFFG345AADFACF F89A23E4",

"token_valid_time":"7200"

}}

其中相关返回参数的意义如表2所示。

表2 返回JSON文本参数解释Tab.2 Parameter description of the returned JSON text

2.2.4 调用业务API示例

以电梯实时预警API为例。该API需在电梯设备检测到运行异常(GBT24476-2017《电梯、自动扶梯和自动人行道物联网的技术规范》所列的故障)后,立即向API服务器发送异常状态数据。如前所述,首先数据上传方需要获取到动态令牌,获取了动态令牌之后就可以调用电梯实时预警API上传数据了。

电梯实时预警API的URL样式为:

http://api.hztjzx.cn:9005/api_lift?Action=lift_alarm

电梯实时预警API的JSON数据包样式为:

{

"req_context”:{

"version": "2.0",

"timestamp":"YOUR_TIMESTAMP",

"signature":"YOUR_SIGNATURE"

},

"req_info":{

"unique_id":"204150",//唯一设备识别码

"device_id":"3110102872020C0151",//设备代码

"internal_id":"18181",//生产商内部生成的事件编号

"service_mode":"0",//当前服务状态

"car_status":"0",//当liftType=1时,为轿厢运行状态,当lift_type=2时,为扶梯运行状态)

"car_direction":"0",//当liftType=1时, 为 轿 厢运行方向,当lift_type=2时,为扶梯运行方向)

"car_position":"1",//电梯当前楼层

"door_status":"1",//关门到位

"passenger_status":"1",//轿内是否有人

"total_running_time":"1000",//设备累计运行时间

"present_counter_value":"100",//设备当前运行次数

"message_code":"01",//信息代码

"message_body":"",//信息说明

}

}

JSON数据包中的字段含义说明如表3所示。

表3 JSON数据包字段含义解释Tab.3 Field meanings of JSON packets

系统返回的JSON文本为:

{

"ret_status":{

"ret_code":"200",

"ret_msg":"数据添加成功"

},

"ret_data":{

}

}

其中相关返回参数的意义如表4所示。

表4 返回JSON文本参数解释Tab.4 Parameter description of the returned JSON text

3 结语

本文针对目前电梯类特种设备数据管理方面进行分析,制定了RESTful API设计的原则,实施构建了物联网电梯数据交互平台的数据服务接口系统,为城市电梯管理行业提供了规范的数据访问格式以及实时连接的数据访问服务。有利于实现第三方电梯数据供应平台、数据分析平台、上级单位之间的互联互通,对于突发情况,各单位能够协调共同处理,提升电梯管理服务水平,为广大人民的生命、财产安全提供了有力保障,提高了政府的服务质量。

猜你喜欢

供应方令牌开发者
称金块
基于看跌期权契约的应急物资采购储备模型
基于路由和QoS令牌桶的集中式限速网关
动态令牌分配的TCSN多级令牌桶流量监管算法
众包环境下基于扎根理论的供应方胜任力模型
iOS开发者调查
iOS开发者调查
栝楼产业开发者谢献忠
供应方在B2B电子市场环境中的营销策略研究
令牌在智能小区访客系统的应用