# 概念和术语

为了你更方便的使用HanClouds的服务,这里介绍一些HanClouds里的一些概念和术语,理解这些概念有利于你更好的使用平台。

# 平台概念

  • 用户:表示瀚云平台的用户,可能为企业用户,也可能为创客、开发者用户。用户可以通过在瀚云平台注册生成,每个用户都有自己独立的用户级鉴权参数。注册时需要提供手机号,注册成功后即成为瀚云的用户。
  • 项目:用户注册完成后,登录HanClouds控制台即可创建项目,有了项目才能进行产品管理、设备管理等其他操作。
  • 产品:用户通过HanClouds控制台,可以在项目下创建产品。产品可以理解为同一种设备的集合。设备必须归属于某个产品,每个产品有自己独立的产品级鉴权参数。
  • 数据模型: 用户需要先在HanClouds控制台定义数据模型,后续才能上传数据、事件和下发命令。数据模型在产品下定义,包括数据流、事件、命令三种,相当于数据格式的定义。
  • 设备:表示一个具体的设备,其一定归属于某个用户下的某个产品。设备代表和平台进行交互的硬件在平台上的逻辑实体。每个设备在平台上有唯一的标识,全局唯一,在文档中称呼为DeviceKey。
  • 数据流:一个设备可以上传多种类别的数据,每个类别的数据随着时间推移会不断上传数据,逻辑上就像一个随着时间不断产生的数据流,所以称之为一个数据流。如一个车联网设备,其以固定的时间间隔向平台上传两类数据:gps数据和行车电脑的数据,则我们称这个设备有两个数据流。
  • 数据点:设备上传的数据流中的一个实例称之为数据点。比如设备每10秒钟上传一次gps数据,则数据流名称为gps,某个具体时刻的gps数据为一个数据点。
  • 数据类型:表示设备上传的数据点的具体类型,目前有:json、int、double、bin、string这5中类型。在项目文档中称呼为dataType。同一个数据流中的所有数据点必须为同一个类型,如gps数据流中的所有数据点的格式都是一致的。特别说明:如果类型是json,其json schema应一致。
  • 事件: 设备上报的事件分为info、alert、error三种,事件属于需要特别关注的一类设备上报数据。
  • 命令:应用通过平台下发给设备的数据我们称之为命令。因为这类数据大多数是控制指令,所以用命令专指通过HanClouds平台的下行数据。在实际使用中,下行数据可能不是现实意义上的命令,可能是配置设备参数或者简单的参数传递等等,但称呼上,都称之为命令。
  • 推送:第三方应用侧通过mqtt协议订阅设备的数据或者事件后,平台就会把匹配订阅条件的设备数据或者设备事件实时推送给应用。推送采用mqtt长连接的方式,采用发布订阅模型。在HanClouds上把设备数据和事件向应用侧的实时传递我们称之为推送,HanClouds内部有一个专门的推送平台接受外部订阅。
  • 数据订阅:第三方应用可以通过kafka客户端订阅设备上报的数据。在订阅时需要产品级的鉴权参数用于登录认证。该服务需要用户先在HanClouds控制台上申请开通,开通成功后,HanClouds将生成一个秘钥,用于后续数据传输时加解密。
  • 设备档案: 表示设备的静态属性数据。例如工业设备的型号、所在地、操作者、所属生产线、所属工厂、所属流水线等信息数据。描述这些静态数据字段信息的内容我们称之为档案模板,一个具体设备的某条档案数据我们称之为设备档案。设备档案在后续可以参与到流计算过程中。
  • 设备序列号:用户提供的设备在某个产品下的唯一标识,如设备MAC地址或者设备出厂序列号等等。设备序列号在项目文档中称之为sn,在一个产品下,sn和deviceKey一一对应。

# 平台术语

  • userKey: 用户身份在平台上的唯一标识,为字符串类型,全局唯一
  • projectKey: 用户创建的某个项目在平台上的唯一标识,全局唯一,字符串类型
  • productKey: 用户创建的某个产品在平台上的唯一标识,全局唯一,字符串类型
  • deviceKey: 设备在平台上的唯一标识,字符串类型,全局唯一
  • sn:设备序列号,在某个产品下唯一,与该产品下deviceKey一一对应