首页 > 其他分享 >JetLinks物联网平台常用的设计模式总结

JetLinks物联网平台常用的设计模式总结

时间:2023-08-17 09:47:15浏览次数:31  
标签:订阅 对象 代理 模式 联网 发布者 JetLinks 设计模式

平台常用设计模式

发布/订阅设计模式(观察者模式)

JetLinks平台的消息处理中心(DeviceMessageConnector)类,使用发布/订阅设计模式将设备消息发布至消息总线内(EventBus),规则引擎(RuleEngine)、设备数据写入时序数据库(TimeSeriesMessageWriterConnector),则订阅消息总线内的数据异步对这些数据做业务流程上的处理。

发布/订阅设计模式是一种常用的软件架构模式,也称为观察者模式或消息传递模式。

它定义了一种发布者和订阅者之间的通信方式,其中发布者负责发送消息,而订阅者负责接收和处理消息。

发布/订阅模式可以用于解决如下问题:

1、解耦:发布/订阅模式可以将发布者和订阅者之间解耦,从而降低系统的复杂度和维护成本。

2、扩展性:通过发布/订阅模式,可以轻松地增加新的订阅者和发布者,从而实现系统的扩展性。

3、异步通信:发布/订阅模式支持异步通信,发布者可以将消息发送出去后立即返回,无需等待订阅者的响应。

4、可靠性:通过将消息发送到特定的主题,可以确保只有订阅了该主题的订阅者才能接收到消息,从而提高消息传递的可靠性和安全性。

5、转换和路由:通过发布/订阅模式,可以对消息进行转换和路由,消息可以被多个订阅者接收并进行处理,从而实现更加灵活的消息传递。

 

代理模式

平台接口权限、数据权限、访问行为、日志记录等部分使用AOP切面编程实现了相似的行为逻辑。

代理模式是一种结构型设计模式,它为其他对象提供了一种代理以控制对这个对象的访问。通俗点说,代理模式就是在访问对象时引入一个代理对象,并由代理对象控制对真实对象的访问。

1、代理模式可以增强系统的安全性。代理对象可以控制对真实对象的访问权限,从而保护对象不被非法访问。

2、代理模式可以降低系统的耦合度。代理对象可以隐藏真实对象的实现细节,从而达到解耦的目的。

3、代理模式可以提高系统的性能。如果真实对象比较耗时或资源消耗比较大,代理对象可以在必要时进行缓存和延迟加载,从而提高系统的性能表现。

 

策略模式

策略模式是一种行为设计模式,它允许在运行时选择算法的行为。通过将一系列算法封装到单独的对象中,并使它们可以在不改变其外部行为的情况下相互替换,从而实现了算法的灵活性。这种灵活性可以通过运行时动态地选择不同的算法来达到最佳性能或其他目标。在协议包开发时(如上报多种报文信息信息时),推荐使用策略模式

 

责任链模式

责任链模式是一种行为设计模式,用于将多个对象组合成一个链以依次处理请求。当一个请求进入这个链时,每个对象都有机会对请求进行处理。如果一个对象无法处理请求,它会将请求传递给下一个对象,直到有一个对象处理请求为止。

平台的数据权限使用的责任链模式来处理资产权限绑定、以及资产数据查询数据可见范围。具体可参考CompositeAssetsHolder类。

 

原文链接:https://hanta.yuque.com/px7kg1/nn1gdr/vnhqwkkitee2m5bb

 

标签:订阅,对象,代理,模式,联网,发布者,JetLinks,设计模式
From: https://www.cnblogs.com/heyi-77/p/17636756.html

相关文章

  • 15 模版方法模式 -- go语言设计模式
    15模版方法模式--go语言设计模式模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤模版方法模式的实现代码packagemainimport"fmt"//抽象类,制作饮料,包裹一个模板的全部实现......
  • 【小竹摘抄】我的互联网方法论 ----周鸿祎自述 摘抄(4)
                  第四章免费时代  推荐理由:现在互联网世界到处在喊免费。哪些是真,哪些是假?腾讯,阿里,滴滴打车等甚至每个用户贴20块钱来培养用户的支付习惯。那免费时代的玩法是什么呢。。。 1.      传统经济的本质就是低买高卖2.      ......
  • 机器是否联网的javascript的判断方法介绍
    在很多场景下,只有机器已经联网以后,web应用才能启动。如果没有联网,就会提示错误。、但是机器有时候要重启。如果机器重启后,立刻启动web应用的话,可能,机器上的网络服务还没有准备好。特别是windows7,启动网络服务需要好几秒,这个时候怎么办呢? 之前尝试过几种方法:比如通过ping来判断,......
  • 对互联网酒店预订系统项目进行整体划分
     八.有条不紊:对互联网酒店预订系统项目进行整体划分  更多博客内容访问火龙蛋博客,点击了解详情 1、开篇上节课我们对互联网酒店预订系统需要使用到的基础组件进行了介绍,包含了响应包定义、数据库访问、缓存、微信消息推送等。这些功能作为课程的基础,辅助我们实现R......
  • ThingsKit物联网平台模拟网关+子设备MQTT接入
    准备工作MQTTX设备模拟工具下载MQTTX是由EMQ开发的一款开源跨平台MQTT5.0桌面客户端,它兼容macOS,Linux以及Windows系统。MQTTX的用户界面UI采用聊天式设计,使得操作逻辑更加简明直观。它支持用户快速创建和保存多个MQTT连接,便于测试MQTT/MQTTS连接,以及MQTT消息的订阅和发布。M......
  • ThingsKit物联网平台模拟HTTP设备接入
    准备工作POSTMAN设备模拟工具下载POSTMAN是一款支持HTTP协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好。无论是开发人员进行接口调试,还是测试人员做接口测试,POSTMAN都是首选工具之一。Postman平台创建虚拟设备创建直连测试产品:::info......
  • ThingsKit物联网平台模拟TCP设备接入
    准备工作TCP设备模拟工具下载NetAssist网络调试助手,是Windows平台下开发的TCP/IP网络调试工具,集TCP/UDP服务端及客户端于一体,是网络应用开发及调试工作必备的专业工具之一,可以帮助网络应用设计、开发、测试人员检查所开发的网络应用软/硬件的数据收发状况,提高开发速度,简化开发......
  • ThingsKit物联网平台模拟直连设备MQTT接入
    准备工作MQTTX设备模拟工具下载MQTTX是由EMQ开发的一款开源跨平台MQTT5.0桌面客户端,它兼容macOS,Linux以及Windows系统。MQTTX的用户界面UI采用聊天式设计,使得操作逻辑更加简明直观。它支持用户快速创建和保存多个MQTT连接,便于测试MQTT/MQTTS连接,以及MQTT消息的订阅和发布。M......
  • ThingsKit物联网平台意见反馈(管理员)
    概述用于接收移动端的用户需求反馈,默认只有超级管理员才有权限操作。:::warning......
  • ThingsKit物联网平台平台通知管理之发送通知管理
    在ThingsKit物联网平台内部向自己管理的用户发送平台通知。新增点击新增通知,填入想要发送的通知基本信息,确认。通知管理参数参数说明类型类型选择公告、会议、其他必选||标题|通知消息标题定义支持输入的格式:中英文、字符、数字支持输入的长度限制:36个......