数据看板的动态截图推送方案

1. 技术背景

如何全面地分析数据,可视化的展示数据分析结果,并及时有效将关键数据传递给用户,是互联网时代的商业智能(Business Intelligence)所关注的核心问题。BI分析工具已经不再仅仅是分析和展示数据的工具,而为向自动化和智能化演进,希望可以主动地把数据结果传递给用户。因此,数据看板通过截图的形式被主动推送给相关用户便是一种及时且有效的数据分析结果触达到用户侧的方式。

2. 现有技术方案

目前现有BI产品中看板推送的主要技术方案为利用浏览器内核对数据看板的URL(Uniform Resource Locator,统一资源定位器)进行页面渲染再截图的处理流程,这样可以保证用户接收到看板截图和其在浏览器页面上看到的内容与格式一致,具有所见即所得的高保真性。

3. 现有方案的缺点

通过看板的URL直接进行截图,存在以下缺点:

  1. 无法实现看板内容随着推送对象变化而变化:看板的内容并非一成不变的,受到用户行级权限和默认筛选条件等因素的影响,看板的内容会因人而易,数据展示需要动态加载,截图尺寸也需要动态计算,这种情况下静态URL来进行页面渲染无法达到预期效果。
  2. 看板截图推送单次成功率不高:看板截图推送过程流程过长,要经历页面渲染、截图保存和内容推送三个环节。受到网络波动等外界因素干扰,每个环节都有失败的可能性,从而造成看板截图无法触达用户侧,需要反复尝试,造成推送延迟。
  3. 截图的数据安全性无强保障:看板截图在生产之后,图片的权限管理别离开的系统。看板截图在调用、存储、发送等环节都可能被泄露,不适合敏感数据。
  4. 看板截图尺寸固定:只能适配PC端的布局,无法适配移动端。

4. 发明目的

本方案希望设计一种数据看板的动态截图方案,以实现以下效果:

  1. 看板截图内容因人而异的,随着推送对象变化而变化;
  2. 实现PC和移动端设备布局切换的效果,以满足更为丰富的使用场景;
  3. 通过辅助手段降低看板截图推送失败率,如通过动态计算看板请求流量设置超时时间,以提高看板截图成功率,以及加入任务补偿机制,适时发起重试任务等;
  4. 增强看板截图的安全管理,保证截图在传输和保存过程中的数据安全性;

5. 重点内容

本方案具体内容如下:

  1. 用户通过“推送规则配置模块”设置看板推送规则并保存在数据库(DB)中进行持久化,推送规则内容包括待推送的看板列表、消息接收人列表、截图布局类型(PC端布局或移动端布局)、推送定时规则等等。

  2. “推送任务调度模块”定时从DB中获得待执行的推送规则,并根据不同的推送人拆分为不同的截图推送任务,发起执行流程。

  3. 执行流程包括“渲染截图”、“截图保存”、“内容推送”三个步骤,每一步都由独立的模块执行,每个模块在执行后无论成功还是失败都会向“推送任务调度模块”反馈任务的执行状态;“推送任务调度模块”会在数据库中记录任务的执行状态,以方便管理推送任务的声明周期。

  4. “任务补偿”模块定时从DB中获取到执行失败的任务,从上次失败的步骤重新开始执行,确保失败任务可以进入补偿流程。

  5. “渲染截图”模块负责根据接收人的身份权限生成看板页面的动态URL,并根据此来渲染和截图,以保证看板截图内容因人而异的推送效果。具体内容如下:

    • 5.1 利用非对称加密算法(如SHA1_WITH_RSA),生成包含接收人的身份数字签名(data signature),该签名在有效期内可以用于验证登录用户身份;

    • 5.2 根据推送规则的配置信息(如是PC端布局还是移动端布局)和接受者的权限筛选条件,动态生成对应看板的URL。

    • 5.3 根据待截图看板内的可视化组件的数量,等比例设置合适的看板截图超时失败时间;

    • 5.4 基于无头(headless)浏览器内核执行截图脚本:截图脚本首先会将5.1中生产的用户身份数字签名提交给指定的登录接口,签名的时效性和正确性通过之后,当前会话便进入数字签名对应用户的身份的登录态;基于之前登录后的会话,脚本依次访问5.2中生成的看板动态url,并待其渲染完毕后进行截图操作;如果看板在等待超过5.3中设置的超时时间之后也没有完成渲染,则认为截图任务失败,进入任务补偿流程;反之,如果截图在超时时间之前顺利完成,则会被保存在指定临时目录下,等待被上传。

  6. “截图保存”模块负责将5.4中生产的截图上传到简单存储服务(Simple Storage Service,简称S3)模块,S3模块返回截图的保存地址链接,这些链接将用于推送消息的生成,具体细节如下:

    • 6.1 S3模块作为海量对象的存储服务,提供高速且完备对象存储与下载功能,看板截图在上传到S3服务之后,以S3存储链接的形式被使用,该存储链接具有时效性和访问控制性,只有被信任的服务在有效期内才能访问图片,确保了图片存储的安全性。
    • 6.2 看板截图并不是直接以文件的形式推送给用户,而是通过引用S3存储链接,再在IM(Instant Messaging,即时通讯)客户端中加载图片,因此避免了看板推送服务直接去发送大量文件而造成性能消耗,以提高服务的稳定性。因此文件在上传S3模块后所产生的存储链接将会被统一记录下来,用以最后生成推送消息。
  7. “内容推送”模块负责根据推送配置规则将6.2中记录的截图S3存储链接生成Markdown格式文本,并通过IM模块给用户发送消息,达到消息推送的效果,具体细节如下:

    • 7.1 Markdown格式文本中并不直接包含看板截图,而是以超链接的形式引用截图对应的S3存储链接;
    • 7.2 IM发送Markdown格式文本到客户端后,客户端通过存储链接下载图片,最终生成完整的图文消息呈现给用户。
image-20210628182550110

6. 增益效果

本方案设计的一种数据看板的动态截图方案有如下增益效果:

  1. 模拟接收者真实身份进行看板预览,使得板截图内容可以因人而异的,实现随着推送对象变化而变化的推送效果;
  2. 看板支持PC和移动端两种布局,因此在配置推送规则时,用户可以自主切换合适的布局效果,以满足更为丰富的使用场景;
  3. 通过动态设置看板截图超时时间,引入推送补偿机制等方法,降低看板截图推送失败率。
  4. 截图文件并直接传递给用户,而是先被上传到S3服务上,只有被信任的服务在有效期内才能访问图片,确保了图片存储的安全性;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,753评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,668评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,090评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,010评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,054评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,806评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,484评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,380评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,873评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,021评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,158评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,838评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,499评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,044评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,159评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,449评论 3 374
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,136评论 2 356

推荐阅读更多精彩内容