【架构中的物联网】影子机制
《架构中的物联网》文章主要是记录我在学习和思考物联网架构设计中的思路。主要从架构设计的角度解析物联网业务场景的解决方式。这些解决方式不仅仅局限于物联网领域,我希望能够透过这些设计来看到架构背后的思想。 业务场景 物联网领域中,设备的在线和离线是不可预知的。由于设备所在的网络环境复杂,甚至可能是极弱的网络条件。那么当我们需要读取当前的设备属性时,并不能保证一定可以读到。我们没有办法保证我们对设备的操作一定能够传达到设备中。那么在这种情况下如何保证我们服务的可靠性? 思路 我们如果对设计模式有一些了解,我们会发现有一种设计模式的思路很适合这个业务场景,那就是代理模式。既然我们无法保证操作自己的操作一定生效,那么我们就创建一个设备的代理,在物联网领域中,一般称之为设备影子(Device Shadow)。 设计 那么我们如何来设计设备影子呢?或者说一个设备影子至少需要具备什么能力才能称之为设备影子?我们来梳理一下: 基本需求 设备影子至少要能缓存设备的状态,这个是基本的需求,也就是满足对设备“ 读 ”的需求。 设备影子需要能够处理针对设备的操作并保证最后生效,也就是满足对设备“ 写 ”的需求。 设备影子需要正确处理自身状态,保证和真实设备最终趋于一致。 架构 基于我们得到的需求,我们设计了四个模块: 同步器 :负责与真实设备的同步,主要是解决设备状态的下发和设备状态的检测。 接口层