一、笔记时间
2021年7月11日
二、详情
协议要不要分终端?如果就这么问的话,大部分的答案会是要分终端,因为便于相关业务的维护。
但我认为这并不适合所有产品,而是非常适合平民化的大众产品。如果我们产品是非常专业化和小众化的小型嵌入式产品是否还应该把协议区分不同的终端?我认为这样就不一定需要区分了。当然这里的前提条件是通信硬件条件相同、相通的情况下,比如都是通过网络通信的方式。像一部分是串口通信、一部分是网络通信的这种就不在我们今天讨论范围之内,因为他们硬件条件就难支持。
接下来以我手里现在的产品为例,来聊一下我们的今天话题。我们的产品是一个医院的小型嵌入式产品,也可以叫物联网产品。我们产品当中有几个终端都是通过局域网的网络进行通信的,这几个终端分别是设备上的安卓一体机、挂墙上的大屏电视、Windows电脑上的控制台软件。
当我们在做协议的时候,有人建议把这几个终端的协议独立开来,但我依然选择了不区分终端而是只做一套协议。原因有以下几点:
-
我们产品是一套小型的嵌入式产品。为什么说我们的产品是小型嵌入式产品呢?从硬件上来说我们的产品只是由几个简单终端和相关硬件合成的产品,它的硬件占用面积不是很多,数量也不是很多;从软件上来说,我们的服务器软件只是针对于我们这套产品,非全院化的产品。几乎不可能出现其它商家的产品接入我们产品的情况,顶多会出现我们多个小型嵌入式产品公用这一个服务器的情况。
-
我们这几个终端的业务是糅合到一起的,他们没办法相互独立,只有这些终端组合到一起才是一个完整的、能工作的产品。这里说的是我们的产品虽然有三个终端,但是他们没办法独立工作,独立工作也不成产品,独立工作产品的功能是残缺的,可以说是如果独立工作它们啥也不是。这几个终端一定要一起使用,才是一个完整的产品。这就像我们的公司一样,有人当老板、有人做管理、有人做销售、有人做研发、有人做财务等等,这些人和部门组合到一起才是一个公司,分开就不难叫一个公司了。
-
这几个终端中有些终端协议需求量很小,比如大屏电视就只有很少的协议。这里说的是我们虽然有三个终端,但是这三个终端各自负责的业务不一样,所以使用的协议量也不同。这几个终端当中大屏电视的最少,安卓一体机的次之,Windows控制台的协议最多。
-
这几个终端当中有很多协议是可以复用的,这样能够尽量的减少开发周期。这里是说我们的产品虽然分工不同,但是他们是属于相互依存的同一个产品,因此他们之间有很多协议是复用,比如用户登录、注册、相关信息的查询等等,这些都是多个终端共有的功能和协议。只有很少的一部分功能是绝对的依赖终端的,这取决于用户使用场景和习惯等。
-
虽然是多终端,但是有些终端的业务是通过账户来进行区分的,也就是说我们提供给客户的应用软件是一样的。这是因为我们产品虽然是区分了多终端,但是我给用户的软件并没有这么多各应用安装包。比如说我们使用了安卓电视,那么我们的安卓电视和设备上安卓一体机的应用安装包是一样,我们只是通过软件配置和账户来区分不同终端,以便来为用户展示不同的功能。
-
我们产品是一个医疗产品,是一个专业化的产品。这就与我们的产品性质强关联了,我们的产品是为医院定制的,因此我们的产品可以算是一个专业的医疗产品。这需要体现足够的专业化,同时需要解决医生、护士等长期面对产品带来的一些厌烦感等问题。所以从产品本身的性质来说我们就不可能是一个全面产品,一定是一个专业化的小众产品。
-
我们的产品是局域网使用居多的场景,也就是使用群体很小众的产品。这里是从另一个方向来论证我们的产品是小众产品,因为医院本身的特殊性,我们医院的产品很少能做到全国联网和全国共享。所以我们的产品更多的情况是在医院本身的局域网内使用,从这一点看,我们的每一个产品从卖到医院开始,他就是一个非常独立和固定的使用场景,是很少一部分人使用的产品,而且这部分人的特性非常明显。
我从以上几个方向来论证了我们的产品当前并不适合把这几个终端的协议区分开来,但是如果我们以后在这个基础上去拓展微信公众号、微信小程序、随身携带的安卓手机、随身携带的苹果手机、平板、公有云等产品和业务的时候,这些协议大部分是需要独立开来与我们原有嵌入式产品进行区分的。
也欢迎大家发表意见,相互讨论和成长。
网友评论