对于个人数据软件,如何解决隐私和便利的矛盾?

2022-04-14 12:43:50 +08:00
 Chad0000

写在前面

继续上个话题:准备搞一款这样的软件,不知道会不会被打脸,产品需求我基本上定了:做个人信息管理软件( PIM ),具体怎么细节还在思考中。既然是管理个人数据,那就包括了很多比较敏感的部分,比如财产、健康数据等等。于是软件为桌面软件 /APP 形式,优先考虑本地保存,同时可以备份到移动存储,NAS ,网盘及云存储。在没有可信机制的前提下,不考虑提供官方作为服务端的方式。

问题

数据库放在本地,同步到远程,然后就可以在另外一个设备比如手机 /平板上使用。如果数据库比较小还可以,数据多的话这个同步时间会变长,用户使用起来体验就没有那么好。

个人想的几个方案:

1. 必须同步完后再使用

只有客户端没有服务端,隐私能保障了,但用户体验会差些,尤其是数据库比较大的时候。

2. 允许自行部署服务端

这样数据库在远程无需同步,但需要用户有一定的 IT 基础,同时用户自行管理这个服务器可能不如直接使用网盘或云存储可靠。

3. 官方提供服务端

那这个产品就是 SAAS 了,需要解决信任问题。

4. 官方做一个 Dropbox2 ,开源,可自行部署

官方提供存储,但仿照 Dropbox ,只同步数据库文件修改过的部分,会让同步快一些。因为数据库已经加密,官方存储一样无法得知里面的数据,可信方面会好一些。

各位有什么好方案?

2794 次点击
所在节点    奇思妙想
25 条回复
FrankHB
2022-04-15 10:01:49 +08:00
@agagega 确实……hg 很多逻辑设计看起来都正常点,CLI 也没那么反人类。
但是 hg 本地存储就有些拉胯,特别是没 git pack 这种,大量小文件存储时间空间效率多数文件系统上都非常捉急……
Chad0000
2022-04-15 10:19:55 +08:00
@FrankHB
上面我可能说得不恰当误导你了,“没精力弄多个终端”是指基于分布式存储的多个终端,每个终端有自己的数据然后终端之间合并,这种我认为是不妥的。而后面你解释的是多个终端,然后同步到一起,这种是 Git 的方式了,还是有统一的数据中心(或者存储的地方)的,这个我们是一致的。

每个终端同步数据时冲突的处理无法避免,那么像你说的参考 Git 客户端或 DVCS 的处理方式可行,我也认同。只不过冲突处理对我来说比较麻烦,对于笔记这种纯文本冲突,可以使用成熟的库来处理,甚至只要是修改了同一处就是让用户确定合并是否正确。但因为这款软件我暂定是很多部分用低代码实现,低代码配置的冲突,以及使用这些代码衍生的数据的冲突(要知道用来定义这些数据的版本可能不一样),可能会把这个问题复杂化。

基于此我才会想搞这么麻烦是不是提供在线的数据中心会更好(数据中心做好自己的备份),每个人都可以架自己的数据中心,起码能保证终端有网络的时候能实时使用最新的,没网络的时候本地先暂存,之后再上传,都远比上面的同步方案简单。

当然现在还没有敲定怎么设计,你提供的建议和反馈都很重要。利弊拿出来讨论才有更好的方案。
Chad0000
2022-04-15 10:39:04 +08:00
@FrankHB #20

感谢提出你的需求,对我来说很有用。我也是有具体需求,所以这样的产品做起来才会有用:自己也是用户。对于这款产品,开源是最后的选项:我目前认为开源了我就基本上没什么指望了。因为数据特别敏感,官方存储始终不好解决信任问题,基于此我觉得没什么营利点。

关于二次开发或插件能力,你可以尽量提需求,我看是否有合适的解决办法。

我目前的想法是对插件提供基础能力,我会将 PIM 中的功能都用插件形式走一遍确保插件系统能支持,如果软件逐一实现的话那就太复杂了,而且无法完全适应个人灵活多变的需求:
- 数据:定义数据(表),访问和修改数据。
- UI:基于软件原始 UI 定义插件 UI 。
- 能力:提供一些 Function 可供用户任意安排,拿任务管理来说
- 启动任务、完成任务:会触发一系列数据读取分析和记录。
- 插件可以提供通过 API 将第三方任务同步过来的能力,或将任务数据同步到第三方。
- 需要 OCR 则系统可以集成,变成基础功能提供给插件用
FrankHB
2022-04-16 01:34:29 +08:00
数据方面,内部表示我用不到多少现成数据库的功能,至少不用典型的 RDBMS 那么复杂,有个面向记录的数据结构加一些简单的索引足够。分类 /贴标签可以用索引做。要用现有数据库,主要动机是大部分持久层和事务的功能不用自己实现了。
对 UI 我的要求更低,因为我不需要低代码管理,所以基本没什么编辑的要求,只要能正确预览和方便索引就行。另外还要加日历等浏览视图,这算是 PIM 软件常规功能。也许像 Windows 事件管理器那种改改加上预览可能都够了(虽然那个也不太有现成品)。
对我来说 OCR 不一定需要集成,主要是比较灵活,我不太确定现成的 OCR 能直接用,应该免不了针对具体需求二次开发。而且也需要同时处理图像提取其它数据,我在想是不是空了专门训练个模型之类。当然,这种定制就算是小众需求了。
Chad0000
2022-04-16 04:37:09 +08:00
@FrankHB
数据库没必要造车,直接使用 sqlite ,3.9 开始支持 json 更方便。

OCR 如果有现成的库可以集成。我使用 C#,不知道你使用什么语言。UI 这边的框架支持自绘动态加载,代码考虑集成 js 运行时或者 python 。深度能力可以通过本地 http 对接这样完全与开发语言没关系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/846918

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX