如果你带着传统软件开发的习惯进入数据空间开发领域,第一件事就是要重新理解”开发”这两个字的含义。
在传统软件工程中,”开发”意味着”写代码”。需求文档、概要设计、详细设计、编码、单元测试、集成测试、上线,这七个阶段走完,才能看到一个初步可用的系统。
在数据空间中,”开发”意味着”装配”,是基于已有的技术资产(连接器、控制器、身份服务、元数据引擎),把它们组合成满足特定需求的系统。
按需装配,不是从零造车
数据空间的通用开发框架建立在两个核心平台上。
应用开发平台提供了一组预定义模块:身份认证、访问控制、数据组织、工作流引擎、缓存、国际化、脚手架,这些模块是数据空间应用开发的标准组件。
什么意思?如果一个开发者要在数据空间上构建一个”数据产品发布和订阅”的应用,不需要从头写身份认证模块,直接从应用开发平台引用一个身份认证组件,配置好参与方的DID验证规则,两个小时就能完成集成。
预定义模块覆盖了数据空间应用开发中80%的通用需求,剩下20%的行业定制功能才需要现场编码。
服务管理平台解决的是异构系统之间的集成和互操作性问题。数据空间中同时跑着不同厂商的连接器、不同版本的控制器、不同来源的数据源,那么问题来了,它们之间怎么通信?答案是由服务管理平台提供中间件服务,把这些异构系统串联起来。
典型技术栈
一个通用开发框架的典型技术栈包括:Spring Boot或Django作为后端框架、JavaScript作为前端语言、Docker+Kubernetes作为容器化和编排工具、CI/CD(GitLab CI、Jenkins、GitHub Actions)自动化构建和部署流水线。
这个技术栈跟通用软件工程没有本质区别。数据空间开发的”特殊性”不在于用什么编程语言或框架,而在于开发的”装配”属性,就是说大部分工作不是”写新代码”,而是”配置已有组件”。
开发与运营合一
数据空间开发的另一条特殊性是:开发跟运营之间没有清晰的边界。
一个传统软件系统开发完成、测试通过、部署上线后,”开发”的阶段就结束了,系统进入”运营”阶段。开发团队和运维团队是两个不同的团队。
在数据空间中,一个数据产品的开发过程可能跨越多个参与方。数据提供方发布数据产品、服务方开发分析模型、运营方配置使用控制策略,每个角色都在”开发”,又都在”运营”。
更进一步,数据空间的规则是持续演进的,新的参与方带来新的需求,新的合规要求触发策略变更,新的数据流通模式需要增加新的服务能力,开发不是上线就结束的,而是上线后仍在持续。
数据空间开发的核心能力不是”写代码”,而是”装配”——知道有哪些现成的组件、怎么把它们组合起来、怎么配置成满足业务需求的系统。开发即运营,部署即治理——这是一个跟传统软件工程完全不同的思维模式。
我是BSN联盟成员。有着十年区块链与隐私计算的产品开发和方案咨询经验,先后参与多个国家重大课题,亲手建过区块链、隐私计算、可信数据空间的落地项目。不追概念,写真的。