docker版jxTMS使用指南:以配置化的方式来获取设备数据

本文讲解4.6版jxTMS中如何以配置的方式来获取设备数据,整个系列的文章请查看:4.6版升级内容

docker版本的使用,请查看:docker版jxTMS使用指南

4.0版jxTMS的说明,请查看:4.0版升级内容

4.2版jxTMS的说明,请查看:4.2版升级内容

4.4版jxTMS的说明,请查看:4.4版升级内容

就数据采集系统来说,当外部某个用户通过REST来获取设备数据时,都是根据自身业务的需要来请求多个站点上多个设备的特定数据。这个需求很简单,实现起来很容易。正因为实现起来很简单,而笔者要忙着其它更高大上的功能,对这种业务临时加塞提出的简单需求,加上需要开通的用户也不多,所以都是直接编程来实现的。

但,如果用户逐渐增多,总不可能每个用户都依靠编程来实现吧?!这会导致系统非常的臃肿而且不易维护。

所以,等稍微有空之后,自然就需要考虑通用的解决办法。这个办法当然也很简单,就是配置化,将某用户需要的数据以统一的方式进行配置,然后根据各用户的配置为其提供其需要的数据。

而所谓的以配置的方式来获取数据,其实就是以参数化的方式来读取数据。相应的参数有:

  • 设备名,哪个设备的数据

  • 属性名,要读取的是该设备哪个属性的数据

  • 别名,两个设备的数据可能重名、原始数据名可能不具备业务语义等等,所以可以将其转为一个规范的别名

  • 格式串,设备中的数据是原始数据,但业务上可能需要更为规范的数据,所以可以通过设置格式串将原始数据转换为格式化后的字符串

理清楚了配置化获取数据的工作内容,剩下唯一有点麻烦的就是jxTMS的rest接口提供数据服务,是需要执行授权与访问控制的。由于此种用户都是高度定制化的,即每个用户获取的数据都是不一样的,所以我们前面所介绍的【用户-角色-操作-资源组-资源】的访问控制模式就没必要了,可以简化为【用户-操作-资源】。

因此,配置化的数据获取其需要执行的动作包括:

1、开通用户,包括用户名与密码等基础信息

2、为此用户设置登录频率控制

3、为此用户设置操作频率控制

4、创建一个资源,用于收纳经过配置的设备数据

5、将【设备名-属性名-别名】一一添加给该资源

6、创建一个通用的操作专门用来根据【设备名-属性名-别名】读取并转换为结果数据

7、授权此用户只可以对该资源执行该操作

8、创建一个配置类型【allVDResource】,每个虚拟资源都视为该类型的;一个配置项,可以通过命令行开关:obtainDeviceData来决定是否启动该功能。如果启动,则自动从配置中心获取相应的配置【参考上篇的集中化配置】

4.6版的jxTMS已经实现了上述所有功能,用户只需要使用命令行开关【obtainDeviceData】打开本功能,并通过在主系统web界面下的快捷栏【航标站->新增虚拟设备数据用户】增加新的虚拟设备资源并添加需要的【设备名-属性名-别名】即可。

参考资料:

jxTMS设计思想

jxTMS编程手册

下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:

如何用jxTMS开发一个功能

下面的系列文章讲述了jxTMS的一些基本开发能力:

jxTMS的HelloWorld

相关推荐
东方佑9 分钟前
利用Python自动化处理PPT样式与结构:从提取到生成
python·自动化·powerpoint
橘猫云计算机设计33 分钟前
基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·考研·django·毕业设计
爱的叹息1 小时前
主流数据库的存储引擎/存储机制的详细对比分析,涵盖关系型数据库、NoSQL数据库和分布式数据库
数据库·分布式·nosql
超级小的大杯柠檬水1 小时前
修改Anaconda中Jupyter Notebook默认工作路径的详细图文教程(Win 11)
ide·python·jupyter
2401_840192271 小时前
如何学习一门计算机技术
开发语言·git·python·devops
巷北夜未央1 小时前
Python每日一题(14)
开发语言·python·算法
大模型真好玩1 小时前
理论+代码一文带你深入浅出MCP:人工智能大模型与外部世界交互的革命性突破
人工智能·python·mcp
千层冷面2 小时前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby
ChinaRainbowSea2 小时前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
敖正炀2 小时前
基于RocketMQ的可靠消息最终一致性分布式事务解决方案
分布式