基于事件驱动的健康物联数据融合汇聚架构初探

简述

随着传感器微型化,智能手机的兴起,以及 3G/4G 网络的普及使得智能穿戴设备受到了消费者的广泛关注;与此同时,受益于各大智能设备和手机厂商的大力推广和消费者对自身健康的高度关注,穿戴设备在都市人群中变得愈加普及开来。

因此,消费者健康数据的采集这一顽疾问题得到了一定程度的解决,然而针对此类健康数据的个性化服务,却并未随着设备的普及和数据的丰富得到满足。来康平台在产品开发过程中,也通过各种设备采集人体健康数据,形成个人健康档案(PHR),如何通过这些健康数据为用户提供更加丰富和贴近用户实际需求的服务,就显得尤为迫切。

因此,我们开放平台,在这方面进行了自己的探索,开发了一系列组件,形成了一套行之有效的数据融合框架,达到了数据融合贯通,初步满足了用户个性化和多方位数据消费的要求。

一、数据融合框架简介

基于事件驱动的健康物联数据融合汇聚架构初探 图 1 数据融合框架架构图

框架采用微服务架构,通过 PaaS 平台搭建基础服务组件,在此基础上构建规则引擎、事件引擎、智能导航引擎、数据网关和管理后台。

  • 其中数据网关作为内外数据交换节点,通过数据网关进行内外数据交换和分发;
  • 透过 Kafka 作为 MQ,如需数据在线分析,则可将数据转发至 Druid index job,由 Druid 实现 OLAP 处理;
  • 事件引擎,则是作为事件触发器,监听 MQ 中的数据,针对具体事件,触发规则引擎中对应规则,由规则引擎执行对应规则,做出对应反馈;
  • 智能导航引擎则是可以通过识别文字和语音,根据配置的对应意图,给出与之相对应响应,由前端 (APP,WEB,小程序等) 做出前端动作;
  • 管理后台则是用于管理整个框架相关配置项,实现可视化操作,方便业务或者程序猿配置对应组件服务。

基于事件驱动的健康物联数据融合汇聚架构初探 图 2 后台操作界面

二、组件简述

  1. 数据网关

针对数据网关而言,主要目标是实现数据的标准化和内外数据的转换与分发。因此,我们围绕数据转换和数据分发为核心功能,构建可配置化的访问路径,和数据格式。

基于事件驱动的健康物联数据融合汇聚架构初探 图 3 数据网关数据流图

外部请求配置的网关目标路径,通过标准输入层,过滤请求,将请求参数字段通过转换,变成标准输入请求数据格式。

通过响应层的权限认证,由标准输出层进行分发,调用后端 API 接口,获取目标服务响应数据,这里支持多路分发至不同 API,或者是 MQ。

接口服务响应数据,同时也将通过标准输出转换器,转换成外部所需数据格式,完成整个数据处理逻辑。

与此同时,数据网关支持基于数据的简单路由规则分发,如根据某字段值判断其应该向其中目标 API 接口发送请求;

  1. 规则引擎

规则引擎主要实现的是规则集合的管理与执行。允许业务人员通过业务需要定义规则,配置源数据 API 和对应数据规则。通过在规则调用参数获取规则因素,配置各因素响应规则,目前支持因素值判断和 API 调用两种响应模式。

值判断是根据算法 (大于、等于、区间判断等),给出对应结果。API 响应,则是通过规则参数和配置好的数据源参数归集 API 请求数据,满足某些条件时请求对应 API 获取响应数据。

基于事件驱动的健康物联数据融合汇聚架构初探 图 4 规则引擎数据流图

事件引擎充当触发器,由用户行为收集系统,将用户事件推送至 MQ,使用 Kafka SQL 监听具体事件,出发对应绑定规则。

规则引擎则从规则库获取规则配置,分析规则依赖,通过业务规则解析器解析规则,执行器判定因素相关规则执行对应规则动作,获取规则响应结果,并返回给触发器。

触发器根据响应结果,执行最后业务动作。

某些规则可以触发定时任务或者批处理任务,交由 Spark 或者 XXLJob 执行。

  1. 事件引擎

