设备控制中心热更新备忘

设备控制分为3层:

1、总控层(1)

2、设备类型管理层(n)

3、设备接入层(n)

现在的接入方式:

1、使用Dcom组件方式,将各个组件注册到注册表

2、在config文件夹中添加配置文件,记录各种组件的guid和配置信息

3、“总控层”会连接服务器,获取服务器需要的所有数据

4、读取‘总控层’需要的配置文件,根据获取到的数据决定是否需要启动各个“设备类型管理层”;

5、启动各个“设备类型管理层”,并将该类型需要的数据分发给每个“设备类型管理层”

6、读取配置文件,根据步奏5传入的数据做匹配,决定启动哪个“管理层”下面的设备接入层;

7、启动“设备接入层”,并把设备接入层需要的数据传过去;

8、设备接入层被启动,获取到数据,逐步解析,缓存数据,连接到各个设备。

现有的接入方式的优点:

采用COM组件技术,实现了进程隔离,解决各SDK版本不同可能导致的dll调用方面引起的不稳定;能将内存耗用大的程序独立出来,不会出现单个进程内存不足的情况;隔离各个进程的bug,不因为其中一个进程出现崩溃,导致整个进程崩溃;每个进程独立,有利于调试;


这样的方式会存在的问题:

1、如果这3层中任意一层出现问题,或者出现部分数据的修改,必然需要将整个系统重启,以获取到更新的数据,或者重启子组件。导致在重启过程中,整个系统的异常,无法获取到实时的数据。

2、配置文件方式存在一定问题,因为人为的对数据进行管理,容易出错(当然程序也有可能,但在稳定下来后,就不会再出现)

解决办法:

1、提供热启动的方式,即支持在系统已经启动的情况下,可以动态添加组件,也可以在部分设备数据修改时候,通过重启某一个组件完成缓存数据的更新。

2、去除人为修改配置文件的方式,使用运行组件自动注册到上层服务的方式。

具体方式:

1、父组件提供接口

2、子组件集成一个类,该类负责将类型名,guid通过调用父组件的接口上报给父组件。

3、父组件收到子组件接口调用后,a)做配置文件的匹配和增加删除配置 b)由父组件调用子组件接口传入数据,完成热启动


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值