思维碎片
提示
精卫 (JingWei)
的设计仍在逐步改进与完善中,本文将随时发生变化,感兴趣的朋友们可以时刻保持关注;- 在下方的版权声明中有本文作者的联系方式,有不同意见和相关建议的朋友可以与其保持联系;
- 也可在本文底部的评论区登录 Github 后,直接发表您的观点;
版权声明
- 文章作者: flytreeleft - flytreeleft@crazydan.org
- 文章链接: https://studio.crazydan.org/docs/jingwei-store/system-design/thoughts
- 版权声明: 本文章采用许可协议《署名 4.0 国际 (CC BY 4.0)》。 转载或商用请注明来自 Crazydan Studio!
- 应用的作用:为具体用户提供数据收集,整理,分析服务。可以一次性收费,也可以按功能收费。
- 平台的作用:为一群用户提供数据索引,聚合和分享服务。
- 应用向用户提供一组运行函数,由用户侧提供参数,再由应用侧返回函数执行结果。函数可以在应用服务端执行,也可以在用户环境执行。应用和用户侧都需要为函数创建独立且隔离的运行环境。
- 远端应用的本质:访问地址就是调用其入口函数,然后其向客户端返回 交互视图函数 (可能携带数据),视图函数在客户端的本地容器运行,在交互过程中会产生对本地或远端函数(含第三方)的调用。
用户资产库
- 向用户的应用函数提供用户数据的存取,对用户数据的读写只能通过用户资产库
- 应用函数向外部发送数据的行为都是被监控的,甚至是不被允许的(不提供网络能力)
- 需要与其他用户同步指定数据时,应用函数指定源和目标数据的唯一标识, 再由用户资产库在底层完成同步,应用层面不参与数据传输过程
- 交互的用户数据都是使用用户的私钥加密后的二进制数据
- 在当前的技术框架下,可采用 方案
- 用户数据会记录变更历史,对于数据被恶意加密、恶意删除等,可以通过历史数据恢复
应用平台
- 负责聚合和索引与应用相关的用户数据,但一般不保留用户数据本身
- 作为可对其他用户访问的数据,平台只是告知其他用户相关数据在哪里可以获取到,
需由用户根据地址列表自己去拉取数据
- 若是目标用户的资产库未上线,则访问用户需要等待其上线后才能查阅到数据
- 查阅数据的用户将缓存目标用户的数据,后续可作为数据源向其他访问用户提供该数据
- 本地留存的也是数据所有者私钥加密后的数据,仅在查看时才通过数据所有者的公钥解密
- 考虑 NAT 等因素,应用平台一般还需要提供中继代理,以打通数据提供侧和数据消费侧之间的数据交互通道