Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Special Column 专栏·试点示范 IM

振华重工对 RESTful 协议的支持与应用


朱 廷,贲道伟
(上海振华重工(集团)股份有限公司智慧集团,上海 200125)

摘要:基于振华重工最新的软件成果,本文描述了振华重工基于 RESTful 协议的一系列支持和应用。支持主要包括基于


RESTful 协议的微服务平台,UA RESTful 插件以及多种应用 RESTful API 的产品,如 ZPMC SCADA,WEB CMS(SCADA
网站)。RESTful 是一种新的设计风格,新的设计标准,主要特性有接口安全高效、前后端分离、支持多平台、具有完备
的接口编辑和测试方案。采用 RESTful 协议,数据接口更加安全、简便、高效、统一、灵活,对码头设备的监控产品更加
稳定,可以在线运行的数据量变得更大。
关键词:RESTful;微服务;SCADA

1 引言
转换,REST 指的是一组架构约束条件和原则,支持分布
式架构 [2]。
伴随着移动互联网的发展,Restful 作为一种基于分 2.2 RESTful API 的优点
布式架构,标准的 API 越来越普及,它小巧轻便,易于 REST 是一种设计风格,REST 包括几个重要的设计
扩展,低耦合,支持各种平台发布。为了满足多种移动 原则 [3]:①资源可以是视频、图像、文本等,抽象所有
应用对码头设备的监控数据的分发,振华重工设计了标 的物品作为资源;②每一个资源都有用一个 URI 作为唯
准的服务接口 API,使用云平台微服务和传统 UA REST 一的资源标识符;③每个资源的操作使用统一的接口,
实现了该服务系统的 API,并使用接口测试工具 Postman 使用 HTTP 协议,使用 HTTP 协议的 post、delete、put、
进行了测试 [1]。 get 方法进行增、删、改、查操作;④对资源的操作是无
状态的并且每一个 HTTP 请求之间是相互独立的。
2 RESTful 协议介绍 简单来说,REST 是一种使用 URL 来定位资源,使
2.1 概述 用 HTTP 请求描述操作的 Web 服务规范。基于 RESTful
前端和后端程序共同组成了网络应用程序。当前的 API 的分布式监控系统有以下优点:①前后端分离,和前
发展趋势是前端设备层出不穷。因此,必须有一种统一 端无关;②没有和操作系统绑定,可以支持多种操作系统,
的接口方案,方便不同的前后端设备进行沟通。RESTful 支持多种语言;③完备的软件支持方案,支持 Swagger
API 就是目前较为成熟的互联网应用程序的 API 设计理 Editor 在线编辑,便于 API 的共享。
论。REST(Representational State Transfer)表述性状态

投稿网站:tougao.idnovo.com.cn 2022年第6期 · 53
IM 专栏·试点示范 Special Column

用性,弹性伸缩。微服务还包含如下优点 [5]:①系统逻辑
3 基于 RESTful 的服务平台 清晰,每个程序员的职责明确,上手容易;②灵活性高,
3.1 微服务架构 服务组件积木式搭建,扩容缩容方便;③技术异构,一
振华设计了基于 RESTful 的微服务设计,将业务逻 个系统可以使用多种语言;④持续集成容易,修改一行
辑划分为小块的服务,服务之间是解耦的,服务之间使 代码不用发布整个系统,无感知更新;⑤高可用,服务
用消息队列,RESTful API 通信,提供每一小块服务的程 可熔断、降级,局部故障不影响核心功能。
[4]
序可以使用容器封装,分布式管理,可弹性伸缩 。微服 3.3 微服务的缺点
务架构如图 1 所示。 微服务有如此多的优点,但同时也存在如下缺点:
3.2 微服务架构的优点 ①服务太多,难以定位故障;②服务太多,运维工作量大;
采用微服务架构可以做到临时使用、单体应用、即 ③消息中间件、RESTful API 性能不如内存复制。由于工
开即用,覆盖码头各类场景,并且做到大数据量,高可 程不需要反复变动,整体来看利大于弊。

图1 微服务架构

3.4 UA RESTful 的支持 集点数提升一个数量级(20 万点),能有效提升单点能力;


UA RESTful 是在 ZPMC OPC UA Server 基础上封装 ④ 通 用, 采 用 跨 平 台 技 术, 同 时 给 出 了 Windows/Linux
的一套 RESTful 接口支持,其技术特点主要体现在以下 两套服务软件,并且采用了容器技术方便运维;⑤灵活,
[6]
几点 :①安全,采用 TCP/IP 协议的固定端口服务,对 采用新的插件技术,将通讯、日志、模拟数据等共用组
防火墙友好,同时支持用户名密码及证书连接机制,保 件公共化,给每个驱动赋能。
障安全性;②简便,集成了实时、历史及报警功能,以 3.5 RESTful API 的具体实现
及统一的配置调试工具,方便工程制作与部署,大大提 RESTful API 架构如图 2 所示,Redis 主要用于存放
升现场实施效率;③高效,支持 64 位架构,将单服务采 各个码头设备的实时状态数据及报警数据;History DB

54 · 2022年第6期
Special Column 专栏·试点示范 IM

主要用于存放各个码头设备的历史状态数据及报警数据; 用;码头设备的数据通过 MQTT 协议上传至智能平台的


Mongo DB 主要用于存放各个码头设备的传感器数据; MQTT Server 中。
平 台 对 外 提 供 Restful API, 供 Web GUI 或 其 他 服 务 调

图2 RESTful API 架构

