领域模型事件定义
业务模型说明
说明
事件推送方式分两种
1、通过MQ
(如Pulsar、RabbitMQ;仅私有化部署提供)
对接指南请参考
RabbitMQ对接指南
PulsarMQ对接指南
Webhook
(V6R3版本以上)事件类型
1、平台事件
平台产生的各类事件称为平台事件,主要供外部系统进行消费,与自有系统进行集成。Topic格式为-v1-business-
作为前缀,
2、外部事件
外部子系统推送的事件,非AIoT发出的事件称为外部事件,外部事件需遵循外部事件定义进行推送。以开放接口的方式进行推送,推送接口请参考推送业务事件消息接口
1. 定义
事件与动作,均是业务流转过程中产生的数据,但由于其产生的时机,数据的性质和动作有区别,在使用事件数据源数据时请勿将其与动作相混淆。在这里对事件数据源的数据性质做说明
动作发生 --> 产生事件
,关心此动作发生的消费者系统消费会消费此事件,并在自己的业务场景中使用。tip 使用场景
比如,联动服务作为消费者,消费车辆的进出场事件,当指定车牌号的车辆入场时,触发一系列联动动作。
2. 与动作相区分
tip 说明
动作是系统中主动发起的业务行为,往往是通过主动触发的形式(例如请求API的方式)。比如,A系统要创建一个工单,发起一个创建工单的动作(请求工单系统API)。工单系统API在创建工单动作完成后,产生工单创建完成事件。
3. 示意图
这个简单的示意图说明了动作和事件之间的关系,其中系统A请求API创建工单,这是一个动作。在执行动作之后,工单系统发布了一个事件,供其他系统订阅
1. 对象模型规范
tip 说明
对象模型是用于描述事件属性的抽象化概念,是业务中实际发生事件的数字化映射
1.1 公共属性
属性名称 | 作用 | 说明 |
---|---|---|
消息Id(msgId )非必填 | 消息Id | 消息唯一Id(建议UUID) |
上报时间(reportTs )必填 | 事件上报时间 | 13位时间戳 |
描述(profile ) 必填 | 描述事件的准确类别 | 始终包含的字段包括:appType (代表业务模型的编码;类型:string)poiCode (代表业务模块下更细的分类编码;类型:string)modelId (技术侧定义的payload结构ID;类型:int,通过推送事件接口 推送业务事件消息 时传递此参数) |
事件(events ) 必填 | 定义详细的事件信息 | 1、每个事件支持多级嵌套(不建议嵌套太深如2级以上,建议在不影响理解的情况下尽量平铺);事件之间各自独立的,不要理解为数据结构是同一个 2、每个事件都具有 eventType 字段,用于描述事件类型(1. 通知(大多默认情况) 2. 告警 3. 取消告警);类型:enum/int 3、如果事件发生时间与上报时间 reportTs 不一致,每个事件单独定义事件发生时的时间字段,建议统一约定 参数名为:eventTs 。如果有冲突也可定义其他参数名;类型:long,13位时间戳 |
{
"reportTs": 1661154622,
"profile": {
"poiCode": "s0010001",//此业务的编码
"appType": "parking",//标识这是属于车行一类业务类型
"modelId": 10001//json结构的唯一 标识
},
"events": {
"in": {
"eventType": 1,//事件中的公共参数字段,1代表这是一个普通通知型的事件
"eventTs": 148813512323,//由于进停车场发生的时间早于事件实际上报的时间,故单独定义
"parkingLotId": "停车场id",
"parkingLotName": "达实达实A停车场",
"exitType": 1,
"exitId": "148813512323",
"exitName": "B1东出口",
"plateNum": "粤B12312"
},
}
}
{
"reportTs": 1661154622,
"profile": {
"poiCode": "s0010001",
"appType": "parking",
"modelId": 10001
},
"events": {
"out": {
"eventType": 1,
"eventTs": 148813512323,
"parkingLotId": "停车场id",
"parkingLotName": "达实达实A停车场",
"exitType": 2,
"exitId": "148813512323",
"exitName": "B1西出口",
"plateNum": "粤B12312"
}
}
}
1.2 profile
属性说明
tip 说明
通过profile
属性,可以始终定位到某个业务模型下唯一的一种事件对象,其应用场景包括:
poiCode
/modelId
,自动对不同数据应用不同的数据处理流程;方便后期大数据分析;modelId
获取取对应的对象模型定义,根据模型定义对数据自动进行语义化展示,如 temperature_value: 35
展示为 温度: 35 度
;profile
属性的各个字段做详细说明:appType
持续更新,各开发人员自主在此进行注册
,目前包括:编码 | 说明 |
---|---|
parking | 车行业务 |
walking | 人行业务 |
meeting | 场地预定业务 |
alarm | 告警业务 |
space | 空间业务 |
device | 设备业务 |
org | 组织数据业务 |
projectDevice | 项目设备业务 |
product | 产品业务 |
instance | 实例业务 |
simulator | 模拟器业务 |
user | 用户数据业务 |
customer | 客户数据业务 |
customerPermission | 客户权限数据业务 |
org | 组织数据业务(外部) |
user | 用户数据业务(外部) |
enterprise | 企业数据业务(外部) |
customer | 客户数据业务(外部) |
role | 角色数据业务 |
meetingRoom | 会议业务 |
... | ... |
poiCode
业务模块(功能)类型标识
s
作为前缀(service的第一个字母),设备场景使用小写字母d
作为前缀(device的第一个字母)场景编码
持续更新,各开发人员自主在此进行注册
,现有的各场景的编码分别为业务模块(功能)poiCode对照表
模型名称 | 类型 | poiCode编码 |
---|---|---|
车行模型:车行模块 | 业务模型 | s001 |
人行场模型:人行模块 | 业务模型 | s002 |
场地预定模型:场地模块 | 业务模型 | s003 |
告警模型:告警模块 | 业务模型 | s004 |
空间模型:空间模块 | 业务模型 | s005 |
组织数据模型:组织数据模块 | 业务模型 | s006 |
项目设备模型:项目设备模块 | 业务模型 | s007 |
用户数据模型:用户模块 | 业务模型 | s008 |
客户数据模型:客户数据模块 | 业务模型 | s009 |
客户权限数据模型:客户权限模块 | 业务模型 | s010 |
组织模型:组织同步模块 | 业务模型 | s011 |
用户模型:用户同步模块 | 业务模型 | s012 |
企业模型:企业同步模块 | 业务模型 | s013 |
客户模型:客户同步模块 | 业务模型 | s014 |
排班模型:排班同步模块 | 业务模型 | s0150001 |
排班模型:排班组同步模块 | 业务模型 | s0150002 |
人行场模型:人员进出场 | 业务模型 | s0020001 |
人行场模型:访客签到 | 业务模型 | s0020002 |
安防模型:服务事件 | 业务模型 | s0160001 |
角色模型:角色同步模块 | 业务模型 | s017 |
诊断业务模型 | 业务模型 | s0190001 |
访客业务模型 | 业务模型 | s020 |
门禁业务模型 | 业务模型 | s021 |
会议业务模型:会议室模块 | 业务模型 | s022001 |
会议业务模型:会议模块 | 业务模型 | s022002 |
... | ... |
设备(IoT)业务poiCode对照表
模型名称 | 类型 | 编码 |
---|---|---|
设备模型:设备模块 | 设备模型 | d001 |
产品场景:产品模块 | 设备模型 | d002 |
实例场景:实例模块 | 设备模型 | d003 |
模拟器场景:模拟器模块 | 设备模型 | d004 |
... | ... |
modelId
对象模型ID
持续更新,各开发人员自主在此进行注册
,现有的各业务模型的ModelID分别为ModelID对照表
场景名称 | 场景类型 | ModelID |
---|---|---|
车行场景 | 业务场景 | 1 |
人行场景 | 业务场景 | 2 |
场地预定场景 | 业务场景 | 3 |
告警场景 | 业务场景 | 4 |
空间场景 | 业务场景 | 5 |
组织数据场景 | 业务场景 | 6 |
项目设备场景 | 业务场景 | 7 |
用户数据场景 | 业务场景 | 8 |
客户数据场景 | 业务场景 | 9 |
客户权限数据场景 | 业务场景 | 10 |
组织场景(外部) | 业务场景 | 11 |
用户场景(外部) | 业务场景 | 12 |
企业场景(外部) | 业务场景 | 13 |
客户场景(外部) | 业务场景 | 14 |
人行场景:人员进出场 | 业务场景 | 20001 |
人行场景:访客签到 | 业务场景 | 20002 |
安防模型:服务事件 | 业务场景 | 160001 |
角色数据场景 | 业务场景 | 17 |
会议场景:会议室 | 业务场景 | s022001 |
会议场景:会议 | 业务场景 | s022002 |
... | ... |
设备场景
场景名称 | 场景类型 | 编码 |
---|---|---|
设备场景 | 设备场景 | 1 |
产品场景 | 设备场景 | 2 |
实例场景 | 设备场景 | 3 |
模拟器场景 | 设备场景 | 4 |
... | ... |
业务模块编码
1.3 events
属性说明
注意
事件属性作为业务自定义字段,由各个业务模块自行决定其内容与各字段含义,详见数据标准定义
修改于 2024-11-15 07:22:40