2019年12月

近十几年来,Ecma International,简称Ecma,因其制定的ECMAScript(也就是大名鼎鼎的JavaScript语言)标准而在国内技术社区名声大噪。事实上,这家成立于1959的行业协会还制定很多其他国际标准,包括C#、Dart语言和CD-ROM,等等。作为一家注册在日内瓦的国际标准组织,Ecma越来越成为头部互联网公司在标准领域发力的平台。

众所周知,Ecma负责ECMAScript标准制定的技术委员会是TC39。2019年6月,在Ecma第117次会员代表(GA,General Assembly)会议上,360被批准为会员并加入TC39,成为TC39成立22年来的第一家中国会员。(1997年,JavaScript 1.1作为提案被提交给Ecma。)

Ecma GA每半年召开一次会议,集体审议并决定协会层面的重大事项。2019年第二次也就是第118次GA会议于12月10号在东京举行。360的GA是赵文博先生,他邀请我一道前往,同时也参加11号举办的TC53研讨会。作为W3C的AC(Advisory Committee) 代表,我也很高兴去增长增长见识,体验一下Ecma的GA会议跟W3C的AC会议有什么区别。

见证阿里、华为和Sujitech加入Ecma

Ecma这次GA会议由日立公司做东道主,会议地点就在品川站的日立公司分部,JR Shinagawa East Building 20层。

会议时间从早上9点到下午5点,中午休息1小时。会议日程多达几十项,包括Ecma一年来重点工作回顾、预算执行报告、会员类别的标准及会费、会员章程及议事规则的修订、外部合作、未来规划、外部不利因素应对,以及各技术委员会主席的年度报告,还有Ecma管理层(Managment)、秘书处(Secretariat)及执行委员会(Executive Committee)人事变动等。当然,还包括投票表决新会员申请。

比如,下图就是包含第117次GA会议接受360加入Ecma成为Associate Member申请的回顾。

- 阅读剩余部分 -

2019年10月21日,作者在“W3C万维物联网标准简介”一文中简单介绍了W3C Web of Things(WoT)工作组制定的WoT标准以及它们的最新状态:

规范当前状态
WoT ArchitectureCR
WoT Thing DescriptionCR
WoT Scripting APIWD,Working Draft
WoT Binding TemplatesWorking Group Note
WoT Security and Privacy ConsiderationsWorking Group Note

本系列将从WoT标准本身出发,对目前已经进入CR阶段(W3C标准的阶段参见下图)的WoT Architecture(WoT架构)、WoT Thing Description(WoT物描述)以及处于WD阶段的WoT Scripting API(WoT编程API)进行一次快速解析。

如下图所示,标准进入CR阶段意味着内容已经相对稳定,WD阶段则意味着较大的不确定性,而Working Group Note(工作组备忘)则变数很大。因此处于CR阶段的“架构”和“物描述”是值得花时间了解的(成为正式推荐标准REC的可能性很大),而处于WD阶段的编程API最近(2019年10月28日)刚刚做了一次大的内容改版,几乎完全废弃了上一版的内容,只能说接近稳定状态,但编程API始终是开发者所喜闻乐见的,所以本系列也会介绍。

W3C Process Document,https://www.w3.org/2019/Process-20190301/#recs-and-notes

1. 物描述简介

WoT物描述,即Thing Description,简称TD,是WoT的核心组件。顾名思义,物描述(TD)就是对物的描述,其序列化(文本化)形式是一个JSON文档。

简单起见,可以将TD看成是描述物及其能力的入口(就像一个网站的index.html)。一个TD的实例由4个部分组成:关于物体本身的元数据、表示如何使用物体的交互可识别功能、方便机器理解的数据交互模式和与物体相关的其他物体或资源的链接。

WoT交互模型定义了三种交互可识别功能:属性、动作和事件 。其中,属性(在TD中以PropertyAffordance类表示),可用于检测和控制参数,如取得当前属性的值或设置某个操作状态。动作(在TD中以ActionAffordance 类表示),对物理(因而耗时的)流程建模,也可用于抽象类似RPC的对既有平台的调用。事件(在TD中以EventAffordance类表示),用于推送通信模型,异步将通知、离散事件或值流发送给接收者。详情可参考WoT架构。

TD提供由URI模式(如httpcoap等)标识的不同协议绑定的元数据、基于媒体类型(如application/jsonapplication/cbor)的内容类型和安全机制(用于认证、授权、保密等)。TD实现的序列化是基于JSON的,其中JSON中的名称(属性/字段)引用预定义词汇表中的术语,同样也在WoT物描述标准中定义。此外,TD的JSON序列化遵循JSON-LD 1.1语法,可以方便扩展和进行富语义处理。

下面展示了一个TD的示例,描述了名称为MyLampThing的物体。

- 阅读剩余部分 -