消息机制
同步/异步
异步:初始确认
定义
官方:第三方系统获取消息后即返回结果不进行数据持久化处理
平台:系统发布消息给平台,平台校验数据即返回
业务特征
第三方需要获取此业务环节的业务数据,为后续流程提供输入信息;但发布系统发布消息后不需要第三方返回业务数据
准实时
业务人员不能及时发现错误,只能由后台记录错误,由IT管理人员发现问题
实现方式
可由第三方厂商在后端服务实现(独立服务),服务不嵌入第三方程序实现,建议用这种方式,降低程序耦合度
后台获取有变化的数据
调用相关的发布接口
可由第三方厂商在业务持久化时实现,服务嵌入到第三方程序实现
在做某个业务操作的时候会同时调用平台的发布接口
适应场景:系统把某个业务过程产生数据给平台而不需要第三方返回的业务数据作业务处理,第三方需要系统提供的业务数据作业务处理
同步:增强确认
定义
系统发布消息给平台,平台校验数据,再调用第三方服务获取计算结果返回给系统
业务特征
系统需要发布消息后获取第三方商业逻辑计算结果,如发布检查申请单获取排号信息(什么时候做检查)
实时性
高,立刻马上
同步订阅方式处理结果可以呈现给业务操作人员,能及时发现问题
实现方式
只能由第三方厂商在业务持久化时实现,服务嵌入到第三方程序实现
同步消息完成后候,请求消息与返回消息可以再通过异步方式让第三方订阅消息
适应场景
系统把某个业务过程产生数据给平台需要第三方返回的业务数据作业务处理,第三方也需要系统提供的业务数据作业务处理
发布/订阅
典型的生成消费者模型
异步模式
发布者发布消息方式
第三方调用平台发布接口进行消息发布
订阅者获取消息方式
推模式实现方式
平台调用第三方厂商服务地址进行推送(按照平台规范实现的服务接口)
拉模式建议实现方式
调用平台订阅拉接口获取消息总数量
数据不为0的时候,调用浏览模式方法获取消息
调用移除模式方法删除消息
采用协议标准
标准
非标准
接入方式
接口(参照52-信息集成平台之服务接口用户操作手册)
接口类型
发布
类别
基于标准发布
单条消息
只有主集
有主子集
主集只能有一条
子集可以有0到多条
多条消息
基于数组
json、XML可发布数组
同一类HL7可发布数组
基于非数组
只有主集
仅交换
特别注意
1、子集外键值与主集主键值需值保持一致,不一致会导致订阅数据没有子集数据
2、消息中数据状态(sourcetype)
数据状态
I
U
D
订阅数据状态由平台决定(入库时平台有没有数据决定)
消息入库有数据为U
消息入库没有数据为I
3、协议类型选择:发布方自身的技术特点选择合适的协议类型
订阅
类别
基于标准
拉
推
仅交换
特别注意
数据状态
订阅方需要根据自身的数据特点进行业务逻辑处理
同步
基于标准
仅交换
共享
通信协议
WS
Http
消息采用Base64编码
发布方需要编码为Base64
订阅方接收消息后需要解码Base64
HttpInoke
消息格式
JSON
一个接口参数
XML
一个接口参数
HL7V3(CDA在交换时等同于HL7V3进行交换)
接口参数
发布者编码:pubCode
消息类别:actionName
消息内容:HL7V3
适配器
发布适配器
订阅适配器
测试工具
RedisClient
52-信息集成平台之服务接口用户操作手册
datatools
发布消息
订阅消息(拉)
共享消息
同步消息
同步消息(仅交换)
订阅消息(仅交换)
微服务
SoapUI
Base64编码解码
监控
大屏监控(monitor)
平台服务状态
业务运行动态
接入最新动态
消息流转
服务错误监控
接入各方职责
平台方
配置阶段
标准配置
数据集配置
共享规范配置
生成下载标准
发布标准给发布方
订阅标准给订阅方
发布者
发布者信息
数据分类配置
订阅者
订阅接口开发前配置
订阅者信息
数据分类配置
订阅接口开发后配置
配置订阅方的订阅接口
同步消息
请求方和发布数据集
响应方和返回数据集
集成验证阶段
验证接入情况
接入错误
数据质量
发布方
获取平台标准
按照平台发布接口规范接口改造
发布验证
订阅方
获取平台标准
按照平台订阅接口规范接口改造
在平台进行订阅服务接口注册
订阅验证