一、OpenMeta 简介
OpenMeta 目前是一款开源的应用开发框架,专注于开发专业化的企业级应用,封装应用开发过程中常见的需求特性。秉承 Build in public, build in community 的开放理念,OpenMeta 将基于透明协作的用户社区和技术社区不断演进。同时,鼓励用户通过多样的方式参与贡献,致力于共同打造开源生态。
OpenMeta 的定位是在中大型企业级业务系统中,提供一个全面的开源解决方案,弥补现有开源软件在该领域的不足。未来,会有更多的业务应用基于 OpenMeta 构建,届时,它的范围将不仅仅是一个开发框架。
二、设计目标
1. 关注效率和生产力
OpenMeta 注重提高业务系统开发效率、用户操作效率和数据生产力。通过自动化工作流程、简化用户操作,确保用户能够更高效地完成任务。采用 AI 设计元素和工具,提供直观、快速、流畅的用户体验。为了解决企业应用间集成需求,提供可配置化集成能力,提交集成交付效率。
2. 安全性和隐私保护
安全是 OpenMeta 的核心价值之一。在设计到开发的全过程中,采用最佳的安全实践和技术措施,包括但不限于细粒度权限管控、敏感数据加密、接口数据按需脱敏、用户安全策略和变更日志审计等等,确保系统数据在访问、传输和存储过程中,都是安全可靠的。同时,OpenMeta 强调对用户个人隐私数据的重视,遵守 GDPR 通用数据保护条例,以建立用户的信任。
3. 灵活性和可扩展性
灵活性和可扩展性,是复杂业务应用系统中非常重要的技术指标。OpenMeta 采用模块化设计,使各个系统组件能够相互独立维护和运作,并且容易进行扩展和升级。在功能开发过程中,充分吸收业界先进经验,进行合理的抽象设计,提高系统可配置化能力,以满足不同行业、不同规模企业的特定需求,从而增加系统的灵活性。优秀的技术架构应当支持高效的业务创新和发展变化,降低 Bug 出现的概率。
三、关键特性
1. 元数据驱动
元数据是 OpenMeta 的底层核心数据,所有增删改查操作都需要经过元数据的校验和处理。元数据的范围包括模型元数据、字段元数据、界面元数据等技术性配置数据。在复杂业务系统中,需要对元数据进行版本化管理,并且需要支持多环境之间的迁移和发布(如测试环境、UAT环境、预发布环境、生产环境等)。
2. Flow
业务系统离不开流程,BPMN、BP、Workflow 都是类似概念,OpenMeta 的流程场景更加泛化,因此采用 Flow 命名。OpenMeta 内置的 Flow 提供了自动化处理流程、业务审批流程、定时任务流程,并且,流程中内置了 AI 集成和交互能力。
3. OpenAPI
OpenMeta 提供标准的 OpenAPI 接口,并具备清晰的接口文档。在 AI 日益普及的今天,API 的接口设计风格尽可能是 AI 可理解的 API,可以根据语义逻辑组装出任意复杂的查询条件。开发人员也能够轻松地从 API 请求中识别出要访问的服务、业务模型、目标方法、参数类型及返回值情况。与此同时,考虑 API 独立性和可追踪性,满足性能分析和行为分析等监控需求。
4. 安全管控
OpenMeta 对安全非常重视。在权限管控方面,采用 ABAC 细粒度权限管控机制,可以控制到数据行级、列级(字段级),满足中大型企业中,根据复杂的业务属性条件控制数据访问范围。在字段元数据中,可以按需配置敏感数据加密、敏感数据脱敏规则,并采用了高强度加密算法。安全策略方面,可以按需配置会话过期策略、密码复杂度等安全规则。
5. 数据集成
在现代企业中,往往已经使用了多种信息化工具,数据集成是业务系统普遍面临的挑战和任务。为了避免定制化开发数据集成带来的痛点,OpenMeta 将数据集成做成一项内置能力,通过可配置化的方式,高效实现系统间的数据集成,支持内部接口和外部接口的编排,以及常见的集成认证机制,为企业带来便捷、可控的数据集成体验。
6. 时间轴模型
时间轴模型是业务数据版本化管理的一种有效解决方案,在需要对业务事件进行变化追踪的业务场景中,提供了灵活而直观的操作体验。OpenMeta 提供了时间轴模型的可配置化能力,并支持按日期查询有效数据、插入时间轴切片、更新和更正历史切片数据,为企业的业务数据版本管理提供了强大的支持。
7. 多语言
多语言在 OpenMeta 中体现为前端多语言(用户界面多语言)、后端多语言(后台提示、异常报错等消息)和业务数据多语言。其中,前端多语言、后端多语言是标准功能,支持扩展新的的语言种类。扩展多语言功能时,确保三种类型的多语言编码一致。这一特性旨在为用户提供更广泛的语言支持,提高系统的国际化能力。
8. 多数据库
作为企业级应用开发框架,OpenMeta 并未绑定专有的关系型数据库。通过对数据库方言进行抽象,OpenMeta的目标是支持主流关系型数据库,如 PostgreSQL、MySQL 等等,会根据项目需求逐步支持更多数据库。然而,这条规则并不影响 OpenMeta 在特定场景中使用其他类型的数据库,比如 ElasticSearch、Redis 等。这种灵活性确保了OpenMeta的通用性和适应性,使其能够满足不同数据库环境的需求。
9. 多租户
常规意义上的多租户有几种不同的共享模式。隔离优先的租户模式,通过设计合理的部署架构即可支持。为了兼容使用 OpenMeta 提供多租户共享 Schema 的 SaaS 服务的场景,OpenMeta 提供了启用多租户的配置开关,需要注意的是,该场景仅用于标准化 SaaS 场景。
四、Roadmap
2024-Q4:更多业务应用
敬请期待…
2024-Q3:Flow 和 UI 元数据
敬请期待…
2024-Q2:ORM 和 OpenAPI
OpenMeta 发布最小 MVP 版本 0.1.3
,包含元数据驱动的 ORM 和通用接口 OpenAPI。
2024-Q1:开发基础框架
OpenMeta 的短期目标仍然是专注于基础框架的开发,这一阶段的主要目标是构建企业级应用的基础能力和关键特性。
五、最后
OpenMeta 将持续保持高度透明,并积极倾听用户的反馈,以不断改进和增强,致力于成为中大型企业级应用领域的可靠选项。期待 OpenMeta 在 2024 年的不断演进和成长。