NMOS MS-05-01概述和进展

2022-04-11 19:21:41 浏览数 (1)

来源: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 概述
  • NCA 架构
    • 介绍
    • 组成
    • 类、对象和 API
    • 协议

NMOS MS-05-01 概述

NMOS MS-05-01 定义了用于设备配置、管理和监控的一系列 API,使功能相近的组件共用接口,并支持手动扩展。简单来说,NCA(NMOS Control Architecture, NMOS 控制架构)使用 WebIDL 对一些设备组件(e.g. 传感器、仪表、控制器)进行了类定义,类之间有层次体系和继承关系,并且可以扩展。其中,控制器可以实时侦查系统中所有设备 API,并在运行时动态地重新配置设备。

NCA 架构

介绍

NCA(NMOS Control Architecture, NMOS 控制架构)是一种用于建模多媒体设备,并通过 IP 网络对它们进行控制和监视的架构。关于 NCA,有以下几点需要声明。

  • NCA 只定义用于设备控制和监视的 API,并不考虑基于 NCA 的产品的内部结构,也没有定义控制器或设备的实现标准;
  • NCA 对物理和虚拟设备都适用;
  • NCA 不是必须联网,整个操作体系不依赖于外界数据或代码库,供应商可以自行添加基于外部库连接的功能和云服务;
  • NCA 不是 UI(user interface,用户接口)标准,只是定义了许多应用组件(开关、指示器、放大器等)的抽象概念,以用于 NCA 设备控制模型。是否要将它们表示在用户接口中,由供应商自行决定。

组成

NCA 由两部分构成:框架(Framework)和设备模型(Device model)。

框架(Framework)

框架定义了 NCA 控制和监控的全部功能,以及它们之间共用的机制。又可细分为两个组成部分,控制模型(Control Model)和核心机制(Core Mechanisms)。

  1. 控制模型:包括控制设备的类定义和继承关系,其中涵盖了 NCA 控制和监控的全部功能。每个类都由属性(Properties)、方法(Methods)和事件(Events)三部分构成,其中'事件'描述了对象的状态,并成为一些方法的触发条件。图 1 是 NCA 控制模型的类继承树,其中'Block'定义为对象的容器,且 'Block' 之间可以有嵌套结构,由 ncaBlock 类组织创建;而'Workers'则涵盖了与媒体信号处理相关的功能。
  2. 核心机制:定义了 NCA 所有设备的常用操作和机制,如通信控制、会话管理、并发操作等,下面以通信控制和会话管理为例说明。
    • 通信控制:控制器和设备之间的通信包括三种类型,命令(Command)、响应(Response)和通知(Notification)。控制器下达命令来调用对象功能,随后被控制的对象返回响应;当某个事件发生时,对象会发出通知。需要注意的是,NCA 将控制器定义为一种函数功能,而非物理实体,因此不是在实体设备间的路径传输信息,而是在软件间进行消息传递。
    • 会话管理:NCA 控制是以会话为基础的。也就是说,1)请求和响应是在建立连接的两个对象之间发生的;2)控制器和被控制对象的关系是持续性的;3)设备需要提交报告来订阅控制器;4)当通信发生异常时,对会话是否中断进行了专门的定义。

图1. NCA 控制器类定义树形图

设备模型(Device model)

设备模型描述了如何实例化和配置控制模型和管理模型,并创建一个设备的网络控制 API。在 NCA 中,一台物理或虚拟'设备'对应着一个 NCA API。如图 2 所示,这里将一台设备抽象为一个由 'root Block' 和一系列内部对象构成的整体,涵盖了所有设备控制的功能。实现中,设备模型由相应的 json 文件("blockspec")描述,如图 3 所示,'blockspec'的使用减少了工程开销,提高了基于 NCA 的产品的可交互性和适应性。

图2. NCA 设备

图3. blockspec 文件结构

类、对象和 API

在 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

0 人点赞