things-framework

物联网旨在增强人们掌控万物的能力。

物联网物模型框架

物联网物模型框架(things-framework),基于物模型DSL设计思想,抽象物联网设备服务,事件和属性,以物模型消息驱动的物联网框架。旨在解决以下物联网开发的痛点:

物模型特定设计语言(DSL)是设备抽象的唯一标准,物模型消息是通讯协议统一规范,一切以物模型为驱动力。

版权声明

版权私有,未经授权,不得商用。

软件工程架构

物模型框架架构拓扑图

架构设计上,遵循SOLID原则进行设计,职责上,负责设备的连接、物模型适配、物模型消息网关、物模型业务应用、框架接口隔离、基础设施反腐隔离。

物模型引擎核心逻辑图

物模型引擎基于注解、反射、动态代理、事件驱动、依赖注入实现的物模型消息驱动的执行引擎框架,核心逻辑上是对所有物模型注解的类和方法进行扫描并缓存对象好函数、可根据物模型引擎扫描的信息生成物模型JSON结构,以服务调用为例,当接收到物模型消息之后,进行消息的解析,进行链式处理(拦截、处理、过滤),调用服务时、将查找对应的Bean和Function,并进行参数转换填充,然后函数调用并返回结果,如果是异步便将结果请求到客户端的物模型端点。发布物模型事件时,也会基于物模型事件对象的注解转换成物模型消息结构,并向上游服务发布。

物模型网关核心逻辑图

物模型网关的核心逻辑是基于Apache Camel实现的多组件的消息接收、拦截、路由、处理和分发,只要Apache Camel支持的组件都将可以接入物模型网关,都可以输入物模型消息和接收物模型消息及事件。物模型的消息处理包括消息转换,过滤,安全验证,会话管理,路由分发,持久化,物影子保存,物模型实例管理,物模型消息订阅发布,日志追踪,事件溯源,负载均衡,通用设备连接(如WebSocket),规则引擎,设备场景联动等能力。

快速集成

集成条件

引入依赖

implementation 'cn.huangdayu.things:things-spring-boot-starter:2024.1.0'