1、项目概述:智能楼宇管理系统(IBMS)是通过统一的软件平台对建筑物内的设备进行自动控制和管理并对用户提供信息和通信服
务。另外对建筑物的所有空调、给水排水、供配电设备、通⻛、消防、保安设备等进行综合监控和协调。使建筑物的用户获得了经济舒
适、高效安全的环境,使大厦功能产生质的⻜跃以建筑物为平台,基于对各类智能化信息的综合应用,集架构、系统、应用、管理及
优化组合为一体,具有感知、传输、记忆、推理、判断和决策的综合智慧能力,形成以人、建筑、环境互为协调的整合体,为人们提
供安全、高效、便利,可持续发展功能环境的建筑。
2、技术路线:
1、采用Java8开发
2、系统运行在J2EE6的标准上,要求J2EE服务器支持Servlet3
3、采用领域驱动模式设计: 系统基于领域驱动模式进行设计,在AxonFramework的基础上进行开
发。Axon是一个轻量级框架,能够帮助开发者通过在架构层面构建可扩展和可伸缩的应用(以
Domain Design Driver面向领域驱动设计为基础的CQRS框架)
4、采用Graphql提供内部数据访问,顶替常用SpringMvc提高系统性能减少TCP握手
5、采用postgresql作为关系型数据库、ClickHouse作为设备数据存储库来应对写多读少
6、采用Redis作分布式缓存
7、采用Duddo、zookeeper为服务治理中间件
8、采用模块化设计,自研高扩展低耦合框架,基础设施沉淀复用、业务流程进行二开
9、采用EMQ社区版本的MQTT服务打通中台与子系统设备交互
10、采用Springboot启动整体项目
3、负责模块
1.MQTT模块:在Agent和IOT中台以插件的形式启动,其中运用无界队列进行排队处理发送的消息,开启一个守护线程专门发送
Agent或者Iot中台产生的事件与命令与处理来自对端的事件与命令。
2.设备模块:利用MQTT Topic模式管理设备整个生命周期其中Iot中台模型抽象为设备网关(设备子系统)、物模型等,配合Agent端
(部署在边缘用户侧也可定义为边缘计算)将设备子系统差异化的设备、服务和场景等,适配转换平台端标准的设备、设备属性、
设备事件、场景和服务对象
3. 数采模块:在工业互联网上设备协议差异化严重,甚至各家会采用自定义的协议,该模块抽象出采集驱动、采集驱动仓储、数据
适配器等。并内置常用的Modbus、OPC等驱动作为可选驱动提供支持,同时支持TCP、UDP驱动扩展转化为设备标准模型通过
MQTT投递到对端
4. Graphlq模块:该模块主要功能根据特定注解在maven编译期间自动生成查询仓储和写仓储的实体schema,大大减少了以往写
Controller繁琐的工作量,专注于业务开发
5. Websocket模块:根据Graphql扩展得来,配合Axon框架的事件拦截,在对应的过去式事件类打上注解标记,如果触发当前事件则
投递到前端,简化了重复编写投递代码
6. Dubbo模块:用于将设备网关服务与Agent端设备控制器、服务控制器各自导入与适配到进程内框架服务仓储进行使用
内容: