来源:IP Oktoberfest 2021 主讲:John Mailhot 内容整理:赵研 NMOS (Networked Media Open Specification, 网络媒体开放规范) 是由 AMWA (Advanced Media Workflow Association, 高级媒体工作流程协会) 为网络流媒体发布的一系列标准的总称,其中 NMOS MS-05-01 建模了与 NMOS 标准和 JT-NM 参考框架相关的组件和设备。该视频中,主讲 John Mailhot 对 NMOS MS-05-01 项目进行了阐述。
目录
NMOS MS-05-01 定义了用于设备配置、管理和监控的一系列 API,使功能相近的组件共用接口,并支持手动扩展。简单来说,NCA(NMOS Control Architecture, NMOS 控制架构)使用 WebIDL 对一些设备组件(e.g. 传感器、仪表、控制器)进行了类定义,类之间有层次体系和继承关系,并且可以扩展。其中,控制器可以实时侦查系统中所有设备 API,并在运行时动态地重新配置设备。
NCA(NMOS Control Architecture, NMOS 控制架构)是一种用于建模多媒体设备,并通过 IP 网络对它们进行控制和监视的架构。关于 NCA,有以下几点需要声明。
NCA 由两部分构成:框架(Framework)和设备模型(Device model)。
框架定义了 NCA 控制和监控的全部功能,以及它们之间共用的机制。又可细分为两个组成部分,控制模型(Control Model)和核心机制(Core Mechanisms)。
图1. NCA 控制器类定义树形图
设备模型描述了如何实例化和配置控制模型和管理模型,并创建一个设备的网络控制 API。在 NCA 中,一台物理或虚拟'设备'对应着一个 NCA API。如图 2 所示,这里将一台设备抽象为一个由 'root Block' 和一系列内部对象构成的整体,涵盖了所有设备控制的功能。实现中,设备模型由相应的 json 文件("blockspec")描述,如图 3 所示,'blockspec'的使用减少了工程开销,提高了基于 NCA 的产品的可交互性和适应性。
图2. NCA 设备
图3. blockspec 文件结构
在 NCA 中,每个控制对象都有相应的控制 API,API 特性完全由对应的类来定义,一台设备的'完整 API'是指设备中所有对象的 API 集合。很多情况下,我们需要为设备定制专属的控制器,因此需要事先得知其中对象和类的信息,而 NCA 为此提供了丰富的机制,使控制器可以从设备本身或公开网络平台获取相关信息。
为了使控制器获得设备控制 API,需要定义相应的控制协议。目前使用的是 RPC(Remote Procedure Call)协议,并用 json 格式编写数据。未来的协议可能会用其他方式实现 API,但它们的属性、方法、事件和语义相同,由控制模型(Control Model)统一定义。
最后附上演讲视频:
http://mpvideo.qpic.cn/0bc33aaaeaaapaae4tz4enrfbwgdalmaaaqa.f10002.mp4?dis_k=e8ea5677686f06dd22b909595cffced0&dis_t=1649676077&vid=wxv_2324091916394790913&format_id=10002&support_redirect=0&mmversion=false