事件引擎是为了灵活处理用户行为事件而开发的,为统一配置事件与规则的绑定关系,自动生成对应消息筛选器,从而针对特定事件触发对应业务规则。并根据规则引擎返回结果,推送对应消息或是做出相应动作,形成事件筛选,规则触发,动作响应三个流程。

在管理平台配置事件和事件与规则绑定关系,发布之后,事件引擎自动生成 KQL,创建新的事件监听 topic,将对于事件消息分发至该 topic,同时创建 consumer,消费处理具体事件消息。

基于事件驱动的健康物联数据融合汇聚架构初探 图 5 事件处理流程

运营人员可对用户行为进行收集,通过规则设置平台设置用户行为参数阀值,并触发相应的业务流程。与此同时,后台可对用户行为数据进行分析与统计

目前支持场景为:

  • 用户行为收集:APP 端功能埋点和外接设备,通过接口发送消息到 kafka, 并存入 druid
  • 用户行为触发:通过订阅 kafka 事件 topic,调用规则引擎,根据用户行为和参数触发相应业务流程,如天气推送、晨间提醒、血压异常、心率异常、步数不达标、设备离手等
  • 运营配置:可通过配置平台设置事件参数阀值、受众对象、推送 / 告警频率(?时长内 N 次)、采集告警时长等,即时生效。支持按用户按数据类型定制规则。
  • 用户标签:定时收集用户数据,提取计算用户标签分组,并实时上传极光平台。
  • 用户数据分析:通过 druid 和 spark 对用户行为数据进行分析,并生成数据视图(用户地域分布、年龄分布、热门 TOP10 内容……等)
  1. 智能导航引擎

该引擎其主要功能是同用户进行基本沟通,并自动回复用户有关来康产品与服务的问题,以达到降低企业客服运营成本、提升用户体验的目的。同市场上同类在线聊天机器人相比,本系统具有更加清晰明确的业务指向,围绕健康领域,提供丰富多样的功能。

通过配置的方式,支持在线智能客服相关功能快速上线;同时集成规则引擎和事件引擎,为用户提供更加个性化的客服服务;如根据用户健康档案,获取其健康画像,根据规则引擎生成更个性化的问候或是健康提醒。

基于事件驱动的健康物联数据融合汇聚架构初探 图 6 智能导航引擎处理逻辑

如图 6 所示,用户语音或者文字输入,会通过自然语言理解模块获取用户意图,通过判断用户因素分解,收集因素属性,然后根据配置意图,调用对应服务模块,给予用户对应的服务响应。

通过问答模板引擎,可以动态配置问题模板,将那些用户意图不明显,或是收集的参数不足时,可以通过问答模板,把未收集齐的参数问题发送给用户,在收集齐后再请求后台,获取对应内容。

如用户说:我要看天气预报。那么我们知道了“天气预报”这个用户意图,但不知道用户是要那个地方的天气预报。那么这个时候,问答模板会问:请问您想知道本地的天气预报嘛?如果用户回答是,那就根据本地定位获取当地天气信息;如用户回答:不是,我想看北京的,NLP 引擎就会提取出“北京“这个属性,然后调取天气预报接口,获取北京的天气预报返回给用户。

  1. 统一管理后台

基于事件驱动的健康物联数据融合汇聚架构初探 图 7 管理后台界面

管理后台界面则是用于管理平台各组件的用户界面,通过向导模式等手段,便于用户自行配置相关规则和事件;从而满足业务灵活变动的需要。

三、场景案例

  1. 用户主动关怀场景

基于事件驱动的健康物联数据融合汇聚架构初探 图 8 用户主动关怀场景

在健康管理这个领域,针对用户的具体数据变化,给予相对应的健康建议。尤其是在数据出现异常时给予及时准确的健康提醒,愈加显得重要。

在传统的应用当中,通常需要将这些业务逻辑由程序员固化在应用代码之中,开发时间长, 可维护性和灵活性相当低,所产生的效果极为有限,仅能满足很少一部分个性化要求。

因此,将业务规则与应用相剥离,形成独立的业务规则,然后将其配置到规则引擎当中,由事件引擎监听用户数据变化,触发对应业务规则,获取与之对应的业务响应。

