在某些B 端产品中,会通过安装物联网设备来提高事情效率,比如能耗监测、智能抄表、远程监测等等。如果接入的物联网设备品牌多、各家协议、数据格式不一致的话,那么就须要产品层面设计一个物联网接入模块,这个模块充当业务层和设备层的桥梁,使得业务层无需关心详细接入设备的品牌、协议和数据格式。
有了物联网接入模块后,接入新的设备时就不须要变动业务层的设计了,也就能够减少业务层的开拓事情量,提高全体团队的产出效率。
01 一个反面案例
先给大家看一个没有物联网设备接入模块的反面案例,这样会更好理解为什么须要物联网接入模块。本人曾经打仗过一个物联网监测项目,他们的产品选用的物联网设备只有一个厂家,因此产品设计没有多考虑,开拓这边也是为了尽快上线,于是设计了下面这样的产品架构。

构造很大略,实现起来确实也很快,产品顺利上线了。随着业务的发展,从本钱和厂家设备的质量综合考虑,公司又选了其余一个厂家的同类设备,但问题来了,新厂家的数据格式和之前的厂家的完备不同,为了接入新设备,他们的产品架构变成了下面的样子。
业务模块变“胖”了,须要新的业务逻辑来对接新厂家的数据 API 接口。更为失落误的是,他们的前端页面的字段名称是按照之前的设备写去世的,这就意味着前端运用也须要按不同的厂家类型做适配,如果是厂家1就按厂家1的数据格式展示,如果是厂家2就按厂家2的数据格式展示。
之后,公司又引入了新的厂家,然后开拓同学就“炸锅”了 —— 切实其实便是在人工制造“代码屎山”啊!
引入一个新的厂家,一是全体开拓链条从设备数据 API对接,到业务逻辑处理再到前端页面展示全部都须要随着改动;二是全体业务的代码里面堆积了一堆按不同厂家做的条件判断,越来越臃肿,难以掩护。开拓同学怨声载道,对产品经理的合营度自然会低落很多。
02 问题在哪?
出了问题,自然要看看怎么“甩锅”。那么这里到底是产品同学的问题还是开拓同学的问题呢?个人以为都有问题,但是产品是源头,任务更大一些。作为产品经理,该当要具备业务前瞻性。以这个案例来说,物联网设备属于硬件设备,作为公司运营肯定会考虑硬件采购的本钱,产品的质量、稳定性。因此,很大可能会利用其他厂家的设备更换。
而且,物联网设备有一个很大的特点便是,设备已经支配后,可能分布在全国各个地方,根本不太可能用一个新厂家的设备完备更换已有的设备。这就意味着,产品设计上须要考虑不同厂家设备的共存情形 —— 也便是要能够支持多个厂家的物联网设备接入。
物联网设备接入须要考虑不同厂家的兼容性,须要能够同时接入不同厂家的同类功能设备。
03 如何办理问题?
先讲我们生活中的一个例子。我们知道不同国家的互换电的电压是不同的,有220伏 ,也有110V的。如果直接接入电器设备,电器设备会由于事情电压超出范围而导致烧毁。
这个问题是怎么办理呢?通过电源适配器来办理,比如下图是一个条记本的电源适配器,标明了事情输入电压范围是100-240伏,虽然输入电压颠簸范围很大,但是输出一贯稳定在条记本须要的电压范围内(下图是19.5伏)。
适配器便是办理不同的输入源不影响输出的一个中间设备。受到适配器的启示,软件设计领域就产生了一个“适配器”模式。适配器模式便是将不同的输入转换为相同的输出,从而避免业务层和输入直接产生关系。这样,输入源的改变处理全部由适配器来完成,业务层则无需关心输入源的变动。
对付物联网设备接入,我们会创造和适配器要办理的问题是一样的。因此,对付物联网设备接入,我们该当设计一个适配层,作为厂家数据 API 和业务层的桥梁。这个适配层的职责便是接入不同厂家的物联网设备数据 API,然后转换为业务层须要的标准格式数据。
这样,即便是换厂家、换设备,都只须要变动适配层,业务层和前端都不须要做任何改动。有了适配层之后,我们的产品架构就演化成下面的样子。这种架构下,不管接入多少个厂家、多少种设备,都只须要在适配层进行调度,业务模块和前端无需做任何修正。
图中绘制的箭头是单向的,实际上换成双向箭头也是没问题的。如果业务模块须要下发指令到物联网设备,同样也可以通过适配层将标准指令转换为不同厂家设备能够吸收的相应指令,接入新厂家设备同样也不须要变动业务模块。
04 履历分享
实在上面说的反面案例类似的情形十分常见,涌现这样的问题很大程度上是没有类似的产品设计履历。本人曾经卖力过一个智能电表抄表模块的产品设计,这里面就涉及到抄表、计费、欠费拉闸断电、充值规复通电、手动通断电等等业务。
在产品设计时,由于有适配器这样的观点(实际履历来自做软件开拓时的设计模式),以是提前考虑了做适配层。并且,明确和开拓同学交待要考虑未来新的厂商设备接入。到后面,确实也由于采购成本原因,采购了另一个厂家的设备。由于有适配层的存在,新厂家的智能电表非常快就接入到产品中,而业务层并没有做任何改动。要知道,如果要变动业务层的抄表、计费、通断电指令那开拓的事情量就非常多,而且还随意马虎涌现疏忽导致 bug。
对付物联网设备适配层,常日来说须要下面几个模块:
1)设备档案
设备档案紧张掩护设备的根本信息,个中关键的一个信息便是与厂家平台对接的唯一标识,常日会是设备编号或 IMEI。在产品设计的时候,须要考虑支持移动端登记设备档案以及批量导入。移动端登记是方便设备安装的时候边安装边登记;批量导入是应对大量设备的批量录入,提高效率。
2)接口管理
与不同厂家的对接接口管理,这里有两种处理办法,一是开拓直接在代码层面完成,二是通过页面配置完成。第二种会更繁芜一些,但是通用性更强。
3)数据格式配置
将厂家的设备数据转换为业务模块的标准格式数据,和接口管理一样,一种办法是开拓在代码里完成,另一种办法是通过配置完成。常日,如果是配置会和接口配置一起完成,将厂家的设备数据字段映射到业务模块相应的字段。
非常监控:非常监控包括两种类型,一个是厂家的做事可用性监控,另一个是业务数据层的监控。可用性是防止厂家的做事不可用导致自有业务的不可用;业务数据层的监控是监测非常数据,方便及时创造业务层面的问题。比如我们的智能电表就碰着过一个极度的案例,由于线路故障导致抄表数据非常。
其余,如果你的产品是 SaaS 平台,那么建议是按照“开箱即用”的理念来设计物联网设备接入模块。什么是“开箱即用”?那便是脏活累活由平台运营来做,客户在业务系统中只须要关注业务模块即可。
以我们的抄表为例,我们把设备档案这个最繁杂的事情留给了平台运营层面完成。我们会在平台层面完成设备档案的录入,然后将设备分配给客户的对应的业务单元。到了客户这边,只须要完成业务层面的计费、通断电规则就可以像利用非智能表一样利用我们的智能抄表功能。
05 总结
本篇以实例的办法先容了物联网设备接入的产品设计。可以看到,通过引入适配层可以有效实现多厂家设备快捷接入而不影响业务层。
对付产品经理而言,在做物联网设备接入或者类似的功能模块时,应该具备业务前瞻视野,提前预判可能的变革,在产品设计上引入应对变革的适配层,从而提高产品迭代的速率、减少开拓事情量的同时提高产品的稳定性。
作者:产品海豚湾;"大众年夜众号:产品海豚湾(ID:pm-dophin-bay)
本文由@产品海豚湾 原创发布于大家都是产品经理,未经容许,禁止转载。
题图来自Unsplash,基于CC0协议。
该文不雅观点仅代表作者本人,大家都是产品经理平台仅供应信息存储空间做事。