
前情回顾
系列的第一期介绍了任何事情都要基于一定的社会基础设施去实现,而是否能够依赖更高层次的基础设施往往是决定事情成功的关键。Niagara 作为中间件,就是一个高层次的基础设施,基于 Niagara 做(楼控应用的)开发就要比基于 Java 做开发高效得多。那么明确了基于现有系统做二次开发的意义之后,本期我们介绍三种 Niagara 二次开发的场景,也是开发者课程的主要内容。
Niagara 开发的典型场景
常见的包括以下三种情况:
模块开发
解决“不能”和“不方便”的问题。
不能:
Niagara 作为一个中间件平台,它只能提供一些基础的模块,类似于标准件,但这些基础模块并不是万能的,这也就是为什么机械行业中也有很多“非标件”的原因。那么,当你需要一个 Niagara 上的“非标件”的时候,就只能自己开发了。举个例子,比如需要实现一个模糊控制算法的话就只能自己写。
不方便:
传统汽车的底盘是个非常复杂的系统,之前的特斯拉也是一样,它的底盘是70多个零件焊接而成的;但是现在改用了一体压铸技术,从而将整个底盘变成了一个大零件,这就大大地节省了材料成本和生产时间。回顾一下这个:一张图看懂 Niagara Station

当需要在 Niagara 上做类似的简化时,就要通过二次开发来实现了。比如,对一个冷站做集中管控,这里面会涉及到很多的控制点,复杂的控制逻辑和节能策略;通过基础模块可以搭建,但要花费很多时间,而且维护起来非常困难,这时候可以通过开发集成模块来达到“一体压铸”的效果。

驱动开发
解决更多类型设备接入的问题。
一个中间件平台的适用程度取决于它对其他设备和系统的兼容能力。各行各业中不同厂家的设备实在是太多了,协议更是五花八门多种多样。现在但凡做通用网关的厂家,不说自己支持几百种协议都不好意思和别人打招呼。但实际上其中存在大量的“充数”协议,就像把南城口音和北城口音都要记作两种方言这种统计法。
目前市面大多数网关厂家对“非标”协议的兼容和迭代都是通过定制开发或者破解来实现的。就是说,如果用户需要增加新的协议,要么把协议文本(定制开发)或设备(破解)交给厂家,厂家的开发人员去帮你实现。至于是否收费,那就很难避免了,尤其是项目型的,你就是给厂家钱,人家也不一定给你做。
Niagara 是少有的开放给用户,允许其自己开发协议的平台。几乎在每篇提到驱动的文章里,我都会强调,“无限”的设备接入能力是 Niagara 的诞生之源,也是它最大的亮点,随之而来的问题是,要在这个平台上实现一个哪怕比较简单的协议,也都没那么容易,这也正是开发者课程要解决的一个重要问题。
用户界面开发
解决不漂亮的问题。
不得不说 Niagara 中存在的大量基于 Java 开发的界面看起来确实落后了。但从一个专业从业者的角度看,谈这些界面是否“好看”,那取决于它的对象是谁。真正使用软件的人员,无论是工程调试人员,还是物业运维人员,真的没有多少人在乎软件的颜值,对他们来说最重要的功能 —— 简单、易用、稳定和可靠。
基于 Niagara 用户定制UI开发的两种方式:
一是在 Niagara 平台上开发自己的界面。
另一种是部署自己的、具备良好交互界面的软件平台,将 Niagara 平台的数据作为自己平台的数据输入。也就是将数据的采集和处理通过 Niagara 完成,而数据的持久化存储和可视化呈现都基于自己的平台做。
为什么楼控系统界面要越来越漂亮?
楼控系统的使用者是少数专业人员,不是建筑的使用者,它是基础设施(建筑)的一部分;而基础设施的服务对象是建筑中的用户,目的是让大楼的使用者感到安全、健康和舒适。那么,如何评价这个基础设施的好坏呢?—— 从身体的角度去对比,可以轻易得到答案:
人体的呼吸、消化和血液循环这些基础“后台”系统,它们最佳状态是让你(的大脑)完全感受不到它们的存在;而你一旦感受到了,那就是出问题了。相比之下,味觉、听觉和视觉这些“前端享受”系统,才是需要不停地去主动感受刺激来达到愉悦的。
记得《谍影重重》中,失忆的杰森伯恩和玛丽在餐馆里是如何炫耀自己的基础设施的吗?—— “我可以告诉你门外所有6辆车的牌号,我可以告诉你女服务员是左撇子,还有坐在柜台边的那小子体重是98公斤,没喝多,我知道如果现在需要一把枪那最可能找到它的地方是外面那辆灰色卡车里,我还知道在目前的海拔高度 ,我可以全速跑上800米而手不发抖……”

所以,对一个人的心肝肺这些基础设施来说,究竟是它们的功能重要还是颜值重要?一个“漂亮”的楼控系统,是个好系统吗?如果这个“漂亮”是建立在功能强大且免费的基础上的,那很好;反正让我花钱买漂亮,我是拒绝的。
但为什么业内都在追求漂亮呢?—— Money talks!
这个行业内负责花钱的人,压根儿是不关心,很多也搞不懂“后台”系统的重要性的,反正这些就是不能出问题,出了问题是用软件解决还是用人解决,甚至是解决人,都无所谓,解决就行。但是“前端”是很容易看到和判断的,而且这个评判标准很主观,别人也不好质疑。这个事情像极了小孩子身上穿的衣服,三岁以下孩子穿的衣服,体现的完全不是孩子自己的需求和审美,而是父母的。

另外一个视角看 UI:
物联网要实现的是M2M —— manchine to machine & machine to man。那么 machine to machine 的驱动就是数据传输和转换这样的传统意义上的驱动,machine to man 的驱动其实就是 UI。