3.6 RESTful API 的设计 以实时数据为例,我们用 BrowsePort,BrowseMachine


以 RESTful 为标准,定制了一系列 API 标准,包括 查询所有码头和机器列表,用 BrowseItem 查询所有数据
实时数据、历史数据、实时故障、历史故障;支持订阅功能、 列表,ReadItem 读取数据项。RESTful API 示例见表 1。
统一登陆、在线状态查询等一系列功能。

表1 RESTful API 示例

API http://127.0.0.1/v1/browse/ports?=nansha-dev

Value [“NanSha” ]

API http://127.0.0.1/v1/browse/machineries?portName= NanSha

Value [“RC107” ]

API http://127.0.0.1/v1/browse/items?portName=NanSha&machineryName=RC107

Value [“BMS.CurrentCmdGantryPos”]

API http://127.0.0.1/v1/item/value/ToDataCenter.CMSLowSpeed.LowSpeed1800?portName=NanSha&machineryName=RC107

{
“itemName”: {
“portName”: “NanSha”,
“machineryName”: “RC107”,
“itemName”: “BMS.CurrentCmdGantryPos”
},
Value “quality”: false,
“timestamp”: “2022-04-29T11:48:34.459833Z”,
“value”: {
“isArray”: false,
“dataType”: “uint32”
}
}

投稿网站:tougao.idnovo.com.cn 2022年第6期 · 55
IM 专栏·试点示范 Special Column

4 基于 RESTful 的应用
监控系统各组件运行状态,出现节点故障、负载过大等
异常情况时,运维人员可以快速发现并定位问题,保证
4.1 ZPMC WEB CMS 系统在线。平台可以适应各类公有云及私有云环境,对
新一代 ZPMC WEB CMS 平台整合了边缘数据采集、 于 大 数 据 量, 融 合 多 码 头 数 据 等 业 务 场 景 拥 有 巨 大 的
数据流处理、故障告警、历史数据存储等全流程数据层 潜力。
功能,为 Web 应用提供丰富的 RESTful 数据接口,包括 4.2 ZPMC SCADA
数据点的读写、订阅,以及数据点定义的在线更新接口。 ZPMC 作为振华重工历经十多年研发和应用产品,
通过 MQTT 协议,平台支持百毫秒级的实时数据采 支持 OPC、UA 数据协议,在最新的 RESTful 协议提供
集,在上层 Web 应用内实时呈现。同时支持灵活的故障 之后,加入了对 RESTful API 的支持,我们采用轮询的
表达式定义,无需工程配置,直接在用户浏览器即可进 方式,对原来的接口做出了修改封装,在不改变原逻辑
行故障点定义和更新。经过 Kafka 消息分发,流处理功 的情况下,无缝衔接了新的 RESTful 接口 [7,8]。
能提供额外的数据处理、分析能力;历史功能则通过历 4.3 分布式监控的具体实现
史数据库存储、备份完整数据,保证任意数据可追溯。 如 图 3 所 示,RESTful 服 务 支 持 跨 平 台, 可 以
运 用 云 原 生 开 发 理 念, 借 助 Kubernetes 生 产 级 容 在 Windows 和 Linux 上 运 行, 提 供 了 OPC、Alarm、
器编排系统,使得平台具备弹性伸缩,故障自愈能力。 UA 等 服 务, 客 户 端 支 持 网 站、 传 统 PC 客 户 端 和 微
同 时 集 成 Prometheus 监 控 系 统 及 EFK 日 志 系 统, 实 时 服务。

图3 分布式监控架构

5 结束语 数 据 资 源 交 换 系 统 设 计 与 实 现 [J]. 航 空 电 子 技 术,
2021,52 (2):32-38.
本文提出了基于 RESTful API 的微服务云平台的应
[4] 付一达.基于 RESTful 的工业机器人安全测试管理系
用,作为 UA 接口插件的 RESTful API 的第三方支持,基
统 [D].哈尔滨:哈尔滨工业大学,2021.
于 RESTful 的分布式监控系统,跨系统、跨平台进行软
[5] 王昊,特日根.基于 RESTful Web API 服务架构的遥
件监控。致力于解决码头用户的智能监控需求,提供更
感影像检索技术研究 [J].电子技术应用,2021,47 (5):
多便捷的数据监控接口,稳定的架构,大数据、大容量
82-85,91.
的数据支持,为振华的硬件服务保驾护航。
[6] 郭 昌 松, 常 奋 华, 程 丽 平. 气 象 服 务 API 的 设 计 与
参考文献 实现 [J].福建电脑,2020,36 (7):116-117.
[7] 李富合,高东林,曹宁生.基于 RESTful 的中间件服
[1] 刘明青,朱国宾,陈西亮.基于 HATEOAS 约束的地
务 化 体 系 结 构 及 关 键 技 术 研 究 [J]. 舰 船 电 子 工 程,
理空间信息 RESTful API 设计探索 [J].地理空间信息,
2019,39 (7):113-118.
2022,20 (1):42-45,7.
[8] 付敏峰,于林海.多终端 Restful API 框架设计研究及
[2] 伍晓峰,钟森鸣,郑路.RESTful 风格的职教实训视
图书漂流系统应用 [J].电脑知识与技术,2020,16 (15):
频教学平台设计与实现 [J].广东技术师范大学学报,
4-7.
2021,42 (6):61-67.
收稿日期:2022-05-19
[3] 殷 华 杰, 王 凯, 高 平. 基 于 RESTful Web Service 的

56 · 2022年第6期

You might also like