如用户地理位置发生变化,从常住地上海到北京,那么推送的当地的天气信息结合用户自身健康状况,从知识图谱中获取其应当注意的健康建议,再推送给用户。如此一来,比纯粹的天寒请加衣这种普通的关怀信息,显得更加个性化。

与此同时,通过用户日常行为分析,结合用户画像,亦可以通过匹配该用户喜好,健康特征,推荐养生服务,资讯,商品等信息,促进平台相关业务的用户触达率,进而提升平台销售能力。

通过用户行为收集,使用消息驱动模式,事件引擎作为触发器,规则引擎配置业务规则,可以灵活的部署和应对市场变化,动态添加对应事件响应规则。

亦能快速部署新业务规则上线,后端服务也可以灵活切换;在日益要求快速响应用户需求的现在,灵活部署应用就显得尤为迫切。

规则引擎还通过集成用户信息等相关数据源,使得事件发生时,不必获取全部用户信息,而是由规则引擎配置规则时,配置规则对应所需数据,事件引擎只需要传递用户 ID、事件 ID 和事件值就可以触发对应规则,而无需由调用方获取,有效降低前端交互数据量。

  1. 健康物联场景

基于事件驱动的健康物联数据融合汇聚架构初探 图 9 健康物联场景

来康平台自研了智能健康镜,脉诊仪,智能尿检仪等健康检查设备之外,还引入了第三方穿戴设备。这些设备通过数据网关将用户健康数据统一归集,转换和标准化之后存入 PHR,同时根据规则分发至事件引擎,与此同时也与第三方穿戴设备平台的数据集成,实现了物联设备的数据统一入口。

在此基础上,数据分发功能可以实现多渠道数据分发,通过配置数据来源,分发规则,将指定数据分发至相关需求 API,满足个性化业务需求。

对于实时数据监测和健康预警需求来讲,通过数据网关的消息分发,事件引擎结合规则引擎实现了更精细化更个性化的业务触发,从而实现千人千面的用户反馈。

通过对智能穿戴设备数据的实时监控亦可以在老人等需要间接看护的人群健康数据发生异常时,予以及时的救治,如长时间停留不动,血压、心率等数据异常时,及时通知社区医院医生予以关注,并通过电话及时通知其家属或者社区工作人员,及时上门检查患者身体情况。

目前,该应用已在基层社区医院得到试点,实现了对特殊病人的健康数据的实时监控,智能预警和健康档案管理。

  1. 智能客服场景

基于事件驱动的健康物联数据融合汇聚架构初探 图 10 健康物联场景

在智能客服场景下,需要指出用户可以通过智能客服功能快速获取相关信息,如根据用户位置,获取当地天气预报信息,结合用户健康档案信息给用户推送适合其健康状况的健康信息和生活提醒。

此场景下,规则引擎作为核心组件,通过用户位置信息事件触发天气预告规则,调用获取外部天气信息,而后根据天气预报数据规则,融合用户信息和健康档案数据,调用对应规则,获取个性化关怀信息后及时通知用户。用户同样也可以主动发起问询任务,评估任务等功能。

智能导航引擎可以支持命令式和提问式智能导航。

提问式是使用 NLP 技术判断用户意图,从而可以使得用户可以通过语音和文字形式快速访问来康平台相关功能。通过问答模板的配置,采用多轮对话方式,收集完整相关上下文信息后,获取对应服务内容。如用户需要购买火车票,则可以输入购买火车票。

NLP 引擎判断意图为购买,领域是火车票,但购买火车票需要提供时间,起始站点等信息。通过配置对应问答模板,则智能导航引擎会提问:请输入出行时间,起始站点信息。

如用户输入信息不完整,问答模板则判断缺失信息,再将缺失信息对应问题输出,要求用户输入。

命令式则是配置对应客服命令,如打开健康档案,NLP 引擎意图判断是打开,对象是健康档案,那么就获取对应功能地址,自动获取用户信息并加载对应页面。

原文 

https://www.infoq.cn/article/4OZHeE8tdPe*mMCu9AGN

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 基于事件驱动的健康物联数据融合汇聚架构初探

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址