
本期内容:约1493字、1图
阅读时间:约1分12秒
前情回顾
前两期我们解释了 Niagara 作为一个 Framework 的概况,包括它的运行环境以及总体功能:
Module 和 Component
在进入主题之前,我们先解释一下 Component 的概念,其实在我们前面的系列文章中,有涉及过 Component(组态编程 - 从对象模型到应用程序)。
Component 是组成 application (可简单等同于 station) 的基本单位。而 module 是组成 Niagara Framework 的基本单位。
Component 和 module 二者的关系是:一个 module 中可以有一个或多个 component。
来自 module (jar 文件) 的 component,在 application/station 中可以有多个实例。module 的种类决定的是 framework 的能力 (能与不能);component 的种类和个数,决定的是 application/station 的行为 (做与不做)。
比如, Niagara 软件本身具有 PID 控制的功能 (KitControl.jar module),但是具体到某个 application/station 中,它不一定会使用 PID 这个功能。
Station 的两种状态
运行时状态的 Station 是 Java 虚拟机上的一个进程(Java 对象集合,也就是 Niagara Component 集合);非运行时的 Station 是 一个经过压缩的 XML 文件,叫做 bog (Baja Object Graph)。
二者的关系是这样的:bog 文件是运行时 Station 序列化的结果。相应地,通过对 bog 文件的反序列化可以“启动”一个站点,也就是进入运行时状态。
序列化就是把脑子里的想法用文字或图画记录在小本子上,一方面便于自己日后回忆(重建想法);另一方面也可以借此将想法分享给他人(传递思想)。反序列化就是拿过小本本,将上面的文字和图画读入大脑进行理解。
一张图看懂 Station

在汽车组装厂的生产线上,是根据图纸将汽车所需零部件有序地组装在一起,从而制造出汽车。这里面有两个要素:图纸和零部件。图纸会“告诉”生产线,需要哪些零部件,它们之间的位置关系是怎样的,先后安装顺序是怎样的……这里的“图纸”就是 bog 文件,“零件”就是 Component。(Module就是一个个按零件功能划分的零件库。)
往期精彩

点分享

点收藏

点点赞

点在看




